sm64coopdx/docs/lua/functions-3.md
John S be0e47a4c2
Documentation of mario.h, mario_actions_airborne.c, mario_actions_automatic.c, mario_actions_cutscene.c, and mario_actions_moving.c (#601)
* WIP mario.h - mario_actions_moving.c

* Fix improper list formatting

bulleted lists are broken due to whitespace stripping, i may fix this later.

* Fix some issues in formatting and missing descriptions

* Accidental struct syntax fix

* Fix repeating descriptions

* Fix repeating descriptions final
2024-12-31 21:00:54 -05:00

126 KiB

Lua Functions


< prev | 1 | 2 | 3 | 4 | 5 | 6 | next >]


functions from behavior_script.h


draw_distance_scalar

Description

Gets the draw distance scalar

Lua Example

local numberValue = draw_distance_scalar()

Parameters

  • None

Returns

  • number

C Prototype

f32 draw_distance_scalar(void);

🔼


obj_update_gfx_pos_and_angle

Description

Updates an object's graphical position and angle

Lua Example

obj_update_gfx_pos_and_angle(obj)

Parameters

Field Type
obj Object

Returns

  • None

C Prototype

void obj_update_gfx_pos_and_angle(struct Object *obj);

🔼


position_based_random_float_position

Description

Sets the current object's position to random floats between 0.0 and 1.0

Lua Example

local numberValue = position_based_random_float_position()

Parameters

  • None

Returns

  • number

C Prototype

f32 position_based_random_float_position(void);

🔼


position_based_random_u16

Description

Sets the current object's position to random integers between 0 and 65536

Lua Example

local integerValue = position_based_random_u16()

Parameters

  • None

Returns

  • integer

C Prototype

u16 position_based_random_u16(void);

🔼


random_float

Description

Generates a pseudo random float between 0.0 and 1.0

Lua Example

local numberValue = random_float()

Parameters

  • None

Returns

  • number

C Prototype

float random_float(void);

🔼


random_sign

Description

Returns either 1 or -1 with a pseudo 50:50 chance

Lua Example

local integerValue = random_sign()

Parameters

  • None

Returns

  • integer

C Prototype

s32 random_sign(void);

🔼


random_u16

Description

Generates a pseudo random integer between 0 and 65535

Lua Example

local integerValue = random_u16()

Parameters

  • None

Returns

  • integer

C Prototype

u16 random_u16(void);

🔼



functions from behavior_table.h


get_behavior_from_id

Description

Gets a behavior script from a behavior ID

Lua Example

local PointerValue = get_behavior_from_id(id)

Parameters

Field Type
id enum BehaviorId

Returns

  • Pointer <BehaviorScript>

C Prototype

const BehaviorScript* get_behavior_from_id(enum BehaviorId id);

🔼


get_behavior_name_from_id

Description

Gets a behavior name from a behavior ID (bhvMyGreatMODCustom004)

Lua Example

local stringValue = get_behavior_name_from_id(id)

Parameters

Field Type
id enum BehaviorId

Returns

  • string

C Prototype

const char* get_behavior_name_from_id(enum BehaviorId id);

🔼


get_id_from_behavior

Description

Gets a behavior ID from a behavior script

Lua Example

local enumValue = get_id_from_behavior(behavior)

Parameters

Field Type
behavior Pointer <BehaviorScript>

Returns

enum BehaviorId

C Prototype

enum BehaviorId get_id_from_behavior(const BehaviorScript* behavior);

🔼


get_id_from_behavior_name

Description

gets a behavior ID from a behavior name

Lua Example

local enumValue = get_id_from_behavior_name(name)

Parameters

Field Type
name string

Returns

enum BehaviorId

C Prototype

enum BehaviorId get_id_from_behavior_name(const char* name);

🔼


get_id_from_vanilla_behavior

Description

Gets a behavior ID from only vanilla behavior scripts

Lua Example

local enumValue = get_id_from_vanilla_behavior(behavior)

Parameters

Field Type
behavior Pointer <BehaviorScript>

Returns

enum BehaviorId

C Prototype

enum BehaviorId get_id_from_vanilla_behavior(const BehaviorScript* behavior);

🔼



functions from camera.h


approach_camera_height

Description

Adjusts the camera's height toward a target value (goalHeight) while respecting terrain and obstructions. This is really wonky and probably shouldn't be used, prefer gLakituStates

Lua Example

approach_camera_height(c, goal, inc)

Parameters

Field Type
c Camera
goal number
inc number

Returns

  • None

C Prototype

void approach_camera_height(struct Camera *c, f32 goal, f32 inc);

🔼


approach_f32_asymptotic

Description

Gradually approaches a floating-point value (target) using asymptotic smoothing. The rate of approach is controlled by the multiplier. Useful for smoothly adjusting camera parameters like field-of-view or position

Lua Example

local numberValue = approach_f32_asymptotic(current, target, multiplier)

Parameters

Field Type
current number
target number
multiplier number

Returns

  • number

C Prototype

f32 approach_f32_asymptotic(f32 current, f32 target, f32 multiplier);

🔼


approach_f32_asymptotic_bool

Description

Gradually adjusts a floating-point value (current) towards a target (target) using asymptotic smoothing. Returns true if current reaches the target and false otherwise

Lua Example

local integerValue = approach_f32_asymptotic_bool(current, target, multiplier)

Parameters

Field Type
current Pointer <number>
target number
multiplier number

Returns

  • integer

C Prototype

s32 approach_f32_asymptotic_bool(f32 *current, f32 target, f32 multiplier);

🔼


approach_s16_asymptotic

Description

Gradually approaches a signed 16-bit integer (target) using asymptotic smoothing. The divisor controls the rate of the adjustment. Useful for adjusting angles or positions smoothly

Lua Example

local integerValue = approach_s16_asymptotic(current, target, divisor)

Parameters

Field Type
current integer
target integer
divisor integer

Returns

  • integer

C Prototype

s32 approach_s16_asymptotic(s16 current, s16 target, s16 divisor);

🔼


approach_s16_asymptotic_bool

Description

Gradually adjusts a signed 16-bit integer (current) towards a target (target) using asymptotic smoothing. Returns true if current reaches target and false otherwise

Lua Example

local integerValue = approach_s16_asymptotic_bool(current, target, divisor)

Parameters

Field Type
current Pointer <integer>
target integer
divisor integer

Returns

  • integer

C Prototype

s32 approach_s16_asymptotic_bool(s16 *current, s16 target, s16 divisor);

🔼


approach_vec3f_asymptotic

Description

Smoothly transitions a 3D vector (current) towards a target vector (target) using asymptotic scaling. Scaling values (the Mul variables) for x, y, and z axes determine the speed of adjustment for each component

Lua Example

approach_vec3f_asymptotic(current, target, xMul, yMul, zMul)

Parameters

Field Type
current Vec3f
target Vec3f
xMul number
yMul number
zMul number

Returns

  • None

C Prototype

void approach_vec3f_asymptotic(Vec3f current, Vec3f target, f32 xMul, f32 yMul, f32 zMul);

🔼


calc_abs_dist

Description

Calculates the absolute distance between two 3D points (a and b). Returns the distance as a floating-point value. Useful for determining proximity between objects in 3D space

Lua Example

local numberValue = calc_abs_dist(a, b)

Parameters

Field Type
a Vec3f
b Vec3f

Returns

  • number

C Prototype

f32 calc_abs_dist(Vec3f a, Vec3f b);

🔼


calc_hor_dist

Description

Calculates the horizontal (XZ-plane) distance between two 3D points (a and b). Returns the distance as a floating-point value. Useful for terrain navigation or collision detection

Lua Example

local numberValue = calc_hor_dist(a, b)

Parameters

Field Type
a Vec3f
b Vec3f

Returns

  • number

C Prototype

f32 calc_hor_dist(Vec3f a, Vec3f b);

🔼


calculate_angles

Description

Calculates the pitch and yaw angles from one 3D position (from) to another (to). Updates the provided pointers with the computed pitch and yaw values

Lua Example

calculate_angles(from, to, pitch, yaw)

Parameters

Field Type
from Vec3f
to Vec3f
pitch Pointer <integer>
yaw Pointer <integer>

Returns

  • None

C Prototype

void calculate_angles(Vec3f from, Vec3f to, s16 *pitch, s16 *yaw);

🔼


calculate_pitch

Description

Calculates the pitch angle (rotation around the X-axis) from one 3D point (from) to another (to). Returns the pitch as a signed 16-bit integer

Lua Example

local integerValue = calculate_pitch(from, to)

Parameters

Field Type
from Vec3f
to Vec3f

Returns

  • integer

C Prototype

s16 calculate_pitch(Vec3f from, Vec3f to);

🔼


calculate_yaw

Description

Determines the yaw angle (rotation around the Y-axis) from one 3D position (from) to another (to). Returns the yaw as a signed 16-bit integer

Lua Example

local integerValue = calculate_yaw(from, to)

Parameters

Field Type
from Vec3f
to Vec3f

Returns

  • integer

C Prototype

s16 calculate_yaw(Vec3f from, Vec3f to);

🔼


cam_select_alt_mode

Description

Selects an alternate camera mode based on the given angle. Used to toggle between predefined camera modes dynamically

Lua Example

local integerValue = cam_select_alt_mode(angle)

Parameters

Field Type
angle integer

Returns

  • integer

C Prototype

s32 cam_select_alt_mode(s32 angle);

🔼


camera_approach_f32_symmetric

Description

Symmetrically approaches a floating-point value (target) with a fixed increment (increment) per frame. Limits the rate of change to ensure gradual transitions

Lua Example

local numberValue = camera_approach_f32_symmetric(value, target, increment)

Parameters

Field Type
value number
target number
increment number

Returns

  • number

C Prototype

f32 camera_approach_f32_symmetric(f32 value, f32 target, f32 increment);

🔼


camera_approach_f32_symmetric_bool

Description

Adjusts a floating-point value (current) towards a target (target) symmetrically with a fixed increment (increment). Returns true if the value reaches the target and false otherwise

Lua Example

local integerValue = camera_approach_f32_symmetric_bool(current, target, increment)

Parameters

Field Type
current Pointer <number>
target number
increment number

Returns

  • integer

C Prototype

s32 camera_approach_f32_symmetric_bool(f32 *current, f32 target, f32 increment);

🔼


camera_approach_s16_symmetric_bool

Description

Adjusts a signed 16-bit integer (current) towards a target (target) symmetrically with a fixed increment (increment). Returns true if the value reaches the target and false otherwise

Lua Example

local integerValue = camera_approach_s16_symmetric_bool(current, target, increment)

Parameters

Field Type
current Pointer <integer>
target integer
increment integer

Returns

  • integer

C Prototype

s32 camera_approach_s16_symmetric_bool(s16 *current, s16 target, s16 increment);

🔼


camera_course_processing

Description

Processes course-specific camera settings, such as predefined positions or modes. Adjusts the camera to match the design and gameplay requirements of the current course

Lua Example

local integerValue = camera_course_processing(c)

Parameters

Field Type
c Camera

Returns

  • integer

C Prototype

s16 camera_course_processing(struct Camera *c);

🔼


camera_set_use_course_specific_settings

Description

Toggles whether the camera uses course-specific settings. This is useful for enabling or disabling custom behaviors in specific courses or areas

Lua Example

camera_set_use_course_specific_settings(enable)

Parameters

Field Type
enable integer

Returns

  • None

C Prototype

void camera_set_use_course_specific_settings(u8 enable);

🔼


center_rom_hack_camera

Description

Centers the ROM hack camera. This function is designed for non-standard level layouts and modded game environments

Lua Example

center_rom_hack_camera()

Parameters

  • None

Returns

  • None

C Prototype

void center_rom_hack_camera(void);

🔼


clamp_pitch

Description

Clamps the camera's pitch angle between a maximum and minimum value. Prevents over-rotation and maintains a consistent viewing angle

Lua Example

local integerValue = clamp_pitch(from, to, maxPitch, minPitch)

Parameters

Field Type
from Vec3f
to Vec3f
maxPitch integer
minPitch integer

