> For the complete documentation index, see [llms.txt](https://changelog.matrixemulator.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://changelog.matrixemulator.com/welcome/server/muserver/data/questworld/questworld.md).

# QuestWorld

<mark style="color:yellow;">The server's newer quest system (the one used by the mission journal/menu, featuring branching dialogue and up to three response options per step) — distinct from the classic</mark> <mark style="color:yellow;"></mark><mark style="color:yellow;">`Data\Quest\`</mark> <mark style="color:yellow;"></mark><mark style="color:yellow;">system.</mark>

<table data-search="false"><thead><tr><th>Column</th><th>Accepted Values</th><th>Description</th></tr></thead><tbody><tr><td>Index</td><td>Number</td><td>Identifies this dialogue step/node (unique when combined with <code>Group</code>).</td></tr><tr><td>Group</td><td>Number</td><td>Identifies the quest itself — this is the value stored in the player's quest progress. Multiple steps of the same quest share the same <code>Group</code>.</td></tr><tr><td>Number</td><td>Number</td><td>A "checkpoint" marker within the quest, used to prevent the player from restarting an entry point they have already passed.</td></tr><tr><td>StartType</td><td><code>0</code> or <code>1</code></td><td><code>1</code> = this row is an NPC conversation entry point.</td></tr><tr><td>MonsterClass</td><td>NPC class number</td><td>The NPC associated with this step.</td></tr><tr><td>CurrentState</td><td><code>0</code> to <code>4</code></td><td>The state the player's progress for this quest (<code>Group</code>) must be in for this row to be valid: <code>0</code> Normal, <code>1</code> Accepted, <code>2</code> Rejected, <code>3</code> Completed, <code>4</code> Canceled.</td></tr><tr><td>NextIndex1 / NextState1</td><td>Number of another <code>Index</code>, and a state</td><td>Determines which node is visited next and what state the player enters if they choose the first dialogue option.</td></tr><tr><td>NextIndex2 / NextState2</td><td>Number of another <code>Index</code>, and a state</td><td>Same as above for the second option. <code>*</code> = no second option exists.</td></tr><tr><td>NextIndex3 / NextState3</td><td>Number of another <code>Index</code>, and a state</td><td>Same as above for the third option. <code>*</code> = no third option exists.</td></tr><tr><td>RequireIndex</td><td>Number of another node (<code>Index</code>), or <code>*</code></td><td>Requires another quest node to already be in a specific state. <code>*</code> = no prerequisite node (but see the notes regarding <code>Number</code>).</td></tr><tr><td>RequireGroup</td><td>Number of a quest (<code>Group</code>)</td><td>The quest to which <code>RequireIndex</code> belongs.</td></tr><tr><td>RequireState</td><td><code>0</code> to <code>4</code></td><td>The required state of the <code>RequireIndex</code>/<code>RequireGroup</code> node.</td></tr><tr><td>RequireMinLevel</td><td>Number, or <code>*</code></td><td>Minimum character level. <code>*</code> = no minimum requirement.</td></tr><tr><td>RequireMaxLevel</td><td>Number, or <code>*</code></td><td>Maximum character level. <code>*</code> = no maximum requirement.</td></tr><tr><td>RequireFamily</td><td>Gens faction number, or <code>*</code></td><td>Requires membership in the specified Gens faction. <code>*</code> = no requirement.</td></tr><tr><td>RequireCooldown</td><td>Number (minutes), <code>0</code>, or <code>*</code></td><td>Applies only to an entry point (<code>RequireIndex = *</code>) that the player has already completed. Controls whether and when it can be repeated. <code>0</code> = can never be repeated. A number = waiting period, <strong>in minutes</strong>, counted from the last completion before it becomes available again. <code>*</code> = no waiting period; it becomes available immediately after completion.</td></tr><tr><td>DW / DK / FE / MG / DL / SU / RF</td><td><code>0</code>, <code>1</code>, or <code>2</code></td><td><code>0</code> = this class cannot access the quest. <code>1</code> = available starting from the 1st class advancement. <code>2</code> = available only from the 2nd class advancement onward.</td></tr></tbody></table>

### <mark style="color:yellow;">Notes</mark>

* When `RequireIndex = *`, the availability of the row depends on `Number`: it is only available if the `Number` stored in the player's progress for that quest (`Group`) has not yet reached the `Number` of this row. This prevents players from repeating an entry point they have already progressed beyond.
* `RequireCooldown` is only considered when `RequireIndex = *` and the player has already completed that entry point (`CurrentState = Completed`). In that case, it determines whether the step becomes available again, rather than `RequireIndex`/`RequireGroup`/`RequireState`. Despite the name of the internal code variable (`diffDays`), the value is measured in **minutes**, not days — it is recommended to test values carefully when configuring them.
* A single quest (`Group`) may contain multiple rows with the same `Index` and `CurrentState`, each with different class restrictions and prerequisites. Each player will only see the row that matches their own class and progression.
