Complete toolkit for creating dynamic DCS World missions using VEAF Lua scripts and automation tools.
License: MIT | Version: see CHANGELOG.md
Choose the guide that matches your role:
| Role | Guide | Description |
|---|---|---|
| Player / Pilot | Pilot Guide | F10 menus, marker commands, assets, combat zones |
| Mission Maker | Mission Maker Guide | Install, configure, build — all scripts documented |
| Developer | Developer Guide | Architecture, build pipeline, quality gates, contributing |
| Reference | Description |
|---|---|
| Lua API Reference | Full API for all 34 Lua runtime modules |
| Tools CLI Reference | veaf-tools.exe and veaf-tools-updater.exe |
| Testing Guide | Lua unit test suite, CI/CD pipeline |
| Roadmap | Planned features and known limitations |
You're in a mission that uses VEAF scripts. Open the F10 map, place a marker, and type a command (e.g. _spawn unit T-80 or _cas). See the Pilot Guide for all available commands.
# 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 folderThen, depending on your starting point:
You already have a VEAF mission folder (or forked the Demo Mission):
veaf-tools.exe buildYou only have a .miz file:
veaf-tools.exe extract my-mission.miz
# → edit mission.yaml to enable the modules you want
veaf-tools.exe buildFull workflow: Mission Maker Guide
# Setup
poetry install --with build
# Build
poetry run veaf-build build --version 6.0.5
# Test
poetry run test-lua
# Publish
poetry run veaf-build publish --version 6.0.5Full reference: Developer Guide
VEAF Mission Creation Tools is a hybrid Lua + Python system:
- Runtime (
src/scripts/veaf/) — 34 Lua modules loaded inside DCS missions, providing spawning, asset management, mission types, radio menus, and more - Design-time (
src/python/veaf-tools/) — Python CLI (veaf-tools.exe) for manipulating.mizfiles: normalizing, injecting weather/waypoints/radio presets/aircraft groups - Release pipeline (
veaf-buildCLI) — compiles Lua, builds EXE files, publishes to GitHub
flowchart LR
A["Base .miz<br/>(DCS Editor)"] -->|veaf-tools extract| B["Mission folder<br/>(src/ + mission.yaml)"]
B --- C["published/<br/>(VEAF scripts)"]
B -->|veaf-tools build| D[".miz ready to fly"]
D -->|DCS loads| E["34 Lua modules active"]
E -->|Players use| F["F10 markers · Radio menus"]
- Extract — Create a base mission in DCS Editor and extract it into version-controllable source files (
src/mission/,src/scripts/) - Configure —
mission.yamldeclares active modules;published/provides the VEAF Lua scripts - Build —
veaf-tools buildassembles everything (mission data, VEAF scripts, triggers) into a final.miz - Runtime — DCS loads the
.mizand executes the VEAF Lua framework; players interact via F10
- VEAF Discord — real-time help
- VEAF Website
- GitHub Issues — bug reports
- Support the project
🇫🇷 Français | 🇬🇧 English
Ensemble complet d'outils pour créer des missions DCS World dynamiques avec les scripts Lua VEAF.
- Runtime (
src/scripts/veaf/) — 34 modules Lua s'exécutant dans DCS : spawning, assets, menus radio, zones de combat, météo, et plus - Design-time (
src/python/veaf-tools/) — CLI Python (veaf-tools.exe) pour manipuler les fichiers.miz - Pipeline de release (
veaf-buildCLI) — compilation Lua, build EXE, publication GitHub
flowchart LR
A[".miz de base<br/>(Éditeur DCS)"] -->|veaf-tools extract| B["Dossier mission<br/>(src/ + mission.yaml)"]
B --- C["published/<br/>(scripts VEAF)"]
B -->|veaf-tools build| D[".miz prêt à voler"]
D -->|DCS charge| E["34 modules Lua actifs"]
E -->|Les joueurs utilisent| F["Marqueurs F10 · Menus radio"]
- Extract — Créez une mission de base dans l'éditeur DCS et extrayez-la en fichiers source versionnables (
src/mission/,src/scripts/) - Configure —
mission.yamldéclare les modules actifs ;published/fournit les scripts Lua VEAF - Build —
veaf-tools buildassemble tout (données mission, scripts VEAF, triggers) en un.mizfinal - Runtime — DCS charge le
.mizet exécute le framework Lua VEAF ; les joueurs interagissent via F10
Choisissez le guide correspondant à votre rôle :
| Rôle | Guide | Description |
|---|---|---|
| Joueur / Pilote | Guide du pilote | Menus F10, commandes marqueurs, assets, zones de combat |
| Créateur de missions | Guide créateur de missions | Installation, configuration, build — tous les scripts documentés |
| Développeur | Guide du développeur | Architecture, pipeline de build, qualité, contribution |
| Référence | Description |
|---|---|
| Référence API Lua | API complète des 34 modules Lua runtime |
| Référence CLI des outils | veaf-tools.exe et veaf-tools-updater.exe |
| Guide de tests | Suite de tests Lua unitaires, pipeline CI/CD |
| Feuille de route | Fonctionnalités prévues et limitations connues |
Vous êtes dans une mission utilisant les scripts VEAF. Ouvrez la carte F10, placez un marqueur et tapez une commande (ex : _spawn unit T-80 ou _cas). Voir le Guide du pilote pour toutes les commandes disponibles.
# 1. Téléchargez veaf-tools-updater.exe depuis la page de release GitHub et lancez-le :
.\veaf-tools-updater.exe
# → installe veaf-tools.exe et tous les scripts VEAF dans le dossier courantEnsuite, selon votre point de départ :
Vous avez déjà un dossier mission VEAF (ou vous avez forké la mission de démonstration) :
veaf-tools.exe buildVous n'avez qu'un fichier .miz :
veaf-tools.exe extract ma-mission.miz
# → éditez mission.yaml pour activer les modules souhaités
veaf-tools.exe buildGuide complet : Guide créateur de missions
# Installation
poetry install --with build
# Build
poetry run veaf-build build --version 6.0.5
# Tests
poetry run test-lua
# Publication
poetry run veaf-build publish --version 6.0.5Référence complète : Guide du développeur
- VEAF Discord — aide en temps réel
- Site VEAF
- Issues GitHub — signalement de bugs
- Soutenir le projet
