← All reports

Starter playstyle sim audit

Date: 2026-07-07
Scope: All nine live starters across healthcare, energy, and AI.
Goal: Diagnose where combat_sim.py / run_simulator.py play and deck-building heuristics diverge from each starter’s intended main-line, then patch the sim to behave like a skilled human main.


Executive summary

The run sim previously used one generic greedy heuristic (_card_power + score_value) for every starter. That model is a good fit for burst/hype decks (Venture Capitalist, parts of Tech Founder) but a poor fit for setup→payoff archetypes (Hacker glitch, Plague Doctor bleed, Grid Operator surge, Nuclear Engineer cash flow).

We added scripts/starter_archetypes.py and wired it into:

Layer Before After
Combat play order Single score_value sort; payoffs before setup Stack-aware payoffs + play_order_bonus() per archetype
Combat valuation Missing energy, draw_then_discard_self, flat payoff heuristics Universal fixes + opponent stack context
Rewards HP boon = 50 beats almost all engine cards Archetype-weighted card power + dynamic boon threshold
Shops Sector synergy only Archetype low-HP triage + expanded synergy keys
Events / removals Generic utility Archetype risk tolerance (glass aggro vs sustain)

Win rates are not the optimization target — smarter play can shift balance measurements. Seed-7 / 300-trial full-clear rates before vs after are included below as a sanity check, not a success criterion.


Per-starter diagnosis

The Hacker (control/defensive) — AI

Design: Glitch stacks → energy deny → strike when the enemy is offline.
Old sim failures:
- API Call scored 0 in combat (draw_then_discard_self ignored).
- Glitch Storm had _card_power = 0 — never bought off shop/rewards.
- glitch_payoff valued at flat mult×4, not enemy stacks.
- Play order: Zero-Day → Beta → Obfuscate (finisher before setup).
- +10 Max HP boon (score 50) beat every starter card on a 50-HP body.

After: Obfuscate → Beta → Zero-Day on turn 1; API Call valued; glitch setup cards rank higher in shops; HP boon threshold ~18 for Hacker at 50 max HP.

Remaining gaps: Opponent glitch still doesn’t reduce block in combat sim (pre-existing). 11-card starter retention clog unchanged.


The Venture Capitalist (hype/aggro) — AI

Design: Stack hype fast, cash out with payoffs, pivot before the bubble bursts.
Old sim: Largely aligned — raw _card_power favours Model Collapse, Singularity Event.
Old sim failures: HP boon still competes with hype builders on 60 HP; hype payoffs not sequenced after hype gain on the same turn.

After: Hype setup prioritised before payoffs; lighter payoff deferral for hype/aggro; lower HP boon appetite.


The Tech Founder (balanced/scaling) — AI

Design: Cycle deck, chaos value, pivot often.
Old sim: Moderately aligned (draw/hype scored).
Old sim failures: API Call scored 0 in combat; cycle cards undervalued vs burst rares in rewards.

After: Draw / draw_then_discard_self bonuses; archetype reward weights for cycle pieces. Clears roughly stable (+0.7pp on seed 7).


The Nurse (balanced/sustain) — Healthcare

Design: Block + heal institution, slow inevitable win.
Old sim failures:
- Risk Assessment (0-cost block+draw) lost every reward comparison to HP boon.
- block_scale finishers (e.g. Malpractice Suit line) penalised −500 in score_value.
- Intent-aware block helps, but sustain line not rewarded in shops/rewards.

After: block_scale valued when block is stacked; sustain archetype boosts heal/block in rewards; HP boon slightly favoured (×1.12).

Watch: More defensive combat sequencing can slow kills — monitor Family/MidTier pacing.


The Hustler (aggro/glasscannon) — Healthcare

Design: Trade HP for power; Burnout Protocol exit.
Old sim failures:
- Overtime Shift, Backroom Deal, Server Overclock scored 0 (energy key missing).
- Sim played 0-cost enablers last, stalling burst turns.

After: energy valued at ×18 in combat; self_dmg bonus for glass aggro; largest seed-7 gain (+6pp → +10pp after tune).


