Average Roll Breakdown by Attribute Dice

(originally posted on MightyBell )

This Google Doc details the breakdown of average rolls for each attribute and then for each increment of Advantage or Disadvantage for that attribute dice set.


Now @Great_Moustache is stealing credit for my fancy spreadsheet?! The fiend! :stuck_out_tongue:

1 Like

Grabs a pitchfork, looks at it, drops it for the electric razor instead. Let’s get him!


Lol, my fault. I couldn’t tell who made it.

1 Like

For the code-minded among us, I made a quick exploratory script to chart out dice roll probabilities using the awesome Runkit:

With runkit, you can change the results view to a “chart” using the dropdown to get a better view of roll distribution.


This is awesome, first off! :smiley:

Second, this took me more than a minute to find, LOL! So FYI, here’s what to look for if you’re like me and can’t quite see how to do this. Firs, look for:

Click “Properties Viewer”

And you’ll get a chart where you can select different chart types:


Is this based on expected probabilities, or on experimental data?

I can’t speak to the methods of the two folks who posted their charts above, but they align with what I know to be true from the dice testing tool built a long time ago by one of my very early alpha playtesters. This is fun, you can crash your browser with this (maybe your computer too), but I put in 999,999 and it takes a few seconds. If you run this repeatedly, you find that it’s sufficient to normalize the data within a few hundredths of a decimal place, which should be sufficient:

EDIT: read further down, this URL doesn’t generate accurate data



Nice. Bookmarked that.

I’ve had some fun on anydice.com as well. It appears to calculate probability instead of simulating rolls, though on a large scale it shouldn’t matter. The main problem I find there is that it stops calculations if it requires more than a few seconds. For OL specifically, this could be a problem if you want to see probabilities for lots of explosions.

My spreadsheet was based off of 1,000,000 rolls of each combination of dice from http://spandox.com/rollopen.htm

It’s a great tool for dealing with exploding dice. :smiley:

1 Like

Someone else used Anydice.com and posted on MightyBell, I don’t remember if the numbers were right or not

I am pretty sure anydice calculates probabilities instead of running simulations. I spent an evening trying to get the results in anydice to line up with the OP doc with no joy. I cannot discount the likelihood of a PEBKAC error additionally in the mix.

Although the probabilities should (and more or less do) line up with the experimental results from http://spandox.com/rollopen.htm1, I also notice that the mean values listed on anydice are lower than on the document. However, this actually makes sense, because anydice defaults to a maximum of 10 (I think) explosions, and it therefore has incomplete data with which to calculate mean.

Looking at these comparisons, however, I notice something interesting. The formula I used in anydice (output [explode 1d20] + [highest 2 of 4d[explode 1d6]] is for an attribute score of 5 with advantage 2) is representative of how explosions with advantage work in roll20. Roll all dice, explode results as needed, then remove the lowest n results.

This is NOT how the core rules say to do it. Take a look at the sidebar “EXAMPLE OF ADVANTAGE WITH EXPLODING DICE.”

The process described in that sidebar will definitely result in a different probabilities than using the roll20 method, but my anydice results were consistent with the results from http://spandox.com/rollopen.htm. This suggests that the example and the tool are not using the same method.

1 Like

Thanks for this researched response! I’m actually working on building out the sheet linked in the main post with a second page of the results I get from AnyDice, and I’ve updated it to max out at 30 explosions, just to be safe . :stuck_out_tongue:

I’ll keep you all posted.

Note: The formula you used was “output [explode 1d20] + [highest 2 of 4d[explode 1d6]]” for Attribute 5, Adv. 2. As you mentioned, that explodes before removing the lowest dice (and, alternately for Disadvantage, before removing the highest), meaning you could get much higher averages, as you should only be rolling the 2 instead of rolling 3 or 4 which gives you more chances to explode again.

The formula I am using currently is “output [explode 1d20] + [explode [highest 2 of 4d6]] named ‘Advantage 2’”. This should keep the highest 2 before exploding so that you only get to keep the results of those explosions as opposed to the explosions from several dice and keep the highest 2 of those.

Let me know if there is a way to improve the formula or if I’ve misunderstood/forgotten something!

EDIT: Ran into server timeout at 50 explosions, so I reduced it to 30. XD

EDIT2: It didn’t like 30 either for anything above Attribute 6, so now it’s down to 20. <_<

1 Like

Yup, the exploding dice rolling mechanic is a known issue with Roll20 @Carl.

So, crazy news folks! For folks like @Hassurunous, @GartLarissa, @Daranar, you’ll either find this hilarious or hate me

As it turns out, the calculations for most die roll stat charts have been wrong all along :smiley:

I’ve been too busy working on other things, my buddy who made http://spandox.com/rollopen.htm is a veteran computer programmer so I never bothered to check his work UNTIL NOW!

I’m laughing maniacally, knowing how it’s not as big of a deal as people will think it is and also bracing myself for a storm of controversy.

Turns out, the the thing that’s wrong on Roll20 was also wrong on http://spandox.com/rollopen.htm this entire time :joy:

I’ve fixed the logic and forked a new (correct) version. The impact on the average (naturally) scales depending on how much advantage you have, and the miscalculation can be quite dramatic at high advantage totals.

Previously - d20 + 3d10 (Advantage 10) = ~45.99

Correct - d20 + 3d10 (Advantage 10) = ~39.13

Previously, getting a 70+ on that roll had a 4.06% chance
Turns out, it’s actually 0.46%

Without further adieu, you can check out the fixed stat generator (I’ll redo the user interface later when I have time) at:



Well, guess I’ll redo the sheet this week. lol

@Hassurunous FWIW your final formula is exactly the same one I used. I feel a little less dense.

(Also FWIW my function also had the option to return the lower between the result and an arbitrary limit (usually 45), just so I could trim the long tail off the data and make it easier to compare stacked charts.)

@brianfeister HA! Now I feel even less dense. Also wryly resigned to the fact that I will not be able to resist the temptation to losing another night to number-bothering in the near future.

1 Like

@GartLarissa @Hassurunous @Carl, FYI you can see the source for this (most of it isn’t my code, so no poking fun, I just fixed the bug in how the calculations were run) on Github if you like:


So, when I was messing with my own system before I came across Open Legend, I was mainly using d6 that exploded.

I actually did the mathematical permutation to figure out the average roll of a d6 (it was roughly 4.2, I had a more exact number, but I’d have to look it up now). This way I could figure out target numbers and the like.

You can actually figure out the mathematical average, b/c when it comes to averages, even though it can explode to infinity, based on the rarity, it stops affecting the total average after so many.


The actual simple math forumla, to determine the average of an exploding dice, it increases over the expected dice by

N/(N-1) where N is the number of sides.

So a d6 average is 3.5

6/5 * 3.5 = 4.2

Of course, when it comes to having advantage, that can throw into a much more complex calculation. =P

Interestingly, I just found this article that explains it better than me:

now to figure out the math behind advantage.