Returns

  • integer

C Prototype

s32 clamp_pitch(Vec3f from, Vec3f to, s16 maxPitch, s16 minPitch);

🔼


clamp_positions_and_find_yaw

Description

Clamps a position within specified X and Z bounds and calculates the yaw angle from the origin. Prevents the camera from moving outside of the designated area

Lua Example

local integerValue = clamp_positions_and_find_yaw(pos, origin, xMax, xMin, zMax, zMin)

Parameters

Field Type
pos Vec3f
origin Vec3f
xMax number
xMin number
zMax number
zMin number

Returns

  • integer

C Prototype

s32 clamp_positions_and_find_yaw(Vec3f pos, Vec3f origin, f32 xMax, f32 xMin, f32 zMax, f32 zMin);

🔼


collide_with_walls

Description

Checks for collisions between the camera and level geometry. Adjusts the camera's position to avoid clipping into walls or obstacles

Lua Example

local integerValue = collide_with_walls(pos, offsetY, radius)

Parameters

Field Type
pos Vec3f
offsetY number
radius number

Returns

  • integer

C Prototype

s32 collide_with_walls(Vec3f pos, f32 offsetY, f32 radius);

🔼


cutscene_object

Description

Initiates a cutscene focusing on a specific object in the game world. The camera transitions smoothly to the object, adapting its position as needed

Lua Example

local integerValue = cutscene_object(cutscene, o)

Parameters

Field Type
cutscene integer
o Object

Returns

  • integer

C Prototype

s16 cutscene_object(u8 cutscene, struct Object *o);

🔼


cutscene_object_with_dialog

Description

Starts a cutscene involving an object and displays dialog during the sequence. The camera focuses on the object while synchronizing dialog with the scene

Lua Example

local integerValue = cutscene_object_with_dialog(cutscene, o, dialogID)

Parameters

Field Type
cutscene integer
o Object
dialogID integer

Returns

  • integer

C Prototype

s16 cutscene_object_with_dialog(u8 cutscene, struct Object *o, s16 dialogID);

🔼


cutscene_object_without_dialog

Description

Starts a cutscene involving an object without dialog. The camera transitions smoothly to focus on the object

Lua Example

local integerValue = cutscene_object_without_dialog(cutscene, o)

Parameters

Field Type
cutscene integer
o Object

Returns

  • integer

C Prototype

s16 cutscene_object_without_dialog(u8 cutscene, struct Object *o);

🔼


cutscene_set_fov_shake_preset

Description

Applies a preset field-of-view shake effect during a cutscene. This creates dynamic visual effects, such as zoom or focus disruptions

Lua Example

cutscene_set_fov_shake_preset(preset)

Parameters

Field Type
preset integer

Returns

  • None

C Prototype

void cutscene_set_fov_shake_preset(u8 preset);

🔼


cutscene_spawn_obj

Description

Spawns an object as part of a cutscene, such as props or interactive elements. Returns the spawned object's reference for further manipulation

Lua Example

local integerValue = cutscene_spawn_obj(obj, frame)

Parameters

Field Type
obj integer
frame integer

Returns

  • integer

C Prototype

s32 cutscene_spawn_obj(u32 obj, s16 frame);

🔼


find_c_buttons_pressed

Description

Determines which C-buttons are currently pressed by the player. Returns a bitmask indicating the active buttons for camera control

Lua Example

local integerValue = find_c_buttons_pressed(currentState, buttonsPressed, buttonsDown)

Parameters

Field Type
currentState integer
buttonsPressed integer
buttonsDown integer

Returns

  • integer

C Prototype

s32 find_c_buttons_pressed(u16 currentState, u16 buttonsPressed, u16 buttonsDown);

🔼


find_mario_floor_and_ceil

Description

Finds the floor and ceiling directly above and below Mario's position. Updates Mario's geometry information for camera calculations

Lua Example

find_mario_floor_and_ceil(pg)

Parameters

Field Type
pg PlayerGeometry

Returns

  • None

C Prototype

void find_mario_floor_and_ceil(struct PlayerGeometry *pg);

🔼


get_cutscene_from_mario_status

Description

Gets the appropriate cutscene to play based on Mario's current gameplay state. This function helps determine transitions for cinematic or scripted sequences

Lua Example

local integerValue = get_cutscene_from_mario_status(c)

Parameters

Field Type
c Camera

Returns

  • integer

C Prototype

u8 get_cutscene_from_mario_status(struct Camera *c);

🔼


handle_c_button_movement

Description

Handles camera movement based on input from the C-buttons. Updates the camera's position or angle to match directional player input

Lua Example

handle_c_button_movement(c)

Parameters

Field Type
c Camera

Returns

  • None

C Prototype

void handle_c_button_movement(struct Camera *c);

🔼


is_range_behind_surface

Description

Determines if a range is obstructed by a surface relative to the camera. Returns true if the range is behind the specified surface

Lua Example

local integerValue = is_range_behind_surface(from, to, surf, range, surfType)

Parameters

Field Type
from Vec3f
to Vec3f
surf Surface
range integer
surfType integer

Returns

  • integer

C Prototype

s32 is_range_behind_surface(Vec3f from, Vec3f to, struct Surface *surf, s16 range, s16 surfType);

🔼


is_within_100_units_of_mario

Description

Checks if a position is within 100 units of Mario's current position. Returns true if the position is within the specified radius and false otherwise

Lua Example

local integerValue = is_within_100_units_of_mario(posX, posY, posZ)

Parameters

Field Type
posX number
posY number
posZ number

Returns

  • integer

C Prototype

s32 is_within_100_units_of_mario(f32 posX, f32 posY, f32 posZ);

🔼


move_mario_head_c_up

Description

Moves Mario's head slightly upward when the C-Up button is pressed. This function aligns the camera to match the head movement for consistency

Lua Example

move_mario_head_c_up(c)

Parameters

Field Type
c Camera

Returns

  • None

C Prototype

void move_mario_head_c_up(UNUSED struct Camera *c);

🔼


next_lakitu_state

Description

Transitions the camera to the next Lakitu state, updating position and focus. This function handles smooth transitions between different gameplay scenarios

Lua Example

local integerValue = next_lakitu_state(newPos, newFoc, curPos, curFoc, oldPos, oldFoc, yaw)

Parameters

Field Type
newPos Vec3f
newFoc Vec3f
curPos Vec3f
curFoc Vec3f
oldPos Vec3f
oldFoc Vec3f
yaw integer

Returns

  • integer

C Prototype

s16 next_lakitu_state(Vec3f newPos, Vec3f newFoc, Vec3f curPos, Vec3f curFoc, Vec3f oldPos, Vec3f oldFoc, s16 yaw);

🔼


obj_rotate_towards_point

Description

Rotates an object toward a specific point in 3D space. Gradually updates the object's pitch and yaw angles to face the target

Lua Example

obj_rotate_towards_point(o, point, pitchOff, yawOff, pitchDiv, yawDiv)

Parameters

Field Type
o Object
point Vec3f
pitchOff integer
yawOff integer
pitchDiv integer
yawDiv integer

Returns

  • None

C Prototype

void obj_rotate_towards_point(struct Object *o, Vec3f point, s16 pitchOff, s16 yawOff, s16 pitchDiv, s16 yawDiv);

🔼


object_pos_to_vec3f

Description

Converts an object's position to a Vec3f format. Useful for aligning object behaviors or interactions with the camera system

Lua Example

object_pos_to_vec3f(dst, o)

Parameters

Field Type
dst Vec3f
o Object

Returns

  • None

C Prototype

void object_pos_to_vec3f(Vec3f dst, struct Object *o);

🔼


offset_rotated

Description

Offsets a vector by rotating it in 3D space relative to a reference position. This is useful for creating radial effects or dynamic transformations

Lua Example

offset_rotated(dst, from, to, rotation)

Parameters

Field Type
dst Vec3f
from Vec3f
to Vec3f
rotation Vec3s

Returns

  • None

C Prototype

void offset_rotated(Vec3f dst, Vec3f from, Vec3f to, Vec3s rotation);

🔼


offset_yaw_outward_radial

Description

Calculates an outward radial offset based on the camera's yaw angle. Returns the offset yaw, used for positioning or alignment

Lua Example

local integerValue = offset_yaw_outward_radial(c, areaYaw)

Parameters

Field Type
c Camera
areaYaw integer

Returns

  • integer

C Prototype

s32 offset_yaw_outward_radial(struct Camera *c, s16 areaYaw);

🔼


play_camera_buzz_if_c_sideways

Description

Plays a buzzing sound effect when the camera's position is misaligned with the player's perspective. Used as audio feedback for incorrect camera behavior

Lua Example

play_camera_buzz_if_c_sideways()

Parameters

  • None

Returns

  • None

C Prototype

void play_camera_buzz_if_c_sideways(void);

🔼


play_camera_buzz_if_cbutton

Description

Plays a buzzing sound effect when a blocked C-button action is attempted. Used to signal invalid input or restricted camera movement

Lua Example

play_camera_buzz_if_cbutton()

Parameters

  • None

Returns

  • None

C Prototype

void play_camera_buzz_if_cbutton(void);

🔼


play_camera_buzz_if_cdown

Description

Plays a buzzing sound effect when the camera attempts to move downward but is restricted. Provides feedback for invalid C-Down input actions

Lua Example

play_camera_buzz_if_cdown()

Parameters

  • None

Returns

  • None

C Prototype

void play_camera_buzz_if_cdown(void);

🔼


play_cutscene

Description

Starts the execution of a predefined cutscene. The camera transitions dynamically to follow the scripted sequence

Lua Example

play_cutscene(c)

Parameters

Field Type
c Camera

Returns

  • None

C Prototype

void play_cutscene(struct Camera *c);

🔼


play_sound_button_change_blocked

Description

Plays a sound effect when a blocked action changes the camera mode. This provides feedback for invalid attempts to switch the camera state

Lua Example

play_sound_button_change_blocked()

Parameters

  • None

Returns

  • None

C Prototype

void play_sound_button_change_blocked(void);

🔼


play_sound_cbutton_down

Description

Plays a sound effect when the C-Down button is pressed for camera movement. Provides auditory feedback for valid camera input

Lua Example

play_sound_cbutton_down()

Parameters

  • None

Returns

  • None

C Prototype

void play_sound_cbutton_down(void);

🔼


play_sound_cbutton_side

Description

Plays a sound effect when the C-Side button (left or right) is pressed for camera movement. Used as audio feedback for horizontal adjustments to the camera

Lua Example

play_sound_cbutton_side()

Parameters

  • None

Returns

  • None

C Prototype

void play_sound_cbutton_side(void);

🔼


play_sound_cbutton_up

Description

Plays a sound effect when the C-Up button is pressed for camera movement. Provides feedback for vertical camera adjustments

Lua Example

play_sound_cbutton_up()

Parameters

  • None

Returns

  • None

C Prototype

void play_sound_cbutton_up(void);

🔼


play_sound_if_cam_switched_to_lakitu_or_mario

Description

Plays a sound effect when the camera switches between Lakitu and Mario perspectives. Signals a successful change in camera mode

Lua Example

play_sound_if_cam_switched_to_lakitu_or_mario()

Parameters

  • None

Returns

  • None

C Prototype

void play_sound_if_cam_switched_to_lakitu_or_mario(void);

🔼


play_sound_rbutton_changed

Description

Plays a sound effect when the R-Button camera mode is changed. Provides feedback for toggling camera behaviors

Lua Example

play_sound_rbutton_changed()

Parameters

  • None

Returns

  • None

C Prototype

void play_sound_rbutton_changed(void);

🔼


radial_camera_input

Description

Handles radial camera movement based on player input. Updates the camera's position or orientation accordingly

Lua Example

local integerValue = radial_camera_input(c, unused)

Parameters

Field Type
c Camera
unused number

Returns

  • integer

C Prototype

s32 radial_camera_input(struct Camera *c, UNUSED f32 unused);

🔼


random_vec3s

Description

Generates a random 3D vector with short integer components. Useful for randomized offsets or environmental effects

