engine:basics:dice_pools

Dice Pools

When using a dice pool, you will get the single results for each dice plus the sum of all dice.

Pools can be used standalone by using the pool() function. They can also be used instead of a normal dice definition as argument to other functions, like for example successes() to count successes based on the pooled dice. When using pools as argument for other functions, you don't have to use the pool() function - as soon as more than one dice definition are concated by a & sign, the engine automatically switches this argument to a dice pool.

pool ( 3d6 ); rolls 3 six-sided dice and returns a list with 3 results
➰ Processing: pool(3d6)
🎲 dice: rolling 3d6: 1, 5, 2, sum: 8
  dice pool: [d6:1, d6:5, d6:2]
∎ Results on stack: Array
(
    [0] => d6:1
    [1] => d6:5
    [2] => d6:2
)

A dice pool can be constructed with dice of different size combining them with the + operator. The dice does not have to be of the same size.

pool ( 4d10 & 2d8 ); rolls 4 ten-sided dice and 2 eight-sided dice and returns a list with 6 results
➰ Processing: pool(4d10&2d8);
🎲 dice: rolling 4d10: 2, 1, 6, 8, sum: 17
🎲 dice: rolling 2d8: 7, 3, sum: 10
  dice pool: [d10:2, d10:1, d10:6, d10:8, d8:7, d8:3]
∎ Results on stack: Array
(
    [0] => d10:2
    [1] => d10:1
    [2] => d10:6
    [3] => d10:8
    [4] => d8:7
    [5] => d8:3
)