Building ladders
Part of The design hub. Drafted 2026-08-30. Compact entries following the template in Blacksmith Ladder (building template) (see also Engineer Ladder (short-ladder example), Inn Ladder (service-building example)). Conventions apply throughout: shell + ONE function at construction; tier = era door; modules purchasable behind each tier; recipes collected; NPC gates anchor to the TOP of each ladder (top = Master, one below = Journeyman). Ladder length = eras remaining from unlock.
Era assignments settled here (fills gaps in the hub schedule): Mine + Lumber Camp join Era 1 (copper and logs must be processable from the start); Fishery, Mill, Trading Post join Era 2.
Era 1 buildings (5-tier ladders)
Town Hall
Prototype (v0.1.21, 2026-09-03): last Era-1 shell. "Town Hall" (8 timber, 8 stone, 30s), unstaffed; ledger line in its dialog (era, buildings standing, store, villagers/haulers, mayor). Notice Board module = 3 faceless bounties (quest giver "board", Apprentice). Mayor's Office module = APPOINT any recruit with a style for 10 gold; styles live inQuests.STYLESwith Apprentice-strength deltas × quality: Steward −15% producer cycle, Builder −20% build/module time, Merchant ±5% prices, Loremaster −25% respec fee, Shepherd +25% meal duration (Marshal parked until raids). Recruit styles: Orrin Builder (J), Marla + Tamsin Shepherd, Wren Merchant, Ansel Loremaster, Bram + Hollis Steward. Charter (service, not a module yet): when every building stands, 40 gold + 3 charcoal →city.era2 → Trading Post merges itsstock_era2(iron sword/mail, charcoal). Edicts: not yet (t1 = 0 slots by design).
Shell: founding stone — claims the city site, basic stockpile registry. Edict slots = tier − 1 (The Mayor (governance system)).
- t1 modules: notice board (simple bounties), stockpile yard
- t2 Mayor's office (install a mayor; ledger begins) · archive
- t3 charter hall (era certification ceremonies) · census desk (small upkeep efficiency)
- t4 (J) treasury (raises money cap; theft-protected share) · envoy desk (read rival-city Heat/stance)
- t5 (M) council chamber (parked: deputy/second governance style) · aether beacon (city-wide capstone aura, TBD)
Chapel
Shell: shrine — heal over time in city + ordination (class selection, Class Roster & Skill Schools); respecs from t2.
- t1 modules: healing font (faster heal), reliquary (unlock respec)
- t2 festival grounds (morale shock action, Morale (city mood system)) · infirmary (injured/rescued NPCs recover faster)
- t3 bell tower (louder raid alarm: small warning bonus, stacks with watchtower) · sanctuary (sheltering NPCs resist kidnap)
- t4 (J) high altar (stronger festivals; cheaper respecs) · pilgrim house (Devotion-tome visitors)
- t5 (M) aether shrine (death penalty softened: gear dulls less on death) · grand reliquary (holds one "insurance" blessing, TBD)
Farm
Prototype (v0.1.20, 2026-09-02): third producer, "Valley Farm" (4 timber, 2 stone, 20s), keeper Tamsin (2 quests). 2 cabbage per 40s, cap 8; Chicken Coop = +1 fowl per harvest; Well = cycle ×0.7. Cabbage/fowl stand in for grain/eggs because the owned icon packs have no wheat, egg, or bread — swap names + icons when a pack with them arrives; the data is one line each. Hen House quest teaches the Inn's second meal, Farm Supper (+6% power, 240s: milder and longer than Boar Stew, so the choice between meals is real).
Shell: field plot — grain.
- t1 modules: chicken coop (eggs/meat variety), well
- t2 orchard (fruit — food variety) · plough team (throughput)
- t3 greenhouse (off-season growing; a few herbs) · granary silo
- t4 (J) irrigation works (throughput; exotic crops = Q3 ingredients)
- t5 (M) aetherbloom field (top meal ingredients)
Mine
Prototype (v0.1.17, 2026-09-02): first PRODUCER building. Shell "Valley Shaft" (6 timber, 2 stone, 25s), keeper Bram (2 quests). Every 30s the yard gains 1 ore + 1 stone, each capped at 6 — the cap is the come-home pull; COLLECT moves the yard to the bag. Cart Rails = cycle ×0.6 (throughput); Lamp Room = +1 ore per haul (yield). The same produces/cycle/cap data drives any future producer (Lumber Camp, Farm, Fishery).
Shell: valley shaft — copper ore + fieldstone. (Blacksmith smelts; the Mine extracts and crushes.) Higher-era ore is hauled home from zone deposits and processed here.
- t1 modules: cart rails (throughput), lamp room (yield)
- t2 deep shaft (iron + coal) · ore crusher
- t3 gem seam (gems + quartz sand — Jewelcrafter/Engineer inputs) · pump room
- t4 (J) mithril gallery (process zone-hauled mithril) · assay office (better yields citywide)
- t5 (M) aetherite bore (trace aetherite; process hauled aetherite)
Lumber Camp
Prototype (v0.1.18, 2026-09-02): second producer, same data shape as the Mine. "Felling Crew" (4 timber, 3 stone, 20s), keeper Hollis (2 quests). 2 timber per 30s haul, yard cap 8. Sawpit = +1 timber per haul; Charcoal Kiln = +1 charcoal per haul (a module can add a new product — first use of that rule). Charcoal is a plain material for now (sells for 1); it becomes forge fuel when the Blacksmith ladder reaches iron.
Shell: felling crew — logs.
- t1 modules: sawpit (planks — the refined form), charcoal kiln (fuel)
- t2 drying shed (seasoned lumber) · second crew (throughput)
- t3 waterwheel sawmill (throughput) · hardwood rights (zone timber processing)
- t4 (J) precision saw (exotic timber; instrument-grade stock)
- t5 (M) aetherwood handling
Era 2 buildings (4-tier ladders)
Drill Yard (Drillmaster) — added from the 2026-09-05 playtest
Prototype (v0.1.37, 2026-09-05): Eric: "abilities don't say what they do… we need passives too that can be taught/learned (maybe new building?!?)"."drill_yard"(era 2, 8 timber + 2 stone + 1 hide, 25 s) with keeper Hesk the Drillmaster (Journeyman Marshal, sheet hermit_corvan). The def carries"teaches"— ids fromPassives.DEFS— instead of recipes: LEARN costs gold + goods once per passive (Building.teach,teach_goldhonours the Straw Dummies module'steach_discount0.5). Passives with"requires": "sparring_ring"wait for that module. Player keepspassives(pool) andpassive_loadout(maxPassives.MAX_EQUIPPED= 2) — the ABILITIES board's PASSIVES row toggles them. Each passive is one knob: Iron Lungs rest ×1.5 · Thick Skin +0.10 protect · Light Step sneak ×1.5 + conceal ×0.85 · Sure-Footed dodge cost ×0.5 · Frugal skill cost ×0.8 · Keen Eye backstab +0.5 · Gourmand food ×1.3. Hesk's quest "Straw and Rope" (2 hide) rewards Iron Lungs directly ("passive"reward key). Plot "drill" at (-320, 70); Hesk at (-250, 110).
Shell: a trampled ring behind the inn — dummies, an arms rack, a target, a banner (composed from winlu training_dummy_pole / rack_arms / fence_rail_a / target_round / flag_banner_a / hay_pile).
- t1 modules: sparring ring (advanced lessons), straw dummies (lessons half price)
- Later tiers (paper): t2 veteran's bench — a fourth active passive slot? No: keep two active; instead t2 adds school-gated passives (one per school, only for classes of that school), t3 drills — a timed training minigame that grants a temporary third passive for one outing.
Mason's Yard (Stone Worker)
Prototype (v0.1.24, 2026-09-03): first Era-2 shell —"era": 2on the def; plots show "Needs the Era 2 charter" until chartered, andcharter_readynow counts only current-era buildings (else the next era could never be chartered). Gerd (Journeyman Builder, 2 quests). Producer (1 stone / 45 s, cap 6; Quarry Pit +1) AND crafter (CUT: 3 stone → 1 cut stone, 6 s). Mortar Shed = prerequisite for the Watchtower. The walls track is its dialog: RAISE THE PALISADE (10 timber + 4 cut stone, 40 s) →city.walls{tier 1, hp 240}; raiders outside a standing gate besiege it (4 dmg per 1.2 s each — a full wave needs ~14 s) before the road; REPAIR = 2 timber to full; Watchtower +20 s warning. Away-raid with walls: a tenth of the store + 60 gate damage, no wreck.
Shell: stone cutting — cut stone (the refined form). Owns roads and walls construction (see Walls track below).
- t1 modules: quarry pit, mortar shed
- t2 road crew (road projects, World Structure) · brick kiln
- t3 (J) marble works (grand-tier building upgrades) · wall crew (higher wall tiers)
- t4 (M) aetherite masonry (capstone upgrades, top walls)
Weaver
Prototype (v0.1.26, 2026-09-03): "Weaver's Loom" (6 timber, 3 stone, 1 cut stone), Brida (Apprentice Merchant, 2 quests). Producer of cloth (1 / 45 s, cap 6 — flax stock abstracted). WEAVE: Quilted Coat (3 cloth, +15 %), Dyed Cloak (Dye Vat; 4 cloth + 2 bitterleaf, +22 %), TAN leather (Tannery; 2 hide → 1 leather), Leather Jerkin (Tannery + Hides quest; 3 leather + 1 cloth, +30 % — the "medium armor" of t2 pulled forward as a taught recipe). Boars drop hides. First armor ladder that is crafted, not found; sits between scraps (5 %) / copper mail (20 %) and iron mail (40 %).
Shell: loom — cloth + basic cloth armor.
- t1 modules: tannery (leather from hunting drops), dye vat (quality)
- t2 tailor shop (medium armor category) · spinning wheel (throughput)
- t3 (J) fine loom (Q3 work) · pattern library (armor recipe finds up)
- t4 (M) aetherthread loom (top light/medium armor)
Herbalist
Prototype (v0.1.25, 2026-09-03): "Herb Garden" (4 timber, 3 stone), Nell (Apprentice Loremaster, 2 quests). Producer: 1 bitterleaf / 40 s, cap 6; Drying Racks +1 bitterleaf; Seed Beds +1 sunroot (new herb). Herb Lore quest teaches the Alchemist's stamina draught.
Shell: herb garden + herb-lore (herb nodes marked on explored map).
- t1 modules: drying racks, seed exchange (traders sell seeds)
- t2 cultivation beds (grow small amounts of zone herbs at home) · poultice bench (basic salves before the Alchemist matures)
- t3 (J) conservatory (rare herbs) · extraction still (concentrates — Q3 potion input)
- t4 (M) aetherbloom cultivation (top potion inputs)
Alchemist
Prototype (v0.1.25, 2026-09-03): "Alchemist's Lab" (5 timber, 5 stone, 1 cut stone), Ysolde (Journeyman Loremaster, 2 quests). BREW: healing potion (2 bitterleaf + 1 wildberries), stamina draught (taught), ironbark tonic (Ingredient Cabinet + taught by Bitter Work). Still =craft_bonus1 (every brew makes two — first module that multiplies output). Tonics = the potion buff layer:Player. potion_buffmultiplies incoming damage (0.85 for 120 s), separate fromfood_buff, so meal + tonic stack as designed. Brew hall (stat-buff line) still t2/era 3.
Shell: small lab — basic healing/stamina potions.
- t1 modules: still, ingredient cabinet
- t2 brew hall (stat-buff potion line) · fine glassware (Engineer glass — arrives era 3, matching this tier's era)
- t3 (J) instrument bench (Blacksmith t4 mithril instruments) · volatile lab (combat consumables: fire flasks, frost jars)
- t4 (M) grand athanor (flasks: the persist-through-death third buff, per the hub doc) · transmutation basin (down-convert surplus materials — economy sink, never up-convert past your era)
Fishery
Prototype (v0.1.28, 2026-09-04): "Fishing Dock" (8 timber, 2 stone) on a new pond (Ground ponds cfg: terrain 5 over a shallow 7 under-layer, corner colliders in group "water"). Tarn (Apprentice Shepherd, 2 quests). Producer 1 fish / 40 s, cap 6; Net Loft (3 cloth + 2 timber) cycle ×0.7; Smokehouse (4 stone + 2 charcoal) → SMOKE 2 fish → smoked fish (+50 food, the travel ration). First Catch teaches the Inn's Fish Stew (+5 % power, 360 s, +25 HP). Last Era-2 shell: Era 3 chartered in the smoke test.
Shell: river dock — fish (food variety type #2).
- t1 modules: smokehouse (preserved fish — long-shelf-life travel rations), net loft (throughput)
- t2 boats (deep-water catch — richer ingredients) · fish pond (steady baseline supply, raid-safe)
- t3 (J) weirs (throughput) · pearl diving (pearls — Jewelcrafter crossover input)
- t4 (M) aether-lure fleet (top ingredients)
Mill
Prototype (v0.1.27, 2026-09-03): "Grist Mill" (6 timber, 6 stone, 2 cut stone), Osk (Apprentice Steward, 2 quests). The Farm shell now produces grain (1 per harvest) beside cabbage. GRIND 2 grain → 1 flour; Bakehouse module → bread (food, +40); Grain Lift = craft_bonus 1 (every grind makes two). First Grind quest teaches the Inn's Shepherd's Pie (bread + meat + cabbage → +8 % power, 300 s): the first three-ingredient-type meal. Icons: grain = Herb-Bundle-01 recolored gold, flour = winlu sack_open, bread = Sausage-01 lightened (no bread icon in the owned packs).
Shell: grindstones — flour (grain's refined form; unlocks real meals).
- t1 modules: bakehouse (bread — staple meal ingredient), grain lift
- t2 waterwheel (throughput) · oil press (cooking oil — variety type)
- t3 (J) fine milling (Q3 flour) · feed mill (boosts Farm coop and plough team)
- t4 (M) aether millstones (top flour)
Trading Post
Prototype (v0.1.16, 2026-09-02): built as the 4th plot, keeper Wren (2 quests). BUY from era-1 stock only (potion 8, ore 5, timber/ stone 3, herbs/berries 2); SELL anything at half value (gear too). Ledger Desk module: buy ×0.85 / sell ×1.25. "Loot" now displays as gold. The era cap is enforced by construction (stock lists only chartered-era goods).
Shell: market stall — buy/sell basics. Hard rule: never sells materials/goods above your chartered era — money cannot skip exploration.
- t1 modules: ledger desk (better prices), storeroom
- t2 caravan yard (periodic bulk caravans) · order board (commissions: crafted goods sold at profit — the money loop)
- t3 (J) exotic imports (occasional recipes/gems/tomes) · assayer (sell gear at fair value)
- t4 (M) aether exchange (essence and gem trading)
Era 3 building (3-tier ladder)
Jewelcrafter
Prototype (v0.1.29, 2026-09-04): "Gem Bench" (6 timber, 4 cut stone, 2 charcoal; era 3), Vesna (Journeyman Merchant, 2 quests). Gem source = Mine Gem Seam module (+1 rough gem / haul; the t3 seam pulled forward) and the post's era-3 stock. CUT 2 rough → 1 cut gem; Cutting Wheel =craft_bonus_forcut_gem (2). Trinkets registry (Trinkets): Copper Ring (+5 % power, ring slot), Amulet of Ward (+6 % protection, necklace slot, taught by Rough Stones); no wear. Sockets (Setting Kit module):Player.gear_gems{gear id → gem}, one per piece, +8 % power on a weapon / +8 % protection on armor; stays with the piece across swaps; PRY returns the gem to the bag — "gems stay transferable" is live. Socketing press stays with the Blacksmith on paper; here the kit does it.
Shell: gem bench — cut gems (Mine input) + basic rings/amulets. Sockets enter via Blacksmith t3 socketing press, same era.
- t1 modules: cutting wheel (gem quality), setting kit (socketing service for found gear)
- t2 (J) fine settings (Q3 accessories) · gem vault (theft-proof)
- t3 (M) aethergem atelier (top gems; gems stay transferable — the layer that moves with you between gear tiers)
Era 4 buildings (2-tier ladders — arcane professions START gated:
per the top-anchored rule, t1 already requires a Journeyman)
Enchanter
Prototype (v0.1.33, 2026-09-04): "Enchanting Circle" (era 4; 6 cut stone, 4 timber, 4 charcoal), Wyn (Journeyman Loremaster, 2 quests). Feedstock answered: every other raider carries raw essence and spills it in its sack when killed (raids primary); the Disenchant Font grinds carried gear into raw essence at value÷10 (secondary); the post sells raw essence at Era 4. Essence Forge: 2 raw → 1 essence. Enchants (def["enchants"]) bind to the EQUIPPED piece for essence + gold, one per piece, re-enchant replaces, stays with the piece across swaps (Player.gear_ench): Keen +12 % power, Warding +12 % protection (taught by First Light), Hungry +5 HP per kill (Rune Library). Imbue altar / grand array still on paper.
Shell (t1, J required): enchanting circle — apply enchants for essences + gold.
- t1 modules: essence forge (refine raw raid essences), rune library (enchant recipe storage; finds up)
- t2 (M) grand array (Q4 enchants) · imbue altar (imbue schools — exclusivity still an open question) · disenchant font (grind unwanted found gear into essences — answers the essence-source question: raids primary, disenchanting secondary)
Scribe
Prototype (v0.1.34, 2026-09-04): "Scriptorium" (era 4; 4 cut stone, 6 timber, 3 cloth), Aldous (Journeyman Loremaster, 2 quests). Two skills exist only as torn tomes (items) in wilds sacks: Second Wind (new "restore" kind, +40 stamina, 25 s) and Whirlwind (aoe). RESTORE torn tome + cloth → tome item (kind "tome"; READ to learn). Restoration Desk =craft_time_mult0.5 (first such module). Athenaeum =def["fusions"]: 2 tome fragments (camp hoard, quests) + cloth + essence → a tome of the chosen school. Cartography desk on paper. All 19 shells now prototyped.
Shell (t1, J required): scriptorium — restore damaged tomes. Most raid/dungeon tomes are found damaged; the Scribe makes them learnable. (This is the profession's core loop — no copying; a solo hero needs one copy.)
- t1 modules: restoration desk (faster/cheaper restoration), ink lab
- t2 (M) athenaeum (research: fuse two damaged fragments into a tome of a chosen school — targeted skill acquisition sink) · cartography desk (zone maps; sharpens rumor-board POI accuracy)
Walls (structure track — unstaffed)
Built and upgraded by the Mason's Yard (wall crew) with Engineer emplacement slots per tier. Not a staffed building: no NPC, no recipes.
- Palisade (era 2, prototyped v0.1.24 as a data record + a line of winlu stakes with a gate sprite that darkens as it takes damage): basic barrier + gate; 1 emplacement slot; watchtower module — the raid-warning building question is answered: it's a wall module (Raid System (both directions))
- Stone (era 3): 2 slots; murder-holes (trap synergy)
- Fortified (era 4): 3 slots; reinforced gate (breach-resistant)
- Aetherite (era 5): 4 slots; fits the Engineer's aether cannon — this is what earlier docs called "Walls t5"
Grid totals
16 tracks: 3 exemplar docs + 12 compact ladders + Walls. Upgrade moments: ~58 tiers + ~110 modules + walls — comfortably past the "never max quickly" bar before recipes, gems, or enchant levels.
Storehouse + haulers (decided 2026-09-02)
Prototype (v0.1.19, 2026-09-02): built as described below. Shell 5 timber + 5 stone, capacity 40; Racks +40; Tally Board haul legs ×0.6 (12s → 7.2s).World.city["store"],villagers,haulers[]. Costs draw bag-first then store. Haulers are a data state machine (idle → to_yard → to_store) ticking in World.advance, so they work while the hero is in the wilds; the Town scene draws one villager sprite per record walking the real path. Overflow goes back into the yard with a toast. First villager = Ida, a captive behind the bandit camp: TAKE THEM HOME once no camp guard stands.
The producers' per-building yard caps are the prototype's "come home" pull. The real design adds a Storehouse (Era 1, unstaffed shell): the city's shared stockpile in World.city["store"], with a capacity that is the real lever (raised by tiers and modules). Producers still fill their yards; haulers — villagers recruited in the wilds and assigned to the Storehouse — walk the yards on a timer and move goods into the store, so a fully staffed city auto-collects. Until a hauler is assigned, the hero still walks the yards. Buildings draw build/module costs from bag + store. This keeps: the hero's bag for the wilds, the Storehouse cap as the economy's ceiling (raid target, future-survival- raid-system), and the recruit system (Recruits, friends and markets) as the thing that automates chores. Third producer (Farm) should be built AFTER the Storehouse so the pattern is settled.
Open questions
- Town Hall t5 aether beacon + council chamber — both parked concepts.
- Chapel "insurance blessing" — one-time death save? Tone check.
- Transmutation basin conversion rates (sink, not exploit).
- Does the Tannery belong to Weaver or a Hunter's lodge? (No hunter building exists — Ranger class + player hunting cover it for now.)
Prototype v0.1.47 (2026-09-06) — producers scale with the era:World.producer_haul(def, id)= base produces + (era − 1) for base goods (0 stays 0; moduleyield_bonusunchanged on top) andproducer_cap(def)= cap + 2·(era − 1); used by_produce, hauler returns,Building.haul_of,Building.cap()and the yard dialog line.
Prototype v0.1.48 (2026-09-06) — the Trading Post scales with the era: plot data gainedshelf{id: n} (stocked toWorld.shelf_max()= 2 + 2·(era−1) on first use; a newly chartered good arrives stocked) andrestock_t;World._shop_tickputs one good back on one shelf every 45 s.Building.on_shelf(id),buyrefuses a bare shelf, BUY rows show "(n left)" / "(sold out)".sell_price×World.sell_era_mult()= 1 + 0.1·(era−1). Era goods stay charter-gated (stock_era2/3/4).
Prototype v0.1.51 (2026-09-06) — Weaver and Jewelcrafter scale with the era: both defs carryera_haste+era_batch;World.batchable(item)limits batch bonuses to goods (never weapon/armor/trinket/tome), so leather and cut gems gain +1 per era while coats, rings and amulets stay one piece. Sockets:World.gem_bonus()= 0.08 + 0.02·(era−1) read live byPlayer.gem_power/gem_protect, the socket button and the gear caption.
Prototype v0.1.54 (2026-09-06) — Mill and Fishery scale with the era: both defs carryera_haste+era_batch(flour, bread, smoked fish +1 per batch per era on top of Grain Lift / Smokehouse; fish and grain scale as producer goods). Every crafter in the valley now scales.