From Valve Developer Community
Jump to: navigation, search

<Half-Life 2> ai_goal_assault is a point entity available in the Half-Life 2 series.

Entity description

This entity specifies which NPCs are to carry out an assault, and triggers it when any conditions given are met. One goal can handle multiple rally points. Must be active to be able to be triggered.

Upon activation, the entity will round up all its actors (specified in its actors keyvalue), and instruct them to select their assault_rallypoint(s) and move to it/them. Upon arrival at the rally point(s), each actor then begins waiting for the assault cue (specified in the AssaultCue keyvalue), unless instructed Don't wait for a cue..

Upon the cue, it will then instruct all actors to begin moving on from their current rally point to the assault_assaultpoint specified by the rally point.



Name <string>
The targetname that other entities refer to this entity by.
Entity Scripts <scriptlist> (New with Left 4 Dead 2)
Space delimited list of VScript files (without file extension) that are executed after all entities have spawned. The scripts are all executed in the same script scope, later ones overwriting any identical variables and functions.
Script think function <string> (New with Left 4 Dead 2)
Name of a function in this entity's script which will be called automatically every 100 milliseconds (ten times a second) for the duration of the script. It can be used to create timers or to simulate autonomous behavior. The return value (if present) will set the time until the next call.
Note:Try to avoid expensive operations in this function, as it may cause performance problems.
Actor(s) to affect <target_name_or_class>
NPCs that should perform this assault. This field supports wildcards, if they are needed.
Note:Each NPC needs its own rally point, so if you use wildcards for this field, you should also use wildcards for the rallypoint.
Rally Point Set <targetname>
The name of the assault_rallypoint(s) at which this assault will begin. This field can also support wildcards, so that you can enter the root name of all rally points for this assault followed by an asterisk '*', to match all with the same root.
Search Type <choices>
How to search for the entities using the name specified in the actorname keyvalue. The Entity Name choice will make the engine search for a targetname of an entity, while the Classname choice will make it search for the name of an entity class (like npc_headcrab).
  • 0 : Entity Name
  • 1 : Classname
Start Active <boolean>
Should this goal be active when the map begins?
Assault Cue <choices>
Chooses when the goal is going to be set after this entity has been activated.
Literal Value Description Cue...
1 Entity System Input After it has received a BeginAssault input through the I/O system.
2 Gunfire When the entity 'hears' gunfire.
3 Don't wait for a cue. Immediately after being activated.
Rally Point Selection Method <choices>
Select the Rally Point Selection Method.
Literal Value Description
0 Priority, Distance (default)
1 Random



Removes this entity from the world.
Removes this entity and all its children from the world.
AddOutput  <string>
Evaluates a keyvalue/output on this entity. It can be potentially very dangerous, use with care.
Format: <key> <value>
Format: <output name> <targetname>:<inputname>:<parameter>:<delay>:<max times to fire, -1 means infinite>
FireUser1 to FireUser4
Fire the OnUser outputs; see User Inputs and Outputs.
Use  !FGD
Same as a player invoking +use; may not do anything. Can also be invoked by creating an output that does not specify an input.
This input is not included in Valve's FGDs.
RunScriptFile  <script> (New with Left 4 Dead 2)
Execute a VScript file from disk, without file extension. The script contents are merged with the script scope of the receiving entity.
RunScriptCode  <string> (New with Left 4 Dead 2)
Execute a string of VScript source code in the scope of the entity receiving the input. String quotation may be needed when fired via console.
In <Left 4 Dead 2>, the code is executed in the script scope of the entity that fires the output, not the one receiving the input.
Warning:Never try to pass string parameters to a script function with this input. It will corrupt the VMF structure because of the nested quotation marks, which then must be removed manually with a text editor.
CallScriptFunction  <string> (New with Left 4 Dead 2)
Execute a VScript function in the scope of the receiving entity.
Note:This input is missing from some games FGD files.
SetLocalOrigin  <origin> (New with Alien Swarm)
Set this entity's origin in the map.
Note:This input is missing from some games FGD files.
SetLocalAngles  <angles> (New with Alien Swarm)
Set this entity's angles in the map.
Note:This input is missing from some games FGD files.
If the entity is not yet active, this input will activate it.
Deactivates the assault. NPCs are released from the assault behaviour and control is relinquished back to the standard AI/other triggers, as desired by the level designer.
IIf the entity is active and this entity's Assault Cue keyvalue is set to Entity System Input, begin the assault(s).
Tip:This will cause NPCs to "skip over" the rally point if they aren't there already. Useful for using rally points for selecting actors.


OnUser1 to OnUser4
These Outputs each fire in response to the firing of the like-numbered FireUser1 to FireUser4 Input; see User Inputs and Outputs.

(New with Left 4 Dead)

This Output fires when the entity is killed and removed from the game.

See also