THAC0 is Easy If You're Smarter Than a 10-Year-Old
- Helpful NPCs
- Dec 18, 2025
- 8 min read

I'm feeling bombastic today, so I'm taking a moment to defend THAC0 and descending Armor Class as a whole. Why? Because I was an ignoramus up until today, when I had a flight of whimsy and decided to learn how they work.
I am here to report back that neither descending Armor Class nor THAC0 are confusing unless:
You are illiterate and/or innumerate.
You suffer from poor pattern recognition skills.
You are less mentally developed than a 10-year-old.
In any of these cases, all RPGs are likely confusing.
For the rest of the unwashed masses, I shall now take you through an enthralling historical read-through of prior iterations of D&D and handled Armor Class and attack rolls, culminating in the ooky-spooky TO-HIT ARMOR CLASS 0 system of AD&D 2e!
This will not be a fully comprehensive treatment of all the literature, but the "biggest names" thereof.
OD&D: Men & Magic
The very first official D&D rules introduced by Gary Gygax and Tom Arneson. The grandfather. The progenitor. The universal common ancestor. The home of the Alternative Combat System that has little explanation save for two brief tables:


One can deduce from the text the method of adjudicating the rules, but I'll offer a concession: if your introduction to D&D was OD&D--and if you're reading this, it likely wasn't--you have an excuse to be critical of descending Armor Class and THAC0.
In this case, we'll have to forgive Gygax and Arneson for their curt treatment of the system. They were writing on a skint budget and for an audience using Chainmail, the wargame that preceded D&D.
However, let us move into early iterations of the game.
Moldvay's Basic/Expert
We'll begin with the basics--Tom Moldvay's Basic/Expert rules. Why not start with AD&D 1e? Because Tom Moldvay's rules are clear and succinct. He explains Armor Class thusly:
Armor Class is a measure of how well a character is protected from physical attacks. As the Armor Class number gets lower, the character becomes harder to hit. Armor Class is affected by such things as magic, magic items, and Dexterity, as well as by the type of armor worn. Armor class may be lowered (improved) by Dexterity and magical bonuses. A fighter with a Dexterity score of 16 (a -2 adjustment), plate mail -I-1, and a shield + 1 would have a total Armor Class of -2. Magical protection pluses are always subtracted from the number of the Armor Class.
This text is accompanied by a chart showing all "standard" armor classes, which ranged from 2-9.

But, you might object, the difficulty is not in understanding that a lower Armor Class is superior, it is calculating the number on the d20 required to hit this number. Fortunately, Mr. Moldvay provides us table cross-referencing our character class and level to a range of Armor Classes (9 to -3) and clearly states: "Roll ld20: if the result is equal to or greater than the number indicated by the chart, the attack has been successful."

For those with eyes to see, there exists a clear and obvious pattern: the d20 roll required to strike a given Armor Class is 19 - AC. Advancement is separated into bands favoring fighters and demihumans in this endeavor: at 4th level, the d20 roll becomes 17 - AC; at 7th, it becomes 14 - AC; at 10th, it becomes 12 - AC; and at 13th, it becomes 10 - AC.
An uneven progression, to be certain, but clear enough.
Mentzer's Basic
In the opening line of Frank Mentzer's iteration of the Basic rules, he solemnly intones: "This is a game that is fun. It helps you imagine."
I will not comment further on such matters--but I will comment briefly on the Armor Class and to-hit rules.
"Armor Class is a measure of how hard it is for monsters to hit you," say the rules. They go on to explain that "[t]he lower the number, the smaller the chances are that you will get hit."
When the time comes to describe attack rolls, the rules explain them thusly:
When you try to hit a monster, roll ld20. Adjust the roll for your Strength, and find the total on the bottom line of the chart. You hit the Armor Class on the chartjust above the roll. Announce what Armor Class you hit, and the DM will tell you whether you hit or missed your target. For example, if your total is 15, you say “I hit AC 4.” If the target was AC 4 or higher (AC 5, AC 6, etc.), then you have successfully hit.

Holmes's Basic
I will admit my bias in that Tom Moldvay's presentation of the rules pleases me the most of the three authors presented, but Holmes' explanation of the rules is clear enough:
The probability of a hit is converted into a random number of 1 to 20 (the specially marked die is recommended). The attacking player rolls, and if the number indicated on the tables, or greater, is scored, a hit has been made on the opponent.
Notably, Holmes provides a table listing the type of armor and its associated Armor Class.

