npc_metropolice

From Valve Developer Community
Jump to: navigation, search
English (en)русский (ru)
... Icon-Important.png
Npc metropolice.jpg

npc_metropolice is a point entity available in the Half-Life 2 series. They serve as City 17's primary police force and are one of the most basic Combine enemies.

npc_metropolice uses a small arsenal of weapons and little tactical judgement, designed for the first few levels of Half-Life 2 and its authoritarian atmosphere. npc_combine_s is usually used for the Combine's actual military force.

The gordon_precriminal global state makes all npc_metropolice neutral to the player and citizens, pushing the player away when they get too close and chasing them when provoked. This is used throughout the Half-Life 2 chapter Point Insertion and works best with stunsticks.

In Half-Life 2, they serve as the Combine's thought police, collectively known as Civil Protection, and mainly use stunsticks to brutally police the citizens of City 17. They are the player's main opponent throughout the first few chapters of Half-Life 2, using explosive barrels and mounted guns to their advantage and disadvantage, but they're eventually replaced with npc_combine_s and disappear until the chapter Anticitizen One, where they again function as the main Combine enemies for most of the chapter.


In code, it is represented by theCNPC_MetroPoliceclass, defined in thenpc_metropolice.hfile.
Note.pngNote:Some keyvalues, flags, inputs, or outputs might not affect an NPC, based on the functionality and coding of the NPC.

Dedicated ConVars

Cvar/CommandParameters or default valueDescriptorEffect
metropolice_chase_use_follow0arbitrary numberCauses pre-criminal npc_metropolice with stunsticks to follow the player indefinitely.
metropolice_move_and_melee1arbitrary numberMakes agitated npc_metropolice activate their stunsticks right as they begin to swing, as opposed to stopping for a moment to activate it once they successfully navigate to their target.
metropolice_charge1arbitrary numberToggles whether npc_metropolice with pistols charge at the player.
sk_metropolice_health40health amountnpc_metropolice health when spawned.
sk_metropolice_simple_health26health amountnpc_metropolice health when the Simple cops flag is checked.
sk_metropolice_stitch_distance1000hammer unitsDistance that npc_metropolice will begin to attempt stitching.
sk_metropolice_stitch_reaction1arbitrary numberMultiplier for the amount of time shots in the stitch line travel from their starting position to the player. Fractions make the npc go through the stitching behavior multiple times, and values above 1 make the stitching slower.
Icon-Bug.pngBug:0 will make the game freeze the moment stitching is attempted.
sk_metropolice_stitch_at_hitcount1arbitrary numberNumber of times a stitching npc_metropolice is allowed to hit a player. Due to random bullet spread, the result may be slightly more or less.
sk_metropolice_stitch_behind_hitcount3arbitrary numberNumber of times a stitching npc_metropolice is allowed to hit a player while behind the player's airboat.[confirm]
sk_metropolice_stitch_tight_hitcount2arbitrary numberNumber of times a stitching npc_metropolice is allowed to hit a player while aiming directly at the player's airboat.[confirm]
sk_metropolice_stitch_along_hitcount2arbitrary numberNumber of times a stitching npc_metropolice is allowed to hit a player while alongside the player's airboat.[confirm]

