# FAQ

# Dépannage - F.A.Q

Ce guide de dépannage couvre la majorité des problèmes techniques rencontrés lors de l'installation ou de l'utilisation quotidienne du script.

## 6.1 Installation & Démarrage

##### Q : Erreur `Script error ... @MasterStretcher/server/main.lua` dans la console.
**Cause :** Votre version de serveur (Artifacts) est trop ancienne et ne supporte pas la syntaxe Lua 5.4 (ex: `const`, `local function`).\
**Solution :**
1. Mettez à jour vos artifacts FiveM vers la version **5848** ou supérieure (Windows/Linux).
2. Assurez-vous que votre `server.cfg` contient bien `set mysql_ui true` si vous utilisez oxmysql récent.

##### Q : Le script démarre mais rien ne se passe (pas d'items, pas de commande).
**Cause :** La liaison avec la **MasterKey** a échoué ou la clé est absente.\
**Solution :**
1. Vérifiez `Config.MasterModsKey` dans `config.lua`. Elle ne doit pas être vide.
2. Vérifiez que votre serveur a accès à internet (le script doit valider la configuration au démarrage).
3. Vérifiez la console serveur (F8 ou TXAdmin), un message explicite doit apparaître : `[MasterStretcher] Authentification réussie`.

##### Q : Erreur `No such export ...` (ox_target ou qb-target).
**Cause :** MasterStretcher démarre **avant** votre script de target, ou le nom de la ressource est incorrect.\
**Solution :**
1. Dans votre `server.cfg`, assurez-vous que `ensure ox_target` (ou `qb-target`) est placé **AVANT** `ensure MasterStretcher`.
2. Vérifiez la valeur de `Config.TargetSystem` dans le `config.lua`.

---

## 6.2 Problèmes Visuels & Physique

##### Q : Les brancards sont invisibles ou clignotent pour certains joueurs.
**Cause :** Problème de synchronisation des entités (Entity Lockdown) ou OneSync.\
**Solution :**
1. Ce script **nécessite OneSync Infinity** pour fonctionner correctement. Activez-le dans votre `server.cfg` : `set onesync on`.
2. Si vous utilisez un script type "Anti-Entity-Spam", ajoutez les modèles `ferno-f2`, `fernof3` et `stryker` à la liste blanche (whitelist).

##### Q : Le brancard s'envole ou vibre violemment quand je le pousse.
**Cause :** Conflit de physique entre le joueur et le brancard.\
**Solution :**
1. C'est souvent dû à une latence réseau (Lag) ou à un script de "Pousser véhicules" qui interfère.
2. Désactivez temporairement `Config.EnableSlopePhysics` dans le `config.lua` pour voir si cela stabilise la situation.
3. Vérifiez que vous n'avez pas modifié les fichiers `.meta` des véhicules qui pourraient changer la collision.

##### Q : Le brancard ne roule pas dans les pentes.
**Cause :** Les freins sont actifs ou la fonctionnalité est désactivée.\
**Solution :**
1. Vérifiez `Config.EnableSlopePhysics = true`.
2. En jeu, ciblez le brancard et vérifiez si l'option **"Débloquer Freins"** est disponible. Par défaut, lâcher un brancard active ses freins (`Config.AutoBrakeOnRelease`).

---

## 6.3 Interactions & Target

##### Q : Je ne vois pas l'œil (Target) sur le brancard.
**Cause :** Problème de distance ou de modèle.\
**Solution :**
1. Rapprochez-vous (la distance est réglée à ~2.5m).
2. Vérifiez que le script n'est pas en erreur dans la console F8 (Client).
3. Si vous avez redémarré le script en jeu (`restart`), les targets peuvent disparaître. **Relancez votre client FiveM**.

##### Q : L'option "Pousser" est grisée ou ne marche pas.
**Cause :** Restriction métier ou état bloqué.\
**Solution :**
1. Si `Config.JobRestriction = true`, vérifiez que votre job est bien dans `Config.AuthorizedJobs` et que vous avez le grade requis.
2. Un autre joueur "contrôle" peut-être déjà le brancard (problème de synchro réseau). Supprimez le brancard et refaites-le spawn.

##### Q : Je ne peux pas installer de PNJ (Civil) sur le brancard.
**Cause :** Le PNJ est mort ou est considéré comme un objet statique.\
**Solution :**
1. Le script empêche d'installer des PNJ qui sont dans des véhicules.
2. Le PNJ doit être en état de "ragdoll" ou vivant.

---

## 6.4 Véhicules & Ambulances

##### Q : Je n'ai pas l'option "Rentrer le brancard" sur mon ambulance.
**Cause :** La condition de sécurité n'est pas remplie.\
**Solution :** vérifiez les points suivants DANS L'ORDRE.
1. **Portes :** Les portes arrières sont-elles GRANDES OUVERTES ? (Vérifiez `requiredDoors` dans la config).
2. **Modèle :** Le véhicule est-il configuré dans `Config.AmbulanceConfig` ? Vérifiez le nom de spawn (Hash).
3. **Occupation :** L'ambulance pense-t-elle qu'elle a déjà un brancard ? (Voir point suivant).
4. **Orientation :** Vos pieds (et ceux du brancard) doivent être proches de l'arrière du véhicule.

