npc_maker

From Valve Developer Community
Jump to navigation Jump to search
English (en)Translate (Translate)
edit
Class hierarchy
CNPCMaker
CBaseNPCMaker
CBaseEntity
monstermaker.cpp
Npc maker.png

npc_maker is a point entity available in Half-Life 2 series Half-Life 2 series, Portal series Portal series, Team Fortress 2 Team Fortress 2, Alien Swarm Alien Swarm, and Half-Life: Source Half-Life: Source.

AltNames.pngAltNames: In Half-Life: Source Half-Life: Source and Half-Life Deathmatch: Source Half-Life Deathmatch: Source, this entity is also tied to monstermaker.

Entity Description

Spawns a class of NPC at its position when told to. Typically used to provide a continuous wave of attackers during an ambush, or to replace killed enemies in a standoff-type situation.

For more control over the properties of the spawned NPCs, see the npc_template_maker point entity, which uses 'template' NPCs as a base, or the point_template entity, which is more suited for spawning an entire squad into the appropriate positions.

Note.pngNote:Some keyvalues, spawnflags, effect flags, inputs, or outputs might not affect an NPC, based on the functionality and coding of the NPC.

Keyvalues

Name (targetname) <string>
The name that other entities refer to this entity by, via Inputs/Outputs or other keyvalues (e.g. parentname or target).
Also displayed in Hammer's 2D views and Entity Report.
See also:  Generic Keyvalues, Inputs and Outputs available to all entities

Class name of spawned NPC (NPCType) <npcclass>
Class of all NPCs spawned by this entity.
Childrens' Name (NPCTargetname) <string>
Targetname of all NPCs spawned by this entity.
Childrens' Squad Name (NPCSquadname) <string>
Squad name of all NPCs spawned by this entity.
Childrens' Hint Group (NPCHintGroup) <string>
Hintgroup of all NPCs spawned by this entity.
Relationship ([todo internal name (i)]) <string> !FGD
<string|targetname or classname> <string|disposition> <int|rank>

Changes whether spawned NPCs like or dislike certain others. Used like the ai_relationship entity, with all spawned NPCs as the subjects. This keyvalue is not included in Valve's FGDs.

Values for disposition are:
  • D_HT: Hate
  • D_FR: Fear
  • D_LI: Like
  • D_NU: Neutral
Weapons (additionalequipment) <choices>
What weapon each NPC should spawn with. Choices are:

BaseNPCMaker:

Num. of NPCs (MaxNPCCount) <integer>
Number of NPCs that will spawn before this spawner is exhausted.
Frequency (SpawnFrequency) <string>
How often (in seconds) a new NPC will be spawned. If set to -1, a new NPC will be made when the last NPC dies.
Max Live NPCs (MaxLiveChildren) <integer>
Maximum number of live children allowed at any one time (new ones will not be made until one dies). If set to -1, no limit is applied.


Flags

BaseNPCMaker:
  • 16 : Fade Corpse
  • 32 : Infinite Children
  • 64 : Do Not Drop
  • 128 : Don't Spawn While Visible
  • 1024: Don't use dynamic difficulty (only in SiN Episodes)

Inputs

BaseNPCMaker:

Spawn
Spawns an NPC.
Toggle
Toggles the spawner enabled/disabled state.
Enable
Enables the spawner.
Disable
Disables the spawner.
AddMaxChildren <integer>
Adds to the number of NPCs that can spawn before the spawner is exhausted. If an exhausted spawner is given some children to spawn, it still wont begin spawning until it is re-enabled with the Enable input.
SetMaxChildren <integer>
Sets the number of NPCs that can spawn before the spawner is exhausted. If an exhausted spawner is given some children to spawn, it still won't begin spawning until it is re-enabled with the Enable input.
SetMaxLiveChildren <integer>
Sets the maximum number of NPCs that can be alive at any one time from this spawner.
SetSpawnFrequency <float>
Sets how often (in seconds) a new NPC will be spawned.


Outputs

BaseNPCMaker:

OnSpawnNPC <string>
Fired when an NPC is spawned. The activator is the NPC, and the string is the name of the NPC.
OnAllSpawned
Fired when the spawned is exhausted (all children have been spawned).
OnAllSpawnedDead
Fired when the spawner is exhausted (all children have been spawned) and all spawned children have died.
OnAllLiveChildrenDead
Fired when all spawned children have died. This does not mean the spawned is exhausted, so a new child may be spawned any time after this (unless the maker is disabled).

See also

  • npc_template_maker - Uses template NPC entities for more control over spawned NPCs.
  • point_template - Spawns NPCs (or other entities) in-place; can deal with up to sixteen different targetnames simultaneously, and multiple entities per targetname.