Flags

  •  [1] : Wait Till Seen
       Prevents this NPC from seeing (or being seen) until it enters a player's viewcone.
  •  [2] : Gag
       Won't make IDLE sounds until it's angry.
  •  [4] : Fall to ground (unchecked means teleport to ground)
  •  [8] : Drop Healthkit
       Causes this NPC to drop an item_healthvial upon dying.
  •  [16] : Efficient
       Don't acquire enemies or avoid obstacles
  •  [128] : Wait For Script
       Forces this NPC to "wait" in an idle state until it finishes playing a scripted_sequence.
  •  [256] : Long Visibility/Shoot
       By default, increases a NPC's sight range to 6,000 units and allows it to attack from anywhere within that distance.
  •  [512] : Fade Corpse
  •  [1024] : Think outside PVS
       Allows this NPC to run its regular AI outside of any player's PVS.
  •  [2048] : Template NPC
       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.
  •  [4096] : Do Alternate collision for this NPC (player avoidance)
    Note.pngNote:This flag is disabled in Half-Life 2: Episode One Half-Life 2: Episode Two episodic for player companions, because the StartScripting input does this.
  •  [8192] : Don't drop weapons
  •  [16384] : Ignore player push (in all games since Source 2006)
       Entity won't give way to player.
  •  [131072] : Simple cops
       Sets the NPC's health to the value of sk_metropolice_simple_health instead of sk_metropolice_health and enables more dramatic flinch animations. Used in the early canal levels of the game.
  •  [262144] : Rappel Obsolete
       Deprecated. Use the "Waiting to rappel" keyvalue instead.
  •  [524288] : Always stitch
       This forces the stitching behavior to occur. If the npc_metropolice is armed with an SMG and the player is beneath them, they will shoot a meandering, closing path of bullets (like the first metrocop in d1_canals_07.
  •  [1048576] : No chatter
       Automatically gags the NPC and supposedly prevents some metrocop-specific speech that standard gagging doesn't. This is now believed to be non-functional.
  •  [2097152] : Arrest enemies
  •  [4194304] : No far stitching
       Stops stitching if the player is over 6000 units away.
    Note.pngNote:That's about the distance between the two forcefields on the bridge in d2_coast_07.
  •  [8388608] : Prevent manhack toss
       Prevents the NPC from deploying their manhack(s). See the EnableManhackToss input.
  •  [16777216] : Allowed to respond to thrown objects
       In pre-criminal mode, allows the NPC to chase players who have annoyed them. If this flag isn't enabled, they will call for the nearest available npc_metropolice to chase the agitator. This also occurs if the NPC is using anything other than a stunstick. This does not override the settings of an ai_goal_police.
  •  [33554432] : Mid-range attacks (halfway between normal + long-range)
       Extends the NPC's preferred attack distance to 3500 units.

Keyvalues

Weapons (additionalequipment) <choices>
What weapon this NPC should spawn with. Choices are:
  • weapon_pistol
    Note.pngNote:With this weapon, npc_metropolice will periodically take a couple steps toward the player if they can path to them.
  • weapon_smg1
  • weapon_stunstick
  • weapon_shotgun
    Warning.pngWarning:The default model (police.mdl) doesn't have proper animations for this weapon.
  • Nothing
Number of Manhacks (manhacks) <choices>
Allows a npc_metropolice to carry up to two manhacks on their right shoulder.
Icon-Bug.pngBug:If the player gets to about melee distance from a npc_metropolice while they're deploying a manhack, they may be interrupted and the manhack be stuck on their hand until the npc_metropolice dies, after which it will deploy normally.
Pistol starts drawn (weapondrawn) <boolean>
Whether or not the pistol should start unholstered. The pistol can only be unholstered when the NPC spots an enemy, and inputs like UnholsterWeapon have no effect. This keyvalue has no effect on other weapons.
Icon-Bug.pngBug:If the pistol has not yet been drawn and the npc_metropolice must attack during a scripted behavior such as an assault or scripted_sequence, they may skip drawing their weapon and use an invisible gun.

RappelNPC:
Waiting to Rappel? (waitingtorappel) <boolean>
If yes, this NPC spawns suspended in air and awaits a BeginRappel input. It will then spawn a zipline and slide down. When it hits the ground, NPC will cut away the line and try to move forward a few feet to make room for the next NPC. The NPC will not attempt to clear its landing space if it cannot do so by taking a few steps forward.

BaseNPC:
Relationship <string> !FGD
Changes whether this NPC likes or dislikes certain others. Used like the ai_relationship entity, with this NPC as the subject. Format: <string|targetname or classname> <string|disposition> <int|rank>.
Values for disposition are:
  • D_HT: Hate
  • D_FR: Fear
  • D_LI: Like
  • D_NU: Neutral
Target Path Corner (target) <targetname>
The path_corner that this NPC will move to after spawning.
Squad Name (squadname) <string>
NPCs that are in the same squad (i.e., have matching squad names) will share information about enemies and will take turns attacking and covering each other.
Hint Group (hintgroup) <string>
Hint groups are used by NPCs to restrict their hint-node searching to a subset of the map's hint nodes. Only hint nodes with matching hint group names will be considered by this NPC.
Hint Limit Nav (hintlimiting) <boolean>
Limits NPC to using specified hint group for navigation requests. Does not limit local navigation.
Sleep State (sleepstate) <choices>
Holds the NPC in stasis until specified condition. See also Wake Radius and Wake Squad.
  • 0: None
  • 1: Waiting for threat
  • 2: Waiting for PVS
  • 3: Waiting for input, ignore PVS
  • 4: Auto PVS
  • 5: Auto PVS after PVS
Wake Radius (wakeradius) <float>
Auto-wake if player comes within this distance.
Wake Squad (wakesquad) <boolean>
Wake all of the NPCs squadmates if the NPC is woken.
Enemy Filter (enemyfilter) <targetname>
Filter entity to test targets against.
Ignore unseen enemies (ignoreunseenenemies) <boolean>
Prefers visible enemies, regardless of distance or relationship priority.
Physics Impact Damage Scale (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.

Base:
Name (targetname) <string>
The name that other entities use to refer to this entity.
Parent (parentname) <targetname>
Maintain the same initial offset to this entity. An attachment point can also be used if separated by a comma at the end. (parentname [targetname],[attachment])
Tip.pngTip:Entities transition to the next map with their parents
Tip.pngTip:phys_constraint can be used as a workaround if parenting fails.
Origin (X Y Z) (origin) <coordinates>
The position of this entity's center in the world. Rotating entities typically rotate around their origin.
Note.pngNote:Hammer does not move the entities accordingly only in the editor.
Pitch Yaw Roll (X Y Z) (angles) <angle>
This entity's orientation in the world. Pitch is rotation around the Y axis, yaw is the rotation around the Z axis, roll is the rotation around the X axis.
Note.pngNote:This works on brush entities, although Hammer doesn't show the new angles.
Classname (classname) <string> !FGD
Determines the characteristics of the entity before it spawns.
Tip.pngTip:Changing this on runtime still has use, like making matching an entry in S_PreserveEnts will persist the entity on new rounds!
Flags (spawnflags) <integer> !FGD
Toggles exclusive features of an entity, its specific number is determined by the combination of flags added.
Effects (effects) <integer> !FGD
Combination of effect flags to use.
Entity Scripts (vscripts) <scriptlist> (in all games since Left 4 Dead 2) (also in Team Fortress 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. Scripts executed on the worldspawn entity will be placed in root scope.
Think function (thinkfunction) <string> (in all games since Left 4 Dead 2) (also in Team Fortress 2)
Name of the function within this entity's script that'll be called automatically every 100 milliseconds, or a user-defined interval if the function returns a number. Avoid expensive operations in this function, as it may cause performance problems.
Lag Compensation (LagCompensate) <boolean> (in all games since Left 4 Dead 2) !FGD
Set to Yes to lag compensate this entity. Should be used very sparingly!
Is Automatic-Aim Target (is_autoaim_target) <boolean> (in all games since Counter-Strike: Global Offensive) !FGD
If set to 1, this entity will slow down aiming movement for consoles and joystick controllers when the entity is under the crosshairs.

BaseAnimating:
World Model (model) <string>
The model this entity should appear as. 128-character limit.
Skin (skin or ModelSkin Alien Swarm) <integer>
Some models have multiple skins. This value selects from the index, starting with 0.
Collisions (solid) <choices>
Method of collision for this entity.
Choices
  • 0: None
  • 1: BSP (QPhysics) !FGD
    Icon-Bug.pngBug:In Portal 2 Portal 2, if an entity using QPhysics collisions is hit by Gel, the game will crash!
  • 2: Bounding Box
  • 3: Oriented Bounding Box (Use for runtime spawned rotated brush entities) !FGD
  • 4: Oriented Bounding Box, constrained to Yaw only !FGD
  • 5: Custom/Test (Usually no collision with anything) !FGD
  • 6: VPhysics
Hitbox Set (hitboxset) <string> !FGD
Sets the $hboxset to use.
Body Group (body or SetBodyGroup) <integer> !FGD
Sets the the active $bodygroup.
Model Index (modelindex) <short> !FGD
Given the number index from dumping the cl_precacheinfo modelprecache table, sets entity model to the index.
Warning.pngWarning:If an entity has animations that will be played, then the set model also must have its own sequences, else the game crashes.
Model Scale (modelscale) <float> (in all games since Half-Life 2: Episode Two)
A multiplier for the size of the model. Negative values are accepted. Does not alter the physics collisions in most cases, however.
Warning.pngWarning:Negative or extremely high values can cause crashes!
Note.pngNote:Scale may not appear in Hammer Hammer 4.x, but will appear in-game (tested in Day of Defeat: Source). This is fixed in Hammer++ Hammer++.

Animating

Sequence (sequence) <integer> !FGD
Default animation sequence for the model to be playing after spawning.
Playback Rate (playbackrate) <float> !FGD
A multiplier of the framerate at which animations are played, negative values are accepted. Default is 1.0.
Cycle (cycle) <float> !FGD
The current frame of the current animation, on a range from 0-1.
Texture Frame (texframeindex) <integer> !FGD
The initial frame number for all animated textures on this entity.

Effects - Render


Start Fade Distance (fademindist) <float>
Distance at which the entity starts fading. If 0 or less, the entity will disappear instantly when end fade is hit. The value will scale appropriately if the entity is in a 3D Skybox.
End Fade Distance (fademaxdist) <float>
Distance at which the entity ends fading. If 0 or less, the entity won't disappear at all. The value will scale appropriately if the entity is in a 3D Skybox.
Fade Scale (fadescale) <float>
If specified in the worldspawn, or if the engine is running below DirectX 8, entities will fade out even if the fade distances above aren't specified. This value gives more control over when this happens: numbers smaller than 1 cause the entity to fade out at further distances, and greater than 1 cause it to fade out at closer distances. Using 0 turns off the forced fade altogether. See also $noforcedfade.
FX Amount/Transparency (0–255) (renderamt) <integer>
Transparency amount, requires a Render Mode other than Normal. 0 is invisible, 255 is fully visible.
Render Color (R G B) (rendercolor) <color255>
Color tint.
Render FX (renderfx) <choices>
Various somewhat legacy alpha effects.
Render Effects
Icon-Bug.pngBug:Alpha effects from 0 to 10 are unavailable due to the bug in code in Counter-Strike: Global Offensive Counter-Strike: Global Offensive
  • 0: None
  • 1: Slow Pulse (varies alpha by ±16 over a period of 1.5 s)
  • 2: Fast Pulse (varies alpha by ±16 over a period of 0.4 s)
  • 3: Slow Wide Pulse (varies alpha by ±64 over a period of 1.5 s)
  • 4: Fast Wide Pulse (varies alpha by ±64 over a period of 0.4 s)
  • 5: Slow Fade Away (decreases alpha by -1 per frame/(in all games since Left 4 Dead) Fades out over 4 s)
  • 6: Fast Fade Away (decreases alpha by -4 per frame/(in all games since Left 4 Dead) Fades out over 1 s)
  • 7: Slow Become Solid (increases alpha by +1 per frame/(in all games since Left 4 Dead) Fades in over 4 s)
  • 8: Fast Become Solid (increases alpha by +4 per frame/(in all games since Left 4 Dead) Fades in over 1 s)
  • 9: Slow Strobe (transparent 0.8 s, visible 0.8 s, repeat)
  • 10: Fast Strobe (transparent 0.2 s, visible 0.2 s, repeat)
  • 11: Faster Strobe (transparent 0.09 s, visible 0.09 s, repeat)
  • 12: Slow Flicker (transparent 0.18 s, visible 1.5 s, repeat)
  • 13: Fast Flicker (transparent 0.14 s, visible 0.2 s, repeat)
  • 14: Constant Glow ("NoDissipation;" purpose uncertain—for sprites?) (not in Counter-Strike: Global Offensive)
  • 15: Distort (causes unnatural flickering and position shifting)/(in all games since Left 4 Dead) Fade Out (instant; not very useful outside of code)
  • 16: Hologram (Distort + "distance fade")/(in all games since Left 4 Dead) Fade In (instant; not very useful outside of code)
  • 17: Scale Up ("Explode"/"scale up really big!" causes wild stretching of model parts) (in Source 2013)/Fade Wider Pulse (varies alpha by ±255 over a period over a period of 0.26 s) (in all games since Left 4 Dead)
    Confirm:which branches/games is it available in, and where does it do what?
  • 18: Glow Shell (purpose unclear) (in all games since Source 2013) (not in Counter-Strike: Global Offensive)
    Confirm:what does this do? and which games is it in?
  • 19: Clamp Minimum Scale ("keep this sprite from getting very small (SPRITES only!)") (not in Counter-Strike: Global Offensive)
  • 20: Environmental Rain ("for environmental rendermode, make rain") (in Source 2013) (not in Counter-Strike: Global Offensive)
    Confirm:which games? may be nonfunctional.
  • 21: Environmental Snow ("for environmental rendermode, make snow") (in Source 2013) (not in Counter-Strike: Global Offensive)
    Confirm:which games? may be nonfunctional.
  • 22: Spotlight FX ("TEST CODE for experimental spotlight") (in Source 2013) (not in Counter-Strike: Global Offensive)
  • 23: Ragdoll ("HACKHACK: TEST CODE for signalling death of a ragdoll character;" ragdolls an entity but doesn't kill it) (in Source 2013) (not in Counter-Strike: Global Offensive)
    Confirm:which games? may be nonfunctional?
  • 24: Fade Wider Pulse (varies alpha by ±255 over a period over a period of 0.26 s) (in Source 2013) (not in Counter-Strike: Global Offensive)
  • 25: kRenderFXMax/Fade Near (removed since Left 4 Dead) (not in Counter-Strike: Global Offensive)
Blank image.pngTodo: what does this do? may be nonfunctional
Render Mode (rendermode) <choices>
Set a non-standard rendering mode on this entity.
Render Modes
  • 0: Normal
  • 1: Color
  • 2: Texture
  • 3: Glow
  • 4: Solid/Alphatest Obsolete
  • 5: Additive
  • 6: Removed, does nothing Obsolete
  • 7: Additive Fractional Frame
  • 8: Alpha Add
  • 9: World Space Glow
  • 10: Don't Render

Effects - Environment


Disable Shadows (disableshadows) <boolean>
Prevent the entity from creating cheap render-to-texture shadows. Does not affect shadow mapping.
Disable Receiving Shadows (disablereceiveshadows) <boolean>
Prevent the entity from receiving shadows on itself.
Shadow Cast Distance (shadowcastdist) <integer>
Sets how far the entity casts dynamic shadows. 0 means default distance from the shadow_control entity.
Lighting Origin (LightingOrigin) <targetname>
Select an entity (not info_lighting!) from which to sample lighting instead of the entity's origin.
Lighting Origin Offset (LightingOriginHack) <targetname> (not in Left 4 Dead series) !FGD Obsolete
Deprecated. The info_lighting_relative from which to sample lighting instead of the entity's origin. Use Lighting Origin instead.
Disable Flashlight (disableflashlight) <boolean> (in all games since Portal 2)
Used to disable projected texture lighting and shadows on this entity. Identical to EF_NOFLASHLIGHT.
Disable ShadowDepth (disableshadowdepth) <boolean> (in all games since Portal 2)
Makes this entity not cast a shadow from env_projectedtexture entities. Identical to EF_NOSHADOWDEPTH.
Projected Texture Cache (shadowdepthnocache) <choices> (in all games since Portal 2)
Used to hint projected texture system whether it is sufficient to cache shadow volume of this entity or to force render it every frame instead. Identical toEF_SHADOWDEPTH_NOCACHE.
  • 0: Default
  • 1: No cache—render every frame
  • 2: Cache it—render only once

Miscellaneous

Glow Backface Multiple (glowbackfacemult) <float> (only in Left 4 Dead 2) !FGD
If this object has a glow effect, multiply the effect by this much on the sides of the object that are facing away from the viewer.
Move Type (MoveType) <choices> (in all games since Alien Swarm) !FGD
Sets a movetype for this entity, which changes its movement behavior.
Move Types
  • 0: None, don't move
  • 1: Isometric
  • 2: Walk, player only, moving on ground
  • 3: NPC, movement
  • 4: Fly, no gravity
  • 5: Fly, with gravity
  • 6: Physics
  • 7: Push
  • 8: Noclip
  • 9: Ladder, for players on ladders
  • 10: Spectator
  • 11: Custom
Collision Group (CollisionGroup) <choices> (in all games since Alien Swarm) !FGD
Sets a collision group for this entity, which changes its collision behavior.
Groups
  • 0: None
  • 1: Debris, collides only with the world and static props
  • 2: Debris, with trigger interaction
  • 3: Interactive Debris, doesn't collide with other debris
  • 4: Interactive, collides with everything except debris
  • 5: Player
  • 6: Breakable Glass
  • 7: Vehicle
  • 8: Player Movement
  • 9: In-Vehicle
  • 10: Weapon
  • 11: Vehicle Clip
  • 12: Projectile
  • 13: Door blocker, not permitted to go near doors
  • 14: Passable Door
  • 15: Dissolving
  • 16: Pushaway
  • 17: NPC Actor, NPCs ignore the player
  • 18: NPC Scripted, NPCs do not collide with each other
No Animation Sounds (SuppressAnimSounds) <boolean> (in all games since Portal 2) !FGD
Silences sounds linked to animations.DXLevelChoice:
Minimum / Maximum DX Level (mindxlevel / maxdxlevel) <choices> (removed since Left 4 Dead)
The entity will not exist if the engine is running outside the given range of DirectX Versions.
Choices
Warning.pngWarning:If these are used, the object may break when the user switches their DirectX settings.
SystemLevelChoice:
Minimum / Maximum Effect Details Level (mincpulevel / maxcpulevel) <choices> (in all games since Left 4 Dead)
Don't render for players with Effect Details levels that exceed the minimum or maximum.[Note.pngKey names are related to cpu_level cvar used by Effect Details.]
Choices
  • 0: Default ("Low" formincpulevel, "High" formaxcpulevel)
  • 1: Low
  • 2: Medium
  • 3: High
Minimum / Maximum Shader Details Level (mingpulevel / maxgpulevel) <choices> (in all games since Left 4 Dead)
Don't render for players with Shader Details levels that exceed the minimum or maximum.[Note.pngKey names are related to gpu_level cvar used by Shader Details.]
Choices
  • 0: Default ("Low" formingpulevel, "Very High" formaxgpulevel)
  • 1: Low
  • 2: Medium
  • 3: High
  • 4: Very High

DamageFilter:

Damage Filter (damagefilter) <targetname>
Name of the filter_damage_type entity that controls which entities can damage us.

Inputs

EnableManhackToss
Enables manhack toss (for when it's been disabled by the Prevent manhack toss spawnflag)
SetPoliceGoal <targetname>
Assigns the NPC to an ai_goal_police.
ActivateBaton
Makes the NPC flick a held weapon_stunstick on.

RappelNPC:
BeginRappel
Start rappelling now.

BaseNPC:
AddHealth <integer> (in all games since Half-Life 2: Episode Two)
RemoveHealth <integer> (in all games since Half-Life 2: Episode Two)
Add to or remove from the NPC's health.
SetHealth <integer>
Set the NPC's health.
Break
Smash into pieces. If this is not possible, disappear.
BecomeRagdoll  (in all games since Half-Life 2: Episode Two)
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 Half-Life 2: Episode One)
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 Half-Life 2: Episode One)
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 Half-Life 2: Episode One)
UnholsterWeapon  (in all games since Half-Life 2: Episode One)
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 Half-Life 2: Episode One)
Same as HolsterWeapon, except the weapon is destroyed once it has been concealed.
IgnoreDangerSounds <float>
Ignore danger sounds for the specified number of seconds.
physdamagescale <float>
Scales the damage taken when this character is hit by a physics object. 0 means this feature is disabled for backwards compatibility.
SetBodyGroup <integer>
HACK: Sets this NPC's body group (from 0–n).
SetMaxLookDistance <float> (only in Garry's Mod)
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: Hate
  • D_FR: Fear
  • D_LI: Like
  • D_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.

Base:
AddContext <string>
Adds to the entity's list of response contexts. See Context.
AddOutput <string>
Assigns a new keyvalue/output on this entity. For keyvalues, some rely on extra necessary code to be ran and won't work if its simply just changed through this input. There is a strict format that must be followed:
// Format of changing KeyValues: "AddOutput [key] [value]"
//// Raw text:
"OnUser1" "!self,AddOutput,targetname new_name"

// Format of adding an Output: "AddOutput {targetname}:{inputname}:{parameter}:{delay}:{max times to fire, -1 means infinite}"
//// Raw text:
"OnUser1" "!self,AddOutput,OnUser1:SetParent:!activator:0.0:-1"
// Arguments can be left blank, but the empty blank should still be contained.
//// Raw text:
"OnUser1" "!self,AddOutput,OnUser1:ClearParent::0.0:-1"
ClearContext
Removes all contexts from this entity's list.
ClearParent
Removes this entity from the the movement hierarchy, leaving it free to move independently.
FireUser1 to FireUser4
Fires the respectiveOnUseroutputs; see User Inputs and Outputs.
Kill
Removes this entity and any entities parented to it from the world.
KillHierarchy
Functions the same as Kill, although this entity and any entities parented to it are killed on the same frame, being marginally faster thanKillinput.
RemoveContext <string>
Remove a context from this entity's list. The name should match the key of an existing context.
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.
Use  !FGD
Same as a player invoking +use; no effect in most cases.
DispatchResponse <string> !FGD
Dispatches a response to the entity. See Response and Concept.
DispatchEffect <string> (removed since Left 4 Dead) !FGD
Dispatches a special effect from the entity's origin; See also List of Client Effects. Replaced by the particle system since Left 4 Dead.
RunScriptFile <script> (in all games since Left 4 Dead 2) (also in Team Fortress 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> (in all games since Left 4 Dead 2) (also in Team Fortress 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.
Icon-Bug.pngBug:In Hammer, using string arguments will corrupt the VMF file's structure, making the file unviewable for the next Hammer session.
Note.pngFix:Remove the string argument manually with a text editor.
Note.pngNote:Team Fortress 2 Backtick characters ` are replaced with quotation marks at runtime, allowing quotation marks to be used when normally not possible.
CallScriptFunction <string> (in all games since Left 4 Dead 2) (also in Team Fortress 2) !FGD
Calls a VScript function defined in the scope of the receiving entity.
TerminateScriptScope  (only in Team Fortress 2) !FGD
Destroys the script scope of the receving entity.
SetLocalOrigin <coordinates> (in all games since Alien Swarm) !FGD
Send this entity to a spot in the map. If the entity is parented to something, it will be offset from the parent by this amount.
SetLocalAngles <angles> (in all games since Alien Swarm) !FGD
Set this entity's angles.

Model:
skin <integer>
Selects a skin from the model's index, starting with 0.
SetBodyGroup <integer>
Sets the the active $bodygroup.
Ignite
Makes the entity catch on fire indefinitely.
IgniteLifetime <float>
Makes the entity catch on fire for a given amount of time.
IgniteNumHitboxFires <integer> (removed since Left 4 Dead 2)
Makes the entity catch on fire with a given number of hitbox fire particles. Does not function correctly in Left 4 Dead 2 onward.
IgniteHitboxFireScale <float> (removed since Left 4 Dead 2)
Makes the entity catch on fire with a given scale for hitbox fire particles. Does not function correctly in Left 4 Dead 2 onward.
BecomeRagdoll
Kills the entity and creates a client-side ragdoll from the model. Input is only passed if the model contains $collisionjoints. For other models, phys_convert can be used instead.
SetLightingOrigin <targetname>
Sets the entity's lighting origin to use this entity's position.
SetLightingOriginHack <targetname> (removed since Left 4 Dead) Obsolete
Deprecated. Offsets the entity's lighting origin by their distance from an info_lighting_relative. Use SetLightingOrigin instead.
fademindist <float>
Sets distance at which the entity starts fading. If <0, the entity will disappear instantly when end fade is hit. The value will scale appropriately if the entity is in a 3D Skybox.
fademaxdist <float>
Sets distance at which the entity ends fading. If <0, the entity won't disappear at all. The value will scale appropriately if the entity is in a 3D Skybox.
SetModelScale <vector> (only in Source 2013)
Multiplies the size of the model. Does not alter the physics collisions in most cases. Can take two values separated by a space, in which case the first value would be the target model scale and the second value would be the number of seconds the change in scale will be spread over. If there is no second value, the model will scale instantly.
Tip.pngTip:The modelscale keyvalue can be AddOutputed as a workaround for other games with this input missing.
Warning.pngWarning:Negative or extremely high values can cause crashes!
SetCycle <float> (only in Team Fortress 2)
Skip to a specific point in the current animation.
SetModel <string> (only in Team Fortress 2)
Changes the model to the specified path. Form of models/ammo/ammo_us.mdl.
Icon-Important.pngImportant:Absolutely NO quotes! Make sure you use the forward slash '/'. Merasmus says to heed this advice, else thou shalt corrupt the VMF.
SetPlayBackRate <float> (only in Team Fortress 2)
Change the animation speed multiplier.
Alpha <integer>
Sets the entity's transparency to a number from 0 (invisible) to 255 (fully visible). Requires the entity to have its Render Mode (rendermode) set to a number other than 0.
AlternativeSorting <boolean>
Swaps the rendering order of the entity. Used to attempt to fix sorting problems when rendering, for example an object rendering in front of translucent materials.
Color <color255>
Sets an RGB color for the entity.
SetDamageFilter <targetname>
Sets a filter for this entity for when it receives damage.
EnableDamageForces
Allows the entity to be pushed by damage done to it (usually force amount correlates with the damage done).
DisableDamageForces
Prevents the entity from being pushed by damage done to it.

Reflection:

DisableDrawInFastReflection  (in all games since Portal 2)
Turns off rendering of this entity in reflections when using $reflectonlymarkedentities in water material.
EnableDrawInFastReflection  (in all games since Portal 2)
Turn on rendering of this entity in reflections when using $reflectonlymarkedentities in water material.

Shadow:

DisableShadow
Turn dynamic shadows off for this entity. Identical to applying  EF_NOSHADOW.
EnableShadow
Turn dynamic shadows on for this entity.
DisableReceivingFlashlight  (in all games since Portal 2)
This object will not receive light or shadows from projected textures.
EnableReceivingFlashlight  (in all games since Portal 2)
This object may receive light or shadows from projected textures.

DamageFilter:

SetDamageFilter <string>
Sets the entity to use as damage filter. Pass in an empty string (no parameter) to clear the damage filter.

Outputs

OnStunnedPlayer
Fires when this NPC hits the player with a stunstick.
OnCupCopped
Fired when this NPC is hit by a prop with the targetname cupcop_can.

RappelNPC:
OnRappelTouchdown
Fires when done rappelling.

BaseNPC:
OnDamaged
Fired when this NPC takes damage (!activator is the damage inflictor).
OnDamagedByPlayer
Fired when this NPC is hurt by a player (!activator is the attacker or vehicle driver [if friendly fire]).
OnDamagedByPlayerSquad
Fired when this NPC is hurt by a player OR by one of the player's squadmates (!activator is the attacker or vehicle driver [if friendly fire]).
OnDeath
Fired when this NPC is killed (!activator is the killer).
OnDenyCommanderUse
Fired when this NPC has refused to join the player's squad.
OnForcedInteractionAborted
Fired when the NPC aborts a forced interaction for some reason (target NPC died, couldn't be pathed to, etc.).
OnForcedInteractionStarted
Fired when the NPC starts a forced interaction.
OnForcedInteractionFinished
"NPCs in actbusies can no longer perform dynamic interactions."
Blank image.pngTodo: What does this mean?
OnHalfHealth
Fired when this NPC reaches half of its maximum health.
OnHearCombat
Fired when this NPC hears combat sounds.
OnHearPlayer
Fired when this NPC hears the player.
OnHearWorld
Fired when this NPC hears a sound (other than combat or the player).
OnFoundEnemy <targetname>
Fired when this NPC establishes line of sight to its enemy.
OnLostEnemy
Fired when this NPC loses its enemy. Usually due to the enemy being killed/removed, or because this NPC has selected a newer, more dangerous enemy.
OnLostEnemyLOS
Fired when this NPC loses line of sight to its enemy.
OnFoundPlayer <targetname>
Fired when this NPC establishes line of sight to its enemy, and that enemy is a player.
OnLostPlayer
Fired when this NPC loses its enemy, and that enemy was a player. Usually due to the enemy being killed/removed, or because this NPC has selected a newer, more dangerous enemy.
OnLostPlayerLOS
Fired when this NPC loses line of sight to its enemy, and that enemy is a player.
OnSleep
Fired when this NPC enters a sleep state.
OnWake
Fired when this NPC comes out of a sleep state.

Base:

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.
OnKilled  (only in Left 4 Dead)
This output fires when the entity is killed and removed from the game.

Model:

OnIgnite  !FGD
Fired when the entity catches fire, such as from an env_entity_igniter or the Ignite inputs.
OnFizzled  (only in Portal 2)
Fired when this entity is fizzled by a trigger_portal_cleanser or, for prop_weighted_cube, the Dissolve or SilentDissolve inputs.
Icon-Bug.pngBug:It does not fire when the object is fizzled by other means such as env_entity_dissolver.