Spire
The climb of *First Light: Lavic Odyssey*. Mounted by the scene entrypoint on `mount_spire`, it builds the basalt spire the pilgrim climbs and runs the two hazards living on it. Everything it makes hangs under one `SpireRoot` entity that is temporary and session-scoped, so the sc…
Spire
The climb of First Light: Lavic Odyssey. Mounted by the scene entrypoint on
mount_spire, it builds the basalt spire the pilgrim climbs and runs the two
hazards living on it. Everything it makes hangs under one SpireRoot entity
that is temporary and session-scoped, so the scene file never grows and no
peer receives a second copy of a spire it builds for itself.
What it stands up
- The stair — one tilted basalt tread for each step of the helix in
game.spire.spire, from the caldera floor to the rim at y = 120, with a parapet of hexagonal columns along its outboard lip. - The spire — stacked hex bands with a palisade of columnar basalt on the face the stair winds around, some of it keeping a coal alive at the top.
- Crust gates — twelve places where the stair splits into two crust lanes with a hole between them and one of the two is rotten. The rot shows as glowing cracks, and the cracks are visible only with the helm off. Stand on a rotten lane and it gives way after 0.8 s; it crusts over again nine seconds later.
- Fumaroles — vents in the spire wall that blow on a rhythm, brightening before they throw embers at a bare head.
- Ember rain — the weather. It falls always and lands only on a bare head, and it lands more often the closer the lava is.
KnightSpot_1…KnightSpot_6— one marker per lost knight, on a ledge inside its canto band, facing back down the stair at whoever is climbing. The knights slice fills them.- The rim ledge around
RimMarker, which is where the round is won, inside a broken crown of columns kept low toward the sunrise. - The fire it is lit by — emissive draws bright but throws nothing, so every glow that should reach the rock has a shadowless point light beside it.
Everything walkable carries a collider. Hex pieces collide as their own hull; the rectangular treads keep a box, which for them is exact.
What it talks to
Reads game.lavic: L.state.phase, L.state.helmOn, L.state.lavaHeight,
L.RIM_HEIGHT, L.ENTITIES. Emits on L.bus:
| Event | Args | When |
|---|---|---|
plateCrumble | the lane entity | a rotten crust lane gave way underfoot |
emberHit | — | an ember or a fumarole struck a bare head |
Listens for helm (to show or hide the cracks) and phase (to crust every
lane over again at the start of a round).
Plays through game.sound.sfx when that library is present — crust_crack,
plate_collapse, fumarole, ember_hit — and falls silent rather than
failing when it is not.
Scoped to this part · feeds back into the world's score.