I'm making a fork of D&D 5e (based on the SRD but then customized) and one of the changes I'm making is removing the whole score/modifier distinction and just going with a simple "score == modifier" model. That is, ability scores are all in the range [-5,10], with player characters being restricted to the range [-5,5].

Now I'm getting to character creation and want to provide similar ability score generation mechanisms as in the stock game. The "standard array" is simple enough: the set of scores is {2, 2, 1, 1, 0, -1}. But I know the players most likely to play this also like rolled scores. Which means producing a similar generation mechanism to "roll 4d6, keep best 3, 6 times". Which results in a range of [-4, 4] (since you're limited to results between 3 and 18).

Things I've thought of:

  • Keep with 4d6k3, but then immediately do the "subtract 10, then cut it in half and round down" procedure. This produces the same result, but adds complexity I'd like to avoid if possible.
  • Roll 1d10 and subtract 6. This does mean you can never end up with a +5 (which fits), but also means you can end up with a -5, which doesn't fit. And is a flat distribution, rather than a bell curve.
  • Other dice mechanisms that end up isomorphic to the above.

So what I'm looking for is advice on a distribution with the following properties:

  1. Asymmetric bell curve similar to 4d6k3. If it's slightly different, I don't care. But the asymmetry and "curved" shape are important.
  2. That outputs numbers in the range [-4, 4] directly or with only very simple operations (a single addition, subtraction, multiplication, or division at most).
  3. Ideally with a minimum of "reroll this, hold that".
  • \$\begingroup\$ Just out of curiosity, are you planning to still have half feats? \$\endgroup\$
    – biziclop
    Aug 4 at 20:35
  • 1
    \$\begingroup\$ @biziclop I'm actually removing feats entirely in favor of "skill tricks", which are kinda like smaller "micro-feats" that depend on a skill or ability score and come in tiers. ASIs will be "+1 to one ability score and pick a skill trick you qualify for". \$\endgroup\$ Aug 4 at 20:41

4 Answers 4


You could use Fudge dice

Fudge dice have two "-" symbols, two "+" symbols, and two blanks on each die. If you do 5d6k4 with these (perhaps better written "5dFk4"?), it will give you a result from -4 to 4.

The disadvantage is now you have to ask your players to buy Fudge dice. (Probably many of them will simulate the result by rolling d6es, which sort of brings you full circle.)

Consider doing point buy

There are good reasons to prefer point-buy systems, especially for longer games. Being stuck with a less-capable character because of a single bad roll at the start is no fun.

Or just do the obvious thing

Keep with 4d6k3, but then immediately do the "subtract 10, then cut it in half and round down" procedure. This produces the same result, but adds complexity I'd like to avoid if possible.

This gives you exactly the right distribution and it's an operation that 5e players are already very used to performing. The complexity it adds is not that bad.

  • \$\begingroup\$ While adding a little more mental gymnastics, fudge dice can be emulated with a normal d6. You can do this a number of ways, but the most common I've seen is 1-2 maps to <minus>, 3-4 maps to <blank>, and 5-6 maps to <plus>. \$\endgroup\$
    – posita
    Aug 5 at 14:13
  • \$\begingroup\$ FWIW, your intuitions around 5dfk4 are good. It has a very similar distribution to 4d6k3 / 2 - 5: i.stack.imgur.com/OdZpY.png \$\endgroup\$
    – posita
    Aug 5 at 14:34
  • \$\begingroup\$ Thanks for doing the math! \$\endgroup\$
    – Dan B
    Aug 5 at 15:52

Use a d100

Removing Subtraction

Since the range includes negative numbers, at face value that means there must be at least one subtraction and the -10 used in (4d6k3 - 10) / 2 is as simple as subtractions get. You could try to 'hide' the subtraction by using specialty die which have negative numbers printed on them, but every die that rolls a negative number is a subtraction, so all you've done is trade a simple -10 for more and slightly harder subtractions.

In the worst case scenario, the players simulate the specialty die with more common ones and so each die they roll needs to be translated. For our purposes such translations are also a kind of operation that we want to avoid if possible.

Removing Division

If we can't get rid of subtraction, we can get rid of division. 4d3k3 - 6 cuts the d6 in half, and its distribution is very close to (4d6k3 - 10) / 2, but the range is only [-3,3]. However, the real problem is that d3 are also specialty dice, so again the players will just end up rolling d6s and translating each dice.

