MMOrpg Combat Lab
Technical Specification · Boss Stats

Boss Stats

Boss statistics are derived from the party, not set arbitrarily. HP, swing damage, and friction values are all calculated to create a balanced challenge for a given party composition and gear tier.

§ 02.01

Boss HP

To determine the boss's baseline HP, you calculate the total party damage throughput (TPT) per second, times the desired duration of the fight in seconds. A typical boss fight is 3 minutes, so 180 seconds is the starting point.

To get this TPT number, we first need to get the throughput of each party member. I'll use a running example to create a typical boss for a fight against a classic 5 player, level 60, dungeon ready team. No movement or adds. The boss hits the Tank hard and has high HP.

Total melee throughput will include white damage and yellow damage, adjusted by gear stat modifiers.

Example Party

Tank, Healer, Melee DPS, Ranged Physical DPS (Ranger), and Ranged Casting DPS (Caster). Our Healer of course does no damage, we'll just focus on the damage dealers. Here are our primary damage stats:

Level 60 Dungeon Ready Party — Damage Stats
MemberMain Hand DPSOffhand DPSAP / SP
Tank58.4N/A187.5 AP
Melee DPS58.429.2300 AP
Ranger DPS58.4N/A300 AP
Caster DPSN/AN/A300 SP

Calculating Total Party Throughput (TPT)

White Damage Throughput

The average damage output of a character using passive (automatic) weapon attacks only. This is the average Weapon DPS (taking into account level, quality, handedness, and dual-wielding) combined with the AP Bonus DPS (Attack Power ÷ 14), being sure to use the "dungeon ready" gear adjusted value for AP (Adjusted AP = AP × 1.25).

Tank

Our tank needs to keep the offhand free for a shield, so we can use this simple formula:

Melee DPS

Keeping in mind the additional offhand damage for dual wielding (50% of Main hand), since our DPS is the same but halved, we just apply a 1.5× modifier to the formula:

Ranger DPS

For this example we can consider the bow in the same medium weapon size category as a sword, so similar formula, but higher AP than a tank:

Caster DPS

Zero. No white damage from a ranged caster, only spell damage.

Apply Tempo Adjustment

Leveled gear multipliers include a Tempo adjustment that gives a gain on swing speed without losing the original SP Bonus, ultimately increasing overall White DPS. We need to convert DPS to raw swing damage after the bonus by multiplying our first DPS calculation by weapon speed (e.g. 2.4s). Then revert back to the adjusted DPS by dividing by the tempo adjusted weapon speed (e.g. 2.4s × 90% = 2.16s).

Tank

Melee DPS

Ranger DPS

Caster DPS

N/A

Yellow Damage Throughput

Yellow Damage is essentially just the White Swing Damage with an ability modifier applied. However, these abilities have a different interval speed. Apart from the caster, they are instant, and therefore use the GCD of 1.5s. So we need to recalculate DPS with the proper interval speed after applying the modifier to the base swing damage.

Tank

Melee DPS

We need to recalculate just the swing damage for the main hand (calculations above apply the 1.5× modifier to include off-hand damage which do not apply here).

Now we can apply the modifier and tempo adjustment:

Ranger DPS

Caster DPS

The Caster's yellow abilities (spells) are pre-adjusted for ability damage, no modifier necessary, but there are a few other adjustment factors to consider. We'll start with the base spell damage output scaled by the player's level:

Then add the SP bonus using the direct hit coefficient formula (3 second fireball):

And finally we'll apply the dungeon-ready tempo adjustment (90%):

Final Tally and Boss HP Baseline

We add up all of the white and yellow damage to get our total party throughput:

Now that we know our TPT, we just multiply that by 180 seconds, the desired duration of our fight, to determine the baseline hitpoints of our typical boss:

Friction and Critical Hits

TPT is calculated without friction adjustments. Empirically, miss/dodge/parry/glance/spell resist losses are approximately offset by crit damage gains at ΔL+3, producing fight durations consistent with the intended target. While these modifiers may be adjusted to tune a fight, using the baseline stats in these calculations is a stable, consistent means of establishing a throughput over time goal to work from.

Simulation vs. Spec

Observed simulation TPT (tracking actual throughput damage) runs approximately 75–80% of our calculated values here in the spec due to threat management throttling suppressing some yellow damage (see Threat Crisis Protocol below). Boss HP may need to be tuned accordingly, or calculated directly from observed simulation DPS.

Calculation Summary

