Skip to content

tw.emit

Side: Client + Server

Optimized event emission with bandwidth control via latent events. Wraps FiveM/RedM event triggers with rate limiting and bandwidth management.

Client Functions

tw.emit.triggerServer(event_name, ...)

Triggers a server event from the client.

ParameterTypeDescription
event_namestringEvent name
...anyArguments to send

tw.emit.triggerServer.latent(event_name, ...)

Triggers a server event with bandwidth-limited delivery.

ParameterTypeDescription
event_namestringEvent name
...anyArguments to send

tw.emit.triggerClient(event_name, target, ...)

Triggers a client event on another player, routed via the server.

ParameterTypeDescription
event_namestringEvent name
targetintegerTarget player server ID
...anyArguments to send

tw.emit.isEventInProgress(event_name)

Checks if a latent event is still being transmitted.

ParameterTypeDescription
event_namestringEvent name to check

Returns: boolean or nil


tw.emit.updateBps(bps)

Updates the client-side bandwidth limit for latent events.

ParameterTypeDefaultDescription
bpsinteger20000Bytes per second

Server Functions

tw.emit.triggerClient(event_name, target, ...)

Triggers a client event on one or more players.

ParameterTypeDescription
event_namestringEvent name
targetinteger or tableSingle player server ID, or array of server IDs
...anyArguments to send

tw.emit.triggerClient.latent(event_name, target, ...)

Triggers a client event with bandwidth-limited delivery.

ParameterTypeDescription
event_namestringEvent name
targetinteger or tableSingle player server ID, or array of server IDs
...anyArguments to send

tw.emit.triggerServerWithSource(target, event_name, ...)

Triggers a server event while preserving a specific source value.

ParameterTypeDescription
targetintegerSource to set
event_namestringEvent name
...anyArguments to send

tw.emit.updateBps(bps)

Updates the server-side bandwidth limit for latent events.

ParameterTypeDefaultDescription
bpsinteger100000Bytes per second

Examples

Basic client-to-server event

lua
-- client.lua
tw.emit.triggerServer("myScript:collectItem", item_name, quantity)

-- server.lua
RegisterNetEvent("myScript:collectItem", function(item_name, quantity)
    local source = source
    tw.fw:giveItem(source, item_name, quantity)
end)

Latent event for large data

lua
-- server.lua
local large_data = buildShopInventory()
tw.emit.triggerClient.latent("myScript:syncShop", source, large_data)

Send to multiple players

lua
-- server.lua
local nearby_players = { 1, 3, 7 }
tw.emit.triggerClient("myScript:playEffect", nearby_players, effect_name, coords)

Adjust bandwidth

lua
-- client.lua — increase bandwidth for faster transfers
tw.emit.updateBps(50000)

-- server.lua — increase server bandwidth
tw.emit.updateBps(200000)

Notes

  • Default bandwidth limits: 20,000 bytes/s on client, 100,000 bytes/s on server.
  • Use .latent variants when sending large payloads (config tables, inventory lists, etc.) to avoid network congestion.
  • triggerClient on the server accepts both a single player ID (integer) and an array of IDs (table).
  • isEventInProgress returns nil if the event was never triggered.

Premium RedM Scripts — Multi-Framework