> For the complete documentation index, see [llms.txt](https://bsensei-script.gitbook.io/bsensei-script-documentation-officiel-fivem/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bsensei-script.gitbook.io/bsensei-script-documentation-officiel-fivem/bsensei-vehicle-control-controle-complet-des-vehicules/faq-and-problemes-frequents.md).

# FAQ & problèmes fréquents

## ❓ FAQ & problèmes fréquents

Cette page regroupe les problèmes les plus courants rencontrés avec **BSensei Vehicle Control** ainsi que les vérifications à effectuer avant de contacter le support.

***

### 📋 Le menu Vehicle Control ne s’ouvre pas

Vérifie que les ressources sont démarrées dans le bon ordre :

```
ensure es_extended
ensure BSensei_vehicle_control
```

Teste ensuite la commande :

```
/vehiclemenu
```

Le joueur doit obligatoirement être installé dans un véhicule.

Dans le cas contraire, le script affiche :

```
Vous devez être dans un véhicule.
```

Contrôle également :

* le nom exact du dossier ;
* les erreurs de la console serveur ;
* les erreurs de la console F8 ;
* que la commande n’est pas déjà utilisée par un autre script ;
* que l’asset est lié au bon compte Cfx.re.

***

### ⌨️ La touche `F5` ne fonctionne pas

La touche par défaut est configurée ici :

```lua
Config.OpenMenu = {
    Command = 'vehiclemenu',
    DefaultKey = 'F5'
}
```

Les raccourcis enregistrés avec `RegisterKeyMapping` peuvent être modifiés individuellement par chaque joueur.

Ouvre :

```
Paramètres FiveM → Assignation des touches → FiveM
```

Recherche :

```
BSensei - Ouvrir le menu véhicule
```

Si la commande `/vehiclemenu` fonctionne, mais pas `F5`, le problème vient généralement de l’assignation du joueur.

***

### 🖱️ La souris reste bloquée à l’écran

Appuie sur :

```
Échap
```

L’interface doit se fermer automatiquement.

Tu peux également recliquer sur la touche ou utiliser :

```
/vehiclemenu
```

Si le problème persiste, utilise depuis la console serveur :

```
restart BSensei_vehicle_control
```

Vérifie ensuite la console F8 pour détecter une éventuelle erreur NUI.

Les fichiers concernés sont :

```
BSensei_vehicle_control/html/index.html
BSensei_vehicle_control/html/app.js
```

⚠️ Ne renomme pas les événements NUI utilisés pour ouvrir ou fermer l’interface.

***

### 👤 Le message « Vous devez être au poste de conduite » apparaît

Certaines fonctions sont réservées au conducteur :

* moteur ;
* feux ;
* pleins phares ;
* clignotants ;
* warnings ;
* verrouillage, selon la configuration ;
* régulateur de vitesse ;
* activation de l’ancre ;
* activation du stationnaire ;
* contrôle des néons.

Le joueur doit se trouver sur le siège :

```
-1
```

qui correspond au siège conducteur ou pilote.

Pour autoriser les passagers à verrouiller le véhicule :

```lua
Config.VehicleLock.AllowPassengers = true
```

Les autres fonctions sensibles restent réservées au conducteur.

***

### ⚡ Le moteur ne s’allume pas ou s’éteint immédiatement

Le bouton moteur fonctionne uniquement pour le conducteur.

Vérifie également qu’aucun autre script ne contrôle automatiquement le moteur.

Exemples de ressources pouvant créer un conflit :

```
Script de clés
Script de carburant
Script de véhicule
HUD avec contrôle moteur
Script de gestion automatique du moteur
```

Désactive temporairement les anciennes ressources de contrôle véhicule afin de tester.

Le script utilise notamment :

```lua
SetVehicleEngineOn
SetVehicleUndriveable
```

Si un autre script applique immédiatement un état différent, le moteur peut sembler revenir tout seul.

***

### 💡 Les feux restent bloqués ou ne fonctionnent pas

Vérifie que tu utilises bien la dernière version du script.

Les feux normaux et les pleins phares ont été corrigés dans la version :

```
2.4.4
```

Supprime entièrement l’ancienne ressource avant d’installer la nouvelle.

Évite d’avoir plusieurs dossiers comme :

```
BSensei_vehiclecontrol
BSensei_vehicle_control
BSensei_vehicle_control_v2
```

Une seule version doit être démarrée :

```
ensure BSensei_vehicle_control
```

Vérifie également qu’un autre script ne force pas l’état des phares.

***

### ⬅️➡️ Les clignotants sont inversés

La version actuelle utilise :

```
Gauche → côté gauche
Droite → côté droit
```

Si les clignotants restent inversés :

1. Vérifie que l’ancienne version n’est plus démarrée.
2. Supprime complètement l’ancien dossier.
3. Installe uniquement la dernière archive.
4. Redémarre entièrement le serveur.

Contrôle aussi qu’aucun autre script ne gère les clignotants en même temps.

***

### ⚠️ Les warnings ne se désactivent pas

Le bouton des feux de détresse fonctionne comme un interrupteur.

Un premier clic active les deux clignotants.

Un second clic les désactive.

Si les warnings restent actifs, vérifie qu’aucune autre ressource ne réactive les clignotants après l’action du script.

***

### 🚪 Une porte ne s’ouvre pas

Toutes les portes ne sont pas disponibles sur tous les véhicules.

Certains modèles possèdent uniquement :

```
Deux portes
Un capot
Un coffre
```

Les motos, vélos et véhicules spéciaux peuvent ne posséder aucune porte compatible.

Vérifie également que :

* la porte existe sur le modèle ;
* elle n’est pas arrachée ;
* le véhicule n’est pas fortement endommagé ;
* un autre script ne verrouille pas les ouvertures.

Ce comportement peut être normal selon le véhicule utilisé.

***

### 🪟 Une fenêtre ne descend pas

Certains véhicules ne possèdent pas de véritables fenêtres contrôlables par les natives GTA.

Cela concerne notamment :

* certaines motos ;
* les véhicules sans portières ;
* certains véhicules moddés ;
* certains véhicules de service ;
* des modèles possédant des vitres intégrées à la carrosserie.

Teste d’abord avec un véhicule GTA natif.

Exemple :

```
sultan
tailgater
buffalo
```

***

### 💺 Le changement de siège ne fonctionne pas

Le siège demandé doit être libre.

Si un autre joueur ou un PNJ l’occupe, le déplacement est refusé.

Le nombre de sièges disponibles dépend également du modèle utilisé.

Vérifie que :

* le siège existe ;
* le siège est libre ;
* le véhicule n’est pas une moto monoplace ;
* un autre script ne bloque pas les changements de siège.

Le stationnaire d’un hélicoptère reste actif pendant un changement de siège.

***

### 🔒 Le verrouillage ne fonctionne pas

Vérifie que la fonction est activée :

```lua
Config.VehicleLock.Enabled = true
```

Par défaut, seul le conducteur peut verrouiller ou déverrouiller le véhicule :

```lua
Config.VehicleLock.AllowPassengers = false
```

Pour autoriser les passagers :

```lua
Config.VehicleLock.AllowPassengers = true
```

⚠️ Vehicle Control ne vérifie pas la propriété du véhicule ou la possession de clés.

Un script de clés externe peut appliquer ses propres restrictions ou remplacer immédiatement l’état du verrouillage.

***

### 🏎️ Le régulateur de vitesse ne fonctionne pas

Vérifie qu’il est activé :

```lua
Config.SpeedLimiter.Enabled = true
```

Contrôle ensuite les limites :

```lua
Config.SpeedLimiter = {
    Enabled = true,
    Minimum = 10,
    Maximum = 250,
    Default = 80
}
```

Le régulateur fonctionne uniquement pour le conducteur.

La vitesse demandée est automatiquement limitée entre :

```
Minimum
Maximum
```

Le régulateur se désactive lorsque le joueur :

* quitte le véhicule ;
* change de véhicule ;
* quitte le siège conducteur.

Un script de gestion de vitesse ou de handling peut entrer en conflit avec cette fonction.

***

### ⚓ Le bouton de l’ancre est indisponible

L’ancre fonctionne uniquement sur les véhicules de classe :

```
14
```

Cette classe correspond aux bateaux.

Le joueur doit également être conducteur.

Dans une voiture ou un hélicoptère, le bouton est volontairement indisponible.

La commande :

```
/ancre
```

et la touche `G` restent silencieuses lorsque le joueur se trouve dans un véhicule incompatible.

***

### ⚓ Le message demande de ralentir avant de jeter l’ancre

La vitesse maximale autorisée est configurée ici :

```lua
Config.Anchor.MaxSpeed = 8.0
```

La valeur est exprimée en kilomètres par heure.

Le joueur doit ralentir sous cette vitesse avant d’activer l’ancre.

Pour autoriser une vitesse légèrement supérieure :

```lua
Config.Anchor.MaxSpeed = 12.0
```

⚠️ Une valeur trop élevée peut permettre d’immobiliser brutalement un bateau en mouvement.

***

### 🌊 Le jet-ski continue de dériver

Vérifie cette option :

```lua
Config.Anchor.FreezeJetSkis = true
```

Vérifie également que les modèles sont présents dans la liste :

```lua
Config.Anchor.ForceFreezeModels = {
    `seashark`,
    `seashark2`,
    `seashark3`
}
```

Pour ajouter un modèle personnalisé :

```lua
Config.Anchor.ForceFreezeModels = {
    `seashark`,
    `seashark2`,
    `seashark3`,
    `monjetski`
}
```

Utilise toujours le nom technique exact du véhicule.

***

### 🚤 Tous les bateaux sont totalement figés

Vérifie cette option :

```lua
Config.Anchor.FreezeAllBoats = false
```

Avec :

```lua
FreezeAllBoats = true
```

tous les bateaux sont complètement immobilisés.

Pour conserver un mouvement plus naturel sur les gros bateaux :

```lua
Config.Anchor.FreezeAllBoats = false
```

Seuls les modèles présents dans `ForceFreezeModels` seront alors totalement figés.

***

### 🚁 Le stationnaire ne s’active pas

Le stationnaire fonctionne uniquement avec les hélicoptères de classe :

```
15
```

Pour l’activer, le joueur doit être pilote.

Vérifie également les limites suivantes :

```lua
Config.Hover.MaxActivationSpeed = 70.0
Config.Hover.MaxVerticalSpeed = 12.0
```

L’activation est refusée lorsque :

* l’hélicoptère avance trop rapidement ;
* l’hélicoptère monte trop vite ;
* l’hélicoptère descend trop vite ;
* le joueur n’est pas pilote ;
* le véhicule n’est pas un hélicoptère.

Stabilise l’appareil avant d’activer le mode.

***

### 🚁 L’hélicoptère descend pendant le stationnaire

Vérifie que le verrouillage renforcé est activé :

```lua
Config.Hover.HardLock = true
```

Le script maintient normalement :

```
La position
L’altitude
L’orientation
La vitesse nulle
```

Vérifie également :

* que OneSync est activé ;
* que le serveur utilise la version `2.4.4` ;
* qu’aucun autre script ne modifie la physique de l’hélicoptère ;
* que la ressource ne génère aucune erreur dans F8 ;
* que le véhicule possède bien une entité réseau valide.

Teste avec un hélicoptère GTA natif avant d’utiliser un modèle moddé.

***

### 🔄 Le stationnaire reste actif après un changement de siège

Ce fonctionnement est normal.

Le stationnaire doit rester actif tant qu’au moins une personne se trouve dans l’hélicoptère.

La désactivation peut être effectuée depuis n’importe quel siège avec :

```
/stationnaire
```

ou avec la touche configurée.

L’activation reste réservée au pilote.

***

### 🛬 L’hélicoptère reste dans les airs après le départ des joueurs

Lorsque tous les occupants quittent ou sautent de l’hélicoptère, le script doit automatiquement :

```
Retirer le gel
Désactiver le stationnaire
Restaurer la physique du véhicule
Supprimer l’état côté serveur
```

Si cela ne fonctionne pas, vérifie :

* que OneSync est activé ;
* que le serveur utilise la version `2.4.4` ;
* que le propriétaire réseau de l’entité est correctement synchronisé ;
* qu’aucune ancienne version du script ne fonctionne encore ;
* qu’aucune erreur serveur n’apparaît.

Redémarre complètement le serveur après avoir remplacé une ancienne version.

***

### ❌ Erreur `attempt to index a nil value (upvalue 'localHover')`

Cette erreur concernait une ancienne version du script.

Elle est corrigée dans :

```
Version 2.4.4
```

La boucle utilise maintenant une copie locale sécurisée de l’état du stationnaire.

Pour corriger le problème :

1. Arrête la ressource.
2. Supprime complètement l’ancien dossier.
3. Installe la dernière archive.
4. Vérifie qu’aucun ancien fichier n’a été conservé.
5. Redémarre complètement le serveur.

⚠️ Ne mélange pas les fichiers de plusieurs versions.

***

### 🚗 Les touches `G` et `H` bloquent mes commandes dans les voitures

Vehicle Control ne lance aucune action ni notification d’ancre ou de stationnaire dans une voiture.

Cependant, chaque joueur peut avoir plusieurs ressources assignées sur la même touche.

Ouvre :

```
Paramètres FiveM → Assignation des touches → FiveM
```

Recherche :

```
BSensei - Jeter ou relever l'ancre
BSensei - Activer ou désactiver le stationnaire hélicoptère
```

Le joueur peut attribuer une autre touche sans modifier le script.

Tu peux également modifier les touches proposées par défaut :

```lua
Config.Anchor.DefaultKey = 'G'
Config.Hover.DefaultKey = 'H'
```

***

### 💜 Le script indique que les néons ne sont pas installés

La détection des néons est volontairement stricte.

Le véhicule est considéré comme équipé lorsque :

* le state bag configuré vaut `true` ;
* ou au moins un côté des néons est déjà actif.

La clé utilisée est :

```lua
Config.Neons.StateBagKey = 'neonInstalled'
```

Lors de l’installation des néons, ton script de customisation doit appeler côté client :

```lua
exports['BSensei_vehicle_control']:SetNeonInstalled(vehicle, true)
```

Lors du retrait :

```lua
exports['BSensei_vehicle_control']:SetNeonInstalled(vehicle, false)
```

⚠️ L’export doit utiliser le nom exact du dossier de la ressource.

***

### 🌈 Un effet de néon n’apparaît pas

Vérifie qu’il est activé dans `config.lua`.

Exemple :

```lua
Config.Neons.Effects = {
    static = true,
    pulse = true,
    breathe = true,
    rainbow = true,
    strobe = true,
    scanner = true,
    frontBack = true
}
```

Si un effet est défini sur `false`, le script revient automatiquement au mode fixe.

Exemple :

```lua
strobe = false
```

Le mode stroboscope ne sera plus disponible.

***

### 🎨 La couleur des néons change après un effet

Certains effets, comme l’arc-en-ciel ou la respiration, modifient temporairement la couleur.

Lorsque le mode fixe est réactivé, le script restaure :

```
La couleur originale
Les côtés initialement actifs
```

Pour une restauration correcte, les néons doivent être installés et configurés avant de lancer l’effet.

***

### 🖥️ L’interface est trop grande, trop petite ou mal placée

Ouvre l’onglet des réglages dans le menu.

Tu peux modifier :

* la taille ;
* l’opacité ;
* la couleur ;
* l’arrondi ;
* la position.

Les préférences sont enregistrées localement avec la clé KVP :

```
bsensei_vehicle_ui
```

Utilise le bouton de réinitialisation de l’interface pour revenir aux valeurs du `config.lua`.

Valeurs par défaut :

```lua
Config.UI = {
    DefaultScale = 1.0,
    DefaultOpacity = 0.96,
    DefaultColor = '#d10bd1',
    DefaultRadius = 22,
    DefaultPosition = {
        x = 50,
        y = 50
    }
}
```

***

### 🔔 Les notifications ne s’affichent pas

Vérifie le système sélectionné :

```lua
Config.Notifications.System = 'esx'
```

Systèmes disponibles :

```
esx
ox_lib
okokNotify
custom
```

Avec `ox_lib`, vérifie :

```
ensure ox_lib
ensure es_extended
ensure BSensei_vehicle_control
```

Avec `okokNotify` :

```
ensure okokNotify
ensure es_extended
ensure BSensei_vehicle_control
```

Pour un système personnalisé, vérifie :

```
BSensei_vehicle_control/client/editable.lua
```

Si le système choisi n’est pas démarré, le script tente automatiquement d’utiliser les notifications ESX.

***

### 🌍 Les textes restent dans la mauvaise langue

Vérifie la langue sélectionnée :

```lua
Config.Locale = 'fr'
```

Langues incluses :

```
fr
en
```

Les traductions se trouvent ici :

```
BSensei_vehicle_control/shared/locales.lua
```

Après modification :

```
restart BSensei_vehicle_control
```

⚠️ Les textes fixes de l’interface NUI peuvent également devoir être traduits dans `html/index.html` et `html/app.js`.

***

### 🌐 Erreur liée à OneSync

Le fichier `fxmanifest.lua` contient :

```lua
dependencies {
    'es_extended',
    '/onesync'
}
```

Une erreur comme :

```
Required feature /onesync is not available
```

indique que OneSync n’est pas actif.

Vérifie sa configuration dans txAdmin et utilise une version récente des artifacts FiveM.

OneSync est nécessaire pour la synchronisation de l’ancre et du stationnaire.

***

### 🔐 Erreur Asset Escrow ou entitlement

Si la console indique que le serveur ne possède pas l’autorisation d’utiliser l’asset, vérifie que :

* le produit a été obtenu avec le bon compte Cfx.re ;
* le compte utilisé possède bien l’asset ;
* le serveur utilise une clé de licence liée à ce compte ;
* l’archive n’a pas été modifiée de manière incorrecte ;
* les fichiers protégés n’ont pas été remplacés.

Les fichiers configurables restent accessibles grâce à `escrow_ignore`.

***

### 📁 Erreur après avoir renommé le dossier

Utilise le nom recommandé :

```
BSensei_vehicle_control
```

Évite :

* les espaces ;
* les accents ;
* les parenthèses ;
* les numéros de version ;
* les doubles dossiers.

✅ Bon exemple :

```
resources/[bsensei]/BSensei_vehicle_control
```

❌ Mauvais exemple :

```
resources/[bsensei]/BSensei_vehicle_control_v2/BSensei_vehicle_control
```

Le nom du dossier est également important pour l’export des néons.

***

### 🧪 Vérification rapide

Depuis la console serveur :

```
refresh
ensure es_extended
ensure BSensei_vehicle_control
```

Teste ensuite dans cet ordre :

1. Ouvrir le menu avec `/vehiclemenu`
2. Démarrer et arrêter le moteur
3. Tester les feux et les pleins phares
4. Tester les clignotants et les warnings
5. Ouvrir les portes et les fenêtres
6. Changer de siège
7. Tester le verrouillage
8. Tester le régulateur
9. Tester l’ancre sur un bateau
10. Tester le stationnaire sur un hélicoptère
11. Quitter complètement l’hélicoptère
12. Tester les néons installés
13. Tester les notifications
14. Vérifier la sauvegarde des réglages NUI

***

### 🚨 Avant de contacter le support

Prépare les informations suivantes :

* ta version d’ESX Legacy ;
* ta version des artifacts FiveM ;
* une capture complète de l’erreur ;
* les logs de la console serveur ;
* les logs de la console F8 ;
* le modèle du véhicule utilisé ;
* le système de notifications sélectionné ;
* les modifications réalisées dans `config.lua` ;
* le nom de ton script de clés ;
* le nom de ton script de customisation ;
* une courte vidéo si le problème concerne l’ancre ou le stationnaire.

💡 Ne transmets jamais ta clé FiveM, tes tokens ou les identifiants de ta base de données.

***

### 🚨 Avant de contacter le support

Prépare les informations suivantes :

* ton framework
* ton système d’inventaire
* ton système de notifications
* ton dispatch
* une capture de l’erreur
* les logs client F8
* les logs de la console serveur
* les modifications effectuées dans `config.lua`

💡 Ne transmets jamais tes clés privées, tokens Discord ou informations sensibles.

***

### 📞 Besoin d’aide supplémentaire ?

Si tu as suivi toute la doc et que le problème persiste :

💬 Rejoins le support :\
👉 <https://discord.gg/4kQQJPyJPJ>

***

© **BSensei Scripts** · Tous droits réservés.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://bsensei-script.gitbook.io/bsensei-script-documentation-officiel-fivem/bsensei-vehicle-control-controle-complet-des-vehicules/faq-and-problemes-frequents.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
