Skip to content

Latest commit

 

History

History
481 lines (465 loc) · 48.1 KB

File metadata and controls

481 lines (465 loc) · 48.1 KB

mina.raw reference

Every MinaModAPI function as it appears from Lua, under mina.raw. One Lua function per C function, named mechanically: PlayerGetPos is player_get_pos. Nothing here was designed. This table is generated from the same headers the bindings are, which is why there are so many rows and why the C column is worth keeping: any name here greps against upstream's own source.

Signatures are the Lua types you pass and receive, not the C ones. Out-parameters come back as extra return values after the real one, in declaration order, and a struct spreads across several numbers rather than arriving as a table:

local x, y = mina.raw.player_get_pos()          -- both are out-parameters
mina.raw.component_move(component, 0, 1, 0)     -- MM_Vec3 is three numbers

The same signature strings are available at runtime in mina.signatures, keyed by Lua name.

Conventions that apply to every function here:

  • A wrong argument type raises a Lua error naming the function and the argument position; it never reaches the engine. A missing argument reads as got no value.
  • A member the running game build does not export raises <name> is not available in this game build. Check before calling if you support more than one build.
  • Handles are opaque userdata, not tables, and carry no methods; .valid is the only field they have. nil is accepted wherever a handle is taken and passed through as null, and returned wherever the engine gives back null, so a handle result is always worth testing.
  • Handles go stale. Every outstanding handle is invalidated after each world_destroy, which is when engine objects disappear in bulk; using one after that raises a stale error naming the function and argument rather than dereferencing freed memory. .valid tests one without calling anything, but it means not invalidated, not the engine definitely still has this. Fetch handles where you use them rather than holding them across events.
  • number(64-bit) values are checked, not truncated: a value a Lua number cannot hold exactly (greater than 2^53) raises an error.
  • A struct parameter is one value's worth of numbers. Where a function also takes a count, only 1 is meaningful from Lua. Field order is in Value types below; it cannot be recovered from the signature.

docs/how-it-works.md explains why each of these is the way it is. docs/events.md covers the other direction: the engine calling into Lua.

Bound

