Ironspine
README.md
spine
The tower and the route: the vertebral column of the dead colossus, and the salvage line a long-gone crew left on it.
What it builds
- The column — tapering ribbed vertebrae with heavy end flanges, bolt rows, rib spurs, a dorsal blade, hull plating and a conduit run, with a hydraulic joint spacer between each pair. Four mesh variants, instanced and rotated up 190 m, each carrying a mesh collider.
- The stringer — a twin brass rail bolted up the column, following the route exactly. It is the route marker: a bright line on black iron that reads from the water, and where it stops ("the blank") the pitch has got serious.
- The route — 300-odd holds spiralling up in ten named pitches, every one of
them registered with
Game.addHoldas its geometry is placed. - The Crown Beacon — a neck, a deck ring on buttresses, twelve brass
ignition handles, a lantern cage and an aerial. The lens answers
Game.state.beaconChargeand stays lit once the phase iswon. - Set dressing — torn cabling, hanging chain, wreck slabs caught in the joints, the colossus's other ribs breaching the sea, and the salvage deck at the foot with its winch, crates, railings and floodlight masts.
Reading the route
Colour is the level design. A climber never needs a waypoint:
| What you see | What it is |
|---|---|
| brass twin rail | the route; follow it |
| bright brass rung / ledge / verdigris pipe | a good hold |
| red, jagged, flaking flange | a crumbling hold — it goes under load |
| a sodium lamp | a piton anchor; a fall past it costs the pitch, not the run |
| cold blue at 190 m | the Crown Beacon |
The pitches are authored in ROUTE at the top of init.luau: each has its own
angle sweep, hold spacing, hold kinds, grip quality and crumble rate. Difficulty
rises with altitude physically — the holds get smaller, further apart and worse,
the crumbling ones get more frequent, and the crew's rail runs out.
Ticking
Spine.update(dt) drives the lamp flicker, the beacon, and crumble holds
shearing off the wall. The slice also drives itself off its own root entity, and
the two callers are made idempotent by a timestamp, so the tower keeps answering
even when the assembler's bookkeeping is reset by a hot reload.