Monday, October 12, 2009

Calculating hit chances using attack and defense normalization.

D&D 4E' s combat rules are set up so that attack and defense values of both player characters and monsters increase at a regular rate of 1 point per level. As a consequence of this, a character's chances of hitting (and being hit by) an opponent of his level remains mostly constant throughout levels. In today's post, I'll define two character statistics, normalized attack bonus and normalized defenses, that express, respectively, how good the character's attacks and defenses are, compared to other characters of the same level. Then, I'll show how these magnitudes can be used to easily calculate hit chances.


Although monster statistics are subject to variation from one creature to the other, their average values are usually close to those shown in Dungeon Master's Guide, p.184. According to the table in that page, attack and defense modifiers for monsters are the sum of a constant (that depends on the monster's role) and the creature's level. Player characters also follow this principle, but with less regularity: even though over the course of 30 levels a PC's attacks and defenses will have increased by roughly 29 points, this progression often has spikes, with one level granting two points and the following none. Nevertheless, translating PC statistics to a constant value plus the character's level would be a valid aproximation.

Following this principle, we define two magnitudes:

Normalized attack

Normalized attack bonus= attack bonus - character level

Normalized defense

Normalized defense (AC/For/Ref/Wil)= defense - character level

Notation: As an abbreviation, when referrring to a normalized stat, I'll use the notation nXX (the stat value preceded by 'n').

Example: A level 1 human paladin has an AC of 20, or n19 (his normal AC is 20, and the normalized value is 19). His bonus to hit with a longsword will be +7, or +n6 (his normal bonus to hit is 7, and the normalized value is 6).

Normalized attacks and defenses have the following properties:
- A character with a normalized attack bonus N always has the same base chance to hit a Skirmisher monster of his same level, regardless of the actual level. The same applies to other monster roles.
- A character with a normalized defense N always has the same base chance of being hit by a skirmisher of his same level on an attack against that defense, regardless of the actual level. The same applies to other monster roles.


Once we have these statistics, we can compare them to those in the monster statistics table to find the hit chances for each value. The results are shown in the following tables. The 'mid' column has average PC stats (i.e, those equivalent to a Skirmisher monster), the 'poor' column shows numbers for a PC with weak attacks or defenses, and the 'good' column has attack values that correspond to particularly accurate PCs, and defenses that are good enough for a Defender character. Probably the most important information that can be concluded from these tables is that an average character's chance to hit (or be hit) is usually 60%.

These values always consider that the opponent is a Skirmisher monster. Depending of monster role, they can be 10% better (when fighting Brutes) or 10% worse (when the opponent is a Soldier)

Table 1: Normalized attack bonus and chance to hit

Table 2: Normalized defense and chance to hit

This doesn't cover the full range of possible values, though lower stats should be rare. To calculate hit chances for these values, use an entry from the table: for defenses, the hit chance decreases by 5% per additional point of defense; for attacks, the chance increases by 5% per additional point. If the values are lower than those in the table, do the inverse operation.

Example: A Level 1 halfling rogue has an AC of 17, or n16. Looking at table 2, this translates to a 50% chance of being hit by a monster of his level. The party's level 1 Paladin has an AC of 20 (n19), which goes beyond the values in the table; since it's 3 point higher than the 'good' entry (n16), the chance to be hit will be 35%. Finally, a particularly clumsy level 1 sorcerer has an AC of 12 (n11), which is 1 point below 'poor', in the table. The chance to be hit for that character will be 5% higher than that of the table entry, for a total of 75%.

On rare ocassions, a character's attacks bonus will be high enough so as to have the maximum hit chance (95%, as a roll of '1' always misses) against monsters of his level. Likewise, it's possible, though unusual, to have defenses good enough to be hit only with rolls of 20, or bad enough to be hit 95% of the time. When that happens, we say the stat is capped. The tables below show stat caps for attacks and defenses. The low-caps will usually only appear on the worst non-AC defenses (For, Ref or Wil) of epic level characters, or the melee basic attacks of non-melee high level characters. High-caps aren't easy to reach, but some weapon users can reach them for certain attacks. A character reaching a high-cap for a defense, and particularly for AC, is usually a sign of some degenerate game mechanic, and has an adverse effect on the game, as he will be immune to a majority of monster attacks.