Lua C Signature Description
base64_calc_decoded_size Base64CalcDecodedSize (v: string) -> number(64-bit)
base64_calc_encoded_size Base64CalcEncodedSize (inSize: number(64-bit)) -> number(64-bit)
camera_get_eye_pos CameraGetEyePos (camera: ycCamera) -> outPos: MM_Vec3(3 numbers)
camera_get_look_dir CameraGetLookDir (camera: ycCamera) -> outDir: MM_Vec3(3 numbers)
camera_get_proj CameraGetProj (camera: ycCamera) -> MM_Mtx(16 numbers)
camera_get_proj_to_view CameraGetProjToView (camera: ycCamera) -> MM_Mtx(16 numbers) inverse proj
camera_get_view CameraGetView (camera: ycCamera) -> MM_Mtx(16 numbers)
camera_get_view_to_world CameraGetViewToWorld (camera: ycCamera) -> MM_Mtx(16 numbers) inverse view
camera_is_ortho CameraIsOrtho (camera: ycCamera) -> boolean
camera_set_proj CameraSetProj (camera: ycCamera, proj: MM_Mtx(16 numbers))
camera_set_view CameraSetView (camera: ycCamera, view: MM_Mtx(16 numbers))
carry_manager_get_closest_carryable_object CarryManagerGetClosestCarryableObject (carryManager: CarryManager, box: MM_AABB(6 numbers), collisionLayer: number, maxDist: number, collideMaskIgnore: number(64-bit)) -> CarryableObject, dstOverlappingObjectCount: number
cheat_manager_activate_save_cheats CheatManagerActivateSaveCheats ()
cheat_manager_is_cheat_applied CheatManagerIsCheatApplied (cheat: number, saveSlot: number) -> boolean
cheat_manager_set_cheat_applied CheatManagerSetCheatApplied (cheat: number, active: boolean, saveSlot: number) pass saveSlot=uint32_t(-1) to use the active save slot
clone_palette ClonePalette (pal: ycPaletteTexture) -> ycPaletteTexture
combat_core_get_attack_mask CombatCoreGetAttackMask (combatCore: ycComponent) -> number
combat_core_get_attack_shape CombatCoreGetAttackShape (combatCore: ycComponent) -> CombatShape
combat_core_get_defense_mask CombatCoreGetDefenseMask (combatCore: ycComponent) -> number
combat_core_get_defense_shape CombatCoreGetDefenseShape (combatCore: ycComponent) -> CombatShape
combat_core_get_health CombatCoreGetHealth (combatCore: ycComponent) -> number
combat_core_get_health_max CombatCoreGetHealthMax (combatCore: ycComponent) -> number
combat_core_set_attack_mask CombatCoreSetAttackMask (combatCore: ycComponent, mask: number)
combat_core_set_defense_mask CombatCoreSetDefenseMask (combatCore: ycComponent, mask: number)
combat_core_set_health CombatCoreSetHealth (combatCore: ycComponent, hp: number)
combat_core_set_health_max CombatCoreSetHealthMax (combatCore: ycComponent, hp: number)
combat_shape_get_aabb CombatShapeGetAABB (shape: CombatShape, shapeIndex: number) -> boolean, aabb: MM_AABB(6 numbers) returns false if shape is not an AABB
combat_shape_get_line_seg CombatShapeGetLineSeg (shape: CombatShape, shapeIndex: number) -> boolean, lineSeg: MM_LineSeg(6 numbers)
combat_shape_get_shape_count CombatShapeGetShapeCount (shape: CombatShape) -> number
combat_shape_get_sphere CombatShapeGetSphere (shape: CombatShape, shapeIndex: number) -> boolean, sphere: MM_Sphere(4 numbers)
combat_shape_is_aabb CombatShapeIsAABB (shape: CombatShape, shapeIndex: number) -> boolean
combat_shape_is_line_seg CombatShapeIsLineSeg (shape: CombatShape, shapeIndex: number) -> boolean
combat_shape_is_sphere CombatShapeIsSphere (shape: CombatShape, shapeIndex: number) -> boolean
combat_shape_set_aabb CombatShapeSetAABB (shape: CombatShape, shapeIndex: number, aabb: MM_AABB(6 numbers)) these functions can append a new shape
combat_shape_set_line_seg CombatShapeSetLineSeg (shape: CombatShape, shapeIndex: number, lineSeg: MM_LineSeg(6 numbers))
combat_shape_set_sphere CombatShapeSetSphere (shape: CombatShape, shapeIndex: number, sphere: MM_Sphere(4 numbers))
component_get_parent ComponentGetParent (component: ycComponent) -> ycEntity
component_get_type ComponentGetType (component: ycComponent) -> typeid
component_get_type_name ComponentGetTypeName (component: ycComponent) -> string
component_isa ComponentIsa (component: ycComponent, rtti: typeid) -> boolean includes inheritance
component_move ComponentMove (component: ycComponent, vel: MM_Vec3(3 numbers)) works through a MoveComponent, if a relevant one exists; does nothing otherwise
create_file_ref CreateFileRef (name: string) -> ycFileRefBase this does not block, it will return immediately
create_index_buffer CreateIndexBuffer (count: number) -> ycGpuBuffer index buffer data is uint32_t[count]
create_options_menu_control CreateOptionsMenuControl (parent: ycEntity, labelName: string) -> OptionsMenuControl
create_options_menu_control_slider CreateOptionsMenuControlSlider (parent: ycEntity, labelName: string, maxValue: number, defaultValue: number, initialValue: number) -> OptionsMenuControlSlider
create_paged_menu CreatePagedMenu (parent: ycEntity, container: OptionsMenu, titleRowID: string, iconSeq: string) -> PagedMenu
create_palette CreatePalette (filename: string) -> ycPaletteTexture
create_texture CreateTexture (width: number, height: number) -> ycTexture texture is MM_Color[width*height]
create_tile_level_entity CreateTileLevelEntity (ycdata: string) -> ycTileLevel2Entity returned pointer should be freed with DestroyTileLevelEntity
create_vertex_buffer CreateVertexBuffer (count: number) -> ycGpuBuffer vertex buffer data is MM_Vertex_PTC[count]
debug_draw_line DebugDrawLine (dd: ycDrawUtil, p1: MM_Vec3(3 numbers), p2: MM_Vec3(3 numbers), color: MM_Color(4 numbers), disableDepthTest: boolean)
debug_draw_rect DebugDrawRect (dd: ycDrawUtil, center: MM_Vec3(3 numbers), w: number, h: number, color: MM_Color(4 numbers), disableDepthTest: boolean)
debug_draw_rect_solid DebugDrawRectSolid (dd: ycDrawUtil, center: MM_Vec3(3 numbers), w: number, h: number, color: MM_Color(4 numbers), disableDepthTest: boolean)
debug_draw_text DebugDrawText (dd: ycDrawUtil, text: string, color: MM_Color(4 numbers), pos: MM_Vec3(3 numbers), fontSize: number) -> MM_Vec3(3 numbers) returns dimensions of the text
debug_draw_text_align DebugDrawTextAlign (dd: ycDrawUtil, text: string, color: MM_Color(4 numbers), pos: MM_Vec3(3 numbers), align: number(64-bit), dimensions: MM_Vec2(2 numbers), fontSize: number) -> MM_Vec3(3 numbers)
debug_draw_textured_quad DebugDrawTexturedQuad (dd: ycDrawUtil, tex: ycTexture, center: MM_Vec3(3 numbers), w: number, h: number, mulColor: MM_Color(4 numbers), disableDepthTest: boolean)
debug_draw_textured_quad_uv DebugDrawTexturedQuadUV (dd: ycDrawUtil, tex: ycTexture, center: MM_Vec3(3 numbers), size: MM_Vec2(2 numbers), uvCenter: MM_Vec2(2 numbers), uvSize: MM_Vec2(2 numbers), mulColor: MM_Color(4 numbers), disableDepthTest: boolean)
destroy_file_ref DestroyFileRef (fileRef: ycFileRefBase)
destroy_gpu_buffer DestroyGpuBuffer (ib: ycGpuBuffer)
destroy_render_object DestroyRenderObject (renderObject: MinaModRenderObject)
destroy_texture DestroyTexture (tex: ycTexture)
destroy_tile_level_entity DestroyTileLevelEntity (tileLevelEntity: ycTileLevel2Entity)
destroy_weak_ptr DestroyWeakPtr (weakPtr: MM_WeakPtr)
entity_dock_component EntityDockComponent (parent: ycEntity, child: ycComponent, flags: number)
entity_dock_entity EntityDockEntity (parent: ycEntity, child: ycEntity, flags: number)
entity_get_local_transform EntityGetLocalTransform (entity: ycEntity) -> MM_Transform(10 numbers)
entity_get_main_component EntityGetMainComponent (entity: ycEntity) -> ycComponent
entity_get_world EntityGetWorld (entity: ycEntity) -> World
entity_get_world_transform EntityGetWorldTransform (entity: ycEntity) -> MM_Transform(10 numbers)
entity_reparent_entity EntityReparentEntity (newParent: ycEntity, child: ycEntity, flags: number)
entity_set_local_transform EntitySetLocalTransform (entity: ycEntity, transform: MM_Transform(10 numbers))
entity_set_world_transform EntitySetWorldTransform (entity: ycEntity, transform: MM_Transform(10 numbers))
file_ref_get_size FileRefGetSize (fileRef: ycFileRefBase) -> number(64-bit)
file_ref_wait_for_loaded FileRefWaitForLoaded (fileRef: ycFileRefBase) -> boolean blocks until the file is loaded or an error occurs, returns true if the file was loaded
game_anim_add_frame_time GameAnimAddFrameTime (anim: ycComponent, seconds: number) adds time to the current frame's time
game_anim_get_current_frame_bound GameAnimGetCurrentFrameBound (anim: ycComponent) -> outValue: MM_AABB(6 numbers) the bounding box of the underlying raw frame
game_anim_get_current_frame_time GameAnimGetCurrentFrameTime (anim: ycComponent) -> number time into current frame
game_anim_get_local_position GameAnimGetLocalPosition (anim: ycComponent) -> outPos: MM_Vec3(3 numbers)
game_anim_get_local_rotation GameAnimGetLocalRotation (anim: ycComponent) -> number
game_anim_get_local_scale GameAnimGetLocalScale (anim: ycComponent) -> outScale: MM_Vec3(3 numbers)
game_anim_get_local_transform GameAnimGetLocalTransform (anim: ycComponent) -> outTransform: MM_Transform(10 numbers)
game_anim_get_mul_color GameAnimGetMulColor (anim: ycComponent) -> outColor: MM_Color(4 numbers)
game_anim_get_num_loops_played GameAnimGetNumLoopsPlayed (anim: ycComponent) -> number
game_anim_get_num_seq_frames GameAnimGetNumSeqFrames (anim: ycComponent) -> number number of frames in the current sequence, 0 if no sequence is set
game_anim_get_palette GameAnimGetPalette (anim: ycComponent) -> ycPaletteTexture
game_anim_get_play_rate GameAnimGetPlayRate (anim: ycComponent) -> number
game_anim_get_property_anchor GameAnimGetPropertyAnchor (anim: ycComponent, name: string) -> outPos: MM_Vec2(2 numbers), outAngle: number
game_anim_get_property_bool GameAnimGetPropertyBool (anim: ycComponent, name: string) -> boolean
game_anim_get_property_circle GameAnimGetPropertyCircle (anim: ycComponent, name: string) -> outValue: MM_Circle(7 numbers)
game_anim_get_property_exists GameAnimGetPropertyExists (anim: ycComponent, name: string) -> boolean
game_anim_get_property_float GameAnimGetPropertyFloat (anim: ycComponent, name: string, defaultValue: number) -> number defaultValue will be returned if no property exists
game_anim_get_property_int GameAnimGetPropertyInt (anim: ycComponent, name: string, defaultValue: number) -> number defaultValue will be returned if no property exists
game_anim_get_property_point GameAnimGetPropertyPoint (anim: ycComponent, name: string) -> outPos: MM_Vec2(2 numbers)
game_anim_get_property_rect GameAnimGetPropertyRect (anim: ycComponent, name: string) -> outValue: MM_AABB(6 numbers)
game_anim_get_property_string GameAnimGetPropertyString (anim: ycComponent, name: string, defaultValue: string) -> string defaultValue will be returned if no property exists
game_anim_get_seq_frame_idx GameAnimGetSeqFrameIdx (anim: ycComponent) -> number
game_anim_get_seq_name GameAnimGetSeqName (anim: ycComponent) -> string
game_anim_get_seq_name_no_dir GameAnimGetSeqNameNoDir (anim: ycComponent) -> string
game_anim_get_world_transform GameAnimGetWorldTransform (anim: ycComponent) -> outTransform: MM_Transform(10 numbers)
game_anim_is_done GameAnimIsDone (anim: ycComponent) -> boolean
game_anim_is_new_frame GameAnimIsNewFrame (anim: ycComponent) -> boolean
game_anim_is_paused GameAnimIsPaused (anim: ycComponent) -> boolean
game_anim_is_visible GameAnimIsVisible (anim: ycComponent) -> boolean
game_anim_look_ahead_seq_frame_idx GameAnimLookAheadSeqFrameIdx (anim: ycComponent, elapsedTime: number) -> number simulate the sequence for the elapsed time and return what the current frame would be
game_anim_play GameAnimPlay (anim: ycComponent, seqName: string, loops: number, speed: number, forceRestart: boolean)
game_anim_play_dir GameAnimPlayDir (anim: ycComponent, seqName: string, loops: number, speed: number, forceRestart: boolean)
game_anim_set_frame_time GameAnimSetFrameTime (anim: ycComponent, seconds: number) overwrites the current frame's time, but only this once (does not affect later plays of this frame)
game_anim_set_local_position GameAnimSetLocalPosition (anim: ycComponent, pos: MM_Vec3(3 numbers))
game_anim_set_local_rotation GameAnimSetLocalRotation (anim: ycComponent, rot: number)
game_anim_set_local_scale GameAnimSetLocalScale (anim: ycComponent, scale: MM_Vec3(3 numbers))
game_anim_set_local_transform GameAnimSetLocalTransform (anim: ycComponent, transform: MM_Transform(10 numbers))
game_anim_set_mul_color GameAnimSetMulColor (anim: ycComponent, color: MM_Color(4 numbers))
game_anim_set_palette GameAnimSetPalette (anim: ycComponent, pal: ycPaletteTexture) palettes are reference counted, this adds a reference
game_anim_set_palette_file GameAnimSetPaletteFile (anim: ycComponent, filename: string)
game_anim_set_paused GameAnimSetPaused (anim: ycComponent, paused: boolean)
game_anim_set_play_rate GameAnimSetPlayRate (anim: ycComponent, playRate: number)
game_anim_set_seq_frame_idx GameAnimSetSeqFrameIdx (anim: ycComponent, seqFrameIdx: number) frame of the current sequence to display
game_anim_set_visible GameAnimSetVisible (anim: ycComponent, visible: boolean)
game_camera_enable_tracking GameCameraEnableTracking (gameCamera: GameCamera, enable: boolean)
game_camera_get_local_bound GameCameraGetLocalBound (gameCamera: GameCamera) -> outValue: MM_AABB(6 numbers)
game_camera_get_local_bound_by_index GameCameraGetLocalBoundByIndex (gameCamera: GameCamera, roomIndex: number) -> outValue: MM_AABB(6 numbers)
game_camera_is_box_in_local_bound GameCameraIsBoxInLocalBound (gameCamera: GameCamera, box: MM_AABB(6 numbers)) -> boolean
game_camera_is_ignoring_bound GameCameraIsIgnoringBound (gameCamera: GameCamera) -> boolean
game_camera_is_local_bound_active GameCameraIsLocalBoundActive (gameCamera: GameCamera) -> boolean
game_camera_is_on_screen_point GameCameraIsOnScreenPoint (gameCamera: GameCamera, target: MM_AABB(6 numbers)) -> boolean
game_camera_is_on_screen_rect GameCameraIsOnScreenRect (gameCamera: GameCamera, center: MM_Vec3(3 numbers), extents: MM_Vec3(3 numbers)) -> boolean
game_camera_is_point_in_any_bound GameCameraIsPointInAnyBound (gameCamera: GameCamera, pos: MM_Vec3(3 numbers)) -> boolean
game_camera_is_point_in_local_bound GameCameraIsPointInLocalBound (gameCamera: GameCamera, pos: MM_Vec3(3 numbers)) -> boolean
game_camera_is_tracking GameCameraIsTracking (gameCamera: GameCamera) -> boolean
game_camera_screen_to_world GameCameraScreenToWorld (gameCamera: GameCamera, screen: MM_Vec2(2 numbers)) -> outPos: MM_Vec2(2 numbers)
game_camera_set_ignore_bounds GameCameraSetIgnoreBounds (gameCamera: GameCamera, ignore: boolean)
game_camera_set_local_bound GameCameraSetLocalBound (gameCamera: GameCamera, bound: MM_AABB(6 numbers))
game_camera_set_local_bound_active GameCameraSetLocalBoundActive (gameCamera: GameCamera, active: boolean)
game_camera_world_to_screen GameCameraWorldToScreen (gameCamera: GameCamera, world: MM_Vec3(3 numbers)) -> outPos: MM_Vec2(2 numbers)
game_component_get_spawn_point GameComponentGetSpawnPoint (component: GameComponent) -> SpawnPoint
game_component_get_world GameComponentGetWorld (component: GameComponent) -> World
game_component_get_world_region GameComponentGetWorldRegion (component: GameComponent) -> WorldRegion
game_get_world_update_queue GameGetWorldUpdateQueue () -> ycUpdateQueue the game's update queue of worlds
get_active_save_slot GetActiveSaveSlot () -> number get the current save slot index
get_active_save_slot_contents GetActiveSaveSlotContents () -> string get the contents of the currently active save slot as ycData text; this must be Free'd using MinaModAPI::Free (The binding copies the string and frees the original; do not free it yourself.)
get_active_save_slot_play_time GetActiveSaveSlotPlayTime () -> number query information about the current save slot's play time
get_active_save_slot_play_time_cleared GetActiveSaveSlotPlayTimeCleared () -> number
get_active_save_slot_play_time_total GetActiveSaveSlotPlayTimeTotal () -> number
get_current_game_state GetCurrentGameState () -> number
get_current_mod_path GetCurrentModPath () -> string gets the path to the mod's install folder, only valid during Mod_Init -- save it if you'll need it later!
get_debug_draw GetDebugDraw (name: string) -> ycDrawUtil
get_enum_hashed_int GetEnumHashedInt (nameHash: number(64-bit)) -> number
get_enum_hashed_int64 GetEnumHashedInt64 (nameHash: number(64-bit)) -> number(64-bit)
get_enum_hashed_u_int GetEnumHashedUInt (nameHash: number(64-bit)) -> number
get_enum_hashed_u_int64 GetEnumHashedUInt64 (nameHash: number(64-bit)) -> number(64-bit)
get_enum_int GetEnumInt (name: string) -> number
get_enum_int64 GetEnumInt64 (name: string) -> number(64-bit)
get_enum_u_int GetEnumUInt (name: string) -> number
get_enum_u_int64 GetEnumUInt64 (name: string) -> number(64-bit)
get_game_revision GetGameRevision () -> number
get_mod_version GetModVersion (name: string) -> number returns uint32_t(-1) if the mod is not loaded
get_render_object_transform GetRenderObjectTransform (renderObject: MinaModRenderObject) -> MM_Mtx(16 numbers)
get_render_pass GetRenderPass (name: string) -> ycRenderPass
get_room_index GetRoomIndex () -> number
get_room_time GetRoomTime () -> number
get_screen_resolution GetScreenResolution () -> width: number, height: number
get_shared_value GetSharedValue (name: string) -> number(64-bit) a look up table accessible by all mods
is_action_down IsActionDown (act: number) -> boolean
is_action_held IsActionHeld (act: number) -> boolean
is_button_down IsButtonDown (btn: number) -> boolean
is_button_held IsButtonHeld (btn: number) -> boolean
is_entity_permanent_killed IsEntityPermanentKilled (spawnPoint: SpawnPoint, checkSecretDirt: boolean) -> boolean
is_key_down IsKeyDown (key: number) -> boolean
is_key_held IsKeyHeld (key: number) -> boolean
is_save_write_enabled IsSaveWriteEnabled () -> boolean
items_is_item_collected ItemsIsItemCollected (index: number, collection: ItemCollection, slot: SaveSlot, includePawnShop: boolean, includeEarlyCollected: boolean) -> boolean
items_set_item_collected ItemsSetItemCollected (index: number, collected: boolean, collection: ItemCollection, slot: SaveSlot)
mouse_get_pos MouseGetPos () -> outPos: MM_Vec2(2 numbers) returns value in a space where the top left is (-1,1) and the bottom right is (1,-1)
mouse_get_pos_game_camera_screen MouseGetPosGameCameraScreen (gameCamera: GameCamera) -> screenPos: MM_Vec2(2 numbers) convert a value from MouseGetPos to the coordinate space expected by GameCameraScreenToWorld
mouse_get_pos_pixels MouseGetPosPixels () -> outPos: MM_Vec2(2 numbers) top left is (0,0) and the bottom right is whatever the window resolution is
mouse_is_cursor_visible MouseIsCursorVisible () -> boolean
mouse_set_cursor_visible MouseSetCursorVisible (visible: boolean)
music_is_any_playing MusicIsAnyPlaying () -> boolean
music_is_playing MusicIsPlaying (name: string) -> boolean
music_play MusicPlay (name: string)
music_stop MusicStop ()
paged_menu_activate PagedMenuActivate (pagedMenu: PagedMenu, updateQueue: ycUpdateQueue)
paged_menu_create_display PagedMenuCreateDisplay (pagedMenu: PagedMenu)
palette_get_global_color PaletteGetGlobalColor (pal: ycPaletteTexture, index: number) -> colorOut: MM_Color(4 numbers) takes group palettes into account
palette_get_group PaletteGetGroup (pal: ycPaletteTexture) -> number
palette_get_group_pal PaletteGetGroupPal (pal: ycPaletteTexture) -> ycPaletteTexture
palette_get_index PaletteGetIndex (pal: ycPaletteTexture, localColor: MM_Color(4 numbers)) -> number
palette_get_local_color PaletteGetLocalColor (pal: ycPaletteTexture, index: number) -> colorOut: MM_Color(4 numbers) local palette only
palette_get_width PaletteGetWidth (pal: ycPaletteTexture) -> number
palette_set_group PaletteSetGroup (pal: ycPaletteTexture, group: number) -1 is 'no group'
palette_set_width PaletteSetWidth (pal: ycPaletteTexture, width: number)
palette_write PaletteWrite (pal: ycPaletteTexture, colors: MM_Color(4 numbers), offset: number, count: number)
palette_write_index PaletteWriteIndex (pal: ycPaletteTexture, index: number, color: MM_Color(4 numbers))
physics_component_get_aabb PhysicsComponentGetAABB (physicsComponent: PhysicsComponent, local: boolean, shapeFlags: number) -> aabb: MM_AABB(6 numbers)
player_die PlayerDie ()
player_flush_to_save PlayerFlushToSave ()
player_get_bone_stone PlayerGetBoneStone () -> number
player_get_bones PlayerGetBones () -> number
player_get_bosses_defeated PlayerGetBossesDefeated () -> number(64-bit)
player_get_component PlayerGetComponent () -> ycComponent
player_get_donated PlayerGetDonated () -> number
player_get_health PlayerGetHealth () -> number
player_get_joules PlayerGetJoules () -> number
player_get_keys PlayerGetKeys () -> number
player_get_keys_spent PlayerGetKeysSpent () -> number
player_get_max_vials PlayerGetMaxVials () -> number
player_get_plasma PlayerGetPlasma () -> number
player_get_pos PlayerGetPos () -> x: number, y: number
player_get_pos3 PlayerGetPos3 () -> MM_Vec3(3 numbers)
player_get_sidearm PlayerGetSidearm () -> number
player_get_sidearm2 PlayerGetSidearm2 () -> number
player_get_spark PlayerGetSpark () -> number
player_get_spark_max PlayerGetSparkMax () -> number
player_get_stat PlayerGetStat (stat: number) -> number
player_get_trinket_collected PlayerGetTrinketCollected (trinketIndex: number) -> boolean
player_get_trinket_max PlayerGetTrinketMax () -> number
player_get_upgrades PlayerGetUpgrades () -> number flags
player_get_upgrades_seen PlayerGetUpgradesSeen () -> number
player_get_vials PlayerGetVials () -> number
player_get_weapon__item_type PlayerGetWeapon_ItemType () -> number
player_get_weapon__weapon_index PlayerGetWeapon_WeaponIndex () -> number
player_get_weapon_level__item_type PlayerGetWeaponLevel_ItemType (itemType: number) -> number
player_get_weapon_level__weapon_index PlayerGetWeaponLevel_WeaponIndex (weaponIndex: number) -> number
player_get_world PlayerGetWorld () -> World
player_get_world_region PlayerGetWorldRegion () -> WorldRegion
player_restore_from_save PlayerRestoreFromSave ()
player_set_armor PlayerSetArmor (number)
player_set_bone_stone PlayerSetBoneStone (number)
player_set_bones PlayerSetBones (number)
player_set_bosses_defeated PlayerSetBossesDefeated (number(64-bit)) flags
player_set_donated PlayerSetDonated (number)
player_set_health PlayerSetHealth (number)
player_set_health_upgrade PlayerSetHealthUpgrade (number)
player_set_joules PlayerSetJoules (number)
player_set_joules_upgrade PlayerSetJoulesUpgrade (number)
player_set_key_found PlayerSetKeyFound (keyIdx: number, found: boolean)
player_set_keys PlayerSetKeys (number)
player_set_keys_spent PlayerSetKeysSpent (number)
player_set_max_vials PlayerSetMaxVials (number)
player_set_plasma PlayerSetPlasma (number)
player_set_pos PlayerSetPos (x: number, y: number)
player_set_pos3 PlayerSetPos3 (pos: MM_Vec3(3 numbers))
player_set_sidearm PlayerSetSidearm (number)
player_set_sidearm2 PlayerSetSidearm2 (number)
player_set_spark PlayerSetSpark (number)
player_set_spark_max PlayerSetSparkMax (number)
player_set_stat PlayerSetStat (stat: number, level: number)
player_set_trinket_collected PlayerSetTrinketCollected (trinketIndex: number, found: boolean)
player_set_trinket_max PlayerSetTrinketMax (number)
player_set_upgrades PlayerSetUpgrades (number)
player_set_upgrades_seen PlayerSetUpgradesSeen (number)
player_set_vials PlayerSetVials (number)
player_set_weapon__item_type PlayerSetWeapon_ItemType (number)
player_set_weapon__weapon_index PlayerSetWeapon_WeaponIndex (number)
player_set_weapon_level__item_type PlayerSetWeaponLevel_ItemType (itemType: number, level: number)
player_set_weapon_level__weapon_index PlayerSetWeaponLevel_WeaponIndex (weaponIndex: number, level: number)
player_update_stats PlayerUpdateStats () this is usually automatically called by things like PlayerSetHealthUpgrade, PlayerSetStat, PlayerSetTrinketMax, PlayerSetTrinketCollected
release_palette ReleasePalette (pal: ycPaletteTexture) palettes are reference counted
render_cmd_draw RenderCmdDraw (cmds: ycRenderCmdList, dc: ycRenderDrawCall, vertexCount: number, startVertex: number)
render_cmd_draw_indexed RenderCmdDrawIndexed (cmds: ycRenderCmdList, dc: ycRenderDrawCall, indexCount: number, startIndex: number)
render_draw_call_set_index_buffer RenderDrawCallSetIndexBuffer (dc: ycRenderDrawCall, ib: ycGpuBuffer)
render_draw_call_set_texture RenderDrawCallSetTexture (dc: ycRenderDrawCall, tex: ycTexture)
render_draw_call_set_vertex_buffer RenderDrawCallSetVertexBuffer (dc: ycRenderDrawCall, vb: ycGpuBuffer)
render_pass_get_camera RenderPassGetCamera (renderPass: ycRenderPass) -> ycCamera
reset_save ResetSave () clear save data
reset_save_slots ResetSaveSlots ()
room_reload_game_state RoomReloadGameState ()
seed_game_rand SeedGameRand (seed: number)
set_active_save_slot SetActiveSaveSlot (slot: number) load a save slot into the active slot
set_active_save_slot_contents SetActiveSaveSlotContents (data: string) -> boolean set the contents of the currently active save slot with ycData text
set_render_object_transform SetRenderObjectTransform (renderObject: MinaModRenderObject, transform: MM_Mtx(16 numbers)) transform should be modified from update, not MinaModRenderFunc
set_save_slot_contents SetSaveSlotContents (slot: number, data: string) -> boolean set the contents of a save slot with ycData text
set_save_write_enabled SetSaveWriteEnabled (boolean) enable/disable save writing
set_shared_value SetSharedValue (name: string, val: number(64-bit))
sound_is_playing SoundIsPlaying (name: string) -> boolean
sound_play SoundPlay (name: string)
sound_stop SoundStop (name: string)
spawn_entity SpawnEntity (entityType: number)
spawn_manager_create_spawn_point SpawnManagerCreateSpawnPoint (spawnManager: SpawnManager, worldRegion: WorldRegion, pos: MM_Vec3(3 numbers), scale: MM_Vec3(3 numbers), rot: number, entityType: number, spawnType: number, tileLayerIndex: number, collisionLayerIndex: number) -> SpawnPoint
spawn_manager_create_spawn_point2 SpawnManagerCreateSpawnPoint2 (spawnManager: SpawnManager, worldRegion: WorldRegion, tileLevelEntity: ycTileLevel2Entity) -> SpawnPoint
spawn_manager_destroy_spawn_point SpawnManagerDestroySpawnPoint (spawnManager: SpawnManager, spawnPoint: SpawnPoint)
spawn_manager_get_spawn_point_by_name SpawnManagerGetSpawnPointByName (spawnManager: SpawnManager, name: string) -> SpawnPoint
spawn_manager_get_spawn_point_by_name_hash SpawnManagerGetSpawnPointByNameHash (spawnManager: SpawnManager, nameHash: number) -> SpawnPoint
spawn_manager_get_spawn_point_by_name_level_hash SpawnManagerGetSpawnPointByNameLevelHash (spawnManager: SpawnManager, nameLevelHash: number(64-bit)) -> SpawnPoint
spawn_manager_get_spawn_point_by_tile_level_entity SpawnManagerGetSpawnPointByTileLevelEntity (spawnManager: SpawnManager, tileLevelEntity: ycTileLevel2Entity) -> SpawnPoint
spawn_point_disable SpawnPointDisable (spawnPoint: SpawnPoint) call Reset() to return to AwaitingSpawn
spawn_point_disown_parent SpawnPointDisownParent (spawnPoint: SpawnPoint)
spawn_point_get_area SpawnPointGetArea (spawnPoint: SpawnPoint) -> MM_AABB(6 numbers)
spawn_point_get_child SpawnPointGetChild (spawnPoint: SpawnPoint) -> SpawnPoint
spawn_point_get_child_offset SpawnPointGetChildOffset (spawnPoint: SpawnPoint) -> MM_Vec3(3 numbers)
spawn_point_get_child_spawn_dir SpawnPointGetChildSpawnDir (spawnPoint: SpawnPoint) -> MM_Vec3(3 numbers)
spawn_point_get_collision_layer SpawnPointGetCollisionLayer (spawnPoint: SpawnPoint) -> number
spawn_point_get_entity_type SpawnPointGetEntityType (spawnPoint: SpawnPoint) -> number
spawn_point_get_layer_name_hash SpawnPointGetLayerNameHash (spawnPoint: SpawnPoint) -> number
spawn_point_get_name_hash SpawnPointGetNameHash (spawnPoint: SpawnPoint) -> number
spawn_point_get_name_level_hash SpawnPointGetNameLevelHash (spawnPoint: SpawnPoint) -> number(64-bit)
spawn_point_get_parent SpawnPointGetParent (spawnPoint: SpawnPoint) -> SpawnPoint
spawn_point_get_pos SpawnPointGetPos (spawnPoint: SpawnPoint) -> MM_Vec3(3 numbers)
spawn_point_get_pos_start SpawnPointGetPosStart (spawnPoint: SpawnPoint) -> MM_Vec3(3 numbers)
spawn_point_get_property_bool SpawnPointGetPropertyBool (spawnPoint: SpawnPoint, propName: string, defaultValue: boolean) -> boolean
spawn_point_get_property_by_hash SpawnPointGetPropertyByHash (spawnPoint: SpawnPoint, hash: number, defaultValue: string) -> string
spawn_point_get_property_exists SpawnPointGetPropertyExists (spawnPoint: SpawnPoint, propName: string) -> boolean
spawn_point_get_property_exists_by_hash SpawnPointGetPropertyExistsByHash (spawnPoint: SpawnPoint, hash: number) -> boolean
spawn_point_get_property_float SpawnPointGetPropertyFloat (spawnPoint: SpawnPoint, propName: string, defaultValue: number) -> number
spawn_point_get_property_int SpawnPointGetPropertyInt (spawnPoint: SpawnPoint, propName: string, defaultValue: number) -> number
spawn_point_get_property_string SpawnPointGetPropertyString (spawnPoint: SpawnPoint, name: string, defaultValue: string) -> string
spawn_point_get_rotation SpawnPointGetRotation (spawnPoint: SpawnPoint) -> number
spawn_point_get_scale SpawnPointGetScale (spawnPoint: SpawnPoint) -> MM_Vec3(3 numbers)
spawn_point_get_spawn_type SpawnPointGetSpawnType (spawnPoint: SpawnPoint) -> number
spawn_point_get_spawned_entity SpawnPointGetSpawnedEntity (spawnPoint: SpawnPoint) -> GameComponent
spawn_point_get_tile_layer_index SpawnPointGetTileLayerIndex (spawnPoint: SpawnPoint) -> number
spawn_point_get_tile_level_entity SpawnPointGetTileLevelEntity (spawnPoint: SpawnPoint) -> string returned string should be freed with Free() (The binding copies the string and frees the original; do not free it yourself.)
spawn_point_has_child_spawn_point SpawnPointHasChildSpawnPoint (spawnPoint: SpawnPoint) -> boolean
spawn_point_is_awaiting_spawn SpawnPointIsAwaitingSpawn (spawnPoint: SpawnPoint) -> boolean
spawn_point_is_child_spawn_enabled SpawnPointIsChildSpawnEnabled (spawnPoint: SpawnPoint) -> boolean
spawn_point_is_disabled SpawnPointIsDisabled (spawnPoint: SpawnPoint) -> boolean
spawn_point_is_entity_culled SpawnPointIsEntityCulled (spawnPoint: SpawnPoint) -> boolean
spawn_point_is_entity_killed SpawnPointIsEntityKilled (spawnPoint: SpawnPoint) -> boolean
spawn_point_is_entity_permanent_killed_type SpawnPointIsEntityPermanentKilledType (spawnPoint: SpawnPoint) -> boolean
spawn_point_is_entity_spawned SpawnPointIsEntitySpawned (spawnPoint: SpawnPoint) -> boolean
spawn_point_is_force_child_offset SpawnPointIsForceChildOffset (spawnPoint: SpawnPoint) -> boolean
spawn_point_is_force_child_spawn SpawnPointIsForceChildSpawn (spawnPoint: SpawnPoint) -> boolean
spawn_point_is_persistent SpawnPointIsPersistent (spawnPoint: SpawnPoint) -> boolean
spawn_point_reset SpawnPointReset (spawnPoint: SpawnPoint)
spawn_point_reset_all SpawnPointResetAll (spawnPoint: SpawnPoint)
spawn_point_reset_pos_to_start SpawnPointResetPosToStart (spawnPoint: SpawnPoint)
spawn_point_set_child_offset SpawnPointSetChildOffset (spawnPoint: SpawnPoint, offset: MM_Vec3(3 numbers))
spawn_point_set_child_spawn_dir SpawnPointSetChildSpawnDir (spawnPoint: SpawnPoint, dir: MM_Vec3(3 numbers))
spawn_point_set_child_spawn_enabled SpawnPointSetChildSpawnEnabled (spawnPoint: SpawnPoint, enabled: boolean)
spawn_point_set_child_spawn_point SpawnPointSetChildSpawnPoint (spawnPoint: SpawnPoint, child: SpawnPoint)
spawn_point_set_collision_layer SpawnPointSetCollisionLayer (spawnPoint: SpawnPoint, idx: number)
spawn_point_set_force_child_offset SpawnPointSetForceChildOffset (spawnPoint: SpawnPoint, force: boolean)
spawn_point_set_force_child_spawn SpawnPointSetForceChildSpawn (spawnPoint: SpawnPoint, force: boolean)
spawn_point_set_parent_spawn_point SpawnPointSetParentSpawnPoint (spawnPoint: SpawnPoint, parent: SpawnPoint)
spawn_point_set_pos SpawnPointSetPos (spawnPoint: SpawnPoint, pos: MM_Vec3(3 numbers))
spawn_point_set_rotation SpawnPointSetRotation (spawnPoint: SpawnPoint, rot: number)
spawn_point_set_scale SpawnPointSetScale (spawnPoint: SpawnPoint, scale: MM_Vec3(3 numbers))
spawn_point_set_spawn_type SpawnPointSetSpawnType (spawnPoint: SpawnPoint, spawnType: number)
spawn_point_set_spawned_entity SpawnPointSetSpawnedEntity (spawnPoint: SpawnPoint, entity: GameComponent)
spawn_point_setup_parent_spawn_point SpawnPointSetupParentSpawnPoint (spawnPoint: SpawnPoint, parent: SpawnPoint) same as calling SetParent + SetChild, and also saves the starting position
spawn_point_spawn_point_inv_transform_pos SpawnPointSpawnPointInvTransformPos (pos: MM_Vec2(2 numbers)) -> MM_Vec2(2 numbers) transform a position to raw level format
spawn_point_spawn_point_transform_pos SpawnPointSpawnPointTransformPos (pos: MM_Vec2(2 numbers)) -> MM_Vec2(2 numbers) transform a position from raw level format
start_active_save_slot StartActiveSaveSlot ()
text_component_get_bounds TextComponentGetBounds (textComponent: ycComponent) -> bounds: MM_AABB(6 numbers)
text_component_get_color TextComponentGetColor (textComponent: ycComponent) -> color: MM_Color(4 numbers)
text_component_get_height TextComponentGetHeight (textComponent: ycComponent) -> number
text_component_get_local_position TextComponentGetLocalPosition (textComponent: ycComponent) -> pos: MM_Vec3(3 numbers)
text_component_get_local_transform TextComponentGetLocalTransform (textComponent: ycComponent) -> transform: MM_Transform(10 numbers)
text_component_get_render_pass TextComponentGetRenderPass (textComponent: ycComponent) -> ycRenderPass
text_component_get_text TextComponentGetText (textComponent: ycComponent) -> string
text_component_get_total_line_count TextComponentGetTotalLineCount (textComponent: ycComponent) -> number
text_component_get_width TextComponentGetWidth (textComponent: ycComponent) -> number
text_component_is_visible TextComponentIsVisible (textComponent: ycComponent) -> boolean
text_component_set_color TextComponentSetColor (textComponent: ycComponent, color: MM_Color(4 numbers))
text_component_set_local_position TextComponentSetLocalPosition (textComponent: ycComponent, pos: MM_Vec3(3 numbers))
text_component_set_local_transform TextComponentSetLocalTransform (textComponent: ycComponent, transform: MM_Transform(10 numbers))
text_component_set_render_pass TextComponentSetRenderPass (textComponent: ycComponent, renderPass: ycRenderPass)
text_component_set_text TextComponentSetText (textComponent: ycComponent, text: string)
text_component_set_visible TextComponentSetVisible (textComponent: ycComponent, visible: boolean)
tile_level_entity_get_spawn_type TileLevelEntityGetSpawnType (name: string) -> number returns 0xff if no valid value is found
transition_to_game_state TransitionToGameState (gameState: number)
warp_to_boss WarpToBoss ()
warp_to_mini_boss WarpToMiniBoss ()
water_listener_is_in_deep_water WaterListenerIsInDeepWater (waterListener: WaterListener, ignoreEnabled: boolean) -> boolean
wf_lz__get_max_compressed_size wfLZ_GetMaxCompressedSize (inSize: number) -> number
wf_lz__get_work_mem_size wfLZ_GetWorkMemSize () -> number
world_enable_entity_update WorldEnableEntityUpdate (world: World, enable: boolean)
world_get_elapsed_time WorldGetElapsedTime (world: World) -> number elapsed time taking time scale into account
world_get_entity_by_spawn_point WorldGetEntityBySpawnPoint (world: World, name: string) -> GameComponent
world_get_entity_hit_update_queue WorldGetEntityHitUpdateQueue (world: World) -> ycUpdateQueue
world_get_entity_post_art_update_queue WorldGetEntityPostArtUpdateQueue (world: World) -> ycUpdateQueue
world_get_entity_post_update_queue WorldGetEntityPostUpdateQueue (world: World) -> ycUpdateQueue
world_get_entity_pre_update_queue WorldGetEntityPreUpdateQueue (world: World) -> ycUpdateQueue
world_get_entity_update_queue WorldGetEntityUpdateQueue (world: World) -> ycUpdateQueue
world_get_game_camera WorldGetGameCamera (world: World) -> GameCamera
world_get_game_root_entity WorldGetGameRootEntity (world: World) -> ycEntity
world_get_hud_root_entity WorldGetHUDRootEntity (world: World) -> ycEntity
world_get_hud_update_queue WorldGetHUDUpdateQueue (world: World) -> ycUpdateQueue
world_get_menu_root_entity WorldGetMenuRootEntity (world: World) -> ycEntity
world_get_pause_check_update_queue WorldGetPauseCheckUpdateQueue (world: World) -> ycUpdateQueue
world_get_pause_update_queue WorldGetPauseUpdateQueue (world: World) -> ycUpdateQueue
world_get_player_update_queue WorldGetPlayerUpdateQueue (world: World) -> ycUpdateQueue
world_get_post_sim_update_queue WorldGetPostSimUpdateQueue (world: World) -> ycUpdateQueue
world_get_system_post_update_queue WorldGetSystemPostUpdateQueue (world: World) -> ycUpdateQueue
world_get_system_pre_update_queue WorldGetSystemPreUpdateQueue (world: World) -> ycUpdateQueue
world_get_system_root_entity WorldGetSystemRootEntity (world: World) -> ycEntity
world_get_time_scale WorldGetTimeScale (world: World) -> number
world_is_entity_update_enabled WorldIsEntityUpdateEnabled (world: World) -> boolean
world_is_pause_allowed WorldIsPauseAllowed (world: World) -> boolean
world_is_paused WorldIsPaused (world: World) -> boolean
world_pause WorldPause (world: World, menu: boolean)
world_queue_destroy_component WorldQueueDestroyComponent (world: World, component: ycComponent, depthFirst: boolean)
world_queue_destroy_entity WorldQueueDestroyEntity (world: World, entity: ycEntity, depthFirst: boolean)
world_region_get_spawn_manager WorldRegionGetSpawnManager (worldRegion: WorldRegion) -> SpawnManager
world_resume WorldResume (world: World)
world_set_pause_allowed WorldSetPauseAllowed (world: World, enable: boolean)

