LIVE

Breakpoints & Animations

Breakpoints

Introduction

The Diablo 2 engine runs at 25 Frames per Second (FPS). Every action a character performs requires a specific number of frames to complete. Frames can't be broken down into fractions, therefore you have to reduce the count by a complete Frame to shorten the animation length, leading to the Breakpoints of the animation. We can improve the Cast Rate, Hit Recovery, Block Rate and Attack Rate through their corresponding Affixes on gear or Skill effects. Each of these animations has their own calculation on how to reduce its Frame count, which we go into detail in their respective sections. This leads to a table of numeric values that can be reached for each of them, the so-called "Breakpoints". Due to the complexity of Attack Speed, it is covered in our Attack Speed article.


Class Breakpoints

Amazon

Cast Rate

The Cast Rate of the Amazon depends on the Weapon she is using.

Using a Bow

Faster Cast RateCast FramesAction Flags
01910
71810
14179
22169
32158
48148
68137
99127
152116

Crossbow or Two-Handed-Swords

Faster Cast RateCast FramesAction Flag
01912
71812
111811
141711
221611
261610
321510
48149
68139
86138
99128
152118
180117

No Weapon

Faster Cast RateCast FramesAction Flags
01911
71811
131810
141710
221610
29169
32159
48149
56148
68138
99128
113127
152117

Two-Handed Staves, Hammers, Axes, Polearms, Spears, One-Handed Knives, or Javelins

Faster Cast RateCast FramesAction Flags
01913
71813
101812
141712
221612
231611
321511
421510
481410
681310
72139
99129
133128
152118

Hit Recovery Rate

Faster Hit RecoverHit Recovery Frames
011
610
139
208
327
526
865
1744

Block Rate

The Block Rate of the Amazon depends on the Weapon she is using.

1-Handed Swinging Weapons (Axes, Clubs, Maces, Scepters, Swords, Throwing Axes, and Wands)

Faster Block RateBlock Frames
017
416
615
1114
1513
2312
2911
4010
569
808
1207

Other Weapons

Faster Block RateBlock Frames
05
134
323
862
Assassin

Cast Rate

Faster Cast RateCast FramesAction Flags
0169
8159
15158
16148
27138
39137
42127
65117
86116
102106
17496

Hit Recovery Rate

Faster Hit RecoveryHit Recovery Frames
09
78
157
276
485
864
2003

Block Rate

Faster Block RateBlock Frames
05
134
323
862
Barbarian

Cast Rate

Faster Cast RateCast FramesAction Flags
0139
9129
15128
20118
37108
39107
6397
8696
10586
20076

Hit Recovery Rate

Faster Hit RecoveryHit Recovery Frames
09
78
157
276
485
864
2003

Block Rate

Faster Block RateBlock Frames
07
96
205
424
863
Druid

Cast Rate

Human Form

Fast Cast RateCast FramesAction Flags
01810
41710
101610
11169
19159
30148
46138
63137
68127
99117
142116
163106

Werewolf

Faster Cast RateCast FramesAction Flags
0168
6158
10157
14147
26137
37136
40126
60116
95105
15795

Werebear

Faster Cast RateCast FramesAction Flags
0169
7158
15148
26137
40127
63116
99106
16395

Hit Recovery Rate

1-Handed Swinging Weapons (Axes, Clubs, Maces, Scepters, Swords, Throwing Axes, and Wands)

Faster Hit RecoveryHit Recovery Frames
014
313
712
1311
1910
299
428
637
996
1745
4564

Other Weapons

Faster Hit RecoveryHit Recovery Frames
013
512
1011
1610
269
398
567
866
1525
3774

Werewolf

Faster Hit RecoveryHit Recovery Frames
07
96
205
424
863
2802

Werebear

Faster Hit RecoveryHit Recovery Frames
013
512
1011
1610
249
378
547
866
1525
3604

Block Rate

Human Form

Faster Block RateBlock Frames
011
610
139
208
327
526
865

Werewolf

Faster Block RateBlock Frames
09
78
157
276
485
864

Werebear

Faster Block RateBlock Frames
012
511
1010
169
278
407
656
1095
Necromancer

Cast Rate

Normal

Faster Cast RateCast FramesAction Flags
0158
9148
18137
30127
48116
75106
12595

Vampire Form

Faster Cast RateCast FramesAction Flags
0235
6225
11215
18205
24194
35184
48174
65164
86154
120143
180133

Hit Recovery Rate

Normal

Faster Hit RecoveryHit Recovery Frames
013
512
1011
1610
269
398
567
866
1525
377

