Outgoing Raids (rival cities)
Part of The design hub. Drafted 2026-09-04, after the defense half of Raid System (both directions) shipped (v0.1.23–31). Consumes Engineer Ladder (short-ladder example) goods and the world in World Structure; feeds Recruits, friends and markets (kidnap → rescue, ghost raids). Written against the prototype as it stands: raiders, a gate that is breached, traps, a ballista, smoke bombs, captives who follow you home, essence off raiders, a Storehouse with a capacity, the Heat hook.
The one-sentence pitch
A rival city is your city, seen from the road: the same grammar (plots, walls, a gate, a store, recruits, a hall) rendered from a record, with a garrison instead of a hero. You go there for what you can't make yet, and every trip has a price you chose.
Why you go (the pulls)
| Prize | Where in the rival city | What it unlocks at home |
|---|---|---|
| Goods above your era | the warehouse | materials for the next charter without waiting on the Trading Post's era cap — the only way money-free progress skips a shelf |
| Gold & gems | the vault | rings, sockets, enchant fees |
| Recipes & tomes | the workshop | knowledge — the second copy of a taught recipe, a school's tome you've never found |
| People | the prison | Journeyman/Master recruits (the main source above Apprentice), and your own kidnapped NPCs |
| Essence | the champion + every guard you fell | enchanting's primary source, doubled here |
| Quiet | the city itself | crippling a rival lengthens the gap between their raids on you |
Design rule kept from the hub: money never skips exploration — the post's shelves are era-capped. Raiding is the exploration.
Where rival cities live
- One per wedge, era-matched to the wedge (world doc). The home valley has none; Ironhold (era 2, the copper-and-iron folk whose bandits raid you) is the first, behind the eastern chokepoint.
- A rival city is a record, exactly like
World.city: plots with phases, walls with tier/hp, a store, a garrison count, a champion, a prison list, a Heat value, a stance. It is rendered into a scene by the sameTown-style renderer (walls at the road, a gate, buildings as data). One scene script, many cities. - Rival cities grow and rebuild within their era band on the city clock while you're away — a looted warehouse refills, a broken gate is mended over ~10 minutes of play — so a city is a farm, not a one-off. They never chase your era (world doc).
Getting there
- From the wilds, a road east of the bandit camp leads to the wedge's chokepoint. Until the chokepoint project is done (Mason's Yard + Engineer, era-2 materials), only the sneakable gap is open: you arrive with a carry cap (one sack's worth) — scouting, poaching, a rescue, never a haul. With the project done, the road is open both ways: carts of loot home, and their war parties to your gate.
- The approach is a rumor first: Marla's Inn gets a notice-board style "Rumors" page (Inn ladder) listing known rival cities with era, stance (sullen / wary / at war), Heat, and what you last saw there. Choosing a target is picking a rumor, not opening a map.
Two ways in (both Engineer-funded)
Siege — loud
1. Breach: a breaching charge (Engineer: Demolition Bench, era 3 fittings + charcoal) on their gate deals a chunk of gate hp; a siege ladder (Scaffold Yard) skips a palisade section entirely but only lets you over, not a cart. Their gate hp scales with their wall tier like ours. 2. Garrison waves: the alarm bell rings on the first charge. Guards come in waves from the barracks every ~20s, sized by the city's era and garrison count, until the garrison is spent. Their ballista and traps (they have Engineers too) work on you exactly as yours do on them. 3. Take everything not nailed down: warehouse, vault, workshop — each is a building you open like a chest; carrying is limited by a haul cart you push home (carry cap = 20 goods + gold + one recruit; the cart is slow and stops when you fight, so the trip home is its own tension). 4. The champion: the rival mayor/warlord stands at their hall. A proper boss — a raider with a loadout, an enchanted piece you can see them use (you'll get it), and the vault key. Optional on Loot; required to Cripple or Raze.
Stealth — quiet
Built 2026-09-04 (v0.1.36): twoPatrolsentries on fixed routes inside the wall (Enemy perception; spotting →World.rival_alarm); reusable grappling hook at a marked spot (GRAPPLE (-300,-230), either direction; entering quietly setsstealth); lockpicks (2 per craft) for the vault and prison doors (unlock/is_unlocked; doors are kicked in once the bell has rung); warehouse gives STEALTH_CARRY 6 into the bag on a quiet run; no Heat without the hall. Watchtower light sweep and per-door noise are not modelled.
1. Windows: guards walk fixed routes with timed gaps at the gate and the prison; the Watchtower light sweeps. Sneak (LB) + the perception rules that already exist (front 40 %, behind 15 %, trickster ×0.6) decide whether you're seen. Smoke bombs break a sighting; lockpicks (Gadget Bench) open the prison and the workshop without noise; a grappling hook (Siegeworks tier) tops the wall at a marked spot. 2. Limited carry: no cart — what fits in the bag and one rescued NPC. Stealth is for the targeted prize: a recipe, a gem cache, a person. 3. Fail-forward: blowing it doesn't reload. The bell rings, the waves come, and you're in a siege you didn't provision for. Every raid resolves in play.
The consequences dial (chosen at the hall, after the champion)
| Choice | What happens to them | What happens to you |
|---|---|---|
| Loot (default, no champion needed) | store emptied of what you carried; rebuilds in ~10 min | Heat +1; their next raid on you is retaliation-sized |
| Cripple (champion down) | two production plots wrecked; their raids on you shrink for ~30 min and their store refills slowly | Heat +2; big essence payout from the champion |
| Raze (siege only; era ≥ 4; champion down) | the city is removed from the wedge; the wedge's dungeon and nodes stay | one-time payout ≈ 3 full stores + the champion's gear; no more raids from that wedge — and no more farm; every other city's Heat +1 (fear) |
Heat (the vendetta counter, per rival)
- +1 loot, +2 cripple, +1 for every guard killed past ten in a visit; decays 1 per 10 minutes of play, floor 0.
- Heat sets their next raid on you: wave size = 3 + era + Heat, warning shortened by 5 s per Heat (never under 15 s), and at Heat ≥ 3 their raiders bring a breaching charge for your gate.
- Retaliation timing: a retaliation raid is scheduled 4–8 minutes after you get home, not on the prosperity clock — and it is telegraphed by a rumor at the Inn a minute before the bell, so it can be met in the field: a war party walking the road can be ambushed before it reaches your wall (a wilds encounter of raiders with a cart, carrying your stolen goods back… or theirs).
- Repelling their raid earns Heat against them in your ledger: a free justification and a small warehouse-location intel bonus.
Kidnap and rescue (the loss that becomes content)
- Their raiders that reach a staffed building of yours while it holds may carry the keeper off (never a kill). The building goes unstaffed: production halts, recipes greyed, quests paused. The ledger names who's missing and where.
- The prison in their city holds your people (and theirs to recruit). A rescue is a stealth run with one carry, or the last room of a siege. Rescued keepers come back with a grudge quest that teaches a recipe — the kidnap pays out in knowledge.
- Ransom (gold at the Trading Post via a courier) is the slow, safe, expensive third way; the price rises with the NPC's quality.
Rewards by rival era (tuning anchors → spreadsheet)
| Rival era | Warehouse (goods) | Vault (gold) | Workshop | Prison |
|---|---|---|---|---|
| 2 | 20 era-2 goods (iron, cloth, cut stone) | 40 | 1 taught recipe you lack | 1 Journeyman |
| 3 | 20 era-3 goods (gems, fittings) | 80 | 1 tome (damaged) + 1 recipe | 1 Journeyman, 20 % Master |
| 4 | 20 era-4 goods (essence, mithril fittings) | 150 | 1 restored tome | 1 Master |
A full haul ≈ 1.5× a full Storehouse of the era below yours — enough that a raid beats three yards of waiting, not so much that the yards stop mattering. Loot goods count against your Storehouse capacity on return; a cart that doesn't fit spills to the yard (never lost).
What it consumes (the economy behind it)
- Engineer: breaching charges (2 fittings + 3 charcoal), siege ladders (6 timber + 2 fittings), lockpicks (1 fittings + 1 cut gem dust), grappling hook (3 fittings + 2 cloth), smoke bombs (built).
- Inn: rumors (target intel), provisions — the prep ritual (a meal + a tonic before you go, exactly as the defense doc says).
- Chapel: respawn. Death in a rival city = wake at your shrine, gear dulled 25 as now, and the cart and un-banked loot stay where you fell — a corpse run into a hostile city is optional and tense.
- Mayor styles: Marshal shortens their warning by nothing but lengthens yours; Merchant raises vault gold 10 %; Loremaster raises the workshop's recipe chance; Steward speeds your rebuild after retaliation.
What the prototype already has (so the slice is small)
- Raiders with goals, a gate that takes damage and breaches, traps, a ballista,
hurt_silent, smoke bombs, sneak perception, captives who follow you home, essence in raider sacks, the Storehouse cap, the hauler state machine, two-scene travel with persistent data, walls as data, the charter/era ladder,raid()["taken"]accounting.
Prototype slice (one build, one rival)
Built 2026-09-04 (v0.1.35) as specified below, with these choices: the cart is a physical follower (84 px/s, 20 goods); the road to Ironhold is open from the start (the chokepoint project is still paper); guards are Raiders in fight mode that idle at the barracks; the champion is an Enemy with 90 hp and a 14-damage stab whose Keen enchant is bound to the iron sword it drops; retaliation arrives as a raid (the "met on the road" war party is still paper); Heat decays 1 per 10 min; Ironhold refills a good per 30 s, mends the gate 1 hp/s, regrows a guard per minute, respawns champion and prisoner after 10 min, repairs wrecked yards after 30 min.
1. Ironhold record: era 2; plots warehouse / vault / prison / hall; walls tier 1 (240 hp gate, same as ours); garrison 6 (two waves of 3); champion = a raider with 90 hp, an iron sword and a Keen enchant (which you get); prison holds one Journeyman (a random unclaimed keeper archetype); Heat 0, stance sullen. 2. Rival scene: the Town renderer fed the Ironhold record; the hero enters from the west road; their gate faces you. 3. Siege path only (stealth comes with lockpicks/grapple next): breaching charge (new Engineer recipe, Demolition Bench module); charge the gate (3 charges to breach, or fight through as the waves come); open warehouse (20 goods), vault (40 gold), prison (rescue); champion at the hall; Loot / Cripple choice card. 4. Cart: a pushable node that follows you at 70 % speed and holds the haul; drops where you fall; spills to the yard at home if the store is full. 5. Heat + retaliation: +1/+2, a scheduled retaliation raid 4–8 min after return with wave 3 + era + Heat, the war party visible on the road as a wilds encounter first. 6. Rebuild clock: Ironhold's store refills 1 good / 30 s and its gate mends 1 hp/s while you're away. Smoke coverage: breach math, wave timing, cart cap and spill, dial outcomes, Heat arithmetic, retaliation scheduling, rescue → villager, champion drop, rebuild clock.
Open questions
- Cart vs bag: is a physical cart fun on a phone, or should the haul be an abstract "cart slot" that only matters when you're hit? Prototype the physical one; fall back if it drags.
- Raze economy: does the one-time payout tempt too early? Gate it behind era 4 and a Master Engineer.
- Rival growth: do rivals ever raid each other (world doc question)? Not in the slice.
- Ghost raids (friends' city snapshots, social doc): the same record → renderer path means a friend's city is just another rival record. Design the record format now with that in mind: no live references, all ids.
Prototype v0.1.43 (2026-09-06) — rivals scale with the city's era:World.rival_era(rid)= max(rival's own era, city era);rival_steps= eras past its own. Maxes: walls base ×(1 + 0.25·steps), garrison base + 2·steps, gold base + 20·steps, shelves =store_base+ cumulativeRIVAL_STORE_EXTRAS(Era 3: 2 rough gem, 2 fittings, 2 stamina draughts; Era 4: 2 essence, 4 raw essence, 1 cut gem); guards hp ×(1 + 0.25·steps) and dmg 12 + 2·steps; champion hp ×(1 + 0.5·steps) and dmg 14 + 2·steps; waves 3 + steps._rival_rescaleruns every tick so the record'swalls.max/garrison_max/gold_max/store_maxfollow the era; live values climb on the existing repair/regrow/refill clocks. Record gainedstore_base,gold_base,garrison_base,walls.base,champion_hp/dmg. Rival title shows "· ERA N". Debug--era=Non the rival scene.