How does THAC0 work?

Are you playing Baldur’s Gate 1 or 2 for the first time? Are you adventuring back into AD&D Second Edition? Are you curious about the history of Dungeons and Dragons? Are you the fine fellow running my weekly D&D game who started on 2e but still can’t explain how attack rolls worked? If you said yes to any of those, you’re likely to be exposed to the mathematical aberration that is “THAC0”, and you likely want to know what it is.

All of the information below is, to the absolute best of my knowledge, true and correct. That doesn’t mean it’s right, but I’ve repeated this a few times online and no one has corrected me, so maybe I somehow understand this just enough to explain it.

What is THAC0?

THAC0 is an acronym for “To Hit Armor Class 0”. In a practical sense, once you calculated the modifiers, the THAC0 equation told you what number you needed to roll on your d20 to hit with an attack. That sounds very convenient because once you’ve done that math you no longer need to do math when attacking that creature, so you can just roll your die, see if you hit the number you need, and move on.

But in reality, THAC0 was a painful mathematical solution that requires players to repeatedly perform quick calculations that people tend to be bad at. Looking back, it’s no wonder that people can’t make heads or tails of THAC0, even now, decades into the existence of the internet and abundant resources to explain and demystify complicated subjects like THAC0 and nuclear fission.

How does THAC0 Work?

The attacker has their THAC0 and the defender has their AC. You subtract AC from THAC0, then roll a d20 and try to meet or beat that number. People are rally good at subtracting 2-digit numbers from each other in their heads (lol, no they’re not).

As your AC improves, the number goes down. AC starts at 10, so a creature with THAC0 20 would subtract 10 and need to roll a 10 to hit. AC maxes out at -10, so a creature with THAC0 20 would subtract negative 10 and needs to roll a 30 on a d20.

As your attack bonus improves, your THAC0 goes down. For example: A +1 weapon reduces your THAC0 by 1.

To summarize: the positives go down, the negatives go up, and you need to do subtraction every time you make an attack roll. But once you do all of that, you can say “I need a 12 or better on the d20” and never do math again. Unless you change targets or have a temporary modifier from a spell or something.

To the best of my knowledge that is all technically correct but it still feels like the ravings of a lunatic.

Why did THAC0 go away?

THAC0 was objectively an improvement over the attack tables used in prior editions of D&D, but it’s still a mess. THAC0 tries to make it so that you do math once when attacking a creature and don’t need to do it again, allowing you to roll the die, say “I have rolled 12 or better” and be done with it. But it relies on subtraction (which people tend to be bad at doing quickly) and requires that the DM tell you a creature’s AC (which they may not want to do). Even in the best-case scenario for THAC0, fights won’t last long enough that knowing your minimum roll on the d20 saves you time.

3rd edition introduced the way that attacks, skill checks, saving throws, etc. work today: d20+modifier vs. target number. That system has stayed in place for decades because it works. It requires a minimum of information for the attacker since they don’t need to ask for the target’s stats, and humans are pretty good at quickly determining if one number is larger than another.


THAC0 happened. It was a thing for a while. If you go back and play Baldur’s Gate 1 and 2 or any of the other D&D CRPGs from that era (and you should because they’re excellent), THAC0 is still a thing for you. But THAC0 was left behind for a reason, and I think we’re all better off as a result.


  1. battlemusic September 29, 2021
  2. sw4ahl September 29, 2021
    • RPGBOT September 29, 2021
  3. SEAN LUDIYE-GAY September 29, 2021