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.

Image:Todo.png 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.

Image:note.png Note: The relationship can refer to the player as !player (single-player) or any client as player (single-player or multiplayer).

Keyvalues

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 !player or player ) 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