Généralités & important

MasterStretcher est une solution médicale avancée pour FiveM qui remplace les brancards statiques par des entités physiques réalistes. Le script gère la gravité dans les pentes, offre une synchronisation réseau parfaite (OneSync), permet l'ancrage automatique dans les ambulances configurées et inclut un module unique pour les nacelles de grandes échelles.

Présentation du projet

LogoMM_Couche2.png


Installation

Bienvenue dans la documentation de MasterStretcher. Ce script apporte une dimension réaliste aux interventions médicales sur votre serveur FiveM grâce à une physique avancée, une synchronisation précise et une intégration complète avec les véhicules d'urgence.

1.1 Pré-requis

Avant de commencer, assurez-vous que votre serveur dispose de :

1.2 Procédure d'Installation

L'installation se fait en 3 étapes via le système officiel Tebex et Keymaster.

Étape 1 : Récupérer la ressource

  1. Rendez-vous sur la boutique officielle : https://raph.tebex.io/
  2. Sélectionnez le package MasterStretcher (Gratuit).
  3. Procédez au "paiement" (0.00€) pour lier la ressource à votre compte Cfx.re.

Étape 2 : Télécharger les fichiers

  1. Connectez-vous sur votre Keymaster : https://portal.cfx.re/
  2. Dans la liste "Granted Assets", cherchez MasterStretcher.
  3. Cliquez sur Download pour obtenir l'archive .zip.

Étape 3 : Installation sur le serveur

  1. Ouvrez l'archive téléchargée et glissez le dossier MasterStretcher dans le répertoire resources de votre serveur.
  2. Ajoutez la ligne suivante à votre fichier server.cfg :    ensure MasterStretcher

1.3 Configuration de la Licence (Obligatoire)

Pour que le script fonctionne correctement, vous devez générer une clé unique.

  1. Rendez-vous sur le générateur officiel : https://ressources.mastermods.dev/CreerMasterKey.php
  2. Générez votre MasterKey.
  3. Ouvrez le fichier config.lua situé dans le dossier du script.
  4. Collez votre clé dans la variable correspondante :
    Config.MasterModsKey = "VOTRE_CLE_ICI"
    

Guide d'utilisation

Ce chapitre détaille comment interagir avec le brancard, gérer les patients et utiliser les véhicules d'urgence. Toutes les interactions se font via le système de visée ("Alt-Eye" ou "Third-Eye").

2.1 Manipulation du Brancard

Prendre le contrôle

Pour commencer à déplacer un brancard :

  1. Approchez-vous du brancard.
  2. Ciblez-le avec votre touche d'interaction (ALT).
  3. Sélectionnez l'option "Pousser le brancard".
  4. Votre personnage s'attachera automatiquement aux poignées.

Se déplacer

Lâcher le brancard

Pour arrêter de pousser, appuyez sur votre touche d'interaction principale (par défaut E) ou utilisez le menu Target. Un menu apparaîtra pour choisir la position de dépôt :

Système de Freins

Si le terrain est en pente, le brancard peut rouler tout seul s'il n'est pas tenu.


2.2 Gestion des Patients

Installer un Joueur

Le patient peut s'installer lui-même ou être installé par un médecin.

  1. Ciblez le brancard (ALT) -> "Menu Brancard".
  2. Sélectionnez "S'installer".
  3. Choisissez la position (Couché, Assis, PLS, etc.).

Installer un PNJ (Civil IA)

Idéal pour les scènes RP sans joueurs blessés.

  1. Ciblez le PNJ blessé (ALT).
  2. Sélectionnez "Placer sur le brancard".
  3. Note : Un brancard vide doit être à proximité immédiate.

Modifier la posture

Une fois le patient installé, le médecin peut ajuster sa position via le menu :


2.3 Système de Relais (Duo)

Vous pouvez passer le brancard à un collègue sans le lâcher au sol, pour fluidifier les interventions.


2.4 Intégration Véhicules (Ambulances)

Le système d'ancrage est compatible uniquement avec les véhicules configurés (voir Chapitre 4).

Charger dans l'ambulance

  1. Ouvrez impérativement les portes arrières du véhicule.
  2. Approchez le brancard de l'ouverture (les pieds doivent être proches du pare-chocs).
  3. Ciblez le véhicule (ALT) et sélectionnez "Rentrer le brancard".
  4. Le brancard se repliera et glissera automatiquement dans le rail.

Sortir de l'ambulance

  1. Ouvrez les portes arrières.
  2. Ciblez le véhicule (ALT) -> "Sortir le brancard".
  3. Votre personnage effectuera l'animation de sortie et récupérera le contrôle du brancard instantanément.

Menu Interne (Modifications Visuelles)

Certains brancards (Ferno/Stryker) sont modulables.

Configuration Détaillée