Lua Example

random_vec3s(dst, xRange, yRange, zRange)

Parameters

Field Type
dst Vec3s
xRange integer
yRange integer
zRange integer

Returns

  • None

C Prototype

void random_vec3s(Vec3s dst, s16 xRange, s16 yRange, s16 zRange);

🔼


reset_camera

Description

Fully resets the camera to its default state and reinitializes all settings. This is typically used when restarting gameplay or loading a new area

Lua Example

reset_camera(c)

Parameters

Field Type
c Camera

Returns

  • None

C Prototype

void reset_camera(struct Camera *c);

🔼


resolve_geometry_collisions

Description

Resolves collisions between the camera and level geometry. Adjusts the camera's position to prevent clipping or intersecting with objects

Lua Example

resolve_geometry_collisions(pos, lastGood)

Parameters

Field Type
pos Vec3f
lastGood Vec3f

Returns

  • None

C Prototype

void resolve_geometry_collisions(Vec3f pos, UNUSED Vec3f lastGood);

🔼


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);

🔼


rotate_camera_around_walls

Description

Rotates the camera to avoid walls or other obstructions. Ensures clear visibility of the player or target objects

Lua Example

local integerValue = rotate_camera_around_walls(c, cPos, avoidYaw, yawRange)

Parameters

Field Type
c Camera
cPos Vec3f
avoidYaw Pointer <integer>
yawRange integer

Returns

  • integer

C Prototype

s32 rotate_camera_around_walls(struct Camera *c, Vec3f cPos, s16 *avoidYaw, s16 yawRange);

🔼


rotate_in_xz

Description

Rotates a vector around the XZ-plane by a specified yaw angle. The result is stored in the destination vector (dst). Useful for rotating camera positions or object coordinates horizontally

Lua Example

rotate_in_xz(dst, src, yaw)

Parameters

Field Type
dst Vec3f
src Vec3f
yaw integer

Returns

  • None

C Prototype

void rotate_in_xz(Vec3f dst, Vec3f src, s16 yaw);

🔼


rotate_in_yz

Description

Rotates a vector around the YZ-plane by a specified pitch angle. The result is stored in the destination vector (dst). Useful for vertical camera rotations or object transformations

Lua Example

rotate_in_yz(dst, src, pitch)

Parameters

Field Type
dst Vec3f
src Vec3f
pitch integer

Returns

  • None

C Prototype

void rotate_in_yz(Vec3f dst, Vec3f src, s16 pitch);

🔼


scale_along_line

Description

Scales a point along a line between two 3D points (from and to). The scaling factor determines how far along the line the resulting point will be. The result is stored in the destination vector (dest)

Lua Example

scale_along_line(dest, from, to, scale)

Parameters

Field Type
dest Vec3f
from Vec3f
to Vec3f
scale number

Returns

  • None

C Prototype

void scale_along_line(Vec3f dest, Vec3f from, Vec3f to, f32 scale);

🔼


select_mario_cam_mode

Description

Selects the appropriate camera mode for Mario based on the current gameplay context. Adapts camera behavior dynamically to match Mario's environment or state

Lua Example

select_mario_cam_mode()

Parameters

  • None

Returns

  • None

C Prototype

void select_mario_cam_mode(void);

🔼


set_cam_angle

Description

Sets the camera's angle based on the specified mode. Handles rotation and focus adjustments for predefined camera behaviors

Lua Example

local integerValue = set_cam_angle(mode)

Parameters

Field Type
mode integer

Returns

  • integer

C Prototype

s32 set_cam_angle(s32 mode);

🔼


set_camera_mode

Description

Changes the camera to a new mode, optionally interpolating over a specified number of frames. Useful for transitioning between different camera behaviors dynamically

Lua Example

set_camera_mode(c, mode, frames)

Parameters

Field Type
c Camera
mode integer
frames integer

Returns

  • None

C Prototype

void set_camera_mode(struct Camera *c, s16 mode, s16 frames);

🔼


set_camera_mode_fixed

Description

Activates a fixed camera mode and aligns the camera to specific X, Y, Z coordinates. This is useful for predefined static views in specific areas

Lua Example

local integerValue = set_camera_mode_fixed(c, x, y, z)

Parameters

Field Type
c Camera
x integer
y integer
z integer

Returns

  • integer

C Prototype

s32 set_camera_mode_fixed(struct Camera* c, s16 x, s16 y, s16 z);

🔼


set_camera_pitch_shake

Description

Applies a pitch-based shake effect to the camera. The shake's magnitude, decay, and increment are configurable. Simulates vertical disturbances like impacts or explosions

Lua Example

set_camera_pitch_shake(mag, decay, inc)

Parameters

Field Type
mag integer
decay integer
inc integer

Returns

  • None

C Prototype

void set_camera_pitch_shake(s16 mag, s16 decay, s16 inc);

🔼


set_camera_roll_shake

Description

Applies a roll-based shake effect to the camera. Simulates rotational disturbances for dynamic camera effects

Lua Example

set_camera_roll_shake(mag, decay, inc)

Parameters

Field Type
mag integer
decay integer
inc integer

Returns

  • None

C Prototype

void set_camera_roll_shake(s16 mag, s16 decay, s16 inc);

🔼


set_camera_shake_from_hit

Description

Applies a shake effect to the camera based on a hit type. Different shake types simulate various impacts, such as attacks, falls, or shocks

Lua Example

set_camera_shake_from_hit(shake)

Parameters

Field Type
shake integer

Returns

  • None

C Prototype

void set_camera_shake_from_hit(s16 shake);

🔼


set_camera_shake_from_point

Description

Applies a shake effect to the camera, scaled by its proximity to a specified point. The intensity decreases with distance from the point

Lua Example

set_camera_shake_from_point(shake, posX, posY, posZ)

Parameters

Field Type
shake integer
posX number
posY number
posZ number

Returns

  • None

C Prototype

void set_camera_shake_from_point(s16 shake, f32 posX, f32 posY, f32 posZ);

🔼


set_camera_yaw_shake

Description

Applies a yaw-based shake effect to the camera. Simulates horizontal vibrations or rotational impacts

Lua Example

set_camera_yaw_shake(mag, decay, inc)

Parameters

Field Type
mag integer
decay integer
inc integer

Returns

  • None

C Prototype

void set_camera_yaw_shake(s16 mag, s16 decay, s16 inc);

🔼


set_environmental_camera_shake

Description

Applies an environmental shake effect to the camera. Handles predefined shake types triggered by environmental events like explosions or platform movements

Lua Example

set_environmental_camera_shake(shake)

Parameters

Field Type
shake integer

Returns

  • None

C Prototype

void set_environmental_camera_shake(s16 shake);

🔼


set_fixed_cam_axis_sa_lobby

Lua Example

set_fixed_cam_axis_sa_lobby(preset)

Parameters

Field Type
preset integer

Returns

  • None

C Prototype

void set_fixed_cam_axis_sa_lobby(UNUSED s16 preset);

🔼


set_fov_function

Description

Assigns a custom function for dynamic field-of-view adjustments. This allows precise control over the camera's zoom behavior during gameplay

Lua Example

set_fov_function(func)

Parameters

Field Type
func integer

Returns

  • None

C Prototype

void set_fov_function(u8 func);

🔼


set_fov_shake

Description

Applies a field-of-view shake effect to simulate zoom or focus disruptions. Shake parameters, such as amplitude and decay, control the intensity

Lua Example

set_fov_shake(amplitude, decay, shakeSpeed)

Parameters

Field Type
amplitude integer
decay integer
shakeSpeed integer

Returns

  • None

C Prototype

void set_fov_shake(s16 amplitude, s16 decay, s16 shakeSpeed);

🔼


set_fov_shake_from_point_preset

Description

Applies a preset field-of-view shake effect relative to a specific point. The intensity diminishes as the distance from the point increases

Lua Example

set_fov_shake_from_point_preset(preset, posX, posY, posZ)

Parameters

Field Type
preset integer
posX number
posY number
posZ number

Returns

  • None

C Prototype

void set_fov_shake_from_point_preset(u8 preset, f32 posX, f32 posY, f32 posZ);

🔼


set_handheld_shake

Description

Applies a handheld camera shake effect with configurable parameters. Can be used to simulate dynamic, realistic camera movement

Lua Example

set_handheld_shake(mode)

Parameters

Field Type
mode integer

Returns

  • None

C Prototype

void set_handheld_shake(u8 mode);

🔼


set_or_approach_f32_asymptotic

Description

Smoothly transitions or directly sets a floating-point value (dst) to approach a target (goal). Uses asymptotic scaling for gradual adjustments or direct assignment

Lua Example

local integerValue = set_or_approach_f32_asymptotic(dst, goal, scale)

Parameters

Field Type
dst Pointer <number>
goal number
scale number

Returns

  • integer

C Prototype

s32 set_or_approach_f32_asymptotic(f32 *dst, f32 goal, f32 scale);

🔼


set_or_approach_s16_symmetric

Description

Smoothly transitions or directly sets a signed 16-bit value (current) to approach a target (target). Uses symmetric scaling for gradual or immediate adjustments

Lua Example

local integerValue = set_or_approach_s16_symmetric(current, target, increment)

Parameters

Field Type
current Pointer <integer>
target integer
increment integer

Returns

  • integer

C Prototype

s32 set_or_approach_s16_symmetric(s16 *current, s16 target, s16 increment);

🔼


set_or_approach_vec3f_asymptotic

Description

Smoothly transitions a 3D vector (current) toward a target vector (goal) using asymptotic scaling. Allows gradual or instantaneous alignment of 3D positions. Scaling values (the Mul variables) for x, y, and z axes determine the speed of adjustment for each component

Lua Example

set_or_approach_vec3f_asymptotic(dst, goal, xMul, yMul, zMul)

Parameters

Field Type
dst Vec3f
goal Vec3f
xMul number
yMul number
zMul number

Returns

  • None

C Prototype

void set_or_approach_vec3f_asymptotic(Vec3f dst, Vec3f goal, f32 xMul, f32 yMul, f32 zMul);

🔼


set_pitch_shake_from_point

Description

Applies a pitch shake effect to the camera, scaled by proximity to a specified point. Simulates vibrations with intensity decreasing further from the point

Lua Example

set_pitch_shake_from_point(mag, decay, inc, maxDist, posX, posY, posZ)

Parameters

Field Type
mag integer
decay integer
inc integer
maxDist number
posX number
posY number
posZ number

Returns

  • None

C Prototype

void set_pitch_shake_from_point(s16 mag, s16 decay, s16 inc, f32 maxDist, f32 posX, f32 posY, f32 posZ);

🔼


shake_camera_handheld

Description

Activates a handheld camera shake effect. Calculates positional and focus adjustments to simulate manual movement

Lua Example

shake_camera_handheld(pos, focus)

Parameters

Field Type
pos Vec3f
focus Vec3f

Returns

  • None

C Prototype

void shake_camera_handheld(Vec3f pos, Vec3f focus);

🔼


shake_camera_pitch

Description

Activates a pitch-based shake effect. Adds vertical vibrational movement to the camera's behavior

Lua Example

shake_camera_pitch(pos, focus)

Parameters

Field Type
pos Vec3f
focus Vec3f

Returns

  • None

C Prototype

void shake_camera_pitch(Vec3f pos, Vec3f focus);

🔼


shake_camera_roll

Description

Applies a roll-based shake effect to the camera. Simulates rotational disturbances caused by impacts or other events

Lua Example

shake_camera_roll(roll)

Parameters

Field Type
roll Pointer <integer>

Returns

  • None

C Prototype

void shake_camera_roll(s16 *roll);

🔼


shake_camera_yaw

Description

Activates a yaw-based shake effect. Adds horizontal vibrational movement to the camera's behavior

Lua Example

shake_camera_yaw(pos, focus)

Parameters

Field Type
pos Vec3f
focus Vec3f

Returns

  • None

C Prototype

void shake_camera_yaw(Vec3f pos, Vec3f focus);

🔼


skip_camera_interpolation

Description