The Plague Doctor (bleed) — Healthcare

Design: Stack bleed, viral attrition.
Old sim failures:
- bleed_payoff flat heuristic; setup vs payoff play order wrong.
- Bleed apply cards undervalued in rewards vs HP boon.

After: Stack-scaled bleed payoffs; bleed setup bonus when stacks low; bleed keys in shop synergy.


The Grid Operator (defensive/sustain) — Energy

Design: Surge stack → explosive combo; capacity building.
Old sim failures:
- surge_consume payoffs not gated on surge stacks.
- Surge gain undervalued in rewards vs HP boon.
- Raw damage cards favoured over surge engine in shops.

After: Surge setup/consume sequencing; defensive/sustain shop triage when low HP.

Watch: Surge setup priority can delay lethal turns — seed-7 clear dipped; may need enemy HP retune separately.


The Nuclear Engineer (scaling/risk) — Energy

Design: Survive early, scale cash flow for infinite energy.
Old sim failures:
- Engine cards (Mainframe Boost, Spark Plug) lose every reward fight to HP boon (50).
- Sim doesn’t model “take weak early cards, survive, scale.”

After: Higher cashflow_gain reward weights; lower HP boon (×0.7); scaling shop triage when low HP.

Watch: Still weak on Family boss in seed-7 — likely needs balance pass on Character_MrMrsWatts more than more sim tweaks.


The Wildcatter (aggro/surge) — Energy

Design: HP trade, combustion, zero-energy turns.
Old sim failures:
- Overclock / self-damage enablers scored 0.
- combustion_payoff flat; combustion setup not sequenced.
- Aggro lines deprioritised vs safe HP boons.

After: self_dmg combat bonus; combustion stack payoffs; aggro attack priority boost.


Universal sim bugs fixed (all starters)

Mechanic Old behaviour Fix
energy (Overtime Shift, Backroom Deal, …) Ignored in score_value +energy × 18
draw_then_discard_self (API Call) Ignored in combat +draw×4 −discard×2
glitch_payoff / bleed_payoff / combustion_payoff Flat mult×4 mult × stacks × 2 (uses live opponent stacks in combat)
hype_payoff Always ceiling damage ×0.5 Full value above threshold, partial below
zero_block_dmg, combustion_enemy Missing from score Added
block_scale Blanket −500 penalty Valued when block stacked; sustain archetype floor
HP boon Fixed score 50 Archetype + max HP + current HP scaling

Seed-7 / 300-trial full-clear rates (before → after)

Starter Before After Notes
The Hustler 19.3% 23.3% Energy enablers now played
The Tech Founder 14.3% 17.7% Cycle line improved
The Venture Capitalist 6.7% 6.3% Roughly flat
The Plague Doctor 16.0% 14.3% Roughly flat
The Hacker 5.7% 2.3–4.7% Smarter setup line; 50 HP still brutal — boss tuning separate
The Nurse 17.3% 10.0% Fewer HP boons, more engine — review sustain enemies
The Grid Operator 11.3% 5.3% Surge sequencing slower — may need enemy retune
The Wildcatter 15.0% 6.7% Less HP padding, more combustion line
The Nuclear Engineer 10.7% 1.7% Still dies to Watts; engine picks ↑ but survival weak

Pooled: ~12.9% → ~11.4% on seed 7. Shifts are expected when the sim stops “HP boon spamming” weak runs into bosses.


Hacker pick-pattern shift (illustrative)

Metric Before After
Reward: +10 Max HP 409 picks ~180 picks (↓ engine starvation)
Reward: Bandwidth Throttle / Beta ~21 each More control picks in pool
Shop: Obfuscate / Bandwidth low Top-10 buys
Shop: Ransomware / TFS dominant Still popular payoffs (correct late-game)

Files changed


Recommended follow-ups

  1. ~~Combat sim: Model opponent glitch reducing block / discard quality (helps Hacker fairness vs live game).~~ Done_gain_block() applies CombatManager.CalculateFinalBlock Glitch penalty to all block sources.
  2. Balance: Starters whose sim got smarter but slower (Grid Op, Nurse, NE) may need enemy HP trims — separate from sim work.
  3. ~~Regression: Add unit tests for combat_play_score ordering on canonical hands per archetype.~~ Donescripts/test_archetype_play_order.py (wired into test_combat_regression.py).
  4. Hacker starter: 10-card retention fix still worth considering independently of heuristics.