Ce chapitre détaille les options disponibles dans le fichier config.lua pour adapter le script à votre serveur. Ce fichier est le cœur de la personnalisation du gameplay.

3.1 Framework & Permissions

Cette section permet de définir comment le script s'intègre à votre économie et à vos systèmes de métiers.

3.2 Gameplay & Physique

Ces options modifient le ressenti et le comportement du brancard en jeu.

3.3 Audio et Immersion

3.4 Objets & Items

Vous pouvez définir quels items de votre inventaire font apparaître quel modèle de brancard.

Exemple de configuration :

Config.ItemsVeh = {
    {hash = `ferno-f2`, item = 'stretcher',  label = 'Ferno F2'},
    {hash = `stryker`,  item = 'stretcher3', label = 'Stryker M1'},
}

Configuration des Véhicules (Ambulances/Paniers)

Ce chapitre est le plus technique mais le plus important. Il permet de définir quels véhicules peuvent interagir avec le brancard (chargement/déchargement) et comment le brancard se positionne physiquement à l'intérieur.

Toute la configuration se fait dans la table Config.AmbulanceConfig de votre fichier config.lua.

4.1 Structure d'une Ambulance

Pour ajouter un nouveau véhicule, copiez un bloc existant et modifiez les valeurs. Voici l'explication ligne par ligne :

