Dice Notation¶
Dice notation is nearly fully understood by pydice.
xdice is case insensitive.
Dice¶
Patterns describes here can be passed to the Dice.parse() class method, and will then return the corresponding Dice object.
See Wikipedia for a complete definition.
Bases¶
Die rolls are given in the form AdX. A (amount) and X (sides) are variables, separated by the letter “d”, which stands for die or dice.
A is the number of dice to be rolled (1 if omitted).
X is the number of faces of each die.
For example, if a game would call for a roll of d4 or 1d4 this would mean, “roll one 4-sided die.” 3d6 would mean, “roll three six-sided dice”
Default values¶
If the A value is omitted, it is assumed to be a 1.
If the X value is omitted, it is assumed to be a 20. This behavior can be modified trough the class property Dice.DEFAULT_SIDES.
D% Notation¶
The D%
notation is allowed, and read as D100
.
Selective results¶
The AdX
pattern can be followed by Ln
and/or Hn
(‘L’ and ‘H’
respectively stand for lowest and highest).
In this case, the lowest/highest n scores will be discard when the dice will be rolled.
> Eg: 3D6L1
will roll three 6-sided dice, and drop the lowest, while 3D6H1
will roll three 6-sided dice, and drop the highest.
Notes:
- If no number follow the ‘L’ or ‘H’, it is assumed to be a 1.
- ‘L’ and ‘H’ can be combined inside a single pattern, but ‘L’ must precede ‘H’:
6D6L1H2
Exploding dice¶
Append an X
or a !
to a pattern to make the dice ‘explode’.
‘Explode’ means each maximal score will trigger a new roll.
The resulting score will be add to the results.
For example, if 3d6!
give [6,3,2]
, one more die will be rolled (because 6 is the max value)
The final result could be [6,3,2,4]
.
Fudge dice¶
Use the XdF
notation to use fudge dice.
Patterns¶
Patterns describes here can be passed to the Pattern.parse() class method.
AdX
notations can be used in more complex expressions.
Any mathematical expression is allowed:
>> 1d10+1d5+1
>> 1d20-6
>> 1d6*2
>> 2d20//4
>> 1d6*(1d4**2)
Following builtin python functions are also allowed: abs
, max
,
min
. That mean you can parse patterns like max(1d6+1, 2d4)
.
Repeat¶
The Rn(AdX)
notation can be used to roll n times the AdX
command.
For example, the pattern R3(2d6+2)
will roll 2d6+2
three times: (2d6+2)+(2d6+2)+(2d6+2)
Examples¶
1d6
> Roll a 6-sided die1d6+3
> Roll a 6-sided die, then add 32*(1d6+3)
> Roll a 6-sided die, add 3, then multiply by 23d6L2
> Roll three 6-sided dice, and drop the two lowest.R2(1d6+3)
> Similar to1d6+3+1d6+3
1d%
> Similar to1d100
d6
> Similar to1d6
min(1d6+10,3d6)
> Keep the minimal score between1d6+10
and3d6