Reliability
Push uses Roblox's standard RemoteEvent, which guarantees that every fired event arrives at the client in the order it was sent. No 900-byte cap. No silent drops.
Transport comparison
| Push (app:Push) | Broadcast (broadcast:Emit) | |
|---|---|---|
| Remote | RemoteEvent | UnreliableRemoteEvent |
| Delivery | Guaranteed | May drop under load |
| Order | Preserved | Not guaranteed |
| Payload cap | Roblox standard (no 900-byte limit) | 900 bytes |
| Rate limited | No (server-initiated) | Yes — per-player TokenBucket |
| Best for | Inventory, state sync, round events | HUD pings, position hints, visual FX |
Why Push is not rate limited
Rate limiting on the main App channel and Broadcast exists to protect the server from client-driven abuse. Push is server-initiated — the server controls when and how often it fires. There is no client-side attack surface to limit, so no TokenBucket is applied.
No 900-byte cap on Push
The 900-byte restriction is a Roblox engine limit on UnreliableRemoteEvent, which Broadcast uses. Push fires over a standard RemoteEvent and is subject only to Roblox's normal RemoteEvent payload size. For most game data (inventory tables, round state, player stats) this is not a concern.
When to choose Push vs Broadcast
| Scenario | Use |
|---|---|
| Player's inventory changed | Push — must arrive, must be current |
| Round start / end | Push — all players must receive it |
| Player data on join | Push — critical state sync |
| Damage number at a position | Broadcast — lossy OK, high frequency |
| Player movement hint for other clients | Broadcast — stale data is fine, volume is high |
| Visual hit effect | Broadcast — dropped frames are imperceptible |
See also
← Push · Push Methods | Push / PushAll / PushTo signatures · Broadcast | unreliable alternative · Broadcast Fire Methods | Emit / EmitAll / EmitTo