1 world travel waypoints and zone transitions
forgejo-actions edited this page 2026-07-15 12:43:13 +00:00

World Travel, Waypoints, and Zone Transitions

What This System Is

World travel connects authored scenes into a navigable world without replacing local door and trigger transitions. Doors continue to move actors between nearby scene entry points; assets/gameplay/world_travel_catalog.json owns world-map, walking-route, ferry, caravan, portal, and fast-travel links.

How Authors Use It

Each node has a stable ID, display label, scene ID, entry-point ID, map coordinates, initial discovery policy, and optional unlock ID. Discovery is character state stored inside the existing authoritative gameplay-state JSON, so it survives reconnects without a separate persistence table. Discovered node unlocks also enter the shared gameplay-condition state and can gate quests, dialogue, services, events, or other routes.

Startup integrity verifies every scene, entry point, world-time zone, cost item, currency, and interruption event. Graph validation rejects duplicate IDs, missing endpoints, self-routes, invalid danger values, unreachable nodes, and routes that require the destination's own discovery unlock.

Routes and eligibility

Routes are directional. Bidirectional travel is authored as two routes so designers can vary time, cost, danger, gates, or availability by direction. A route defines:

  • travel mode and duration;
  • cooldown and danger rating;
  • destination-discovery requirements;
  • shared gameplay conditions;
  • item and currency costs;
  • an optional deterministic world-event interruption.

route_availability explains every blocker rather than returning only a boolean. It checks current origin, discovery, authored conditions, balances, inventory, and route cooldowns.

Rules And Invariants

plan_travel resolves an immutable transition transaction from a request ID and expected state revision. The plan contains the destination scene and entry point, costs, discovery changes, cooldown, departure and arrival world minutes, and any deterministic interruption.

apply_world_travel_transaction uses clone-then-commit semantics. A stale revision, changed origin, or insufficient balance leaves the original state untouched. Reapplying the same request returns AlreadyApplied without consuming costs twice.

Travel reports elapsed world minutes rather than directly changing a realm-wide multiplayer clock. The hosting authority can advance an isolated or party instance, or hold a character in transit until the shared clock reaches the arrival minute. Arrival projections use the same calendar, weather, lighting, events, and NPC schedules as the authoritative world-time system.

Player and editor surfaces

The existing Open World Map action and MapFastTravel panel now receive authored travel-node and route projections alongside quest markers. Nodes include map coordinates, discovery/current-location state, and destination spawn details. Routes expose mode, duration, danger, costs, and gate state.

In the editor, open Scene → Detailed Scene Tools → Scene Lighting → World Travel & Waypoints. The panel lists routes originating in the current scene and previews arrival date, destination weather, lighting, costs, gates, cooldowns, danger, and interruption hooks using the shared world-time scrubber.

Validation And Debugging

The authoring dependency graph records travel dependencies on destination scenes, world time, game-data costs, and world-event interruptions.

Startup integrity verifies every scene, entry point, world-time zone, cost item, currency, and interruption event. Graph validation rejects duplicate IDs, missing endpoints, self-routes, invalid danger values, unreachable nodes, and routes that require the destination's own discovery unlock.

Examples

Author two directional ferry routes when outbound and return travel should have different costs or conditions. Use request ids and expected revisions so retrying a fast-travel command cannot consume currency twice.