Mission Maker guide¶
This section is for mission makers — how to add CTLD to a mission and configure it in the DCS
Mission Editor and the CTLD_userConfig.lua file. If you want to operate CTLD from the cockpit
(the F10 menu), see the Pilot guide instead.
Getting started¶
Download ctld-tools.exe from the latest release and run
it. That is the whole installation: the tool carries CTLD and its beacon sounds, and writes
everything into your mission.
- Run the tool. It opens in your browser, locally — no installation, no account, nothing to configure first. If Windows blocks it on first launch, see below.
- Open config or mission… and pick your
.miz— or start from the CTLD defaults if you are configuring before you have a mission. Opening a mission that already has CTLD brings its configuration back, ready to edit: that is how you resume work on a mission you set up weeks ago, with no side file to keep. - Adjust what you need (the pages below describe each area), then Install into mission…
The tool writes four things into the .miz: CTLD.lua, the two beacon sound files, your
configuration, and the MISSION START triggers that load them in the right order. It reports what it
wrote, and re-installing replaces rather than duplicates.
Why a trigger plays the beacon sounds at mission start
One of those triggers plays both .ogg files at mission start. It is not there for you to hear:
the Mission Editor discards any file no trigger refers to when it saves a mission, and without it
your beacons would fall silent the next time you opened the mission in the editor. It runs before
anyone is in a cockpit, so nobody hears it.
Windows says it blocked the app¶
ctld-tools.exe is not code-signed — a certificate costs money a community project has no reason to
spend — so Windows treats it as coming from an unknown publisher. Nothing is wrong with the download;
you have to say so once:
- "Windows protected your PC" (the blue SmartScreen window) → click More info, then Run anyway.
- Properties → Unblock. If the file came through a browser, Windows tags it as downloaded from the
internet. Right-click
ctld-tools.exe→ Properties → tick Unblock at the bottom of the General tab → OK, then run it. - Your antivirus quarantined it. Single-file executables built with PyInstaller are a common false positive. Restore the file, and add an exclusion for it if your antivirus insists.
Every release is built by a public GitHub workflow from the tagged source, so you can check where the executable comes from before running it.
??? note "Installing by hand" Everything the tool writes is also attached to each release, if you prefer doing it yourself:
1. add `CTLD.lua` to the mission with a **MISSION START → DO SCRIPT FILE** trigger — on its own,
CTLD runs on its built-in defaults, which is enough to play;
2. add `beacon.ogg` and `beaconsilent.ogg` to the mission, or **beacons will be silent**;
3. to customise anything, add your `CTLD_userConfig.lua` as a second `DO SCRIPT FILE` trigger,
**before** the `CTLD.lua` one — the engine reads the configuration as it loads.
All settings are read through ctld.gs("paramName") at runtime. Your configuration is a complete
snapshot carried by ctld.configUser in CTLD_userConfig.lua, not a list of overrides — see
Configuration.
Configuration topics¶
| Page | What you configure |
|---|---|
Configure with ctld-tools |
The recommended way to configure CTLD: a local app, forms instead of Lua, injection into your .miz |
| Configuration | Global settings and per-aircraft capabilities (capabilitiesByType) |
| Zone setup | Troop zones (TRZ, including extract objectives), logistics zones (LGZ), waypoint zones (WPZ), AI zones (AIZ) |
| Scenes & FOB | Scene deployment (FARP, minefield…) and Forward Operating Bases |
| Crate catalogue | spawnableCrates, and the crate/vehicle/AA/JTAC definitions pilots can spawn |
| Minefield | Minefield scene setup |
| Translations | Localisation and translation overrides |
| Legacy API | v1 ctld.* compatibility for existing mission scripts |