It likewise references AD&D 1e, which is our next topic of conversation.
AD&D 1e
Gary Gygax lacks the brevity of Moldvay or Holmes, and his particular style of elucidating the rules may be where some confusion over descending Armor Class begins. Although providing the reader with a helpful chart like those seen previously, Gygax writes the following regarding monstrous Armor Classes:
Although a creature might be given a very high armor class because of its exceptionally thick hide, armor plating, chitinous exoskeleton, or the like, other factors are considered in such ratings. For example, the size of the creature, its speed, its agility, and perhaps its supernatural (extra-dimensional or multi-planed existence) aspects are considered in the armor class of all non-human type monsters.
Note his description of a "good" Armor Class as a "high" Armor Class, when in fact a low Armor Class is superior. He likewise notes that a shield "raises armor class (AC) by a factor of 1 (5%)" but then goes on to write--on the very same page--that "[f]or each + 1 of magic armor or magic shield, a decrease in armor class of 1 is given."
Some rightful confusion can be given here, but he provides a table for guidance that clearly demonstrates that more protective armors decrease armor class. This is reiterated in the combat section, where he writes:
For example, splint mail is armor class 4, and if a shield is added the armor class becomes 3, but suppose it is a magical + 1 shield; then armor class becomes 2.
Tucked away in the DMG are the attack tables. (Let us take a moment to mandating the purchase of the DMG to play the game--oh, Gygax, you rascal!) Gygax writes:
Find the level of the attacker on the appropriate chart and matrix that with the armor class of the defender. The resulting number or greater must be rolled on a d20 for a successful hit. Penalties ond bonuses may modify either the die roll or the number needed to hit, as long as one method is used consistently.
I shall provide for you a sample of the tables used:

Altogether straightforward, though the presentation of the table lacks the cleanliness of previous iterations because it spans AC 10 to -10.
This expansion of Armor Class values would inevitably lead to THAC0 because D&D has always been about Number Going Up (or down, in this case) and table lookups become unwieldy in comparison to a formula.
To witness this, we move to our next entry.
Rules Cyclopedia
The Rules Cyclopedia is an expansive aggregation of the Basic, Expert, Companion, and Master rules, and it makes clear to the reader that Armor Class is distinct because "unlike most numbers in the D&D game, a low number is good for a character, and a high number is bad."
The rules once again provide a helpful table listing Armor Classes from 2-9. At the tail end of this section, the text reiterates that a penalty to Armor Class "raises the number, making you easier to hit."

Immediately following this is the section on attack rolls, where the authors cleanly explain that you roll 1d20 + your relevant modifiers and look at the tables on page 106:
In combat, when your character is trying to hit another character, you roll 1d20; this is known as his attack roll. (In some game supplements, it's also called the "hit roll," "to-hit roll," or "roll to hit.") Once you know the number you've rolled on the die, you add any bonuses your character gets from high ability scores, magical weapons, or other factors. You'll compare that final result to the number required to hit the armor class of your character's opponent. If you reach or exceed that number, your character has successfully hit his opponent. But how do you find out what number you need to hit a certain armor class? That's simple enough: We provide it to you on handy tables. Take a look at the Attack Rolls Table on page 106. Go ahead and flip forward to that table and return here when you've looked at it.
The tables on page 106 indicate the necessity of THAC0, despite the relative clarity of the rules. Their are expansive (and intimidating at first blush), spanning Armor Classes from 19 to -20, and they consume an entire page just for players--monsters have their own set of values on a separate page.

A single set of descending values ranging from 20 to 1 is presented along the rightmost section of the chart that all map to Armor Class 0.

If I were to run the game today and read that column, I would be hard pressed not to create a simplified formula to handle attack resolution--but I would probably have gone with 1d20 + level bonus vs. 20 - AC.
AD&D 2e: The Birth of THAC0
Let us now examine AD&D 2e, where THAC0 was invented and the impetus for this article: THAC0 isn't whacko, you've just been memed into thinking it's confusing.

The description of Armor Class is stated plainly:
Armor protection is measured by Armor Class (AC), a number rating; the lower the Armor Class number, the better the protection.
It is reiterated in the combat section:
Armor Class is measured on a scale from 10, the worst (no armor), to -10, the best (very powerful magical armors). The lower the number, the more effective the armor.
Now for the tricky part, THAC0. Icky, icky THAC0. How do the rules explain it?
THAC0 is an acronym for "To Hit Armor Class 0." This is the number a character, NPC, or monster needs to attack an Armor Class 0 target successfully. THAC0 depends on a character's group and level (see Table 53). The THAC0 number can be used to calculate the number needed to hit any Armor Class.
The table referenced delineates various THAC0s by class type and notes rates of improvement.

And the culmination of this little lesson:
Subtract the Armor Class of the target from the attacker's THAC0. (Remember that if the Armor Class is a negative number, you add it to the attacker's THAC0.) The character has to roll the resulting number, or higher, on 1d20 to hit the target.
That's it? Roll 1d20 vs. THAC0 - AC? That's what people are claiming is so mysterious and confusing? I know that subtraction at midnight on a Friday after pizza and a liter of soda is tricky, but the system isn't complex or poorly-explained.
Grown adults, all of whom have presumably passed Algebra I, are confused by:
1d20 vs. THAC0 - AC.
1d20 - THAC0 vs. AC.
1d20 + AC vs. THAC0.
Face it, you've been suckered into thinking descending AC (and THAC0, especially!) are confusing by memetic permutation.

_edited.png)