Aller au contenu

Configuration

CTLD est livré avec des valeurs par défaut sensées pour chaque paramètre. Vous n'éditez jamais les fichiers source : toute la personnalisation vit dans un unique fichier, CTLD_userConfig.lua, que votre mission charge via un trigger DO SCRIPT FILE. Vous ne surchargez que ce que vous voulez modifier — tout ce que vous laissez tel quel conserve sa valeur par défaut.

Cette page couvre les réglages globaux et les capacités par appareil (capabilitiesByType). Les listes de zones, les définitions de crate, les scènes FOB, le minefield et les traductions ont chacun leur propre page — voir Où le reste se configure.

Comment fonctionne la configuration

Au démarrage, CTLDConfig remplit chaque paramètre avec sa valeur par défaut. Votre CTLD_userConfig.lua applique ensuite vos surcharges par-dessus. Tout au long de la mission en cours, chaque paramètre est lu via un unique accesseur :

ctld.gs("parameterName")   -- the only authorised read form

Ordre de chargement dans le Mission Editor

Ajoutez deux triggers DO SCRIPT FILE au MISSION START, dans cet ordre :

Ordre Action Fichier
1 DO SCRIPT FILE CTLD.lua
2 DO SCRIPT FILE CTLD_userConfig.lua

CTLD.lua définit le framework ; CTLD_userConfig.lua applique vos surcharges puis démarre automatiquement CTLD. (Si vous devez exécuter une configuration supplémentaire entre le chargement et le démarrage, positionnez ctld.dontInitialize = true avant le chargement de CTLD.lua et appelez ctld.initialize() vous-même.)

Deux façons de surcharger

Les scalaires (booléens, nombres, chaînes) vont dans le bloc ctld.yamlConfigDatas, une ligne ctld.parameterName: value par valeur :

-- CTLD_userConfig.lua — only override what differs from the defaults.
ctld = ctld or {}
ctld.yamlConfigDatas = [[

ctld.enablePackingVehicles: true
ctld.maximumDistancePackableUnitsSearch: 350
ctld.numberOfTroops: 8
ctld.maximumDistanceLogistic: 300
ctld.slingLoad: true

]]

