What does 4d6kh3 mean? Dice notation explained
The compact grammar behind every tabletop game, plus the probability difference between rolling one d20 and rolling three d6.
By 123MiniApps · Published 2026-03-25 · Updated 2026-09-01 · 1001 words · about 4 minute read
Dice notation is one of those conventions that is completely opaque until someone explains it, then immediately obvious. The basic form is NdS: roll N dice with S sides each and add them up.
3d6 means three six-sided dice, giving a result between 3 and 18. 1d20 means one twenty-sided die. 2d10+5 means two ten-sided dice plus five.
The full grammar
| Notation | Meaning | Range |
|---|---|---|
1d6 | One six-sided die | 1–6 |
3d6 | Three d6, summed | 3–18 |
3d6+2 | Three d6, plus 2 | 5–20 |
1d20-1 | One d20, minus 1 | 0–19 |
4d6kh3 | Four d6, keep the highest 3 | 3–18 |
2d20kl1 | Two d20, keep the lowest 1 | 1–20 |
d% | Percentile, usually d100 | 1–100 |
The kh and kl suffixes mean keep-highest and keep-lowest. They are where the notation stops being obvious, and they exist because rolling extra dice and discarding some is an extremely common mechanic.
Why 4d6kh3 exists
This is the standard method for generating Dungeons & Dragons ability scores: roll four six-sided dice, discard the lowest, sum the remaining three.
The effect on the distribution is substantial. Plain 3d6 averages 10.5. 4d6kh3 averages about 12.24: nearly two points higher, and shifts the whole curve upward. It also makes very low scores much rarer: the chance of rolling a 3 drops from 1 in 216 to 1 in 1,296.
The design intent is to produce characters who are above average without eliminating the possibility of a weak score entirely. It is a neat piece of probability design.
Advantage and disadvantage
Fifth edition D&D introduced a mechanic that is just 2d20kh1 and 2d20kl1 under different names: roll two d20 and take the higher (advantage) or the lower (disadvantage).
The effect is larger than most players intuit. Advantage adds roughly +3.3 to your average roll, but the benefit is not uniform, it is largest when you need a middling result and smallest at the extremes.
| Target number | Normal chance | With advantage | Improvement |
|---|---|---|---|
| Need 5+ | 80% | 96% | +16 points |
| Need 11+ | 50% | 75% | +25 points |
| Need 15+ | 30% | 51% | +21 points |
| Need 20 | 5% | 9.75% | +4.75 points |
The peak is at exactly 50/50, where advantage is worth a full 25 percentage points. That is an enormous swing for a mechanic that costs nothing to describe.
Supports the full notation including keep-highest, keep-lowest, modifiers, exploding dice and advantage. Uses crypto.getRandomValues() with rejection sampling, so every face is exactly equally likely, no modulo bias.
The bit that actually matters: flat versus bell curve
This is the most important idea in dice design, and it explains why different games feel so different to play.
A single die is flat. On a d20, every result from 1 to 20 is equally likely, exactly 5% each. There is no "typical" roll. A 1 is as likely as an 11.
Multiple dice form a bell curve. On 3d6, the possible results run from 3 to 18, but they are wildly unequal. A 10 or 11 comes up about 12.5% of the time each. A 3 or an 18 comes up 0.46% of the time, once in 216 rolls.
There is only one way to roll 3 on 3d6 (1-1-1), but twenty-seven ways to roll 10. That ratio is the entire difference between the two systems.
The design consequence is direct. A d20 system is swingy: a skilled character fails routinely and an unskilled one occasionally triumphs, which makes every roll dramatic. A 3d6 system is predictable: results cluster near the average, so competence reliably wins and modifiers matter enormously.
Neither is better. GURPS uses 3d6 deliberately, because it wants a simulation where an expert rarely fumbles. D&D uses d20 deliberately, because it wants the possibility of the improbable in every scene.
Exploding dice
Some systems let a maximum roll trigger another roll, added to the total. Roll a 6 on a d6, roll again and add, and if that is also a 6, keep going.
This makes the range technically unbounded and creates a long thin tail of very high results. The average of an exploding d6 rises from 3.5 to 4.2, but the more interesting effect is on the shape: rare, memorable, enormous results become possible from a small die.
Why the randomness source matters here too
A physical die is fair enough for most purposes, though cheap dice are measurably biased, casino dice are machined to much tighter tolerances precisely because small imperfections in weight distribution shift the odds.
A digital roller has a different problem. Most use Math.random(), which is a predictable pseudo-random generator, and many then map the result into range with a modulo operation, which introduces a small systematic bias toward the lower faces whenever the die size does not divide evenly into the generator's output space.
Reading more complex dice expressions
Once the basic NdX form is familiar, N dice with X sides each, the modifiers follow a consistent grammar. A trailing "+K" or "-K" adds or subtracts a flat number after rolling, so 2d6+3 means roll two six-sided dice and add three. The "kh" and "kl" suffixes mean "keep highest" and "keep lowest": 4d6kh3, common in tabletop character creation, rolls four dice and keeps the best three, which nudges results upward. Its opposite, 2d20kl1, rolls two twenty-sided dice and keeps the lower, the mechanic many games call disadvantage.
These notations exist because they compactly describe probability distributions, not just totals. Rolling 3d6 is not the same as rolling 1d18 even though both can total between 3 and 18: the three-dice version clusters heavily around 10 and 11 and almost never hits the extremes, because there are many more ways to make a middle total than an extreme one. Understanding that difference is the whole point of dice notation, it lets game designers and players reason precisely about how likely each outcome really is, rather than just its range.
For a casual game this is irrelevant. For anything where the outcome matters, it is worth knowing that a properly implemented roller uses a cryptographic source and rejection sampling, which removes both problems entirely.