--- title: LANTERN — Currency Re-Mean (Ore/Aether/Biomass/Charge → the light economy) date: 2026-07-13 tags: [roadmap, lantern, economy, currency, save-schema] status: draft-spec permalink: gamevault/06-roadmap/lantern-currency-remean --- # LANTERN — Currency Re-Mean > Re-means the current economy to the LANTERN currency set ([[Identity_Lantern]] currency table). Feeds the > economy rework + the save schema. **Most of this is a value-relabel** — the ledger (`StorageEntry`, ItemId- > keyed) + personal bag (`InventorySlot`) + swept harvest plumbing stay; the **byte ids re-mean and the meters > change**. Grounded in the resource ground-truth: 4 `ResourceId` bytes today (Ore/Aether/Biomass/Charge), > `StorageEntry{ushort ItemId; int Count}` on the global untagged ledger, personal `InventorySlot`, unified > swept `ResourceHarvestSystem`. ## The seven LANTERN currencies — and what each maps to | LANTERN | What it is | Current analog | Representation | |---|---|---|---| | **Flame** | your life — the loaned fire in your chest | `Health` + respawn | **NOT a ledger resource** — it's `Health`/`RespawnState`. The death "split" (Phase 5) rides this. | | **Lumen** | spendable light — abilities, fuel, the banked economy | **Aether** (universal charge) + the win-meter feed | Ledger byte; also **banked** at lanterns → the **Lamp meter** (the `GoalProgress`-equivalent campaign readout). The primary economy. | | **Gloam** | the wild radiance grafts drink — the **mutation feed** | (new; kill/vent/bloom-derived) | A run/descent-scoped meter that fills toward the **paced mutation thresholds** (Phase 4). Server-derived from kills/vents; likely NOT a stored ledger row (a per-descent counter). | | **Loudness** | how much attention your light draws | the threat/aggro pressure (`WaveSystem` escalation) | **Derived meter, not stored** — party lamp-output sum → spawn/aggro pressure; per-Wick pip on the HUD. Rides the global untagged ghost ([GhostField]). | | **Salvage** | build materials | **Ore** | Ledger byte. Feeds building v1 (lanterns, small buildables). | | **Chum** | garden feedstock (automation input) | **Biomass** (reserved automation input) | Ledger byte. **Slice: likely dormant** (automation is assignment-based, v1.0 — [[Lantern_Strip_Mothball_Inventory]]). Keep the byte reserved. | | **Tallow** | rendered fixative — **fixes a mutation** | (new; the scarce fix material) | The scarcity gate of the mutation economy (1 fix slot/Spark). A ledger byte OR a slot count. Phase 4. | ## Proposed `ResourceId` byte assignment Bytes, never enums (Burst rule). Re-mean the existing values where the meaning survives; free the mothballed one; append the new ones: | Byte | Was | Becomes | Notes | |---|---|---|---| | 0 | Ore | **Salvage** | build material (value survives, relabel) | | 1 | Aether | **Lumen** | universal spend + banked light (value survives, relabel) | | 2 | Biomass | **Chum** | garden feedstock, slice-dormant (relabel, reserved) | | 3 | Charge | *(freed)* → **Tallow** | turret-ammo Charge is mothballed (no turrets); reuse the byte for Tallow, or leave 3 dead and add Tallow=4 | | 4 | — | **(Gloam)** | if stored; more likely a per-descent server counter, not a ledger row | - **Flame** and **Loudness** are **not** ledger bytes (Health; a derived meter). Do not give them `ResourceId`s. - ⚠ **Re-meaning byte 3 (Charge→Tallow) changes a persisted VALUE's meaning.** The save persists `Ledger[]` as `{ItemId, Count}` rows — an old save's `ItemId=3` (Charge) would load as Tallow. **RESOLVED (operator, 2026-07-14): start LANTERN saves FRESH** — a new save version epoch, no migration of co-op-Hades saves (old saves won't load into LANTERN). This dodges the value-remap entirely; the byte-3 (Charge→Tallow) reuse is safe because no old save is ever read. ## What changes vs. stays - **STAYS:** `StorageEntry` global ledger (ItemId-keyed), `InventorySlot` personal bag (`[GhostField]` `OwnerSendType.All`), the unified swept `ResourceHarvestSystem` (nodes + clutter, immortal-sink guard, `math.max(1,(int)yield)`), the `G`-deposit RPC, cargo-into-bag routing. - **CHANGES:** harvest sources re-theme (Ore/Aether/Biomass nodes → **Lumen nodes + organ drops**); the **carried-vs-banked cargo** distinction is new (unbanked Lumen/organs strand with the suit on death — the Phase-5 split); the win-meter (`GoalProgress`) becomes the **Lamp meter** fed by banked Lumen; **Loudness** replaces the incursion/attention timer as the spawn-pressure driver. - **NEW meters on the global untagged ghost:** Lamp (campaign), party Loudness sum. **New per-descent server counters:** Gloam (mutation feed), Tallow slots. ## Sequencing This is **not** a standalone slice — it lands *inside* the phases that need each currency: Lumen + Salvage + harvest re-theme with Phase 2 (harvest) / Phase 3 (banked light, Lamp meter); Gloam + Tallow with Phase 4 (mutations); Loudness with Phase 2 (brighter-is-louder). This doc is the **single source of the mapping** so those phases don't each re-decide the byte ids. ## Related - [[Identity_Lantern]] — the currency table + the death split + brighter-is-louder - [[Lantern_Strip_Mothball_Inventory]] — ledger/harvest/automation salvage verdicts - [[Lantern_Operator_Questions]] — the fresh-saves-vs-migrate fork (item 6) - [[Roadmap_Lantern_Slice]] — the phases each currency lands in