{
    model = "Master III VSAV",          -- Nom indicatif (pour vous repérer)
    hash = `rmaster317_vsav-bspp`,      -- Le nom de spawn du véhicule entre ` ` (backticks)
    auteur = "Anto",                    -- Informatif
    AutoBrancardName = "ferno-f2",      -- Le modèle de brancard qui spawn avec (si Auto-Armement actif)
    requiredDoors = {2, 3},             -- Les portes qui doivent être ouvertes (voir 4.3)
    
    -- RÉGLAGES DE POSITION (OFFSET)
    detection = 2.4,                    -- Rayon de détection (en mètres) autour du véhicule
    alignementLateral = -0.25,          -- Position Gauche/Droite (X)
    profondeur = -1.25,                 -- Position Avant/Arrière (Y)
    hauteur = -0.25,                    -- Position Haut/Bas (Z)
    rotation = 0.0                      -- Rotation du brancard (0.0 = Pieds vers l'avant)
},

Comment trouver les bonnes coordonnées ?

De manière intuitive

Il y a un outil magique : la commande /configBrancard. Elle va vous poser des questions puis vous pourrez bouger le brancard pour le faire coller au niveau de l'ambulance. Ensuite, vous prendrez les lignes générées (presse-papiers ou F8) et vous les mettrez dans le config.lua.

Manuellement

Alignement Latéral (X) :

Profondeur (Y) :

Hauteur (Z) :

Ajustez pour que les roues touchent le plancher de l'ambulance sans passer au travers.

4.2 Les Portes Requises (requiredDoors)

Cette liste définit quelles portes doivent être physiquement ouvertes pour que l'action "Rentrer/Sortir le brancard" soit disponible.

Codes des portes GTA V :

Exemples :

4.3 Configuration des Hélicoptères

Les hélicoptères fonctionnent exactement comme les ambulances, mais nécessitent souvent une zone de détection plus large car le joueur ne peut pas se coller au modèle (à cause des patins).

Astuce : Augmentez detection à 2.0 ou 3.0 mètres.

4.4 Nacelles et Grandes Échelles

Pour les camions de pompiers équipés d'une nacelle (Bucket), la configuration se fait dans une autre table : Config.LadderBasketConfig.

{ 
    label = "Nacelle EPAN", 
    hash = -84503767,  -- Hash du PROP de la nacelle (pas du camion !)
    offset = { x = 0.44, y = -0.43, z = 0.15 }, -- Position relative dans le panier
    rot = { x = 90.0, y = 0.0, z = 0.0 }        -- Rotation (90° pour être debout/fixé)
},

Attention : Ici, le hash n'est pas celui du véhicule, mais celui de l'objet "panier" (cs_bucket ou équivalent) qui est attaché au bras de l'échelle. Vous devrez trouver le hash du prop utilisé par votre moddeur de véhicule.

Détail des paramètres :

Astuce : Utilisez un script de "Dev Tools" ou "Object Spawner" pour trouver le nom/hash du prop de la nacelle quand elle est déployée.

Utilisation en Jeu

Journaux des changements

📋 Changelog (Mise à jour du 30/12 - 31/12) - 3.1.0

Nouvelles Fonctionnalités
  • Système PNJ Complet : Placement de PNJ vivants sur le brancard avec un menu de position dédié pour modifier l’animation après l’installation.
  • Support Nacelle : Support de l’EPAN d’Anto avec détection automatique et masquage visuel des roues.
  • Alignement Dynamique (Pitch & Roll) : Le brancard s’incline automatiquement selon l’inclinaison du terrain (avant/arrière et latéral).
Correctifs & Patches
  • Remaniement : Simplification du fichier de configuration
  • Système de Relais : Transfert de contrôle fluide entre deux collègues via une demande et une confirmation synchronisées.
  • Persistance d’Animation : Système de vérification pour empêcher que l’animation du patient ne soit coupée par des scripts tiers.
  • Optimisation des Collisions : Désactivation des collisions entre le patient et le brancard pendant le transport pour supprimer les mouvements erratiques.
  • Patch Technique : Correction de la fonction native de débarquement, correction d’un bug où les joueurs-non-métier ne pouvaient pas se coucher sur le brancard.
  • Changement de système : Plus besoin d’être sur Discord SAUF pour garder les fonctions ‘Premium’ : Support Nacelle, alignement dynamique, restriction métier
  • Optimisation des Extras : Regroupement des dossiers et garde-corps en interrupteurs uniques (ON/OFF) avec logique d’exclusion mutuelle pour une gestion simplifiée.

📑 Changelog - MasterStretcher (Mise à jour du 01/01) - 3.1.1

Attention : changement du fichier config.lua nécessaire !

  • Correction du bug des nacelles : Le brancard ne devrait plus léviter et ne plus boguer lorsqu’il est attaché à une échelle ou un panier. Il reste désormais parfaitement fixé pour tout le monde, même lors des mouvements.
  • Alerte de mise à jour : Si une nouvelle version du script est disponible, un gros message d’alerte très visible (en rouge et jaune) s’affichera directement dans la console de votre serveur au démarrage.
  • Affichage des véhicules amélioré : Les véhicules s’affichent désormais par leur nom et leur auteur (ex: Master III [Anto]), au lieu de simples numéros techniques pour une compréhension plus simple de la config.
  • Meilleure stabilité : Le système de vérification est plus robuste et ne risque plus de bloquer le démarrage, même si vous avez une liste de véhicules configurés extrêmement longue.
  • Gestion des pieds : Modification afin de pouvoir intégrer plus facilement d’autres brancards.

📑 Changelog - MasterStretcher (Mise à jour du 02/01) - 3.1.4

Attention : changement du fichier config.lua nécessaire !

🚑 Configuration & Identification des Véhicules
  • Labels des Ambulances : Les véhicules sont désormais identifiés par leurs noms configurés (ex: “Master III 2012”) au lieu de simples identifiants techniques.
  • Affichage des Auteurs : L’auteur du modèle (si renseigné dans la configuration) apparaît désormais entre crochets à côté du nom du véhicule (ex: [Anto]).
  • AutoBrancardName (Liaison automatique) :
  • Ce paramètre définit le modèle de brancard nativement associé à une ambulance.
  • Le rapport automatique traduit désormais l’ID technique en label lisible, vous permettant de valider instantanément que la liaison entre votre ambulance et son brancard est opérationnelle.
  • requiredDoors (Gestion des accès) :
  • Ce paramètre liste les indices des portes (ex: 2, 3) qui doivent être impérativement ouvertes pour charger ou décharger un brancard.
  • Le rapport technique répertorie ces portes pour chaque véhicule, garantissant un contrôle précis de vos réglages de réalisme.

📑 Changelog - MasterStretcher (Mise à jour du 02/01) - 3.1.5

  • Test : essais nacelle
  • Rotation : possibilité de tourner le brancard pour l’attachement dans le véhicule

📑 Changelog - MasterStretcher (Mise à jour du 03/01) - 3.1.6

📑 Changelog - MasterStretcher (Mise à jour du 25/01) - 3.1.7

  • Correction d'un bug sur le fait que l'index métier (grade) n'était pas vérifié. Changement de sa logique générale.

📑 Changelog - MasterStretcher (Mise à jour du 25/01) - 3.1.8

📑 Changelog - MasterStretcher (Mise à jour du 15/02) - 3.2.0

Attention : changement du fichier config.lua nécessaire !

📑 Changelog - MasterStretcher (Mise à jour du 17/02) - 3.2.1

  • Ajout de la langue Espagnole.
  • Correction d'un bug où le son de roulement ne pouvait pas être désactivé.

📑 Changelog - MasterStretcher (Mise à jour du 18/03) - 3.2.2

📑 Changelog - MasterStretcher (Mise à jour du 01/04) - 3.2.3

Attention : changement du fichier config.lua nécessaire !

📑 Changelog - MasterStretcher (Mise à jour du 02/04) - 3.2.4

Attention : changement du fichier config.lua nécessaire !

📑 Changelog - MasterStretcher (Mise à jour du 03/04) - 3.2.5

📑 Changelog - MasterStretcher (Mise à jour du 13/05) - 3.2.6