npc_puppet
Jump to navigation
Jump to search
npc_puppet
is a point entity available in all Source games. It is a puppet entity that mimics the animations of a target NPC.
For example, place a combine soldier then an npc_puppet and edit the npc_puppet to follow the soldier and it will mimic whatever the soldier does.
Keyvalues
- Animation target ([todo internal name (i)]) <string>
- NPC entity to mimic.
- Target attachment point name ([todo internal name (i)]) <string>
CBaseCombatCharacter:
CAI_BaseNPC:
DamageFilter:
|
- Name (targetname) <string>
- The name that other entities refer to this entity by, via Inputs/Outputs or other keyvalues (e.g.
parentname
ortarget
).
Also displayed in Hammer's 2D views and Entity Report.See also: Generic Keyvalues, Inputs and Outputs available to all entities
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.
- World Model (model) <model path>
- The model this entity should appear as. 128-character limit.
- Skin (skin) <integer>
- Some models have multiple skins. This value selects from the index, starting with 0. May be overridden by game code.
Tip:Hammer's model browser automatically updates this value if you use it to view different skins.
- Model Scale (modelscale) <float> (in all games since
) (also in
)
- A multiplier for the size of the model.
Tip:In
Hammer++ with a prop selected in 3D view, hold Ctrl and scroll the mouse wheel to change the modelscale in increments of 0.5. Holding ⇧ Shift will scale it in smaller increments of 0.05.
- Bodygroup (body / SetBodyGroup) <integer>
- Some models have multiple submodels. This value selects from the index, starting with 0. May be overridden by animations and/or game code.
Note:If both body and SetBodyGroup are present (even if set to 0), body will be prioritized.
- Sequence (sequence) <integer> !FGD
- Default animation sequence for the model to be playing after spawning. May be overridden by game code.
- Lighting Origin (lightingorigin) <targetname>
- Select an entity (not info_lighting!) from which to sample lighting instead of the entity's origin or $illumposition.
Shadow:
- Disable Shadows (disableshadows) <boolean>
- Prevents the entity from creating cheap render-to-texture shadows, or lightmap shadows if the entity is a prop_static. Does not affect shadow mapping.
- Disable Receiving Shadows (disablereceiveshadows) <boolean>
- Prevent the entity from receiving dynamic shadows on itself.
- Shadow Cast Distance (shadowcastdist) <integer> !FGD
- Sets how far the entity casts dynamic shadows. 0 means default distance from the shadow_control entity.
- Disable Shadow Depth (disableshadowdepth) <boolean> (in all games since
)
- Used to disable rendering into shadow depth (for projected textures) for this entity.
- Disable flashlight (disableflashlight) <boolean> (in all games since
)
- Used to disable projected texture lighting and shadows on this entity.
- Projected Texture Cache (shadowdepthnocache) <integer choices> (in all games since
)
- 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.
Choices - 0 : Default
- 1 : No cache - render every frame
- 2 : Cache it - render only once
- Render in Fast Reflections (drawinfastreflection) <boolean> (in all games since
)
- If enabled, this entity will render in fast water reflections (i.e. when a water material specifies
$reflectonlymarkedentities
) and in the world impostor pass.
Flags
BaseNPC flags
Note:This flag is disabled in
episodic for player companions, because the
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.



StartScripting
input does this.Don't drop weapons : [8192]
Ignore player push : [16384] (in all games since )
- Entity won't give way to player.
Inputs
- SetAnimationTarget <string>
- Set the animation target to use. An empty string will disable the puppet.
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.
- 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.
Studiomodel:
- SetBodyGroup <integer>
- Set the model's body group.
- AlternativeSorting <boolean>
- Uses an alternative method for telling which objects are in front of others. Use if this object draws incorrectly when seen through transparent things.
- SetModelScale <string> (in all games since
) (also in
)
- Sets the model scale. Takes two values separated by a space. The first is the target model scale. The second value is the number of seconds the change in scale will be spread over. If there is no second value, the model will scale instantly.
Warning:Negative or extremely high values can cause crashes!
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
)
- This object will not receive light or shadows from projected textures.
- EnableReceivingFlashlight (in all games since
)
- This object may receive light or shadows from projected textures.
Reflection:
- DisableDrawInFastReflection (in all games since
)
- Turns off rendering of this entity in reflections when using
$reflectonlymarkedentities
in water material.
- EnableDrawInFastReflection (in all games since
)
- Turn on rendering of this entity in reflections when using
$reflectonlymarkedentities
in water material.
ToggleDraw:
- DisableDraw (in all games since
)
- Add the EF_NODRAW flag to this entity. Some entities manage this on their own so be aware you can override that value.
Outputs
|
Studiomodel:
- OnIgnite
- Fired when this object catches fire.