For the complete documentation index, see llms.txt. This page is also available as Markdown.

QuestWorld

World Quest registry - branching per-NPC quest table with per-class gates, Gens faction gates, and per-quest cooldowns

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 (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

Quest XP multiplier

Common.dat 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

Last updated