BX is all over the place with how to interpret dice rolls in task resolution!
Surprise, Hunting and Foraging, Stuck Doors, and Searching for Stuff are all x-in-6. Lower is better.
Attribute Checks are d20 <= Attribute. Lower is better.
Thief skills are d100 <= Skill. Lower is better.
Attacks and Saving throws are d20 >= Target.
“When rolling to see if you succeed at something, sometimes you want to roll high and sometimes you want to roll low” is more difficult to remember and teach than “When rolling to see if you succeed at something, you want to roll low”.
DnD 3e tried to unify everything into d20 + mods >= DC
. Here’s my attempt:
TL;DR
For player attacks, calculate
to_hit = 21 - thac0 + STR
. Record something that looks like “<weapon>: d20 <= to_hit + AC: <damage>” on their sheet. For a level 1 Cleric with 11 Strength and a Mace, this looks like “Mace: d20 <= 2 + AC: 1d6”.For monster attacks, roll d20 <= 1 + HD + AC.
For Saving Throws, record
21 - save
. So an old Death Save of 14 becomes a new Death Save of 7.
Conversion Math
dX >= Y
is probabilistically identical to dX <= X + 1 - Y.
Example 1: roll a d20 and get at least a 13 (success on 13, 14, 15, 16, 17, 18, 19, 20; 40%) is the same as roll a d20 and get at most an 8 (success on 1, 2, 3, 4, 5, 6, 7, 8; 40%).
Example 2: roll a d6 and get at least a 5 (success on 5, 6; 33%) is the same as roll a d6 and get at most a 2 (success on 1, 2; 33%).
Benefits
Roll-under is a direct representation of probability, whereas roll-over… isn’t. If you want to give someone a 3/8ths chance of success, which is easier?
Roll a d8 and get <= 3 (3-in-8)
Roll a d8 and get >= 6
For me, it’s definitely roll under. Arnold Kemp has gone over this before in detail, so check that if you require more persuasion.
The Lift
Everything but attack rolls and saving throws are already roll under. Both of those use the d20, so all we’re having to do is subtract the values in the book from 21.
thac0
The default mechanic is d20 + mods >= thac0 - AC
. We often re-arrange this to d20 >= (thac0 - mods) - AC
, recording (thac0 - mods)
on our character sheets since that term doesn’t change. Thus, a level 2 fighter with 16 strength hits AC 5 on a 12 or higher.
To convert this to roll-under, we say d20 <= (21 - thac0 + mods) + AC
. We record (21 - thac0 + mods)
on our character sheets since that term doesn’t change. Thus, a level 2 fighter with 16 strength hits AC 5 on a 9 or lower. We might record this as:
Sword: d20 <= 4 + AC: 1d8+2
or
Sword: 4 + AC: 1d8+2
It becomes simple to look at that and see that you hit unarmored targets on a 13, leather on an 11, chain on a 9, and plate on a 7.
As characters grow more powerful, the numbers on their sheet go up!
GM side, converting monster stat blocks is quick. Here’s an example from Stonehell:
Black Bear [AL N, MV 120‘ (40‘), AC 6, HD 4, #AT 3, DG 1d3/1d3/1d6, SV F2, ML 7]
When thac0 isn’t listed, we use the combat table where thac0 = 20 - HD
. Since we want 21 - thaco + AC
, we can substitute: 21 - thac0 + AC = 21 - (20 - HD) + AC = 1 + HD + AC
. Thus, monsters need to roll a d20 and get <= 1 + their HD plus their target’s AC, which is dead simple.
A Black Bear attacking a cleric in Plate needs to roll at most an 8 (40%).
When modules list the AAC attack bonus (often in brackets), we can just add 2. Here’s an example from Hole in the Oak:
Sheep-Headed Faun: AC 6 [13],HD 2 (hp8,12,13), Att 1 x butt(1d6), 1 x knife (1d4), THAC0 18 [+1], MV 120' (40'), SV D12 W13 P14 B15 S16 (2), ML 9, AL Chaotic, XP 20
1 + 2 = 3
, so the Sheep-Headed Faun would hit on d20 <= 3+AC
.
Saving Throws
This is even simpler! We record our saving throws as 21 - throw
and we’re done. A level 2 Fighter would have a Death saving throw of 9 (45%), and a spells saving throw of 5 (25%).
Been really enjoying your thoughts so far! Here's an obvious typo: "d2 and get at most a 2 (success on 1, 2; 33%)." should be a d6, right?