AD&D 2e, Learn the Game

THAC0, or How I Learned to Love Descending AC

When it came to the Combat chapter of Advanced Dungeons and Dragons Second Edition (AD&D 2e) I found myself struggling to understand the way that THAC0 (To Hit Armor Class 0) worked. In large part this is because D&D 3e, and the subsequent editions, all worked in a significantly different manner.

In D&D 3e the way that you attacked followed a straightforward, if convoluted, path. First you rolled a d20, and then added all of your modifiers to that roll. If it met or exceeded the monster’s Armor Class (AC) then the attack roll was a success. The way this functionally operates in the game is as follows:

d20 + Combat Modifier + Strength Modifier + Conditional Modifiers + Miscellaneous Modifiers

We’re not going to get too into the process right now, as I’ll save that for the D&D 3e project, but it should be noted that it’s not unusual to have five or six modifiers applied to the d20 roll. All modifiers, both positive and negative, are added to the d20 roll in order to raise the result as high as possible so that the character can hit the ever increasing AC target.

THAC0 is different.

To hit your opponent in combat you subtract the opponent’s AC from your THAC0. You must then roll that number or higher on your d20 roll.

So how do we figure out our THAC0?

THAC0 is based both on the class you choose to play, and on the level you have attained through play. TABLE 53, on page 121 in the Player’s Handbook, details the progression of the classes throughout the base 20 levels of play. This number represents your base THAC0. The base THAC0 is then modified by a number of factors that range from a character’s strength, weapon modifiers (if any), and situational modifiers that the Dungeon Master identifies and allocates to the player. These modifiers are then subtracted from the player’s base THAC0 to create the modified THAC0.

To determine if you have hit your opponent you must first subtract your opponent’s AC from your modified THAC0. You then roll a d20 and attempt to meet or beat that number. So let’s look at how that works out mathematically

Base THAC0 – Strength Bonus – Situational Modifiers – Weapon Modifiers – Opponent AC = Target

Let’s look at how that would work by making an example.


My fifth level fighter, Samuel, is attempting to hit an Orc in field plate, who is also wielding a shield. To help Samuel have the best chance of hitting his well armored opponent I decided to take the high ground so that the Orc would be at a disadvantage. To figure out his modified THAC0 I first need to determine his base THAC0 and then subtract all of his bonuses, and add all of his penalties, to that number.

As a fifth level fighter Samuel has a base THAC0 of 16. Samuel is able to modify this number with his exception strength (having rolled a 18/78 Strength) which provides him with a +2 to hit. He is also granted a +1 bonus for being on higher ground. These numbers will be subtracted from his base score as follows:

Base         Strength             Situational           Modified
THAC0         Modifier              Modifier             THAC0
16     -         2          -           1      =          13

To this number we then subtract the Orc’s AC of 1

Modified                 ORC'S                
  THAC0                   AC                 TARGET 
   13          -           1         =         12 

So in order to hit our Orc, Samuel must roll a 12 or better on his d20 attack roll.

That’s all there is to it.

As a player who is used to the near infinite combinations of modifier bonuses and penalties that come with D&D 3e combat this simplified formula for attacking your enemies is delightful.

Now it does come with the question: as a DM do you call out the monster’s AC for your players or do you do it in your head when they roll?

8 thoughts on “THAC0, or How I Learned to Love Descending AC”

  1. Having first played AD&D 1e, I wasn’t averse to simply writing out ACs 0–10 with corresponding ToHit numbers (e.g. if my THAC0 was 16, I’d write 16,15,14 … 7 against 0,1,2,…10). I could then roll d20, add all mods, and see what AC I hit and announce that.

    It felt good to be adding mods to make the d20 roll “get bigger”.

    Saves doing the mental arithmetic of subtracting all that from the THAC0.

    Liked by 1 person

      1. Slightly quicker. The THAC0 doesn’t change for the duration of a level, and so the numbers on the chart didn’t shift either. After about the third combat I had picked up the sense of what a given (d20+mods) number correlated to as AC. A glance and I’d know for sure.

        Liked by 1 person

  2. I learned to calculate it by subtracting your d20 roll from the modified THAC0.

    In the modified THAC0 of 13 above if I roll a 7 on the d20 I hit an AC of 6 or higher. If I roll a 3 I hIt an AC of 10 and if I roll a 16 I hit an AC of -3.

    Liked by 1 person

  3. What Mark said. You don’t tell people the AC beforehand. They know their THAC0, they subtract their d20 roll, and they tell you what AC they hit.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.