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ètre | Type | Description |
|---|---|---|
event_name | string | Nom de l'événement |
... | any | Arguments à envoyer |
tw.emit.triggerServer.latent(event_name, ...)
Déclenche un événement serveur avec livraison à bande passante limitée.
| Paramètre | Type | Description |
|---|---|---|
event_name | string | Nom de l'événement |
... | any | Arguments à envoyer |
tw.emit.triggerClient(event_name, target, ...)
Déclenche un événement client sur un autre joueur, routé via le serveur.
| Paramètre | Type | Description |
|---|---|---|
event_name | string | Nom de l'événement |
target | integer | ID serveur du joueur cible |
... | any | Arguments à envoyer |
tw.emit.isEventInProgress(event_name)
Vérifie si un événement latent est encore en cours de transmission.
| Paramètre | Type | Description |
|---|---|---|
event_name | string | Nom 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ètre | Type | Défaut | Description |
|---|---|---|---|
bps | integer | 20000 | Octets par seconde |
Fonctions Server
tw.emit.triggerClient(event_name, target, ...)
Déclenche un événement client sur un ou plusieurs joueurs.
| Paramètre | Type | Description |
|---|---|---|
event_name | string | Nom de l'événement |
target | integer ou table | ID serveur d'un joueur, ou tableau d'IDs |
... | any | Arguments à envoyer |
tw.emit.triggerClient.latent(event_name, target, ...)
Déclenche un événement client avec livraison à bande passante limitée.
| Paramètre | Type | Description |
|---|---|---|
event_name | string | Nom de l'événement |
target | integer ou table | ID serveur d'un joueur, ou tableau d'IDs |
... | any | Arguments à envoyer |
tw.emit.triggerServerWithSource(target, event_name, ...)
Déclenche un événement serveur en préservant une valeur source spécifique.
| Paramètre | Type | Description |
|---|---|---|
target | integer | Source à définir |
event_name | string | Nom de l'événement |
... | any | Arguments à envoyer |
tw.emit.updateBps(bps)
Met à jour la limite de bande passante côté serveur pour les événements latents.
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
bps | integer | 100000 | Octets par seconde |
Exemples
Événement client-vers-serveur basique
-- 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
-- server.lua
local large_data = buildShopInventory()
tw.emit.triggerClient.latent("myScript:syncShop", source, large_data)Envoyer à plusieurs joueurs
-- server.lua
local nearby_players = { 1, 3, 7 }
tw.emit.triggerClient("myScript:playEffect", nearby_players, effect_name, coords)Ajuster la bande passante
-- 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
.latentpour envoyer de gros payloads (tables de config, listes d'inventaire, etc.) afin d'éviter la congestion réseau. triggerClientcôté serveur accepte aussi bien un ID joueur unique (integer) qu'un tableau d'IDs (table).isEventInProgressretournenilsi l'événement n'a jamais été déclenché.

