Scenario Builder
Describe a mission in plain English — map, target, threats, player aircraft — and the engine builds a real DCS .miz to match.

What it does (vs. /build)
The recipe-driven /build flow picks fragments from a 54k-piece library by role. Scenario Builder is for when you need specific controlthe recipe flow can't give you:
- Target by location. “Strike a comms site near Damascus, ≤120 NM from Ramat David.”
- Red CAP by airframe. Want only F-5E + MiG-29 + Su-27 as the hostile fighters? Specify them.
- Player roster you actually want. Pick the F-16 + F/A-18 + F-14 + F-15E mix; the base seed's slots are stripped and replaced.
- Briefing in your words. Write the mission narrative; it lands in the briefing verbatim.
⚡ Natural-language parsing
On /scenarios/newthere's a textarea at the top. Type your mission as you'd describe it to a wing-mate:
Click Parse & fill form and Claude (Haiku 4.5 under the hood) extracts a structured spec from your prose — DCS-canonical aircraft types, sensible blue-base for the map, era inference, narrative briefing — and pre-fills the form below. Tune anything before saving.
How to use it
- Open /scenarios and click New scenario.
- Optional: type your scenario in the natural-language textarea at the top, hit Parse & fill form, and the form below auto-populates.
- Mission basics: name, map, era (Modern / ColdWar / WWII), time of day, weather.
- Launch field & range: pick your blue base airfield. Default 250 NM max strike distance — typical fast-jet combat radius with bag tanks.
- Target: auto-pick by hint (e.g. “damascus industrial”) or set explicit coordinates. Available landmarks per map are listed in the form.
- Player slots: add one row per aircraft variant. Mix coalitions for asymmetric scenarios.
- Red threats: enable CAP / SAM / AAA. CAP airframes are user-chosen — only those types spawn as enemy fighters.
- Blue support: AWACS + tanker toggles.
- Narrative: write your briefing. Lands in the .miz verbatim.
- Click Save scenario → land on the detail page → Build .miz.
Building a 60-player roster? Use Build async (large) on the detail page — it submits the build to a queue, returns immediately, and polls for completion every 2s with a 5-min cap. Avoids the 30s API request timeout that would otherwise kill big-scenario builds.
What gets generated
The pipeline produces a doctrine-compliant .miz with:
- Static target complex at the picked coordinates (4-piece industrial cluster — warehouse + comms + tank + TACAN beacon).
- Player groups at your blue base — base seed's slots are stripped first, yours are added with proper
PLR_<COAL>_<BASE>_<TYPE>_NNnaming. - Synthetic red CAP flights from a red airfield, patrolling near the strike route. Era-correct DCS unit types.
- Red SAM batteries from the 54k-fragment library — real radar-equipped SA-3 / SA-6 / SA-10 / SA-11 sites with crew + spacing realism, not synthetic emplacements. Falls back to synthetic when the library is sparse for the requested era + density. Density: light=1, normal=2, hard=3 batteries.
- Red AAA point defense at the target site (ZSU / Vulcan / Ural-23).
- Blue AWACS + tanker with sane orbit positions and TACAN ch 25 X.
- Briefing with your narrative, target description, distance, threat list.
Worked example: bio-lab strike
“Destroy a bio-lab deep in Syria. Pilots can fly F-16, F-18, F-14, F-15E, MiG-29. Enemy CAP is F-5 / MiG-29 / Su-27. SAMs along the route. Strike target ≤120 NM from blue start.”
That scenario maps directly to the form: map=Syria, blue_base=Ramat David, max=120, target near “damascus industrial”, player_slots = F-16/F-18/F-14/F-15E/MiG-29 ×2 each, red_cap airframes = [F-5E-3, MiG-29A, Su-27], red_sam density=hard. Build → .miz with all of the above.
Aircraft type names
Aircraft fields take DCS-canonical type names. Common ones:
Mistyped types are silently dropped by DCS at load — if a slot is missing, check the spelling.