# Considering Complex Dice Roll Probabilities

Hoping someone more math and excel/troll/anydice competent than I can help me out.

I've long been considering implementing some Dungeon World style die roll mechanics into D&D. With Next about to release, I'm even more strongly considering it. I find in running that turning all of the dice rolls over to the players and having tiers of success (failure, success with consequence, clean success) makes for a game that's more rewarding for my group's style of play.

## My current mechanic

To simulate this, I have rolls being made with 2d20, applying identical modifiers:

• If both succeed, you have a clean success.
• If one succeeds and one fails, you have a success with consequence.
• If both fail, you have a failure.

D&D Next introduces an interesting twist with the advantage/disadvantage system, whereby you roll an additional d20 and either take the highest or the lowest roll. If I expand this to my existing practice, I would see this as "roll 3d20, take the two best/worst, and compare to the DC."

## What I'd like to know

• How the inclusion of D&D Next's advantage/disadvantage mechanic affect the probabilities of failure, success with consequence, and clean success in the dice-rolling mechanic I have described above.
• How the effects of the mechanic play out with respect to varying target DCs.

Trying to do this old school (no programs, just statistics and probability 101), it won't be short, but should be very informative (I'll add a summery later on).

To help making this more vivid, let's consider 3 characters:

1. "Fumbles" - he is really unlucky or unskilled, so he gets a -5 modifier.
2. "Average Joe" (or just "Joe") - no modifiers.
3. "Rambo" - he is far better then the average joe, he gets a +8 modifier. (I wanted to call him Chuck Norris, but then he can't fail at all and the whole exercise becomes redundant...)

Now let's see how they perform on:

1. The standard 1d20 check
2. Your Dungeon World inspired variant (2d20, compare both to DC for either success, failure or success with consequences)
3. The D&D Next twist (2d20, choose high or low and compare to DC)
4. Your ultimate cocktail (3d20, ignore highest or lowest, compare other two to DC for either success, failure or success with consequences)

I'll use the following DCs as benchmarks: "Easy (DC 5)", "Normal (DC 10)", "Tough (DC 15)", "Really Tough (DC 20)" and "WTF (DC 27)".

## The Standard Check

This is pretty straight-forward (written as %success):

\begin{array}{l|r|r|r} \text{Difficulty} & \text{Fumbles} & \text{Joe} & \text{Rambo} \\ \hline \text{ 5 Easy} & 55\% & 80\% & 100\% \\ \text{10 Normal} & 30\% & 55\% & 95\% \\ \text{15 Tough} & 5\% & 30\% & 70\% \\ \text{20 Really Tough} & 0\% & 5\% & 45\% \\ \text{27 WTF} & 0\% & 0\% & 10\% \end{array}

No surprises here, Fumbles is almost as likely to fail as to succeed in trivial stuff, and can barely pass tough challenges - anything above that is beyond him. Joe is more likely to pass a tough test than to fail in an easy one, and Rambo generally kicks butt, passing really tough challenges about half the times, and nailing a "WTF" challenge one time out of ten.

## The Dungeon World Variant

This works differently, now the odds for a clean success are (success)×(success) of the standard check, and the odds for "success with consequences" are 2×(success)×(failure) (written as %success/%success with consequences, rounded to whole percentage):

\begin{array}{l|r|r|r} \text{Difficulty} & \text{Fumbles} & \text{Joe} & \text{Rambo} \\ \hline \text{ 5 Easy} & 30\%/50\% & 64\%/32\% & 100\%/ 0\% \\ \text{10 Normal} & 9\%/42\% & 30\%/50\% & 90\%/10\% \\ \text{15 Tough} & ~0\%/10\% & 9\%/42\% & 49\%/42\% \\ \text{20 Really Tough} & 0\%/ 0\% & ~0\%/10\% & 20\%/50\% \\ \text{27 WTF} & 0\%/ 0\% & 0\%/ 0\% & 1\%/18\% \end{array}

In your variant, the results are less extreme, as the two dice tend to cancel out and reduce the odds of unlikely results (since now you need to get them twice for them to count...).

So, Fumbles now succeeds at easy tasks 80% of the times, and is more likely to pass normal tests than fail them - but he is very likely to have consequences and not a clean success. In fact, the only way he can pass a tough challenge now is with consequences, but the odds for that are doubled (10% now instead of the clean 5% from before).

Joe now passes easy tests 96% of the times (instead of 80% in the standard method), and tough tests 51% of the times. but the harder the difficulty, the more likely he is to face some consequences.

Finally, Things got really better for Rambo - he always succeeds in normal or lower challenges and he passes tough and really tough challenges 91% and 70% of the time respectively (it was 70% and 45% in the standard method), and he nearly doubled his chances for nailing a "WTF" (19% now, was 10% before). He'll rarely face any consequences for normal or lower DCs, but for tough ones, it'll happen about half the times, and almost always for "WTF" challenges...

Bottom line: Your variant makes static bonuses more powerful, as the randomness is now averaged - extreme results are more rare, the weak become weaker (but less prone to complete fiascoes), and the strong can almost always count on winning. I'm not criticizing that, just making an observation - whatever works better for you and your group is your best choice.

## The D&D Next Twist

This is somewhere in between the standard version and your variant. The odds for an advantaged success are (success)×(success)+2×(success)×(failure) of the standard check, and the odds for a disadvantaged success are (success)×(success) (written as %adv. success/%disadv. success, rounded to whole percentage)

Note that since advantage/disadvantage are not part of the same scenario, you can't add their percentages for a combined success rate as in your variant:

\begin{array}{l|r|r|r} \text{Difficulty} & \text{Fumbles} & \text{Joe} & \text{Rambo} \\ \hline \text{ 5 Easy} & 80\%/30\% & 96\%/64\% & 100\%/100\% \\ \text{10 Normal} & 51\%/ 9\% & 80\%/30\% & 100\%/ 90\% \\ \text{15 Tough} & 10\%/ 0\% & 51\%/ 9\% & 91\%/ 49\% \\ \text{20 Really Tough} & 0\%/ 0\% & 10\%/ 0\% & 70\%/ 20\% \\ \text{27 WTF} & 0\%/ 0\% & 0\%/ 0\% & 19\%/ 1\% \end{array}

It may not be immediately obvious, but what you have here is that the odds for an "Advantaged Success" are exactly the odds for success (with or without consequences) in your variant. And the odds for a "Disadvantaged Success" are exactly the odds for a "clean success" in your variant.

So, here Fumbles succeeds at easy and normal tasks 80% and 51% of the times respectively when advantaged, but only 30% or 9% with a disadvantage (compared to a flat 55% and 30% in the standard method). Joe now passes a tough challenge at either 51% or merely 9% (compared to 30% in the standard method) - so an advantage means succeeding half of the times instead of less than once out of ten.

Rambo is having the time of his life here, as his odds for success when he has the advantage are the same as in your variant - without the risk of any consequences. Seriously, 70% chance for success at DC 20?! A bit more and he'll qualify as Chuck Norris's stand-in!

When he doesn't have the advantage, though, his odds are worse compared to the basic method (49% vs. 70% for tough, 20% vs. 45% for really tough and 1% vs. 10% for the WTF DC).

Bottom Line: In this variant, having the advantage raises your chances of success to the roof, and being disadvantaged severely pushes them down. Compared to your variant, here the players (who tend to become closer to "Rambo" than to "Joe") are rewarded for making the effort to gain an advantage, instead of always being able to count on their superior static bonuses.

## The Ultimate Cocktail

Calculating this isn't that straight forward, and we need to come up with 4 different figures for each cell in our benchmark table (both advantaged / disadvantaged and success / success with consequences for each). Again, based on the results of the standard method, the odds for an advantaged clean success are (success)×(success)×(success)+3×(success)×(success)×(failure).

• The odds for an advantaged success with consequences are 3×(success)×(failure)×(failure)
• The odds for a disadvantaged clean success are (success)×(success)×(success).
• And the odds for a disadvantaged success with consequences are 3×(success)×(success)×(failure)

I'll split the results to 2 tables to keep it readable, (results are written as %clean success/%success w. cons. (%Total Success) - same as in your variant, with total success added in parentheses):

\begin{array}{l|r|r|r} \text{Difficulty} & \text{Fumbles} & \text{Joe} & \text{Rambo} \\ \hline \text{ 5 Easy} & 57\%/33\% \; (91\%) & 90\%/10\% \; (99\%) & 100\%/ 0\% \; (100\%) \\ \text{10 Normal} & 22\%/44\% \; (66\%) & 57\%/33\% \; (91\%) & 99\%/ 1\% \; (100\%) \\ \text{15 Tough} & 1\%/14\% \; (14\%) & 22\%/44\% \; (66\%) & 78\%/19\% \; ( 97\%) \\ \text{20 Really Tough} & 0\%/ 0\% \; ( 0\%) & 1\%/14\% \; (14\%) & 43\%/41\% \; ( 83\%) \\ \text{27 WTF} & 0\%/ 0\% \; ( 0\%) & 0\%/ 0\% \; ( 0\%) & 3\%/24\% \; ( 27\%) \end{array}

\begin{array}{l|r|r|r} \text{Difficulty} & \text{Fumbles} & \text{Joe} & \text{Rambo} \\ \hline \text{ 5 Easy} & 17\%/41\% \; (57\%) & 51\%/38\% \; (90\%) & 100\%/ 0\% \; (100\%) \\ \text{10 Normal} & 3\%/19\% \; (22\%) & 17\%/41\% \; (57\%) & 86\%/14\% \; ( 99\%) \\ \text{15 Tough} & 0\%/ 1\% \; ( 1\%) & 3\%/19\% \; (22\%) & 34\%/44\% \; ( 78\%) \\ \text{20 Really Tough} & 0\%/ 0\% \; ( 0\%) & 0\%/ 1\% \; ( 1\%) & 9\%/33\% \; ( 43\%) \\ \text{27 WTF} & 0\%/ 0\% \; ( 0\%) & 0\%/ 0\% \; ( 0\%) & 0\%/ 3\% \; ( 3\%) \end{array}

Right, so, what have we here? With an advantage, even Fumbles will almost always pass easy challenges, and can count on passing normal DCs 2 out of 3 times. He'll even beat a tough challenge 14% of the time. Without an advantage, his odds are much lower, but are still way better than what he'd get in the D&D Next Twist (57% vs. 30%, 22% vs. 9% and 1% vs. 0%) - yes you read that right, this cocktail means that even a disadvantaged Fumbles is more likely to succeed than fail an easy challenge.

Joe seems to have turned from average into J.I.Joe - passing tough challenges 66% of the time with an advantage, and with negligible odds of failure at easier tasks. Disadvantaged, he is still almost guaranteed to beat the easy DC, and his odds of beating harder DCs is comparable to the standard method (90% vs. 80%, 57% vs. 55%, 22% vs. 30% and 1% vs. 5%) - so he feels a slight disadvantage in the higher DCs, but easy to normal are still easier.

And finally, Rambo. While he is still not quite Chuck Norris, this cocktail turned him into Captain America. When disadvantaged, he will still beat DC 20 more than 2 out of 5, and pass tough DCs about 4 out of 5! Normal and easy are now a none-issue, he can't fail them. period. With an advantage, he needn't even roll for tough or lower tests - except to find out if there are any consequences, and the almighty DC 20 is now easier for him than an easy task was for Joe in the standard method. And he'll nail a WTF more than 1 out of 4...

Bottom Line: The ultimate cocktail makes everything very easy - for everyone. This arguably is still a matter of taste, but to me it seems like it totally breaks the system. You may be able to compensate this to some extent by either nerfing the bonuses (don't let Rambo get more than a +3, hit Fumbles with a -10 penalty so he doubts his ability to open doors again) or by raising all DCs - or both.

This idea ends giving you a "success with consequences" result, by all but eliminating the "failure" result - seems to me like too much of a sacrifice, but you may of course disagree.

I suppose there are other ways to gain this "success with consequences" without losing so much (probably also without using this somewhat cumbersome process of rolling 3d20, removing one, and checking the rest...). Maybe use two different colored d20 and decide that if one is higher the result has additional consequences (for both failures and successes), maybe treat a "double" result as special, or perhaps use some way to measure margin of success by comparing die result and target DC. There are many options, but this feels like a topic deserving its own question.

Hope this helps (and hope I didn't make any more miscalculations...), please feel free to use the comments for any clarifications or questions still missing from this answer.

P.S Thanks to DiabloMonkey's help in fixing a calculation error - and the inaccurate conclusion derived from it.

• This is yeoman's work; nice job. Looking forward to the conclusion! – SevenSidedDie Jun 24 '14 at 16:32
• I could be wrong, but it seems to me like a few of your calculations are off. The first that jumped out to me was Fumbles' probability of success with consequences using the Dungeon World inspired variant on a tough challenge (I wondered how 1 die succeeding of 2 could be lower than 1 die succeeding of 1). With his -5 modifier, he only succeeds on a 20. Normal odds would be 1/20 or .05 (5%), however the chance of either of the two dice succeeding is .0975 (9.75%). I think there are a couple others that may be off by 1 decimal place. – DiabloMonkey Jun 25 '14 at 13:35
• Thanks, @DiabloMonkey, you are absolutely right - well done on spotting that! I'm correcting this as well as adding the final analysis to the answer (might take a while though - I'm double-checking everything now...) – G0BLiN Jun 25 '14 at 20:41
• Finished editing + fixed the error. – G0BLiN Jun 25 '14 at 23:42
• @G0BLiN I hope you do not mind I did a little cleanup editting. Very good analysis and thorough answer to the OP's question. I am proud to have been a part of the work on this and contributed in my small way your work here. Top notch! – DiabloMonkey Jun 26 '14 at 13:02

Anydice can handle this, but it requires a little bit of actual programming. Here is a link to a program that I think does the correct calculations for "roll 3 dice, take the highest 2, and count the number of successes against a target."

To visualize what's actually going on, you'll want to click on [graph] and [transpose]; it'll plot the percentage chance of both, only one, or none of the dice meeting target numbers between 1 and 20.

### The program itself

I've never used anydice for this sort of thing before, but this is what I came up with:

function: check X and Y against T {
R: 0
if (X >= T){
R: R + 1
}
if (Y >= T) {
R: R + 1
}
result: R
}

function: compare best two of X:n and Y:n  and Z:n to T {
if (X > Y){
if (Y > Z){ result: [check X and Y against T] }
else{ result: [check X and Z against T] }
} else {
if (X > Z) { result: [check X and Y against T] }
else { result: [check Y and Z against T] }
}
}

loop P over {1..20}{
output [compare best two of 1d20 and 1d20 and 1d20 to P]
}


The first function accepts actual numbers; it compares X and Y against a target T, and returns the number of successes.

The second function takes three dice and a target, and calls the previous function with the two highest results. It would be easy to modify this to check what taking the lowest two looks like.

The last chunk simply calls the second function with 3d20 against each target from 1 to 20.

• The OP didn't ask how to calculate probabilities. He asked what the probabilities are. – DCShannon Jun 27 '14 at 3:50

I like using anydice.com, mostly because it's free and you can access it from any computer connected to the internet. Dice (and Probability) can be a fickle and often unintuitive thing (the Monty Hall Problem is a good example of how unintuitive simple probability can be). You should always do the math and quantitatively find out what changing a dice mechanic will do!

Additionally, I like the syntax of anydice, but that's secondary to the fact that it produces the probabilities. It also "remembers" what you last told it to calculate, so when you come back after doing other things, it's still there for you. (The documentation for anydice is super basic, so that's a bit of an issue.)

Check out the link of chances I've made here, which pretty much summarizes the effects your mechanic would have on plain successes. Turns out, taking the highest 3d20 is much better than just the higher of 2d20. This becomes super obvious when you use the "at least" data/graphic mode. If you took the highest two, or used the proposed mechanic a lot, recording the results, you'll notice that you're getting significantly more clean successes than mixed ones, possibly more than if you just used regular D&D Next or Dungeon World rules.

Input Breakdown

"output [highest 1 of 2d20] named 'Advantage on 2d20'"

• output says "hey, print the results of the following"
• '[]' lets it know that there something more than just a regular dice roll
• 'highest 1' tells it to take the highest 1 (there is also "lowest," for lowest rolls)
• 'of 2d20' tells it what its taking the highest of
• 'named' lets you label the graph. This isn't actually needed, but makes things look prettier
• "'Advantage on 2d20'" Yes, the quotes are needed so it knows what string is the actual title name and what's actual programming input.
• You're comparing apples and oranges with that data set. highest 2 of 3d20 gives you a range of 2-40, but we're only looking for a 1-20 range. You have to compare 2 of 2d20 vs 2 of 3d20. See: anydice.com/program/3ebf – Bobson Jun 23 '14 at 17:25
• This has the form of a good answer recommending anydice, but unfortunately doesn't consider the case suggested by the OP! :) – starwed Jun 23 '14 at 18:52
• @PipperChip Provides the necessary information for OP to do the analysis himself, however. ...although I'm not sure anydice really allows the analysis OP is looking for in the first place. – Wesley Obenshain Jun 23 '14 at 18:55
• @WesleyObenshain While anydice is capable of this analysis, the particular suggestions in this post won't actually work. (Or, at least, I couldn't see how to do so!) OP wants something a bit more complicated. – starwed Jun 23 '14 at 19:41
• @bobson Changed the link to anydice for highest 1 of 3d20, etc. – PipperChip Jun 23 '14 at 19:50