跳至正文
版本:bleeding-edge 🩸

🚩 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.
🧑‍💻API Source
This page is auto-generated! The Functions, Properties and Events described here are defined in our GitHub's API Repository! Feel free to commit suggestions and changes to the source .json API files!

🎒 Examples

info

远程 代表对面的端,例如:如果我是客户端,远程就是服务器。 如果我是服务器,远程就是客户端。

基础用法

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

-- 在所有服务器包中调用一个远程事件
Events.CallRemote("MyServerEvent", Reliability.Reliable, "你好 nanos world!")
info

服务器上,注册远程事件会有一个额外的参数:Player,即发送该事件的客户端。

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() .. " 从客户端发送了一个事件! " .. my_text)
-- outputs "Syed sent an event from client! 你好 nanos world!"

-- 向发送该事件的玩家发送一个“回复”
Events.CallRemote("MyClientEvent", player, Reliability.Reliable, "你好 nanos world! 给你专属的消息!")
end)

-- 向所有客户端包中的所有玩家广播一个远程事件
Events.BroadcastRemote("MyClientEvent", Reliability.Reliable, "你好 nanos world!")

通过事件传递实体

-- 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! 你好 nanos world! 123 1 456"
end)

-- 通过事件传递角色
local my_temp_character = Character()

-- 在所有本地包中调用一个本地事件
Events.Call("MyEvent", "你好 nanos world!", Vector(123, 123, 123), my_temp_character, 456)

-- 在所有服务器包中调用一个远程事件
Events.CallRemote("MyEvent", Reliability.Reliable, "你好 nanos world!", Vector(123, 123, 123), my_temp_character, 456)
tip

你可以在事件指南页面找到更多示例和详尽的指南。

事件指南core-concepts/scripting/events-guide

🗿 Static Functions

ReturnsNameDescription
BroadcastRemoteBroadcasts a remote custom Event from the Server to ALL currently connected Players (Server ➔ Clients)
BroadcastRemoteDimensionBroadcasts a remote custom Event from the Server to all Players currently residing in the specified Dimension (Server ➔ Clients)
BroadcastRemoteInRadiusBroadcasts a remote custom Event from the Server to all Players within a specific location radius (Server ➔ Clients)
BroadcastRemoteInRadiusDimensionBroadcasts a remote custom Event from the Server to all Players within a specific location radius AND residing in a specific Dimension (Server ➔ Clients)
CallTriggers a local custom Event across all Packages on the same side (Client ➔ Client OR Server ➔ Server)
CallRemoteTriggers a remote custom Event from the Client to the Server (Client ➔ Server)
CallRemoteTriggers a remote custom Event from the Server to the Client (Server ➔ Client)
CallRemotePlayersTriggers a remote custom Event from the Server to an array of specific Players (Server ➔ Clients)
functionSubscribeListens for a local custom Event triggered by Events.Call() on the same side
functionSubscribeRemoteListens for a network custom Event
UnsubscribeRemoves a local event listener previously registered with Events.Subscribe()
UnsubscribeRemoteRemoves a network event listener previously registered with Events.SubscribeRemote()

BroadcastRemote

Broadcasts a remote custom Event from the Server to ALL currently connected Players (Server ➔ Clients)
Must be caught using Events.SubscribeRemote() on the Clients

Events.BroadcastRemote(event_name, reliability?, args...?)
TypeParameterDefaultDescription
stringevent_name Required parameter The Event Name to trigger the event
Reliabilityreliability?Reliability.ReliableThe network reliability rule
anyargs...?nilArguments to pass to the event

See also SubscribeRemote.


BroadcastRemoteDimension

Broadcasts a remote custom Event from the Server to all Players currently residing in the specified Dimension (Server ➔ Clients)
Must be caught using Events.SubscribeRemote() on the Clients

Events.BroadcastRemoteDimension(event_name, dimension, reliability?, args...?)
TypeParameterDefaultDescription
stringevent_name Required parameter The Event Name to trigger the event
integerdimension Required parameter The Dimension to send this event
Reliabilityreliability?Reliability.ReliableThe network reliability rule
anyargs...?nilArguments to pass to the event

See also SubscribeRemote.


BroadcastRemoteInRadius

Broadcasts a remote custom Event from the Server to all Players within a specific location radius (Server ➔ Clients)
Must be caught using Events.SubscribeRemote() on the Clients

