DESIGN
Morale (city mood system)
A design document: planned unless a "Prototype" note says it's built.
Part of The design hub. Drafted 2026-08-30. Consolidates the morale touchpoints scattered across The Mayor (governance system) (edicts, Shepherd), Inn Ladder (service-building example) (feast hall), and Raid System (both directions) (raid outcomes).
Design rules (read first)
1. One city-wide stat. Never per-NPC — no individual happiness simulation, ever. Scope containment. 2. A modifier, never a gate. Morale speeds up or slows down; it can never block a tier, a project, or an era. Progress is gated by materials/NPCs/eras only. 3. Never touches the player character. Player power comes from gear/food/potions. Morale is purely city-side. 4. No death spirals (see below).
The model: anchor + shocks
- Morale is 0–100 shown to the player only as five bands: Grim → Uneasy → Content → Proud → Jubilant (plus a trend arrow).
- A baseline (anchor) is computed from steady conditions; current morale drifts toward the anchor over time.
- Events apply shocks (instant jumps up/down) that then decay back toward the anchor. Big win = a spike that fades; the anchor is what your city is, shocks are what just happened.
Anchor sources (steady)
| Source | Effect |
|---|---|
| NPCs fully fed & paid | the core of the anchor |
| Food variety | bonus for feeding 3+ ingredient types — rewards farmer + fisherman + miller diversity, not a wheat monoculture |
| Feast hall (Inn t3) | anchor up (reframed: the feast hall now feeds morale; its old "upkeep efficiency" line moves here) |
| Chapel services | small anchor up |
| Mayor: Shepherd style | anchor up (scales with quality) |
| Edicts | per-edict modifiers (Rationing/Levy/Curfew down, etc.) |
| Damaged buildings standing unrepaired | anchor down until fixed |
Shock events
| Event | Shock |
|---|---|
| Raid repelled | ++ |
| Building destroyed in a raid | − per building |
| NPC kidnapped | −− (until rescued: small anchor drag) |
| NPC rescued / new recruit installed | ++ |
| Era charter ceremony | +++ (the mayor's big moment) |
| Building tier / project completed | + small |
Effects by band (what morale does)
| Band | Effect |
|---|---|
| Jubilant | Production +15%; visitor rate & quality up; NPCs resist kidnap better |
| Proud | Production +8%; visitor rate up |
| Content | Baseline. Nothing to manage — the default healthy state |
| Uneasy | Production −8%; visitor rate down |
| Grim | Production −15%; no new visitors; ledger pleads with you |
What morale NEVER does: weaken walls/emplacements, make NPCs quit or strike, raise raid frequency, or slow the player. Defense staying morale-independent is the anti-death-spiral keystone: a losing streak slows your economy but never softens you up for the next raid.
Anti-death-spiral rules
- Negative shocks diminish while morale is already low (Grim city losing a building barely moves).
- Recovery levers are always purchasable: a feast (Inn action: burn food stores for an immediate shock up) and a chapel festival (money) — turning stockpiles into mood is always an option.
- The anchor can't fall below Uneasy from edicts alone — policy can't dig the pit, only events can.
Presentation (show, don't tell)
- The mayor's ledger carries a one-line mood report + why ("The town is Proud — the rescue of Master Aldren is on everyone's lips").
- Town dressing follows the band: bunting/music/NPC idle animations at high bands; shutters and huddling at low. The stat is ambient before it's numeric.
Open questions
- Do visitor spies (if kept) exploit high Open-Gates morale, or is that overcoupling?
- Jubilant threshold tuning: reachable steady-state, or peaks-only?
- Should razing a rival city shock morale up (triumph) or down (dread)? — good tie-in to the razing-consequences question.