Data/Actors/Events

## Actor Events

### Description

Actor Events are triggers which are embedded into an Actor. They listen to the surroundings and react on them. They are the "nerve-centre" of an actor. Actor events are strongly related to  Actor Messages.

* The first rule for an actor to exist and allow its events to run in any case: The actor must be created. To create the actor, use the proper event and the action is simply "Create".

### Hints

* The most common use of actor events is to tell the model of the actor to play an animation such as:
	+ Birth on unit Construction
	+ Birth when Warping
	+ Default Death on unit death
	+ Burning Death on unit death
	+ Acid Death on unit death
	+ Attack when using a Weapon
	+ Spell when using an Ability
* Other common uses of actor events are to:
	+ Swap models when upgrades have been researched
	+ Swap textures or apply materials to make different units with actors that use the same model look visually distinct
	+ Adjust the model scale and opacity of actors when behaviours are applied
	+ Create attached Model actors
* There are many actor events and many of them are not supported (undocumented) or applicable to all actors.

## Events content

An event contains mostly 3 aspects:

* **The Event** (Msg Type): This is trigger that generate the action. Take note that as long as the actor does not exist (has not lived the "Create" action), no other events from it shall take place, even if they match with something happening. For example, you cannot command an explosion animation to play it's death animation, if it wasn't created off something. at first place. An actor must be created first, even if logicaly, the modder wants to play it once and remove it right after. Some actors already have the incorporated role of "Creating" other actors. For example, the actor that governs a death animation is already managed by the Unit actor, so that death actor does not need an event that creates it.
* **The Term:** See this as a "Condition" (or a specification in some cases). One can put many, and remember that some terms don't show up unless the event/action is valid. For example, only "Effects" events allow the term to offer the "At" term, which other events don't.
* **The Action:** The action resulting of the event. This can either modify the actor itself, either remove it, create it, there are lot of possibilities. To generate an explosion, we use the **Event** to call when the explosion starts off, the **action** to "Create" it.

#### The colors and their meaning

*Main color rule: Colors do not prevent the modder from doing whatever he wants with the actor. Just remember that the events are listed in a specific order. Changing the default ones (grey/blue, even if duplicating them elsewhere) will modify their color at the place where they stand, because of their newer modification that does not match with "default" settings anymore. They can still be reseted, however.*

* **Grey:** Core events that are automaticaly generated with the type of actor, at its file creation. Those events are important and should be always kept unmodified. The modder is free to modify/remove them, at the risk of ruining the actor's functionality. Of course, the more an actor is specialized in its purpose, the more of those events there are. For example, a CActor Model can do the very same job as a CActor Modelstyleoneshot does. Except, the CActor Modelstyleoneshot contains more core events that automaticaly generated with the logic that most modders uses it for playing animations just once (the CActor Model has no events/is empty) and thus avoids the modder from creating them events every time. In fact The CActor Model is parent to model animations actors.

