What’s better, rolling with a positive modifier or ‘with advantage’? That’s what I was wondering about last time. I already explored the question in enough detail to answer the question about what gloves to wear. But what about other combinations of dice? I’m a game designer, I don’t really care all that much about how D&D in particular does it. I feel like there’s a broader set of mechanics we’re scratching the surface of here. That’s more my interest. So I’m using this as a jumping off point to calculate some twists on this mechanic.
Here are some questions I’m thinking about:
- How does the +X Modifier vs. ‘With Advantage’ look for other types of dice besides the D20?
- What about rolling more than two dice for Advantage/Disadvantage?
- Are there other interesting distributions besides ‘With Advantage’ and ‘With Disadvantage’?
So let’s take a look at these. And like last time, at the end you can find the Excel workbook I’m referencing throughout, in case you want to experiment with anything yourself.
Bruter Forcing It with Dice Result Tables
Before we start looking at results, let me show you how we’ll get at some of these answers, by brute forcing the probabilities. When solving any sort of probability question, there’s usually three approaches you can take:
- Figuring out the actual equation that calculates the result (“Solving it analytically”)
- Generating every permutation and checking the results manually (“Brute forcing it”)
- Simulating the results with a large number of trials and checking those results (“Monte Carlo-ing it”)
We’ll talk about that first one later on. The last one, generating results and sampling them, I actually try to avoid that whenever I can, because it’s a brittle approach. By that I mean, we need to set up the simulation parameters and then get the results. That means if we change anything, or we want to slightly change a parameter, we need to run it over again. If I’m doing something to explore a question, I don’t like that loss of flexibility, because I probably will want to tweak things as I go. Sometimes a problem is so complex the only way to go about it is via simulating the trials, but it’s usually my last resort (after generating all the permutations, and trying to solve it analytically).
Instead, if the domain of the problem is small enough to allow generating the whole thing (“brute forcing it”), it’s a great idea to do it. It lets you check your work to make sure anything fancier you try is actually working, and lets you investigate the results as you try to figure things out.
For dice, this usually takes the form of iterating through every combination the dice can take. I usually set that up as a table, by having the first column go from 1 to the number of faces, and then the next column does the same, but for the whole block of the first column, and so on. Here’s how it looks for a D4:

These tables can get pretty long. The number of rows will be [dice faces]^[number thrown]
, so every combination of five D4s is 4^5 = 1,024
. It’s an exponential so it grows pretty fast though, and that means we can’t brute force too many faces or too many dice. Two D20s is only 400 rows, but going to three it shoots up to 8,000 rows!
Once we have a table like that, we can set up some helper columns to calculate the result of that throw. So we can take the MAX of the first two columns, and that’d be the result of a ‘with advantage’ throw, for example. MIN would get us the ‘with disadvantage’ and so on. Once that’s done, we can calculate any probability we like simply by counting from those results columns using COUNTIFS.

So, let’s say we want to know the answer to a question like, “What is the probability of rolling a 3 or higher on two D4s with Disadvantage?”, we’d just need a formula like this:
=COUNTIFS(F2:F1025,">=3")/(4^5)
And we’ll get the answer we’re after (25%, it turns out). But wait, isn’t the table setup for five D4s, not two? Yes, but the beauty is those columns just repeat, and we’re dividing out the duplicates. We can check this by looking at all the combinations for two D4s, which is only 16 rows:

From this we can clearly see there are only 4 instances where a 3 or 4 is the result (the outcomes that are 3s or 4s on both dice), and 4/16 = 25%. On our bigger table of five dice, those columns just repeat another 64 times to account for the third, fourth and five dice’s results, and so we’ll find 256 rows with a 3 or 4, and 256 / 1024 = 25%.]
So setting up tables like this let’s us check all manner of dice probabilities just by counting and dividing. This is especially useful because we can try out weird things we’re not really sure about without having to figure out how to actually calculate them. Like, let’s say I have a new mechanic, it’s called, “Rolling with Multvantage”. To roll with multvantage, you roll the dice, multiply the faces together, and then divide by the number of sides, rounding up if it’s fractional. Is that better or worse than Rolling with Disadvantage? With our table, we can figure that out very quickly, along with any other weird ideas we might come up with.
In the workbook I’m referencing, you’ll see I made ‘Brute Data’ tables for up to five D4s, up to five D6s and up to three D20s. Here’s what the brute force table looks like for rolling five D6s, showing the results for two, three, and five dice:

Okay, so let’s look at some of the results from this and see if we see anything interesting!
A D20 By Any Other Name?
Last time, we looked at a comparison between rolling a D20 with a +X modifier versus Rolling with Advantage, and we saw it looked like this:

Using the tables we just put together, we can calculate all sorts of other possibilities. Like, what about Rolling with Advantage, but with three dice instead of two? That could be neat. Or what about rolling D6s instead of D20s? Well, a D6 is going to struggle with a DC higher than 7, so maybe we adjust the DC check to be the same as the number of die faces.
So here’s results for Min/Max of Two and Three Dice, on D4s and D6s:

Hmm, wait a minute… I guess I expected them to be similar, but these are looking almost identical. Oh, whoops: because the “DC” I’m checking against is the same as the number of die faces in each case, the distributions are the same! To make sure, let’s check out the same charts for D20 and D100 dice:

It seems like the lower number faces are just ‘lower resolution’ versions of the same distribution. And we don’t seem to gain much by dialing up the detail either, since there’s hardly any difference between a D20 and D100. What if instead of a D100, we used one with a thousand sides, or a million?
So, a few conclusions to draw here. I wanted to see how this would look with different kinds of dice, but it turns out that wasn’t actually an interesting parameter. Oh well! That happens, not everything we think to look into will always pan out. But at least it was quick and easy to find it out, since I was just brute forcing it anyway, so it didn’t take much time or effort.
I did I learn something here though. I tend to think of all the classic polyhedral dice as having actual different affordances. They have different ranges obviously, so there are times to use a D4, and times to use a D12 or whatever. But maybe that perception is false? Maybe they’re secretly all the same, and all the different types of dice are each just an imperfect window to some true ideal, a platonic universal distribution that our meagre dice can only clumsily approximate.
Well, in the meantime, I guess we can basically just stick to using D20s for this.
Rolling with Advantage on Two, Three or Five Dice?
Let’s look at another parameter. Does changing the number of dice we use to calculate advantage or disadvantage matter very much? The default is two. But what if we rolled five dice and took the max?
Here’s that D6 from before, but with a bit more detail. This is showing the result of Rolling with Advantage, with two dice, three dice and five dice:

Increasing the number of dice is increasing the severity of the curve, but that’s about it. It’s like increasing the exponent on a polynomial function, it’s making the results steeper but it isn’t really changing the nature of it. I’m surprised that the effect isn’t even all that dramatic. Taking the highest of five dice results in higher numbers than taking the highest of two, but not dramatically so.
That’s neat, but not worth the increased overhead of more dice. Maybe two dice is enough after all!
Rolling Back to Where We Started
Earlier I mentioned some of the things I was thinking about with these dice mechanics and raised a few questions:
- How does the +X Modifier vs. ‘With Advantage’ look for other types of dice besides the D20?
- What about rolling more than two dice for Advantage/Disadvantage?
- Are there other interesting distributions besides ‘With Advantage’ and ‘With Disadvantage’?
I can see that the answers to the first two questions didn’t really lead anywhere interesting. Changing the number of faces on the die or the number of dice we toss resulted in pretty minor changes. But that’s okay! Not every hunch is going to result in something interesting, and there are more blind alleys than useful shortcuts out there.
This has gotten a bit long, so I’m going to slice off that last question into a separate post, since I think it might result in something more interesting!
In the meantime, as promised here’s an Excel file with the data referenced above:
Leave a Reply