> For the complete documentation index, see [llms.txt](https://axiomemu.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://axiomemu.gitbook.io/docs/data/questworld.md).

# QuestWorld

The World Quest system: a branching quest registry with up to three next-quest options per row, per-class availability, Gens faction gates, and per-quest cooldowns measured in days. Runs alongside [Quest.txt](/docs/data/quest.md) (classic quests); players can have both active.

## File Location

```
Data/QuestWorld/QuestWorld.txt
```

Loaded once at GameServer startup. Changes require a restart.

## Format

```
//Index Group Number StartType MonsterClass CurrentState
// NextIndex1 NextState1 NextIndex2 NextState2 NextIndex3 NextState3
// RequireIndex RequireGroup RequireState RequireMinLevel RequireMaxLevel RequireFamily RequireCooldown
// DW DK FE MG DL SU RF
```

Terminated by `end`.

## Columns

### Identity

| Column         | Effect                                                                                                                                                                          |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Index`        | Quest ID within its Group                                                                                                                                                       |
| `Group`        | Quest group ID. Quests with the same Group form a sequence (up to 20 groups per character)                                                                                      |
| `Number`       | Sequence number within the group (0, 1, 2, ...)                                                                                                                                 |
| `StartType`    | `0` = offered via NPC dialog list when talking to `MonsterClass`; `1` = auto-triggered chain follow-up shown as a button after a prior quest completes                          |
| `MonsterClass` | NPC class that offers or turns in the quest                                                                                                                                     |
| `CurrentState` | State this row describes. `0` = not taken / available, `1` = accepted / in progress, `2` = rejected branch, `3` = finished, `4` = cancelled. `*` = wildcard (any current state) |

### Branching

QuestWorld supports up to three next-quest pointers per row (player picks one of up to three follow-ups).

| Column           | Effect                                                                        |
| ---------------- | ----------------------------------------------------------------------------- |
| `NextIndex1/2/3` | Next quest Index to unlock. `*` = unused                                      |
| `NextState1/2/3` | State the next quest starts in (`0` = normal, `1` = accepted, `2` = rejected) |

### Prerequisites

| Column                                | Effect                                                                                                                                           |
| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| `RequireIndex`                        | Prior quest Index that must be in `RequireState` for this row to be eligible. `*` = no prerequisite                                              |
| `RequireGroup`                        | Prior quest Group                                                                                                                                |
| `RequireState`                        | Required state of the prior quest. Values match `CurrentState`: `0` = not taken, `1` = accepted, `2` = rejected, `3` = finished, `4` = cancelled |
| `RequireMinLevel` / `RequireMaxLevel` | Character level range. `*` = no limit                                                                                                            |
| `RequireFamily`                       | Gens faction requirement. `*` = any                                                                                                              |
| `RequireCooldown`                     | Minimum days since last completion (calendar day difference). `*` = no cooldown, repeat blocked once finished                                    |

### Per-Class Availability

| Column        | Effect                                                                                                                                                                 |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `DW` ... `RF` | Per-class availability. `0` = hidden; `1` = available to 1st class only; `2` = available to 1st and 2nd (Change-Up) class; higher values extend to further class tiers |

## Multi-Row State Variants

Multiple rows with the same `Index`/`Group` describe the quest under different prerequisite combinations. The engine walks rows in order and picks the first whose `RequireIndex`/`RequireState`, level range, faction and class gates all match the player.

## Cross-File Dependencies

| Attribute           | Related in                                                                                                                                    |
| ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| `MonsterClass`      | [Monster.xml](/docs/data/monster/monster.md)                                                                                                  |
| `Index`/`Group`     | [QuestWorldObjective.txt](/docs/data/questworld/questworldobjective.md) and [QuestWorldReward.txt](/docs/data/questworld/questworldreward.md) |
| `RequireFamily`     | [Common.dat Gens System](/docs/gameserver/common-dat.md#gens-system-settings)                                                                 |
| Quest XP multiplier | [Common.dat](/docs/gameserver/common-dat.md) `AddQuestExperienceRate_AL0-3`                                                                   |

## Common Issues

* **Quest chain dead-ends** - all three `NextIndex*` are `*` on a non-terminal row; intended only on the final quest of a group
* **Player cannot re-take quest after cooldown** - `RequireCooldown` is in days, not hours; a freshly finished quest needs at least that many calendar days before the same quest becomes available again
* **Wrong next quest offered** - several rows share `Index`/`Group`; the first row whose prerequisites match wins
* **Faction quest offered to wrong side** - `RequireFamily` set but does not match the player's `GensFamily`
* **Level gate blocks too early** - `RequireMinLevel` higher than the class can reach at that point in the chain
* **Class column denies Change-Up only** - value `1` is 1st class only. Use `2` for both 1st and 2nd class
