Quests¶
How to play¶
- Quest journal — key
J. - On-screen tracker — a persistent widget (
QuestTracker) shows the active quest's objectives. /quest [list|accept|abandon|turnin|status] [id]— manage quests from chat.
Quest types: KILL (defeat N of an NPC type) and FETCH (collect N of an
item). QuestRegistryLoader loads definitions at startup.
Quest givers¶
Every Region with at least one suited Quest has exactly one Quest giver, standing
near the Region's centre. It offers the Quests whose level lies in the Region's
Danger tier and whose kill targets all live in the Region's
Roster, so a Quest never sends you after an NPC that does
not live there (a kill still counts wherever it happens). The giver's NPC type is
a quest_giver whose spawnBiomes include the Region's Biome, else any
quest_giver of the right level. /npc roster shows the Region's giver and how
many Quests suit it.
/quest accept <id> only accepts a Quest the Quest giver of your current Region
offers (admins can accept any Quest), and its autocompletion lists those Quests
plus your own.
At load, the server logs the Biome × Danger tier pairs whose Regions can never
get a Quest giver (no suited Quest, or no dry ground in a sea/lake), and
ShippedQuestConfigTest prints the same table — the backlog of Quests to write.
Claiming the reward: autoloot vs. turn-in¶
A quest's autoLoot flag decides how its reward is claimed:
- Autoloot (
autoLoot: true, the default) — the reward is granted the instant the objective is met; the quest goes straight toCOMPLETED. - Turn-in required (
autoLoot: false) — meeting the objective only moves the quest toREADY_TO_TURN_IN; the player must go back to the quest-giver NPC that offers it and use/quest turnin <id>(surfaced as a "Récupérer" button in the NPC's quest dialog) to actually receive the reward. All tier-1 (zone_tier1_*) quests require a turn-in.
Configuration¶
Quest definitions are loaded from YAML by QuestRegistryLoader. Objectives
reference NPC types (NPCs) and item types
(items). The server refuses to start if a KILL or BOSS
objective names an NPC type that does not exist (/reload keeps the current
Quests instead), and logs a warning when the target never
spawns within the Quest's Danger tier (autoSpawn off, or its level range
misses the tier). All quest definitions are served at
GET /api/quests, including the autoLoot flag.
XP and rewards on completion flow through the RPG progression system.