Skip to main content
Version: bleeding-edge ๐Ÿฉธ

๐Ÿšฉ Events

Subscribe for user-defined Events.

๐Ÿ’‚Authority
This static class can be accessed on both ๐ŸŸง Client and ๐ŸŸฆ Server.
๐Ÿ—ฟStatic Class
This is a Static Class. You can access it's methods directly with .. It is not possible to initialize or create new instances.

๐ŸŽ’ย 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 nanos world!"
end)

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

-- 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 nanos world!"
end)

-- calls a remote Event in all Server Packages
Events.CallRemote("MyServerEvent", "hello nanos world!")
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 nanos world!"
end)

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

-- 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 nanos world!"

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

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

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 nanos world! 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 nanos world!", Vector(123, 123, 123), my_temp_character, 456)

-- calls a remote Event in all Server Packages
Events.CallRemote("MyEvent", "hello nanos world!", 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
function SubscribeSubscribes for an user-created event which will be triggered for only local called events
function SubscribeRemoteSubscribes 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
string event_nameThe Event Name to trigger the event
any args...?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
string event_nameThe Event Name to trigger the event
any args...?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
string event_nameThe Event Name to trigger the event
Player playerThe remote player to send this event
any args...?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
string event_nameThe Event Name to trigger the event
any args...?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
integer dimensionThe Dimension to send this event
string event_nameThe Event Name to trigger the event
any args...?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
string event_nameThe Event Name to subscribe
function callbackThe 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
string event_nameThe Event Name to subscribe
function callbackThe 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
string event_nameThe Event Name to unsubscribe
function callback?nilThe callback function to unsubscribe