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

# CustomNpcQuest

<mark style="color:green;">Configures a chain of sequential quests delivered by a specific NPC, at an exact point on the map (the version of</mark> <mark style="color:green;"></mark><mark style="color:green;">`CustomQuest.txt`</mark> <mark style="color:green;"></mark><mark style="color:green;">tied to an actual NPC instead of a loose command). The file has 8 blocks, all linked by the</mark> <mark style="color:green;"></mark><mark style="color:green;">`Quest`</mark><mark style="color:green;">/</mark><mark style="color:green;">`Index`</mark> <mark style="color:green;"></mark><mark style="color:green;">column, which identifies the position in the chain.</mark>

### <mark style="color:yellow;">Block 0 — NPC and quest limit</mark>

<table data-header-hidden data-search="false"><thead><tr><th></th><th></th><th></th></tr></thead><tbody><tr><td><strong>Column</strong></td><td><strong>Accepted values</strong></td><td><strong>What it is</strong></td></tr><tr><td>Quest</td><td>Number</td><td>Position in the chain.</td></tr><tr><td>Npc</td><td>Number of the NPC class</td><td>Which NPC delivers this quest.</td></tr><tr><td>NpcMap</td><td>Number</td><td>Map where this NPC must be located.</td></tr><tr><td>NpcX / NpcY</td><td>Number</td><td>Exact position of the NPC on the map.</td></tr><tr><td>MaxQuest</td><td>Number, or <code>0</code></td><td>Maximum amount of quests from this chain that the NPC delivers. <code>0</code> = no limit.</td></tr><tr><td>OpenNpc</td><td><code>0</code> or <code>1</code></td><td><code>1</code> = the NPC continues to open its normal shop/dialogue in addition to the quest. <code>0</code> = the NPC only deals with the quest.</td></tr></tbody></table>

### <mark style="color:yellow;">Block 1 — character requirements</mark>

<table data-header-hidden data-search="false"><thead><tr><th></th><th></th><th></th></tr></thead><tbody><tr><td><strong>Column</strong></td><td><strong>Accepted values</strong></td><td><strong>What it is</strong></td></tr><tr><td>Quest</td><td>Number</td><td>The quest in the chain to which this requirement belongs.</td></tr><tr><td>Level / MLevel</td><td>Number, or <code>*</code></td><td>Minimum Level/Master Level. <code>*</code> = no requirement.</td></tr><tr><td>Reset / MReset</td><td>Number, or <code>*</code></td><td>Minimum Reset/Master Reset. <code>*</code> = no requirement.</td></tr><tr><td>Zen</td><td>Number</td><td>Required Zen (deducted upon completion).</td></tr><tr><td>WC / WP / GP</td><td>Number</td><td>Required WCoinC/WCoinP/Goblin Point (deducted upon completion).</td></tr><tr><td>AL</td><td>Number, or <code>*</code></td><td>Required Free/VIP1/VIP2/VIP3 account level. <code>*</code> = any.</td></tr><tr><td>RankUser</td><td>Number, or <code>*</code></td><td>Required ranking position. <code>*</code> = no requirement.</td></tr><tr><td>Kills</td><td>Number, or <code>*</code></td><td>Minimum amount of kills (PK). <code>*</code> = no requirement.</td></tr></tbody></table>

### <mark style="color:yellow;">Block 2 — required item (removed from inventory)</mark>

| **Column**     | **Accepted values**                        | **What it is**                                     |
| -------------- | ------------------------------------------ | -------------------------------------------------- |
| Quest          | Number                                     | Which quest it belongs to.                         |
| Section / Type | Number / Number                            | Together they form the required item.              |
| Level          | Number, or `*`                             | Required level (+how much) of the item. `*` = any. |
| Luck / Skill   | `0` (without), `1` (with) or `*` (ignores) | Requires (or not) the option on the item.          |
| Amount         | Number                                     | Required amount.                                   |

### <mark style="color:yellow;">Block 3 — monster to kill</mark>

