Quest guidelines

This page lists all the rules to create quests in a consistent way.

Quest.xml

This file is placed in the clientdata folder and allow the client gives player information on the quest he is doing through the Quest window. Quest window is a diary where quest completed and still active are listed. It gives also a short description of the mission, the name of the quest giver NPC, his coordinates in the map and the quest reward.

Main structure

quests.xml
<quests>
  <var id="0">
    <effect map="000-2-0.tmx" npc="304" value="0,1" effect="12"/>
    <quest name="Trial Quest" group="Ship" incomplete="1">
      ...
      ...
    </quest>
    <quest name="Trial Quest" group="Ship" complete="2">
      ...
      ...
    </quest>
  </var>
</quests>

When creating the main structure the quest developer has to follow rules as below:

  • the file starts and ends between the <quests>, </quests> tags
  • each var is handled between the <var id=“N”>, </var> tags, where “N” represents the ID of the var as decribed in serverdata/db/questvars.txt
  • each var tags can handle 2 types of child tags:
    1. <effect> tag: tag which describe the effect to be displayed on the top of the NPC/NPCs involved in the quest
    2. <quest> tag: mandatory tag which describe the quest itself

Effect tag structure

quests.xml
<effect map="000-2-3.tmx" npc="306" value="1,3" effect="12"/>
<effect map="000-2-0.tmx" npc="304" value="4" effect="13"/>

Commonly in the MMORPG world, NPCs involved in quests show effects above their heads to communicate to the player they are willing to talk:

  • (!) effect is displayed above NPCs that have a new quest for the player
  • (?) effect is displayed above NPCs that player has to report to in order to continue the quest

The Effect tag itself can have different properties:

  • map: the map where the NPC showing the effect is located
  • npc: the ID of the NPC who is showing the effect as described in clientdata-beta/npcs.xml
  • value: var value/values that trigger the effect
  • effect: the ID of the effect to be displayed above the NPC as described in clientdata-beta/effects.xml

Quest tag structure

quests.xml
<quest name="Warm Smelly Clothes" group="Ship" incomplete="1">
  <name>Warm Smelly Clothes</name>
  <text>You need to open the chest and take the clothes from it.</text>
  <text></text>
  <text>To perform this action, click on the chest...</text>
  <text></text>
  <text>Quest giver: Magic Arpan.</text>
  <text>Coordinates: La Johanne, Second Deck. (41,37)</text>
  <text>Reward: Smelly sailor clothes.</text>
</quest>

The Quest tag itself (first line) can have different properties:

  • name: the name of the quest that will be shown in the diary
  • group: the group which the var belongs from as definied in serverdata-beta/db/questvars.txt
  • complete/incomplete: state that the quest takes when the related var change to that specific values. Complete/incomplete status can be linked to more then 1 var values at once using comma separator (example: complete=“2,3”). Developer shall follow rules below:
    1. “incomplete” when the quest step is not the final step of a quest (it will not remain in the diary once the quest advances)
    2. “complete” when the step is the conclusive step of a quest, usually it describes what has been done during the quest, if the player has been rewarded (it will remain in the diary)

Inside the Quest tag two types of child tags can be added:

  • name tag: the same name of the Quest tag property as described previously
  • text tag: paragraph of text describing the quest. There is a precise order developers have to follow to have consistent diary entries:
    1. the body of the quest is encolosed between the <text></text> tags. To separate to paragraph of text an empty <text></text> line can be inserted in the middle
    2. At the end of the body after an empty <text></text> line some common information on the quest are always displayed whereas they are existing or not
    3. “Quest Giver:” followed by the name of the NPC who has given you the quest (example: “Quest Giver: Nard.”)
    4. “Coordinates:” followed by the name of the map where the quest giver is and it’s tiled coordinates (example: “La Johanne, Second Deck. (39,33)”)
    5. “Reward:” followed by the reward forecasted or already received. Following rules apply:
      • Reward is set as “Unknown” if the NPC has not revealed it yet
      • Reward is set as “Nothing” if at the end of the quest chain no reward has been give or if the NPC has already revealed that no reward will be provided at the end of the quest
      • In case of multiple rewards the attribute is “Reward” in singular form in any case since a reward can be considered as multiple objects (example, Reward: 100GP, Bandana, Bread.)
Navigation
Print/export
Languages