<?xml version="1.0" encoding="UTF-8" ?> <class name="RandomNumberGenerator" inherits="Reference" category="Core" version="3.2"> <brief_description> A class for generating pseudo-random numbers. </brief_description> <description> RandomNumberGenerator is a class for generating pseudo-random numbers. It currently uses [url=http://www.pcg-random.org/]PCG32[/url]. [b]Note:[/b] The underlying algorithm is an implementation detail. As a result, it should not be depended upon for reproducible random streams across Godot versions. To generate a random float number (within a given range) based on a time-dependant seed: [codeblock] var rng = RandomNumberGenerator.new() func _ready(): rng.randomize() var my_random_number = rng.randf_range(-10.0, 10.0) [/codeblock] </description> <tutorials> </tutorials> <methods> <method name="randf"> <return type="float"> </return> <description> Generates a pseudo-random float between [code]0.0[/code] and [code]1.0[/code] (inclusive). </description> </method> <method name="randf_range"> <return type="float"> </return> <argument index="0" name="from" type="float"> </argument> <argument index="1" name="to" type="float"> </argument> <description> Generates a pseudo-random float between [code]from[/code] and [code]to[/code] (inclusive). </description> </method> <method name="randfn"> <return type="float"> </return> <argument index="0" name="mean" type="float" default="0.0"> </argument> <argument index="1" name="deviation" type="float" default="1.0"> </argument> <description> Generates a [url=https://en.wikipedia.org/wiki/Normal_distribution]normally-distributed[/url] pseudo-random number, using Box-Muller transform with the specified [code]mean[/code] and a standard [code]deviation[/code]. This is also called Gaussian distribution. </description> </method> <method name="randi"> <return type="int"> </return> <description> Generates a pseudo-random 32-bit unsigned integer between [code]0[/code] and [code]4294967295[/code] (inclusive). </description> </method> <method name="randi_range"> <return type="int"> </return> <argument index="0" name="from" type="int"> </argument> <argument index="1" name="to" type="int"> </argument> <description> Generates a pseudo-random 32-bit signed integer between [code]from[/code] and [code]to[/code] (inclusive). </description> </method> <method name="randomize"> <return type="void"> </return> <description> Setups a time-based seed to generator. </description> </method> </methods> <members> <member name="seed" type="int" setter="set_seed" getter="get_seed" default="-6398989897141750821"> The seed used by the random number generator. A given seed will give a reproducible sequence of pseudo-random numbers. [b]Note:[/b] The RNG does not have an avalanche effect, and can output similar random streams given similar seeds. Consider using a hash function to improve your seed quality if they're sourced externally. </member> </members> <constants> </constants> </class>