Dice+ Notation Reference
Basic Rolls
d20- Roll a single d202d6- Roll two six-sided dice1d8+5- Roll a d8 and add 53d6-2- Roll three d6 and subtract 2
Modifiers
Advantage/Disadvantage (Keep/Drop High/Low)
Keep Operators - Keep specified dice, drop the rest:
2d20kh1- Roll 2d20, keep highest 1 (advantage)2d20kl1- Roll 2d20, keep lowest 1 (disadvantage)4d6kh3- Roll 4d6, keep highest 3 (common for ability score generation)
Drop Operators - Drop specified dice, keep the rest:
2d20dl1- Roll 2d20, drop lowest 1 (same as keep highest - advantage)2d20dh1- Roll 2d20, drop highest 1 (same as keep lowest - disadvantage)4d6dl1- Roll 4d6, drop lowest 1 (keep highest 3)
Min/Max
1d20min10- Result cannot be less than 101d20max15- Result cannot be more than 15
Exploding
Exploding dice re-roll when they hit their maximum value and add the new roll to the total:
Basic Exploding:
1d6!or1d6e- Explode on 6 (implicit max value)1d6!6- Explode on 6 (explicit single value)1d6!6:3- Explode on 6, maximum 3 explosions1d6!>4- Explode on any value greater than 4
Multiple Values (Comma-Separated):
1d6!1,6- Explode on 1 or 61d6!1,6:2- Explode on 1 or 6, maximum 2 explosions
Compounding (!!):
Compounding explosions combine all explosion rolls into a single die value instead of adding separate dice:
4d6!!- Explode on 6, sum all explosions into one die (e.g., [4, 6+6+2] → [4, 14!!])3d6!!kh1- Compound on 6, keep highest (e.g., [4, 6+6+2, 3] → [4, 14!!, 3] → keep 14!!)
Note: Exploding dice spawn new dice dynamically during the roll, which causes timing-dependent physics behavior that cannot be perfectly synchronized between clients. Remote viewers may see slightly different animations, but the roller's broadcasted results are always the source of truth.
Matching Explode
Matching explode triggers when multiple dice in a group show the same value. Instead of checking each die individually, it checks if N dice match — then rolls one additional die per matching group. If the new die also matches the original value, it chains.
*Basic Matching Explode:
2d10!m- If both d10s show the same value, roll 1 extra d103d10!m3- All 3 must match to trigger (match count = 3)2d10!m:2- Match explode, max 2 chain explosions
With Selectors (filter which values can match):
2d10!m>5- Only values greater than 5 can form a match3d10!m3>=4:2- 3 dice must match on a value ≥4, max 2 explosions
Multiple Match Groups: If multiple distinct matching groups exist, each group triggers its own explosion. For example, 4d6!m rolling [3, 3, 5, 5] would spawn 2 explosion dice — one for the 3s and one for the 5s.
Chaining: When a matching explosion die lands on the same value that originally matched, it chains and spawns another explosion die (up to the max explosion limit).
With Advantage/Disadvantage: When combined with keep/drop operators (e.g., 3d10kh2!m), explosion dice only count toward the matching group's total. The system evaluates all possible kept-dice combinations and picks the best (advantage) or worst (disadvantage) total. For example, 3d10kh2!m rolling [2, 2, 7] with explosion [8] would compare: keeping {2, 2} + explosion 8 = 12 vs keeping {7, 2} = 9, and choose 12.
Validation: The dice count must be at least the match count. 2d10!m3 is invalid because you can't match 3 dice with only 2.
Note: Matching explode dice spawn dynamically like regular exploding dice, so remote viewers may see slightly different animations.
Re-Roll
Re-roll dice that meet certain conditions:
Basic Re-Roll:
1d20r- Re-roll on 1 (implicit minimum, infinite)1d20ro- Re-roll once on 11d20r1- Re-roll on 1 (explicit single value)1d20r<5- Re-roll on any value less than 51d6r6:3- Re-roll on 6, maximum 3 re-rolls
Multiple Values (Comma-Separated):
1d20r1,2- Re-roll on 1 or 21d8r1,2,7,8- Re-roll on extreme values
Note: Re-roll modifiers replace dice dynamically during the roll, which causes timing-dependent physics behavior that cannot be perfectly synchronized between clients. Remote viewers may see slightly different animations, but the roller's broadcasted results are always the source of truth.
Target Success / Dice Pool
Some systems use dice pools where you count successes (dice meeting a condition) rather than summing values.
How It Works:
- Place the compare point immediately after the dice (before operators): 5d10>=8
- Each die that meets the condition counts as 1 success
- Total = number of successes (not sum of values)
Basic Dice Pools:
5d10>=8- Count dice that rolled 8 or higher2d6=6- Count only exact rolls of 64d3>1- Count dice greater than 14d3<2- Count dice less than 26d10<=4- Count dice 4 or lower2d6<>4- Count dice not equal to 4 (use <>, not !=)
With Failures:
Add an f modifier to count failures that subtract from successes:
4d6>4f<3- Success: >4, Failure: <3- Total = (successes) - (failures)
Display Format:
5d10>=8: [2, 4, 6*, 3, 8*] = 2 - * marks successes
4d6>4f<3: [2_, 5*, 4, 5*] = 1 - _ marks failures
Combining with Other Operators:
Dice pools work with other operators:
5d10>=8!- Dice pool with exploding dice (explode on max)5d10>=8r1- Dice pool with reroll 1s
Operator Order Matters:
5d10>=8- Dice pool (count ≥8 as successes)5d10!>=8- Exploding dice (explode on ≥8, sum values)5d10>=8!- Dice pool + explosions (count ≥8, explode on 10)
Important Notes:
- Compare point MUST be immediately after
XdYfor dice pools - If compare point follows
!orr, it's the selector for that operator - Failure modifier
fmust follow a success condition - Use
<>for "not equal", not!=
Examples:
2d6=6: [4, 6*] = 1 // only 6 is a success
4d3>1: [1, 3*, 2*, 1] = 2 // >1 is a success
4d3<2: [1*, 3, 2, 1*] = 2 // <2 is a success
5d8>=5: [2, 4, 6*, 3, 8*] = 2 // ≥5 is a success
6d10<=4: [7, 2*, 10, 3*, 3*, 4*] = 4 // ≤4 is a success
4d6>4f<3: [2_, 5*, 4, 5*] = 1 // 2 successes - 1 failure = 1
5d10>=8!: [2, 4, 6*, 3, 8*, 10*, 7*] = 4 // Pool with explosion
Reroll Highest / Lowest
Reroll the N highest or lowest dice after all dice have settled. Unlike r/ro (which reroll individual dice as they land), rh/rl rank all dice together and reroll the selected ones.
Notation: rh[count][condition][:maxIterations] / rl[count][condition][:maxIterations]
count- Number of dice to target (default: 1 if omitted)condition- Optional: only reroll if the targeted die meets this condition:N- Optional: maximum number of rerolls per targeted die
Examples:
3d6rh- Roll 3d6, reroll the highest die once3d6rh2- Roll 3d6, reroll the two highest dice once each3d6rl- Roll 3d6, reroll the lowest die once3d6rl1<3- Roll 3d6, reroll the lowest die only if it rolled less than 33d6rl1<3:2- Roll 3d6, reroll the lowest die if < 3, up to 2 times
Behavior:
- Without a condition: the targeted die(s) are always rerolled exactly once
- With a condition: the targeted die is rerolled while its value still matches the condition (up to maxIterations)
Note: Rank rerolls wait for all dice in the group to settle, then physically despawn and re-throw the targeted dice — just like r/ro rerolls. The results are calculated deterministically so all players see the same final values.
Unique (Coming Soon)
4d6u- Roll 4d6, all results must be unique4d6uo- Roll 4d6 unique, unlimited re-rolls to ensure uniqueness
Advanced Operators
Dice Model Selection
Assign specific dice from your dice bag by name:
2d6{Red}- Use dice named "Red" from your d6 dice bag1d12{Fear}+1d12{Hope}- Use "Fear" and "Hope" dice- If the named die doesn't exist, falls back to normal cycling through active dice
Roll Descriptions/Labels
Add descriptive labels to your rolls using the # symbol. The # can appear immediately after a dice roll or at the end of the full expression:
3d6 #Fire damage- Label attached directly to a dice roll3d6-1 #Fire damage- Label at the end of a full expression (after math)(3d6-1)+(3d6-2) #Attack roll- Label after a parenthesized expression3d6 #Fire + 2d6 #Ice- Multiple rolls with per-roll descriptions When#appears directly afterXdY(before any operators or math), it labels that specific dice group. When#appears after the full expression it labels the entire roll.
Combined Features
All features can be combined for powerful roll expressions:
3d6{Red} # Fire damage + 2d6{White} # Frost damage- Models and descriptions2d20dl1{Red} # Attack with advantage- Drop lowest with model and description4d6dh1 # Ability Score- Drop highest with description
Mathematical Operations
Dice+ supports standard mathematical operations with proper operator precedence:
Multiplication and Division:
2*2d6- Roll 2d6 and multiply the result by 22d6*2- Roll 2d6 and multiply the result by 22d6/2- Roll 2d6 and divide the result by 2 (rounded down)2d6+5*10- Roll 2d6 and add 50 (5×10 is evaluated first)
Parentheses for Order of Operations:
2*(2d6+2d8)- Roll 2d6 and 2d8, sum them, then multiply by 2(4d6kh3)*2- Roll 4d6 keep highest 3, then multiply the result by 2(2d6+5)*3- Roll 2d6, add 5, then multiply the total by 3(3d6-1)+(3d6-2)- Two separate d6 groups each with their own modifier
Operator Precedence (standard math rules):
- Parentheses
()- Evaluated first - Multiplication
*and Division/- Evaluated left to right - Addition
+and Subtraction-- Evaluated left to right
Display Format:
2*2d6with rolls [4, 4] → Display:2*[4, 4] 8 = 162d6+5*10with rolls [3, 4] → Display:[3, 4] 7+50 = 572*(2d6+2d8)with rolls [4,4]+[3,7] → Display:2*([4, 4] 8+[3, 7] 10) = 36
Complex Expressions
Dice notation supports complex mathematical expressions:
2d20 + 1d6 + 5- Multiple dice types in one roll2d20kh1 + 1d4- Combine advantage with additional dice-1d4- Negative dice (subtract the result)3d6!1,6# Wild Magic - Explode on 1 or 6 with description2d20kh1 + 1d6!5,6 + 3- Advantage with exploding damage dice2d8*2 # Doubled damage- Multiply dice results with description(1d6+1d8)*2 + 5- Complex expression with parentheses
Fudge Dice (dF Notation)
For Fate / Fudge system games. dF (or df) rolls a six-sided die showing two +, two blank, two - faces. Each die contributes −1, 0, or +1 to the total.
| Notation | Description | Result Range |
|---|---|---|
dF / 1dF |
One Fudge die | −1 to +1 |
4dF |
Four Fudge dice (standard Fate ladder) | −4 to +4 |
4dF + 2 |
Four Fudge dice with a +2 skill modifier | −2 to +6 |
1d20 + 1dF |
Mixed roll | varies |
Mapping: Each Fudge die is physically a d6. Faces 1 and 4 → −1; faces 2 and 5 → 0; faces 3 and 6 → +1. The visible glyph on the die is + / blank / -.
Restrictions: Fudge dice support only count and arithmetic (+, -, *, /). Operators like ! (explode), kh/kl (keep), r (reroll), and dice pool comparisons are not allowed on dF.
Dicebag preview: When editing a d6 in the dice bag, a "Show as Fudge die (preview)" toggle previews the Fudge texture without changing the saved die. Rolling Fudge always uses dF notation.
Table Roll Notation (T Notation)
Use T followed by digits to roll multiple dice as place values — perfect for rolling on lookup tables in TTRPGs like Warhammer, OSR games, and others that use "roll on a D66 table" style mechanics.
Each digit after T specifies the die type for that place (hundreds, tens, ones, etc.):
| Notation | Dice Rolled | Result Range |
|---|---|---|
| T66 | d6 (tens) + d6 (ones) | 11 – 66 |
| T88 | d8 + d8 | 11 – 88 |
| T468 | d4 + d6 + d8 | 111 – 468 |
| T1000 | d10 + d10 + d10 | 1 – 1000 |
| T108 | d10 (tens) + d8 (ones) | 1 – 98 |
| T6666 | four d6s | 1111 – 6666 |
Special digit rules:
10as a consecutive pair → d10 (e.g.,T108= d10 for tens, d8 for ones)0alone (not at start) → d10 (e.g.,T1000= three d10s)- Single digits
1–9→ die with that many sides (e.g.,T66= two d6s)
d10 convention: When a d10 shows 10, it counts as 0 for the place value — the same convention as percentile dice. For all-d10 table rolls, a result of all-zeros equals the maximum (e.g., T1000 with three 10s → 1000, T100 with two 10s → 100).
Examples:
T66— Roll on a Warhammer-style 36-entry table (results: 11, 12, ..., 66)T1000— Roll on a 1000-entry table (same as three d10s / d1000)T468— Roll on a custom 64-entry table with varied dice
Table rolls can be combined with math modifiers:
T66+10— Table roll result plus 10T66 Magic Item— Named table roll