Fixing THAC0 in AD&D 2e

Fixing THAC0 in AD&D 2e

Whenever Advanced Dungeons & Dragons 2nd Edition comes up, the first thing out of people’s mouths is, “Uggh, THAC0.” I love AD&D 2e, and I played it for over twenty years before trying 5e. It is a great game which can be played simply, using just the PHB, DMG, and MM, or with dozens of optional expansion books, deepening the game with hundreds of optional player and DM rules to mix and match as your group sees fit. Working with your DM in 2e to select a race, class, and kit, drawing from over a decade of printed content, is seriously fun; dare I say more fun than min/maxing a first level 5th Edition character. That said however... Uggh, THAC0.

Well, I’ve got good news for you. I’ve played a lot of 5e over the last two years (I never did play 3e or 4e) and the simplified attack roll math in 5e can be applied to 2e. When I came to this conclusion I was sure I wasn’t the first, and lo and behold a quick search revealed the same solution on at least a few discussions on Reddit.

What is THAC0?

THAC0 Meme

AD&D 2nd Edition has a silly thing called THAC0, which stands for “To Hit Armor Class Zero,” and while it’s not a complicated system, it is more complicated than it needs to be. To determine if you hit an enemy in combat, roll a d20, subtract the roll from your character’s THAC0 score, then compare it to your enemy’s Armor Class. Pretty simple.

In 2nd Edition, a lower AC is better. For example, let’s say I’m playing a level 5 fighter with a THAC0 of 15. I roll a 10, subtract it from 15 and compare the result to my enemy’s AC. If the enemy’s AC is 5 or higher, I hit. If they have an AC less than 5, I miss.

(THAC0 − d20 roll) = AC

That’s not too bad. But there is that pesky subtraction (addition always seems easier than subtraction, undoubtedly for some scientific reason). To make matters worse, characters typically also have one or more attack bonuses–due to their stats, weapon specialization, magical items, or situational context such as flanking or holding the high ground. So this means that we have to roll, add one or more bonuses, then subtract the total from our character’s THAC0.

(THAC0 − (d20 roll + Attack bonus + Magic bonus)) = AC

AD&D 2e Calculated THAC0s Table
AD&D 2e Calculated THAC0s Table

Armor Class in 2nd Edition

In 2nd Edition, Armor Classes go down as protection gets better, starting at AC 10 when unarmored. Leather Armor has an AC of 8, Studded Leather an AC 7, etc.

In 5th Edition, AC goes up as it gets better, starting at AC 10 when unarmored. Leather armor has an AC of 11, Studded Leather an AC 12, etc.

Note the increment values for armor are different between these editions, this is intentional, so to keep 2e balanced we’ll be sure to use the 2e value increments when we adjust the system below.

AD&D 2e Armor Class Table
AD&D 2e Armor Class Table

That’s complicated... Let’s fix it!

To simplify things, convert THAC0 to an “Attack Bonus”, then invert Armor Class values.

Your “Attack Bonus” is 20 minus your THAC0. Armor Classes are 20 minus the original 2e AC values. Record these new values on your character sheet. As mentioned above, this solution is anything but original, in fact, it’s basically the exact same improvement which was introduced in D&D 3rd Edition. To summarize:

  • Invert all armor classes by subtracting their original 2e values from 20. See the new table for easy reference.
  • To attack, roll a d20 and add your Attack Bonus, then compare the result to your enemy’s Armor Class.
  • If your roll is equal to or higher than your opponent’s Armor Class, you hit.

This simplifies the game’s math, making combat slightly faster and less complex without modifying the balance mechanics of 2e. Sweet.

New tables

I recommend documenting the new Armor Class and Attack Bonus tables below for quick reference and then marking up your character sheet with these new values. When you level up or change your armor adjust your Attack Bonus and Armor Class accordingly.