We could try to use d2, but it would be weird to flip a handful of coins in the same way as we roll a handful of dice.

We could try to use d4, and indeed we get quite close with 3d4k2 - 5, but the range is only [-3,3]. In my opinion, you should use 3d4k2 - 5 because the range is [-3,3]: the -4 outcome of (4d6k3 - 10) / 2 is so unlikely that in practice it has a [-3,4] range; at least in d&d, the 4 outcome is a vastly different experience compared to the 2 you can get from a standard array and this discrepancy can be problematic for balance, hence the range of [-3,3] is arguably better design than [-3,4].

But aside from my opinion, the practical problem is that to widen the range to [-4,4] we would either add more die or increase the die size. Adding more die flattens the distribution and it no longer resembles (4d6k3 - 10) / 2. Increasing the die size just brings us back where we started, d6, so that isn't particularly helpful either.


It's possible to match the distribution of (4d6k3 - 10) / 2 almost exactly with a single operation, if that operation is translation: the player rolls a d100 and then translates the result to a number in the [-3,4] range according to a table such as this:

d100 1 2-6 7-18 19-38 39-65 66-87 88-98 99-100
Mod -3 -2 -1 0 1 2 3 4

As stated previously, -4 is unlikely, so much so that a d100 can't capture it. Still, this distribution is extremely close to the original. The d100 is still somewhat of a specialty die compared to d4-d12 and d20, but at least simulating a d100 with two d10 should be somewhat familiar to players in the D&D ecosystem.

A d20 would be even simpler, but less exact:

d20 1 2-3 4-8 9-13 14-17 18-20
Mod -2 -1 0 1 2 3

I produced these two tables by rounding to the nearest hundredth and nearest twentieth the at most chance (as on Anydice.com). Other methods will yield slightly different tables; other methods such as always rounding up or down instead of to the nearest, or referencing the at least or normal chances instead of the at most chances.

All the distributions in this answer can be viewed here.


One close approximation that uses standard D&D dice and meets your criteria of only using a single mathematical operation is 4*(min(d4, 3)) - 8, or in anydice terms 4d{1,2,3,3} - 8 (or equivalently 4d{-1,0,1,1})

This is pretty fast and easy to explain, you just roll 4 d4s (treating any 4s as 3s instead) and add up the results, then subtract 8 to get to the desired range.

Treating 4s as 3s instead is what gives this distribution its asymmetry and bias towards higher modifiers (so is unfortunately unavoidable), but the math that needs to be done afterwards is just a single subtraction so it is one division simpler than using 4d6k3. I'd argue "treat 4s as 3s instead" is roughly as simple as "determine the highest 3 of these 4 dice" in terms of mental effort, so those steps offset and leave the overall effort of this method lower than 4d6k3.

In the linked AnyDice program, I also included the Fudge dice method proposed by @Dan B in as a comparison point which is 5d{-1,0,1}k4 or equivalently 5d3k4 - 8. They are very similar to each other (more similar in fact than they are to 4d6k3) so should be interchangable depending on which dice you have on hand. View the "Graph" tab to be able to compare the distributions most easily.


One easy way to get a bell curved distribution of [-4,4] is to take 1d5 - 1d5 (i.e. roll 1d6 rerolling 6s and then roll 1d6 again subtracting from the total):

enter image description here

However, this method loses the skew toward higher values and is less centrally biased. Let's fix these issues individually.

The Skew

If we want the results to be skewed towards the higher results, we simply want the positive die to have a greater mean than the lower die. This can be done in a number of ways, but I like reducing the negative die to 1d4.

This gives us 1d5 - 1d4:

enter image description here

While it isn't quite as skewed to the positive numbers as 4d6k3, it is better.

The Deviation

The other aspect we want to fix is biasing the results more to the center. To do this, we can replace 6s with 3s instead of rerolling 6s. This is less clunky than rerolling and still very simple mathematically.

Here is 1d6 (6 = 3) - 1d4:

enter image description here


Our method is therefore, "roll 1d6 and 1d4. Subtract the result of the d4 from the result of the d6 treating a 6 as a 3." While is not a very good representation of the distribution of 4d6k3:

enter image description here

...it is a bell curve of an appropriate range that is simple to construct.


You must log in to answer this question.

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