> 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/quest/quest.md).

# Quest

<mark style="color:green;">Registry of all quests: defines which NPC is involved, under what conditions the quest becomes available, and which other quests are required as prerequisites.</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, one per quest</td><td>Identifies the quest. Referenced by <code>QuestObjective.txt</code> and <code>QuestReward.txt</code>.</td></tr><tr><td>StartType</td><td><code>0</code> or another number</td><td><code>0</code> = this row is used when the player talks to the NPC to open/interact with the quest. Other values are used by internal server triggers.</td></tr><tr><td>MonsterClass</td><td>NPC class number</td><td>The NPC the player must interact with for this row to apply.</td></tr><tr><td>CurrentState</td><td><code>0</code>, <code>1</code>, <code>2</code>, or <code>3</code></td><td>The state the player <strong>must already be in</strong> for this same quest: <code>0</code> = Normal (not started), <code>1</code> = Accepted, <code>2</code> = Completed, <code>3</code> = Canceled.</td></tr><tr><td>RequireIndex</td><td>Number corresponding to another quest (<code>Index</code>), or <code>*</code></td><td>Requires the player to have another quest in a specific state before progressing in this one. <code>*</code> = no prerequisite.</td></tr><tr><td>RequireState</td><td><code>0</code>, <code>1</code>, <code>2</code>, or <code>3</code></td><td>Required state of the quest specified by <code>RequireIndex</code>, when applicable.</td></tr><tr><td>RequireMinLevel</td><td>Number, or <code>-1</code></td><td>Minimum level requirement. <code>-1</code> = no minimum.</td></tr><tr><td>RequireMaxLevel</td><td>Number, or <code>-1</code></td><td>Maximum level restriction. <code>-1</code> = no maximum.</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 use this row. <code>1</code> = allowed starting from the first class evolution. <code>2</code> = allowed only from the second class evolution onward.</td></tr></tbody></table>

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

* A single quest (`Index`) in the same `CurrentState` may have **multiple rows**, each with different prerequisites and class restrictions. This is how different classes can follow distinct paths to reach the same point in a quest (each player only uses the row that matches their class).
* `RequireIndex`/`RequireState` in this file act as **prerequisites for another quest**. This differs from the meaning of columns with the same names in `QuestObjective.txt` and `QuestReward.txt` (where they refer to the current quest itself, not a previous quest). Do not confuse these two uses.
