March 1, 2026
v0.5: Balance Patch — Health Regen, Smarter Heat, and 348 Tests
We ran 2,000 simulated games, found three systemic problems, and shipped surgical fixes to heat, combat, and the economy — plus a new health regen mechanic and a completely rebuilt market UI.
v0.4 shipped with a simulation tool that ran 1,000,000 games. The data told us the game was more balanced than before — but it also showed us exactly where it was still broken. This patch is the result of listening to that data.
Here's what shipped in v0.5:
- Natural Health Regeneration — a new mechanic that rewards careful play
- Heat System Overhaul — 40% faster decay, softer volume scaling, lower encounter rates
- Combat Rebalancing — reduced police damage, fewer random encounters
- Economy Boost — 1.5% daily bank interest, property income up 50-67%
- Rebuilt Market UI — Half/MAX buttons replace confusing percentages, accurate trade previews
- 348 unit tests and 10 end-to-end tests with Playwright

What the Simulation Data Showed
After v0.4's million-game simulation, we ran a fresh batch of 2,000 games (100 per strategy, 10 strategies, 2 modes) to track the current state of balance. The data exposed three problems that v0.4's fixes hadn't fully solved.
Problem 1: Heat Still Spirals Out of Control
56-87% of games across all strategies hit heat 90 or above — the danger zone where government strikes land and encounters spike. Even the heat-manager strategy, which buys every heat reduction item in the game, hit 87% heat-90 rate.
| Strategy | Avg Peak Heat | % Heat 90+ | Avg Gov Strikes |
|---|---|---|---|
| heat-manager | 93 | 87% | 3.1 |
| stay-and-grind | 88 | 84% | 2.5 |
| greedy | 91 | 82% | 2.2 |
| optimal-trader | 89 | 78% | 2.8 |
| property-mogul | 72 | 58% | 1.8 |
The root cause: heat decayed at only -5 per day, while a single fentanyl trade generated +10 heat. Two trades a day meant heat climbed faster than it could ever fall.
Problem 2: Combat Is the Only Way to Die
100% of deaths came from combat. Zero from loan sharks. Zero from government strikes. The encounter formula dangerLevel * 0.02 * max(0.3, heat/100) was still too aggressive — Detroit (danger 9) had an 18% encounter chance per turn even at moderate heat.
Players had no way to recover health between fights, so damage accumulated until death was inevitable.
Problem 3: Economy Ceiling at $155M
Marathon strategy (the most complete playstyle) peaked at $155M. Bank interest at 1%/day wasn't enough to break through the ceiling. Properties returned their investment too slowly — a Mansion took 63 days to pay back its $500K cost at $8K/day.
The Fixes
Armed with simulation data, we made targeted changes to each system.
Heat: Faster Decay, Softer Scaling
The single biggest change: heat decay doubled from -5 to -7 per day. This means a player who stops trading for 3 days drops from heat 90 to 69 — safely out of the danger zone.
| Setting | v0.4 | v0.5 | Impact |
|---|---|---|---|
| Daily heat decay | -5 | -7 | 40% faster recovery |
| Fentanyl heat/trade | 10 | 8 | 20% less heat per deal |
| Cocaine heat/trade | 5 | 4 | Safer mid-tier trading |
| Heroin/Meth heat/trade | 6 | 5 | Same |
| Encounter base rate | 0.02 | 0.015 | 25% fewer random fights |
| Low-heat encounter floor | 0.3 | 0.2 | Clean players get 33% fewer fights |
| Volume multiplier (700+ drugs) | 1.75x | 1.50x | Softer late-game scaling |
| Volume multiplier (300+ drugs) | 1.50x | 1.30x | Same |
| Volume multiplier (100+ drugs) | 1.25x | 1.15x | Same |
| Heat item diminishing returns | 40% floor | 50% floor | Heat items stay useful longer |
The new encounter formula ties fight frequency directly to heat: dangerLevel * 0.015 * max(0.2, heat/100). At heat 20, Detroit's encounter chance drops from 5.4% to 2.7%. At heat 0, it's just 2.7% (down from 5.4%). Players who manage their heat profile can trade in dangerous cities with dramatically fewer interruptions.
Combat: Less Lethal, More Survivable
| Enemy | v0.4 Damage | v0.5 Damage | Change |
|---|---|---|---|
| Local Police | 8 | 6 | -25% |
| State Troopers | 18 | 14 | -22% |
Combined with fewer encounters and the new health regen (below), the survival rate improved meaningfully.
New Mechanic: Natural Health Regeneration
Players now regenerate +3 HP per day — both when traveling and when staying overnight. This is the first passive healing mechanic in the game.
At 100 max health, this means:
- After a 10-damage fight, you're back to full in 4 days (vs. never before)
- A player at 50 HP recovers to 100 in 17 days
- Dead players (0 HP) do not heal — you still need to avoid lethal damage
This changes the strategic calculus. Before, every point of damage was permanent. Now, careful players who space out their risky trades can recover between encounters. Reckless players still die — but the game no longer punishes you forever for a single bad fight.
Economy: Higher Ceiling, Faster Growth
| Setting | v0.4 | v0.5 | Impact |
|---|---|---|---|
| Bank interest | 1%/day | 1.5%/day | 50% faster compounding |
| Warehouse income | $2K/day | $3K/day | +50% |
| Mansion income | $8K/day | $12K/day | +50% |
| Cook Lab income | $1.2K/day | $2K/day | +67% |
The bank interest change is the game-changer. Deposit $100K (pay 20% fee = $80K deposited):
| Time | 1%/day (v0.4) | 1.5%/day (v0.5) |
|---|---|---|
| Day 30 | $107K | $121K |
| Day 100 | $216K | $345K |
| Day 365 | $2.94M | $17.1M |
Combined with Mansion income ($12K/day = $4.38M/year), the path to $100M+ in Endless mode is now achievable.

