Random distribution
In general Randomness is rejected from competitive gaming since it can decide over loss and defeat without reflecting the actual skill level. Nonetheless there are a couple of random events within DotA 2, that keep the game less predictable and static. To limit the influence of huge streaks, pseudorandom distribution replaces the true random distribution where it made sense for the developers.
Contents
Definition[edit  edit source]
The uniform or true random distribution describes the probability of random event that underlies no manipulation of the chance depending on earlier outcomes. This means that every "roll" operates independently.
The pseudorandom distribution (often shortened to PRD) in DotA refers to a statistical mechanic of how certain probabilitybased items and abilities work. In this implementation the event's chance increases every time it does not occur, but is lower in the first place as compensation. This results in the effects occurring more consistently.
The probability of an effect to occur (or proc) on the Nth test since the last successful proc is given by P(N) = C × N. For each instance which could trigger the effect but does not, the PRD augments the probability of the effect happening for the next instance by a constant C. This constant, which is also the initial probability, is lower than the listed probability of the effect it is shadowing. Once the effect occurs, the counter is reset.
Example[edit  edit source]
 Slardar
's Bash of the Deep has a 25% chance to stun the target. On the first attack, however, it only has an ~8.5% probability to bash. Each subsequent attack without a bash increases the probability by ~8.5%. So on the second attack, the chance is ~17%, on the third it is ~25.5%, etc. After a bash occurs, the probability resets to ~8.5% for the next attack. These probabilities average out so that, over a moderate period of time, Bash of the Deep procs nearly 25% of the time.
Effects based on PRD rarely proc many times in a row, or go a long time without happening. This makes the game less luck based and adds a great deal of consistency to many probabilitybased abilities in Dota 2. Gameplay wise, PRD is difficult to exploit. It is theoretically possible to increase your chance to bash or critical strike on the next attack by attacking creeps several times without the effect happening, but in practice this is nearly impossible to do. Note that for instances that would not trigger the effect, the probability counter does not increase. So a hero with critical strike attacking buildings does not increase its chance to critical strike on its next attack, since critical strike does not work against buildings. The chance is not reset/increased as long as the ability is on cooldown as well (e.g. Bash).
The probabilities listed in the game are theoretical percentages, which are slightly higher than the actual probabilities. In the following table, P(T) is the theoretical probability while P(A) is the actual average. C is the PRD constant. Max N is the minimum number of attacks that would result in C × N becoming greater than 1 (i.e. guaranteed proc). Average N is the expected value of N: the sum of the products of N and probabilities. SD is the standard deviation of N, a measure of how spread the data is, using the population formula. The lower the deviation, the more consistent the procs are. For comparison, SDt is the standard deviation of N in true random distribution, using the sample formula from N = 1 to N = 264. These are higher than those of PRD, hence not as consistent.
Percentages[edit  edit source]
P(T)  P(A)  C  Max N  Most Probable N  Average N  SD  SDt 

5%  5.0%  0.00380  264  16  20.00  10.30  19.53 
10%  10.0%  0.01475  68  8  10.00  5.06  9.50 
15%  15.0%  0.03221  32  6  6.67  3.31  6.16 
20%  20.0%  0.05570  18  4  5.00  2.43  4.48 
25%  24.9%  0.08475  12  3  4.02  1.90  3.49 
30%  29.9%  0.11895  9  3  3.34  1.54  2.81 
35%  33.6%  0.14628  7  3  2.98  1.35  2.43 
40%  37.7%  0.18128  6  2  2.65  1.17  2.10 
45%  41.8%  0.21867  5  2  2.39  1.03  1.83 
50%  45.7%  0.25701  4  2  2.19  0.91  1.62 
55%  49.3%  0.29509  4  2  2.03  0.83  1.45 
60%  53.0%  0.33324  4  2  1.89  0.74  1.30 
65%  56.6%  0.38109  3  2  1.77  0.69  1.17 
70%  60.1%  0.42448  3  2  1.66  0.63  1.05 
75%  63.2%  0.46134  3  2  1.58  0.57  0.96 
80%  66.7%  0.50276  2  1  1.50  0.50  0.87 
True random events[edit  edit source]
Flat distribution[edit  edit source]
Some mechanics roll a random value between 0 and 1 and scale it along the minimum / maximum gradient. This includes
 Physical right click damage
 Last hit gold bounty.
 Including enemy and neutral creeps, most summons, towers, barracks and filler buildings.
 Excluding heroes, creepheroes and denies.
 Roshan respawn timer (8 to 11 minutes).
 Min Damage: 75/100/125/150
