CDK Mission Editor: Triggers

From War Thunder Wiki
Revision as of 17:38, 28 June 2023 by RideR2 (talk | contribs) (List of all Actions: Added a link to the FMOD stuff with the list of all sounds)

Jump to: navigation, search
Introducing Wiki 3.0


Triggers are an integral part of anything but the most basic of User Missions. This article covers the basic operation of triggers and what each available component does.

Overview

Triggers are a feature of the Mission Editor which allow for vastly more complicated missions to be created, they can be used for scripted events, as well as for enabling more advanced mission features such as capture points, spawn points, visible way-points, and much more. As well as being useful for making more advanced single-player missions an understanding of triggers is a necessity for creating multi-player user missions, as such missions require triggers to function.

Triggers consist of three main components (also known as elements): Events, Conditions, and Actions. An event is what causes the trigger to execute, for example, the "periodicEvent" event will execute the trigger according to the specified interval (for example once a second, or once every 15 seconds). Once a trigger is executed a condition determines whether the trigger should continue to carry out the actions assigned to it, or should not do anything / carry out any else actions assigned to it; for example the "UnitInArea" condition will carry out the triggers actions if the specified unit is within the specified area at the moment the trigger is executed. Finally, actions define what the trigger does once it is executed and the condition is met; for example "playHint" displays a message on the user's screen and "unitDamage" can be used to damage part of, or destroy a unit. Actions can also be assigned as "elseActions" which instead of being carried out when the condition is met, will be carried out when the trigger is executed, but the condition is not met. If there are no elseActions then the trigger will do nothing when the condition is not met. Triggers can be assigned multiple events, conditions and actions. If a trigger is created with no conditions then it will carry out its actions whenever it is executed, this is useful for triggers which always need to run, for example, a trigger to draw various lines on the mini-map at the start of the mission. Be aware that if a trigger is created without conditions and "enableAfterComplete" is ticked then the trigger will run forever, repeatedly every time this event occurs (for a default trigger this means it would carry out its actions once a second, every second for the entirety of the mission, unless it is disabled by another trigger).

Creating Triggers

The Basics

The trigger window with a blank trigger (Trigger_01 selected), other triggers and categories are for demonstration purposes

In order to make a trigger you first need to display the trigger window in the mission editor, this can be done by clicking the "Properties and Triggers / Mission Obj. info" button (looks like CDK Open Triggers Window.jpg) on the mission editor bar at the top of the editor. This will open the "Triggers / Mission Obj. Info" window (from here on known as the "trigger window") at the right-hand edge of your screen, this window is where you can edit triggers and mission objectives (for the time being it will be blank). Now in the properties window (where your mission settings are) scroll down until you reach the Triggers / Mission Ob. Navigation section and expand it if necessary.

This window is where all the triggers and objectives of your mission will be stored, organized under the (currently empty) "Triggers" and "Mission Objectives" folders. There are several buttons at the bottom of this section:

Trigger This button will create a new trigger, either inside the root "Triggers" folder inside the currently selected category.

Category This button will create a new category, either inside the root "Triggers" folder inside the currently selected category. Categories are essentially folders for triggers, functionally they serve no purpose to the mission and exist to allow you to organise your triggers. Categories can be created inside other categories and form folder trees which can be collapsed to hide triggers not currently of interest (collapsing categories will not disable or remove their contents). If a category is disabled all of its contents (including stuff in subcategories) will be disabled.

Mission Obj This button will create a mission objective in the "Mission Objectives" folder. Mission objectives are described in other guides.

Copy and Paste The Copy button will copy the selected trigger or mission objective. If a mission objective is selected and the copy button is pressed then a duplicate mission objective will be created. If a trigger is selected when the copy button is pressed then the Paste button will become available this allows you to select a different category for the trigger to be pasted into, once the destination is selected pressing the Paste button will create a duplicate of the copied trigger there.

Del This button will delete the selected trigger or mission objective.

Up and Down These buttons will move the selected trigger, category or mission objective up or down in the list, this does not affect the behaviour of the mission and is used to keep the lists organised.

To create your first trigger click the "Trigger" button, this will create your first trigger "Trigger_01" and display it in the trigger window. What you see will look similar to the image to the right (you will only have "Trigger_01" whereas the image has several other triggers, categories and objectives for demonstration purposes). At the top of the window is the triggers name, this can be changed to whatever you want (however should not be the same as any other triggers), it is best to pick a descriptive name such as "Setup" or "Teleport Player" to keep it clear what everything does, however, this is completely optional. The next option is an "Enabled" checkbox, by default, all triggers start enabled, disabling a trigger effectively prevents it from being executed. This is useful for triggers than you want to manually activate or execute at specific moments, as triggers can be enabled, disabled and even just executed without enabling it during the mission by other triggers. The next field is a comments box, this has no effect on the trigger's operation and is just for documenting what it does, it is completely optional.

Next is the trigger properties section this contains the following fields:

actionsType By default this is set to "PERFORM_ONE_BY_ONE" meaning the actions will be completed in the order they are present in the actions list of the trigger. This option can be changed to "PERFORM_ALL" where all actions are completed at the same time.

conditionsType By default this is set to "ALL", but can be changed to "ANY". For triggers with multiple conditions, this determines whether all of the conditions need to be met for the trigger to carry out its actions, or if any of the conditions being met is enough for the trigger to carry out its action(s).

enableAfterComplete By default this is set unchecked, meaning that once the trigger has carried out its actions, it becomes disabled. If it is checked then the trigger will carry out its actions every time it is executed and the condition is met, instead of just the first time.

Now we have reached the "Elements" section, and below it the "Element" section (Gaijin could have come up with better names) this is where you build your trigger; the "Elements" section is where you create the events, conditions, actions, and else actions of your trigger, while the "Element" section is where you modify the properties of each component. The elements area consists of a window with four folders where the contents of your trigger will be displayed, and underneath a collection of buttons:

Event, Condition, Action and ElseAction These buttons will display a new window with a list of all the available events, conditions and actions, depending on what button is pressed (the Action and elseAction buttons display the same list of actions, but will insert them into either the Actions or ElseActions area). There is a search box which will find the first item matching the phrase entered, it will only return the first entry in the list however, there may be more matches further down. To insert a component, select it from the list and click "Ok".

Up and Down These buttons will move the selected element up and down in the list. Changing the order of components only affects the Actions and ElseActions area where the actions will be carried out in the order they appear in the list. If actionsType is set to "PERFORM_ONE_BY_ONE" (the default setting) in the trigger properties area.

Delete This button will delete the selected trigger component.

Copy This will copy the selected trigger component, multiple components can be copied from different triggers (or the same one) without needing to press "Paste ..." each time.

Paste ... This button will display a list of all the copied components (grouped by type) and allow you to select one to paste into the currently selected trigger.

The "Element" section at the bottom will update with different fields and buttons depending on the currently selected trigger component.

Worked Example Trigger

The completed trigger and mission setup to Teleport a player

In this example, we are going to make a simple trigger which will teleport the player to a new location when the player enters a specific area. For this example the player unit will be in a tank (placed as "tankModels" in the editor) called "Player", there will be an area called "Teleport_Area" and another called "Destination_Area" (exact setup can be seen in the image to the right). When the player tank enters "Teleport_Area" we want it to be teleported to "Destination_Area".

To follow along with this example create a "tankModels" unit type, assign it as the player's vehicle, call it "Player" and set it to a tank you own. Create two box areas for the teleport and destination areas (called "Teleport_Area" and "Destination_Area"). If not already present from reading the previous section create a new trigger.

You should now have a fresh trigger (likely called Trigger_01 or similar), we will begin by renaming the trigger to something more descriptive so if we come back to the mission later it is nice and clear what it does; to do this select the name field, delete the old name and type a new name for the trigger, for example "Teleport Player". We will leave most of the properties as default, however, we will tick "enableAfterComplete" as we want the player to be teleported every time they enter the area, not just the first time. We will then select the "periodicEvent" event and set its time field in the Element area to 0.1, this means the trigger will be executed and check if the player is in the area every 0.1 seconds.

Next, we will click the "Condition" button and look for the "unitWhenInArea" condition and insert it into the trigger, this condition allows us to check whether a chosen unit is within a specified area at the moment the trigger is executed. When the condition is added it should automatically become selected in the "Element" section, scroll down in the trigger window so that all of the settings can be seen. The "object" field is what the condition is going to act on, in our case we want to check the player's unit to see if it is in the area, so we will set this field to the player unit (in this example called "Player"); to do this simply click the field and select the player's unit from the list of available units. The "+ object" button will create another object field, allowing you to check if multiple units are in the area. The target field, in this case, refers to what area we are checking the unit is in, so we will set this to "Teleport_Area". The "+ target" button does the same thing for targets that the "+ objects" button does for objects. We will leave all other settings at defaults, but for future reference here is what they do:

Math allows you to specify how the unit is checked to be in the area; by default it is set to "3D" so the unit must we within the area, if it is set to 2D then along as the unit is within the 2D footprint of the area it doesn't matter how high up the unit is (this setting is mainly useful for triggers aimed at aircraft). This field can also be set to "notNear2D" or "notNear3D", these work the same as "2D" and "3D", but will activate the trigger when the unit is not within the area, instead of when the unit is within the area. The "object_type" and "unit_type_ex" settings allow you to specify criteria about the unit, by default it is set to "isAlive" which means the condition will be met as long as the unit is alive while it is in the area, this can be changed to other settings such as "isDamaged" so the trigger will only activate if the player is both within the area and has damage to their vehicle. Finally, check_objects comes in useful if you have specified multiple units to check, it allows you to say whether the trigger should activate if any of the units are in the area, or if all of the specified units must be in the area for the trigger to carry out its actions. This also works if a squad has been set as the object instead of an individual unit, it let you choose whether a single unit from the squad or the entire squad is required to be in the area.

Next, click the "Action" button and from the list select "unitMoveTo" and insert it into your trigger. This action can be used to do various things relating to units movement (such as telling AI to move to a certain place in a certain way), but we will use it for its ability to teleport units, in this case, the player. Once inserted set the object to the player's unit and target to "Destination_Area", then click the "+ move_type" button to add the move_type field to the trigger and set the field to "teleport". There are a lot of other fields here which will be useful for when you make more advanced missions, but they are outside the scope of this basic guide.

Our trigger is now complete; every 0.1 seconds (10 times a second) it will check if the player's unit is within the "Teleport_Area" area and if it is it will teleport the player to the "Destination_Area" area, if the player is not in the teleport area it won't do anything. Now finish off the mission (give it a name, assign the player unit as the player, set the map to the correct map, that sort of stuff) and test it out in-game.

List of all Events

For each item in the table click [Expand] for more details on implementation and available settings.

Event Description Available in SP or MP?
periodicEvent
Will execute the trigger repeatedly at a user defined interval

Fields:

  • time: The amount of seconds between each execution of the trigger, accurate to 2 decimal places
  • var: An integer variable can be assigned here to override the value of the "time" field (use of integer variable limits interval to whole seconds if this option is chosen)
Both
timeExpires
Will execute the trigger once after a set number of seconds from mission start

Fields:

  • time: The number of seconds from the start of the mission after which the trigger will be executed, accurate to 2 decimal places
  • var: An integer variable can be assigned here to override the value of the "time" field (use of integer variable limits interval to whole seconds if this option is chosen)
Both
initMission Trigger will be executed once at the start of the mission Both

List of all Conditions

For each item in the table click [Expand] for more details on implementation and available settings. Note: This section lists the intended functionality (where known) for each condition, some (a minority) may be legacy features, or just broken, and may not work properly if at all. "SP only", "MP only", "Both" and "Unknown" show whether the trigger component only works in Single-player missions, only works in Multi-player missions, works in both types of missions, or that the component is currently non-function / not enough is known about it to say.

Condition Description Available in SP or MP?
airfieldIsModuleHP
Checks the amount of HP of selected airfield module

Notes:

  • Works only on airfield with enabled and set up modular_airfield in missionMarkAsRespawnPoint action

Fields:

  • object: Which airfield's modules you want to check
  • module: Select one of available airfield modules
  • hp_percent: HP value which will be checked
  • hp_check_mode: Select if you want to check if it will be a higher, lower or equal number.
Both
gameWhenDifficulty
Will check what the current game-mode is (AB, RB, SB or custom)

Fields:

  • difficulty: what game-mode (AB, RB, SB or custom) the condition will check for
  • is: Can either be "equal" or "notEqual", if "equal" then trigger carries out actions when the current game-mode matches the one set in the "difficulty" field, if "notEqual" trigger will carry out actions when the game-mode does not match the one set in the "difficulty" field.
Both
gameWhenControlMode
Will check what the control mode the user has selected (mouse-aim, etc.)

Fields:

  • controlMode: what control mode (mouse-aim, instructor / simplified, realistic or full-real) the condition will check for
  • is: Can either be "equal", "notEqual", "less", or "more", if "equal" then trigger carries out actions when the current control-mode matches the one set in the "controlMode" field, if "notEqual" trigger will carry out actions when the game-mode does not match the one set in the "controlMode" field. The functionality of "less" and "more" is not confirmed but may allow for checking if the user's control scheme is set to less or more realist than the chosen value.
SP only
gameWhenControlWarning Condition does not appear to currently be functional Unknown
gameWhenHintIsNotActive Will check if a hint is currently being displayed on the UI Both
gameWhenManualGear Will activate trigger if the user currently has "Autocontrol of landing gear" turned off in-game controls SP only
gameWhenObjectivesNotDisplayed Will activate trigger if no mission objective is currently being displayed on the screen Unknown
infantryTroopWhenKilledByPlayerMatches
Will check if the number of infantry units killed by the player matches a specified value

Fields:

  • object: Which group of infantry the condition is checking if the player has killed
  • func: Can be "less", "more", "equal", "notEqual" "notLess", "noteMore", determines how to compare the number of infantry killed to the number specified.
  • value: the number to compare the number of infantry killed by the player to.
  • var: An integer variable can be assigned here to override the value of the "value" field
SP only
isAllPlayersInGame Will activate trigger if all the players are in the game MP only
isTargetLocked
Checks if the selected unit is locked using Lock Target controls from Common tab

Fields:

  • target: Select which target should be checked
SP only
isTriggerGroupActivated
Checks if player is using weapons

Notes:

  • Works only for tanks and ships

Fields:

  • triggerGroup: Select which weapon type (primary gun, secondary gun or machine gun) should be checked
SP only
misObjStatus
Will activate the trigger if a specified objective's current status matches a specified value

Fields:

  • target: The objective to be checked
  • status: Can be "completed", "failed", "notCompleted", "notFailed", "inProgress", "notInProgress", specifies the value to compre the trigger's status to.
Both
missionEnvironment
Will activate the trigger if a mission matches the time set in this condition

Fields:

  • environments: Select the mission time
Both
missionNamePostfix
Checks postfix of your mission

Notes:

  • Postfix can be set in Mission Settings -> Versus params -> postfix

Fields:

  • postfix: Set the postfix
  • equal: Checks the postfix, if it's equal then it will accept the condition
MP only
missionIsBombingAreaDestroyed
Will activate the trigger if the specified bombing area is destroyed

