Story Progression

Required story quest Optional side quest

The key words MUST, MUST NOT, and MAY below are used as in RFC 2119. Terminology: the unit of content is a quest. Some code identifiers say "mission" (completed_missions, is_mission_completed, complete_mission) — read those as "quest".

Quest classification

Quest lifecycle

While a quest is accepted the game is On Quest (see Quest vs Field). Exactly two actions return it to Free Roam — report or cancel:

Return to Title (from the start menu) saves the game and returns to the title screen, dropping the active field session. The end credits are the one exception to "not saved until reported": when the credits begin — after Dark Falz falls in Dark Castle — the game triggers that quest's complete and clear, then saves and returns to title exactly like Return to Title. Dark Castle therefore shows as CLEAR at the guild counter without ever being formally reported.

Unlocking free fields

Clearing an area in a quest MUST unlock that area's location for Free Roam — the location is added to the Free-Roam teleporter (see Quest vs Field). For example, clearing Paru during The Paru Pact unlocks the Paru field.

This rule is intentionally quest-agnostic: quests MAY be added, removed, or re-routed, and any quest that clears a not-yet-unlocked location unlocks it the same way. Unlocked locations are progression and MUST persist — unlike the within-field run-state, they are NOT cleared when a quest is accepted or reset afterward.

An idempotent upsert is the natural fit: clearing an area calls unlock(area), which adds the location if absent and is a no-op if it's already unlocked. No per-quest bookkeeping is needed — the set of unlocked locations simply grows.

Guild counter status tags

TagMeaning
(none)available to accept
LOCKEDa parent_quest / required_quests entry isn't completed yet
REPORTcompleted this session, awaiting turn-in (the Completed state)
CLEARreported & persisted — is_mission_completed(id) is true

Ordering & lock display

data/quests/manifest.json is the canonical progression order; the guild counter sorts by manifest position so quests read top-to-bottom in story order. Locked quests MUST still appear (muted, naming the prerequisite: "[LOCKED] Complete \"X\" to unlock") rather than being hidden, so the player can see what's ahead.

Rewards & credits

Reporting the final story quest, Dark Castle (the Dark Falz fight), rolls the end credits on victory.

Implemented by