Scalable Boss Balancing System

As the number of multiphase bosses grows, testing each one by hand becomes impossible. This document establishes a three-layer balance system that every new boss automatically passes through: (1) Rule Layer — universal limits automatically applied to every boss; (2) Checklist — the standard pre-release test battery; (3) Automated Tool — a simulator (files: engine.py, doctor.py, bosses.py).

This system was built to resolve the two open questions left by 17b_Boss_Telegraf_AB_Testi (Ambush severity, above-band DPR) — but the tool showed the real problem wasn't either of those; it was your #1 priority, "unkeyed party punishment." Below is both the system and this finding.



Layer 1 — Rule Layer (universal limits)

These four rules apply automatically to every multiphase boss; there's no need to write them separately in the stat block. Assume them when designing a new boss.

Rule 1 — Mandatory Telegraph Turn

The first boss turn after every phase transition stays at half damage output (or the strongest attack is delayed by one turn). (Proven in the A/B test: +26 points for critical-band parties, no effect at the extremes. Now mandatory in 17_Boss_Cercevesi.)

Rule 2 — Ambush Ceiling

The Phase 1 opening burst (Ambush Predator, Stoop, etc.) cannot exceed half the party's total HP. Practical ceiling: default single-character HP × 2.

  • T2: ~66 damage ceiling (33 HP/character × 4 × 0.5)
  • T4: ~94 damage ceiling (47 HP/character × 4 × 0.5)

Rationale: A burst that drops a character at the opening leaves that party wounded for the rest of the fight and kills them before they can use their key. Peak Tyrant's 77–84 damage opening drops to 76 under this ceiling — within the limit, but at the edge.

Rule 3 — Phase DPR Band

No phase's sustained (incoming) damage may exceed 1.25 times the tier band.

  • T2 band: ~55 damage/turn · T4 band: ~100 damage/turn

Rationale: A single phase's sustained above-band damage melts a party that doesn't hold that phase's key. Peak Tyrant Phase 2 (~105) is just above the band — not a red flag, but on the edge; parties without fire struggle here.

Rule 4 — "Phase 1 Doesn't Wipe" Principle (new — discovered by the tool this round)

Incoming damage in Phase 1 is kept 25% lower than the other phases (the introduction phase). The lethal phases come later; the first phase is where the party learns the boss and its keys.

Rationale: See the finding below — this rule raised overall balance from 28% to 39%, and unkeyed party odds from 21% to 34%. This is the single highest-yield rule.



Layer 2 — Pre-Release Checklist

Every new boss passes through four tests before release. The tool (doctor.py) scores these automatically; they can also be checked by hand. The order follows your priority ranking.

✅ Test 1 — Unkeyed Party Odds (PRIORITY 1)

Parties that do not hold the key to the boss's phases should win, on average, above 35%; the keyed-vs-unkeyed gap should not exceed 40 points.

A key is a shortcut, not a gate. If the gap exceeds 40 points, the boss is forcing "one correct build" — weaken the key or add a second access path.

✅ Test 2 — Phase DPR Band (PRIORITY 2)

No phase should exceed ×1.25 of the incoming damage band.

If it exceeds: lower that phase's damage or strengthen the key-defense multiplier.

✅ Test 3 — Ambush Severity (PRIORITY 3)

The opening burst should not exceed half of the party's total HP (+10% tolerance).

If it exceeds: reduce the Ambush's dice count or apply the Rule 2 ceiling.

✅ Test 4 — Overall Balance

Average win rate should be between 35–75%; at most 1 party may be hopeless (<5%).

If 2+ parties are below 5%, the boss is either too lethal or forcing a single build. If above 75%, it's too easy.

Pass rule: 4/4 PASS → ready for release. 1 FAIL → targeted fix. 2+ FAIL → recalibration.



Layer 3 — Automated Tool

Three Python files (available in output). Adding a new boss = adding a dict to bosses.py, then a single command.

Files

  • engine.py — combat resolver + standard 12-party battery (6 T2 + 6 T4) + rule layer. Parties indicate key ownership via tags (fire, control, bludgeoning, melee, ranged, nova…).
  • doctor.pyprint_report(boss): runs the battery, scores the 4 checklist tests, prints a PASS/FAIL report.
  • bosses.py — boss definitions. Template below.

New boss definition template

```python YENI_BOSS = dict( name="Boss Name", tier="T4", # T2 or T4 phases=[ dict(hp=150, ac=19, key_tag="ground", # this phase's key (matches party tag) key_mult=1.15, # keyed party deals ×how much damage to boss key_defense=0.62, # keyed party takes ×how much incoming damage ambush=lambda: roll(6,12,5)+roll(6,10), # opening burst (Phase 1) or 0 dmg=lambda: roll(3,10,5)+roll(3,8,5), # sustained damage/turn telegraf=False), # False for Phase 1, True for later phases

... subsequent phases

], ) ```

Running

`` python3 -c "from doctor import print_report; from bosses import YENI_BOSS; print_report(YENI_BOSS)" `` ~30 seconds runs 12 parties × 3,000 battles, prints the checklist report. No network required.