Vampire Form

Faster Hit RecoveryHit Recovery Frames
015
214
613
1012
1611
2410
349
488
727
1176
2085

Block Rate

Faster Block RateBlock Frames
011
610
139
208
327
526
865
Paladin

Cast Rate

Faster Cast RateCast FramesAction Flags
0159
9149
15148
18138
30128
39127
48117
75107
86106
12596

Hit Recovery Rate

Spears and Staves

Faster Hit RecoveryHit Recovery Frames
013
312
711
1310
209
328
487
756
1295
280

Other Weapons

Faster Hit RecoveryHit Recovery Frames
09
78
157
276
485
864
2003

Block Rate

Without Holy Shield

Faster Block RateBlock Frames
05
134
323
862

With Holy Shield

Faster Block RateBlock Frames
02
861
Sorceress

Cast Rate

Regular Frames

Faster Cast RateCast FramesAction Flags
0137
9127
20116
37106
6395
10585
20074

Lightning / Chain Lightning

Faster Cast RateCast FramesAction Flags
0197
7187
15177
20176
23166
35156
52146
63145
78135
117125
194114
200114

Hit Recovery Rate

Faster Hit RecoveryHit Recovery Frames
015
514
913
1412
2011
3010
429
608
867
1426
2805

Block Rate

Faster Block RateBlock Frames
09
78
157
276
485
864
Mercs

Cast Rate

Act 1 Mercenary

Rogues use Inner Sight, however, she uses her Attack Rate for it. Faster Cast Rate has no effect.

Act 3 Mercenary

Faster Cast RateCast FramesAction Flags
0177
8167
15157
20156
26146
39136
58126
63125
86115
138105
200104

Hit Recovery Rate

Act 1 Mercenary

Faster Hit RecoveryHit Recovery Frames
011
610
139
208
327
526
865
174

Act 2 Mercenary

Faster Hit RecoveryHit Recovery Frames
015
514
913
1412
2011
3010
429
608
867
1426

Act 3 Mercenary

Faster Hit RecoveryHit Recovery Frames
017
516
815
1314
1813
2412
3211
4610
639
868
1337
2326

Act 5 Mercenary

Faster Hit RecoveryHit Recovery Frames
09
78
157
276
485
864
2003


Hit Recovery Rate

Faster Hit Recovery061320325286174
Hit Recovery Frames1110987654

Block Rate

1-Handed Swinging Weapons (Axes, Clubs, Maces, Scepters, Swords, Throwing Axes, and Wands)

Faster Block Rate04611152329405680120
Block Frames1716151413121110987

Other Weapons

Faster Block Rate0133286
Block Frames5432


Cast Rate

Mechanics

  • Cast Rate determines how fast the animation for a casting based Skill is.
  • Your cast animation can be interrupted by...
    • ... hits that put you into Hit Recovery (see below).
    • ... stuns.
    • ... you blocking.
  • The animation is split into 3 sections.
    • Frames before the Skill activation
    • The "Action Flag" - The Frame when the Skill occurs
    • The remaining Frames of the animation, before another action can be taken
  • You can speed up the animation by using gear with +xx% Faster Cast Rate (FCR).
    • Effective Faster Cast Rate is capped to 75%. As a result, having more than +200% FCR equipped has no effect at all.

Calculations

Note for the calculations:

  • ceil = round up the term that follows
  • floor = round down the term that follows
Cast Frames

To calculate the Cast Frame of a Character, we need the following values:

  • The total +xx% Faster Cast Rate (FCR) from our gear.
  • The "Casting base" of the Character. Check in the table below.
  • The "Animation Speed" of the Character. Check in the table below.

With these values, we can go through the following formulas.

Effective Faster Cast Rate (EFCR)

Note: EFCR has a hard-coded cap of 75%. This means that FCR values past 200% have no effect.
EFCR = floor(FCR * 120 / (FCR + 120))

Cast Frames

Cast Frames = ceil(256 * Casting Base / floor(Animation Speed * (100 + EFCR) / 100) - 1)

Cast Frame Exception

The Skills Lightning and Chain Lightning of the Sorceress use a slightly modified version of this formula.
Cast Frames = ceil(256 * Casting Base / floor(Animation Speed * (100 + EFCR) / 100))

CharacterCasting BaseAnimation Speed
Amazon20256
Assassin17256
Barbarian14256
Druid16208
Werewolf16229
Werebear16228
Necromancer15256
Vampire form15160
Paladin16256
Sorceress14256
Lightning / Chain Lightning19256
Act 3 Mercenary18256

