npc_enemyfinder
Jump to navigation
Jump to search
Note:Not in
Black Mesa: Definitive Edition, it is available only in
Black Mesa 2012. Use func_tanktrain instead.
Note:Some keyvalues, spawnflags, effect flags, inputs, or outputs might not affect an NPC, based on the functionality and coding of the NPC.
npc_enemyfinder
is a point entity available in all Source games.
![]() |
---|
CNPC_EnemyFinder |
![]() |



Entity description
This NPC is invisible, immobile, and does not cause collisions. Its sole purpose is to notify the squad mates whenever an enemy comes into its view so put it into the same squad as NPCs whose enemies npc_enemyfinder has to consider its enemies.
When running ent_text command on npc_enemyfinder, colourful lines start pointing from it towards player and other NPCs.
- Blue lines mean that NPCs that this entity is in squad together with consider the entity that the line points towards to neutral.
- Red lines mean that they hate that entity.

Situation where npc_enemyfinder's squadmates - npc_metropolice consider player an enemy at the start of the apartment raid

Keyvalues
CBaseCombatCharacter:
CAI_BaseNPC:
DamageFilter:
|
Parentname:
- Parent (parentname) <targetname>
- Specifies a movement parent. An entity will maintain its initial offset from its parent. An attachment point can be added to the end of the name, separated by a comma.
- FieldOfView (FieldOfView) <string>
- Min Search Dist (MinSearchDist) <integer>
- Max Search Dist (MaxSearchDist) <integer>
- Player pass issue time (freepass_timetotrigger) <float>
- Amount of time an enemy is hidden after which a 'free pass' on reaquire is granted.
- Player pass duration (freepass_duration) <float>
- After granted 'free pass', the amount of time a target is allowed before reaquire.
- Player pass move tolerance (freepass_movetolerance) <float>
- After granted 'free pass', the distance the target is allowed to move before reaquire.
- Player pass refill rate (freepass_refillrate) <float>
- After free pass begins expiring, how much the time the target gets back for every second they hide again.
- Player pass peek time (freepass_peektime) <float>
- How long targets in cover are allowed to peek without penalty.
- Start On (StartOn) <boolean>
Flags
BaseNPC flags
- Wait Till Seen : [1]
- Prevents this NPC from seeing (or being seen) until it enters a player's viewcone.
- Gag : [2]
- Won't make IDLE sounds until it's angry.
- Fall to ground (unchecked means teleport to ground) : [4]
- Drop Healthkit : [8]
- Causes this NPC to drop an item_healthvial upon dying.
- Efficient : [16]
- Don't acquire enemies or avoid obstacles
- Wait For Script : [128]
- Forces this NPC to "wait" in an idle state until it finishes playing a scripted_sequence.
- Long Visibility/Shoot : [256]
- By default, increases a NPC's sight range to
6,000
units and allows it to attack from anywhere within that distance.
- Fade Corpse : [512]
- Think outside PVS : [1024]
- Allows this NPC to run its regular AI outside of any player's PVS.
- Template NPC : [2048]
- Marks this NPC as a template for entities like npc_template_maker. The NPC will not spawn on its own. This is not needed for point_template.
- Do Alternate collision for this NPC (player avoidance) : [4096]
- Don't drop weapons : [8192]
- Ignore player push : [16384] (in all games since
)
- Entity won't give way to player.
Inputs
BaseNPC inputs
CAI_BaseNPC:
- ActivateSpeedModifier !FGD
- DisableSpeedModifier !FGD
- Break
- Smash into pieces. If this is not possible, disappear.
- BecomeRagdoll (in all games since
)
- Remove itself and instantly become a ragdoll with zero force (just go limp). OnDeath, etc. outputs will NOT be fired.
- ForceInteractionWithNPC <string> <string> (in all games since
)
- Force the NPC to use a dynamic interaction with another NPC. Syntax is <targetname> <dynamic interaction>.
- ForgetEntity <targetname>
- Clears out the NPC's knowledge of a named entity.
- UpdateEnemyMemory (in all games since
)
- Update (or create) this NPC's memory of of the given entity.
- GagEnable
- GagDisable
- Gagged NPCs won't speak (or moan, caw, etc.) unless made to be a choreographed scene.
- HolsterWeapon (in all games since
)
- UnholsterWeapon (in all games since
)
- Force the NPC to holster or unholster their weapon. Ignored if the NPC is scripting or if the NPC doesn't use weapons.
- HolsterAndDestroyWeapon (in all games since
)
- Same as
HolsterWeapon
, except the weapon is destroyed once it has been concealed.
- IgnoreDangerSounds <float>
- Ignore danger sounds for the specified number of seconds.
- InsideTransition !FGD
- OutsideTransition !FGD
- SetBodyGroup <integer>
- HACK: Sets this NPC's body group (from 0–n).
- SetEnemyFilter <string>
- SetHealth <integer>
- Set the NPC's health.
- SetMaxLookDistance <float> (only in
)
- Sets the maximum look distance for the NPC. Defaults are 2048 and 6000 for long range NPCs.
- SetRelationship <string|targetname or classname> <string|disposition> <int|rank>
- Changes whether this NPC likes or dislikes certain others. Used like the ai_relationship entity, with this NPC as the subject.
- Values for
disposition
are:D_HT
: HateD_FR
: FearD_LI
: LikeD_NU
: Neutral
- SetSquad <string>
- Change the name of this NPC's squad. Leaving the parameter blank will remove the NPC from any existing squad.
- StartScripting
- StopScripting
- Enter/exit scripting state, where NPCs ignore a variety of stimulus that would make them break out of their scripts. They ignore danger sounds, ignore +Use, don't idle speak or respond to other NPCs' idle speech, and so on.
- Wake
- Wakes up the NPC if it is sleeping.
CBaseCombatCharacter:
- KilledNPC !FGD
- Tells the entity it killed something. Despite the name, this can include a player. This input will be automatically sent by the victim when they die.
- physdamagescale <float>
- Scales damage energy when this character is hit by a physics object. With a value of 0 the NPC will take no damage from physics.
DamageFilter:
Parentname:
- SetParent <string>
- Move with this entity. See Entity Hierarchy (parenting).
- SetParentAttachment <string>
- Change this entity to attach to a specific attachment point on its parent. The entity will teleport so that the position of its root bone matches that of the attachment. Entities must be parented before being sent this input.
- SetParentAttachmentMaintainOffset <string>
- As above, but without teleporting. The entity retains its position relative to the attachment at the time of the input being received.
- ClearParent
- Removes this entity from the the movement hierarchy, leaving it free to move independently.
- TurnOn
- Turn on: Look for enemies.
- TurnOff
- Turn off: Stop looking for enemies.
Outputs
|
- OnLostEnemies
- Fires when the enemy finder has no enemies.
- OnAcquireEnemies
- Fires when the enemy finder acquires enemies.
See also
- npc_enemyfinder_combinecannon - Special version of this entity.