Building the Basic Quest by Jeff Vogel Once you're writing new dialogue in your scenario, one of the first things you will want to do is make quests. This article explains how to make a simple, bare-bones quest. Quests made with this technique are pretty clean, easy to make, and free of logical holes. Assume that, in town 7, there is a character named Fred. He wants you to kill a dragon in town 10. As a reward, he gives 250 coins and item 317 (some sword or something). To make the quest ... 1. Pick a Stuff Done Flag for the quest. Say, we pick SDF(7,3) for the quest flag. This flag will be set to 1 when the quest is given, and 2 when complete and the reward is given. 2. Pick a Stuff Done Flag for quest completion. Say, we pick SDF(10,1). When this flag is set to 1, the quest's completion condition has been achieved. In this example, when the dragon is killed. 3. Figure out what level character should be completing this quest. For this example, say, level 15. 4. Pick a number for the quest. it should be from 0 to 99. For this example, say, quest 37. Put a line like this in the LOAD_SCEN_STATE state of the scenairo script: init_quest(37,"Kill dragon.","Fred in town 7 asked you to kill the dragon in town 10."); 5. Put nodes similar to these in Fred's dialogue: begintalknode 83; state = 1; // or whatever state is appropriate for Fred's dialogue nextstate = -1; condition = get_flag(7,3) <= 1; // quest completed yet? question = "Any small problems I can help out with?"; text1 = "_Yeah. Kill the dragon in town 10 and I'll give you an item 317. Arrrr._"; code = toggle_quest(37,1); // add quest to quest list set_flag(7,3,1); // set quest as assigned break; begintalknode 84; state = 1; nextstate = -1; condition = get_flag(7,3) == 1 && get_flag(10,1) > 0; // has quest been both given and completed? question = "Dragon dead. Pay me."; text1 = "_OK. Thanks. here you go. I'm so happy to have met you._"; code = toggle_quest(37,0); // remove quest set_flag(7,3,2); // mark reward as given award_party_xp(100,15); // give xp reward, adjusted for quest target level change_coins(250); // pay cash reward_give(317); // give item break; 6. Don't forget to do something in town 10 to set SDF(10,1) to 1 when the dragon is killed. And that is how a simple quest is made. Of course, you will probably want to come up with much more elaborate quests. This framework is easy to build off of. - Jeff Vogel Spiderweb Software, Inc. http://www.spiderwebsoftware.com