LuaModLoader
Un chargeur de mods basé sur Lua pour la réédition Steam de 2020 de GTA IV ("Complete Edition", build 1.2.0.59, x86).
Puisque le classique ASI Loader et ScriptHookIV ne fonctionnent pas sur cette version spécifique de GTA IV, LuaModLoader offre une alternative moderne : il permet d'exécuter des scripts et des mods directement en Lua sans avoir besoin de manipuler la mémoire brute ou d'écrire du code C++.
Architecture et Fonctionnement
Le projet est divisé en deux composants principaux :
binkw32.dll(Proxy Loader) : Un proxy léger chargé automatiquement par le jeu (similaire à Ultimate ASI Loader). Il redirige les vrais appels Bink vers le fichier original (binkw32_orig.dll) et charge silencieusement la vraie DLL du mod en arrière-plan.LuaModLoader.dll(Native Payload) : Le cœur du programme. Il inclut un interpréteur Lua 5.4, des hooks DirectX pour le rendu (D3D9), des hooks d'entrée (DirectInput), et un éditeur de texte intégré.
Fonctionnalités Clés
- Éditeur de Code en jeu : Appuyez sur F6 pour ouvrir l'éditeur Lua (propulsé par Scintilla) pour écrire, exécuter ou tester du code en direct sans relancer le jeu ou utiliser un programme externe.
- Double Convention de Nommage (SNAKE_CASE & PascalCase) : Appelez directement plus de 3100+ fonctions natives du jeu en utilisant soit le format canonique
SNAKE_CASE(ex :SET_CHAR_HEALTH(ped, 200)), soit le formatPascalCase(ex :SetCharHealth(ped, 200)/GetPlayerId()) pour une compatibilité totale avec les scripts existants type ScriptHookDotNet. - Rendu et Entrées : Dessinez des rectangles/textes à l'écran par-dessus le jeu, et interceptez proprement les touches (
is_key_down,set_menu_open) pour isoler les entrées du jeu lorsque votre mod est actif.
Exemple de Mod et Scripts Compatibles
LuaModLoader rend la création de mods très accessible. Voici un exemple simple d'un script utilisant l'API native du chargeur :
-- Exemple de mod Lua : Définir la santé et l'armure du joueur
local player_index = GET_PLAYER_ID()
local player_ped = GET_PLAYER_CHAR(player_index)
SET_CHAR_HEALTH(player_ped, 200)
ADD_ARMOUR_TO_CHAR(player_ped, 100)
msgbox("Santé et armure mises à jour !")
Voici des scripts et mods compatibles :
- ProTrainer-IV : Un menu trainer complet (F4).
- Compteur & Nitro : Un mod complet avec affichage HUD de la vitesse et nitro sur Shift.
- Soin & Armure : Régénération instantanée de la vie du joueur.
- Jamais Recherché : Bloque les étoiles de police à zéro.
- Invincibilité / Godmode : Bascule du mode invincible sur la touche F3.
📚 Liens Rapides de la Documentation
- 🔍 Explorateur de Natives (2780+ Fonctions) : Moteur de recherche interactif, filtres et copie de code en 1 clic.
- 🚀 Créer son Premier Mod : Guide pas-à-pas en 3 minutes pour créer et lancer un script.
- ⌨️ Touches du Clavier & Événements : Utilisation de
onTick(),is_key_down()et tableau des codes de touches. - 📖 Guide des Fonctions Fréquentes : Guide pratique pour coder (santé, véhicules, armes, IA, météo).
- ⚙️ API Lua du Mod Loader : Fonctions intégrées du loader (
draw_text,draw_rect,msgbox,log...). - 📋 Listes de Référence GTA IV : Identifiants simples à copier-coller pour armes, voitures et météo.
- 💡 Catalogue d'Exemples de Scripts : 5 scripts complets et commentés prêts à l'emploi.
Installation (Utilisateurs)
Vous n'avez pas besoin de compiler le projet pour l'utiliser.
[!TIP] Un installateur automatique sera bientôt disponible pour rendre ce processus encore plus facile ! En attendant, voici la méthode manuelle :
- Allez dans l'onglet Releases et téléchargez la dernière version (
binkw32.dll,LuaModLoader.dll,Scintilla.dll,Lexilla.dll). - Allez dans le dossier racine de GTA IV.
- Renommez le fichier
binkw32.dllexistant enbinkw32_orig.dll(TRÈS IMPORTANT, ce fichier gère la vidéo et l'audio du jeu). - Copiez les 4 fichiers téléchargés dans ce même dossier.
Pour désinstaller : supprimez les 4 fichiers copiés et renommez binkw32_orig.dll en binkw32.dll.
Compilation (Développeurs)
Prérequis :
- Visual Studio 2026 ("Développement Desktop avec C++", toolset x86)
- CMake
[!WARNING] Ciblez toujours Win32/x86 -
GTAIV.exeest un processus 32 bits. Une DLL compilée en x64 ne fonctionnera jamais avec ce jeu.
Sortie générée dans le dossier build\out\Release\ :
LuaModLoader.dllbinkw32.dll- (
Scintilla.dlletLexilla.dlly seront automatiquement copiés).