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 permission kp_planesmoke.use, à donner dans server.cfg ;
  • 'job' : un métier de Config.Access.Jobs, avec son grade minimum (ESX ou QBCore requis) ;
  • 'item' : le joueur porte Config.Access.Item. Avec ConsumeItem = 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