Tutoriel 2026-01-20

Les bases du scripting Lua pour FiveM

TDYSKY

TDYSKY

Fondateur et développeur principal chez Agency Scripts

Pourquoi Lua pour FiveM ?

Lua est le principal langage de script utilisé dans le développement de FiveM, et pour cause. Il est léger, rapide à exécuter et profondément intégré au framework CitizenFX qui alimente FiveM. Que tu construisies un simple script de commande ou un système de jeu de rôle complexe, comprendre les principes fondamentaux du Lua est la première étape pour devenir un développeur FiveM compétent. Contrairement aux langages plus lourds, Lua tu offre la surcharge de performances nécessaire pour les scripts de serveur de jeux en temps réel où chaque milliseconde compte.

Variables, types et fonctions

Lua utilise le typage dynamique, ce qui signifie que tu n'avez pas besoin de déclarer explicitement les types de variables. Les variables locales sont déclarées avec le local mot-clé et sont limités à leur bloc, tandis que les variables globales sont accessibles partout mais doivent être évitées dans les scripts FiveM pour des raisons de performances et de sécurité. Les fonctions de Lua sont des valeurs de première classe, ce qui signifie que tu peux les stocker dans des variables, les transmettre comme arguments et les renvoyer à partir d'autres fonctions. Cette flexibilité est essentielle au fonctionnement des gestionnaires d’événements et des rappels FiveM.

Travailler avec des tableaux

Les tables constituent la structure de données la plus puissante de Lua et servent à la fois de tableaux, de dictionnaires et d'objets. Dans FiveM, tu utiliseres constamment des tables pour stocker les données des joueurs, les options de configuration et les éléments d'inventaire. Une table peut contenir des types de clés mixtes et des structures imbriquées, ce qui la rend extrêmement polyvalente. Comprendre comment itérer des tables avec pairs() et ipairs() est essentiel pour traiter efficacement les collectes de données, tant côté client que côté serveur.

Citizen.CreateThread et boucles de jeu

L'une des fonctions Lua spécifiques au FiveM les plus importantes est Citizen.CreateThread, qui tu permet d'exécuter du code asynchrone sans bloquer le thread principal du jeu. Dans ces discussions, tu utilises généralement Citizen.Wait(ms) pour contrôler le timing d’exécution. Un modèle courant consiste à créer une boucle avec while true do à l'intérieur d'un thread, en utilisant des intervalles d'attente pour vérifier les conditions ou mettre à jour l'état du jeu. Obtenir le bon intervalle d'attente est essentiel pour les performances, car un thread avec Wait(0) exécute chaque image et doit être réservé aux tâches qui nécessitent réellement des mises à jour par image.

Événements et communication

Les scripts FiveM communiquent via des événements, qui constituent l'épine dorsale de l'interaction client-serveur. Tu enregistrez les gestionnaires d'événements avec RegisterNetEvent et AddEventHandler, puis déclenchez-les avec TriggerEvent, TriggerServerEvent, ou TriggerClientEvent. Comprendre la distinction entre les événements côté client et côté serveur est crucial pour créer des scripts sécurisés. Ne faites jamais confiance aux données envoyées par le client sans validation côté serveur, car des joueurs malveillants peuvent déclencher n'importe quel événement enregistré par le client avec des données arbitraires.

Commencer avec ton premier script

Pour créer ton premier script FiveM, créez un nouveau dossier dans ton répertoire de ressources, créez un fxmanifest.lua avec les métadonnées de la ressource et ajoutez un fichier Lua client ou serveur. Commencez par quelque chose de simple comme une commande qui affiche une notification ou téléporte le joueur. Testez tes modifications en redémarrant la ressource avec le ensure commande dans la console du serveur. Au fur et à mesure que tu tu sentes plus à l'aise, explorez les fonctions natives via la documentation FiveM et commencez à créer des systèmes plus complexes combinant le rendu client et la logique côté serveur.

Partager cet article

Prêt à améliorer votre serveur ?

Découvrez nos scripts FiveM premium dans la boutique Agency Scripts ou rejoignez notre communauté Discord pour le support et les mises à jour.