* **Blue:** Events that are parent related. This means that the actor is either the original one, either a copy of it, but has the original one as a reference. Double click the actor file to see what parent is refers to (a parent is only useful to refer, it doesn't actually matters). Those events are usually extras that were created by Blizzard, still important to their original content.
* **Green:** Events that are modified or created by the modder. If they fill newer empty spaces, they will remain green. If they modify an existing grey/blue value, they will remain green until exiting the events field, and become red when reopening the field.
* **Red:** Events that are modified by the modder. They represent the original default content that, either the core events, either the Blizzard/Parent event has been modified by the modder. This greatly obeys to the color rule, which stipulates that at this very line, this very event, the event doesn't match. They do not represent any conflict at all, they only warn the modder that an original content has been modified.

#### Modifying an Event

When creating a new event, the first field on top is the action. Here's what we can modify of this very action:

* **Msg Type:** The triggering event. In this very case, an upgrade will generate this event.
* **Source Name:** The name specific of the Msg Type content. This varies according to the Msg Type selection. Sometimes, this field can be ignored, mostly for events that generates actions in this very actor (ex: Actor Creation events most likely never use any source name). In this very case, the upgrade's name has been selected. Putting none would mean that "any" upgrade will trigger this event.
* **Sub Name:** The specifc triggering action. Each Msg Type offers a great variety of Sub names, some do not provide any at all... there's a lot of different cases. In this very case, the event offers either "Add" or "Remove".

A modder can copy/past an event, copying to whole kit.

#### Modifying a Term

Each term has its different options. Just remember that leaving a number at 0, or unmodifying the value still works, but might leave a blank space on the event's term. This is considered as a value 0, or unmodified.

It happens occasionaly, that the editor is so laggy, that the modder will receive the error message: "The event could not be parsed". causing the Term not be unable to apply properly. This is just some performance lag that causes a faillure. Leave the event field, and try over again.

You might also live a certain lag when changing the event that doesn't correspond with the relative term.

A modder can copy/past a term through other terms, changing them to the same. Make sure to paste on the proper line.

Sometimes, you can see a "Label" or "Name" box. This is used to refer to any corresponding event within the events of the same actor.

#### Modifying an action

This is an example of an "Animation Play" action. As you can see, the full kit is displayed and offers many set ups. The **Target** box on top is used when the modder wishes to aim at a related actor, or a model attachement. The way to go, is to put the ID name of the actor that is to be modified. The only problem with this method, is that the Target doesn't always show up on the list on the left and must selected in order to see it. For example, many unit actors use the "Destroy" action. If unselected, the modder cannot guess that this is oriented to specific actors within, and would think that this destroys the main actor. That being said, putting nothing in the target box with aim at nothing but the whole actor itself, which is usually the default way to use it.

Also, in this example we see that only "Play Forever" is checked, which causes the left list to display only this option. Same goes for numbers, being at 0, or at "Default", they will not show up unless they have been customized. For example, the modder uses an event that "Set Opcacity". This means that the opacity will be changed to 0. If the opacity had to become 1, then the event would display as "Set Opacity 1".

Sometimes, you can see a "Label" or "Name" box. This is used to identify this action to a certain code name, which can refered from further actions.

A modder can copy/past an action through other action, changing them to the same. Make sure to paste on the proper line.

#### The full theory over an example

Let's vulgarize it :

1. **[Event]** When the **Upgrade** named **Story Mode Tech: (Marine) Combat Shield** is **Removed**,
2. **[Term]** On term: **Cap 1** (cap means it will only occur the indicated number of times in the whole game for the owning player).
3. [**Action]** Play the animation named: Cover, which commands to the model the animation named "Cover". Play this animation forever.

## Example Usage

### Birth & Death

Using the event **Unit Birth**, the event-source as the unit you want and the message **Create** you essentially connect the creation of an actor to a unit's birth.
With the event **Unit Death** and the message **Destroy** you connect the destruction of an actor to the death of it's host (a unit).

### Manipulating Animations

Remember that the **cutscene editor** module will be your best friend for modifying animations. In this image on the left, the blue bar was right clicked, and offers access to the names of the animations. Usually an animation uses a name, but this mostly necessary for controlling them within the actor. For example, if the Marine uses the "Attack" (this is just the name) animation containing the "Cover" animation, we could wish to interrupt the "Attack" named animation to end the marine from animating its "Cover" animation. It is just wiser to use proper names to clearly identify what's to be aimed for.

The Messages **Animation Bracket Start**,**Animation Bracket Stop**, **Animation Play** and **Animation Clear** are the most common used here. Each Animation has to be declared under the **Name** field for future reference. **Animation Properties** is the actual animation-name you want to play on your actor based on the model used by the actor. **Animation Play** and **Animation Clear** only handle one animation, while **Animation Bracket Start** and **Animation Bracket Stop** are handling 3 animations, one **Opening** animation (that plays once), one **Content** animation that gets looped until the **Animation Bracket Stop** message executes the **Closing** animation once, bringing the animation-bracket to an end.

* Be careful when using animations play/Bracket start simulteously with **Model Swap** actions. Even if the newest swapped model can execute the required animation, the process may cancel out the requested animation, ending it right away. It is however possible to start an animation off a model swap event as the trigger, but then remember that the animation will not scale with the proper event (such as a Morph Start event), unless the duration is manually set.

### Flying units and bankers

Banking is a flight term that refers to the tilt of the airplane when it is turning. Of course, flying units in StarCraft II does not have any aerodynamic features, so they need to be simulated using "bankers".

## Events / Actions

Events are the conditions that result in **Actions** being performed. Many are triggered when **Actions** of the same name are applied to the actor. Actors possess all types of Events/Actions, but not all of them can be used by them actor. For example, a "Unit" actor can use an action named: Action Physics, but this is useless, unless used an "Action" type of actor.

Since the list of action/events is huge and contains some even names, we will explore them in both functions (Event/Action). Terms will be explained after.

* Event/Action names that do not exist in either version will not be displayed.
* For this page, we will use the word "**Implicit**" for Events that are self-explanatory. For example, an **Event** called "Set Opacity" is clearly an event that triggers when a "Set Opacity" action is launched within the actor.
* Sadly, a lot of those Events/Actions are badly named by Blizzard, causing much confusion. For example: "Add" should have been named "Host Site Ops Add". Those little mistakes are the reason why so many modders don't master the actors with ease.

### Ability

**As an Event:** Sent whenever a game ability does something that might want to modify actors, such as playing a spell on the caster when the ability starts.

Wiki Explanation: Triggered when an ability is used at a certain stage. Can either make the ability the host of this actor (if the actor is created by this event) or if this actor already has a host (e.g. a unit or other actor) the Ability event can be used for the actor to do something as a reaction (e.g. play an animation).

* Is rather more generic, can set up most abilities, and at a certain point fix some bugs. Example: Ability Morph Event sometimes fail at tracing an ability morph (this is a known bug) for applying an animation group on a unit. Using this event instead worked,
* On the same pace, a successful test has proven useful for debugging Morph Abilities. Since "Ability Morph" MSG type is bugged, using this MSG type ("Ability") instead works with different Sub Names
	1. Start= Start (unchanged)
	2. Cancel = Reset
	3. Finish = Stop

### Ability Charge

**As an Event:** Triggered when ability [cost] charge is regenerating or ready. For exemple, if a charge goes on cooldown after use, it is considered "Spent". If an ability's charge becomes ready, it is considered "Regen".

To be able to use it, one must activate the Shared flags named: Register Charge Event on the related ability. Otherwise, this event will do nothing.

### Ability Cooldown

**As an Event:** Triggered when ability [cost] cooldown is regenerating or ready. For exemple, if a cooldown goes on cooldown after use, it is considered "Spent". If an ability's charge becomes ready, it is considered "Regen".

To be able to use it, one must activate the Shared flags named: Register Cooldown Event on the related ability. Otherwise, this event will do nothing.

### Ability Morph

**As an Event:** Triggered when a morph ability is used. Can be used with the terms: Morph from and Morph to which are useful when the unit is to keep the same outcome when morphing from multiple units. The morph ability can still be specified individualy if desired, but it is not obligatory.

* Has a bug: sometimes cannot aknowledge its own morph ability to change a group animation on a unit.

### Ability Train

**As an Event:** Triggered when a train ability is used, with more precise Sub Name selections.

### Ability Transport

**As an Event:** Triggers when a transport ability executes certain actions.

* Be advised: The Medivac actor uses an hidden entry named: *PassengerKilled*. This can only be entered in XML mode, as it is not available in the **Sub Name** list. The absence of this entry is unfortunatly a lack of content, but remains useful.

### Action Damage

**As an Event:** Implicit.

**As an Action:** Target: CActorAction.  Enables game effects to trigger damage FX (impact squibs, blood, sounds, etc.) on each unit that is struck by AoE.  The damage FX are configured in the target CActorAction.

### Action Damage Physics

**As an Event:** Implicit.

**As an Action:** Target: CActorAction.  Enables game effects to trigger damage physics FX (impact squibs, blood, etc.) on each unit that is struck by AoE.  The damage physics FX are configured in the target CActorAction.  It is separate from the ActionDamage message, because the ActionDamage message is typically applied at the start of an effect, whereas the physics are typically applied at the end of the effect, after the effect has had a chance to kill a target.  (It is common for live units to have no physics associated with them, whereas unit death models frequently do have physics.  Thus, it is necessary to send ActionDamagePhysics after the effect has killed the target and swapped in the physics-ready death model.)  Damage physics are far less common than impact physics, because it is frequently better to create a single large physics force for an AoE effect rather than a smaller physics force for each target struck by the AoE.

### Action Impact

**As an Event:** Implicit.

**As an Action: Target:** CActorAction.  Enables game effects to trigger impact FX (impact squibs, blood, sounds, etc.) for the unit that is the target of an attack.  The impact FX are configured in the target CActorAction.

### Action Impact Physics

**As an Event:** Implicit.

**As an Action:** Target: CActorAction.  Enables game effects to trigger damage physics FX (impact squibs, blood, etc.) on each unit that is struck by AoE.  The impact physics FX are configured in the target CActorAction.  It is separate from the ActionImpact message, because the ActionImpact message is typically applied at the start of an effect, whereas the physics are typically applied at the end of the effect, after the effect has had a chance to kill a target.  (It is common for live units to have no physics associated with them, whereas unit death models frequently do have physics.  Thus, it is necessary to send ActionImpactPhysics after the effect has killed the target and swapped in the physics-ready death model.)

### Activate Think Message

**As an Event:** Implicit.

**As an Action:**

### Activate Update Message

**As an Event:** Implicit.

**As an Action:**

### Actor Creation

**As an Event:** Triggered when the actor has been created. Use this if you want to setup animations (e.g. Birth-Stand-Death Animation brackets), sounds or anything else that has to be present at and beyond the actor's creation point.

### Actor Destruction

**As an Event:** Triggered when the actor is being destroyed (via the Destroy message). Used in cases you want to manipulate (Create, destroy, tint etc.) other actors at the Ending-Point of an actor.

### Actor Orphan

**As an Event:** Triggered when an actor lost the connection to its host (e.g. its unit, if the unit dies and there is no Destroy message at the actor catching this case). Used as "failsafes" when actors are created by effects and abilities as their hosts, to have the actor destroyed when the host has finished at last.

### Actor Site Operation Dump

**As an Event:** Implicit.

**As an Action:** Dumps the site ops and their bearings for a specified host variable on a target actor.  If no host is specified, the message dumps the site ops on all the hosts possessed by the actor.  Useful for debugging position and rotation issues with site op chains.

### Add (As HostSite Ops Add)

**As an Event:** Implicit.

**As an Action:** Target: CActorBearings.  Dynamically adds a siteOp to the head or tail of an existing siteOp chain on the specified host.

Wiki Explanation: The proper use is to use the Host name: System and select "Host". This can conflict if other Site Ops are already implented.

### Add Blob (As "Splat Emitter Add Blob")

**As an Event:** Implicit.

**As an Action:** Requests to the splat emitter manager to add a blob to the mask at the specified position

### Add Pitch

**As an Event:** Implicit.

**As an Action:** Target: CActorBearings.  Adds pitch to the object's current orientation.

### Add Roll

**As an Event:** Implicit.

**As an Action:** Target: CActorBearings.  Adds roll to the object's current orientation.

### Add Yaw

**As an Event:** Implicit.

**As an Action:** Target: CActorBearings.  Adds yaw to the object's current orientation.

### Alias Add

**As an Event:** Implicit.

**As an Action:** Adds an alias to an actor.  An alias is a name that can be used to refer to the actor.  Multiple actors can be given the same alias, so that a single message can automatically target every actor in that group.  A single alias can point to a succession of actors, so that client data does not have to care about specific actor names when trying to send a message.  (In this regard, aliases can be used as a form of indirection.)

Wiki Explanation: To communicate to other actor alias, it is however important that the actors are connected by a common link. In some cases, it does not work properly. For example, an action actor cannot communicate to the alias of its own Impact Model.

### Alias Dump

**As an Event:** Implicit.

**As an Action:** Lists all the aliases currently associated with the target actor.

### Alias Remove

**As an Event:** Implicit.

**As an Action:** Removes an alias from an actor.

### Anim Continue

**As an Event:** Implicit.

**As an Action:** Target: CActorModel.  Supports several operations.  Can jump within an animation by clearing and replaying the animation, thereby blending out the old animation position and blending in the new one as a means of smoothing the transition.  Can also transition from one animation to another, while keep the animation variations the same.  In particular, this can be used for preswings, where data can start a particular preswing variation, then jump further into the animation and play the main attack swing -- all in one smooth sequence and regardless of the preswing's duration.  In order to look correct for attack swings that alternate hands, the jump must be blended and keep the same variation.

### Anim Group Apply From

**As an Event:** Implicit.

**As an Action:**

### Anim Set Time Scale From

**As an Event:** Implicit.

**As an Action:** Target: CActorModel.  Sets the time scale for the specified animation by copying the time scale of another animation, from a source actor that may not be the same as the target of the message.

### Anim Set Time Scale Global From

**As an Event:** Implicit.

**As an Action:** Target: CActorModel.  Sets the global time scale for the entire model with a global time scale from another CActorModel.

### Animation Baseline Start

**As an Event:** Implicit.

**As an Action:** Target: CActorUnit.  Starts the baseline animation for a CActorUnit.  There are two main baseline anims -- Walk and Stand, which play continuously, depending on whether the unit is moving or standing still.  Other higher priority animations may play on top of the CActorUnit's baseline animations, depending on the situation.

Wiki Explanation: This can come handy in some buggy situation. For example, the Talon Crusher (Immortal) custom asset can Morph its model. If using the very same actor to morph, but with a model swap in it, the animation will start off Frozen. Use this action to debug it.

### Animation Baseline Stop

**As an Event:** Implicit.

**As an Action:** Target: CActorUnit.  Stops the baseline animation for a CActorUnit.  This is not a common operation, because a unit without a baseline or any other animations appears in a rigid default pose and can look visually jarring.  However, it can be useful to temporarily not have a baseline animation if it causes specific animations (such as Birth) to blend in awkwardly.

Wiki Explanation: As stated, stopping the baseline will freeze the unit. However, in some cases, using it can play neat animations. This is useful for the Reaper's KD8 Charge's model used in a standing purpose: Putting the KD8 without taking care of its animation result into a looping detonation animation. However, stopping the Baseline will halt it right at the begening, leave the impression that it is "closed".

### Animation Bracket Clear

**As an Event:** Implicit.

**As an Action:** Target: CActorModel.  Clears an anim bracket.  Unlike the AnimBracketStop message, this removes the bracket immediately, rather than letting it transition out with a closing animation.  In this regard, it is the anim bracket version of the AnimClear message; hence supressing all 3 coponents of a the animation bracket at once.

### Animation Bracket Resume

**As an Event:** Implicit.

**As an Action:** Target: CActorModel.  Restarts an already running anim bracket with the same parameters specified for the bracket when it was originally started.  Typically used when an anim bracket has been stopped and is in the process of playing its closing animation.  The resume operation will play the opening animation considering the closing animation's progress, such that an animated closing door will appear to smoothly reopen from its animated closing position (provided the underlying animations are designed to support this).

### Animation Bracket Start

**As an Event:** Implicit. It is suggested to use the Term: AnimName (Animation Name) to specify WHICH animation bracket start is verified or use a name

**As an Action:** Target: CActorModel.  Specifies the parameters for an anim bracket and starts it.  An anim bracket automates a very common animation pattern: when an animated action has three parts - a beginning (opening), a middle (content) and an end (closing).  The middle is commonly of indeterminate length, and therefore loops repeatedly, until the anim bracket is stopped, at which point the end animation plays and completes the anim bracket.

Wiki Explanation: Is, by default, nearly the same action than "Animation Play", but in a trio of 3 animations and never ending until told otherwise (with the play once flag).

* As it is easier for burrowing models to launch a brackets that goes with animations such as: Burrow/Burrow Stand/Unburrow, some models only offer the "Burrow" and "Unburrow" animations, One trick that blizzard uses in those cases is to use the infamous: Burrow/Ignore/Unburrow animations. Then, they check the Closing Full and Play Forever flags. This methods halts the model at the end part of its burrowed animation, allowing to simulate the "Burrow Stand" animation that doesn't exist.

##### Flags

* **Closing Full:** When on, specifies that the bracket animation should play its closing animation fully, regardless of whether it was still in its opening animation.  Useful when opening and closing animations are not mirror images of one another.  When off, a bracket animation plays its closing animation starting at a point that matches its progress into the opening animation (known as a rebounding bracket animation).  If the bracket got 25% of the way into opening a door, when it was told to close, a rebound bracket animation would start its closing door animation 75% of the way to completion.
* **Content Force Looping:** When on in conjunction with the ContentPlayOnce flag being off, indicates that the system plays a randomly chosen variation of the animation every time the content animation completes, until an AnimBracketStop message is sent, no matter the content animation itself is set to be looping or not.
* **Dont Reset On Unhide:** The animation will not be reset when another animation that is hiding it is removed.
* **Full Match:** When on, indicates that the anim props specified in the anim bracket are to find matching animations with FullMatch semantics.  This means that a bracket animation must have exactly the same props, excluding variations, as the props in the anim bracket messages.  This makes it possible to avoid accidentally matching unintended animations.  For example, when a model has an animation like GLstand, B, and no GLstand, and the situation calls for playing a GLstand animation if it is there, but not GLstand, B unless a global anim prop B has specifically been added.  Without FullMatch, it would not be possible for GLstand to avoid GLstand, B if no B global anim group prop had been added. *Wiki Explanation: In summary, this flag is the equivalent of Variation Match for Animation Play, but for all animations validated togheter). An animation without any variation number is considered Variation 00.*
* **Instant:** When on, skips the opening animation and jumps straight to the content animation.  Useful in situations like when a map creates a flying Barracks at map initialization -- in this scenario the Barracks needs to appear to be flying instantly, rather than appearing as if it is transitioning to flying by lifting off.  This would not be possible without the ability to suppress the transitioning open animation that shows the Barracks lifting off and starting to fly. Mostly useful for Burrowed Zergs being created as such.
* **No Mismatch Query Props:** When on, indicates that the anim props specified in the anim bracket are to find matching animations with NoMismatchQueryProps semantics.  This means that a bracket animation is an animation where the resulting animation doesn't have any props that aren't specified in the query anim props (disregarding variation props), but the query anim props may have anim props that are not present in the resulting animation.
* **Non Looping:** When on in conjunction with the ContentPlayOnce flag being off, indicates that the content animation is to play once and then hold in place on the final frame of the animation, until an AnimBracketStop message is sent.
* **Play Forever:** When on, plays the opening animation until an AnimBracketStop message is sent.  Serves as a way to make bracket animations without a content animation; instead, the opening animation holds on its last frame and serves as a makeshift content animation.  When off, the opening animation finishes as normal and transitions to whatever animation is next, whether content or closing.
* **Play Once:** When on, signifies that the content animation should be played just once.  When off, the content animation plays until the AnimBracketStop message is sent.

##### Time Variant

* **Automatic:** Ignore the TimeVariant field and simply play the animation without any animation-specific time scaling.
* **Duration:** Interpret the TimeVariant field as a duration, but in an unreliable way. Larger TimeVariant field makes whole animation sequence slower. When there is exactly one animation in Opening, it means the duration of the Opening animation. If the TimeVariant field value is twice as long as the duration of the Opening animation, it effectively means to play the whole animation sequence with a time scale of 0.5. When there is more than one animation in Opening, the time scale becomes weird. As such, Time Scale should be preferred over Duration.
* **Time Scale:** Interpret the TimeVariant field as a time scale.  A fractional time scale means time is traveling at fractional speed, so it takes longer for the animation to complete.
* **Time Scale Absolute:** Interpret the TimeVariant field as an absolute time scale.  An animation played with an absolute time scale plays at that time scale regardless of the global time scale applied to the model.

### Animation Bracket State

**As an Event:** Triggered when an Animation Braket is acting on this actor, based on which part of the Animation Braket the actor is at.

### Animation Bracket Stop

**As an Event:** Implicit. It is suggested to use the Term: AnimName (Animation Name) to specify WHICH animation is verified.

**As an Action:** Target: CActorModel.  Stops an anim bracket by blending out the middle content animation and ending the bracket with a closing animation.