Fields:

  • target: The bombing area to check (bombing areas are assigned with the "missionSetBombingArea" action, for the condition select the area you assigned as a bombing area with this action)
Both
missionIsLZCaptured
Will activate trigger if a specified landing zone is captured by a specified team (unclear if / how LZs currently work)

Fields:

  • lz: The Landing Zone to be checked
  • army: Which team should have captured landing zone
Unknown
missionIsRespawnAllowed Checks if respawns are allowed in mission settings Unknown
missionIsSuccess Activates trigger if the mission is completed successfully Both
missionIsZoneCaptured
Will activate trigger if a specified zone is captured by a specified team

It may be possible to make this trigger work in single-player but requires certain mission settings to be set.

Fields:

  • target: The Zone to be checked
  • army: Which team should have captured zone
MP only
missionWhenAdditionalTime
Will activate trigger if a specified amount of time has passed since the successful completion of the mission

When a (singleplayer) mission is marked as completed the player has the option to return to the hangar or continue playing, this condition will activate the trigger once a specified amount of time has passed from the completion of the mission should the player chooses to continue playing.

Fields:

  • value: The amount of time (in seconds) that should elapse after completion of the mission
  • use_variable: Enables the use of a variable instead of the specified value.
  • var_value: An integer variable can be assigned here to override the value of the "value" field, if "use_variable" is ticked
SP only
missionWhenInBattleArea
Will activate the trigger if any units are within the defined battle area

Fields:

  • area: The battle area to check (battle areas are assigned with the "missionBattleArea" action, for the condition select the area you assigned as a battle area with this action)
Both
missionWhenTime
Will activate the trigger if a specified amount of time has passed since the start of the mission

Fields:

  • value: The amount of time which sold pass since the start of the mission.
Both
objectExists
Checks if there is a selected object in the mission

Notes:

  • Mostly used with variables

Fields:

  • invertResult: If checked, will check if there are NOT objects with the set name
  • target: Select the target name (can be a variable)
  • type: Select the target type
