I'm trying to determine the probability of every modifier to a 1D20:

1D20 +1
1D20 +2
1D20 +3
1D20 +4
1D20 +5

vs flat 2D20s with advantage

2D20 (Keep highest)
3D20 (Keep highest)
4D20 (Keep highest)

Any help would be highly appreciated


3 Answers 3


It depends on the target value

Simply put, there is no modifier that best fits for the whole range from 1 to 20, at least in a generally aceptable notion of "fitting". At the extremes (i.e., close to 1 or higher than 20), modifiers are always more valuable. For example, even +1 makes it impossible for you to get a 1 as result, and +1 is necessary for you to be able to get a 21 as result. So, if you are aiming for 1 or 21, +1 is always strictly better. It's even better than rolling 100d20 and taking the higher - it's always impossible to get 21 in a d20 roll, so +1 in this scenario is strictly better.

On the other hand, in middle ranges, like 9 to 14, advantage is worth about +5, and strictly better than +4.

For 15-16, it's worth about +4, for 16-17 it's worth about +3, for 19 it's about +2. You see the pattern: the closer you get to the extreme values, the less valuable it is to have extra dice.

If you really want to have some fitting, you need to define your loss/cost/distortion function (say, Euclidean distance) between the functions and compute which one fits the best. But either way the distortion will very high and the result most likely meaningless.


You can use anydice to calculate and visualise the results from any die roll combinations you can think of.

This program will output a results for 2d20, alongside all of the results for 1d20 plus modifiers from 0 - 9. As this is rpg stack exchange, I assume you are probably interested in the probability of rolling at least a certain value. Outside of this range of modifiers, none of the multiple d20 curves intersect with those of the single d20, so the there is a clear "better" option.

loop N over {2..4}{
  output [highest 1 of Nd20] named "[N]d20 keep highest"
loop M over {0..9}{
  output (1d20+M) named "1d20+[M]"

All of those combinations make for quite a cluttered graph, but we can see what's going on in this version with just 1 vs 2 d20s:

Anydice graph

The black line shows 2d20 keep highest, and you can see that it is always better than 1d20+0. However, vs the green line which shows 1d20+3, the single d20 is better if you need to roll anything 3 or under, and again if you need 19 or higher.

Anydice will also give you the numerical probabilities for each roll.

  • 1
    \$\begingroup\$ You can find how far off the results are with this sort of anydice function: anydice.com/program/1cddd intuitively the less area under the curve the better, which looks like +4 or +5 \$\endgroup\$ Commented Jul 25, 2020 at 0:14
  • \$\begingroup\$ Note that this (both the answer and the linked anydice program in the comments) are concerned only with the average roll. This answer would be improved by addressing why that's the best metric. \$\endgroup\$ Commented Jul 25, 2020 at 16:46

What does it mean for two die rolls to have 'close' probabilities?

This isn't easily defined. Probability functions are very mathematically interesting and complex. They have lots of attributes-- e.g. volatility, standard deviation, range, mean outcome, median outcome-- which are often interconnected yet refer to fundamentally different things about the kinds of outputs the system produces (in math, the "Probability Mass Function"-- mass not density because we're dealing with dice in RPGs).

That said, it is an important concept in RPGs, and there's a lot of ways that RPG experience teaches us to tell if two kinds of die roll systems are 'close'.

The most common method I see amateur game designers do is to just look at a functions average output. This is really a bad idea. It makes sense that it is a common intuition, because averages are relatively easy to calculate even without much skill at math, averages are a single number of the same sort as the function outputs and thus easy to visualize and understand, and averages are the most common important distinctive characteristic for very similar rolls in popular published systems (e.g. everyone who plays D&D knows 2d8 damage is better than 2d6 damage because the average of 2d8 is higher). But it breaks down rapidly when people start coming up with weird methods of rolling or more complicated things to do with the outputs of rolls.

As an example, let's look at the 3.x D&D comparison between the greatsword, which deals 2d6 damage, and the greataxe, which deals 1d12. You will generally hear that the greatsword is a strictly better weapon, because the average damage is 7 instead of 6.5. In fact, if you needed to roll a 12, the greataxe would be better-- it has a 1/12 instead of 1/36 chance of rolling the shared maximum value. Now, in practice, in 3.x, you don't actually need to do that practically ever and so the conventional wisdom is, in fact, more or less correct, but the point I'm making is that simplifying a distribution to its average is often an oversimplification in RPGs if you aren't careful.

Instead, I think the best way to compare these probability functions is to look at the 'area under the curve' that is shared between them (that is, $$\sum_{i=0}^{\infty}f(i)$$ with f being a composite function that outputs the lower output of our two probability mass functions for any given outcome i). This gives us a percentage overall overlap between two probability mass functions, which I think does a decent job of telling us how similar two of these things are. You should note that if you are interested not in what actual number was rolled but whether it was 'at least' or 'at most' some number, the comparison you would want to make here would be between those distributions (but that isn't what you asked, so I'll drop that line of reasoning from here out).

What modifier is best?


By adding a +0 modifier, you keep your 1d20+X from having a different range than your Nd20 and thus make them far more similar than if you add any larger value.

Range is a very important characteristic in typifying a roll for RPG purposes-- the minimum value you can roll determines what you can always do all the time with no chance of failure, while the maximum value determines what you can do when not under time pressure, at least in typical dice-based long-form-campaign GM-led RPGs. The average roll matters a lot, too, of course, but it's not as important and here we have to pick which we care about.

Since we are adding the same static modifier to all rolls and that just moves the distribution around, we can't really do anything about the other more-important-than-the-average aspects of the distribution, like how Nd20 take highest has a much smaller standard deviation or isn't a uniform distribution.

A +0 modifier has a 75 percent matching rate with 2d20 take the highest. A +1 modifier would have a 74.75 percent matching rate. The percent match goes down as you increase the number of d20s rolled that you are taking the highest of, but 0 is always the most matching single-number modifier.

+ variable amount

We can do better if the number we add doesn't have to always be the same number.

Fundamentally, we can model an uncertain outcome with a die by assigning possible outcomes to some number of its faces in proportion to their relative likelinesses. We can use that here to our advantage, to get a very good model without rolling more than one die.

The trick is to divide up whatever distribution we are looking at-- 2d20, 2d20,15d20, whatever-- into 20 individual chunks to map onto the faces of our 1d20 we want to roll instead. 1/20 is 5 %, so sampling every 5% will get us our numbers.

For example, for the case with 2d20, we can see that the first 5% of the probability happens between 0 and 5. Noting that we are 4/9ths of the way through the probability of rolling a 5 when we hit 5% and our step size is one, we can figure we want the first number to be a 4 and 4/9ths, or a 4.44 repeating. That means that we want our modifier to be 1 less than that when we roll a 1, or a +3.44 repeating. When we roll a 2 we want to get a 6.307692 repeating, so we derive a +4.307692 repeating modifier. For a 3, +4.692307. For a 4, +4.05882352941, and so on.

This is sometimes more optimistic and sometimes more pessimistic than a true 2d20, but overall it will match the 2d20 distribution very closely, and holds up much better than a mere +0 to higher numbers of d20s. It is, however, far too unwieldy for play, unless you are willing to manufacture specific dice or memorize the values for each of the 20 outcomes.


Not the answer you're looking for? Browse other questions tagged .