# Essential Functions ## `~_Init(spatialDistanceScale, timestep)` **Returns:** N/A (`undefined`) |Argument |Datatype|Description | |----------------------|--------|------------------------------------------------------------------------------------------------------------| |`spatialDistanceScale`|number |3D Volume scaling factor. Higher numbers make sounds that are further away quieter. A recommended value is `50`| |`timestep` |number |Number of seconds expected to pass for each call to `FAudio_Update()`. This is usually `1/fps` | !> `FAudioGMS_Init()` must be called once at the very start of your game. If in doubt, place the `AUDIO` object in the first room in your game.   ## `~_Update()` **Returns:** N/A (`undefined`) |Argument|Datatype|Description| |--------|--------|-----------| |None | | | !> `FAudioGMS_Update()` must be called once every frame, usually in the Step event of a persistent instance. Ensure that this instance doesn't get deactivated if you're using instance deactivation for e.g. a pause screen. If in doubt, place the `AUDIO` object in the first room in your game.   ## `~_Destroy()` **Returns:** N/A (`undefined`) |Argument|Datatype|Description| |--------|--------|-----------| |None | | | This will automatically free all memory allocated by FAudioGMS. All FAudioGMS-related IDs are invalid after this function is called. Calling any FAudioGMS function after `FAudioGMS_Destroy()` is called will do nothing.