Skip to content

Test-fly checklists

The window.__* levers are installed on every boot, but a production build runs with a silent console, so load with ?diag (or run __diag(true) and reload) to see what they print. Section G lists them.

  1. Intro: start a fresh world, or use Settings > Save File > Replay intro. Expect a title card (the seeded system and era names and an epigraph) and PRESS ANY KEY; the intro never starts by itself. After the key: a 3 s black hold with stars only, then a tilt that brings the planet’s night disc and the moon into the eclipse composition (the ENTER beat lasts at least 12 s). SUNRISE: the sun rises over the limb (rim first, then disc and glare); this beat also waits up to 20 s for the world and the giant oak’s collider. CARRY: the winged figure flies you down one descending path, circles at a station altitude while terrain streams (at most 20 s), then hovers 35 m above the landing ground until its cue line (“You were of the sky once…”) has begun. DROP: it lets go, you fall the last 35 m under physics, and it banks away. HANDOFF: a 1 s blend into the orbital camera, the closing line and your epithet. The narration is pre-recorded (public/audio/intro/). Esc or Space skips; ?nointro bypasses the sequence. __intro() reports the beat, the current line, timed-out beats, skip state and the ground and voice gates; __landing() reports the landing pick. Report camera framing, subtitle legibility and any stall.
  2. Dialogue: talk to several NPCs (__talkNearest()). Menus and voices should differ between NPCs. __aura() shows your aura tiers; the character sheet’s “Journey & aura” block shows Flight and Aura.
  3. Flight lock: a new character cannot fly (X shows a toast). __flightUnlock(true) unlocks flight; then wear wings to fly.
  4. The Sensei’s Trials: at level 3 or more (__grantXp(n)), the questgiver of a town whose landmark is a shrine can offer this wings chain: the shrine, an offering, walking the hermit’s hound home, then the giver’s word. The turn-in unlocks flight and auto-equips the wings. (The Grafter and the Guard Oath are the other two wings paths.)
  5. The Lost One: __escortAccept(), __gotoEscort(), call the animal (__escortCall() skips the [E] call), walk it home, turn in. __escortKill() exercises the loss path.
  6. Bow: equip a bow and carry arrows. Hold LMB to draw (the hold time is the charge) and release to shoot; the shot follows the mouse pointer (the screen centre when the pointer is locked). Arrows arc, stick in terrain, walls and bodies, and [E] picks up an arrow stuck in the world. Holding a draw and sprinting drain stamina.
  7. Spells: Emberbolt, Mend and Lantern unlock at levels 3, 5 and 8. Digits 1 to 8 are the hotbar (drag spells onto it from the character sheet’s Magic block, or click one to fill the first free slot); a slot key selects and casts. Check the WILL bar, the bolt’s light and scorch, and that the lantern follows you.
  8. Bandits: __bandits() lists camps, __gotoBanditCamp(0) takes you to one. Expect the crew at their fire, taunts, a fight and loot; an accepted “Road Toll Revoked” quest progresses, and the dead stay dead after a reload.
  9. Animals: a friendly animal (dogs, alpacas, donkeys, horses and the other rows marked friendly in src/wildlife/creature-roster.ts) comes over during its seeded window (__petNearest() forces a pet). [E] Pet gives a pose, a small spark burst and a toast.
  10. Persistence: Settings > Save File: Export save downloads a .json, Import save restores it. The status line there reads “Last saved N s ago” (the HUD line appears only when there is a problem, or during the intro). Talk to an NPC, reload, and it remembers you.
  11. Population: visit another body. About 70% of its townsfolk are its dominant race, the rest are races on friendly terms with it; a body whose dominant race has no such friends is all one race (src/game/identity/population-mix.ts).
  12. Furnished buildings: __visitBuilding('lounge','inn'), __visitBuilding('inside','home') or __visitBuilding('bedroom','home') puts you in one. Expect furniture, tableware, lamps and a lit hearth from the prop packages; nothing blocks a doorway; NPCs sit on the chairs, vendors stand at counters, residents and the player (E on a bed) lie on beds. Loose items stay put until your capsule touches them. __propPackages() should show ready equal to packages within a few seconds at a tavern. Watch for props through walls, floating plates, unreachable seats and white textures (a failed package logs a [prop-pkg] warning, kept in __logs() on a build).
  13. Walls, chases and a town’s day: in a town at working hours, residents stroll, browse the market, pair up to chat and go to the inn in the evening; merchants stay at their counters and guards walk the streets. Nobody walks through a wall at any distance, animals stay out of houses (doors are shut to them) and herds keep their spacing. Stand inside a building and provoke a guard outside (__agentTest('setupChase')): the guard comes round through the door. With a bounty, a guard who sees you walks up to talk from anywhere in town. Fish turn along sea cliffs and overhangs instead of swimming into the rock (__creaturePops() counts swimWall, and swimInside should stay near 0). __agentWhy() should show no walk-outs of any size and few give-ups.

Written by release:site-sync from docs/rpg-next-steps.md at v2026.09.24. Edit the engine document, not this page.