Developer's Blog

Remember me ?             Register

Attack Speed

Attack speed is a measure of how fast units attack relative to their base attack time. In game, increased attack speed (IAS) is granted by items, buffs from spells and auras, agility, and passive abilities.

Attack speed is represented in game as a number, usually with a percentage sign (%), but sometimes not. Regardless of whether a percentage sign is included or not, the meaning is the same.

Each point of agility (either base agility or bonus agility from items and abilities) gives 1 IAS.

All sources of IAS stack additively: for instance, if a hero has 30 agility, a Hand of Midas, and is affected by a Shiva's Guard aura from an enemy unit, the hero will have 30+30-40=20 total IAS.

If a unit has 0 IAS, it can attack only once every base attack time (BAT). Increased Attack speed represents the amount your attack speed has increased (or, when negative, decreased) as a percentage of your BAT in the following sense: A unit with x IAS will attack x/100 more times per second than if it had 0 IAS.

There is a maximum and minimum IAS a unit can have. IAS is capped at -80 and 400, meaning there will always be a minimum of BAT/5 seconds between two attacks.

Attack Speed Formula

To determine how fast a unit attacks, the following formulas may be used:

Attacks per second = (1 + IAS)/BAT

Example of formula:
Vengeful Spirit has a BAT of 1.7
If Vengeful Spirit has a total of 160 IAS, the formula will be as follows:
Attacks per second = (1 + 1.60)/1.7 = 1.53 times per second.

Seconds per attack = BAT/(1+IAS)

Example of formula:
Windrunner has a BAT of 1.5
If Windrunner has max (400) IAS, then each attack will take:
Seconds per attack = (1 + 4)/1.5 = 0.3 seconds.

Note: IAS in this formula is a percentage, so you must divide your actual IAS by 100 before using it in this formula.

Special case: Damage point

If a unit's damage point (the point at which an attack completes) is greater than the unit's BAT, the damage point will be used instead of the BAT in the formula above. Currently in DotA, this only applies to the Death Ward.

The first formula can also be used to determine how long a unit's frontswing and backswing animation will be. In either case, you simply divide the animation time. For example, Clinkz's frontswing animation is 0.7 seconds, so with minimum (-80) IAS, his frontswing will last 0.7/(1-0.8) = 3.5 seconds.