You are on page 1of 2

Daniel R. Collins – dcollins@superdan.

net

MATH FORMULAS FOR D&D


A compilation of important formulas derived from d20 System sources.
Copyright © 2003-2005 Daniel R. Collins.

Ability Modifers Spell Cost


modifier = ability / 2 – 5 cost = spellLevel * casterLevel * 10

Division is rounded down. 0-level spells count as ½ spell level.


Ability should be 0 or greater. SpellLevel should be between 1 and 9.
(Note this is equivalent to CasterLevel should be greater than 0.
modifier = (ability – 10) / 2 , round down.)
Treasure and Character Wealth
Bonus Spells
bonus = (ability – (spellLevel + 1) * 2) / 8 Neither the treasure tables, nor NPC or PC wealth
tables, appear to follow a regular formula.
Division is rounded down, to 0 minimum.
0-level spells receive no bonuses. Speed
If the ability is less than 10+spellLevel, encumberedSpeed = baseSpeed * 0.7
no spells of that level can be cast.
Ability should be 0 or greater. Rounding is done to the nearest multiple of 5.
SpellLevel should be between 1 and 9. BaseSpeed should be greater than 0.
(Note: The FAQ expands movement table in way
Base Attack Bonus that breaks any formula.)
goodAttacks = classLevel * 1
normAttacks = classLevel * 3 / 4 Encumbrance
poorAttacks = classLevel * 1 / 2 if strength ≤ 10, then:
maxLoad = strength * 10
Division is rounded down. if strength > 10, then:
Use the first category for Barbarians, Fighters, maxLoad = 1.1487 ^ (strength - 10) * 100
Paladins, Rangers, Warriors, etc.
Use the last category for Adepts, Commoners, Rounding is done to the nearest multiple of 5, 10,
Sorcerers, Wizards, etc. 20, or 40 (in steps of 5 strength).
ClassLevel should be greater than 0. Other modifiers may be made per the d20 System
for character size, number of legs, etc.
Saving Throws Light load is 1/3 the max load; medium load is 2/3
goodSave = classLevel / 2 + 2 the max load (round down).
poorSave = classLevel / 3 (Note: 1.1487 approximates 10√4)
Strength should be greater than 0.
Division is rounded down.
ClassLevel should be greater than 0. Movement
movePerHour = speed / 10
Skill Max Ranks movePerDay = speed / 10 * 8
inClassMax = characterLevel + 3
crossClassMax = (characterLevel + 3) / 2 Terrain modifiers may apply to these figures.
Speed should be greater than 0.
Division is not rounded.
CharacterLevel should be greater than 0.

MATH FORMULAS FOR D&D


Daniel R. Collins – dcollins@superdan.net

Experience Points
requiredXP = level * (level – 1) * 500

(Note each level requires an added level * 1000


XP to advance through it.)
Level should be greater than 0.

Challenge Ratings
Fractional CR 1/2 1/3 1/4 1/6 1/8 1/10
Integral CR -1 -2 -3 -4 -5 -6

For the following formulas, fractional CRs may be


converted to negative integers as above.
ChallengeRating should be a fraction as above.

Encounter Levels
EL = challengeRating + 2 * ln(number) / ln(2)

(Note that ln(number) / ln(2) = log2 (number).)


ChallengeRating should be an integer.
Number should be greater than 0.

Experience Awards
CD = challengeRating – partyLevel
if CD is even, then:
award = partyLevel * 2 ^ (CD / 2) * 300
if CD is odd and CD < 0, then:
award = partyLevel * 2 ^ ((CD+1) / 2) * 200
if CD is odd and CD > 0, then:
award = partyLevel * 2 ^ ((CD-1) / 2) * 450

No award is given if |CD| > 7.


PartyLevels of 1 or 2 are treated as 3,
except when the CR is 1 or 2.
(Note that the first “CD is even” case can be used
as an approximation for all cases.)
(The second case is basically x2/3 the first.)
(The last case is basically x3/2 the first.)
ChallengeRating should be an integer.
PartyLevel should be greater than 0.

MATH FORMULAS FOR D&D

You might also like