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:
| Member | Main Hand DPS | Offhand DPS | AP / SP |
|---|---|---|---|
| Tank | 58.4 | N/A | 187.5 AP |
| Melee DPS | 58.4 | 29.2 | 300 AP |
| Ranger DPS | 58.4 | N/A | 300 AP |
| Caster DPS | N/A | N/A | 300 SP |
Calculating Total Party Throughput (TPT)
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.
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 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%):
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
| Step | Evaluation | Calculation Logic |
|---|---|---|
| 1 | Weapon Rarity | Apply weapon rarity modifier to base DPS, e.g. 1.25× for a Rare (Blue) weapon |
| 2 | Handedness | Apply 1.3× to DPS if weapon is 2-handed |
| 3 | Base White DPS | (Weapon DPS) + (AP ÷ 14) |
| 3 | Dual Wielding | If dual wielding, apply a 1.5× modifier to account for offhand damage |
| 3 | Yellow Damage | Apply Rotation Modifier with GCD interval, e.g. 2.0× for DPS |
| 4 | Tempo Adjustment | Convert to swing damage, apply Tempo to interval, revert to DPS |
| 5 | TPT Calculation | ∑(White DPS + Yellow DPS for all damage dealers) |
| 6 | Boss HP | TPT × Desired Duration (e.g. 180s) |
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.
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:
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
With the baseline swing established to satisfy the 12-second survival window, the Boss's structural weapon DPS (from standard attacks alone) becomes:
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:
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.
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:
| Outcome | Bracket Width | Roll Threshold | Threshold Value Key |
|---|---|---|---|
| Miss | 5% (fixed) | R < T₁ | T₁ = 5 |
| Dodge | Dodge%target | T₁ ≤ R < T₂ | T₂ = T₁ + Dodge%target |
| Parry | Parry%target | T₂ ≤ R < T₃ | T₃ = T₂ + Parry%target |
| Block | Block%target | T₃ ≤ R < T₄ | T₄ = T₃ + Block%target |
| Critical | 5% (fixed) | T₄ ≤ R < T₅ | T₅ = T₄ + 5 |
| Standard | Remaining Balance | T₅ ≤ R ≤ 100 | — |
Single-Roll Attack Sample Reference (Boss vs. Player)
Vs. Level 60 Dungeon Ready Tank with a Dungeon Ready Shield
| Outcome | Bracket Width | Roll Threshold |
|---|---|---|
| Miss | 5% | R < 5 |
| Dodge | 16% − 1.8% Friction = 14.2% | 5 ≤ R < 19.2 |
| Parry | 16% − 1.8% Friction = 14.2% | 19.2 ≤ R < 33.4 |
| Block | 15% − 1.8% Friction = 13.2% | 33.4 ≤ R < 46.6 |
| Critical | 5% | 46.6 ≤ R < 51.6 |
| Standard | 48.4% Remaining | 51.6 ≤ R ≤ 100 |
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:
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.
The Tank is instantly restored to the top of the threat meters.
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.
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.