Difference between revisions of "Triggers"
(→List of all Actions: Added more actions but some of them still have incomplete description) |
m (→List of all Actions) |
||
(22 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{{DISPLAYTITLE:CDK Mission Editor: Triggers}} | {{DISPLAYTITLE:CDK Mission Editor: Triggers}} | ||
− | Triggers are an integral part of anything but the most basic of User Missions. This article | + | 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. |
__TOC__ | __TOC__ | ||
==Overview== | ==Overview== | ||
− | Triggers are a feature of the Mission Editor which allow for vastly more complicated missions to | + | 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 | + | 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== | ==Creating Triggers== | ||
Line 14: | Line 14: | ||
[[File:CDK Trigger_and_Objectives_Window.jpg|thumbnail|right|450px|The trigger window with a blank trigger (Trigger_01 selected), other triggers and categories are for demonstration purposes]] | [[File:CDK Trigger_and_Objectives_Window.jpg|thumbnail|right|450px|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 [[File: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. | + | 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 [[File: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 | + | 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. | '''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 | + | '''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. | '''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 | + | '''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. | '''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 | + | '''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: | Next is the trigger properties section this contains the following fields: | ||
Line 36: | Line 36: | ||
'''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. | '''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 | + | '''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 | + | '''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: | 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 | + | '''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 | + | '''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. | '''Delete''' This button will delete the selected trigger component. | ||
− | '''Copy''' This will copy the selected trigger component, multiple components can be | + | '''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. | '''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. | ||
Line 57: | Line 57: | ||
[[File:CDK Simple_Trigger_Demonstration.jpg|thumbnail|right|500px|The completed trigger and mission setup to Teleport a player]] | [[File:CDK Simple_Trigger_Demonstration.jpg|thumbnail|right|500px|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". | + | 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. | 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 | + | 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: | + | 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. | + | 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 | + | 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. | + | 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== | ==List of all Events== | ||
Line 93: | Line 93: | ||
'''Fields:''' | '''Fields:''' | ||
− | * time: The | + | * 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) | * 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) | ||
</div></div> | </div></div> | ||
Line 114: | Line 114: | ||
|- | |- | ||
| airfieldIsModuleHP | | airfieldIsModuleHP | ||
− | | | + | | <div class="mw-collapsible mw-collapsed" style="width:100%">Checks the amount of HP of selected airfield module<div class="mw-collapsible-content"> |
− | | | + | '''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 | | gameWhenDifficulty | ||
Line 131: | Line 138: | ||
* controlMode: what control mode (mouse-aim, instructor / simplified, realistic or full-real) the condition will check for | * 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. | + | * 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. |
</div></div> | </div></div> | ||
| SP only | | SP only | ||
Line 144: | Line 151: | ||
|- | |- | ||
| gameWhenManualGear | | gameWhenManualGear | ||
− | | Will activate trigger if the user currently has "Autocontrol of landing gear" turned off in game controls | + | | Will activate trigger if the user currently has "Autocontrol of landing gear" turned off in-game controls |
| SP only | | SP only | ||
|- | |- | ||
| gameWhenObjectivesNotDisplayed | | gameWhenObjectivesNotDisplayed | ||
− | | Will activate trigger if no mission objective is currently being displayed on screen | + | | Will activate trigger if no mission objective is currently being displayed on the screen |
| Unknown | | Unknown | ||
|- | |- | ||
Line 176: | Line 183: | ||
|- | |- | ||
| missionNamePostfix | | missionNamePostfix | ||
− | | | + | | <div class="mw-collapsible mw-collapsed" style="width:100%">Checks postfix of your mission<div class="mw-collapsible-content"> |
− | | | + | '''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 | | missionIsBombingAreaDestroyed | ||
Line 201: | Line 213: | ||
|- | |- | ||
| missionIsSuccess | | missionIsSuccess | ||
− | | Activates trigger if mission is completed successfully | + | | Activates trigger if the mission is completed successfully |
| Both | | Both | ||
|- | |- | ||
| missionIsZoneCaptured | | missionIsZoneCaptured | ||
| <div class="mw-collapsible mw-collapsed" style="width:100%">Will activate trigger if a specified zone is captured by a specified team<div class="mw-collapsible-content"> | | <div class="mw-collapsible mw-collapsed" style="width:100%">Will activate trigger if a specified zone is captured by a specified team<div class="mw-collapsible-content"> | ||
− | It may be possible to make this trigger work in single player | + | It may be possible to make this trigger work in single-player but requires certain mission settings to be set. |
'''Fields:''' | '''Fields:''' | ||
Line 217: | Line 229: | ||
| missionWhenAdditionalTime | | missionWhenAdditionalTime | ||
| <div class="mw-collapsible mw-collapsed" style="width:100%">Will activate trigger if a specified amount of time has passed since the successful completion of the mission<div class="mw-collapsible-content"> | | <div class="mw-collapsible mw-collapsed" style="width:100%">Will activate trigger if a specified amount of time has passed since the successful completion of the mission<div class="mw-collapsible-content"> | ||
− | When a ( | + | 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:''' | '''Fields:''' | ||
Line 248: | Line 260: | ||
|- | |- | ||
| objGroupWhenStatus | | objGroupWhenStatus | ||
− | | | + | | <div class="mw-collapsible mw-collapsed" style="width:100%">Checks if selected objectGroups object exists on the map or not (it's related to unitWakeUp and unitPutToSleep actions)<div class="mw-collapsible-content"> |
− | | | + | '''Fields:''' |
+ | * target: Select the objectGroups object | ||
+ | * obj_status: Checks if the object exists | ||
+ | * check_army: Unknown | ||
+ | | Both | ||
|- | |- | ||
| playersDistanceBetween | | playersDistanceBetween | ||
Line 258: | Line 274: | ||
* value: The distance between the player and the target | * 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 | * 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. | + | * 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 | + | * player: the status of the player to be considered by the condition |
− | * target_type: The status of the object | + | * target_type: The status of the object to be considered by the condition |
− | * check_players: can be "any" or "all", | + | * 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", | + | * 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 | * team: Can be "A", "B", or "Both", determines which team's players should be considered by the condition | ||
</div></div> | </div></div> | ||
Line 285: | Line 301: | ||
* target: the area to check if the player is within | * 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 footp[rint of the area, regardless of hight, whereas 3D takes height into consideration; notNear will activate trigger if player is not within the area, instead of being within the specified area. | * 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 footp[rint of the area, regardless of hight, 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 | + | * players: the status of the player to be considered by the condition |
− | * check_players: can be "any" or "all", | + | * 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 | * team: Can be "A", "B", or "Both", determines which team's players should be considered by the condition | ||
</div></div> | </div></div> | ||
Line 345: | Line 361: | ||
* manName: the maneuver to compare player's current behavior to | * manName: the maneuver to compare player's current behavior to | ||
</div></div> | </div></div> | ||
− | | | + | | SP only |
|- | |- | ||
| playersWhenOptions | | playersWhenOptions | ||
Line 351: | Line 367: | ||
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. | 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. | ||
</div></div> | </div></div> | ||
− | | | + | | SP only |
|- | |- | ||
| playersWhenOrientation | | playersWhenOrientation | ||
Line 361: | Line 377: | ||
* 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. | * 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. | ||
</div></div> | </div></div> | ||
− | | | + | | SP only |
|- | |- | ||
| playersWhenCameraState | | playersWhenCameraState | ||
Line 371: | Line 387: | ||
* 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. | * 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. | ||
</div></div> | </div></div> | ||
− | | | + | | SP only |
|- | |- | ||
| playersWhenCursorIn | | playersWhenCursorIn | ||
Line 377: | Line 393: | ||
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. | 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. | ||
</div></div> | </div></div> | ||
− | | | + | | SP only |
|- | |- | ||
| playersWhenCurrentBullet | | playersWhenCurrentBullet | ||
Line 387: | Line 403: | ||
* 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. | * 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. | ||
</div></div> | </div></div> | ||
− | | | + | | SP only |
|- | |- | ||
| triggerStatus | | triggerStatus | ||
Line 406: | Line 422: | ||
* value: The distance between the unit and the target | * value: The distance between the unit and the target | ||
* var: An integer variable can be assigned here to override the value of the "value" field | * 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. | + | * 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 | + | * 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 | * unit_type_ex: Unknown, likely more options for checking the status of units before activating the trigger | ||
− | * target_type: The status of the target | + | * 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 | + | * 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_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", | + | * 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 measurement is taken from | + | * compareCenters: Determines if the measurement is taken from the centre of the object and target or closest point |
* check_all_units: Functionality unknown | * check_all_units: Functionality unknown | ||
</div></div> | </div></div> | ||
Line 419: | Line 435: | ||
|- | |- | ||
| unitFuelLess | | unitFuelLess | ||
− | | <div class="mw-collapsible mw-collapsed" style="width:100%">Activates the trigger when the specified units remaining fuel is below a specified amount ( | + | | <div class="mw-collapsible mw-collapsed" style="width:100%">Activates the trigger when the specified units remaining fuel is below a specified amount (possibly bugged / non-functional)<div class="mw-collapsible-content"> |
'''Fields:''' | '''Fields:''' | ||
Line 426: | Line 442: | ||
* fuelRelMin: A number accurate to two decimal places, specified the amount of remaining fuel, unit is unknown and condition may not be functioning correctly. | * fuelRelMin: A number accurate to two decimal places, specified the amount of remaining fuel, unit is unknown and condition may not be functioning correctly. | ||
</div></div> | </div></div> | ||
− | | | + | | Both |
|- | |- | ||
| unitAnyLess | | unitAnyLess | ||
Line 442: | Line 458: | ||
* object: The unit to check | * object: The unit to check | ||
− | * func: Can be "less", "more", "equal", "notEqual" "notLess", " | + | * 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 | + | * 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. | * property: The control to check. | ||
</div></div> | </div></div> | ||
Line 450: | Line 466: | ||
| unitWhenCountMatches | | unitWhenCountMatches | ||
| <div class="mw-collapsible mw-collapsed" style="width:100%">Activates trigger when the number of units meeting the condition is equal to the number set<div class="mw-collapsible-content"> | | <div class="mw-collapsible mw-collapsed" style="width:100%">Activates trigger when the number of units meeting the condition is equal to the number set<div class="mw-collapsible-content"> | ||
− | 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 | + | 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:''' | '''Fields:''' | ||
Line 486: | Line 502: | ||
* target: The area to check if the unit is within | * 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 hight, whereas 3D takes height into consideration; notNear will activate trigger if player is not within the area, instead of being within the specified area. | * 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 hight, 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 | + | * 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. | * unit_type_ex: Unknown, likely more options to check the unit's status. | ||
− | * enemy_type: The status of the enemy unit | + | * enemy_type: The status of the enemy unit to be considered by the condition |
− | * check_objects: can be "any" or "all", | + | * check_objects: can be "any" or "all", decide if all specified units must be within the area or just one |
</div></div> | </div></div> | ||
| Both | | Both | ||
Line 501: | Line 517: | ||
* object: The units to check | * 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) | * 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 | + | * object_type: the status of the unit to be considered by the condition |
− | * check_objects: can be "any" or "all", | + | * check_objects: can be "any" or "all", decide if all players must be within distance or just one |
* aterRepaired: Functionality unknown | * aterRepaired: Functionality unknown | ||
</div></div> | </div></div> | ||
Line 514: | Line 530: | ||
* object: The units to check | * object: The units to check | ||
− | * func: Can be "less", "more", "equal", "notEqual" "notLess", " | + | * 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", | + | * 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) | * 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) | * 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) | ||
Line 522: | Line 538: | ||
* tankPart: You may type the name of the damage model part you wish to check for a tank unit | * tankPart: You may type the name of the damage model part you wish to check for a tank unit | ||
</div></div> | </div></div> | ||
− | | | + | | Both |
|- | |- | ||
| unitWhenProperties | | unitWhenProperties | ||
Line 559: | Line 575: | ||
* object_type: the value the unit's current status should be compared to | * 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. | * 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 | + | * check_objects: can be "any" or "all", decides if all the specified units must meet status or just one (it's the best to set it to "any" if you want to use '''useForTriggerFiltered''' later in actions) |
</div></div> | </div></div> | ||
| Both | | Both | ||
Line 570: | Line 586: | ||
* target: The unit to check | * target: The unit to check | ||
− | * useForTriggerFiltered: | + | * useForTriggerFiltered: Will affect only those units that meet the '''Conditions''' |
− | * tags: Clicking this will give you the option to add in various | + | * 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. |
</div></div> | </div></div> | ||
| Both | | Both | ||
Line 667: | Line 683: | ||
* control: The control the player should press, you can find a reference of all controls IDs [[CDK_Reference#Controls|here]] | * control: The control the player should press, you can find a reference of all controls IDs [[CDK_Reference#Controls|here]] | ||
− | * timer: How long the player needs to hold the control down | + | * 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 | * 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 trigger will be activated when player releases the specified control, | + | * 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 use of a gamepad instead of mouse and keyboard. | + | * 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 | * team: Can be "A", "B", or "Both", determines which team's players should be considered by the condition | ||
</div></div> | </div></div> | ||
Line 697: | Line 713: | ||
* timer: How long the axis must have been at a value matching the requirement (in seconds) | * timer: How long the axis must have been at a value matching the requirement (in seconds) | ||
* absValue: Functionality unknown | * absValue: Functionality unknown | ||
− | * gamepadControls: Exact functionality unknown, presumably relates to use of a gamepad instead of mouse and keyboard. | + | * 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 | * 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 the value in order to activate the trigger. | * func: Can be "less", "more", "equal", "notEqual", "notLess", "notMore", determines how the axis value should compare the the value in order to activate the trigger. | ||
− | * joyAngle: Exact functionality unknown, presumably relates to angle of the player's joystick (for players using one). | + | * 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 | * joyDispersion: Exact functionality unknown, presumably relates to players using a joystick | ||
* joyMinRad: Exact functionality unknown, presumably relates to players using a joystick | * joyMinRad: Exact functionality unknown, presumably relates to players using a joystick | ||
Line 781: | Line 797: | ||
'''Fields:''' | '''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) | + | * 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" | * team: Which team the airfield should appear as flashing for "A", "B" or "Both" or "None" | ||
− | * set: If the airfield indication should be | + | * set: If the airfield indication should be turned on or off by the trigger |
</div></div> | </div></div> | ||
|Both | |Both | ||
Line 790: | Line 806: | ||
|airfieldSetVisibility | |airfieldSetVisibility | ||
|<div class="mw-collapsible mw-collapsed" style="width:100%">This action does not appear to currently be functional<div class="mw-collapsible-content"> | |<div class="mw-collapsible mw-collapsed" style="width:100%">This action does not appear to currently be functional<div class="mw-collapsible-content"> | ||
− | Presumably this action should change the airfield's visibility on the map / radar, but it currently appears to do nothing. | + | Presumably, this action should change the airfield's visibility on the map/radar, but it currently appears to do nothing. |
'''Fields:''' | '''Fields:''' | ||
Line 929: | Line 945: | ||
* respawnVerticalOffset: How high the player should respawn relative to the waypoint | * respawnVerticalOffset: How high the player should respawn relative to the waypoint | ||
* respawnForwardOffset: How far forwards 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 | + | * 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 | + | * 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 | + | * 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). |
− | * defaultTimeToDisableWeapon: How long after | + | * 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). |
</div></div> | </div></div> | ||
|Both | |Both | ||
Line 976: | Line 992: | ||
* removeOnKill: If checked, the squad will be removed once killed | * removeOnKill: If checked, the squad will be removed once killed | ||
+ | * followLowestSpeed: Units will move with speed of lowest unit | ||
</div></div> | </div></div> | ||
|Both | |Both | ||
Line 982: | Line 999: | ||
| missionAttempts | | missionAttempts | ||
|<div class="mw-collapsible mw-collapsed" style="width:100%">Allows you to modify how many attempts the player gets at a mission<div class="mw-collapsible-content"> | |<div class="mw-collapsible mw-collapsed" style="width:100%">Allows you to modify how many attempts the player gets at a mission<div class="mw-collapsible-content"> | ||
− | Each time a player dies in a single player mission they loose 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. | + | Each time a player dies in a single-player mission they loose 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:''' | '''Fields:''' | ||
Line 1,002: | Line 1,019: | ||
'''Notes:''' | '''Notes:''' | ||
− | * Vertical hight of the area is irrelevant, if area is 10km x 10km x 2km then the player can go as high as they like as long as they are within the 10km x 10km area. | + | * Vertical hight of the area is irrelevant, if the area is 10km x 10km x 2km then the player can go as high as they like as long as they are within the 10km x 10km 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 | * 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) | * 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) | ||
Line 1,008: | Line 1,025: | ||
'''Fields:''' | '''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 | + | * 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 | * message: Does not appear to currently be functional | ||
* air: If ticked the battle area will be restricted for aircraft | * air: If ticked the battle area will be restricted for aircraft | ||
Line 1,029: | Line 1,046: | ||
* team: Which team completed the mission (the winning team) | * 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 option to continue playing after the mission has ended, if disabled that option is not available) | + | * 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) |
* debtiefingTimer: If the timer option is disabled, amount of time in seconds to wait before sending the players back to the hangar | * debtiefingTimer: 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 | * showCompleteMessage: If checked, displays the mission complete message | ||
* playCompleteMusic: If checked, plays the mission complete music | * playCompleteMusic: If checked, plays the mission complete music | ||
− | * startReplayCamera: Removes control from player and puts them into cinematic camera position until they return to hangar | + | * 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) | * afterComplete: Selects a trigger to run the actions of once the mission is completed (like the "triggerActivate" action) | ||
</div></div> | </div></div> | ||
Line 1,126: | Line 1,143: | ||
* area: Select in which areas you want to remove all effects | * area: Select in which areas you want to remove all effects | ||
− | * effect: If checked will remove all effects like smoke, fire or explosion | + | * effect: If checked, will remove all effects like smoke, fire or explosion |
− | * wreckage: If checked will remove all killed (destroyed) units | + | * wreckage: If checked, will remove all killed (destroyed) units |
− | * bullets: If checked will remove all fired shells and bullets | + | * bullets: If checked, will remove all fired shells and bullets |
− | * rockets: If checked will remove all fired rockets and missiles | + | * rockets: If checked, will remove all fired rockets and missiles |
− | * bombs: If checked will remove all dropped bombs | + | * bombs: If checked, will remove all dropped bombs |
− | * torpedoes: If checked will remove all launched torpedoes | + | * torpedoes: If checked, will remove all launched torpedoes |
</div></div> | </div></div> | ||
| Both | | Both | ||
Line 1,149: | Line 1,166: | ||
'''Fields:''' | '''Fields:''' | ||
− | * target_type: | + | * target_type: Allows you to filter any unit in the given list according to the given status |
* dt: unknown | * dt: unknown | ||
* timeToUpdate: unknown | * timeToUpdate: unknown | ||
Line 1,160: | Line 1,177: | ||
'''Fields:''' | '''Fields:''' | ||
− | * doDisable: If checked will disable all radio messages | + | * doDisable: If checked, will disable all radio messages |
</div></div> | </div></div> | ||
| MP | | MP | ||
Line 1,167: | Line 1,184: | ||
| missionMarkAsCaptureZone | | missionMarkAsCaptureZone | ||
|<div class="mw-collapsible mw-collapsed" style="width:100%">Creates capture zone in selected area<div class="mw-collapsible-content"> | |<div class="mw-collapsible mw-collapsed" style="width:100%">Creates capture zone in selected area<div class="mw-collapsible-content"> | ||
+ | '''Notes: | ||
+ | |||
+ | * Can be used in SP missions if you enable '''gt_mp_capture''' in mission options | ||
+ | |||
'''Fields:''' | '''Fields:''' | ||
Line 1,172: | Line 1,193: | ||
* iconIndex: Select letter for you capture zone (0 - '''A''', 1 - '''B''', '''2 - C''', 3 - '''D''') | * iconIndex: Select letter for you capture zone (0 - '''A''', 1 - '''B''', '''2 - C''', 3 - '''D''') | ||
* army: Select which team will own selected capture zone (0 - Neutral, 1 - A, 2 - B) | * 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) | + | * capCaptureOnGround: If checked, will allow capturing the zone by staying on the ground (disabled by default) |
* playArfieldSound: Toggle "airfield captured" and "zone captured" sound upon capturing the zone | * playArfieldSound: Toggle "airfield captured" and "zone captured" sound upon capturing the zone | ||
− | * canCaptureInAir: If checked will allow air units to capture the zone | + | * canCaptureInAir: If checked, will allow air units to capture the zone |
− | * canCapturebyGm: If checked will allow ground 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 | + | * onlyPlayersCanCapture: If checked, will allow players only to capture the zone |
− | * zoneType: Select one of capture zone types (supremacy - team which has more units in the zone will start capturing it, without tickets bleeding and with capture end effect) | + | * 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 | * 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 | + | * auto_smoke: If checked, will automatically generate a smoke effect over the zone, it's painted in the owning team colour |
− | * timeMultiplier: Changes the required time to capture the zone | + | * timeMultiplier: Changes the required time to capture the zone (multiplier * 20 = capture time for one player) |
* disableZone: Disables capture zone | * disableZone: Disables capture zone | ||
* airfield: Unknown | * airfield: Unknown | ||
Line 1,187: | Line 1,208: | ||
* name_for_respawn_base: Select name for respawn bases | * name_for_respawn_base: Select name for respawn bases | ||
* makeRespawnBaseAsDefault: Unknown | * makeRespawnBaseAsDefault: Unknown | ||
− | * captureNoPenalty: | + | * 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 | + | * 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: Units for marking preset. Put here decal (objgroup) for tank_decal and buoys squad for ship_buoys (CDK explanation) | ||
* tags: Select which unit types should be able to capture it | * tags: Select which unit types should be able to capture it | ||
</div></div> | </div></div> | ||
Line 1,195: | Line 1,217: | ||
|- | |- | ||
| missionMarkAsLandingZone | | missionMarkAsLandingZone | ||
− | |<div class="mw-collapsible mw-collapsed" style="width:100%"> | + | |<div class="mw-collapsible mw-collapsed" style="width:100%">Creates a landing zone (airfield)<div class="mw-collapsible-content"> |
+ | '''Notes:''' | ||
+ | * It's better to use '''missionMarkAsRespawnPoint''' to add airfields since you can make it modular there | ||
+ | |||
'''Fields:''' | '''Fields:''' | ||
− | * Unknown | + | * 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: | ||
</div></div> | </div></div> | ||
| Unknown | | Unknown | ||
Line 1,208: | Line 1,242: | ||
* target: Select area for your waypoint | * target: Select area for your waypoint | ||
− | * visible: If checked will show a circle | + | * visible: If checked, will show a circle |
− | * primary: If checked will show first circle type, if unchecked will show second circle type | + | * primary: If checked, will show first circle type, if unchecked will show second circle type |
− | * oriented: If checked the circle will always face you | + | * oriented: If checked, the circle will always face you |
− | * ignoreDifficulty: If checked will show circles in every | + | * ignoreDifficulty: If checked will show circles in every game mode (even SB) |
* team: Select for which team circles should be visible | * team: Select for which team circles should be visible | ||
− | * scale: Select the size of circle | + | * scale: Select the size of the circle |
'''Notes:''' | '''Notes:''' | ||
Line 1,222: | Line 1,256: | ||
|- | |- | ||
| missionMarkUnitsForStrike | | missionMarkUnitsForStrike | ||
− | | | + | | This action does not appear to currently be functional |
− | |||
− | |||
− | |||
− | |||
| Unknown | | Unknown | ||
| Unknown | | Unknown | ||
Line 1,235: | Line 1,265: | ||
* target: Select area for your spawn zone | * target: Select area for your spawn zone | ||
− | * object_type: | + | * 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 | * spawnArrangeTo: Will turn spawn icon and units to '''target''', instead using axis | ||
− | * posRecalcDelay: If spawnArrangeTo active | + | * posRecalcDelay: If spawnArrangeTo is active, sets the delay for the icon's position recalculation |
* useForTriggerFiltered: Will affect only those area that meet the '''Conditions''' | * useForTriggerFiltered: Will affect only those area that meet the '''Conditions''' | ||
* loc_name: Select name for created spawn zone | * loc_name: Select name for created spawn zone | ||
* spawnEffect: Unknown | * spawnEffect: Unknown | ||
− | * isStrictSpawn: Players will respawn on areas in order in which they are listed in squad | + | * 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 | * 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 | * isAirfield: Will make the respawn point an airfield spawn, so you can spawn an aircraft there | ||
− | * isUnit: Makes it possible to assign the spawn position to selected unit | + | * modular_airfield: Eneble additional modules (cargo, live, parking) on airfield. required specified object group |
+ | * separate_fuel_tim: Sets a time value for refueling | ||
+ | * 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 | * 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) | * useExisting: Will use existing spawn if it already exists (with the same name) | ||
Line 1,251: | Line 1,283: | ||
* replaceAreas: Unknown (Needs to be ON if you use useExisting) | * 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) | * 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 | + | * showOnMap: If checked, will show your spawn zones on the map |
* team: Select which team will be able to use spawn zones | * team: Select which team will be able to use spawn zones | ||
* awardByBodyHP: unknown | * awardByBodyHP: unknown | ||
− | * disableAfter: Removes spawn zones after specified time (seconds) | + | * disableAfter: Removes spawn zones after the specified time (seconds) |
− | * spawnOffset: Sets an offset of how many meters from the spawn's | + | * spawnOffset: Sets an offset of how many meters 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 | + | * spawnOffsetSpace: Sets the offset type (in object coordinates or world coordinates) |
* tags: Select which unit types will be able to use spawn zones | * tags: Select which unit types will be able to use spawn zones | ||
</div></div> | </div></div> | ||
Line 1,268: | Line 1,300: | ||
* area_name: Area in which you will be able to rearm the airplane | * area_name: Area in which you will be able to rearm the airplane | ||
* army: Sets which team will be able to rearm their units | * army: Sets which team will be able to rearm their units | ||
− | * enabled: If checked will enable created rearm zone | + | * enabled: If checked, will enable created rearm zone |
* restoreWhenNoAmmoLeft: Rearms units that are out of ammo | * restoreWhenNoAmmoLeft: Rearms units that are out of ammo | ||
* hideMarkers: Unknown | * hideMarkers: Unknown | ||
Line 1,282: | Line 1,314: | ||
* area_name: Area in which you will be able to quit | * area_name: Area in which you will be able to quit | ||
* army: Sets which team will be able to quit in created area | * army: Sets which team will be able to quit in created area | ||
− | * enabled: If checked will enable the exit zone | + | * enabled: If checked, will enable the exit zone |
* tags: Sets which unit types will be able to use the exit zone | * tags: Sets which unit types will be able to use the exit zone | ||
</div></div> | </div></div> | ||
Line 1,292: | Line 1,324: | ||
'''Fields:''' | '''Fields:''' | ||
− | * show: If checked will make the line appear on the map | + | * show: If checked, will make the line appear on the map |
* team: Select for which team the line will be visible | * team: Select for which team the line will be visible | ||
* areaNameFrom: Select starting point for the line | * areaNameFrom: Select starting point for the line | ||
Line 1,302: | Line 1,334: | ||
* scale: Set the size of created line | * scale: Set the size of created line | ||
* simplification: Set how much curved it will be | * simplification: Set how much curved it will be | ||
− | * curve: If checked will make it curved | + | * curve: If checked, will make it curved |
− | * arrow: If checked will create an arrow instead of a line | + | * arrow: If checked, will create an arrow instead of a line |
− | * clear: | + | * clear: Makes all displayed lines disappear |
</div></div> | </div></div> | ||
| Both | | Both | ||
Line 1,313: | Line 1,345: | ||
'''Fields:''' | '''Fields:''' | ||
− | * show: If checked will make the icon appear on the map | + | * show: If checked, will make the icon appear on the map |
* team: Select for which team the icon will be visible | * team: Select for which team the icon will be visible | ||
− | * iconName: Select which icon should be displayed ([ | + | * iconName: Select which icon should be displayed ([[CDK_Reference#Icons|full list of icons]], example of use: ui/gameuiskin#objective_capturezone_next_default) |
* areaName: Select in which area will the icon appear | * areaName: Select in which area will the icon appear | ||
* colorCode: Set the color of created icon | * colorCode: Set the color of created icon | ||
Line 1,339: | Line 1,371: | ||
|- | |- | ||
| missionCreateRespawnBasesByTemplate | | missionCreateRespawnBasesByTemplate | ||
− | |<div class="mw-collapsible mw-collapsed" style="width:100%"> | + | |<div class="mw-collapsible mw-collapsed" style="width:100%">Creates spawn zones in selected areas using variables<div class="mw-collapsible-content"> |
'''Fields:''' | '''Fields:''' | ||
Line 1,348: | Line 1,380: | ||
|- | |- | ||
| missionPlayDialogue | | missionPlayDialogue | ||
− | |<div class="mw-collapsible mw-collapsed" style="width:100%"> | + | |<div class="mw-collapsible mw-collapsed" style="width:100%">Play a dialogue<div class="mw-collapsible-content"> |
'''Fields:''' | '''Fields:''' | ||
− | * | + | * dialog: Select the dialog |
+ | * talker1: | ||
+ | * talker2: | ||
+ | * subtitles: If checked will add subtitles | ||
+ | * team: Select which team will be able to hear it | ||
</div></div> | </div></div> | ||
− | | | + | | Both |
− | | | + | | Yes |
|- | |- | ||
| missionSetBattleRoyaleArea | | missionSetBattleRoyaleArea | ||
− | |<div class="mw-collapsible mw-collapsed" style="width:100%"> | + | |<div class="mw-collapsible mw-collapsed" style="width:100%">Sets an area for battle royale mode<div class="mw-collapsible-content"> |
+ | '''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:''' | '''Fields:''' | ||
− | * | + | * areaDivIntVar: Integer variable value (rememeber to add '''@''' before the variable name) |
+ | * warningTimeIntVar: Integer variable value (rememeber to add '''@''' before the variable name) | ||
+ | * finalSectorExcludeStrVar: String variable value (rememeber to add '''@''' before the variable name) | ||
+ | * sideChangesExclude: String variable value (rememeber 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''' | ||
</div></div> | </div></div> | ||
| MP | | MP | ||
Line 1,373: | Line 1,455: | ||
* use_army_variable: Select to which team will it belong by using an integer variable | * use_army_variable: Select to which team will it belong by using an integer variable | ||
* var_army: Select the integer variable | * var_army: Select the integer variable | ||
− | * hp: Set the HP amount for the bombing area | + | * hp: Set the HP amount for the bombing area (10000 HP = ~570 kg of explosive mass) |
* hpFireMult: Unknown | * hpFireMult: Unknown | ||
* firespeed: Unknown | * firespeed: Unknown | ||
Line 1,424: | Line 1,506: | ||
|- | |- | ||
| missionSetProperties | | missionSetProperties | ||
− | |<div class="mw-collapsible mw-collapsed" style="width:100%"> | + | |<div class="mw-collapsible mw-collapsed" style="width:100%">Change some basic mission's properties<div class="mw-collapsible-content"> |
'''Fields:''' | '''Fields:''' | ||
Line 1,437: | Line 1,519: | ||
* scoreLimit: Set the amount of tickets for the mission | * scoreLimit: Set the amount of tickets for the mission | ||
* scoreLimitVar: Set the amount of tickets for the mission using integer variable | * scoreLimitVar: Set the amount of tickets for the mission using integer variable | ||
− | * ctaCaptureZoneEqualPenaltyMult: | + | * 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: | + | * 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 |
</div></div> | </div></div> | ||
| Both | | Both | ||
Line 1,458: | Line 1,540: | ||
* speed: Set the time multiplier (1.0 - default, 9.99 - maximum) | * speed: Set the time multiplier (1.0 - default, 9.99 - maximum) | ||
− | * realTimeTriggers: If checked then triggers will use real time instead of mission time | + | * realTimeTriggers: If checked, then triggers will use real time instead of mission time |
</div></div> | </div></div> | ||
| Both | | Both | ||
Line 1,473: | Line 1,555: | ||
* icon: Select one if icons which will be shown next to the number | * icon: Select one if icons which will be shown next to the number | ||
* icon_army: Select the color of the shown icon (red, blue) | * icon_army: Select the color of the shown icon (red, blue) | ||
− | * set: If checked will show the number and the icon | + | * set: If checked, will show the number and the icon |
* team: Select for which team it will be displayed | * team: Select for which team it will be displayed | ||
</div></div> | </div></div> | ||
Line 1,480: | Line 1,562: | ||
|- | |- | ||
| MissionStartCutscene | | MissionStartCutscene | ||
− | |<div class="mw-collapsible mw-collapsed" style="width:100%"> | + | |<div class="mw-collapsible mw-collapsed" style="width:100%">Starts an ingame cutscene<div class="mw-collapsible-content"> |
'''Fields:''' | '''Fields:''' | ||
* placeholder | * placeholder | ||
</div></div> | </div></div> | ||
− | | | + | | Both |
− | | | + | | Yes |
|- | |- | ||
| MissionStartGuiScene | | MissionStartGuiScene | ||
− | | | + | | Unknown functionality |
− | |||
− | |||
− | |||
− | |||
| Unknown | | Unknown | ||
| Unknown | | Unknown | ||
Line 1,503: | Line 1,581: | ||
* endFade: Select the time (start / stop) | * endFade: Select the time (start / stop) | ||
</div></div> | </div></div> | ||
− | | | + | | Both |
− | | | + | | Yes |
|- | |- | ||
| missionStopSpeech | | missionStopSpeech | ||
Line 1,515: | Line 1,593: | ||
'''Fields:''' | '''Fields:''' | ||
− | * enable: If checked will enable JIP | + | * enable: If checked, will enable JIP |
</div></div> | </div></div> | ||
− | | | + | | MP |
| Unknown | | Unknown | ||
|- | |- | ||
Line 1,527: | Line 1,605: | ||
* unit_or_area: Unknown | * unit_or_area: Unknown | ||
* object_type: Unknown | * object_type: Unknown | ||
− | * object_var_comp_op: | + | * 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: | + | * object_var_name: Set the unit name |
− | * object_var_value: | + | ''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 | * input_var: Unknown | ||
</div></div> | </div></div> | ||
Line 1,545: | Line 1,624: | ||
* unit_or_area: Unknown | * unit_or_area: Unknown | ||
* object_type: Unknown | * object_type: Unknown | ||
− | * object_var_comp_op: | + | * 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: | + | * object_var_name: Set the unit name |
− | * object_var_value: | + | ''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 | * input_var: Unknown | ||
</div></div> | </div></div> | ||
Line 1,584: | Line 1,664: | ||
|- | |- | ||
| playerForceMoveToRespawnScreen | | playerForceMoveToRespawnScreen | ||
− | |<div class="mw-collapsible mw-collapsed" style="width:100%"> | + | |<div class="mw-collapsible mw-collapsed" style="width:100%">Forces all players to go back to the respawn screen<div class="mw-collapsible-content"> |
'''Fields:''' | '''Fields:''' | ||
− | * target: | + | * target: Select which players you want to force to go back to the respawn screen |
− | * target_type: | + | * target_type: Allows you to filter any unit in the given list according to the given status |
</div></div> | </div></div> | ||
− | | | + | | MP |
− | | | + | | Yes |
|- | |- | ||
| playerLockTarget | | playerLockTarget | ||
Line 1,603: | Line 1,683: | ||
|- | |- | ||
| playerOptions | | playerOptions | ||
− | |<div class="mw-collapsible mw-collapsed" style="width:100%"> | + | |<div class="mw-collapsible mw-collapsed" style="width:100%">Change some basic player's properties<div class="mw-collapsible-content"> |
'''Fields:''' | '''Fields:''' | ||
Line 1,620: | Line 1,700: | ||
* tankVRCameraOffset: Unknown | * tankVRCameraOffset: Unknown | ||
* allowBailout: If unchecked won't allow the player to jump out of his airplane | * allowBailout: If unchecked won't allow the player to jump out of his airplane | ||
− | * team: | + | * team: Change the player's team |
</div></div> | </div></div> | ||
− | | | + | | SP |
| Yes | | Yes | ||
|- | |- | ||
| playHint | | playHint | ||
|<div class="mw-collapsible mw-collapsed" style="width:100%">Shows a message on screen<div class="mw-collapsible-content"> | |<div class="mw-collapsible mw-collapsed" style="width:100%">Shows a message on screen<div class="mw-collapsible-content"> | ||
+ | '''Notes:''' | ||
+ | * You can write ''Team B is capturing '''{var}''''' to show the text from the variable | ||
+ | * It's possible to make the text smaller by putting it between <code><nowiki><b> and </b></nowiki></code> | ||
+ | * It's possible to change the text color by putting it between <code><nowiki><color=#d1d1d1> and </color> (RGB color)</nowiki></code> | ||
+ | * It's possible to add a space between text by using <code><nowiki><br></nowiki></code> | ||
'''Fields:''' | '''Fields:''' | ||
− | * hintType: Select type of showed message ('''standard''' - on the center, '''tutorialHint''' - | + | * 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 [[CSV files for missions|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'') | * name: Set the text which will be displayed (you assign it to text in [[CSV files for missions|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: Use string variables to show the text | * var_name: Use string variables to show the text | ||
* item: Show the control key (used in tutorials for pressing selected control keys) | * 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) | * 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 | + | * shouldBlink: If checked, will make the message blink |
* shouldFadeOut: Unknown | * shouldFadeOut: Unknown | ||
* isOverFade: Unknown | * isOverFade: Unknown | ||
* warningTime: Sets for how long will be displayed the message if you set it's '''action''' to '''warning''' | * 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 | * time: Sets for how long will be displayed the message | ||
− | * priority: Sets priority of the message (message with | + | * 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: Unknown | ||
− | * target_type: | + | * target_type: Allows you to filter any unit in the given list according to the given status |
− | * object_var_name: | + | * object_var_name: Set the unit name |
− | * object_var_comp_op: | + | ''Note: All '''object_var''' options in actions require '''target_type''' set to '''isUnitVar''' to make them work'' |
− | * object_var_value: | + | * 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''' | * useForTriggerFiltered: Will affect only those units that meet the '''Conditions''' | ||
* team: Select for which team it should be displayed | * team: Select for which team it should be displayed | ||
Line 1,660: | Line 1,746: | ||
'''Fields:''' | '''Fields:''' | ||
− | * name: Directory path of sound file that you want to play | + | * 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 | + | * loop: If checked, will make the sound play again when it ends |
− | * start: If checked will start playing the sound (unchecked will stop) | + | * start: If checked, will start playing the sound (unchecked will stop) |
* team: Select which team will be able to hear it | * team: Select which team will be able to hear it | ||
</div></div> | </div></div> | ||
Line 1,673: | Line 1,759: | ||
* object: Select the unit | * object: Select the unit | ||
− | * object_type: | + | * object_type: Allows you to filter any unit in the given list according to the given status |
− | * object_var_name: | + | * object_var_name: Set the unit name |
− | * object_var_comp_op: | + | ''Note: All '''object_var''' options in actions require '''object_type''' set to '''isUnitVar''' to make them work'' |
− | * object_var_value: | + | * 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) | * from: Starting area name (for example waypoint_01) | ||
* to: Ending area name (for example waypoint_07) | * to: Ending area name (for example waypoint_07) | ||
Line 1,773: | Line 1,860: | ||
|- | |- | ||
| tutorialArtilleryShootAtPos | | tutorialArtilleryShootAtPos | ||
− | |<div class="mw-collapsible mw-collapsed" style="width:100%"> | + | |<div class="mw-collapsible mw-collapsed" style="width:100%">Orders the artillery to shoot at selected area<div class="mw-collapsible-content"> |
+ | '''Notes:''' | ||
+ | * Works only when your tank is equipped with the artillery module | ||
+ | |||
'''Fields:''' | '''Fields:''' | ||
− | * | + | * area: Select the area where you want to order the artillery to fire |
</div></div> | </div></div> | ||
− | | | + | | SP |
− | | | + | | Yes |
|- | |- | ||
| tutorialArtilleryShowWarning | | tutorialArtilleryShowWarning | ||
Line 1,791: | Line 1,881: | ||
|- | |- | ||
| tacticalMapForceZoom | | tacticalMapForceZoom | ||
− | |<div class="mw-collapsible mw-collapsed" style="width:100%"> | + | |<div class="mw-collapsible mw-collapsed" style="width:100%">Changes the zoom level of your map<div class="mw-collapsible-content"> |
'''Fields:''' | '''Fields:''' | ||
− | * | + | * zoom: Changes the zoom level |
</div></div> | </div></div> | ||
− | | | + | | SP |
− | | | + | | Yes |
|- | |- | ||
| tacticalMapSetIconProperty | | tacticalMapSetIconProperty | ||
− | | | + | | This action does not appear to currently be functional |
− | |||
− | |||
− | |||
− | |||
| Unknown | | Unknown | ||
| Unknown | | Unknown | ||
Line 1,813: | Line 1,899: | ||
* target: Select the ground unit | * target: Select the ground unit | ||
− | * blink: If checked will make selected part blink | + | * blink: If checked, will make selected part blink |
* part: Select one of parts which should be displayed | * part: Select one of parts which should be displayed | ||
* time: Set for how long it will be visible | * time: Set for how long it will be visible | ||
Line 1,836: | Line 1,922: | ||
* 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) | * 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 | * 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 | + | * useEffect: If checked, will spawn additional smoke/fire effect |
* countEffects: Unknown | * countEffects: Unknown | ||
* delay: Unknown | * delay: Unknown | ||
Line 1,918: | Line 2,004: | ||
* string_var: Select in which variable will be saved the name | * string_var: Select in which variable will be saved the name | ||
* squad: Select which squad you want to check | * squad: Select which squad you want to check | ||
− | * getSquadName: If checked will save the squad name instead of unit name | + | * getSquadName: If checked, will save the squad name instead of unit name |
− | * object_type: | + | * 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 the best to set it to '''any''') | * check_objects: Select if you want to check all or only specific objects (it's the best to set it to '''any''') | ||
* useForTriggerFiltered: Will check only those units that meet the '''Conditions''' | * useForTriggerFiltered: Will check only those units that meet the '''Conditions''' | ||
Line 1,934: | Line 2,020: | ||
* useForTriggerFiltered: Will affect only those units that meet the '''Conditions''' | * useForTriggerFiltered: Will affect only those units that meet the '''Conditions''' | ||
* onWater: Check it if you want the AI to land on water | * onWater: Check it if you want the AI to land on water | ||
− | * rearmOnAirield: If checked will rearm the AI on the airfield | + | * rearmOnAirield: If checked, will rearm the AI on the airfield |
− | * disappearAfterLanding: If checked will make the AI disappear (hide, '''put to sleep''') | + | * disappearAfterLanding: If checked, will make the AI disappear (hide, '''put to sleep''') |
</div></div> | </div></div> | ||
| Both | | Both | ||
Line 1,947: | Line 2,033: | ||
* loadtype: Select if you want to load only a single node (a single maneuver) or the entire tree (an entire preset) | * loadtype: Select if you want to load only a single node (a single maneuver) or the entire tree (an entire preset) | ||
* name: Set the name of node or tree | * name: Set the name of node or tree | ||
− | * playerAutopilot: If checked will make the player's unit be controlled by the AI | + | * playerAutopilot: If checked, will make the player's unit be controlled by the AI |
Available '''trees''' (AI behaviour presets): | Available '''trees''' (AI behaviour presets): | ||
Line 2,001: | Line 2,087: | ||
|<div class="mw-collapsible mw-collapsed" style="width:100%">Respawn units in selected area<div class="mw-collapsible-content"> | |<div class="mw-collapsible mw-collapsed" style="width:100%">Respawn units in selected area<div class="mw-collapsible-content"> | ||
'''Fields:''' | '''Fields:''' | ||
+ | |||
* object: Select units which you want to respawn | * 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 | * object_type: Allows you to filter any unit in the given list according to the given status | ||
Line 2,011: | Line 2,098: | ||
* randomObjectsCountVar: Select using integer variable 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 | * 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. | + | * 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 | * setObjectMarking: Assign a number (mark/marking) to the spawned units | ||
* setObjectMarkingVar: Assign a number (mark/marking) from selected integer variable to the spawned units | * setObjectMarkingVar: Assign a number (mark/marking) from selected integer variable to the spawned units | ||
Line 2,023: | Line 2,110: | ||
|<div class="mw-collapsible mw-collapsed" style="width:100%">Rearms or repairs selected units<div class="mw-collapsible-content"> | |<div class="mw-collapsible mw-collapsed" style="width:100%">Rearms or repairs selected units<div class="mw-collapsible-content"> | ||
'''Fields:''' | '''Fields:''' | ||
+ | |||
* target: Select which unit you want to repair or rearm | * 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 | * target_type: Allows you to filter any unit in the given list according to the given status | ||
Line 2,040: | Line 2,128: | ||
|- | |- | ||
| unitPlayAnim | | unitPlayAnim | ||
− | | | + | |<div class="mw-collapsible mw-collapsed" style="width:100%">Makes the unit play one of it's animations<div class="mw-collapsible-content"> |
− | | | + | '''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 | ||
+ | </div></div> | ||
+ | | Both | ||
+ | | Yes | ||
|- | |- | ||
| unitPlayEffect | | unitPlayEffect | ||
|<div class="mw-collapsible mw-collapsed" style="width:100%">Shows custom effects in or over selected units<div class="mw-collapsible-content"> | |<div class="mw-collapsible mw-collapsed" style="width:100%">Shows custom effects in or over selected units<div class="mw-collapsible-content"> | ||
'''Notes:''' | '''Notes:''' | ||
+ | |||
* Areas can't be used for showing effects | * Areas can't be used for showing effects | ||
− | * [https:// | + | * [https://wiki.warthunder.com/CDK_Reference#Effects Full list of all available effects] |
'''Fields:''' | '''Fields:''' | ||
Line 2,057: | Line 2,154: | ||
* offset: Set the effect offset | * 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) | * 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 | + | * show: If checked, will show the effect |
− | * attach: If checked will attach the effect to selected unit ('''target''') | + | * attach: If checked, will attach the effect to selected unit ('''target''') |
* scale: Set the size of selected effect | * scale: Set the size of selected effect | ||
− | * mustExist: If checked will override ingame limit of active effects at the same time | + | * mustExist: If checked, will override ingame limit of active effects at the same time |
</div></div> | </div></div> | ||
| Both | | Both | ||
Line 2,068: | Line 2,165: | ||
|<div class="mw-collapsible mw-collapsed" style="width:100%">Makes the selected unit disappear<div class="mw-collapsible-content"> | |<div class="mw-collapsible mw-collapsed" style="width:100%">Makes the selected unit disappear<div class="mw-collapsible-content"> | ||
'''Notes:''' | '''Notes:''' | ||
+ | |||
* This action doesn't kill the selected unit | * 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 | * Useful when you want to disable some units before the start of mission and then spawn them later | ||
'''Fields:''' | '''Fields:''' | ||
+ | |||
* target: Select which units you want to make disappear | * target: Select which units you want to make disappear | ||
* useForTriggerFiltered: Will affect only those units that meet the '''Conditions''' | * useForTriggerFiltered: Will affect only those units that meet the '''Conditions''' | ||
Line 2,091: | Line 2,190: | ||
|<div class="mw-collapsible mw-collapsed" style="width:100%">Makes the selected unit appear again after using '''unitPutToSleep''' on them<div class="mw-collapsible-content"> | |<div class="mw-collapsible mw-collapsed" style="width:100%">Makes the selected unit appear again after using '''unitPutToSleep''' on them<div class="mw-collapsible-content"> | ||
'''Fields:''' | '''Fields:''' | ||
+ | |||
* target: Select which units you want to make appear again | * 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) | * 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) | ||
Line 2,103: | Line 2,203: | ||
|<div class="mw-collapsible mw-collapsed" style="width:100%">Sets the control of an aircraft's gears, control surfaces, throttle and so, to anything between a minimum or maximum value<div class="mw-collapsible-content"> | |<div class="mw-collapsible mw-collapsed" style="width:100%">Sets the control of an aircraft's gears, control surfaces, throttle and so, to anything between a minimum or maximum value<div class="mw-collapsible-content"> | ||
'''Fields:''' | '''Fields:''' | ||
+ | |||
* controls: Select the controls type | * controls: Select the controls type | ||
* value: Set the value (0.0 - 1.0) | * value: Set the value (0.0 - 1.0) | ||
Line 2,112: | Line 2,213: | ||
|- | |- | ||
| unitSetIndication | | unitSetIndication | ||
− | |<div class="mw-collapsible mw-collapsed" style="width:100%"> | + | |<div class="mw-collapsible mw-collapsed" style="width:100%">Makes markings and map icons of selected units blink<div class="mw-collapsible-content"> |
'''Fields:''' | '''Fields:''' | ||
− | * target: | + | |
− | * target_type: | + | * target: Select which unit's marking and map icon should blink |
− | * unit_type_ex: | + | * target_type: Allows you to filter any unit in the given list according to the given status |
− | * object_var_name: | + | * unit_type_ex: Select an additional status |
− | * object_var_comp_op: | + | * object_var_name: Set the unit name |
− | * object_var_value: | + | ''Note: All '''object_var''' options in actions require '''target_type''' set to '''isUnitVar''' to make them work'' |
− | * set: | + | * 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 blnking 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) | * 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''' | * useForTriggerFiltered: Will affect only those units that meet the '''Conditions''' | ||
− | * team: Select which team | + | * team: Select which team will be able to see blinking of indications, markers and icons of selected units |
</div></div> | </div></div> | ||
− | | | + | | Both |
− | | | + | | Yes |
|- | |- | ||
| unitSetStealth | | unitSetStealth | ||
|<div class="mw-collapsible mw-collapsed" style="width:100%">Turn off any indications, markers and icons over selected units<div class="mw-collapsible-content"> | |<div class="mw-collapsible mw-collapsed" style="width:100%">Turn off any indications, markers and icons over selected units<div class="mw-collapsible-content"> | ||
'''Notes:''' | '''Notes:''' | ||
+ | |||
* If you set it to 0 then there's a chance that the AI won't be able to attack it | * If you set it to 0 then there's a chance that the AI won't be able to attack it | ||
'''Fields:''' | '''Fields:''' | ||
+ | |||
* target: Select the unit | * target: Select the unit | ||
− | * set: If checked will turn off indications, markers and icons for selected units | + | * set: If checked, will turn off indications, markers and icons for selected units |
* radius: Set the distance from which selected unit will be visible | * 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) | * 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) | ||
Line 2,146: | Line 2,251: | ||
|- | |- | ||
| unitSetCalmDetection | | unitSetCalmDetection | ||
− | |<div class="mw-collapsible mw-collapsed" style="width:100%"> | + | |<div class="mw-collapsible mw-collapsed" style="width:100%">Disables or enables blinking of enemy unit marking icon when it's spotted<div class="mw-collapsible-content"> |
'''Fields:''' | '''Fields:''' | ||
− | * target: | + | |
− | * set: | + | * 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''' | * useForTriggerFiltered: Will affect only those units that meet the '''Conditions''' | ||
</div></div> | </div></div> | ||
− | | | + | | Both |
− | | | + | | Yes |
|- | |- | ||
| unitFollowWaypoints | | unitFollowWaypoints | ||
− | |<div class="mw-collapsible mw-collapsed" style="width:100%"> | + | |<div class="mw-collapsible mw-collapsed" style="width:100%">Makes selected units follow their waypoints<div class="mw-collapsible-content"> |
'''Fields:''' | '''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) | ||
</div></div> | </div></div> | ||
− | | | + | | Both |
− | | | + | | Yes |
|- | |- | ||
| unitAttackTarget | | unitAttackTarget | ||
− | |<div class="mw-collapsible mw-collapsed" style="width:100%"> | + | |<div class="mw-collapsible mw-collapsed" style="width:100%">Orders AI units attack selected targets<div class="mw-collapsible-content"> |
'''Fields:''' | '''Fields:''' | ||
− | * object: | + | |
− | * attack_type: | + | * object: Select the unit which you want to attack something |
− | * target: | + | * 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''' | * useForTriggerFiltered: Will affect only those units that meet the '''Conditions''' | ||
* filterWhom: Select if you want '''useForTriggerFiltered''' to filter the target or object | * filterWhom: Select if you want '''useForTriggerFiltered''' to filter the target or object | ||
Line 2,177: | Line 2,289: | ||
* targetDistMax: Select the maximum distance between the object and target | * targetDistMax: Select the maximum distance between the object and target | ||
* randomObjectsCount: Select how many unit will be attacked but in random order | * 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 | + | * playerAttracted: If checked, the AI units will attack the player more often than other AI units |
* playerAttractedCount: | * playerAttractedCount: | ||
* playerAttractedEffRate: | * playerAttractedEffRate: | ||
− | * fightInArea: | + | * fightInArea: Will make the AI attack other units when it is only in selected area |
* fightAreaRadius: | * fightAreaRadius: | ||
* fightAreaOuterRadius: | * fightAreaOuterRadius: | ||
− | * fireZone: | + | * fireZone: Will make the AI attack units only in selected area |
− | * effShootingRateInZone: | + | * effShootingRateInZone: Multiplies the unit's base shooting rate by the given amount |
− | * accuracyInZone: | + | * accuracyInZone: Sets the accuracy of the attacking units against units in selected area |
* weaponType: Select what weapon type will use the attacking unit | * weaponType: Select what weapon type will use the attacking unit | ||
* attackNumMax: | * attackNumMax: | ||
Line 2,200: | Line 2,312: | ||
* targetToAnchorMeetDist: | * targetToAnchorMeetDist: | ||
* resetObjectToFollow: | * resetObjectToFollow: | ||
+ | * attackTimeMax: Max time for all attacks by action. If time end and attack still doesn't start - attack will never start | ||
+ | * attackNumMax: Max attacks num for actio | ||
</div></div> | </div></div> | ||
| Both | | Both | ||
Line 2,205: | Line 2,319: | ||
|- | |- | ||
| unitMoveTo | | unitMoveTo | ||
− | |<div class="mw-collapsible mw-collapsed" style="width:100%"> | + | |<div class="mw-collapsible mw-collapsed" style="width:100%">Orders AI units to move to selected area or unit<div class="mw-collapsible-content"> |
'''Fields:''' | '''Fields:''' | ||
+ | |||
* object: Select the unit which you want to order to move | * 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_type: Allows you to filter any unit in the given list according to the given status | ||
− | * object_var_name: | + | * object_var_name: Set the unit name |
− | * object_var_comp_op: | + | ''Note: All '''object_var''' options in actions require '''object_type''' set to '''isUnitVar''' to make them work'' |
− | * object_var_value: | + | * 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: 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 | * target_type: Allows you to filter any unit in the given list according to the given status | ||
Line 2,222: | Line 2,338: | ||
* recalculatePathDist: | * recalculatePathDist: | ||
* useFormationCenter: | * useFormationCenter: | ||
− | * | + | * shipTurnRadius: |
− | * follow_target: If checked will order the unit to follow selected '''target''' | + | * follow_target: If checked, will order the unit to follow selected '''target''' |
* fastClimb: If unchecked will make the unit climb at more steep angle | * fastClimb: If unchecked will make the unit climb at more steep angle | ||
* destTimeMode: Unknown | * destTimeMode: Unknown | ||
− | * speed: | + | * 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 | + | * tas: If checked, will make the unit keep TAS speed instead of IAS |
* destTimeOnTarget: Works only when you select '''destTimeMode''', Unknown | * 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_radius: Works only when you select '''follow_target''', sets the distance between object and target which it follow | ||
Line 2,236: | Line 2,352: | ||
* distributionRadius: | * 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 | * 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 | + | * useUnitHeightType: If checked, will use the '''target''' height value for teleport position |
* teleportOffset: | * teleportOffset: | ||
* shouldKeepFormation: | * shouldKeepFormation: | ||
Line 2,249: | Line 2,365: | ||
|- | |- | ||
| unitMark | | unitMark | ||
− | |<div class="mw-collapsible mw-collapsed" style="width:100%"> | + | |<div class="mw-collapsible mw-collapsed" style="width:100%">Gives a number to a selected unit<div class="mw-collapsible-content"> |
'''Notes:''' | '''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 | * 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:''' | '''Fields:''' | ||
+ | |||
* target: Select to which unit you want to give the number | * target: Select to which unit you want to give the number | ||
* useForTriggerFiltered: Will affect only those units that meet the '''Conditions''' | * useForTriggerFiltered: Will affect only those units that meet the '''Conditions''' | ||
− | * target_marking: | + | * target_marking: Sets the number for selected unit |
− | * target_marking_var: | + | * target_marking_var: Sets the number for selected unit using an integer variable |
</div></div> | </div></div> | ||
| Both | | Both | ||
Line 2,263: | Line 2,380: | ||
|- | |- | ||
| unitMarkForEvent | | unitMarkForEvent | ||
− | | | + | | Unknown functionality |
− | |||
− | |||
− | |||
| Unknown | | Unknown | ||
| Unknown | | Unknown | ||
Line 2,283: | Line 2,397: | ||
|<div class="mw-collapsible mw-collapsed" style="width:100%">Provides the option to set multiple types of properties for each unit class, as well as some basic functionalities taken from other actions.<div class="mw-collapsible-content"> | |<div class="mw-collapsible mw-collapsed" style="width:100%">Provides the option to set multiple types of properties for each unit class, as well as some basic functionalities taken from other actions.<div class="mw-collapsible-content"> | ||
'''Fields:''' | '''Fields:''' | ||
+ | |||
Plane | Plane | ||
Control | Control | ||
− | * ai_skill: | + | * ai_skill: Sets the skill level of the AI unit |
− | * thrust_mult: | + | * thrust_mult: Multiplies the unit's thrust by the given amount. This does not allow the unit to bypass its speed limits |
* aggresive_wingman: | * aggresive_wingman: | ||
* kamikaze: | * kamikaze: | ||
Line 2,295: | Line 2,410: | ||
* weaponTriggers: | * weaponTriggers: | ||
− | * object: | + | * object: Select which unit's properties you want to change |
− | * object_type: | + | * object_type: Allows you to filter any unit in the given list according to the given status |
− | * unit_type_ex: | + | * unit_type_ex: Select an additional an status |
− | * object_var_name: | + | * object_var_name: Set the unit name |
− | * object_var_comp_op: | + | ''Note: All '''object_var''' options in actions require '''object_type''' set to '''isUnitVar''' to make them work'' |
− | * object_var_value: | + | * 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: | + | * object_var_value: Set the number |
+ | * useForTriggerFiltered: Will affect only those units that meet the '''Conditions''' | ||
Unit status params | Unit status params | ||
* army: Change to which team belongs selected unit | * army: Change to which team belongs selected unit | ||
* targetableByAi: If unchecked will all AI units will ignore and not attack 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 | + | * 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: | + | * invulnerabilityTimer: Sets for how long '''isImmortal''' will be enabled after respawn |
− | * useAuxWeapon: If checked will make ground units use secondary weapons (like | + | * useAuxWeapon: If checked, will make ground units use secondary weapons (like MGs) |
* destroyRIByCollision: | * destroyRIByCollision: | ||
− | * | + | * engineFire: Presumably starts an engine fire |
* hideProb: | * hideProb: | ||
* aimPriorities: | * aimPriorities: | ||
Visibility params | Visibility params | ||
* isDelayed: Makes the selected unit disappear | * isDelayed: Makes the selected unit disappear | ||
− | * delayForObjects: | + | * 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: | + | * 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) | + | * 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: | + | * delayedTimeAfterDeath: Sets the unit's post-death disappearence delay to the given amount of time, in seconds |
− | * forceVisibleOnMap: If checked will make selected unit always visible on map | + | * 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 | + | * forceLockTarget: If checked, the game will lock on (the same functionality as '''Lock Target''' controls from '''Common''' tab) selected target |
Attack params | Attack params | ||
* attack_type: Select attack type of selected unit | * attack_type: Select attack type of selected unit | ||
− | * targetAir: | + | * targetAir: If checked, the unit will only target air units |
− | * targetGnd: | + | * targetGnd: If checked, the unit will only target ground units |
− | * accuracy: | + | * accuracy: Sets the fire accuracy of the selected unit (only applies to AI units) |
− | * maxDeviationAngle: | + | * maxDeviationAngle: Affect only visible spread - now guns will no shot to opposite direction on low accuracy (CDK explanation) |
* checkVisibilityTarget: | * checkVisibilityTarget: | ||
− | * effShootingRate: | + | * effShootingRate: Multiplies the unit's base shooting rate by the given amount, for ground units |
− | * airEffShootingRate: | + | * airEffShootingRate: Multiplies the unit's base shooting rate by the given amount, for air units |
− | * effShootingRateByPlayer: | + | * effShootingRateByPlayer: Presumably multiplies the unit's base shooting rate by the amount of players in the battle |
− | * cannotShoot: If checked will make the | + | * cannotShoot: If checked, will make the selected unit unable to shoot |
− | * aiGunnersEnabled: If checked will enable AI gunners (if unchecked will disable) | + | * 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 fuction) | + | * aiGunnersCanTargetGroundUnits: If checked, will make the AI gunners attack ground units (if unchecked will disable this fuction) |
* aiGunnersDistance: Set the distance at which AI gunners can fire at targets from the enemy team | * 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 | + | * ignoresEnemy: If checked, will make the selected unit ignore all units from the enemy team |
− | * avoidFriendlyFire: | + | * avoidFriendlyFire: If checked, the unit won't attempt to fire if there is a friendly in-between hostile vehicles |
* trackingTime: | * trackingTime: | ||
* adaptiveAccuracyTime: | * adaptiveAccuracyTime: | ||
Movement params | Movement params | ||
* move_type: Select the move type | * move_type: Select the move type | ||
− | * speed: | + | * speed: Sets the speed of the selected unit, note that this doesn't allow you to bypass the unit's maximum speed limit |
− | * throttle: | + | * throttle: Unknown functionality (doesn't change the throttle settings) |
* speedVar: Set the speed of selected unit using a real variable | * speedVar: Set the speed of selected unit using a real variable | ||
− | * lockSpeed: Use this option to override the speed set in waypoints | + | * lockSpeed: Use this option to override the speed set in waypoints (CDK explanation) |
− | * waypointReachedDist: | + | * waypointReachedDist: Use it flag for override speed from waypoints |
* recalculateFollowPathDistance: | * recalculateFollowPathDistance: | ||
* shipTurnRadius: | * shipTurnRadius: | ||
− | * enableShipCollisionAvoidance: | + | * enableShipCollisionAvoidance: If checked, and the unit is a ship, the unit will actively try to avoid collisions |
− | * advancedCollisionAvoidance: | + | * advancedCollisionAvoidance: If checked, the unit will (presumably) use a more advanced collision avoidance algorithm |
* moveSpeedKatShooting: | * moveSpeedKatShooting: | ||
* slowWhenEnemyNear: Set the speed multiplier when enemy unit is near the selected unit ('''object''') | * 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''' | * 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) | * minDistBetween: Sets the minimal distance between two units (if set to 0 will disable any collision avoidance scripts) | ||
− | * ignoreCollisions: | + | * ignoreCollisions: If checked, the unit will effectively be immaterial |
* ignoresObstaclesOverTime: | * ignoresObstaclesOverTime: | ||
* bomberSpecialAttack: | * bomberSpecialAttack: | ||
− | * movable: | + | * movable: (Presumably) Whether the unit can be moved through collisions |
− | * cannotMove: If checked disables movement controls | + | * cannotMove: If checked, disables movement controls |
* allowOvertakeMode: Allows lagging units to catch up with the leader | * allowOvertakeMode: Allows lagging units to catch up with the leader | ||
* followLeader: Follow a leader (for ship bots) | * followLeader: Follow a leader (for ship bots) | ||
* denyLeadership: Avoid becoming a leader, leave the group, if currently leader - disband the group (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 | * keep_leader_dist: Keep the distance behind the leader | ||
− | * startFullSpeed: | + | * startFullSpeed: Set the speed to cruising speed for ships |
Infantry params | Infantry params | ||
− | * usePosAsCover: | + | * usePosAsCover: Makes the infantry consider current position as a cover |
− | * dontUseCovers: | + | * dontUseCovers: Makes the infantry not use or look for any cover |
− | * followWaypoints: | + | * followWaypoints: Makes the infantry follow it's waypoints |
* alwaysRun: Makes the infantry always run when it's moving | * alwaysRun: Makes the infantry always run when it's moving | ||
AI params | AI params | ||
* playerEnabled: | * playerEnabled: | ||
* aiEnabled: | * aiEnabled: | ||
− | * enemyFireEvasion: | + | * enemyFireEvasion: Whether the AI will attempt to dodge enemy fire |
− | * enginesEnabled: | + | * enginesEnabled: Whether the unit's engines are enabled |
− | * takeoffPermission: | + | * takeoffPermission: Whether the AI unit is allowed to take-off |
* useSearchRadar: Makes the ground units use their radar (if they are equipped with it) | * useSearchRadar: Makes the ground units use their radar (if they are equipped with it) | ||
Aircraft params | Aircraft params | ||
* isWinchable: | * isWinchable: | ||
* isWinchableAll: | * isWinchableAll: | ||
− | * fuel: | + | * fuel: Sets the fuel amount (in %) |
* stayOnGround: | * stayOnGround: | ||
AAA params | AAA params | ||
* fireRandom: | * fireRandom: | ||
− | * targetChangeInterval: | + | * targetChangeInterval: Time in seconds at which the AAA gun should switch targets |
− | * targetChangeProb: | + | * targetChangeProb: The probability of the AAA gun to switch targets |
Visual params | Visual params | ||
* hasExhaust: | * hasExhaust: | ||
* disableFallUndergroundAtDestroyed: | * disableFallUndergroundAtDestroyed: | ||
− | * persistentAerobaticsSmoke: | + | * persistentAerobaticsSmoke: If checked, and the unit is a plane, will permanently enable the plane's aerobatics smoke |
* smokeScreenActive: | * smokeScreenActive: | ||
Collision params | Collision params | ||
Line 2,396: | Line 2,512: | ||
| Yes | | Yes | ||
|- | |- | ||
− | + | | unitSetFormation | |
− | |<div class="mw-collapsible mw-collapsed" style="width:100%"> | + | |<div class="mw-collapsible mw-collapsed" style="width:100%">Changes the formation of ground units<div class="mw-collapsible-content"> |
'''Fields:''' | '''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 | ||
</div></div> | </div></div> | ||
− | | | + | | Both |
− | | | + | | Yes |
|- | |- | ||
− | | | + | | unitSetRoute |
− | |<div class="mw-collapsible mw-collapsed" style="width:100%"> | + | |<div class="mw-collapsible mw-collapsed" style="width:100%">Assings waypoints to units<div class="mw-collapsible-content"> |
'''Fields:''' | '''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: | ||
</div></div> | </div></div> | ||
| Unknown | | Unknown | ||
| Unknown | | Unknown | ||
|- | |- | ||
− | | | + | | unitSetVar |
− | |<div class="mw-collapsible mw-collapsed" style="width:100%"> | + | |<div class="mw-collapsible mw-collapsed" style="width:100%">Set a custom name and number to selected units<div class="mw-collapsible-content"> |
+ | '''Notes:''' | ||
+ | |||
+ | * This action doesn't require any variables created in '''Variables''' window but that also means they can't be used as '''target'''s or '''object'''s | ||
+ | * 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:''' | '''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 | ||
</div></div> | </div></div> | ||
− | | | + | | Both |
− | | | + | | Yes |
+ | |- | ||
+ | | unitSetZeroAmmo | ||
+ | | Sets the ammunition amount of all types to zero | ||
+ | | Both | ||
+ | | Yes | ||
|- | |- | ||
− | | | + | | unitVulnerableFrom |
− | |<div class="mw-collapsible mw-collapsed" style="width:100%"> | + | |<div class="mw-collapsible mw-collapsed" style="width:100%">Selects which unit will be visible for selected units<div class="mw-collapsible-content"> |
'''Fields:''' | '''Fields:''' | ||
− | * | + | |
+ | * target: Select which unit will be visible for the player units | ||
+ | * 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 player units | ||
+ | * 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 | ||
</div></div> | </div></div> | ||
− | | | + | | Both |
− | | | + | | Yes |
|- | |- | ||
− | | | + | | unitsSetColumn |
− | |<div class="mw-collapsible mw-collapsed" style="width:100%"> | + | |<div class="mw-collapsible mw-collapsed" style="width:100%">Allows to set trains and following it wagons or carriages<div class="mw-collapsible-content"> |
'''Fields:''' | '''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 area 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 | ||
</div></div> | </div></div> | ||
− | | | + | | Both |
− | | | + | | Yes |
|- | |- | ||
− | | | + | | groupFormation |
− | |<div class="mw-collapsible mw-collapsed" style="width:100%"> | + | |<div class="mw-collapsible mw-collapsed" style="width:100%">Changes the formation of selected air units<div class="mw-collapsible-content"> |
'''Fields:''' | '''Fields:''' | ||
+ | |||
* placeholder | * placeholder | ||
</div></div> | </div></div> | ||
Line 2,444: | Line 2,618: | ||
| Unknown | | Unknown | ||
|- | |- | ||
− | | | + | | varAddString |
− | |<div class="mw-collapsible mw-collapsed" style="width:100%"> | + | |<div class="mw-collapsible mw-collapsed" style="width:100%">Adds a text or number to selected string value<div class="mw-collapsible-content"> |
+ | '''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:''' | '''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''') | ||
</div></div> | </div></div> | ||
− | | | + | | Both |
− | | | + | | Yes |
|- | |- | ||
− | | | + | | varGetIntFromString |
− | |<div class="mw-collapsible mw-collapsed" style="width:100%"> | + | |<div class="mw-collapsible mw-collapsed" style="width:100%">Imports an integer value from the selected string variable to a selected integer variable<div class="mw-collapsible-content"> |
+ | '''Notes:''' | ||
+ | * Remember to set the ''value'' to the variable that starts with ''@'' otherwise it won't work | ||
+ | |||
'''Fields:''' | '''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 | ||
</div></div> | </div></div> | ||
− | | | + | | Both |
− | | | + | | Yes |
|- | |- | ||
− | | | + | | varGetStringValue |
− | |<div class="mw-collapsible mw-collapsed" style="width:100%"> | + | |<div class="mw-collapsible mw-collapsed" style="width:100%">Imports all text from the selected string value<div class="mw-collapsible-content"> |
'''Fields:''' | '''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) | ||
</div></div> | </div></div> | ||
− | | | + | | Both |
− | | | + | | Yes |
|- | |- | ||
− | | | + | | varModify |
− | |<div class="mw-collapsible mw-collapsed" style="width:100%"> | + | |<div class="mw-collapsible mw-collapsed" style="width:100%">Modify existing real or integer variable<div class="mw-collapsible-content"> |
'''Fields:''' | '''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 | ||
</div></div> | </div></div> | ||
− | | | + | | Both |
− | | | + | | Yes |
|- | |- | ||
− | | | + | | varSetBool |
− | |<div class="mw-collapsible mw-collapsed" style="width:100%"> | + | |<div class="mw-collapsible mw-collapsed" style="width:100%">Sets a bool value<div class="mw-collapsible-content"> |
+ | '''Notes:''' | ||
+ | |||
+ | * Using this action will remove (overwrite) everything from selected '''var''' variable | ||
'''Fields:''' | '''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: unknown | ||
</div></div> | </div></div> | ||
− | | | + | | Both |
− | | | + | | Yes |
|- | |- | ||
− | | | + | | varSetInt |
− | |<div class="mw-collapsible mw-collapsed" style="width:100%"> | + | |<div class="mw-collapsible mw-collapsed" style="width:100%">Sets an integer value<div class="mw-collapsible-content"> |
+ | '''Notes:''' | ||
+ | |||
+ | * Using this action will remove (overwrite) everything from selected '''var''' variable | ||
'''Fields:''' | '''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: unknown | ||
</div></div> | </div></div> | ||
− | | | + | | Both |
− | | | + | | Yes |
|- | |- | ||
− | | | + | | varSetReal |
− | |<div class="mw-collapsible mw-collapsed" style="width:100%"> | + | |<div class="mw-collapsible mw-collapsed" style="width:100%">Sets a real value<div class="mw-collapsible-content"> |
+ | '''Notes:''' | ||
+ | |||
+ | * Using this action will remove (overwrite) everything from selected '''var''' variable | ||
'''Fields:''' | '''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: unknown | ||
</div></div> | </div></div> | ||
− | | | + | | Both |
− | | | + | | Yes |
|- | |- | ||
− | | | + | | varSetString |
− | |<div class="mw-collapsible mw-collapsed" style="width:100%"> | + | |<div class="mw-collapsible mw-collapsed" style="width:100%">Sets a string value<div class="mw-collapsible-content"> |
+ | '''Notes:''' | ||
+ | |||
+ | * Using this action will remove (overwrite) everything from selected '''var''' variable | ||
'''Fields:''' | '''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: unknown | ||
</div></div> | </div></div> | ||
− | | | + | | Both |
− | | | + | | Yes |
|- | |- | ||
− | | | + | | varSetRandomInt |
− | |<div class="mw-collapsible mw-collapsed" style="width:100%"> | + | |<div class="mw-collapsible mw-collapsed" style="width:100%">Sets a random integer value<div class="mw-collapsible-content"> |
+ | '''Notes:''' | ||
+ | |||
+ | * Using this action will remove (overwrite) everything from selected '''var''' variable | ||
'''Fields:''' | '''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) | ||
</div></div> | </div></div> | ||
− | | | + | | Both |
− | | | + | | Yes |
|- | |- | ||
− | | | + | | wait |
− | |<div class="mw-collapsible mw-collapsed" style="width:100%"> | + | |<div class="mw-collapsible mw-collapsed" style="width:100%">Adds a delay between actions<div class="mw-collapsible-content"> |
'''Fields:''' | '''Fields:''' | ||
− | * | + | |
+ | * time: Sets how long will be the delay (seconds) | ||
</div></div> | </div></div> | ||
+ | | Both | ||
+ | | Yes | ||
+ | |- | ||
+ | | loop | ||
+ | | This action does not appear to currently be functional | ||
| Unknown | | Unknown | ||
+ | | No | ||
+ | |- | ||
+ | | playerSetAmmo | ||
+ | | This action does not appear to currently be functional | ||
| Unknown | | Unknown | ||
+ | | No | ||
|- | |- | ||
− | | | + | | playerSetMouseAim |
− | |<div class="mw-collapsible mw-collapsed" style="width:100%"> | + | |<div class="mw-collapsible mw-collapsed" style="width:100%">Makes player's camera view (mouse aim circle) point at selected unit or area<div class="mw-collapsible-content"> |
'''Fields:''' | '''Fields:''' | ||
− | * | + | |
+ | * lookat: Select at what unit or area should point player's camera view (mouse aim circle) | ||
</div></div> | </div></div> | ||
− | | | + | | SP |
− | | | + | | Yes |
+ | |- | ||
+ | | playerCenterMouseAim | ||
+ | |<div class="mw-collapsible mw-collapsed" style="width:100%">Centers the mouse aim circle position<div class="mw-collapsible-content"> | ||
+ | | SP | ||
+ | | Yes | ||
|- | |- | ||
− | | | + | | gameMPChangeScore |
− | |<div class="mw-collapsible mw-collapsed" style="width:100%"> | + | |<div class="mw-collapsible mw-collapsed" style="width:100%">Change the amount of tickets in battle<div class="mw-collapsible-content"> |
+ | '''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:''' | '''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 | ||
</div></div> | </div></div> | ||
− | | | + | | Both |
− | | | + | | Yes |
|- | |- | ||
− | | | + | | hudElementBlink |
− | |<div class="mw-collapsible mw-collapsed" style="width:100%"> | + | |<div class="mw-collapsible mw-collapsed" style="width:100%">Makes selected HUD elements blink<div class="mw-collapsible-content"> |
'''Fields:''' | '''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 | ||
</div></div> | </div></div> | ||
− | | | + | | SP |
− | | | + | | Yes |
|- | |- | ||
− | | | + | | hudElementEnlarge |
− | |<div class="mw-collapsible mw-collapsed" style="width:100%"> | + | |<div class="mw-collapsible mw-collapsed" style="width:100%">Makes selected HUD elements larger<div class="mw-collapsible-content"> |
'''Fields:''' | '''Fields:''' | ||
− | * | + | |
+ | * element: Select which HUD element you want to make larger | ||
+ | * enlarge: If checked, will make selected elemented larger | ||
</div></div> | </div></div> | ||
− | | | + | | SP |
− | | | + | | Yes |
|- | |- | ||
− | | | + | | hudElementSelectionShade |
− | |<div class="mw-collapsible mw-collapsed" style="width:100%"> | + | |<div class="mw-collapsible mw-collapsed" style="width:100%">Makes the screen darker except for selected HUD element<div class="mw-collapsible-content"> |
'''Fields:''' | '''Fields:''' | ||
− | * | + | |
+ | * targetName: Select which player unit it should affect | ||
+ | * element: Select which HUD element you want to show without the shade | ||
</div></div> | </div></div> | ||
− | | | + | | SP |
− | | | + | | Yes |
|- | |- | ||
− | | | + | | hudElementShow |
− | |<div class="mw-collapsible mw-collapsed" style="width:100%"> | + | | <div class="mw-collapsible mw-collapsed" style="width:100%">Used to show tutorial hints<div class="mw-collapsible-content"> |
'''Fields:''' | '''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 | ||
</div></div> | </div></div> | ||
+ | | SP | ||
+ | | Yes | ||
+ | |- | ||
+ | | hudWindowsHide | ||
+ | | This action does not appear to currently be functional | ||
| Unknown | | Unknown | ||
| Unknown | | Unknown | ||
|- | |- | ||
− | | | + | | registrationKillCounter |
− | | | + | | Unknown functionality |
− | |||
− | |||
− | |||
| Unknown | | Unknown | ||
| Unknown | | Unknown | ||
|- | |- | ||
− | | | + | | tacticalMapControl |
− | |<div class="mw-collapsible mw-collapsed" style="width:100%"> | + | |<div class="mw-collapsible mw-collapsed" style="width:100%">Change the map settings<div class="mw-collapsible-content"> |
'''Fields:''' | '''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 ingame map | ||
+ | * scale: Sets the scale values | ||
</div></div> | </div></div> | ||
− | | | + | | Both |
− | | | + | | Yes |
|- | |- | ||
− | | | + | | showSmartCutscene |
− | |<div class="mw-collapsible mw-collapsed" style="width:100%"> | + | |<div class="mw-collapsible mw-collapsed" style="width:100%">Shows an ingame cutscene<div class="mw-collapsible-content"> |
'''Fields:''' | '''Fields:''' | ||
+ | |||
* placeholder | * placeholder | ||
</div></div> | </div></div> | ||
− | | | + | | Both |
− | | | + | | Yes |
|- | |- | ||
− | | | + | | showCutsceneInfo |
− | |<div class="mw-collapsible mw-collapsed" style="width:100%"> | + | |<div class="mw-collapsible mw-collapsed" style="width:100%">Shows a cutscene text<div class="mw-collapsible-content"> |
'''Fields:''' | '''Fields:''' | ||
− | * | + | |
+ | * text: Set the text that will be displayed on the bottom of screen | ||
+ | * duration: Set for how long it will be displayed | ||
</div></div> | </div></div> | ||
+ | | Both | ||
+ | | Yes | ||
+ | |- | ||
+ | | preloadRendInsts | ||
+ | | Unknown functionality | ||
| Unknown | | Unknown | ||
| Unknown | | Unknown | ||
|- | |- | ||
− | | | + | | waitRendInst |
− | | | + | | Unknown functionality |
− | |||
− | |||
− | |||
| Unknown | | Unknown | ||
| Unknown | | Unknown | ||
|- | |- | ||
− | | | + | | benchmarkAction |
− | | | + | | Unknown functionality |
− | + | | Unknown | |
− | |||
− | |||
− | | Unknown | ||
| Unknown | | Unknown | ||
|- | |- | ||
− | | | + | | hideAirDrops |
− | | | + | | Unknown functionality |
− | |||
− | |||
− | |||
| Unknown | | Unknown | ||
| Unknown | | Unknown | ||
|- | |- | ||
− | | | + | | unitAddAreasForSearchLight |
|<div class="mw-collapsible mw-collapsed" style="width:100%">Placeholder<div class="mw-collapsible-content"> | |<div class="mw-collapsible mw-collapsed" style="width:100%">Placeholder<div class="mw-collapsible-content"> | ||
'''Fields:''' | '''Fields:''' | ||
− | * | + | * object: |
+ | * area: | ||
+ | * searchThroughAreas: | ||
+ | * timeToOneArea: | ||
+ | * searchAngularSpeed: | ||
+ | * moveAngularSpeed: | ||
+ | * rndSpeed: | ||
</div></div> | </div></div> | ||
| Unknown | | Unknown | ||
| Unknown | | Unknown | ||
|- | |- | ||
− | | | + | | unitFollowSearchLight |
|<div class="mw-collapsible mw-collapsed" style="width:100%">Placeholder<div class="mw-collapsible-content"> | |<div class="mw-collapsible mw-collapsed" style="width:100%">Placeholder<div class="mw-collapsible-content"> | ||
'''Fields:''' | '''Fields:''' | ||
− | * | + | * target: |
+ | * followOutsideArea: | ||
</div></div> | </div></div> | ||
| Unknown | | Unknown | ||
| Unknown | | Unknown | ||
|- | |- | ||
− | + | <!--| placeholder | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | | placeholder | ||
|<div class="mw-collapsible mw-collapsed" style="width:100%">Placeholder<div class="mw-collapsible-content"> | |<div class="mw-collapsible mw-collapsed" style="width:100%">Placeholder<div class="mw-collapsible-content"> | ||
'''Fields:''' | '''Fields:''' |
Revision as of 13:26, 6 December 2019
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.
Contents
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
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 ) 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
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:
|
Both |
timeExpires | Will execute the trigger once after a set number of seconds from mission start
Fields:
|
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:
'Fields:
|
Both |
gameWhenDifficulty | Will check what the current game-mode is (AB, RB, SB or custom)
Fields:
|
Both |
gameWhenControlMode | Will check what the control mode the user has selected (mouse-aim, etc.)
Fields:
|
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 | Unknown |
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:
|
SP only |
isAllPlayersInGame | Will activate trigger if all the players are in the game | MP only |
misObjStatus | Will activate trigger if a specified objective's current status matches a specified value
Fields:
|
Both |
missionNamePostfix | Checks postfix of your mission Notes:
Fields:
|
MP only |
missionIsBombingAreaDestroyed | Will activate the trigger if the specified bombing area is destroyed
Fields:
|
Both |
missionIsLZCaptured | Will activate trigger if a specified landing zone is captured by a specified team (unclear if / how LZs currently work)
Fields:
|
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:
|
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:
|
SP only |
missionWhenInBattleArea | Will activate the trigger if any units are within the defined battle area
Fields:
|
Both |
missionWhenTime | Will activate the trigger if a specified amount of time has passed since the start of the mission
Fields:
|
Both |
objectExists | Functionality unknown | Unknown |
objGroupWhenStatus | Checks if selected objectGroups object exists on the map or not (it's related to unitWakeUp and unitPutToSleep actions) Fields:
|
Both |
playersDistanceBetween | Will activate the trigger if the player is within a set distance of a set object
Fields:
|
Both |
playersWhenEnemyNear | Will activate the trigger if the player is within a set distance of an enemy
Fields:
|
Both |
playersWhenInArea | Will activate the trigger if the player is within a set area
Fields:
|
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:
|
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:
|
Unknown |
playersWhenReachHeight | Checks if a player has reached a specified altitude
Fields:
|
Both |
playersWhenStatus | Checks the status of the player
Fields:
|
Both |
playersWhenManeuver | Checks what maneuver the player is carrying out
Fields:
|
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:
|
SP only |
playersWhenCameraState | Checks what orientation the of the camera (in free look mode)
Fields:
|
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:
|
SP only |
triggerStatus | Checks the status of another trigger and activates trigger if it matches a set value
Fields:
|
Both |
unitDistanceBetween | Will activate the trigger if a unit is within a set distance of a set object
Fields:
|
Both |
unitFuelLess | Activates the trigger when the specified units remaining fuel is below a specified amount (possibly bugged / non-functional)
Fields:
|
Both |
unitAnyLess | Activates trigger if at least one unit from those specified does not match the given status
Fields:
|
Both |
unitWhenControls | Activates trigger if the units control positions match a given value
Fields:
|
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:
|
Both |
unitWhenEnemyNear | Will activate the trigger if the specified unit is within a set distance of an enemy
Fields:
|
Both |
unitWhenInArea | Will activate the trigger if the specified unit is within the specified area
Fields:
|
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:
|
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:
|
Both |
unitWhenProperties | Activates the trigger if a unit's current properties match specified values
Fields:
|
Both |
unitWhenReachHeight | Checks if the specified unit has reached a specified altitude
Fields:
|
Both |
unitWhenStatus | Checks the status of the specified unit
Fields:
|
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:
|
Both |
unitWhenHit | Will activate the trigger if the specified unit is hit (shot) with the option of specifying which unit hit it
Fields:
|
Both |
unitWhenKilled | Will activate the trigger if the specified unit is killed
Fields:
|
Both |
unitsInLineOfSight | Checks if two units have line of sight with each other
Fields:
|
Both |
unitsInSearchLight | Checks if unit is caught in a search light
Fields:
|
Both |
varCompareBool | Activates the trigger if the specified boolean variable matches the specified value
Fields:
|
Both |
varCompareInt | Activates the trigger if the specified integer variable matches the specified value
Fields:
|
Both |
varCompareReal | Activates the trigger if the specified real (decimal number) variable matches the specified value
Fields:
|
Both |
varCompareString | Activates the trigger if the specified string variable matches the specified value
Fields:
|
Both |
playerShortcutPressed | Activates the trigger if player presses a specified control
Fields:
|
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:
|
SP only |
playerAxisValueReached | Checks if player has reached a certain value on a specified control axis
Fields:
|
SP only |
destructibleInArea | Checks the number of objects destroyed within a specified area
Fields:
|
Unknown |
airDropsNear | Checks if an airDrop is near a unit (unclear if / how air drops currently work)
Fields:
|
Unknown |
areaWhenInArea | Checks if an area is within another area
Fields:
|
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
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:
|
Both | Yes |
addTextToUnit | Adds text on the given unit
Fields:
|
Both | Yes |
airfieldSetIndication | Makes airfield flash green on map / radar
Fields:
|
Both | Yes |
airfieldSetVisibility | This action does not appear to currently be functional
Presumably, this action should change the airfield's visibility on the map/radar, but it currently appears to do nothing. Fields:
|
Both | Yes |
airfieldGetModuleHP | Gets the HP of a part of a modular airfield and save it to a real (decimal number) variable.
Fields:
|
Both | Yes |
airfieldSetModuleHP | Sets the HP of a part of a modular airfield and save it to a real (decimal number) variable.
Fields:
|
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:
|
Both | Yes |
airfieldSetFuelMul | Applies a multiplier to the rate at which the aircraft is refueled when it's on a modular airfield.
Fields:
|
Both | Yes |
airfieldSetReloadMul | Applies a multiplier to the rate at which the aircraft is reloaded when it's on a modular airfield.
Fields:
|
Both | Yes |
airfieldSetRepairMul | Applies a multiplier to the rate at which the aircraft is refueled when it's on a modular airfield.
Fields:
|
Both | Yes |
awardAchievement | Functionality unknown
Presumably this action is designed to award achievements to the player, but in testing it has had effect. Fields:
|
Unknown | Unknown |
changeUnit | This action does not appear to currently be functional | Unknown | Unknown |
checkEntity | Functionality unknown
Fields:
|
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:
|
Both | Yes |
countUnitsKilledByTeam | Counts the number of units killed by the specified team and assigns the value to a variable
Fields:
|
Both | Yes |
beginRaceMode | Starts a plane or tank race with the given settings
Fields:
|
Both | Yes |
bigQueryAddRecord | Functionality unknown | Unknown | Unknown |
getOwnArea | Functionality unknown | Unknown | Unknown |
hangarGetCountryNum | Functionality unknown | Unknown | Unknown |
makeSquad | Creates a squad from the given unit
Fields:
|
Both | Unknown |
makeSquadFromUnits | Same than makeSquad but with more options
Additional fields:
|
Both | Unknown |
setHeadSquad | Same than above, but instead creates the head (leading) squad
Additional fields:
|
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 loose 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:
|
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:
Fields:
|
Both | Yes |
missionComplete | Sets the mission as complete (victory) for the selected team, ends the battle
Fields:
|
Both | Yes |
missionCustomArtillery | Enables custom artillery (which can be set in Mission Settings/Versus params/customSuperArtillery)
Fields:
|
Unknown | Unknown |
missionDebriefing | Forces the player back to the hangar, works only after mission has been completed | Unknown | Yes |
missionDestroyArea | Marks the given area(s) as destruction objectives
Fields:
|
Both | Unknown |
missionGetBalanceLevel | Gets the mission's balance level (1-25) and stores it in the given variable
Fields:
|
Both | Unknown |
missionGetBombingAreaHP | Gets the remaining HP of a bombing area and assigns it to a variable
Fields:
|
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:
|
MP Only | Yes |
missionGetMaxRespawns | Gets the maximum number of respawns and assigns it to a variable (unclear if working currently)
Fields:
|
Unknown | Unknown |
missionHint | This action does not appear to currently be functional | Unknown | Unknown |
missionEnableMapAutoScale | Enables auto scalling of the ingame map | Unknown | Unknown |
missionFailed | Sets the mission as failed for the selected team, ends the battle
Fields:
|
Both | Yes |
missionKillEffects | Removes effects from the selected areas
Fields:
|
Both | Yes |
missionForceMusic | Forces playing selected sound track
Fields:
|
Unknown | Yes |
missionForceUpdate | Functionality unknown
Fields:
|
Unknown | Unknown |
missionDisableRadiochat | Disabled ingame radio messages (for example Cover me etc.)
Fields:
|
MP | Yes |
missionMarkAsCaptureZone | Creates capture zone in selected area
Notes:
Fields:
|
Both | Yes |
missionMarkAsLandingZone | Creates a landing zone (airfield)
Notes:
Fields:
|
Unknown | Unknown |
missionMarkAsWaypoint | Creates a circle (waypoint) in selected area
Fields:
Notes:
|
Both | Yes |
missionMarkUnitsForStrike | This action does not appear to currently be functional | Unknown | Unknown |
missionMarkAsRespawnPoint | Creates spawn zones in selected areas
Fields:
|
MP | Yes |
missionMarkAsRearmZone | Creates a rearm zone for airplanes (only for players)
Fields:
|
Both | Yes |
missionMarkAsExitZone | Creates a zone where the player can safely quit (bailout)
Fields:
|
MP | Yes |
missionShowMapLine | Shows a single line on the map
Fields:
|
Both | Yes |
missionShowMapIcon | Shows a single icon on the map
Fields:
|
Both | Yes |
missionCreatePickUps | Creates a small area where you can rearm your unit with an icon above it for ground units
Fields:
|
MP | Yes |
missionCreateRespawnBasesByTemplate | Creates spawn zones in selected areas using variables
Fields:
|
MP | Yes |
missionPlayDialogue | Play a dialogue
Fields:
|
Both | Yes |
missionSetBattleRoyaleArea | Sets an area for battle royale mode
Notes:
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):
(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
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
Fields:
Example:
|
MP | Yes |
missionSetBombingArea | Add a bombing area in selected area
Fields:
|
Both | Yes |
missionBombingAreaDamage | Inflict some damage to selected bombing area
Fields:
|
Both | Yes |
missionSetEndReason | Set the reason of ending the mission
Fields:
|
Unknown | Unknown |
missionSetFade | Add fading in or fading out of screen to the mission
Fields:
|
Both | Yes |
missionSetFailText | Set the text after failing the mission
Fields:
|
Unknown | Unknown |
missionSetProperties | Change some basic mission's properties
Fields:
|
Both | Yes |
missionSetTimeIndicator | Show a time indicator in the bottom left corner
Fields:
|
Both | Yes |
missionSetTimeSpeed | Changes the mission time speed
Fields:
|
Both | Yes |
missionSetTargetsIndicator | Shows icons with a number of remaining units in the bottom left corner
Fields:
|
Both | Yes |
MissionStartCutscene | Starts an ingame cutscene
Fields:
|
Both | Yes |
MissionStartGuiScene | Unknown functionality | Unknown | Unknown |
MissionStopCutscene | Stops the cutscene started by using MissionStartCutscene action
Fields:
|
Both | Yes |
missionStopSpeech | Stops any ongoing dialogs | Unknown | Unknown |
missionControlJIP | Enable or disable join in pogress function
Fields:
|
MP | Unknown |
moAddMissionObjective | Adds a new objective (if it haven't been shown yet)
Fields:
Note: All object_var options in actions require target_type set to isUnitVar to make them work
|
Both | Yes |
moSetObjectiveStatus | Change the status of selected objective
Fields:
Note: All object_var options in actions require target_type set to isUnitVar to make them work
|
Both | Yes |
objectGroupSetAirfield | Unknown
Fields:
|
Unknown | Unknown |
playerControls | Enables or Disables selected control keys
Fields:
|
Unknown | Yes |
playerEmulateShortcut | Presses selected control key
Fields:
|
Unknown | Yes |
playerForceMoveToRespawnScreen | Forces all players to go back to the respawn screen
Fields:
|
MP | Yes |
playerLockTarget | Locks selected target (it's only related to the UI, not missiles)
Fields:
|
Unknown | Unknown |
playerOptions | Change some basic player's properties
Fields:
|
SP | Yes |
playHint | Shows a message on screen
Notes:
Fields:
Note: All object_var options in actions require target_type set to isUnitVar to make them work
|
Both | Yes |
playerToggleHero | This action does not appear to currently be functional | SP | No |
playSound | Will play a selected sound
Fields:
|
Both | Yes |
raceRangeEnable | Placeholder
Fields:
Note: All object_var options in actions require object_type set to isUnitVar to make them work
|
Unknown | Unknown |
spawnOnAirfield | Spawn selected units on the airfield (on the ground)
Fields:
|
Unknown | Yes |
systemLog | Unknown functionality
Fields:
|
Unknown | Unknown |
systemStats | Unknown functionality
Fields:
|
Unknown | Unknown |
systemCommand | Unknown functionality
Fields:
|
Unknown | Unknown |
systemShakeCamera | Unknown functionality
Fields:
|
Unknown | Unknown |
systemPlayRumble | Unknown functionality
Fields:
|
Unknown | Unknown |
triggerActivate | Activates selected trigger
Fields:
|
Both | Yes |
triggerDisable | Disables selected triggers
Fields:
|
Both | Yes |
triggerEnable | Enables selected triggers
Fields:
|
Both | Yes |
tutorialArtilleryShootAtPos | Orders the artillery to shoot at selected area
Notes:
Fields:
|
SP | Yes |
tutorialArtilleryShowWarning | Placeholder
Fields:
|
Unknown | Unknown |
tacticalMapForceZoom | Changes the zoom level of your map
Fields:
|
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:
|
SP | Yes |
unitDamage | Damage or destroy selected unit
Fields:
|
Both | Yes |
unitDestroyMissile | Unknown functionality
Fields:
|
Unknown | Unknown |
unitDoBailout | Select which air units should bailout (doesn't spawn any effects and doesn't destroy the airplane)
Fields:
|
Both | Yes |
UnitDropAmmo | Makes the unit drop all of it's bombs, fire all rockets and set it's ammunition amount to 0
Fields:
|
Both | Yes |
unitFire | Unknown functionality (probably doesn't work)
Fields:
|
Unknown | Unknown |
unitForceRearmSpeed | Set the rearm speed multiplier for Arcade Battles midair reload mechanics
Fields:
|
Both | Yes |
unitGetDistanceToVar | Placeholder
Fields:
|
Unknown | Unknown |
unitGetRandomNameFromSquad | Saves the name of a squad or specific unit from it in a string variable
Fields:
|
Both | Yes |
unitLandOnAirfield | Orders the AI unit to land on the airfield or water
Fields:
|
Both | Yes |
unitLoadBehTree | Loads specific AI behaviour presets
Fields:
Available trees (AI behaviour presets):
Available nodes: |
Both | Yes |
unitRespawn | Respawn units in selected area
Fields:
|
Both | Yes |
unitRestore | Rearms or repairs selected units
Fields:
|
Both | Yes |
unitPlayAnim | Makes the unit play one of it's animations
Notes:
Fields:
|
Both | Yes |
unitPlayEffect | Shows custom effects in or over selected units
Notes:
Fields:
|
Both | Yes |
unitPutToSleep | Makes the selected unit disappear
Notes:
Fields:
|
Both | Yes |
unitSpawnOnObjectGroup | Unknown functionality | Unknown | Unknown |
unitWakeUp | Makes the selected unit appear again after using unitPutToSleep on them
Fields:
|
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:
|
Both | Yes |
unitSetIndication | Makes markings and map icons of selected units blink
Fields:
Note: All object_var options in actions require target_type set to isUnitVar to make them work
|
Both | Yes |
unitSetStealth | Turn off any indications, markers and icons over selected units
Notes:
Fields:
|
Both | Yes |
unitSetCalmDetection | Disables or enables blinking of enemy unit marking icon when it's spotted
Fields:
|
Both | Yes |
unitFollowWaypoints | Makes selected units follow their waypoints
Fields:
|
Both | Yes |
unitAttackTarget | Orders AI units attack selected targets
Fields:
|
Both | Yes |
unitMoveTo | Orders AI units to move to selected area or unit
Fields:
Note: All object_var options in actions require object_type set to isUnitVar to make them work
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)
|
Both | Yes |
unitMark | Gives a number to a selected unit
Notes:
Fields:
|
Both | Yes |
unitMarkForEvent | Unknown functionality | Unknown | Unknown |
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.
Fields: Plane Control
Note: All object_var options in actions require object_type set to isUnitVar to make them work
Unit status params
Visibility params
Attack params
Movement params
Infantry params
AI params
Aircraft params
AAA params
Visual params
Collision params
|
Both | Yes |
unitSetFormation | Changes the formation of ground units
Fields:
|
Both | Yes |
unitSetRoute | Assings waypoints to units
Fields:
Note: All object_var options in actions require object_type set to isUnitVar to make them work
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
|
Unknown | Unknown |
unitSetVar | Set a custom name and number to selected units
Notes:
Fields:
|
Both | Yes |
unitSetZeroAmmo | Sets the ammunition amount of all types to zero | Both | Yes |
unitVulnerableFrom | Selects which unit will be visible for selected units
Fields:
Note: All object_var options in actions require target_type set to isUnitVar to make them work
Note: All player_var options in actions require target_type set to isUnitVar to make them work
|
Both | Yes |
unitsSetColumn | Allows to set trains and following it wagons or carriages
Fields:
|
Both | Yes |
groupFormation | Changes the formation of selected air units
Fields:
|
Unknown | Unknown |
varAddString | Adds a text or number to selected string value
Notes:
Fields:
|
Both | Yes |
varGetIntFromString | Imports an integer value from the selected string variable to a selected integer variable
Notes:
Fields:
|
Both | Yes |
varGetStringValue | Imports all text from the selected string value
Fields:
|
Both | Yes |
varModify | Modify existing real or integer variable
Fields:
|
Both | Yes |
varSetBool | Sets a bool value
Notes:
Fields:
|
Both | Yes |
varSetInt | Sets an integer value
Notes:
Fields:
|
Both | Yes |
varSetReal | Sets a real value
Notes:
Fields:
|
Both | Yes |
varSetString | Sets a string value
Notes:
Fields:
|
Both | Yes |
varSetRandomInt | Sets a random integer value
Notes:
Fields:
|
Both | Yes |
wait | Adds a delay between actions
Fields:
|
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:
|
SP | Yes |
playerCenterMouseAim | Centers the mouse aim circle position |
SP | Yes |
gameMPChangeScore | Change the amount of tickets in battle
Notes:
Fields:
|
Both | Yes |
hudElementBlink | Makes selected HUD elements blink
Fields:
|
SP | Yes |
hudElementEnlarge | Makes selected HUD elements larger
Fields:
|
SP | Yes |
hudElementSelectionShade | Makes the screen darker except for selected HUD element
Fields:
|
SP | Yes |
hudElementShow | Used to show tutorial hints
Fields:
|
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:
|
Both | Yes |
showSmartCutscene | Shows an ingame cutscene
Fields:
|
Both | Yes |
showCutsceneInfo | Shows a cutscene text
Fields:
|
Both | Yes |
preloadRendInsts | Unknown functionality | Unknown | Unknown |
waitRendInst | Unknown functionality | Unknown | Unknown |
benchmarkAction | Unknown functionality | Unknown | Unknown |
hideAirDrops | Unknown functionality | Unknown | Unknown |
unitAddAreasForSearchLight | Placeholder
Fields:
|
Unknown | Unknown |
unitFollowSearchLight | Placeholder
Fields:
|
Unknown | Unknown |