Installer et configurer LB Phone : ESX, QBCore et QBOX
Par Luke, RPScripts

Ce qu’est LB Phone et ce dont il a besoin
LB Phone est une ressource smartphone complète pour FiveM. Dès l’installation, il couvre ce que les joueurs attendent d’un téléphone : appels, messages, e-mail, appareil photo, horloge, notes, cartes, météo, mémos vocaux et un App Store, plus des applications sociales (InstaPic, Birdy, Trendy et Spark) et des extras comme DarkChat, une place de marché, Yellow Pages, la musique et la crypto. Le téléchargement contient deux ressources : lb-phone lui-même et une ressource séparée pour le prop du téléphone, lb-phoneprop.
Avant d’installer un téléphone, notez ce que votre serveur fait réellement tourner : framework, inventaire, bibliothèques, ainsi que votre édition de GTA V et la version d’artifact FXServer. Un téléphone touche aux appels, aux données des personnages, aux items d’inventaire et aux services du serveur : vérifiez donc ces intégrations, pas seulement la liste des applications.
Frameworks pris en charge
Selon la page produit, LB Phone fonctionne avec ESX, QBCore, QBOX, ox_core, vRP 2.0 ou en standalone, et détecte le framework automatiquement par défaut. La documentation du créateur confirme cette détection automatique. Pour tout autre framework, une voie documentée passe par un framework personnalisé (voir plus bas).
Prérequis
Les prérequis obligatoires sont courts : oxmysql plus l’un des frameworks pris en charge, ou le mode standalone. ox_core est l’une de ces options de framework, pas une dépendance supplémentaire ; la liste des dépendances du créateur ne le mentionne pas. Le guide d’installation officiel ajoute ces précisions :
- MariaDB 10.11 ou plus récent. Vous pouvez vérifier votre version avec
SELECT VERSION()dans HeidiSQL. Le guide déconseille explicitement XAMPP. - oxmysql
- loaf_bcrypt (recommandé)
- des artifacts serveur à jour
- OneSync Infinity (facultatif), nécessaire pour quelques fonctions comme AirShare
Avant de commencer : sauvegarder et vérifier la base de données
Le guide du créateur demande de toujours faire une sauvegarde avant de modifier la base de données. C’est encore plus important ici : avant d’exécuter le fichier SQL de LB Phone, le guide demande de supprimer toutes les tables qui commencent par phone_.
Sur un serveur tout neuf, c’est sans conséquence. Sur un serveur qui utilisait déjà un autre téléphone, cela peut effacer ses données. Le gcPhone d’origine et le base.sql de Re-Ignited créent par exemple phone_app_chat, phone_calls, phone_messages et phone_users_contacts : les quatre correspondent au préfixe phone_. Quasar Smartphone V3 préfixe ses tables avec qs_phone_. Avant de supprimer quoi que ce soit, exportez la base, listez chaque table qui commence par phone_ et vérifiez quelle ressource l’a créée. Suivre des instructions de réinitialisation sur une base existante ne conserve pas l’historique des téléphones. Si vous voulez garder les anciennes données, planifiez d’abord une migration sur un serveur de test plutôt qu’une installation neuve.
Installation étape par étape
Les étapes ci-dessous combinent la page produit et le guide d’installation officiel. Là où le guide est plus détaillé, nous suivons le guide.
1. Copier les ressources
Décompressez le téléchargement et copiez lb-phone et lb-phoneprop du dossier [lb] vers le dossier resources de votre serveur.
2. Supprimer les anciennes tables phone_ et exécuter le fichier SQL
Une fois la sauvegarde faite, supprimez toutes les tables qui commencent par phone_, puis exécutez le fichier fourni lb-phone/phone.sql dans votre base. Le créateur recommande HeidiSQL et déconseille phpMyAdmin. Sa page des problèmes courants précise que les erreurs d’import SQL viennent généralement de phpMyAdmin ou d’une version de MariaDB obsolète, et que les hébergeurs avec panel de jeu fournissent souvent les deux.
3. Installer les dépendances
Installez oxmysql et gardez vos artifacts serveur à jour. oxmysql n’est pas inclus dans le téléchargement et doit démarrer en premier.
loaf_bcrypt est facultatif mais recommandé. Le créateur explique que le bcrypt intégré de FiveM tourne sur le thread principal du serveur et peut provoquer un à-coup d’environ 80 ms quand LB Phone hache ou vérifie un mot de passe, alors que loaf_bcrypt fait ce travail dans un thread séparé. LB Phone le détecte et l’utilise automatiquement dès qu’il est démarré. Ajoutez ces lignes avant start lb-phone dans votre server.cfg :
add_unsafe_worker_permission loaf_bcrypt
start loaf_bcrypt
4. Définir l’ordre de démarrage dans server.cfg
Chaque ressource utilisée par LB Phone, y compris votre framework, oxmysql et votre inventaire, doit démarrer avant LB Phone. Les applications personnalisées démarrent après. La page produit donne cet ordre, placé après oxmysql et votre framework :
ensure oxmysql
ensure lb-phoneprop
ensure lb-phone
5. Configurer les uploads et les clés API
Adaptez config/config.lua à vos besoins. Les uploads de photos, vidéos et audio nécessitent une méthode d’upload et des clés API : choisissez la méthode dans config.lua et saisissez les clés dans lb-phone/server/apiKeys.lua. La méthode par défaut est Fivemanage ; si vous préférez votre propre stockage S3 ou R2, le créateur renvoie vers lb-presigned. Comptez le service d’upload dans vos frais de fonctionnement et gardez les identifiants dans la configuration côté serveur, jamais dans le code client.
D’après le créateur, le téléphone devrait ensuite fonctionner immédiatement, avec d’autres options dans le dossier config.
Vous n’avez pas encore LB Phone ? Obtenez LB Phone v2 sur RPScripts : téléchargement immédiat, fichiers plus récents dans les téléchargements de votre compte, aide à l’installation.
Notes par framework : ESX, QBCore et QBOX
LB Phone détecte ESX, QBCore et QBOX automatiquement par défaut ; les sources consultées ne décrivent donc pas d’installation distincte par framework. Les différences apparaissent dans votre inventaire et dans les applications liées au framework.
Téléphones uniques
LB Phone peut donner à chaque item de téléphone son propre numéro. Les joueurs peuvent alors voler et prêter des téléphones, mais il faut un inventaire qui gère les métadonnées. Le créateur recommande ox_inventory (pour ESX, QBOX et d’autres) ou qb-inventory (pour QBCore) et indique lj-inventory, core_inventory et qs-inventory comme pris en charge d’origine. D’autres inventaires avec métadonnées peuvent être raccordés grâce au guide d’inventaire personnalisé du créateur.
Pour les deux inventaires recommandés, réglez Config.Item.Unique et Config.Item.Require sur true dans la config de LB Phone, et éventuellement Config.Item.Inventory sur le nom de l’inventaire. Avec ox_inventory, ajoutez ou remplacez l’item phone dans ox_inventory/data/items.lua et retirez le bloc d’intégration NPWD pour Item('phone' dans ox_inventory/items/client.lua. Avec qb-inventory (le guide vise la version 2.0.0), remplacez l’entrée phone dans qb-core/shared/items.lua. Redémarrez ensuite le serveur.
Décidez de ce qui se passe quand un téléphone est donné, rangé ou confisqué, et testez votre intégration au lieu de supposer que tout inventaire avec métadonnées fonctionne tel quel.
Housing et frameworks personnalisés
L’application Home prend en charge qb-houses, loaf_housing et qs-housing par défaut ; vous choisissez le vôtre avec Config.HouseScript. Les autres scripts de housing demandent une intégration sur mesure qui, selon le créateur, nécessite de l’expérience en programmation.
Avec un framework personnalisé, vous modifiez les fichiers du framework standalone côté client et côté serveur. Pour afficher les applications Wallet, Home, Garage et Services, réglez Config.CustomFramework sur true ou créez vos propres fichiers de framework. Une installation standalone demande donc tout de même un travail d’intégration pour ces applications.
Appels vidéo et serveurs TURN
LB Phone utilise WebRTC pour les appels vidéo, le live InstaPic et l’enregistrement de la voix des joueurs proches. Si les appels vidéo ou les lives n’affichent personne, le créateur indique qu’un pare-feu bloque généralement la connexion et qu’un serveur TURN règle en général le problème. Le téléphone prend en charge nativement le serveur Realtime TURN de Cloudflare via Config.DynamicWebRTC, et vous pouvez aussi utiliser un service comme Metered via Config.RTCConfig. Vérifiez aussi votre édition de GTA V : les notes de migration de Cfx.re indiquent Mumble comme obsolète sur Enhanced, donc une dépendance vocale ne prouve pas à elle seule que les appels y fonctionneront.
Problèmes fréquents après l’installation
- Application Wallet, Garage ou Services absente : le script n’a pas détecté votre framework, ou celui-ci n’est pas correctement configuré.
- Application Home absente : votre script de housing n’est pas configuré ; par défaut, l’application Home ne fonctionne qu’avec quelques scripts.
- Le téléphone ne s’ouvre pas : le créateur conseille une copie neuve de
lb-phone, puis de réglerConfig.DisableOpenNUIsurfalsepour trouver une ressource en conflit, puis d’activerConfig.Debug. - Erreurs d’import SQL : utilisez HeidiSQL au lieu de phpMyAdmin, avec une MariaDB à jour.
- "Unknown column x in field list" : une colonne ajoutée par une mise à jour manque ; le créateur publie les requêtes correctives dans le salon #updates de son Discord.
- AirShare ne fonctionne pas : activez OneSync Infinity et mettez à jour vos artifacts.
Pour les erreurs générales, partez de la première ligne rouge concernant la ressource dans la console du serveur. Un objet de framework à nil signifie le plus souvent que le framework démarre plus tard ou que ce n’est pas le bon.
Mettre à jour LB Phone par la suite
L’endroit où vous obtenez les nouveaux fichiers dépend de l’endroit où vous avez acheté le téléphone. Sur RPScripts, un fichier plus récent apparaît dans les téléchargements de votre compte dès qu’il est disponible. Le guide du créateur renvoie les acheteurs de son propre paquet vers Cfx.re.
Les étapes de mise à jour du guide du créateur :
- Sauvegardez le dossier
lb-phone, par exemple en ZIP. - Sauvegardez votre base de données si les notes de patch annoncent un changement de base. Le guide utilise "Export database as SQL" de HeidiSQL, cases "Create" cochées, cases "Drop" décochées et "Insert ignore (do not update existing)" pour les données.
- Supprimez l’ancienne ressource
lb-phone. - Installez la dernière version.
- Réappliquez vos modifications de config. Sauf indication contraire dans les notes de patch, vous pouvez copier tout le dossier config.
Si une mise à jour ajoute une colonne et que vous avez sauté les requêtes des notes de patch, vous verrez l’erreur "Unknown column" mentionnée plus haut.
FAQ
Quels frameworks LB Phone prend-il en charge ?
ESX, QBCore, QBOX, ox_core, vRP 2.0 ou standalone, avec détection automatique par défaut.
ox_core est-il obligatoire ?
Non. ox_core est l’un des frameworks pris en charge. La dépendance obligatoire est oxmysql.
Quelle version de MariaDB faut-il ?
MariaDB 10.11 ou plus récent, selon le guide d’installation du créateur.
Faut-il vraiment supprimer les tables phone_ ?
Le guide du créateur demande de supprimer toutes les tables qui commencent par phone_ avant d’exécuter le fichier SQL. Sauvegardez d’abord et vérifiez à quelle ressource appartient chaque table, car d’anciens téléphones comme gcPhone utilisent le même préfixe.
OneSync est-il obligatoire ?
OneSync Infinity est facultatif, mais quelques fonctions comme AirShare en ont besoin.
Chaque téléphone peut-il avoir son propre numéro ?
Oui, avec la fonction de téléphones uniques et un inventaire qui gère les métadonnées.
Ai-je besoin de loaf_bcrypt ?
Il est recommandé, pas obligatoire. Il sort le hachage des mots de passe du thread principal du serveur.
Pour ce choix de téléphone, comparez les Scripts de téléphone : LB Phone v2 figure dans la sélection actuelle pour plusieurs frameworks, GKSPhone (ESX) est précisément l’ancien paquet ESX 1.1/1.2 (1.2 FIX 5), et CodeM Phone (mPhone 2.0) demande une vérification des dépendances du paquet. La documentation actuelle de GKSPHONE V2 décrit un autre produit que le téléchargement GKSPhone lié ici. Aucun n’a fait ses preuves pour une reprise sans perte de vos données de téléphone. RPScripts vend ces paquets.