Events
The events library allows you to register callbacks for various events that occur in the game. This includes things like when the client is loaded, when an entity teleports, when a trigger is touched, and more.
Example
events.entity_teleport:listen(function(event)
local entity = event.entity
local old_pos = event.old_pos
local new_pos = event.new_pos
console.msg("Entity (%d) teleported from (%s) to (%s)", entity:get_id(), old_pos, new_pos)
end)
Documentation
events.tick
This event is fired every tick. It provides the tick number.
Event Properties
tick
(number): The tick number.
Example
events.tick:listen(function(event)
print("Tick:", event.tick)
end)
events.frame
This event is fired every frame. It provides the delta time since the last frame.
Event Properties
delta
(number): The delta time since the last frame.
Example
events.frame:listen(function(event)
print("Delta:", event.delta)
end)
events.render
This event is fired during the rendering phase.
Example
events.render:listen(function()
-- Perform rendering logic here
end)
events.level_init
This event is fired when the level is initialized. It provides the name of the map.
Event Properties
map_name
(string): The name of the map.
Example
events.level_init:listen(function(event)
print("Map Name:", event.map_name)
end)
events.client_active
This event is fired when the client becomes active.
Example
events.client_active:listen(function()
print("Client is active")
end)
events.client_disconnect
This event is fired when the client disconnects.
Example
events.client_disconnect:listen(function()
print("Client disconnected")
end)
events.player_jump
This event is fired when a player jumps.
Example
events.player_jump:listen(function()
print("Player jumped")
end)
events.entity_teleport
This event is fired when an entity is teleported. It provides information about the entity and its position before and after the teleport.
Event Properties
entity
(entity): The entity that was teleported.old_pos
(vec3): The position of the entity prior to the teleport.new_pos
(vec3): The position of the entity after the teleport.old_rot
(vec3): The rotation of the entity prior to the teleport.new_rot
(vec3): The rotation of the entity after the teleport.old_ang
(vec3): The angles of the entity prior to the teleport.new_ang
(vec3): The angles of the entity after the teleport.
Example
events.entity_teleport:listen(function(event)
print("Entity Teleported")
print("Entity:", event.entity:get_id())
print("Old Position:", event.old_pos)
print("New Position:", event.new_pos)
print("Old Rotation:", event.old_rot)
print("New Rotation:", event.new_rot)
print("Old Angles:", event.old_ang)
print("New Angles:", event.new_ang)
end)
events.player_teleport
This event is fired when a player is teleported. It provides information about the player and their position before and after the teleport.
Event Properties
entity
(entity): The player that was teleported.old_pos
(vec3): The position of the player prior to the teleport.new_pos
(vec3): The position of the player after the teleport.
Example
events.player_teleport:listen(function(event)
print("Player Teleported")
print("Player:", event.entity:get_id())
print("Old
Position:", event.old_pos)
print("New Position:", event.new_pos)
end)
events.player_grounded
This event is fired when a player becomes grounded.
Example
events.player_grounded:listen(function()
print("Player grounded")
end)
events.player_ungrounded
This event is fired when a player becomes ungrounded.
Example
events.player_ungrounded:listen(function()
print("Player ungrounded")
end)
events.entity_touch_trigger
This event is fired when an entity touches a trigger. It provides information about the trigger and the entity that touched it.
Event Properties
trigger
(entity): The trigger that was touched.entity
(entity): The entity that touched the trigger.
Example
events.entity_touch_trigger:listen(function(event)
print("Entity touched trigger")
print("Trigger:", event.trigger:get_id())
print("Entity:", event.entity:get_id())
end)
events.player_touch_trigger
This event is fired when a player touches a trigger. It provides information about the trigger and the player that touched it.
Event Properties
trigger
(entity): The trigger that was touched.entity
(entity): The player that touched the trigger.
Example
events.player_touch_trigger:listen(function(event)
print("Player touched trigger")
print("Trigger:", event.trigger:get_id())
print("Player:", event.entity:get_id())
end)
events.portal_moved
This event is fired when a portal is moved. It provides information about the portal's position and angles before and after the move.
Event Properties
old_pos
(vec3): The position of the portal prior to the move.new_pos
(vec3): The position of the portal after the move.old_ang
(vec3): The angles of the portal prior to the move.new_ang
(vec3): The angles of the portal after the move.
Example
events.portal_moved:listen(function(event)
print("Portal moved")
print("Old Position:", event.old_pos)
print("New Position:", event.new_pos)
print("Old Angles:", event.old_ang)
print("New Angles:", event.new_ang)
end)
event_type.call(self, event)
Calls the listeners for the event.
Parameters
event
(Event): The event to pass to the listeners.
Example
events.tick:call({tick = 123})
event_type.next(self, callback)
Executes the callback when the event is fired next.
Parameters
callback
(function): The callback to call when the event is fired.
Example
events.player_jump:next(function()
print("Player jumped")
end)
event_type.wait(self, count)
Waits for a specific number of events to be fired.
Parameters
count
(number|nil): The number of events to wait for. Ifnil
, it will wait for one event.
Returns
- The last event that was waited for.
Example
game.async(function()
local event = events.player_jump:wait()
print("Player jumped")
end)
event_type.listen(self, callback)
Listens for the event and executes the callback when it is fired.
Parameters
- `callback
` (function): The callback to call when the event is fired.
Returns
function
: A function that can be called to cancel the listener.
Example
local cancel = events.player_jump:listen(function()
print("Player jumped")
end)
-- Call cancel() to cancel the listener
cancel()