Stormblood

Damage & Healing

Damage Dealt

In the previous section, we covered numerous functions. From here on, we will incorporate those functions into equations. This first section relates to damage dealt. To make this equation easier to read, four of the ⌊ brackets have been removed. Flooring still occurs at any point in which a ⌋ occurs.

f(chr) is (1) when attack is not a critical hit. f(dhr) is (1) when the attack is not a direct hit, but is (1.25) when it is a direct hit.

Direct Damage (Actions)

D = ⌊ f(ptc) × f(wd) × f(ap) × f(det) × f(tnc) × traits ⌋ × f(chr) ⌋ × f(dhr) ⌋ × rand[ 0.95, 1.05 ] ⌋ buff_1 ⌋ × buff_1 ⌋ × buff… ⌋

In the above equation, rand[0.95, 1.05] represents an inclusive range of 0.95 to 1.05. This is the randomization component of the damage calculation. Without this component, you would inflict the exact same damage each time you repeat an action (Excluding critical hits and direct hits). All damage buffs are multiplicative. Therefore, having two 20% damage increases will yield 44% increased damage ( 1.2 × 1.2 ) rather than 40% increased damage.

When applicable, replace f(ap) with f(map) for actions that use magic attack power

Damage-Over-Time

D = ⌊ f(ptc) × f(wd) × f(ap) × f(det) × f(tnc) × traits ⌋ × f(ss) ⌋ × rand[ 0.95, 1.05 ] ⌋ × f(chr) ⌋ × f(dhr) ⌋ × buff_1 ⌋ × buff… ⌋

Compared to direct damage, damage-over-time has two differences. The first difference is that it includes f(ss) in its damage calculations.

The second difference is that its randomization component applies before critical hit and direct hit bonuses. This was deduced by recording a direct damage parse (~80k samples) and listing each unique damage value. For direct damage, the number of unique entries for critical hit and direct hit exceeded the number of normal hit entries. For damage-over-time, the number of unique entries were equal across critical hit, direct hit, and normal hits.

Auto-Attacks

D = ⌊ f(ptc) × f(aa) × f(ap) × f(det) × f(tnc) × traits ⌋ × f(ss) ⌋ × f(chr) ⌋ × f(dhr) ⌋ × rand[ 0.95, 1.05 ] ⌋ × buff_1 ⌋ × buff… ⌋

Auto-attacks largely follow the same formula as direct damage via actions. However, unlike direct damage, the auto-attack equation uses f(aa) in place of f(wd). This allows weapon delay to influence the damage inflicted by auto-attacks.

Damage Taken

Between physical and magical damage taken, the primary difference is the substitution of f(def) for f(mdef) and the addition of Function of Elemental Resistance or f(res). Even though Square Enix plans to remove elemental resistance from the character window and equipment, we expect that they will continue to use it in the damage taken formula. Encounters, such as Ultimate Coil, use elemental resistance to punish players when they incorrectly perform a mechanic. Before it was announced, we believed elemental resistance followed the same formula as f(mdef) substituting “magic defense” with “elemental resistance” and replacing Level Lv, DIV with 295 for level 70. Since the only manipulation of your elemental resistance will come from deity bonuses, f(res) will often be zero unless there is mechanic-specific manipulation involved.

Physical Damage Taken

PDT = ⌊ Original Damage × ( 1 - f(def) ) × ( 2 - f(tnc) ) × ( 1 - f(blk) ) ⌋ × rand[ 0.95, 1.05 ] ⌋ × ( 1 - buff_1 ) ⌋ × ( 1 - buff… ) ⌋

Magical Damage Taken

MDT = ⌊ Original Damage × ( 1 - f(mdef) ) × ( 1 - f(res) ) × ( 2 - f(tnc) ) × ( 1 - f(blk) ) ⌋ × rand[ 0.95, 1.05 ] ⌋ × ( 1 - buff_1 ) ⌋ × ( 1 - buff… ) ⌋

Healing

Direct Heals

H = ⌊ f(ptc) × f(wd) × f(hmp) × f(det) × f(tnc) ⌋ × traits ⌋ × f(chr) ⌋ × rand[ 0.97, 1.03 ] ⌋ × buff_1 ⌋ × buff_… ⌋

The Direct Heals formula looks similar to Direct Damage with f(hmp) substituting for f(ap) and f(dhr) removed. Tenacity only affects outgoing heals from tanks; it does not affect incoming heals on tanks. Like Direct damage, f(chr) is (1) when the heal is not a critical hit.

Healing-Over-Time

H = ⌊ f(ptc) × f(wd) × f(hmp) × f(det) × f(tnc) × traits ⌋ × f(ss) ⌋ × rand[ 0.97, 1.03 ] ⌋ × f(chr) ⌋ × buff_1 ⌋ × buff… ⌋

Like Damage-Over-Time, Healing-Over-Time includes f(ss) in its formula. The placement of f(tnc) and randomization is largely speculation.