| **Column** | **Accepted values**                     | **What it is**                                                |
| ---------- | --------------------------------------- | ------------------------------------------------------------- |
| Quest      | Number                                  | Which quest it belongs to (only 1 type of monster per quest). |
| Monster    | Number of an `Index` from `Monster.txt` | Monster that needs to be killed.                              |
| Amount     | Number                                  | Required amount of kills.                                     |

### <mark style="color:yellow;">Block 4 — currency reward</mark>

| **Column**   | **Accepted values** | **What it is**                               |
| ------------ | ------------------- | -------------------------------------------- |
| Quest        | Number              | Which quest it belongs to.                   |
| WC / WP / GP | Number              | WCoinC/WCoinP/Goblin Point given as a prize. |
| Money        | Number              | Zen given as a prize.                        |

### <mark style="color:yellow;">Block 5 — item reward</mark>

<mark style="color:orange;">Same columns as block 4 of</mark> <mark style="color:orange;"></mark><mark style="color:orange;">`CustomQuest.txt`</mark> <mark style="color:orange;"></mark><mark style="color:orange;">(</mark><mark style="color:orange;">`Section`</mark><mark style="color:orange;">/</mark><mark style="color:orange;">`Type`</mark><mark style="color:orange;">/</mark><mark style="color:orange;">`Level`</mark><mark style="color:orange;">/</mark><mark style="color:orange;">`Durab`</mark><mark style="color:orange;">/</mark><mark style="color:orange;">`Skill`</mark><mark style="color:orange;">/</mark><mark style="color:orange;">`Luck`</mark><mark style="color:orange;">/</mark><mark style="color:orange;">`Option`</mark><mark style="color:orange;">/</mark><mark style="color:orange;">`ExcOp`</mark><mark style="color:orange;">/</mark><mark style="color:orange;">`SetOp`</mark><mark style="color:orange;">/</mark><mark style="color:orange;">`JoH`</mark><mark style="color:orange;">/</mark><mark style="color:orange;">`OEx`</mark><mark style="color:orange;">/</mark><mark style="color:orange;">`Socket1`</mark><mark style="color:orange;">–</mark><mark style="color:orange;">`Socket5`</mark><mark style="color:orange;">/</mark><mark style="color:orange;">`Time`</mark><mark style="color:orange;">/</mark><mark style="color:orange;">`Class`</mark><mark style="color:orange;">).</mark>

### <mark style="color:yellow;">Block 6 — buff reward</mark>

<mark style="color:orange;">Same columns as block 5 of</mark> <mark style="color:orange;"></mark><mark style="color:orange;">`CustomQuest.txt`</mark> <mark style="color:orange;"></mark><mark style="color:orange;">(</mark><mark style="color:orange;">`Effect`</mark><mark style="color:orange;">/</mark><mark style="color:orange;">`Power1`</mark><mark style="color:orange;">/</mark><mark style="color:orange;">`Power2`</mark><mark style="color:orange;">/</mark><mark style="color:orange;">`Time`</mark><mark style="color:orange;">).</mark>

### <mark style="color:yellow;">Block 7 — experience reward</mark>

<mark style="color:orange;">Same columns as block 6 of</mark> <mark style="color:orange;"></mark><mark style="color:orange;">`CustomQuest.txt`</mark> <mark style="color:orange;"></mark><mark style="color:orange;">(</mark><mark style="color:orange;">`Experience`</mark><mark style="color:orange;">/</mark><mark style="color:orange;">`LevelUpPoint`</mark><mark style="color:orange;">).</mark>

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

* Unlike `CustomQuest.txt` (loose chain, without an NPC), here progress is counted per NPC — each NPC registered in block 0 has its own chain and its own progress counter per player.
* `MaxQuest` limits how many quests from that NPC a player can complete in total (`0` = no limit); after reaching the limit, the NPC stops offering new quests from that chain.
* With `OpenNpc = 0`, the NPC becomes "quest exclusive" — it stops opening its normal shop/dialogue while delivering this chain.