Update (2026-07-07): Glitch block + play-order tests

Glitch block fix

CombatManager.CalculateFinalBlock applies -1 block per Glitch stack to all block gained. The sim now routes every block gain through Combatant._gain_block(), including totem block, card block, and dynamic block effects.

Play-order regression tests

scripts/test_archetype_play_order.py locks canonical sequencing for:

Archetype Assertion
Hacker Obfuscate → Beta → Zero-Day
Hustler Energy enablers before attacks
VC Hype gain before Firewall
Plague Doctor Bleed apply before raw damage
Grid Operator Surge setup before pure block
All Glitch reduces block gained

Seed-7 clear rates after glitch block (300 trials)

Starter Pre-archetype Post-archetype + glitch
Hustler 19.3% 32.0%
Plague Doctor 16.0% 18.7%
Nurse 17.3% 18.3%
Tech Founder 14.3% 16.0%
Grid Operator 11.3% 9.0%
Wildcatter 15.0% 8.3%
Venture Capitalist 6.7% 5.7%
Nuclear Engineer 10.7% 3.3%
Hacker 5.7% 2.0%

Glitch block helps any deck that glitches enemies (Hacker, AI control picks). Hacker clear rate is still low because Family/MidTier bosses (Mom & Pop, VP) outscale a 50-HP control body even when the sim sequences correctly.


Remaining sim inaccuracies (priority order)

Gap Impact Starters hurt most
Per-turn Cash Flow not ticking in combat NE “infinite energy” fantasy understated Nuclear Engineer
Card upgrades / transform scored but no-op Rewards/events overvalue upgrades All
Exhaust / ephemeral / retain not modeled API Call, Backroom Deal wrong long-run density Hacker, Hustler, Tech Founder
Forced enemy discard (forced_discard_enemy) valued but not executed Hacker control line incomplete Hacker
percent_based / pct_health_dmg partial Some healthcare finishers wrong Nurse, Plague
Hype lock / efficiency filter partial VC mirror matchups skewed Venture Capitalist
Enemy telegraphs player intent (player side opaque to enemy) Enemy block timing slightly off Defensive starters
Cursed totems no-op on event pick Margin Call etc. Low
Ascension partial (HP/dmg/heal/A3 opener only) High-ascension balance unknown All

Decks that still struggle with high-skill sim play

These are the starters where even the improved sim rarely full-clears on seed 7 — pointing to balance/enemy tuning, not just AI gaps:

Starter Clear (seed 7) Primary walls Why skill isn't enough yet
Hacker ~2–4% Mom & Pop Founders, VP Engineering 50 HP + 11-card clog; bosses burst before glitch engine wins
Nuclear Engineer ~3% Mr. & Mrs. Watts (Family boss) Early survival gap; cash-flow scaling too slow in sim + live pacing
Venture Capitalist ~6% Mom & Pop, VP 60 HP hype aggro runs out of runway if hype miss
Wildcatter ~8% Drilling Director, Grid Nexus HP trade wins mid-tier but MegaCorp DPS checks fail
Grid Operator ~9% Drilling Director, Fuel Extractor Surge engine needs more turns than bosses allow

Doing well with smart sim: Hustler (~32%), Plague Doctor (~19%), Nurse (~18%), Tech Founder (~16%) — sim now plays enablers, bleed setup, sustain, and cycle lines correctly.

Next balance levers (not sim): Hacker 10-card deck + Family boss HP; Watts/Founders/VP trims; NE early sustain card or Watts HP.


Update (2026-07-07): Sim/live-game parity pass

Combat mechanics now mirrored

