RemoteEvent
An object which facilitates asynchronous, one-way communication across the client-server boundary. Scripts firing a RemoteEvent do not yield.
| Memory category | Instances |
|---|
Member index 6
Description
The RemoteEvent object facilitates asynchronous, one-way communication across the client-server boundary without yielding for a response. This communication can be directed from one client to the server, from the server to a specific client, or from the server to all clients.
In order for both the server and clients to access a RemoteEvent instance, it must be in a place where both sides can see it, such as ReplicatedStorage, although in some cases it's appropriate to store it in Workspace or inside a Tool.
If no connected listener exists to handle an event, you might see a
Remote event invocation discarded error in the log to indicate that the
event was discarded and that you need to implement either OnClientEvent or
OnServerEvent. Unlike UnreliableRemoteEvents,
RemoteEvents buffer a large number of events before
throwing this error.
If you need the result of the call, you should use a RemoteFunction instead. Otherwise a remote event is recommended since it will minimize network traffic/latency and won't yield the script to wait for a response.
See Remote events and callbacks for code samples and further details.
Throttling
Remote events are subject to rate limits when sent from the client to the server with the FireServer() method. RemoteEvents and UnreliableRemoteEvents both have a limit of approximately 500 requests per second, per client. This limit is shared among all remote events of the same type. To avoid throttling and latency issues, limit recurring remote events whenever possible.
Parameter limitations
Any type of Roblox object (Enum, Instance, etc.) can be passed as a parameter when a RemoteEvent is fired, as well as Luau types such as numbers, strings, and booleans, although you should carefully explore the limitations.
History 18
- 614 Add
- 601 Change Superclass of RemoteEvent from Instance to BaseRemoteEvent
- 573 Change ReturnType of FireServer from void to null
- 573 Change ReturnType of FireClient from void to null
- 573 Change ReturnType of FireAllClients from void to null
- 483 Change Parameters of OnServerEvent from (player: Instance, arguments: Tuple) to (player: Player, arguments: Tuple)
- 483 Change Parameters of FireClient from (player: Instance, arguments: Tuple) to (player: Player, arguments: Tuple)
- 462 Change ThreadSafety of OnServerEvent from to Unsafe
- 462 Change ThreadSafety of OnClientEvent from to Unsafe
- 462 Change ThreadSafety of FireServer from to Unsafe
- 462 Change ThreadSafety of FireClient from to Unsafe
- 462 Change ThreadSafety of FireAllClients from to Unsafe
- 123 Add OnServerEvent
- 123 Add OnClientEvent
- 123 Add FireServer
- 123 Add FireClient
- 123 Add FireAllClients
- 123 Add RemoteEvent
Members 6
FireAllClients
| Parameters (1) | ||
|---|---|---|
| arguments | Tuple | |
| Returns (1) | ||
| null | ||
Fires the OnClientEvent event for each connected client. Unlike FireClient(), this event does not take a target Player as the first argument, since it fires to multiple clients. Since this method is used to communicate from the server to clients, it only works when used in a Script.
| Thread safety | Unsafe |
|---|
History 3
- 573 Change ReturnType of FireAllClients from void to null
- 462 Change ThreadSafety of FireAllClients from to Unsafe
- 123 Add FireAllClients
FireClient
| Parameters (2) | ||
|---|---|---|
| player | Player | |
| arguments | Tuple | |
| Returns (1) | ||
| null | ||
Fires the OnClientEvent event for the specific client in the required Player argument. Since this method is used to communicate from the server to a client, it only works when used in a Script.
| Thread safety | Unsafe |
|---|
History 4
- 573 Change ReturnType of FireClient from void to null
- 483 Change Parameters of FireClient from (player: Instance, arguments: Tuple) to (player: Player, arguments: Tuple)
- 462 Change ThreadSafety of FireClient from to Unsafe
- 123 Add FireClient
FireServer
| Parameters (1) | ||
|---|---|---|
| arguments | Tuple | |
| Returns (1) | ||
| null | ||
Fires the OnServerEvent event on the server from one client. Connected events receive the Player argument of the firing client. Since this method is used to communicate from a client to the server, it only works when used in a client script.
| Thread safety | Unsafe |
|---|
History 3
- 573 Change ReturnType of FireServer from void to null
- 462 Change ThreadSafety of FireServer from to Unsafe
- 123 Add FireServer
OnClientEvent
| Parameters (1) | |
|---|---|
| arguments | Tuple |
Fires from a LocalScript when either FireClient() or FireAllClients() is called on the same RemoteEvent instance from a Script.
See Remote Events and Callbacks for code samples and further details on OnClientEvent.
| Thread safety | Unsafe |
|---|
History 2
- 462 Change ThreadSafety of OnClientEvent from to Unsafe
- 123 Add OnClientEvent
OnServerEvent
| Parameters (2) | |
|---|---|
| player | Player |
| arguments | Tuple |
Fires from a Script when FireServer() is called on the same RemoteEvent instance from a LocalScript.
See Remote Events and Callbacks for code samples and further details on OnServerEvent.
| Thread safety | Unsafe |
|---|
History 3
- 483 Change Parameters of OnServerEvent from (player: Instance, arguments: Tuple) to (player: Player, arguments: Tuple)
- 462 Change ThreadSafety of OnServerEvent from to Unsafe
- 123 Add OnServerEvent