Ai relationship
From Valve Developer Community
| Table of contents |
Entity description
Sets a relationship type between two parties. These parties can be an NPC, an NPC class, or the player(s). There are four types of relation: Neutral, hate, like and fear. Certain NPC classes will react differently when in these states.
To do: Do some more behavioral research on NPC(s) and post your observations below. Possibly these results could later on be placed in the corresponding article of each NPC instead.
Neutral
Will not attack. Rebels avoid player apologetically, and cannot be commanded. Zombies will remain still and only turn to face the target.
Hate
Considers the target an enemy/enemies and will attack.
Like
Will not attack the target. Rebels follow automatically, and can be commanded. The player will lower his gun until the target shows signs of hostility (but can still shoot the target before this). Zombies will remain still and only turn to face the target.
Fear
Avoids the target. Headcrabs run away without attacking. Metropolice attacks. Rebels avoid without attacking, and cannot be commanded. Zombies will occasionally also swipe at the target as if it is in their flight path, but these swipes will afflict no damage to player, unless the zombie has been attacked.
Note: The relationship can refer to the player as !player (single-player) or any client as player (single-player or multiplayer).Keyvalues
- targetname <target_source>
- Defines the name that other entities refer to this entity by.
- hammerid [Episode Two Update]
- <integer readonly> This id is used for debugging purposes in Hammer.
- subject
- <target_name_or_class> This is the NPC(s) whose disposition will change.
- target
- <target_name_or_class> This is the NPC(s) ( or
!playerorplayer) about whom the Subject(s) will change their disposition.
- disposition
- <choices> Choose the way the Subject(s) should feel about the target(s)
Literal Value Description 1 Hate 2 Fear 3 Like 4 Neutral
- radius
- <float> Radius for subject
- rank
- <integer> How much the Subject(s) should Like/Hate/Fear the target(s). Higher priority = stronger feeling.
- StartActive
- <boolean>
- Reciprocal
- <boolean> Set this to have the new relationship mirrored by target
Flags
- 1 : Notify subject of target's location [Episode One Update]
- 2 : Notify target of subject's location [Episode One Update]
Inputs
- Kill
- 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 == infinite)>
- Causes this entity's OnUser1-4 outputs to be fired. See User Inputs and Outputs.
- ApplyRelationship
- Apply relationship changes
- RevertRelationship
- Revert relationship changes
- RevertToDefaultRelationship [Episode One Update]
- Revert relationship changes to the default relationship, which may have changed since this ai_relationship was applied. This returns control of the entity relationship to the code.
Outputs
- Fired in response to FireUser1-4 inputs. See User Inputs and Outputs.
- !activator = activator
See also
Categories: TODO | AI | Entities

