Créer son Premier Mod Lua
Bienvenue dans le modding de GTA IV avec LuaModLoader ! Ce guide s'adresse aux débutants : vous n'avez pas besoin de connaissances en C++ ni d'outils compliqués pour commencer.
Comment fonctionne un Mod Lua ?
Un mod est simplement un fichier texte avec l'extension .lua placé dans le dossier de votre jeu. LuaModLoader lit ce fichier et exécute automatiquement vos instructions dans GTA IV.
📁 Dossier principal de GTA IV/
├── 📁 mods/
│ └── 📁 MonPremierMod/
│ └── 📄 main.lua <-- Votre code va ici !
├── 📄 binkw32.dll
├── 📄 binkw32_orig.dll
└── 📄 LuaModLoader.dll
Étape 1 : Créer le dossier de votre mod
- Ouvrez le dossier de votre jeu GTA IV (là où se trouve
GTAIV.exe). - Ouvrez (ou créez s'il n'existe pas) le dossier nommé
mods. - Dans
mods, créez un nouveau sous-dossier, par exempleMonPremierMod. - Dans ce sous-dossier, créez un fichier texte nommé
main.lua.
Étape 2 : Écrire votre premier script
Ouvrez main.lua avec le Bloc-notes, VS Code ou l'éditeur de votre choix, puis collez ce code :
-- Au chargement du mod, affiche un message à l'écran
msgbox("Bienvenue sur LuaModLoader !")
-- Cette fonction s'exécute automatiquement en boucle à chaque image du jeu
function onTick()
-- Vérifie si la touche F4 (code 0x73) est appuyée
if is_key_down(0x73) then
local playerPed = GET_PLAYER_CHAR(GET_PLAYER_ID())
-- Remet la vie du joueur au maximum (200)
SET_CHAR_HEALTH(playerPed, 200)
-- Ajoute du gilet pare-balles (armure 100)
ADD_ARMOUR_TO_CHAR(playerPed, 100)
log("Vie et armure remises au maximum !")
end
end
Étape 3 : Tester et modifier en direct dans le jeu (Touche F6)
Pas besoin de redémarrer le jeu à chaque modification :
- Lancez GTA IV.
- Appuyez sur F6 en jeu pour ouvrir l'Éditeur de code intégré.
- Vous pouvez taper du code Lua et l'exécuter immédiatement en direct !
- Réappuyez sur F6 pour refermer l'éditeur et continuer à jouer.
💡 Styles de Nommage : SNAKE_CASE & PascalCase
LuaModLoader supporte nativement les deux conventions de nommage des natives GTA de manière interchangeable :
- SNAKE_CASE :
SET_CHAR_HEALTH(ped, 200) - PascalCase :
SetCharHealth(ped, 200)
Les deux pointent vers exactement la même fonction native, ce qui permet aux scripts provenant de ScriptHookDotNet ou de vieux trainers d'être compatibles directement sans avoir à réécrire tous les noms de fonctions !