Combining damage dice into attack roll
In Gods & Monsters, as in many role-playing games, the damage roll is completely separate from the attack roll. Dungeons and Dragons, historically, has had the same behavior: rolling a 20 is the same as rolling a 10, as long as both hit, with the caveat that a 1 always misses. The current edition, fifth edition, mixes things up a little by offering critical hits on a roll of 20, but a roll of 19 is still the same as any other roll.
This clearly goes against the grain for some players. You can see it in their eyes when they make a great attack roll and then roll a one or two for damage.
Because of this, I have occasionally considered making the damage roll somehow part of the attack roll, so that high attack rolls do more damage than low ones. The sticking point has always been that I’ve always thought about it in terms of the quality of the success, which would make such a rule more complex than it’s worth. It would also make it very difficult to damage opponents that were very difficult to hit, since the quality of success against an opponent that requires a 20 to hit, for example, will always be the minimum.
It occurred to me, though, that just using the raw attack roll wouldn’t be a big deal. While it’s true that, if you have to roll a 20 to hit and you’re doing, say, d8 damage, this would mean that you always do 8 points instead of 4.5, the real increase is from an average of .225 points per attack to .4 points per attack, since you’re almost never hitting anyway. Sure, it’s a big increase percentage-wise, but it really isn’t that big of an increase.
Using the raw attack roll makes the calculations much easier. There’s no adjustment for “how much did you make it by”. It removes agility, strength, and any situational modifiers from affecting damage unless you want them to, in which case just add it to the final damage.
Here’s how the common damage rolls in Gods & Monsters turn out in such a system:
d2 | d3 | d4 | d6 | d8 | d10 | d12 | 2d6 | 2d8 | 3d6 | 4d6 | |
---|---|---|---|---|---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 6 | 8 | 10 | 12 | 12 | 16 | 18 | 24 |
2 | 2 | 3 | 4 | 6 | 8 | 10 | 11 | 10 | 13 | 14 | 18 |
3 | 2 | 3 | 4 | 6 | 7 | 9 | 11 | 10 | 13 | 14 | 18 |
4 | 2 | 3 | 4 | 5 | 7 | 9 | 10 | 9 | 12 | 13 | 17 |
5 | 2 | 3 | 4 | 5 | 7 | 8 | 10 | 9 | 11 | 13 | 16 |
6 | 2 | 3 | 3 | 5 | 6 | 8 | 9 | 8 | 11 | 12 | 16 |
7 | 2 | 2 | 3 | 4 | 6 | 7 | 8 | 8 | 10 | 12 | 15 |
8 | 2 | 2 | 3 | 4 | 5 | 7 | 8 | 8 | 10 | 11 | 15 |
9 | 2 | 2 | 3 | 4 | 5 | 6 | 7 | 7 | 9 | 11 | 14 |
10 | 2 | 2 | 3 | 3 | 5 | 6 | 7 | 7 | 9 | 10 | 14 |
11 | 1 | 2 | 2 | 3 | 4 | 5 | 6 | 7 | 9 | 10 | 14 |
12 | 1 | 2 | 2 | 3 | 4 | 5 | 5 | 6 | 8 | 10 | 13 |
13 | 1 | 2 | 2 | 3 | 3 | 4 | 5 | 6 | 8 | 9 | 13 |
14 | 1 | 1 | 2 | 2 | 3 | 4 | 4 | 6 | 7 | 9 | 12 |
15 | 1 | 1 | 2 | 2 | 3 | 3 | 4 | 5 | 7 | 8 | 12 |
16 | 1 | 1 | 1 | 2 | 2 | 3 | 3 | 5 | 6 | 8 | 11 |
17 | 1 | 1 | 1 | 1 | 2 | 2 | 2 | 4 | 5 | 7 | 10 |
18 | 1 | 1 | 1 | 1 | 1 | 2 | 2 | 4 | 5 | 7 | 10 |
19 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 3 | 4 | 6 | 8 |
20 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | 2 | 3 | 4 |
Converting damage to a 1-20 table reduces the number of possibilities for damage rolls that have a lot of possibilities, especially those that have more than 20 discrete possibilities, such as 4d6. But it does ensure that a great attack roll means great damage, a mediocre attack roll means mediocre damage, and a crappy attack roll means crappy damage.
I specifically designed the table to round damage down, since the average damage will of course go up—the low damages are likely to be hidden in misses. If you’re using a lance, for example, you’re probably never going to do one or two points of damage, because most of the time if you roll a 17, 18, 19, or 20, you’re going to miss. But they are still there if you use mojo or just have great situational modifiers.
The main problem is that it requires looking up damage on a table, which I’m not a big fan of. I might present it as an option for players (making sure they understand it will apply to monsters as well) if they start complaining about high attack rolls and low damage rolls. There’s also the issue of mojo: if damage for low raw attack rolls is also low, it will be less worthwhile to spend mojo to make those low rolls successful attacks. One solution would be to allow players to roll when they use mojo, much as one might allow players in Dungeons & Dragons who make a critical hit to roll if they wish.
If you want to try this out for Dungeons & Dragons, here’s the table for it:
d2 | d3 | d4 | d6 | d8 | d10 | d12 | 2d6 | 2d8 | 3d6 | 4d6 | |
---|---|---|---|---|---|---|---|---|---|---|---|
2 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 3 | 4 | 6 | 8 |
3 | 1 | 1 | 1 | 1 | 1 | 2 | 2 | 4 | 5 | 7 | 10 |
4 | 1 | 1 | 1 | 1 | 2 | 2 | 2 | 4 | 5 | 7 | 10 |
5 | 1 | 1 | 1 | 2 | 2 | 3 | 3 | 5 | 6 | 8 | 11 |
6 | 1 | 1 | 2 | 2 | 3 | 3 | 4 | 5 | 7 | 8 | 12 |
7 | 1 | 1 | 2 | 2 | 3 | 4 | 4 | 6 | 7 | 9 | 12 |
8 | 1 | 2 | 2 | 3 | 3 | 4 | 5 | 6 | 8 | 9 | 13 |
9 | 1 | 2 | 2 | 3 | 4 | 5 | 5 | 6 | 8 | 10 | 13 |
10 | 1 | 2 | 2 | 3 | 4 | 5 | 6 | 7 | 9 | 10 | 14 |
11 | 2 | 2 | 3 | 3 | 5 | 6 | 7 | 7 | 9 | 10 | 14 |
12 | 2 | 2 | 3 | 4 | 5 | 6 | 7 | 7 | 9 | 11 | 14 |
13 | 2 | 2 | 3 | 4 | 5 | 7 | 8 | 8 | 10 | 11 | 15 |
14 | 2 | 2 | 3 | 4 | 6 | 7 | 8 | 8 | 10 | 12 | 15 |
15 | 2 | 3 | 3 | 5 | 6 | 8 | 9 | 8 | 11 | 12 | 16 |
16 | 2 | 3 | 4 | 5 | 7 | 8 | 10 | 9 | 11 | 13 | 16 |
17 | 2 | 3 | 4 | 5 | 7 | 9 | 10 | 9 | 12 | 13 | 17 |
18 | 2 | 3 | 4 | 6 | 7 | 9 | 11 | 10 | 13 | 14 | 18 |
19 | 2 | 3 | 4 | 6 | 8 | 10 | 11 | 10 | 13 | 14 | 18 |
20 | 2 | 3 | 4 | 6 | 8 | 10 | 12 | 12 | 16 | 18 | 24 |
It removes 1 from the table, since a 1 always misses in D&D. You’ll also have to decide how to handle critical hits if you’re playing an edition that has them. As mentioned, you might just give the player the option of, on a critical hit, using the attack-roll damage or rolling as normal. Or you could just do away with critical hits, since this system automatically means more damage for higher rolls.
I wrote a script to create these tables; I’ve included the script as a download. It also handles d100 rolls, which you may find useful for seeing the percentage of time the various damage results come up.
d2 | d3 | d4 | d6 | d8 | d10 | d12 | 2d6 | 2d8 | 3d6 | 4d6 | |
---|---|---|---|---|---|---|---|---|---|---|---|
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | 2 | 3 | 4 |
2 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | 2 | 4 | 6 |
3 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | 3 | 5 | 7 |
4-5 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 3 | 3 | 5 | 8 |
6 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 3 | 4 | 6 | 8 |
7-9 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 3 | 4 | 6 | 9 |
10 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | 4 | 4 | 6 | 9 |
11-13 | 1 | 1 | 1 | 1 | 1 | 2 | 2 | 4 | 5 | 7 | 10 |
14-16 | 1 | 1 | 1 | 1 | 2 | 2 | 2 | 4 | 5 | 7 | 10 |
17 | 1 | 1 | 1 | 1 | 2 | 2 | 2 | 4 | 6 | 7 | 11 |
18-20 | 1 | 1 | 1 | 2 | 2 | 2 | 3 | 5 | 6 | 8 | 11 |
21-24 | 1 | 1 | 1 | 2 | 2 | 3 | 3 | 5 | 6 | 8 | 11 |
25 | 1 | 1 | 1 | 2 | 2 | 3 | 3 | 5 | 7 | 8 | 12 |
26 | 1 | 1 | 2 | 2 | 3 | 3 | 4 | 5 | 7 | 8 | 12 |
27-28 | 1 | 1 | 2 | 2 | 3 | 3 | 4 | 5 | 7 | 9 | 12 |
29-30 | 1 | 1 | 2 | 2 | 3 | 3 | 4 | 6 | 7 | 9 | 12 |
31-33 | 1 | 1 | 2 | 2 | 3 | 4 | 4 | 6 | 7 | 9 | 12 |
34 | 1 | 1 | 2 | 2 | 3 | 4 | 4 | 6 | 8 | 9 | 12 |
35-38 | 1 | 2 | 2 | 3 | 3 | 4 | 5 | 6 | 8 | 9 | 13 |
39-40 | 1 | 2 | 2 | 3 | 4 | 4 | 5 | 6 | 8 | 10 | 13 |
41-42 | 1 | 2 | 2 | 3 | 4 | 5 | 5 | 6 | 8 | 10 | 13 |
43-44 | 1 | 2 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 10 | 13 |
45 | 1 | 2 | 2 | 3 | 4 | 5 | 6 | 7 | 9 | 10 | 13 |
46-50 | 1 | 2 | 2 | 3 | 4 | 5 | 6 | 7 | 9 | 10 | 14 |
51 | 2 | 2 | 3 | 3 | 5 | 6 | 7 | 7 | 9 | 10 | 14 |
52-56 | 2 | 2 | 3 | 4 | 5 | 6 | 7 | 7 | 9 | 11 | 14 |
57 | 2 | 2 | 3 | 4 | 5 | 6 | 7 | 7 | 9 | 11 | 15 |
58-59 | 2 | 2 | 3 | 4 | 5 | 6 | 7 | 7 | 10 | 11 | 15 |
60 | 2 | 2 | 3 | 4 | 5 | 6 | 8 | 8 | 10 | 11 | 15 |
61-63 | 2 | 2 | 3 | 4 | 5 | 7 | 8 | 8 | 10 | 11 | 15 |
64-67 | 2 | 2 | 3 | 4 | 6 | 7 | 8 | 8 | 10 | 12 | 15 |
68 | 2 | 3 | 3 | 5 | 6 | 7 | 9 | 8 | 10 | 12 | 16 |
69-70 | 2 | 3 | 3 | 5 | 6 | 7 | 9 | 8 | 11 | 12 | 16 |
71-73 | 2 | 3 | 3 | 5 | 6 | 8 | 9 | 8 | 11 | 12 | 16 |
74-75 | 2 | 3 | 3 | 5 | 6 | 8 | 9 | 9 | 11 | 12 | 16 |
76-77 | 2 | 3 | 4 | 5 | 7 | 8 | 10 | 9 | 11 | 13 | 16 |
78-80 | 2 | 3 | 4 | 5 | 7 | 8 | 10 | 9 | 12 | 13 | 17 |
81-84 | 2 | 3 | 4 | 5 | 7 | 9 | 10 | 9 | 12 | 13 | 17 |
85 | 2 | 3 | 4 | 6 | 7 | 9 | 11 | 10 | 12 | 14 | 17 |
86-88 | 2 | 3 | 4 | 6 | 7 | 9 | 11 | 10 | 13 | 14 | 18 |
89-90 | 2 | 3 | 4 | 6 | 8 | 9 | 11 | 10 | 13 | 14 | 18 |
91 | 2 | 3 | 4 | 6 | 8 | 10 | 11 | 10 | 13 | 14 | 18 |
92 | 2 | 3 | 4 | 6 | 8 | 10 | 11 | 10 | 14 | 15 | 19 |
93-95 | 2 | 3 | 4 | 6 | 8 | 10 | 12 | 11 | 14 | 15 | 19 |
96 | 2 | 3 | 4 | 6 | 8 | 10 | 12 | 11 | 14 | 15 | 20 |
97-98 | 2 | 3 | 4 | 6 | 8 | 10 | 12 | 11 | 15 | 16 | 20 |
99 | 2 | 3 | 4 | 6 | 8 | 10 | 12 | 12 | 15 | 16 | 21 |
100 | 2 | 3 | 4 | 6 | 8 | 10 | 12 | 12 | 16 | 18 | 24 |
You can use it on individual dice as well as the list of all most-used damage dice. Using “python3 attackdice --game d100 d6” will provide, with the d20 ranges manually added:
d20 | d100 | d6 |
---|---|---|
1-4 | 1-17 | 1 |
5-7 | 18-34 | 2 |
8-11 | 35-51 | 3 |
12-14 | 52-67 | 4 |
15-17 | 68-84 | 5 |
18-20 | 85-100 | 6 |
You can also specify with --game the values “dungeons”, “runequest”, “d20”, and “d100”, the latter two for a raw list of percentiles from 1 to 20 or 1 to 100. The former two remove the rolls that, under those rules, are never a successful attack.
For other options, you can use “python3 attackdice --help”.
The script requires python3, although python3 may be called just python on your system. If so, you’ll need to call it as “python” instead of “python3”, and, if you turn this into a command by setting its execution bit, modify the top line of the script.
- Attack dice damage converter (Zip file, 2.3 KB)
- This Python 3 script will convert various damage rolls into d20 or d100 rolls for correspondence with attack rolls.
- It’s Okay to Have Damage Rolls: The Angry GM
- “D&D doesn’t care how much you succeed or fail. It doesn’t track progress. It’s concerned with the outcome of single actions. You state an action, the action succeeds or fails, end of story. Everything else—that is to say the actual consequences of the outcome and how the world changes as a result—is added by the DM.”
- What’s the point of separating attack rolls from damage rolls?
- “What’s the advantage to having characters roll twice on every attack—once to see if they hit and once to see how much damage they deal?”
More Programming for Gamers
- Are my dice random?
- My d20 appears to have been rolling a lot of ones, a disaster if I were playing D&D but a boon for Gods & Monsters. Is my die really random, or is it skewed towards a particular result? Use the ‘R’ open source statistics tool to find out.
- Programming for Gamers: Choosing a random item
- If you can understand a roleplaying game’s rules, you can understand programming. Programming is a lot easier.
- Easier random tables
- Rather than having to type --table and --count, why not just type the table name and an optional count number?
- Programming a Roman thumb
- Before we move on to more complex stuff with the “random” script, how about something even simpler? Choose or die, Bezonian!
- Multiple tables on the same command
- The way the “random” script currently stands, it does one table at a time. Often, however, you have more than one table you know you’re going to need. Why not use one command to rule them all?
- 12 more pages with the topic Programming for Gamers, and other related pages