### Animation Clear

**As an Event:** Implicit. It is suggested to use the Term: AnimName (Animation Name) to specify WHICH animation is verified.

**As an Action:** Target: CActorModel.  Clears an animation, either with the default or a supplied blend out time.  If no animation name is supplied, the message clears all animations.  Cannot be used to stop a CActorUnit's baseline animation. As this action usually clears one specific animation, we can still use it onto an animation Bracket, but it will not suppress the whole animations of it. Instead, it will clear the actual playing one, skipping to the next one if possible (it is untested if cleaning a Content will order a bracket stop to the whole bracket). One case for using it would be clear out the opening animation; It will have the bracket commit to the content animation.

### Animation Clear Except

**As an Event:** Implicit**.**

**As an Action:** Target: CActorModel.  Clears all animations on the model but the one specified, either with the default or a supplied blend out time.

### Animation Copy

**As an Event:** Implicit. It is suggested to use the Term: AnimName (Animation Name) to specify WHICH animation is verified.

**As an Action:** Target: CActorModel.  Copies the entire animation stack from a source model and attempts to replicate it on the CActorModel that is the target of the message.  The copy operation attempts to play the exact same animation for each entry in the source animation stack.  If a given animation does not exist in the target model, the copy attempts to best match search for a new animation using the anim props of the source animation.  If it cannot find a match at all, the copy plays nothing for that animation.

### Animation Done

**As an Event:** Triggered when an animation finishes. It is suggested to use the Term: AnimName (Animation Name) to specify WHICH animation is verified.

### Animation Dump Data

**As an Event:** Implicit. It is suggested to use the Term: AnimName (Animation Name) to specify WHICH animation is verified.

**As an Action:** Target: CActorModel.  Lists all of the animations available in the current model, along with their durations and whether they are marked as looping.

### Animation Global Loop Clear

**As an Event:** Implicit. It is suggested to use the Term: AnimName (Animation Name) to specify WHICH animation is verified.

**As an Action:** Target: CActorModel.  Clears all of the global loop animations that are playing on the current model.  A flag enables the global loops to be either stopped instantly or blended out.

### Animation Global Loop Start

**As an Event:** Implicit. It is suggested to use the Term: AnimName (Animation Name) to specify WHICH animation is verified.

**As an Action:** Target: CActorModel.  Starts all of the global loop animations built into the current model.  Global loops are animation brackets with GLbirth, GLstand, GLdeath and/or GLdead animations that can be played automatically when a model is created.  They are typically used for continuous 'background' anims that need to play regardless of what the unit is doing.  The spinning rotor blades on the Banshee are an example.

### Animation Global Loop Stop

**As an Event:** Implicit. It is suggested to use the Term: AnimName (Animation Name) to specify WHICH animation is verified.

**As an Action:** Target: CActorModel.  Stops all of the global loop animations that are playing on the current model.  This causes global loops to start playing GLdeath and then either finish altogether or play GLdead from then on (if it exists).

### Animation Group Apply

**As an Event:** Implicit. It is suggested to use the Term: AnimName (Animation Name) to specify WHICH animation is verified.

**As an Action:** Target: CActorModel.  Adds a global anim prop to the CActorModel.  This global anim prop becomes a part of the anim props associated with each animation playing currently and in the future.  The addition of the new prop can automatically change each animation that is playing, for example: changing a Stand animation to Stand, Work if the unit suddenly starts performing a work action.  The AnimGroupApply message also optionally creates an anim bracket so that the model can smoothly transition to and from the altered animation state.  The name of this bracket automatically comes from the prop that is being applied.  For instance, the 'AnimGroupApply Fly Fly,Start Fly,Stop' message sent to a standing unit plays an animation called Fly that plays a Fly, Start animation during the opening phase, while the underlying Stand baseline animation changes to Stand, Fly with the addition of the new Fly global prop.  Then, when the opening animation finishes, it reveals the underlying Stand, Fly animation that had already started playing.  Finally, when the global anim prop is later removed via AnimGroupRemove, the associated anim bracket plays a Fly, Stop animation.  When this is complete, the model is again playing a normal Stand animation.  As such, the anim bracket created by the AnimGroupApply message does not contain a content animation (the middle part), because it is expected that the changed animations that are already playing will serve as the content animation instead.

### Animation Group Remove

**As an Event:** Implicit. It is suggested to use the Term: AnimName (Animation Name) to specify WHICH animation is verified.

**As an Action:** Target: CActorModel.  Removes a global anim prop and plays a transition out animation to cover the change, if such an animation has been specified in a prior AnimGroupApply message.

### Animation Group Remove All

**As an Event:** Implicit. It is suggested to use the Term: AnimName (Animation Name) to specify WHICH animation is verified.

**As an Action:** Target: CActorModel.  Removes all global anim props and instantly clears all anim brackets that were created by AnimGroupApply messages.

### Animation Play

**As an Event:** Implicit. It is suggested to use the Term: AnimName (Animation Name) to specify WHICH animation is verified.

**As an Action:** Target: CActorModel.  Plays an animation on the target model.  Every animation created by this animation requires a name, so that client data and code can easily refer to the animation for subsequent operations.  Supports a number of parameters for specifying blend times, play rate and other animation behaviors.

#### Flags

* **Asset Driven Looping:** Uses the 'Looping' flag built into the asset to determine whether the animation is looping, rather than the PlayForever or NonLooping flags
* **Dont Reset On Unhide:** The animation will not be reset when another animation that is hiding it is removed.
* **Force Looping:** If set, and the PlayForever flag is additionally set, this flag means that the system plays a randomly chosen variation of the animation every time the anim completes, and no matter the anim itself is set to be looping or not.
* **Full Match:** Playing an animation via actor message requires a set of anim props that the animation system uses to find matching animations (for example, 'Walk, Start').  This option specifies that the result animation must have associated anim props that exactly match the specified anim props, excluding variation props.  To match, an animation can have no additional anim props and cannot be missing anim props that are not in the requested set.
* **No Mismatch Query Props:** Playing an animation via actor message requires a set of anim props that the animation system uses to find matching animations (for example, 'Walk, Start').  This option specifies that the result animation must not have any props that aren't specified in the query anim props (disregarding variation props), but the query anim props may have anim props that are not present in the resulting animation.
* **Non Looping:** If set, and the PlayForever flag is additionally set, this flag means that the animation should play normally, but then hold position indefinitely on the last frame.  If not set, and the PlayForever flag is set, this flag indicates that the animation should be treated as looping, and play repeatedly, choosing randomly from among that animation's variations each time it plays. Sometimes fixes some bugs, animation reseting partially. Testing is the best course of action.
* **Play Forever:** Tells the system to play the requested animation until told to stop.  If the anim is not marked as NonLooping, the system plays a randomly chosen variation of the animation every time it completes.  In this way, a Stand animation can play continuously on an idle unit, alternating randomly between different stand animation variations, to make the unit feel more like a real, living being.
* **Random Start Offset:** Tells the animation to start playing at a random offset when it first begins.  Used to make a group of walking units not all walk in lockstep when commanded to move at the same time.  Instead, they all start at different points in their respective walk animations (even if playing the exact same animation), which looks more natural.
* **Variation Match:** Requires a variation prop.  Best matches to the specified anim props without the variation, but then ensures that the result has the specified variation.  Ignored if the specified props contain no variation. (Note that an animation with no Variation number is considered Variation 00).

##### Time Variant

* **Automatic:** Ignore the TimeVariant field and simply play the animation without any animation-specific time scaling.
* **Duration:** Interpret the TimeVariant field as a duration.  When the number in the TimeVariant field is twice as long as the duration of the animation being played, it effectively means to play the animation with a time scale of 0.5.
* **Time Scale:** Interpret the TimeVariant field as a time scale.  A fractional time scale means time is traveling at fractional speed, so it takes longer for the animation to complete.
* **Time Scale Absolute:** Interpret the TimeVariant field as an absolute time scale.  An animation played with an absolute time scale plays at that time scale regardless of the global time scale applied to the model.

### Animation Set Completion

**As an Event:** Implicit.

**As an Action:** Target: CActorModel.  Sets the play position of an animation via percentage completion time.  Expects values between 0.0 and 100.0.  A value of 75 indicates that the message should set the animation position to be 3/4 of the way to done.

Wiki Explanation:

* Another way to put it, it's like fast forwarding an animation, over an instant (like offsetting it).
* This can be useful if the modder wishes to use an animation, but not all of it, just a portion. Of course, this skips only the beginning, not its ending.

### Animation Set Duration

**As an Event:** Implicit. It is suggested to use the Term: AnimName (Animation Name) to specify WHICH animation is verified.

**As an Action:** Target: CActorModel.  Specifies how long an animation should take to play.  In this way, the AnimSetDuration message is another way of setting an animation's time scale.  A 2.0 second animation played across a duration of 4.0 seconds would effectively have a time scale of 0.5.

### Animation Set Locked

**As an Event:** Implicit. It is suggested to use the Term: AnimName (Animation Name) to specify WHICH animation is verified.

**As an Action:** Target: CActorModel.  Toggles the animation lock state.  While locked, a CActorModel ignores all incoming animation messages, though it continues to play whatever animations it has currently.

### Animation Set Paused

**As an Event:** Implicit. It is suggested to use the Term: AnimName (Animation Name) to specify WHICH animation is verified.

**As an Action: Target:** CActorModel.  Toggles the pause state of the specified animation.  A paused animation holds its current frame until it is unpaused.

### Animation Set Paused All

**As an Event:** Implicit. It is suggested to use the Term: AnimName (Animation Name) to specify WHICH animation is verified.

**As an Action:** Target: CActorModel.  Toggles the pause state of all animations on the target CActorModel.  When pausing animations, the message additionally pauses all particle systems on the model in accordance with the PausedParticleSystemBehavior field in the ModelData.xml entry for the model contained by the target CActorModel.

### Animation Set Time

**As an Event:** Implicit. It is suggested to use the Term: AnimName (Animation Name) to specify WHICH animation is verified.

**As an Action:** Target: CActorModel.  Sets the play position of the specified animation.  Supports flags for specifying how to interpret the time scale of the play time and for controlling whether animation events are triggered by time jumps within an already playing animation.

### Animation Set Time Scale

**As an Event:** Implicit. It is suggested to use the Term: AnimName (Animation Name) to specify WHICH animation is verified.

**As an Action:** Target: CActorModel.  Sets the time scale of the specified animation.  Time scale is the rate at which the animation plays relative to normal game world time.  A time scale of 0.5 means the animation takes twice as long to complete, while a time scale of 3.0 means the animation finishes in one-third the normal time.

### Animation Set Time Scale (Absolute)

**As an Event:** Implicit. It is suggested to use the Term: AnimName (Animation Name) to specify WHICH animation is verified.

**As an Action:** Target: CActorModel.  Sets the time scale of the specified animation, but unlike normal time scale, absolute time scale does not incorporate a model's global time scale into the final timing result for the animation.  This makes it possible to run an animation at a constant rate, regardless of how the global time scale of the unit is affected.

### Animation Set User Weight

**As an Event:** Implicit. It is suggested to use the Term: AnimName (Animation Name) to specify WHICH animation is verified.

**As an Action:** Target: CActorModel.  Enables client code to scale the contribution of a particular animation with respect to other animations on the model.  The animation system multiplies user blend weight with a blend weight that is managed automatically by the animation system on a per animation basis, as a given animation blends in and out.  The system adds the final blend values of the animations on the top of the stack until a cutoff of 1.0, and then plays every animation incorporated into the calculation before the cutoff at a contribution level that corresponds to the animation's blend weight.  If the sum of the blend weights of all the animations on the animation stack does not reach 1.0, the blend weights are normalized, such that they add up to 1.0.

### Apply Animation Blend Time (As "Anim Blend Time Apply")

**As an Event:** Implicit**.** It is suggested to use the Term: AnimName (Animation Name) to specify WHICH animation is verified.

**As an Action:** Target: CActorModel.  Sets the default blend in and blend out times for all subsequent animations played on the model.

### Aspect Confirm

**As an Event:** Implicit.

**As an Action:**

### Attach

**As an Event:** Implicit.

