Triggers
Map triggers are responsible for the special events happening in the map. For example, the singleplayer campaign maps have triggers to do things like "if unit x is destroyed, declare player the winner" or "if building y is still standing after twenty minutes, declare the player the loser". Without map triggers, scripting maps would be impossible.
The internal hierarchy works like this:
- A Tag or a CellTag points to a Trigger, and tells the game to consider this trigger when processing events.
- A Trigger points to an Event and an Action, and tells the game "If my Events happen, execute my Actions".
- An Event lists the condition(s) that invoke this trigger, e.g. "45 seconds have passed".
- An Action lists the actions that should be performed by the game when this trigger fires. These are things like "Give the AI three nuclear silos", "Reveal the aforealludedto silos to the player" or "Paradrop these desolators as a reinforcement for the player".
Section
Tiberian Dawn
The [Triggers] section in a map is a list of comma-separated strings that looks like this:
[Triggers] ID=EVENT,ACTION,EVENT_PARAMETER,HOUSE,ASSOCIATED_TEAMTYPE,REPEATING ID1=EVENT,ACTION,EVENT_PARAMETER,HOUSE,ASSOCIATED_TEAMTYPE,REPEATING
etc.
String | Meaning | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ID | This trigger's ID. | ||||||||||||
EVENT | This trigger's Event (See Events). | ||||||||||||
ACTION | This trigger's Action (See Actions). | ||||||||||||
EVENT_PARAMETER | The parameter for the Event. | ||||||||||||
HOUSE | The name of the house associated with this trigger, or None. This house is used as a parameter by some Events and Actions. | ||||||||||||
ASSOCIATED_TEAMTYPE | Associated teamtype ID, or None. | ||||||||||||
REPEATING |
Specifies whether this trigger is repeating (see The Repeating puzzle for more info).
|
Red Alert, Counterstrike, Aftermath
The section is called [Trigs] and again is a list of comma-separated strings that looks like this:
[Trigs] name=R,H,C,A,E1,E1P1,E1P2,E2,E2P1,E2P2,A1,A1P1,A1P2,A1P3,A2,A2P1,A2P2,A2P3 name1=R,H,C,A,E1,E1P1,E1P2,E2,E2P1,E2P2,A1,A1P1,A1P2,A1P3,A2,A2P1,A2P2,A2P3
etc.
String | Meaning | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
R[epeating] | Specifies whether this trigger is repeating (see The Repeating puzzle for more info).
1 ↑ "switch" means activate this trigger | ||||||||||||||||||||||||||||||||
H[ouse] | The index of the house associated with this trigger. This house is used as a parameter by some Events and Actions. | ||||||||||||||||||||||||||||||||
C[ondition] |
Condition can be set to 0, 1, 2 or 3.
| ||||||||||||||||||||||||||||||||
A[ctivate] | |||||||||||||||||||||||||||||||||
E1 | Event 1's index (see Events). | ||||||||||||||||||||||||||||||||
E1P1 | Event 1's first parameter. | ||||||||||||||||||||||||||||||||
E1P2 | Event 1's second parameter. | ||||||||||||||||||||||||||||||||
E2 | Event 2's index. | ||||||||||||||||||||||||||||||||
E2P1 | Event 2's first parameter. | ||||||||||||||||||||||||||||||||
E2P2 | Event 2's second parameter. | ||||||||||||||||||||||||||||||||
A1 | Action 1's index (see Actions). | ||||||||||||||||||||||||||||||||
A1P1 | Action 1's first parameter. | ||||||||||||||||||||||||||||||||
A1P2 | Action 1's second parameter. | ||||||||||||||||||||||||||||||||
A1P3 | Action 1's third parameter. | ||||||||||||||||||||||||||||||||
A2 | Action 2's index. | ||||||||||||||||||||||||||||||||
A2P1 | Action 2's first parameter. | ||||||||||||||||||||||||||||||||
A2P2 | Action 2's second parameter. | ||||||||||||||||||||||||||||||||
A2P3 | Action 2's third parameter. |
Tiberian Sun, Firestorm, Red Alert 2, Yuri's Revenge
The [Triggers] section in a map is a list of comma-separated strings that looks like this:
[Triggers] ID=HOUSE,LINKED_TRIGGER,NAME,ENABLED,EASY,NORMAL,HARD,REPEATING ID1=HOUSE,LINKED_TRIGGER,NAME,ENABLED,EASY,NORMAL,HARD,REPEATING
etc.
String | Meaning | ||||||||
---|---|---|---|---|---|---|---|---|---|
ID | The Trigger's ID. The game assumes the Actions and Events with the same ID belong to this Trigger automatically. | ||||||||
HOUSE | The House associated with this trigger. This house is used as a parameter by some Events and Actions. | ||||||||
LINKED_TRIGGER | A trigger that is fired automatically when this trigger fires, or <none> if no additional triggers should fire. | ||||||||
NAME | A plain text string used as a name of this Trigger. Not used ingame, only in the map editor. Should not contain commas. | ||||||||
ENABLED | Can be set to 0 ('disabled') or 1 ('enabled'). Specifies whether this trigger is enabled at the beginning of the game. If it is disabled, another trigger has to explicitly enable it via a special Action. | ||||||||
EASY | Can be set to 0 ('disabled') or 1 ('enabled'). Specifies whether this trigger is active in the Easy difficulty (It refers to the Campaign Difficulty slider or the Difficulty slider in the Options menu.) | ||||||||
NORMAL | Can be set to 0 ('disabled') or 1 ('enabled'). Specifies whether this trigger is active in the Normal difficulty (It refers to the Campaign Difficulty slider or the Difficulty slider in the Options menu.) | ||||||||
HARD | Can be set to 0 ('disabled') or 1 ('enabled'). Specifies whether this trigger is active in the Hard difficulty (It refers to the Campaign Difficulty slider or the Difficulty slider in the Options menu.) | ||||||||
REPEATING | Specifies whether this trigger is repeating (see The Repeating puzzle for more info).
|
Considerations
The Repeating puzzle
As you may have noticed, different games specify different values for the Repeating flag: TD says R=1 means the trigger will repeat, RA says it will not, and TS-YR don't document this at all. This needs more testing.