ModEnc is currently in Maintenance Mode: Changes could occur at any given moment, without advance warning.

Tags

From ModEnc
Revision as of 09:03, 31 January 2024 by Crimsonum (talk | contribs) (Info about multiple tags)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
This page should correctly be named "[Tags]"; it is wrong due to technical restrictions.



Tags are responsible for telling the game about the triggers present on the map. Each trigger needs to be referred to by at least one tag to be considered "existant" by the game, even if the tag isn't attached to anything and thus never used itself. Linked triggers use its parent trigger's Tag. Tags can be simply placed in this section, and objects pre-placed on the map as well as teams can refer to the tags for additional functionality - if they do, those specific tags and their respective triggers will be notified when the objects referring to them are somehow interacted with (detected, attacked, damaged, destroyed, etc.).

A single trigger can be referred to by multiple tags. For example, a trigger attached to another can have its own tag in addition to its parent trigger's tag. A trigger may also have tags with different persistence states.

Section

Tiberian Dawn

Section does not exist.

Red Alert, Counterstrike, Aftermath

Section does not exist.

Tiberian Sun, Firestorm, Red Alert 2, Yuri's Revenge

The [Tags] section in a map takes this format:

ID=PERSISTENCE,NAME,TRIGGER_ID
Meanings of each string
String Meaning
ID The tag's ID. This is used to attach this tag to other objects on the map.
What can be achieved by attaching tags?
see
How should tags be attached?
see
PERSISTENCE This flag controls if and when the tag should be removed after being triggered. Once a tag has been removed, it cannot be triggered again.
Applicable values
Value Meaning Description
0 Volatile The tag is removed immediately when triggered. If the tag is attached to multiple objects, it's enough to "trip" any one of them to fire the attached trigger.
1 Semi-persistent The tag maintains a count of all objects it's attached to, and only actually "springs" after it's been triggered from all the objects; then, it removes itself.
2 Persistent The tag is never removed, and will continue to "spring" every time the trigger's conditions (events) are met.

Map editors refer these as: 0 - OR one time, 1 - AND one time and 2 - OR repeating.

Example: a trigger will spring when attached buildings are destroyed:

  • 0 fires the trigger once when any of the tagged buildings is destroyed, and never again.
  • 1 fires the trigger once when all tagged buildings are destroyed.
  • 2 fires the trigger every time a tagged building is destroyed.
NAME A plain text string used as a name of this tag. Not used ingame, only in the map editor. Should not contain commas.
TRIGGER_ID Reference to the trigger related to this tag. Again, each trigger needs to be refered to by at least one tag or it will not work. FinalSun and FinalAlert 2 create tags for you automatically when creating triggers in the Trigger Editor.

Important Note

The hexadecimal prefix of a tag's ID (e.g. 02A2DA40) is used in pointer remapping during saving and loading. It should not be lower than 0x01000000 to avoid conflicts with real pointers. In addition, it should not be shared by any TaskForce (local or global), else they will remap to the same pointer.