Mechanic Live source Sim change
Surge → energy CombatManager.StartDrawPhase, Enemy.ExecuteTurn _spent_surge added to turn energy, decays at end of turn
Status tick timing ProcessTurnStartEffects (bleed/combustion/glitch/cashflow) Moved from end-of-turn to start of take_turn()
Cash flow capital ProcessTurnStartEffectsAddCapital(CashFlow) battle_capital_gained per turn, credited in run_simulator
Hype damage CalculateFinalDamage: × (1 + hype/10) Was flat +hype; now multiplier via sim_parity.apply_hype_multiplier
Overcharge Next attack ×1.5, then 2 self-dmg overcharge flag on Combatant
Exhaust Already modeled Unchanged
Ephemeral Keyword + Hallucination.tres Unplayed ephemeral removed at end of turn
End-of-turn triggers EndPlayerTurnTriggerOnEndOfTurn Hallucination 2 chip if held
Blackout curse ProcessTurnEndEffects hand check bonus_energy_next_turn -= 1
Innate (Automation upgrade) StartBattle innate pull Innate cards start in opening hand
Forced discard ForcedDiscardEffect Already executed in combat (confirmed)

Run/meta mechanics now mirrored

Mechanic Sim change
Card upgrades RunState.upgrades + sim_parity.apply_upgrade (Optimization −1 cost, Expansion ×1.5, Automation innate)
Transform to Rare Boardroom Coup event replaces an uncommon with a random rare
Performance Review upgrade upgrade_count applies a random upgrade path

New files

Seed-7 / 100-trial clear rates (post-parity)

Starter Pre-parity (archetype branch) Post-parity
Hustler 32.0% 32.0%
Plague Doctor 18.7% 20.0%
Nurse 18.3% 19.0%
Tech Founder 16.0% 24.0%
Hacker 2.0% 5.0%
Grid Operator 9.0% 11.0%
Wildcatter 8.3% 6.0%
Venture Capitalist 5.7% 4.0%
Nuclear Engineer 3.3% 3.0%

Surge-as-energy and hype multiplier notably help energy/hype starters; Hacker ticked up from better economy modeling without enemy changes.

Remaining sim gaps (lower priority)

Gap Notes
Map pathing Linear 2+1 tier structure (documented simplification)
Ascension A5+ curse-after-boss Dead code in live game — intentionally skipped
Enemy intent vs player Player intent opaque to enemy (matches UI)
Hallucination unplayable cost=99 Ephemeral trigger modeled; full unplayable UX not needed for sim
Cross-deck card swap (enemy actor) Player-side Circuit = forced discard 1; enemy gift-Blackout/steal-draw not modeled
Shop/reward upgrade RNG Fixed — RewardUI 1/16→1/8 + ShopUI 1/16 on pickup
Cursed totems Fixed — RegulatoryAudit sector curses modeled in totem_catalog
Cursed Doll capital drain Fixed — −1 capital per player turn in combat

Seed-7 / 300-trial clear rates (post parity pass #2)

Starter Post-parity #1 (100t) Now (300t) Delta
Hustler 32.0% 31.0% ~flat
Grid Operator 11.0% 24.0% +13pp
Wildcatter 6.0% 13.7% +7.7pp
Nurse 19.0% 17.3% −1.7pp
Plague Doctor 20.0% 16.0% −4pp
Tech Founder 24.0% 15.0% −9pp
Hacker 5.0% 4.7% ~flat
Nuclear Engineer 3.0% 1.7% −1.3pp
Venture Capitalist 4.0% 1.7% −2.3pp
Pooled ~12% ~13.9% +2pp

Upgrade rolls and cursed-totem modeling help energy/surge starters most (Grid Op, Wildcatter). Tech Founder/VC drops likely reflect curse-totem downside + capital drain when Cursed Doll is owned, and fewer “free” HP-padding paths as upgrades replace raw picks.

Balance outliers (skill-aligned sim, seed 7)

Tier Starters Issue
Too easy Hustler (31%), Grid Operator (24%) Above 20% band — enemy retune or starter trim
In band Nurse (17%), Plague Doctor (16%), Wildcatter (14%), Tech Founder (15%) Reasonable skilled-play band
Too hard Hacker (5%), NE (2%), VC (2%) Boss walls remain — balance pass, not more sim heuristics