Skips camera interpolation for a frame, locking the camera instantly to the target position. Useful for immediate changes in camera state or position without smooth transitions

Lua Example

skip_camera_interpolation()

Parameters

  • None

Returns

  • None

C Prototype

void skip_camera_interpolation(void);

🔼


soft_reset_camera

Description

Resets the camera's state while retaining some settings, such as position or mode. This is often used when soft-resetting gameplay without reinitialization

Lua Example

soft_reset_camera(c)

Parameters

Field Type
c Camera

Returns

  • None

C Prototype

void soft_reset_camera(struct Camera* c);

🔼


start_cutscene

Description

Starts a cutscene based on the provided ID. The camera transitions to predefined behaviors for the duration of the cutscene

Lua Example

start_cutscene(c, cutscene)

Parameters

Field Type
c Camera
cutscene integer

Returns

  • None

C Prototype

void start_cutscene(struct Camera *c, u8 cutscene);

🔼


start_object_cutscene_without_focus

Description

Starts a cutscene focused on an object without requiring focus to remain locked. This is useful for dynamic events where the camera adjusts freely

Lua Example

local integerValue = start_object_cutscene_without_focus(cutscene)

Parameters

Field Type
cutscene integer

Returns

  • integer

C Prototype

u8 start_object_cutscene_without_focus(u8 cutscene);

🔼


transition_next_state

Description

Transitions the camera to the next state over a specified number of frames. This is typically used for cutscenes or scripted sequences

Lua Example

transition_next_state(c, frames)

Parameters

Field Type
c Camera
frames integer

Returns

  • None

C Prototype

void transition_next_state(UNUSED struct Camera *c, s16 frames);

🔼


trigger_cutscene_dialog

Description

Triggers a dialog sequence during a cutscene. The dialog is synchronized with the camera's position and movement

Lua Example

local integerValue = trigger_cutscene_dialog(trigger)

Parameters

Field Type
trigger integer

Returns

  • integer

C Prototype

s32 trigger_cutscene_dialog(s32 trigger);

🔼


vec3f_sub

Description

Subtracts one 3D vector (src) from another (dst). Stores the result in the destination vector

Lua Example

vec3f_sub(dst, src)

Parameters

Field Type
dst Vec3f
src Vec3f

Returns

  • None

C Prototype

void vec3f_sub(Vec3f dst, Vec3f src);

🔼


vec3f_to_object_pos

Description

Converts a Vec3f position to an object's internal format. Useful for syncing 3D positions between objects and the game world

Lua Example

vec3f_to_object_pos(o, src)

Parameters

Field Type
o Object
src Vec3f

Returns

  • None

C Prototype

void vec3f_to_object_pos(struct Object *o, Vec3f src);

🔼


warp_camera

Description

Moves the camera to a specified warp destination. This function handles transitions between levels or areas seamlessly

Lua Example

warp_camera(displacementX, displacementY, displacementZ)

Parameters

Field Type
displacementX number
displacementY number
displacementZ number

Returns

  • None

C Prototype

void warp_camera(f32 displacementX, f32 displacementY, f32 displacementZ);

🔼



functions from characters.h


get_character

Lua Example

local CharacterValue = get_character(m)

Parameters

Field Type
m MarioState

Returns

Character

C Prototype

struct Character* get_character(struct MarioState* m);

🔼


get_character_anim

Description

Gets the animation ID to use for a specific character and animation combination. The ID is based on characterAnim and the character currently controlled by Mario (m). Useful for determining which animation to play for actions like walking, jumping, or idle states

Lua Example

local integerValue = get_character_anim(m, characterAnim)

Parameters

Field Type
m MarioState
characterAnim enum CharacterAnimID

Returns

  • integer

C Prototype

s32 get_character_anim(struct MarioState* m, enum CharacterAnimID characterAnim);

🔼


get_character_anim_offset

Description

Calculates the animation offset for Mario's current animation. The offset is determined by the type of animation being played (e.g., hand, feet, or torso movement). Useful for smoothly syncing Mario's model height or positional adjustments during animations

Lua Example

local numberValue = get_character_anim_offset(m)

Parameters

Field Type
m MarioState

Returns

  • number

C Prototype

f32 get_character_anim_offset(struct MarioState* m);

🔼


play_character_sound

Description

Plays a character-specific sound based on the given characterSound value. The sound is tied to Mario's current state (m). Useful for triggering sound effects for actions like jumping or interacting with the environment

Lua Example

play_character_sound(m, characterSound)

Parameters

Field Type
m MarioState
characterSound enum CharacterSound

Returns

  • None

C Prototype

void play_character_sound(struct MarioState* m, enum CharacterSound characterSound);

🔼


play_character_sound_if_no_flag

Description

Plays a character-specific sound only if certain flags are not set. This ensures that sounds are not repeated unnecessarily. The sound is based on characterSound, and the flags are checked using flags. Useful for avoiding duplicate sound effects in rapid succession or conditional actions

Lua Example

play_character_sound_if_no_flag(m, characterSound, flags)

Parameters

Field Type
m MarioState
characterSound enum CharacterSound
flags integer

Returns

  • None

C Prototype

void play_character_sound_if_no_flag(struct MarioState* m, enum CharacterSound characterSound, u32 flags);

🔼


play_character_sound_offset

Description

Plays a character-specific sound with an additional offset, allowing variations or delays in the sound effect. Uses Mario's current state (m). Useful for adding dynamic sound effects or syncing sounds to specific animations or events

Lua Example

play_character_sound_offset(m, characterSound, offset)

Parameters

Field Type
m MarioState
characterSound enum CharacterSound
offset integer

Returns

  • None

C Prototype

void play_character_sound_offset(struct MarioState* m, enum CharacterSound characterSound, u32 offset);

🔼


update_character_anim_offset

Description

Updates Mario's current animation offset. This adjusts Mario's position based on the calculated offset to ensure animations appear smooth and natural. Useful for keeping Mario's animations visually aligned, particularly when transitioning between animations

Lua Example

update_character_anim_offset(m)

Parameters

Field Type
m MarioState

Returns

  • None

C Prototype

void update_character_anim_offset(struct MarioState* m);

🔼



functions from djui_chat_message.h


djui_chat_message_create

Description

Creates a message in the game's chat box

Lua Example

djui_chat_message_create(message)

Parameters

Field Type
message string

Returns

  • None

C Prototype

void djui_chat_message_create(const char* message);

🔼



functions from djui_console.h


djui_console_toggle

Description

Toggles the visibility of the DJUI console

Lua Example

djui_console_toggle()

Parameters

  • None

Returns

  • None

C Prototype

void djui_console_toggle(void);

🔼



functions from djui_hud_utils.h


djui_hud_get_color

Description

Gets the current DJUI HUD color

Lua Example

local DjuiColorValue = djui_hud_get_color()

Parameters

  • None

Returns

DjuiColor

C Prototype

struct DjuiColor* djui_hud_get_color(void);

🔼


djui_hud_get_filter

Description

Gets the current DJUI HUD texture filter

Lua Example

local integerValue = djui_hud_get_filter()

Parameters

  • None

Returns

  • integer

C Prototype

u8 djui_hud_get_filter(void);

🔼


djui_hud_get_font

Description

Gets the current DJUI HUD font

Lua Example

local integerValue = djui_hud_get_font()

Parameters

  • None

Returns

  • integer

C Prototype

u8 djui_hud_get_font(void);

🔼


djui_hud_get_fov_coeff

Description

Gets the camera FOV coefficient

Lua Example

local numberValue = djui_hud_get_fov_coeff()

Parameters

  • None

Returns

  • number

C Prototype

f32 djui_hud_get_fov_coeff();

🔼


djui_hud_get_mouse_x

Description

Returns the x coordinate of the mouse relative to the window

Lua Example

local numberValue = djui_hud_get_mouse_x()

Parameters

  • None

Returns

  • number

C Prototype

f32 djui_hud_get_mouse_x(void);

🔼


djui_hud_get_mouse_y

Description

Returns the y coordinate of the mouse relative to the window

Lua Example

local numberValue = djui_hud_get_mouse_y()

Parameters

  • None

Returns

  • number

C Prototype

f32 djui_hud_get_mouse_y(void);

🔼


djui_hud_get_raw_mouse_x

Description

Returns the x coordinate of the mouse relative to the screen

Lua Example

local numberValue = djui_hud_get_raw_mouse_x()

Parameters

  • None

Returns

  • number

C Prototype

f32 djui_hud_get_raw_mouse_x(void);

🔼


djui_hud_get_raw_mouse_y

Description

Returns the y coordinate of the mouse relative to the screen

Lua Example

local numberValue = djui_hud_get_raw_mouse_y()

Parameters

  • None

Returns

  • number

C Prototype

f32 djui_hud_get_raw_mouse_y(void);

🔼


djui_hud_get_resolution

Description

Gets the current DJUI HUD resolution

Lua Example

local integerValue = djui_hud_get_resolution()

Parameters

  • None

Returns

  • integer

C Prototype

u8 djui_hud_get_resolution(void);

🔼


djui_hud_get_rotation

Description

Gets the current DJUI HUD rotation

Lua Example

local HudUtilsRotationValue = djui_hud_get_rotation()

Parameters

  • None

Returns

HudUtilsRotation

C Prototype

struct HudUtilsRotation* djui_hud_get_rotation(void);

🔼


djui_hud_get_screen_height

Description

Gets the screen height in the current DJUI HUD resolution

Lua Example

local integerValue = djui_hud_get_screen_height()

Parameters

  • None

Returns

  • integer

C Prototype

u32 djui_hud_get_screen_height(void);

🔼


djui_hud_get_screen_width

Description

Gets the screen width in the current DJUI HUD resolution

Lua Example

local integerValue = djui_hud_get_screen_width()

Parameters

  • None

Returns

  • integer

C Prototype

u32 djui_hud_get_screen_width(void);

🔼


djui_hud_is_pause_menu_created

Description

Checks if the DJUI pause menu is created

Lua Example

local booleanValue = djui_hud_is_pause_menu_created()

Parameters

  • None

Returns

  • boolean

C Prototype

bool djui_hud_is_pause_menu_created(void);

🔼


djui_hud_measure_text

Description

Measures the length of message in the current font

Lua Example

local numberValue = djui_hud_measure_text(message)

Parameters

Field Type
message string

Returns

  • number

C Prototype

f32 djui_hud_measure_text(const char* message);

🔼


djui_hud_print_text

Description

Prints DJUI HUD text onto the screen

Lua Example

djui_hud_print_text(message, x, y, scale)

Parameters

Field Type
message string
x number
y number
scale number

Returns

  • None

C Prototype

void djui_hud_print_text(const char* message, f32 x, f32 y, f32 scale);

🔼


djui_hud_print_text_interpolated

Description

Prints interpolated DJUI HUD text onto the screen

Lua Example

djui_hud_print_text_interpolated(message, prevX, prevY, prevScale, x, y, scale)

Parameters

Field Type
message string
prevX number
prevY number
prevScale number
x number
y number
scale number

Returns

  • None

C Prototype

void djui_hud_print_text_interpolated(const char* message, f32 prevX, f32 prevY, f32 prevScale, f32 x, f32 y, f32 scale);

🔼


djui_hud_render_rect

Description

Renders a DJUI HUD rect onto the screen

Lua Example

djui_hud_render_rect(x, y, width, height)

Parameters

Field Type
x number
y number
width number
height number

Returns

  • None

C Prototype

void djui_hud_render_rect(f32 x, f32 y, f32 width, f32 height);

🔼


djui_hud_render_rect_interpolated

Description

Renders an interpolated DJUI HUD rect onto the screen

Lua Example

djui_hud_render_rect_interpolated(prevX, prevY, prevWidth, prevHeight, x, y, width, height)

Parameters

Field Type
prevX number
prevY number
prevWidth number
prevHeight number
x number
y number
width number
height number

Returns

  • None

C Prototype

void djui_hud_render_rect_interpolated(f32 prevX, f32 prevY, f32 prevWidth, f32 prevHeight, f32 x, f32 y, f32 width, f32 height);

