If the code compiles correctly then your code isn't the issue. Regardless, I'll break it down in a more step-by-step way for you.

1.)Place a character on your map, check Global on the sidebar. Don't worry about anything else - not even the dialogue box.

2.)Open the CHARACTERS tool (red stick figure on the toolbar) Find your new Global character (you can click on his model for easy location on the list). He'll be named something weird. Click on his name and change it to something you can reference. For this example: "QuestGuy". This step is hugely important.

3.)Place both of your PLAYER CHARACTERS if you haven't. Check Global and IsPlayer in the sidebar. Open the CHARACTERS tool again, and for the sake of this example, name them Player1 and Player2.

---NOTE that naming the characters via "DisplayName" on the sidebar is not the same as changing them in the CHARACTERS tool. ---

4.) Write and save any basic dialogue for test purposes. Name it "QuestDialogue" for the sake of this example.

5.)Open the story editor. Press "New" and name the new goal "_Start". In "_Start" put the following:

INIT:
CHARACTER_Player1.isPlayer();
CHARACTER_Player2.isPlayer();

KB:
IF
GameEventSet("GAMEEVENT_GameStarted")
THEN
InitStory();
GoalCompleted;


---Note that CHARACTER_Player1 and CHARACTER_Player2 reference the names you named the player in the CHARACTER tool.---

5.) Create another new Goal in the story editor. Name this one "QuestGuy" (name doesn't matter). In that one:

INIT:

KB:
IF
DialogStartRequested(CHARACTER_QuestGuy, _Player)
THEN
DialogStartTwoSpeakerDialog("QuestDialogue",CHARACTER_QuestGuy,_Player);


Click Generate Definitions & Build - Should be error free.

And you should be good to go.