Files
gogobee/sim_results/j2a_all10_summary.txt
prosolis f2c2d774d4 J2: sim picker casts+consumes; T5 raid-content warning
The post-J1 sweep had the casters clustered at 19–22% L12 clear, vs
martials at 70–80%. A per-round trace across 240 boss-room fights showed
why: autoResolveCombat dispatched !attack only — zero spell_casts, zero
mid-fight consumable uses across every caster class. The entire "caster
cliff" was the sim measuring a strawman where casters couldn't cast.

J2a teaches the sim's autoResolveCombat to mirror a competent prod
player: heal at low HP if an inventory consumable is available, otherwise
cast the highest-EV damage spell (slot or cantrip), otherwise swing.
BuildCharacter now seeds the known-spell list via ensureSpellsForCharacter
so the synthetic spellbook is populated. A -trace flag on the cmd
attaches the raw CombatEvent stream to the last combat of each run for
post-hoc diagnostics.

A first re-baseline (n=100, all 10 classes) showed Ranger regressed
-35.8pp — the picker was burning L3 slots on lightning_arrow when
Ranger's weapon chassis (Hunter's Mark + Extra Attack) was the better
play. Added simMartialFirstClass to gate the picker off for Ranger and
Paladin (whose default kit is also weapon-first / no damage spells).
J2c experimented with widening the picker to control + heal spells;
heal-spell preempt cost druid 10pp (slot heals are 10HP vs 40HP
consumables) and control-spell scoring at 22 cost warlock 6.6pp. Both
reverted. Corpora retained under baseline_j2c*.jsonl for the post-mortem
in sim_results/j2b_findings.md.

Post-J2 L12 leaderboard (baseline_j2a_v2_all10.jsonl, n=100):
  fighter 80.0, ranger 80.0, paladin 78.4, rogue 76.8,
  druid 61.6, mage 53.4, sorcerer 50.6, warlock 48.2,
  bard 40.4, cleric 39.0.

The caster cluster is dissolved; martials are within ±5pp of J1 (sweep
noise). Bard/cleric still trail, but it's no longer a sim artifact —
their defaultKnownSpells damage rosters cap at L2 and the picker can't
pick spells they don't have. That's a prod-level fix, deferred.

J3 trace (sim_results/j3_findings.md): T5 dragons_lair walls every solo
class at 0% (Infernax 546 HP vs solo player HP 110–175; ~25% boss HP
eaten before TPK across all classes). Per the J3 plan menu, this is
party-shaped content the engine doesn't yet have parties for. Surface
a TwinBee-voiced heads-up in handleDnDExpeditionCmd's start path and a
matching tag in !expedition list — players see "raid-shaped — solo
runs not yet survivable" before they spend outfitting coin. No combat
or class balance changes.

Files: cmd/expedition-sim/main.go +trace flag; expedition_sim.go picker
+ SimCombatSummary.Events + spellbook seed; dnd_expedition_cmd.go
raidContentWarning + list tag. All baselines + traces + findings
checked in under sim_results/.
2026-05-17 15:43:41 -07:00

152 lines
16 KiB
Plaintext

