## [:rewind: Lua Functions](functions.md)
---
[< prev](functions-5.md) | [1](functions.md) | [2](functions-2.md) | [3](functions-3.md) | [4](functions-4.md) | [5](functions-5.md) | 6 | [7](functions-7.md) | [next >](functions-7.md)]
---
# functions from object_list_processor.h
## [set_object_respawn_info_bits](#set_object_respawn_info_bits)
### Description
Runs an OR operator on the `obj`'s respawn info with `bits` << 8. If `bits` is 0xFF, this prevents the object from respawning after leaving and re-entering the area
### Lua Example
`set_object_respawn_info_bits(obj, bits)`
### Parameters
| Field | Type |
| ----- | ---- |
| obj | [Object](structs.md#Object) |
| bits | `integer` |
### Returns
- None
### C Prototype
`void set_object_respawn_info_bits(struct Object *obj, u8 bits);`
[:arrow_up_small:](#)
---
# functions from platform_displacement.h
## [apply_platform_displacement](#apply_platform_displacement)
### Description
Apply one frame of platform rotation to the object using the given platform
### Lua Example
`apply_platform_displacement(o, platform)`
### Parameters
| Field | Type |
| ----- | ---- |
| o | [Object](structs.md#Object) |
| platform | [Object](structs.md#Object) |
### Returns
- None
### C Prototype
`void apply_platform_displacement(struct Object *o, struct Object *platform);`
[:arrow_up_small:](#)
---
# functions from rumble_init.h
## [queue_rumble_data](#queue_rumble_data)
### Description
Queues rumble data
### Lua Example
`queue_rumble_data(a0, a1)`
### Parameters
| Field | Type |
| ----- | ---- |
| a0 | `integer` |
| a1 | `integer` |
### Returns
- None
### C Prototype
`void queue_rumble_data(s16 a0, s16 a1);`
[:arrow_up_small:](#)
## [queue_rumble_data_object](#queue_rumble_data_object)
### Description
Queues rumble data for object, factoring in its distance from Mario
### Lua Example
`queue_rumble_data_object(object, a0, a1)`
### Parameters
| Field | Type |
| ----- | ---- |
| object | [Object](structs.md#Object) |
| a0 | `integer` |
| a1 | `integer` |
### Returns
- None
### C Prototype
`void queue_rumble_data_object(struct Object* object, s16 a0, s16 a1);`
[:arrow_up_small:](#)
## [queue_rumble_data_mario](#queue_rumble_data_mario)
### Description
Queues rumble data for Mario
### Lua Example
`queue_rumble_data_mario(m, a0, a1)`
### Parameters
| Field | Type |
| ----- | ---- |
| m | [MarioState](structs.md#MarioState) |
| a0 | `integer` |
| a1 | `integer` |
### Returns
- None
### C Prototype
`void queue_rumble_data_mario(struct MarioState* m, s16 a0, s16 a1);`
[:arrow_up_small:](#)
## [reset_rumble_timers](#reset_rumble_timers)
### Description
Resets rumble timers
### Lua Example
`reset_rumble_timers(m)`
### Parameters
| Field | Type |
| ----- | ---- |
| m | [MarioState](structs.md#MarioState) |
### Returns
- None
### C Prototype
`void reset_rumble_timers(struct MarioState* m);`
[:arrow_up_small:](#)
## [reset_rumble_timers_2](#reset_rumble_timers_2)
### Description
Resets rumble timers and sets a field based on `a0`
### Lua Example
`reset_rumble_timers_2(m, a0)`
### Parameters
| Field | Type |
| ----- | ---- |
| m | [MarioState](structs.md#MarioState) |
| a0 | `integer` |
### Returns
- None
### C Prototype
`void reset_rumble_timers_2(struct MarioState* m, s32 a0);`
[:arrow_up_small:](#)
---
# functions from save_file.h
## [get_level_num_from_course_num](#get_level_num_from_course_num)
### Description
Gets the course number's corresponding level number
### Lua Example
`local integerValue = get_level_num_from_course_num(courseNum)`
### Parameters
| Field | Type |
| ----- | ---- |
| courseNum | `integer` |
### Returns
- `integer`
### C Prototype
`s8 get_level_num_from_course_num(s16 courseNum);`
[:arrow_up_small:](#)
## [get_level_course_num](#get_level_course_num)
### Description
Gets the level number's corresponding course number
### Lua Example
`local integerValue = get_level_course_num(levelNum)`
### Parameters
| Field | Type |
| ----- | ---- |
| levelNum | `integer` |
### Returns
- `integer`
### C Prototype
`s8 get_level_course_num(s16 levelNum);`
[:arrow_up_small:](#)
## [touch_coin_score_age](#touch_coin_score_age)
### Description
Marks the coin score for a specific course as the newest among all save files. Adjusts the age of other scores to reflect the update. Useful for leaderboard tracking or displaying recent progress
### Lua Example
`touch_coin_score_age(fileIndex, courseIndex)`
### Parameters
| Field | Type |
| ----- | ---- |
| fileIndex | `integer` |
| courseIndex | `integer` |
### Returns
- None
### C Prototype
`void touch_coin_score_age(s32 fileIndex, s32 courseIndex);`
[:arrow_up_small:](#)
## [save_file_do_save](#save_file_do_save)
### Description
Saves the current state of the game into a specified save file. Includes data verification and backup management. Useful for maintaining game progress during play or when saving manually
### Lua Example
`save_file_do_save(fileIndex, forceSave)`
### Parameters
| Field | Type |
| ----- | ---- |
| fileIndex | `integer` |
| forceSave | `integer` |
### Returns
- None
### C Prototype
`void save_file_do_save(s32 fileIndex, s8 forceSave);`
[:arrow_up_small:](#)
## [save_file_erase](#save_file_erase)
### Description
Erases all data in a specified save file, including backup slots. Marks the save file as modified and performs a save to apply the changes. Useful for resetting a save file to its default state
### Lua Example
`save_file_erase(fileIndex)`
### Parameters
| Field | Type |
| ----- | ---- |
| fileIndex | `integer` |
### Returns
- None
### C Prototype
`void save_file_erase(s32 fileIndex);`
[:arrow_up_small:](#)
## [save_file_erase_current_backup_save](#save_file_erase_current_backup_save)
### Description
Erases the backup data for the current save file without affecting the primary save data. Reloads the save file afterward
### Lua Example
`save_file_erase_current_backup_save()`
### Parameters
- None
### Returns
- None
### C Prototype
`void save_file_erase_current_backup_save(void);`
[:arrow_up_small:](#)
## [save_file_reload](#save_file_reload)
### Description
Reloads the save file data into memory, optionally resetting all save files. Marks the save file as modified. Useful for reloading state after data corruption or during development debugging
### Lua Example
`save_file_reload(load_all)`
### Parameters
| Field | Type |
| ----- | ---- |
| load_all | `integer` |
### Returns
- None
### C Prototype
`void save_file_reload(u8 load_all);`
[:arrow_up_small:](#)
## [save_file_get_max_coin_score](#save_file_get_max_coin_score)
### Description
Determines the maximum coin score for a course across all save files. Returns the score along with the file index of the save containing it. Useful for leaderboard-style comparisons and overall progress tracking
### Lua Example
`local integerValue = save_file_get_max_coin_score(courseIndex)`
### Parameters
| Field | Type |
| ----- | ---- |
| courseIndex | `integer` |
### Returns
- `integer`
### C Prototype
`u32 save_file_get_max_coin_score(s32 courseIndex);`
[:arrow_up_small:](#)
## [save_file_get_course_star_count](#save_file_get_course_star_count)
### Description
Calculates the total number of stars collected in a specific course for a given save file. Useful for determining completion status of individual levels
### Lua Example
`local integerValue = save_file_get_course_star_count(fileIndex, courseIndex)`
### Parameters
| Field | Type |
| ----- | ---- |
| fileIndex | `integer` |
| courseIndex | `integer` |
### Returns
- `integer`
### C Prototype
`s32 save_file_get_course_star_count(s32 fileIndex, s32 courseIndex);`
[:arrow_up_small:](#)
## [save_file_get_total_star_count](#save_file_get_total_star_count)
### Description
Calculates the total number of stars collected across multiple courses within a specified range. Useful for determining the overall progress toward game completion
### Lua Example
`local integerValue = save_file_get_total_star_count(fileIndex, minCourse, maxCourse)`
### Parameters
| Field | Type |
| ----- | ---- |
| fileIndex | `integer` |
| minCourse | `integer` |
| maxCourse | `integer` |
### Returns
- `integer`
### C Prototype
`s32 save_file_get_total_star_count(s32 fileIndex, s32 minCourse, s32 maxCourse);`
[:arrow_up_small:](#)
## [save_file_set_flags](#save_file_set_flags)
### Description
Adds new flags to the save file's flag bitmask. Useful for updating progress or triggering new gameplay features
### Lua Example
`save_file_set_flags(flags)`
### Parameters
| Field | Type |
| ----- | ---- |
| flags | `integer` |
### Returns
- None
### C Prototype
`void save_file_set_flags(u32 flags);`
[:arrow_up_small:](#)
## [save_file_clear_flags](#save_file_clear_flags)
### Description
Clears specific flags in the current save file. The flags are specified as a bitmask in the `flags` parameter. Ensures that the save file remains valid after clearing. Useful for removing specific game states, such as collected items or completed objectives, without resetting the entire save
### Lua Example
`save_file_clear_flags(flags)`
### Parameters
| Field | Type |
| ----- | ---- |
| flags | `integer` |
### Returns
- None
### C Prototype
`void save_file_clear_flags(u32 flags);`
[:arrow_up_small:](#)
## [save_file_get_flags](#save_file_get_flags)
### Description
Retrieves the bitmask of flags representing the current state of the save file. Flags indicate collected items, completed objectives, and other game states. Useful for checking specific game progress details
### Lua Example
`local integerValue = save_file_get_flags()`
### Parameters
- None
### Returns
- `integer`
### C Prototype
`u32 save_file_get_flags(void);`
[:arrow_up_small:](#)
## [save_file_get_star_flags](#save_file_get_star_flags)
### Description
Retrieves the bitmask of stars collected in a specific course or castle secret stars (-1). Useful for evaluating level progress and completion
### Lua Example
`local integerValue = save_file_get_star_flags(fileIndex, courseIndex)`
### Parameters
| Field | Type |
| ----- | ---- |
| fileIndex | `integer` |
| courseIndex | `integer` |
### Returns
- `integer`
### C Prototype
`u32 save_file_get_star_flags(s32 fileIndex, s32 courseIndex);`
[:arrow_up_small:](#)
## [save_file_set_star_flags](#save_file_set_star_flags)
### Description
Adds specific star flags to the save file, indicating collected stars for a course or castle secret stars. Updates the save file flags as necessary. Useful for recording progress after star collection
### Lua Example
`save_file_set_star_flags(fileIndex, courseIndex, starFlags)`
### Parameters
| Field | Type |
| ----- | ---- |
| fileIndex | `integer` |
| courseIndex | `integer` |
| starFlags | `integer` |
### Returns
- None
### C Prototype
`void save_file_set_star_flags(s32 fileIndex, s32 courseIndex, u32 starFlags);`
[:arrow_up_small:](#)
## [save_file_remove_star_flags](#save_file_remove_star_flags)
### Description
Removes specific star flags from the save file. This modifies the bitmask representing collected stars for a course or castle secret stars. Useful for undoing progress or debugging collected stars
### Lua Example
`save_file_remove_star_flags(fileIndex, courseIndex, starFlagsToRemove)`
### Parameters
| Field | Type |
| ----- | ---- |
| fileIndex | `integer` |
| courseIndex | `integer` |
| starFlagsToRemove | `integer` |
### Returns
- None
### C Prototype
`void save_file_remove_star_flags(s32 fileIndex, s32 courseIndex, u32 starFlagsToRemove);`
[:arrow_up_small:](#)
## [save_file_get_course_coin_score](#save_file_get_course_coin_score)
### Description
Returns the highest coin score for a specified course in the save file. Performs checks to ensure the coin score is valid. Useful for tracking player achievements and high scores
### Lua Example
`local integerValue = save_file_get_course_coin_score(fileIndex, courseIndex)`
### Parameters
| Field | Type |
| ----- | ---- |
| fileIndex | `integer` |
| courseIndex | `integer` |
### Returns
- `integer`
### C Prototype
`s32 save_file_get_course_coin_score(s32 fileIndex, s32 courseIndex);`
[:arrow_up_small:](#)
## [save_file_set_course_coin_score](#save_file_set_course_coin_score)
### Description
Updates the coin score for a specific course in the save file. The new score is provided in the `coinScore` parameter. Useful for manually setting achievements such as high coin counts in individual levels
### Lua Example
`save_file_set_course_coin_score(fileIndex, courseIndex, coinScore)`
### Parameters
| Field | Type |
| ----- | ---- |
| fileIndex | `integer` |
| courseIndex | `integer` |
| coinScore | `integer` |
### Returns
- None
### C Prototype
`void save_file_set_course_coin_score(s32 fileIndex, s32 courseIndex, u8 coinScore);`
[:arrow_up_small:](#)
## [save_file_is_cannon_unlocked](#save_file_is_cannon_unlocked)
### Description
Checks whether the cannon in the specified course is unlocked. Returns true if the cannon is unlocked, otherwise false. Useful for tracking course-specific progress and enabling shortcuts
### Lua Example
`local integerValue = save_file_is_cannon_unlocked(fileIndex, courseIndex)`
### Parameters
| Field | Type |
| ----- | ---- |
| fileIndex | `integer` |
| courseIndex | `integer` |
### Returns
- `integer`
### C Prototype
`s32 save_file_is_cannon_unlocked(s32 fileIndex, s32 courseIndex);`
[:arrow_up_small:](#)
## [save_file_get_cap_pos](#save_file_get_cap_pos)
### Description
Retrieves the current position of Mario's cap, if it is on the ground in the current level and area. The position is stored in the provided `capPos` parameter. Useful for tracking the cap's location after it has been dropped or lost
### Lua Example
`local integerValue = save_file_get_cap_pos(capPos)`
### Parameters
| Field | Type |
| ----- | ---- |
| capPos | [Vec3s](structs.md#Vec3s) |
### Returns
- `integer`
### C Prototype
`s32 save_file_get_cap_pos(OUT Vec3s capPos);`
[:arrow_up_small:](#)
## [save_file_get_sound_mode](#save_file_get_sound_mode)
### Description
Returns the current sound mode (e.g., stereo, mono) stored in the save file. Useful for checking the audio output preferences when loading a save
### Lua Example
`local integerValue = save_file_get_sound_mode()`
### Parameters
- None
### Returns
- `integer`
### C Prototype
`u16 save_file_get_sound_mode(void);`
[:arrow_up_small:](#)
---
# functions from seqplayer.h
## [sequence_player_get_tempo](#sequence_player_get_tempo)
### Description
Gets the tempo of `player`
### Lua Example
`local integerValue = sequence_player_get_tempo(player)`
### Parameters
| Field | Type |
| ----- | ---- |
| player | `integer` |
### Returns
- `integer`
### C Prototype
`u16 sequence_player_get_tempo(u8 player);`
[:arrow_up_small:](#)
## [sequence_player_set_tempo](#sequence_player_set_tempo)
### Description
Sets the `tempo` of `player`. Resets when another sequence is played
### Lua Example
`sequence_player_set_tempo(player, tempo)`
### Parameters
| Field | Type |
| ----- | ---- |
| player | `integer` |
| tempo | `integer` |
### Returns
- None
### C Prototype
`void sequence_player_set_tempo(u8 player, u16 tempo);`
[:arrow_up_small:](#)
## [sequence_player_get_tempo_acc](#sequence_player_get_tempo_acc)
### Description
Gets the tempoAcc (tempo accumulation) of `player`
### Lua Example
`local integerValue = sequence_player_get_tempo_acc(player)`
### Parameters
| Field | Type |
| ----- | ---- |
| player | `integer` |
### Returns
- `integer`
### C Prototype
`u16 sequence_player_get_tempo_acc(u8 player);`
[:arrow_up_small:](#)
## [sequence_player_set_tempo_acc](#sequence_player_set_tempo_acc)
### Description
Sets the `tempoAcc` (tempo accumulation) of `player`. Resets when another sequence is played
### Lua Example
`sequence_player_set_tempo_acc(player, tempoAcc)`
### Parameters
| Field | Type |
| ----- | ---- |
| player | `integer` |
| tempoAcc | `integer` |
### Returns
- None
### C Prototype
`void sequence_player_set_tempo_acc(u8 player, u16 tempoAcc);`
[:arrow_up_small:](#)
## [sequence_player_get_transposition](#sequence_player_get_transposition)
### Description
Gets the transposition (pitch) of `player`
### Lua Example
`local integerValue = sequence_player_get_transposition(player)`
### Parameters
| Field | Type |
| ----- | ---- |
| player | `integer` |
### Returns
- `integer`
### C Prototype
`u16 sequence_player_get_transposition(u8 player);`
[:arrow_up_small:](#)
## [sequence_player_set_transposition](#sequence_player_set_transposition)
### Description
Sets the `transposition` (pitch) of `player`. Resets when another sequence is played
### Lua Example
`sequence_player_set_transposition(player, transposition)`
### Parameters
| Field | Type |
| ----- | ---- |
| player | `integer` |
| transposition | `integer` |
### Returns
- None
### C Prototype
`void sequence_player_set_transposition(u8 player, u16 transposition);`
[:arrow_up_small:](#)
## [sequence_player_get_volume](#sequence_player_get_volume)
### Description
Gets the volume of `player`
### Lua Example
`local numberValue = sequence_player_get_volume(player)`
### Parameters
| Field | Type |
| ----- | ---- |
| player | `integer` |
### Returns
- `number`
### C Prototype
`f32 sequence_player_get_volume(u8 player);`
[:arrow_up_small:](#)
## [sequence_player_get_fade_volume](#sequence_player_get_fade_volume)
### Description
Gets the fade volume of `player`
### Lua Example
`local numberValue = sequence_player_get_fade_volume(player)`
### Parameters
| Field | Type |
| ----- | ---- |
| player | `integer` |
### Returns
- `number`
### C Prototype
`f32 sequence_player_get_fade_volume(u8 player);`
[:arrow_up_small:](#)
## [sequence_player_get_mute_volume_scale](#sequence_player_get_mute_volume_scale)
### Description
Gets the mute volume scale of `player`
### Lua Example
`local numberValue = sequence_player_get_mute_volume_scale(player)`
### Parameters
| Field | Type |
| ----- | ---- |
| player | `integer` |
### Returns
- `number`
### C Prototype
`f32 sequence_player_get_mute_volume_scale(u8 player);`
[:arrow_up_small:](#)
---
# functions from smlua_anim_utils.h
## [get_mario_vanilla_animation](#get_mario_vanilla_animation)
### Description
Gets a vanilla mario Animation with `index`
### Lua Example
`local AnimationValue = get_mario_vanilla_animation(index)`
### Parameters
| Field | Type |
| ----- | ---- |
| index | `integer` |
### Returns
[Animation](structs.md#Animation)
### C Prototype
`struct Animation *get_mario_vanilla_animation(u16 index);`
[:arrow_up_small:](#)
## [smlua_anim_util_set_animation](#smlua_anim_util_set_animation)
### Description
Sets the animation of `obj` to the animation `name` corresponds to
### Lua Example
`smlua_anim_util_set_animation(obj, name)`
### Parameters
| Field | Type |
| ----- | ---- |
| obj | [Object](structs.md#Object) |
| name | `string` |
### Returns
- None
### C Prototype
`void smlua_anim_util_set_animation(struct Object *obj, const char *name);`
[:arrow_up_small:](#)
## [smlua_anim_util_get_current_animation_name](#smlua_anim_util_get_current_animation_name)
### Description
Gets the name of the current animation playing on `obj`, returns `nil` if there's no name
### Lua Example
`local stringValue = smlua_anim_util_get_current_animation_name(obj)`
### Parameters
| Field | Type |
| ----- | ---- |
| obj | [Object](structs.md#Object) |
### Returns
- `string`
### C Prototype
`const char *smlua_anim_util_get_current_animation_name(struct Object *obj);`
[:arrow_up_small:](#)
---
# functions from smlua_audio_utils.h
## [smlua_audio_utils_reset_all](#smlua_audio_utils_reset_all)
### Description
Resets all custom sequences back to vanilla
### Lua Example
`smlua_audio_utils_reset_all()`
### Parameters
- None
### Returns
- None
### C Prototype
`void smlua_audio_utils_reset_all(void);`
[:arrow_up_small:](#)
## [smlua_audio_utils_replace_sequence](#smlua_audio_utils_replace_sequence)
### Description
Replaces the sequence corresponding to `sequenceId` with one called `m64Name`.m64 with `bankId` and `defaultVolume`
### Lua Example
`smlua_audio_utils_replace_sequence(sequenceId, bankId, defaultVolume, m64Name)`
### Parameters
| Field | Type |
| ----- | ---- |
| sequenceId | `integer` |
| bankId | `integer` |
| defaultVolume | `integer` |
| m64Name | `string` |
### Returns
- None
### C Prototype
`void smlua_audio_utils_replace_sequence(u8 sequenceId, u8 bankId, u8 defaultVolume, const char* m64Name);`
[:arrow_up_small:](#)
## [audio_stream_load](#audio_stream_load)
### Description
Loads an `audio` stream by `filename` (with extension)
### Lua Example
`local ModAudioValue = audio_stream_load(filename)`
### Parameters
| Field | Type |
| ----- | ---- |
| filename | `string` |
### Returns
[ModAudio](structs.md#ModAudio)
### C Prototype
`struct ModAudio* audio_stream_load(const char* filename);`
[:arrow_up_small:](#)
## [audio_stream_destroy](#audio_stream_destroy)
### Description
Destroys an `audio` stream
### Lua Example
`audio_stream_destroy(audio)`
### Parameters
| Field | Type |
| ----- | ---- |
| audio | [ModAudio](structs.md#ModAudio) |
### Returns
- None
### C Prototype
`void audio_stream_destroy(struct ModAudio* audio);`
[:arrow_up_small:](#)
## [audio_stream_play](#audio_stream_play)
### Description
Plays an `audio` stream with `volume`. `restart` sets the elapsed time back to 0.
### Lua Example
`audio_stream_play(audio, restart, volume)`
### Parameters
| Field | Type |
| ----- | ---- |
| audio | [ModAudio](structs.md#ModAudio) |
| restart | `boolean` |
| volume | `number` |
### Returns
- None
### C Prototype
`void audio_stream_play(struct ModAudio* audio, bool restart, f32 volume);`
[:arrow_up_small:](#)
## [audio_stream_pause](#audio_stream_pause)
### Description
Pauses an `audio` stream
### Lua Example
`audio_stream_pause(audio)`
### Parameters
| Field | Type |
| ----- | ---- |
| audio | [ModAudio](structs.md#ModAudio) |
### Returns
- None
### C Prototype
`void audio_stream_pause(struct ModAudio* audio);`
[:arrow_up_small:](#)
## [audio_stream_stop](#audio_stream_stop)
### Description
Stops an `audio` stream
### Lua Example
`audio_stream_stop(audio)`
### Parameters
| Field | Type |
| ----- | ---- |
| audio | [ModAudio](structs.md#ModAudio) |
### Returns
- None
### C Prototype
`void audio_stream_stop(struct ModAudio* audio);`
[:arrow_up_small:](#)
## [audio_stream_get_position](#audio_stream_get_position)
### Description
Gets the position of an `audio` stream in seconds
### Lua Example
`local numberValue = audio_stream_get_position(audio)`
### Parameters
| Field | Type |
| ----- | ---- |
| audio | [ModAudio](structs.md#ModAudio) |
### Returns
- `number`
### C Prototype
`f32 audio_stream_get_position(struct ModAudio* audio);`
[:arrow_up_small:](#)
## [audio_stream_set_position](#audio_stream_set_position)
### Description
Sets the position of an `audio` stream in seconds
### Lua Example
`audio_stream_set_position(audio, pos)`
### Parameters
| Field | Type |
| ----- | ---- |
| audio | [ModAudio](structs.md#ModAudio) |
| pos | `number` |
### Returns
- None
### C Prototype
`void audio_stream_set_position(struct ModAudio* audio, f32 pos);`
[:arrow_up_small:](#)
## [audio_stream_get_looping](#audio_stream_get_looping)
### Description
Gets if an `audio` stream is looping or not
### Lua Example
`local booleanValue = audio_stream_get_looping(audio)`
### Parameters
| Field | Type |
| ----- | ---- |
| audio | [ModAudio](structs.md#ModAudio) |
### Returns
- `boolean`
### C Prototype
`bool audio_stream_get_looping(struct ModAudio* audio);`
[:arrow_up_small:](#)
## [audio_stream_set_looping](#audio_stream_set_looping)
### Description
Sets if an `audio` stream is looping or not
### Lua Example
`audio_stream_set_looping(audio, looping)`
### Parameters
| Field | Type |
| ----- | ---- |
| audio | [ModAudio](structs.md#ModAudio) |
| looping | `boolean` |
### Returns
- None
### C Prototype
`void audio_stream_set_looping(struct ModAudio* audio, bool looping);`
[:arrow_up_small:](#)
## [audio_stream_set_loop_points](#audio_stream_set_loop_points)
### Description
Sets an `audio` stream's loop points in samples
### Lua Example
`audio_stream_set_loop_points(audio, loopStart, loopEnd)`
### Parameters
| Field | Type |
| ----- | ---- |
| audio | [ModAudio](structs.md#ModAudio) |
| loopStart | `integer` |
| loopEnd | `integer` |
### Returns
- None
### C Prototype
`void audio_stream_set_loop_points(struct ModAudio* audio, s64 loopStart, s64 loopEnd);`
[:arrow_up_small:](#)
## [audio_stream_get_frequency](#audio_stream_get_frequency)
### Description
Gets the frequency of an `audio` stream
### Lua Example
`local numberValue = audio_stream_get_frequency(audio)`
### Parameters
| Field | Type |
| ----- | ---- |
| audio | [ModAudio](structs.md#ModAudio) |
### Returns
- `number`
### C Prototype
`f32 audio_stream_get_frequency(struct ModAudio* audio);`
[:arrow_up_small:](#)
## [audio_stream_set_frequency](#audio_stream_set_frequency)
### Description
Sets the frequency of an `audio` stream
### Lua Example
`audio_stream_set_frequency(audio, freq)`
### Parameters
| Field | Type |
| ----- | ---- |
| audio | [ModAudio](structs.md#ModAudio) |
| freq | `number` |
### Returns
- None
### C Prototype
`void audio_stream_set_frequency(struct ModAudio* audio, f32 freq);`
[:arrow_up_small:](#)
## [audio_stream_get_volume](#audio_stream_get_volume)
### Description
Gets the volume of an `audio` stream
### Lua Example
`local numberValue = audio_stream_get_volume(audio)`
### Parameters
| Field | Type |
| ----- | ---- |
| audio | [ModAudio](structs.md#ModAudio) |
### Returns
- `number`
### C Prototype
`f32 audio_stream_get_volume(struct ModAudio* audio);`
[:arrow_up_small:](#)
## [audio_stream_set_volume](#audio_stream_set_volume)
### Description
Sets the volume of an `audio` stream
### Lua Example
`audio_stream_set_volume(audio, volume)`
### Parameters
| Field | Type |
| ----- | ---- |
| audio | [ModAudio](structs.md#ModAudio) |
| volume | `number` |
### Returns
- None
### C Prototype
`void audio_stream_set_volume(struct ModAudio* audio, f32 volume);`
[:arrow_up_small:](#)
## [audio_sample_load](#audio_sample_load)
### Description
Loads an `audio` sample
### Lua Example
`local ModAudioValue = audio_sample_load(filename)`
### Parameters
| Field | Type |
| ----- | ---- |
| filename | `string` |
### Returns
[ModAudio](structs.md#ModAudio)
### C Prototype
`struct ModAudio* audio_sample_load(const char* filename);`
[:arrow_up_small:](#)
## [audio_sample_destroy](#audio_sample_destroy)
### Description
Destroys an `audio` sample
### Lua Example
`audio_sample_destroy(audio)`
### Parameters
| Field | Type |
| ----- | ---- |
| audio | [ModAudio](structs.md#ModAudio) |
### Returns
- None
### C Prototype
`void audio_sample_destroy(struct ModAudio* audio);`
[:arrow_up_small:](#)
## [audio_sample_stop](#audio_sample_stop)
### Description
Stops an `audio` sample
### Lua Example
`audio_sample_stop(audio)`
### Parameters
| Field | Type |
| ----- | ---- |
| audio | [ModAudio](structs.md#ModAudio) |
### Returns
- None
### C Prototype
`void audio_sample_stop(struct ModAudio* audio);`
[:arrow_up_small:](#)
## [audio_sample_play](#audio_sample_play)
### Description
Plays an `audio` sample at `position` with `volume`
### Lua Example
`audio_sample_play(audio, position, volume)`
### Parameters
| Field | Type |
| ----- | ---- |
| audio | [ModAudio](structs.md#ModAudio) |
| position | [Vec3f](structs.md#Vec3f) |
| volume | `number` |
### Returns
- None
### C Prototype
`void audio_sample_play(struct ModAudio* audio, Vec3f position, f32 volume);`
[:arrow_up_small:](#)
---
# functions from smlua_camera_utils.h
## [camera_reset_overrides](#camera_reset_overrides)
### Description
Resets camera config overrides
### Lua Example
`camera_reset_overrides()`
### Parameters
- None
### Returns
- None
### C Prototype
`void camera_reset_overrides(void);`
[:arrow_up_small:](#)
## [camera_freeze](#camera_freeze)
### Description
Freezes the camera by not updating it
### Lua Example
`camera_freeze()`
### Parameters
- None
### Returns
- None
### C Prototype
`void camera_freeze(void);`
[:arrow_up_small:](#)
## [camera_unfreeze](#camera_unfreeze)
### Description
Unfreezes the camera
### Lua Example
`camera_unfreeze()`
### Parameters
- None
### Returns
- None
### C Prototype
`void camera_unfreeze(void);`
[:arrow_up_small:](#)
## [camera_is_frozen](#camera_is_frozen)
### Description
Checks if the camera is frozen
### Lua Example
`local booleanValue = camera_is_frozen()`
### Parameters
- None
### Returns
- `boolean`
### C Prototype
`bool camera_is_frozen(void);`
[:arrow_up_small:](#)
## [camera_romhack_allow_only_mods](#camera_romhack_allow_only_mods)
### Description
Sets if only mods are allowed to modify the camera (Enabling prevents the player from modifying the camera through the settings)
### Lua Example
`camera_romhack_allow_only_mods(allow)`
### Parameters
| Field | Type |
| ----- | ---- |
| allow | `integer` |
### Returns
- None
### C Prototype
`void camera_romhack_allow_only_mods(u8 allow);`
[:arrow_up_small:](#)
## [camera_set_romhack_override](#camera_set_romhack_override)
### Description
Sets the romhack camera override status
### Lua Example
`camera_set_romhack_override(rco)`
### Parameters
| Field | Type |
| ----- | ---- |
| rco | [enum RomhackCameraOverride](constants.md#enum-RomhackCameraOverride) |
### Returns
- None
### C Prototype
`void camera_set_romhack_override(enum RomhackCameraOverride rco);`
[:arrow_up_small:](#)
## [camera_romhack_allow_centering](#camera_romhack_allow_centering)
### Description
Sets if the romhack camera should allow centering, triggered with the L button
### Lua Example
`camera_romhack_allow_centering(allow)`
### Parameters
| Field | Type |
| ----- | ---- |
| allow | `integer` |
### Returns
- None
### C Prototype
`void camera_romhack_allow_centering(u8 allow);`
[:arrow_up_small:](#)
## [camera_allow_toxic_gas_camera](#camera_allow_toxic_gas_camera)
### Description
Sets if the romhack camera should fly above poison gas
### Lua Example
`camera_allow_toxic_gas_camera(allow)`
### Parameters
| Field | Type |
| ----- | ---- |
| allow | `integer` |
### Returns
- None
### C Prototype
`void camera_allow_toxic_gas_camera(u8 allow);`
[:arrow_up_small:](#)
## [camera_romhack_allow_dpad_usage](#camera_romhack_allow_dpad_usage)
### Description
Sets if the romhack camera should allow D-Pad movement
### Lua Example
`camera_romhack_allow_dpad_usage(allow)`
### Parameters
| Field | Type |
| ----- | ---- |
| allow | `integer` |
### Returns
- None
### C Prototype
`void camera_romhack_allow_dpad_usage(u8 allow);`
[:arrow_up_small:](#)
## [rom_hack_cam_set_collisions](#rom_hack_cam_set_collisions)
### Description
Toggles collision settings for the ROM hack camera. This enables or disables specific collision behaviors in modded levels
### Lua Example
`rom_hack_cam_set_collisions(enable)`
### Parameters
| Field | Type |
| ----- | ---- |
| enable | `integer` |
### Returns
- None
### C Prototype
`void rom_hack_cam_set_collisions(u8 enable);`
[:arrow_up_small:](#)
## [camera_romhack_set_zoomed_in_dist](#camera_romhack_set_zoomed_in_dist)
### Description
Sets the romhack camera's zoomed in distance (Default: 900)
### Lua Example
`camera_romhack_set_zoomed_in_dist(val)`
### Parameters
| Field | Type |
| ----- | ---- |
| val | `integer` |
### Returns
- None
### C Prototype
`void camera_romhack_set_zoomed_in_dist(u32 val);`
[:arrow_up_small:](#)
## [camera_romhack_set_zoomed_out_dist](#camera_romhack_set_zoomed_out_dist)
### Description
Sets the romhack camera's zoomed out additional distance (Default: 500)
### Lua Example
`camera_romhack_set_zoomed_out_dist(val)`
### Parameters
| Field | Type |
| ----- | ---- |
| val | `integer` |
### Returns
- None
### C Prototype
`void camera_romhack_set_zoomed_out_dist(u32 val);`
[:arrow_up_small:](#)
## [camera_romhack_set_zoomed_in_height](#camera_romhack_set_zoomed_in_height)
### Description
Sets the romhack camera's zoomed in height (Default: 300)
### Lua Example
`camera_romhack_set_zoomed_in_height(val)`
### Parameters
| Field | Type |
| ----- | ---- |
| val | `integer` |
### Returns
- None
### C Prototype
`void camera_romhack_set_zoomed_in_height(u32 val);`
[:arrow_up_small:](#)
## [camera_romhack_set_zoomed_out_height](#camera_romhack_set_zoomed_out_height)
### Description
Sets the romhack camera's zoomed out additional height (Default: 150)
### Lua Example
`camera_romhack_set_zoomed_out_height(val)`
### Parameters
| Field | Type |
| ----- | ---- |
| val | `integer` |
### Returns
- None
### C Prototype
`void camera_romhack_set_zoomed_out_height(u32 val);`
[:arrow_up_small:](#)
## [camera_romhack_get_zoomed_in_dist](#camera_romhack_get_zoomed_in_dist)
### Description
Gets the romhack camera's zoomed in distance
### Lua Example
`local integerValue = camera_romhack_get_zoomed_in_dist()`
### Parameters
- None
### Returns
- `integer`
### C Prototype
`u32 camera_romhack_get_zoomed_in_dist(void);`
[:arrow_up_small:](#)
## [camera_romhack_get_zoomed_out_dist](#camera_romhack_get_zoomed_out_dist)
### Description
Gets the romhack camera's additional zoomed out distance
### Lua Example
`local integerValue = camera_romhack_get_zoomed_out_dist()`
### Parameters
- None
### Returns
- `integer`
### C Prototype
`u32 camera_romhack_get_zoomed_out_dist(void);`
[:arrow_up_small:](#)
## [camera_romhack_get_zoomed_in_height](#camera_romhack_get_zoomed_in_height)
### Description
Gets the romhack camera's zoomed in height
### Lua Example
`local integerValue = camera_romhack_get_zoomed_in_height()`
### Parameters
- None
### Returns
- `integer`
### C Prototype
`u32 camera_romhack_get_zoomed_in_height(void);`
[:arrow_up_small:](#)
## [camera_romhack_get_zoomed_out_height](#camera_romhack_get_zoomed_out_height)
### Description
Gets the romhack camera's additional zoomed out height
### Lua Example
`local integerValue = camera_romhack_get_zoomed_out_height()`
### Parameters
- None
### Returns
- `integer`
### C Prototype
`u32 camera_romhack_get_zoomed_out_height(void);`
[:arrow_up_small:](#)
## [camera_get_romhack_override](#camera_get_romhack_override)
### Description
Gets the current romhack camera override status
### Lua Example
`local enumValue = camera_get_romhack_override()`
### Parameters
- None
### Returns
[enum RomhackCameraOverride](constants.md#enum-RomhackCameraOverride)
### C Prototype
`enum RomhackCameraOverride camera_get_romhack_override(void);`
[:arrow_up_small:](#)
## [camera_romhack_get_allow_centering](#camera_romhack_get_allow_centering)
### Description
Gets if the romhack camera should allow centering
### Lua Example
`local integerValue = camera_romhack_get_allow_centering()`
### Parameters
- None
### Returns
- `integer`
### C Prototype
`u8 camera_romhack_get_allow_centering(void);`
[:arrow_up_small:](#)
## [camera_get_allow_toxic_gas_camera](#camera_get_allow_toxic_gas_camera)
### Description
Gets if the romhack camera should fly above poison gas
### Lua Example
`local integerValue = camera_get_allow_toxic_gas_camera()`
### Parameters
- None
### Returns
- `integer`
### C Prototype
`u8 camera_get_allow_toxic_gas_camera(void);`
[:arrow_up_small:](#)
## [camera_romhack_get_allow_dpad_usage](#camera_romhack_get_allow_dpad_usage)
### Description
Gets if the romhack camera should allow D-Pad movement
### Lua Example
`local integerValue = camera_romhack_get_allow_dpad_usage()`
### Parameters
- None
### Returns
- `integer`
### C Prototype
`u8 camera_romhack_get_allow_dpad_usage(void);`
[:arrow_up_small:](#)
## [camera_romhack_get_collisions](#camera_romhack_get_collisions)
### Description
Gets if the romhack camera has surface collisions
### Lua Example
`local integerValue = camera_romhack_get_collisions()`
### Parameters
- None
### Returns
- `integer`
### C Prototype
`u8 camera_romhack_get_collisions(void);`
[:arrow_up_small:](#)
## [camera_config_is_free_cam_enabled](#camera_config_is_free_cam_enabled)
### Description
Checks if Free Camera is enabled
### Lua Example
`local booleanValue = camera_config_is_free_cam_enabled()`
### Parameters
- None
### Returns
- `boolean`
### C Prototype
`bool camera_config_is_free_cam_enabled(void);`
[:arrow_up_small:](#)
## [camera_config_is_analog_cam_enabled](#camera_config_is_analog_cam_enabled)
### Description
Checks if Analog Camera is enabled
### Lua Example
`local booleanValue = camera_config_is_analog_cam_enabled()`
### Parameters
- None
### Returns
- `boolean`
### C Prototype
`bool camera_config_is_analog_cam_enabled(void);`
[:arrow_up_small:](#)
## [camera_config_is_dpad_enabled](#camera_config_is_dpad_enabled)
### Description
Checks if Freecam DPad Behavior is enabled
### Lua Example
`local booleanValue = camera_config_is_dpad_enabled()`
### Parameters
- None
### Returns
- `boolean`
### C Prototype
`bool camera_config_is_dpad_enabled(void);`
[:arrow_up_small:](#)
## [camera_config_is_collision_enabled](#camera_config_is_collision_enabled)
### Description
Checks if Camera Collision is enabled
### Lua Example
`local booleanValue = camera_config_is_collision_enabled()`
### Parameters
- None
### Returns
- `boolean`
### C Prototype
`bool camera_config_is_collision_enabled(void);`
[:arrow_up_small:](#)
## [camera_config_is_mouse_look_enabled](#camera_config_is_mouse_look_enabled)
### Description
Checks if Mouse Look is enabled
### Lua Example
`local booleanValue = camera_config_is_mouse_look_enabled()`
### Parameters
- None
### Returns
- `boolean`
### C Prototype
`bool camera_config_is_mouse_look_enabled(void);`
[:arrow_up_small:](#)
## [camera_config_is_x_inverted](#camera_config_is_x_inverted)
### Description
Checks if camera X is inverted
### Lua Example
`local booleanValue = camera_config_is_x_inverted()`
### Parameters
- None
### Returns
- `boolean`
### C Prototype
`bool camera_config_is_x_inverted(void);`
[:arrow_up_small:](#)
## [camera_config_is_y_inverted](#camera_config_is_y_inverted)
### Description
Checks if camera Y is inverted
### Lua Example
`local booleanValue = camera_config_is_y_inverted()`
### Parameters
- None
### Returns
- `boolean`
### C Prototype
`bool camera_config_is_y_inverted(void);`
[:arrow_up_small:](#)
## [camera_config_get_x_sensitivity](#camera_config_get_x_sensitivity)
### Description
Gets camera X sensitivity
### Lua Example
`local integerValue = camera_config_get_x_sensitivity()`
### Parameters
- None
### Returns
- `integer`
### C Prototype
`u32 camera_config_get_x_sensitivity(void);`
[:arrow_up_small:](#)
## [camera_config_get_y_sensitivity](#camera_config_get_y_sensitivity)
### Description
Gets camera Y sensitivity
### Lua Example
`local integerValue = camera_config_get_y_sensitivity()`
### Parameters
- None
### Returns
- `integer`
### C Prototype
`u32 camera_config_get_y_sensitivity(void);`
[:arrow_up_small:](#)
## [camera_config_get_aggression](#camera_config_get_aggression)
### Description
Gets camera aggression
### Lua Example
`local integerValue = camera_config_get_aggression()`
### Parameters
- None
### Returns
- `integer`
### C Prototype
`u32 camera_config_get_aggression(void);`
[:arrow_up_small:](#)
## [camera_config_get_pan_level](#camera_config_get_pan_level)
### Description
Gets camera pan level
### Lua Example
`local integerValue = camera_config_get_pan_level()`
### Parameters
- None
### Returns
- `integer`
### C Prototype
`u32 camera_config_get_pan_level(void);`
[:arrow_up_small:](#)
## [camera_config_get_deceleration](#camera_config_get_deceleration)
### Description
Gets camera deceleration
### Lua Example
`local integerValue = camera_config_get_deceleration()`
### Parameters
- None
### Returns
- `integer`
### C Prototype
`u32 camera_config_get_deceleration(void);`
[:arrow_up_small:](#)
## [camera_config_get_centering](#camera_config_get_centering)
### Description
Gets if the L button will center the camera
### Lua Example
`local booleanValue = camera_config_get_centering()`
### Parameters
- None
### Returns
- `boolean`
### C Prototype
`bool camera_config_get_centering(void);`
[:arrow_up_small:](#)
## [camera_config_enable_free_cam](#camera_config_enable_free_cam)
### Description
Overrides if Free Camera is enabled
### Lua Example
`camera_config_enable_free_cam(enable)`
### Parameters
| Field | Type |
| ----- | ---- |
| enable | `boolean` |
### Returns
- None
### C Prototype
`void camera_config_enable_free_cam(bool enable);`
[:arrow_up_small:](#)
## [camera_config_enable_analog_cam](#camera_config_enable_analog_cam)
### Description
Overrides if Analog Camera is enabled
### Lua Example
`camera_config_enable_analog_cam(enable)`
### Parameters
| Field | Type |
| ----- | ---- |
| enable | `boolean` |
### Returns
- None
### C Prototype
`void camera_config_enable_analog_cam(bool enable);`
[:arrow_up_small:](#)
## [camera_config_enable_centering](#camera_config_enable_centering)
### Description
Overrides if the L button will center the camera
### Lua Example
`camera_config_enable_centering(enable)`
### Parameters
| Field | Type |
| ----- | ---- |
| enable | `boolean` |
### Returns
- None
### C Prototype
`void camera_config_enable_centering(bool enable);`
[:arrow_up_small:](#)
## [camera_config_enable_dpad](#camera_config_enable_dpad)
### Description
Overrides if Freecam DPad Behavior is enabled
### Lua Example
`camera_config_enable_dpad(enable)`
### Parameters
| Field | Type |
| ----- | ---- |
| enable | `boolean` |
### Returns
- None
### C Prototype
`void camera_config_enable_dpad(bool enable);`
[:arrow_up_small:](#)
## [camera_config_enable_collisions](#camera_config_enable_collisions)
### Description
Overrides if Camera Collision is enabled
### Lua Example
`camera_config_enable_collisions(enable)`
### Parameters
| Field | Type |
| ----- | ---- |
| enable | `boolean` |
### Returns
- None
### C Prototype
`void camera_config_enable_collisions(bool enable);`
[:arrow_up_small:](#)
## [camera_config_enable_mouse_look](#camera_config_enable_mouse_look)
### Description
Overrides if camera mouse look is enabled
### Lua Example
`camera_config_enable_mouse_look(enable)`
### Parameters
| Field | Type |
| ----- | ---- |
| enable | `boolean` |
### Returns
- None
### C Prototype
`void camera_config_enable_mouse_look(bool enable);`
[:arrow_up_small:](#)
## [camera_config_invert_x](#camera_config_invert_x)
### Description
Overrides if camera X is inverted
### Lua Example
`camera_config_invert_x(invert)`
### Parameters
| Field | Type |
| ----- | ---- |
| invert | `boolean` |
### Returns
- None
### C Prototype
`void camera_config_invert_x(bool invert);`
[:arrow_up_small:](#)
## [camera_config_invert_y](#camera_config_invert_y)
### Description
Overrides if camera Y is inverted
### Lua Example
`camera_config_invert_y(invert)`
### Parameters
| Field | Type |
| ----- | ---- |
| invert | `boolean` |
### Returns
- None
### C Prototype
`void camera_config_invert_y(bool invert);`
[:arrow_up_small:](#)
## [camera_config_set_x_sensitivity](#camera_config_set_x_sensitivity)
### Description
Overrides camera X sensitivity
### Lua Example
`camera_config_set_x_sensitivity(value)`
### Parameters
| Field | Type |
| ----- | ---- |
| value | `integer` |
### Returns
- None
### C Prototype
`void camera_config_set_x_sensitivity(u32 value);`
[:arrow_up_small:](#)
## [camera_config_set_y_sensitivity](#camera_config_set_y_sensitivity)
### Description
Overrides camera Y sensitivity
### Lua Example
`camera_config_set_y_sensitivity(value)`
### Parameters
| Field | Type |
| ----- | ---- |
| value | `integer` |
### Returns
- None
### C Prototype
`void camera_config_set_y_sensitivity(u32 value);`
[:arrow_up_small:](#)
## [camera_config_set_aggression](#camera_config_set_aggression)
### Description
Overrides camera aggression
### Lua Example
`camera_config_set_aggression(value)`
### Parameters
| Field | Type |
| ----- | ---- |
| value | `integer` |
### Returns
- None
### C Prototype
`void camera_config_set_aggression(u32 value);`
[:arrow_up_small:](#)
## [camera_config_set_pan_level](#camera_config_set_pan_level)
### Description
Overrides camera pan level
### Lua Example
`camera_config_set_pan_level(value)`
### Parameters
| Field | Type |
| ----- | ---- |
| value | `integer` |
### Returns
- None
### C Prototype
`void camera_config_set_pan_level(u32 value);`
[:arrow_up_small:](#)
## [camera_config_set_deceleration](#camera_config_set_deceleration)
### Description
Overrides camera deceleration
### Lua Example
`camera_config_set_deceleration(value)`
### Parameters
| Field | Type |
| ----- | ---- |
| value | `integer` |
### Returns
- None
### C Prototype
`void camera_config_set_deceleration(u32 value);`
[:arrow_up_small:](#)
## [camera_get_checking_surfaces](#camera_get_checking_surfaces)
### Description
Checks if the camera should account for surfaces
### Lua Example
`local booleanValue = camera_get_checking_surfaces()`
### Parameters
- None
### Returns
- `boolean`
### C Prototype
`bool camera_get_checking_surfaces(void);`
[:arrow_up_small:](#)
## [camera_set_checking_surfaces](#camera_set_checking_surfaces)
### Description
Sets if the camera should account for surfaces
### Lua Example
`camera_set_checking_surfaces(value)`
### Parameters
| Field | Type |
| ----- | ---- |
| value | `boolean` |
### Returns
- None
### C Prototype
`void camera_set_checking_surfaces(bool value);`
[:arrow_up_small:](#)
---
# functions from smlua_collision_utils.h
## [collision_find_floor](#collision_find_floor)
### Description
Finds a potential floor at the given `x`, `y`, and `z` values
### Lua Example
`local SurfaceValue = collision_find_floor(x, y, z)`
### Parameters
| Field | Type |
| ----- | ---- |
| x | `number` |
| y | `number` |
| z | `number` |
### Returns
[Surface](structs.md#Surface)
### C Prototype
`struct Surface* collision_find_floor(f32 x, f32 y, f32 z);`
[:arrow_up_small:](#)
## [collision_find_ceil](#collision_find_ceil)
### Description
Finds a potential ceiling at the given `x`, `y`, and `z` values
### Lua Example
`local SurfaceValue = collision_find_ceil(x, y, z)`
### Parameters
| Field | Type |
| ----- | ---- |
| x | `number` |
| y | `number` |
| z | `number` |
### Returns
[Surface](structs.md#Surface)
### C Prototype
`struct Surface* collision_find_ceil(f32 x, f32 y, f32 z);`
[:arrow_up_small:](#)
## [get_water_surface_pseudo_floor](#get_water_surface_pseudo_floor)
### Description
Gets the generated water floor surface used when riding a shell
### Lua Example
`local SurfaceValue = get_water_surface_pseudo_floor()`
### Parameters
- None
### Returns
[Surface](structs.md#Surface)
### C Prototype
`struct Surface* get_water_surface_pseudo_floor(void);`
[:arrow_up_small:](#)
## [smlua_collision_util_get](#smlua_collision_util_get)
### Description
Gets the `Collision` with `name`
### Lua Example
`local PointerValue = smlua_collision_util_get(name)`
### Parameters
| Field | Type |
| ----- | ---- |
| name | `string` |
### Returns
- `Pointer` <`Collision`>
### C Prototype
`Collision* smlua_collision_util_get(const char* name);`
[:arrow_up_small:](#)
## [collision_get_temp_wall_collision_data](#collision_get_temp_wall_collision_data)
### Description
Returns a temporary wall collision data pointer
### Lua Example
`local WallCollisionDataValue = collision_get_temp_wall_collision_data()`
### Parameters
- None
### Returns
[WallCollisionData](structs.md#WallCollisionData)
### C Prototype
`struct WallCollisionData* collision_get_temp_wall_collision_data(void);`
[:arrow_up_small:](#)
## [get_surface_from_wcd_index](#get_surface_from_wcd_index)
### Description
Gets the surface corresponding to `index` from `wcd`
### Lua Example
`local SurfaceValue = get_surface_from_wcd_index(wcd, index)`
### Parameters
| Field | Type |
| ----- | ---- |
| wcd | [WallCollisionData](structs.md#WallCollisionData) |
| index | `integer` |
### Returns
[Surface](structs.md#Surface)
### C Prototype
`struct Surface* get_surface_from_wcd_index(struct WallCollisionData* wcd, s8 index);`
[:arrow_up_small:](#)
## [smlua_collision_util_get_current_terrain_collision](#smlua_collision_util_get_current_terrain_collision)
### Description
Gets the current level terrain collision
### Lua Example
`local PointerValue = smlua_collision_util_get_current_terrain_collision()`
### Parameters
- None
### Returns
- `Pointer` <`Collision`>
### C Prototype
`Collision* smlua_collision_util_get_current_terrain_collision(void);`
[:arrow_up_small:](#)
## [smlua_collision_util_get_level_collision](#smlua_collision_util_get_level_collision)
### Description
Gets the `level` terrain collision from `area`
### Lua Example
`local PointerValue = smlua_collision_util_get_level_collision(level, area)`
### Parameters
| Field | Type |
| ----- | ---- |
| level | `integer` |
| area | `integer` |
### Returns
- `Pointer` <`Collision`>
### C Prototype
`Collision *smlua_collision_util_get_level_collision(u32 level, u16 area);`
[:arrow_up_small:](#)
## [smlua_collision_util_find_surface_types](#smlua_collision_util_find_surface_types)
### Description
Gets a table of the surface types from `data`
### Lua Example
`smlua_collision_util_find_surface_types(data)`
### Parameters
| Field | Type |
| ----- | ---- |
| data | `Pointer` <`Collision`> |
### Returns
- None
### C Prototype
`void smlua_collision_util_find_surface_types(Collision* data);`
[:arrow_up_small:](#)
## [surface_is_quicksand](#surface_is_quicksand)
### Description
Checks if the surface is quicksand
### Lua Example
`local booleanValue = surface_is_quicksand(surf)`
### Parameters
| Field | Type |
| ----- | ---- |
| surf | [Surface](structs.md#Surface) |
### Returns
- `boolean`
### C Prototype
`bool surface_is_quicksand(struct Surface* surf);`
[:arrow_up_small:](#)
## [surface_is_not_hard](#surface_is_not_hard)
### Description
Checks if the surface is not a hard surface
### Lua Example
`local booleanValue = surface_is_not_hard(surf)`
### Parameters
| Field | Type |
| ----- | ---- |
| surf | [Surface](structs.md#Surface) |
### Returns
- `boolean`
### C Prototype
`bool surface_is_not_hard(struct Surface* surf);`
[:arrow_up_small:](#)
## [surface_is_painting_warp](#surface_is_painting_warp)
### Description
Checks if the surface is a painting warp
### Lua Example
`local booleanValue = surface_is_painting_warp(surf)`
### Parameters
| Field | Type |
| ----- | ---- |
| surf | [Surface](structs.md#Surface) |
### Returns
- `boolean`
### C Prototype
`bool surface_is_painting_warp(struct Surface* surf);`
[:arrow_up_small:](#)
---
# functions from smlua_deprecated.h
---
# functions from smlua_gfx_utils.h
## [set_override_fov](#set_override_fov)
### Description
Sets the override FOV
### Lua Example
`set_override_fov(fov)`
### Parameters
| Field | Type |
| ----- | ---- |
| fov | `number` |
### Returns
- None
### C Prototype
`void set_override_fov(f32 fov);`
[:arrow_up_small:](#)
## [set_override_near](#set_override_near)
### Description
Sets the override near plane
### Lua Example
`set_override_near(near)`
### Parameters
| Field | Type |
| ----- | ---- |
| near | `number` |
### Returns
- None
### C Prototype
`void set_override_near(f32 near);`
[:arrow_up_small:](#)
## [set_override_far](#set_override_far)
### Description
Sets the override far plane
### Lua Example
`set_override_far(far)`
### Parameters
| Field | Type |
| ----- | ---- |
| far | `number` |
### Returns
- None
### C Prototype
`void set_override_far(f32 far);`
[:arrow_up_small:](#)
## [get_lighting_dir](#get_lighting_dir)
### Description
Gets a value of the global lighting direction
### Lua Example
`local numberValue = get_lighting_dir(index)`
### Parameters
| Field | Type |
| ----- | ---- |
| index | `integer` |
### Returns
- `number`
### C Prototype
`f32 get_lighting_dir(u8 index);`
[:arrow_up_small:](#)
## [set_lighting_dir](#set_lighting_dir)
### Description
Sets a value of the global lighting direction
### Lua Example
`set_lighting_dir(index, value)`
### Parameters
| Field | Type |
| ----- | ---- |
| index | `integer` |
| value | `number` |
### Returns
- None
### C Prototype
`void set_lighting_dir(u8 index, f32 value);`
[:arrow_up_small:](#)
## [get_lighting_color](#get_lighting_color)
### Description
Gets a value of the global lighting color
### Lua Example
`local integerValue = get_lighting_color(index)`
### Parameters
| Field | Type |
| ----- | ---- |
| index | `integer` |
### Returns
- `integer`
### C Prototype
`u8 get_lighting_color(u8 index);`
[:arrow_up_small:](#)
## [get_lighting_color_ambient](#get_lighting_color_ambient)
### Description
Gets a value of the global ambient lighting color
### Lua Example
`local integerValue = get_lighting_color_ambient(index)`
### Parameters
| Field | Type |
| ----- | ---- |
| index | `integer` |
### Returns
- `integer`
### C Prototype
`u8 get_lighting_color_ambient(u8 index);`
[:arrow_up_small:](#)
## [set_lighting_color](#set_lighting_color)
### Description
Sets a value of the global lighting color
### Lua Example
`set_lighting_color(index, value)`
### Parameters
| Field | Type |
| ----- | ---- |
| index | `integer` |
| value | `integer` |
### Returns
- None
### C Prototype
`void set_lighting_color(u8 index, u8 value);`
[:arrow_up_small:](#)
## [set_lighting_color_ambient](#set_lighting_color_ambient)
### Description
Sets a value of the global lighting color (run this after `set_lighting_color` for the ambient color to not be overriden)
### Lua Example
`set_lighting_color_ambient(index, value)`
### Parameters
| Field | Type |
| ----- | ---- |
| index | `integer` |
| value | `integer` |
### Returns
- None
### C Prototype
`void set_lighting_color_ambient(u8 index, u8 value);`
[:arrow_up_small:](#)
## [get_vertex_color](#get_vertex_color)
### Description
Gets a value of the global vertex shading color
### Lua Example
`local integerValue = get_vertex_color(index)`
### Parameters
| Field | Type |
| ----- | ---- |
| index | `integer` |
### Returns
- `integer`
### C Prototype
`u8 get_vertex_color(u8 index);`
[:arrow_up_small:](#)
## [set_vertex_color](#set_vertex_color)
### Description
Sets a value of the global vertex shading color
### Lua Example
`set_vertex_color(index, value)`
### Parameters
| Field | Type |
| ----- | ---- |
| index | `integer` |
| value | `integer` |
### Returns
- None
### C Prototype
`void set_vertex_color(u8 index, u8 value);`
[:arrow_up_small:](#)
## [get_fog_color](#get_fog_color)
### Description
Gets a value of the global fog color
### Lua Example
`local integerValue = get_fog_color(index)`
### Parameters
| Field | Type |
| ----- | ---- |
| index | `integer` |
### Returns
- `integer`
### C Prototype
`u8 get_fog_color(u8 index);`
[:arrow_up_small:](#)
## [set_fog_color](#set_fog_color)
### Description
Sets a value of the global fog color
### Lua Example
`set_fog_color(index, value)`
### Parameters
| Field | Type |
| ----- | ---- |
| index | `integer` |
| value | `integer` |
### Returns
- None
### C Prototype
`void set_fog_color(u8 index, u8 value);`
[:arrow_up_small:](#)
## [get_fog_intensity](#get_fog_intensity)
### Description
Gets the intensity of the fog
### Lua Example
`local numberValue = get_fog_intensity()`
### Parameters
- None
### Returns
- `number`
### C Prototype
`f32 get_fog_intensity(void);`
[:arrow_up_small:](#)
## [set_fog_intensity](#set_fog_intensity)
### Description
Sets the intensity of the fog (this value scales very quickly, 1.0 to 1.1 is a desirable range)
### Lua Example
`set_fog_intensity(intensity)`
### Parameters
| Field | Type |
| ----- | ---- |
| intensity | `number` |
### Returns
- None
### C Prototype
`void set_fog_intensity(f32 intensity);`
[:arrow_up_small:](#)
## [get_skybox](#get_skybox)
### Description
Gets the current skybox
### Lua Example
`local integerValue = get_skybox()`
### Parameters
- None
### Returns
- `integer`
### C Prototype
`s8 get_skybox(void);`
[:arrow_up_small:](#)
## [set_override_skybox](#set_override_skybox)
### Description
Sets the override skybox
### Lua Example
`set_override_skybox(background)`
### Parameters
| Field | Type |
| ----- | ---- |
| background | `integer` |
### Returns
- None
### C Prototype
`void set_override_skybox(s8 background);`
[:arrow_up_small:](#)
## [get_skybox_color](#get_skybox_color)
### Description
Gets a value of the global skybox color
### Lua Example
`local integerValue = get_skybox_color(index)`
### Parameters
| Field | Type |
| ----- | ---- |
| index | `integer` |
### Returns
- `integer`
### C Prototype
`u8 get_skybox_color(u8 index);`
[:arrow_up_small:](#)
## [set_skybox_color](#set_skybox_color)
### Description
Sets a value of the global skybox color
### Lua Example
`set_skybox_color(index, value)`
### Parameters
| Field | Type |
| ----- | ---- |
| index | `integer` |
| value | `integer` |
### Returns
- None
### C Prototype
`void set_skybox_color(u8 index, u8 value);`
[:arrow_up_small:](#)
## [gfx_parse](#gfx_parse)
### Description
Traverses a display list. Takes a Lua function as a parameter, which is called back for each command in the display list with the parameters `cmd` (display list pointer), and `op`
### Lua Example
`gfx_parse(cmd, func)`
### Parameters
| Field | Type |
| ----- | ---- |
| cmd | `Pointer` <`Gfx`> |
| func | `Lua Function` () |
### Returns
- None
### C Prototype
`void gfx_parse(Gfx *cmd, LuaFunction func);`
[:arrow_up_small:](#)
## [gfx_get_op](#gfx_get_op)
### Description
Gets the op of the display list command
### Lua Example
`local integerValue = gfx_get_op(cmd)`
### Parameters
| Field | Type |
| ----- | ---- |
| cmd | `Pointer` <`Gfx`> |
### Returns
- `integer`
### C Prototype
`u32 gfx_get_op(Gfx *cmd);`
[:arrow_up_small:](#)
## [gfx_get_display_list](#gfx_get_display_list)
### Description
Gets the display list from a display list command if it has the op `G_DL`
### Lua Example
`local PointerValue = gfx_get_display_list(cmd)`
### Parameters
| Field | Type |
| ----- | ---- |
| cmd | `Pointer` <`Gfx`> |
### Returns
- `Pointer` <`Gfx`>
### C Prototype
`Gfx *gfx_get_display_list(Gfx *cmd);`
[:arrow_up_small:](#)
## [gfx_get_vertex_buffer](#gfx_get_vertex_buffer)
### Description
Gets the vertex buffer from a display list command if it has the op `G_VTX`
### Lua Example
`local PointerValue = gfx_get_vertex_buffer(cmd)`
### Parameters
| Field | Type |
| ----- | ---- |
| cmd | `Pointer` <`Gfx`> |
### Returns
- `Pointer` <`Vtx`>
### C Prototype
`Vtx *gfx_get_vertex_buffer(Gfx *cmd);`
[:arrow_up_small:](#)
## [gfx_get_vertex_count](#gfx_get_vertex_count)
### Description
Gets the number of vertices from a display list command if it has the op `G_VTX`
### Lua Example
`local integerValue = gfx_get_vertex_count(cmd)`
### Parameters
| Field | Type |
| ----- | ---- |
| cmd | `Pointer` <`Gfx`> |
### Returns
- `integer`
### C Prototype
`u16 gfx_get_vertex_count(Gfx *cmd);`
[:arrow_up_small:](#)
## [gfx_get_texture](#gfx_get_texture)
### Description
Gets the texture from a display list command if it has an image related op
### Lua Example
`local PointerValue = gfx_get_texture(cmd)`
### Parameters
| Field | Type |
| ----- | ---- |
| cmd | `Pointer` <`Gfx`> |
### Returns
- `Pointer` <`Texture`>
### C Prototype
`Texture *gfx_get_texture(Gfx *cmd);`
[:arrow_up_small:](#)
## [gfx_get_name](#gfx_get_name)
### Description
Gets the name of a display list
### Lua Example
`local stringValue = gfx_get_name(gfx)`
### Parameters
| Field | Type |
| ----- | ---- |
| gfx | `Pointer` <`Gfx`> |
### Returns
- `string`
### C Prototype
`const char *gfx_get_name(Gfx *gfx);`
[:arrow_up_small:](#)
## [gfx_get_length](#gfx_get_length)
### Description
Gets the max length of a display list
### Lua Example
`local integerValue = gfx_get_length(gfx)`
### Parameters
| Field | Type |
| ----- | ---- |
| gfx | `Pointer` <`Gfx`> |
### Returns
- `integer`
### C Prototype
`u32 gfx_get_length(Gfx *gfx);`
[:arrow_up_small:](#)
## [gfx_get_command](#gfx_get_command)
### Description
Gets a command of a display list at position `offset`
### Lua Example
`local PointerValue = gfx_get_command(gfx, offset)`
### Parameters
| Field | Type |
| ----- | ---- |
| gfx | `Pointer` <`Gfx`> |
| offset | `integer` |
### Returns
- `Pointer` <`Gfx`>
### C Prototype
`Gfx *gfx_get_command(Gfx *gfx, u32 offset);`
[:arrow_up_small:](#)
## [gfx_get_next_command](#gfx_get_next_command)
### Description
Gets the next command of a given display list pointer. Intended to use in a for loop
### Lua Example
`local PointerValue = gfx_get_next_command(gfx)`
### Parameters
| Field | Type |
| ----- | ---- |
| gfx | `Pointer` <`Gfx`> |
### Returns
- `Pointer` <`Gfx`>
### C Prototype
`Gfx *gfx_get_next_command(Gfx *gfx);`
[:arrow_up_small:](#)
## [gfx_copy](#gfx_copy)
### Description
Copies `length` commands from display list `src` to display list `dest`
### Lua Example
`gfx_copy(dest, src, length)`
### Parameters
| Field | Type |
| ----- | ---- |
| dest | `Pointer` <`Gfx`> |
| src | `Pointer` <`Gfx`> |
| length | `integer` |
### Returns
- None
### C Prototype
`void gfx_copy(Gfx *dest, Gfx *src, u32 length);`
[:arrow_up_small:](#)
## [gfx_create](#gfx_create)
### Description
Creates a new named display list of `length` commands
### Lua Example
`local PointerValue = gfx_create(name, length)`
### Parameters
| Field | Type |
| ----- | ---- |
| name | `string` |
| length | `integer` |
### Returns
- `Pointer` <`Gfx`>
### C Prototype
`Gfx *gfx_create(const char *name, u32 length);`
[:arrow_up_small:](#)
## [gfx_resize](#gfx_resize)
### Description
Resizes a display list created by `gfx_create`
### Lua Example
`gfx_resize(gfx, newLength)`
### Parameters
| Field | Type |
| ----- | ---- |
| gfx | `Pointer` <`Gfx`> |
| newLength | `integer` |
### Returns
- None
### C Prototype
`void gfx_resize(Gfx *gfx, u32 newLength);`
[:arrow_up_small:](#)
## [gfx_delete](#gfx_delete)
### Description
Deletes a display list created by `gfx_create`
### Lua Example
`gfx_delete(gfx)`
### Parameters
| Field | Type |
| ----- | ---- |
| gfx | `Pointer` <`Gfx`> |
### Returns
- None
### C Prototype
`void gfx_delete(Gfx *gfx);`
[:arrow_up_small:](#)
## [gfx_delete_all](#gfx_delete_all)
### Description
Deletes all display lists created by `gfx_create`
### Lua Example
`gfx_delete_all()`
### Parameters
- None
### Returns
- None
### C Prototype
`void gfx_delete_all();`
[:arrow_up_small:](#)
## [vtx_get_name](#vtx_get_name)
### Description
Gets the name of a vertex buffer
### Lua Example
`local stringValue = vtx_get_name(vtx)`
### Parameters
| Field | Type |
| ----- | ---- |
| vtx | `Pointer` <`Vtx`> |
### Returns
- `string`
### C Prototype
`const char *vtx_get_name(Vtx *vtx);`
[:arrow_up_small:](#)
## [vtx_get_count](#vtx_get_count)
### Description
Gets the max count of vertices of a vertex buffer
### Lua Example
`local integerValue = vtx_get_count(vtx)`
### Parameters
| Field | Type |
| ----- | ---- |
| vtx | `Pointer` <`Vtx`> |
### Returns
- `integer`
### C Prototype
`u32 vtx_get_count(Vtx *vtx);`
[:arrow_up_small:](#)
## [vtx_get_vertex](#vtx_get_vertex)
### Description
Gets a vertex of a vertex buffer at position `offset`
### Lua Example
`local PointerValue = vtx_get_vertex(vtx, offset)`
### Parameters
| Field | Type |
| ----- | ---- |
| vtx | `Pointer` <`Vtx`> |
| offset | `integer` |
### Returns
- `Pointer` <`Vtx`>
### C Prototype
`Vtx *vtx_get_vertex(Vtx *vtx, u32 offset);`
[:arrow_up_small:](#)
## [vtx_get_next_vertex](#vtx_get_next_vertex)
### Description
Gets the next vertex of a given vertex pointer. Intended to use in a for loop
### Lua Example
`local PointerValue = vtx_get_next_vertex(vtx)`
### Parameters
| Field | Type |
| ----- | ---- |
| vtx | `Pointer` <`Vtx`> |
### Returns
- `Pointer` <`Vtx`>
### C Prototype
`Vtx *vtx_get_next_vertex(Vtx *vtx);`
[:arrow_up_small:](#)
## [vtx_copy](#vtx_copy)
### Description
Copies `count` vertices from vertex buffer `src` to vertex buffer `dest`
### Lua Example
`vtx_copy(dest, src, count)`
### Parameters
| Field | Type |
| ----- | ---- |
| dest | `Pointer` <`Vtx`> |
| src | `Pointer` <`Vtx`> |
| count | `integer` |
### Returns
- None
### C Prototype
`void vtx_copy(Vtx *dest, Vtx *src, u32 count);`
[:arrow_up_small:](#)
## [vtx_create](#vtx_create)
### Description
Creates a new named vertex buffer of `count` vertices
### Lua Example
`local PointerValue = vtx_create(name, count)`
### Parameters
| Field | Type |
| ----- | ---- |
| name | `string` |
| count | `integer` |
### Returns
- `Pointer` <`Vtx`>
### C Prototype
`Vtx *vtx_create(const char *name, u32 count);`
[:arrow_up_small:](#)
## [vtx_resize](#vtx_resize)
### Description
Resizes a vertex buffer created by `vtx_create`
### Lua Example
`vtx_resize(vtx, newCount)`
### Parameters
| Field | Type |
| ----- | ---- |
| vtx | `Pointer` <`Vtx`> |
| newCount | `integer` |
### Returns
- None
### C Prototype
`void vtx_resize(Vtx *vtx, u32 newCount);`
[:arrow_up_small:](#)
## [vtx_delete](#vtx_delete)
### Description
Deletes a vertex buffer created by `vtx_create`
### Lua Example
`vtx_delete(vtx)`
### Parameters
| Field | Type |
| ----- | ---- |
| vtx | `Pointer` <`Vtx`> |
### Returns
- None
### C Prototype
`void vtx_delete(Vtx *vtx);`
[:arrow_up_small:](#)
## [vtx_delete_all](#vtx_delete_all)
### Description
Deletes all vertex buffers created by `vtx_create`
### Lua Example
`vtx_delete_all()`
### Parameters
- None
### Returns
- None
### C Prototype
`void vtx_delete_all();`
[:arrow_up_small:](#)
---
# functions from smlua_level_utils.h
## [smlua_level_util_change_area](#smlua_level_util_change_area)
### Description
Instantly changes the current area to `areaIndex`
### Lua Example
`smlua_level_util_change_area(areaIndex)`
### Parameters
| Field | Type |
| ----- | ---- |
| areaIndex | `integer` |
### Returns
- None
### C Prototype
`void smlua_level_util_change_area(s32 areaIndex);`
[:arrow_up_small:](#)
## [smlua_level_util_get_info](#smlua_level_util_get_info)
### Description
Gets information on a custom level from `levelNum`
### Lua Example
`local CustomLevelInfoValue = smlua_level_util_get_info(levelNum)`
### Parameters
| Field | Type |
| ----- | ---- |
| levelNum | `integer` |
### Returns
[CustomLevelInfo](structs.md#CustomLevelInfo)
### C Prototype
`struct CustomLevelInfo* smlua_level_util_get_info(s16 levelNum);`
[:arrow_up_small:](#)
## [smlua_level_util_get_info_from_short_name](#smlua_level_util_get_info_from_short_name)
### Description
Gets information on a custom level from `shortName`
### Lua Example
`local CustomLevelInfoValue = smlua_level_util_get_info_from_short_name(shortName)`
### Parameters
| Field | Type |
| ----- | ---- |
| shortName | `string` |
### Returns
[CustomLevelInfo](structs.md#CustomLevelInfo)
### C Prototype
`struct CustomLevelInfo* smlua_level_util_get_info_from_short_name(const char* shortName);`
[:arrow_up_small:](#)
## [smlua_level_util_get_info_from_course_num](#smlua_level_util_get_info_from_course_num)
### Description
Gets information on a custom level from `courseNum`
### Lua Example
`local CustomLevelInfoValue = smlua_level_util_get_info_from_course_num(courseNum)`
### Parameters
| Field | Type |
| ----- | ---- |
| courseNum | `integer` |
### Returns
[CustomLevelInfo](structs.md#CustomLevelInfo)
### C Prototype
`struct CustomLevelInfo* smlua_level_util_get_info_from_course_num(u8 courseNum);`
[:arrow_up_small:](#)
## [level_register](#level_register)
### Description
Registers a fully custom level. Level ID begins at 50
### Lua Example
`local integerValue = level_register(scriptEntryName, courseNum, fullName, shortName, acousticReach, echoLevel1, echoLevel2, echoLevel3)`
### Parameters
| Field | Type |
| ----- | ---- |
| scriptEntryName | `string` |
| courseNum | `integer` |
| fullName | `string` |
| shortName | `string` |
| acousticReach | `integer` |
| echoLevel1 | `integer` |
| echoLevel2 | `integer` |
| echoLevel3 | `integer` |
### Returns
- `integer`
### C Prototype
`s16 level_register(const char* scriptEntryName, s16 courseNum, const char* fullName, const char* shortName, u32 acousticReach, u32 echoLevel1, u32 echoLevel2, u32 echoLevel3);`
[:arrow_up_small:](#)
## [level_is_vanilla_level](#level_is_vanilla_level)
### Description
Checks if `levelNum` is a vanilla level
### Lua Example
`local booleanValue = level_is_vanilla_level(levelNum)`
### Parameters
| Field | Type |
| ----- | ---- |
| levelNum | `integer` |
### Returns
- `boolean`
### C Prototype
`bool level_is_vanilla_level(s16 levelNum);`
[:arrow_up_small:](#)
## [warp_to_warpnode](#warp_to_warpnode)
### Description
Warps to `aWarpId` of `aArea` in `aLevel` during `aAct`
### Lua Example
`local booleanValue = warp_to_warpnode(aLevel, aArea, aAct, aWarpId)`
### Parameters
| Field | Type |
| ----- | ---- |
| aLevel | `integer` |
| aArea | `integer` |
| aAct | `integer` |
| aWarpId | `integer` |
### Returns
- `boolean`
### C Prototype
`bool warp_to_warpnode(s32 aLevel, s32 aArea, s32 aAct, s32 aWarpId);`
[:arrow_up_small:](#)
## [warp_to_level](#warp_to_level)
### Description
Warps to `aArea` of `aLevel` in `aAct`
### Lua Example
`local booleanValue = warp_to_level(aLevel, aArea, aAct)`
### Parameters
| Field | Type |
| ----- | ---- |
| aLevel | `integer` |
| aArea | `integer` |
| aAct | `integer` |
### Returns
- `boolean`
### C Prototype
`bool warp_to_level(s32 aLevel, s32 aArea, s32 aAct);`
[:arrow_up_small:](#)
## [warp_restart_level](#warp_restart_level)
### Description
Restarts the current level
### Lua Example
`local booleanValue = warp_restart_level()`
### Parameters
- None
### Returns
- `boolean`
### C Prototype
`bool warp_restart_level(void);`
[:arrow_up_small:](#)
## [warp_to_start_level](#warp_to_start_level)
### Description
Warps to the start level (Castle Grounds by default)
### Lua Example
`local booleanValue = warp_to_start_level()`
### Parameters
- None
### Returns
- `boolean`
### C Prototype
`bool warp_to_start_level(void);`
[:arrow_up_small:](#)
## [warp_exit_level](#warp_exit_level)
### Description
Exits the current level after `aDelay`
### Lua Example
`local booleanValue = warp_exit_level(aDelay)`
### Parameters
| Field | Type |
| ----- | ---- |
| aDelay | `integer` |
### Returns
- `boolean`
### C Prototype
`bool warp_exit_level(s32 aDelay);`
[:arrow_up_small:](#)
## [warp_to_castle](#warp_to_castle)
### Description
Warps back to the castle from `aLevel`
### Lua Example
`local booleanValue = warp_to_castle(aLevel)`
### Parameters
| Field | Type |
| ----- | ---- |
| aLevel | `integer` |
### Returns
- `boolean`
### C Prototype
`bool warp_to_castle(s32 aLevel);`
[:arrow_up_small:](#)
---
# functions from smlua_misc_utils.h
## [get_network_area_timer](#get_network_area_timer)
### Description
Gets the current area's networked timer
### Lua Example
`local integerValue = get_network_area_timer()`
### Parameters
- None
### Returns
- `integer`
### C Prototype
`u32 get_network_area_timer(void);`
[:arrow_up_small:](#)
## [get_area_update_counter](#get_area_update_counter)
### Description
Gets the area update counter incremented when objects are updated
### Lua Example
`local integerValue = get_area_update_counter()`
### Parameters
- None
### Returns
- `integer`
### C Prototype
`u16 get_area_update_counter(void);`
[:arrow_up_small:](#)
## [get_temp_s32_pointer](#get_temp_s32_pointer)
### Description
Returns a temporary signed 32-bit integer pointer with its value set to `initialValue`
### Lua Example
`local PointerValue = get_temp_s32_pointer(initialValue)`
### Parameters
| Field | Type |
| ----- | ---- |
| initialValue | `integer` |
### Returns
- `Pointer` <`integer`>
### C Prototype
`s32* get_temp_s32_pointer(s32 initialValue);`
[:arrow_up_small:](#)
## [deref_s32_pointer](#deref_s32_pointer)
### Description
Gets the signed 32-bit integer value from `pointer`
### Lua Example
`local integerValue = deref_s32_pointer(pointer)`
### Parameters
| Field | Type |
| ----- | ---- |
| pointer | `Pointer` <`integer`> |
### Returns
- `integer`
### C Prototype
`s32 deref_s32_pointer(s32* pointer);`
[:arrow_up_small:](#)
## [djui_popup_create_global](#djui_popup_create_global)
### Description
Creates a DJUI popup that is broadcasted to every client
### Lua Example
`djui_popup_create_global(message, lines)`
### Parameters
| Field | Type |
| ----- | ---- |
| message | `string` |
| lines | `integer` |
### Returns
- None
### C Prototype
`void djui_popup_create_global(const char* message, int lines);`
[:arrow_up_small:](#)
## [djui_is_popup_disabled](#djui_is_popup_disabled)
### Description
Returns if popups are disabled
### Lua Example
`local booleanValue = djui_is_popup_disabled()`
### Parameters
- None
### Returns
- `boolean`
### C Prototype
`bool djui_is_popup_disabled(void);`
[:arrow_up_small:](#)
## [djui_set_popup_disabled_override](#djui_set_popup_disabled_override)
### Description
Sets if popups are disabled
### Lua Example
`djui_set_popup_disabled_override(value)`
### Parameters
| Field | Type |
| ----- | ---- |
| value | `boolean` |
### Returns
- None
### C Prototype
`void djui_set_popup_disabled_override(bool value);`
[:arrow_up_small:](#)
## [djui_reset_popup_disabled_override](#djui_reset_popup_disabled_override)
### Description
Resets if popups are disabled
### Lua Example
`djui_reset_popup_disabled_override()`
### Parameters
- None
### Returns
- None
### C Prototype
`void djui_reset_popup_disabled_override(void);`
[:arrow_up_small:](#)
## [djui_is_playerlist_open](#djui_is_playerlist_open)
### Description
Checks if the DJUI playerlist is open
### Lua Example
`local booleanValue = djui_is_playerlist_open()`
### Parameters
- None
### Returns
- `boolean`
### C Prototype
`bool djui_is_playerlist_open(void);`
[:arrow_up_small:](#)
## [djui_attempting_to_open_playerlist](#djui_attempting_to_open_playerlist)
### Description
Checks if the DJUI playerlist is attempting to be opened
### Lua Example
`local booleanValue = djui_attempting_to_open_playerlist()`
### Parameters
- None
### Returns
- `boolean`
### C Prototype
`bool djui_attempting_to_open_playerlist(void);`
[:arrow_up_small:](#)
## [djui_get_playerlist_page_index](#djui_get_playerlist_page_index)
### Description
Gets the DJUI playerlist's page index
### Lua Example
`local integerValue = djui_get_playerlist_page_index()`
### Parameters
- None
### Returns
- `integer`
### C Prototype
`u8 djui_get_playerlist_page_index(void);`
[:arrow_up_small:](#)
## [djui_menu_get_font](#djui_menu_get_font)
### Description
Gets the DJUI menu font
### Lua Example
`local enumValue = djui_menu_get_font()`
### Parameters
- None
### Returns
[enum DjuiFontType](constants.md#enum-DjuiFontType)
### C Prototype
`enum DjuiFontType djui_menu_get_font(void);`
[:arrow_up_small:](#)
## [djui_menu_get_theme](#djui_menu_get_theme)
### Description
Gets the DJUI menu theme
### Lua Example
`local DjuiThemeValue = djui_menu_get_theme()`
### Parameters
- None
### Returns
[DjuiTheme](structs.md#DjuiTheme)
### C Prototype
`struct DjuiTheme* djui_menu_get_theme(void);`
[:arrow_up_small:](#)
## [djui_is_playerlist_ping_visible](#djui_is_playerlist_ping_visible)
### Description
Checks if the DJUI playerlist ping icon is visible
### Lua Example
`local booleanValue = djui_is_playerlist_ping_visible()`
### Parameters
- None
### Returns
- `boolean`
### C Prototype
`bool djui_is_playerlist_ping_visible(void);`
[:arrow_up_small:](#)
## [get_dialog_box_state](#get_dialog_box_state)
### Description
Gets the current state of the dialog box
### Lua Example
`local integerValue = get_dialog_box_state()`
### Parameters
- None
### Returns
- `integer`
### C Prototype
`s8 get_dialog_box_state(void);`
[:arrow_up_small:](#)
## [get_dialog_id](#get_dialog_id)
### Description
Gets the current dialog box ID
### Lua Example
`local integerValue = get_dialog_id()`
### Parameters
- None
### Returns
- `integer`
### C Prototype
`s32 get_dialog_id(void);`
[:arrow_up_small:](#)
## [get_last_star_or_key](#get_last_star_or_key)
### Description
Gets if the last objective collected was a star (0) or a key (1)
### Lua Example
`local integerValue = get_last_star_or_key()`
### Parameters
- None
### Returns
- `integer`
### C Prototype
`u8 get_last_star_or_key(void);`
[:arrow_up_small:](#)
## [set_last_star_or_key](#set_last_star_or_key)
### Description
Sets if the last objective collected was a star (0) or a key (1)
### Lua Example
`set_last_star_or_key(value)`
### Parameters
| Field | Type |
| ----- | ---- |
| value | `integer` |
### Returns
- None
### C Prototype
`void set_last_star_or_key(u8 value);`
[:arrow_up_small:](#)
## [get_last_completed_course_num](#get_last_completed_course_num)
### Description
Gets the last course a star or key was collected in
### Lua Example
`local integerValue = get_last_completed_course_num()`
### Parameters
- None
### Returns
- `integer`
### C Prototype
`u8 get_last_completed_course_num(void);`
[:arrow_up_small:](#)
## [set_last_completed_course_num](#set_last_completed_course_num)
### Description
Sets the last course a star or key was collected in
### Lua Example
`set_last_completed_course_num(courseNum)`
### Parameters
| Field | Type |
| ----- | ---- |
| courseNum | `integer` |
### Returns
- None
### C Prototype
`void set_last_completed_course_num(u8 courseNum);`
[:arrow_up_small:](#)
## [get_last_completed_star_num](#get_last_completed_star_num)
### Description
Gets the last collected star's number (1-7)
### Lua Example
`local integerValue = get_last_completed_star_num()`
### Parameters
- None
### Returns
- `integer`
### C Prototype
`u8 get_last_completed_star_num(void);`
[:arrow_up_small:](#)
## [set_last_completed_star_num](#set_last_completed_star_num)
### Description
Sets the last collected star's number (1-7)
### Lua Example
`set_last_completed_star_num(starNum)`
### Parameters
| Field | Type |
| ----- | ---- |
| starNum | `integer` |
### Returns
- None
### C Prototype
`void set_last_completed_star_num(u8 starNum);`
[:arrow_up_small:](#)
## [get_got_file_coin_hi_score](#get_got_file_coin_hi_score)
### Description
Checks if the save file's coin "HI SCORE" was obtained with the last star or key collection
### Lua Example
`local booleanValue = get_got_file_coin_hi_score()`
### Parameters
- None
### Returns
- `boolean`
### C Prototype
`bool get_got_file_coin_hi_score(void);`
[:arrow_up_small:](#)
## [set_got_file_coin_hi_score](#set_got_file_coin_hi_score)
### Description
Sets if the save file's coin "HI SCORE" was obtained with the last star or key collection
### Lua Example
`set_got_file_coin_hi_score(value)`
### Parameters
| Field | Type |
| ----- | ---- |
| value | `boolean` |
### Returns
- None
### C Prototype
`void set_got_file_coin_hi_score(bool value);`
[:arrow_up_small:](#)
## [get_save_file_modified](#get_save_file_modified)
### Description
Checks if the save file has been modified without saving
### Lua Example
`local booleanValue = get_save_file_modified()`
### Parameters
- None
### Returns
- `boolean`
### C Prototype
`bool get_save_file_modified(void);`
[:arrow_up_small:](#)
## [set_save_file_modified](#set_save_file_modified)
### Description
Sets if the save file has been modified without saving
### Lua Example
`set_save_file_modified(value)`
### Parameters
| Field | Type |
| ----- | ---- |
| value | `boolean` |
### Returns
- None
### C Prototype
`void set_save_file_modified(bool value);`
[:arrow_up_small:](#)
## [hud_hide](#hud_hide)
### Description
Hides the HUD
### Lua Example
`hud_hide()`
### Parameters
- None
### Returns
- None
### C Prototype
`void hud_hide(void);`
[:arrow_up_small:](#)
## [hud_show](#hud_show)
### Description
Shows the HUD
### Lua Example
`hud_show()`
### Parameters
- None
### Returns
- None
### C Prototype
`void hud_show(void);`
[:arrow_up_small:](#)
## [hud_is_hidden](#hud_is_hidden)
### Description
Checks if the HUD is hidden
### Lua Example
`local booleanValue = hud_is_hidden()`
### Parameters
- None
### Returns
- `boolean`
### C Prototype
`bool hud_is_hidden(void);`
[:arrow_up_small:](#)
## [hud_get_value](#hud_get_value)
### Description
Gets a HUD display value
### Lua Example
`local integerValue = hud_get_value(type)`
### Parameters
| Field | Type |
| ----- | ---- |
| type | [enum HudDisplayValue](constants.md#enum-HudDisplayValue) |
### Returns
- `integer`
### C Prototype
`s32 hud_get_value(enum HudDisplayValue type);`
[:arrow_up_small:](#)
## [hud_set_value](#hud_set_value)
### Description
Sets a HUD display value
### Lua Example
`hud_set_value(type, value)`
### Parameters
| Field | Type |
| ----- | ---- |
| type | [enum HudDisplayValue](constants.md#enum-HudDisplayValue) |
| value | `integer` |
### Returns
- None
### C Prototype
`void hud_set_value(enum HudDisplayValue type, s32 value);`
[:arrow_up_small:](#)
## [hud_render_power_meter](#hud_render_power_meter)
### Description
Renders a power meter on the HUD
### Lua Example
`hud_render_power_meter(health, x, y, width, height)`
### Parameters
| Field | Type |
| ----- | ---- |
| health | `integer` |
| x | `number` |
| y | `number` |
| width | `number` |
| height | `number` |
### Returns
- None
### C Prototype
`void hud_render_power_meter(s32 health, f32 x, f32 y, f32 width, f32 height);`
[:arrow_up_small:](#)
## [hud_render_power_meter_interpolated](#hud_render_power_meter_interpolated)
### Description
Renders an interpolated power meter on the HUD
### Lua Example
`hud_render_power_meter_interpolated(health, prevX, prevY, prevWidth, prevHeight, x, y, width, height)`
### Parameters
| Field | Type |
| ----- | ---- |
| health | `integer` |
| prevX | `number` |
| prevY | `number` |
| prevWidth | `number` |
| prevHeight | `number` |
| x | `number` |
| y | `number` |
| width | `number` |
| height | `number` |
### Returns
- None
### C Prototype
`void hud_render_power_meter_interpolated(s32 health, f32 prevX, f32 prevY, f32 prevWidth, f32 prevHeight, f32 x, f32 y, f32 width, f32 height);`
[:arrow_up_small:](#)
## [hud_get_flash](#hud_get_flash)
### Description
Gets if the star counter on the HUD should flash
### Lua Example
`local integerValue = hud_get_flash()`
### Parameters
- None
### Returns
- `integer`
### C Prototype
`s8 hud_get_flash(void);`
[:arrow_up_small:](#)
## [hud_set_flash](#hud_set_flash)
### Description
Sets if the star counter on the HUD should flash
### Lua Example
`hud_set_flash(value)`
### Parameters
| Field | Type |
| ----- | ---- |
| value | `integer` |
### Returns
- None
### C Prototype
`void hud_set_flash(s8 value);`
[:arrow_up_small:](#)
## [act_select_hud_hide](#act_select_hud_hide)
### Description
Hides part of the Act Select HUD
### Lua Example
`act_select_hud_hide(part)`
### Parameters
| Field | Type |
| ----- | ---- |
| part | [enum ActSelectHudPart](constants.md#enum-ActSelectHudPart) |
### Returns
- None
### C Prototype
`void act_select_hud_hide(enum ActSelectHudPart part);`
[:arrow_up_small:](#)
## [act_select_hud_show](#act_select_hud_show)
### Description
Shows part of the Act Select HUD
### Lua Example
`act_select_hud_show(part)`
### Parameters
| Field | Type |
| ----- | ---- |
| part | [enum ActSelectHudPart](constants.md#enum-ActSelectHudPart) |
### Returns
- None
### C Prototype
`void act_select_hud_show(enum ActSelectHudPart part);`
[:arrow_up_small:](#)
## [act_select_hud_is_hidden](#act_select_hud_is_hidden)
### Description
Checks if part of the Act Select HUD is hidden
### Lua Example
`local booleanValue = act_select_hud_is_hidden(part)`
### Parameters
| Field | Type |
| ----- | ---- |
| part | [enum ActSelectHudPart](constants.md#enum-ActSelectHudPart) |
### Returns
- `boolean`
### C Prototype
`bool act_select_hud_is_hidden(enum ActSelectHudPart part);`
[:arrow_up_small:](#)
## [is_game_paused](#is_game_paused)
### Description
Checks if the game is paused
### Lua Example
`local booleanValue = is_game_paused()`
### Parameters
- None
### Returns
- `boolean`
### C Prototype
`bool is_game_paused(void);`
[:arrow_up_small:](#)
## [is_transition_playing](#is_transition_playing)
### Description
Checks if a screen transition is playing
### Lua Example
`local booleanValue = is_transition_playing()`
### Parameters
- None
### Returns
- `boolean`
### C Prototype
`bool is_transition_playing(void);`
[:arrow_up_small:](#)
## [allocate_mario_action](#allocate_mario_action)
### Description
Allocates an action ID with bitwise flags
### Lua Example
`local integerValue = allocate_mario_action(actFlags)`
### Parameters
| Field | Type |
| ----- | ---- |
| actFlags | `integer` |
### Returns
- `integer`
### C Prototype
`u32 allocate_mario_action(u32 actFlags);`
[:arrow_up_small:](#)
## [get_hand_foot_pos_x](#get_hand_foot_pos_x)
### Description
Gets the X coordinate of Mario's hand (0-1) or foot (2-3) but it is important to note that the positions are not updated off-screen
### Lua Example
`local numberValue = get_hand_foot_pos_x(m, index)`
### Parameters
| Field | Type |
| ----- | ---- |
| m | [MarioState](structs.md#MarioState) |
| index | `integer` |
### Returns
- `number`
### C Prototype
`f32 get_hand_foot_pos_x(struct MarioState* m, u8 index);`
[:arrow_up_small:](#)
## [get_hand_foot_pos_y](#get_hand_foot_pos_y)
### Description
Gets the Y coordinate of Mario's hand (0-1) or foot (2-3) but It is important to note that the positions are not updated off-screen
### Lua Example
`local numberValue = get_hand_foot_pos_y(m, index)`
### Parameters
| Field | Type |
| ----- | ---- |
| m | [MarioState](structs.md#MarioState) |
| index | `integer` |
### Returns
- `number`
### C Prototype
`f32 get_hand_foot_pos_y(struct MarioState* m, u8 index);`
[:arrow_up_small:](#)
## [get_hand_foot_pos_z](#get_hand_foot_pos_z)
### Description
Gets the Z coordinate of Mario's hand (0-1) or foot (2-3) but it is important to note that the positions are not updated off-screen
### Lua Example
`local numberValue = get_hand_foot_pos_z(m, index)`
### Parameters
| Field | Type |
| ----- | ---- |
| m | [MarioState](structs.md#MarioState) |
| index | `integer` |
### Returns
- `number`
### C Prototype
`f32 get_hand_foot_pos_z(struct MarioState* m, u8 index);`
[:arrow_up_small:](#)
## [get_mario_anim_part_pos](#get_mario_anim_part_pos)
### Description
Retrieves the animated part position associated to `animPart` from the MarioState `m` and stores it into `pos`. Returns `true` on success or `false` on failure
### Lua Example
`local booleanValue = get_mario_anim_part_pos(m, animPart, pos)`
### Parameters
| Field | Type |
| ----- | ---- |
| m | [MarioState](structs.md#MarioState) |
| animPart | `integer` |
| pos | [Vec3f](structs.md#Vec3f) |
### Returns
- `boolean`
### C Prototype
`bool get_mario_anim_part_pos(struct MarioState *m, u32 animPart, OUT Vec3f pos);`
[:arrow_up_small:](#)
## [get_current_save_file_num](#get_current_save_file_num)
### Description
Gets the current save file number (1-indexed)
### Lua Example
`local integerValue = get_current_save_file_num()`
### Parameters
- None
### Returns
- `integer`
### C Prototype
`s16 get_current_save_file_num(void);`
[:arrow_up_small:](#)
## [save_file_get_using_backup_slot](#save_file_get_using_backup_slot)
### Description
Checks if the save file is using its backup slot
### Lua Example
`local booleanValue = save_file_get_using_backup_slot()`
### Parameters
- None
### Returns
- `boolean`
### C Prototype
`bool save_file_get_using_backup_slot(void);`
[:arrow_up_small:](#)
## [save_file_set_using_backup_slot](#save_file_set_using_backup_slot)
### Description
Sets if the save file should use its backup slot
### Lua Example
`save_file_set_using_backup_slot(usingBackupSlot)`
### Parameters
| Field | Type |
| ----- | ---- |
| usingBackupSlot | `boolean` |
### Returns
- None
### C Prototype
`void save_file_set_using_backup_slot(bool usingBackupSlot);`
[:arrow_up_small:](#)
## [movtexqc_register](#movtexqc_register)
### Description
Registers a custom moving texture entry (used for vanilla water boxes)
### Lua Example
`movtexqc_register(name, level, area, type)`
### Parameters
| Field | Type |
| ----- | ---- |
| name | `string` |
| level | `integer` |
| area | `integer` |
| type | `integer` |
### Returns
- None
### C Prototype
`void movtexqc_register(const char* name, s16 level, s16 area, s16 type);`
[:arrow_up_small:](#)
## [get_water_level](#get_water_level)
### Description
Gets the water level in an area corresponding to `index` (0-indexed)
### Lua Example
`local integerValue = get_water_level(index)`
### Parameters
| Field | Type |
| ----- | ---- |
| index | `integer` |
### Returns
- `integer`
### C Prototype
`s16 get_water_level(u8 index);`
[:arrow_up_small:](#)
## [set_water_level](#set_water_level)
### Description
Sets the water level in an area corresponding to `index` (0-indexed)
### Lua Example
`set_water_level(index, height, sync)`
### Parameters
| Field | Type |
| ----- | ---- |
| index | `integer` |
| height | `integer` |
| sync | `boolean` |
### Returns
- None
### C Prototype
`void set_water_level(u8 index, s16 height, bool sync);`
[:arrow_up_small:](#)
## [course_is_main_course](#course_is_main_course)
### Description
Checks if a course is a main course and not the castle or secret levels
### Lua Example
`local booleanValue = course_is_main_course(courseNum)`
### Parameters
| Field | Type |
| ----- | ---- |
| courseNum | `integer` |
### Returns
- `boolean`
### C Prototype
`bool course_is_main_course(u16 courseNum);`
[:arrow_up_small:](#)
## [get_ttc_speed_setting](#get_ttc_speed_setting)
### Description
Gets TTC's speed setting
### Lua Example
`local integerValue = get_ttc_speed_setting()`
### Parameters
- None
### Returns
- `integer`
### C Prototype
`s16 get_ttc_speed_setting(void);`
[:arrow_up_small:](#)
## [set_ttc_speed_setting](#set_ttc_speed_setting)
### Description
Sets TTC's speed setting (TTC_SPEED_*)
### Lua Example
`set_ttc_speed_setting(speed)`
### Parameters
| Field | Type |
| ----- | ---- |
| speed | `integer` |
### Returns
- None
### C Prototype
`void set_ttc_speed_setting(s16 speed);`
[:arrow_up_small:](#)
## [get_time](#get_time)
### Description
Gets the Unix Timestamp
### Lua Example
`local integerValue = get_time()`
### Parameters
- None
### Returns
- `integer`
### C Prototype
`s64 get_time(void);`
[:arrow_up_small:](#)
## [get_date_and_time](#get_date_and_time)
### Description
Gets the system clock's date and time
### Lua Example
`local DateTimeValue = get_date_and_time()`
### Parameters
- None
### Returns
[DateTime](structs.md#DateTime)
### C Prototype
`struct DateTime* get_date_and_time(void);`
[:arrow_up_small:](#)
## [get_envfx](#get_envfx)
### Description
Gets the non overridden environment effect (e.g. snow)
### Lua Example
`local integerValue = get_envfx()`
### Parameters
- None
### Returns
- `integer`
### C Prototype
`u16 get_envfx(void);`
[:arrow_up_small:](#)
## [set_override_envfx](#set_override_envfx)
### Description
Sets the override environment effect (e.g. snow)
### Lua Example
`set_override_envfx(envfx)`
### Parameters
| Field | Type |
| ----- | ---- |
| envfx | `integer` |
### Returns
- None
### C Prototype
`void set_override_envfx(s32 envfx);`
[:arrow_up_small:](#)
## [get_global_timer](#get_global_timer)
### Description
Gets the global timer that has been ticking at 30 frames per second since game boot
### Lua Example
`local integerValue = get_global_timer()`
### Parameters
- None
### Returns
- `integer`
### C Prototype
`u32 get_global_timer(void);`
[:arrow_up_small:](#)
## [get_dialog_response](#get_dialog_response)
### Description
Gets the choice selected inside of a dialog box (0-1)
### Lua Example
`local integerValue = get_dialog_response()`
### Parameters
- None
### Returns
- `integer`
### C Prototype
`s32 get_dialog_response(void);`
[:arrow_up_small:](#)
## [get_local_discord_id](#get_local_discord_id)
### Description
Gets the local discord ID if it isn't disabled, otherwise "0" is returned
### Lua Example
`local stringValue = get_local_discord_id()`
### Parameters
- None
### Returns
- `string`
### C Prototype
`const char* get_local_discord_id(void);`
[:arrow_up_small:](#)
## [get_coopnet_id](#get_coopnet_id)
### Description
Gets the CoopNet ID of a player with `localIndex` if CoopNet is being used and the player is connected, otherwise "-1" is returned
### Lua Example
`local stringValue = get_coopnet_id(localIndex)`
### Parameters
| Field | Type |
| ----- | ---- |
| localIndex | `integer` |
### Returns
- `string`
### C Prototype
`const char* get_coopnet_id(s8 localIndex);`
[:arrow_up_small:](#)
## [get_volume_master](#get_volume_master)
### Description
Gets the master volume level
### Lua Example
`local numberValue = get_volume_master()`
### Parameters
- None
### Returns
- `number`
### C Prototype
`f32 get_volume_master(void);`
[:arrow_up_small:](#)
## [get_volume_level](#get_volume_level)
### Description
Gets the volume level of music
### Lua Example
`local numberValue = get_volume_level()`
### Parameters
- None
### Returns
- `number`
### C Prototype
`f32 get_volume_level(void);`
[:arrow_up_small:](#)
## [get_volume_sfx](#get_volume_sfx)
### Description
Gets the volume level of sound effects
### Lua Example
`local numberValue = get_volume_sfx()`
### Parameters
- None
### Returns
- `number`
### C Prototype
`f32 get_volume_sfx(void);`
[:arrow_up_small:](#)
## [get_volume_env](#get_volume_env)
### Description
Gets the volume level of environment sounds effects
### Lua Example
`local numberValue = get_volume_env()`
### Parameters
- None
### Returns
- `number`
### C Prototype
`f32 get_volume_env(void);`
[:arrow_up_small:](#)
## [set_volume_master](#set_volume_master)
### Description
Sets the master volume level
### Lua Example
`set_volume_master(volume)`
### Parameters
| Field | Type |
| ----- | ---- |
| volume | `number` |
### Returns
- None
### C Prototype
`void set_volume_master(f32 volume);`
[:arrow_up_small:](#)
## [set_volume_level](#set_volume_level)
### Description
Sets the volume level of music
### Lua Example
`set_volume_level(volume)`
### Parameters
| Field | Type |
| ----- | ---- |
| volume | `number` |
### Returns
- None
### C Prototype
`void set_volume_level(f32 volume);`
[:arrow_up_small:](#)
## [set_volume_sfx](#set_volume_sfx)
### Description
Sets the volume level of sound effects
### Lua Example
`set_volume_sfx(volume)`
### Parameters
| Field | Type |
| ----- | ---- |
| volume | `number` |
### Returns
- None
### C Prototype
`void set_volume_sfx(f32 volume);`
[:arrow_up_small:](#)
## [set_volume_env](#set_volume_env)
### Description
Sets the volume level of environment sounds effects
### Lua Example
`set_volume_env(volume)`
### Parameters
| Field | Type |
| ----- | ---- |
| volume | `number` |
### Returns
- None
### C Prototype
`void set_volume_env(f32 volume);`
[:arrow_up_small:](#)
## [get_environment_region](#get_environment_region)
### Description
Gets an environment region (gas/water boxes) height value
### Lua Example
`local integerValue = get_environment_region(index)`
### Parameters
| Field | Type |
| ----- | ---- |
| index | `integer` |
### Returns
- `integer`
### C Prototype
`s16 get_environment_region(u8 index);`
[:arrow_up_small:](#)
## [set_environment_region](#set_environment_region)
### Description
Sets an environment region (gas/water boxes) height value
### Lua Example
`set_environment_region(index, value)`
### Parameters
| Field | Type |
| ----- | ---- |
| index | `integer` |
| value | `integer` |
### Returns
- None
### C Prototype
`void set_environment_region(u8 index, s16 value);`
[:arrow_up_small:](#)
## [mod_file_exists](#mod_file_exists)
### Description
Checks if a file exists inside of a mod
### Lua Example
`local booleanValue = mod_file_exists(filename)`
### Parameters
| Field | Type |
| ----- | ---- |
| filename | `string` |
### Returns
- `boolean`
### C Prototype
`bool mod_file_exists(const char* filename);`
[:arrow_up_small:](#)
## [get_active_mod](#get_active_mod)
### Description
Gets the mod currently being processed
### Lua Example
`local ModValue = get_active_mod()`
### Parameters
- None
### Returns
[Mod](structs.md#Mod)
### C Prototype
`struct Mod* get_active_mod(void);`
[:arrow_up_small:](#)
## [set_window_title](#set_window_title)
### Description
Sets the window title to a custom title
### Lua Example
`set_window_title(title)`
### Parameters
| Field | Type |
| ----- | ---- |
| title | `string` |
### Returns
- None
### C Prototype
`void set_window_title(const char* title);`
[:arrow_up_small:](#)
## [reset_window_title](#reset_window_title)
### Description
Resets the window title
### Lua Example
`reset_window_title()`
### Parameters
- None
### Returns
- None
### C Prototype
`void reset_window_title(void);`
[:arrow_up_small:](#)
## [get_os_name](#get_os_name)
### Description
Gets the name of the operating system the game is running on
### Lua Example
`local stringValue = get_os_name()`
### Parameters
- None
### Returns
- `string`
### C Prototype
`const char* get_os_name(void);`
[:arrow_up_small:](#)
## [geo_get_current_root](#geo_get_current_root)
### Description
Gets the current GraphNodeRoot
### Lua Example
`local GraphNodeRootValue = geo_get_current_root()`
### Parameters
- None
### Returns
[GraphNodeRoot](structs.md#GraphNodeRoot)
### C Prototype
`struct GraphNodeRoot* geo_get_current_root(void);`
[:arrow_up_small:](#)
## [geo_get_current_master_list](#geo_get_current_master_list)
### Description
Gets the current GraphNodeMasterList
### Lua Example
`local GraphNodeMasterListValue = geo_get_current_master_list()`
### Parameters
- None
### Returns
[GraphNodeMasterList](structs.md#GraphNodeMasterList)
### C Prototype
`struct GraphNodeMasterList* geo_get_current_master_list(void);`
[:arrow_up_small:](#)
## [geo_get_current_perspective](#geo_get_current_perspective)
### Description
Gets the current GraphNodePerspective
### Lua Example
`local GraphNodePerspectiveValue = geo_get_current_perspective()`
### Parameters
- None
### Returns
[GraphNodePerspective](structs.md#GraphNodePerspective)
### C Prototype
`struct GraphNodePerspective* geo_get_current_perspective(void);`
[:arrow_up_small:](#)
## [geo_get_current_camera](#geo_get_current_camera)
### Description
Gets the current GraphNodeCamera
### Lua Example
`local GraphNodeCameraValue = geo_get_current_camera()`
### Parameters
- None
### Returns
[GraphNodeCamera](structs.md#GraphNodeCamera)
### C Prototype
`struct GraphNodeCamera* geo_get_current_camera(void);`
[:arrow_up_small:](#)
## [geo_get_current_held_object](#geo_get_current_held_object)
### Description
Gets the current GraphNodeHeldObject
### Lua Example
`local GraphNodeHeldObjectValue = geo_get_current_held_object()`
### Parameters
- None
### Returns
[GraphNodeHeldObject](structs.md#GraphNodeHeldObject)
### C Prototype
`struct GraphNodeHeldObject* geo_get_current_held_object(void);`
[:arrow_up_small:](#)
## [texture_to_lua_table](#texture_to_lua_table)
### Description
Converts a texture's pixels to a Lua table. Returns nil if failed. Otherwise, returns a table as a pure memory buffer. Supports rgba16 and rgba32 textures
### Lua Example
`texture_to_lua_table(tex)`
### Parameters
| Field | Type |
| ----- | ---- |
| tex | `Pointer` <`Texture`> |
### Returns
- None
### C Prototype
`void texture_to_lua_table(const Texture *tex);`
[:arrow_up_small:](#)
## [get_texture_name](#get_texture_name)
### Description
Gets the name of the provided texture pointer `tex`
### Lua Example
`local stringValue = get_texture_name(tex)`
### Parameters
| Field | Type |
| ----- | ---- |
| tex | `Pointer` <`Texture`> |
### Returns
- `string`
### C Prototype
`const char *get_texture_name(const Texture *tex);`
[:arrow_up_small:](#)
---
# functions from smlua_model_utils.h
## [smlua_model_util_get_id](#smlua_model_util_get_id)
### Description
Gets the extended model ID for the `name` of a `GeoLayout`
### Lua Example
`local enumValue = smlua_model_util_get_id(name)`
### Parameters
| Field | Type |
| ----- | ---- |
| name | `string` |
### Returns
[enum ModelExtendedId](constants.md#enum-ModelExtendedId)
### C Prototype
`enum ModelExtendedId smlua_model_util_get_id(const char* name);`
[:arrow_up_small:](#)
---
# functions from smlua_obj_utils.h
## [spawn_sync_object](#spawn_sync_object)
### Description
Spawns a synchronized object at `x`, `y`, and `z` as a child object of the local Mario with his rotation. You can change the fields of the object in `objSetupFunction`
### Lua Example
`local ObjectValue = spawn_sync_object(behaviorId, modelId, x, y, z, objSetupFunction)`
### Parameters
| Field | Type |
| ----- | ---- |
| behaviorId | [enum BehaviorId](constants.md#enum-BehaviorId) |
| modelId | [enum ModelExtendedId](constants.md#enum-ModelExtendedId) |
| x | `number` |
| y | `number` |
| z | `number` |
| objSetupFunction | `Lua Function` () |
### Returns
[Object](structs.md#Object)
### C Prototype
`struct Object* spawn_sync_object(enum BehaviorId behaviorId, enum ModelExtendedId modelId, f32 x, f32 y, f32 z, LuaFunction objSetupFunction);`
[:arrow_up_small:](#)
## [spawn_non_sync_object](#spawn_non_sync_object)
### Description
Spawns a non-synchronized object at `x`, `y`, and `z` as a child object of the local Mario with his rotation. You can change the fields of the object in `objSetupFunction`
### Lua Example
`local ObjectValue = spawn_non_sync_object(behaviorId, modelId, x, y, z, objSetupFunction)`
### Parameters
| Field | Type |
| ----- | ---- |
| behaviorId | [enum BehaviorId](constants.md#enum-BehaviorId) |
| modelId | [enum ModelExtendedId](constants.md#enum-ModelExtendedId) |
| x | `number` |
| y | `number` |
| z | `number` |
| objSetupFunction | `Lua Function` () |
### Returns
[Object](structs.md#Object)
### C Prototype
`struct Object* spawn_non_sync_object(enum BehaviorId behaviorId, enum ModelExtendedId modelId, f32 x, f32 y, f32 z, LuaFunction objSetupFunction);`
[:arrow_up_small:](#)
## [obj_has_behavior_id](#obj_has_behavior_id)
### Description
Checks if an object has `behaviorId`
### Lua Example
`local integerValue = obj_has_behavior_id(o, behaviorId)`
### Parameters
| Field | Type |
| ----- | ---- |
| o | [Object](structs.md#Object) |
| behaviorId | [enum BehaviorId](constants.md#enum-BehaviorId) |
### Returns
- `integer`
### C Prototype
`s32 obj_has_behavior_id(struct Object *o, enum BehaviorId behaviorId);`
[:arrow_up_small:](#)
## [obj_has_model_extended](#obj_has_model_extended)
### Description
Checks if an object's model is equal to `modelId`
### Lua Example
`local integerValue = obj_has_model_extended(o, modelId)`
### Parameters
| Field | Type |
| ----- | ---- |
| o | [Object](structs.md#Object) |
| modelId | [enum ModelExtendedId](constants.md#enum-ModelExtendedId) |
### Returns
- `integer`
### C Prototype
`s32 obj_has_model_extended(struct Object *o, enum ModelExtendedId modelId);`
[:arrow_up_small:](#)
## [obj_get_model_id_extended](#obj_get_model_id_extended)
### Description
Returns an object's extended model id
### Lua Example
`local enumValue = obj_get_model_id_extended(o)`
### Parameters
| Field | Type |
| ----- | ---- |
| o | [Object](structs.md#Object) |
### Returns
[enum ModelExtendedId](constants.md#enum-ModelExtendedId)
### C Prototype
`enum ModelExtendedId obj_get_model_id_extended(struct Object *o);`
[:arrow_up_small:](#)
## [obj_set_model_extended](#obj_set_model_extended)
### Description
Sets an object's model to `modelId`
### Lua Example
`obj_set_model_extended(o, modelId)`
### Parameters
| Field | Type |
| ----- | ---- |
| o | [Object](structs.md#Object) |
| modelId | [enum ModelExtendedId](constants.md#enum-ModelExtendedId) |
### Returns
- None
### C Prototype
`void obj_set_model_extended(struct Object *o, enum ModelExtendedId modelId);`
[:arrow_up_small:](#)
## [get_trajectory](#get_trajectory)
### Description
Gets a trajectory by `name`
### Lua Example
`local PointerValue = get_trajectory(name)`
### Parameters
| Field | Type |
| ----- | ---- |
| name | `string` |
### Returns
- `Pointer` <`Trajectory`>
### C Prototype
`Trajectory* get_trajectory(const char* name);`
[:arrow_up_small:](#)
## [geo_get_current_object](#geo_get_current_object)
### Description
When used in a geo function, retrieve the current processed object
### Lua Example
`local ObjectValue = geo_get_current_object()`
### Parameters
- None
### Returns
[Object](structs.md#Object)
### C Prototype
`struct Object *geo_get_current_object(void);`
[:arrow_up_small:](#)
## [get_current_object](#get_current_object)
### Description
Gets the object currently being processed
### Lua Example
`local ObjectValue = get_current_object()`
### Parameters
- None
### Returns
[Object](structs.md#Object)
### C Prototype
`struct Object *get_current_object(void);`
[:arrow_up_small:](#)
## [get_dialog_object](#get_dialog_object)
### Description
Gets the NPC object Mario is talking to
### Lua Example
`local ObjectValue = get_dialog_object()`
### Parameters
- None
### Returns
[Object](structs.md#Object)
### C Prototype
`struct Object *get_dialog_object(void);`
[:arrow_up_small:](#)
## [get_cutscene_focus](#get_cutscene_focus)
### Description
Gets the cutscene focus object
### Lua Example
`local ObjectValue = get_cutscene_focus()`
### Parameters
- None
### Returns
[Object](structs.md#Object)
### C Prototype
`struct Object *get_cutscene_focus(void);`
[:arrow_up_small:](#)
## [get_secondary_camera_focus](#get_secondary_camera_focus)
### Description
Gets the secondary camera focus object
### Lua Example
`local ObjectValue = get_secondary_camera_focus()`
### Parameters
- None
### Returns
[Object](structs.md#Object)
### C Prototype
`struct Object *get_secondary_camera_focus(void);`
[:arrow_up_small:](#)
## [set_cutscene_focus](#set_cutscene_focus)
### Description
Sets the cutscene focus object
### Lua Example
`set_cutscene_focus(o)`
### Parameters
| Field | Type |
| ----- | ---- |
| o | [Object](structs.md#Object) |
### Returns
- None
### C Prototype
`void set_cutscene_focus(struct Object *o);`
[:arrow_up_small:](#)
## [set_secondary_camera_focus](#set_secondary_camera_focus)
### Description
Sets the secondary camera focus object
### Lua Example
`set_secondary_camera_focus(o)`
### Parameters
| Field | Type |
| ----- | ---- |
| o | [Object](structs.md#Object) |
### Returns
- None
### C Prototype
`void set_secondary_camera_focus(struct Object *o);`
[:arrow_up_small:](#)
## [obj_get_first](#obj_get_first)
### Description
Gets the first object in an object list
### Lua Example
`local ObjectValue = obj_get_first(objList)`
### Parameters
| Field | Type |
| ----- | ---- |
| objList | [enum ObjectList](constants.md#enum-ObjectList) |
### Returns
[Object](structs.md#Object)
### C Prototype
`struct Object *obj_get_first(enum ObjectList objList);`
[:arrow_up_small:](#)
## [obj_get_first_with_behavior_id](#obj_get_first_with_behavior_id)
### Description
Gets the first object loaded with `behaviorId`
### Lua Example
`local ObjectValue = obj_get_first_with_behavior_id(behaviorId)`
### Parameters
| Field | Type |
| ----- | ---- |
| behaviorId | [enum BehaviorId](constants.md#enum-BehaviorId) |
### Returns
[Object](structs.md#Object)
### C Prototype
`struct Object *obj_get_first_with_behavior_id(enum BehaviorId behaviorId);`
[:arrow_up_small:](#)
## [obj_get_first_with_behavior_id_and_field_s32](#obj_get_first_with_behavior_id_and_field_s32)
### Description
Gets the first object loaded with `behaviorId` and object signed 32-bit integer field (look in `object_fields.h` to get the index of a field)
### Lua Example
`local ObjectValue = obj_get_first_with_behavior_id_and_field_s32(behaviorId, fieldIndex, value)`
### Parameters
| Field | Type |
| ----- | ---- |
| behaviorId | [enum BehaviorId](constants.md#enum-BehaviorId) |
| fieldIndex | `integer` |
| value | `integer` |
### Returns
[Object](structs.md#Object)
### C Prototype
`struct Object *obj_get_first_with_behavior_id_and_field_s32(enum BehaviorId behaviorId, s32 fieldIndex, s32 value);`
[:arrow_up_small:](#)
## [obj_get_first_with_behavior_id_and_field_f32](#obj_get_first_with_behavior_id_and_field_f32)
### Description
Gets the first object loaded with `behaviorId` and object float field (look in `object_fields.h` to get the index of a field)
### Lua Example
`local ObjectValue = obj_get_first_with_behavior_id_and_field_f32(behaviorId, fieldIndex, value)`
### Parameters
| Field | Type |
| ----- | ---- |
| behaviorId | [enum BehaviorId](constants.md#enum-BehaviorId) |
| fieldIndex | `integer` |
| value | `number` |
### Returns
[Object](structs.md#Object)
### C Prototype
`struct Object *obj_get_first_with_behavior_id_and_field_f32(enum BehaviorId behaviorId, s32 fieldIndex, f32 value);`
[:arrow_up_small:](#)
## [obj_get_next](#obj_get_next)
### Description
Gets the next object in an object list
### Lua Example
`local ObjectValue = obj_get_next(o)`
### Parameters
| Field | Type |
| ----- | ---- |
| o | [Object](structs.md#Object) |
### Returns
[Object](structs.md#Object)
### C Prototype
`struct Object *obj_get_next(struct Object *o);`
[:arrow_up_small:](#)
## [obj_get_next_with_same_behavior_id](#obj_get_next_with_same_behavior_id)
### Description
Gets the next object loaded with the same behavior ID
### Lua Example
`local ObjectValue = obj_get_next_with_same_behavior_id(o)`
### Parameters
| Field | Type |
| ----- | ---- |
| o | [Object](structs.md#Object) |
### Returns
[Object](structs.md#Object)
### C Prototype
`struct Object *obj_get_next_with_same_behavior_id(struct Object *o);`
[:arrow_up_small:](#)
## [obj_get_next_with_same_behavior_id_and_field_s32](#obj_get_next_with_same_behavior_id_and_field_s32)
### Description
Gets the next object loaded with the same behavior ID and object signed 32-bit integer field (look in `object_fields.h` to get the index of a field)
### Lua Example
`local ObjectValue = obj_get_next_with_same_behavior_id_and_field_s32(o, fieldIndex, value)`
### Parameters
| Field | Type |
| ----- | ---- |
| o | [Object](structs.md#Object) |
| fieldIndex | `integer` |
| value | `integer` |
### Returns
[Object](structs.md#Object)
### C Prototype
`struct Object *obj_get_next_with_same_behavior_id_and_field_s32(struct Object *o, s32 fieldIndex, s32 value);`
[:arrow_up_small:](#)
## [obj_get_next_with_same_behavior_id_and_field_f32](#obj_get_next_with_same_behavior_id_and_field_f32)
### Description
Gets the next object loaded with the same behavior ID and object float field (look in `object_fields.h` to get the index of a field)
### Lua Example
`local ObjectValue = obj_get_next_with_same_behavior_id_and_field_f32(o, fieldIndex, value)`
### Parameters
| Field | Type |
| ----- | ---- |
| o | [Object](structs.md#Object) |
| fieldIndex | `integer` |
| value | `number` |
### Returns
[Object](structs.md#Object)
### C Prototype
`struct Object *obj_get_next_with_same_behavior_id_and_field_f32(struct Object *o, s32 fieldIndex, f32 value);`
[:arrow_up_small:](#)
## [obj_get_nearest_object_with_behavior_id](#obj_get_nearest_object_with_behavior_id)
### Description
Gets the nearest object with `behaviorId` to `o`
### Lua Example
`local ObjectValue = obj_get_nearest_object_with_behavior_id(o, behaviorId)`
### Parameters
| Field | Type |
| ----- | ---- |
| o | [Object](structs.md#Object) |
| behaviorId | [enum BehaviorId](constants.md#enum-BehaviorId) |
### Returns
[Object](structs.md#Object)
### C Prototype
`struct Object *obj_get_nearest_object_with_behavior_id(struct Object *o, enum BehaviorId behaviorId);`
[:arrow_up_small:](#)
## [obj_count_objects_with_behavior_id](#obj_count_objects_with_behavior_id)
### Description
Counts every object with `behaviorId`
### Lua Example
`local integerValue = obj_count_objects_with_behavior_id(behaviorId)`
### Parameters
| Field | Type |
| ----- | ---- |
| behaviorId | [enum BehaviorId](constants.md#enum-BehaviorId) |
### Returns
- `integer`
### C Prototype
`s32 obj_count_objects_with_behavior_id(enum BehaviorId behaviorId);`
[:arrow_up_small:](#)
## [obj_get_collided_object](#obj_get_collided_object)
### Description
Gets the corresponding collided object to an index from `o`
### Lua Example
`local ObjectValue = obj_get_collided_object(o, index)`
### Parameters
| Field | Type |
| ----- | ---- |
| o | [Object](structs.md#Object) |
| index | `integer` |
### Returns
[Object](structs.md#Object)
### C Prototype
`struct Object *obj_get_collided_object(struct Object *o, s16 index);`
[:arrow_up_small:](#)
## [obj_get_field_u32](#obj_get_field_u32)
### Description
Gets the unsigned 32-bit integer value from the field corresponding to `fieldIndex`
### Lua Example
`local integerValue = obj_get_field_u32(o, fieldIndex)`
### Parameters
| Field | Type |
| ----- | ---- |
| o | [Object](structs.md#Object) |
| fieldIndex | `integer` |
### Returns
- `integer`
### C Prototype
`u32 obj_get_field_u32(struct Object *o, s32 fieldIndex);`
[:arrow_up_small:](#)
## [obj_get_field_s32](#obj_get_field_s32)
### Description
Gets the signed 32-bit integer value from the field corresponding to `fieldIndex`
### Lua Example
`local integerValue = obj_get_field_s32(o, fieldIndex)`
### Parameters
| Field | Type |
| ----- | ---- |
| o | [Object](structs.md#Object) |
| fieldIndex | `integer` |
### Returns
- `integer`
### C Prototype
`s32 obj_get_field_s32(struct Object *o, s32 fieldIndex);`
[:arrow_up_small:](#)
## [obj_get_field_f32](#obj_get_field_f32)
### Description
Sets the float value from the field corresponding to `fieldIndex`
### Lua Example
`local numberValue = obj_get_field_f32(o, fieldIndex)`
### Parameters
| Field | Type |
| ----- | ---- |
| o | [Object](structs.md#Object) |
| fieldIndex | `integer` |
### Returns
- `number`
### C Prototype
`f32 obj_get_field_f32(struct Object *o, s32 fieldIndex);`
[:arrow_up_small:](#)
## [obj_get_field_s16](#obj_get_field_s16)
### Description
Gets the signed 32-bit integer value from the sub field corresponding to `fieldSubIndex` from the field corresponding to `fieldIndex`
### Lua Example
`local integerValue = obj_get_field_s16(o, fieldIndex, fieldSubIndex)`
### Parameters
| Field | Type |
| ----- | ---- |
| o | [Object](structs.md#Object) |
| fieldIndex | `integer` |
| fieldSubIndex | `integer` |
### Returns
- `integer`
### C Prototype
`s16 obj_get_field_s16(struct Object *o, s32 fieldIndex, s32 fieldSubIndex);`
[:arrow_up_small:](#)
## [obj_set_field_u32](#obj_set_field_u32)
### Description
Sets the unsigned 32-bit integer value from the field corresponding to `fieldIndex`
### Lua Example
`obj_set_field_u32(o, fieldIndex, value)`
### Parameters
| Field | Type |
| ----- | ---- |
| o | [Object](structs.md#Object) |
| fieldIndex | `integer` |
| value | `integer` |
### Returns
- None
### C Prototype
`void obj_set_field_u32(struct Object *o, s32 fieldIndex, u32 value);`
[:arrow_up_small:](#)
## [obj_set_field_s32](#obj_set_field_s32)
### Description
Sets the signed 32-bit integer value from the field corresponding to `fieldIndex`
### Lua Example
`obj_set_field_s32(o, fieldIndex, value)`
### Parameters
| Field | Type |
| ----- | ---- |
| o | [Object](structs.md#Object) |
| fieldIndex | `integer` |
| value | `integer` |
### Returns
- None
### C Prototype
`void obj_set_field_s32(struct Object *o, s32 fieldIndex, s32 value);`
[:arrow_up_small:](#)
## [obj_set_field_f32](#obj_set_field_f32)
### Description
Sets the float value from the field corresponding to `fieldIndex`
### Lua Example
`obj_set_field_f32(o, fieldIndex, value)`
### Parameters
| Field | Type |
| ----- | ---- |
| o | [Object](structs.md#Object) |
| fieldIndex | `integer` |
| value | `number` |
### Returns
- None
### C Prototype
`void obj_set_field_f32(struct Object *o, s32 fieldIndex, f32 value);`
[:arrow_up_small:](#)
## [obj_set_field_s16](#obj_set_field_s16)
### Description
Sets the signed 32-bit integer value from the sub field corresponding to `fieldSubIndex` from the field corresponding to `fieldIndex`
### Lua Example
`obj_set_field_s16(o, fieldIndex, fieldSubIndex, value)`
### Parameters
| Field | Type |
| ----- | ---- |
| o | [Object](structs.md#Object) |
| fieldIndex | `integer` |
| fieldSubIndex | `integer` |
| value | `integer` |
### Returns
- None
### C Prototype
`void obj_set_field_s16(struct Object *o, s32 fieldIndex, s32 fieldSubIndex, s16 value);`
[:arrow_up_small:](#)
## [obj_get_temp_spawn_particles_info](#obj_get_temp_spawn_particles_info)
### Description
Returns a temporary particle spawn info pointer with its model loaded in from `modelId`
### Lua Example
`local SpawnParticlesInfoValue = obj_get_temp_spawn_particles_info(modelId)`
### Parameters
| Field | Type |
| ----- | ---- |
| modelId | [enum ModelExtendedId](constants.md#enum-ModelExtendedId) |
### Returns
[SpawnParticlesInfo](structs.md#SpawnParticlesInfo)
### C Prototype
`struct SpawnParticlesInfo* obj_get_temp_spawn_particles_info(enum ModelExtendedId modelId);`
[:arrow_up_small:](#)
## [get_temp_object_hitbox](#get_temp_object_hitbox)
### Description
Returns a temporary object hitbox pointer
### Lua Example
`local ObjectHitboxValue = get_temp_object_hitbox()`
### Parameters
- None
### Returns
[ObjectHitbox](structs.md#ObjectHitbox)
### C Prototype
`struct ObjectHitbox* get_temp_object_hitbox(void);`
[:arrow_up_small:](#)
## [obj_is_attackable](#obj_is_attackable)
### Description
Checks if `o` is attackable
### Lua Example
`local booleanValue = obj_is_attackable(o)`
### Parameters
| Field | Type |
| ----- | ---- |
| o | [Object](structs.md#Object) |
### Returns
- `boolean`
### C Prototype
`bool obj_is_attackable(struct Object *o);`
[:arrow_up_small:](#)
## [obj_is_breakable_object](#obj_is_breakable_object)
### Description
Checks if `o` is breakable
### Lua Example
`local booleanValue = obj_is_breakable_object(o)`
### Parameters
| Field | Type |
| ----- | ---- |
| o | [Object](structs.md#Object) |
### Returns
- `boolean`
### C Prototype
`bool obj_is_breakable_object(struct Object *o);`
[:arrow_up_small:](#)
## [obj_is_bully](#obj_is_bully)
### Description
Checks if `o` is a Bully
### Lua Example
`local booleanValue = obj_is_bully(o)`
### Parameters
| Field | Type |
| ----- | ---- |
| o | [Object](structs.md#Object) |
### Returns
- `boolean`
### C Prototype
`bool obj_is_bully(struct Object *o);`
[:arrow_up_small:](#)
## [obj_is_coin](#obj_is_coin)
### Description
Checks if `o` is a coin
### Lua Example
`local booleanValue = obj_is_coin(o)`
### Parameters
| Field | Type |
| ----- | ---- |
| o | [Object](structs.md#Object) |
### Returns
- `boolean`
### C Prototype
`bool obj_is_coin(struct Object *o);`
[:arrow_up_small:](#)
## [obj_is_exclamation_box](#obj_is_exclamation_box)
### Description
Checks if `o` is an exclamation box
### Lua Example
`local booleanValue = obj_is_exclamation_box(o)`
### Parameters
| Field | Type |
| ----- | ---- |
| o | [Object](structs.md#Object) |
### Returns
- `boolean`
### C Prototype
`bool obj_is_exclamation_box(struct Object *o);`
[:arrow_up_small:](#)
## [obj_is_grabbable](#obj_is_grabbable)
### Description
Checks if `o` is grabbable
### Lua Example
`local booleanValue = obj_is_grabbable(o)`
### Parameters
| Field | Type |
| ----- | ---- |
| o | [Object](structs.md#Object) |
### Returns
- `boolean`
### C Prototype
`bool obj_is_grabbable(struct Object *o);`
[:arrow_up_small:](#)
## [obj_is_mushroom_1up](#obj_is_mushroom_1up)
### Description
Checks if `o` is a 1-Up Mushroom
### Lua Example
`local booleanValue = obj_is_mushroom_1up(o)`
### Parameters
| Field | Type |
| ----- | ---- |
| o | [Object](structs.md#Object) |
### Returns
- `boolean`
### C Prototype
`bool obj_is_mushroom_1up(struct Object *o);`
[:arrow_up_small:](#)
## [obj_is_secret](#obj_is_secret)
### Description
Checks if `o` is a secret
### Lua Example
`local booleanValue = obj_is_secret(o)`
### Parameters
| Field | Type |
| ----- | ---- |
| o | [Object](structs.md#Object) |
### Returns
- `boolean`
### C Prototype
`bool obj_is_secret(struct Object *o);`
[:arrow_up_small:](#)
## [obj_is_valid_for_interaction](#obj_is_valid_for_interaction)
### Description
Checks if `o` is activated, tangible, and interactible
### Lua Example
`local booleanValue = obj_is_valid_for_interaction(o)`
### Parameters
| Field | Type |
| ----- | ---- |
| o | [Object](structs.md#Object) |
### Returns
- `boolean`
### C Prototype
`bool obj_is_valid_for_interaction(struct Object *o);`
[:arrow_up_small:](#)
## [obj_check_hitbox_overlap](#obj_check_hitbox_overlap)
### Description
Checks if `o1`'s hitbox is colliding with `o2`'s hitbox
### Lua Example
`local booleanValue = obj_check_hitbox_overlap(o1, o2)`
### Parameters
| Field | Type |
| ----- | ---- |
| o1 | [Object](structs.md#Object) |
| o2 | [Object](structs.md#Object) |
### Returns
- `boolean`
### C Prototype
`bool obj_check_hitbox_overlap(struct Object *o1, struct Object *o2);`
[:arrow_up_small:](#)
## [obj_check_overlap_with_hitbox_params](#obj_check_overlap_with_hitbox_params)
### Description
Checks if `o`'s hitbox is colliding with the parameters of a hitbox
### Lua Example
`local booleanValue = obj_check_overlap_with_hitbox_params(o, x, y, z, h, r, d)`
### Parameters
| Field | Type |
| ----- | ---- |
| o | [Object](structs.md#Object) |
| x | `number` |
| y | `number` |
| z | `number` |
| h | `number` |
| r | `number` |
| d | `number` |
### Returns
- `boolean`
### C Prototype
`bool obj_check_overlap_with_hitbox_params(struct Object *o, f32 x, f32 y, f32 z, f32 h, f32 r, f32 d);`
[:arrow_up_small:](#)
## [obj_set_vel](#obj_set_vel)
### Description
Sets an object's velocity to `vx`, `vy`, and `vz`
### Lua Example
`obj_set_vel(o, vx, vy, vz)`
### Parameters
| Field | Type |
| ----- | ---- |
| o | [Object](structs.md#Object) |
| vx | `number` |
| vy | `number` |
| vz | `number` |
### Returns
- None
### C Prototype
`void obj_set_vel(struct Object *o, f32 vx, f32 vy, f32 vz);`
[:arrow_up_small:](#)
## [obj_move_xyz](#obj_move_xyz)
### Description
Moves the object in the direction of `dx`, `dy`, and `dz`
### Lua Example
`obj_move_xyz(o, dx, dy, dz)`
### Parameters
| Field | Type |
| ----- | ---- |
| o | [Object](structs.md#Object) |
| dx | `number` |
| dy | `number` |
| dz | `number` |
### Returns
- None
### C Prototype
`void obj_move_xyz(struct Object *o, f32 dx, f32 dy, f32 dz);`
[:arrow_up_small:](#)
## [set_whirlpools](#set_whirlpools)
### Description
Sets the parameters of one of the two whirlpools (0-indexed) in an area
### Lua Example
`set_whirlpools(x, y, z, strength, area, index)`
### Parameters
| Field | Type |
| ----- | ---- |
| x | `number` |
| y | `number` |
| z | `number` |
| strength | `integer` |
| area | `integer` |
| index | `integer` |
### Returns
- None
### C Prototype
`void set_whirlpools(f32 x, f32 y, f32 z, s16 strength, s16 area, s32 index);`
[:arrow_up_small:](#)
---
# functions from smlua_text_utils.h
## [smlua_text_utils_reset_all](#smlua_text_utils_reset_all)
### Description
Resets every modified dialog back to vanilla
### Lua Example
`smlua_text_utils_reset_all()`
### Parameters
- None
### Returns
- None
### C Prototype
`void smlua_text_utils_reset_all(void);`
[:arrow_up_small:](#)
## [smlua_text_utils_dialog_get](#smlua_text_utils_dialog_get)
### Description
Gets the DialogEntry struct for the given `dialogId`
### Lua Example
`local DialogEntryValue = smlua_text_utils_dialog_get(dialogId)`
### Parameters
| Field | Type |
| ----- | ---- |
| dialogId | [enum DialogId](constants.md#enum-DialogId) |
### Returns
[DialogEntry](structs.md#DialogEntry)
### C Prototype
`struct DialogEntry* smlua_text_utils_dialog_get(enum DialogId dialogId);`
[:arrow_up_small:](#)
## [smlua_text_utils_dialog_replace](#smlua_text_utils_dialog_replace)
### Description
Replaces `dialogId` with a custom one
### Lua Example
`smlua_text_utils_dialog_replace(dialogId, unused, linesPerBox, leftOffset, width, str)`
### Parameters
| Field | Type |
| ----- | ---- |
| dialogId | [enum DialogId](constants.md#enum-DialogId) |
| unused | `integer` |
| linesPerBox | `integer` |
| leftOffset | `integer` |
| width | `integer` |
| str | `string` |
### Returns
- None
### C Prototype
`void smlua_text_utils_dialog_replace(enum DialogId dialogId, u32 unused, s8 linesPerBox, s16 leftOffset, s16 width, const char* str);`
[:arrow_up_small:](#)
## [smlua_text_utils_dialog_restore](#smlua_text_utils_dialog_restore)
### Description
Restores a replaced DialogEntry to its original state.
### Lua Example
`smlua_text_utils_dialog_restore(dialogId)`
### Parameters
| Field | Type |
| ----- | ---- |
| dialogId | [enum DialogId](constants.md#enum-DialogId) |
### Returns
- None
### C Prototype
`void smlua_text_utils_dialog_restore(enum DialogId dialogId);`
[:arrow_up_small:](#)
## [smlua_text_utils_dialog_is_replaced](#smlua_text_utils_dialog_is_replaced)
### Description
Returns whether the dialog with the given ID has been replaced
### Lua Example
`local booleanValue = smlua_text_utils_dialog_is_replaced(dialogId)`
### Parameters
| Field | Type |
| ----- | ---- |
| dialogId | [enum DialogId](constants.md#enum-DialogId) |
### Returns
- `boolean`
### C Prototype
`bool smlua_text_utils_dialog_is_replaced(enum DialogId dialogId);`
[:arrow_up_small:](#)
## [smlua_text_utils_allocate_dialog](#smlua_text_utils_allocate_dialog)
### Description
Allocates a new dialog entry
### Lua Example
`local integerValue = smlua_text_utils_allocate_dialog()`
### Parameters
- None
### Returns
- `integer`
### C Prototype
`s32 smlua_text_utils_allocate_dialog(void);`
[:arrow_up_small:](#)
## [smlua_text_utils_course_acts_replace](#smlua_text_utils_course_acts_replace)
### Description
Replaces the act names of `courseNum`
### Lua Example
`smlua_text_utils_course_acts_replace(courseNum, courseName, act1, act2, act3, act4, act5, act6)`
### Parameters
| Field | Type |
| ----- | ---- |
| courseNum | `integer` |
| courseName | `string` |
| act1 | `string` |
| act2 | `string` |
| act3 | `string` |
| act4 | `string` |
| act5 | `string` |
| act6 | `string` |
### Returns
- None
### C Prototype
`void smlua_text_utils_course_acts_replace(s16 courseNum, const char* courseName, const char* act1, const char* act2, const char* act3, const char* act4, const char* act5, const char* act6);`
[:arrow_up_small:](#)
## [smlua_text_utils_secret_star_replace](#smlua_text_utils_secret_star_replace)
### Description
Replaces the secret star course name of `courseNum` with `courseName`
### Lua Example
`smlua_text_utils_secret_star_replace(courseNum, courseName)`
### Parameters
| Field | Type |
| ----- | ---- |
| courseNum | `integer` |
| courseName | `string` |
### Returns
- None
### C Prototype
`void smlua_text_utils_secret_star_replace(s16 courseNum, const char* courseName);`
[:arrow_up_small:](#)
## [smlua_text_utils_course_name_replace](#smlua_text_utils_course_name_replace)
### Description
Replaces the name of `courseNum` with `name`
### Lua Example
`smlua_text_utils_course_name_replace(courseNum, name)`
### Parameters
| Field | Type |
| ----- | ---- |
| courseNum | `integer` |
| name | `string` |
### Returns
- None
### C Prototype
`void smlua_text_utils_course_name_replace(s16 courseNum, const char* name);`
[:arrow_up_small:](#)
## [smlua_text_utils_course_name_get](#smlua_text_utils_course_name_get)
### Description
Gets the name of `courseNum`
### Lua Example
`local stringValue = smlua_text_utils_course_name_get(courseNum)`
### Parameters
| Field | Type |
| ----- | ---- |
| courseNum | `integer` |
### Returns
- `string`
### C Prototype
`const char* smlua_text_utils_course_name_get(s16 courseNum);`
[:arrow_up_small:](#)
## [smlua_text_utils_course_name_mod_index](#smlua_text_utils_course_name_mod_index)
### Description
Gets the index of the mod that replaced the name of `courseNum`
### Lua Example
`local integerValue = smlua_text_utils_course_name_mod_index(courseNum)`
### Parameters
| Field | Type |
| ----- | ---- |
| courseNum | `integer` |
### Returns
- `integer`
### C Prototype
`s32 smlua_text_utils_course_name_mod_index(s16 courseNum);`
[:arrow_up_small:](#)
## [smlua_text_utils_course_name_reset](#smlua_text_utils_course_name_reset)
### Description
Resets the name of `courseNum`
### Lua Example
`smlua_text_utils_course_name_reset(courseNum)`
### Parameters
| Field | Type |
| ----- | ---- |
| courseNum | `integer` |
### Returns
- None
### C Prototype
`void smlua_text_utils_course_name_reset(s16 courseNum);`
[:arrow_up_small:](#)
## [smlua_text_utils_act_name_replace](#smlua_text_utils_act_name_replace)
### Description
Replaces the act name of `actNum` in `courseNum` with `name`
### Lua Example
`smlua_text_utils_act_name_replace(courseNum, actNum, name)`
### Parameters
| Field | Type |
| ----- | ---- |
| courseNum | `integer` |
| actNum | `integer` |
| name | `string` |
### Returns
- None
### C Prototype
`void smlua_text_utils_act_name_replace(s16 courseNum, u8 actNum, const char* name);`
[:arrow_up_small:](#)
## [smlua_text_utils_act_name_get](#smlua_text_utils_act_name_get)
### Description
Gets the act name of `actNum` in `courseNum`
### Lua Example
`local stringValue = smlua_text_utils_act_name_get(courseNum, actNum)`
### Parameters
| Field | Type |
| ----- | ---- |
| courseNum | `integer` |
| actNum | `integer` |
### Returns
- `string`
### C Prototype
`const char* smlua_text_utils_act_name_get(s16 courseNum, u8 actNum);`
[:arrow_up_small:](#)
## [smlua_text_utils_act_name_mod_index](#smlua_text_utils_act_name_mod_index)
### Description
Gets the index of the mod that replaced the act name of `actNum` in `courseNum`
### Lua Example
`local integerValue = smlua_text_utils_act_name_mod_index(courseNum, actNum)`
### Parameters
| Field | Type |
| ----- | ---- |
| courseNum | `integer` |
| actNum | `integer` |
### Returns
- `integer`
### C Prototype
`s32 smlua_text_utils_act_name_mod_index(s16 courseNum, u8 actNum);`
[:arrow_up_small:](#)
## [smlua_text_utils_act_name_reset](#smlua_text_utils_act_name_reset)
### Description
Resets the act name of `actNum` in `courseNum`
### Lua Example
`smlua_text_utils_act_name_reset(courseNum, actNum)`
### Parameters
| Field | Type |
| ----- | ---- |
| courseNum | `integer` |
| actNum | `integer` |
### Returns
- None
### C Prototype
`void smlua_text_utils_act_name_reset(s16 courseNum, u8 actNum);`
[:arrow_up_small:](#)
## [smlua_text_utils_castle_secret_stars_replace](#smlua_text_utils_castle_secret_stars_replace)
### Description
Replaces the castle secret stars text with `name`
### Lua Example
`smlua_text_utils_castle_secret_stars_replace(name)`
### Parameters
| Field | Type |
| ----- | ---- |
| name | `string` |
### Returns
- None
### C Prototype
`void smlua_text_utils_castle_secret_stars_replace(const char* name);`
[:arrow_up_small:](#)
## [smlua_text_utils_castle_secret_stars_get](#smlua_text_utils_castle_secret_stars_get)
### Description
Gets the castle secret stars text
### Lua Example
`local stringValue = smlua_text_utils_castle_secret_stars_get()`
### Parameters
- None
### Returns
- `string`
### C Prototype
`const char* smlua_text_utils_castle_secret_stars_get();`
[:arrow_up_small:](#)
## [smlua_text_utils_castle_secret_stars_mod_index](#smlua_text_utils_castle_secret_stars_mod_index)
### Description
Gets the index of the mod that replaced the castle secret stars text
### Lua Example
`local integerValue = smlua_text_utils_castle_secret_stars_mod_index()`
### Parameters
- None
### Returns
- `integer`
### C Prototype
`s32 smlua_text_utils_castle_secret_stars_mod_index();`
[:arrow_up_small:](#)
## [smlua_text_utils_castle_secret_stars_reset](#smlua_text_utils_castle_secret_stars_reset)
### Description
Resets the castle secret stars text
### Lua Example
`smlua_text_utils_castle_secret_stars_reset()`
### Parameters
- None
### Returns
- None
### C Prototype
`void smlua_text_utils_castle_secret_stars_reset();`
[:arrow_up_small:](#)
## [smlua_text_utils_extra_text_replace](#smlua_text_utils_extra_text_replace)
### Description
Replace extra text (e.g. one of the castle's secret stars) with `text`
### Lua Example
`smlua_text_utils_extra_text_replace(index, text)`
### Parameters
| Field | Type |
| ----- | ---- |
| index | `integer` |
| text | `string` |
### Returns
- None
### C Prototype
`void smlua_text_utils_extra_text_replace(s16 index, const char* text);`
[:arrow_up_small:](#)
## [smlua_text_utils_extra_text_get](#smlua_text_utils_extra_text_get)
### Description
Gets the extra text at `index`
### Lua Example
`local stringValue = smlua_text_utils_extra_text_get(index)`
### Parameters
| Field | Type |
| ----- | ---- |
| index | `integer` |
### Returns
- `string`
### C Prototype
`const char* smlua_text_utils_extra_text_get(s16 index);`
[:arrow_up_small:](#)
## [smlua_text_utils_extra_text_mod_index](#smlua_text_utils_extra_text_mod_index)
### Description
Gets the index of the mod that replaced the extra text at `index`
### Lua Example
`local integerValue = smlua_text_utils_extra_text_mod_index(index)`
### Parameters
| Field | Type |
| ----- | ---- |
| index | `integer` |
### Returns
- `integer`
### C Prototype
`s32 smlua_text_utils_extra_text_mod_index(s16 index);`
[:arrow_up_small:](#)
## [smlua_text_utils_extra_text_reset](#smlua_text_utils_extra_text_reset)
### Description
Resets the extra text at `index`
### Lua Example
`smlua_text_utils_extra_text_reset(index)`
### Parameters
| Field | Type |
| ----- | ---- |
| index | `integer` |
### Returns
- None
### C Prototype
`void smlua_text_utils_extra_text_reset(s16 index);`
[:arrow_up_small:](#)
## [smlua_text_utils_get_language](#smlua_text_utils_get_language)
### Description
Gets the current language
### Lua Example
`local stringValue = smlua_text_utils_get_language()`
### Parameters
- None
### Returns
- `string`
### C Prototype
`const char* smlua_text_utils_get_language(void);`
[:arrow_up_small:](#)
---
# functions from sound_init.h
## [reset_volume](#reset_volume)
### Description
Resets if music volume has been lowered
### Lua Example
`reset_volume()`
### Parameters
- None
### Returns
- None
### C Prototype
`void reset_volume(void);`
[:arrow_up_small:](#)
## [raise_background_noise](#raise_background_noise)
### Description
Raises music volume back up to normal levels
### Lua Example
`raise_background_noise(a)`
### Parameters
| Field | Type |
| ----- | ---- |
| a | `integer` |
### Returns
- None
### C Prototype
`void raise_background_noise(s32 a);`
[:arrow_up_small:](#)
## [lower_background_noise](#lower_background_noise)
### Description
Lowers the volume of music by 40%
### Lua Example
`lower_background_noise(a)`
### Parameters
| Field | Type |
| ----- | ---- |
| a | `integer` |
### Returns
- None
### C Prototype
`void lower_background_noise(s32 a);`
[:arrow_up_small:](#)
## [disable_background_sound](#disable_background_sound)
### Description
Disables background soundbanks
### Lua Example
`disable_background_sound()`
### Parameters
- None
### Returns
- None
### C Prototype
`void disable_background_sound(void);`
[:arrow_up_small:](#)
## [enable_background_sound](#enable_background_sound)
### Description
Enables background soundbanks
### Lua Example
`enable_background_sound()`
### Parameters
- None
### Returns
- None
### C Prototype
`void enable_background_sound(void);`
[:arrow_up_small:](#)
## [play_menu_sounds](#play_menu_sounds)
### Description
Play menu sounds from `SOUND_MENU_FLAG_*` constants and queues rumble if `SOUND_MENU_FLAG_LETGOMARIOFACE` is one of the flags
### Lua Example
`play_menu_sounds(soundMenuFlags)`
### Parameters
| Field | Type |
| ----- | ---- |
| soundMenuFlags | `integer` |
### Returns
- None
### C Prototype
`void play_menu_sounds(s16 soundMenuFlags);`
[:arrow_up_small:](#)
## [play_painting_eject_sound](#play_painting_eject_sound)
### Description
Plays the painting eject sound effect if it has not already been played
### Lua Example
`play_painting_eject_sound()`
### Parameters
- None
### Returns
- None
### C Prototype
`void play_painting_eject_sound(void);`
[:arrow_up_small:](#)
## [play_infinite_stairs_music](#play_infinite_stairs_music)
### Description
Plays the infinite stairs music if you're in the endless stairs room and have less than `gLevelValues.infiniteStairsRequirement` stars
### Lua Example
`play_infinite_stairs_music()`
### Parameters
- None
### Returns
- None
### C Prototype
`void play_infinite_stairs_music(void);`
[:arrow_up_small:](#)
## [set_background_music](#set_background_music)
### Description
Sets the background music to `seqArgs` on sequence player `a` with a fade in time of `fadeTimer`
### Lua Example
`set_background_music(a, seqArgs, fadeTimer)`
### Parameters
| Field | Type |
| ----- | ---- |
| a | `integer` |
| seqArgs | `integer` |
| fadeTimer | `integer` |
### Returns
- None
### C Prototype
`void set_background_music(u16 a, u16 seqArgs, s16 fadeTimer);`
[:arrow_up_small:](#)
## [fadeout_music](#fadeout_music)
### Description
Fades out level, shell, and cap music
### Lua Example
`fadeout_music(fadeOutTime)`
### Parameters
| Field | Type |
| ----- | ---- |
| fadeOutTime | `integer` |
### Returns
- None
### C Prototype
`void fadeout_music(s16 fadeOutTime);`
[:arrow_up_small:](#)
## [fadeout_level_music](#fadeout_level_music)
### Description
Fades out the level sequence player
### Lua Example
`fadeout_level_music(fadeTimer)`
### Parameters
| Field | Type |
| ----- | ---- |
| fadeTimer | `integer` |
### Returns
- None
### C Prototype
`void fadeout_level_music(s16 fadeTimer);`
[:arrow_up_small:](#)
## [play_cutscene_music](#play_cutscene_music)
### Description
Plays and sets the current music to `seqArgs`
### Lua Example
`play_cutscene_music(seqArgs)`
### Parameters
| Field | Type |
| ----- | ---- |
| seqArgs | `integer` |
### Returns
- None
### C Prototype
`void play_cutscene_music(u16 seqArgs);`
[:arrow_up_small:](#)
## [play_shell_music](#play_shell_music)
### Description
Plays shell music
### Lua Example
`play_shell_music()`
### Parameters
- None
### Returns
- None
### C Prototype
`void play_shell_music(void);`
[:arrow_up_small:](#)
## [stop_shell_music](#stop_shell_music)
### Description
Stops shell music completely
### Lua Example
`stop_shell_music()`
### Parameters
- None
### Returns
- None
### C Prototype
`void stop_shell_music(void);`
[:arrow_up_small:](#)
## [play_cap_music](#play_cap_music)
### Description
Plays `seqArgs` as cap music
### Lua Example
`play_cap_music(seqArgs)`
### Parameters
| Field | Type |
| ----- | ---- |
| seqArgs | `integer` |
### Returns
- None
### C Prototype
`void play_cap_music(u16 seqArgs);`
[:arrow_up_small:](#)
## [fadeout_cap_music](#fadeout_cap_music)
### Description
Fades out cap music
### Lua Example
`fadeout_cap_music()`
### Parameters
- None
### Returns
- None
### C Prototype
`void fadeout_cap_music(void);`
[:arrow_up_small:](#)
## [stop_cap_music](#stop_cap_music)
### Description
Stops cap music completely
### Lua Example
`stop_cap_music()`
### Parameters
- None
### Returns
- None
### C Prototype
`void stop_cap_music(void);`
[:arrow_up_small:](#)
---
# functions from spawn_sound.h
## [cur_obj_play_sound_1](#cur_obj_play_sound_1)
### Description
Plays a sound if the current object is visible
### Lua Example
`cur_obj_play_sound_1(soundMagic)`
### Parameters
| Field | Type |
| ----- | ---- |
| soundMagic | `integer` |
### Returns
- None
### C Prototype
`void cur_obj_play_sound_1(s32 soundMagic);`
[:arrow_up_small:](#)
## [cur_obj_play_sound_2](#cur_obj_play_sound_2)
### Description
Plays a sound if the current object is visible and queues rumble for specific sounds
### Lua Example
`cur_obj_play_sound_2(soundMagic)`
### Parameters
| Field | Type |
| ----- | ---- |
| soundMagic | `integer` |
### Returns
- None
### C Prototype
`void cur_obj_play_sound_2(s32 soundMagic);`
[:arrow_up_small:](#)
## [create_sound_spawner](#create_sound_spawner)
### Description
Create a sound spawner for objects that need a sound play once. (Breakable walls, King Bobomb exploding, etc)
### Lua Example
`create_sound_spawner(soundMagic)`
### Parameters
| Field | Type |
| ----- | ---- |
| soundMagic | `integer` |
### Returns
- None
### C Prototype
`void create_sound_spawner(s32 soundMagic);`
[:arrow_up_small:](#)
## [calc_dist_to_volume_range_1](#calc_dist_to_volume_range_1)
### Description
Unused vanilla function, calculates a volume based on `distance`. If `distance` is less than 500 then 127, if `distance` is greater than 1500 then 0, if `distance` is between 500 and 1500 then it ranges linearly from 60 to 124. What an even more strange and confusing function
### Lua Example
`local integerValue = calc_dist_to_volume_range_1(distance)`
### Parameters
| Field | Type |
| ----- | ---- |
| distance | `number` |
### Returns
- `integer`
### C Prototype
`s32 calc_dist_to_volume_range_1(f32 distance);`
[:arrow_up_small:](#)
## [calc_dist_to_volume_range_2](#calc_dist_to_volume_range_2)
### Description
Unused vanilla function, calculates a volume based on `distance`. If `distance` is less than 1300 then 127, if `distance` is greater than 2300 then 0, if `distance` is between 1300 and 2300 then it ranges linearly from 60 to 127. What a strange and confusing function
### Lua Example
`local integerValue = calc_dist_to_volume_range_2(distance)`
### Parameters
| Field | Type |
| ----- | ---- |
| distance | `number` |
### Returns
- `integer`
### C Prototype
`s32 calc_dist_to_volume_range_2(f32 distance);`
[:arrow_up_small:](#)
---
# functions from surface_collision.h
## [find_wall_collisions](#find_wall_collisions)
### Description
Detects wall collisions at a given position and adjusts the position based on the walls found. Returns the number of wall collisions detected
### Lua Example
`local integerValue = find_wall_collisions(colData)`
### Parameters
| Field | Type |
| ----- | ---- |
| colData | [WallCollisionData](structs.md#WallCollisionData) |
### Returns
- `integer`
### C Prototype
`s32 find_wall_collisions(struct WallCollisionData *colData);`
[:arrow_up_small:](#)
## [find_ceil_height](#find_ceil_height)
### Description
Finds the height of the highest ceiling above a given position (x, y, z). If no ceiling is found, returns the default height limit of `gLevelValues.cellHeightLimit`(20000 by default)
### Lua Example
`local numberValue = find_ceil_height(x, y, z)`
### Parameters
| Field | Type |
| ----- | ---- |
| x | `number` |
| y | `number` |
| z | `number` |
### Returns
- `number`
### C Prototype
`f32 find_ceil_height(f32 x, f32 y, f32 z);`
[:arrow_up_small:](#)
## [find_floor_height](#find_floor_height)
### Description
Finds the height of the highest floor below a given position (x, y, z). If no floor is found, returns the default floor height of `gLevelValues.floorLowerLimit`(-11000 by default)
### Lua Example
`local numberValue = find_floor_height(x, y, z)`
### Parameters
| Field | Type |
| ----- | ---- |
| x | `number` |
| y | `number` |
| z | `number` |
### Returns
- `number`
### C Prototype
`f32 find_floor_height(f32 x, f32 y, f32 z);`
[:arrow_up_small:](#)
## [find_water_level](#find_water_level)
### Description
Finds the height of water at a given position (x, z), if the position is within a water region. If no water is found, returns the default height of `gLevelValues.floorLowerLimit`(-11000 by default)
### Lua Example
`local numberValue = find_water_level(x, z)`
### Parameters
| Field | Type |
| ----- | ---- |
| x | `number` |
| z | `number` |
### Returns
- `number`
### C Prototype
`f32 find_water_level(f32 x, f32 z);`
[:arrow_up_small:](#)
## [find_poison_gas_level](#find_poison_gas_level)
### Description
Finds the height of the poison gas at a given position (x, z), if the position is within a gas region. If no gas is found, returns the default height of `gLevelValues.floorLowerLimit`(-11000 by default)
### Lua Example
`local numberValue = find_poison_gas_level(x, z)`
### Parameters
| Field | Type |
| ----- | ---- |
| x | `number` |
| z | `number` |
### Returns
- `number`
### C Prototype
`f32 find_poison_gas_level(f32 x, f32 z);`
[:arrow_up_small:](#)
## [set_find_wall_direction](#set_find_wall_direction)
### Description
Sets whether collision finding functions should check wall directions.
### Lua Example
`set_find_wall_direction(dir, active, airborne)`
### Parameters
| Field | Type |
| ----- | ---- |
| dir | [Vec3f](structs.md#Vec3f) |
| active | `boolean` |
| airborne | `boolean` |
### Returns
- None
### C Prototype
`void set_find_wall_direction(Vec3f dir, bool active, bool airborne);`
[:arrow_up_small:](#)
## [closest_point_to_triangle](#closest_point_to_triangle)
### Description
Gets the closest point of the triangle to `src` and returns it in `out`.
### Lua Example
`closest_point_to_triangle(surf, src, out)`
### Parameters
| Field | Type |
| ----- | ---- |
| surf | [Surface](structs.md#Surface) |
| src | [Vec3f](structs.md#Vec3f) |
| out | [Vec3f](structs.md#Vec3f) |
### Returns
- None
### C Prototype
`void closest_point_to_triangle(struct Surface* surf, Vec3f src, OUT Vec3f out);`
[:arrow_up_small:](#)
---
[< prev](functions-5.md) | [1](functions.md) | [2](functions-2.md) | [3](functions-3.md) | [4](functions-4.md) | [5](functions-5.md) | 6 | [7](functions-7.md) | [next >](functions-7.md)]