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 and our friction modifiers above.

Example Party

Tank, Healer, 2 Melee DPS, and 1 Ranged DPS/physical (we'll not factor in spell power just yet for simplicity). Here are our primary damage stats:

Level 60 Dungeon Ready Party — Damage Stats
Member Weapon DPS (DR) Weapon DPS Offhand (DR) AP
Tank58.4187.5
Healer75
Melee DPS #158.429.2300
Melee DPS #258.429.2300
Ranged DPS/phys58.4300

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:

Ranged DPS (Physical)

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:

Melee DPS ×2

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:

Yellow Damage Throughput

Next, apply the ability modifier to our white damage values above. This is a static modifier to represent active damage done through the party member's ability rotation: Tank 1.4×, Melee DPS and Ranged DPS (Physical) 2.0×.

Tank

Ranged DPS (Physical)

Melee DPS ×2

Boss Level Friction

The last step is adding level friction from missed attacks and glancing blows (again, we'll skip spell resistance for now).

Tank

For Tank and Melee DPS, we'll apply both Miss and Glance modifiers.

Ranged DPS (Physical)

Our Ranged DPS doesn't have to worry about Glance modifiers.

Melee DPS ×2

Final Tally and Boss HP Baseline

We can finally add up our damage to get our total party throughput, being sure to double our Melee DPS since we have 2 in the party.

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:

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 Multiplier, e.g. 2.0× for DPS
4Level FrictionApply Miss (0.91) and Glance (0.88) modifiers if applicable
5TPT Calculation∑(Effective DPS of all 5 members)
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 is that the Tank can take about 3 normal Boss hits before a knockout. If the Boss has a 2 second swing interval, the Tank's time-to-defeat (Tank TTD), without healing, is about 6 seconds. Fortunately, this 6 second panic window is also just enough time for the Healer to cast their 3.5 second big heal immediately after the Tank takes a big hit, and start casting the next one.

Tank's Effective Health Pool

To calculate the Tank's Effective Health Pool (EHP), the raw damage a Tank can take considering their HP and damage reduction from Armor. Again, we'll use our level 60, dungeon-ready Tank stats to demonstrate:

Required Raw Boss Swing Damage

If the tank can only take 3 hits, then we just divide our Effective Health Pool by 3:

Boss Weapon DPS Formula

If the boss swings at a standard, slow dungeon pacing of a 2.0 second weapon speed, its baseline weapon dps formula 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

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 Pull Thresholds

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