Events.BroadcastRemoteInRadius(event_name, location, radius, reliability?, args...?)
TypeParameterDefaultDescription
stringevent_name Required parameter The Event Name to trigger the event
Vectorlocation Required parameter The location used to calculate the event radius
numberradius Required parameter The radius to send this event
Reliabilityreliability?Reliability.ReliableThe network reliability rule
anyargs...?nilArguments to pass to the event

See also SubscribeRemote.


BroadcastRemoteInRadiusDimension

Broadcasts a remote custom Event from the Server to all Players within a specific location radius AND residing in a specific Dimension (Server ➔ Clients)
Must be caught using Events.SubscribeRemote() on the Clients

Events.BroadcastRemoteInRadiusDimension(event_name, location, radius, dimension, reliability?, args...?)
TypeParameterDefaultDescription
stringevent_name Required parameter The Event Name to trigger the event
Vectorlocation Required parameter The location used to calculate the event radius
numberradius Required parameter The radius to send this event
integerdimension Required parameter The Dimension to send this event
Reliabilityreliability?Reliability.ReliableThe network reliability rule
anyargs...?nilArguments to pass to the event

See also SubscribeRemote.


Call

Triggers a local custom Event across all Packages on the same side (Client ➔ Client OR Server ➔ Server)
Must be caught using Events.Subscribe()

Events.Call(event_name, args...?)
TypeParameterDefaultDescription
stringevent_name Required parameter The Event Name to trigger the event
anyargs...?nilArguments to pass to the event

See also Subscribe.


CallRemote

Triggers a remote custom Event from the Client to the Server (Client ➔ Server)
The receiving Server will implicitly receive the sender 'Player' as the very first argument before your custom args
Must be caught using Events.SubscribeRemote()

Events.CallRemote(event_name, reliability?, args...?)
TypeParameterDefaultDescription
stringevent_name Required parameter The Event Name to trigger the event
Reliabilityreliability?Reliability.ReliableThe network reliability rule
anyargs...?nilArguments to pass to the event

See also SubscribeRemote.


CallRemote

Triggers a remote custom Event from the Server to the Client (Server ➔ Client)
Must be caught using Events.SubscribeRemote()

Events.CallRemote(event_name, player, reliability?, args...?)
TypeParameterDefaultDescription
stringevent_name Required parameter The Event Name to trigger the event
Playerplayer Required parameter The remote player to send this event
Reliabilityreliability?Reliability.ReliableThe network reliability rule
anyargs...?nilArguments to pass to the event

See also SubscribeRemote.


CallRemotePlayers

Triggers a remote custom Event from the Server to an array of specific Players (Server ➔ Clients)
More network-efficient than looping CallRemote
Must be caught using Events.SubscribeRemote() on the Clients

Events.CallRemotePlayers(event_name, players, reliability?, args...?)
TypeParameterDefaultDescription
stringevent_name Required parameter The Event Name to trigger the event
table of Playerplayers Required parameter The remote players to send this event
Reliabilityreliability?Reliability.ReliableThe network reliability rule
anyargs...?nilArguments to pass to the event

See also SubscribeRemote.


Subscribe

Listens for a local custom Event triggered by Events.Call() on the same side

— Returns function (the subscribed callback itself).

local ret = Events.Subscribe(event_name, callback)
TypeParameterDefaultDescription
stringevent_name Required parameter The Event Name to subscribe
functioncallback Required parameter The callback function to execute

SubscribeRemote

Listens for a network custom Event
If on the Server, it catches Events.CallRemote() from Clients (receiving the sender 'Player' as the first argument)
If on the Client, it catches Server broadcasts and remote calls

— Returns function (the subscribed callback itself).

local ret = Events.SubscribeRemote(event_name, callback)
TypeParameterDefaultDescription
stringevent_name Required parameter The Event Name to subscribe
functioncallback Required parameter The callback function to execute

Unsubscribe

Removes a local event listener previously registered with Events.Subscribe(). If no specific callback function is passed, it removes ALL local listeners for that event name in the current Package

Events.Unsubscribe(event_name, callback?)
TypeParameterDefaultDescription
stringevent_name Required parameter The Event Name to unsubscribe
functioncallback?nilThe callback function to unsubscribe

UnsubscribeRemote

Removes a network event listener previously registered with Events.SubscribeRemote(). If no specific callback function is passed, it removes ALL remote listeners for that event name in the current Package

Events.UnsubscribeRemote(event_name, callback?)
TypeParameterDefaultDescription
stringevent_name Required parameter The Event Name to unsubscribe
functioncallback?nilThe callback function to unsubscribe