Fixed-position melee loadout audit — 9 September 2026
The shared-pool reduction leaves a substantial Spike substitution risk that the six-family game study cannot measure: its melee family carries dual Blades. In this separate, fresh adjacent-exchange test, dual Spikes cost less, retain two more opportunities, and kill the opposing stock kit more often than dual Blades. The observed kill-rate gap grows from 7.1 to 16.3 percentage points after the pool reduction. This supports limiting any forthcoming balance claim to the tested roster definitions. It does not establish an optimal loadout or predict a new game-wide meta.
No live catalog, rules, controller, or frozen study source changed for this audit. It supplies a loadout-budget warning, not another candidate-selection stage.
Fixed design and exact budgets
All 153,600 exchanges were executed: five Reaver equipment variants × three pilots × five stock opponents × four conditions × two initiating roles × 256 fresh seeds (900000–900255). Every one of the 600 declared cells was legal; none was omitted. The run took 23.4 seconds.
Each Reaver keeps its stock Braced right arm and Duelist left arm. Their capacities are 10 and 7. The two-handed Greatblade uses their combined capacity of 17, with the left equipment slot explicitly empty. No arm optimization or replacement was needed. Shield equipment supplies the defense-only pool even on the retained Duelist arm.
Offensive pool counts below are Ruko / Marrow / Vex, before rolling. They include retained arm handling, class and Piloting bonuses. The reduction removes one base die from each held melee weapon, to a minimum of one; it leaves shield dice unchanged.
| Reaver equipment | Weight / cap | Control offensive dice | Pool−1 offensive dice | Shield dice |
|---|---|---|---|---|
| Dual Blade | 46 / 50 | 6 / 7 / 7 | 4 / 5 / 5 | 0 |
| Dual Spike | 44 / 50 | 8 / 9 / 9 | 6 / 7 / 7 | 0 |
| Dual Ram | 48 / 50 | 6 / 7 / 7 | 4 / 5 / 5 | 0 |
| Blade + shield | 47 / 50 | 3 / 4 / 4 | 2 / 3 / 3 | 2 |
| Greatblade | 48 / 50 | 3 / 4 / 4 | 2 / 3 / 3 | 0 |
The manifest also pins exact source budgets and stats for every opponent: stock Courier, Foreman, Bastion, Reaver and Lantern, including their printed pilots/equipment. Stock Reaver here has one Blade and an Autocannon; it is not the game study's dual-Blade melee-family unit.
One exchange, no movement policy
Each trial creates a fresh adjacent open-ground GameState, begins only the designated initiator's activation, then calls the real GameState.fight. The existing deterministic MeleeExchange.auto declares the first available offensive opportunity against Core and parries whenever enough opportunities remain, spending shield opportunities first and then the lowest totals. The exchange runs to completion. Its d20s, damage and critical effects are seeded random rolls; the decisions are scripted, not the dice.
Both initiating roles are sampled independently. Piloting still determines who makes the first exchange decision, so “initiates” does not necessarily mean “strikes first.” The fixed Reaver variant is always side A; this test has no spatial or initiative roll-off comparison.
There are no movement decisions, objectives, other activations, prior damage or Heat, Enraged qualification, CP, allied bonds or reactions. Pilot stats remain printed; this isolated F11 sequence does not exercise their surrounding-game ability actions. Normal critical effects and weapon/self Heat still apply.
Observed exchange outcomes
Each table entry represents 7,680 exchanges, equally weighting three pilots, five targets and two initiating roles. Damage means actual opposing body durability removed, including critical effects and transfer, excluding overkill. “Empty” means the tested Reaver dealt no body damage over the whole exchange. “Enemy killed” is an exchange outcome, not a game win rate.
| Loadout | Mean damage: control → pool−1 | Empty: control → pool−1 | Enemy killed: control → pool−1 |
|---|---|---|---|
| Dual Blade | 10.88 → 8.24 | 12.4% → 25.4% | 75.7% → 46.3% |
| Dual Spike | 11.58 → 10.36 | 5.8% → 10.8% | 82.8% → 62.6% |
| Dual Ram | 11.05 → 8.64 | 7.2% → 15.9% | 73.5% → 46.4% |
| Blade + shield | 8.07 → 5.47 | 23.2% → 39.6% | 41.5% → 22.2% |
| Greatblade | 7.85 → 5.84 | 34.6% → 49.8% | 50.4% → 35.5% |
The Spike-versus-Blade ordering appears against every sampled opponent in these mixtures. Each target/loadout/condition entry below has 1,536 exchanges.
| Stock opponent | Control kills: Blade / Spike | Pool−1 kills: Blade / Spike |
|---|---|---|
| Courier | 49.0% / 62.4% | 26.2% / 41.1% |
| Foreman | 92.6% / 95.5% | 67.3% / 82.1% |
| Bastion | 84.2% / 88.2% | 34.8% / 52.7% |
| Reaver | 64.9% / 77.5% | 45.4% / 63.7% |
| Lantern | 87.7% / 90.4% | 57.7% / 73.4% |
The direction also holds separately when the tested variant initiates and when its opponent initiates. Under pool−1, Blade/Spike kill rates are 46.1%/62.5% when the variant initiates and 46.5%/62.7% otherwise. These role-specific entries each contain 3,840 exchanges. Pilot and initiation breakdowns, damage received, deaths, declaration/acceptance/parry counts, initial failures and damage histograms are retained in the evidence.
All four requested conditions were executed. Adding ranged accuracy +2 is an exact negative control for this F11-only fixture: control equals accuracy2, and pool−1 equals their combination. All aggregates, compact seed outcomes and SHA256 digests of complete ordered per-seed result objects matched across 300 cell pairs / 76,800 seed pairs. This says nothing about accuracy2's ranged or full-game effects.
What this establishes, and what it leaves open
Spike retains a lower printed damage profile (2d6 versus Blade's 2d6+2) and lower penetration (2 versus 3), while sharing accuracy 2 and parry cost 1. Its base pool of three versus two is therefore a real tradeoff, not strict statistical dominance across all situations. Here, two extra shared opportunities help sustain attacks and defense after opposing opportunities are spent. The candidate reduces both dual-weapon pools by two, preserving that relative surplus; it does not price or remove it.
The scripted always-parry/Core policy, intact starting arms and finite stock targets strongly constrain the result. Arm targeting, damage accumulated before contact, alternative spending decisions, mixed equipment, optimized frames, positioning, disengagement and ranged attacks are absent. A shield's survival value also remains uncertain in this panel: tested-Reaver death rates were low (0.1–3.4% across loadout/condition mixtures), with little incoming body damage on average. These results cannot certify kit-wide balance or justify an automatic further weapon nerf.
All percentages are descriptive point estimates. Seeds are reused across cells and conditions, so the 153,600 trials are not independent evidence units for a cross-loadout contrast. Compact per-seed outcomes preserve that dependence; the summary additionally retains 256 whole-seed Spike-minus-Blade contrast clusters. No confidence intervals, multiple-testing claims, holdout outcomes or new condition selection are involved.
Evidence and reproduction
- Pretrial manifest used for execution: exact builds, legality, full catalogs/rules, source fingerprints and fixed factorial.
- All 600 cell results with compact per-seed outcomes: counts, totals, histograms, negative-control checks and command.
- Derived summaries and paired seed clusters.
- Analysis script.
- Exact retained commands.
The earlier manifest.json was written before review requested per-seed retention and stricter negative-control checks. It is retained as a superseded pretrial artifact; no trials used it. Manifest-v2 was written after those implementation changes and before any outcome trials.
pnpm exec vitest run cli/melee-loadout-audit.test.ts
pnpm exec tsx cli/melee-loadout-audit.ts --prepare --out /tmp/melee-loadout-manifest.json
pnpm exec tsx cli/melee-loadout-audit.ts --run --manifest /tmp/melee-loadout-manifest.json --out /tmp/melee-loadout-results.json
python3 docs/tuning/evidence/2026-09-09-melee-loadout-audit/summarize.py
The runner refuses output overwrites and source/catalog/rule drift. Use new output paths for another execution. The summary script reads this retained evidence directory and also refuses to overwrite its existing summary.json; reproduce it in a copied evidence directory with that derived file omitted. Five focused tests and typecheck passed; an independent reviewer approved the fixture, legality, event metrics and execution checks before the trials.