game database

/ every number visible. all values are pulled from the source of truth - the file is cited under each table.

the zone

knobvaluenote
tile size32 pxthe grid unit
width30 tiles960 px - full width always visible
depth36 tiles1152 px deep - scrolls; the tension axis
viewport depth22 tiles704 px visible - the wall looms from off-screen
extract strip6 × 2 tilesgenerous: near-misses succeed, not cheap-kill

source: src/config/tuning.ts · zone, extraction

the husk

knobvaluenote
base speed160 px/sat upgrade level 0 - the anchor everything is tuned against
radius12 pxthe husk's footprint
backpack6 slotsforces "is this node worth a slot?"

source: src/config/tuning.ts · player, backpack

the two pressures

decay

knobvaluenote
rate1.2% / sfraction of current haul value lost per second (compounding)

the rot-tide

knobvaluenote
grace9 sthe wall is frozen this long so you can commit to a direction
base speed14 px/ssouthward, after grace
acceleration0.6 px/s²turns "go deeper" from a free option into a late trap
danger range280 pxwithin this gap the dread (vignette + drone) ramps up
caughtlose 100%the whole haul is lost - the husk survives

source: src/config/tuning.ts · decay, rotTide, catch

salvage nodes

nodes sit in depth bands from the deep (north) edge toward extraction. value scales super-linearly with depth; the deepest nodes are where the rot arrives first.

bandcountvalue eachnote
deep340high value, rot arrives first
mid422
near510low value, safe

source: src/config/tuning.ts · nodes.bands (node radius 14 px)

the three upgrades

each bends a different edge of the risk/reward frontier; none trivializes the loop. cost to buy the next level is round(baseCost × costGrowth ^ level).

upgradeeffectmaxcost laddertotal
swift move faster · outrun the rot (×1.18 speed / level) 3 120 · 198 · 327 645
satchel more slots · carry deeper hauls (+2 slots / level) 5 150 · 233 · 360 · 559 · 866 2168
cure haul rots slower (×0.7 decay / level) 3 180 · 279 · 432 891

source: src/config/tuning.ts · upgrades · cost formula src/economy/upgrades.ts costFor(). all three maxed = 3704 gold (first spike still ~run 2-3; max lands ~beyond run 25).

the refuge - cosmetic sink

gold's open-ended cosmetic destination. one-time named reclaims, then an uncapped tend. never run-power - granted zero advantage in a descent.

tiercostnote
hearth100reachable run 2-3 · first warmth
lantern350
garden900
grove1800
haven3500home whole · lands ~around upgrade-max
tend×1.6 eachpast haven, uncapped sink - late gold never orphans

source: src/config/tuning.ts · refuge

the bloodline

the husk is mortal: it ages over runs, dies of age, and passes to an heir. age is never read by any run system. gold "feeds the line" - it does not buy off death (mortality is inevitable), and feeding never touches age, so there is no maintenance-or-lose treadmill.

knobvaluenote
lifespan14 descentsruns a husk makes before it dies of age

legacy tiers - feeding the line (cosmetic)

tiercost
remembered500
tended1200
rooted2500
ancestral4500
feed×1.7 each

source: src/config/tuning.ts · bloodline

founding bloodlines

the gen-0 cohort - the "early ones". a durable, finite ordinal handed out by the ledger. display / meta only, exactly like the token - never gates play, never read by any run system. the earliest cohort wears a rarer cosmetic mark.

bandordinalsmarkflavor
first ash#1 - 100among the first to stand in the ash
deep root#101 - 500rooted before the line was known
early frost#501 - 1000·early, before the thaw

source: src/config/founding.ts · cap = 1000, server-enforced. past the cap there is no band (the honest "you weren't early" case).

husk skins

the cosmetic look of your line's husk, chosen at first entry and re-selectable. cosmetic only - a texture/tint swap, never run-power. the sim is byte-identical regardless of skin. rarity-free: every skin is equal.

moss tideworn ashen emberlit verdant gloam

source: src/economy/huskSkin.ts · HUSK_SKINS (default = moss; tideworn is a bespoke sprite, the rest are tints of the base)

the glass-box sim

the conversion vault and seasons scaffold ship flagged off (ECONOMY.live = false) - a pure, tested simulation, no live money, no UI surface. listed here because the box is glass on purpose. see the economy page for what it means.

vault (simulation knobs)

knobvaluenote
initial pool1,000,000finite simulated treasury (display-only, not a real supply)
release fraction2% / epochof what remains - floating, never a fixed payout
epoch~daily86,400,000 ms
min release floor1below this, the epoch releases 0 (pool kept)

seasons (cosmetic)

knobvaluenote
season length~weekly604,800,000 ms · deterministic off a fixed epoch
activity / run5showing up
activity / extract10a clean extraction (honest play, never a burn)
activity / salvage+1 / 50 goldthe size of an honest haul
badge threshold200season activity to earn the cosmetic badge
pool target5000collective activity that fills the season pool

source: src/config/economy.ts · ECONOMY.vault, ECONOMY.seasons · seasons grant only badges/titles, never gold, never power.