**As an Action:** Target: CActorModel.  Attaches a specified child CActorModel to the target parent CActorModel, using a supplied set of attach methods to specify the attach point, and an optional set of site ops to further configure the position and rotation of the child CActorModel (beyond simply using the attach point's built in position and rotation).  The SiteOps data field does not need to include a CActorSiteOpAttach, as that is automatically created, configured and placed at the head of the site op chain by the system.  A simplified version of the AttachOffset message.

### Attach Dump

**As an Event:** Implicit.

**As an Action:** Target: CActorModel.  Lists all of the attach points in the target model, along with many of their details.  This includes (but is not limited to) each attach point's: internal name, attach method-compliant name and index, current position, current rotation, target attach volume details and visibility state.

### Attach Model

**As an Event:** Implicit. Can use "Model Name" in terms.

**As an Action:** Target: CActorModel.  Creates a specified CActorModel with a given model and attaches it to a target CActorModel, in a manner similar to the Attach message.  This can be more convenient than the Attach message, since it does not require a separate actor to be defined for each type of model that is created.  This message is a simplified version of the AttachModelOffset message.

### Attach Model Offset

**As an Event:** Implicit.

**As an Action: Target:** CActorModel.  Creates a specified CActorModel with a given model and attaches it to a target CActorModel, like the AttachModel message.  Additionally supports a custom position and rotation offset from the attach point.

### Attach Offset

**As an Event:** Implicit.

**As an Action:** Target: CActorModel.  Attaches a specified child CActorModel to the target parent CActorModel, like the Attach message.  Additionally supports a custom position and rotation offset from the attach point.

### Attach Set Bearings

**As an Event:** Implicit.

**As an Action:** Target: CActorModel.  Sets the bearings of a specified attach point to the bearings of a specified actor, with an optional set of temporary site ops to transform the value before it is set.

### Attachment Set Bearings

**As an Event:** Implicit.

**As an Action:** Target: CActorModel.  Sets the bearings of a specified attach point to an explicit world bearings value.

### Attachment Set Position

**As an Event:** Implicit.

**As an Action:** Target: CActorModel.  Sets the position of a specified attach point to an explicit world position value.

### Attachment Set Position From

**As an Event:** Implicit.

**As an Action:** Target: CActorModel.  Sets the position of a specified attach point to the position of a specified actor, with an optional set of temporary site ops to transform the value before it is set.

### Attachment Set Rotation

**As an Event:** Implicit.

**As an Action:** Target: CActorModel.  Sets the rotation of a specified attach point to an explicit world orientation value.

### Attachment Set Rotation From

**As an Event:** Implicit.

**As an Action:** Target: CActorModel.  Sets the rotation of a specified attach point to the rotation of a specified actor, with an optional set of temporary site ops to transform the value before it is set.

### Behavior

**As an Event:** Triggered when a behavior is used. The most common use would be for Buffs, mostly with the Behavior On/Off Sub Name.

* Negative On/Off literally means when the specified behavior or any is "On" / "Off" with the particular trait of being a **negative** alignement behavior.

### Behavior Level

**As an Event:** Triggers when a unit's veterancy behavior enters a certain level. Use the **Level** term to indicates which level specific

* May also be used to check buff behavior's stack count. 1 Stack = level 1 (use "Level" , see the term section below).
* Even with a single stack buff behavior, this event may still be used for behavior refresh.

### Behavior Stack Item

**As an Event:** Whenever an item is picked up, this one can grant a behavior to its holding unit. This event kicks in when the item is added to the inventory (thus inducing the behavior) or when it is removed (removing the behavior, or at least a stack).

### Billboard Set Towards Camera Distance

**As an Event:** Implicit.

**As an Action:** Target: CActorSiteBillboard.  Specifies how far towards the camera the billboarded model moves from the its input position (which comes from either its host actor, site ops, or a combination of the two).  Objects that are farther towards the camera appear larger.

### Camera Set Active

**As an Event:** Implicit.

**As an Action: Target:** CActorCamera.  If the Active parameter is 1, the message makes the target CActorCamera the active camera for the containing scene.  If the Active parameter is 0, it sets the camera back the default camera for the scene.

### Camera Set Eye Position

**As an Event:** Implicit.

**As an Action:** Target: CActorCamera.  Sets the position of the camera's eye.  The ray between the camera's eye position and the target position forms the direction the camera is looking.

### Camera Set Link

**As an Event:** Implicit.

**As an Action:** Target: CActorCamera.  Specifies the camera for the target CActorCamera to use.  Includes parameters for controlling the transition to the camera's initial camera param values.

### Camera Set Parameter

**As an Event:** Implicit.

**As an Action:** Target: CActorCamera.  Sets any of a number of different camera parameters such as field of view, distance, focal depth, yaw, pitch, roll, near and far clip planes, etc...  Includes parameters for controlling how the camera smoothly transitions to the new parameter value.

### Camera Shake Start

**As an Event:** Implicit.

**As an Action:** Starts a screen shake.  Parameters control who sees the screen shake, its intensity and duration, and how long it takes to blend in and out.

### Camera Shake Stop

**As an Event:** Implicit.

**As an Action:** Stops the current screen shake.

### Cancel Active Animation Blends (As "Anim Cancel Active Blends")

**As an Event:** Implicit.

**As an Action:** Target: CActorModel.  Completes all animation blends instantly, either blending in the animation completely or fully clearing it.

### Clear Combat Reveal Timers

**As an Event:** Implicit.

**As an Action:** Clears the Attack Reveal Time defined in the Gameplay Settings. Units that deal damage are usually revealed for three seconds. This action can be used to prevent teleporting units revealing their new position in the Fog of War and on the minimap,

### Clear Filter

**As an Event:** Implicit.

**As an Action:** Clears the filter value applied to the actor via the Filter field and the SetFilter message.

### Clear Filter Players

**As an Event:** Implicit.

**As an Action:** Clears all player id-specific filters on the target actor.  In other words, this message would clear a filter applied to player 3, but not a filter applied to all enemy players.

### Clear Global Animation Time Scale (As "Anim Clear Time Scale Global")

**As an Event:** Implicit.

**As an Action:** Target: CActorModel.  Clears the global time scale that is being factored into all animations played on the model.  Animation time scale is a hosted prop, so this may additionally clear the global time on relevantly configured child actors.

Wiki Explanation: Removes any Animation Time Scale, launched by the Set Time Scale Global action.

### Clear Local Tint Color

**As an Event:** Implicit.

**As an Action:** Clears any local tint color that has been set on the target actor.  Does not affect any other blended tint colors applied to the actor.  Supports an optional blend out duration.

### Clear Opacity

**As an Event:** Implicit.

**As an Action:** Clears a specific named opacity value or all externally set opacities, if no name is supplied.  Supports an optional blend out duration.

### Clear Scale

**As an Event:** Implicit.

**As an Action:** Clears a specific named scale value or all externally set scales, if no name is supplied.  Supports an optional blend out duration.

### Clear Team Color

**As an Event:** Implicit.

**As an Action:** Clears a specific named team color or all externally set team colors, if no name is supplied.  Supports an optional blend out duration.

### Clear Tint Color

**As an Event:** Implicit.

**As an Action:** Clears a specific named tint color or all externally set tint colors, if no name is supplied.  Supports an optional blend out duration.

### Combat Reveal Complete

**As an Event:** Implicit.

**As an Action: Target:** CActorUnit.  Clears a particular named source of combat revelation on a target actor.  Enables tentacled-based attacks to clear combat reveal when the tentacle dies.  Spells such as the Infestor's Neural Parasite need to reveal the Infestor while it is controlling a player's unit and the victim player can still see the mind controlled unit.  Otherwise, the tentacle appears to be floating in space, disconnected from a mind controlling Infestor that is under the fog of war.

### Create

**As an Event:** Implicit.

**As an Action:** Creates a named actor in the scope of the actor to which the message is sent.  Supports up to three optional content parameters that can dynamically configure the actor that the Create message spawns.  For a CActorModel, the first content parameter is a ModelLink specifying the model the CActorModel should create, instead of using whatever value, if any, is in the CActorModel's Model field.  The interpretation of content parameters varies by type of actor, but the first parameter for any asset-managing actor is always a catalog link that specifies the corresponding asset for that actor.

Wiki Explanation: Is the MAIN action to use to use an actor. An actor doesn't exist for as long as this is not present. Some exceptions such as macros don't need it (because they're add-ons to actors with Create actions).

### Create Copy

**As an Event:** Implicit.

**As an Action:** Like the Create message, the CreateCopy message creates a named actor in the scope of the actor to which the message is sent.  However, the CreateCopy message additionally configures the new actor by copying various specified fields from a source actor.  Data can specify what components of the source actor get duplicated via the newly created actor's AcceptedTransfers and AcceptedHostedPropTransfers fields.

### Creep

**As an Event:** Implicit.

**As an Action:**

### Creep Engulfment Start

**As an Event:** Implicit.

**As an Action:** Target: CActorModel.  Tells a CActorModel to begin applying the creep engulfment visual FX.  Creep engulfment causes creep textures to appear to cover the bottom of models (e.g. buildings and sieged Siege Tanks) when they are on terrain that has been covered with creep.  The message includes parameters for configuring where creep engulfment starts vertically, what distance it covers, and then what distance across which it fades away.  This enables data to configure creep engulfment on a per-model basis, so that it crawls dramatically higher on large buildings, while leaving very short buildings (such as a retracted SupplyDepot) with some visually identifying elements not covered by creep.

### Creep Engulfment Start Transition

**As an Event:** Implicit.

**As an Action:** Target: CActorModel.  Like the CreepEngulfmentStart message, but causes creep engulfment to proceed up the model with a specified rate.  Normally, creep appears on buildings at exactly the rate that the creep spreads to the surrounding vicinity.  In other words, when creep expands into a cell, it covers a building in that cell exactly as the terrain texture appears.  But in cases like a Siege Tank deploying on creep, this would lead to the creep instantly appearing on the tank as soon as it deployed, because the creep is already totally present on that cell.  In these situations, it is preferable to use the CreepEngulfmentStartTransition message to show the creep crawling up the Siege Tank as soon as it is done deploying.

### Creep Engulfment Stop

**As an Event:** Implicit.

**As an Action: Target:** CActorModel.  Tells a CActorModel to stop applying the creep engulfment visual FX.  Typically sent to a unit when creep recedes out of its vicinity, so as to not waste resources on FX that are no longer able to appear.

### Creep Engulfment Stop Transition

**As an Event:** Implicit.

**As an Action:** Target: CActorModel.  Tells a CActorModel to stop applying the creep engulfment visual FX, but with a transition that causes the creep to slide down the side of the model into the ground.  For instance, this message causes creep to appear to slide off of Terran buildings that lift of from a creep covered area.

### Curve Add

**As an Event:** Implicit.

**As an Action:**

### Curve Add Label

**As an Event:** Implicit.

**As an Action:**

### Curve Add Point

**As an Event:** Implicit.

**As an Action:**

### Curve Start

**As an Event:** Implicit.

**As an Action:**

### Curve Stop

**As an Event:** Implicit.

**As an Action:**

### Curve Stop Looping

**As an Event:** Implicit.

**As an Action:**

### Custom Portrait

**As an Event:** Implicit.

**As an Action:** Seems to change the portrait on the event, at the moment where the it is acting. But this does not look to be permanent, as unselecting the unit brings back the old portrait. Altho, it can be solved by using events such as "Unit Portrait" or "Selection Local Update".

### Cutscene

**As an Event:** Enables data to respond to particular events within a running cutscene.

### Cutscene Add Filter

**As an Event:** Implicit.

**As an Action:** Target: CActorCutscene.  Adds a filter to the currently playing cutscene, which turns on cutscene nodes tagged with that filter.

### Cutscene Bookmark

**As an Event:** Enables data to respond when a cutscene bookmark is fired.

### Cutscene Clear Filters

**As an Event:** Implicit.

**As an Action:** Target: CActorCutscene.  Removes all filters from the currently playing cutscene, potentially turning off a range of cutscene nodes.

### Cutscene Go To Bookmark

**As an Event:** Implicit.

**As an Action:** Target: CActorCutscene.  Jumps the target CActorCutscene to the specified bookmark.

### Cutscene Pause

**As an Event:** Implicit.

**As an Action:** Target: CActorCutscene.  Tells the target CActorCutscene to pause its cutscene, if Paused is true, and to resume play otherwise.  The CutscenePlay message may be used to resume.

### Cutscene Play

**As an Event:** Implicit.

**As an Action:** Target: CActorCutscene.  Tells the target CActorCutscene to play its cutscene.

### Cutscene Remove Filter

**As an Event:** Implicit.

**As an Action:** Target: CActorCutscene.  Removes a filter from the currently playing cutscene, which turns off cutscene nodes tagged with that filter.

### Cutscene Set

**As an Event:** Implicit.

**As an Action:** Target: CActorCutscene.  Sets a new cutscene file, swapping what is being played.

### Cutscene Set Filters

**As an Event:** Implicit.

**As an Action:** Target: CActorCutscene.  Explicitly sets the exact set of filters on the currently playing cutscene, potentially turning a range of cutscene nodes on (or off).

### Cutscene Set Time

**As an Event:** Implicit.

**As an Action:** Target: CActorCutscene.  Jumps the target CActorCutscene to the specified time.

### Cutscene Step Bookmark

**As an Event:** Implicit.

**As an Action:** Target: CActorCutscene.  Jumps the target CActorCutscene to the next bookmark or the previous bookmark, depending on whether Forward or Backward is specified, respectively.

### Cutscene Stop

**As an Event:** Implicit.

**As an Action:** Target: CActorCutscene.  Stops the cutscene being played by the current target CActorCutscene.

### Death Custom

**As an Event:** Implicit. A sub name box is included to imput the Custom's death name.

**As an Action:** Target: CActorUnit.  Sent as a response to the UnitDeathCustomize message, as a way to pick a specific named custom death that matches the circumstances of the unit's death.  For example, to specify a specific blood burst death model for biological units that are killed while being held aloft by the Phoenix's Graviton Beam spell (without this, some units would appear to fall over in the middle of the air).

Wiki Explanation: Select a death among the custom deaths set on the actor. The name must match and must be availlable (can be customized) in the Custom Death Priority list of System\_ActorConfig Actor. It is suggested to use "Variation01" or "02" names to avoid spamming more types. Those names are rarely used by Blizzard and work just as fine.

### Death Custom Set Synchronous Pass Chance

**As an Event:** Implicit.

**As an Action:**

### Death Customs Dump

**As an Event:** Implicit.

**As an Action:** Target: CActorUnit.  Lists all of the custom deaths that are associated with the target CActorUnit.  Useful for seeing the actual list of deaths applicable to a unit, given that the deaths can come from a range of sources, including the CActorUnit's definition, its parent actor definitions, or from a global list in CActorGlobalConfig.

### Death Customs Enable Physics

**As an Event:** Implicit.

**As an Action: Target:** CActorUnit.  Turns physics deaths off (or back on) on the target CActorUnit.  For instance, this message is used to prevent campaign Dark Protoss units from triggering physics deaths with regular (light) Protoss death models.

### Destroy

**As an Event:** (Unsure) The Implicit event version of "Destroy" is "Actor Destruction ? This one has to be verified.

**As an Action:** Destroys the target actor.  This sends the ActorDestruction message to data and then purges the actor from memory soon afterwards.  The optional parameter to the message controls the timing of the actual destruction or the removal of assets controlled by the target actor.

Wiki Explanation: Destroy the current actor, and all of its sub-created actors. Be aware that for having a neat animation that wears off gradually, it is sometimes best to call an animation bracket stop "BSD" (usual name for Model Animations) instead of destroying them. Destruction however gives instant results, except for sounds/loop sounds, which are faded out.

### Destroy Particles

**As an Event:** Implicit.

**As an Action:** Target: CActorModel.  Immediately removes all of the individual particles created by particle systems within the model owned by the target CActorModel.  Used to clear extraneous FX in cinematics before a camera cut, for instance, when a scene displays a burning building, and then immediately afterwards shows the building several hours later after the fire has burned out.  Without being able to immediately eliminate particles, the building in the second shot might appear with several lingering bits of fire in the air near it.

### Destroy Ribbons

**As an Event:** Implicit.

**As an Action:** Target: CActorModel.  Immediately removes all of the individual ribbons created within the model owned by the target CActorModel.  As with the DestroyParticles message, this message is frequently used to clear extraneous FX in cinematics before a camera cut.

### Doodad Preserve

**As an Event:** Implicit.

**As an Action:** Target: CActorDoodad.  Tells a doodad that is going to be visually changed (e.g. trees being set on fire by Nukes or bushes being poisoned by creep) to preserve its exact appearance if it is under the fog of war.  This causes the doodad to be appear unmolested to players with no nearby units, so that those players cannot unfairly know where Zerg creep is spreading through the fog of war (for instance).  Doodads that a player can see are unaffected by this message.

### ~~e\_actorMSGUnitCloak~~

See "Unit Cloak". This field wasn't fully implented by blizzard which left its named incomplete.

Still use this field for Unit Cloak events.

### Effect

**As an Event:** Triggered when an effect is used. Sometimes practical to use more than Ability Event when many abilities use the same effects.

### Execute (As "Death Sequence Execute")

**As an Event:** Implicit.

**As an Action:** Target: CActorUnit.  Tells the target CActorUnit to execute a manual death sequence because the appropriate specific custom death has been chosen and it is time to trigger its associated death models and FX.  See the DeathSequencePrepare message tooltip for an enumeration of the steps in the custom death sequence and where the DeathSequenceExecute message fits within that sequence.

### External Finder Add

**As an Event:** Implicit.

**As an Action:** Adds an actor to the external finder, which enables it to be seen by actor requests from any actor in any actor scope anywhere within the same scene.  This is useful for enabling any actor to get references to well known global actors without having to maintain separate global references.  When added to the external finder, the actor can be referenced by its link name or any of its aliases, as long as they are prefaced with '::external.' (e.g. '::external.SMRaynor').

### External Finder Remove

**As an Event:** Implicit.

**As an Action:** Removes an actor from the external finder, so that it can no longer be found via that system.  Useful for ensuring that the external finder namespace does not become polluted by names referring to actors that no longer exist.

### Filter Update

**As an Event:** Implicit.

**As an Action:** Manually commands an actor to update its visibility filters, almost always in response to a UnitPlayerChange message.  Visibility filters control which players can see a particular actor, which is useful for spell AoE indicators (such as the Nuke AoE) that should only be visible to the casting player or some other subset of players.  Actors can be marked to automatically respond to this message via the 'RespondsToUnitPlayerChange' EActorFlag value.

### Force Set Angle

**As an Event:** Implicit.

**As an Action:** Target: CActorForceConeRoundedEnd.  Controls the arc covered by a target CActorForceConeRoundedEnd.  The CActorForceConeRoundedEnd actor applies a physics force in a volume shaped like an ice cream cone, where the point of the cone is at the center of an imaginary sphere with a radius equivalent to the height of the cone, and the rounded part of the cone is a circular region on the surface of the sphere.  The angle directly controls the radius of this circular region.

### Force Set Height

**As an Event:** Implicit.

**As an Action:** Target: CActorForceBox.  Sets the height of the box, which is its size from end-to-end along the Z axis.  An optional blend parameter enables the force to transition to this height smoothly over time.

### Force Set Length

**As an Event:** Implicit.

**As an Action:** Target: CActorForceBox.  Sets the length of the box, which is its size from end-to-end along the Y axis.  An optional blend parameter enables the force to transition to this length smoothly over time.

### Force Set Magnitude

**As an Event:** Implicit.

**As an Action:** Target: CActorForce.  Sets the maximum strength of the force field, which is how much push it exerts on physics objects caught in its field.  A force with the FallOff ForceFlag exhibits diminishing force strengths that are less than the magnitude specified by this message at points that are increasingly distant from the force field's center (this varies across force types).

### Force Set Radius

**As an Event:** Implicit.

**As an Action:** Target: CActorCylinder, CActorSphere.  Sets the radius of the target force actor, which controls how much volume is affected by the force field emitted by the actor.

### Force Set Width

**As an Event:** Implicit.

**As an Action:** Target: CActorForceBox.  Sets the width of the box, which is its size from end-to-end along the X axis.  An optional blend parameter enables the force to transition to this width smoothly over time.

### Glow Start

**As an Event:** Implicit.

**As an Action:** Target: CActorModel.  Starts a pulsing light and dark tinting cycle on the target model.  Useful for highlighting models to the player.

### Glow Stop

**As an Event:** Implicit.

**As an Action:** Target: CActorModel.  Stops a glow started by the GlowStart message.

### Halo Clear Color

**As an Event:** Implicit.

**As an Action: Target:** CActorModel.  Reverts an individual model's override halo color back to the default halo color for all models.  The default halo color is set by the engine to gold, but this can be overridden by sending the SceneHaloSetColor message to the ::Scene actor.

### Halo Set Color

**As an Event:** Implicit.

**As an Action:** Target: CActorModel.  Sets the color of the halo on an individual model.  Without sending this message, a model's halo uses the default global halo color.

### Halo Set Color From Alliance Type

**As an Event:** Implicit.

**As an Action:** Target: CActorModel.  Sets the color of the halo on the model based on the relationship between its owning player id and the player id of the local player.  For instance, 'HaloSetColorFromAllianceType Enemy' typically sets the halo color to red.  The colors chosen by each filter type can be modified from the defaults via the OverrideColors field in GameUIData.xml.  If color blind mode is on, the colors this message chooses are from the ColorBlindColors field in GameUIData.xml, but only when the game is in alliance color mode.

### Halo Start

**As an Event:** Implicit.

**As an Action:** Target: CActorModel.  Starts displaying a halo on the target model.  A halo is a colored outline that wraps around the edges of the owning model, which can sidestep the visual clutter associated with selection circles.  Various SceneHaloSet messages can be used to specify the width, color and strobe frequency used by all halos, in the absence of more specific settings having been applied on a per-model basis.

### Halo Stop

**As an Event:** Implicit.

**As an Action:** Target: CActorModel.  Stops a halo started by the HaloStart message from displaying on the target model.

### Hide Worker Count

**As an Event:** Implicit.

**As an Action:** Target: CActorUnit.  Prevents units like the Command Center and Vespene Geyser harvesting buildings from displaying the number of workers using them for harvesting.

### Hook Clear (As "Anim Hook Clear")

**As an Event:** Implicit.

**As an Action:** Target: CActorModel.  Clears a named anim hook that has previously been set.

### Hook Dump (As "Anim Hook Dump")

**As an Event:** Implicit.

**As an Action:** Target: CActorModel.  Lists the anim hooks on the target actor.

### Hook Set (As "Anim Hook Set")

**As an Event:** Implicit.

**As an Action:** Target: CActorModel.  Creates an animation that mimics the anim props, play position and timescale of another animation on a target actor.

### Host Set Offset

**As an Event:** Implicit.

**As an Action:** Target: CActorBearings.  Configures a host field on the target actor to host off the actor specified in the message parameters, but with extra parameters that make it easy to add position and rotation offsets without additional data.  An optional final parameter allows the addition of further siteOps after the position and rotation offsets, as necessary.

### Host Site Operations Set

**As an Event:** Implicit.

**As an Action:** Target: CActorBearings.  Dynamically sets or replaces the siteOps on a host.  For instance, this enables client data to remove a weapon model attached to a unit's hand and position it on the ground.

Wiki Explanation: Pairs with the "Add" and "Remove" events/actions. The great difference is the ease of replacing a site ops in 1 shot, instead of removing the old ones and adding new ones over 2 steps.

* Be advised, using this action (along with Add/Remove) may prevent Doodads actor from being created properly. This include usage in triggers.

### Hosted Properties Dump All

**As an Event:** Implicit.

**As an Action:** Outputs the current details for all hosted props on the target actor.  When true, the IncludeChildren parameter specifies to output hosted prop values for the target actor and all its children.

### Hosted Property Dump

**As an Event:** Implicit.

**As an Action:** Outputs the specified hosted prop's details on the target actor.  When true, the IncludeChildren parameter specifies to output the hosted prop details for the target actor and all its children.

### Init Modifier (As "Action Init Modifier")

**As an Event:** Send the attack modifier of the effect tree in the action

### Item

**As an Event:** Seems to trigger when manipulating an item in the inventory, including aiming. Sub types are either missing, or unknow as they could only be put in XML mode. Yet every action posed with the item triggers this event.

### Light Set Ambient Occlusion

**As an Event:** Implicit.

**As an Action:** Target: CActorLight.  Determines whether a light is affected by ambient occlusion when it produces shadows.  This applies to both static texture-based ambient occlusion as well as dynamic screen space ambient occlusion (SSAO).  Ambient occlusion of any kind requires the extreme shaders graphics setting.

### Light Set Attenuation Start

**As an Event:** Implicit.

**As an Action:** Target: CActorLight.  Sets the distance at from the light source point at which which the light begins to fade away from maximum brightness.  Attenuation starts before the light's Range value and causes light intensity to reach zero at the Range of the light.

### Light Set Color Multiplier

**As an Event:** Implicit.

**As an Action:** Target: CActorLight.  Effectively sets the intensity of the light.  A value of zero disables the light, values below 1.0 are dim, and values above 1.0 have extra intensity.

### Light Set Falloff

**As an Event:** Implicit.

**As an Action:** Target: CActorLight.  Only applies to spot lights.  Sets the distance radially at which the spot light is fully dimmed.  In other words, attenuation affects the intensity of the light when moving parallel to the direction of the light, whereas falloff affects the intensity of the light when moving perpendicular to the direction of the light.

### Light Set Hotspot

**As an Event:** Implicit.

**As an Action:** Target: CActorLight.  Only applies to spot lights.  Sets the size of the bright spot in the center of the spot light before the light begins to fall off.

### Light Set Opaque

**As an Event:** Implicit.

**As an Action:** Target: CActorLight.  Determines whether the light affects opaque materials.

### Light Set Range

**As an Event:** Implicit.

**As an Action:** Target: CActorLight.  For omni lights, sets the radius within which objects are affected by the light.  For spot lights, sets the distance between the point and end cap of the light's cone of effect.

### Light Set Shadow Casting

**As an Event:** Implicit.

**As an Action:** Target: CActorLight.  Only applies to spot lights.  Determines whether the light casts shadows.  Requires the medium lighting setting or higher.

### Light Set Specular

**As an Event:** Implicit.

**As an Action:** Target: CActorLight.  Determines whether light causes specular highlights.  Requires the ultra lighting setting.

### Light Set Specular Color

**As an Event:** Implicit.

**As an Action:** Target: CActorLight.  Sets the color of the specular highlight created by the light.  This requires the specular setting to be enabled on the light as well as the ultra lighting setting.

### Light Set Transparent

**As an Event:** Implicit.

**As an Action:** Target: CActorLight.  Determines whether the light affects transparent materials.

### Look At Aquire Target

**As an Event:** Implicit.

**As an Action: Target:** CActorLookAt.  Automatically acquires and sets a look at target from certain game messages, including TurretTarget, WeaponStart, and Abil.

* Take note, and this is true for other actions of the game kind, you need to put a certain time (ex: Finish Time) on an ability in order to allow the actor to trace the ability currently engaging somewhere. Without any timer, the engage lasts 0 secs, which will nullify this rotation.

### Look At Disengage

**As an Event:** Implicit.

**As an Action:** Target: CActorLookAt.  Combines the 'RefClear ::HostTarget' and LookAtStop messages.

Wiki Explanation: Used by Cyclone that has multiple turrets, sends a message to its Look At type of actor, requesting it to stop moving the turret at the engaged target. This is a method to manually stop to turret. It may also work on CActorUnit as well.

### Look At Dump Turret Groups

**As an Event:** Implicit.

**As an Action:** Target: CActorModel and CActorLookAt.  Lists the look at turret groups for the model contained by the target CActorModel, or for the model contained in the CActorModel that serves as the source for the target CActorLookAt.

### Look At Engage

**As an Event:** Implicit.

**As an Action:** Target: CActorLookAt.  Combines the LookAtAcquireTarget and LookAtStart messages.

Wiki Explanation: Used by Cyclone that has multiple turrets, sends a message to its Look At type of actor, requesting it to move the turret at the engaged target. This is a method to manually indicate to the turret where to look at. It may also work on CActorUnit as well.

### Look At Set Type

**As an Event:** Implicit.

**As an Action: Target:** CActorLookAt.  Configures the behavior for the turret groups controlled by the look at actor.  The message handler searches for the configuration data by name, searching the target CActorLookAt first, then CActorGlobalConfig, and finally GameUIData.

### Look At Start

**As an Event:** Implicit.

**As an Action:** Target: CActorLookAt.  Commands the target CActorLookAt to start looking at the target, blending turret group orientations over time, as specified in the Start field of LookAtType data.

### Look At Stop

**As an Event:** Implicit.

**As an Action:** Target: CActorLookAt.  Commands the target CActorLookAt to stop looking at the target and revert to the default pose, blending as specified in the Stop field of LookAtType data.

### Model Allow Hit Test

**As an Event:** Implicit.

**As an Action:** If the actor is attached to a unit (most likely model addition), this swaps the possibility or not that clicking on the model can select its related unit.

* This can be changed manually on the Model flag of the actor, but using this events leads to the same outcome.
* Sometimes we want a model to inherit from a model. At same time, we want the model to remain at its location (Hold Position Flag from Host Sit Ops), and these 2 circumstances cause a problem with the model blocking units from clicking on the ground or even from selecting a unit from this model that is away.
* One good example is the Kerrigan Zerg Drop Pods. It is created from a model addition to have it spawn pods in random directions, on the unit. Once it's crashed and decaying, clicking on the decaying pod keeps redirecting the click on the unit the model is attached to, and not the point location. Allow hit test should be disable to fix that.

### Model Aspect Applied

**As an Event:** Sent just after a new model aspect gets applied, and the new aspect model is swapped in.

### Model Aspect Start

**As an Event:** Sent just before a new model aspect gets applied, and before the new aspect model is swapped in.  The ModelSwapped message can be used to configure the aspect model after it has been set.

### Model Aspect Stop

**As an Event:** Sent just before a model aspect is removed or gets replaced by a new model aspect.  The model that is about to be replaced is still live when this message is sent.

### Model Link Customize

**As an Event:** Implicit.

**As an Action:** Target: CActorModel.  Allows data to model swap before the initial model is created for better performance. Should be send in response to the AssetPreInit message.

### Model Link Customize Special

**As an Event:** Implicit.

**As an Action: Target:** CActorModel.  Allows data to model swap before the initial model is created for better performance. Actor will determine the best model link to use based on the specified type. Should be send in response to the AssetPreInit message.

### Model Material Apply

**As an Event:** Implicit.

**As an Action:** Target: CActorModel.  Creates and applies a CActorModelMaterial specified by the given name in the target CActorModel's scope.

Wiki Explanation: When you apply a glaze to a unit, you usually set an event on the Glaze actor itself. In this case, it's the opposite, it is the CActorUnit that looks for the Material (String name must be equal to the Material's actor ID).

### Model Material Apply To

**As an Event:** Implicit.

**As an Action:** Target: CActorModelMaterial.  Applies the model material to the CActorModel specified by the supplied refName.  Can be used to apply the same CActorModelMaterial to more than one CActorModel simultaneously, thereby sharing the model material's animation across multiple models.

### Model Material Dump

**As an Event:** Implicit.

**As an Action:** Target: CActorModel.  Lists all materials currently being applied to the target CActorModel.

### Model Material Remove From (Shows "Model Material Remove")

**As an Event:** Implicit.

Hint: Watch the name on board, it displays "From". This wrong display is a mistake from Blizzard.

**As an Action:** Target: CActorModelMaterial.  Removes the model material from the CActorModel specified by the supplied refName.

### Model Material Remove (Shows "Model Material Remove")

**As an Event:** Implicit.

**As an Action:** Target: CActorModel.  Removes the CActorModelMaterial specified by the given name that is being applied to the target CActorModel.

### Model Sudden Motion Start

**As an Event:** Implicit.

**As an Action:** On certain models, such as Zealot, seems to over extend diffusing accesories of the model, any part of that shines or creates some kind of light, any transpired smoke, etc . Mostly, we are looking here for parts that have some kind of "motion" on their own. For example, Zealot's blades, Overlord's fog (they transpire some kind of fog). When charging, Zealot's actor has such an event.

### Model Sudden Motion Stop

**As an Event:** Implicit.

**As an Action:** Stops the extension of the model's Motion accessories.

### Model Swap

**As an Event:** Triggered when a Model Swap event was used. One can use "ModelName" term to specify which model swap in particular.

**As an Action:** Change the model used by the actor.

### Move

**As an Event:** Implicit.

**As an Action:** Sends to CActorSite actors the request to move its hosted actor.

### Override Apply To (As "Action Override Apply To")

**As an Event:** Implicit.

**As an Action:** Target: CActorAction. (No further explanation given by the editor).

### Physics Initialize

**As an Event:** Implicit.

**As an Action:** Target: CActorModel.  Manually initializes physics on the active model (if it is not initialized already) and turns physics on going forward.

### Physics Terminate

**As an Event:** Implicit.

**As an Action:** Target: CActorModel.  Manually terminates physics on the active model and turns physics off going forward on the target actor.

### Play Sequence (As "Anim Play Sequence")

**As an Event:** Implicit.

**As an Action:** Target: CActorModel.  Plays an animation on the target model, but unlike AnimPlay, specifies the animation name directly, rather than using anim props.  Supports a similar set of parameters to the AnimPlay message.

### Play Unit Sound

**As an Event:** Implicit.

**As an Action:** Play the CActorUnit sounds linked to proper array specified in the "Sub Name" entry.

### Pre Selection Update

**As an Event:** Launches when the cursor hovers above a unit. It does not require the unit to be selected.

### Pre Targeting Update

**As an Event:** Launches when the cursor hovers above a unit from an from an ability targetting. It does not require the unit to be selected.

**As an Action:** Implicit.

### Prepare (As "Death Sequence Prepare")

**As an Event:** Implicit

**As an Action:** Target: CActorUnit.  Enables triggers to manually trigger a CActorUnit's death sequence for cases where the unit appears to die, but is actually merely inactive and will potentially later be resurrected (e.g. a zombie that gets up after being 'killed', or a hero unit that later returns after being killed).  In this custom death case, the death sequence as is follows:  1) client code sends the DeathSequencePrepare message to the target CActorUnit from triggers, 2) the system sends the UnitDeathCustomize to the dying unit's CActorUnit, 3) client data responds by selecting the desired death via the DeathCustomize message from the CActorUnit's data (or even from triggers), 4) client code sends the DeathSequenceExecute message from triggers, and 5) the system sends the UnitDeath message to the dying CActorUnit, officially triggering the specified custom death art and FX.  The DeathSequencePrepare message and the entire custom death sequences are typically unnecessary when using revive-related functionality such as the UnitRevive trigger, since routines such as these can be used even when a unit dies normally.

