Skip to main content

Configuration générale

Ce chapitre détaille toutes les options de config/config.lua. C'est ici que vous adaptez MasterLadder à votre serveur : framework, permissions, interface, touches, vitesses, sons et distances. Les échelles elles-mêmes se règlent dans config/ladders.lua (voir Configuration des échelles).

💡 Toute option absente ou invalide reprend sa valeur par défaut, avec un avertissement dans la console : une faute de frappe ne fait jamais planter le script.

1. Licence

  • Config.MasterModsKey : votre MasterKey ("MM-XXXXXXXX"). Une clé mise dans server.cfg avec set mastermods_key "…" est prioritaire. Voir Installation.

2. Langue

  • Config.Locale (défaut "fr") : langue des messages et de l'interface.
    • "fr" : français
    • "en" : anglais
    • "es" : espagnol
    • "de" : allemand

3. Framework & permissions

  • Config.FrameworkMetier (défaut "standalone") : framework utilisé pour lire le métier des joueurs.
    • "esx", "qb", "qbx", "ox", "standalone"
  • Config.NotifySystem (défaut "gta") : système de notifications.
    • "ox", "esx", "qb", "okok", "gta"
  • Config.TargetSystem (défaut "ox") : système de visée (œil ALT).
    • "ox" : ox_target
    • "qb" : qb-target
    • "none" : touches et aide à l'écran
    • Si la ressource choisie n'est pas démarrée, le script passe automatiquement aux touches.
  • Config.TargetDistance (défaut 2.0) : portée des options de visée, en mètres.
  • Config.JobRestriction (défaut false) : active la restriction par métier (ignorée en standalone).
  • Config.RequireOnDuty (défaut true) : le joueur doit être en service (QBCore / QBox uniquement).
  • Config.AuthorizedJobs : grade minimum par métier et par action. Un métier absent de la liste n'a accès à rien.
Config.AuthorizedJobs = {
    ['pompier'] = {
        deploy  = 1, -- déployer / replier
        enter   = 0, -- monter au poste ou dans la nacelle
        control = 1, -- manœuvrer l'échelle
        lock    = 0, -- verrouiller les portes
        locker  = 0, -- coffres et écran arrière
    },
}

Le chiffre correspond au grade minimum requis.

  • Config.CustomPermission (défaut nil) : votre propre fonction de permission, qui remplace la restriction par métier. Elle reçoit source, l'action (deploy, enter, control, lock, locker) et le nom de l'échelle. Retourner false refuse l'action.
Config.CustomPermission = function(source, action, ladder)
    return IsPlayerAceAllowed(source, 'masterladder.use')
end

4. Interface

  • Config.DefaultInterface (défaut "modern") : pupitre par défaut.
    • "modern" : écran tactile
    • "retro" : pupitre années 2000
  • Config.AvailableInterfaces (défaut { modern = true, retro = true }) : interfaces que les joueurs peuvent choisir.
  • Config.AllowPlayerUiSettings (défaut true) : false désactive /mlui, tout le monde garde les réglages ci-dessous.
  • Config.DefaultUiCorner (défaut "br") : position du pupitre ("br" bas droite, "bl" bas gauche, "tr" haut droite, "tl" haut gauche).
  • Config.DefaultUiScale (défaut 1.0) : taille, de 0.6 à 1.6.
  • Config.DefaultUiCompact (défaut false) : mode compact (relevés et voyants seulement).
  • Config.DefaultUiVolume (défaut 0.6) : volume des sons du pupitre, de 0 à 1.
  • Config.ShowKeyHints (défaut true) : aide aux touches en bas d'écran pendant la manœuvre.
  • Config.UiRefreshRate (défaut 100) : millisecondes entre deux mises à jour du pupitre.

Une échelle peut aussi imposer son interface : voir interface dans Configuration des échelles.

5. Commandes & touches

  • Config.Commands : noms des commandes du chat (sans le /).
Clé Défaut Action
set mlset Déployer / replier (verrou nacelle pendant la manœuvre)
enter mlenter Monter / descendre / changer de place
control mlcontrol Prendre / lâcher les commandes
light mllight Projecteur
lock mllock Verrouiller les portes
camera mlcam Caméra opérateur
ui mlui Réglages de l'interface
climb mlclimb Gravir / redescendre l'échelle
exit mlexit Dépannage : se détacher de l'échelle
admin mladmin Administration
monitor mlmonitor Prendre / lâcher la lance canon (dans la nacelle)
pto mlpto Engager / désengager la prise de force (au volant)
pads mlcales Poser / ramasser les cales sous les patins (sol meuble)
  • Config.DefaultKeys : touches par défaut des commandes (set = 'U', enter = 'F', control = 'R', light = 'Y', camera = 'H', climb = 'G', monitor = 'J', pto = 'K'). Chaque joueur peut les changer dans Paramètres > Raccourcis > FiveM.