Value types

A struct is not a table: it spreads across the listed number of Lua values, in this order.

Type Numbers Element Order
MM_Vec2 2 float x, y
MM_Vec3 3 float x, y, z
MM_Vec4 4 float x, y, z, w
MM_Quat 4 float x, y, z, w
MM_Transform 10 float rot(4), scale(3), pos(3) - r/s/t, not t/r/s
MM_AABB 6 float center(3), extents(3) - not min/max
MM_Sphere 4 float center(3), radius
MM_Circle 7 float center(3), normal(3), radius - a 3D circle, not a 2D one
MM_LineSeg 6 float p1(3), p2(3)
MM_Mtx 16 float flat float[16]
MM_Color 4 integer r, g, b, a - each 0-255, not 0-1

Not bound

Reachable only from C++.

C name Why
Alloc raw void*; needs a hand-written wrapper
Assert variadic; formatting is done Lua-side
Base64Decode byte buffer; needs a hand-written wrapper
Base64Encode byte buffer; needs a hand-written wrapper
CreateRenderObject takes a callback; routed through mina.on_event
CreateWeakPtr raw void*; needs a hand-written wrapper
EntityGetChildren no generic mapping
FileRefGetData byte buffer; needs a hand-written wrapper
Free raw void*; needs a hand-written wrapper
GameAnimInit raw void*; needs a hand-written wrapper
GetSymAddr raw void*; needs a hand-written wrapper
Hash32 raw void*; needs a hand-written wrapper
Hash64 raw void*; needs a hand-written wrapper
InstallHook takes a callback; routed through mina.on_event
Log variadic; formatting is done Lua-side
PagedMenuAddControl raw void*; needs a hand-written wrapper
RemoveHook raw void*; needs a hand-written wrapper
RunHooks raw void*; needs a hand-written wrapper
SetDataFile raw void*; needs a hand-written wrapper
SpawnEntity2 raw void*; needs a hand-written wrapper
UpdateGpuBuffer raw void*; needs a hand-written wrapper
UpdateQueueAdd takes a callback; routed through mina.on_event
UpdateQueueRemove raw void*; needs a hand-written wrapper
UpdateTexture raw void*; needs a hand-written wrapper
WeakPtrGet raw void*; needs a hand-written wrapper
wfLZ_CompressFast byte buffer; needs a hand-written wrapper
wfLZ_Decompress byte buffer; needs a hand-written wrapper
wfLZ_GetCompressedSize byte buffer; needs a hand-written wrapper
wfLZ_GetDecompressedSize byte buffer; needs a hand-written wrapper
WorldGetEntityList no generic mapping