Configuration
Les réglages sont dans config.lua, où chaque option est expliquée. Les textes sont dans locales/fr.lua et locales/en.lua. Un restart kp_planesmoke applique les changements.
Les réglages utiles
| Réglage | Pour |
|---|---|
Config.Locale |
Langue des textes : 'fr' ou 'en' |
Config.Framework |
'auto', 'esx', 'qbcore', 'custom' ou 'none' |
Config.Inventory |
'auto', 'ox_inventory', 'esx', 'qb-inventory' ou 'none' |
Config.Debug |
Lignes de diagnostic dans la console, désactivé par défaut |
Config.VersionCheck |
Message en console quand une nouvelle version sort |
Config.Commands |
Renommer /smokeplane et /smokeplaneconfig |
Config.Key |
Activer la touche, touche clavier et bouton de manette proposés |
Config.Access |
Qui peut fumer : tout le monde, ACE, métier, item, identifiants |
Config.Vehicles |
Tous les avions, une liste blanche ou une liste noire de modèles |
Config.Smoke |
Effet de particules, emplacements, taille, état de départ, moteur requis |
Config.Offsets |
Distance maximale des points, points de départ de tes add-ons |
Config.Notify |
Type, position, taille, style, thème, durée des notifications |
Config.Panel |
Thème, taille, logo et couleurs rapides du panneau |
Config.Discord |
Webhook des tentatives refusées |
Qui peut fumer
Config.Access.Mode :
'everyone': tout pilote d'avion, réglage par défaut ;'ace': la permissionkp_planesmoke.use, à donner dansserver.cfg;'job': un métier deConfig.Access.Jobs, avec son grade minimum (ESX ou QBCore requis) ;'item': le joueur porteConfig.Access.Item. AvecConsumeItem = true, un exemplaire est retiré à chaque allumage.
Les identifiants de Config.Access.Identifiers sont toujours acceptés en plus du mode choisi.
Les appareils
Seuls les avions sont acceptés, quel que soit le réglage : hélicoptères et autres véhicules sont refusés. Config.Vehicles.Mode choisit ensuite parmi les avions : 'all' pour tous, 'whitelist' pour les seuls modèles de Models, 'blacklist' pour tous sauf ceux-là. Les modèles s'écrivent avec leur nom de spawn.
Les trois emplacements
Aile gauche, centre et aile droite peuvent fumer en même temps, chacun dans sa couleur : de quoi faire un drapeau. Config.Smoke.Defaults règle ce qu'un nouveau joueur trouve au départ (allumé ou non, couleur). Retire un emplacement de Config.Smoke.Positions pour le supprimer partout.
La taille va de 0,1 à 3 par défaut (Config.Smoke.Size), commune aux trois traînées.
Les add-ons
Chaque emplacement part d'un point du modèle : le bout d'aile (wingtip_1, wingtip_2, puis aileron_l, aileron_r) ou la tuyère (afterburner, exhaust). Sans ces repères, le point est calculé depuis la taille du modèle.
Le joueur déplace ensuite chaque point dans /smokeplaneconfig avec trois curseurs : sur les côtés, en avant ou en arrière, en hauteur. Les positions sont enregistrées par appareil : régler un add-on ne touche pas aux autres avions.
Pour que tes joueurs trouvent un add-on déjà calé, donne son point de départ dans Config.Offsets.Models :
Config.Offsets.Models = {
['rafalec'] = {
left = { x = -0.4, y = 0.0, z = 0.2 },
right = { x = 0.4, y = 0.0, z = 0.2 },
center = { x = 0.0, y = -1.0, z = 0.0 },
},
}
Le serveur plafonne les déplacements à 12 m sur les côtés, 12 m en avant ou en arrière et 4 m en hauteur. Tu peux baisser ces limites dans Config.Offsets, pas les dépasser.
Le panneau
Pendant que le panneau est ouvert, le joueur voit sa fumée même moteur coupé, et lui seul. Le panneau se déplace en le prenant par son médaillon ou son titre, et garde sa place. « Par défaut » remet les réglages de départ, Échap ferme sans enregistrer.
Config.Panel règle le thème ('auto', 'dark' ou 'light'), la taille, le logo du médaillon et les couleurs rapides proposées sous chaque emplacement. Dépose le logo de ton serveur en PNG carré sous html/img/logo.png.
Les notifications
Config.Notify.Type choisit l'affichage :
'medallion': l'interface KAAPSULE, compacte, en haut à droite par défaut. Tout se règle :Position,Offset,Scale,Style,Theme,Max. Sans son par défaut ;'ox_lib','esx','qbcore'ou'native': les notifications de ces systèmes.
OnToggle = false coupe les messages d'allumage et d'extinction : la fumée se voit déjà. Les refus s'affichent toujours.
Les textes
Tous les textes sont dans locales/fr.lua et locales/en.lua. Change la phrase, garde les parties entre accolades ({item}, {model}...) : le script les remplit. Une clé absente de ta langue reprend le texte anglais.
Les tentatives refusées sur Discord
Colle un webhook dans Config.Discord.Webhook pour être prévenu quand un joueur envoie des réglages hors limites ou demande de la fumée hors d'un avion, signe d'un client modifié. Une alerte part après Threshold refus en Window secondes, sans sanction automatique. Rien n'est envoyé quand un joueur utilise simplement la fumée.
Variables utiles : {reason}, {details}, {count}, {player_rp}, {player_name}, {player_id}, {player_mention}, {player_license}, {date}. Un log ne mentionne jamais personne.
La vérification au démarrage
Au démarrage, le script relit ta config. Une valeur fausse est signalée une fois en console et remplacée par sa valeur par défaut, sans rien bloquer :
[kp_planesmoke] config: Config.Smoke.Size.Max = -5 is not valid, 3.0 used instead