⚠️ FiveM lie les touches au nom de la commande : si vous renommez une commande, les touches personnalisées des joueurs reviennent à la valeur par défaut.

  • Config.ManeuverControls : contrôles GTA utilisés pendant la manœuvre (liste des contrôles).
    • rotateRight / rotateLeft (défaut 35 / 34, D / Q)
    • raise / lower (défaut 32 / 33, Z / S)
    • extend / retract (défaut 131 / 132, Maj / Ctrl)
    • armUp / armDown (défaut 38 / 44, E / A)
    • lightRight, lightLeft, lightUp, lightDown (défaut flèches)
    • exitLeft / exitRight (défaut 174 / 175) : maintenir pour sortir de la nacelle sur le côté
    • climbUp / climbDown (défaut 32 / 33, Z / S) : monter / descendre l'échelle
    • interact (défaut 51, E) : coffres et écran arrière sans target

6. Gameplay & mouvement

Vitesses maximales

  • Config.RotationSpeed (défaut 2.25) : m/s en bout d'échelle (la vitesse de rotation s'adapte à la longueur sortie).
  • Config.ElevationSpeed (défaut 1.5) : m/s en bout d'échelle.
  • Config.ExtendSpeed (défaut 1.5) : m/s.
  • Config.ArmSpeed (défaut 19.36) : °/s, bras de nacelle.
  • Config.LightSpeed (défaut 5.73) : °/s, projecteur.

Inertie et butées

  • Config.EnableInertia (défaut true) : démarrage et arrêt progressifs.
  • Config.AccelerationTime (défaut 0.35) / Config.BrakingTime (défaut 0.25) : secondes pour atteindre la vitesse maximale / pour s'arrêter.
  • Config.SlowDownNearLimits (défaut true) : ralentit à l'approche des butées.
  • Config.SlowDownZone : distance avant la butée où le ralentissement commence (° ou m) pour rotation, elevation, length, arm, light.
  • Config.SlowDownMinSpeed (défaut 0.15) : vitesse minimale dans cette zone (fraction de la vitesse max).

Nacelle

  • Config.BasketLockedOnDeploy (défaut true) : nacelle verrouillée à la fin du calage ; l'opérateur la déverrouille pendant la manœuvre (U). false = accessible dès la fin du calage.
  • Config.GroundClearanceLower (défaut 0.2) / Config.GroundClearanceExtend (défaut 0.1) : garde au sol minimale de la nacelle (m) pour descendre / sortir l'échelle.

Montée par l'échelle

  • Config.EnableLadderClimb (défaut true) : active la montée à pied.
  • Config.MaxClimbers (défaut 2) : personnes sur l'échelle en même temps (1 ou 2).
  • Config.ClimbSpeed (défaut 0.6) : m/s le long de l'échelle.
  • Config.BlockLadderWhileClimbing (défaut true) : l'échelle ne peut pas être manœuvrée quand quelqu'un y grimpe (le projecteur reste libre).
  • Config.ClimbAnimation (défaut { dict = "laddersbase", clip = "climb_up", cycle = 0.6 }) : animation d'escalade ; cycle = mètres parcourus par cycle d'animation. Augmentez-le si les mains « patinent » sur les barreaux.
  • Config.ClimbOffset (défaut { normal = 0.70, height = 0.95 }) : position du joueur sur l'échelle.
    • normal : distance aux barreaux. Joueur dans ou sous l'échelle → augmenter (pas de 0.05).
    • height : décalage le long de l'échelle (position des mains sur les barreaux).
  • Config.ClimbTilt (défaut { axis = "x", invert = false }) : inclinaison du joueur comme l'échelle. invert = true s'il se penche en arrière ; axis = "y" s'il part sur le côté.
  • Config.ClimbHelperModel (défaut "prop_golf_ball") : petit prop invisible servant d'ancrage au joueur.
  • Config.ClimbDownTarget (défaut { distance = 0.6, height = 1.1, reach = 3.0, model = "prop_cs_cardbox_01" }) : point de visée « Redescendre par l'échelle » dans la nacelle (écart au centre, hauteur, portée, prop invisible qui sert de surface à viser).

Caméra opérateur

  • Config.CameraDistance (défaut 7.0), Config.CameraMinDistance (3.0), Config.CameraMaxDistance (18.0) : distance de la caméra (m), réglable à la molette.
  • Config.CameraSensitivity (défaut 4.0).