What the Tool Discovered This Round: The Real Problem Wasn't Ambush

Once the system was set up, the first task was running the two existing bosses through it. The result disproved the initial hypothesis:

Bone Puppeteer → ✅ 4/4 PASS

It was already balanced; the tool confirmed it. Unkeyed party 63%, overall 59%. Stands as the reference.

Peak Tyrant v1 → ❌ 2 FAIL

TestResultNote
1. Unkeyed oddsFAILunkeyed 22% vs keyed 42%
2. DPR band✅ PASSon the edge but within
3. Ambush severityPASS76 damage, ceiling 94 — not actually the problem
4. Overall balance❌ FAILaverage 28%, two parties at 0%

Surprise: Ambush and DPR (the two things we intended to fix by hand) already passed via the rule layer. The real problem turned out to be your #1 priority: unkeyed/nova parties melt in Phase 1, dying before they ever get to use a key.

Searching for a Solution — Three Rule Candidates Tested

RuleOverallUnkeyedNova
V1 (current)28%21%0%
V2 (Phase 1 defense for ranged)28%21%0%
V3 ("Phase 1 doesn't wipe," 25% reduction)39%34%0%

V3 is the most effective — and was added to the Rule Layer as Rule 4. It clearly improved overall balance and unkeyed odds.

Honest Limit: Nova Is Still 0% — And That's Correct

No rule rescued nova parties (no healing, pure burst). This isn't a failure — it's a balance truth:

Multi-phase boss = long fight. A long fight rewards parties that replenish resources (healing, control); parties that dump everything into a single nova are structurally weak. Artificially fixing this would make endurance-planning meaningless.

The checklist already accounts for this: Test 4 says "at most 1 party may be hopeless" — not zero. It's acceptable for Nova to struggle; two different Nova parties both hitting 0% at once (as in Peak Tyrant v1) is a red flag. Looked at individually after V3, this stays on the edge — which is why an additional design touch is recommended for Peak Tyrant (below).



Roadmap by Priority Order

The four problems you ranked can now be measured with the tool. Status:

1. Unkeyed party punishment (TOP PRIORITY)

  • Status: Partially resolved. Rule 4 (V3) raised unkeyed odds from 21%→34%.
  • Permanent fix: Checklist Test 1 now catches this automatically for every boss. A boss that FAILs gets: lower the key's key_mult (make the shortcut less mandatory) or add a second accessible key to each phase (Peak Tyrant Phase 3's "get into its eye" is an example — melee parties solve it naturally).

2. Phase DPR above band

  • Status: Automatically caught by Rule 3 + Test 2. Peak Tyrant Phase 2 is on the edge; should be nudged down (below).

3. Ambush/burst severity

  • Status: ✅ Resolved by Rule 2 (ceiling). Now automatically limited for every boss.

4. Phase transition cliff

  • Status: ✅ Largely resolved by Rule 1 (mandatory telegraph). Proven in the A/B test.

Concrete Prescription for Peak Tyrant v2

In light of the tool, to bring Peak Tyrant to 4/4 PASS:

  1. Lower Phase 2 DPR ~105 → ~90 (remove one Talon attack or reduce Tail damage) → eases Test 2.
  2. Rule 4 is already applied (Phase 1 is 25% softer) → unkeyed odds went up.
  3. Second key hint in Phase 1: something like "when Peak Tyrant takes flight, range above 60 ft can spot it" for ranged/kite parties — gives Nova a handhold too.

After these three touches, run the boss through the tool again; target 4/4 PASS.



Summary — How the System Scales

`` Design a new boss ↓ Assume the Rule Layer (4 universal limits automatic) ↓ Add to bosses.py → run python3 doctor.py ↓ 4/4 PASS? ──Yes──→ Ready for release │ No ↓ Apply the fix for the FAILed test (notes in Layer 2) ↓ Run again (loop) ``

Same flow whether it's five bosses or fifty. There's no need at all to play round-by-round by hand — the tool does it in 30 seconds. The human only makes a design decision when a FAIL comes up.


Calibration & Methodology: Party DPRs in the battery are calculated via a 400–600 trial Monte Carlo against the boss's AC; battles run round-by-round and repeat 3,000 times per party with preserved dice variance. The rule-layer multipliers (telegraph 0.5; ambush ceiling 0.5×total; band 1.25×; Phase 1 0.75×) were calibrated with this round's tests and can be updated with new data. Absolute percentages are model-sensitive; what's reliable are the differences across scenarios. The tool is an extension of 17_Boss_Cercevesi and uses its terminology (phase, key, role, tier).

License: This system and its tools are original works. Rule terminology is based on SRD 5.2 (Wizards of the Coast LLC, CC-BY-4.0).

This work includes material from the System Reference Document 5.2 ("SRD 5.2") by Wizards of the Coast LLC, available at https://www.dndbeyond.com/srd, licensed under CC-BY-4.0 (https://creativecommons.org/licenses/by/4.0/legalcode).