Skip to content

tw.emit

Côté : Client + Server

Émission d'événements optimisée avec contrôle de bande passante via les événements latents. Encapsule les triggers d'événements FiveM/RedM avec gestion de la bande passante.

Fonctions Client

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

Déclenche un événement serveur depuis le client.

ParamètreTypeDescription
event_namestringNom de l'événement
...anyArguments à envoyer

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

Déclenche un événement serveur avec livraison à bande passante limitée.

ParamètreTypeDescription
event_namestringNom de l'événement
...anyArguments à envoyer

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

Déclenche un événement client sur un autre joueur, routé via le serveur.

ParamètreTypeDescription
event_namestringNom de l'événement
targetintegerID serveur du joueur cible
...anyArguments à envoyer

tw.emit.isEventInProgress(event_name)

Vérifie si un événement latent est encore en cours de transmission.

ParamètreTypeDescription
event_namestringNom de l'événement à vérifier

Retour : boolean ou nil


tw.emit.updateBps(bps)

Met à jour la limite de bande passante côté client pour les événements latents.

ParamètreTypeDéfautDescription
bpsinteger20000Octets par seconde

Fonctions Server

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

Déclenche un événement client sur un ou plusieurs joueurs.

ParamètreTypeDescription
event_namestringNom de l'événement
targetinteger ou tableID serveur d'un joueur, ou tableau d'IDs
...anyArguments à envoyer

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

Déclenche un événement client avec livraison à bande passante limitée.

ParamètreTypeDescription
event_namestringNom de l'événement
targetinteger ou tableID serveur d'un joueur, ou tableau d'IDs
...anyArguments à envoyer

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

Déclenche un événement serveur en préservant une valeur source spécifique.

ParamètreTypeDescription
targetintegerSource à définir
event_namestringNom de l'événement
...anyArguments à envoyer

tw.emit.updateBps(bps)

Met à jour la limite de bande passante côté serveur pour les événements latents.

ParamètreTypeDéfautDescription
bpsinteger100000Octets par seconde

Exemples

Événement client-vers-serveur basique

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)

Événement latent pour de grosses données

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

Envoyer à plusieurs joueurs

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

Ajuster la bande passante

lua
-- client.lua — augmenter la bande passante pour des transferts plus rapides
tw.emit.updateBps(50000)

-- server.lua — augmenter la bande passante serveur
tw.emit.updateBps(200000)

Notes

  • Limites de bande passante par défaut : 20 000 octets/s côté client, 100 000 octets/s côté serveur.
  • Utilisez les variantes .latent pour envoyer de gros payloads (tables de config, listes d'inventaire, etc.) afin d'éviter la congestion réseau.
  • triggerClient côté serveur accepte aussi bien un ID joueur unique (integer) qu'un tableau d'IDs (table).
  • isEventInProgress retourne nil si l'événement n'a jamais été déclenché.

Premium RedM Scripts — Multi-Framework