Skip to content

VEAF Mission Creation Tools — Documentation

VEAF MCT turns a standard DCS mission into a dynamic, player-driven sandbox — 30+ Lua modules, a build pipeline, and a CLI tool that does the heavy lifting.

Complete toolkit for creating dynamic DCS World missions using VEAF Lua scripts and automation tools.


Start here

Everything else for mission makers is in the Mission Maker Guide; to contribute to the tools, see the Developer Guide.


How It Works

flowchart TD
    A["Base .miz\n(DCS Editor)"] -->|veaf-tools mission extract| B["Mission folder\n(src/ + mission.yaml)"]
    B --- C["published/\n(VEAF scripts)"]
    B -->|veaf-tools mission build| D[".miz ready to fly"]
    D -->|DCS loads| E["30+ Lua modules active"]
    E -->|Players use| F["F10 markers · Radio menus"]
  1. Extract — Create a base mission in DCS Editor and extract it into version-controllable source files
  2. Configure — mission.yaml declares active modules; published/ provides the VEAF Lua scripts
  3. Build — veaf-tools mission build assembles everything into a final .miz
  4. Runtime — DCS loads the .miz; players interact via F10 markers and radio menus

References

Reference Description
Lua API Reference Full API for the Lua runtime modules
CLI Reference veaf-tools — all 37 commands, their arguments and every option
Updater & release tools veaf-tools-updater and veaf-build: install, update, publish
Testing Guide Lua unit test suite and CI/CD pipeline
Roadmap Planned features and known limitations

Quick Start

Players and Pilots

You are in a mission that uses VEAF scripts. Open the F10 map, place a marker, and type a command — for example _spawn unit, name T-80UD or _cas. See the Pilot Guide for all available commands.

Demo mission

The v6 demo mission shows every feature in game, with a guided tour (F10 → Other → Guided tour), in French and in English. It is also the tools' acceptance check, run before every release — see the mission maker guide.

Mission Makers

The .\ is required. The default Windows terminal is PowerShell, which does not search the current directory — on purpose. cmd.exe accepts both forms, so .\ works everywhere. See PowerShell or Command Prompt?.

# 1. Download veaf-tools-updater.exe from the GitHub release page and run it:
.\veaf-tools-updater.exe
# → installs veaf-tools.exe and all VEAF scripts in the current folder

Then, depending on your starting point:

You already have a VEAF mission folder (or created one with mission prepare):

.\veaf-tools.exe mission build

You only have a .miz file:

.\veaf-tools.exe mission extract my-mission.miz
# → edit mission.yaml to enable the modules you want
.\veaf-tools.exe mission build

Full workflow: Mission Maker Guide

Developers

poetry install --with build
poetry run veaf-build build --version <version>
poetry run test-lua
poetry run veaf-build publish --version <version>

Full reference: Developer Guide


Community & Support