I run AD&D 2E and ran into this problem myself a while ago. The solution I came up with was as follows: For my own purposes, I wanted to make a macro that could go across all tokens and automatically give me success or failure on a hit roll, but I didn't want the players to be able to see opponent ACs (though I admit they can figure them out on their own after a few hits). To this end, I made sure each character has an AC attribute and a ThAC0 attribute. This requires that I make character sheets for all my different monster types and attach tokens to them, increasing setup time, but I archive them when I'm not using them and it is leading to my having a library of ready-made adversaries. (Also: when you want to create a random opponent on the fly for whatever reason, you can totally link the token with a sheet that has similar stats. If the party doesn't have the monster in their journal, the name won't pop up in the turn order so you don't have to worry about weird monster names showing up). Now, at this point, we run into the problem of negative AC. In AD&D 2E, you basically find your target number by subtracting the target's AC from your ThAC0. Logic says the macro for this should be something along the lines of /r 1d20>[[@{ThAC0}-@{AC} BUT, as we have established, negative ACs mess this up. However, you can ADD the AC to your roll, and it works out just fine. Imagine the following: The target's AC is -4, and your ThAC0 is 15. This means you have to roll a 19 or better to hit. Assuming you DO roll a 19, it should look something like this: -4+19>15. Since addition is magical and works in any order, this effectively means you are subtracting 4 from your roll, resulting in the 15 you need to beat your ThAC0. Normally, this would be 15-(-4)=19 for your TARGET, so it means the same thing. Just to double check, let's run this with a positive AC of 6. Normally you'd subtract this from ThAC0 to find your target (15-6=9), but instead you're adding it to your roll. Say you roll that 9 you would normally need to barely hit. This results in a total of 6+9=15. Holy smokes! It's your ThAC0! The macro I use goes like this: /gmroll {@{Target|AC}+1d20?{Modifier|+0}}>@{selected|ThAC0} The Player macro is actually much easier, since I didn't want to give them access to the opponent's AC anyway. That means I just need to see what AC they hit, so I can know if they beat the monster's AC or not. The resulting emote-based macro is pretty simple. /em hits an AC of [[@{selected|ThAC0}- {1d20?{Modifier|+0}} ]]! Really, these are both achieved by converting each variable into part of an algebraic equation. (Roll=ThAC0-AC) therefore (AC+Roll=ThAC0) and (Roll=ThAC0-AC) therefore (AC=ThAC0-Roll).