npc_hover_turret
Jump to navigation
Jump to search
Bug:The turret's laser will only render when it is in its neutral or searching modes, meaning it will not render when firing at the player. This is fixed in
[todo tested in ?]
Bug:The hover turret will attempt to fire at the player through portals, but is unable to actually do so. [todo tested in ?]
Bug:The hover turret's tether snaps easily, and may do so randomly at the start of the map. [todo tested in ?]
Bug:Crashes the game when picked up in Co-op. [todo tested in ?]
Bug:The game may crash if a hover turret is firing upon a tethered hover turret. [todo tested in ?]
npc_hover_turret
is a point entity available in Portal 2. It is a turret variant cut from Portal 2 which would have hung from the ceiling and fired a laser at the player. It remains in the final game, but is somewhat buggy.
It is hardcoded to use the model models/npcs/hover_turret.mdl
, which is missing in the final game. According to early screenshots, it originally used a model based on prop_glados_core from the first game. Attempts have been made to restore this model, but currently have issues, such as the turret not being able to aim vertically.




Workaround:Increasing the cvar
hover_turret_break_dist
makes this less likely to happen, but also makes it harder for the player to deliberately pull the turret off the tether.


FGD Code
@PointClass base(BaseNPC) studioprop("models/npcs/hover_turret.mdl") line(255 255 255, targetname, attachtarget) = npc_hover_turret: "The cut Hover Turret, which hangs from the ceiling and fires a laser at the player. Missing its model by default, and somewhat buggy." [ canPushPlayer(boolean) : "Laser Pushes Player" : 0 : "Should the hover turret's laser deal knockback? Usually only works while the player is in the air." sentryRotateSpeed(float) : "Idle Rotation Speed" : "10" : "While idle, the hover turret will rotate at this speed." attachTarget(target_destination) : "Tether Attach Target" : : "An entity (usually info_target) which the hover turret should hang from." ]
Keyvalues
- Laser Pushes Player (canPushPlayer) <boolean>
- Should the hover turret's laser deal knockback? Usually only works while the player is in the air.
- Idle Rotation Speed (sentryRotateSpeed) <float>
- While idle, the hover turret will rotate at this speed.
- Tether Attach Target (attachTarget) <targetname>
- An entity (usually info_target) which the hover turret should hang from.
CBaseCombatCharacter:
CAI_BaseNPC:
DamageFilter:
|
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.
- 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:
Outputs
|