4
mission script api
Bruno Carneiro edited this page 2026-02-13 21:27:15 +00:00

Mission Script API — Documentation

This folder documents the API available to mission scripts. Mission scripts derive from AMission and are loaded by the game at runtime.

Mission scripts also use additional types such as LimbNames, NamedDamageTypes, Point2d, and Point3d; those are summarized in External Types.

How mission scripts are loaded

  1. The game loads a battle (one ABattle instance) via IScriptRemote.loadBattleScript.
  2. Missions are attached with loadMissionScript(fileName, missionNumber, scriptFileName), which instantiates a class named Mission that inherits from AMission.
  3. Each mission's Init(battle, missionNumber) is called; then the battle runs and invokes the mission's virtual On* methods in response to game events.

Documentation index

Core

Document Description
Mission And Battle AMission, ABattle, IBattle, DoTimeout
Gameplay IGamePlay — main interface to the game (actors, HUD, triggers, section files, etc.)
Time And Difficulty ITime, DifficultySetting
Player Player
Events And Section File GameEventId, ISectionFile
Pathfinding And Terrain RecalcPathState, PathType, LandTypes, IRecalcPathParams, ActorName
Script Loading IScriptRemote, ScriptRemote
External Types Additional types used by missions (limbs, damage, geometry)

World

Document Description
World Index of world types
Actor Hierarchy AiActor, AiPerson, AiCart, AiGroup, damage types, CrewFunction
Air AiAircraft, AiAirGroup, air waypoints, enums, EnemyAirInterf
Ground AiGroundActor, GroundStationary, buildings, bomb explosion, enums
Triggers Spawns And Targets AiTrigger, AiAction, AiBirthPlace, AiAirport, AiTarget, Regiment
Time And User Labels ITime (cross-link), GPUserLabel, GPUserIconType

Quick start

  1. Create a class Mission that inherits from AMission.
  2. Override OnBattleInit, OnBattleStarted, and any On* events you need (e.g. OnTrigger, OnActorCreated, OnAircraftKilled).
  3. Use GamePlay (IGamePlay) for querying actors, triggers, spawning groups, HUD messages, and section files.
  4. Use Time (ITime) for game time and tick conversion (e.g. with Timeout).

Reference the API documented here when building your mission script project.