Roblox RemoteEvent Security: Server-Side Rules
Roblox RemoteEvent Security: Server-Side Rules

Roblox RemoteEvents provide asynchronous, one-way communication across the client-server boundary without waiting for a response. When a client calls FireServer(), the first parameter received by the server's OnServerEvent handler is always the Player object for the calling client.

Validate on the server

Roblox's security guidance says every piece of data sent by a client must be validated by the server before it is used. Depending on the action, validation should cover context and permissions, type and structure, and whether values are valid and logical.

Both infinity and NaN are valid number values that require explicit rejection. In particular, NaN fails standard comparisons and can therefore bypass range checks that do not test for it directly.

Enforce server-side rate limits

Roblox recommends rate-limiting server logic that clients can trigger and warns developers not to rely solely on client-side limits. A token-bucket limiter permits bounded bursts while restricting sustained request frequency through a steady refill rate.

Keep remotes narrow

Roblox advises limiting the scope and impact of RemoteEvents and avoiding remotes that let clients specify arbitrary paths or Instance references for the server to delete or modify. When relaying client-triggered effects to other clients, the server should validate the request and enforce per-player rate limits instead of acting as an unchecked relay.

Respond proportionally

Roblox describes heuristics as checks that flag technically possible but highly improbable behavior. Its guidance recommends preventing harm first and favoring proportional, reversible consequences because false positives can occur.

Sources and verification
  • Securing the client-server boundary — Supports server-side validation of client data, rejection of infinity and NaN, server-side rate limiting, token-bucket behavior, restricted remote scope, and guarded client-to-client relaying.
  • Remote events and callbacks — Supports RemoteEvents being asynchronous and one-way and the calling client's Player object being the first server-handler parameter.
  • Server-side detection and consequencing — Supports the description of heuristics as suspicious-behavior signals, preventing harm first, accounting for false positives, and using proportional and reversible consequences.