Les tables (capacités d'appareils, listes de zones, catalogues de crate…) sont affectées directement sur l'instance de configuration. Chaque table que vous affectez remplace entièrement sa valeur par défaut :

local _cfg = CTLDConfig.get()
_cfg.settings["capabilitiesByType"] = { --[[ ... ]] }

Réglages globaux

Système

Paramètre Défaut Description
debug false Journalisation verbeuse vers CTLD.log (nécessite une installation DCS non sanitized)
ctldLogPath "" Surcharge le chemin du fichier de log ; vide = dossier Saved Games DCS par défaut
debugScreenLog false Répète aussi les messages de log à l'écran DCS via outText
location_DMS false Affiche les coordonnées en Degrés-Minutes-Secondes au lieu de Degrés-Minutes-Décimales
disableAllSmoke false Désactive globalement toute la smoke aux zones de pickup et de drop-off

Crates & slingload

Paramètre Défaut Description
enableCrates true Interrupteur maître pour le spawn et le déballage des crate
enableAllCrates true Affiche les entrées raccourci « All crates » dans les menus Request Equipment. Mettre à false pour ne conserver que les entrées de crate individuelles
slingLoad false Utilise la physique sling-load de DCS au lieu du système virtuel de hover
enableHoverSlingload true Autorise le chargement de crate en hover au-dessus. Si false, les crate ne se chargent que via le menu F10 (loadCrateFromMenu)
loadCrateFromMenu true Autorise le chargement de crate via le menu F10 (utile pour les fixed-wing incapables de hover)
enableSmokeDrop true Active l'entrée F10 « Drop Smoke »

Distances (mètres)

Paramètre Défaut Description
maximumDistanceLogistic 200 Distance max depuis une zone logistique pour charger ou spawn une crate
maxExtractDistance 125 Distance max entre le véhicule et les troops pour l'extraction
maximumSearchDistance 3000 Distance max pour que les troops IA déployées cherchent des ennemis
maximumDistancePackableUnitsSearch 200 Distance max pour chercher des véhicules pack-ables

Troops

Paramètre Défaut Description
numberOfTroops 10 Taille de groupe de troops par défaut / max par transport (surchargée par appareil via maxTroopsOnboard)
enableFastRopeInsertion true Autorise le déploiement en fast-rope
fastRopeMaximumHeight 18.28 Hauteur max (m) pour l'insertion fast-rope (≈ 60 ft)
allowRandomAiTeamPickups false Autorise les transports IA à choisir aléatoirement un template de troop aux zones de pickup. Si false, l'IA prend toujours le premier template disponible pour sa coalition
nbLimitSpawnedTroops {0, 0} Plafond cumulé de troops par coalition {RED, BLUE}0 = illimité (table Lua)

Simulation du poids de l'infanterie

CTLD estime le poids de chaque groupe de troops pour vérifier s'il tient dans un transport (voir capabilitiesByType[type].maxTroopsOnboard et les poids de véhicules). Chaque soldat pèse un aléatoire de 90–120 % de SOLDIER_WEIGHT, plus l'équipement et le matériel propre au rôle.

Paramètre Défaut Description
SOLDIER_WEIGHT 80 Poids corporel de base par soldat (kg)
KIT_WEIGHT 20 Casque + sac à dos par soldat (kg)
RIFLE_WEIGHT 5 Équipement standard de fusilier (kg)
MANPAD_WEIGHT 18 Tube MANPAD du soldat AA (kg)
RPG_WEIGHT 7.6 RPG + roquette du soldat AT (kg)
MG_WEIGHT 10 Arme du mitrailleur + bande de 200 cartouches (kg)
MORTAR_WEIGHT 26 Tube + obus de l'équipe de mortier (kg)
JTAC_WEIGHT 15 Laser + radio + jumelles du JTAC (kg)
CIV_WEIGHT 2 Effets personnels légers pour le rôle civil (kg)

FOB

Paramètre Défaut Description
enabledFOBBuilding true Autorise la construction de FOB depuis des crate
troopPickupAtFOB true Autorise le pickup de troops aux FOB construits
fobMinDistanceFromZones 500 Distance minimale (m) de toute zone logistique à laquelle un FOB peut être déployé
fobLogisticZoneRadius 150 Rayon (m) de la zone logistique créée autour d'un FOB déployé
fobTroopPickupRadius 150 Rayon (m) dans lequel les troops peuvent embarquer à un FOB
fobDestructionThreshold 0.5 Fraction d'objets de scène détruits avant qu'un FOB soit considéré perdu (0.0–1.0)
enableFARPRepack true Autorise les joueurs à pack une scène FARP déployée de nouveau en crate pour redéploiement

Note

Le nombre de crate nécessaires pour construire un FOB n'est pas un réglage global — il provient du modèle de scène FOB (cratesRequired, défaut 3), collectées dans un rayon de 750 m. Voir Scenes & FOB.

Véhicules & packing

Paramètre Défaut Description
enablePackingVehicles true Autorise le pack des véhicules de nouveau en crate
groundVehicleWeights {...} Poids (kg) par type DCS de véhicule, comparé au maxVehicleWeight de chaque appareil pour le transport de véhicule entier (table Lua)
capabilitiesByType {...} Table unifiée des capacités par appareil — voir Capacités par appareil ci-dessous

Beacons

Paramètre Défaut Description
enabledRadioBeaconDrop true Autorise le déploiement de beacon
deployedBeaconBattery 30 Durée de vie de la batterie du beacon (minutes)
radioSound "beacon.ogg" Fichier son du beacon — doit être ajouté au .miz de la mission, sinon les beacon ne fonctionneront pas
radioSoundFC3 "beaconsilent.ogg" Fichier de beacon silencieux pour les appareils FC3

Systèmes AA

Paramètre Défaut Description
AASystemLimitBLUE 20 Nombre max de systèmes AA actifs pour BLUE
AASystemLimitRED 20 Nombre max de systèmes AA actifs pour RED
AASystemCrateStacking false Autorise plusieurs jeux de crate à ajouter des launchers supplémentaires (N×crates → N×launchers)
aaLaunchers 3 Nombre par défaut de launchers par système AA quand le template n'en précise pas

JTAC

Paramètre Défaut Description
JTAC_LIMIT_BLUE 10 Nombre max d'objets JTAC que BLUE peut spawn (quota fixe — non réapprovisionné lorsqu'un JTAC est tué)
JTAC_LIMIT_RED 10 Nombre max d'objets JTAC que RED peut spawn (idem)
JTAC_dropEnabled true Autorise le spawn de crate JTAC depuis F10
JTAC_maxDistance 10000 Portée en ligne de vue du JTAC (mètres)
JTAC_lock "all" Filtre de cible : "vehicle" | "troop" | "all"
JTAC_allowStandbyMode true Autorise l'activation/désactivation du lasing
JTAC_laseSpotCorrections true Anticipe les cibles mobiles, en tenant compte du vent et de la vitesse de la cible
JTAC_allow9Line true Autorise les requêtes 9-line
JTAC_allowSmokeRequest true Autorise les requêtes de smoke-on-target
JTAC_smokeOn_RED false Active le marquage smoke pour les JTAC RED
JTAC_smokeOn_BLUE false Active le marquage smoke pour les JTAC BLUE
JTAC_smokeColour_RED 4 Couleur de smoke du JTAC RED — 0=Green 1=Red 2=White 3=Orange 4=Blue
JTAC_smokeColour_BLUE 1 Couleur de smoke du JTAC BLUE — 0=Green 1=Red 2=White 3=Orange 4=Blue
JTAC_smokeMarginOfError 50 Rayon max d'erreur de placement aléatoire (m) pour la smoke
JTAC_smokeOffset_x 0.0 Offset Est/Ouest fixe (m) ajouté avant l'erreur aléatoire
JTAC_smokeOffset_y 2.0 Offset vertical fixe (m) — garde la smoke visible au-dessus du terrain
JTAC_smokeOffset_z 0.0 Offset Nord/Sud fixe (m) ajouté avant l'erreur aléatoire
JTAC_droneRadius 1000 Rayon d'orbite de repli (m) pour les JTAC drones quand la crate n'a pas de specificParams
JTAC_droneAltitude 4000 Altitude d'orbite de repli AGL (m) pour les JTAC drones quand la crate n'a pas de specificParams