Practical Example

Example 1

With 50 FCR on a Sorceress:

Effective Faster Cast Rate (EFCR)

EFCR = floor(50 * 120 / (50 + 120))
EFCR = floor(6,000 / 170)
EFCR = floor(35.294...)
EFCR = 35

Cast Frames

Cast Frames = ceil(3,584 / floor(256 * 135 / 100) -1)
Cast Frames = ceil(3,584/ 345 - 1)
Cast Frames = ceil(9.388...)
Cast Frames = 10

This means the Sorceress with 50 FCR on gear uses 10 Frames for the Cast animation.

Example 2

With 50 FCR on a Sorceress using Lightning:

Effective Faster Cast Rate (EFCR)

EFCR = floor(50 * 120 / (50 + 120))
EFCR = floor(6,000 / 170)
EFCR = floor(35.294...)
EFCR = 35

Cast Frames

Cast Frames = ceil(256 * 19 / floor(256 * (100 + 35) / 100))
Cast Frames = ceil(4,864 / floor(256 * 135 / 100))
Cast Frames = ceil(4,864/ 345)
Cast Frames = ceil(14.098...)
Cast Frames = 15

This means a Sorceress with 50 FCR on gear will use 15 Frames to cast Lightning.

Action Flags

To calculate the Action Flag of a Character, we need the following values:

  • The total +xx% Faster Cast Rate from our gear.
  • The "Action Flag Base" of the Character. Check in the table below.
  • The "Animation Speed" of the Character. Check in the table below.

With these values, we can go through the following formulas.

Effective Faster Cast Rate (EFCR)

Note: EFCR has a hard-coded cap of 75%. This means that FCR values past 200% have no effect.
EFCR = floor(FCR * 120 / (FCR + 120))

Action Flag

Action Flag = ceil(Base Action Flag * 256 / floor(Animation Speed x (100 + EFCR) / 100))

CharacterVariableAnimation SpeedBase Action Flag
AmazonUsing Bow25610
No Weapon25611
Using Crossbow / Two-Handed Sword25612
Using Two-handed Staves, Hammers, Axes,
Polearms, Knives, Javelins, or Spears
25613
Assassin------2569
Barbarian------2569
DruidNormal Form20810
Werewolf2298
Werebear2289
NecromancerNormal Form2568
Vampire Form1605
Paladin------2569
Sorceress------2567
Act 3 Mercenary------2567

Practical Example

Practical Example with 70 FCR on am Amazon using a Bow:

Effective Faster Cast Rate (EFCR)

EFCR = floor(FCR * 120 / (FCR + 120))
EFCR = floor(70 * 120 / (70 + 120))
EFCR = floor(8,400 / 190)
EFCR = floor(44.210...)
EFCR = 44

Action Flag

