Economy
A simple, mostly-closed internal economy. Not the focus of the game — but it grounds the simulation in realism.
TL;DR
NPCs have wallets. They get paid. They buy things. That's it.
The player has no economic interaction with the world. The economy exists to make NPC behavior feel grounded, not to give the player something to do.
Currency
Unit: Ash (₳)
In-world fictional currency. Not tied to any real currency. Internal to the simulation.
Wallets
Every NPC has a wallet record in D1:
interface Wallet {
npcId: string;
balance: number; // in Ash
lastPayday: number; // tick timestamp
dailySpendAvg: number; // rolling 7-day average
}Default starting balance: ₳500 (enough to last ~2 weeks without income).
Income
Salaries (Daily)
| Profession | Daily Wage |
|---|---|
| Doctor | ₳120 |
| Pharmacist | ₳90 |
| Nurse | ₳80 |
| Teacher | ₳70 |
| Police officer | ₳70 |
| Baker / Shop owner | ₳60 |
| Mayor / Principal | ₳100 |
| Publican | ₳75 (tips add ~₳20) |
| Market traders | ₳50–₳80 (variable) |
| Children / Retirees | ₳0 |
Pay is delivered once per in-game day, at 17:00.
Bonuses (Emergent)
Occasionally, an NPC receives a bonus — a small ₳20–₳50 payment for:
- Working overtime
- Covering a sick colleague
- A "thank you" gift from another NPC (rare)
Spending
Daily Necessities
Every NPC has a needs profile that drives purchases:
- 🍞 Food — daily, ₳5–₳15/day
- 🍺 Drink — 2–3x/week, ₳3–₳8/visit
- 🏥 Medical — only when sick/injured
- 🛒 Misc goods — weekly, ₳10–₳30
Locations That Accept Money
- Bakery
- General Store
- Market stalls
- Pharmacy
- Pub
- Café
Locations That Don't
- Hospital (free, publicly funded)
- Police Station
- School
- Town Hall
- Church
Purchasing Flow
If balance < price, the NPC does not buy and may decide to go home instead.
Stock
Each commercial location tracks stock:
interface Stock {
locationId: string;
items: Record<ItemId, number>;
restockSchedule: RestockRule[];
}Stock depletes with purchases and is restocked daily (typically at 06:00 by the owner NPC). Out-of-stock events occasionally emerge as mini-stories.
Bankruptcy
If an NPC's balance drops below ₳50, they enter "financial stress" state. This:
- Increases their need priority for "money"
- May cause them to ask for favors from friends
- May show up in their diary
If balance hits ₳0:
- The NPC will prioritize finding any work
- They may sell possessions (v2 feature)
There is no "game over". The simulation adapts.
What the Player Sees
The player does not see wallet balances directly. They might infer financial stress from diary entries:
"Worried about the rent again. Skipped the pub tonight."
This is by design. Money is part of the world's interior life, not a player-facing stat.
Why It's Simple
A complex economy would:
- Distract from the AI / narrative focus
- Require balancing
- Open exploits
A simple economy:
- Provides a constraint that produces emergent storytelling
- Has no balancing burden
- Cannot be exploited by the player (because the player doesn't interact with it)
v2+ Plans
- Trade routes between towns
- NPC-initiated loans
- Player-suggested investments (very limited)