class level zone n p50_yld p50_yld_clr mean_yld mean_rms %clr %boss %tpk %fled %ext
bard 3 dragons_lair 100 0 0 0 0 0 0 0 0 0
bard 7 dragons_lair 100 3 0 3.7 5.7 0 24 98 0 2
bard 12 dragons_lair 100 3 0 4.2 7.5 0 77 100 0 0
cleric 3 dragons_lair 100 0 0 0 0 0 0 0 0 0
cleric 7 dragons_lair 100 3 0 3.4 5.4 0 7 100 0 0
cleric 12 dragons_lair 100 3 0 3.6 7.1 0 60 100 0 0
druid 3 dragons_lair 100 0 0 0 0 0 0 0 0 0
druid 7 dragons_lair 100 3 0 3.5 5.8 0 29 99 0 1
druid 12 dragons_lair 100 4 0 4.1 7.4 0 72 97 0 3
fighter 3 dragons_lair 100 0 0 0 0 0 0 0 0 0
fighter 7 dragons_lair 100 3 0 3.9 6.8 0 56 97 0 3
fighter 12 dragons_lair 100 3 0 3.6 8 0 99 100 0 0
mage 3 dragons_lair 100 0 0 0 0 0 0 0 0 0
mage 7 dragons_lair 100 4 0 4.9 5.6 0 25 99 0 1
mage 12 dragons_lair 100 5 0 5.5 7.3 0 68 100 0 0
paladin 3 dragons_lair 100 0 0 0 0 0 0 0 0 0
paladin 7 dragons_lair 100 2 0 3.1 6.9 0 65 99 0 1
paladin 12 dragons_lair 100 4 0 4.5 7.9 0 95 100 0 0
ranger 3 dragons_lair 100 0 0 0 0 0 0 0 0 0
ranger 7 dragons_lair 100 8 0 8.5 7.8 0 91 98 0 2
ranger 12 dragons_lair 100 8 0 8.8 8 0 99 100 0 0
rogue 3 dragons_lair 100 0 0 0 0 0 0 0 0 0
rogue 7 dragons_lair 100 5 0 4.8 6.5 0 53 94 0 6
rogue 12 dragons_lair 100 5 0 6.6 7.9 0 97 100 0 0
sorcerer 3 dragons_lair 100 0 0 0 0 0 0 0 0 0
sorcerer 7 dragons_lair 100 5 0 5.1 5.2 0 18 100 0 0
sorcerer 12 dragons_lair 100 5 0 5.4 7.2 0 62 100 0 0
warlock 3 dragons_lair 100 0 0 0 0 0 0 0 0 0
warlock 7 dragons_lair 100 4 0 4.1 6 0 34 99 0 1
warlock 12 dragons_lair 100 4 0 4.4 7.5 0 76 98 0 2
bard 3 forest_shadows 100 3 0 4.1 4.2 0 1 100 0 0
bard 7 forest_shadows 100 6 0 7.1 6 0 99 100 0 0
bard 12 forest_shadows 100 7 7 7.8 7 100 100 0 0 0
cleric 3 forest_shadows 100 5 0 5.6 4.7 0 3 100 0 0
cleric 7 forest_shadows 100 6 1 6.7 5.7 5 68 95 0 0
cleric 12 forest_shadows 100 7 8 8.6 6.6 81 81 19 0 0
druid 3 forest_shadows 100 5 0 5.1 5.1 0 13 100 0 0
druid 7 forest_shadows 100 6 5 7.6 6.9 91 100 9 0 0
druid 12 forest_shadows 100 7 7 7.7 7 100 100 0 0 0
fighter 3 forest_shadows 100 5 0 5.8 5.3 0 25 100 0 0
fighter 7 forest_shadows 100 6 6 6.5 7 100 100 0 0 0
fighter 12 forest_shadows 100 6 6 7.4 7 100 100 0 0 0
mage 3 forest_shadows 100 4 0 4.4 3.8 0 0 100 0 0
mage 7 forest_shadows 100 6 7 7 6.9 89 98 11 0 0
mage 12 forest_shadows 100 7 7 7.4 7 100 100 0 0 0
paladin 3 forest_shadows 100 6 0 6.9 5.8 0 77 100 0 0
paladin 7 forest_shadows 100 6 6 6.6 7 100 100 0 0 0
paladin 12 forest_shadows 100 6 6 6.4 7 100 100 0 0 0
ranger 3 forest_shadows 100 12 0 11.8 5.3 0 33 100 0 0
ranger 7 forest_shadows 100 16 16 17.5 6 3 100 97 0 0
ranger 12 forest_shadows 100 14 14 16 7 100 100 0 0 0
rogue 3 forest_shadows 100 5 0 6.3 5.7 0 69 100 0 0
rogue 7 forest_shadows 100 6 7 6.9 6.8 80 100 20 0 0
rogue 12 forest_shadows 100 7 7 6.9 7 100 100 0 0 0
sorcerer 3 forest_shadows 100 3 0 4.1 3.6 0 0 100 0 0
sorcerer 7 forest_shadows 100 6 6 7.5 6.5 62 85 38 0 0
sorcerer 12 forest_shadows 100 6 6 7.2 7 100 100 0 0 0
warlock 3 forest_shadows 100 4 0 4.6 4.1 0 0 100 0 0
warlock 7 forest_shadows 100 6 6 6.6 6.4 45 96 55 0 0
warlock 12 forest_shadows 100 5 5 6.5 7 100 100 0 0 0
bard 3 goblin_warrens 100 5 0 4.8 4.9 0 93 100 0 0
bard 7 goblin_warrens 100 4 4 5.4 6 99 99 1 0 0
bard 12 goblin_warrens 100 4 4 4.5 6 100 100 0 0 0
cleric 3 goblin_warrens 100 4 3 4.3 5 9 86 91 0 0
cleric 7 goblin_warrens 100 4 4 5.2 5.9 96 96 4 0 0
cleric 12 goblin_warrens 100 4 4 4.9 5.9 96 96 4 0 0
druid 3 goblin_warrens 100 5 5 5.1 5.6 67 92 33 0 0
druid 7 goblin_warrens 100 3 3 4.1 6 100 100 0 0 0
druid 12 goblin_warrens 100 4 4 4.8 6 100 100 0 0 0
fighter 3 goblin_warrens 100 4 5 5.1 5.6 66 94 34 0 0
fighter 7 goblin_warrens 100 4 4 5.2 6 100 100 0 0 0
fighter 12 goblin_warrens 100 4 4 5 6 100 100 0 0 0
mage 3 goblin_warrens 100 7 7 6.8 5.6 68 87 32 0 0
mage 7 goblin_warrens 100 5 5 6.3 6 100 100 0 0 0
mage 12 goblin_warrens 100 7 7 7.5 6 100 100 0 0 0
paladin 3 goblin_warrens 100 4 5 5.4 5.8 80 97 20 0 0
paladin 7 goblin_warrens 100 5 5 5.5 6 100 100 0 0 0
paladin 12 goblin_warrens 100 5 5 6.1 6 100 100 0 0 0
ranger 3 goblin_warrens 100 5 0 5.6 4.9 0 89 100 0 0
ranger 7 goblin_warrens 100 4 4 5.2 6 100 100 0 0 0
ranger 12 goblin_warrens 100 4 4 5.4 6 100 100 0 0 0
rogue 3 goblin_warrens 100 8 8 7.7 5.9 86 100 14 0 0
rogue 7 goblin_warrens 100 7 7 7.6 6 100 100 0 0 0
rogue 12 goblin_warrens 100 7 7 8 6 100 100 0 0 0
sorcerer 3 goblin_warrens 100 7 7 7.1 5.5 67 82 33 0 0
sorcerer 7 goblin_warrens 100 5 5 6.7 5.9 95 95 5 0 0
sorcerer 12 goblin_warrens 100 7 7 7 6 100 100 0 0 0
warlock 3 goblin_warrens 100 4 5 4.8 5.3 56 78 44 0 0
warlock 7 goblin_warrens 100 5 5 5.3 6 100 100 0 0 0
warlock 12 goblin_warrens 100 5 5 5.4 6 100 100 0 0 0
bard 3 manor_blackspire 100 4 0 4.5 4.6 0 2 100 0 0
bard 7 manor_blackspire 100 4 0 5.3 6 0 54 100 0 0
bard 12 manor_blackspire 100 4 3 4.5 6 1 68 99 0 0
cleric 3 manor_blackspire 100 3 0 3.9 4.4 0 0 100 0 0
cleric 7 manor_blackspire 100 4 0 4.8 5.7 0 32 100 0 0
cleric 12 manor_blackspire 100 5 5 5 6 6 58 94 0 0
druid 3 manor_blackspire 100 4 0 3.8 5 0 13 100 0 0
druid 7 manor_blackspire 100 4 0 4.9 6 0 58 100 0 0
druid 12 manor_blackspire 100 4 4 4.4 6.7 71 82 29 0 0
fighter 3 manor_blackspire 100 4 0 4.4 5.6 0 15 100 0 0
fighter 7 manor_blackspire 100 3 4 3.5 6.2 17 100 83 0 0
fighter 12 manor_blackspire 100 5 5 5.2 7 100 100 0 0 0
mage 3 manor_blackspire 100 4 0 5.6 3.9 0 0 100 0 0
mage 7 manor_blackspire 100 6 12 6.6 6 2 50 98 0 0
mage 12 manor_blackspire 100 5 6 6.1 6.5 46 68 54 0 0
paladin 3 manor_blackspire 100 3 0 4 5.7 0 42 100 0 0
paladin 7 manor_blackspire 100 3 3 4.3 6.1 5 99 95 0 0
paladin 12 manor_blackspire 100 4 4 4.3 6.9 91 100 9 0 0
ranger 3 manor_blackspire 100 4 0 5 5.4 0 17 100 0 0
ranger 7 manor_blackspire 100 5 0 5.8 6 0 100 100 0 0
ranger 12 manor_blackspire 100 5 5 5.1 6.1 10 100 90 0 0
rogue 3 manor_blackspire 100 6 0 6.6 5.6 0 42 100 0 0
rogue 7 manor_blackspire 100 6 0 7.1 6 0 98 100 0 0
rogue 12 manor_blackspire 100 6 6 6.6 6.8 82 100 18 0 0
sorcerer 3 manor_blackspire 100 5 0 5.2 3.6 0 0 100 0 0
sorcerer 7 manor_blackspire 100 7 0 8 5.9 0 40 100 0 0
sorcerer 12 manor_blackspire 100 5 5 7 6.5 47 69 53 0 0
warlock 3 manor_blackspire 100 4 0 4.8 4.4 0 0 100 0 0
warlock 7 manor_blackspire 100 4 0 5.4 6 0 49 100 0 0
warlock 12 manor_blackspire 100 5 4 5.5 6.3 27 80 73 0 0
bard 3 underdark 100 0 0 0 0 0 0 0 0 0
bard 7 underdark 100 2 0 3 3.7 0 5 100 0 0
bard 12 underdark 100 4 0 4.4 5.7 0 64 100 0 0
cleric 3 underdark 100 0 0 0 0 0 0 0 0 0
cleric 7 underdark 100 2 0 3.5 3.1 0 1 100 0 0
cleric 12 underdark 100 3 0 4.3 4.8 1 10 99 0 0
druid 3 underdark 100 0 0 0 0 0 0 0 0 0
druid 7 underdark 100 4 0 3.9 3.7 0 4 100 0 0
druid 12 underdark 100 5 5 5.7 6.2 33 77 67 0 0
fighter 3 underdark 100 0 0 0 0 0 0 0 0 0
fighter 7 underdark 100 4 6 5.5 6.1 10 90 90 0 0
fighter 12 underdark 100 4 4 4.7 7 100 100 0 0 0
mage 3 underdark 100 0 0 0 0 0 0 0 0 0
mage 7 underdark 100 2 0 2.9 3.4 0 1 100 0 0
mage 12 underdark 100 3 4 4.2 5.6 17 44 83 0 0
paladin 3 underdark 100 0 0 0 0 0 0 0 0 0
paladin 7 underdark 100 5 0 5.5 5.9 0 89 100 0 0
paladin 12 underdark 100 4 4 4.7 6.9 87 100 13 0 0
ranger 3 underdark 100 0 0 0 0 0 0 0 0 0
ranger 7 underdark 100 10 0 11.8 6 0 98 100 0 0
ranger 12 underdark 100 10 16 10.1 6 4 100 96 0 0
rogue 3 underdark 100 0 0 0 0 0 0 0 0 0
rogue 7 underdark 100 5 3 5.3 5.9 1 78 99 0 0
rogue 12 underdark 100 4 4 5 7 99 100 1 0 0
sorcerer 3 underdark 100 0 0 0 0 0 0 0 0 0
sorcerer 7 underdark 100 2 0 3.1 3.1 0 1 100 0 0
sorcerer 12 underdark 100 3 3 3.6 5.1 10 29 90 0 0
warlock 3 underdark 100 0 0 0 0 0 0 0 0 0
warlock 7 underdark 100 3 0 4 3.6 0 5 100 0 0
warlock 12 underdark 100 5 7 5.3 5.8 9 64 91 0 0