AD&D 2e Armor Class Adapted
Armor AC
Unarmored 10
Leather or padded 12
Studded leather or ring mail 13
Brigandine, scale mail, or hide armor 14
Chain mail 15
Splint mail, banded mail, or bronze plahe mail 16
Plate mail 17
Field plate 18
Full plate 19

And remember that shields typically add +1 to your AC when defending attacks from the front or flanks and confer no bonus for attacks from behind (unless of course your shield is strung across your back). Some shields have special bonuses, and shield size determines how many attacks the shield bonus can be applied to in each round of combat.

AD&D 2e Attack Bonus Adapted
Level
Group 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Priest - - - +2 +2 +2 +4 +4 +4 +6 +6 +6 +8 +8 +8 +10 +10 +10 +12 +12
Rogue - - +1 +1 +2 +2 +3 +3 +4 +4 +5 +5 +6 +6 +7 +7 +8 +8 +9 +9
Warrior - +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19
Wizard - - - +1 +1 +1 +2 +2 +2 +3 +3 +3 +4 +4 +4 +5 +5 +5 +6 +6

Look at that sweet Warrior Attack Bonus progression. This really sets martial characters apart from other classes in 2e.

A closer look at the math

Aren’t convinced? Let’s look at the statistical relevance. Each number on a d20 has a 5% chance to be rolled (100% / 20); chance to hit can be calculated based on AC. Let’s double check an example to be sure we haven’t manipulated the game.

A level 4 Cleric with a THAC0 of 18 attacks a Goblin wearing chain mail, which has an AC of 5. You’d hit on a 13 or higher, (18 - 13) = 5, that’s a 65% chance (13 / 20).

In our new system this would be:

A level 4 Cleric with an Attack Bonus of +2 attacks a Goblin wearing chain mail, which has an AC of 15. You’d hit on a 13 or higher, (13 + 2) = 15, that’s a 65% chance (13 / 20).

As discussed on Reddit, this change is statistically identical to the original AD&D 2e rules, but for AD&D 1e and other prior D&D editions, this system is slightly different from the original roll tables due to the hit chance spread in those tables. So if you are concerned with keeping things unmodified, this system works best with AD&D 2e.

Another option

Another great option is to only convert THAC0 to an Attack Bonus but leave the AD&D Armor Class ratings as is. For example, a THAC0 of 17 would become an Attack Bonus of +3, but we'd continue to subtract the attack roll, puls the Attack Bonus, from 20 and then compare the result the standard descending AC values. This is a good middle ground for players who want to simplify the system but keep the original AC values, and is the system I prefer to play with.

(20 − (d20 roll + Attack bonus + Magic bonus)) = AC

Rolling with the punches

One of the things I love about 2e vs 5e is that different classes in 2e progress at different THAC0 rates (and XP rates). And some classes “jump” THAC0 values at certain levels. For example Clerics in 2e have a THAC0 of 20 at levels 1, 2, and 3, and then jump to a THAC0 of 18 at level 4. This is just one of many ways that 2e is more dynamic than 5e. Each player character advances in their combat prowess at different rates. This makes sense, a Fighter, constantly honing their combat skills would naturally increase their Attack Bonus at every level, while a Cleric, who’s not shabby with a mace but also has important spiritual obligations performing ceremonies and meditating would advance their combat skills slower. Or a Wizard for example, who so rarely touches or practices with their weapon, would advance the slowest.

I like how the Attack Bonus scaling in 2e sets the different classes apart. While in 5e everyone’s proficiency bonus advances at the exact same rate. 2e starts players with an Attack Bonus of 0, which feels super rewarding when you finally start to increase your skill as you level up.

All that said, I bet preforming this simple THAC0 subtraction is good for your brain–and maybe we shouldn’t modify the system! Ultimately the THAC0 system is not that complicated, but it can benefit from simplification. If that makes your game more enjoyable, go for it! I played the THAC0 system without giving it a second thought for over two decades until I tried 5e and it still hits that nostalgia button for me.

Comment