🔼


djui_hud_reset_color

Description

Resets the current DJUI HUD color

Lua Example

djui_hud_reset_color()

Parameters

  • None

Returns

  • None

C Prototype

void djui_hud_reset_color(void);

🔼


djui_hud_set_color

Description

Sets the current DJUI HUD color

Lua Example

djui_hud_set_color(r, g, b, a)

Parameters

Field Type
r integer
g integer
b integer
a integer

Returns

  • None

C Prototype

void djui_hud_set_color(u8 r, u8 g, u8 b, u8 a);

🔼


djui_hud_set_filter

Description

Sets the current DJUI HUD texture filter

Lua Example

djui_hud_set_filter(filterType)

Parameters

Field Type
filterType enum HudUtilsFilter

Returns

  • None

C Prototype

void djui_hud_set_filter(enum HudUtilsFilter filterType);

🔼


djui_hud_set_font

Description

Sets the current DJUI HUD font

Lua Example

djui_hud_set_font(fontType)

Parameters

Field Type
fontType integer

Returns

  • None

C Prototype

void djui_hud_set_font(s8 fontType);

🔼


djui_hud_set_mouse_locked

Description

Sets if the cursor is hidden and constrainted to the window

Lua Example

djui_hud_set_mouse_locked(locked)

Parameters

Field Type
locked boolean

Returns

  • None

C Prototype

void djui_hud_set_mouse_locked(bool locked);

🔼


djui_hud_set_resolution

Description

Sets the current DJUI HUD resolution

Lua Example

djui_hud_set_resolution(resolutionType)

Parameters

Field Type
resolutionType enum HudUtilsResolution

Returns

  • None

C Prototype

void djui_hud_set_resolution(enum HudUtilsResolution resolutionType);

🔼


djui_hud_set_rotation

Description

Sets the current DJUI HUD rotation

Lua Example

djui_hud_set_rotation(rotation, pivotX, pivotY)

Parameters

Field Type
rotation integer
pivotX number
pivotY number

Returns

  • None

C Prototype

void djui_hud_set_rotation(s16 rotation, f32 pivotX, f32 pivotY);

🔼


djui_hud_set_rotation_interpolated

Description

Sets the current DJUI HUD rotation interpolated

Lua Example

djui_hud_set_rotation_interpolated(prevRotation, prevPivotX, prevPivotY, rotation, pivotX, pivotY)

Parameters

Field Type
prevRotation integer
prevPivotX number
prevPivotY number
rotation integer
pivotX number
pivotY number

Returns

  • None

C Prototype

void djui_hud_set_rotation_interpolated(s32 prevRotation, f32 prevPivotX, f32 prevPivotY, s32 rotation, f32 pivotX, f32 pivotY);

🔼


djui_hud_world_pos_to_screen_pos

Description

Converts a world position to screen position

Lua Example

local booleanValue = djui_hud_world_pos_to_screen_pos(pos, out)

Parameters

Field Type
pos Vec3f
out Vec3f

Returns

  • boolean

C Prototype

bool djui_hud_world_pos_to_screen_pos(Vec3f pos, Vec3f out);

🔼


djui_open_pause_menu

Description

Opens the DJUI pause menu

Lua Example

djui_open_pause_menu()

Parameters

  • None

Returns

  • None

C Prototype

void djui_open_pause_menu(void);

🔼


get_current_fov

Description

Gets the current camera FOV

Lua Example

local numberValue = get_current_fov()

Parameters

  • None

Returns

  • number

C Prototype

f32 get_current_fov();

🔼



functions from djui_language.h


djui_language_get

Description

Gets a language key from a section

Lua Example

local stringValue = djui_language_get(section, key)

Parameters

Field Type
section string
key string

Returns

  • string

C Prototype

char* djui_language_get(const char *section, const char *key);

🔼



functions from djui_panel_menu.h


djui_menu_get_rainbow_string_color

Description

Gets the header hex color code from a DJUI_RAINBOW_COLOR_* constant

Lua Example

local stringValue = djui_menu_get_rainbow_string_color(color)

Parameters

Field Type
color enum DjuiRainbowColor

Returns

  • string

C Prototype

char* djui_menu_get_rainbow_string_color(enum DjuiRainbowColor color);

🔼



functions from djui_popup.h


djui_popup_create

Description

Creates a popup that says message and has lines

Lua Example

djui_popup_create(message, lines)

Parameters

Field Type
message string
lines integer

Returns

  • None

C Prototype

void djui_popup_create(const char* message, int lines);

🔼



functions from external.h


drop_queued_background_music

Description

Drops any queued background music

Lua Example

drop_queued_background_music()

Parameters

  • None

Returns

  • None

C Prototype

void drop_queued_background_music(void);

🔼


fade_volume_scale

Description

Fades the volume of player to targetScale (0-127) over fadeDuration

Lua Example

fade_volume_scale(player, targetScale, fadeDuration)

Parameters

Field Type
player integer
targetScale integer
fadeDuration integer

Returns

  • None

C Prototype

void fade_volume_scale(u8 player, u8 targetScale, u16 fadeDuration);

🔼


fadeout_background_music

Description

Fades out background music seqId over fadeOut

Lua Example

fadeout_background_music(seqId, fadeOut)

Parameters

Field Type
seqId integer
fadeOut integer

Returns

  • None

C Prototype

void fadeout_background_music(u16 seqId, u16 fadeOut);

🔼


get_current_background_music

Description

Gets the current background music

Lua Example

local integerValue = get_current_background_music()

Parameters

  • None

Returns

  • integer

C Prototype

u16 get_current_background_music(void);

🔼


get_current_background_music_default_volume

Description

Gets the current background music's default volume

Lua Example

local integerValue = get_current_background_music_default_volume()

Parameters

  • None

Returns

  • integer

C Prototype

u8 get_current_background_music_default_volume(void);

🔼


get_current_background_music_max_target_volume

Description

Gets the current max target volume

Lua Example

local integerValue = get_current_background_music_max_target_volume()

Parameters

  • None

Returns

  • integer

C Prototype

u8 get_current_background_music_max_target_volume(void);

🔼


get_current_background_music_target_volume

Description

Gets the current target volume

Lua Example

local integerValue = get_current_background_music_target_volume()

Parameters

  • None

Returns

  • integer

C Prototype

u8 get_current_background_music_target_volume(void);

🔼


get_sound_pan

Lua Example

local numberValue = get_sound_pan(x, z)

Parameters

Field Type
x number
z number

Returns

  • number

C Prototype

f32 get_sound_pan(f32 x, f32 z);

🔼


is_current_background_music_volume_lowered

Description

Checks if the current background music is lowered

Lua Example

local integerValue = is_current_background_music_volume_lowered()

Parameters

  • None

Returns

  • integer

C Prototype

u8 is_current_background_music_volume_lowered(void);

🔼


play_course_clear

Description