Boss HP Calculation Summary
StepEvaluationCalculation Logic
1Weapon RarityApply weapon rarity modifier to base DPS, e.g. 1.25× for a Rare (Blue) weapon
2HandednessApply 1.3× to DPS if weapon is 2-handed
3Base White DPS(Weapon DPS) + (AP ÷ 14)
3Dual WieldingIf dual wielding, apply a 1.5× modifier to account for offhand damage
3Yellow DamageApply Rotation Modifier with GCD interval, e.g. 2.0× for DPS
4Tempo AdjustmentConvert to swing damage, apply Tempo to interval, revert to DPS
5TPT Calculation∑(White DPS + Yellow DPS for all damage dealers)
6Boss HPTPT × Desired Duration (e.g. 180s)
§ 02.02

Boss Swing Damage & DPS

Boss damage is inversely connected to the health of the Boss's primary target, the Tank. A general rule of thumb for encounter pacing is the 12 Second Rule: A geared Tank should be able to survive roughly 12 seconds of concentrated Boss attacks without receiving a single heal. This provides enough time for the Healer to rest long enough for passive mana regeneration to kick in, giving moments to recharge, as well as create a healthy "panic window" for the Healer to react after a boss crit with an emergency heal to stabilize a fight.

Tank's Effective Health Pool

To calculate the Tank's Effective Health Pool (EHP), we determine the total raw, unmitigated damage a Tank can take considering their HP and damage reduction from Armor. Using our level 60, dungeon-ready Tank stats:

The 12 Second Damage Profile

To find the appropriate base swing damage, we must divide the EHP by the Boss's total attack equivalents over that 12-second window. Against a Boss with a 2.0s swing speed and a 6s Heavy Strike (dealing 1.5× damage):

  • Base Swings (white damage) in 12s: 6 swings (6.0× Base Damage)
  • Heavy Strikes (yellow damage) in 12s: 2 strikes at 1.5× (3.0× Base Damage)
  • Total Base Swing Equivalents: 9
Boss Weapon DPS Formula

With the baseline swing established to satisfy the 12-second survival window, the Boss's structural weapon DPS (from standard attacks alone) becomes:

§ 02.03

Boss Level Scaling and Level Friction

To baseline the difficulty of a boss fight, the boss will be generated at level +3 relative to the party. This level difference imposes penalties on player stats to increase difficulty (i.e. "add friction"). Increasing Miss%, Dodge%, Parry%, Spell Resistance, and Glancing Blow add friction via offense suppression (Player vs. Boss), while decreasing Dodge % and Shield Block % add friction via defense suppression (Boss vs. Player). See the reference table for comprehensive scaling rules.

Offense Suppression (Player vs. Boss)

To summarize offense suppression against a boss that is Level +3:

  • Miss %: Physical (Melee and Ranged physical) attacks have a 9% chance to miss.
  • Dodge %: Physical attacks have a 6.5% chance to be dodged.
  • Parry %: Physical attacks from a direct stand-off have a 6.5% chance to be parried.
  • Glancing Blow: Tanks/Melee DPS have a 40% chance for any hit to do only 70% damage.
  • Spell Resistance: DPS Ranged spells have a 17% chance to fail, fully resisted by the boss.

Note how the higher inherent fail rate of Casters (17%) is balanced against the constant output suppression of Melee (40% Glance), stabilizing total party throughput.

Given the percentages, we can use the following formulas to determine friction coefficients:

Miss Multiplier
Glance Multiplier

Defense Suppression (Boss vs. Player)

Defense suppression uses a flat 0.6% reduction per level difference on defense stats rather than a coefficient. We'll apply this to Dodge % which is based on player level and gear quality, and Shield Block % which is based on shield quality.

  • Dodge %: −(ΔL 3 × 0.6%) = 1.8%
  • Shield Block %: −(ΔL 3 × 0.6%) = 1.8%

Using a Level 60, dungeon ready Tank with Rare gear and a Rare shield as an example, defense suppression for a Level +3 boss would look like:

Dodge %: (11% Base Dodge + 5% Gear Bonus) − (ΔL 3 × 0.6%) = 16% − 1.8% = 14.2%

Shield Block %: 15% Block from Rare Shield − (ΔL 3 × 0.6%) = 15% − 1.8% = 13.2%

So the complete reduction formulas would be:

Boss Miss

There is a fixed 5% chance every swing the Boss will miss the target, very straightforward.

Boss Crit

There is also a fixed 5% chance that the boss will effectively double raw swing damage with a critical hit. If we're dealing with the same level 60, dungeon ready tank, that looks like:

Boss Cleave

50% of all generated White and Yellow physical damage is applied to any non-targeted player within the active Cleave Zone, i.e. within 3 squares directly in front of Boss's facing direction (a 180-degree frontal cone). This is a passive damage effect intended to force Melee DPS to manage their position, keeping a safe distance away from this forward melee danger zone.

Distance check formula:

