# Comment installer des ressources/scripts sur FiveM ## Qu'est-ce qu'une ressource FiveM ? Une **ressource** est un script ou un ensemble de fichiers qui ajoute des fonctionnalités à votre serveur : - Scripts Lua (logique du jeu) - Fichiers JavaScript (interface) - HTML/CSS (menus, interfaces) - Fichiers de configuration - Assets (sons, textures, modèles) ## Types de ressources ### Ressources standalone Fonctionnent indépendamment, sans dépendances : - Scripts simples - Menus basiques - Outils administratifs ### Ressources avec dépendances Nécessitent d'autres ressources pour fonctionner : - Scripts ESX (nécessitent es_extended) - Scripts QBCore (nécessitent qb-core) - Scripts utilisant des librairies (oxmysql, PolyZone, etc.) ## Prérequis - Serveur FiveM fonctionnel - Accès FTP ou au gestionnaire de fichiers - Base de données MySQL (pour certaines ressources) - Connaissance du framework utilisé (ESX, QBCore, ou standalone) ## Étape 1 : Télécharger une ressource ### Sources fiables **Sites recommandés** : - GitHub (repositories officiels) - FiveM Forums : [https://forum.cfx.re/](https://forum.cfx.re/) - Tebex (scripts payants) - GTA5-Mods (avec précaution) **⚠️ Évitez** : - Sites de téléchargement douteux - Scripts "nulled" ou "leaked" (risques de backdoor) - Sources inconnues sans code visible ### Vérifier la compatibilité Avant de télécharger, vérifiez : - **Framework** : ESX, QBCore, Standalone ? - **Version** : Compatible avec votre version de serveur ? - **Dépendances** : Quelles autres ressources sont nécessaires ? - **Date de mise à jour** : Le script est-il maintenu ? ## Étape 2 : Préparer les fichiers ### Structure d'une ressource Une ressource typique contient : ``` nom_de_la_ressource/ ├── fxmanifest.lua # Fichier de configuration principal ├── client/ # Scripts côté client │ └── main.lua ├── server/ # Scripts côté serveur │ └── main.lua ├── config.lua # Configuration personnalisable ├── locales/ # Traductions │ ├── en.lua │ └── fr.lua ├── html/ # Interface (si applicable) │ ├── index.html │ ├── style.css │ └── script.js └── stream/ # Assets (sons, textures) ``` ### Vérifier fxmanifest.lua Ouvrez le fichier `fxmanifest.lua` pour voir les informations : ```lua fx_version 'cerulean' game 'gta5' author 'Nom Auteur' description 'Description du script' version '1.0.0' -- Dépendances dependencies { 'es_extended', -- Nécessite ESX 'oxmysql' -- Nécessite oxmysql } -- Scripts chargés shared_scripts { 'config.lua' } client_scripts { 'client/*.lua' } server_scripts { 'server/*.lua' } ``` ## Étape 3 : Installation des fichiers ### Méthode 1 : Via FTP 1. Connectez-vous à votre serveur FTP 2. Accédez au dossier `resources/` 3. Créez un dossier pour la ressource (ex: `[custom]/`) 4. Uploadez le dossier complet de la ressource 5. Vérifiez que la structure est intacte ### Méthode 2 : Via le gestionnaire de fichiers 1. Connectez-vous à votre panel de gestion 2. Accédez à **Fichiers** ou **Gestionnaire de fichiers** 3. Naviguez vers `resources/` 4. Uploadez le fichier ZIP 5. Extrayez-le directement sur le serveur ### Organisation recommandée Organisez vos ressources par catégorie : ``` resources/ ├── [essential]/ # Ressources système │ ├── spawnmanager/ │ └── sessionmanager/ ├── [esx]/ # Ressources ESX │ ├── es_extended/ │ └── esx_skin/ ├── [qb]/ # Ressources QBCore │ ├── qb-core/ │ └── qb-spawn/ ├── [standalone]/ # Scripts indépendants │ ├── progressBars/ │ └── notification/ ├── [jobs]/ # Scripts de métiers │ ├── esx_policejob/ │ └── esx_ambulancejob/ └── [custom]/ # Scripts personnalisés └── mon_script/ ``` ## Étape 4 : Configuration de la base de données ### Vérifier si une base de données est nécessaire Cherchez dans la ressource : - Fichier `.sql` dans le dossier - Dossier `sql/` avec des fichiers SQL - Mention dans le README ### Importer le fichier SQL 1. Ouvrez **phpMyAdmin** ou votre gestionnaire MySQL 2. Sélectionnez votre base de données 3. Cliquez sur **Importer** 4. Sélectionnez le fichier `.sql` 5. Cliquez sur **Exécuter** **Exemple de fichier SQL** : ```sql CREATE TABLE IF NOT EXISTS `mon_script` ( `id` int(11) NOT NULL AUTO_INCREMENT, `identifier` varchar(60) NOT NULL, `data` longtext, PRIMARY KEY (`id`) ); ``` ### Vérifier l'importation Après l'import, vérifiez que les tables sont créées : - Allez dans l'onglet **Structure** - Vérifiez que les nouvelles tables apparaissent ## Étape 5 : Configurer la ressource ### Éditer config.lua Ouvrez le fichier `config.lua` et personnalisez : ```lua Config = {} -- Langue Config.Locale = 'fr' -- Framework Config.Framework = 'ESX' -- ou 'QBCore' ou 'Standalone' -- Positions Config.Locations = { vector3(123.45, -678.90, 30.0), vector3(234.56, -789.01, 25.0) } -- Options Config.EnableNotifications = true Config.MaxDistance = 50.0 Config.PriceMultiplier = 1.0 -- Items Config.RequiredItem = 'phone' Config.RewardItem = 'money' ``` ### Paramètres courants **Positions** : ```lua Config.Position = vector3(x, y, z) Config.Heading = 90.0 ``` **Items et argent** : ```lua Config.Price = 5000 Config.RequiredItems = { {item = 'phone', count = 1}, {item = 'money', count = 100} } ``` **Jobs** (pour ESX/QBCore) : ```lua Config.AuthorizedJobs = { 'police', 'ambulance', 'mechanic' } ``` ## Étape 6 : Ajouter au server.cfg ### Syntaxe de base Ajoutez la ressource dans `server.cfg` : ```cfg ensure nom_de_la_ressource ``` ### Ordre d'exécution **Important** : Respectez l'ordre des dépendances : ```cfg # 1. Ressources système ensure spawnmanager ensure sessionmanager ensure mapmanager # 2. Librairies ensure oxmysql ensure pma-voice # 3. Framework ensure es_extended # ou qb-core # 4. Dépendances du framework ensure esx_skin ensure esx_identity # 5. Scripts personnalisés ensure mon_script ``` ### Options de démarrage **ensure** (recommandé) : ```cfg ensure mon_script # Démarre et redémarre automatiquement ``` **start** : ```cfg start mon_script # Démarre une seule fois ``` **stop** : ```cfg stop mon_script # Désactive la ressource ``` ## Étape 7 : Installer les dépendances ### Dépendances courantes **oxmysql** (base de données) : - [https://github.com/overextended/oxmysql](https://github.com/overextended/oxmysql) - Installez avant toute ressource utilisant MySQL **PolyZone** (zones) : - [https://github.com/mkafrin/PolyZone](https://github.com/mkafrin/PolyZone) - Pour créer des zones d'interaction **progressBars** (barres de progression) : - [https://github.com/EthanPeacock/progressBars](https://github.com/EthanPeacock/progressBars) - Pour afficher des animations de chargement **pma-voice** (voix) : - [https://github.com/AvarianKnight/pma-voice](https://github.com/AvarianKnight/pma-voice) - Système de voix optimisé ### Vérifier les dépendances dans fxmanifest ```lua dependencies { 'es_extended', # Framework ESX 'oxmysql', # Base de données 'progressBars', # Barres de progression 'PolyZone' # Zones } ``` Installez chaque dépendance avant la ressource principale. ## Étape 8 : Tester la ressource ### Démarrer le serveur 1. Sauvegardez tous les fichiers modifiés 2. Redémarrez complètement le serveur 3. Surveillez la console pour les erreurs ### Vérifier les logs Dans la console serveur, cherchez : **Succès** : ``` Started resource mon_script ``` **Erreurs** : ``` Error loading script server/main.lua Failed to start resource mon_script ``` ### Commandes de test Dans la console F8 (client) ou console serveur : ``` restart mon_script # Redémarrer la ressource stop mon_script # Arrêter la ressource start mon_script # Démarrer la ressource refresh # Recharger la liste des ressources ``` ## Résolution des problèmes courants ### La ressource ne démarre pas **Causes possibles** : - Dépendances manquantes - Erreur de syntaxe dans les fichiers - Mauvais ordre dans server.cfg - Fichiers corrompus **Solutions** : 1. Vérifiez les logs pour l'erreur exacte 2. Installez toutes les dépendances 3. Vérifiez fxmanifest.lua 4. Retéléchargez la ressource si nécessaire ### Erreur "Failed to load script" **Cause** : Erreur de syntaxe Lua dans les scripts **Solution** : ``` # Vérifier la syntaxe luac -p client/main.lua luac -p server/main.lua ``` Corrigez les erreurs de syntaxe dans les fichiers. ### Base de données non connectée **Symptômes** : ``` Error executing query: Table doesn't exist MySQL connection failed ``` **Solutions** : 1. Vérifiez oxmysql dans server.cfg 2. Importez le fichier SQL 3. Vérifiez la connexion MySQL dans server.cfg ### Conflit entre ressources **Symptômes** : - Commandes qui ne fonctionnent plus - Menus qui ne s'ouvrent pas - Erreurs dans la console **Solutions** : 1. Désactivez les ressources une par une 2. Identifiez la ressource problématique 3. Vérifiez les conflits de touches/commandes 4. Utilisez des versions compatibles ## Sécurité lors de l'installation ### Vérifier le code **Avant d'installer, vérifiez** : ❌ **Backdoors** : ```lua -- DANGEREUX ExecuteCommand('add_ace identifier.steam:xxx group.admin') AddEventHandler('give_money', function() end) TriggerServerEvent('admin:giveAll') ``` ❌ **Code malveillant** : ```lua -- DANGEREUX load(base64decode(...)) loadstring(...) os.execute(...) ``` ❌ **Connexions externes non autorisées** : ```lua -- SUSPECT PerformHttpRequest('http://site-inconnu.com/data', ...) ``` ✅ **Code propre** : ```lua -- BON ESX.ShowNotification('Message') TriggerServerEvent('mon_script:actionSecure') ``` ### Scanner avec un antivirus Scannez le dossier de la ressource avant upload : - VirusTotal - Windows Defender - Antivirus tiers ### Tester sur un serveur de développement **Recommandé** : Testez toujours sur un serveur de test avant la production. ## Optimisation des ressources ### Désactiver les ressources inutiles Dans server.cfg, commentez ou supprimez : ```cfg # ensure resource_inutile ``` ### Limiter les scripts lourds Évitez d'avoir trop de scripts actifs simultanément : - Maximum 50-70 ressources actives - Privilégiez les scripts optimisés - Fusionnez les petits scripts ### Utiliser des alternatives optimisées Remplacez les vieux scripts par des versions optimisées : - **mysql-async** → **oxmysql** (meilleure performance) - **esx_menu_default** → **ox_lib** (plus léger) ## Configuration avancée ### Ressources côté client uniquement Pour des ressources sans serveur : ```lua -- fxmanifest.lua client_only 'yes' client_scripts { 'client/*.lua' } ``` ### Ressources avec stream (assets) Pour ajouter des véhicules, armes, vêtements : ```lua files { 'stream/**/*.yft', 'stream/**/*.ytd' } data_file 'HANDLING_FILE' 'stream/handling.meta' data_file 'VEHICLE_METADATA_FILE' 'stream/vehicles.meta' ``` ### Ressources avec UI (NUI) Pour des interfaces HTML : ```lua ui_page 'html/index.html' files { 'html/index.html', 'html/style.css', 'html/script.js' } ``` ## Mise à jour des ressources ### Processus de mise à jour 1. **Sauvegardez** l'ancienne version 2. **Lisez** le changelog pour les changements 3. **Téléchargez** la nouvelle version 4. **Remplacez** les fichiers (sauf config.lua) 5. **Importez** les nouveaux fichiers SQL si nécessaire 6. **Testez** sur un serveur de développement 7. **Déployez** en production ### Conserver les configurations ```bash # Sauvegardez votre config avant mise à jour cp mon_script/config.lua mon_script_config_backup.lua ``` Après la mise à jour, comparez et fusionnez les configurations. ## Gestion via txAdmin ### Installer via txAdmin 1. Accédez à txAdmin 2. Allez dans **Resources** 3. Cliquez sur **Install Resource** 4. Entrez l'URL GitHub ou uploadez le ZIP 5. txAdmin installe et configure automatiquement ### Gérer les ressources Dans txAdmin : - **Start/Stop/Restart** : Contrôler les ressources - **View Logs** : Voir les erreurs - **Edit Config** : Modifier les configurations ## Exemples d'installation complète ### Exemple 1 : Script standalone simple ```cfg # 1. Télécharger progressBars # 2. Extraire dans resources/[standalone]/progressBars/ # 3. Ajouter dans server.cfg ensure progressBars # 4. Redémarrer le serveur ``` ### Exemple 2 : Script ESX avec base de données ```cfg # 1. Télécharger esx_garage # 2. Extraire dans resources/[esx]/esx_garage/ # 3. Importer esx_garage.sql dans phpMyAdmin # 4. Modifier config.lua selon vos besoins # 5. Ajouter dans server.cfg (après es_extended) ensure es_extended ensure esx_garage # 6. Redémarrer le serveur ``` ### Exemple 3 : Script avec dépendances multiples ```cfg # 1. Installer les dépendances dans l'ordre ensure oxmysql ensure PolyZone ensure progressBars # 2. Installer le script principal ensure mon_script_custom # 3. Vérifier les logs ``` ## Ressources recommandées ### Essentielles **oxmysql** : Base de données optimisée **pma-voice** : Système de voix **ox_lib** : Librairie d'interface moderne **PolyZone** : Gestion des zones ### Utilitaires **progressBars** : Barres de progression **screenshot-basic** : Captures d'écran **bob74_ipl** : Intérieurs du jeu **NativeUI** : Menus natifs ### Administration **txAdmin** : Panel d'administration complet **EasyAdmin** : Gestion des joueurs **vMenu** : Menu administrateur ## Conclusion L'installation de ressources sur FiveM est simple si vous suivez les bonnes pratiques : 1. **Téléchargez** uniquement depuis des sources fiables 2. **Vérifiez** la compatibilité et les dépendances 3. **Organisez** vos ressources dans des dossiers catégorisés 4. **Testez** sur un serveur de développement d'abord 5. **Surveillez** les logs pour détecter les erreurs 6. **Sauvegardez** régulièrement vos configurations En respectant ces étapes, votre serveur sera stable, sécurisé et performant.