Everything the Mini Kraken dice engine understands — the same notation works on the website roller, character sheets, and the Discord bot. Click any example to roll it for real.
Type any notation from this guide and roll it right here — dice show up in 3D with sound.
Roll dice with the classic NdX notation: N is how many dice, X is how many sides. Both parts are optional and have smart defaults.
NdXRoll N dice with X sides and add them up. The quantity defaults to 1, so d20 rolls a single twenty-sided die.
d → d20Omit the sides and the engine assumes a d20. Typing d+5 is the same as 1d20+5, and 3d rolls 3d20.
d%d% rolls a hundred-sided die, equivalent to d100. Great for percentage-based systems.
dF · dF.1dF rolls a Fudge die with results -1, 0, or +1 (dF.2, the default). dF.1 uses the variant where blank faces are more common. The shortcut f alone rolls 4dF, the standard Fate check.
(expr)dX · Nd(expr)Both the quantity and the sides can be full expressions in parentheses — even other dice. (2+1)d6 rolls 3d6.
Notation strings are full math expressions. Combine dice with numbers, operators, and parentheses; standard operator precedence applies.
+ - * / % ^Addition, subtraction, multiplication, division, modulo (%) and exponent (^ or **) are all supported, with parentheses for grouping.
1.5 · +-Decimal numbers work anywhere in an expression. Repeated signs are simplified automatically: d20+-2 becomes d20-2.
One card per function — every helper the engine accepts inside a notation. All of them take full expressions (including dice) as arguments.
floor(x)Always rounds down to the nearest whole number: floor(3.9) is 3. The classic way to halve damage.
ceil(x)Always rounds up: ceil(3.1) is 4. Useful when a system rounds in the player's favor.
round(x)Rounds to the nearest whole number: round(2.4) is 2, round(2.5) is 3.
abs(x)Removes the sign: abs(-3) is 3. Handy for margins and differences that can't be negative.
sign(x)Returns -1, 0, or 1 depending on whether the value is negative, zero, or positive.
sqrt(x)Returns the square root of the value: sqrt(16) is 4.
pow(x, y)Raises the first value to the second: pow(2, 3) is 8. Same as 2^3.
min(x, y)Returns the lower of two values: min(2d10, 7) caps the result at 7.
max(x, y)Returns the higher of two values: max(2d10, 7) guarantees at least 7.
exp(x)Returns Euler's number e raised to the value: exp(1) is about 2.718.
log(x)Returns the natural log (base e) of the value: log(10) is about 2.303.
sin(x)Sine of the value in radians. Rarely needed at the table, but available for exotic formulas.
cos(x)Cosine of the value in radians. Rarely needed at the table, but available for exotic formulas.
tan(x)Tangent of the value in radians. Rarely needed at the table, but available for exotic formulas.
Roll a pool and keep only the best — or ditch the worst. This is how you build advantage, disadvantage, and classic stat rolls like 4d6 drop lowest.
kN · khN · klNk or kh keeps the highest dice, kl keeps the lowest; everything else is ignored in the total. 2d20kh1 is advantage, 2d20kl1 is disadvantage.
dN · dlN · dhNd or dl drops the lowest dice, dh drops the highest. 4d6d1 is the classic ability-score roll.
k → k1 · km → kl1Omit the number and 1 is assumed: 2d20k means 2d20k1. km is an alias for kl1 (keep the lowest die).
When a die hits its trigger (the maximum value by default), it explodes: you roll an extra die and keep both. Explosions can chain.
!Each die that rolls its maximum value triggers an extra roll, shown as a separate die.
!!!! adds every chained explosion into a single die total instead of listing extra dice.
!p · !!p!p subtracts 1 from each exploded die (Hackmaster style). Combine with compound as !!p.
!cpAdd a compare point to change when dice explode: d6!>=5 explodes on 5 or 6, d10!=3 explodes only on 3.
ei · eiNei is a friendly alias for explosion: 3d6ei equals 3d6!, and 3d6ei5 equals 3d6!>=5.
Reroll dice you don't want to keep. By default the trigger is the minimum value (a natural 1 on most dice).
r · r(cp)r rerolls a die until the result no longer matches the trigger. Add a compare point to customize it: d20r<3 rerolls 1s and 2s.
ro · ro(cp)ro rerolls a matching die a single time and keeps the new result, even if it matches again.
Force every die in the pool to land on a different value.
u · u(cp)u rerolls duplicated results until all dice are different. With a compare point, only duplicates that match the condition are rerolled.
uouo rerolls each duplicate a single time, keeping whatever comes next.
Instead of summing the dice, count how many meet a target — the dice-pool style used by systems like World of Darkness or Shadowrun.
cpPut a compare point right after the dice and the total becomes the number of dice that match: 6d10>=8 counts dice showing 8 or more.
f(cp)Add f plus a compare point to also count failures; each failure subtracts one from the success total.
Flag dice as critical successes or failures. This is purely visual — it marks the dice in the output but never changes the total.
cs(cp)cs marks dice that match the compare point: d20cs=20 highlights natural 20s.
cf(cp)cf marks fumbles: d20cf=1 highlights natural 1s.
Clamp each individual die to a floor or ceiling after rolling.
minNmin raises any die below the value up to it: 4d6min2 turns every 1 into a 2.
maxNmax caps dice above the value: d%max50 never shows more than 50.
Reorder the dice in the output to read results faster.
s · sa · sds or sa sorts the rolled dice in ascending order, sd in descending order. Only the display order changes.
Wrap expressions in braces to treat them as a single group — and apply keep/drop logic across whole sub-rolls.
{A, B}List one or more expressions separated by commas inside braces. The group total is the sum of its expressions.
{...}modWith a single expression, modifiers apply to each die: {4d6}k3 keeps the 3 best dice. With several expressions, they apply to each sub-total: {2d6, 1d8, 1d4}d1 drops the lowest expression.
Repeat an entire notation several times in one go.
N#Prefix the notation with a count and #. 6#4d6k3 rolls a full set of six ability scores at once. Up to 100 repetitions.
Several modifiers (explode, reroll, unique, successes, criticals) accept a compare point: an operator followed by a number that defines when the modifier triggers.
=Equal to<Less than>Greater than<=Less than or equal>=Greater than or equal!=Not equal<>Not equal (alternative)To keep rolls fast and safe, the engine enforces a few hard limits. Anything beyond them — or any invalid notation — throws a clear error instead of rolling.
9.999
Maximum dice per notation
100
Maximum repetitions with # per roll
1.000
Maximum explosions/rerolls per die
100.000
Maximum total roll attempts per notation
Take this notation to the 3D dice roller, your character sheets, or the Discord bot.
Open the dice roller
Comments & Labels
Attach a label to any roll — perfect for naming attacks and damage types. Comments never affect the math.
Line comments
// · #Everything after // or # becomes the roll's label.
Block comments
/* */ · [ ]Wrap text in /* */ or [ ] anywhere in the notation.