Skip to content

UnreliableRemoteEvent

Not yet Class Scripting & Networking

An object which facilitates asynchronous, unordered and unreliable, one-way communication across the client-server boundary. Scripts firing a UnreliableRemoteEvent do not yield.

Not implemented yet

This class exists in the current Roblox API but is not implemented in Nova yet. Scripts that reference it will fail at runtime.

0 Nova members · 11 modern Roblox members not implemented yet

Description

The UnreliableRemoteEvent object is a variant of the RemoteEvent object. It facilitates asynchronous, unordered and unreliable, 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 UnreliableRemoteEvent 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.

UnreliableRemoteEvent is best used for ephemeral events, including effects that are only relevant for a short time, or for replicating continuously changing data. These events are not resent if they are lost and they do not wait for previously fired events to arrive before being processed, potentially resulting in reduced latency and network traffic. When you need ordering and reliability, use a RemoteEvent instead.

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.

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 an UnreliableRemoteEvent is fired, as well as Luau types such as numbers, strings, and booleans, although you should carefully explore the limitations.

Events with payloads larger than 1000 bytes are dropped. When this happens in Studio, a log message in the Output window indicates the number of bytes the event went over.

Like all events, the UnreliableRemoteEvent methods encode and compress certain object types, such as buffers, which shrinks the payload size and can make it difficult to verify whether you are under the limit prior to firing the event. If you frequently reach this limit, consider whether a standard RemoteEvent is the better fit for your use case.

Inheritance

Object → Instance → BaseRemoteEvent → UnreliableRemoteEvent

Methods

Member Signature Summary
FireAllClients UnreliableRemoteEvent:FireAllClients(arguments: Tuple): null Fires the OnClientEvent event for all connected clients. Has a 1000 byte limit to the payload of the event. Events with larger…
FireClient UnreliableRemoteEvent:FireClient(player: Player, arguments: Tuple): null Fires the OnClientEvent event for a specific client. Has a 1000 byte limit to the payload of the event. Events with larger payl…
FireServer UnreliableRemoteEvent:FireServer(arguments: Tuple): null Fires the OnServerEvent event on the server from one connected client. Has a 1000 byte limit to the payload of the event. Event…

Events

Member Signature Summary
OnClientEvent OnClientEvent(arguments: Tuple) Fires from a LocalScript when either FireClient() or FireAllClients()…
OnRemoteServerEvent OnRemoteServerEvent(arguments: Tuple) —
OnServerEvent OnServerEvent(player: Player, arguments: Tuple) Fires from a Script when FireServer() is called on the same UnreliableRemoteEvent instanc…

Roblox reference: UnreliableRemoteEvent

Generated from Nova's API dump and Roblox creator-docs. Nova-only members come from the engine's reflection metadata.