Max Damage: 200/225/250/275
Min Stun Duration: 1/1/1/2
Max Stun Duration: 2/3/4/4
Damage and stun duration are correlated inversely.  Min Damage: 50/100/150/200
Max Damage: 100/200/300/400  Min Damage per Slash: 200
Max Damage per Slash: 225  Reappear Radius: 325
Random positions within the target area. Calculation might be in polar coordinates with 0360° angle and 0325 distance units as min/max gradients.  Minimum Explosion Distance: 195
Maximum Explosion Distance: 785
Angle within the four 90° sectors (0°–90°, 90°–180°, 180°–270°, 270°–360°) may be random.
Discrete distribution[edit  edit source]
A couple of random events have discrete states that have similar probability.
 Powerup Runes with a discrete clamping over the 6 types and 2 locations.
 Neutral camps can spawn different creeps for each of the small, medium, hard and ancient camps.
 Number of Shrapnels: 16
Search Radius: 275
Interval: 0.7 sec  Max Targets: 2
Search Radius: 400
Interval: 0 sec  Effect Radius: 250/350/450/550
Attack Interval: 0.2 sec
Targets are determined upon cast. The order of attacks is random. Hidden units on their turn are skipped.  Number of Wisps: 4/6/8/10
Search Radius: 275
Interval: 1.0 sec
Duration: 10 sec
Every second, each wisp chooses a random allied unit to heal. So it is possible to heal up to 4/6/8/10 allies at a time.  Number of Bounces: 4
Bounce Distance: 500
Interval: 0.25 sec  Multicast Amount: 1/2/3
Multicast Range: 1400
Interval: 0.4 sec  Multicast Amount: 1/2/3
Search Radius: 575
Interval: 0 sec  Max Targets: 1
Search Radius: 450  Number of Bounces: 2/4/6/8
Bounce Distance: 575
Interval: 0.3 sec
Other[edit  edit source]
 Extra Illusion Chance: 50%
 2x Multicast Chance: 40%/50%/60%
3x Multicast Chance: 0%/20%/25%
4x Multicast Chance: 0%/0%/12.5%
Pseudo random events[edit  edit source]
Hero and unit abilities[edit  edit source]
 Critical Chance: 20%
 Helix Chance: 20%
 Critical Chance: 10%/15%/20%/25%
Evasion: 10%/15%/20%/25%  Critical Chance: 10%
 Bash Chance: 10%/15%/20%/25%
 Critical Chance: 20%
 Critical Chance: 20%/25%/30%/35%
 Lifesteal Chance: 25%
 Critical Chance: 40%
 Cripple Chance: 20%
 Proc Chance: 40%
 Evasion: 20%/30%/40%/50%
 Critical Chance: 15%
 Proc Chance (Hero): 40%/45%/50%
Proc Chance (Illusion): 8%  Bash Chance: 15%
 Bash Chance: 10%/15%/20%/25%
 Slow Chance: 40%
 Proc Chance: 20%
 Proc Chance: 17%
 Stun Chance: 25%
 Bash Chance: 10%
 Critical Chance: 15%
Item abilities[edit  edit source]
 Bash Chance (Melee/Ranged): 25%/10%
 Critical Chance: 20%
 Evasion: 35%
 Critical Chance: 20%
 Critical Chance: 30%
 Maim Chance: 35%
Evasion: 25%  Pierce Chance: 25%
 Lightning Chance: 25%
 Lightning Chance: 25%
 Lightning Chance: 20%
 MiniBash Chance: 35%
 Maim Chance: 30%
 Maim Chance: 40%
 Bash Chance (Melee/Ranged): 25%/10%
 Evasion: 25%
 Evasion: 25%
 Evasion: 25%
Blind[edit  edit source]
Since 6.87, Evasion uses pseudo random distribution. It was not mentioned whether Blind and the 25% uphill miss chance are affected by this change. So far no testing has been done.
 Miss Chance: 70%
 Miss Chance: 30%/40%/50%/60%
 Miss Chance: 80%
 Day Miss Chance: 10%
Night Miss chance: 50%  Miss Chance: 17%
 Miss Chance: 40%/50%/60%/70%
 Miss Chance: 25%
 Miss Chance: 60%
Version history[edit  edit source]
 Juxtapose
now uses pseudorandom distribution.  Craggy Exterior
now uses pseudorandom distribution.  Alpha Wolf's Critical Strike
now uses pseudorandom distribution.  Giant Wolf's Critical Strike
now uses pseudorandom distribution.
 Essence Aura
now uses pseudorandom distribution.
 Evasion now uses pseudorandom distribution.
 Entangling Claws
now uses pseudorandom distribution.
 Greater Bash
now uses pseudorandom distribution.
 Counter Helix
now uses pseudorandom distribution.  Moment of Courage
now uses pseudorandom distribution.
See also[edit  edit source]
