Random functions¶
These functions produce random results each time they run.
Internally, each function uses YarnSpinner.random random generator, which can be replaced with a
custom generator if you need reproducible draws for debug purposes, or to prevent the player from
getting different results upon reload.
dice(n)¶
Returns a random integer between 1 and n, inclusive. For example, dice(6) will return a
random integer from 1 to 6, as if throwing a regular six-sided die.
The argument n must be numeric, and greater or equal than 1. If n is a non-integer, then it
will be truncated to an integer value at runtime. Thus, dice(3.5) is equivalent to dice(3).
<<set $roll = dice(6)>>
<<set $coin_flip = if(dice(2) == 1, "H", "T")>>
random()¶
Returns a random floating-point between 0 and 1.
This function can be used to implement events with a prescribed probability. For example:
<<if random() < 0.001>>
// This happens only with 0.1% probability
You found it! The Holy Grail!
<<endif>>
random_range(a, b)¶
Returns a random integer between a and b inclusive.
Both arguments a and b must be numeric, and they will be truncated to integers upon evaluation.
The value of a must be less than or equal to b, or otherwise a runtime exception will be thrown.
The purpose of this function is similar to dice(), but it can be used in situations where a
custom range is desired.
<<set $coin_flip = bool(random_range(0, 1))>>