Groupes JTAC pré-placés (auto-détection)

CTLD détecte au démarrage les groupes JTAC placés dans le Mission Editor. Un groupe est reconnu comme JTAC lorsque son nom de groupe contient jtac (insensible à la casse) — par exemple jtac_blue_1, JTAC_Red_Forward, blue_jtac_drone.

Naming rule (mandatory)

Tout groupe JTAC placé dans le Mission Editor doit inclure jtac dans son nom de groupe. CTLD utilise le nom de groupe — pas le type d'unité — pour identifier les JTAC pré-placés. Un groupe contenant un Hummer ou un SKP-11 ne sera pas détecté à moins que son nom contienne jtac. Les groupes JTAC en late-activation sont supportés et enregistrés automatiquement lors de leur activation.

RECON

Paramètre Défaut Description
reconF10Menu true Active le sous-menu F10 RECON
reconEnabled false Interrupteur maître — doit être true pour que les commandes de scan fonctionnent
reconSearchRadius 5000 Rayon de scan en ligne de vue (mètres)
reconMinAltitude 50 Altitude AGL minimale (m) requise pour effectuer un scan
reconRefreshInterval 10 Intervalle de rafraîchissement automatique (secondes)
reconIconScale 1.0 Multiplicateur de taille d'icône (1.0 = défaut, 2.0 = double)

Minefield

Paramètre Défaut Description
showMinefieldOnF10Map true Dessine un quadrilatère englobant sur la carte F10 lorsqu'un minefield est déployé
demineRadius 150 Distance max (m) du joueur au centre du minefield pour que l'entrée « Clear Mine Field » apparaisse

Voir Minefield pour le déploiement.

Capacités par appareil

capabilitiesByType est l'unique table qui définit chaque capacité par appareil. Seuls les appareils listés ici reçoivent les menus F10 de CTLD. Chaque clé est le nom de type DCS exact de l'appareil (mods inclus, ex. "Hercules", "76MD", "UH-60L").

local _cfg = CTLDConfig.get()
_cfg.settings["capabilitiesByType"] = {
    ["UH-1H"] = {
        cratesEnabled            = true,   -- can load/unpack crates
        troopsEnabled            = true,   -- can load/deploy infantry
        canParachuteDrop         = true,   -- enables Parachute F10 entries
        canSlingload             = true,   -- enables hover-pickup + Slingload menus
        canTransportWholeVehicle = true,   -- whole-vehicle transport
        useNativeDcsCargoSystem  = true,   -- use the DCS native cargo system for crates
        convertNativeLoadToCTLD  = true,   -- convert DCS-native cargo loads to CTLD-managed
        maxTroopsOnboard         = 8,      -- max soldiers (overrides ctld.numberOfTroops)
        maxCratesOnboard         = 1,      -- max crates carried at once
        maxWholeVehiclesOnboard  = 1,      -- max whole vehicles carried at once
        maxVehicleWeight         = 1360,   -- max whole-vehicle weight (kg) this aircraft can lift
        loadableVehiclesRED      = { "BRDM-2", "BTR_D" },
        loadableVehiclesBLUE     = { "M1045 HMMWV TOW", "M1043 HMMWV Armament", "Hummer" },
    },
    ["C-130J-30"] = {
        cratesEnabled = true, troopsEnabled = true, canParachuteDrop = true, canSlingload = false,
        canTransportWholeVehicle = true, useNativeDcsCargoSystem = true, convertNativeLoadToCTLD = false,
        maxTroopsOnboard = 80, maxCratesOnboard = 22, maxWholeVehiclesOnboard = 2,
        maxVehicleWeight = 20000,
        loadableVehiclesRED  = { "BRDM-2", "BTR_D" },
        loadableVehiclesBLUE = { "M1045 HMMWV TOW", "M1043 HMMWV Armament", "Hummer" },
    },
    -- ... one entry per aircraft type
}

