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

Market view showing the new Half and MAX trading buttons with drug prices and purity

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.

Travel map showing 19 cities across 4 regions with danger ratings

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)

Shop view with weapons, armor, and heat reduction items

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.

Stats tab showing game statistics and performance metrics

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.