Skip to content

Scripts Reference — VEAF Lua Modules

All modules are bundled in veaf-scripts.lua and loaded at mission start. This page helps you find the right module for your needs.


Find a Module

By mission-maker workflow

What are you building? Pick the step that matches.

Step Modules Purpose
Foundation veaf.lua, veafMarkers, veafRadio, veafInterpreter, veafCommands, veafI18n, veafUnits, veafEventHandler, veafCacheManager Core infrastructure (always loaded)
Setup veafSecurity, veafNamedPoints, veafAirbases Access control, map positions, airbase data
Spawning veafSpawn, veafMove, veafGroundAI Let players create, move and drive units
Mission types veafCasMission, veafCombatMission, veafCombatZone, veafTransportMission, veafQraManager, veafAirWaves, veafCampaign Structured gameplay scenarios
Assets & services veafAssets, veafCarrierOperations, veafGrass, veafWeather Managed tankers/AWACS/carriers, weather
Protection veafMissileGuardian, veafSanctuary Missile defense, safe zones
In-flight assistance veafAssist Guided checklists: the mission boxes the right switch in the cockpit and ticks the line
Debrief veafCombatLog Every shot, hit and kill to a file, for the recap per pilot
Integrations veafSkynetIadsHelper Third-party IADS systems

By player interaction

What will your players experience?

Player action Module What happens
Places a marker with _spawn ... veafSpawn Units appear at marker position
Places a marker with _cas veafCasMission Random target zone generated
Opens F10 → COMBAT ZONES → Activate zone veafCombatZone Pre-built combat area activates
Enters an air-waves zone veafAirWaves Wave-based air combat starts
Opens F10 → ASSETS → [asset] veafAssets Info, respawn
Opens F10 → CARRIER OPS → Start carrier air operations for 45 minutes veafCarrierOperations Carrier turns into wind
Enters a protected zone veafQraManager AI interceptors scramble
Types _auth elevate veafSecurity The group rises to the requester's level for 2 minutes
Flies in a sanctuary area veafSanctuary Hostile missiles neutralized

By frequency of use

How commonly is this module used?

Frequency Modules
Essential (almost every mission) veafSpawn, veafAssets, veafNamedPoints, veafSecurity
Common (most combat missions) veafCasMission, veafCombatZone, veafAirWaves, veafCarrierOperations
Situational (specific scenarios) veafQraManager, veafTransportMission, veafMove, veafGrass, veafWeather, veafAirbases
Specialized (advanced setups) veafMissileGuardian, veafSanctuary, veafSkynetIadsHelper, veafCampaign

Loading and Initialisation Pattern

Every module follows the same pattern:

-- Optional: override defaults before initialising
veafModuleName.SomeConstant = value

-- Required: initialise the module
veafModuleName.initialize()

-- Some modules also require a start() call
veafModuleName.start()

Modules that are not initialize()d consume no resources and create no radio menus.

Access Control

Module File Role
veafSecurity veafSecurity.lua Role-based permission system (passwords, levels)

Protection Modules

Module File What it does
veafSanctuary veafSanctuary.lua Protected zones that automatically destroy intruding units
veafMissileGuardian veafMissileGuardian.lua Intercepts specific incoming missiles to protect assets

Third-Party Integrations

Module File What it does
veafSkynetIadsHelper veafSkynetIadsHelper.lua Configures Skynet IADS from VEAF group data
veafSkynetIadsMonitor.lua — Monitors Skynet IADS health and sends radio alerts
veafRemote.lua — Bridge with the VEAF server hook: player rights and chat commands

Server administration

Component File What it does
veafServerHook VEAF-Server-hook.lua Dedicated-server hook: chat commands (/send, /pause…), pilots list, opt-in restart/telemetry

Data Modules

These are pure data files — no initialisation needed.

Module What it contains
dcsUnits.lua Database of all DCS unit types with attributes
dcsDataExport.lua Export utilities for unit data

A misspelt option is refused, not ignored

When a marker command carries an option no rule recognises — almost always a typo — the command is refused and the option is named back to you, with a suggestion when it is close to a real one:

_spawn group, name sa6, headng 270
      ↓
VEAF SPAWN: unknown parameter(s), command aborted: 'headng' (did you mean 'heading'?)

Refusing rather than running is deliberate: an unknown option does nothing, so the command would spawn or move something other than what you asked for, and nothing would tell you. The marker is left in place — fix it and drop it again.

Applies to the SPAWN, CASMISSION, MOVE, RADIO, TRANSPORTMISSION, GROUNDAI commands, artillery orders included. The name shown is the one the module also uses to prefix its DCS log lines, so the message and the log line up.

Aliases are excluded

An alias (-sa6, -samsr) carries the parameters of the command it expands into rather than its own, so checking there would warn about perfectly valid options. A typo inside an alias is caught by the final command instead.

Artillery orders: the separator is a semicolon

An artillery order travels as the value of an order key, inside a marker that is already split on commas — hence the ;: aim; shells 10; radius 50. Use a comma and the check now tells you, instead of silently losing the rest of the order.

Shortcuts

Module File What it does
veafShortcuts veafShortcuts.lua Defines short aliases (-sa6, -shilka, -destroy, etc.) for common marker commands — see full list
veafTime.lua — Mission time utilities

Complete API Reference

For the full public API of every module (functions, parameters, return values, examples), see the Lua API Reference.