As a side note, increasing a stat above the natural cap is not completely worthless, as characters frequently face monsters of higher level, or soldiers. Nevertheless, attack bonuses beyond that point have a reduced value for a PC. On the other hand, reaching a defense cap is extremely strong, and adding a couple of points beyond that would serve to negate even enemies with Combat Advantage from hitting with anything other than a 20.

Table 3: Attack bonus cap

Table 4: Defense cap

Table generation

In order to generate the tables shown above, we took the Monster Statistics by Role table (DMG, p.184), and use level 0 monster stats as reference for normalized PC stats: Skirmishers for the 'medium' column, Soldiers for the 'good' column, and Brutes for the 'Poor' column. These are arbitrary numbers, but after some quick comparisons with actual character sheets, they seem to match pretty well. Finally, we calculate the hit chances of each value against a level 0 (normalized) Skirmisher monster, and add them to the table. We choose Skirmisher as reference because they are the 'average' monsters, statistics-wise.

Values for defenses other than AC use a slightly different method, as according to the DMG table these are the same for all monster roles. Instead, we have used monster defenses for the 'medium' column, increased them by 2 points for the 'good' column and decreased by 2 for the 'poor' column.

Hit formulas

If you are frequently calculating character hit chances (say, for optimization purposes), the tables above are a slightly cumbersome tool. In that case, you might be better off using the following formulas. 'Hac' and 'Hdef' are the attack bonuses to hit AC or other defense, respectively, and 'nHac' and 'nHdef' are their normalized values.

Chance to be hit
% to be Hit (AC) = (26-nAC)/20
% to be Hit (Def) = (24-nDef)/20

Chance to hit
% to hit (AC) = (7+nHac)/20
% to hit (Def) = (9 + nHdef)/20

Or, without the normalization:

Chance to be hit
% to be Hit (AC) = (26+lvl-AC)/20
% to be Hit (Def) = (24+lvl-Def)/20

Chance to hit
% to hit (AC) = (7+Hac-lvl)/20
% to hit (Def) = (9 +Hdef-lvl)/20

Note that the formulas break at the attack and defense caps - when capped, you should use 95% or 5% (depending on the case) instead of the values provided here.


  1. Nice. I really like the whole normalized attack/defense thing. It's going to come in pretty handy for comparing characters.

  2. There is something that I'm not understanding. In this and some of your later posts, you indicate that a player's attack and defense go up at the rate of 1 per level.

    I'm curious how this rate is achieved as my reading of the rules is that these stats increase at a rate of 1 every 2 levels, due to the +1/2 level modifier.

    Sorry for the remedial question, but how are you calculating to get that extra .5 per level?

  3. It is a sum of a few modifiers, and it works differently for attack rolls and for each defense. It's not a completely regular progression, either, as you get some levels with a double increase, and others with none. But essentially, the values for a level 30 character are/should be 29 point higher than at level 1.

    The actual increase from 1 to 30 goes as follows:
    *Attack: +15 (Level/2) + 6 (Enhancenment) + 4 (Stat increase) + 3 (Expertise)= 28
    *AC (Light Armor): +15 (Level/2) + 6 (Enhancenment) + 4 (Stat increase) + 2 (Masterwork) = 27
    *AC (Heavy Armor): +15 (Level/2) + 6 (Enhancenment) + 6 (Masterwork) = 27
    * For/Ref/Wil (w/primary ability): +15 (Level/2) + 6 (Enhancenment) +4 (Stat increase) = 25
    * For/Ref/Wil (w/tertiary ability): +15 (Level/2) + 6 (Enhancenment) +1 (Stat increase) = 22

    This is the minimum increase, and you'll end up with an extra point here or there from paragon paths, epic destinies or feats. AC numbers are fine, attack needs Expertise feats to work, and Fortitude, Reflex and Will have a lot of problems.