Cleave damage is calculated based on Boss's raw swing damage (before Tank mitigation). Secondary targets roll their own dodge/parry/armor checks against the cleave swing.

§ 02.04

Single-Roll Attack Table (Boss)

To simplify the logic, we'll essentially make a 100 sided dice roll for every Boss swing to determine a miss, player dodge, shield block, crit, or standard hit. The ranges vary based on the target's Dodge and Block values and are determined as follows:

Single-Roll Attack Table (Boss)
OutcomeBracket WidthRoll ThresholdThreshold Value Key
Miss5% (fixed)R < T₁T₁ = 5
DodgeDodge%targetT₁ ≤ R < T₂T₂ = T₁ + Dodge%target
ParryParry%targetT₂ ≤ R < T₃T₃ = T₂ + Parry%target
BlockBlock%targetT₃ ≤ R < T₄T₄ = T₃ + Block%target
Critical5% (fixed)T₄ ≤ R < T₅T₅ = T₄ + 5
StandardRemaining BalanceT₅ ≤ R ≤ 100

Single-Roll Attack Sample Reference (Boss vs. Player)

Vs. Level 60 Dungeon Ready Tank with a Dungeon Ready Shield

Boss vs. Level 60 Dungeon Ready Tank (Dungeon Ready Shield)
OutcomeBracket WidthRoll Threshold
Miss5%R < 5
Dodge16% − 1.8% Friction = 14.2%5 ≤ R < 19.2
Parry16% − 1.8% Friction = 14.2%19.2 ≤ R < 33.4
Block15% − 1.8% Friction = 13.2%33.4 ≤ R < 46.6
Critical5%46.6 ≤ R < 51.6
Standard48.4% Remaining51.6 ≤ R ≤ 100
§ 02.05

Threat

Threat is a hidden stat kept by enemies (including the Boss) for every player in the party during an encounter, directly converting damage and/or healing done by the player into a threat value. The player with the highest threat becomes the enemy's target.

Direct Conversion Rates

Every point of damage and effective healing are converted to threat points, but are weighted differently to create tactical tension in the gameplay.

Additional Rules for Healing

  • Effective Healing only includes health points that actively regenerate HP, not overheal amounts.
  • Unlike damage, threat generated by healing is spread evenly among all active enemies in an encounter as there is no specific enemy target, the healer is (hopefully) only healing party members.

Tank Threat Multiplier

It is the Tank's objective to maintain threat at all costs to avoid having the Boss make short work of their squishier teammates. To compensate for lower raw damage output than DPS, the Tank applies a passive threat multiplier to keep up.

We'll start with a multiplier of 1.4×. This can be adjusted later or potentially scaled by level slightly (with a variance of 1.3× to 1.5×) depending on simulation behavior.

Threat Pull Thresholds

If a party member "pulls" threat away from the current target by taking the lead in their threat score (aka. "pulling aggro"), the enemy doesn't immediately pivot. The party member must surpass the lead by a buffer amount. This avoids twitchy behavior as threat meters may quickly swap back and forth for the lead spot.

Melee and Ranged have separate buffer multipliers to simulate some difference in threat pull based on distance from the enemy (in this case Healing is considered Ranged along with Ranged DPS).

Threat Crisis Protocol

The threat value is additive from the time the fight begins, a 1-to-1 reflection of damage and 0.5-to-1 reflection of healing. If a DPS player quickly pulls ahead of the Tank with some lucky RNG, it could be mathematically impossible for the Tank to catch up. In a live game, Tank's can use a Taunt ability to instantly jump their threat value to that of the highest existing player threat. And DPS can use threat suppression or Fade abilities to reduce their own threat down by a given percentage.

For the simulation, if the DPS is consistently pulling ahead, then we have a balance problem where their damage output should be adjusted to /most of the time/ falling under the threshold for bypassing Tank threat. But in response to those lucky crit roll moments, we'll introduce a protocol to properly capture this "crisis" scenario in the data as follows:

Boss Target Divergence

The Boss immediately switches target to the rogue DPS and executes a single standard swing against them, doing massive damage given the target's lower armor rating that the Healer has to deal with.

Taunt Reestablishes Threat Seniority

The Tank is instantly restored to the top of the threat meters.

Tank Action Penalty

In a real fight, the Tank loses a swing opportunity because they have to cast a taunt ability. We simulate this by resetting the Tank's attack timer.

Rogue Stabilization Window

With the Tank missing a swing, DPS Threat will be reduced for 3 seconds to avoid immediately pulling ahead again.

Note this is not a standard protocol and is a best attempt at simulating a very organic, challenging moment players face. The output should be closely reviewed to ensure stabilization of the outcome.

Reference Table