Mise en station — Config.Stabilization

  • mode (défaut "manual") : "manual" = l'opérateur cale lui-même chaque stabilisateur à l'écran arrière, le porteur suit (soulèvement, cambrage) ; "auto" = séquence automatique.
  • levelTolerance (défaut 1.0) : calage manuel, écart de niveau maximal (°) pour valider.
  • maxLift (défaut 0.18) : calage manuel, levée maximale sur le plat (m). Course d'un vérin = descente jusqu'au sol sous son logement + maxLift : le stabilisateur ne quitte jamais son logement ; au-delà, des cales.
  • slopeCompensation (défaut 6.0) : compensation de dévers de l'échelle (°, 0 = aucune). Le calage reste valide jusqu'à cet angle ; l'échelle se remet d'aplomb.
  • slopeAbaqueLoss (défaut 0.03) : abaque réduit de cette fraction par degré d'inclinaison au-delà de levelTolerance (50 % minimum).
  • blocks : cales sous les patins au pupitre (enabled, height = 0,15 m, max = 3 par patin, model = prop utilisé).
  • requirePTO (défaut true) : prise de force obligatoire avant le calage (touche « pto », au volant, véhicule arrêté, moteur tournant). Engagée, le véhicule ne peut plus rouler ; elle ne se désengage qu'échelle rangée.
  • autoLevel (défaut true) : mise à niveau du porteur (châssis remis à l'horizontale). false : le porteur garde sa pente.
  • maxStroke (défaut 2.2) : course maximale d'un vérin (m). Au-delà (trou, fort dévers), le calage est refusé.
  • wheelLift (défaut 0.12) : roues décollées du sol après la mise à niveau (m).
  • maxSpeed (défaut 0.5) : vitesse maximale du véhicule (m/s) pour engager la prise de force et caler.
  • timing (défaut { out = 1800, down = 1600, stagger = 400, level = 1800, unfold = 1200, min = 300 }) : durées en ms (sortie d'un stabilisateur, descente d'un vérin pour 1 m de course, décalage entre deux stabilisateurs, mise à niveau, dépliage de la nacelle, durée minimale d'une descente). Si l'échelle a un deployTime supérieur à 0, toute la séquence est ramenée à cette durée.
  • obstacleCheck (défaut true) : obstacle sur la trajectoire d'un stabilisateur → calage réduit de ce côté s'il passe, sinon refus.
  • pedCheck (défaut true), pedRadius (défaut 1.2) : refus si quelqu'un se tient sous un patin ou sur sa trajectoire.
  • softGround (défaut { enabled = true, factor = 0.8, requirePads = false }) : sol meuble sans cales → abaque multiplié par factor ; requirePads = true refuse le calage sans cales.
  • padTime (défaut 4000) : ms pour poser / ramasser les cales.
  • emergencySpeed (défaut 0.25) : moteur hors service, vitesse de la pompe de secours (fraction de la vitesse normale).
  • beeps (défaut true), beepRange (défaut 30.0) : bips de manœuvre et hydraulique audibles autour du véhicule (m).

Abaque — Config.Abaque

  • enabled (défaut true) : active le calculateur de charge (courbes par échelle dans config/ladders.lua, voir Configuration des échelles).
  • mode (défaut "block") : "block" = au bord de la courbe, seuls les mouvements qui rapprochent la nacelle restent possibles (serveur et client) ; "warn" = alarme seulement.
  • countClimbers (défaut true) : les personnes sur l'échelle comptent dans la charge.
  • slowZone (défaut 1.5) : mètres avant la limite où la manœuvre ralentit.
  • reducedKey (défaut 21, Maj) : contrôle à maintenir avec la touche « déployer » pour un calage réduit.

Lance canon — Config.WaterMonitor

  • enabled (défaut true) : active la lance de la nacelle.
  • range (défaut 40.0) : portée du jet (m, à 45° sur terrain plat).
  • radius (défaut 3.0) : rayon d'extinction autour de l'impact (m).
  • drawDistance (défaut 200.0) : distance d'affichage du jet pour les autres joueurs (m).
  • sendRate (défaut 100) : ms entre deux envois de l'orientation de la lance.
  • fireControl (défaut 24, clic gauche) : contrôle GTA maintenu pour arroser.
  • native (défaut true) : éteint les feux du jeu chez tous les joueurs proches (ce qui couvre les scripts de feu basés sur les feux natifs, comme ceux de GIMI ou d'Albo1125).
  • smartFires (défaut { enabled = true, resource = "SmartFires", damage = 25.0, radius = 3.0, v1Hits = 6 }) : intégration London Studios SmartFires. En v2, chaque impact (2 par seconde) retire damage points de vie aux feux dans radius m, et le joueur est crédité. En v1, un feu touché v1Hits fois est éteint.
  • fx (défaut { jet = "water_cannon_jet", spray = "water_cannon_spray", scale = 1.0, rotation = { x = 0.0, y = 0.0, z = 0.0 } }) : particules du jet (attachée à un support invisible orienté comme la lance) et de l'impact. rotation corrige l'orientation de la particule si le jet ne part pas dans l'axe de la lance (réglage en jeu : Config.Debug = true puis /mlwfx x y z).

💡 Un autre script de feu peut se brancher sur l'impact du jet : voir Exports et événements.

7. Audio

  • Config.EnablePanelSounds (défaut true) : sons du pupitre (moteur hydraulique, bip de butée, déclic du verrou).
  • Config.LockerSoundDistance (défaut 10.0) : portée du son des coffres (m).
  • Config.LockerSoundVolume (défaut 0.45).
  • Config.InVehicleSoundFactor (défaut 0.4) : atténuation quand le joueur est dans un véhicule.
  • Config.ManeuverSounds { enabled, range = 10.0, volume = 1.0 } : sons de manœuvre entendus autour de l'EPAN (pompe hydraulique, moteur électrique, bips quand les stabilisateurs bougent), du gauche à droite selon la caméra. L'opérateur entend toujours sa machine. Pour des sons réels, déposez html/sounds/hydraulic.ogg (boucle de pompe) et html/sounds/motor.ogg (boucle de moteur) : ils remplacent la synthèse automatiquement.

7 bis. Sécurité de la manœuvre

  • Config.Wind { enabled, warn = 10.0, stop = 12.5, slow = 0.5 } : anémomètre (m/s, vent du jeu, plus fort en hauteur). Au-delà de warn : alarme et manœuvre ralentie (× slow). Au-delà de stop (12,5 m/s ≈ 45 km/h) : on ne peut plus que rentrer, descendre et tourner.
  • Config.AntiCollision { enabled, slow = 2.0, stop = 0.6 } : capteurs tout autour de la nacelle et au-dessus (façades, poteaux, câbles, véhicules). En approche, la manœuvre ralentit dès slow (m) et s'arrête à stop. On peut toujours s'éloigner de l'obstacle.
  • Config.Joysticks { enabled = true, showByDefault = true, cursorControl = 25 } : pupitre à joysticks cliquable pendant la manœuvre (joystick gauche rotation / inclinaison, droit longueur / bras nacelle, proportionnels ; arrêt d'urgence, vitesse lente, verrou, projecteur, caméra, lâcher). showByDefault : affiché pour un joueur qui ne l'a pas masqué dans /mlui. cursorControl : contrôle GTA qui prend la souris (25 = clic droit). Les touches restent actives.

8. Rendu & réseau

  • Config.LadderDrawDistance (défaut 250.0) : distance d'affichage des échelles déployées (m).
  • Config.PropLodDistance (défaut 300) : distance de détail des props (m).
  • Config.StowedStabilizers (défaut true) : les 4 stabilisateurs sont posés en position rentrée sur le véhicule dès son apparition, puis remplacés par ceux de l'échelle au déploiement. false = stabilisateurs visibles seulement une fois l'échelle déployée.
  • Projecteur : Config.SpotlightDistance (150.0), Config.SpotlightColor ({ 255, 255, 255 }), Config.SpotlightBrightness (80.0), Config.SpotlightRadius (25.0).
  • Config.NetworkRate (défaut 100) : ms entre deux envois de position par l'opérateur.
  • Config.InterpolationDelay (défaut 160) : ms de retard d'affichage chez les autres joueurs, pour un mouvement parfaitement lisse.
  • Config.PropHierarchy (défaut true) : sections attachées à la tourelle. false = placement individuel (solution de repli).
  • Config.LocalAttachOthers (défaut true) : les autres occupants sont attachés localement (supprime leurs tremblements).

9. Distances

Côté joueur

  • Config.PanelDistance (défaut 2.0) : distance à l'écran arrière pour déployer.
  • Config.EnterHelpDistance (3.0) / Config.EnterDistance (4.0) : affichage de l'aide / portée de la commande « monter ».
  • Config.LockerDistance (1.0) / Config.LockerHelpDistance (1.75) : ouverture / aide des coffres.
  • Config.NearVehicleDistance (7.0) : véhicule considéré à proximité.

Côté serveur (anti-triche) : distances maximales tolérées, un peu plus larges que côté joueur.

  • Config.MaxPanelDistance (3.0), Config.MaxEnterDistance (5.0), Config.MaxInteractionDistance (7.0).

10. Debug

  • Config.Debug (défaut false) : journal complet dans la console serveur et dans F8. Voir En cas d'erreur.
  • Config.DebugCategories (défaut nil = tout) : limite le journal à certaines catégories, par exemple { "license", "deny" }.

⚠️ Laissez Config.Debug = false en production : le journal est très bavard.