Plays the star collect fanfare (this function's name was mixed up with the other)

Lua Example

play_course_clear()

Parameters

  • None

Returns

  • None

C Prototype

void play_course_clear(void);

🔼


play_dialog_sound

Description

Plays a dialog sound corresponding to dialogID

Lua Example

play_dialog_sound(dialogID)

Parameters

Field Type
dialogID integer

Returns

  • None

C Prototype

void play_dialog_sound(u8 dialogID);

🔼


play_music

Description

Plays fading in music (seqArgs) on player over fadeTimer

Lua Example

play_music(player, seqArgs, fadeTimer)

Parameters

Field Type
player integer
seqArgs integer
fadeTimer integer

Returns

  • None

C Prototype

void play_music(u8 player, u16 seqArgs, u16 fadeTimer);

🔼


play_peachs_jingle

Description

Plays Peach's letter jingle

Lua Example

play_peachs_jingle()

Parameters

  • None

Returns

  • None

C Prototype

void play_peachs_jingle(void);

🔼


play_power_star_jingle

Description

Plays the power star jingle, set keepBackgroundMusic to 0 to mute background music

Lua Example

play_power_star_jingle(keepBackgroundMusic)

Parameters

Field Type
keepBackgroundMusic integer

Returns

  • None

C Prototype

void play_power_star_jingle(u8 keepBackgroundMusic);

🔼


play_puzzle_jingle

Description

Plays the puzzle jingle

Lua Example

play_puzzle_jingle()

Parameters

  • None

Returns

  • None

C Prototype

void play_puzzle_jingle(void);

🔼


play_race_fanfare

Description

Plays the race fanfare when a race is started

Lua Example

play_race_fanfare()

Parameters

  • None

Returns

  • None

C Prototype

void play_race_fanfare(void);

🔼


play_secondary_music

Description

Plays fading in secondary music seqId at volume over fadeTimer and sets the current background music's volume to bgMusicVolume

Lua Example

play_secondary_music(seqId, bgMusicVolume, volume, fadeTimer)

Parameters

Field Type
seqId integer
bgMusicVolume integer
volume integer
fadeTimer integer

Returns

  • None

C Prototype

void play_secondary_music(u8 seqId, u8 bgMusicVolume, u8 volume, u16 fadeTimer);

🔼


play_sound

Description

Plays a sound (soundBits) at pos (usually gGlobalSoundSource or m.header.gfx.cameraToObject)

Lua Example

play_sound(soundBits, pos)

Parameters

Field Type
soundBits integer
pos Vec3f

Returns

  • None

C Prototype

void play_sound(s32 soundBits, f32 *pos);

🔼


play_sound_with_freq_scale

Description

Plays a sound (soundBits) with freqScale at pos (usually gGlobalSoundSource or m.header.gfx.cameraToObject)

Lua Example

play_sound_with_freq_scale(soundBits, pos, freqScale)

Parameters

Field Type
soundBits integer
pos Vec3f
freqScale number

Returns

  • None

C Prototype

void play_sound_with_freq_scale(s32 soundBits, f32* pos, f32 freqScale);

🔼


play_star_fanfare

Description

Plays the course clear fanfare (this function's name was mixed up with the other)

Lua Example

play_star_fanfare()

Parameters

  • None

Returns

  • None

C Prototype

void play_star_fanfare(void);

🔼


play_toads_jingle

Description

Plays Toad's jingle

Lua Example

play_toads_jingle()

Parameters

  • None

Returns

  • None

C Prototype

void play_toads_jingle(void);

🔼


seq_player_fade_out

Description

Fades out player with fadeDuration

Lua Example

seq_player_fade_out(player, fadeDuration)

Parameters

Field Type
player integer
fadeDuration integer

Returns

  • None

C Prototype

void seq_player_fade_out(u8 player, u16 fadeDuration);

🔼


seq_player_lower_volume

Description

Fades the volume of player to percentage over fadeDuration

Lua Example

seq_player_lower_volume(player, fadeDuration, percentage)

Parameters

Field Type
player integer
fadeDuration integer
percentage integer

Returns

  • None

C Prototype

void seq_player_lower_volume(u8 player, u16 fadeDuration, u8 percentage);

🔼


seq_player_unlower_volume

Description

Unfades the volume of player over fadeDuration

Lua Example

seq_player_unlower_volume(player, fadeDuration)

Parameters

Field Type
player integer
fadeDuration integer

Returns

  • None

C Prototype

void seq_player_unlower_volume(u8 player, u16 fadeDuration);

🔼


set_audio_fadeout

Description

Sets the fadeOutTime of audio

Lua Example

set_audio_fadeout(fadeOutTime)

Parameters

Field Type
fadeOutTime integer

Returns

  • None

C Prototype

void set_audio_fadeout(u16 fadeOutTime);

🔼


set_audio_muted

Description

Sets the muted status of all sequence players

Lua Example

set_audio_muted(muted)

Parameters

Field Type
muted integer

Returns

  • None

C Prototype

void set_audio_muted(u8 muted);

🔼


set_sound_moving_speed

Description

Sets the speed of moving bank

Lua Example

set_sound_moving_speed(bank, speed)

Parameters

Field Type
bank integer
speed integer

Returns

  • None

C Prototype

void set_sound_moving_speed(u8 bank, u8 speed);

🔼


sound_banks_disable

Description

Enables bankMask soundbanks in player

Lua Example

sound_banks_disable(player, bankMask)

Parameters

Field Type
player integer
bankMask integer

Returns

  • None

C Prototype

void sound_banks_disable(u8 player, u16 bankMask);

🔼


sound_banks_enable

Description

Disables bankMask soundbanks in player

Lua Example

sound_banks_enable(player, bankMask)

Parameters

Field Type
player integer
bankMask integer

Returns

  • None

C Prototype

void sound_banks_enable(u8 player, u16 bankMask);

🔼


sound_get_level_intensity

Lua Example

local numberValue = sound_get_level_intensity(distance)

Parameters

Field Type
distance number

Returns

  • number

C Prototype

f32 sound_get_level_intensity(f32 distance);

🔼


sound_reset_background_music_default_volume

Lua Example

sound_reset_background_music_default_volume(seqId)

Parameters

Field Type
seqId integer

Returns

  • None

C Prototype

void sound_reset_background_music_default_volume(u8 seqId);

🔼


sound_set_background_music_default_volume

Lua Example

sound_set_background_music_default_volume(seqId, volume)

Parameters

Field Type
seqId integer
volume integer

Returns

  • None

C Prototype

void sound_set_background_music_default_volume(u8 seqId, u8 volume);

🔼


stop_background_music

Description

Stops background music seqId

Lua Example

stop_background_music(seqId)

Parameters

Field Type
seqId integer

Returns

  • None

C Prototype

void stop_background_music(u16 seqId);

🔼


stop_secondary_music

Description

Fades out secondary music over fadeTimer

Lua Example

stop_secondary_music(fadeTimer)

Parameters

Field Type
fadeTimer integer

Returns

  • None

C Prototype

void stop_secondary_music(u16 fadeTimer);

🔼


stop_sound

Description

Stops a sound (soundBits) at pos (usually gGlobalSoundSource or m.header.gfx.cameraToObject)

Lua Example

stop_sound(soundBits, pos)

Parameters

Field Type
soundBits integer
pos Vec3f

Returns

  • None

C Prototype

void stop_sound(u32 soundBits, f32 *pos);

🔼


stop_sounds_from_source

Description

Stops sounds from pos (usually gGlobalSoundSource or m.header.gfx.cameraToObject)

Lua Example

stop_sounds_from_source(pos)

Parameters

Field Type
pos Vec3f

Returns

  • None

C Prototype

void stop_sounds_from_source(f32 *pos);

🔼


stop_sounds_in_continuous_banks

Description

Stops sounds in sound banks moving, env, and air

Lua Example

stop_sounds_in_continuous_banks()

Parameters

  • None

Returns

  • None

C Prototype

void stop_sounds_in_continuous_banks(void);

🔼



functions from first_person_cam.h


first_person_check_cancels

Description

Checks common cancels for first person

Lua Example

local booleanValue = first_person_check_cancels(m)

Parameters

Field Type
m MarioState

Returns

  • boolean

C Prototype

bool first_person_check_cancels(struct MarioState *m);

🔼


first_person_reset

Description

Resets first person

Lua Example

first_person_reset()

Parameters

  • None

Returns

  • None

C Prototype

void first_person_reset(void);

🔼


get_first_person_enabled

Description

Checks if first person is enabled

Lua Example

local booleanValue = get_first_person_enabled()

Parameters

  • None

Returns

  • boolean

C Prototype

bool get_first_person_enabled(void);

🔼


set_first_person_enabled

Description

Sets if first person is enabled

Lua Example

set_first_person_enabled(enable)

Parameters

Field Type
enable boolean

Returns

  • None

C Prototype

void set_first_person_enabled(bool enable);

🔼



functions from ingame_menu.h


create_dialog_box

Lua Example

create_dialog_box(dialog)

Parameters

Field Type
dialog integer

Returns

  • None

C Prototype

void create_dialog_box(s16 dialog);

🔼


create_dialog_box_with_response

Lua Example

create_dialog_box_with_response(dialog)

Parameters

Field Type
dialog integer

Returns

  • None

C Prototype

void create_dialog_box_with_response(s16 dialog);

🔼


create_dialog_box_with_var

Lua Example

create_dialog_box_with_var(dialog, dialogVar)

Parameters

Field Type
dialog integer
dialogVar integer

Returns

  • None

C Prototype

void create_dialog_box_with_var(s16 dialog, s32 dialogVar);

🔼


create_dialog_inverted_box

Lua Example

create_dialog_inverted_box(dialog)

Parameters

Field Type
dialog integer

Returns

  • None

C Prototype

void create_dialog_inverted_box(s16 dialog);

🔼


reset_dialog_override_color

Lua Example

reset_dialog_override_color()

Parameters

  • None

Returns

  • None

C Prototype

void reset_dialog_override_color();

🔼


reset_dialog_override_pos

Lua Example

reset_dialog_override_pos()

Parameters

  • None

Returns

  • None

C Prototype

void reset_dialog_override_pos();

🔼


reset_dialog_render_state

Lua Example

reset_dialog_render_state()

Parameters

  • None

Returns

  • None

C Prototype

void reset_dialog_render_state(void);

🔼


set_dialog_override_color

Lua Example

set_dialog_override_color(bgR, bgG, bgB, bgA, textR, textG, textB, textA)

Parameters

Field Type
bgR integer
bgG integer
bgB integer
bgA integer
textR integer
textG integer
textB integer
textA integer

Returns

  • None

C Prototype

void set_dialog_override_color(u8 bgR, u8 bgG, u8 bgB, u8 bgA, u8 textR, u8 textG, u8 textB, u8 textA);

🔼


set_dialog_override_pos

Lua Example

set_dialog_override_pos(x, y)

Parameters

Field Type
x integer
y integer

Returns

  • None

C Prototype

void set_dialog_override_pos(s16 x, s16 y);

🔼


set_menu_mode

Lua Example

set_menu_mode(mode)

Parameters

Field Type
mode integer

Returns

  • None

C Prototype

void set_menu_mode(s16 mode);

🔼


set_min_dialog_width

Lua Example

set_min_dialog_width(width)

Parameters

Field Type
width integer

Returns

  • None

C Prototype

void set_min_dialog_width(s16 width);

🔼



functions from interaction.h


determine_interaction

Description

Determines how Mario interacts with a given object based on his current action, position, and other state variables. Calculates the appropriate interaction type (e.g., punch, kick, ground pound) that should result from Mario's contact with the specified object (o). Useful for handling different types of player-object collisions, attacks, and object behaviors

Lua Example

local integerValue = determine_interaction(m, o)

Parameters

Field Type
m MarioState
o Object

Returns

  • integer

C Prototype

u32 determine_interaction(struct MarioState *m, struct Object *o);

🔼


does_mario_have_normal_cap_on_head

Description

Checks if Mario is currently wearing his normal cap on his head. Returns true if Mario's flag state matches that of having the normal cap equipped on his head, otherwise false. Useful for determining Mario's cap status

Lua Example

local integerValue = does_mario_have_normal_cap_on_head(m)

Parameters

Field Type
m MarioState

Returns

  • integer

C Prototype

u32 does_mario_have_normal_cap_on_head(struct MarioState *m);

🔼


get_door_save_file_flag

Description

Retrieves the save file flag associated with a door, based on the number of stars required to open it. Used to check if the player has unlocked certain star doors or progressed far enough to access new areas

Lua Example

local integerValue = get_door_save_file_flag(door)

Parameters

Field Type
door Object

Returns

  • integer

C Prototype

u32 get_door_save_file_flag(struct Object *door);

🔼


get_mario_cap_flag

Description

Determines the type of cap an object represents. Depending on the object's behavior, it returns a cap type (normal, metal, wing, vanish). Useful for handling the logic of picking up, wearing, or losing different kinds of caps

Lua Example

local integerValue = get_mario_cap_flag(capObject)

Parameters

Field Type
capObject Object

Returns

  • integer

C Prototype

u32 get_mario_cap_flag(struct Object *capObject);

🔼


interact_bbh_entrance

Description

Handles Mario's interaction with the Boo's Big Haunt (BBH) entrance object. When Mario tries to enter the BBH area, this function determines the resulting action (e.g., a jump or spin entrance)

Lua Example

local integerValue = interact_bbh_entrance(m, interactType, o)

Parameters

Field Type
m MarioState
interactType integer
o Object

Returns

  • integer

C Prototype

u32 interact_bbh_entrance(struct MarioState *m, UNUSED u32 interactType, struct Object *o);

🔼


interact_bounce_top

Description

Handles interactions where Mario bounces off the top of an object (e.g., Goombas, Koopas). Checks if Mario attacks the object from above and applies the appropriate knockback, sound effects, and object state changes. Useful for enemy defeat mechanics and platform bouncing

Lua Example

local integerValue = interact_bounce_top(m, interactType, o)

Parameters

Field Type
m MarioState
interactType integer
o Object

Returns

  • integer

C Prototype

u32 interact_bounce_top(struct MarioState *m, UNUSED u32 interactType, struct Object *o);

🔼


interact_breakable

Description

Handles interactions with breakable objects (e.g., breakable boxes or bob-ombs). If Mario hits the object with a valid attack (like a punch or kick), the object is destroyed or changes state. Useful for managing collectible items hidden in breakable objects and level progression through destructible blocks or walls

Lua Example

local integerValue = interact_breakable(m, interactType, o)

Parameters

Field Type
m MarioState
interactType integer
o Object

Returns

  • integer

C Prototype

u32 interact_breakable(struct MarioState *m, UNUSED u32 interactType, struct Object *o);

🔼


interact_bully

Description

Handles interaction with Bully enemies. Determines if Mario attacks the Bully or gets knocked back. Updates Mario's velocity and state accordingly, and can defeat the Bully if attacked successfully. Useful for enemy encounters that involve pushing and shoving mechanics rather than just stomping like the bullies

Lua Example

local integerValue = interact_bully(m, interactType, o)

Parameters

Field Type
m MarioState
interactType integer
o Object

Returns

  • integer

C Prototype

u32 interact_bully(struct MarioState *m, UNUSED u32 interactType, struct Object *o);

🔼


interact_cannon_base

Description

Handles interaction when Mario touches a cannon base. If the cannon is ready, Mario enters the cannon, triggering a special action and camera behavior. Useful for transitioning to cannon-aiming mode and enabling cannon travel within levels

Lua Example

local integerValue = interact_cannon_base(m, interactType, o)

Parameters

Field Type
m MarioState
interactType integer
o Object

Returns

  • integer

C Prototype

u32 interact_cannon_base(struct MarioState *m, UNUSED u32 interactType, struct Object *o);

🔼


interact_cap

Description

Handles interaction when Mario picks up a cap object. This includes normal caps, wing caps, vanish caps, and metal caps. Updates Mario's state (e.g., cap timers, sound effects) and may initiate putting on the cap animation. Useful for managing cap statuses

Lua Example

local integerValue = interact_cap(m, interactType, o)

Parameters

Field Type
m MarioState
interactType integer
o Object

Returns

  • integer

C Prototype

u32 interact_cap(struct MarioState *m, UNUSED u32 interactType, struct Object *o);

🔼


interact_clam_or_bubba

Description

Handles interactions with objects like Clams or Bubbas, which can damage Mario or, in Bubba's case, eat Mario. If Bubba eats Mario, it triggers a unique "caught" action. Otherwise, it deals damage and knockback if hit by a Clam

Lua Example

local integerValue = interact_clam_or_bubba(m, interactType, o)

Parameters

Field Type
m MarioState
interactType integer
o Object

Returns

  • integer

C Prototype

u32 interact_clam_or_bubba(struct MarioState *m, UNUSED u32 interactType, struct Object *o);

🔼


interact_coin

Description

Handles Mario's interaction with coins. Collecting a coin increases Mario's coin count and heals him slightly. Useful for score, and coin management

Lua Example

local integerValue = interact_coin(m, interactType, o)

Parameters

Field Type
m MarioState
interactType integer
o Object

Returns

  • integer

C Prototype

u32 interact_coin(struct MarioState *m, UNUSED u32 interactType, struct Object *o);

🔼


interact_damage

Description

Handles damaging interactions from various objects (e.g., enemies, hazards). If Mario takes damage, it applies knockback and reduces health. Useful for enemy attacks, environmental hazards, and managing damage related behaviors

Lua Example

local integerValue = interact_damage(m, interactType, o)

Parameters

Field Type
m MarioState
interactType integer
o Object

Returns

  • integer

C Prototype

u32 interact_damage(struct MarioState *m, UNUSED u32 interactType, struct Object *o);

🔼


interact_door

Description

Handles interaction when Mario touches a door. If Mario meets the star requirement or has the key, he can unlock/open the door. Otherwise, it may display dialog indicating the requirement. Useful for controlling access to locked areas and providing progression gating in the game

Lua Example

local integerValue = interact_door(m, interactType, o)

Parameters

Field Type
m MarioState
interactType integer
o Object

Returns

  • integer

C Prototype

u32 interact_door(struct MarioState *m, UNUSED u32 interactType, struct Object *o);

🔼


interact_flame

Description

Handles interaction with flame objects. If Mario touches a flame and is not invulnerable or protected by certain caps, he takes damage and may be set on fire, causing a burning jump. Useful for simulating fire damage and hazards in levels

Lua Example

local integerValue = interact_flame(m, interactType, o)

Parameters

Field Type
m MarioState
interactType integer
o Object

Returns

  • integer

C Prototype

u32 interact_flame(struct MarioState *m, UNUSED u32 interactType, struct Object *o);

🔼


interact_grabbable

Description

Handles interaction with grabbable objects (e.g., crates, small enemies, or Bowser). Checks if Mario can pick up the object and initiates the grab action if possible. Useful for course mechanics, throwing items, and Bowser

Lua Example

local integerValue = interact_grabbable(m, interactType, o)

Parameters

Field Type
m MarioState
interactType integer
o Object

Returns

  • integer

C Prototype

u32 interact_grabbable(struct MarioState *m, u32 interactType, struct Object *o);

🔼


interact_hit_from_below

Description

Handles interactions where Mario hits an object from below (e.g., hitting a block from underneath). Determines if Mario damages/destroys the object, or if it damages Mario. Useful for handling upward attacks, hitting coin blocks, or interacting with certain NPCs from below

Lua Example

local integerValue = interact_hit_from_below(m, interactType, o)

Parameters

Field Type
m MarioState
interactType integer
o Object

Returns

  • integer

C Prototype

u32 interact_hit_from_below(struct MarioState *m, UNUSED u32 interactType, struct Object *o);

🔼


interact_hoot

Description

Handles interaction with Hoot, the owl. If Mario can grab onto Hoot, this sets Mario onto a riding action, allowing him to fly around the level. Useful for special traversal mechanics and shortcuts within a course

Lua Example

local integerValue = interact_hoot(m, interactType, o)

Parameters

Field Type
m MarioState
interactType integer
o Object

Returns

  • integer

C Prototype

u32 interact_hoot(struct MarioState *m, UNUSED u32 interactType, struct Object *o);

🔼


interact_igloo_barrier

Description

Handles interaction with the igloo barrier found in Snowman's Land. If Mario runs into the barrier, this function pushes him away and prevents passage without the vanish cap. Useful for enforcing require-caps to access certain areas

Lua Example

local integerValue = interact_igloo_barrier(m, interactType, o)

Parameters

Field Type
m MarioState
interactType integer
o Object

Returns

  • integer

C Prototype

u32 interact_igloo_barrier(struct MarioState *m, UNUSED u32 interactType, struct Object *o);

🔼


interact_koopa_shell

Description

Handles interaction when Mario touches a Koopa Shell. If conditions are met, Mario can hop onto the shell and start riding it, changing his movement mechanics. Useful for implementing Koopa Shell behavior

Lua Example

local integerValue = interact_koopa_shell(m, interactType, o)

Parameters

Field Type
m MarioState
interactType integer
o Object

Returns

  • integer

C Prototype

u32 interact_koopa_shell(struct MarioState *m, UNUSED u32 interactType, struct Object *o);

🔼


interact_mr_blizzard

Description

Handles interaction with Mr. Blizzard (the snowman enemy) or similar objects. If Mario is attacked or collides with Mr. Blizzard, it applies damage and knockback if not protected or attacking

Lua Example

local integerValue = interact_mr_blizzard(m, interactType, o)

Parameters

Field Type
m MarioState
interactType integer
o Object

Returns

  • integer

C Prototype

u32 interact_mr_blizzard(struct MarioState *m, UNUSED u32 interactType, struct Object *o);

🔼


interact_player

Description

Handles interaction with another player (in multiplayer scenarios). Checks if Mario and another player collide and resolves any special behavior like bouncing on top. Useful for multiplayer interactions, such as PvP or cooperative gameplay mechanics

Lua Example

local integerValue = interact_player(m, interactType, o)

Parameters

Field Type
m MarioState
interactType integer
o Object

Returns

  • integer

C Prototype

u32 interact_player(struct MarioState* m, UNUSED u32 interactType, struct Object* o);

🔼


interact_pole

Description

Handles interaction with poles (e.g., climbing poles). If Mario runs into a vertical pole, he can grab it and start climbing. Useful for platforming mechanics

Lua Example

local integerValue = interact_pole(m, interactType, o)

Parameters

Field Type
m MarioState
interactType integer
o Object

Returns

  • integer

C Prototype

u32 interact_pole(struct MarioState *m, UNUSED u32 interactType, struct Object *o);

🔼


interact_shock

Description

Handles interaction with shocking objects. If Mario touches an electrified enemy or hazard, he takes damage and may be stunned or shocked. Useful for electric-themed enemies and obstacles

Lua Example

local integerValue = interact_shock(m, interactType, o)

Parameters

Field Type
m MarioState
interactType integer
o Object

Returns

  • integer

C Prototype

u32 interact_shock(struct MarioState *m, UNUSED u32 interactType, struct Object *o);

🔼


interact_snufit_bullet

Description

Handles interaction with Snufit bullets (projectiles fired by certain enemies). If Mario is not protected, he takes damage. Otherwise, the bullet can be destroyed

Lua Example

local integerValue = interact_snufit_bullet(m, interactType, o)

Parameters

Field Type
m MarioState
interactType integer
o Object

Returns

  • integer

C Prototype

u32 interact_snufit_bullet(struct MarioState *m, UNUSED u32 interactType, struct Object *o);

🔼


interact_spiny_walking

Description

Handles interaction with Spiny-walking enemies. If Mario attacks it (e.g., by punching), the enemy is hurt. If he fails to attack properly (say bouncing on top), Mario takes damage and knockback. Useful for enemies that cannot be stomped from above and require direct attacks

Lua Example

local integerValue = interact_spiny_walking(m, interactType, o)

Parameters

Field Type
m MarioState
interactType integer
o Object

Returns

  • integer

C Prototype

u32 interact_spiny_walking(struct MarioState *m, UNUSED u32 interactType, struct Object *o);

🔼


interact_star_or_key

Description

Handles interaction with Stars or Keys. If Mario collects a star or key, it triggers a specific star grab cutscene and progression is updated. Also handles no-exit variants (like the wing cap stage star). Useful for the main progression system of collecting Stars and unlocking new areas

Lua Example

local integerValue = interact_star_or_key(m, interactType, o)

Parameters

Field Type
m MarioState
interactType integer
o Object

Returns

  • integer

C Prototype

u32 interact_star_or_key(struct MarioState *m, UNUSED u32 interactType, struct Object *o);

🔼


interact_strong_wind

Description

Handles interaction with strong wind gusts. These gusts push Mario back, often knocking him off platforms or sending him flying backwards. Useful for environmental wind hazards

Lua Example

local integerValue = interact_strong_wind(m, interactType, o)

Parameters

Field Type
m MarioState
interactType integer
o Object

Returns

  • integer

C Prototype

u32 interact_strong_wind(struct MarioState *m, UNUSED u32 interactType, struct Object *o);

🔼


interact_text

Description

Handles interaction with signs, NPCs, and other text-bearing objects. If Mario presses the interact button facing them, he enters a dialog reading state. Useful for managing hints, story elements, or gameplay instructions through in-game dialogue

Lua Example

local integerValue = interact_text(m, interactType, o)

Parameters

Field Type
m MarioState
interactType integer
o Object

Returns

  • integer

C Prototype

u32 interact_text(struct MarioState *m, UNUSED u32 interactType, struct Object *o);

🔼


interact_tornado

Description

Handles interaction with tornados. If Mario touches a tornado, he enters a spinning twirl action, losing control temporarily. Useful for desert levels or areas where environmental hazards lift Mario into the air

Lua Example

local integerValue = interact_tornado(m, interactType, o)

Parameters

Field Type
m MarioState
interactType integer
o Object

Returns

  • integer

C Prototype

u32 interact_tornado(struct MarioState *m, UNUSED u32 interactType, struct Object *o);

🔼


interact_warp

Description

Handles interaction with warps, including warp pipes and hole warps. If Mario steps onto a warp, he either transitions into another area or level. Useful for connecting different parts of the game world and controlling transitions between levels as well as custom warp areas

Lua Example

local integerValue = interact_warp(m, interactType, o)

Parameters

Field Type
m MarioState
interactType integer
o Object

Returns

  • integer

C Prototype

u32 interact_warp(struct MarioState *m, UNUSED u32 interactType, struct Object *o);

🔼


interact_warp_door

Description

Handles interaction with warp doors that lead to other areas or require keys. If Mario can open the door (has enough stars or a key), he proceeds. Otherwise, it may show a dialog. Useful for restricting access to certain areas based on progression

Lua Example

local integerValue = interact_warp_door(m, interactType, o)

Parameters

Field Type
m MarioState
interactType integer
o Object

Returns

  • integer

C Prototype

u32 interact_warp_door(struct MarioState *m, UNUSED u32 interactType, struct Object *o);

🔼


interact_water_ring

Description

Handles interactions with water rings that heal Mario. Passing through water rings increases his health counter. Useful for underwater stages

Lua Example

local integerValue = interact_water_ring(m, interactType, o)

Parameters

Field Type
m MarioState
interactType integer
o Object

Returns

  • integer

C Prototype

u32 interact_water_ring(struct MarioState *m, UNUSED u32 interactType, struct Object *o);

🔼


interact_whirlpool

Description

Handles interaction with whirlpools. If Mario gets caught in a whirlpool, he's pulled toward it, resulting in a unique "caught" action. Useful for hazards that trap Mario like whirlpools

Lua Example

local integerValue = interact_whirlpool(m, interactType, o)

Parameters

Field Type
m MarioState
interactType integer
o Object

Returns

  • integer

C Prototype

u32 interact_whirlpool(struct MarioState *m, UNUSED u32 interactType, struct Object *o);

🔼


mario_blow_off_cap

Description

Makes Mario blow off his normal cap at a given speed. Removes the normal cap from Mario's head and spawns it as a collectible object in the game world. Useful for simulating events where Mario loses his cap due to enemy attacks or environmental forces

Lua Example

mario_blow_off_cap(m, capSpeed)

Parameters

Field Type
m MarioState
capSpeed number

Returns

  • None

C Prototype

void mario_blow_off_cap(struct MarioState *m, f32 capSpeed);

🔼


mario_check_object_grab

Description

Checks if Mario can grab the currently encountered object (usually triggered when Mario punches or dives). If conditions are met, initiates the grabbing process. Useful for picking up objects, throwing enemies, or grabbing special items

Lua Example

local integerValue = mario_check_object_grab(m)

Parameters

Field Type
m MarioState

Returns

  • integer

C Prototype

u32 mario_check_object_grab(struct MarioState *m);

🔼


mario_drop_held_object

Description

Causes Mario to drop the object he is currently holding. Sets the held object's state accordingly and places it in front of Mario. Useful for releasing carried objects, such as throwing Bob-ombs or setting down crates

Lua Example

mario_drop_held_object(m)

Parameters

Field Type
m MarioState

Returns

  • None

C Prototype

void mario_drop_held_object(struct MarioState *m);

🔼


mario_get_collided_object

Description

Returns a collided object that matches a given interaction type from Mario's current collision data. Useful for determining which object Mario has come into contact with

Lua Example

local ObjectValue = mario_get_collided_object(m, interactType)

Parameters

Field Type
m MarioState
interactType integer

Returns

Object

C Prototype

struct Object *mario_get_collided_object(struct MarioState *m, u32 interactType);

🔼


mario_grab_used_object

Description

Grabs the object currently referenced by Mario's usedObj if it's not already being held. Changes the object's state to indicate it is now held by Mario. Useful for handling the moment Mario successfully picks up an object

Lua Example

mario_grab_used_object(m)

Parameters

Field Type
m MarioState

Returns

  • None

C Prototype

void mario_grab_used_object(struct MarioState *m);

🔼


mario_lose_cap_to_enemy

Description

Makes Mario lose his normal cap to an enemy, such as Klepto or Ukiki. Updates flags so that the cap is no longer on Mario's head. Returns true if Mario was wearing his normal cap, otherwise false. Useful for scenarios where enemies steal Mario's cap

Lua Example

local integerValue = mario_lose_cap_to_enemy(m, arg)

Parameters

Field Type
m MarioState
arg integer

Returns

  • integer

C Prototype

u32 mario_lose_cap_to_enemy(struct MarioState* m, u32 arg);

🔼


mario_obj_angle_to_object

Description

Calculates the angle between Mario and a specified object. Used for determining Mario's orientation relative to the object. Useful for deciding directions between Mario and NPCs

Lua Example

local integerValue = mario_obj_angle_to_object(m, o)

Parameters

Field Type
m MarioState
o Object

Returns

  • integer

C Prototype

s16 mario_obj_angle_to_object(struct MarioState *m, struct Object *o);

🔼


mario_retrieve_cap

Description

Retrieves Mario's normal cap if it was previously lost. Removes the cap from Mario's hand state and places it on his head. Useful when Mario recovers his normal cap from enemies, finds it in a level, or if it were to disappear

Lua Example

mario_retrieve_cap(m)

Parameters

Field Type
m MarioState

Returns

  • None

C Prototype

void mario_retrieve_cap(struct MarioState* m);

🔼


mario_stop_riding_and_holding

Description

Causes Mario to stop riding any object (like a shell or Hoot) and also drop any held object. Resets related states to ensure Mario is no longer attached to or holding anything. Useful when changing Mario's state after certain actions, transitions, or to prevent exploits

Lua Example

mario_stop_riding_and_holding(m)

Parameters

Field Type
m MarioState

Returns

  • None

C Prototype

void mario_stop_riding_and_holding(struct MarioState *m);

🔼


mario_stop_riding_object

Description

Stops Mario from riding any currently ridden object (e.g., a Koopa shell or Hoot), updating the object's interaction status and Mario's state. Useful for cleanly dismounting ridden objects

Lua Example

mario_stop_riding_object(m)

Parameters

Field Type
m MarioState

Returns

  • None

C Prototype

void mario_stop_riding_object(struct MarioState *m);

🔼


mario_throw_held_object

Description

Throws the object Mario is currently holding. The object is placed in front of Mario and given a forward velocity. Useful for attacking enemies with thrown objects, solving puzzles by throwing crates, or interacting with environment items

Lua Example

mario_throw_held_object(m)

Parameters

Field Type
m MarioState

Returns

  • None

C Prototype

void mario_throw_held_object(struct MarioState *m);

🔼


passes_pvp_interaction_checks

Description

Checks if the necessary conditions are met for one player to successfully attack another player in a PvP scenario. Considers factors like invincibility, action states, and whether the attack is valid. Useful for multiplayer where players can harm each other

Lua Example

local integerValue = passes_pvp_interaction_checks(attacker, victim)

Parameters

Field Type
attacker MarioState
victim MarioState

Returns

  • integer

C Prototype

u8 passes_pvp_interaction_checks(struct MarioState* attacker, struct MarioState* victim);

🔼


should_push_or_pull_door

Description

Determines whether Mario should push or pull a door when he interacts with it, based on his orientation and position. Useful for animating door interactions realistically, depending on which side Mario approaches from

Lua Example

local integerValue = should_push_or_pull_door(m, o)

Parameters

Field Type
m MarioState
o Object

Returns

  • integer

C Prototype

u32 should_push_or_pull_door(struct MarioState *m, struct Object *o);

🔼


take_damage_and_knock_back

Description

Handles the logic of Mario taking damage and being knocked back by a damaging object. Decreases Mario's health, sets his knockback state, and triggers appropriate sound and camera effects. Useful for implementing enemy attacks, hazards, and ensuring Mario receives proper feedback upon taking damage

Lua Example

local integerValue = take_damage_and_knock_back(m, o)

Parameters

Field Type
m MarioState
o Object

Returns

  • integer

C Prototype

u32 take_damage_and_knock_back(struct MarioState *m, struct Object *o);

🔼



functions from lag_compensation.h


lag_compensation_get_local_state

Description

Gets the local Mario's state stored in lag compensation history

Lua Example

local MarioStateValue = lag_compensation_get_local_state(otherNp)

Parameters

Field Type
otherNp NetworkPlayer

Returns

MarioState

C Prototype

struct MarioState* lag_compensation_get_local_state(struct NetworkPlayer* otherNp);

🔼


lag_compensation_get_local_state_index

Description

Gets the local Mario's state index

Lua Example

local integerValue = lag_compensation_get_local_state_index()

Parameters

  • None

Returns

  • integer

C Prototype

u32 lag_compensation_get_local_state_index(void);

🔼


lag_compensation_get_local_state_ready

Description

Checks if lag compensation history is ready

Lua Example

local booleanValue = lag_compensation_get_local_state_ready()

Parameters

  • None

Returns

  • boolean

C Prototype

bool lag_compensation_get_local_state_ready(void);

🔼


lag_compensation_store

Description

Stores the local Mario's current state in lag compensation history

Lua Example

lag_compensation_store()

Parameters

  • None

Returns

  • None

C Prototype

void lag_compensation_store(void);

🔼



functions from level_info.h


get_level_name

Description

Returns the name of the level corresponding to courseNum, levelNum and areaIndex as a decapitalized ASCII (human readable) string

Lua Example

local stringValue = get_level_name(courseNum, levelNum, areaIndex)

Parameters

Field Type
courseNum integer
levelNum integer
areaIndex integer

Returns

  • string

C Prototype

const char *get_level_name(s16 courseNum, s16 levelNum, s16 areaIndex);

🔼


get_level_name_ascii

Description

Returns the name of the level corresponding to courseNum, levelNum and areaIndex as an ASCII (human readable) string. Set charCase to 1 to capitalize or -1 to decapitalize the returned string

Lua Example

local stringValue = get_level_name_ascii(courseNum, levelNum, areaIndex, charCase)

Parameters

Field Type
courseNum integer
levelNum integer
areaIndex integer
charCase integer

Returns

  • string

C Prototype

const char *get_level_name_ascii(s16 courseNum, s16 levelNum, s16 areaIndex, s16 charCase);

🔼


get_level_name_sm64

Lua Example

local PointerValue = get_level_name_sm64(courseNum, levelNum, areaIndex, charCase)

Parameters

Field Type
courseNum integer
levelNum integer
areaIndex integer
charCase integer

Returns

  • Pointer <integer>

C Prototype

const u8 *get_level_name_sm64(s16 courseNum, s16 levelNum, s16 areaIndex, s16 charCase);

🔼


get_star_name

Description

Returns the name of the star corresponding to courseNum and starNum as a decapitalized ASCII (human readable) string

Lua Example

local stringValue = get_star_name(courseNum, starNum)

Parameters

Field Type
courseNum integer
starNum integer

Returns

  • string

C Prototype

const char *get_star_name(s16 courseNum, s16 starNum);

🔼


get_star_name_ascii

Description

Returns the name of the star corresponding to courseNum and starNum as an ASCII (human readable) string. Set charCase to 1 to capitalize or -1 to decapitalize the returned string

Lua Example

local stringValue = get_star_name_ascii(courseNum, starNum, charCase)

Parameters

Field Type
courseNum integer
starNum integer
charCase integer

Returns

  • string

C Prototype

const char *get_star_name_ascii(s16 courseNum, s16 starNum, s16 charCase);

🔼


get_star_name_sm64

Lua Example

local PointerValue = get_star_name_sm64(courseNum, starNum, charCase)

Parameters

Field Type
courseNum integer
starNum integer
charCase integer

Returns

  • Pointer <integer>

C Prototype

const u8 *get_star_name_sm64(s16 courseNum, s16 starNum, s16 charCase);

🔼



functions from level_script.h


area_create_warp_node

Description

Creates a warp node in the current level and area with id id that goes to the warp node destNode in level destLevel and area destArea, and attach it to the object o. To work properly, object o must be able to trigger a warp (for example, with interact type set to INTERACT_WARP.) checkpoint should be set only to WARP_NO_CHECKPOINT (0x00) or WARP_CHECKPOINT (0x80.) If checkpoint is set to 0x80, Mario will warp directly to this node if he enters the level again (after a death for example)

Lua Example

local ObjectWarpNodeValue = area_create_warp_node(id, destLevel, destArea, destNode, checkpoint, o)

Parameters

Field Type
id integer
destLevel integer
destArea integer
destNode integer
checkpoint integer
o Object

Returns

ObjectWarpNode

C Prototype

struct ObjectWarpNode *area_create_warp_node(u8 id, u8 destLevel, u8 destArea, u8 destNode, u8 checkpoint, struct Object *o);

🔼



functions from level_update.h


fade_into_special_warp

Description

Fades into a special warp with arg and using color

Lua Example

fade_into_special_warp(arg, color)

Parameters

Field Type
arg integer
color integer

Returns

  • None

C Prototype

void fade_into_special_warp(u32 arg, u32 color);

🔼


get_instant_warp

Description

Gets an instant warp from the current area's instant warp array (0-3)

Lua Example

local InstantWarpValue = get_instant_warp(index)

Parameters

Field Type
index integer

Returns

InstantWarp

C Prototype

struct InstantWarp *get_instant_warp(u8 index);

🔼


get_painting_warp_node

Description

Gets a painting warp node from the local mario's floor type

Lua Example

local WarpNodeValue = get_painting_warp_node()

Parameters

  • None

Returns

WarpNode

C Prototype

struct WarpNode *get_painting_warp_node(void);

🔼


initiate_painting_warp

Description

Initiates a painting warp of paintingIndex

Lua Example

initiate_painting_warp(paintingIndex)

Parameters

Field Type
paintingIndex integer

Returns

  • None

C Prototype

void initiate_painting_warp(s16 paintingIndex);

🔼


level_control_timer_running

Description

Returns if the level timer is running

Lua Example

local integerValue = level_control_timer_running()

Parameters

  • None

Returns

  • integer

C Prototype

u8 level_control_timer_running(void);

🔼


level_trigger_warp

Description

Triggers a warp (WARP_OP_*) for the level. Pass in gMarioStates[0] for m

Lua Example

local integerValue = level_trigger_warp(m, warpOp)

Parameters

Field Type
m MarioState
warpOp integer

Returns

  • integer

C Prototype

s16 level_trigger_warp(struct MarioState *m, s32 warpOp);

🔼


lvl_set_current_level

Description

Sets the level number and handles the act select screen

Lua Example

local integerValue = lvl_set_current_level(arg0, levelNum)

Parameters

Field Type
arg0 integer
levelNum integer

Returns

  • integer

C Prototype

s32 lvl_set_current_level(s16 arg0, s16 levelNum);

🔼


warp_special

Description

Special warps to arg (SPECIAL_WARP_*)

Lua Example

warp_special(arg)

Parameters

Field Type
arg integer

Returns

  • None

C Prototype

void warp_special(s32 arg);

🔼


---

< prev | 1 | 2 | 3 | 4 | 5 | 6 | next >]