Broadcast → Fire Methods

Fire Methods

Three methods to fire events to one player, all players, or a subset. All are sent over UnreliableRemoteEvent and subject to the 900-byte payload limit.

Signatures

broadcast:Emit(player: Player, event: string, data: any)
broadcast:EmitAll(event: string, data: any)
broadcast:EmitTo(players: {Player}, event: string, data: any)

Parameters

ParameterTypeDescription
playerPlayerTarget player for Emit
players{Player}Target subset for EmitTo
eventstringEvent name — matched by listener:On(event) on the client
dataanyPayload. Serialised over UnreliableRemoteEvent. Must be ≤ 900 bytes.

Usage

local broadcast = RoExpress("Broadcast")

-- To one player
broadcast:Emit(player, "hit", { dmg = 35, pos = hitPos })

-- To all players in the server
broadcast:EmitAll("explosion", { pos = blast.Position, radius = 20 })

-- To a specific subset
broadcast:EmitTo({ p1, p2, p3 }, "zoneEnter", { zoneId = 4 })

Receiving on the client

Broadcast events are received by Listener using listener:On(event, callback):

-- Server
broadcast:EmitAll("hit", { dmg = 35, pos = hit.Position })

-- Client
local listener = RoExpress("Listener")
listener:On("hit", function(data)
    spawnDamageNumber(data.pos, data.dmg)
end)

Broadcast vs Push

FeatureBroadcastPush
TransportUnreliableRemoteEventRemoteEvent
Guaranteed deliveryNoYes
In-order deliveryNoYes
Payload limit900 bytesRoblox standard
Rate limitedYes — global TokenBucketNo (server-initiated)
Best forDamage numbers, movement hints, visual FXInventory sync, round events, state changes
900-byte limit. The UnreliableRemoteEvent payload cap is a Roblox engine limit. Keep broadcast data small — event names, positions, and scalar values fit easily. For large payloads, use Push instead.

See also

← Broadcast  ·  Rate Limiting | throttling broadcast volume  ·  Push | reliable alternative for critical events  ·  Listener | client-side event subscription