Quest vs Field
The key words MUST, MUST NOT, REQUIRED, SHOULD, MAY, and OPTIONAL below are used as in RFC 2119.
Under the target Session Model, the distinction below is just whether a Quest State is layered on top of the Field Context — a free field is a field with no quest attached, not a separate session type. The macro-states here describe the resulting flow.
The player reaches the field in one of two ways, and the game is always in exactly one of two top-level modes: Free Roam or On Quest.
- Free Roam — no quest is accepted. From the city teleporter the player MAY select any unlocked free field.
- On Quest — a quest has been accepted at the guild counter. The player travels to the quest's area from the teleporter.
Shared format
Free fields and quests MUST use the identical quest JSON structure — an NPC companion, a mission name, principal text, and an ordered sequence of areas with their objectives, enemy placements, and object locations. A free field is NOT a quest; it merely reuses the quest format so both run through the same field machinery.
Areas and warp points
Each field is an ordered run: Area A → transition → Area B → boss. Players never see the letters — areas are surfaced as numbers, with a fixed mapping: A is always "1" and B is always "2" (the transition and boss are traversed within the run, not warp targets).
One rule governs both modes: the teleporter MUST list exactly the areas the player has reached in the current run as warp points. What differs is the set of areas in play:
- Free Roam — every unlocked field, each starting at "1". Reaching Area B in a field MUST add that field's "2".
- On Quest — only the quest's authored sequence, which MAY span fields (e.g.
Valley 2 → Snowfield 1 → Wetlands 2). The teleporter MUST start with only the quest's first area; each later area in the sequence MUST be added as the player reaches it.
Free Roam rules
- While no quest is accepted, the player MUST have access to every field they have unlocked (Valley, Snowfield, …) at the areas they've reached.
- Free-field run-state — defeated enemies, opened gates, collected drops, cleared cells, and reached warp points — MUST persist across field visits and city returns within the Free-Roam period. Travelling Valley → city → Wetlands → city and back MUST retain each field's state; it MUST NOT reset on moving between free fields.
On Quest rules
- Accepting a quest MUST clear all retained free-field run-state (including reached warp points) and close any open telepipe.
- While on a quest, the teleporter MUST only offer the quest's content; free fields MUST NOT be selectable.
- Completion vs. exit. Meeting a quest's objectives marks it complete but does NOT leave the quest — the player stays in the quest field and MAY keep exploring and round-tripping through a telepipe. The quest is left only by reporting it at the guild (rewards claimed) or cancelling it; either returns the game to Free Roam and closes any open telepipe (see Telepipe and the Session Model).
- On returning to Free Roam, the free fields MUST be reset to their initial state — every enemy and object restored and every field back to area "1" — so the player starts from the beginning again.
Conformance scenario — Free Roam
Given Free Roam with Valley, Snowfield, and Wetlands available and no areas yet reached this period:
- The teleporter lists Valley 1, Snowfield 1, Wetlands 1.
- Warp to Valley 1 (Area A).
- Cross the transition into Valley B, then clear the boss.
- Return to the city.
- The teleporter now lists Valley 1, Valley 2, Snowfield 1, Wetlands 1 — reaching Valley B added the Valley 2 warp point; Snowfield and Wetlands are unchanged.
- Re-entering Valley 1 or 2 shows the cleared run-state (enemies stay defeated), because run-state is retained during Free Roam.
Conformance scenario — Quest
Continuing from above, at the guild counter the player accepts a quest whose sequence is Valley 2 → Snowfield 1 → Wetlands 2:
- All retained free-field run-state (cleared enemies, the Valley 2 warp point) is cleared.
- The teleporter lists only Valley 2 — a quest always starts at its first area.
- Warp to Valley 2 and play through.
- Proceed to Snowfield 1 (the next area in the sequence).
- Proceed to and complete Wetlands 2 (the final area).
- Drop a telepipe and return to the city.
- The teleporter now lists Valley 2, Snowfield 1, Wetlands 2 — each quest area became a warp point as it was reached.
- Report the quest at the guild counter → rewards granted, game returns to Free Roam.
- The teleporter lists Valley 1, Snowfield 1, Wetlands 1 again — every field reset to its initial state.
Why the distinction matters
Because free fields and quests share the same format, the guild counter and session bookkeeping MUST key off the Free-Roam / On-Quest mode rather than the presence of a loaded quest structure. Treating a free field as a quest (e.g. offering "Cancel Quest" while the player is merely free-roaming) is out of spec and is the root of the telepipe / quest-counter stranding behavior — see Telepipe.
Implemented by
scripts/autoloads/session_manager.gd(SessionManager) — owns the City/Field macro-state (_location) and the Free-Roam ↔ On-Quest transitions viaenter_field()/accept_quest()/cancel_accepted_quest()/return_to_city().scripts/autoloads/scene_manager.gd(SceneManager) — performs the actual scene loads/transitions (goto_scene+ overlay stack) between city and field scenes.