Results: v0.4 vs v0.5
We re-ran the simulation after applying all balance changes:
| Metric | v0.4 | v0.5 | Change |
|---|---|---|---|
| Best median NW (Classic) | $558K | $1.4M | +151% |
| $1M milestone rate (heat-manager) | 65% | 83% | +18pp |
| $10M milestone (heat-manager, Classic) | 6.4% | 13% | +6.6pp |
| Max NW (Endless, marathon) | $121.6M | $180M | +48% |
| Death rate (heat-manager, Classic) | 65.3% | 55% | -10.3pp |
| Death rate (stay-and-grind, Classic) | 23% | 18% | -5pp |
| Survival to day 60 (Endless, marathon) | 0.7% | 11% | +10.3pp |
| $100M reached (Endless) | 0% | 2% | First time ever |
For the first time in the game's history, 2% of marathon-strategy Endless runs reached $100M. The economy ceiling has been shattered. Smart strategies are meaningfully rewarded, and the heat system finally responds to player choices.
Market UI Overhaul
The old market UI had three quantity preset buttons: 25%, 50%, and MAX. These were confusing — 25% of what? Your cash? Your inventory space? The max buyable amount? Players reported clicking the wrong button and losing money.
Before
[25%] [50%] [MAX]
After
[Half] [MAX]
The new Half button is context-aware:
- When buying: sets quantity to half of the maximum you can afford (factoring in territory discounts)
- When selling: sets quantity to half of what you own
Other market UI fixes in this patch:
- Territory discounts now appear in the trade preview:
5 x $700 x 0.9 = $3,150 (-10%) - Purity multipliers now show on sell previews:
5 x $700 x 1.12 = $3,920 (70% pure) - MAX button correctly factors in territory discounts when calculating buy amounts
- Edge case: when you can't afford anything, quantity is set to 0 (not 1)

Testing Infrastructure
This release expanded test coverage to 348 unit tests and 10 end-to-end browser tests.
Unit Tests (bun:test)
Every game system has dedicated test coverage, running in ~300ms:
| Test Suite | Tests | What It Covers |
|---|---|---|
game-trading.test.ts |
30 | Buy/sell, purity multipliers, territory discounts, inventory limits |
game-combat.test.ts |
28 | Damage calculation, flee mechanics, death conditions |
game-finance.test.ts |
35 | Bank deposits, loans, interest, debt |
game-travel.test.ts |
31 | Travel, heat decay, property income, game-over triggers |
game-heat.test.ts |
17 | Transaction heat, volume multipliers, decay, capping |
game-balance.test.ts |
19 | Health regen, bank interest compounding, property income, encounter formula |
game-shop.test.ts |
24 | Weapons, armor, heat items, cooldowns |
game-teammates.test.ts |
22 | Hire, assign, collect, auto-assign |
game-cooking.test.ts |
18 | Precursors, labs, cook jobs, disasters |
game-getters.test.ts |
15 | Net worth, inventory, score calculation |
data.test.ts |
12 | Data integrity, drug/location/weapon validation |
ui-rendering.test.ts |
11 | DOM rendering, HUD display, nav tabs |
simulation/simulate.test.ts |
6 | Balance check — 4 strategies, 100 games each |
bun test # Run all 348 tests (~300ms)
bun test --coverage # With code coverage report
End-to-End Tests (Playwright)
10 Playwright tests verify the actual browser experience:
- Buy a drug — cash decreases correctly
- Sell a drug — cash increases, inventory decreases
- Error toast — appears on insufficient funds
- MAX button — sets correct quantity
- Half button (buy) — sets half of max affordable
- Half button (sell) — sets half of owned inventory
- Buy quantity > 1 — correct cash deduction
- Trade preview — updates on quantity input
- Stay the Night — day advances
- Travel — location changes, day advances
bunx playwright test # Run all E2E tests
Deterministic Testing
Every unit test uses a custom createTestState() factory that generates fixed game states — no Math.random() calls. The simulation tool uses a seeded PRNG (Mulberry32) for reproducible results. Same seed, same outcomes.

Tech Stack
This entire game is built with zero frameworks:
- TypeScript — Strict mode, ES2022 target
- Bun — Runtime, package manager, and native test runner
- Eleventy (11ty) — Static site generation for landing, history, blog
- Playwright — End-to-end browser testing
- anime.js v4 — Screen transitions and particle animations
- CartoDB Dark Matter — Map basemap tiles
- IBM Plex Mono — Monospace font for the terminal aesthetic
- GoatCounter — Privacy-friendly analytics
- Cloudflare Pages — Hosting and CDN
- Claude Code — AI pair programming
No React. No Next.js. No Webpack. No Tailwind. Just ES modules, CSS custom properties, Canvas API, and Web Audio API.
What's Next
The simulation data still shows room for improvement. Heat 90+ rates are down but not eliminated. The economy ceiling, while dramatically higher, hasn't produced a $1B game yet. Future patches will continue the data-driven approach: change a number, run 2,000 games, measure the result.
Planned for v0.6:
- Global leaderboard system
- Expanded cooking recipes
- Prestige mechanics for Endless mode
- Mobile-optimized touch controls
Play Drug Warz AI now and see how the new balance feels. Can you hit $100M?
Built with Claude Code. Tested with bun:test and Playwright. Hosted on Cloudflare Pages.