### Progress Level

**As an Event:** Launches when the specified Progress Actor reaches a stage level.

### Reference Set

**As an Event:** Implicit.

**As an Action: Reference Set**

Summary: Sets a fictional reference (custom name) to adress this actor from any other actor connected to it, from an effect tree, an ability or unit's actor using the effect tree.

1. Reference Name: Custom name (usually choose in the "Reference" section.
2. Reference Source: The location of which actor is assigned the reference. Usually, "Self".

* Hint: Setting another actor (designed as ::Sender in the target box) will most likely work with **::actor.** references. Any other type of reference, or even custom ones seems to fail due to an unknown reason.
* Burrow splat actors, created by movable underground unit , usualy clear their "Host" reference, leaving the actor to stand by where it is, not following the host (unit). This brings to say that actors already have some references when created.

### Reference Set From Msg

**As an Event:** Implicit.

**As an Action:** Works Exactly like Reference Set. The notable difference is its focus on the event, as a location to scope at. More often, the "Sender" (from system) is the matching location. We can talk about Signal Events, that comes from externals actors, yet created by this main actor. Herc Grapple Attack uses it in its action actor, making the impact model become the Reference "GrappleImpactActor". Oddly, using "Reference Set" to Sender as source doesn't work. Probably because this kind of action designates it as a reference, but the duty is not done until all other events launched at the same moment are completed. It is done as the action is launched. It is not even necessary to use the Target Box and put ::Sender.

### Reference Set From Request

**As an Event:** Implicit.

**As an Action:** As Reference Set does, offers the possibility to set a Reference, but with Scope options. Most likely, if a unit is involved, and you want to target a specific location of unit (ex: caster, target, etc.), you can with this action.

### Remove (As "Host Site Ops Remove")

**As an Event:** Implicit.

**As an Action:** Target: CActorBearings.  Dynamically removes a siteOp from the head or tail of an existing siteOp chain on the specified host.

### Remove Animation Blend Time (As "Animation Blend Time Remove")

**As an Event:** Implicit.

**As an Action:** Target: CActorModel.  Removes any user-set blend in and blend out times for all animations played on the model and restores the blend times to the default 150 ms.

### Run Macro

**As an Event:** Implicit.

**As an Action:** Executes the messages in a CActorEventMacroRunnable macro.  The terms field enables the macro to test conditions to determine whether to send a given message.

Wiki Explanation: Executes every action defined in the 'Actions' field of a 'Macro' (EventMacroRunnable) type actor (not to be confused with an 'Event Macro' actor).

### Scene Texture Dump File Aliases

**As an Event:** Implicit.

**As an Action:** Target: CActorScene.  Lists all the file aliases currently registered with the scene, along with the files that they point to.

### Scene Texture Register File Aliases

**As an Event:** Implicit.

**As an Action: Target:** CActorScene.  Registers a 'loose' texture file with the dynamic texture system at run time.  This can be used to point to arbitrary files on a user's hard drive.  Relative paths are based off the user's application document directory (e.g. C:\Users\JRaynor\Documents\StarCraft II).

### Set Angle (As "Arc Set Angle")

**As an Event:** Implicit.

**As an Action:** Target: CActorArc, CActorRegionArc.  Sets the arc of a CActorArc, to control the angle covered by the pie-wedged model it contains.  For CActorRegionArc, controls the area covered by the region.

### Set Cast Shadows

**As an Event:**

**As an Action:** Removes the shadows of a model. This becomes handy for some models that have bugged shadows, such as "Hover Disc" model.

### Set Filter

**As an Event:** Implicit.

**As an Action:** Dynamically sets the filter value applied to the actor via the Filter field at creation time.  The filter value is one of a number of contributing values (including VisibleTo, FilterPlayers, VisibleToPlayers, FilterAtCreation, VisibleToAtCreation) that specifies how an actor will appear to its owner, allies, neutrals and enemies and/or individual players.

### Set Group Icon

**As an Event:** Implicit.

**As an Action:** Changes the icon (wireframe type) of the unit when it is selected in a group.

### Set Height

**As an Event:** Implicit.

**As an Action:** Changes the Height of the actor. Requires the actor to use no Host Site Operation action, in which case, this action will return null.

* Can conflict with "Set Position", since that one has the Z position (same feature).

### Set Hero Icon

**As an Event:** Implicit.

**As an Action:** Changes the current hero icon on the actor on the actor (mainly Unit actor types).

### Set Opacity

**As an Event:**

**As an Action:** Modify the transparency of the model, 1 being the maximum value, down to 0 the lowest.

### Set Position

**As an Event:** Implicit.

**As an Action:** Changes the X, Y, Z Position of the actor. Requires the actor to use no Host Site Operation, in which case, this action will return null.

* Can conflict with "Set Height" action, since the Z position modifies the same position as Height.

### Set Rotation

**As an Event:** Implicit.

**As an Action:**

### Set Rotation Yaw/Pitch/Roll

**As an Event:** Implicit.

**As an Action:** Target: CActorBearings.  Sets the rotation of the target actor with Euler angles.  It starts with the object in a default world orientation and then applies yaw, pitch and roll, in that order, overwriting whatever prior rotation existed on the object.

Wiki Explanation: Changes the X,Y, Z rotation of the actor. Be advised that the rotation point starts from the shadow of the model, in which case, any models that are away from this point will rotate all the way around, causing it to offset from the creation point (for example, if you rotate a standing person by 90 degrees with a Z rotation "Roll", mostly the bottom of the feet will rotate on spot, as the head will touch the ground further from the rotation point).

### Set Speed

**As an Event:** Implicit.

**As an Action:** Changes the Site Mover speed.

* Can only modify Site (Mover) CActorSite actors.

### Set Speed Maximum

**As an Event:** Implicit.

**As an Action:** Changes the Site Mover maximum speed.

* Can only modify Site (Mover) CActorSite actors.

### Set Status Bar On

**As an Event:** Implicit.

**As an Action:** Modifies which status bar is displayed by the actor. For example, we can use this hide/show the capacity of an Arm Magazine ability. This could be used on units on which an Arm Magazine ability only becomes availlable upon an upgrade, since the editor imputs the Status Bar on the unit even if the ability is disabled.

### Set Team Color

**As an Event:**

**As an Action: Set Team Color**

### Set Text

**As an Event:** Implicit.

**As an Action:** Used on CActorText actor. Allows to modify the text without a Text key, with raw method.

### Set Text (Localized)

**As an Event:** Implicit.

**As an Action:** Used on CActorText actor. Allows to modify the text with a Text key.

### Set Time Scale Global (as "Anim Set Time Scale Global")

**As an Event:** Triggers when a global time animation modifier action is launched.

**As an Action:** Target: CActorModel.  Sets the global time scale for the entire model.  This time scale is multiplied with the time scale of each animation in the model, in order to determine that animation's final play speed.  Global time scale is also a hosted prop, which means that it can be inherited by child models.

### Set Tint Color

**As an Event:** Implicit.

**As an Action:** Tint the model's color. This has limited use as it will try to merge color with the model's original color.

### Set Tint Color (Local)

**As an Event:** Implicit.

**As an Action:** Tint the model's color. This has limited use as it will try to merge color with the model's original color. Local in this case means only the model's owning player will be able to see the tint change.

### Set Tint Color Blend

**As an Event:** Implicit.

**As an Action:**

### Set Transfer Override Animation

**As an Event:** Implicit.

**As an Action:**

### Set Unit Icon

**As an Event:** Implicit.

**As an Action:** Changes the actor's unit icon.

### Set Visibility

**As an Event:** Implicit.

**As an Action:** Renders the model invisible or not. This works nearly as the "No Draw" flag, however offers certains differences, such as the possibility to keep the unit selected.

### Set Visible To

**As an Event:** Implicit.

**As an Action:**

### Set Visible To Players

**As an Event:** Implicit.

**As an Action:**

### Set Walk Animation Move Speed

**As an Event:** Implicit.

**As an Action:** Modifies the Walk animation speed, present on Unit actors. This concerns a field that is already modifyable on the actor, but offers to possibility to modify it with the events.

### Set Wireframe

**As an Event:** Implicit.

**As an Action:** Changes the actor's wireframe, based on the aray position (always 0, except for some units like Dark Templar that have more than 1).

### Set Wireframe Shield

**As an Event:** Implicit.

**As an Action:** Changes the actor's Wireframe shield, based on the aray position (usually, protoss have 3 models of wireframe shields).

### Signal

**As an Event:** Triggers when a signal containing the same keyword is activated is sent to this actor.

**As an Action:** Send a signal (an artificial event trigger) to the actor itself or to the target mentionned in the target box. Useful when actors require to communicate between each others. Ex: The bunker shrike turret receives a signal of death from the bunker actor when it dies, triggering the Shrike turret to animate a death animation. Otherwise the actor would remain still as the bunker dies underneath.

### Sound Done

**As an Event:** Triggers when the sound has fully played. Core event for Sound Actors.

**As an Action:**

### State Change

**As an Event:** Used by State Monitor actors, triggers on each Think Interval periodic duration. To be more specific, we need to use terms such as **State Valid** and **State Changed**.

### Status Decrement

**As an Event:** Implicit

**As an Action:** Removes a status Increment (superficial state) to the actor, that can be or was used for further settings.

### Status Increment

**As an Event:** Implicit

**As an Action:** Sets a status (superficial state) to the actor, that can be or was used for further settings. Works exactly like Status Set, but offers less flexibility (actually simpler) and works more like an off and on button. Use the status Decrement to remove.

* It is possible to play with this event to switch (for example) an attack from right arm to left arm. Just remember that you can't do it without using a timer within the actor, the reason being because weapon events all shoot at once, at the same time that they set a new status. So you can't have another Weapon Start event validating the status change, it has not.

### Status Set

**As an Event:** Implicit.

**As an Action:** Sets a status (superficial state) to the actor, that can be or was used for further settings. For example, a burrowing unit can become [Sub Name] "Burrowed" / [Level] 1. When the unit unburrows, then it can become [Sub Name] "Burrowed" / [Level] 0. Use this later as a term to set a different Custom Death according the the Status state and level. Of course, we can use a term with a Unit validator, or simply quality the Unit's death by the source name of the unit, but this action can still be used in some cases, perhaps in ones that requires multiple levels of the same Sub name. This is actually what differenciates this action from "**Status Increment**" that only associates a Sub Name.

* Use the 0 as a way to shut down the status. If a status only changes level, make sure that the number is greater than 0.
* It is possible to play with this event to switch (for example) an attack from right arm to left arm. Just remember that you can't do it without using a timer within the actor, the reason being because weapon events all shoot at once, at the same time that they set a new status. So you can't have another Weapon Start event validating the status change, it has not.

### Supress Walk (As "Animation Baseline Suppress Walk")

**As an Event:** Implicit.

**As an Action:** Target: CActorUnit.  Prevents the baseline from playing the Walk anim even while the unit is walking; the unit will only ever play Stand anims as its baseline while SuppressWalk is active.

### Texture Select By File Alias

**As an Event:** Implicit.

**As an Action:** Target: CActorModel.  Selects a texture file registered as a file alias into a model, using the texture slot defined by the file alias.

### Texture Video Time Override (as "Texture Video Enable Time Override")

**As an Event:** Implicit.

**As an Action:**

### Timer Expired

**As an Event:** Triggered when a timer set in this actor runs its full time course. Use the term "TimerName" to specify which timer. Otherwise, all timers within the actor will be checked.

### Timer Kill

**As an Event:** Implicit.

**As an Action:** Destroy a timer currently on going, preventing it from triggering a **Timer Expire** event.

### Timer Set

**As an Event:** Implicit.

**As an Action:** Set a fictional timer within the actor. Use the Name box to name the timer, and on another event, use the "**Timer Name**" Term to refer to this exact timer.

Duration:

* **Base:** Minimum time for the timer
* **Range:** Random time bonus consecutive to the Base value. Ex: Base = 10, Range = 35 means the timer will expire in a random time between 10 and 45.

### Transition

**As an Event:** Implicit

* In: Transition in the rocking motion, increasing it from nonexistent to fully in effect. Transition in the rocking motion, increasing it from nonexistent to fully in effect.
* Out: Transition out the rocking motion, decreasing it from full effect to nonexistent. Transition out the rocking motion, decreasing it from full effect to nonexistent.

Wiki Explanation:

As it seems, this would give a certain amount of time Site Actors to restore the affected host to its original Rotation Point. For example, Anti Grav Rocker actor uses this so that when the actor is removed, the unit doesn't stay inclined because it was rocked by it. This only seems to affect Rocker actors.

* Transition Out does not destroy the actor. You need to use a proper actor destruction action (based on a Timer Set to synchronize with the Transition).

### Turret Disable

**As an Event:** Launches when the turret is disabled by a buff behavior or when a unit morphs to another unit that doesn't own the said Turret.

### Turret Enable

**As an Event:** Event mainly used for Turret actors. Triggers when a turret is enabled. This also considers units being created, as its turrets enters in action.

### Turret Rotation

**As an Event:** Triggered when a turret executes

### Turret Target

**As an Event:** Occurs when a turret is acting/stopping. There are 2 hidden sub names that are unfortunatly bugged and only usable from XML view: **Set** and **Clear**. You cannot set them from normal viewing and will have to copy the example of the Cyclone:

```
 <On Terms="TurretTarget.CycloneWeaponTurret.Set" Target="CycloneWeaponTurretLookAt" Send="LookAtEngage"/>

```

### Unit Attacked

**As an Event:** Triggers when the CActorUnit receives any source of damage. Damage warning effects (dummy effects dealing 0 damage) do not trigger this event.

### Unit Attacker

**As an Event:** Triggers when the CActorUnit deals any source of damage. Damage warning effects (dummy effects dealing 0 damage) do not trigger this event.

* Is Broken, apparently does exactly what **Unit Attacked** does, which is a mistake.

### Unit Birth

**As an Event:** Triggered when the actor's unit lives the "Birth" stage.

### Unit Blip Update

**As an Event:** Triggered when a unit is "radared". It does launch when the unit appears as an exclamation point, mostly in the fog of war. At that moment, Bip is considered as a start.

### Unit Cloak

Corrected name of "e\_actorMSGUnitCloak" for this wiki. Find the mistaken name in the editor if this event is desired (assuming Blizzard will fix it someday).

Seems also to have invisible Sub Name choices. We would guess that one is "Becomes Cloaked" while the other one is "Uncloaks" So far, this choice is messy, but may still work.

**As an Event:** Triggered when the actor's unit is changing its "Cloak Status".

### Unit Construction

**As an Event:** Triggered when the actor's unit is entering a certain construction stage (start, cancel, end).

### Unit Creation

**As an Event:** Triggered when the actor's unit is created. This takes in consideration Create Unit effects or cases where there is no birth event, or if there is still.

### Unit Damaged

**As an Event:** Triggered when a unit takes damage.

### Unit Death

**As an Event:** Triggered when a unit dies. Can be used in conjunction with the Term: Death, which specifies which kind of death is required to launch the event.

### Unit Detected By Viewer

**As an Event:** Triggers when the unit is sighted by any player around at creation. This mainly used for Hallucinations, that would determine if the fact it is detected causes it to tint in blue for the enemy already, instead of appearing like a normal unit.

### Unit Movement Update

**As an Event:** Triggers when the unit moves, or stop moving.

Wiki Explanation:

* Appears to trigger with Baseline animation updates.
* For example, a unit moving while casting a Morph ability fails to update the Baseline animation to Walk. If said unit comes to a stop, it *will not* trigger Unit Movement Update.

### Unit Player Change

**As an Event:** Triggers when the scoped unit changed player ID. Use **Has Alliance Type With** term to clarify to in the matter of a Player/Ally/Neutral/Enemy scope. If the goal is to have the actor's filter update for the actor's to be seen or not anymore, use the action: **Filter Update** .

### Unit Portrait

**As an Event:** Triggers when the unit does an action that makes the portrait animate.

### Upgrade

**As an Event:** Triggered when upgrade changes. Note that this only bring changes for the Actors that are currently **PRESENT**. For exemple, if an upgrades changes the model of a unit, only the live units will have their model change. Any newly created unit will not be affected the **Upgrade** Event. Use "Actor creation" as a msg type to apply to change to newly created units. If the this change is based on an upgrade, use a term of type "Validate Player", that validator being a Player Requirement checking if the upgrade is imcomplete.

* **IMPORTANT -** This event is bugged, and may sometimes work, other times not. What's for sure, in order to make sure it works properly, the modder must absolutly add the unit that uses the actor using this Upgrade Msg Type in the "Affected Unit Array" field.

### Upgrade Finalized

**As an Event:** Seems to work the same way "Upgrade" does, but with no option on adding or removing the upgrade. So far, this only means when an upgrade is completed.

### Walk Animation Move Speed

**As an Event:** Triggers when the Walk Animation Move Speed action is used.

**As an Action:** Changes the animation speed of the walk animation (based on the Baseline animation propriety).

### Weapon Start

**As an Event:** Triggered when a weapon starts firing. Using the Source Name "Any" can work, but specifying a weapon is recommanded when using many weapons on the same unit (which would use different animations/actions).

### Weapon Stop

**As an Event:** Triggered when a weapon stops firing. Using the Source Name "Any" can work, but specifying a weapon is recommanded when using many weapons on the same unit (which would use different animations/actions).

## Terms

* Terms are additional conditions that have to be met for the **Action** to take place
* Some terms are only available for specific events
* EVERY term can be inverted in XML mode, by sticking a " ! "right before the term's first word. This is handy for prevent from duplicating validators simply for seeking opposite conditions.
	+ Ex: <On Terms="Behavior.Bogus.On; UnitWalking" Send="Destroy"/> (Translated: this means that if a behavior is set to on and the unit is "pathing", it will be destroyed).
	+ <On Terms="Behavior.Bogus.On; !UnitWalking" Send="Destroy"/> (Translated: this means that if a behavior is set to on and the unit is NOT "pathing", it will be destroyed).

### Ability Transport

When using an **Ability Transport** event (with a *TransportLoad* Sub Name for example), this term specifies which actor has to be the rightful CActorUnit of the loaded unit.

* Medivac uses this term to determine if it's a siege tank sieged or a thor that was loaded inside. This term only checks the actor of the unit type, not the unit itself.

### At

Specific to "Effect" Events. Indicates the scope of the action. For example, if creating an animation based on an effect without this term, this effect natually considers the Caster as the fallback point for creation. If specifying "Scope Target", the action will qualify the Target as its host (which is why in many cases the actor may die if the Target dies, which implies to use Stationary Sop on Host Site Ops to let the actor live for its duration). In other situations, you want to force it on caster: If your weapon casts an effect on target and you want the weapon caster to react to that effect by animating, you want to specify "at caster" so that the effect hosts its trigger on the caster of that effect. This would also prevent another same unit type from triggering the animation if attacking the one triggering from the same effect for attacking.

### Cap

Sets a limit number to the Triggering Event occurance in this very actor, forever. Only creating a new actor may bring a new set of amount limit.

* Is not only limited to the very Event/Action line, concerns every other Event with the same triggering qualifications.
* Is specific. Example: Effect. \*\*\*\* Start is not the same than Effect \*\*\*\* Stop.
* If used in an actor's term (outside of event section), limits the amount of this actor to be created on the same scope (ex: related caster, target, etc). It is not a permanent cap, for as long as the previous duplicates are gone.

### Compare Field

Works exactly as the Unit Compare field validator, except made for actors. Also remember that changing the scale of an actor doesn't affect what this term reads, as it only reads the basic catalog value of the field.

### From Effect Tree Descendant

Conditions the effect event (mandatory) to only affect the current actor IF the effect has been reached by the current actor.

* For example, you have a tentacle model that sticks on target (such as Neural Parasite) that was created by an effect. Then, the caster shoots additional tentacles on other targets, having a few tentacles out. Now, one of the enemy target dies and a final effect event from this death is used to end the tentacle that was attached to it. Normally, without this term, the effect event will generalize for every tentacle actor and destroy them all. If you use this term, the event will consider ONLY the tentacle actor that belongs to this effect, meaning that only the ending tentacle will die off.
* This can also be true for Beam Actors.
* This is used by Action Actors in order to prevent multiple action actor to all act at the same time when one of them commands an event. For example, the action has a Launch component and an Impact component. If the Impact arrives according to an effect, it generates ActionImpact and etc. and it is not desired for the other missiles currently being launched to trigger their impact events before arrival.

### Has Alliance Type With

Indicates the type of alliance change according to the Reference. For example, if the main unit of the actor changes team, it as simple as setting the reference to Alias \_Selectable, as most units uses this alias.

### Has Status

Verifies the status of the actor based on the "**Status Increment**" action. This requires a Sub Name only.

### Is Status

Verifies the status of the actor based on the "**Status Set**" action. This requires a Sub Name and a level value (numeric).

### Level

Used in pair with Progress events/actors, also with Behavior Level events. Indicates the Index level of the stage to be checked.

* With Veterancy behaviors, be careful with the numbers and the oprator, because indicating Equal to level 2 for example, will only trigger if level 2 was acquired before the event. It will most likely launch at lvl 3 of the behavior.
* With Buff behaviors, you can check the amount of stacks. Level 1 = 1 stack.
* As far as tested, there seem to be a bug concerning Greater Than / Greater Than or Equal to, causing the term to be ignored.

### Model Name

The name of the Model data used by the actor, right now, right after the said event. Sometimes, this is one of the only reference an actor can use (example: PlacementModel Actors, DeathModel actors) since they can't trace/validate the unit that currently doesn't exist.

* Not to be misunderstood with the **model swap** actions, for which this term does not mean which model was swaped. It may still work in a way that the final model resulting from the action is "this" model name.

### Morph From

Indicates which unit is was the base unit of the morph. Mainly used with **Ability Morph** events that specifies no source.

### Morph To

Indicates which unit is going to be the final stage of the morph (some morph abilities have more than 1, such as Baneling egg for example). Mainly used with **Ability Morph** events that specifies no source.

### Option

Validates the settings in the player's game option.

### Pass Chance

Custom probability that this event/action will launch.0 = 0% 100 = 100% chance.

### Scope Contains

Very useful for simplying the use of actor, this traces any form of reference, from this actor to the host/creator. Mostly, we can use Alias on actors to trace them.

* One good example on how to use it is creating a Range actor with a Selection Local Update event, which for a term has this. Set this alias name on unit's actors on which the range will be created on selecting that unit. In this example, we can see that there is no need to specify a unit in the source name of the event.

### Selected

Indicates that the CActorUnit is currently selected.

### Sound Is Final Sound

Used by Sound Actors. Unsure how this works.

### State Changed

Used by State Monitor actors, with **State Change** events. Indicates previous state that transitioned before becoming now. It is possible to add an exclamation point in XML view, right before the StateChanged word (no space) to invert the logic, meaning that the state must not be true.

### State Valid

Used by State Monitor actors, with **State Change** events. Indicates which current stage just came to be true/activated, based on the Think Interval field of the state monitor actor. It is possible to add an exclamation point in XML view, right before the StateValid word (no space) to invert the logic, meaning that the state must not be true.

### Timer Name

Identifies the name of the Timer used within the actor. This is useful when there are more than 1 timer at use.

### Unit Walking

Validates if the unit is moving, comparable to Moving Speed being greater than 0. One could use a Validate Unit term, but this may replace it as well. It requires however to specify which actor, in which case we use \_Selectable or \_Unit on the alias section.

### Validate Creation Effect

Validates, preferably on the effect (unsure, parent effect?), based on any validators.

### Validate Effect

Validates, preferably on the effect scope, based on any validators. Only available for **Effect** events.

### Validate Morph From

Validates, preferably on the unit at start of the morph scope, based on any validators.

### Validate Morph To

Validates, preferably on the unit at endof the morph scope, based on any validators.

### Validate Player

Validates, preferably on the player scope, based on any validators.

### Validate Portrait Unit

(Unsure) Seems to used validators based on **Portrait Update** / **Portrait Think** events.

### Validate Position

Validates, preferably on the unit point scope, based on any validators.

### Validate Unit

Validates, preferably on the unit scope, based on any validators.

### Validate Unit Type

Validates, preferably on the unit type scope, based on any validators.

### Viewer Treats Unit As

Validates, preferably on any player viewing the host unit scope, if the unit is detected by that viewer.

### Weapon Modifier

Seems to be only available on State Monitor actors, as one of the terme for states. Identifies a particular behavior that modifies the weapon it seems?

## Events not available in Data Module

Events not available in the data editor but some do seem to work: *Not all have been tested yet*.
The only way to impement them is to edit the **Event - Events - Terms** field with **View Raw Data** enabled which leaves the **Source Name** and **Sub Name** values that work with them as **(Unknown)**. The string needed to be entered to refer to them is not always the same as what they are called.

#### Action Center

* Used as EffectActionCenter
* Triggers when action impacts the target (Can use "*::HostLaunchInternal*" "*::HostImpactInternal*" to reference site or model)

#### Action Commence

* Used as EffectActionCommence
* Triggers when action is started and when it impacts

#### Action Participants

* Used as EffectActionParticipants
* Triggers when action is started and when it impacts

#### Missile (Pre Host)

* Used as MissilePreHost
* Triggers when missile is launched via actor action