Skip to main content

Events

Subscribe for user-defined Events.

🗿Static Class
This is a Static Class. Access it's methods directly with .. It's not possible to spawn new instances.
💂Authority
This static class can be accessed on both 🟧 Client and 🟦 Server side.

Examples

info

Remote means the other side, e.g.: if I'm the Client, the remote is the Server. If I'm the Server, the remote is the Client.

Basic Usage

Client/Index.lua
-- register for a local Event (local = client only)
Events.Subscribe("MyLocalEvent", function(my_text)
Console.Log("Event received locally! " .. my_text)
-- outputs "Event received locally! hello HELIX!"
end)

-- calls a local Event in all Local Packages
Events.Call("MyLocalEvent", "hello HELIX!")

-- register for a server Event (remote = server)
Events.SubscribeRemote("MyClientEvent", function(my_text)
Console.Log("Event received from server! " .. my_text)
-- outputs "Event received from server! hello HELIX!"
end)

-- calls a remote Event in all Server Packages
Events.CallRemote("MyServerEvent", "hello HELIX!")
info

On Server, registering for remote events has an addition parameter: Player, which is the client who sent the event.

Server/Index.lua
-- register for a local Event (local = server only)
Events.Subscribe("MyLocalEvent", function(my_text)
Console.Log("Event received locally! " .. my_text)
-- outputs "Event received locally! hello HELIX!"
end)

-- calls a local Event in all Local Packages
Events.Call("MyLocalEvent", "hello HELIX!")

-- register for a client Event (remote = client)
Events.SubscribeRemote("MyServerEvent", function(player, my_text)
Console.Log(player:GetName() .. " sent an event from client! " .. my_text)
-- outputs "Syed sent an event from client! hello HELIX!"

-- sends an "answer" to the player which sent this event
Events.CallRemote("MyClientEvent", player, "hello HELIX! message only for you!")
end)

-- sends a remote Event to all Players in all Client Packages
Events.BroadcastRemote("MyClientEvent", "hello HELIX!")

Passing entities through Events

-- register for an Event (remote or local)
Events.Subscribe("MyAnotherEvent", function(my_text, my_vector, my_character, my_number)
Console.Log("Event received! " .. my_text .. " " .. my_vector.X .. " " .. my_character:GetViewMode() .. " " .. my_number)
-- outputs "Event received! hello HELIX! 123 1 456"
end)

-- passing Characters through events
local my_temp_character = Character()

-- calls a local Event in all Local Packages
Events.Call("MyEvent", "hello HELIX!", Vector(123, 123, 123), my_temp_character, 456)

-- calls a remote Event in all Server Packages
Events.CallRemote("MyEvent", "hello HELIX!", Vector(123, 123, 123), my_temp_character, 456)
tip

You can find more examples and a compreensive guide at the Events Guide page.

Events Guidecore-concepts/scripting/events-guide

Static Functions

ReturnsNameDescription
CallCalls an Event which will be triggered in all Local Packages
CallRemoteCalls an Event if on Client which will be triggered in all Server Packages
CallRemoteCalls an Event if on Server which will be triggered in all Client's Packages of a specific Player
BroadcastRemoteCalls an Event on Server which will be triggered in all Client's Packages of all Players
BroadcastRemoteDimensionCalls an Event on Server which will be triggered in all Client's Packages of all Players in that dimension
functionSubscribeSubscribes for an user-created event which will be triggered for only local called events
functionSubscribeRemoteSubscribes for an user-created event which will be triggered for only remote called events
UnsubscribeUnsubscribes from all subscribed events in this Package with that event name, optionally passing the function to unsubscribe only that callback

Call

Calls an Event which will be triggered in all Local Packages

Events.Call(event_name, args...?)
TypeParameterDefaultDescription
stringevent_nameThe Event Name to trigger the event
anyargs...?nilArguments to pass to the event

CallRemote

Calls an Event if on Client which will be triggered in all Server Packages

Events.CallRemote(event_name, args...?)
TypeParameterDefaultDescription
stringevent_nameThe Event Name to trigger the event
anyargs...?nilArguments to pass to the event

CallRemote

Calls an Event if on Server which will be triggered in all Client's Packages of a specific Player

Events.CallRemote(event_name, player, args...?)
TypeParameterDefaultDescription
stringevent_nameThe Event Name to trigger the event
PlayerplayerThe remote player to send this event
anyargs...?nilArguments to pass to the event

BroadcastRemote

Calls an Event on Server which will be triggered in all Client's Packages of all Players

Events.BroadcastRemote(event_name, args...?)
TypeParameterDefaultDescription
stringevent_nameThe Event Name to trigger the event
anyargs...?nilArguments to pass to the event

BroadcastRemoteDimension

Calls an Event on Server which will be triggered in all Client's Packages of all Players in that dimension

Events.BroadcastRemoteDimension(dimension, event_name, args...?)
TypeParameterDefaultDescription
integerdimensionThe Dimension to send this event
stringevent_nameThe Event Name to trigger the event
anyargs...?nilArguments to pass to the event

Subscribe

Subscribes for an user-created event which will be triggered for only local called events

— Returns function (the subscribed callback itself).

local ret = Events.Subscribe(event_name, callback)
TypeParameterDefaultDescription
stringevent_nameThe Event Name to subscribe
functioncallbackThe callback function to execute

SubscribeRemote

Subscribes for an user-created event which will be triggered for only remote called events

— Returns function (the subscribed callback itself).

local ret = Events.SubscribeRemote(event_name, callback)
TypeParameterDefaultDescription
stringevent_nameThe Event Name to subscribe
functioncallbackThe callback function to execute

Unsubscribe

Unsubscribes from all subscribed events in this Package with that event name, optionally passing the function to unsubscribe only that callback

Events.Unsubscribe(event_name, callback?)
TypeParameterDefaultDescription
stringevent_nameThe Event Name to unsubscribe
functioncallback?nilThe callback function to unsubscribe