Référence des champs :

Champ Type Description
cratesEnabled bool Peut charger / spawn / déballer des crate
troopsEnabled bool Peut charger / déployer des groupes d'infanterie
canParachuteDrop bool Active les entrées F10 « Parachute »
canSlingload bool Active le hover-pickup et les menus « Release/Cut Slingload »
canTransportWholeVehicle bool Peut charger et redéployer des véhicules entiers
useNativeDcsCargoSystem bool Si true, CTLD fait spawn les crate comme objets cargo DCS (intégration cargo native). Si false, les crate sont créées directement comme objets statiques
convertNativeLoadToCTLD bool Si true, toute crate chargée via l'UI cargo DCS est immédiatement convertie en crate gérée par CTLD (détruit le slot DCS, empêche les crate fantômes). Mettre à true pour les hélicoptères où l'UI cargo DCS est exposée mais où le parachute CTLD est nécessaire (UH-1H, CH-47Fbl1) ; laisser à false pour les appareils qui s'appuient sur le cargo natif DCS pour les opérations au sol (C-130J-30, 76MD, Hercules)
maxTroopsOnboard number Nombre max de soldats que cet appareil peut transporter (surcharge numberOfTroops)
maxCratesOnboard number Nombre max de crate chargées à la fois (repli : 1 pour les types non listés)
maxWholeVehiclesOnboard number Nombre max de véhicules entiers transportés à la fois (0 = désactivé)
maxVehicleWeight number Poids max de véhicule entier (kg) que cet appareil peut soulever ; les véhicules plus lourds sont ignorés par l'auto-pickup de l'IA. Omettre ou mettre à nil pour illimité
loadableVehiclesRED string[] Noms de type DCS des véhicules de coalition RED que cet appareil peut transporter entiers
loadableVehiclesBLUE string[] Noms de type DCS des véhicules de coalition BLUE que cet appareil peut transporter entiers

Note

Quand canTransportWholeVehicle = true et que loadableVehiclesRED/BLUE liste un type de véhicule, ce type apparaît dans le menu F10 Request Equipment. Le sélectionner fait spawn le véhicule comme unité en attente près du transport (au lieu d'une crate) ; le pilote le charge ensuite depuis le cockpit. Voir le guide Pilote pour le déroulement en cockpit.

Les appareils non listés dans capabilitiesByType ne reçoivent aucun menu CTLD. Affecter votre propre table capabilitiesByType remplace entièrement celle intégrée, donc incluez chaque appareil que vous voulez rendre CTLD-capable.

Contrôle d'accès

Deux paramètres décident quelles unités joueur reçoivent les menus F10 de CTLD.

Paramètre Défaut Description
addPlayerAircraftByType true Comment CTLD sélectionne les unités joueur qui reçoivent les menus
transportPilotNames {...} Liste blanche de noms d'unité DCS — active quand addPlayerAircraftByType = false, et toujours utilisée pour les transports IA

addPlayerAircraftByType = true (défaut) — tout joueur dont le type d'appareil est listé dans capabilitiesByType obtient automatiquement les menus CTLD en entrant dans un slot. Recommandé pour les serveurs multijoueurs ouverts.

addPlayerAircraftByType = false — seuls les noms d'unité explicitement listés dans transportPilotNames obtiennent les menus CTLD. Utilisez ceci pour restreindre CTLD à un ensemble fixe de slots nommés (ex. une escadrille de transport dédiée). Les appareils CTLD-capables non listés rejoignent la mission normalement mais n'ont aucun accès CTLD.

local _cfg = CTLDConfig.get()
_cfg.settings["addPlayerAircraftByType"] = false
_cfg.settings["transportPilotNames"] = {
    "transport_slot_1",
    "transport_slot_2",
    "transport_slot_3",
}

AI transports

Les transports IA utilisent toujours transportPilotNames, indépendamment de addPlayerAircraftByType. Ajoutez-y les noms d'unité IA pour activer le comportement d'auto-pickup / drop-off.

Où le reste se configure

La configuration qui n'est pas globale vit sur des pages dédiées :

Sujet Page
Zones de troop / logistique / extract / waypoint (troopZones, AIZones, wpZones…) Zone setup
Construction de FOB et déploiement de scène Scenes & FOB
spawnableCrates, descripteurs de crate et templates AA Crate catalogue
Déploiement de minefield Minefield
Localisation et surcharges de traduction Translations
Compatibilité v1 ctld.* pour les scripts existants Legacy API

Pour opérer CTLD depuis le cockpit (le menu F10), voir le guide Pilote.