Both
objGroupWhenStatus
Checks if selected objectGroups object exists on the map or not (it's related to unitWakeUp and unitPutToSleep actions)

Fields:

  • target: Select the objectGroups object
  • obj_status: Checks if the object exists
  • check_army: Unknown
Both
objectGroupWhenInArea
Looks for the objectGroups in the selected area

Fields:

  • object: Selects the objectGroups object
  • target: Selects the area
  • object_type: Checks the status or team of the selected objectGroups
  • check_objects: Can be "any" or "all", decides if all specified objects must be within the area or just one
Both
playersDistanceBetween
Will activate the trigger if the player is within a set distance of a set object

Fields:

  • target: The object to check the player's distance between
  • value: The distance between the player and the target
  • var: An integer variable can be assigned here to override the value of the "value" field
  • math: Can be "2D", "3D", "notNear2D" or "notNear3D", determines how distance is calculated 2D is just concerned with 2D distance (distance between two objects on if drawn on a top-down map), whereas 3D takes height difference into consideration; notNear will activate trigger if players are not within the distance, instead of being within the specified distance.
  • player: the status of the player to be considered by the condition
  • target_type: The status of the object to be considered by the condition
  • check_players: can be "any" or "all", decide if all players must be within distance or just one
  • check_targets: can be "any" or "all", decide if the player must be within the specified distance of all targets or just one
  • team: Can be "A", "B", or "Both", determines which team's players should be considered by the condition
Both
playersWhenEnemyNear
Will activate the trigger if the player is within a set distance of an enemy

Fields:

  • players: the status of the player in order to be considered by the condition
  • enemy_type: The status of the enemy unit in order to be considered by the condition
  • distance: the distance between the player and the enemy unit
  • check_players: can be "any" or "all", decides if all players must be within distance or just one
  • team: Can be "A", "B", or "Both", determines which team's players should be considered by the condition
Both
playersWhenInArea
Will activate the trigger if the player is within a set area

Fields:

  • target: the area to check if the player is within
  • math: Can be "2D", "3D", "notNear2D" or "notNear3D", determines how the players position is calculated 2D is just concerned with if the player is within the 2D footprint of the area, regardless of height, whereas 3D takes height into consideration; notNear will activate trigger if player is not within the area, instead of being within the specified area.
  • players: the status of the player to be considered by the condition
  • check_players: can be "any" or "all", decide if all players must be within distance or just one
  • team: Can be "A", "B", or "Both", determines which team's players should be considered by the condition
Both
playerWhenSpawn
Will activate when the player spawns

This condition is best used with the "useForTriggerFiltered" option on actions to allow the trigger to act only on units which have just spawned.

Fields:

  • team: Can be "A", "B", or "Both", determines which team's players should be considered by the condition
  • clearHandledEvents: Functionality unknown
Both
playersWhenOnLZ
Checks if a player is within the landing zone (unclear if / how LZs currently work)

It is currently unclear if this trigger works

Fields:

  • object: The units to check
  • target: The landing zone to check (landing zones are assigned with the "missionMarkAsLandingZone" action, for the condition select the area you assigned as a landing zone with this action)
  • object_type: the status of the player in order to be considered by the condition
  • check_objects: can be "any" or "all", decides if all players must be within distance or just one
  • aterRepaired: Functionality unknown
Unknown
playersWhenReachHeight
Checks if a player has reached a specified altitude

Fields:

  • players: the status of the player in order to be considered by the condition
  • check_players: can be "any" or "all", decides if all players must be above height or just one
  • value: the altitude to reach (in metres)
  • comparison_func: can be "more" or "less", decides if trigger should activate if player is above or below set value
  • absolute_value: Determines whether absolute altitude (referenced to sea level) or altitude over terrain should be used
  • team: Can be "A", "B", or "Both", determines which team's players should be considered by the condition
Both
playersWhenStatus
Checks the status of the player

Fields:

  • players: the value the player's current status should be compared to
  • check_players: can be "any" or "all", decides if all players must meet status or just one
  • team: Can be "A", "B", or "Both", determines which team's players should be considered by the condition
Both
playersWhenManeuver
Checks what manoeuvre the player is carrying out

Fields:

  • manName: the manoeuvre to compare player's current behaviour to
SP only
playersWhenOptions
Checks what options the player is currently has using

This condition has a list of check boxes and drop downs to let you act on the players settings such as if they are currently in cockpit mode, currently zoomed in, are using a touch screen to play, are using mouse aim, are using a joystick, etc. Some or all settings may not work and some such as "currentMissileType" are left over from previous Gaijin games on the same engine and not relevant to War Thunder.

SP only
playersWhenOrientation
Checks what orientation the player is currently at

Fields:

  • value: The angle the player should be at (-180 to +180, accurate to 2 decimal places)
  • orientation: Which axis (yaw, pitch, or roll) the trigger should check the value against
  • comparison_func: Can be "more" or "less", whether the trigger should activate when the player's angle is above or below the specified value in the specified axis.
SP only
playersWhenCameraState
Checks what orientation the of the camera (in free look mode)

Fields:

  • value: The angle the camera should be at (-180 to +180, accurate to 2 decimal places)
  • orientation: Which axis (yaw, pitch, fov (field of view)) the trigger should check the value against
  • comparison_func: Can be "more" or "less", whether the trigger should activate when the camera angle is above or below the specified value in the specified axis.
SP only
playersWhenCursorIn
Functionality unknown

This appears to relate to how the mouse cursor is being used (mouse-aim, on-screen joystick, control of tank cross-hair etc.), but no functionality has been established after testing.

SP only
playersWhenCurrentBullet
Checks which ammo slot the player has selected and activate trigger if it matches set value

As this condition only is believed to only work in single player, this effectively lets you check what ammo type the user is using as in single player missions you assign ammo to the player, so know what slot each shell is in.

Fields:

  • buttletNo: Can be a number between 0 and 3, determines what ammo slot the player should have selected in order for the trigger. Is a 0 based numbering system, so 0 is the first ammo slot (ammo slot 1), up to 3 which is ammo slot 4.
SP only
triggerStatus
Checks the status of another trigger and activates trigger if it matches a set value

Fields:

  • target: The trigger to check the status of
  • status: What status the trigger should be, either "enabled" or "disabled"
Both
unitDistanceBetween
Will activate the trigger if a unit is within a set distance of a set object

Fields:

  • object: The unit to check the distance from
  • target: The target to check the unit's distance from
  • value: The distance between the unit and the target (in metres)
  • var: An integer variable can be assigned here to override the value of the "value" field
  • math: Can be "2D", "3D", "notNear2D" or "notNear3D", determines how distance is calculated 2D is just concerned with 2D distance (distance between two objects on if drawn on a top-down map), whereas 3D takes height difference into consideration; notNear will activate trigger if players are not within the distance, instead of being within the specified distance.
  • object_type: The status of the unit to be considered by the condition
  • unit_type_ex: Unknown, likely more options for checking the status of units before activating the trigger
  • target_type: The status of the target to be considered by the condition
  • target_marking: Only works for Multiplayer A number between 0 and 31. Checks the marking of the target unit, units are marked with a number using the unitMark action. If multiple targets are selected only targets with the correct marking are considered by the trigger, e.g. if set to 5 the trigger will only activate if the unit is within the set distance of a target with a marking of 5, even if the unit is within range of another target with a different marking.
  • check_objects: can be "any" or "all", where there are multiple objects set decides if all objects must be within distance or just one
  • check_targets: can be "any" or "all", decide if the object must be within the specified distance of all targets or just one
  • compareCenters: Determines if the measurement is taken from the centre of the object and target or closest point
  • check_all_units: Functionality unknown
Both
unitFuelLess
Activates the trigger when the specified units remaining fuel is below a specified amount (possibly bugged / non-functional)

Fields:

  • object: The unit to check the fuel of
  • object_type: The status of the unit in order to be considered by the condition
  • fuelRelMin: A number accurate to two decimal places, specified the amount of remaining fuel, unit is unknown and condition may not be functioning correctly.
Both
unitAnyLess
Activates trigger if at least one unit from those specified does not match the given status

Fields:

  • object: The unit(s) to check
  • object_type: The status of the unit to be checked by the condition
Both
unitWhenControls
Activates trigger if the units control positions match a given value

Fields:

  • object: The unit to check
  • func: Can be "less", "more", "equal", "notEqual" "notLess", "notMore", determines how to compare the control position to the number specified.
  • value: A number accurate to 2 d.p, determines what the control setting should be checked against (e.g. for flaps 0 might be flaps fully up, 1 might be flaps fully down and 0.5 flaps halfway; these are made up and untested numbers, you will need to experiment).
  • property: The control to check.
Both
unitWhenCountMatches
Activates trigger when the number of units meeting the condition is equal to the number set

All units assigned under the object field of this condition are counted together, including units which have had their count increased. For example, if two units have been assigned and one has had its count increased to 5 then the trigger will consider the status of all 5 subunits and the other unit, for a total of 6. If the object_type is set to isAlive with the function less than 3 then the death of any four units will activate the trigger.

Fields:

  • object: The unit(s) to check, allows for multiple objects to be assigned, groups can also be assigned.
  • object_type: The criteria the units are evaluated against e.g. "isAlive" or "damaged"
  • unit_type_ex: Unknown, likely more options to check the unit's status.
  • object_marking_var: Allows and integer variable to be assigned, likely takes the value of the variable as a marking (set with the unitMark action), allowing the trigger to be activated depending on the number of units with certain marking.
  • func: Can be "less", "more", "equal", "notEqual" "notLess", "noteMore", determines how to compare the control position to the number specified.
  • value: An integer value for the number of units required to meet the condition.
  • var: An integer variable can be assigned here to override the value of the "value" field
Both
unitWhenEnemyNear
Will activate the trigger if the specified unit is within a set distance of an enemy

Fields:

  • object: The unit to check
  • object_type: The status of the unit in order to be considered by the condition
  • unit_type_ex: Unknown, likely more options to check the unit's status.
  • enemy_type: The status of the enemy unit in order to be considered by the condition
  • distance: the distance between the player and the enemy unit (in metres)
  • use_variable: Enables the use of a variable instead of the specified value.
  • distance_var: An integer variable can be assigned here to override the value of the "distance" field, if "use_variable" is ticked
  • check_objects: can be "any" or "all", decides if all specified units must be within distance or just one
Both
unitWhenInArea
Will activate the trigger if the specified unit is within the specified area

Fields:

  • object: The unit to check
  • target: The area to check if the unit is within
  • math: Can be "2D", "3D", "notNear2D" or "notNear3D", determines how the players position is calculated 2D is just concerned with if the player is within the 2D footprint of the area, regardless of height, whereas 3D takes height into consideration; notNear will activate trigger if player is not within the area, instead of being within the specified area.
  • object_type: The status of the unit to be considered by the condition
  • unit_type_ex: Unknown, likely more options to check the unit's status.
  • enemy_type: The status of the enemy unit to be considered by the condition
  • check_objects: can be "any" or "all", decide if all specified units must be within the area or just one
Both
unitWhenOnLZ
Checks if a unit is within the landing zone (unclear if / how LZs currently work)

It is currently unclear if this trigger works

Fields:

  • object: The units to check
  • target: The landing zone to check (landing zones are assigned with the "missionMarkAsLandingZone" action, for the condition select the area you assigned as a landing zone with this action)
  • object_type: the status of the unit to be considered by the condition
  • check_objects: can be "any" or "all", decide if all players must be within distance or just one
  • aterRepaired: Functionality unknown
Unknown
unitWhenPartHp
Checks the health of a part of a unit

Using this trigger requires knowing the names of different parts of a unit's damage model, finding this information is up to you.

Fields:

  • object: The units to check
  • func: Can be "less", "more", "equal", "notEqual" "notLess", "notMore", determines how to compare the part's health to the number specified
  • check_objects: Can be "any" or "all", decide if all players must be within distance or just one
  • check_parts: Can be "any", "all", "notAll", "notAny", if multiple damage model parts are listed determines which ones of them need to meet the criteria in order for the trigger to activate (e.g. if "any" is set then if any part meets the required HP then the trigger will activate)
  • value: A number accurate to 2 decimal places, the value the current health of the part should be compared to (0 is destroyed 1 is full health)
  • var: A real (decimal number) variable can be assigned here to override the value of the "value" field
  • planePart: You may type the name of the damage model part you wish to check for an aircraft unit
  • tankPart: You may type the name of the damage model part you wish to check for a tank unit
Both
unitWhenProperties
Activates the trigger if a unit's current properties match specified values

Fields:

  • object: The units to check
  • func: Can be "less", "more", "equal", "notEqual" "notLess", "noteMore", determines how to compare the part's property to the number specified
  • value: A number accurate to 2 decimal places, the value to compare the unit's current property to
  • property: Can be "speed", "throttle", or "heading", determines which of the unit's properties should be compared to the value.
  • check_filter: Can be "any", "all", "notAll", "notAny", functionality unknown.
  • object_type: the status of the unit in order to be considered by the condition
  • unit_type_ex: Unknown, likely more options to check the unit's status.
Both
unitWhenReachHeight
Checks if the specified unit has reached a specified altitude

Fields:

  • object: The unit to be checked
  • object_type: the status of the player in order to be considered by the condition
  • unit_type_ex: Unknown, likely more options to check the unit's status.
  • check_objects: can be "any" or "all", decides if all of the specified units must be above the height or just one
  • value: the altitude to reach (in metres)
  • comparison_func: can be "more" or "less", decides if trigger should activate if player is above or below set value
  • absolute_value: Determines whether absolute altitude (referenced to sea level) or altitude over terrain should be used
Both
unitWhenStatus
Checks the status of the specified unit

Fields:

  • object: The unit to check
  • object_type: the value the unit's current status should be compared to
  • unit_type_ex: Unknown, likely more options to check the unit's status.
  • check_objects: can be "any" or "all", decides if all the specified units must meet status or just one (it's best to set it to "any" if you want to use useForTriggerFiltered later in actions)
Both
unitCheckTag
Checks the tags of a specified unit

Each unit in the game has various tags assigned to it which describe it, such as what unit type it is (fighter, bomber, tank, ship, etc.) and what country it is. Working out what the tags are for a specific unit has is a fairly easy task and is done by just thinking about the unit, e.g. a spitfire will probably have the "type_fighter" and "country_britain" tags.

Fields:

  • target: The unit to check
  • useForTriggerFiltered: Will affect only those units that meet the Conditions. If you have multiple conditions and condition type for the trigger set to ALL and you want to also check the units' tag, this condition must come after the other conditions (below them) with useForTriggerFiltered checked. Also remember to enable useForTriggerFiltered for the actions of the trigger.
  • tags: Clicking this will give you the option to add in various checkboxes to check the units tag against. Should the unit's tags align with those selected then the trigger will activate. For example adding and unchecking the "type_bomber" tag will activate the trigger if the specified unit is not a bomber; likewise, if only the "type_medium_tank" and "country_ussr" boxes are added and ticked then the trigger will only activate if the specified unit is a Russian medium tank.
Both
unitWhenHit
Will activate the trigger if the specified unit is hit (shot) with the option of specifying which unit hit it

Fields:

  • target: The unit to check if it has been hit
  • offender: The unit which hit the specified unit (if "tank01" hit the units, but this was set to "tank02" the trigger should not activate, if "tank02" hit the unit the trigger would activate)
  • clearHandledEvents: Functionality unknown
  • setIntVar: Does not appear to currently be functional
  • addIntVar: Does not appear to currently be functional
Both
unitWhenKilled
Will activate the trigger if the specified unit is killed

Fields:

  • target: The unit to check if it has been killed
  • offender: The unit which killed the specified unit (if "tank01" hit the units, but this was set to "tank02" the trigger should not activate, if "tank02" killed the unit the trigger would activate)
  • clearHandledEvents: Functionality unknown
Both
unitsInLineOfSight
Checks if two units have line of sight with each other

Fields:

  • object: The unit to check
  • target: The unit to check if the first unit has line of sight with
  • check_objects: can be "any", "all", "notAny", "notAll", decides if all the specified units must have line of sight with the target or just one
  • check_targets: can be "any", "all", "notAny", "notAll", decides if the specified unit must have line of sight with all the targets or just one
  • Distance: Max distance between units for trigger to activate
Both
unitsInSearchLight
Checks if unit is caught in a search light

Fields:

  • object: The unit to check
  • target: The search light to check if the unit is in
Both
varCompareBool
Activates the trigger if the specified boolean variable matches the specified value

Fields:

  • var_value: The variable to compare
  • value: Whether the boolean variable should be true (ticked) or false (un-ticked)
  • comparison_func: Can be "equal" or "notEqual" determines whether the variable should equal the value or not equal the value.
Both
varCompareInt
Activates the trigger if the specified integer variable matches the specified value

Fields:

  • var_value: The variable to compare
  • value: The value to compare the variable to
  • var_value_other: An integer variable can be assigned here to override the value of the "value" field
  • value: The value to compare the variable to
  • comparison_func: Can be "less", "more", "equal", "notEqual", "notLess", "notMore", determines how the variable should compare the value in order to activate the trigger.
Both
varCompareReal
Activates the trigger if the specified real (decimal number) variable matches the specified value

Fields:

  • var_value: The variable to compare
  • value: The value to compare the variable to
  • var_value_other: A real variable can be assigned here to override the value of the "value" field
  • comparison_func: Can be "less", "more", "equal", "notEqual", "notLess", "notMore", determines how the variable should compare the value in order to activate the trigger.
Both
varCompareString
Activates the trigger if the specified string variable matches the specified value

Fields:

  • var_value: The variable to compare
  • value: The value to compare the variable to
  • var_value_other: A string variable can be assigned here to override the value of the "value" field
  • comparison_func: Can be "equal" or "notEqual" determines whether the variable should equal the value or not equal the value.
Both
playerShortcutPressed
Activates the trigger if player presses a specified control

Fields:

  • control: The control the player should press, you can find a reference of all controls IDs here
  • timer: How long the player needs to hold the control down for the trigger to activate (in seconds)
  • pressed: If checked the trigger will activate when the player presses the control, if unchecked the trigger will activate when the player is not pressing the key
  • checkUp: If checked, the trigger will be activated when the player releases the specified control. If unchecked, the trigger will be activated when the player presses control. It is unclear whether this option currently functions correctly.
  • gamepadControls: Exact functionality unknown, presumably relates to the use of a gamepad instead of mouse and keyboard.
  • team: Can be "A", "B", or "Both", determines which team's players should be considered by the condition
SP only
playerSeesUnit
Checks if player can see a specified unit

This appears to work like "unitsInLineOfSight", only requiring LOS between the player and the target unit, the player does not need to be looking at the unit.

Fields:

  • target: The unit to check if the player can see
  • target_type: The status of the target in order to be considered by the condition
  • check_targets: Can be "any" or "all", decides if player must be able to see all targets or just one
  • viewAngle: Functionality unknown
  • distance: The maximum distance between the player and the target in order for the trigger to activate. Unclear if this field is currently working
SP only
playerAxisValueReached
Checks if player has reached a certain value on a specified control axis

Fields:

  • axis: The control axis which is being checked
  • value: the value to compare the current axis value to
  • timer: How long the axis must have been at a value matching the requirement (in seconds)
  • absValue: Functionality unknown
  • gamepadControls: Exact functionality unknown, presumably relates to the use of a gamepad instead of mouse and keyboard.
  • team: Can be "A", "B", or "Both", determines which team's players should be considered by the condition
  • func: Can be "less", "more", "equal", "notEqual", "notLess", "notMore", determines how the axis value should compare the value in order to activate the trigger.
  • joyAngle: Exact functionality unknown, presumably relates to the angle of the player's joystick (for players using one).
  • joyDispersion: Exact functionality unknown, presumably relates to players using a joystick
  • joyMinRad: Exact functionality unknown, presumably relates to players using a joystick
SP only
destructibleInArea
Checks the number of objects destroyed within a specified area

Fields:

  • area: The area to check objects destroyed within
  • moreThan: the value to compare the number of destroyed objects to
  • func: Can be "less", "more", "equal", "notEqual", "notLess", "notMore", determines how the number of destroyed objects should compare the value in order to activate the trigger.
  • check_areas: Can be "any" or "all", decides if all specified areas must meet match number of targets destroyed or just one.
Unknown
airDropsNear
Checks if an airDrop is near a unit (unclear if / how air drops currently work)

Fields:

  • object: The unit to check for airdrops near
  • distance: The distance between the unit and an airdrop in order to activate a trigger
Unknown
areaWhenInArea
Checks if an area is within another area

Fields:

  • target: The area to check if it is within another area
  • object: The area to check if the first area is within
  • math: Can be "2D", "3D", "notNear2D" or "notNear3D", determines how the area's position is calculated 2D is just concerned with if the area is within the 2D footprint of the other area, regardless of height, whereas 3D takes height into consideration; notNear will activate trigger if the area is not within the area, instead of being within the specified area.
Both

List of all Actions

This is a list of all Actions and their known behaviour. Note: This list is user-provided, there could be missing actions or the described behaviour could be incorrect

Actions List
Action Description MP/SP Working
addAirfield
Adds a virtual airfield using the given areas

This trigger is used to make an airfield already present as part of the map a functioning airfield in the mission, use of this trigger is not needed for aircraft carriers and airfields made using the "dynaf_" object groups. Fields:

  • runwayStart: The area you want to be the beginning of the runway
  • runwayEnd: The area you want to be the end of the runway (can be placed in diagonal)
  • runwayWidth: The width of the runway
  • army: To what army this airfield should belong to
  • spawnPoint: The area where you want the planes to spawn. Note: Multiple can be added
  • visibleOnHud: If checked, the airfield icon will be shown to players
  • cable: Creates an arrestor cable, once added requires start and end fields be specified, multiple cables can be created.
    • start: An area is specified as the start of the cable
    • end: An area is specified as the end of the cable
Both Yes
addTextToUnit
Adds text on the given unit

Fields:

  • langID: The identifier of the text to add
  • fontSize: The text size
  • target: The target unit
Both Yes
airfieldSetIndication
Makes airfield flash green on map / radar

Fields:

  • target: Assign the area set as the start of the runway (if the airfield was created using the addAirfield action) or the object group/carrier unit here (if the airfield was made using a dynaf_ object group or AI aircraft carrier unit)
  • team: Which team the airfield should appear as flashing for "A", "B" or "Both" or "None"
  • set: If the airfield indication should be turned on or off by the trigger
Both Yes
airfieldSetVisibility
Changes the airfield's visibility on the map / radar

Fields:

  • target: Assign the area set as the start of the runway (if airfield was created using the addAirfield action) or the object group / carrier unit here (if airfield was made using a dynaf_ object group or AI aircraft carrier unit)
  • team: Which team the airfield should be visible / invisible to
Both Yes
airfieldGetModuleHP
Gets the HP of a part of a modular airfield and save it to a real (decimal number) variable.

Fields:

  • object: The airfield to check
  • module: The part of the airfield to get the HP of of
  • var: The variable to save the HP to
Both Yes
airfieldSetModuleHP
Sets the HP of a part of a modular airfield and save it to a real (decimal number) variable.

Fields:

  • object: The airfield to set the hp of
  • module: The part of the airfield to set the HP of
  • hp: A number accurate to 2 decimal places, what to set the HP of the part of the airfield to
  • hp_var: A real (decimal number) variable can be assigned here to override the value of the "hp" field
Both Yes
airfieldAddModuleHP
Adds a set number to the HP of a part of a modular airfield and save it to a real (decimal number) variable.

Fields:

  • object: The airfield to add to the hp of
  • module: The part of the airfield to add to the HP of
  • hp: A number accurate to 2 decimal places, what value to add to the HP of the part of the airfield
  • hp_var: A real (decimal number) variable can be assigned here to override the value of the "hp" field
Both Yes
airfieldSetProperties
Allows you to change some of settings for selected airfields

Fields:

  • object: Select the airfield to modify
  • repairMul: Sets the repair speed multiplier
  • repairMulVar: Sets the repair speed multiplier (Variable)
  • fuelMul: Sets the refuel speed multipler
  • fuelMulVar: Sets the refuel speed multipler (Variable)
  • reloadMul: Sets the reload speed multiplier
  • reloadMulVar: Sets the reload speed multiplier (variable)
  • enemySurrenderOnLanding: If enabled, makes all enemy planes bailout when they land on the airfield
  • airfield: Used to change the runway's HP
  • storage: Used to change the storage module's HP
  • parking: Used to change the parking area module's HP
  • dwelling: Unknown
Both Yes
awardAchievement
Functionality unknown

Presumably this action is designed to award achievements to the player, but in testing it has had effect.

Fields:

  • achievement: Allows the selection of a "localization string" from a very long list, not clear what this does functionally
Unknown Unknown
changeUnit This action does not appear to currently be functional Unknown Unknown
checkEntity
Functionality unknown

Fields:

  • entities: Allows the selection of an entity (presumably to check)
Unknown Unknown
comment
Adds comments to the trigger for documentation purposes

This action has no effect, it is coloured green in the editor and is used to simply add text comments to the trigger in the editor to document what it does.

Fields:

  • value: The comment to appear in the trigger
Both Yes
countUnitsKilledByTeam
Counts the number of units killed by the specified team and assigns the value to a variable

Fields:

  • team: The team to track kills from, can be both
  • var: You need to first create a variable of type Integer (usually with a base value of 0) and then provide it here
Both Yes
duplicateAreaAtPos
Counts the number of units killed by the specified team and assigns the value to a variable

Fields:

  • area: Selects the area which will be duplicated
  • target: Select the area or unit where that area will be placed
  • var_out: Area name (string variable)
  • posOffset: Position offset
  • turnOffset: Direction offset
Both Yes
beginRaceMode
Starts a plane or tank race with the given settings

Fields:

  • tankRace: If checked the race will be treated as a tank race, if unchecked the race will be treated as an air race.
  • groundFxType: For tank races lets you override the effect played at each waypoint
  • checkAreaPrefix: The prefix you chose for the waypoints (the area the player must pass through)
  • waypointsPrefix: If you want the waypoint effect to play at a different place to the waypoint's actual area you can create another set of areas with a different prefix, following the same rules as above, and specify that prefix here. Most of the time just set this to the same as the checkAreaPrefix field.
  • excludeRange: Make it possible to exclude selected waypoints from the race track, it is possible to add a few excluded groups of waypoints
  • doubleWaypoints: If the waypoint after the current one should be shown
  • waypointScale: Adjusts the size of the waypoint effect
  • respawnVerticalOffset: How high the player should respawn relative to the waypoint
  • respawnForwardOffset: How far forwards the player should respawn relative to the waypoint
  • statisticsScreenAfterFinish: If ticked once players have finished the race they will be forced into the statistics screen
  • reverse: If the waypoints should be followed in reverse order (highest number to lowest number), mostly used for triggers launching the race when the user selects reverse mode (used in conjunction with the missionNamePostfix condition)
  • isPathClosed: If the last waypoint of the race links backs up to first waypoint (forming a circuit) or if it does not (race starts at one point, and ends at another).
  • enableFromStart:
  • defaultTimeToDisableWeapon: How long after the beginning to disable player weapons (most races opt to use other actions such as the cannotShoot option in unitSetProperties to disable player weaponry).
  • racePathColor: Makes it possible to change the color of waypoints
Both Yes
bigQueryAddRecord Functionality unknown Unknown Unknown
getNearestAreaByMask
Used to store the name of areas that are the closest to the selected target

Fields:

  • target: Select the target
  • dist_min_value: Minimal distance from area to target
  • dist_max_value: Maximum distance from area to target
  • areas: Select through which areas should search this action
  • out_var: Var name to store result. Empty if nothing found
  • avoidExistingSpawns: Avoid areas that is near to existing spawns
  • spawns_distance_value: Minimal distance to existing spawns
  • avoid_team: Avoid spawns of this team
Both Yes
getOwnArea
Used to get the area name where the selected unit is located

Fields:

  • name: Select the target
  • template: For use with selected area groups with similar name (for example area_ to check for area_01, area_02 etc.)
  • out_var: Select in which variable you want to store the area name
Both Yes
getUnitArmy
Used to store the army number of selected unit

Notes:

  • 0 - neutral
  • 1 - A team
  • 2 - B team

Fields:

  • target: Select the target unit
  • target_type: Allows you to filter any unit in the given list according to the given status
  • var: Select the integer variable
Both Yes
getUnitsCount
Used to store the number of selected unit

Notes:

  • Although this action can get the exact amount of units in a squad, it is unable to count the number of areas in an area squad

Fields:

  • target: Select the target unit
  • target_type: Allows you to filter any unit in the given list according to the given status
  • useForTriggerFiltered: Will affect only those areas that meet the Conditions
  • var: Select the integer variable
Both Yes
getUnitsAttackCount
Functionality unknown

Fields:

  • target:
  • target_type: Allows you to filter any unit in the given list according to the given status
  • target_marking:
  • target_marking_var:
  • useForTriggerFiltered:
  • success:
  • total:
Unknown Unknown
hangarGetCountryNum Functionality unknown Unknown Unknown
makeSquad
Creates a squad from the given unit

Fields:

  • name: The name of the squad, optional
  • object: The unit to add to the squad, can be multiple
Both Unknown
makeSquadFromUnits
Makes it possible to create a squad of units after the mission is launched in game

Fields:

  • name: The name of the squad (can be a string variable)
  • object: The unit to add to the squad, can be multiple
  • object_type: Allows you to filter any unit in the given list according to the given status
  • object_var_name: Set the unit name

Note: All object_var options in actions require object_type set to isUnitVar to make them work

  • object_var_comp_op: Can be "equal", "notEqual", less or more, determines whether the variable should equal, not equal, higher or lower than the value
  • object_var_value: Set the number
  • useForTriggerFiltered: Will affect only those areas that meet the Conditions
Both Unknown
setHeadSquad
Used to modify squads created by using the makeSquadFromUnits action

Notes:

  • This kind of squad can be created only once during the mission (with the same name) and it cannot be updated
  • Works even on the player units

fields:'

  • removeOnKill: If checked, the squad will be removed once killed
  • followLowestSpeed: Units will move with speed of lowest unit
  • object_type: Allows you to filter any unit in the given list according to the given status
  • object_var_name: Set the unit name

Note: All object_var options in actions require object_type set to isUnitVar to make them work

  • object_var_comp_op: Can be "equal", "notEqual", less or more, determines whether the variable should equal, not equal, higher or lower than the value
  • object_var_value: Set the number
  • useForTriggerFiltered: Will affect only those areas that meet the Conditions
Both Unknown
missionAttempts
Allows you to modify how many attempts the player gets at a mission

Each time a player dies in a single-player mission they lose one attempt (by default you get 5, so 4 respawns); this trigger allows you to modify how many they have left. NOTE: The game works by counting deaths, so using "set" and "1" will set the player to 1 death (3 respawns remaining), not set the to 1 attempt left.

Fields:

  • action: The modification to do, where:
    • increase adds the given value to the existing amount of attempts
    • reduce subtracts the given value from the existing amount of attempts
    • restore gives back attempts based on the given value and the amount of attempts already lost by the player
    • set defines the base amount of attempts
  • value: An integer value to apply to the death count
SP Only Yes
missionBattleArea
Allows you to restrict the battle area to within a specified area

This action is used to either restrict the map to a certain area (make it smaller), or specify areas where players will be killed / spotted if they enter.

Notes:

  • Vertical height of the area is irrelevant, if the area is 10 km x 10 km x 2 km then the player can go as high as they like as long as they are within the 10 km x 10 km area.
  • Anywhere out of the battle area (air and ground) and not inside the killOutOfBattleArea will display the warning message "Return to the battlefield" constantly to the player until they go back inside the battle area
  • You can add multiple areas to set them as a whole at once (example: You select your 4 "north_restricted_area", "south_restricted_area", "east_restricted_area", "west_restricted_area" areas and check the killOutOfBattleArea field to combine their coverage)

Fields:

  • area: The area(s) you want the trigger to act on. Multiple areas can be selected whether they overlap or not. The inside of each selected area will be affected by the trigger, all other areas in the map will not be.
  • message: Does not appear to currently be functional
  • air: If ticked the battle area will be restricted for aircraft
  • ground: If ticked the battle area will be restricted for ground vehicles
  • mapArea: If checked, sets the given area(s) to be the area shown on the minimap of ground vehicles
  • airMapArea: If checked, sets the given area(s) to be the area shown on the minimap of air vehicles
  • killArea: If checked, then the areas become a "kill area", players in them for more than 25 seconds will be destroyed (only works for ground units). This one is regularly used for spawn-kill protection.
  • detectionArea: If checked, sets the area in which the player constantly appears on the enemy map (even in realistic). This one is regularly used for soft spawn-kill protection (usually larger than the killArea as it doesn't outright kill intruders)
  • killOutOfBattleArea: If checked, sets the restricted areas considered "out of the battle" where the player dies should they fail to go back to the battle area
  • newGridHorizontalCellCount: How many grid squares should be drawn between each edge of the battle area
  • gridCellCountVar: An integer variable can be assigned here to override the value of the "newGridHorizontalCellCount" field
  • team: To what teams should the given areas apply to, regularly used to specify killAreas and detectionAreas specific to each team
Both Yes
missionComplete
Sets the mission as complete (victory) for the selected team, ends the battle

Fields:

  • team: Which team completed the mission (the winning team)
  • timer: If a timer should be displayed until the mission ends and the player is returned to the hangar (if enabled it gives the option to continue playing after the mission has ended, if disabled that option is not available)
  • debriefingTimer: If the timer option is disabled, amount of time in seconds to wait before sending the players back to the hangar
  • showCompleteMessage: If checked, displays the mission complete message
  • playCompleteMusic: If checked, plays the mission complete music
  • startReplayCamera: Removes control from the player and puts them into cinematic camera position until they return to the hangar
  • afterComplete: Selects a trigger to run the actions of once the mission is completed (like the "triggerActivate" action)
Both Yes
missionCustomArtillery
Enables custom artillery (which can be set in Mission Settings/Versus params/customSuperArtillery)

Fields:

  • enabled: If custom artillery should be enabled
Unknown Unknown
missionDebriefing Forces the player back to the hangar, works only after mission has been completed SP Yes
missionDestroyArea
Removes all physical objects from the selected area

Fields:

  • area: The area(s) to use
  • target_type: What kind of targets in the given area(s) needs to be removed
  • useAreaForTriggerFiltered: Will affect only those areas that meet the Conditions
Both Yes
missionGetBalanceLevel
Gets the mission's balance level (1-25) and stores it in the given variable

Fields:

  • input_var: You first need to create a variable of type Integer, and then provide it here
Both Unknown
missionGetBombingAreaHP
Gets the remaining HP of a bombing area and assigns it to a variable

Fields:

  • target: The bombing area(s) to check
  • input_Var: The variable (type "real") to store the area's HP in
Both Yes
missionGetMaxPlayers
Gets the maximum amount of players allowed in the game (set before mission is launched) and assigns it to a variable

Fields:

  • input_Var: The integer variable to store the max number of players in
MP Only Yes
missionGetMaxRespawns
Gets the maximum number of respawns and assigns it to a variable (unclear if working currently)

Fields:

  • input_Var: The integer variable to store the max number of respawns in
SP Yes
missionHint This action does not appear to currently be functional Unknown Unknown
missionEnableMapAutoScale Enables auto scaling of the in-game map Unknown Unknown
missionFailed
Sets the mission as failed for the selected team, ends the battle

Fields:

  • team: Which team fails the mission (the failing team)
  • debriefingTimer: If the timer option is disabled, amount of time in seconds to wait before sending the players back to the hangar
  • timer: If a timer should be displayed until the mission ends and the player is returned to the hangar (if enabled it gives option to continue playing after the mission has ended, if disabled that option is not available)
Both Yes
missionKillEffects
Removes effects from the selected areas

Fields:

  • area: Select in which areas you want to remove all effects
  • effect: If checked, will remove all effects like smoke, fire or explosion
  • wreckage: If checked, will remove all killed (destroyed) units
  • bullets: If checked, will remove all fired shells and bullets
  • rockets: If checked, will remove all fired rockets and missiles
  • bombs: If checked, will remove all dropped bombs
  • torpedoes: If checked, will remove all launched torpedoes
Both Yes
missionForceMusic
Forces playing selected sound track

Fields:

  • evName: Write down which sound track do you want to play
SP Yes
missionForceUpdate
Functionality unknown

Fields:

  • target_type: Allows you to filter any unit in the given list according to the given status
  • dt: unknown
  • timeToUpdate: unknown
Unknown Unknown
missionDisableRadiochat
Disabled in-game radio messages (for example Cover me etc.)

Fields:

  • doDisable: If checked, will disable all radio messages
MP Yes
missionMakeTorpedoNet
Creates a torpedo net

Fields:

  • Object: Select the area for torpedo net
MP Yes
missionMarkAsCaptureZone
Creates capture zone in selected area

Notes:

  • Can be used in SP missions if you enable gt_mp_capture in mission options

Fields:

  • target: Choose area for your capture zone
  • iconIndex: Select letter for you capture zone (0 - A, 1 - B, 2 - C, 3 - D)
  • iconIndexVar: Select letter for you capture zone based on the integer variable value (has more available letters than the iconIndex)
  • zoneDefenders: Makes it so while defender units are active the zone can't be captured
  • army: Select which team will own selected capture zone (0 - Neutral, 1 - A, 2 - B)
  • capCaptureOnGround: If checked, will allow capturing the zone by staying on the ground (disabled by default)
  • playAirfieldSound: Toggle "airfield captured" and "zone captured" sound upon capturing the zone
  • canCaptureInAir: If checked, will allow air units to capture the zone
  • canCapturebyGm: If checked, will allow ground units to capture the zone
  • onlyPlayersCanCapture: If checked, will allow players only to capture the zone
  • zoneType: Select one of capture zone types (supremacy - the team which has more units in the zone will start capturing it, without tickets bleeding and with capture end effect)
  • silentMode: Remove any central screen messages and indication about capturing status and progress
  • auto_smoke: If checked, will automatically generate a smoke effect over the zone, it's painted in the owning team colour
  • useHUDMarkers: Shows the icon over the capture zone with the distance and letter (A, B, C etc.)
  • timeMultiplier: Changes the required time to capture the zone (multiplier * 20 = capture time for one player)
  • disableZone: Disables capture zone
  • airfield: Unknown
  • createRespawnBaseFromAirfield: Unknown
  • respawnBase: Creates respawn assigned to your capture zone (for example if team A captures it then it will be able to spawn there, the same happens when the other team will recapture it)
  • name_for_respawn_base: Select name for respawn bases
  • makeRespawnBaseAsDefault: Unknown
  • captureNoPenalty: If enabled, ticket bleeding will be disabled
  • markUnitPreset: Select if it's meant to be for tanks or ships (if for ships it will create buoys around it and will draw a circle around it for tanks)
  • markUnits: Select a capture zone marking unit (found in objectGroups) created beforehand here, for marking purposes (see here for details)
  • showBorderOnMap
  • tags: Select which unit types should be able to capture it
Both Yes
missionMarkAsLandingZone
Creates a landing zone (airfield)

Notes:

  • It's better to use missionMarkAsRespawnPoint to add airfields since you can make it modular there

Fields:

  • target: Select the area or object (dynaf_ from objectGroups)
  • visible: Unknown
  • spawnEffect: Makes it possible to spawn in selected area or object
  • radius:
  • army:
  • team:
  • canBeConquered:
  • conquerableOnce:
  • markInHudAnyway:
  • objectGroups:
Unknown Unknown
missionMarkAsWaypoint
Creates a circle (waypoint) in selected area

Fields:

  • target: Select area for your waypoint
  • visible: If checked, will show a circle
  • primary: If checked, will show first circle type, if unchecked will show second circle type
  • oriented: If checked, the circle will always face you
  • ignoreDifficulty: If checked will show circles in every game mode (even SB)
  • team: Select for which team circles should be visible
  • scale: Select the size of the circle

Notes:

  • Waypoint will not disappear when you touch it, you need another action do disable it (by unchecking visible option)
Both Yes
missionMarkUnitsForStrike This action does not appear to currently be functional SP No
missionMarkAsRespawnPoint
Creates spawn zones in selected areas

Fields:

  • target: Select area for your spawn zone
  • object_type: Allows you to filter any unit in the given list according to the given status
  • spawnArrangeTo: Will turn spawn icon and units to target, instead using axis
  • posRecalcDelay: If spawnArrangeTo is active, sets the delay for the icon's position recalculation
  • useForTriggerFiltered: Will affect only those areas that meet the Conditions
  • loc_name: Select name for created spawn zone
  • spawnEffect: Unknown
  • isStrictSpawn: Players will respawn on areas in the order in which they are listed in the squad
  • resetStrictSpawnIndex: Allow to reset spawn zones index for isStrictSpawn mode
  • isAirfield: Will make the respawn point an airfield spawn, so you can spawn an aircraft there
  • modular_airfield: Enable additional modules (cargo, live, parking) on airfield. required specified object group
  • separate_fuel_tim: Sets a time value for refuelling
  • isUnit: Makes it possible to assign the spawn position to the selected unit
  • forceCreate: Will create a spawn even if there is already a spawn on this point or unit
  • useExisting: Will use existing spawn if it already exists (with the same name)
  • isIndividual: Unknown
  • removeAreas: Unknown
  • replaceAreas: Unknown (Needs to be ON if you use useExisting)
  • canSpawnOnNeutral: Makes it possible to spawn units when it doesn't belong to any teams (team 0)
  • showOnMap: If checked, will show your spawn zones on the map
  • team: Select which team will be able to use spawn zones
  • awardByBodyHP: unknown
  • disableAfter: Removes spawn zones after the specified time (seconds)
  • spawnOffset: Sets an offset of how many metres from the spawn's centre the unit will spawn away from, allows making a few spawns in the same one area but with some shifting
  • spawnOffsetSpace: Sets the offset type (in object coordinates or world coordinates)
  • tags: Select which unit types will be able to use spawn zones
MP Yes
missionMarkAsRearmZone
Creates a rearm zone (only for players)

Fields:

  • area_name: Area in which you will be able to rearm the unit
  • army: Sets which team will be able to rearm their units
  • enabled: If checked, will enable created rearm zone
  • restoreWhenNoAmmoLeft: Rearms units that are out of ammo
  • hideMarkers: Unknown
  • tags: Set which unit types will be able to rearm in the rearm zone
Both Yes
missionMarkAsExitZone
Creates a zone where the player can safely quit (bailout)

Fields:

  • area_name: Area in which you will be able to quit
  • army: Sets which team will be able to quit in created area
  • enabled: If checked, will enable the exit zone
  • tags: Sets which unit types will be able to use the exit zone
MP Yes
missionSetCrewLock
Functionality unknown

Fields:

  • needLockCrew:
  • team:
  • enabled:
  • tags:
MP Yes
missionShowMapLine
Shows a single line on the map

Fields:

  • show: If checked, will make the line appear on the map
  • team: Select for which team the line will be visible
  • areaNameFrom: Select starting point for the line
  • areaNameTo: Select ending point for the line
  • areaFromSide: Select from which side will the line appear (starting point)
  • areaToSide: Select from which side will the line appear (ending point)
  • colorCode: Set the colour of created line
  • transparency: Line transparency, 0 - visible line, 100 - invisible line
  • scale: Set the size of created line
  • simplification: Set how much curved it will be
  • curve: If checked, will make it curved
  • arrow: If checked, will create an arrow instead of a line
  • clear: Makes all displayed lines disappear
Both Yes
missionShowMapIcon
Shows a single icon on the map

Fields:

  • show: If checked, will make the icon appear on the map
  • team: Select for which team the icon will be visible
  • iconName: Select which icon should be displayed (full list of icons, example of use: ui/gameuiskin#objective_capturezone_next_default)
  • areaName: Select in which area will the icon appear
  • colorCode: Set the colour of created icon
  • scale: Set the size of created icon
  • scaleWithMap: Unknown
  • opacity: Icon transparency (?)
Both Yes
missionCreatePickUps
Creates a small area where you can rearm your unit with an icon above it for ground units

Fields:

  • target: Area or unit in which it will be created
  • preset: Set the type of rearm zone
  • count: Unknown
  • count_var: Unknown
  • minDistanceFromBattleAreaEdge: Unknown
MP Yes
missionCreateRespawnBasesByTemplate
Creates spawn zones in selected areas using variables

Fields:

  • placeholder
MP Yes
missionPlayDialogue
Play a dialogue

Fields:

  • dialog: Select the dialogue
  • talker1:
  • talker2:
  • subtitles: If checked will add subtitles
  • team: Select which team will be able to hear it
Both Yes
missionSetBattleRoyaleArea
Sets an area for battle royale mode

Notes:

  • To make everything work properly you should enable/set these options:
  • battleAreaColorPreset:t="battleRoyale"
gt_ffa:b=yes
gt_last_man_standing:b=yes

Some other notes from the mission file (I'll leave it there until someone manage to figure out how to make a BR mission that works):

varSetInt{
value:i=6
var:t="br_area_div"
fromDescriptor:t="br_area_div"
}

(br_area_div * 2 - 1 = 11) - number of total stages (11 stages - 3 = 8) - so warning will be when 3(1 row * 3 col) or 4(2 row * 2 col) sectors left and artillery will be disabled when 2(1 row * 2 col) sectors left

varSetInt{
value:i=8
var:t="artillery_disable_stage"
fromDescriptor:t="artillery_disable_stage"
}

from 1 to br_area_div included from bottom left corner to up right corner (1,1) - bottom left (5,1) - bottom right (1,5) - up left (5,5) - up right

varSetString{
value:t="(1,1);(2,1);(3,1);(4,1);(5,1);(6,1);(1,2);(6,2);(1,3);(6,3);(1,4);(6,4);(1,5);(2,5);(5,5);(6,5);(1,6);(2,6);(3,6);(4,6);(5,6);(6,6);"
var:t="br_final_sector_exclude"
fromDescriptor:t="br_final_sector_exclude"
}

Fields:

  • areaDivIntVar: Integer variable value (remember to add @ before the variable name)
  • warningTimeIntVar: Integer variable value (remember to add @ before the variable name)
  • finalSectorExcludeStrVar: String variable value (remember to add @ before the variable name)
  • sideChangesExclude: String variable value (remember to add @ before the variable name)
  • reset:

Example:

  • An example from Gaijin's mission:
missionSetBattleRoyaleArea{
areaDivIntVar:t="@br_area_div"
warningTimeIntVar:t="@br_area_warning_time"
finalSectorExcludeStrVar:t="@br_final_sector_exclude"
sideChangeExclude:t="@br_side_change_exclude"
}
  • All of them are using values fromDescriptor
MP Yes
missionSetBombingArea
Add a bombing area in selected area

Fields:

  • target: Select area for the bombing area
  • army: Select to which team will it belong (0 - neutral, 1 - A, 2 - B)
  • use_army_variable: Select to which team will it belong by using an integer variable
  • var_army: Select the integer variable
  • hp: Set the HP amount for the bombing area (10,000 HP = one bomb with ~570 kg of explosive mass or 2 bombs with ~280 kg of explosive mass or 4 bombs with ~125 kg of explosive mass or 9 bombs with ~25 kg of explosive mass)
  • hpFireMult: Used with the firespeed option, prevents a situation when the base has only a few HP left, automatically destroys it after reaching certain % of damage, for example when set to 0.1 the option will activate itself when there is 10% of HP left
  • firespeed: Used with the hpFireMult option, sets for how much time it will take until the remaining HP will be depleted, 0.01 = 1s
  • use_variable: Used the enable the variable function, enabling it disables and overwrites the hp option
  • armorClass: Makes it possible to replace the default material used for the base's damage model, for example RHA_tank or tank_structural_steel
  • var_value: Used to assign the real variable which stores the HP value
  • airfield: Unknown
Both Yes
missionBombingAreaDamage
Inflict some damage to selected bombing area

Fields:

  • target: Select which bombing area should be damaged
  • damageHP: Set by how much it should be damaged
  • damageHP_var: Set by how much it should be damaged but by using a real variable
Both Yes
missionSetEndReason
Set the reason of ending the mission

Fields:

  • endReason: Select one of reasons for ending the mission
MP Yes
missionSetFade
Add fading in or fading out of screen to the mission

Fields:

  • mode: Select if you want to fade in or fade out
  • color: Set the colour
  • time: Set how long will it take to fade
Both Yes
missionSetFailText
Set the text after failing the mission

Fields:

  • value: Set the text
  • team: Select for which team it will be displayed
SP Yes
missionSetProperties
Change some basic mission's properties

Fields:

  • shouldShareTargets: Unknown
  • shouldRespawnLower: Unknown
  • ignoreGmObstaclesInMp: Unknown
  • useDVOinCutscene: Unknown
  • respawnAtBattleCenter: Unknown
  • respawnUnderAlt: Unknown
  • deathPenaltyMul: Set the multiplier of amount of tickets which will be removed after someone dies (by default it's set to 1, 1 death = 100 tickets)
  • deathPenaltyMulVar: Set the multiplier of amount of tickets which will be removed after someone dies using a real variable
  • scoreLimit: Set the amount of tickets for the mission
  • scoreLimitVar: Set the amount of tickets for the mission using integer variable
  • ctaCaptureZoneEqualPenaltyMult: Sets the multiplier of tickets drain when both teams have captured the same amount of zones (when each team have at least 1 zone captured, both team will lose tickets with this mul)
  • ctaCaptureZoneDiffPenaltyExp: When one team have on N more captured zones - enemy tickets will decrease faster. Mul calc as (if zones_num_t1 < zones_num_t2): (zones_num_t2 - zones_num_t1) ^ ctaCaptureZoneDiffPenaltyExp
Both Yes
missionSetTimeIndicator
Show a time indicator in the bottom left corner

Fields:

  • var: Integer variable used for showing the indicator
  • team: Select for which team it should be displayed
Both Yes
missionSetTimeSpeed
Changes the mission time speed

Fields:

  • speed: Set the time multiplier (1.0 - default, 9.99 - maximum)
  • realTimeTriggers: If checked, then triggers will use real time instead of mission time
Both Yes
missionSetTargetsIndicator
Shows icons with a number of remaining units in the bottom left corner

Fields:

  • target: Select which units will be displayed (their number)
  • target_type: Allows you to filter any unit in the given list according to the given status
  • var: Overwrite current settings and display a selected integer number instead
  • delta: Set a number that is added to the count of units, leave the value 0 if you want the true count (example: with delta set to 2 the selected "target" consisting of 4 units "alive" will be shown as 6)
  • icon: Select one if icons which will be shown next to the number
  • icon_army: Select the colour of the shown icon (red, blue)
  • set: If checked, will show the number and the icon
  • team: Select for which team it will be displayed
Both Yes
MissionStartCutscene
Starts an in-game cutscene

Fields:

  • placeholder
Both Yes
MissionStartGuiScene Unknown functionality SP Yes
MissionStopCutscene
Stops the cutscene started by using MissionStartCutscene action

Fields:

  • endFade: Select the time (start / stop)
Both Yes
missionStopSpeech Stops any ongoing dialogues SP Yes
missionTerraform
Used to modify the terrain shape on the high quality maps for the ground forces, works only in the center 2x2km or 4x4km area

Fields:

  • object: Selects the area or area_squad for terraforming
  • delta: Increase or lower height of the terraforming flat area relative to the area center and the landmesh at that point (meters)
  • deltaNoisePercent: The percentage delta calculation error to create a realistic view
  • smoothingAreaWidth: Width from the area border to the area center, along which terraformed area is embedded to landmesh (meters)
Both Yes
missionUnitShootAtLine
Shoots an artillery salvo with shells that are selected for the unit (anything from APCR to smoke). The only rockets that can be shot are 150 mm Wgr.41 Spr rockets from the 15 cm Pz.W.42.

Fields:

  • areaNameFrom: Starting point for shelling
  • areaNameTo: Ending point of shelling
  • shotCount: 1 or 2 salvoes
  • attackLineRange: Dispersion property
  • heighRange: Dispersion property
  • lateralOffset: Only available when shotCount is set to 2 (difference of salvo locations)
Both Yes
missionControlJIP
Enable or disable join in progress function

Fields:

  • enable: If checked, will enable JIP
MP Unknown
moAddMissionObjective
Adds a new objective (if it haven't been shown yet)

Fields:

  • target: Select objective
  • unit_or_area: Unknown
  • object_type: Unknown
  • object_var_comp_op: Can be "equal", "notEqual", less or more, determines whether the variable should equal, not equal, higher or lower than the value
  • object_var_name: Set the unit name

Note: All object_var options in actions require target_type set to isUnitVar to make them work

  • object_var_value: Set the number
  • input_var: Unknown
Both Yes
moSetObjectiveStatus
Change the status of selected objective

Fields:

  • target: Select objective
  • status: Select status (0 - ?, 1 - ?, 2 - completed, 3 - failed)
  • extendedEnding: Show objective text for task completing or failing message
  • team: Select which team will complete or fail it
  • unit_or_area: Unknown
  • object_type: Unknown
  • object_var_comp_op: Can be "equal", "notEqual", less or more, determines whether the variable should equal, not equal, higher or lower than the value
  • object_var_name: Set the unit name

Note: All object_var options in actions require target_type set to isUnitVar to make them work

  • object_var_value: Set the number
  • input_var: Unknown
Both Yes
moveRespawnBase
Lets you assign a respawn base to a movable object

Fields:

  • target: Select the object
  • loc_name: Set the respawn name
  • team: Select the team to which it should belong
  • isAirfield: Mark as airfield
Both Yes
objectGroupSetAirfield
Marks selected object as an airfield

Fields:

  • army: Set to which side should belong selected airfield
  • target: Select the object (should be an airfield)
Both Yes
playerControls
Enables or Disables selected control keys

Fields:

  • control: Set which control key should be enabled or disabled (You can find all of them here)
  • setStatus: Set the status (disable or enable)
  • team: Select which team should be affected
SP Yes
playerEmulateShortcut
Presses selected control key

Fields:

  • control: Select which control key should be pressed
  • holdTime
SP Yes
playerForceMoveToRespawnScreen
Forces all players to go back to the respawn screen

Fields:

  • target: Select which players you want to force to go back to the respawn screen
  • target_type: Allows you to filter any unit in the given list according to the given status
MP Yes
playerLockTarget
Locks selected target (it's only related to the UI, not missiles)

Fields:

  • target: Select which unit should be locked
SP Yes
playerOptions
Change some basic player's properties

Fields:

  • currentView: Unknown
  • currentMode: Unknown
  • currentMissile: Doesn't work
  • respawnHydras: Doesn't work
  • respawnHellfires: Doesn't work
  • respawnStingers: Doesn't work
  • respawnBullets: Doesn't work
  • aiGunnerEnabled: If unchecked will disable AI gunners
  • stateAIGun: Unknown
  • allowAutoTargeting: Unknown
  • tankVRCamera: Unknown
  • tankVRCameraGunnerId: Unknown
  • tankVRCameraOffset: Unknown
  • allowBailout: If unchecked won't allow the player to jump out of his airplane
  • team: Change the player's team
  • useForTriggerFiltered
SP Yes
playHint
Shows a message on screen

Notes:

  • You can use {var} like "We lost {var} tanks" to show the value of the integer variable given in the var_name field
  • It's possible to make the text smaller by putting it between <b> and </b>
  • It's possible to change the text colour by putting it between <color=#d1d1d1> and </color> (RGB color)
  • It's possible to add a space between text by using <br>
  • You can find a list of pre-existing localized hints here

Fields:

  • hintType: Select type of showed message (standard - on the center, tutorialHint - works like a normal hint, bottom - on the bottom)
  • name: Set the text which will be displayed (you assign it to text in localisation files (.csv), example - mission_hint_01 showing Fly to the A point or string variables by adding @ before text, example - @mission_hint_01 showing Drive to the A point)
  • var_name: (Only integer variables) {var} in the text will be replaced by the value of the integer variable given here
  • item: Show the control key (used in tutorials for pressing selected control keys)
  • action: Set the state or type of the message (show - show it on screen, hide - hide it, warning - change it's color to red)
  • shouldBlink: If checked, will make the message blink
  • shouldFadeOut: Unknown
  • isOverFade: Unknown
  • warningTime: Sets for how long will be displayed the message if you set it's action to warning
  • time: Sets for how long will be displayed the message
  • priority: Sets priority of the message (message with higher priority number (for example 5) will make the other one with lower (for example 1) disappear)
  • target: Unknown
  • target_type: Allows you to filter any unit in the given list according to the given status
  • object_var_name: Set the unit name

Note: All object_var options in actions require target_type set to isUnitVar to make them work

  • object_var_comp_op: Can be "equal", "notEqual", less or more, determines whether the variable should equal, not equal, higher or lower than the value
  • object_var_value: Set the number
  • useForTriggerFiltered: Will affect only those units that meet the Conditions
  • team: Select for which team it should be displayed
Both Yes
playerToggleHero This action does not appear to currently be functional SP No
playSound
Will play a selected sound

Note:

  • The full list of all sounds can be found here:

https://github.com/GaijinEntertainment/fmod_studio_warthunder_for_modders/tree/master/Assets

Fields:

  • name: Directory path of sound file that you want to play (full name as sfxPath/sfxName)
  • loop: If checked, will make the sound play again when it ends
  • start: If checked, will start playing the sound (unchecked will stop)
  • team: Select which team will be able to hear it
Both Yes
raceRangeEnable
Placeholder

Fields:

  • object: Select the unit
  • object_type: Allows you to filter any unit in the given list according to the given status
  • object_var_name: Set the unit name

Note: All object_var options in actions require object_type set to isUnitVar to make them work

  • object_var_comp_op: Can be "equal", "notEqual", less or more, determines whether the variable should equal, not equal, higher or lower than the value
  • object_var_value: Set the number
  • from: Starting area name (for example waypoint_01)
  • to: Ending area name (for example waypoint_07)
  • enable: Unknown
  • all: Unknown
  • addToSum: Unknown
  • useForTriggerFiltered: Will affect only those units that meet the Conditions
  • waypointScale: Unknown
  • waypointVerticalOffset: Unknown
Unknown Unknown
raceParamsModify
Unknown

Fields:

  • object: Select the unit
  • object_type: Allows you to filter any unit in the given list according to the given status
  • timeModify: Unknown
  • playerKickTime: Unknown
  • object_var_name: Set the unit name

Note: All object_var options in actions require object_type set to isUnitVar to make them work

  • object_var_comp_op: Can be "equal", "notEqual", less or more, determines whether the variable should equal, not equal, higher or lower than the value
  • useForTriggerFiltered: Unknown
Unknown Unknown
spawnOnAirfield
Spawn selected units on the airfield (on the ground)

Fields:

  • runwayName: Select the airfield object (objectGroups starting with dynaf_) or area
  • objects: Select which air units should be spawned
Unknown Yes
systemLog
Unknown functionality

Fields:

  • value: Unknown
  • logtype: Unknown
Unknown Unknown
systemStats
Unknown functionality

Fields:

  • value: Unknown
Unknown Unknown
systemCommand
Unknown functionality

Fields:

  • value: Unknown
Unknown Unknown
systemShakeCamera
Unknown functionality

Fields:

  • value: Unknown
Unknown Unknown
systemPlayRumble
Unknown functionality

Fields:

  • value: Unknown
Unknown Unknown
triggerActivate
Activates selected trigger

Fields:

  • target: Select the trigger
  • activate_type: Select if it should check or ignore conditions
  • check_trigger_status: If checked, the trigger won't be executed if it is disabled
  • after_activation: Select what should happen to the trigger when it completes its task (disable, enable, doNotChange)
Both Yes
triggerDisable
Disables selected triggers

Notes:

  • If the trigger to be disabled is currently being executed, the execution will also be stopped.

Fields:

  • target: Select the trigger
Both Yes
triggerEnable
Enables selected triggers

Fields:

  • target: Select the trigger
Both Yes
tutorialArtilleryShootAtPos
Orders the artillery to shoot at selected area

Notes:

  • Works only when your tank is equipped with the artillery module

Fields:

  • area: Select the area where you want to order the artillery to fire
SP Yes
tutorialArtilleryShowWarning
Placeholder

Fields:

  • placeholder
Unknown Unknown
tacticalMapForceZoom
Changes the zoom level of your map

Fields:

  • zoom: Changes the zoom level
SP Yes
tacticalMapSetIconProperty This action does not appear to currently be functional Unknown Unknown
unitBlinkPart
Shows selected part of the ground unit (can be used to show for example tank crew position)

Fields:

  • target: Select the ground unit
  • blink: If checked, will make selected part blink
  • part: Select one of parts which should be displayed
  • time: Set for how long it will be visible
  • freq: Set frequency of blinking
  • color: Set the color of showed part
SP Yes
unitDamage
Damage or destroy selected unit

In order to find names of parts you need to:

  • Open the Asset Viewer
  • In Filter tab which is placed in the left bottom corner type the name of vehicle that you are looking for, their names can be found in CDK Reference article
  • After typing the vehicle name look for the _collision model in Assets Tree, optionally it's possible to just add _collision to the vehicle name in Filter tab and only one result should appear in Assets Tree
  • Select the collision model
  • After the model appears select one of vehicle parts that you want to damage and click on it, its name should appear, if you want to check the name of a part that is in the vehicle you need to click a few time in the same place, as an example it should be named like this: gunner_dm or engine1_dm

Fields:

  • target: Select the unit
  • randomTargetsCount: If set to 1 will give the kill to the last person who managed to damage the target
  • partName: Select which part should be damaged
  • power: Set how much it should be damaged
  • fireAmmo: Set the target on fire
  • setOnFire: Sets a designated compartment on fire
  • setFlood: Creates a breach in a designated compartment, that compartment should be suitable for underwater breaches
  • explodeAmmo: Make all ammunition explode (often results in cooking off and its turret flying away)
  • doExplosion: Will make the selected unit explode
  • useForTriggerFiltered: Will affect only those units that meet the Conditions
  • delayForObjects: Set the random time delay in seconds (for example - 1, 5, so it will take 1 to 5 seconds to for example destroy the unit)
  • target_type: Allows you to filter any unit in the given list according to the given status
  • useEffect: If checked, will spawn additional smoke/fire effect
  • countEffects: Unknown
  • delay: Unknown
  • offset: Unknown
  • radiusOffset: Unknown
Both Yes
unitDestroyMissile
Unknown functionality

Fields:

  • target: Unknown
  • radius: Unknown
  • hellfire_chance: Unknown
  • stinger_chance: Unknown
  • hydra_chance: Unknown
  • timeBetweenRockets: Unknown
Unknown Unknown
unitDoBailout
Select which air units should bailout (doesn't spawn any effects and doesn't destroy the airplane)

Fields:

  • object: Select the air unit
Both Yes
UnitDropAmmo
Makes the unit drop all of its bombs, fire all rockets and set its ammunition amount to 0

Fields:

  • object: Select which unit should lose all of its ammunition
  • useForTriggerFiltered: Will affect only those units that meet the Conditions
  • triggerGround: Select which trigger group should the unit lose (primary, secondary, coaxial, machine gun, special, torpedoes)
Both Yes
unitFire
Unknown functionality (probably doesn't work)

Fields:

  • objects: Unknown
  • target: Unknown
  • fireType: Unknown
  • trigger: Unknown
  • ignoreFlare: Unknown
  • ignoreEnvCollision: Unknown
Unknown Unknown
unitForceRearmSpeed
Set the rearm speed multiplier for Arcade Battles midair reload mechanics

Fields:

  • target: Select which air units it should affect
  • rearmSpeed: Reload speed multiplier
Both Yes
unitGetDistanceToVar
Placeholder

Fields:

  • placeholder
Unknown Unknown
unitGetRandomNameFromSquad
Saves the name of a squad or specific unit from it in a string variable

Fields:

  • string_var: Select in which variable will be saved the name
  • squad: Select which squad you want to check
  • getSquadName: If checked, will save the squad name instead of unit name
  • object_type: Allows you to filter any unit in the given list according to the given status
  • check_objects: Select if you want to check all or only specific objects (it's best to set it to any)
  • useForTriggerFiltered: Will check only those units that meet the Conditions
Both Yes
unitLandOnAirfield
Orders the AI unit to land on the airfield or water

Fields:

  • runwayName: Select on which you want the AI to land
  • objects: Select which AI units you want to land
  • useForTriggerFiltered: Will affect only those units that meet the Conditions
  • onWater: Check it if you want the AI to land on water
  • rearmOnAirfield: If checked, will rearm the AI on the airfield
  • disappearAfterLanding: If checked, will make the AI disappear (hide, put to sleep)
Both Yes
unitLoadBehTree
Loads specific AI behaviour presets

Fields:

  • objects: Select what unit you want to change (it's AI behaviour preset)
  • loadtype: Select if you want to load only a single node (a single manoeuvre) or the entire tree (an entire preset)
  • name: Set the name of node or tree
  • playerAutopilot: If checked, will make the player's unit be controlled by the AI

Available trees (AI behaviour presets):

  • defaultCTABot
  • assaultBot
  • captureBot
  • assistCaptureBot
  • defenderBot
  • seekerBot
  • idleBot
  • rearmingBot
  • tankBot
  • shipBot
  • HLBCapture
  • missionFighter
  • missionBomber
  • missionAssault
  • diveBomber
  • missionTransport
  • missionKamikaze
  • missionFlight
  • missionRacer
  • missionHitThePoint
  • missionAssault_torpedo_all
  • missionAssaultT
  • cutsceneFighterVsFighter
  • cutsceneFighterVsBomber
  • cutsceneDiveBombTarget
  • testFighterVsFighter
  • testFighterVsFighterDM
  • missionTargetEliminator
  • collisionAvoidance
  • coopBot
  • coopBotAttempt
  • coopBomberAttempt
  • coopBomber
  • leftTurn
  • rightTurn
  • instructorBeh
  • commonBomber
  • commonFighter
  • testAI

Available nodes:

  • taxi_and_takeoff
  • doPanic
  • doFrontalPanic
  • unitAttackTarget
Both Yes
unitRespawn
Respawn units in selected area

Note:

  • If you are planning to use the unitSetProperties action that changes something in units that were respawned by using the unitRespawn then there should be a small delay between these action, it can be done by putting the wait action set to 1 between them. This issue can for example prevent the game from setting the speed to the desired value after the unit dies, it will be set to 0 after the spawn and the unitSetProperties action will not be able to change it without the delay and the AI unit will most likely crash the plane.

Fields:

  • object: Select units which you want to respawn
  • object_type: Allows you to filter any unit in the given list according to the given status
  • target: Select where you want to respawn selected units
  • delay: Set a delay (seconds) for the respawn
  • useForTriggerFiltered: Will affect only those areas that meet the Conditions
  • filterWhom: Select if you want useForTriggerFiltered to filter the target or object
  • offset: Set the offset of the respawn position
  • randomObjectsCount: Select how many units will respawn in random order
  • randomObjectsCountVar: Select using integer variable how many units will respawn in random order
  • isStealth: Set the unit visibility after respawn
  • randomSpawn: If checked, will respawn units in selected areas but in random order (for example, by default - spawnarea_01, spawnarea_02 etc. If checked, - spawnarea_01, spawnarea_07 etc.)
  • setObjectMarking: Assign a number (mark/marking) to the spawned units
  • setObjectMarkingVar: Assign a number (mark/marking) from selected integer variable to the spawned units
  • formation: Set the formation of spawned units
  • resetFormation: Reset formation of spawned units
  • shouldKeepFormation: Set false to correctly respawn an armada with a count higher than one, if you keep formation (default) - the aircraft can respawn on their leader
  • needStopOnRespawn: Unknown
Both Yes
unitRespawnAfterTime
Set the respawn time for the units

Fields:

  • object_name: Select units which you want to respawn
  • useForTriggerFiltered: Will affect only those areas that meet the Conditions
  • object_type: Allows you to filter any unit in the given list according to the given status
  • setObjectMarking: Assign a number (mark/marking) to the spawned units
  • setObjectMarkingVar: Assign a number (mark/marking) from selected integer variable to the spawned units
  • just_restore: Only repairs the vehicle
  • place_to_respawn: Sets the respawn area
  • time_to_respawn: Sets the time to respawn
  • cycle_respawn: Unknown
Both Yes
unitRestore
Rearms or repairs selected units

Fields:

  • target: Select which unit you want to repair or rearm
  • target_type: Allows you to filter any unit in the given list according to the given status
  • resurrectIfDead: Check if selected unit is dead and you want to repair or rearm it
  • fullRestore: Rearms and repairs selected unit
  • ammoRestore: Rearms selected unit
  • partRestore: Select if you want to repair specific parts only
  • planePart: Set which plane part you want to repair
  • tankPart: Set which tank/ship part you want to repair
  • power: Set by how much you want to repair selected parts
  • modificationRestore: Sets the modification to repair
  • modificationQuantityToRestore: Unknown
  • randomTargetsCount: Set the number of units which will be repaired in random order
  • delayForObjects: Set the random time delay in seconds (for example - 1, 5, so it will take 1 to 5 seconds to for example rearm the unit)
  • useForTriggerFiltered: Will affect only those units that meet the Conditions
Both Yes
unitPlayAnim
Makes the unit play one of its animations

Notes:

  • You can find animation names in the CDK Asset Viewer

Fields:

  • animName: Select which animation do you want to play
  • target: Select which unit you want to play selected animation
Both Yes
unitPlayEffect
Shows custom effects in or over selected units

Notes:

Fields:

  • target: Select in or over which unit custom effect will be shown
  • useForTriggerFiltered: Will affect only those units that meet the Conditions
  • effect_type: Select if you want to use a specific effect or generic effect
  • effect: Set what effect you want to show
  • offset: Set the effect offset
  • delayForObjects: Set the random time delay in seconds (for example - 1, 5, so it will take 1 to 5 seconds to for example show the effect)
  • show: If checked, will show the effect
  • attach: If checked, will attach the effect to selected unit (target)
  • scale: Set the size of selected effect
  • mustExist: If checked, will override in-game limit of active effects at the same time
Both Yes
unitPutToSleep
Makes the selected unit disappear

Notes:

  • This action doesn't kill the selected unit
  • Useful when you want to disable some units before the start of mission and then spawn them later

Fields:

  • target: Select which units you want to make disappear
  • useForTriggerFiltered: Will affect only those units that meet the Conditions
  • putToSleepType: Select if you want it to affect all units or airplanes only
  • delayForObjects: Set the random time delay in seconds (for example - 1, 5, so it will take 1 to 5 seconds to for example to make the unit disappear)
  • numToSleep: Set how many units you want to make disappear
  • numToSleepVar: Set by using an integer variable how many units you want make to disappear
  • order: Select in what order will selected units disappear (random, fromStart, fromEnd)
Both Yes
unitSpawnOnObjectGroup Unknown functionality Unknown Unknown
unitWakeUp
Makes the selected unit appear again after using unitPutToSleep on them

Fields:

  • target: Select which units you want to make appear again
  • delayForObjects: Set the random time delay in seconds (for example - 1, 5, so it will take 1 to 5 seconds to for example to make the unit appear again)
  • numToWakeUp: Set how many units you want to make appear again
  • varNameNumToWakeUp: Set by using an integer variable how many units you want to make appear again
  • order: Select in what order will selected units disappear (random, fromStart, fromEnd)
Both Yes
unitSetControls
Sets the control of an aircraft's gears, control surfaces, throttle and so, to anything between a minimum or maximum value

Fields:

  • controls: Select the controls type
  • value: Set the value (-1.0 - 1.0 - for the control surfaces, 0.0 - 1.1 - for the engine)
  • useForTriggerFiltered: Will affect only those units that meet the Conditions
  • force: Will force the unit to set selected controls (when in doubt check it)
Both Yes
unitSetIndication
Makes markings and map icons of selected units blink

Fields:

  • target: Select which unit's marking and map icon should blink
  • target_type: Allows you to filter any unit in the given list according to the given status
  • unit_type_ex: Select an additional status
  • object_var_name: Set the unit name

Note: All object_var options in actions require target_type set to isUnitVar to make them work

  • object_var_comp_op: Can be "equal", "notEqual", less or more, determines whether the variable should equal, not equal, higher or lower than the value
  • object_var_value: Set the number
  • set: Enable or disable marking and map icon blinking of selected units
  • delayForObjects: Set the random time delay in seconds (for example - 1, 5, so it will take 1 to 5 seconds to for example to turn off all markers for selected units)
  • useForTriggerFiltered: Will affect only those units that meet the Conditions
  • team: Select which team will be able to see blinking of indications, markers and icons of selected units
Both Yes
unitSetStealth
Turn off any indications, markers and icons over selected units

Notes:

  • If you set it to 0 then there's a chance that the AI won't be able to attack it

Fields:

  • target: Select the unit
  • set: If checked, will turn off indications, markers and icons for selected units
  • radius: Set the distance from which selected unit will be visible
  • delayForObjects: Set the random time delay in seconds (for example - 1, 5, so it will take 1 to 5 seconds to for example to turn off all markers for selected units)
  • useForTriggerFiltered: Will affect only those units that meet the Conditions
  • team: Select which team won't be able to see indications, markers and icons of selected units
Both Yes
unitSetCalmDetection
Disables or enables blinking of enemy unit marking icon when it's spotted

Fields:

  • target: Select which unit's properties you want to change
  • set: If checked, will disable blinking of enemy unit marking icon when it's spotted (when player looks at it and that unit appears on map)
  • useForTriggerFiltered: Will affect only those units that meet the Conditions
Both Yes
unitFollowWaypoints
Makes selected units follow their waypoints

Fields:

  • target: Select which units you want to follow their waypoints
  • followWaypoints: If checked, will order selected units to fly towards their waypoints
  • resetWaypoints: Resets all waypoints assigned to select units
  • randomTargetsCount: Unknown
  • useForTriggerFiltered: Will affect only those units that meet the Conditions
  • delayForObjects: Set the random time delay in seconds (for example - 1, 5, so it will take 1 to 5 seconds until the setting that you chose will start affecting selected units)
Both Yes
unitAttackTarget
Orders AI units attack selected targets

Fields:

  • object: Select the unit which you want to attack something
  • attack_type: Select the attack type
  • target: Select the target (unit that will be attacked)
  • useForTriggerFiltered: Will affect only those units that meet the Conditions
  • filterWhom: Select if you want useForTriggerFiltered to filter the target or object
  • delayForObjects: Set the random time delay in seconds (for example - 1, 5, so it will take 1 to 5 seconds to for example start attacking selected unit)
  • trackingTime: Set for how long it will be attacking the target
  • fireRandom: Attack random targets
  • targetTypeName: Select the target type
  • targetDistMax: Select the maximum distance between the object and target
  • randomObjectsCount: Select how many unit will be attacked but in random order
  • playerAttracted: If checked, the AI units will attack the player more often than other AI units
  • playerAttractedCount: The amount of AI units that is going to attack the player
  • playerAttractedEffRate: Accuracy of the AI units against the player
  • fightInArea: Makes the AI attack other units when it is only in selected area
  • fightAreaRadius:
  • fightAreaOuterRadius:
  • fireZone: Makes the AI attack units only in selected area
  • effShootingRateInZone: Multiplies the unit's base shooting rate by the given amount
  • accuracyInZone: Sets the accuracy of the attacking units against units in selected area
  • weaponType: Selects what weapon type will use the attacking unit
  • attackNumMax:
  • attackNumMin:
  • fireMode: Sets the fire mode (Auto, salvo or single)
  • attackMissionId: Sets the ID for the target, this can be used to override the target with that ID.
  • maxNumAttackersPerTarget: Sets how many objects will attack the same target
  • groupAttackMode: Makes the AI attack the target by flying one by one (every unit attacking separately), in wings or by the entire group
  • attackAltRange: Sets the altitude range when the AI units can attack
  • keepDeadUnitsInTargetList: Keeps destroyed units in the target list
  • anchorTarget: Makes the unit fly only nearby selected target
  • anchorArea: Makes the unit fly only nearby selected target
  • targetToAnchorDist: Sets the radius for anchorTarget and anchorArea options
  • targetToAnchorMeetDist:
  • resetObjectToFollow:
  • attackTimeMax: Maximum time for all attacks by action. If time end and attack still doesn't start - attack will never start
  • attackNumMax: Maximum attacks number for action
Both Yes
unitMoveTo
Orders AI units to move to selected area or unit

Notes:

  • It's best to set units that are close to each (5-30 metres) in one action, otherwise it can cause issues like ground units driving to some random points on the map instead of using the navmesh or splines

Fields:

  • object: Select the unit which you want to order to move
  • object_type: Allows you to filter any unit in the given list according to the given status
  • object_var_name: Set the unit name

Note: All object_var options in actions require object_type set to isUnitVar to make them work

  • object_var_comp_op: Can be "equal", "notEqual", less or more, determines whether the variable should equal, not equal, higher or lower than the value
  • object_var_value: Set the number
  • target: Select area or unit to which you want to order the object to move
  • target_type: Allows you to filter any unit in the given list according to the given status
  • move_type: Select the way how the selected object will move to selected target

Note: move - default move type, stand - orders the unit to stop, teleport - make the unit teleport to selected target, use_splines - orders the unit to use splines (blue lines with blue circles, usually roads), navmesh - orders the unit to move using navigation meshes (can be used only on maps for tanks)

  • trackingTime: Unknown
  • zzPeriod: Works only when you select zigzag_move in move_type (Probably doesn't work)
  • zzAmp: Works only when you select zigzag_move in move_type (Probably doesn't work)
  • waypointReachedDist:
  • recalculatePathDist:
  • useFormationCenter:
  • shipTurnRadius:
  • follow_target: If checked, will order the unit to follow selected target
  • fastClimb: If unchecked will make the unit climb at more steep angle
  • destTimeMode: Unknown
  • speed: Sets how fast you want to move the unit to selected target (km/h IAS, default is 300 km/h). This seems to bypass the unit's speed limits
  • tas: If checked, will make the unit keep TAS speed instead of IAS
  • afterburner: Forced afterburner enable
  • destTimeOnTarget: Works only when you select destTimeMode, Unknown
  • follow_radius: Works only when you select follow_target, sets the distance between object and target which it follow
  • follow_offset: Works only when you select follow_target, sets the offset between object and target which it follow
  • getToLOS:
  • delayForObjects:
  • useForTriggerFiltered: Will affect only those units that meet the Conditions
  • distributionRadius:
  • teleportHeightType: Select if you want to use absolute value (above sea level), target's value or relative value (above the ground) for teleport position
  • useUnitHeightType: If checked, will use the target height value for teleport position
  • teleportOffset:
  • shouldKeepFormation:
  • teleportHeightValue: Set the height at which you want the object teleport
  • lookat: Set the direction of the target (can be used only when you set teleport in move_type)
  • horizontalDirectionForTeleport:
  • velocity:
  • altRange: Set the altitude range (in metres) at which the object will fly to the target (so for example if the target is at sea level and first value is set to 1500 then the objects will fly at 1,500 m ALT)
Both Yes
unitMark
Gives a number to a selected unit

Notes:

  • You can use it in unitWhenStatus condition or any other action where you can select unit's status type and there's an isMarked option or anything related to that

Fields:

  • target: Select to which unit you want to give the number
  • useForTriggerFiltered: Will affect only those units that meet the Conditions
  • target_marking: Sets the number for selected unit
  • target_marking_var: Sets the number for selected unit using an integer variable
Both Yes
unitMarkForEvent
Used to setting up a streak event from AB

Notes:

  • Players needs to own all planes or helicopters that are assigned as a target to be able to use streak mechanics

Fields:

  • target: Select in which units player will respawn after activating AB streak mechanics
  • tag: Select the type of unit

Note: It's possible to use streaks for helicopters but it requires to change the tag manually in mission file, other available tags: helicopter_atgm, helicopter_rocket, helicopter_mguns

MP Yes
unitSetAttachedMenCount Unknown functionality Unknown Unknown
unitSetDrownProperties Unknown functionality Unknown Unknown
UnitSetProperties
Provides the option to set multiple types of properties for each unit class, as well as some basic functionalities taken from other actions.

Note:

  • If you are planning to use the unitSetProperties action that changes something in units that were respawned by using the unitRespawn then there should be a small delay between these action, it can be done by putting the wait action set to 1 between them. This issue can for example prevent the game from setting the speed to the desired value after the unit dies, it will be set to 0 after the spawn and the unitSetProperties action will not be able to change it without the delay and the AI unit will most likely crash the plane.

Fields:

Plane - Use it when you want to apply it also to the player's plane, for example the thrust_mult Control

  • ai_skill: Sets the skill level of the AI unit
  • thrust_mult: Multiplies the unit's thrust by the given amount. This does not allow the unit to bypass its speed limits
  • aggressive_wingman:
  • kamikaze:
  • silence:
  • task:
  • target:
  • targetDeviation: Used for editing the unit's accuracy. The defaultVal is the spread multiplier (0 = no spread), while the limits sets a variable accuracy/spread.
  • weaponTriggers: Makes the AI use specific weapon group, for example smoke grenades if set to gunner2 when the unit is a Pz III F, works for tanks and ships
  • object: Select which unit's properties you want to change
  • object_type: Allows you to filter any unit in the given list according to the given status
  • unit_type_ex: Select an additional an status
  • object_var_name: Set the unit name

Note: All object_var options in actions require object_type set to isUnitVar to make them work

  • object_var_comp_op: Can be "equal", "notEqual", less or more, determines whether the variable should equal, not equal, higher or lower than the value
  • object_var_value: Set the number
  • useForTriggerFiltered: Will affect only those units that meet the Conditions

Unit status params

  • army: Change to which team belongs selected unit
  • targetableByAi: If unchecked will all AI units will ignore and not attack selected unit
  • isImmortal: If checked, will make the selected unit not take any damage when it's hit. Note that units will still die from drowning, and planes will still die from ground collisions. The latter can be prevented by using the unitRestore action and its fullRestore parameter
  • invulnerabilityTimer: Sets for how long isImmortal will be enabled after respawn
  • useAuxWeapon: If checked, will make ground units use secondary weapons (like MGs)
  • destroyRIByCollision:
  • engineFire: Starts an engine fire in the aircraft, with no initial damage to the engine, and increasing engine damage consistent with an engine on fire. Fire behaves like in live matches, spreading to and damaging parts of the aircraft or igniting fuel tanks. Aircraft with multiple engines will see their #1 engine catch fire.
  • hideProb:
  • aimPriorities:
  • isFieldRepairEnabled: Makes it possible to turn off the repair functionality for tanks (doesn't affect repairing tracks)

Visibility params

  • isDelayed: Makes the selected unit disappear
  • delayForObjects: Sets the random time delay in seconds (for example - 1, 5, so it will take 1 to 5 seconds to for example to make the unit disappear)
  • stealthRadius: Sets the distance at which all markers over selected unit will not be visible
  • calmDetection: If checked, will disable blinking of enemy unit marking icon when it's spotted (when player looks at it and that unit appears on map)
  • delayedTimeAfterDeath: Sets the unit's post-death disappearance delay to the given amount of time, in seconds
  • forceVisibleOnMap: If checked, will make selected unit always visible on map, regardless of the game mode
  • forceLockTarget: If checked, the game will lock on (the same functionality as Lock Target controls from Common tab) selected target
  • detectableFromCameraPos: Unknown

Attack params

  • attack_type: Select attack type of selected unit
  • targetAir: If checked, the unit will only target air units
  • targetGnd: If checked, the unit will only target ground units
  • accuracy: Sets the base fire accuracy of the selected unit (only applies to AI units) and cannot be overrided
  • gndAccuracy: Overrides weapon accuracy to air enemies (multiplier to the accuracyAir parameter in weapon blk)
  • airAccuracy: Overrides weapon accuracy to ground enemies (multiplier to the accuracyGnd parameterin weapon blk)
  • maxDeviationAngle: Affect only visible spread - now guns will no shot to opposite direction on low accuracy (CDK explanation)
  • checkVisibilityTarget: Option required for visibilityTreeTransparencyThreshold to work properly
  • visibilityTreeTransparencyThreshold: Checks the tree transparency before shoots in the same way as for multipoint visibility (CDK explanation), so the AI will take into account obstacles, including trees and bushes, when searching for targets, it's best to activate checkVisibilityTarget and set this option to 0.01.
  • effShootingRate: Multiplies the unit's base shooting rate by the given amount, for ground units
  • airEffShootingRate: Multiplies the unit's base shooting rate by the given amount, for air units
  • effShootingRateByPlayer: Presumably multiplies the unit's base shooting rate by the amount of players in the battle
  • disableProjectileDamage: Disables the projectile damage
  • cannotShoot: If checked, will make the selected unit unable to shoot
  • aiGunnersEnabled: If checked, will enable AI gunners (if unchecked will disable)
  • aiGunnersCanTargetGroundUnits: If checked, will make the AI gunners attack ground units (if unchecked will disable this function)
  • aiGunnersDistance: Set the distance at which AI gunners can fire at targets from the enemy team
  • ignoresEnemy: If checked, will make the selected unit ignore all units from the enemy team
  • avoidFriendlyFire: If checked, the unit won't attempt to fire if there is a friendly in-between hostile vehicles
  • trackingTime:
  • adaptiveAccuracyTime: Used to gradually increase the accuracy based on time (makes it possible to set it so the first shell misses the target)
  • increasedCollisionDamage: When enabled the units makes much more damage when they hit physical objects (for example hitting a building at medium speed while driving the tank will break tracks or even damage the crew)

Movement params

  • move_type: Select the move type
  • speed: Sets the speed of the selected unit, note that this doesn't allow you to bypass the unit's maximum speed limit
  • throttle: Unknown functionality (doesn't change the throttle settings)
  • speedVar: Set the speed of selected unit using a real variable
  • lockSpeed: Use this option to override the speed set in waypoints (CDK explanation)
  • waypointReachedDist: Use it flag for override speed from waypoints
  • recalculateFollowPathDistance:
  • shipTurnRadius:
  • enableShipCollisionAvoidance: If checked, and the unit is a ship, the unit will actively try to avoid collisions
  • advancedCollisionAvoidance: If checked, the unit will (presumably) use a more advanced collision avoidance algorithm
  • moveSpeedKatShooting:
  • slowWhenEnemyNear: Set the speed multiplier when enemy unit is near the selected unit (object)
  • slowWhenEnemyNearDistance: Set the distance between the enemy unit and object to activate slowWhenEnemyNear
  • minDistBetween: Sets the minimal distance between two units (if set to 0 will disable any collision avoidance scripts)
  • ignoreCollisions: If checked, the unit will effectively be immaterial
  • ignoresObstaclesOverTime: After a short time of waiting the unit will be able to drive through other units for a few seconds
  • fighterToBomberSpecialAttack: Unknown (ramming?)
  • movable: (Presumably) Whether the unit can be moved through collisions
  • cannotMove: If checked, disables movement controls
  • allowOvertakeMode: Allows lagging units to catch up with the leader
  • followLeader: Follow a leader (for ship bots)
  • denyLeadership: Avoid becoming a leader, leave the group, if currently leader - disband the group (for ship bots)
  • keep_leader_dist: Keep the distance behind the leader
  • startFullSpeed: Set the speed to cruising speed for ships
  • movementTraceRI: Allows units to have collision with redinstances
  • maxAnglesForFire: Overrides the maxAnglesForFire parameter from the unit's BLK

Infantry params

  • usePosAsCover: Makes the infantry consider current position as a cover
  • dontUseCovers: Makes the infantry not use or look for any cover
  • followWaypoints: Makes the infantry follow its waypoints
  • alwaysRun: Makes the infantry always run when it's moving

AI params

  • playerEnabled: If applied to the player's vehicle the player will lose the control over the unit
  • aiEnabled: Makes it possible to disable the AI
  • enemyFireEvasion: Whether the AI will attempt to dodge enemy fire
  • enginesEnabled: Whether the unit's engines are enabled
  • takeoffPermission: Whether the AI unit is allowed to take-off
  • useSearchRadar: Makes the ground units use their radar (if they are equipped with it)

Aircraft params

  • isWinchable:
  • isWinchableAll:
  • fuel: Sets the fuel amount (in %)
  • stayOnGround:

AAA params

  • fireRandom:
  • targetChangeInterval: Time in seconds at which the AAA gun should switch targets
  • targetChangeProb: The probability of the AAA gun to switch targets
  • ignoreGunSpeedLimits: Allows to ignore weapon pointing speeds when aiming
  • ChainfireTime: Overrides the chainfireTime value from the unit's BLK
  • DelayAfterShoot: Overrides the DelayAfterShoot value from the unit's BLK

Visual params

  • hasExhaust:
  • disableFallUndergroundAtDestroyed:
  • persistentAerobaticsSmoke: If checked, and the unit is a plane, will permanently enable the plane's aerobatics smoke
  • persistentAerobaticsSmokeId: Sets the color
  • smokeScreenActive: Unknown

Collision params

  • registerCollisions: Used to register contacts for the selected unit (ball), for example to count goals in the football mode
Both Yes
unitSetFormation
Changes the formation of ground units

Fields:

  • object: Select ground units
  • useForTriggerFiltered: Will affect only those units that meet the Conditions
  • formation_type: Select the formation type (if you want to set it in rows or columns)
  • formation_div:
  • formation_step: Sets the distance between units
  • formation_noise: Randomize the distance between units
  • use_splines:
  • allUnitsInOneFormation
Both Yes
unitSetRoute
Assigns waypoints to units

Fields:

  • object: Select which unit you want to follow the set waypoint
  • object_type: Allows you to filter any unit in the given list according to the given status
  • object_var_name: Set the unit name

Note: All object_var options in actions require object_type set to isUnitVar to make them work

  • object_var_comp_op: Can be "equal", "notEqual", less or more, determines whether the variable should equal, not equal, higher or lower than the value
  • object_var_value: Set the number
  • input_var:
  • useForTriggerFiltered: Will affect only those units that meet the Conditions
  • route: Set the waypoint name

Note: It's possible to use only those that are created manually (and assigned in waypoints tab in unit properties window), not those that are being created for specific units, it's also possible to use string variables, but in this case it's required to add @ before string variable name

  • teleportToStart: Teleport units to 'pos' or start route from current units position
  • pos:
Both Yes
unitSetVar
Set a custom name and number to selected units

Notes:

  • This action doesn't require any variables created in Variables window but that also means they can't be used as targets or objects
  • Can be used in other conditions or actions, for example unitWhenStatus in which you can set object_type to isUnitVar
  • Basically works like an unitMark action but it's much better than it since it allows you not only to assign a number but also a custom name

Fields:

  • object: Select to which units you want to assign a name and number
  • useForTriggerFiltered: Will affect only those units that meet the Conditions
  • object_var_name: Select the custom name
  • object_var_value: Select the number
  • input_var: Use an existing value from other variable
Both Yes
unitSetZeroAmmo
Sets the ammunition amount of selected types to zero

Fields:

  • Target: Select the target to remove all ammunition from it
  • triggerGroup: Sets the weapon group
  • modificationReset: Removes the modification (?)
Both Yes
unitVulnerableFrom
Makes it so some units can be damaged by other specific units only and indestructible for everything else

Note: To make the action work it is needed to create an unitSetProperties action, then activate isImmortal option for those specific units and then add this action.

Fields:

  • target: Select which unit will be able to take any damage
  • target_type: Allows you to filter any unit in the given list according to the given status
  • unit_type_ex: Select an additional status
  • object_var_name: Set the unit name

Note: All object_var options in actions require target_type set to isUnitVar to make them work

  • object_var_comp_op: Can be "equal", "notEqual", less or more, determines whether the variable should equal, not equal, higher or lower than the value
  • object_var_value: Set the number
  • player: Select which unit will be able to damage the target (can be the AI unit)
  • player_type: Allows you to filter any unit in the given list according to the given status
  • player_var_name: Set the unit name

Note: All player_var options in actions require target_type set to isUnitVar to make them work

  • player_var_comp_op: Unknown
  • player_var_value: Unknown
Both Yes
unitsSetColumn
Allows to set trains and following it wagons or carriages

Fields:

  • object: Select which units you want to use to create a column (need to be a squad and even unit in it needs to be set in order in which they will follow each other, for example locomotive needs to be first and then after it carriages)
  • object_type: Allows you to filter any unit in the given list according to the given status
  • useForTriggerFiltered: Will affect only those areas that meet the Conditions
  • numKilledUnitsToStop: Sets how many units needs to be destroyed to destroy the column
  • killLeaderToStop: Stops all column units when the leader unit is dead (train)
  • stopKilledUnits: Used to continue the movement of the destroyed carriage
  • stopAfterCollision: Used to stop the train after impact with something
  • distanceBetweenUnits: Distance between units or carriage
Both Yes
groupFormation
Changes the formation of selected air units

Fields:

  • placeholder
Both Yes
varAddString
Adds a text or number to selected string value

Notes:

  • Example of how it will work:
  • If a selected var will have this as a value: spawnzone_ then after adding t2 as a value it will look like that: spawnzone_t2
  • If a selected var will have this as a value: spawnzone_ then after adding an integer variable set to 23 and digits set to 3 it will look like that: spawnzone_023

Fields:

  • var: Select which string variable you want to edit
  • value: input a text
  • input_var: Select which integer or string variable you want to input
  • digits: Select how many digit number you want to input if you selected an integer variable in input_var (so for example if you add a 5 number and set digits to 3 then it will show 005)
Both Yes
varGetIntFromString
Imports an integer value from the selected string variable to a selected integer variable

Notes:

  • Remember to set the value to the variable that starts with @ otherwise it won't work

Fields:

  • value: Select from which string variable you want to import an integer value
  • var: Select to which integer variable you want to export an integer value
Both Yes
varGetStringValue
Imports all text from the selected string value

Fields:

  • var: Select to which string variable you want to import a string value
  • from_var_name: Select from which string variable you want to import a string value (remember to not put @ before string variable name)
Both Yes
varModify
Modify existing real or integer variable

Fields:

  • var: Select which variable you want to modify
  • operator: Select what type of operation you want to do (inv - Inverse, mul - Multiplication, add - Addition, subAB - (var - value), subBA - (value - var), divAB - (var / value), divBA - (value / var), modAB, modBA - get the remainder from a division)
  • value: Select the value
  • use_variable: If checked, will use the value from other integer or real variable
  • var_value: Select a string or real variable
Both Yes
varSetBool
Sets a bool value

Notes:

  • Using this action will remove (overwrite) everything from selected var variable

Fields:

  • var: Select a bool variable to which you want to input a value
  • value: Select the type of value (checked - True, unchecked - False)
  • input_var: Select if you want to input the value from other variables
  • fromDescriptor: Makes the action load values from the server, can not be used by players
Both Yes
varSetInt
Sets an integer value

Notes:

  • Using this action will remove (overwrite) everything from selected var variable

Fields:

  • var: Select an integer variable to which you want to input a value
  • value: Set the number
  • source_var: Select if you want to input values from ongoing battle (overwrites current value)
  • input_var: Select if you want to input the value from other variables
  • fromDescriptor: Makes the action load values from the server, can not be used by players
Both Yes
varSetReal
Sets a real value

Notes:

  • Using this action will remove (overwrite) everything from selected var variable

Fields:

  • var: Select a real variable to which you want to input a value
  • value: Set the number
  • input_var: Select if you want to input the value from other variables
  • fromDescriptor: Makes the action load values from the server, can not be used by players
Both Yes
varSetString
Sets a string value

Notes:

  • Using this action will remove (overwrite) everything from selected var variable

Fields:

  • var: Select a string variable to which you want to input a value
  • value: Set the text
  • input_var: Select if you want to input the value from other variables
  • fromDescriptor: Makes the action load values from the server, can not be used by players
Both Yes
varSetRandomInt
Sets a random integer value

Notes:

  • Using this action will remove (overwrite) everything from selected var variable

Fields:

  • var: Select an integer variable to which you want to input a value
  • from: Sets the first value
  • var_from: Sets the first value using an integer variable
  • to_not_including: Sets the second value (it won't be included in getting the final number)
  • var_to_not_including: Sets the second value using an integer variable (it won't be included in getting the final number)
  • check_prev_value: Exclude value from variable
Both Yes
wait
Adds a delay between actions

Fields:

  • time: Sets how long will be the delay (seconds)
Both Yes
loop This action does not appear to currently be functional Unknown No
playerSetAmmo This action does not appear to currently be functional Unknown No
playerSetMouseAim
Makes player's camera view (mouse aim circle) point at selected unit or area

Fields:

  • lookat: Select at what unit or area should point player's camera view (mouse aim circle)
SP Yes
playerCenterMouseAim
Centers the mouse aim circle position
SP Yes
gameMPChangeScore
Change the amount of tickets in battle

Notes:

  • You can either add or remove tickets using this action
  • Can be used in SP missions if you enable gt_mp_tickets in mission options

Fields:

  • value: Set the value (percentage or normal amount depending what you choose in valueSystem)
  • valueSystem: Sets the type of inputted value (percentage or normal amount)
  • team: Select for which team you want to change the tickets amount
Both Yes
hudElementBlink
Makes selected HUD elements blink

Fields:

  • element: Select which HUD element you want to blink
  • time: Set for how long it will blink
  • blink: If checked, will make the selected element blink
SP Yes
hudElementEnlarge
Makes selected HUD elements larger

Fields:

  • element: Select which HUD element you want to make larger
  • enlarge: If checked, will make selected element larger
SP Yes
hudElementSelectionShade
Makes the screen darker except for selected HUD element

Fields:

  • targetName: Select which player unit it should affect
  • element: Select which HUD element you want to show without the shade
SP Yes
hudElementShow
Used to show tutorial hints

Fields:

  • targetName:
  • element: Select the tutorial hint name
  • show: Select if you want to show it
  • time: Set for how long it will be visible
SP Yes
hudWindowsHide This action does not appear to currently be functional Unknown Unknown
registrationKillCounter Unknown functionality Unknown Unknown
tacticalMapControl
Change the map settings

Fields:

  • follow_player: If checked, will make it so the player is always on the center of map
  • use_scale: If checked, will change the scale of displayed in-game map
  • scale: Sets the scale values
Both Yes
showSmartCutscene
Shows an in-game cutscene

Fields:

  • placeholder
Both Yes
showCutsceneInfo
Shows a cutscene text

Fields:

  • text: Set the text that will be displayed on the bottom of screen
  • duration: Set for how long it will be displayed
Both Yes
preloadRendInsts Unknown functionality Unknown Unknown
waitRendInst Unknown functionality Unknown Unknown
benchmarkAction Unknown functionality Unknown Unknown
hideAirDrops Unknown functionality Unknown Unknown
unitAddAreasForSearchLight
Makes the AI searchlight units search through selected areas

Fields:

  • object: Select searchlight units
  • area: Select through which areas the AI should search
  • searchThroughAreas: If checked will make the AI search through areas
  • timeToOneArea: Changes for how long it will search through one area
  • searchAngularSpeed: Changes how fast the AI is searching through the area
  • moveAngularSpeed: Unknown
  • rndSeed: Randomizes the way how AI units search through areas
Both Yes
unitFollowSearchLight
Unknown functionality

Fields:

  • target:
  • followOutsideArea:
Unknown Unknown

In-Depth Notes

This category is for in-depth explanations on how to use certain actions (when the explanation simply doesn't fit in a table)

Capture Zones

Drawing the capture zone circle

There are some specific things to do in order for a capture zone to work properly and for the capture zone circle to be drawn.

First, you need to create a capture zone unit, they are found in the "objectGroups" type, under the names of "capture_zone_circle", "capture_zone_circle_color" and "capture_zone_water". Select the one that is the most appropriate for your use case, and put it anywhere on the map (the position really doesn't matter, you can put it outside the battle area if needed).

(You can rename it to something meaningful like "cz_circle_01")

Then, in the "missionMarkAsCaptureZone" action, go to the "markUnit" parameter (all the way down, before the "showBorderOnMap" parameter and after the "markUnitPreset" parameter) and select the capture zone unit you just created.

Capture zone circles setup example.png

Don't forget to make sure the "markUnitPreset" parameter is set to the relevant type ("tank_decal" if your capture zone is on the ground for ground vehicles to capture, "ship_buoys" if your capture zone is on the water for ships to capture)

Matching the capture zone circle with the capture area

This section is if you're having an issue where the drawn capture circle does not match the actual capture area (so for example, you drive into the circle and it doesn't start capturing until you go much deeper, or it starts capturing before you even drive into the circle).

If you're using a cylinder area (this issue might also happen with other forms of areas), you need to have the "X" and "Z" scale axis match (see image).

Capture zone cylinder area scale x-z axis matching .png

To make them match, you can either:

  • (Easiest) Select the capture area, open the object properties panel if not already opened, and edit the "Radius" value (see image for reference), changing the radius will edit both the X and Z axis at the same time and make sure they're the same
  • Select the capture area and select the scale tool (the one circled on the image), then edit the X and Z values manually to be the same.



Creating a convoy

To create a convoy consisting of the AI units a few actions are required. As a start create a few AI units and put them in one line like in the picture below. Set their names to for example t1_convoy_01, t1_convoy_02 etc.

Convoy 01.PNG

Then by using the Create way Create way icon.PNG icon create a waypoints which will be used by those units. When it is done change the name to for example convoy_route_01. Do not forget to switch the speed of every waypoint point, it is the best to set it ~5 km/h lower than the maximum speed of slowest unit which will added to the squad.

Convoy 02.PNG

The last thing that needs to be done not related to adding actions is to add a string variable, it is required in order to make the convoy work with the action for assigning waypoints and properties. Every squad/convoy needs to have its own name.

Convoy 03.PNG

The last part is adding actions, five of them are needed to make it work correctly:

1. makeSquadFromUnits - All that needs to be done there is to add units by using the object tab, up to 12 units can be added there.
2. setHeadSquad - The same objects needs to be added there, options removeOnKill, followLowestSpeed and useCurrentFormation needs to be enabled.
3. unitSetRoute - An action used for assigning waypoints, the variable name needs to be added there as an Object (for example @convoy_squad), then the waypoint's name in the route tab.
4. unitSetFormation - Used for changing the formation, works the same way like option in Object Properties window after selecting some unit. The allUnitsInOneFormation option needs to be enabled.
5. unitSetProperties - The last action, used to give the AI some basic properties, destroyRIByCollision should be enabled to make the AI destroy trees and other objects, ignoreObstaclesAfterTime in case when the AI gets stuck, allowOvertakeMode in case when some units are lagging behind and movementTraceIR to make the AI register collisions.

If all options were applied correctly then the convoy should work without any issues.
Sample file with an AI convoy

The same method works also for the AI ship units, the only difference is what option needs to be enabled in the unitSetProperties action. Required options are the shipTurnRadius (can be set to for example 500), enableShipCollisionAvoidance and advancedCollisionAvoidance.