##### Q : L'ambulance me dit "Place occupée" alors qu'elle est vide.
**Cause :** Désynchronisation de l'état du véhicule (StateBag). Cela arrive si un brancard a été supprimé via un script de nettoyage (ClearArea) sans être sorti proprement.\
**Solution :**
1. Faites apparaître une nouvelle ambulance.
2. (Avancé) Un admin peut utiliser un script pour reset le StateBag `attachedStretcher` du véhicule à `nil`.

##### Q : Le brancard traverse le sol ou flotte dans l'ambulance.
**Cause :** Les coordonnées `hauteur` (Z) sont mal réglées dans `Config.AmbulanceConfig`.\
**Solution :**
1. Ouvrez `config.lua`.
2. Modifiez la valeur `hauteur` pour ce modèle :
   * Si il flotte : Diminuez la valeur (ex: passez de `-0.25` à `-0.35`).
   * Si il est dans le sol : Augmentez la valeur.
3. Redémarrez le script pour tester.

##### Q : Le brancard explose ou le véhicule s'envole quand je le rentre.
**Cause :** Collision physique violente. Le brancard touche la hitbox du véhicule.\
**Solution :**
1. C'est souvent dû à une valeur `profondeur` trop élevée (le brancard rentre trop loin et touche les sièges avant).
2. Réduisez la `profondeur` (rapprochez-le des portes arrières).

---

## 6.5 Audio & Items

##### Q : Aucun son de roues quand je pousse.
**Cause :** Fichier manquant ou volume trop bas.\
**Solution :**
1. Vérifiez que le fichier `html/sounds/wheels.mp3` est bien présent sur votre serveur.
2. Vérifiez `Config.WheelSoundVolume` (augmentez à 0.5 ou 1.0 pour tester).
3. Vérifiez que vous n'avez pas désactivé les sons NUI dans vos paramètres GTA.

##### Q : L'item s'utilise mais le brancard n'apparaît pas.
**Cause :** Erreur SQL ou nom d'item incorrect.\
**Solution :**
1. Vérifiez que le nom de l'item dans votre base de données (`items` ou `shared`) correspond EXACTEMENT à celui dans `Config.ItemsVeh` (colonne `item`).
2. Vérifiez si vous avez l'erreur `model not found` dans la console F8 (le modèle 3D `ferno-f2` n'est pas streamé).

# Support Administrateur/Tech

*Cette section traite des problèmes de configuration et d'installation technique.*

#### Q : Le brancard apparaît, mais l'option pour le ranger dans l'ambulance ne s'affiche pas.

**R :** Cela peut venir de deux points dans votre `Config.AmbulanceConfig` :

1. **Le modèle du véhicule** : Vérifiez que le `hash` correspond exactement au nom de spawn de votre véhicule.
2. **La distance de détection** : Augmentez la valeur de `detection` (ex: passez de `2.4` à `4.0`) si l'arrière de votre véhicule est particulièrement long.
3. **Les portes** : L'interaction `ambulance_stow` nécessite que les portes arrière du véhicule soient physiquement ouvertes.

#### Q : Le patient est mal positionné (trop haut, trop bas ou décalé).

**R :** Vous devez ajuster les `offsets` dans la table `Config.Brancards` ou `Config.Lits`.

- Modifiez la valeur **Z** de `pos` pour la hauteur.
- Modifiez la valeur **Y** de `pos` pour l'avancement sur le brancard.
- N'oubliez pas de régler la rotation `rot` si le patient n'est pas dans le bon sens.

#### Q : Je ne vois pas les options pour monter ou baisser les pieds.

**R :** Assurez-vous d'avoir correctement renseigné les variables `extraPiedsHaut` et `extraPiedsBas` avec les IDs d'extras correspondants à votre modèle 3D. Si ces variables sont absentes ou erronées, l'interaction `stretcher_pieds` ne s'affichera pas.

#### Q : Le son des roues (`wheels.mp3`) ne se déclenche pas.

**R :** 1. Vérifiez que le dossier `html` contient bien le sous-dossier `sounds` avec le fichier `wheels.mp3`. 2. Assurez-vous que les utilisateurs n'ont pas coupé le volume "NUI" dans leurs paramètres GTA.

# Support Utilisateur / Joueur

*Cette section aide les joueurs à utiliser le script correctement en jeu.*

#### Q : Pourquoi je n'arrive pas à pousser le brancard ?

**R :** Vérifiez si le **frein de sécurité** est activé. Si le message "Frein activé" a été déclenché, vous ne pourrez pas utiliser l'option de poussée (`stretcher_push`). Utilisez l'interaction pour "Enlever le frein" avant de réessayer. Vérifiez également que vous avez le autorisations requises surtout si votre serveur utilise un système de métiers.

#### Q : J'ai rangé le brancard dans l'ambulance, comment le ressortir ?

**R :** Ouvrez les portes arrière de l'ambulance, visez le brancard avec votre système d'interaction et sélectionnez simplement **"Pousser"**. Le brancard se détachera automatiquement du véhicule pour revenir dans vos mains.

#### Q : Est-ce que je peux mettre plusieurs patients sur le même brancard ?

**R :** Non. Le système utilise un marqueur de sécurité qui verrouille le brancard dès qu'une personne est installée. Cela évite les collisions physiques et les bugs de synchronisation.

#### Q : Le brancard est bloqué dans un mur ou dans le sol, que faire ?

**R :** Utilisez l'option **"Supprimer"** (`stretcher_delete`) via votre menu d'interaction. Cela nettoiera l'entité proprement. Si vous étiez installé dessus, vous serez déposé à côté en toute sécurité.