Action Flag = ceil(Base Action Flag * 256 / floor(256 * (100 + EFCR) / 100))
Action Flag = ceil(10 * 256 / floor(256 * (100 + 44) / 100))
Action Flag = ceil(2,560 / floor(256 * 144 / 100))
Action Flag = ceil(2,560 / floor(368.64)
Action Flag = ceil(2,560 / 368)
Action Flag = ceil(6.9565...)
Action Flag = 7

This means any casting Skill of the Amazon using a Bow at 70 FCR will trigger 7 Frames into the animation.


Cast Delay

Skills with a Cast Delay (CD or Cooldown) cause a waiting period before they can be cast again. This period starts at the Action Flag. Cast Delay Skills don't hinder each other to be cast without a waiting period.
The CD itself can't be reduced by any means, however, due to the interaction with the Action Flag, you can reduce the interval (Action Flag + Delay) by hitting Breakpoints for the Action Flag.

Cast Delay Skills

Amazon

SkillDelay (seconds)
Poison Javelin0.6
Plague Javelin4
Immolation Arrow1
Valkyrie6

Assassin

SkillDelay (seconds)
Shock Web0.6
Blade Sentinel2
Shadow Warrior6
Dragon Flight1
Shadow Master6

Druid

SkillsDelay (seconds)
Werewolf1
Firestorm0.6
Werebear1
Molten Boulder2
Fissure2
Volcano4
Armageddon6
Hurricane6

Paladin

SkillDelay (seconds)
Fist of the Heavens1

Sorceress

SkillDelay (seconds)
Fire Wall1.4
Meteor1.2
Blizzard1.8
Hydra1.6
Frozen Orb1

Hit Recovery

Mechanics

  • Hit Recovery will interrupt other animations like, cast animation, attack animation, run/walk animation, or your idle animation (standing around).
  • While in Hit Recovery, you are unable to perform any actions.
  • You can be put into Hit Recovery repeatedly without cooldown, potentially leading to a full "stun lock".
  • You can improve the animation by using gear with +xx% Faster Hit Recovery (FHR).

Calculations

Breakpoint Calculations

Note for the calculations:

  • ceil = round up the term that follows
  • floor = round down the term that follows

Before we can use the formulas for Hit Recovery, we need the following values:

  • The total +xx% Faster Hit Recovery from our gear.
  • The "Hit base" of the Character. Check in the table below.
  • The "Animation Speed" of the Character. Check in the table below.

With these values, we can go through the following formulas.

Effective Faster Hit Recovery (EFHR)

EFHR = floor(FHR * 120 / (FHR + 120))

Hit Recovery Frames

Hit Recovery Frames = ceil(256 * Hit Base / floor(Animation Speed * (50 + EFHR) / 100) - 1)

CharacterHit BaseAnimation Speed
Amazon6256
Assassin5256
Barbarian5256
Druid (1-handed swinging Weapons) (*)7248
Druid (Other Weapons)7256
Werewolf4256
Werebear5184
Necromancer7256
Vampire Form4136
Paladin (Spears and Staves)5192
Paladin (Other Weapons)5256
Sorceress8256
Act 1 Mercenary6256
Act 2 Mercenary8256
Act 3 Mercenary9256
Act 5 Mercenary5256

(*) This only means: 1-handed Axes, Clubs, Maces, Scepters, Swords, Throwing Axes, and Wands.

Practical Example

Practical example with 50 FHR on a Sorceress:

Effective Faster Hit Recovery (EFHR)

EFHR = floor(50 * 120 / (50 + 120))
EFHR = floor(6,000 / 170)
EFHR = floor(35.294...)
EFHR = 35

Hit Recovery Frames

Hit Recovery Frames = ceil(256 * 8 / floor(256 * (50 + 35) / 100) - 1)
Hit Recovery Frames = ceil(2,048 / floor(256 * 85 / 100) -1)
Hit Recovery Frames = ceil(2,048 / 217 - 1)
Hit Recovery Frames = ceil(8.437...)
Hit Recovery Frames = 9

This means the Sorceress with 50 FHR on gear will use 9 Frames for the Hit Recovery animation.

How is Hit Recovery determined?

The engine goes through a number of steps to determine whether a target is put into Hit Recovery:

  • Damage is calculated and applied. The target isn't put into Hit Recovery if
    • the calculated damage is enough to kill the target.
    • the target is Frozen.
    • the applied damage is Poison Damage only.
    • the applied damage is less than 1.
  • Check the maximum Life of the target.
  • Get the "divisor" value which is needed in the next step. This value is determined by the "hitclass" of the attack, which can be found in the Missile.txt game file. Each attack in the game has a hitclass value attached to it, which translates to a certain divisor. This correlation is hard coded in the engine.
HitclassesDivisor
2, 6, 10 and 118
Default16
4 and 832
564
  • Use formula: TriggerNumber = maximum Life / divisor
  • Now we actually determine whether the target will be put into Hit Recovery. To do so, the engine goes through the following checks:
    • Compare the value of applied damage with the calculated value for TriggerNumber
      • Damage < TriggerNumber -> No Hit Recovery occurs
      • Damage >= TriggerNumber -> continue with the next check.
    • If Damage is < 2 * TriggerNumber, there is a 50% chance for the target to be put into Hit Recovery. The game rolls a number (rnd{0, 1}).
      • 0 = No Hit Recovery occurs
      • 1 = continue with the next check.
    • If the last check was successful and damage < 4 * TriggerNumber there is a 75% chance for Hit Recovery to occur. The game rolls a number (rnd{0, 1, 2, 3})
      • 0 = No Hit Recovery occurs
      • 1, 2, 3 = Hit Recovery occurs
    • If the applied damage > 4 * TriggerNumber, Hit Recovery occurs guaranteed.
  • The final step of the game is to check whether a target can be put into Hit Recovery in the first place. There are a number of targets that are "immune" to Hit Recovery. Your poor CPU might have wasted its time...

Practical Example

Alright... after that mind bender of theory... Let's apply our knowledge to a practical example:
Our Character has 1600 Life and gets hit for 200 damage by an attack with the default divisor of 16.

The first step after knowing these values is:
TriggerNumber = maximum Life / divisor
TriggerNumber = 1600 / 16 = 100

Let's see if we will be put into Hit Recovery:

  • 100 < 200 -> Our TriggerNumber is smaller than the inflicted damage. -> go to the next step.
  • 100 * 2 = 200 -> The damage is equal to 2 times TriggerNumber. -> Time to roll a random number (rnd{0, 1}), meaning we have a 50% chance to get out of the Hit Recovery check.
    • 0 = No Hit Recovery
    • 1 = Go to next check
  • Assuming we got unlucky and rolled a 1 we now have a 75% chance to be put into Hit Recovery. Time to roll another random number to determine that: (rnd{0, 1, 2, 3})
    • 0 = No Hit Recovery occurs
    • 1, 2, 3 = Hit Recovery occurs
  • Since the damage is not >= 4x TriggerNumber there is no guarantee to be put into Hit Recovery.
  • Finally, let's check whether we can be put into Hit Recovery in the first place. The Characters you play can always be put into Hit Recovery, so if we rolled a 1-3 in the earlier check, we are out of luck and will be put into Hit Recovery.

Block Rate

Mechanics

  • Blocking is an animation that is performed when you successfully block a physical attack. This includes the Assassins' Weapon Block.
  • While blocking, you are unable to perform any actions.
  • You can block repeatedly without cooldown, potentially leading to a full "block lock".
  • You can speed up the animation by using gear with +xx% Faster Block Rate (FBR).
    • This Affix is exclusive to Shields, making it very hard to come by. The only exceptions to this rule are Guardian Angel and Pattern.

Calculations

Note for the calculations:

  • ceil = round up the term that follows
  • floor = round down the term that follows

Before we can use the formulas for Block Rate, we need the following values:

  • The total +xx% Faster Block Rate from our gear.
  • The "Block Base" of the Character. Check in the table below.
  • The "Animation Speed" of the Character. Check in the table below.

With these values, we can go through the following formulas.

Effective Faster Block Rate (EFBR)

EFBR = floor(FBR * 120 / (FBR + 120))

With Holy Shield

EFBR = floor(FBR * 120 / (FBR + 120)) + 50

Block Frames

Block Frames = ceil(256 * Block Base / floor(Animation Speed * (50 + EFBR) / 100) - 1)

CharacterBlock BaseAnimation Speed
Amazon3256
Amazon (1-handed Weapons) (*)388
Assassin3256
Barbarian4256
Druid6256
Werewolf5256
Werebear5200
Necromancer6256
Paladin3256
Sorceress5256

(*) This only means: 1-handed Axes, Clubs, Maces, Hammers, Scepters, Swords, Throwing Axes.

Practical Example

Example 1

With 50 FBR on a Paladin without Holy Shield:

Effective Faster Block Rate (EFBR)

EFHR = floor(50 * 120 / (50 + 120))
EFHR = floor(6,000 / 170)
EFHR = floor(35.294...)
EFHR = 35

Block Frames

Block Frames = ceil(256 * 3 / floor(256 * (50 + 35) / 100) - 1)
Block Frames = ceil(768 / floor(256 * 85 / 100) -1)
Block Frames = ceil(768 / 217 - 1)
Block Frames = ceil(2.539...)
Block Frames = 3

This means the Paladin with 50 FBR and without Holy Shield will use 3 Frames for the Block animation.

Example 2

Practical example with 50 FHR on a Paladin with Holy Shield:

Effective Faster Block Rate (EFBR)

EFHR = floor(50 * 120 / (50 + 120)) + 50
EFHR = floor(6,000 / 170) + 50
EFHR = floor(35.294...) + 50
EFHR = 85

Block Frames

Block Frames = ceil(256 * 3 / floor(256 * (50 + 85) / 100) - 1)
Block Frames = ceil(768 / floor(256 * 135 / 100) -1)
Block Frames = ceil(768 / 345 - 1)
Block Frames = ceil(1.226...)
Block Frames = 2

This means the Paladin with 50 FBR and with Holy Shield will use 2 Frames for the Block animation.


Summary

  • Animations are an integral part of your Character's power and survival.
  • The information accessible in-game is limited to summing up the animation improving Affixes without telling you whether you actually hit a Breakpoint.
  • With every Breakpoint, you reduce the corresponding animation by 1 Frame or 0.04 seconds.

Credits

Written by Teo1904
Reviewed by MacroBioBoi


Changelog

Feb 12th 2022
Updated to Patch 2.4 - Added Pattern to Block Rate - Fixed Cooldown Explanation to fit Patch 2.4 changes