source-fgds/halflife2.fgd

5690 lines
256 KiB
Plaintext

//====== Copyright © 1996-2005, Valve Corporation, All rights reserved. =======
//
// Purpose: Half-Life 2 game definition file (.fgd)
//
// This is the Mapbase version of the Half-Life 2 FGD.
// Much of this conent only works in Mapbase.
//
//=============================================================================
@include "base.fgd"
//-------------------------------------------------------------------------
//
// NPCs
//
//-------------------------------------------------------------------------
@BaseClass base(BaseNPC) = TalkNPC
[
//UseSentence(string) : "Use Sentence"
//UnUseSentence(string) : "Un-Use Sentence"
DontUseSpeechSemaphore(choices) : "Don't Use Speech Semaphore" : 0 : "Friendly NPCs are not allowed to speak if another friendly NPC is speaking. In some cases we don't want speaking NPCs to prevent other NPCs from speaking (for instance, if there is a friendly NPC speaking for a long time on a monitor). To make this NPC not prevent other NPCs from talking, make it not grab the semaphore when it speaks." =
[
0 : "No (Use speech semaphore)"
1 : "Yes (Don't use speech semaphore)"
]
input SpeakResponseConcept(string) : "Speak the specified response concept."
]
@BaseClass = GrenadeUser
[
// Most grenade users shouldn't use grenades by default, override this in derived classes if otherwise
NumGrenades(choices) : "Number of Grenades" : "0" =
[
"0" : "None"
"1" : "1"
"2" : "2"
"3" : "3"
"4" : "4"
"5" : "5"
"999999" : "Unlimited"
]
// Inputs
input ThrowGrenadeAtTarget(target_destination) : "Throws a grenade at the specified target."
input SetGrenades(integer) : "Sets the number of grenades we have."
input AddGrenades(integer) : "Adds to the number of grenades we have. Use a negative number to remove grenades."
output OnThrowGrenade(ehandle) : "Fires when we throw a grenade. Passes the grenade."
output OnOutOfGrenades(ehandle) : "Fires when we run out of grenades. Passes our last grenade, if there is one."
]
// For classes which didn't support grenades before, but now do
@BaseClass base(GrenadeUser) = NewGrenadeUser
[
input SetGrenadeCapabilities(integer) : "Sets this NPC's grenade capabilities."
SetGrenadeCapabilities(choices) : "Grenade capabilities" : "None" : "Controls this NPC's capability to throw grenades or use their weapon's secondary ability (energy balls/SMG grenades)." =
[
0 : "None"
1 : "Grenades"
2 : "Alt-firing"
3 : "Grenades + Alt-firing"
]
]
@BaseClass = PolicingNPC
[
// Inputs
input SetPoliceGoal(target_destination) : "Causes the NPC to be assigned to the specified ai_goal_police. Pass no parameter to clear the goal."
]
@BaseClass base(NewGrenadeUser) = PlayerCompanion
[
input OutsideTransition(void) : "Use this input to teleport the NPC to a hintnode with the Player Squad Transition Point hint type."
input EnableAlwaysTransition(void) : "Enable the 'always transition' behavior"
input DisableAlwaysTransition(void) : "Disable the 'always transition' behavior"
input EnableSpeakWhileScripting(void) : "Allow this NPC to speak responses while in a scripted sequence or while StartScripting is active."
input DisableSpeakWhileScripting(void) : "Cancels this NPC's ability to speak responses while in a scripted sequence or while StartScripting is active if it was previously enabled by EnableSpeakWhileScripting."
AlwaysTransition(choices) : "Always transition" : "No" : "If yes, this NPC will always teleport to a Player Squad Transition Point if they're not within the trigger_transition volume." =
[
0 : "No"
1 : "Yes"
]
DontPickupWeapons(choices) : "Prevent picking up weapons?" : "No" : "If yes, this NPC will NOT be allowed to pick up weapons they find on the ground." =
[
0 : "No"
1 : "Yes"
]
GameEndAlly(choices) : "Is this a vital ally?" : "No" : "If yes, this NPC will cause the game to end if killed." =
[
0 : "No"
1 : "Yes"
]
input MakeGameEndAlly(void) : "Make this NPC a game end ally."
input MakeRegularAlly(void) : "Make this NPC a regular ally."
input EnableWeaponPickup(void) : "Enable Weapon Pickup"
input DisableWeaponPickup(void) : "Disable Weapon Pickup"
input SetReadinessPanic(void) : "Set readiness to panic state (Special)"
input SetReadinessLow(void) : "Set readiness to calmest state (Bored)"
input SetReadinessMedium(void) : "Set readiness to moderate (Alert)"
input SetReadinessHigh(void) : "Set readiness to highest. (Combat imminent)"
input LockReadiness(float) : "Lock readiness at current setting for x seconds -1 = forever, 0 = unlock now"
input ClearAllOutputs(void) : "Obliterates every output that this NPC has."
output OnWeaponPickup(void) : "Fires when this NPC picks up a weapon off the ground or a gun rack."
]
@BaseClass = RappelNPC
[
waitingtorappel(choices) : "Waiting to Rappel?" : "No" : "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" =
[
0 : "No"
1 : "Yes"
]
// Inputs
input BeginRappel(void) : "BeginRappel"
// Outputs
output OnRappelTouchdown(void) : "Fires when done rappeling"
]
@BaseClass = AlyxInteractable
[
Hacked(choices) : "Start Hacked" : "No" : "Makes this NPC start as if Alyx had hacked it. This causes the NPC to switch sides and might give it a different color." =
[
0 : "No"
1 : "Yes"
]
// Outputs
output OnAlyxStartedInteraction(void) : "Fires when Alyx begins to interact with this entity."
output OnAlyxFinishedInteraction(void) : "Fires when Alyx has finished interacting with this entity."
output OnHacked(void) : "Fires when this entity is hacked, either by Alyx or through the 'Hack' input."
input InteractivePowerDown(void) : "Shuts down this target."
input Hack(void) : "Hacks this entity as if Alyx interacted with it."
]
@BaseClass base(Targetname, Origin, Angles, Global) = CombineBallSpawners
[
spawnflags(Flags) =
[
4096 : "[4096] Start inactive" : 1
8192 : "[8192] Combine power supply" : 0
]
ballcount(integer) : "Ball count" : 3 : "This is how many balls will be bouncing around inside the spawner"
minspeed(float) : "Min ball speed" : "300.0" : "The minimum speed of balls that fly in the spawner"
maxspeed(float) : "Max ball speed" : "600.0" : "The maximum speed of balls that fly in the spawner"
ballradius(float) : "Ball radius" : "20.0" : "The radius of the energy balls"
balltype(choices) : "Ball Type" : "Combine Energy Ball 1" =
[
0 : "Combine Energy Ball 1"
1 : "Combine Energy Ball 2"
2 : "Combine Energy Ball 3"
]
ballrespawntime(float) : "Ball Respawn Time" : "4.0f" : "The energy balls respawn time"
input Enable(void) : "Enable spawning of combine balls"
input Disable(void) : "Disable spawning of combine balls"
output OnBallGrabbed(void) : "Fired when a combine ball is grabbed from the field by a mega physcannon"
output OnBallReinserted(void) : "Fired when a combine ball is reinserted into the field (only gets triggered when Combine Power supply is checked)"
output OnBallHitTopSide(void) : "Fired when a combine ball in hits the top side of the field (only gets triggered when Combine Power supply is checked)"
output OnBallHitBottomSide(void) : "Fired when a combine ball in hits the bottom side of the field (only gets triggered when Combine Power supply is checked)"
output OnLastBallGrabbed(void) : "Fired when the last combine ball is grabbed from the field by a mega physcannon"
output OnFirstBallReinserted(void) : "Fired when the first combine ball is reinserted into the field (only gets triggered when Combine Power supply is checked)"
]
@PointClass base(BasePropPhysics) studioprop() = prop_combine_ball :
"A prop that physically simulates as a single rigid body. It can be constrained to other physics objects using hinges "+
"or other constraints. It can also be configured to break when it takes enough damage."
[
// Inputs
input Explode(void) : "Explode"
]
@SolidClass base(Trigger, Angles) = trigger_physics_trap :
"A volumetric trigger that disintegrates enemies"
[
dissolvetype(choices) : "Dissolve Type" : "Energy" =
[
0 : "Energy"
1 : "Heavy electrical"
2 : "Light electrical"
]
]
@SolidClass base(Trigger) = trigger_weapon_dissolve :
"A volumetric trigger that dissolves all weapons within it"
[
emittername(target_destination) : "Emitter Name" : "" : "Name of a single or multiple entities to use as the basis for the emitted effects."
// Outputs
output OnDissolveWeapon(void) : "Fires when one weapon is starting to dissolve in the trigger volume."
output OnChargingPhyscannon(void) : "Fires when the trigger begins to charge the physcannon."
// Inputs
input StopSound(void) : "Stops all sounds."
]
@SolidClass base(Trigger) = trigger_weapon_strip :
"A volumetric trigger that strips combat characters of all weapons"
[
KillWeapons(choices) : "Kill Weapons" : "No" =
[
0 : "No"
1 : "Yes"
]
]
@SolidClass base(CombineBallSpawners) = func_combine_ball_spawner :
"Spawns Combine balls."
[
output OnBallReinserted(void) : "Fired when a combine ball is reinserted into the field (only gets triggered when Combine Power supply is checked)"
output OnLastBallGrabbed(void) : "Fired when the last combine ball is grabbed from the field by a mega physcannon"
]
@PointClass base(CombineBallSpawners, Parentname) = point_combine_ball_launcher :
"Launches Combine balls."
[
launchconenoise(float) : "Noise to launch direction" : "0.0" : "Noise in degrees added to the launch direction."
bullseyename(target_destination) : "Name of bullseye" : "" : "If you select the Attach Bullseye spawnflag, you may specify a name here which will be given to the bullseye."
maxballbounces(integer) : "Max number of bounces" : 8 : "Maximum number of bounces the balls are allowed to do before they are removed."
spawnflags(Flags) =
[
1 : "[1] Attach Bullseye" : 0
2 : "[2] Balls should collide against player" : 0
]
// Inputs
input LaunchBall(void) : "Launch a ball from the spawner."
]
@NPCClass base(BaseNPC) studio("models/combine_soldier.mdl") = npc_blob : "Blob"
[
input FormPathShape(target_destination) : "Tells the group to go distribute themselves along a shape defined by path corner entities"
input SetRadius(float) : "Force the group to change the radius (density)"
]
@NPCClass base(Targetname) studio("models/Weapons/w_grenade.mdl") = npc_grenade_frag : "Hand Grenade"
[
input SetTimer(float) : "This input makes the grenade live, and specifies how many seconds before it explodes."
]
@NPCClass base(BaseNPC) sphere(sightdist) studio("models/combine_soldier.mdl") = npc_combine_cannon : "Combine Cannon"
[
sightdist(float) : "Sight radius" : 1024 : "Radius distance at which the cannon is able to aquire enemies."
]
@NPCClass base(BaseNPC) sphere(innerradius) sphere(outerradius) studio("models/combine_camera/combine_camera.mdl") = npc_combine_camera :
"Combine security camera"
[
spawnflags(Flags) =
[
32 : "[32] Always Become Angry On New Enemy" : 1
64 : "[64] Ignore Enemies (Scripted Targets Only)" : 0
128 : "[128] Start Inactive" : 0
]
innerradius(integer) : "Inner radius" : 300 : "The camera will only lock onto enemies that are within the inner radius."
outerradius(integer) : "Outer radius" : 450 : "The camera will flash amber when enemies are within the outer radius, but outside the inner radius."
minhealthdmg(integer) : "Min req'd damage for hurting camera" : 0
defaulttarget(target_destination) : "Default target" : "" : "The default target is the entity that the camera follows when it has no other target to track."
// Inputs
input Disable(void) : "Disables the camera. If open, the camera closes."
input Enable(void) : "Enables the camera. If closed, the camera opens."
input Toggle(void) : "Toggle - If open, close. If closed, open."
input SetDefaultTargetEntity(target_destination) : "Sets the entity for the camera to track when it has nothing better to track, by name."
input SetTargetEntity(target_destination) : "Sets the entity for the camera to track now, by name."
input SetAngry(void) : "Causes the camera to become angry as if it has seen something upsetting."
input SetIdle(void) : "Causes the camera to calm down if it is angry."
output OnFoundPlayer(string) : "Fired when the player is spotted within the inner radius."
output OnFoundEnemy(void) : "Fired when a non-player enemy is spotted within the inner radius."
output OnLostPlayer(void) : "Fired when the tracked player spotted within the inner radius has been lost. Usually due to the player leaving the inner radius, or because the player was killed."
output OnLostEnemy(void) : "Fired when a non-player enemy spotted within the inner radius has been lost. Usually due to the enemy leaving the inner radius, or because the enemy was killed/removed."
]
@PointClass base(BaseNPC, Parentname) studio( "models/combine_turrets/ground_turret.mdl" ) = npc_turret_ground : "Combine ground turret"
[
input Enable(void) : "Turn turret on."
input Disable(void) : "Turn turret off."
output OnAreaClear(void) : "Fires when the turret can't find any more enemies (7 second delay)"
]
@PointClass base(Targetname, Angles, Studiomodel) studio( "models/combine_turrets/ceiling_turret.mdl" ) = npc_turret_ceiling : "Combine Ceiling Turret"
[
spawnflags(Flags) =
[
32 : "[32] Autostart" : 1
64 : "[64] Start Inactive" : 0
128 : "[128] Never Retire" : 0
256 : "[256] Out of Ammo" : 0
1024 : "[1024] No Light Sprite" : 0
]
minhealthdmg(integer) : "Min req'd damage for hurting turret" : 0
health(integer) : "Health" : 100 : "Health was 1000 in the original Half-Life 2."
FieldOfView(float) : "FieldOfView" : "0.0" : "The ceiling turret's viewcone. (1.0 = straight ahead, 0.0 = +/- 90 degrees, -1.0 = all directions)"
// Inputs
input Enable(void) : "If closed, open."
input Disable(void) : "If open, close."
input Toggle(void) : "Toggle - If open, close. If closed, open."
input DepleteAmmo(void) : "Depletes all the ammo from a turret, causing it to dry-fire."
input RestoreAmmo(void) : "Restores ammo to a turret, allowing it to fire live rounds again."
input CreateSprite(void) : "Creates the turret's light sprite if it was previously destroyed."
input DestroySprite(void) : "Destroys the turret's light sprite."
input FieldOfView(float) : "Sets this turret's field of view."
// Outputs
output OnDeploy(void) : "Turret is becoming active and dangerous."
output OnRetire(void) : "Turret is becoming inactive and harmless."
]
@PointClass base(npc_turret_ceiling) studio( "models/props_lab/labturret_npc.mdl" ) = npc_turret_lab : "Eli's Lab Turret"
[
FieldOfView(float) : "FieldOfView" : "-0.5" : "The ceiling turret's viewcone. (1.0 = straight ahead, 0.0 = +/- 90 degrees, -1.0 = all directions)"
ManualArmYaw(choices) : "Static Arm" : "No" : "Prevents the arm from moving." =
[
0 : "No"
1 : "Yes"
]
Mirrored(choices) : "Mirrored" : "No" : "'Mirrors' the turret, which changes certain animations." =
[
0 : "No"
1 : "Yes"
]
]
@PointClass base(Targetname, Angles, AlyxInteractable) studio( "models/combine_turrets/floor_turret.mdl" ) = npc_turret_floor : "Combine Floor Turret"
[
spawnflags(Flags) =
[
32 : "[32] Autostart" : 1
64 : "[64] Start Inactive" : 0
128 : "[128] Fast Retire" : 0
256 : "[256] Out of Ammo" : 0
512 : "[512] Citizen modified (Friendly)" : 0
1024 : "[1024] No Light Sprite" : 0
]
skin(integer) : "Skin Number" : 0 : "Which skin to use for this turret. If a citizen turret, set to 0 to select randomly."
// Inputs
input Toggle(void) : "Toggle - If open, close. If closed, open."
input Enable(void) : "Enable the turret."
input Disable(void) : "Disable the turret."
input DepleteAmmo(void) : "Depletes all the ammo from a turret, causing it to dry-fire."
input RestoreAmmo(void) : "Restores ammo to a turret, allowing it to fire live rounds again."
input CreateSprite(void) : "Creates the turret's light sprite if it was previously destroyed."
input DestroySprite(void) : "Destroys the turret's light sprite."
input SelfDestruct(void) : "Causes the turret to warn and then explode."
// Outputs
output OnDeploy(void) : "Turret is becoming active and dangerous."
output OnRetire(void) : "Turret is becoming inactive and harmless."
output OnTipped(void) : "Turret has been tipped over and is inactive."
output OnPhysGunPickup(void) : "Picked up with physgun"
output OnPhysGunDrop(void) : "Released by physgun"
]
@BaseClass base(BaseNPC) = VehicleDriverNPC
[
vehicle(target_destination) : "Vehicle to drive"
spawnflags(Flags) =
[
65536 : "[65536] Start Inactive" : 1
]
input StartFiring(void) : "Tell the driver to attack nearby enemies with the vehicle's weaponry (if any)"
input StopFiring(void) : "Tell the driver to stop attacking nearby enemies with the vehicle's weaponry."
input GotoPathCorner(target_destination) : "Tell the driver to go to a specific path corner and continue from there."
]
@NPCClass base(VehicleDriverNPC) studio("models/roller.mdl") = npc_vehicledriver :
"NPC used to drive a target vehicle."
[
drivermaxspeed(float) : "Maxspeed (percentage of vehicle's maxspeed)." : 1
driverminspeed(float) : "MinSpeed (percentage of vehicle's maxspeed)." : 0
input SetDriversMaxSpeed(float) : "Set the Maxspeed (percentage of vehicle's maxspeed)."
input SetDriversMinSpeed(float) : "Set the Minspeed (percentage of vehicle's maxspeed)."
input StartForward(void) : "Tell the driver to start driving."
input Stop(void) : "Tell the driver to stop driving."
]
@NPCClass base(VehicleDriverNPC) studio("models/roller.mdl") = npc_cranedriver :
"NPC used to drive cranes."
[
releasepause(float) : "Pause time before dropping a ForceDrop specified object." : 0
// Inputs
input ForcePickup(target_destination) : "Force the driver to pickup the specified entity (by targetname)"
input ForceDrop(target_destination) : "Force the driver to drop the currently held object at the specified entity's location."
// Outputs
output OnPickedUpObject(void) : "Fired when the ForcePickup specified object has been picked up."
output OnDroppedObject(void) : "Fired when the ForceDrop specified object has been dropped."
output OnPausingBeforeDrop(void): "Fired at the start of the pause before dropping the ForceDrop specified object."
]
@NPCClass base(VehicleDriverNPC) studio("models/roller.mdl") = npc_apcdriver :
"NPC used to drive an APC vehicle."
[
spawnflags(Flags) =
[
65536 : "[65536] No Rocket Attacks" : 0
131072 : "[131072] No Gun Attacks" : 0
]
drivermaxspeed(float) : "Maxspeed (percentage of vehicle's maxspeed)." : 1
driverminspeed(float) : "MinSpeed (percentage of vehicle's maxspeed)." : 0
input SetDriversMaxSpeed(float) : "Set the Maxspeed (percentage of vehicle's maxspeed)."
input SetDriversMinSpeed(float) : "Set the Minspeed (percentage of vehicle's maxspeed)."
input StartForward(void) : "Tell the driver to start driving."
input Stop(void) : "Tell the driver to stop driving."
input DisableFiring(float) : "Disables firing from happening"
input EnableFiring(float) : "Enables firing to start. Firing is enabled by default"
]
@NPCClass base(BaseNPC,AlyxInteractable) studio("models/roller.mdl") = npc_rollermine : "Roller Mine"
[
spawnflags(Flags) =
[
65536 : "[65536] Friendly" : 0
131072 : "[131072] Use prop_physics collision rules" : 0
]
startburied(choices) : "Start Buried" : "No" =
[
0 : "No"
1 : "Yes"
]
uniformsightdist(choices) : "Sight Distance" : 0 =
[
0 : "Ignore distant targets not in a vehicle (default)."
1 : "Equal visibility for all targets."
]
input TurnOn(void) : "Restore this rollermine to normal functionality."
input TurnOff(void) : "Make this rollermine completely inert. Does not run AI and NPCs will ignore it."
output OnPhysGunPickup(void) : "Picked up with physgun"
output OnPhysGunDrop(void) : "Released by physgun"
]
@NPCClass base(BaseNPC) studio("models/missile_defense.mdl") = npc_missiledefense : "Missile Defense"
[
]
@NPCClass base(BaseNPC) studio() = npc_sniper : "Sniper"
[
model(studio) : "Model" : "models/combine_soldier.mdl" : "The model of this sniper. Can be seen when the sniper dies."
radius(integer) : "Patience Radius" : 0 : "Sniper will hold fire until the target is within this radius. After that, sniper will always attack, even if the target retreats outside of this radius"
misses(integer) : "Initial Misses" : 0 : "How many times to miss a target on purpose before beginning to fire accurately."
beambrightness(integer) : "Beam Brightness (0 to 255)" : 100 : "How bright the laser sight beam should be. (0 - 255)"
shootZombiesInChest(choices) : "Shoot zombies in chest" : 0 : "If true, aim for chest instead of headcrab. Useful when at great distance and height." =
[
0 : "No"
1 : "Yes"
]
BeamName(material) : "Beam Texture" : "effects/bluelaser1.vmt" : "The texture that should be used by the sniper's laser beam. Be sure to put '.vmt' at the end!"
BeamColor(color255) : "Beam Color" : "0 100 255" : "The color that should be used by the sniper's laser beam."
//shielddistance(float) : "Bullet shield distance" : 64 : "Obsolete"
//shieldradius(float) : "Bullet shield radius" : 48 : "Obsolete"
PaintInterval(float): "Paint interval" : 1 : "Sniper will keep a target painted for this many seconds before shooting. 'Faster Shooting' sniper flag multiplies this by 0.75."
PaintIntervalVariance(float): "Paint interval variance" : "0.75" : "When shooting at NPCs, a random number between 0 and this is added to PaintInterval for every shot."
// Inputs
input EnableSniper(void) : "Enable Shooting"
input DisableSniper(void) : "Disable Shooting"
input SetDecoyRadius(integer) : "Set Decoy Radius"
input SweepTarget(target_destination) : "Sweep a Target"
input SweepTargetHighestPriority(target_destination) : "Drop everything and sweep this target!"
input SweepGroupRandomly(string) : "Randomly Sweep a Group"
input StopSweeping(void) : "Stop any target sweeping operation started by entity I/O"
input ProtectTarget(target_destination) : "Protect the specified enemy. The sniper will attempt to shoot the enemy nearest the protect target at all times."
input SetPaintInterval(float) : "Set PaintInterval field."
input SetPaintIntervalVariance(float) : "Set PaintIntervalVariance field."
output OnShotFired(void) : "Fires when sniper fires a shot"
spawnflags(Flags) =
[
65536 : "[65536] Hidden" : 1
131072 : "[131072] Laser Viewcone" : 0
262144 : "[262144] No Corpse" : 0
524288 : "[524288] Start Disabled" : 0
1048576 : "[1048576] Faster shooting (Episodic)" : 0
2097152 : "[2097152] No sweep away from target (Episodic)" : 0
4194304 : "[4194304] Die on fire" : 0
]
]
@PointClass base(Targetname, Parentname, EnableDisable) iconsprite("editor/info_target.vmt") sphere(radius) = info_radar_target : "Jalopy Radar Beacon"
[
radius(float) : "Effective Radius" : 6000 : "How close the Jalopy must be to detect this beacon. If this radius is -1, the range is infinite"
type(choices) : "Type of target" : 0 =
[
0 : "Generic Citizen Beacon"
1 : "Magnussen RDU Beacon"
2 : "Dog"
3 : "Ally Installation"
4 : "Enemy"
5 : "Large Enemy (striders)"
]
mode(choices) : "Mode" : 0 =
[
0 : "Default"
1 : "Sticky - once detected, ignore effective radius."
]
]
@PointClass base(Targetname, Angles, EnableDisable) iconsprite("editor/info_target.vmt") = info_target_vehicle_transition : "Vehicle Transition Point"
[
]
@PointClass base(Targetname, Parentname) iconsprite("editor/info_target.vmt") = info_snipertarget : "Sniper Target"
[
speed(integer) : "Sweep to speed" : 2
groupname(string) : "Group Name"
spawnflags(Flags) =
[
1 : "[1] Shoot Me" : 0
2 : "[2] No Interruptions" : 0
// 4 : "[4] Snap Shot" : 0 OBSOLETE NOW but don't overwrite, in case some levels need legacy support.
8 : "[8] Resume if Interrupted" : 0
16: "[16] Snap to me" : 0
]
]
@PointClass base(Targetname, Angles, Studiomodel) studio() sphere(dustscale) sphere(EffectRadius) = prop_thumper : "Thumper"
[
model(studio) : "World model" : "models/props_combine/CombineThumper002.mdl"
dustscale(choices) : "Dust Scale" : "Small Thumper" =
[
128 : "Small Thumper"
256 : "Large Thumper"
]
input Enable(void) : "Enable Thumper"
input Disable(void) : "Disable Thumper"
output OnThumped(void) : "Fires when thumper impacts the ground."
EffectRadius(integer) : "Effect Radius" : 1000 : "Radius of the thumper's sound. EPISODIC ONLY."
]
@NPCClass base(BaseNPC) studio("models/antlion.mdl") sphere(radius) = npc_antlion :
"Antlions will run away from ai_sound, type: Thumper."
[
startburrowed(choices) : "Start Burrowed" : "No" =
[
0 : "No"
1 : "Yes"
]
spawnflags(Flags) =
[
65536 : "[65536] Burrow when eluded" : 0
131072 : "[131072] Use Ground Checks" : 0
262144 : "[262144] Worker Type" : 0
]
radius(integer) : "Alert Radius" : 256
eludedist(integer) : "Distance until eluded" : 1024 : "Only available when Burrow When Eluded is flagged"
ignorebugbait(choices) : "Ignore Bugbait" : "No" =
[
0 : "No"
1 : "Yes"
]
unburroweffects(choices) : "Suppress unburrow effects" : "No" =
[
0 : "No"
1 : "Yes"
]
input Unburrow(void) : "Unburrow from the ground"
input Burrow(void) : "Burrow into the ground"
input BurrowAway(void) : "Burrow into the ground and remove the antlion"
input FightToPosition(target_destination) : "Fight to reach the specified entity."
input StopFightToPosition(target_destination) : "Stop fighting to reach a position, if it currently is."
input EnableJump(void) : "Allow non-navigational jumping"
input DisableJump(void) : "Disallow non-navigational jumping"
input IgnoreBugbait(void) : "Ignore bugbait"
input HearBugbait(void) : "Hear bugbait"
output OnReachedFightGoal(void) : "Fires when the antlion reaches his specified fight-to location"
output OnUnBurrowed(void) : "Fires when the antlion unburrows"
]
@NPCClass base(BaseNPC) studio("models/antlion_guard.mdl") = npc_antlionguard : "Antlion Guard"
[
spawnflags(Flags) =
[
65536 : "[65536] Create server-side ragdoll on death" : 0
131072 : "[131072] Use inside footsteps" : 0
]
startburrowed(choices) : "Start Burrowed" : "No" =
[
0 : "No"
1 : "Yes"
]
allowbark(choices) : "Allow Bark" : "No" =
[
0 : "No"
1 : "Yes"
]
cavernbreed(choices) : "Cavern Guard Model and Texture" : "No" =
[
0 : "No"
1 : "Yes"
]
incavern(choices) : "Use inside-Cavern Behavior" : "No" =
[
0 : "No"
1 : "Yes"
]
shovetargets(target_destination) : "Shove Targets" : "" : "All entities of this name will be considered shove targets."
// Inputs
input Unburrow(void) : "Unburrow from the ground"
input SetShoveTarget(target_destination) : "Sets a shove target to attack"
input SetChargeTarget(target_destination) : "Sets a charge target to attack. Parameters are the name of the entity to start at and the name of the entity to charge towards, separated by a space (i.e. start target)"
input ClearChargeTarget(void) : "Clear the charge target"
input SetCoverFromAttack(integer) : "Sets whether or not the creature will protect itself from attacks"
input Ragdoll(void) : "Causes the antlion guard to die, regardless of health"
input EnableBark(void) : "Allow the antlion guard to try and summon antlions"
input DisableBark(void) : "Stop the antlion guard from trying to summon antlions"
input InvestigateHint(target_destination) : "Sniff around at a hint group until told otherwise"
input StopInvestigating(void) : "Stop trying to sniff out the player"
input EnablePreferPhysicsAttack(void) : "Prefer to use physics attacks if at all possible, even when inside a cavern."
input DisablePreferPhysicsAttack(void) : "Do not prefer to use physics attacks if at all possible, even when inside a cavern."
// Outputs
output OnSeeHiddenPlayer(void) : "Fires when the current enemy is seen while trying to hide"
output OnSmellHiddenPlayer(void) : "Fires when the current enemy is smelled while trying to hide"
output OnSummon(void) : "Antlion guard is attempting to summon antlions"
]
@BaseClass base(BaseNPC) = BaseBird
[
input FlyAway( target_destination ) : "Forces the crow to fly to the nearest crow flyto hint node."
deaf(choices) : "Deaf?" : 0 =
[
0 : "No."
1 : "Yes. Ignore sounds."
]
]
@NPCClass base(BaseBird) studio("models/crow.mdl") = npc_crow : "Crow"
[
]
@NPCClass base(BaseBird) studio("models/seagull.mdl") = npc_seagull : "Seagull"
[
]
@NPCClass base(BaseBird) studio("models/pigeon.mdl") = npc_pigeon : "Pigeon"
[
]
@NPCClass base(BaseNPC) studio("models/ichthyosaur.mdl") = npc_ichthyosaur : "Ichthyosaur. Not fully functional"
[
]
@BaseClass base(BaseNPC) = BaseHeadcrab
[
startburrowed(choices) : "Start burrowed" : "No" =
[
0 : "No"
1 : "Yes"
]
spawnflags(flags) =
[
65536 : "[65536] Start hidden" : 0
131072 : "[131072] Start hanging from ceiling" : 0
262144 : "[262144] Don't drown" : 0
524288 : "[524288] No melee insta-kill" : 0
]
input StartHangingFromCeiling(void) : "Start hanging from ceiling."
input DropFromCeiling(void) : "Drop if hanging from ceiling."
output OnLeap(void) : "Fires when the headcrab leaps at an enemy."
]
@NPCClass base(BaseHeadcrab, Parentname) studio("models/Headcrabclassic.mdl") = npc_headcrab : "Headcrab"
[
]
@NPCClass base(BaseHeadcrab) studio("models/Headcrab.mdl") = npc_headcrab_fast : "Fast Headcrab"
[
]
@NPCClass base(BaseHeadcrab) studio("models/Headcrabblack.mdl") = npc_headcrab_black : "Black Headcrab"
[
]
@NPCClass base(BaseNPC) studio("models/Stalker.mdl") = npc_stalker : "Stalker"
[
BeamPower(choices) : "Beam Power" : "Low" =
[
0 : "Low"
1 : "Medium"
2 : "High"
]
Aggression(choices) : "Start Aggressive" : 0 : "Controls whether this stalker starts aggressive to the player and their allies without having to be provoked first." =
[
0 : "No"
1 : "Yes"
]
Bleed(choices) : "Bleed" : 1 : "Allows this stalker to bleed upon taking bleedable damage. They bleed saline." =
[
0 : "No"
1 : "Yes"
]
]
@NPCClass base(Parentname, BaseNPC) iconsprite("editor/bullseye.vmt") color(255 0 0) sphere(mindist) = npc_bullseye : "Bullseye"
[
// Unlike other NPCs level designers are allowed to set the health on bullseyes
health(Integer) : "Health" : 35
minangle(string) : "Minimum Angle" : "360" : "Angle from the bullseye required for bullseye to be a valid enemy"
mindist(float) : "Minimum Distance" : "0" : "Distance from the bullseye required for bullseye to be a valid enemy"
autoaimradius(float) : "Autoaim Radius" : "0" : "Radius of autoaim influence. Use ent_autoaim <picker> to visualize."
spawnflags(Flags) =
[
65536 : "[65536] Not Solid" : 0
131072 : "[131072] Take No Damage" : 0
262144 : "[262144] Enemy Damage Only" : 0
524288 : "[524288] Bleed" : 0
1048576 : "[1048576] Perfect Accuracy" : 0
2097152 : "[2097152] Collide against physics objects (Creates VPhysics Shadow)" : 0
]
output OnTargeted(void) : "Fires when targeted"
output OnReleased(void) : "Fires when no longer targeted"
]
@NPCClass base(Parentname, BaseNPC) size(-16 -16 -16, 16 16 16) color(255 150 0) = npc_enemyfinder : "EnemyFinder"
[
spawnflags(flags) =
[
65536 : "[65536] Check Visibility" : 1
131072 : "[131072] APC Visibility checks" : 0
262144 : "[262144] Short memory" : 0
524288 : "[524288] Can be an enemy" : 0
]
FieldOfView(float) : "FieldOfView" : "0.2" : "The enemy finder's viewcone. (1.0 = straight ahead, 0.0 = +/- 90 degrees, -1.0 = all directions)"
MinSearchDist(integer) : "Min Search Dist" : 0
MaxSearchDist(integer) : "Max Search Dist" : 2048
freepass_timetotrigger(float) : "Player pass issue time" : 0 : "Amount of time an enemy is hidden after which a 'free pass' on reaquire is granted"
freepass_duration(float) : "Player pass duration" : 0 : "After granted 'free pass', the amount of time a target is allowed before reaquire"
freepass_movetolerance(float) : "Player pass move tolerance" : 120 : "After granted 'free pass', the distance the target is allowed to move before reaquire"
freepass_refillrate(float) : "Player pass refill rate" : "0.5" : "After free pass begins expiring, how much the time the target gets back for every second they hide again"
freepass_peektime(float) : "Player pass peek time" : 0 : "How long targets in cover are allowed to peek without penalty"
StartOn(choices) : "Start On" : 1 =
[
0 : "No"
1 : "Yes"
]
SetClassify(choices) : "Classify" : 0 : "Allows this npc_enemyfinder to simulate a NPC's Class_T. Useful for relationships." =
[
0 : "None"
1 : "CLASS_PLAYER"
2 : "CLASS_PLAYER_ALLY (Citizens)"
3 : "CLASS_PLAYER_ALLY_VITAL (Alyx, Dr. Kleiner, GameEndAlly vorts, etc.)"
4 : "CLASS_ANTLION"
5 : "CLASS_BARNACLE"
6 : "CLASS_BULLSEYE (npc_bullseyes)"
7 : "CLASS_CITIZEN_PASSIVE (pre-criminal citizens)"
//8 : "CLASS_CITIZEN_REBEL (Unused)"
9 : "CLASS_COMBINE (Soldiers, turrets, etc.)"
10 : "CLASS_COMBINE_GUNSHIP (Gunships, helicopters, dropships)"
//11 : "CLASS_CONSCRIPT (Unused)"
12 : "CLASS_HEADCRAB"
13 : "CLASS_MANHACK"
14 : "CLASS_METROPOLICE"
//15 : "CLASS_MILITARY (Unused)"
16 : "CLASS_SCANNER"
17 : "CLASS_STALKER"
18 : "CLASS_VORTIGAUNT (Non-vital vortigaunts only)"
19 : "CLASS_ZOMBIE"
20 : "CLASS_PROTOSNIPER (npc_snipers)"
21 : "CLASS_MISSILE"
22 : "CLASS_FLARE"
23 : "CLASS_EARTH_FAUNA (crows, seagulls, etc.)"
24 : "CLASS_HACKED_ROLLERMINE"
25 : "CLASS_COMBINE_HUNTER"
]
// Inputs
input TurnOn(void) : "Turn on: Look for enemies"
input TurnOff(void) : "Turn off: Stop looking for enemies"
output OnLostEnemies(void) : "Fires when the enemy finder has no enemies."
output OnAcquireEnemies(void) : "Fires when the enemy finder acquires enemies."
]
@NPCClass base(Parentname, BaseNPC) size(-16 -16 -16, 16 16 16) color(255 150 0) = npc_enemyfinder_combinecannon : "EnemyFinder Specifically for use with func_tank_combine_cannon"
[
spawnflags(flags) =
[
65536 : "[65536] Check Visibility" : 1
131072 : "[131072] APC Visibility checks" : 0
262144 : "[262144] Short memory" : 0
524288 : "[524288] Can be an enemy" : 0
]
FieldOfView(string) : "FieldOfView" : "0.2" : "How far to look (1.0 = straight ahead, 0.0 = +/- 90 degrees, -1.0 = all directions)"
MinSearchDist(integer) : "Min Search Dist" : 0
MaxSearchDist(integer) : "Max Search Dist" : 2048
SnapToEnt(target_destination) : "Name of entity to snap to" : "" : "Since it can be hard to position these entities with respect to the func_tank brushwork, you can specify an entity name here and this enemyfinder will position itself at the center of that entity."
freepass_timetotrigger(float) : "Player pass issue time" : 0 : "Amount of time an enemy is hidden after which a 'free pass' on reaquire is granted"
freepass_duration(float) : "Player pass duration" : 0 : "After granted 'free pass', the amount of time a target is allowed before reaquire"
freepass_movetolerance(float) : "Player pass move tolerance" : 120 : "After granted 'free pass', the distance the target is allowed to move before reaquire"
freepass_refillrate(float) : "Player pass refill rate" : "0.5" : "After free pass begins expiring, how much the time the target gets back for every second they hide again"
freepass_peektime(float) : "Player pass peek time" : 0 : "How long targets in cover are allowed to peek without penalty"
StartOn(choices) : "Start On" : 1 =
[
0 : "No"
1 : "Yes"
]
// Inputs
input TurnOn(void) : "Turn on: Look for enemies"
input TurnOff(void) : "Turn off: Stop looking for enemies"
input SetWideFOVForSeconds(float) : "Gives this enemyfinder a 180 degree viewcone for the number of seconds specified in the parameter override"
output OnLostEnemies(void) : "Fires when the enemy finder has no enemies."
output OnAcquireEnemies(void) : "Fires when the enemy finder acquires enemies."
]
@NPCClass base(TalkNPC, PlayerCompanion, RappelNPC, PolicingNPC) studio() = npc_citizen : "Citizen"
[
spawnflags(Flags) =
[
65536 : "[65536] Follow player on spawn" : 0
131072 : "[131072] Medic" : 0
262144 : "[262144] Random Head" : 1
524288 : "[524288] Ammo Resupplier" : 0
1048576 : "[1048576] Not Commandable" : 0
//2097152 : "[2097152] Don't use Speech Semaphore - OBSOLETE" : 0
4194304 : "[4194304] Random male head" : 0
8388608 : "[8388608] Random female head" : 0
16777216 : "[16777216] Use RenderBox in ActBusies" : 0
33554432 : "[33554432] Player can +USE and +WALK (Alt + E) to toggle squad (disables automatically joining)" : 0
]
additionalequipment(choices) : "Weapons" : "0" =
[
"weapon_smg1" : "SMG1"
"weapon_ar2" : "AR2"
"weapon_stunstick" : "Stun Stick"
"weapon_crowbar" : "Crow Bar"
"weapon_shotgun" : "Shotgun"
"weapon_pistol" : "Pistol"
"weapon_357" : "357"
"weapon_crossbow" : "Crossbow"
//"weapon_beerbottle" : "Beer Bottle"
//"weapon_beerbottle2" : "Beer Bottle2"
"weapon_rpg" : "RPG"
"0" : "Nothing"
]
ammosupply(choices) : "Ammo to Resupply (if spawnflag set)" : "SMG1" =
[
"Pistol" : "Pistol"
"SMG1" : "SMG1"
"SMG1_Grenade" : "SMG1 Grenade"
"AR2" : "AR2"
"Buckshot" : "Shotgun"
"RPG_Round" : "RPG"
"Grenade" : "Grenade"
"XBowBolt" : "Crossbow Bolt"
]
ammoamount(integer) : "Amount of ammo to give" : 1
citizentype(choices) : "Type" : "Default" =
[
0 : "Default"
1 : "Downtrodden"
2 : "Refugee"
3 : "Rebel"
4 : "Unique"
]
expressiontype(choices) : "Expression Type" : "Random" =
[
0 : "Random"
1 : "Scared"
2 : "Normal"
3 : "Angry"
]
//!!!BUGBUG - don't ship with these names
//!!!FIXME - don't ship with these names
model(choices) : "Model" : "models/humans/group01/male_01.mdl" =
[
"models/humans/group01/male_01.mdl" : "Male 1"
"models/humans/group01/male_02.mdl" : "Male 2"
"models/humans/group01/male_03.mdl" : "Male 3"
"models/humans/group01/male_04.mdl" : "Male 4"
"models/humans/group01/male_05.mdl" : "Male 5"
"models/humans/group01/male_06.mdl" : "Male 6"
"models/humans/group01/male_07.mdl" : "Male 7"
"models/humans/group01/male_08.mdl" : "Male 8"
"models/humans/group01/male_09.mdl" : "Male 9"
"models/humans/group01/female_01.mdl" : "Female 1"
"models/humans/group01/female_02.mdl" : "Female 2"
"models/humans/group01/female_03.mdl" : "Female 3"
"models/humans/group01/female_04.mdl" : "Female 4"
"models/humans/group01/female_06.mdl" : "Female 5"
"models/humans/group01/female_07.mdl" : "Female 6"
"models/humans/male_cheaple.mdl" : "Cheaple Male 1"
"models/odessa.mdl" : "Odessa (Must Be Unique)"
]
ExpressionOverride(string) : "Facial expression override"
notifynavfailblocked(choices) : "Fire output when Nav is blocked?" : 0 =
[
0 : "No"
1 : "Yes"
]
neverleaveplayersquad(choices) : "Permanent squad member?" : 0 : "A permanent squad member cannot leave the player's squad unless killed or explicity removed by entity I/O. Only use this if you're sure you want to override the default AI." =
[
0 : "No. This is default behavior."
1 : "Yes, stay in squad until death."
]
denycommandconcept(string) : "Deny command speech concept" : "" : "If you want your citizens to squad with the player but not obey commands the player gives to move the squad, put a concept here and this citizen will speak the concept instead of obeying the order."
SetTossMedkits(choices) : "Toss medkits?" : 0 : "Episodic only. Griggs in Half-Life 2: Episode Two uses experimental code that allows him to toss medkits at the player from a distance. This activates that code on this NPC if it is a medic. Does not work with ammo resuppliers." =
[
0 : "No"
1 : "Yes"
]
AlternateAiming(choices) : "Alternate aiming animations" : 0 : "Causes this citizen to use readiness aiming animations with a SMG, AR2, or shotgun. When running or walking while aiming/shooting, they will hold their weapon around their upper-chest instead of from their hip." =
[
0 : "No"
1 : "Yes"
]
//Inputs
input RemoveFromPlayerSquad(void) : "Remove from player squad, instantly."
input SetExpressionOverride(string) : "Set facial expression override"
input StartPatrolling(void) : "Patrol whenever I'm idle or alert."
input StopPatrolling(void) : "Stop patrolling when I'm idle or alert."
input SetCommandable(void) : "Makes a previously uncommandable citizen commandable"
input SetUnCommandable(void) : "Makes a previously commandable citizen uncommandable"
input SetMedicOn(void) : "Set the medic flag on. Will not change the model or skin of the citizen."
input SetMedicOff(void) : "Set the medic flag off. Will not change the model or skin of the citizen."
input SetAmmoResupplierOn(void) : "Set the ammo-resupplier flag on. Will not change the model or skin of the citizen."
input SetAmmoResupplierOff(void) : "Set the ammo-resupplier flag off. Will not change the model or skin of the citizen."
input SetTossMedkits(bool) : "Sets whether this NPC can toss medkits."
// Outputs
output OnJoinedPlayerSquad(void) : "Fires when joins player squad"
output OnLeftPlayerSquad(void) : "Fires when leaves player squad"
output OnFollowOrder(void) : "Fires when ordered to follow player"
output OnStationOrder(void) : "Fires when ordered to a location by player"
output OnPlayerUse(void) : "Fires when a player +USEs the citizen"
output OnNavFailBlocked(void) : "Fires when this citizen's movement fails because he/she is blocked."
output OnHealedNPC(void) : "Fires when this citizen heals a NPC."
output OnHealedPlayer(void) : "Fires when this citizen heals a player."
output OnTossMedkit(ehandle) : "Fires when a medkit is tossed. Passes the medkit."
output OnGiveAmmo(void) : "Fires when ammo is given to the player."
]
@SolidClass base(Targetname, Parentname, Origin, EnableDisable, Global) = func_commandredirect :
"A brush entity that redirects the player's squad commands. Also functions as a limited trigger for the player AND their squad members."
[
target(target_destination) : "Target" : "" : "Redirects command goals to this entity's origin. If blank, doesn't affect the goal. If -1, cancels the command entirely."
reponly(choices) : "Squad Representative Only" : 0 : "If enabled, only fires OutAlly for the player's squad's representative." =
[
0 : "No, fire OutAlly for all members"
1 : "Yes, only fire OutAlly for the representative"
]
// Outputs
output OnCommandGoal(vector) : "Fires when a player's command goal falls within this brush. Passes the goal's position."
output OutAlly(ehandle) : "Fires for each ally in the player's squad whenever this brush detects a command goal. Fires before the actual order is sent. Useful for adding a response context to TLK_COMMANDED."
output OnStartTouch(void) : "Fired when a player or a member of the player's squad starts touching this brush."
output OnStartTouchAll(void) : "Fired when a player or a member of the player's squad starts touching this brush, and no other member is touching it."
output OnEndTouch(void) : "Fired when a player or a member of the player's squad stops touching this trigger."
output OnEndTouchAll(void) : "Fires when a player or a member of the player's squad stops touching this trigger, and no other members are touching it."
]
@NPCClass base(BaseNPC) studio("models/Barney.mdl") = npc_fisherman : "Fisherman"
[
ExpressionOverride(string) : "Facial expression override"
input SetExpressionOverride(string) : "Set facial expression override"
]
@NPCClass base(TalkNPC, PlayerCompanion) studio("models/Barney.mdl") = npc_barney : "Barney"
[
additionalequipment(choices) : "Weapons" : "weapon_pistol" =
[
"weapon_pistol" : "Pistol"
"weapon_smg1" : "SMG1"
"weapon_stunstick" : "Stun Stick"
"weapon_shotgun" : "Shotgun"
"weapon_ar2" : "AR2"
"0" : "Nothing"
]
ExpressionOverride(string) : "Facial expression override"
input SetExpressionOverride(string) : "Set facial expression override"
// Outputs
output OnPlayerUse(void) : "Fires when a player +USEs Barney"
]
@BaseClass base(BaseNPC, RappelNPC, GrenadeUser, PolicingNPC) = BaseCombine
[
additionalequipment(choices) : "Weapons" : "weapon_smg1" =
[
"weapon_ar2" : "AR2"
"weapon_shotgun" : "Shotgun"
//"weapon_stunstick" : "Stun Stick"
"weapon_smg1" : "SMG1"
"weapon_rpg" : "RPG"
"0" : "Nothing"
]
spawnflags(Flags) =
[
65536 : "[65536] Start LookOff" : 0
131072 : "[131072] Don't drop grenades" : 0
262144 : "[262144] Don't drop ar2 alt fire (elite only) " : 0
]
NumGrenades(choices) : "Number of Grenades" : "5" =
[
"0" : "None"
"1" : "1"
"2" : "2"
"3" : "3"
"4" : "4"
"5" : "5"
"999999" : "Unlimited"
]
UnderthrowGrenades(choices) : "Underthrow Grenades" : "0" : "If enabled, this soldier will 'underthrow' their grenades with ACT_SPECIAL_ATTACK1, which looks a lot more like the HL1 grunt animation. This includes grenades thrown during regular behavior and grenades forced with ThrowGrenadeAtTarget." =
[
"0" : "No"
"1" : "Yes"
]
SetAlternateCapable(choices) : "Alternate Capable" : "0" : "Makes the soldier capable of using both grenades AND energy balls at the same time, regardless of their elite status." =
[
"0" : "No"
"1" : "Yes"
]
// Inputs
input LookOn(void) : "Look normally"
input LookOff(void) : "Don't look for myself, use other squad member's eyes"
input StartPatrolling(void) : "Patrol whenever I'm idle or alert."
input StopPatrolling(void) : "Stop patrolling when I'm idle or alert."
input SetElite(bool) : "Sets whether we are an elite. Model will not change, but grenades will transform into energy balls or vice versa."
input UnderthrowGrenades(bool) : "Sets whether we should underthrow our grenades."
input SetAlternateCapable(bool) : "Sets whether the soldier is capable of using both grenades and energy balls at the same time."
]
@NPCClass base(BaseCombine) studio() = npc_combine_s : "Combine Soldier"
[
model(choices) : "Model" : "models/combine_soldier.mdl" : "Sets this soldier's model." =
[
"models/combine_soldier.mdl" : "Regular Soldier"
"models/combine_soldier_prisonguard.mdl" : "Nova Prospekt Soldier"
"models/combine_super_soldier.mdl" : "Elite Soldier"
"models/combine_soldirt.mdl" : "Dirty Soldier/EP2 Soldier"
"models/combine_super_soldirt.mdl" : "Dirty Elite Soldier/EP2 Elite"
"models/combine_soldirt_prisonguard.mdl" : "Dirty Nova Prospekt Soldier"
]
tacticalvariant(choices) : "Tactical Variant" : "0" =
[
"0" : "Normal Tactics"
"1" : "Pressure the enemy (Keep advancing)"
"2" : "Pressure until within 30ft, then normal"
"3" : "Grenade Happy"
]
usemarch(choices) : "Use March" : "0" : "When true, will use a special walking animation which blends itself between the idle walking animation and the regular walking animation, allowing for a variety of casual walking animations instead of the standard walk. Used in EP2 for the soldiers in the bridge convoy. WARNING: This animation only has a north component, so it can't sidestep or walk backwards. This keyvalue was previously named 'Walk Easy', but it was changed to avoid confusion with ACT_WALK_EASY, the main idle walking animation." =
[
"0" : "No"
"2" : "Yes"
]
input Assault(target_destination) : "Start an assault. Parameter passed in should be the name of the rally point."
input SetTacticalVariant(integer) : "Sets this soldier's tactical variant based on integer value."
]
@PointClass base(Parentname, BaseNPC) size( -4 -16 -16, 4 16 16 ) studio("models/weapons/w_rocket_launcher.mdl") = npc_launcher : "Launcher"
[
spawnflags(Flags) =
[
65536 : "[65536] Check LOS" : 1
]
StartOn(choices) : "Start On" : 0 =
[
0: "Off"
1: "On"
]
OwnerEntity(target_destination) : "Owner Entity" : : "The entity that should 'own' the missiles, or receive credit/not collide with them."
MissileModel(studio) : "Missile Model" : "models/weapons/w_missile.mdl"
LaunchSound(sound) : "Launch Sound" : "npc/waste_scanner/grenade_fire.wav"
FlySound(sound) : "Fly Sound": "Missile.Accelerate"
SmokeTrail(choices) : "Smoke Trail" : 1 =
[
0: "Off"
1: "On"
2: "On Homing"
]
LaunchSmoke(choices) : "Launch Smoke" : 1 =
[
0: "Off"
1: "On"
]
LaunchDelay(integer) : "Launch Delay" : 8 : "When ON, how long to wait between each launch"
LaunchSpeed(string) : "Launch Speed" : 200 : "Initial launch speed of missile (in up direction)"
PathCornerName(target_destination) : "Path Corner Name" : "" : "Name of a path corner. If set launches a pathfollowing missing, rather than a homing missile"
HomingSpeed(string) : "Homing Speed" : 0 : "Speed to reach when homing"
HomingStrength(integer) : "Homing Strength" : 10 : "How strong in homing effect (0-100)"
HomingDelay(string) : "Homing Delay" : 0 : "Number of seconds to delay before homing starts"
HomingRampUp(string) : "Homing Ramp Up" : "0.5" : "Number of seconds it takes to reach full homing strength after homing delay"
HomingDuration(string) : "Homing Duration" : 5 : "Number of seconds the homing effect lasts"
HomingRampDown(string) : "Homing Ramp Down" : "1.0" : "Number of seconds it takes homing effect to decay after homing duration"
Gravity(string) : "Gravity" : "1.0" : "Scale for effect of gravity. (1.0 = normal gravity)"
MinRange(integer) : "Min Range" : 100 : "Minimun distance a target can be to be attacked"
MaxRange(integer) : "Max Range" : 2048 : "Maximum distance a target can be to be attacked"
SpinMagnitude(string) : "Spin Magnitude" : 0 : "Strength of spin in missile trajectory"
SpinSpeed(string) : "Spin Speed" : 0 : "How fast does the spin rotate through 360"
Damage(string) : "Damage" : 50 : "How much damage does each missile do"
DamageRadius(string) : "DamageRadius" : 200 : "How far away from impact does the missle do damage"
// Outputs
output OnLaunch(void) : "Fires when missile is launched"
output OutMissile(ehandle) : "Passes each missile launched"
// Inputs
input TurnOn(void) : "Turn on Launcher"
input TurnOff(void) : "Turn off Launcher"
input LOSCheckOn(void) : "Start checking line of sight before firing"
input LOSCheckOff(void) : "Stop checking line of sight before firing"
input SetEnemyEntity(target_destination) : "Set entity I should attack. Ignores visibility. (output from other entity only)"
input ClearEnemyEntity(void) : "Clear set enemy enemy"
input FireOnce(void) : "Fire Once (if have enemy)"
]
@NPCClass base(BaseNPC) studio("models/hunter.mdl") = npc_hunter :
"A smaller, faster, strider that can pursue the player into buildings."
[
FollowTarget(target_destination) : "Strider to Follow" : "" : "The name of the strider that this hunter should follow."
// Inputs
input FollowStrider(target_destination) : "Sets the name of the strider that this hunter should follow."
input SetMinigunTime(float) : "Time to shoot at any set minigun target."
input SetMinigunTarget(target_destination) : "Hunter will shoot minigun at the named target."
input DisableShooting(void) : "Forces the hunter to be melee-only."
input EnableShooting(void) : "Allows the hunter to use range attacks or melee attacks."
input DisableSquadShootDelay(void) : "Disables the delay between range attacks for squads of hunters, allowing them to shoot as frequently as they wish."
input EnableSquadShootDelay(void) : "Enables the delay between range attacks for squads of hunters."
input EnableUnplantedShooting(void) : "Used mainly for scripted attacks against bullseyes. Enables the hunter to shoot without having to plant first."
input DisableUnplantedShooting(void) : "Returns the hunter to normal after a call to EnableUnplantedShooting."
input DoPhysicsBlast(void) : "Hunter will instantly do the defensive physics blast."
input Crouch(void) : "Crouch down."
input Stand(void) : "Stand up from crouch."
input DisableCrouchWalk(void) : "UNUSED: Prevents the hunter from crouch walking."
input EnableCrouchWalk(void) : "UNUSED: Allows the hunter to crouch walk."
input UseSiegeTargets(target_destination) : "Pass in the name of info_targets to shoot at when I can't shoot at the player."
]
@PointClass base(npc_template_maker) iconsprite("editor/npc_maker.vmt") = npc_hunter_maker :
"An entity that creates hunters. The NPCs it creates are clones of a template NPC."
[
]
@NPCClass base(BaseNPC) studio() = npc_advisor :
"An adorable sluglike alien with benevolent psychic powers."
[
model(studio) : "World model" : "models/advisor.mdl"
levitationarea(target_destination) : "Levitation Area" : "" : "Trigger volume inside which levitated objects reside"
levitategoal_bottom(target_destination) : "Levitation Goal Bottom" : "" : "Objects will levitate at least this high"
levitategoal_top(target_destination) : "Levitation Goal Top" : "" : "Objects will levitate at least this high"
staging_ent_names(target_destination) : "Staging Position Names" : "" : "All entities with this name will be considered staging positions for the throw behavior."
priority_grab_name(target_destination) : "Priority Name For Grabbing" : "" : "If any entities named this are present, the advisor will preferentially pick them up for throwing at the player."
output OnPickingThrowable(void) : "Fires just before I pick something to hurl"
output OnThrowWarn(void) : "Fires when I trigger the warning green glow before tossing"
output OnThrow(void) : "Fires just after I throw something"
output OnHealthIsNow(integer) : "When I am damaged, my hitpoints thereafter"
input SetThrowRate(float) : "Advisor will throw an object once per this many seconds (plus a little more)"
input WrenchImmediate(target_destination) : "Advisor will immediately start levitating all objects with this name"
input SetStagingNum(integer): "Advisor will stage this many objects at once, then barrage the player."
input PinPlayer(target_destination) : "Advisor will wrench the player to this point in the air. Use a null param to let go."
input BeamOn(target_destination) : "Start a psychic-TK effect beam from the advisor to the specified object. You must remember to turn it off later."
input BeamOff(target_destination) : "Turn off a psychic-TK effect beam from the advisor to the specified object."
input ELightOn(void) : "Turn on an entity light at my location. Please remember to turn this off."
input ELightOff(void) : "Turn off my entity light."
input DoNothing(void) : ""
]
@PointClass base(Targetname, Parentname, EnableDisable) = env_sporeexplosion : "Bugbait Spore Effect"
[
spawnrate(float) : "Spawn Rate (as percentage)" : "25" : "How dense the spore effect is"
]
@PointClass base(Targetname, Parentname, Targetname, EnableDisable) = env_gunfire : "Gunfire Effect"
[
target(target_destination) : "Target" : "" : "Shoot at this target. REMEMBER - this is an effect only! It does not do damage!"
minburstsize(integer) : "Min Burst Size" : 2 : "Minimum number of rounds in a burst."
maxburstsize(integer) : "Max Burst Size" : 7 : "Maximum number of rounds in a burst."
minburstdelay(float) : "Min Delay Between Bursts" : 2 : "Minimum delay between bursts. (seconds)"
maxburstdelay(float) : "Max Delay Between Bursts" : 5 : "Maximum delay between bursts. (seconds)"
rateoffire(float) : "Rate of fire" : 10 : "Expressed as rounds per second"
spread(choices) : "Bullet spread" : 5 : "The 'cone of inaccuracy' of the shots fired by this entity." =
[
1 : "1 Degree"
5 : "5 Degrees"
10 : "10 Degrees"
15 : "15 Degrees"
]
bias(choices) : "Bullet distribution should be..." : 1 : "How to distribute bullets within the spread. Even distribution is a true scatter throughout the spread. Biased towards the outside makes the shots 'miss' the target by tending towards the outside of the spread." =
[
1 : "Evenly distributed"
-1 : "Biased towards the outside"
]
collisions(choices) : "Collision detection" : 0 : "Whether/how to handle bullet collision detection. NOTE: If you select NONE, this entity will be very cheap to use, but all bullets will stop short at their target's position in space and there will be no impact effects. Normal collision detection does the same things NPCs do when they fire their guns (except harm anything)." =
[
0 : "None. Cheap for performance."
1 : "Normal collision detection."
]
shootsound(sound) : "Shoot Sound" : "Weapon_AR2.NPC_Single" : "Gunfire sound to make" //=
//[
// "Weapon_AR2.NPC_Single" : "AR2"
// "Weapon_SMG1.NPC_Single" : "SMG1"
//]
tracertype(choices) : "Tracer" : "AR2TRACER" : "Type of tracer to display" =
[
"Tracer" : "Default"
"AR2TRACER" : "AR2"
"" : "None"
]
input FireBurst(integer) : "Fires a burst with the specified number of shots, regardless of the entity's current state, the maximum and minimum burst numbers, or any bursts currently being executed by this entity."
input SetTarget(target_destination) : "Sets the target to shoot at."
// Outputs
output OnFire(void) : "Fires for each bullet fired by this entity."
]
@PointClass base(Targetname,Parentname,Angles,Shadow) sphere(DamageRadius) studio("models/props_combine/headcrabcannister01b.mdl") = env_headcrabcanister : "Headcrab canister"
[
spawnflags(Flags) =
[
1 : "[1] No Impact Sound" : 0
2 : "[2] No Launch Sound" : 0
4096 : "[4096] Start Impacted" : 0
8192 : "[8192] Land at initial position" : 0
16384 : "[16384] Wait for input to open" : 0
32768 : "[32768] Wait for input to spawn headcrabs" : 0
65536 : "[65536] No smoke" : 0
131072 : "[131072] No shake" : 0
262144 : "[262144] Remove on impact" : 0
524288 : "[524288] No impact effects" : 0
]
HeadcrabType(choices) : "Which headcrab to spawn?" : 0 =
[
0 : "Normal headcrabs"
1 : "Fast Headcrabs"
2 : "Poison Headcrabs"
]
HeadcrabCount(integer) : "Headcrab count" : 6 : "Number of headcrabs to spawn on impact"
FlightSpeed(float) : "Flight Speed" : 3000 : "Speed to fly through the air"
FlightTime(float) : "Flight Time" : 5 : "Time to fly through the air in seconds"
StartingHeight(float) : "Starting Height" : 0 : "Relative height from the landing position at which the canister should be launched. Positive values mean launch it above the impact point, negative values mean launch it below."
MinSkyboxRefireTime(float) : "Min Refire Time" : 0 : "Min number of seconds before the cannister is refired. This will only work for cannisters placed in the skybox."
MaxSkyboxRefireTime(float) : "Max Refire Time" : 0 : "Max number of seconds before the cannister is refired. This will only work for cannisters placed in the skybox."
SkyboxCannisterCount(integer) : "Cannister count" : 1 : "Number of cannisters to fire in the skybox (0 means fire continuously, forever)."
Damage(float) : "Impact damage" : 150 : "Max damage the canister applies on impact"
DamageRadius(float) : "Impact damage radius": 750 : "Max radius of the impact damage for the canister"
SmokeLifetime(float) : "Smoke Duration" : 30 : "Duration that the canister smokes. -1 means always smoke."
LaunchPositionName(target_destination) : "Launch Position Name" : "" : "If the canister should launch to it's origin from another point within the world, this should specify an info_target at the launch origin."
// Inputs
input FireCanister(void) : "Fire the canister"
input OpenCanister(void) : "Opens the canister (must be called after the OnImpacted output is fired)"
input SpawnHeadcrabs(void) : "Spawns headcrabs (must be called after the OnImpacted output is fired and after OpenCanister is triggered, if the Wait for Input to open spawnflag is checked.)"
input StopSmoke(void) : "Stops the smoke if it's on"
input StopHissing(void) : "Stops post-impact hissing."
// Outputs
output OnLaunched(string) : "Fires when the canister is launched"
output OnImpacted(void) : "Fires when canister hits the ground"
output OnOpened(void) : "Fires when canister has finished opening"
output OnCrab(ehandle) : "Fires for each headcrab that comes out of this canister"
]
@NPCClass base(TalkNPC, PlayerCompanion) studio() = npc_vortigaunt : "Vortigaunt"
[
model(studio) : "World model" : "models/vortigaunt.mdl"
ArmorRechargeEnabled(choices) : "Allow Armor Recharging" : 1 =
[
0 : "No"
1 : "Yes"
]
HealthRegenerateEnabled(choices) : "Regenerate Health" : 0 : "Whether or not the vortigaunt will recover his own health over time like vital allies, while in combat" =
[
0 : "No"
1 : "Yes"
]
// Inputs
input EnableArmorRecharge(void) : "Allow armor recharging on players"
input DisableArmorRecharge(void) : "Do not allow armor recharging on players"
input ExtractBugbait(target_destination) : "Causes the vortigaunt to extract bugbait from the named target passed in."
input ChargeTarget(target_destination) : "Force the vortigaunt to charge the named target."
input EnableHealthRegeneration(void) : "Allow the vortigaunt to start regenerating his health over time, like vital allies."
input DisableHealthRegeneration(void) : "Stop the vortigaunt from regenerating his health. (Default behavior)"
input TurnBlue(bool) : "If true, turn blue. If false, turn green. (Episodic)."
input TurnBlack(bool) : "If true, turn black. If false, be seen. (Episodic)."
input BeginCarryNPC(void) : "Begin to override our animations for 'carrying' an NPC. (Episodic)"
input EndCarryNPC(void) : "Stop overriding our animations for 'carrying' an NPC. (Episodic)"
// Outputs
output OnFinishedExtractingBugbait(void) : "Fires when the vortigaunt's finished extracting bugbait from a target."
output OnFinishedExtractingTauCannon(void) : "Fires when the vortigaunt's finished extracting the tau cannon from the jeep."
output OnFinishedChargingTarget(void) : "Fires when the vortigaunt has finished charging a target."
output OnPlayerUse(void) : "Fires when a player +USEs the vortigaunt."
]
//@NPCClass base(BaseNPC) = npc_spotlight : "Spotlight"
//[
// spawnflags(Flags) =
// [
// 65536 : "[65536] Start Track On" : 1
// 131072 : "[131072] Start Light On" : 1
// 262144 : "[262144] No Dynamic Light" : 0
// 524288 : "[524288] Never Move" : 0
// ]
//
// health(Integer) : "Health" : 100
// YawRange(integer) : "YawRange" : 90
// PitchMin(integer) : "PitchMin" : 35
// PitchMax(integer) : "PitchMax" : 50
// IdleSpeed(integer) : "IdleSpeed" : 2
// AlertSpeed(integer) : "AlertSpeed" : 5
// spotlightlength(integer) : "SpotlightLength" : 500
// spotlightwidth(integer) : "SpotlightWidth" : 50
// rendercolor(color255) : "Color (R G B)" : "255 255 255"
//
// // Inputs
// input LightOn(void) : "LightOn"
// input LightOff(void) : "LightOff"
// input TrackOn(void) : "TrackOn"
// input TrackOff(void) : "TrackOff"
//
// // Outputs
// output OnAlert(void) : "Fires when the spotlight alerted by sound"
// output DetectedEnemy(string) : "Outputs enemy entity when spotlight finds and starts tracking enemy"
// output LostEnemy(string) : "Outputs enemy entity when spotlight loses enemy that it's tracking, if enemy still exists"
// output SquadDetectedEnemy(string) : "Outputs enemy entity when squad finds and starts tracking enemy"
// output SquadLostEnemy(string) : "Outputs enemy entity when squad loses enemy that it's tracking, if entity still exists"
// output LightPosition(string) : "Position of the end of the spotlight beam"
//]
@NPCClass base(BaseNPC) studio() = npc_strider : "Strider"
[
model(choices) : "Model" : "models/combine_strider.mdl" : "Standard strider" =
[
"models/combine_strider.mdl" : "Standard strider"
"models/combine_strider_vsdog.mdl" : "The Strider that fights Dog"
]
stompfilter(filterclass) : "Stomp Filter" : : "Which entities am I allowed to stomp? Don't forget to use the 'Can Stomp Player' spawnflag as well."
spawnflags(Flags) =
[
65536 : "[65536] Can Stomp Player" : 0
131072 : "[131072] Minimal damage taken from NPCs (1 point per missile)" : 0
]
//Inputs
input SetMinigunTime(float) : "Time to shoot at any set minigun target"
input SetMinigunTarget(target_destination) : "Strider will shoot minigun at this"
input DisableMinigun(void) : "Disables the minigun until further notice by the EnableMinigun input."
input EnableMinigun(void) : "Enables the minigun if it was disabled by the DisableMinigun input."
input SetCannonTarget(target_destination) : "Strider will shoot cannon at this"
input FlickRagdoll(void) : "Strider will flick anyone he's skewered"
input StartPatrol(void) : "Start patrolling back and forth along the current track."
input StopPatrol(void) : "Stop patrolling back and forth along the track. This will cause the helicopter to come to rest at the track which he's currently flying toward."
input ChooseFarthestPathPoint(void) : "When tracking an enemy, choose the point on the path furthest from the enemy, but still in firing range"
input ChooseNearestPathPoint(void) : "When tracking an enemy, choose the point on the path nearest from the enemy"
input Crouch(void) : "Crouch down"
input CrouchInstantly(void) : "Crouch instantly. This makes the Strider pop to a crouch. Do not do this where players can observe."
input Stand(void) : "Stand up from crouch"
input DisableCrouchWalk(void)
input EnableCrouchWalk(void)
input SetTargetPath(target_destination) : "Set a path for the strider to patrol. The strider will first move to the closest point on the path"
input ClearTargetPath(void) : "Clear the strider patrol path"
input EnableAggressiveBehavior(void) : "Use aggressive behavior. Fire faster, more frequently"
input DisableAggressiveBehavior(void) : "Stop using aggressive behavior. (Revert to normal)"
input StopShootingMinigunForSeconds(float) : "Stop shooting the minigun for a period of time (specify seconds as parameter)"
input DisableCrouch(void) : "Prevent the Strider from crouching"
input DisableMoveToLOS(void) : "Prevent the Strider from seeking Line of Sight to target. (Hold position)"
input DisableCollisionWith(target_destination) : "Disable collision with a given object."
input EnableCollisionWith(target_destination) : "Reenable collision with a given object."
input ScaleGroundSpeed(float) : "Scale the movement speed of the strider"
input SetStompFilter(target_destination) : "Sets the strider's stomp filter."
disablephysics(choices) : "Disable physics (reduce CPU)" : 0 =
[
0 : "No"
1 : "Yes"
]
]
@PointClass base(Targetname, Parentname) iconsprite("editor/concussiveblast.vmt") sphere(radius) = concussiveblast :
"A special, space-warping explosion that damages/dissolves entities in the specified radius. " +
"Striders use this in their warp cannons."
[
damage(float) : "Damage" : 200 : "The amount of damage done by the explosion."
radius(float) : "Radius" : 256 : "The radius in which the explosion can damage entities."
magnitude(string) : "Shockwave Magnitude" : "1.0" : "Multiplier for how far the shockwave should go. Does nothing to the radius or damage. 2.5 = Strider Cannon"
soundname(sound) : "Sound" : "" : "Sound to make when we explode."
spawnflags(flags) =
[
1: "[1] Repeatable" : 0
]
// Inputs
input Explode(void) : "Triggers the explosion."
input ExplodeWithMagnitude(float) : "Triggers the explosion with the specified magnitude."
]
@NPCClass base(BaseNPC, BaseFadeProp) studio("models/Barnacle.mdl") sphere(fademindist) sphere(fademaxdist) = npc_barnacle : "Barnacle"
[
spawnflags(Flags) =
[
65536 : "[65536] Cheap death" : 0
131072 : "[131072] Ambush Mode" : 0
]
RestDist(float) : "Rest Distance" : 16 : "Distance above the ground that the tongue should lie when the barnacle is at rest"
input DropTongue(void) : "Drop tongue"
input SetDropTongueSpeed(integer) : "Set Drop Tongue speed"
input LetGo(void) : "Let go of anything I am holding."
output OnGrab(string) : "When I attach my tongue to something"
output OnRelease(string) : "When I let go of something"
]
@NPCClass base(BaseHelicopter) studio("models/gunship.mdl" ) = npc_combinegunship : "Combine Gunship"
[
HealthIncrements(integer) : "Health Increments" : 0 : "The number of times this gunship must be damaged before dying. This value is multiplied by 0.5 on Easy and 1.5 on Hard. 0 = the value stored in sk_gunship_health_increments (default 5)."
CanGroundAttack(choices) : "Can use ground attack automatically" : 0 : "Allows this gunship to use its belly cannon automatically during combat." =
[
0 : "No"
1 : "Yes"
]
// Inputs
input OmniscientOn(void) : "Gunship knows target's location even when target is out of sight or behind cover"
input OmniscientOff(void) : "Gunship relies on normal sight functions to locate target"
input BlindfireOn(void ) : "Gunship will fire at an unseen target, attempting to punch through to them"
input BlindfireOff(void ) : "Gunship only fires at viusible target"
input SetPenetrationDepth( float ) : "Set penetration depth of bullets"
input SetDockingBBox( void ) : "Shrink Bounding Box"
input SetNormalBBox( void ) : "Set Bounding Box to normal size"
input EnableGroundAttack( void ) : "Allow the gunship to use its ground attack"
input DisableGroundAttack( void ) : "Don't allow the gunship to use its ground attack"
input DoGroundAttack( target_destination ) : "Causes the gunship to execute its ground attack. Pass an entity for the gunship to attack the specified entity, otherwise it will do it at its current position."
input BecomeInvulnerable( void ): "Stops the gunship from taking damage, but still makes sounds effects"
input BecomeVulnerable( void ): "Makes the gunship act normally to damage"
input EnableRotorSound(void) : "Turns on rotor sounds"
input DisableRotorSound(void) : "Turns off rotor sounds"
// Outputs
output OnFireCannon(void) : "Fires when the gunship fires a cannon round"
output OnFirstDamage( void ) : "Fired when the first damage is done to the gunship."
output OnSecondDamage( void ) : "Fired when the second damage is done to the gunship."
output OnThirdDamage( void ) : "Fired when the third damage is done to the gunship."
output OnFourthDamage( void ) : "Fired when the fourth damage is done to the gunship."
spawnflags(Flags) =
[
//4096 : "[4096] No ground attack" : 0
8192 : "[8192] Use chopper model (Lost Coast chopper)" : 0
]
]
@PointClass base(Targetname, Parentname) iconsprite("editor/info_target.vmt") = info_target_helicopter_crash : "Helicopter Crash Target"
[
]
@PointClass base(Targetname, Parentname) iconsprite("editor/info_target.vmt") = info_target_gunshipcrash : "Gunship Crash Target"
[
input Enable(void) : "Enable the crash target."
input Disable(void) : "Disable the crash target."
]
@NPCClass base(BaseHelicopter) studio("models/combine_dropship.mdl" ) = npc_combinedropship : "Combine Dropship"
[
spawnflags(Flags) =
[
32768 : "[32768] Wait for input before dropoff" : 0
]
LandTarget(target_destination) : "Land target name"
GunRange(float) : "Crate Gun Range" : 2048 : "If the dropship's carrying a crate with a gun on it, it'll only shoot targets within this range."
RollermineTemplate(target_destination) : "Name of Rollermine Template" : "" : "If this dropship drops any rollermines due to the 'DropMines' input being fired, it will use this template for the rollermines it creates. If left blank, ordinary rollermines will be dropped."
NPCTemplate(target_destination) : "Name of Template NPC 1"
NPCTemplate2(target_destination) : "Name of Template NPC 2"
NPCTemplate3(target_destination) : "Name of Template NPC 3"
NPCTemplate4(target_destination) : "Name of Template NPC 4"
NPCTemplate5(target_destination) : "Name of Template NPC 5"
NPCTemplate6(target_destination) : "Name of Template NPC 6"
Dustoff1(target_destination) : "Name of dustoff point for NPC 1"
Dustoff2(target_destination) : "Name of dustoff point for NPC 2"
Dustoff3(target_destination) : "Name of dustoff point for NPC 3"
Dustoff4(target_destination) : "Name of dustoff point for NPC 4"
Dustoff5(target_destination) : "Name of dustoff point for NPC 5"
Dustoff6(target_destination) : "Name of dustoff point for NPC 6"
APCVehicleName(target_destination) : "Name of the APC to drop"
Invulnerable(Choices) : "Invulnerable" : 0 =
[
0 : "No"
1 : "Yes"
]
DontEmitDanger(Choices) : "Don't emit danger on dropoff" : 0 : "Prevents this dropship from emitting danger sounds when it's dropping off soldiers." =
[
0 : "No"
1 : "Yes"
]
CrateType(Choices) : "Crate Type" : 2 =
[
-3 : "Jeep (No crate)"
-2 : "APC (No crate)"
-1 : "Strider (No crate)"
0 : "Roller Hopper"
1 : "Soldier Crate"
2 : "None"
]
AllowsAnyDamage(Choices) : "Allows any damage (to container)" : 0 : "Allows this dropship's container (if it's a soldier crate) to take any amount of any type of damage, including bullet or melee damage. This is supposed to allow dropship containers to be taken down in previously impossible ways and should be used with an actual damage filter." =
[
0 : "No"
1 : "Yes"
]
// Inputs
input LandLeaveCrate(integer) : "Land, drop soldiers, and leave the crate behind. Specify the number of troops to drop off in the parameter."
input LandTakeCrate(integer) : "Land, drop soldiers, but don't leave the crate behind. Specify the number of troops to drop off in the parameter."
input DropMines(integer) : "Drop Rollermines. Specify the number of mines to drop in the parameter."
input DropStrider(void) : "Drop the Strider you're carrying. Now."
input DropAPC(void) : "Drop the APC you're carrying. Now."
input DropCargo(void) : "Drop whatever the hell you're carrying. Now."
input Hover(target_destination) : "Hover over a named target entity until told to fly to a path."
input Pickup(target_destination) : "Pick up that entity."
input SetLandTarget(target_destination) : "Set my land target name."
input SetGunRange(float) : "Set my crate gun's range."
input EnableRotorSound(void) : "Turns on rotor sounds"
input DisableRotorSound(void) : "Turns off rotor sounds"
input StopWaitingForDropoff(void) : "Stop waiting for the dropoff. Dropoff as soon as possible."
// Outputs
output OnFinishedDropoff(void) : "Fires when the dropship has finished a dropoff."
output OnFinishedPickup(void) : "Fires when the dropship has finished a pickup."
output OnCrateShotDownBeforeDropoff(float) : "Fires when the container was shot down before it dropped off soldiers. The parameter contains the number of soldiers that weren't successfully dropped off."
output OnCrateShotDownAfterDropoff(void) : "Fires when the container was shot down after it dropped off soldiers."
output OnSpawnNPC(ehandle) : "Fires when this dropship spawns a NPC."
]
@NPCClass base(BaseHelicopter, Studiomodel) studioprop() = npc_helicopter : "Helicopter"
[
model(studio) : "World Model" : "models/combine_helicopter.mdl" : "This model should have the right attachments."
health(integer) : "Health" : 0 : "Overrides this helicopter's health. 0 = default npc_helicopter health (5600)."
spawnflags(Flags) =
[
65536 : "[65536] Loud rotor wash sound" : 0
131072 : "[131072] Electrical drone" : 0
262144 : "[262144] Helicopter lights" : 0
524288 : "[524288] Ignore avoid spheres+boxes" : 0
1048576 : "[1048576] More aggressive attacks" : 0
2097152 : "[2097152] Cast long shadow" : 0
]
InitialSpeed(string) : "Initial Speed" : "0"
GracePeriod(float) : "Grace Period" : "2.0" : "Time in seconds the helicopter has to see the player before he starts shooting"
PatrolSpeed(float) : "Patrol Speed" : "0" : "Speed at which the helicopter moves if he has no enemy."
FieldOfView(float) : "Field of View" : "-1.0" : "The helicoter's viewcone. (1.0 = straight ahead, 0.0 = +/- 90 degrees, -1.0 = all directions)"
noncombat(choices) : "Non-combat (Do not precache gibs)" : "No" : "If enabled, this helicopter will not precache stuff that would only be seen in combat, like mines or gibs. Even damaging the helicopter in this state can crash the game, so you might want to use a damage filter too." =
[
0 : "No"
1 : "Yes"
]
// Inputs
input GunOn(void) : "GunOn"
input GunOff(void) : "GunOff"
input MissileOn(void) : "MissileOn"
input MissileOff(void) : "MissileOff"
input EnableRotorWash(void) : "Turns on rotor wash effects"
input DisableRotorWash(void) : "Turns off rotor wash effects"
input EnableRotorSound(void) : "Turns on rotor sounds"
input DisableRotorSound(void) : "Turns off rotor sounds"
input StartBombingVehicle(void) : "Starts the chopper leading enemy vehicles and dropping bombs on them."
input StartTrailingVehicle(void) : "Starts the chopper trailing enemy vehicles and shooting at them."
input StartDefaultBehavior(void) : "Starts the chopper in the mode where he always stops at nav points instead of stopping anywhere in between nav points."
input StartAlwaysLeadingVehicle(void) : "Starts the chopper *always* leading enemy vehicles (regardless of how they are moving w/respect to the path) and dropping bombs on them. This mode is different from StartBombingVehicle in that it never uses the machine gun."
input StartSprinkleBehavior(void) : "Starts the chopper dropping bombs randomly + shooting at the player."
input StartBullrushBehavior(void) : "Starts the chopper bullrushing the player."
input SetHealthFraction(float) : "Sets the chopper health as a percentage of max health"
input EnableDeadlyShooting(void) : "Starts the chopper being deadly to on-foot players"
input DisableDeadlyShooting(void) : "Stops the chopper being deadly to on-foot players"
input StartNormalShooting(void) : "The chopper will fire in short bursts. Good for on-foot experiences"
input StartLongCycleShooting(void) : "The chopper fires in long bursts"
input StartContinuousShooting(void) : "The chopper fires continuously."
input StartFastShooting(void) : "The chopper fires normal bursts, but does not 'charge up' the gun. Fires immediately."
input ResetIdleTime(void) : "Allows the helicopter to fire immediately if he's not in the middle of charging or firing"
input SetAngles(string) : "Instantly snaps the orientation of the helicopter (Pitch Yaw Roll)"
input DropBomb(void) : "Immediately drops a bomb based on normal bomb dropping rules"
input DropBombStraightDown(void) : "Immediately drops a bomb directly downwards"
input DropBombAtTarget(target_destination) : "Immediately drops a bomb directly at the target destination, but only if the player isn't right there"
input DropBombAtTargetAlways(target_destination) : "Immediately drops a bomb directly at the target destination, no matter whether it's fair or not."
input DropBombDelay(float) : "Add a delay before the next bomb is dropped"
input BecomeIndestructible(void) : "Makes the helicopter take no more damage"
input DisablePathVisibilityTests(void) : "When the helicopter moves, he will not check for visibility from the path_track to the enemy to cull out path_tracks"
input EnablePathVisibilityTests(void) : "When the helicopter moves, he will only move to path_tracks that have line-of-sight to the enemy"
input StartCarpetBombing(void) : "Starts the helicopter constantly dropping megabombs until StopCarpetBombing input"
input StopCarpetBombing(void) : "Stop the carpet bombing behavior"
// Outputs
output OnHealthChanged(integer) : "Fires when the helicopter health changes. The integer is the percentage of health the chopper has from 0-100."
output OnShotDown(void) : "Fires the instant the helicopter is killed"
output OutBomb(ehandle) : "Fires for each bomb dropped."
]
@PointClass base(Targetname, Parentname) studio("models/combine_helicopter/helicopter_bomb01.mdl") = grenade_helicopter : "Helicopter bomb"
[
spawnflags(Flags) =
[
65536 : "[65536] Is a dud" : 0
]
// Inputs
input ExplodeIn(float) : "Tells the bomb to explode in X seconds."
// Outputs
output OnPhysGunOnlyPickup(void) : "Fired when a player picks this object up WITH THE PHYSGUN. +USE pickups do not fire this output."
]
@PointClass base(Targetname, Parentname) iconsprite("editor/env_firesource") color(255 255 0) sphere(radius) = npc_heli_avoidsphere : "Helicopter avoidance sphere"
[
spawnflags(Flags) =
[
65536 : "[65536] Avoid the sphere above and below" : 0
]
radius(float) : "Radius" : 128
]
@SolidClass base(Origin, Angles, Parentname) color(255 255 0) = npc_heli_avoidbox : "Helicopter avoidance box"
[
spawnflags(Flags) =
[
65536 : "[65536] Avoid the box above and below" : 0
]
]
@SolidClass base(Origin, Angles, Parentname) color(255 255 0) = npc_heli_nobomb : "Helicopter bombing suppressor"
[
]
// npc_BaseZombie stuff
@BaseClass base(BaseNPC) = BaseZombie
[
Headless(choices) : "Headcrab-less" : "No" : "Toggles whether this zombie should have a headcrab on their head. They usually should." =
[
0 : "No"
1 : "Yes"
]
spawnflags(Flags) =
[
32768 : "[32768] Never turn into a torso" : 0
]
output OnSwattedProp(ehandle) : "Fires when this NPC swats a prop, passing the prop as the activator and parameter."
output OnCrab(ehandle) : "Fires when the zombie releases a headcrab, passing the headcrab as the activator and parameter."
]
@NPCClass base(BaseZombie) studio("models/Zombie/fast.mdl") = npc_fastzombie : "Fast Zombie"
[
input AttachToVehicle(target_destination) : "Attach to a specified vehicle entity"
]
@NPCClass base(BaseZombie) studio("models/Zombie/Fast_torso.mdl") = npc_fastzombie_torso : "Fast Zombie Torso"
[
]
@NPCClass base(BaseZombie) studio("models/Zombie/Classic.mdl") = npc_zombie : "Zombie"
[
]
@NPCClass base(BaseZombie) studio("models/Zombie/Classic_torso.mdl") = npc_zombie_torso : "Zombie Torso"
[
]
// CUSTOM ZOMBIES
// ------------------
@NPCClass base(npc_zombie, Studiomodel) studio() = npc_zombie_custom : "Custom Zombie"
[
health(integer) : "Health" : 0 : "Overrides this zombie's health. 0 = default npc_zombie health."
model(studio) : "Model" : "models/Zombie/Classic.mdl" : "The zombie's model."
LegsModel(studio) : "Legs Model" : "models/zombie/classic_legs.mdl" : "The model to use for legs. You can leave this blank if you enable the 'No Torso' spawnflag."
TorsoModel(studio) : "Torso Model" : "models/zombie/classic_torso.mdl" : "The model to use for torso. You can leave this blank if you enable the 'No Torso' spawnflag."
HeadcrabClassname(npcclass) : "Headcrab Classname" : "npc_headcrab" : "The NPC that should be used as the 'headcrab'. You can leave this blank if the zombie is marked as headcrab-less."
HeadcrabModel(studio) : "Headcrab Model" : "models/headcrabclassic.mdl" : "The model that should be used for 'headcrab' ragdolls. You can leave this blank if the zombie is marked as headcrab-less."
]
@NPCClass base(npc_zombie_torso, Studiomodel) studio() = npc_zombie_custom_torso : "Custom Zombie Torso"
[
health(integer) : "Health" : 0 : "Overrides this zombie's health. 0 = default npc_zombie health."
model(studio) : "Model" : "models/Zombie/Classic_torso.mdl" : "The zombie's model."
HeadcrabClassname(pointentityclass) : "Headcrab Classname" : "npc_headcrab" : "The NPC that should be used as the 'headcrab'. You can leave this blank if the zombie is marked as headcrab-less."
HeadcrabModel(studio) : "Headcrab Model" : "models/headcrabclassic.mdl" : "The model that should be used for 'headcrab' ragdolls. You can leave this blank if the zombie is marked as headcrab-less."
]
// ------------------
@NPCClass base(BaseZombie) studio("models/Zombie/zombie_soldier.mdl") = npc_zombine : "Combine Soldier Zombie"
[
NumGrenades(choices) : "Number of Grenades" : "1" : "The number of grenades this zombine can pull out." =
[
"0" : "None"
"1" : "1"
"2" : "2"
"3" : "3"
"4" : "4"
"5" : "5"
"999999" : "Unlimited"
]
// Inputs
input StartSprint(void) : "Forces the zombine to sprint."
input PullGrenade(void) : "Forces the zombine to pull a grenade."
// Outputs
output OnPullGrenade(ehandle) : "Fires when the zombine pulls a grenade. Passes the grenade."
]
@NPCClass base(BaseZombie) studio("models/Zombie/Poison.mdl") = npc_poisonzombie :
"A bloated, disgusting, fluid-spurting zombie created by a poison headcrab."
[
crabcount(choices) : "Crabs in nest" : 3 =
[
1 : "1 Crab"
2 : "2 Crabs"
3 : "3 Crabs"
]
]
@NPCClass base(BaseNPC) studio("models/combine_scanner.mdl") = npc_cscanner : "City Scanner"
[
spawnflags(Flags) =
[
65536 : "[65536] No Dynamic Light" : 0
131072: "[131072] Strider Scout Scanner" : 0
]
CustomFlightSpeed(float) : "Custom Flight Speed" : "0" : "Overrides the scanner's default speed. 0 = use default"
spotlightlength(integer) : "Spotlight Length" : 500
spotlightwidth(integer) : "Spotlight Width" : 50
spotlightdisabled(choices) : "Spotlight Disabled" : 0 =
[
0 : "No"
1 : "Yes"
]
ShouldInspect(choices) : "Should inspect" : 1 =
[
0 : "No"
1 : "Yes"
]
OnlyInspectPlayers(choices) : "Only Inspect Players" : 0 =
[
0 : "No"
1 : "Yes"
]
NeverInspectPlayers(choices) : "Never Inspect Players" : 0 =
[
0 : "No"
1 : "Yes"
]
DisablePhotos(choices) : "Never take photos" : 0 : "Prevents this scanner from ever taking photos. It may still chase and inspect, but it will never actually take any pictures or flashes." =
[
0 : "No"
1 : "Yes"
]
// Inputs
input DisableSpotlight(void) : "DisableSpotlight"
input InspectTargetPhoto(target_destination) : "Tells the scanner to photograph the given entity, named by classname or by target name. !activator or !player works here also."
input InspectTargetSpotlight(target_destination) : "Tells the scanner to spotlight the given entity, named by classname or by target name. !activator or !player works here also."
input SetFlightSpeed(integer) : "Sets the flight speed of the scanner"
input InputShouldInspect(integer) : "Set whether should inspect or not"
input SetFollowTarget(target_destination) : "Set target to follow until told otherwise"
input ClearFollowTarget(void) : "Stop following our target"
input SetDistanceOverride(float) : "Override the distance the scanner will attempt to keep between inspection targets and itself"
// The FGD definitions have been moved to npc_clawscanner, but just the FGD definitions.
// You could still use Deploy/EquipMine on a npc_cscanner and it will still work.
//input DeployMine(void) : "Drop landmine (if carrying one)"
//input EquipMine(void) : "Equip with landmine"
input DisablePhotos(void) : "Disables this scanner's ability to take photos."
input EnablePhotos(void) : "Enables this scanner's ability to take photos if it was previously disabled."
// Outputs
output OnPhotographPlayer(void) : "Fired any time the scanner takes a picture of the player."
output OnPhotographNPC(void) : "Fired any time the scanner takes a picture of an NPC."
]
@NPCClass base(BaseNPC, npc_cscanner) studio("models/shield_scanner.mdl") = npc_clawscanner : "Claw Scanner"
[
input DeployMine(void) : "Drop landmine (if carrying one)"
input EquipMine(void) : "Equip with landmine"
]
@NPCClass base(BaseNPC,AlyxInteractable) studio("models/manhack.mdl") = npc_manhack : "Manhack"
[
spawnflags(Flags) =
[
65536 : "[65536] Start packed up (folded and engine off)" : 0
131072 : "[131072] Don't use any damage effects" : 0
262144 : "[262144] Use Air Nodes" : 0
1048576 : "[1048576] No Danger Sounds" : 0
]
input DisableSwarm(void) : "Disable the manhack swarm behavior."
input Unpack(void) : "Causes the manhack to stop being packed up."
ignoreclipbrushes(choices): "Ignore NPC Clip brushes" : "0" =
[
0 : "No"
1 : "Yes"
]
]
@NPCClass base(BaseNPC) studio("models/mortarsynth.mdl") = npc_mortarsynth : "Mortar Synth"
[
]
@NPCClass base(BaseNPC,RappelNPC,NewGrenadeUser,PolicingNPC) studio() = npc_metropolice : "MetroPolice"
[
model(studio) : "Model" : "models/police.mdl" : "The model of this npc_metropolice. Keep in mind this overrides the 'Efficient' spawnflag which sets the model to police_cheaple.mdl."
additionalequipment(choices) : "Weapons" : "weapon_pistol" =
[
"weapon_pistol" : "Pistol"
"weapon_smg1" : "SMG1"
"weapon_stunstick" : "Stun Stick"
"weapon_crowbar" : "Crowbar"
"weapon_ar2" : "AR2"
"weapon_shotgun" : "Shotgun"
"weapon_357" : "357"
"weapon_rpg" : "RPG"
"0" : "Nothing"
]
manhacks(Choices) : "Number of Manhacks" : 0 =
[
0 : "None"
1 : "1"
2 : "2"
]
weapondrawn(Choices) : "Pistol starts drawn" : 0 =
[
0 : "No"
1 : "Yes"
]
spawnflags(Flags) =
[
131072 : "[131072] Simple cops" : 0
//262144 : "[262144] Rappel (UNCHECK THIS IF IT IS CHECKED!)" : 0
524288 : "[524288] Always stitch" : 0
1048576 : "[1048576] No chatter" : 0
2097152 : "[2097152] Arrest enemies" : 0
4194304 : "[4194304] No far stitching" : 0
8388608 : "[8388608] Prevent manhack toss" : 0
16777216: "[16777216] Allowed to respond to thrown objects" : 0
33554432: "[33554432] Mid-range attacks (halfway between normal + long-range)" : 0
]
// Inputs
input DisableManhackToss(void) : "Disables manhack toss"
input EnableManhackToss(void) : "Enables manhack toss (which had been disabled by the spawnflag or input)"
input ActivateBaton(void) : "Set the baton to active"
input AdministerJustice(void) : "Orders this NPC to administer justice to the player as if they hit this NPC with a can or something. If this NPC cannot respond, it will look for another npc_metropolice to do it."
input SetWarnings(integer) : "Sets the number of warnings this NPC has given to the player."
input AddWarnings(integer) : "Adds to the number of warnings this NPC has given to the player."
input DeployManhack(void) : "Deploys a manhack immediately if one is available."
input AddManhacks(integer) : "Adds to the number of manhacks this NPC has available."
input SetManhacks(integer) : "Sets the number of manhacks this NPC has available."
// Outputs
output OnStunnedPlayer(void) : "Fires when the player is hit by a stunstick by this NPC."
output OnCupCopped(void) : "Fires if the player hits me with the cupcop can. ONLY use for x360 achievement."
output OnHitByPhysicsObject(ehandle) : "Fired when the player hits this NPC with any prop. Passes the thrower as the activator and the prop as the parameter."
output OutManhack(ehandle) : "Fired the moment when this NPC spawns a manhack. Passes the manhack."
]
@NPCClass base(BaseNPC) studio("models/Synth.mdl") = npc_crabsynth : "Crab Synth"
[
]
@NPCClass base(TalkNPC) studio("models/Monk.mdl") = npc_monk : "Monk"
[
additionalequipment(choices) : "Weapons" : "weapon_annabelle" =
[
"weapon_annabelle" : "Annabelle"
"weapon_smg1" : "SMG1"
"weapon_ar2" : "AR2"
"weapon_stunstick" : "Stun Stick"
"weapon_crowbar" : "Crowbar"
"weapon_shotgun" : "Shotgun"
//"weapon_beerbottle" : "Beer Bottle"
//"weapon_beerbottle2" : "Beer Bottle2"
"weapon_rpg" : "RPG"
"0" : "Nothing"
]
HasGun(choices) : "Has Gun" : 1 =
[
0 : "No"
1 : "Yes"
]
// Inputs
input PerfectAccuracyOn(void) : "Make every shot at a zombie a headshot"
input PerfectAccuracyOff(void) : "Return to normal accuracy"
]
@NPCClass base(TalkNPC, Parentname, PlayerCompanion) studio() = npc_alyx : "Alyx"
[
model(studio) : "World model" : "models/alyx.mdl"
additionalequipment(choices) : "Weapons" : "weapon_alyxgun" =
[
"weapon_alyxgun" : "Alyx Gun"
"weapon_shotgun" : "Shotgun"
"weapon_pistol" : "Pistol"
"weapon_smg1" : "SMG1"
"weapon_ar2" : "AR2"
"0" : "Nothing"
]
DontPickupWeapons(choices) : "Prevent picking up weapons?" : "1" : "If yes, this NPC will NOT be allowed to pick up weapons they find on the ground." =
[
0 : "No"
1 : "Yes"
]
ShouldHaveEMP(choices) : "Should alyx have her EMP?" : "1" =
[
0 : "No"
1 : "Yes"
]
// Inputs
input AllowInteraction(void) : "Allow Alyx's 'hacking' AI to run."
input DisallowInteraction(void) : "Disallow Alyx's 'hacking' AI."
input AllowDarknessSpeech(bool) : "Enables or disables Alyx's darkness speech ('where are you', etc)."
input SetAnimLockedEntity(target_destination) : "Sets Alyx to take her animation and cycle position from another entity."
input ClearAnimLockedEntity(void) : "Stops Alyx from taking her animation locking from another character."
input GiveEMP(bool): "Gives or removes the EMP tool."
//Outputs
output OnFinishInteractWithObject(void) : "Fires when Alyx finishes interacting with an object (usually hacking it)."
output OnPlayerUse(void) : "Fires when a player +USEs Alyx."
// Vehicle entry/exit input (ultimately will reside in TalkNPC)
input EnterVehicle(target_destination) : "Make Alyx enter the vehicle specified by name."
input EnterVehicleImmediately(target_destination) : "Make Alyx enter the vehicle specified by name immediately via teleportation."
input ExitVehicle(void) : "Make Alyx exit the vehicle she's in."
input CancelEnterVehicle(void) : "Stops Alyx from trying to enter the vehicle if she's outside of it."
// Outputs
output OnPlayerUse(void) : "Fires when a player +USEs Alyx"
]
@PointClass base(Targetname, EnableDisable) = ai_goal_operator : "Indicates items in the world that some NPCs may operate upon"
[
actor(target_name_or_class) : "Actor to affect" : "" : "NPC that should perform this operation"
target(target_destination) : "Position entity" : "" : "Name of the entity that the NPC should move to in order to perform the operation."
contexttarget(target_destination) :"Context target" : "" : "(Optional) Name of an entity that the operator will use within context."
state(choices) : "Initial State" : 0 =
[
0 : "Not ready (closed, locked, etc)"
1 : "Ready (open and accessible)"
]
moveto(choices) : "How should NPC approach?" : 1 =
[
0 : "DO NOT USE THIS SETTING"
1 : "Walk"
2 : "Run"
]
input Activate( void ) : "Begin operating on the object"
// input Deactivate( void ) : "Cease contesting position"
input SetStateReady(void) : "Set the object's state to READY. Fire this input when the object has been unlocked/opened or otherwise made ready for interaction."
input SetStateFinished(void) : "Fire this input when the NPC has completed the interaction with this object."
output OnBeginApproach(void) : "Fired when the NPC begins to approach the position"
output OnMakeReady(void) : "Make the item ready to operate"
output OnBeginOperating(void) : "Fired when the NPC is ready to operate"
output OnFinished(void) : "The item is done"
]
@PointClass base(Targetname, EnableDisable) sphere(LightRadius) = info_darknessmode_lightsource
[
LightRadius(float) : "Light Radius" : "256.0" : "The radius around this lightsource in which Alyx will be able to see enemies."
]
@NPCClass base(TalkNPC) studio() = npc_kleiner : "Kleiner"
[
model(studio) : "World model" : "models/kleiner.mdl"
]
@NPCClass base(TalkNPC,Parentname) studio() = npc_eli : "Eli Vance"
[
model(studio) : "World model" : "models/eli.mdl"
]
@NPCClass base(TalkNPC) studio() = npc_magnusson : "Magnusson"
[
model(studio) : "World model" : "models/magnusson.mdl"
]
@NPCClass base(TalkNPC) studio() = npc_breen : "Dr Breen"
[
model(studio) : "World model" : "models/breen.mdl"
spawnflags(Flags) =
[
65536 : "[65536] Ignore speech semaphore" : 0
]
]
@NPCClass base(TalkNPC) studio("models/mossman.mdl") = npc_mossman : "Dr Mossman"
[
]
@NPCClass base(TalkNPC) studio("models/gman.mdl") = npc_gman : "The G-Man"
[
]
@NPCClass base(BaseNPC) studio("models/dog.mdl") = npc_dog : "d0g"
[
//Inputs
input SetPickupTarget(target_destination) : "Sets the target entity for dog to pickup."
input StartCatchThrowBehavior(target_destination) : "Tells d0g to start playing with the player. You can pass in the name of the object you want him to play with otherwise he'll find the closes phys_object."
input StopCatchThrowBehavior(void) : "Stop the catch and throw behavior."
input PlayerPickupObject(void) : "Tells d0g the physgun just picked up an object."
input StartWaitAndCatch(void) : "Tells d0g to wait for the player to throw an object at him."
input StopWaitAndCatch(void) : "Tells d0g to stop waiting for the player."
input SetThrowArcModifier(float) : "Used to pass in a modifier for d0g's object flight arc."
input SetThrowTarget(target_destination) : "Set d0g's throw target (pass in !player if you want the player)"
input TurnBoneFollowersOff(void) : "Turn dog's bone followers off"
input TurnBoneFollowersOn(void) : "Turn dog's bone followers on"
// Outputs
output OnDogThrow(void) : "Fires when dog throws an object."
output OnDogPickup(void) : "Fires when dog picks up an object."
output OnDogCatch(void) : "Fires when dog catches an object."
]
@PointClass base(Studiomodel, BaseNPC, RenderFields, Shadow) studio() = monster_generic : "Generic Script NPC"
[
spawnflags(Flags) =
[
65536 : "[65536] Not solid" : 0
]
]
@PointClass base(BaseNPC, Parentname, RenderFields, Shadow) studio() = generic_actor : "Generic Actor NPC"
[
model(studio) : "Model"
hull_name(choices) : "Hull type" : "Human" =
[
"HUMAN_HULL" : "Human"
"WIDE_HUMAN_HULL" : "Wide"
"TINY_HULL" : "Tiny"
"MEDIUM_HULL" : "Medium"
"LARGE_HULL" : "Large"
]
SetClassify(choices) : "Classify" : 0 : "Simulate this class. Useful for relationships." =
[
0 : "CLASS_NONE"
1 : "CLASS_PLAYER"
2 : "CLASS_PLAYER_ALLY (Citizens)"
3 : "CLASS_PLAYER_ALLY_VITAL (Alyx, Dr. Kleiner, GameEndAlly vorts, etc.)"
4 : "CLASS_ANTLION"
5 : "CLASS_BARNACLE"
6 : "CLASS_BULLSEYE (npc_bullseyes)"
7 : "CLASS_CITIZEN_PASSIVE (pre-criminal citizens)"
//8 : "CLASS_CITIZEN_REBEL (Unused)"
9 : "CLASS_COMBINE (Soldiers, turrets, etc.)"
10 : "CLASS_COMBINE_GUNSHIP (Gunships, helicopters, dropships)"
//11 : "CLASS_CONSCRIPT (Unused)"
12 : "CLASS_HEADCRAB"
13 : "CLASS_MANHACK"
14 : "CLASS_METROPOLICE"
//15 : "CLASS_MILITARY (Unused)"
16 : "CLASS_SCANNER"
17 : "CLASS_STALKER"
18 : "CLASS_VORTIGAUNT (Non-vital vortigaunts only)"
19 : "CLASS_ZOMBIE"
20 : "CLASS_PROTOSNIPER (npc_snipers)"
21 : "CLASS_MISSILE"
22 : "CLASS_FLARE"
23 : "CLASS_EARTH_FAUNA (crows, seagulls, etc.)"
24 : "CLASS_HACKED_ROLLERMINE"
25 : "CLASS_COMBINE_HUNTER"
]
]
@PointClass base(BaseNPC, RenderFields, Shadow) studio() = cycler_actor : "Actor Cycler"
[
model(studio) : "Model"
Sentence(string) : "Sentence Group" : ""
input Alpha(integer) : "Set Alpha Value"
]
@PointClass base(Angles, BaseNPCMaker) iconsprite("editor/npc_maker.vmt") = npc_maker : "NPC Maker"
[
spawnflags(Flags) =
[
16 : "[16] Fade Corpse" : 0
]
NPCType(npcclass) : "Class name of spawned NPC"
NPCTargetname(target_source) : "Childrens' Name"
NPCSquadname(string) : "Childrens' Squad Name"
NPCHintGroup(string) : "Childrens' Hint Group"
additionalequipment(choices) : "Weapons" : "0" =
[
"weapon_pistol" : "Pistol"
"weapon_ar2" : "AR2"
"weapon_shotgun" : "Shotgun"
"weapon_smg1" : "SMG1"
"weapon_stunstick" : "Stun Stick"
"weapon_annabelle" :"Grigori's Shotgun"
"weapon_rpg" : "RPG"
"0" : "Nothing"
]
]
@PointClass base(Angles, BaseNPCMaker) size(-8 -8 -8, 8 8 8) color(0 0 255) = npc_antlion_template_maker : "Antlion Template Maker"
[
spawnflags(Flags) =
[
1024 : "[1024] Random spawn node" : 0
2048 : "[2048] Try to spawn close to the current target" : 0
4096 : "[4096] Pick a random fight target" : 0
8192 : "[8192] Try to play blocked effects near the player" : 0
]
TemplateName(target_destination) : "Name of template NPC"
spawngroup(string) : "Spawn on Hint Group" : "" : "If specified, children will spawn on a hint node from this group, nearest the target."
spawnradius(float) : "Spawn radius" : 512 : "Target must be within this distance of any node in the hint group specified above. If the target is outside the radius, no NPC will spawn."
spawntarget(target_destination): "Spawn target" : "" : "Targetname of the entity to try and spawn near."
fighttarget(target_destination): "Fight target" : "" : "Targetname of an entity used as a goal for the children to fight to."
followtarget(target_destination): "Follow target" : "" : "Targetname of an entity used as a goal for the children to follow."
vehicledistance(float): "Vehicle Spawn Distance" : "1" : "This is a modifier of the current spawn distance. Spawn distance on a vehicle is based on speed, so this is just a modifier for it."
workerspawnrate(float): "Random Worker Spawn Rate" : "0" : "Percentage chance that a spawned antlion will be a worker. (0 = no chance, 1 = 100% chance)"
ignorebugbait(choices): "Ignore Bugbait" : "0" =
[
0 : "No"
1 : "Yes"
]
pool_start(integer) : "Initial antlions in the pool." : 0 : "Number of antlions in the pool at map start."
pool_max(integer) : "Max antlions in the pool." : 0 : "Maximum number of antlions allowed in the pool. If 0, pool behavior is turned off."
pool_regen_amount(integer) : "Pool regen amount." : 0 : "This is the number of antlions added to the pool every time it regenerates."
pool_regen_time(float) : "Pool regen time." : 0 : "Time interval between pool regeneration ticks."
// Inputs
input SetFightTarget(target_destination) : "Sets the target entity for children to fight to."
input ClearFightTarget(void) : "Clears the fight target goal for this spawner."
input SetFollowTarget(target_destination) : "Sets the target entity for children to follow."
input ClearFollowTarget(void) : "Clears the follow target goal for this spawner."
input SetSpawnRadius(float) : "Sets the Spawn Radius."
input AddToPool(integer) : "Add the number of antlions specified in the parameter to the pool."
input SetMaxPool(integer) : "Set the maximum number of antlions allowed in the pool at any time. Setting it to 0 turns off the pool behavior."
input SetPoolRegenAmount(integer) : "Set the number of antlions added to the pool every time it regenerates."
input SetPoolRegenTime(float) : "Set the time interval between pool regeneration ticks."
input ChangeDestinationGroup(target_destination) : "Change the spawn group for this spawner."
// Outputs
output OnAllBlocked(void) : "Fires when all the hint nodes are blocked."
createspores(choices): "Create Spore effect" : "0" =
[
0 : "No"
1 : "Yes"
]
]
@PointClass base(Targetname) sphere(repelradius) color(0 0 255) = point_antlion_repellant : "Antlion Repellant"
[
repelradius(float): "Repell radius" : 512 : "Antlions aren't allowed to be inside this radius"
input Enable(void) : "Enable"
input Disable(void) : "Disable"
]
//-------------------------------------------------------------------------
//
// Player Control Entities
//
//-------------------------------------------------------------------------
@BaseClass base(Targetname) size(-10 -10 -10, 10 10 10) color(255 0 255) = player_control
[
// Inputs
input Activate(void) : "Turns on"
input Deactivate(void) : "Turns off"
input SetThrust(string) : "Set Thrust"
input SetSideThrust(string) : "Set Side Thrust"
]
//-------------------------------------------------------------------------
//
// Scripted Events
//
//-------------------------------------------------------------------------
@BaseClass base(Targetname, Parentname, Angles) color(255 0 255) sphere(m_flRadius) = BaseScripted
[
m_iszEntity(target_destination) : "Target NPC" : : "The name or class name (such as 'npc_zombie') of an NPC to use for this script."
m_iszIdle(string) : "Pre Action Idle Animation" : "" : "The name of the sequence (such as 'idle01') or activity (such as 'ACT_IDLE') to play before the action animation if the NPC must wait for the script to be triggered. Use 'Start on Spawn' flag or MoveToPosition input to play this idle animation."
m_iszEntry(string) : "Entry Animation" : "" : "The name of the sequence (such as 'reload02') or activity (such as 'ACT_RELOAD') to play when the sequence starts, before transitioning to play the main action sequence."
m_iszPlay(string) : "Action Animation" : "" : "The name of the main sequence (such as 'reload02') or activity (such as 'ACT_RELOAD') to play."
m_iszPostIdle(string) : "Post Action Idle Animation" : "" : "The name of the sequence (such as 'idle01') or activity (such as 'ACT_IDLE') to play after the action animation. If the ''Loop in Post Idle'' spawnflag is not ticked, this will act as an Exit Animation, similar to the Entry Animation."
m_iszCustomMove(string) : "Custom Move Animation" : "" : "Used in conjunction with the 'Custom movement' setting for the 'Move to Position' property, specifies the sequence (such as 'crouch_run01') or activity (such as 'ACT_RUN') to use while moving to the scripted position."
m_bLoopActionSequence(Choices) : "Loop Action Animation?" : 0 : "Loops the action animation until the sequence is cancelled or interrupted." =
[
0 : "No"
1 : "Yes"
]
m_bSynchPostIdles(Choices) : "Synch Post Idles?" : 0 : "Causes scripts with the same targetname to immediately play their Post Action Idle Animation when the NPC starts playing the Post Action Idle Animation." =
[
0 : "No"
1 : "Yes"
]
m_flRadius(integer) : "Search Radius (0=everywhere)" : 0 : "Radius to search within for an NPC to use. 0 searches everywhere."
m_flRepeat(integer) : "Repeat Rate ms" : 0
m_fMoveTo(Choices) : "Move to Position" : 1 =
[
0 : "No"
1 : "Walk"
2 : "Run"
3 : "Custom movement"
4 : "Instantaneous"
5 : "No - Turn to Face"
]
m_iszNextScript(target_destination) : "Next Script" : : "The name of the script to run immediately after this script completes. The NPC will not return to AI between the two scripts."
m_bIgnoreGravity(choices) : "Ignore Gravity on NPC during script" : 0 : "If this is set to 'Yes', the NPC will not be subject to gravity while playing this script." =
[
0 : "No"
1 : "Yes"
]
m_bDisableNPCCollisions(choices) : "Disable NPC collisions during script" : 0 : "Useful for when NPCs playing scripts must interpenetrate while riding on trains, elevators, etc. This only disables collisions between the NPCs in the script and must be enabled on BOTH scripted_sequences." =
[
0 : "No"
1 : "Yes"
]
// Inputs
input BeginSequence(void) : "Summons an NPC to act out the scripted sequence."
input MoveToPosition(void) : "Summons an NPC to the script location. They will play their scripted idle (or ACT_IDLE if none is specified) until BeginSequence is triggered."
input CancelSequence(void) : "Stops the scripted sequence. If fired after a sequence starts, this input will not take effect until the NPC finishes playing the scripted action animation."
input SetTarget(target_destination) : "Sets the target NPC."
// Outputs
output OnBeginSequence(void) : "Fires when the action animation begins playing."
output OnEndSequence(void) : "Fires when the action animation completes."
output OnPostIdleEndSequence(void) : "Fires when the post-idle animation completes."
output OnCancelSequence(void) : "Fires when the sequence is cancelled."
output OnCancelFailedSequence(void) : "Fires when the sequence is cancelled without ever playing (OnCancelSequence will also fire)."
output OnPreIdleSequence(void) : "Fires when the pre-idle animation begins."
output OnFoundNPC(void) : "Fires when a target NPC is found and begins moving to play the script."
output OnScriptEvent01(void) : "Fires when a 'trigger' anim event occurs while playing the script. Use { event 1003 framenum 1 } in the QC."
output OnScriptEvent02(void) : "Fires when a 'trigger' anim event occurs while playing the script. Use { event 1003 framenum 2 } in the QC."
output OnScriptEvent03(void) : "Fires when a 'trigger' anim event occurs while playing the script. Use { event 1003 framenum 3 } in the QC."
output OnScriptEvent04(void) : "Fires when a 'trigger' anim event occurs while playing the script. Use { event 1003 framenum 4 } in the QC."
output OnScriptEvent05(void) : "Fires when a 'trigger' anim event occurs while playing the script. Use { event 1003 framenum 5 } in the QC."
output OnScriptEvent06(void) : "Fires when a 'trigger' anim event occurs while playing the script. Use { event 1003 framenum 6 } in the QC."
output OnScriptEvent07(void) : "Fires when a 'trigger' anim event occurs while playing the script. Use { event 1003 framenum 7 } in the QC."
output OnScriptEvent08(void) : "Fires when a 'trigger' anim event occurs while playing the script. Use { event 1003 framenum 8 } in the QC."
]
// color(255 0 255)
@PointClass sphere(radius) iconsprite("editor/scripted_sentence.vmt") base(Targetname) = scripted_sentence : "Scripted Sentence"
[
spawnflags(Flags) =
[
1 : "[1] Fire Once" : 1
2 : "[2] Followers Only" : 0
4 : "[4] Interrupt Speech" : 1
8 : "[8] Concurrent" : 0
16 : "[16] Speak to Activator" : 1
]
sentence(string) : "Sentence Name" : ""
entity(string) : "Speaker Type"
delay(string) : "Additional Sentence Time" : "0"
radius(integer) : "Search Radius" : 512
refire(string) : "Delay Before Refire" : "3"
listener(string) : "Listener Type"
volume(string) : "Volume 0-10" : "10"
attenuation(Choices) : "Sound Radius" : 0 =
[
0 : "Small Radius"
1 : "Medium Radius"
2 : "Large Radius"
3 : "Play Everywhere"
]
// Inputs
input BeginSentence(void) : "Starts the scripted sentence."
// Outputs
output OnBeginSentence(void) : "Fires when the sentence begins"
output OnEndSentence(void) : "Fires when the sentence ends"
]
@PointClass base(Targetname, Parentname) iconsprite("editor/info_target.vmt") = scripted_target : "Scripted Target"
[
StartDisabled(choices) : "Start Disabled" : 1 =
[
0 : "No"
1 : "Yes"
]
m_iszEntity(npcclass) : "Target NPC"
m_flRadius(integer) : "Search Radius (0=everywhere)" : 0 : "Radius to search within for an NPC to use. 0 searches everywhere."
MoveSpeed(integer) : "Move Speed" : 5 // How quickly should target move between scripted targets
PauseDuration(integer) : "Pause Duration" : 0 // How long should target pause at scripted target
EffectDuration(integer) : "Effect Duration" : 2 // How long should any associated effect last
target(target_destination) : "Next Target" // Next scripted target
// Inputs
input Enable(void) : "Enable this entity"
input Disable(void) : "Disable this entity"
// Outputs
output AtTarget(void) : "Fires when NPC reaches this target"
output LeaveTarget(void) : "Fires when NPC leaves this target"
]
@PointClass base(Targetname) iconsprite("editor/scripted_sound.vmt") = scripted_sound : "Makes a target entity emit a sound directly, which allows lip syncing, interruption from death or other lines, etc. at the cost of most forms of control. Not exclusive to NPCs."
[
message(sound) : "Sound Name" : : "The sound to play. Supports Game Sounds and direct filenames."
target(target_destination) : "Target Entity" : : "The entity that should play the sound."
GrabAll(choices) : "Grab All" : 0 : "Makes all entities play the sound instead of just one." =
[
0 : "No"
1 : "Yes"
]
// Inputs
input PlaySound(void) : "Starts the sound."
input PlaySoundOnEntity(target_destination) : "Plays the sound on the specified entity."
input StopSound(void) : "Stops the sound if it is playing."
input SetSound(string) : "Sets the sound."
]
@PointClass base(Targetname) iconsprite("editor/ai_relationship.vmt") sphere(radius) = ai_relationship :
"AI Relationship - Sets relationships between groups of NPCs in the AI."
[
subject(target_name_or_class) : "Subject(s)" : "" : "This is the NPC(s) whose disposition will change. May be a targetname or a classname."
target(target_name_or_class) : "Target(s)" : "" : "This is the NPC(s) about whom the Subject(s) will change their disposition. May be a tarGetname or a classname."
disposition(choices) : "Disposition" : 3 : "Choose the way the Subject(s) should feel about the Target(s)" =
[
// These MUST match the enum in the code! (basecombatcharacter.h)
1 : "Hate"
2 : "Fear"
3 : "Like"
4 : "Neutral"
]
radius(float) : "Radius for subject" : 0
rank(integer) : "Disposition Priority" : 0 : "How much the Subject(s) should Like/Hate/Fear the Target(s). Higher priority = stronger feeling."
StartActive(choices) : "Start Active" : 0 =
[
0 : "No"
1 : "Yes"
]
Reciprocal(choices) : "Reciprocal" : 0 : "Set this to YES to have the new relationship mirrored by Target" =
[
0 : "No"
1 : "Yes"
]
spawnflags(flags) =
[
1 : "[1] Notify subject of target's location" : 0
2 : "[2] Notify target of subject's location" : 0
]
// Inputs
input ApplyRelationship(void) : "Apply relationship changes. This will change all Subject entities' relationships to all Target entities. \n\nIMPORTANT: Once you ApplyRelationships, this entity is then 'ALWAYS ON' until you send a Disable input or RevertRelationship input. During the time this entity is 'ON', any entities that spawn who match the Subject or Target names will be affected. \n\nIMPORTANT: Unpredictable results may occur when two ai_relationship entities refer to the same set or subset of target or subject entities. This situation should be avoided."
input RevertRelationship(void) : "Revert relationship changes. This will return the relationship to what it was at the time the ApplyRelationship input was called (or when this ai_relationship was spawned if StartActive is set)."
input RevertToDefaultRelationship(void) : "Revert relationship changes to the default relationship, which may have changed since this ai_relationship was applied. This returns control of the entity relationship to the code."
]
@PointClass base(Targetname) iconsprite("editor/ai_relationship.vmt") sphere(radius) = ai_relationship_classify :
"AI Relationship - Sets relationships between entire classify classes in the AI."
[
subject(choices) : "Subject(s)" : 0 : "This is the NPC class whose disposition will change." =
[
0 : "CLASS_NONE"
1 : "CLASS_PLAYER"
2 : "CLASS_PLAYER_ALLY (Citizens)"
3 : "CLASS_PLAYER_ALLY_VITAL (Alyx, Dr. Kleiner, GameEndAlly vorts, etc.)"
4 : "CLASS_ANTLION"
5 : "CLASS_BARNACLE"
6 : "CLASS_BULLSEYE (npc_bullseyes)"
7 : "CLASS_CITIZEN_PASSIVE (pre-criminal citizens)"
//8 : "CLASS_CITIZEN_REBEL (Unused)"
9 : "CLASS_COMBINE (Soldiers, turrets, etc.)"
10 : "CLASS_COMBINE_GUNSHIP (Gunships, helicopters, dropships)"
//11 : "CLASS_CONSCRIPT (Unused)"
12 : "CLASS_HEADCRAB"
13 : "CLASS_MANHACK"
14 : "CLASS_METROPOLICE"
//15 : "CLASS_MILITARY (Unused)"
16 : "CLASS_SCANNER"
17 : "CLASS_STALKER"
18 : "CLASS_VORTIGAUNT (Non-vital vortigaunts only)"
19 : "CLASS_ZOMBIE"
20 : "CLASS_PROTOSNIPER (npc_snipers)"
21 : "CLASS_MISSILE"
22 : "CLASS_FLARE"
23 : "CLASS_EARTH_FAUNA (crows, seagulls, etc.)"
24 : "CLASS_HACKED_ROLLERMINE"
25 : "CLASS_COMBINE_HUNTER"
]
target(choices) : "Target(s)" : 0 : "This is the NPC class about whom the Subject class will change their disposition." =
[
0 : "CLASS_NONE"
1 : "CLASS_PLAYER"
2 : "CLASS_PLAYER_ALLY (Citizens)"
3 : "CLASS_PLAYER_ALLY_VITAL (Alyx, Dr. Kleiner, GameEndAlly vorts, etc.)"
4 : "CLASS_ANTLION"
5 : "CLASS_BARNACLE"
6 : "CLASS_BULLSEYE (npc_bullseyes)"
7 : "CLASS_CITIZEN_PASSIVE (pre-criminal citizens)"
//8 : "CLASS_CITIZEN_REBEL (Unused)"
9 : "CLASS_COMBINE (Soldiers, turrets, etc.)"
10 : "CLASS_COMBINE_GUNSHIP (Gunships, helicopters, dropships)"
//11 : "CLASS_CONSCRIPT (Unused)"
12 : "CLASS_HEADCRAB"
13 : "CLASS_MANHACK"
14 : "CLASS_METROPOLICE"
//15 : "CLASS_MILITARY (Unused)"
16 : "CLASS_SCANNER"
17 : "CLASS_STALKER"
18 : "CLASS_VORTIGAUNT (Non-vital vortigaunts only)"
19 : "CLASS_ZOMBIE"
20 : "CLASS_PROTOSNIPER (npc_snipers)"
21 : "CLASS_MISSILE"
22 : "CLASS_FLARE"
23 : "CLASS_EARTH_FAUNA (crows, seagulls, etc.)"
24 : "CLASS_HACKED_ROLLERMINE"
25 : "CLASS_COMBINE_HUNTER"
]
disposition(choices) : "Disposition" : 3 : "Choose the way the subject class should feel about the target class" =
[
// These MUST match the enum in the code! (basecombatcharacter.h)
1 : "Hate"
2 : "Fear"
3 : "Like"
4 : "Neutral"
]
radius(float) : "Radius for subject" : 0
rank(integer) : "Disposition Priority" : 0 : "How much the subject class should Like/Hate/Fear the target class. Higher priority = stronger feeling."
StartActive(choices) : "Start Active" : 0 =
[
0 : "No"
1 : "Yes"
]
Reciprocal(choices) : "Reciprocal" : 0 : "Set this to YES to have the new relationship mirrored by the target class." =
[
0 : "No"
1 : "Yes"
]
// Inputs
input ApplyRelationship(void) : "Apply relationship changes. This will change all Subject entities' relationships to all Target entities. \n\nIMPORTANT: Once you ApplyRelationships, this entity is then 'ALWAYS ON' until you send a Disable input or RevertRelationship input. During the time this entity is 'ON', any entities that spawn who match the Subject or Target names will be affected. \n\nIMPORTANT: Unpredictable results may occur when two ai_relationship entities refer to the same set or subset of target or subject entities. This situation should be avoided."
input RevertRelationship(void) : "Revert relationship changes. This will return the relationship to what it was at the time the ApplyRelationship input was called (or when this ai_relationship was spawned if StartActive is set)."
input RevertToDefaultRelationship(void) : "Revert relationship changes to the default relationship, which may have changed since this ai_relationship was applied. This returns control of the entity relationship to the code."
]
@PointClass base(Targetname) = ai_ally_manager : "AI Ally Manager"
[
maxallies(integer) : "Maximum number of allies" : 5
maxmedics(integer) : "Maximum number of medics" : 1
// Inputs
input SetMaxAllies(integer) : "Set maximum number of allies"
input SetMaxMedics(integer) : "Set maximum number of medic allies"
input Replenish(void) : "Replenish player allies"
// Outputs
output SpawnMedicAlly(void) : "Spawn Medic Ally"
output SpawnAlly0(void) : "Spawn Ally 0"
output SpawnAlly1(void) : "Spawn Ally 1"
output SpawnAlly2(void) : "Spawn Ally 2"
output SpawnAlly3(void) : "Spawn Ally 3"
output SpawnAlly4(void) : "Spawn Ally 4"
output SpawnAlly5(void) : "Spawn Ally 5"
output SpawnAlly6(void) : "Spawn Ally 6"
output SpawnAlly7(void) : "Spawn Ally 7"
output SpawnAlly8(void) : "Spawn Ally 8"
output SpawnAlly9(void) : "Spawn Ally 9"
output OnZeroAllies(void) : "Fires when there are no more allies"
output OnZeroMedicAllies(void) : "Fires when there are no more allies"
]
@BaseClass base(Targetname, Angles) = LeadGoalBase
[
actor(target_name_or_class) : "Actor(s) to affect"
goal(target_destination) : "Target Entity"
WaitPointName(target_destination) : "Point to wait at if the target's not visible"
WaitDistance(float) : "Wait until player gets this close"
LeadDistance(float) : "Lead Distance" : "64" : "The player is considered to be lagging if he's beyond this distance. The Actor will consider retrieving when the player is 4x 'Lead Distance' away."
RetrieveDistance(float) : "Retrieve Distance" : "96" : "The distance from the player that the NPC should return to when retrieving a lagging player. Must be between ('Lead Distance' + 24) and ('Lead Distance' * 4) to avoid the leader ping-ponging."
SuccessDistance(float) : "Success Distance" : "0" : "The distance from the player (to the NPC) that the player must be within for the Lead to succeed, once the NPC has reached the goal. If set to 0, it'll use the lead distance instead (for legacy support)."
Run(choices) : "Run instead of Walk" : "0" =
[
"0" : "No"
"1" : "Yes"
]
Retrieve(choices) : "Retrieve player?" : 1 =
[
0 : "No, just idle and wait"
1 : "Yes, move to retrieve"
]
ComingBackWaitForSpeak(choices) : "Before Coming Back, Wait for speech?" : 1 =
[
0 : "No, come back while speaking"
1 : "Yes, wait for speech to finish"
]
RetrieveWaitForSpeak(choices) : "On Retrieve, Wait for speech?" : 1 =
[
0 : "No, start leading while speaking"
1 : "Yes, wait for speech to finish"
]
DontSpeakStart(choices) : "Speak start greeting?" : 0 =
[
0 : "Yes, speak the start greeting"
1 : "No, don't speak the greeting"
]
LeadDuringCombat(choices) : "Lead during combat?" : 0 =
[
0 : "No. Stop to fight, resume leading when safe."
1 : "Yes, lead while fighting."
]
GagLeader(choices) : "Gag Leader?" : 0 =
[
0 : "No. Speak lead concepts normally, respecting other lead speech settings."
1 : "Yes, don't speak any lead concepts at all, overriding all other lead speech settings."
]
AttractPlayerConceptModifier(string) : "Attract player concept modifier" : "" : "Appended to the keyvalues passed into the response rules when the 'TLK_LEAD_ATTRACTPLAYER' concept is spoken."
WaitOverConceptModifier(string) : "Player wait over concept modifier" : "" : "Appended to the keyvalues passed into the response rules when the 'TLK_LEAD_WAITOVER' concept is spoken."
ArrivalConceptModifier(string) : "Arrival concept modifier" : "" : "Appended to the keyvalues passed into the response rules when the 'TLK_LEAD_ARRIVAL' concept is spoken."
PostArrivalConceptModifier(string) : "Post-arrival concepts modifier"
SuccessConceptModifier(string) : "Success concept modifier" : "" : "Appended to the keyvalues passed into the response rules when the 'TLK_LEAD_SUCCESS' concept is spoken."
FailureConceptModifier(string) : "Failure concept modifier" : "" : "Appended to the keyvalues passed into the response rules when the 'lead_fail' concept is spoken."
ComingBackConceptModifier(string) : "Coming Back concept modifier" : "" : "Appended to the keyvalues passed into the response rules when the 'TLK_LEAD_RETRIEVE' concept is spoken. Spoken as the NPC starts returning to the player to retrieve him."
RetrieveConceptModifier(string) : "Retrieve concept modifier" : "" : "Appended to the keyvalues passed into the response rules when the 'TLK_LEAD_COMINGBACK' concept is spoken. Spoken when NPC has finally reached the player to retrieve him."
// Spawnflags
spawnflags(Flags) =
[
1 : "[1] No def success" : 0
2 : "[2] No def failure" : 0
4 : "[4] Use goal facing" : 1
]
// Inputs
input Activate( void ) : "Begin the leading behavior"
input Deactivate( void ) : "Stop the leading behavior"
input UpdateActors( void ) : "Forces an update on this goal's actors."
input SetSuccess( void ) : "Notify success of leading"
input SetFailure( void ) : "Notify failure of leading"
// Outputs
output OnArrival( void ) : "Fires when NPC reaches the lead point"
output OnArrivalDone( void ) : "Fires when NPC has played out any arrival speech"
output OnSuccess( void ) : "Fires when NPC achieves the goal"
output OnFailure( void ) : "Fires when NPC fails to achieves the goal"
output OnDone( void ) : "Fires when NPC completes behavior (any post-success or fail acting is complete)"
]
@PointClass base(LeadGoalBase) iconsprite("editor/ai_goal_lead.vmt") = ai_goal_lead : "AI Goal Lead"
[
SearchType(choices) : "Search Type" : 0 : "How to search for the entities using the targetname." =
[
0 : "Entity Name"
1 : "Classname"
]
]
@PointClass base(LeadGoalBase) iconsprite("editor/ai_goal_lead.vmt") = ai_goal_lead_weapon :
"AI Goal Lead (Weapon). A version of the ai_goal_lead entity that requires the player to have the specified weapon before the Actor(s) will lead the player to their target."
[
WeaponName(pointentityclass) : "Weapon" : "weapon_bugbait" : "The weapon the player must have in order for the actor to begin leading. If the entity times out, this weapon will silently be given to the player automatically." //=
//[
// "weapon_bugbait" : "Bugbait"
// "weapon_smg1" : "SMG1"
// "weapon_ar2" : "AR2"
//]
TimeoutTime(float) : "Timeout Time" : "60.0" : "How long after the ai_goal_lead_weapon is activated should it time out and just give the player the weapon? Enter 0 to use no timeout."
MissingWeaponConceptModifier(string) : "Missing weapon concept modifier" : "" : "Appended to the keyvalues passed into the response rules when the 'TLK_LEAD_MISSINGWEAPON' concept is spoken."
SearchType(choices) : "Search Type" : 0 : "How to search for the entities using the targetname." =
[
0 : "Entity Name"
1 : "Classname"
]
]
@BaseClass base(Targetname) = FollowGoal
[
actor(target_name_or_class) : "Actor(s) to affect"
goal(target_destination) : "Target Entity" : : "The name of the entity to follow. If blank, and the actor likes the player, then defaults to player"
SearchType(choices) : "Search Type" : 0 : "How to search for the entities using the targetname." =
[
0 : "Entity Name"
1 : "Classname"
]
StartActive(choices) : "Start Active" : 0 =
[
0 : "No"
1 : "Yes"
]
MaximumState(choices) : "Maximum state" : 1 =
[
1 : "Idle"
2 : "Alert"
3 : "Combat"
]
Formation(choices) : "Formation" : 0 =
[
0 : "Close circle"
1 : "Wide circle"
2 : "Antlion"
3 : "Commander"
4 : "Tight circle"
5 : "Medium circle"
6 : "Sidekick"
7 : "Hunter"
8 : "Vortigaunt"
]
// Inputs
input Activate( void ) : "Begin the follow behavior"
input Deactivate( void ) : "Cease the follow behavior"
input UpdateActors( void ) : "Forces an update on this goal's actors."
]
@PointClass base(FollowGoal) iconsprite("editor/ai_goal_follow.vmt") = ai_goal_follow : "AI Goal Follow"
[
]
@PointClass base(FollowGoal) iconsprite("editor/ai_goal_follow.vmt") = ai_goal_injured_follow : "AI Goal Injured Follow"
[
]
@PointClass size( -4 -4 -4, 4 4 4 ) base(Targetname, Angles, Parentname) studio("models/pigeon.mdl") = ai_battle_line : "Battle line"
[
// Spawnflags
spawnflags(Flags) =
[
1 : "[1] Use parent's orientation" : 0
]
actor(target_name_or_class) : "Actor(s) or squad to affect" : "*" : "Wildcards are supported."
Active(choices) : "Active" : 0 =
[
0 : "No"
1 : "Yes"
]
Strict(choices) : "Strict" : 1 : "Player orders can override, applies to allies only" =
[
0 : "No"
1 : "Yes"
]
// Inputs
input Activate(void)
input Deactivate(void)
]
@PointClass base(Targetname) iconsprite("editor/ai_goal_standoff.vmt") = ai_goal_standoff : "AI Goal Standoff"
[
actor(target_name_or_class) : "Actor(s) to affect"
// goal(target_destination) : "Target Entity (self by default) [NOT IMPLEMENTED]"
SearchType(choices) : "Search Type" : 0 : "How to search for the entities using the targetname." =
[
0 : "Entity Name"
1 : "Classname"
]
StartActive(choices) : "Start Active" : 0 =
[
0 : "No"
1 : "Yes"
]
HintGroupChangeReaction(Choices) : "Reaction to tactical change" : 1 : "What to do if leader moves, threat is neutralized, hint group changes, etc" =
[
0 : "Move when ready (default AI)"
1 : "Move when seek cover"
2 : "Move immediately"
]
Aggressiveness(Choices) : "Aggressiveness" : 2 =
[
0 : "Very low"
1 : "Low"
2 : "Medium"
3 : "High"
4 : "Very High"
// Custom agression disabled
5 : "Custom"
]
PlayerBattleline(choices) : "Player battleline" : 1 : "Player defines a battle line, applies to allies only" =
[
0 : "No"
1 : "Yes"
]
StayAtCover(choices) : "Stay at cover location" : 0 : "When have suitable cover, don't change it (disables advancing to battle line)" =
[
0 : "No"
1 : "Yes"
]
AbandonIfEnemyHides(choices) : "Abandon if enemies hide" : 0 : "If no enemy detected recently, stop the standoff" =
[
0 : "No"
1 : "Yes"
]
// Custom aggression
CustomCoverOnReload(choices) : "Custom: Take cover to reload" : 1 =
[
0 : "No"
1 : "Yes"
]
CustomMinTimeShots(float) : "Custom: Min time wait to shoot" : 2 : "Minimum duration of time after a burst of shooting before trying again"
CustomMaxTimeShots(float) : "Custom: Max time wait to shoot" : 4 : "Minimum duration of time after a burst of shooting before trying again"
CustomMinShots(integer) : "Custom: Min shots in a burst" : 1
CustomMaxShots(integer) : "Custom: Max shots in a burst" : 4
CustomOddsCover(integer) : "Custom: Odds cover on damage" : 25 : "If damaged, the chances react by taking immediate cover"
// Inputs
input Activate( void ) : "Begin contesting position"
input Deactivate( void ) : "Cease contesting position"
input UpdateActors( void ) : "Forces an update on this goal's actors."
input SetAggressiveness(integer) : "Set aggressiveness"
]
@PointClass base(Targetname, Parentname, Angles) sphere(policeradius) iconsprite("editor/ai_goal_police.vmt") = ai_goal_police : "AI Goal Police"
[
spawnflags(Flags) =
[
2 : "[2] Knock-out target past crossing plane" : 0
4 : "[4] Do not leave post" : 0
]
policeradius(float) : "Radius" : 512 : "Radius to police"
policetarget(target_destination) : "Target" : "" : "Target to police"
// Inputs
input EnableKnockOut(void) : "Tells the goal to make the active policing NPC knock out its target"
input DisableKnockOut(void) : "Stop the active policing NPC from trying to knock out its target"
// Outputs
output OnFirstWarning(void) : "Fires the first time a policing cop warns a target"
output OnSecondWarning(void) : "Fires the second time a policing cop warns a target"
output OnLastWarning(void) : "Fires when a policing cop warns a target for the last time"
output OnSupressingTarget(void) : "Fires when a policing cop starts to suppress (ie. beat) a target"
output OnKnockOut(void) : "Fires when a target has been knocked out"
]
@PointClass base(Targetname, Parentname, Angles) iconsprite("editor/assault_rally.vmt") line(255 255 255, targetname, assaultpoint) = assault_rallypoint :
"(Assault) rally point"
[
assaultpoint(target_destination) : "Assault Point" : "" : "Location to move to as assault begins"
assaultdelay(float) : "Assault Delay" : 0 : "How long to wait after cue is given before assault begins."
rallysequence(string) : "Rally Sequence" : "" : "Override the NPC's wait activity by entering a sequence name."
priority(integer) : "Priority" : 1 : "Higher priority rally points get selected first."
forcecrouch(choices) : "Force Crouch" : 0 : "NPCs using this assault point are forced into crouching while holding it." =
[
0 : "No"
1 : "Yes"
]
urgent(choices) : "Urgent" : 0 : "If true, NPCs will consider movement to this rally point as Urgent Navigation." =
[
0 : "No"
1 : "Yes"
]
output OnArrival(void) : "Fires when the NPC reaches this rally point"
]
@PointClass base(Targetname, Parentname, Angles) iconsprite("editor/assault_point.vmt") line(255 255 255, targetname, nextassaultpoint) = assault_assaultpoint :
"(Assault) assault point"
[
assaultgroup(string) : "Assault Hint Group" : "" : "NPC's movements are constrained to this hint group once assault has begun"
nextassaultpoint(target_destination) : "Next assault point (optional)"
assaulttimeout(float) : "Assault time out" : "3.0" : "This point is cleared when no enemies are seen for this long (seconds)"
clearoncontact(choices) : "Clear on contact with enemies" : 0 : "If you come in contact with enemies while approaching the assault point, clear our assault point" =
[
0 : "No"
1 : "Yes"
]
allowdiversion(choices) : "Allow diversion" : 0 : "If you come in contact with enemies while approaching the assault point, divert to kill them. Resume the assault once contact is lost." =
[
0 : "No"
1 : "Yes"
]
allowdiversionradius(float) : "Diversion Proximity" : 0 : "If Allow Diversion is set, NPC will only divert from assault to attack an enemy that is within this distance of the assault point. 0 = No limit."
nevertimeout(choices) : "Never Timeout" : 0 : "If set, the assault never ends for NPCs assaulting this point. Useful for forcing NPCs back to a point." =
[
0 : "No"
1 : "Yes"
]
strict(choices) : "Strict?" : 0 =
[
0 : "No, NPC may move from point to attack"
1 : "Yes, NPC may not move to attack"
]
spawnflags(Flags) =
[
1 : "[1] Clear this point upon arrival, UNCONDITIONALLY" : 0
]
forcecrouch(choices) : "Force Crouch" : 0 : "NPCs using this assault point are forced into crouching while holding it." =
[
0 : "No"
1 : "Yes"
]
urgent(choices) : "Urgent" : 0 : "If true, NPCs will consider movement to this assault point as Urgent Navigation." =
[
0 : "No"
1 : "Yes"
]
assaulttolerance(choices) : "Attack Tolerance" : 36 : "How far this NPC may move from the assault point to try to attack an enemy." =
[
36 : "Tight (3ft)"
72 : "Medium (6ft)"
120 : "Large (10ft)"
]
// Inputs
input SetClearOnContact(integer) : "Set the clear on contact flag. NPCs who spot enemies while running to the assault point, or while waiting at it, will immediately Clear it."
input SetAllowDiversion(integer) : "Set the allow diversion flag. NPCs who spot enemies whil running to the assault point, or while waiting on it, will divert away (leave Assault mode) to deal with the enemies. Upon losing enemies, they'll go back to Assault mode, and return to this assault point."
input SetForceClear(integer) : "Set the Force Clear flag. NPCs who are currently running to the assault point will Clear it immediately. NPCs who acquire it in the future will Clear it automatically."
// Outputs
output OnArrival(void) : "Fires when the NPC reaches this assault point"
output OnAssaultClear(void) : "Fires when this assault point is cleared of enemies"
]
@PointClass base(Targetname) = ai_goal_assault :
"AI Goal Assault"
[
actor(target_name_or_class) : "Actor(s) to affect" : "" : "NPC's that should perform this assault"
rallypoint(target_destination) : "Rally Point Set" : "" : "Root name of rally points for this assault. Use an asterisk '*' after the root name to match all with the same root."
SearchType(choices) : "Search Type" : 0 : "How to search for the entities using the targetname." =
[
0 : "Entity Name"
1 : "Classname"
]
StartActive(choices) : "Start Active" : 0 =
[
0 : "No"
1 : "Yes"
]
AssaultCue(choices) : "Assault Cue" : 1 =
[
1 : "Entity System Input"
2 : "Gunfire"
3 : "Don't wait for a cue."
]
RallySelectMethod(choices) : "Rally Point Selection Method" : 0 =
[
0 : "Priority, Distance (default)"
1 : "Random"
]
// Inputs
input Activate( void ) : "Begin the assault behavior"
input Deactivate( void ) : "Cease the assault behavior"
input BeginAssault( void ) : "Begin assault phase"
]
@BaseClass base(Targetname) = BaseActBusy
[
actor(target_name_or_class) : "Actor(s) to affect" : "" : "NPC's that should act busy"
StartActive(choices) : "Start Active" : 0 =
[
0 : "No"
1 : "Yes"
]
SearchType(choices) : "Search Type" : 0 : "How to search for the entities using the targetname." =
[
0 : "Entity Name"
1 : "Classname"
]
busysearchrange(float) : "Search Range for Busy Hints" : 2048
visibleonly(choices) : "Visible Busy Hints Only" : 0 =
[
0 : "No"
1 : "Yes"
]
NextBusy(float) : "NPC Cooldown Time" : "0,0" : "NPCs that leave this actbusy won't actbusy on their own again until this cooldown expires. This is for when an ai_goal_actbusy only gets NPCs to act busy with Activate, not any of the 'Force' inputs. The cooldown would be a random decimal in between the first number and the second number. Leaving both at 0 will cause ai_actbusy_search_time and ai_actbusy_search_time*2 to be used instead, which is default behavior."
// Inputs
input Activate( void ) : "Begin acting busy"
input Deactivate( void ) : "Cease acting busy"
input SetBusySearchRange( float ) : "Update the busy search range for all actors."
input ForceNPCToActBusy( target_destination ) : "Force an NPC to act busy. Takes parameters, separated by spaces: <Targetname> <hint node targetname> <optional:teleport> <optional:$customactivityorsequence> <maximum time to actbusy>. If no hint node targetname is specified, it'll search for a random one. If no max time is specified, it'll use the default. Specifying 0 as the max time will make the NPC act busy until disturbed. If the optional teleport parameter is specified, the NPC will teleport to the act busy point. A custom move animation can be specified by prepending $ to the name of it. i.e. $ACT_RUN will make the NPC Run. Sequence names can be used instead of activities."
input ForceThisNPCToActBusy( target_destination ) : "Forces the specified NPC to act busy. This is designed for when a NPC outputted from another entity has to act busy."
input ForceThisNPCToLeave( target_destination ) : "Forces the specified NPC to find a HINT_NPC_EXIT_POINT hintnode and vanish. This is designed for when a NPC outputted from another entity has to leave."
input ForceThisNPCToStopBusy( target_destination ) : "Forces the specified NPC to stop acting busy. This is useful when an ai_goal_actbusy controls several NPCs and you only want one of them to stop."
// Outputs
output OnNPCStartedBusy(ehandle) : "Fired when an NPC targeted by this goal starts an ActBusy animation."
output OnNPCFinishedBusy(ehandle) : "Fired when an NPC targeted by this goal finishes an ActBusy."
output OnNPCMovingToBusy(ehandle) : "Fired when an NPC targeted by this goal starts moving to an ActBusy."
output OnNPCAbortedMoveTo(ehandle) : "Fired when an NPC targeted by this goal aborts moving to an ActBusy, possibly due to interruptions, etc."
output OnNPCLeft(ehandle) : "Fired when an NPC target by this goal finishes a forced Leave."
]
@PointClass base(BaseActBusy) = ai_goal_actbusy : "AI Goal Act Busy"
[
seeentity(target_name_or_class) : "Sight Entity" : "" : "The Sight Entity (if you provide one) is an entity that will leave the current ActBusy if the Actor playing the ActBusy loses sight of it for the amount of time specified in 'Sight Entity Timeout'. THIS MAY ONLY BE A TARGET NAME. NO CLASSNAMES."
seeentitytimeout(float) : "Sight Entity Timeout" : "1" : "If you provide a Sight Entity, the Actor will leave the current ActBusy if the Actor has lost sight of Sight Entity for this many seconds."
sightmethod(choices) : "Sight Enemy Method" : 0 : "The method to use to determine whether the Sight enemy is visible." =
[
0 : "Default. LOS -and- Viewcone"
1 : "LOS Only. Disregard Viewcone"
]
type(choices) : "Actbusy Type" : 0 =
[
0 : "Default (Standard)"
1 : "Combat"
]
safezone(target_destination) : "Combat Safe Zone" : "" : "Only for combat actbusy. Lets you specify a volume which is the 'safe zone'. The Combat ActBusy will cancel if any enemies are seen in the safe zone."
allowteleport(choices) : "Allow actor to teleport?" : 0 =
[
0 : "No"
1 : "Yes (Only for Combat Actbusy)"
]
output OnNPCStartedLeavingBusy(ehandle) : "Fired right when an NPC targeted by this goal begins to stop acting busy, which would be right as they play their exit animation."
output OnNPCLostSeeEntity(void) : "Fired when the NPC loses sight of the see entity (if one is specified)."
output OnNPCSeeEnemy(void) : "Fired when this NPC leaves his actbusy because of sighting an enemy."
]
@PointClass base(BaseActBusy) = ai_goal_actbusy_queue : "AI Goal Act Busy Queue"
[
node_exit(target_destination) : "Exit Node" : "" : "The name of the node the first NPC in the queue should move to when he leaves the head of the queue."
node01(target_destination) : "Node 1" : "" : "The name of the first actbusy hint node in the queue."
node02(target_destination) : "Node 2" : "" : "The name of the second actbusy hint node in the queue."
node03(target_destination) : "Node 3" : "" : "The name of the third actbusy hint node in the queue."
node04(target_destination) : "Node 4" : "" : "The name of the fourth actbusy hint node in the queue."
node05(target_destination) : "Node 5" : "" : "The name of the fifth actbusy hint node in the queue."
node06(target_destination) : "Node 6" : "" : "The name of the sixth actbusy hint node in the queue."
node07(target_destination) : "Node 7" : "" : "The name of the seventh actbusy hint node in the queue."
node08(target_destination) : "Node 8" : "" : "The name of the eighth actbusy hint node in the queue."
node09(target_destination) : "Node 9" : "" : "The name of the ninth actbusy hint node in the queue."
node10(target_destination) : "Node 10" : "" : "The name of the tenth actbusy hint node in the queue."
node11(target_destination) : "Node 11" : "" : "The name of the eleventh actbusy hint node in the queue."
node12(target_destination) : "Node 12" : "" : "The name of the twelfth actbusy hint node in the queue."
node13(target_destination) : "Node 13" : "" : "The name of the thirteenth actbusy hint node in the queue."
node14(target_destination) : "Node 14" : "" : "The name of the fourteenth actbusy hint node in the queue."
node15(target_destination) : "Node 15" : "" : "The name of the fifteenth actbusy hint node in the queue."
node16(target_destination) : "Node 16" : "" : "The name of the sixteenth actbusy hint node in the queue."
node17(target_destination) : "Node 17" : "" : "The name of the seventeenth actbusy hint node in the queue."
node18(target_destination) : "Node 18" : "" : "The name of the eighteenth actbusy hint node in the queue."
node19(target_destination) : "Node 19" : "" : "The name of the nineteenth actbusy hint node in the queue."
node20(target_destination) : "Node 20" : "" : "The name of the twentieth actbusy hint node in the queue."
mustreachfront(choices) : "Must Reach Front" : 0 : "If true, NPCs much reach the front node in the queue before they're allowed to leave the queue." =
[
0 : "No"
1 : "Yes"
]
// Inputs
input PlayerStartedBlocking(float) : "Tell the queue manager that the player has started blocking a spot in the queue."
input PlayerStoppedBlocking(float) : "Tell the queue manager that the player has stopped blocking a spot in the queue."
input MoveQueueUp(void) : "Force the queue to move up, sending the front-most NPC out of the queue."
// Outputs
output OnQueueMoved(integer) : "Fired when the queue moves. Outputs the number of NPCs left in the queue."
output OnNPCStartedLeavingQueue(ehandle) : "Fired when the NPC at the head of the queue starts to leave. The activator is the NPC, and the string is the name of the NPC."
output OnNPCLeftQueue(ehandle) : "Fired when the NPC at the head of the queue leaves. The activator is the NPC, and the string is the name of the NPC."
]
@PointClass base(Targetname) iconsprite("editor/ai_goal_fear.vmt") = ai_goal_fear :
"AI Goal Fear\n\n" +
"Allows player allies to use fear withdrawal points and other fear behavior otherwise unique with npc_hunters. " +
"Citizens will still engage in fear behavior with npc_hunters, but this allows them to use it with other NPCs." +
[
actor(target_name_or_class) : "Actor(s) to affect" : "" : "NPC(s) that should engage in fear behavior."
target(target_destination) : "Fear Target" : "" : "Target to fear. Only applies whenever the actors' relationship to the target is D_FR. Supports wildcards and can be a classname or an entity name."
SearchType(choices) : "Search Type" : 0 : "How to search for the entities using the targetname." =
[
0 : "Entity Name"
1 : "Classname"
]
StartActive(choices) : "Start Active" : 0 =
[
0 : "No"
1 : "Yes"
]
// Inputs
input Activate(void) : "Begin modifying fear behavior"
input Deactivate(void) : "Cease modifying fear behavior"
// Outputs
output OnArrivedAtNode(void) : "Fires when we arrive at a fear withdrawal node. The node is the activator and the NPC is the caller."
]
@PointClass base(Targetname) size(-8 -8 -8, 8 8 8) = ai_changetarget : "Change Target"
[
target(target_destination) : "Target entity" : : "Name of entity whose target will be changed."
m_iszNewTarget(target_destination) : "New Target"
// Inputs
input Kill( void ) : "Removes this entity from the world"
input Activate( void ) : "Changes the entities target"
]
@PointClass base(Targetname) size(-8 -8 -8, 8 8 8) = ai_npc_eventresponsesystem : "An entity that allows you to generate events for nearby friendly NPCs to respond to."
[
input TriggerResponseEvent(string) : "Fire an NPC Response Event. The parameter should match the response rules concept that any nearby friendly NPCs will try to speak."
input ForceTriggerResponseEvent(string) : "Fire an NPC Response Event, and force the first available NPC to speak the response (breaking them out of any scene they're in). The parameter should match the response rules concept that any nearby friendly NPCs will try to speak."
input ForceTriggerResponseEventNoCancel(string) : "Fire an NPC Response Event, and force the first available NPC to speak the response (but don't break them out of any scene they're in). The parameter should match the response rules concept that any nearby friendly NPCs will try to speak."
]
@PointClass base(Targetname) sphere(Radius) size(-8 -8 -8, 8 8 8) = ai_changehintgroup : "Change Hint Group"
[
SearchType(choices) : "Search Type" : 0 : "How to search for the entities to change." =
[
0 : "Entity Name"
1 : "Classname"
2 : "Old Hint Group"
]
SearchName(target_destination) : "Name to search for"
NewHintGroup(string) : "New Hint Group"
Radius(string) : "Search Radius" : "0.0" : "Radius to search (0 for all of map)"
hintlimiting(choices) : "Hint Limit Nav" : 0 : "Limits NPC to using specified hint group for navigation requests, does not limit local navigation." =
[
0 : "No"
1 : "Yes"
]
changehints(choices) : "Change info_(node)_hints" : 0 : "Changes the hintgroups of info_hints, info_node_hints, etc. as well." =
[
0 : "No"
1 : "Yes"
]
input Activate( void ) : "Change the Hint Group"
]
@PointClass base(Targetname) sphere(PlayerActorProximity) sphere(ActorTargetProximity) sphere(PlayerTargetProximity) = ai_script_conditions : "AI Script Conditions"
[
Actor(target_destination) : "Actor" : : "NPC Target"
StartDisabled(choices) : "Start Disabled" : 1 =
[
0 : "No"
1 : "Yes"
]
MinimumState(choices) : "Minimum state" : 1 =
[
0 : "Don't care"
1 : "Idle"
2 : "Alert"
3 : "Combat"
]
MaximumState(choices) : "Maximum state" : 3 =
[
9 : "Don't care"
1 : "Idle"
2 : "Alert"
3 : "Combat"
]
ScriptStatus(choices) : "Actor is running a script?" : 2 =
[
0 : "No"
1 : "Yes"
2 : "Don't care"
]
RequiredTime(float) : "Required Time" : 0 : "Duration of time that all the conditions must be true"
MinTimeout(float) : "Minimum time out" : 0 : "Minimum time before OnConditionsTimeout is fired. 0 = never expire."
MaxTimeout(float) : "Maximum time out" : 0 : "Maximum time before OnConditionsTimeout is fired. 0 = ignore (If you don't specify a Maximum timeout, conditions will time out at exactly Minimum Time Out. If you DO specify a Maximum time out, timeout will occur randomly between Minimum and Maximum time out values.)"
ActorSeePlayer(choices) : "Actor Sees Player" : 2 =
[
0 : "No"
1 : "Yes"
2 : "Don't care"
]
PlayerActorProximity(float) : "Player distance" : 0 : "The distance the player must/must not be to the actor. Negative values for NOT, 0 for ignore."
PlayerActorFOV(float) : "Player FOV for Actor " : 360 : "Specify angle of view cone in degrees. Negative value = NOT"
PlayerActorFOVTrueCone(choices ) : "Play FOV to Actor is a true view cone" : 0 : "Player's view cone is evaluated as a true cone, not pie slice " =
[
0 : "No - Tall pie slice"
1 : "Yes - True view cone"
]
PlayerActorLOS(choices) : "Player has LOS to Actor" : 2 : "Checks that the player has clear Line of Sight to the Actor" =
[
0 : "No"
1 : "Yes"
2 : "Don't care"
]
target(target_destination) : "Target (Optional)" : : "Optional entity to include in conditions"
ActorSeeTarget(choices) : "Actor Sees Target" : 2 =
[
0 : "No"
1 : "Yes"
2 : "Don't care"
]
ActorTargetProximity(float) : "Target distance" : 0 : "The distance the actor must/must not be to the Target. Negative values for NOT, 0 for ignore."
PlayerTargetProximity(float) : "Player distance from Target" : 0 : "The distance the player must/must not be to the Target. Negative values for NOT, 0 for ignore."
PlayerTargetFOV(float) : "Player FOV for Target" : 360 : "Specify angle of view cone in degrees. Negative value = NOT"
PlayerTargetFOVTrueCone(choices ) : "Play FOV to Target is a true view cone" : 0 : "Player's view cone is evaluated as a true cone, not pie slice " =
[
0 : "No - Tall pie slice"
1 : "Yes - True view cone"
]
PlayerTargetLOS(choices) : "Player has LOS to Target" : 2 : "Checks that the player has clear Line of Sight to the Target" =
[
0 : "No"
1 : "Yes"
2 : "Don't care"
]
PlayerBlockingActor(choices) : "Player blocking Actor" : 2 : "Checks that the player is blocking the Actor's path" =
[
0 : "No"
1 : "Yes"
2 : "Don't care"
]
ActorInPVS(choices) : "Actor in Player's PVS" : 2 : "Checks that the actor is in the player's PVS" =
[
0 : "No"
1 : "Yes"
2 : "Don't care"
]
ActorInVehicle(choices) : "Actor in a vehicle" : 2 : "Checks the actor's state in a vehicle" =
[
0 : "No"
1 : "Yes"
2 : "Don't care"
]
PlayerInVehicle(choices) : "Player in a vehicle" : 2 : "Checks the player's state in a vehicle" =
[
0 : "No"
1 : "Yes"
2 : "Don't care"
]
spawnflags(Flags) =
[
1 : "[1] Fire outputs with the Actor as Activator" : 0
]
// Inputs
input Enable(void) : "Enable this entity"
input Disable(void) : "Disable this entity"
input SatisfyConditions(void) : "Forces the conditions to be satisfied."
// Outputs
output OnConditionsSatisfied(void) : "Fires when AI conditions satisfied"
output OnConditionsTimeout(void) : "Fires when AI conditions timed out"
output NoValidActor(void) : "Fires if/when there are no matching actors in the map."
]
@PointClass base(BaseScripted, Angles, DXLevelChoice) studio("models/editor/scriptedsequence.mdl") sphere(m_flRadius) = scripted_sequence :
"Grabs an NPC and makes them play a specified set of animations. The NPC can be told to move to the scripted sequence position or can "+
"be told to play the script wherever they currently are. "+
"Multiple scripted sequences of the same name will frame-synchronize in the action animation once all the actors have moved to position. "+
"This allows tight interaction between actors (one actor grabbing another, hitting them, etc.) The flow is as follows:\n\n"+
"1) Move to position using the specified movement animation. If 'Move to Position' is set to NONE, skip to step 2.\n"+
"2) If forced to wait for another actor to move to position, play the pre-action idle animation, otherwise skip to step 3. If there is no pre-action idle specified, ACT_IDLE is used.\n"+
"3) Fire the OnBeginSequence output.\n"+
"4) Play the action animation. If no action animation is specified, skip to step 5.\n"+
"5) Play the post-action idle animation. If none is specified, skip to step 6. If the 'Loop in Post Idle' spawnflag is set, keep playing the post-action idle until the script is cancelled. If no post-action idle animation is specified, ACT_IDLE is used.\n"+
"6) Fire the OnEndSequence output.\n"+
"7) If a next script to play is specified, hand the NPC to the next script and repeat this process for that script.\n\n"+
"The MoveToPosition input runs steps 1 and 2, then waits while playing the pre-action idle animation until the BeginSequence input is received.\n\n"+
"If the sequence has motion extraction in it, set the 'Don't Teleport NPC On End' spawnflag."
[
spawnflags(Flags) =
[
4 : "[4] Repeatable" : 0
8 : "[8] Leave Corpse" : 0
16 : "[16] Start on Spawn" : 0
32: "[32] No Interruptions" : 1
64: "[64] Override AI" : 1
128: "[128] Don't Teleport NPC On End" : 0
256: "[256] Loop in Post Idle" : 0
512: "[512] Priority Script" : 0
1024 : "[1024] Search Cyclically" : 0
2048 : "[2048] Don't Complain" : 0
4096: "[4096] Allow actor death without stopping scene" : 0
]
onplayerdeath(choices) : "On player death" : 0 : "What should this entity do if the player dies" =
[
0 : "Do Nothing"
1 : "Cancel Script and return to AI"
]
]
// line(255 0 255, targetname, goalent)
@PointClass base(Targetname) sphere(m_flRadius) color(255 0 255) iconsprite("editor/aiscripted_schedule") = aiscripted_schedule :
"Issues a command to an NPC without taking the NPC out of its AI. This does not seize control of the NPC as " +
"a scripted_sequence does"
[
m_iszEntity(target_destination) : "Target NPC" : : "The name or classname of an NPC to use."
m_flRadius(integer) : "Search Radius (0=everywhere)" : 0 : "Radius to search within for an NPC to use. 0 searches everywhere."
graball(choices) : "All in radius" : 0: "Whether to grab all matching NPCs in the specified radius, instead of just one" =
[
0 : "No"
1 : "Yes"
]
spawnflags(Flags) =
[
4 : "[4] Repeatable" : 1
1024 : "[1024] Search Cyclically" : 0
2048 : "[2048] Don't Complain" : 0
]
forcestate(choices) : "AI state to set" : 0 =
[
0 : "<None>"
1 : "Set state to IDLE"
2 : "Set state to ALERT"
3 : "Set state to COMBAT"
]
schedule(choices) : "Schedule to run" : 1 =
[
0 : "<None>"
1 : "Walk to Goal Entity"
2 : "Run to Goal Entity"
3 : "Set enemy to Goal Entity"
4 : "Walk Goal Path"
5 : "Run Goal Path"
6 : "Set enemy to Goal Entity AND Run to Goal Entity"
]
interruptability(choices) : "Interruptability" : 0 =
[
0 : "General"
1 : "Damage or Death"
2 : "Death"
]
goalent(target_destination) : "Goal entity" : : "Provides the name of a schedule-specific goal entity (see 'Schedule to run')"
// Inputs
input StartSchedule(void) : "Starts the scripted schedule. This will first locate an NPC that " +
"matches the given target, then tell the NPC to run the specified schedule."
input StopSchedule(void) : "Stops the scripted schedule if it is running. This will first locate an NPC that " +
"matches the given target, then tell the NPC to stop this schedule if it is running."
input SetTarget(target_destination) : "Sets the target NPC."
]
@PointClass base(Targetname) = ai_citizen_response_system :
"If placed in the level, will manage citizens responses to player's actions."
[
// Inputs
input ResponseVitalNPC(void) : "Fire the VitalNPC Died response."
]
//-------------------------------------------------------------------------
//
// Solid Entities
//
//-------------------------------------------------------------------------
@SolidClass base(EnableDisable, Parentname, Origin, Global) = func_healthcharger: "Wall health recharger"
[
// dmdelay(integer) : "Deathmatch recharge delay" : 0
_minlight(string) : "Minimum light level"
// Outputs
output OutRemainingHealth(float) : "Remaining Health."
output OnPlayerUse(void) : "Fired when the player +USEs the charger."
]
@SolidClass base(Targetname, Parentname, Origin) = func_recharge: "Battery recharger"
[
// dmdelay(integer) : "Deathmatch recharge delay" : 0
_minlight(string) : "Minimum light level"
spawnflags(flags) =
[
8192 : "[8192] Citadel recharger" : 0
]
// Inputs
input Recharge(void) : "Recharge to full"
input SetCharge(void) : "This sets the remaining charge in the charger to whatever value you specify"
// Outputs
output OutRemainingCharge(float) : "Remaining Charge."
output OnHalfEmpty(void) : "Half-Empty"
output OnEmpty(void) : "Empty"
output OnFull(void) : "Recharged to full."
output OnPlayerUse(void) : "Fired when the player +USEs the charger."
]
@SolidClass base(Parentname, Targetname, Global) = func_vehicleclip: "Vehicle Clip"
[
input Kill( void ) : "Removes this entity from the world"
input Enable( void ) : "Enable collisions with vehicles"
input Disable( void ) : "Disable collisions with vehicles"
]
@SolidClass base(func_movelinear) = func_lookdoor : "A door that moves either when looked by a targeted object or when " +
"a target object comes near the door. Behavior can be either based on viewing direction or proximity " +
"alone, or on a combination of both. If inverted the doors behavior will be the opposite."
[
spawnflags(flags) =
[
8192 : "[8192] LookDoor Threshold" : 0
16384 : "[16384] LookDoor Invert" : 0
32768 : "[32768] LookDoor From Open" : 0
]
ProximityDistance(string) : "Proximity Distance" : "0.0" : "If non-zero, proximity range over which door will move"
ProximityOffset(string) : "Proximity Offset" : "0.0" : "Offset from the target object"
FieldOfView(string) : "FieldOfView" : "0.0" : "If non-zero, field of view over which door will move"
// Input
input InvertOn(void) : "InvertOn - when set behavior of door is inverted."
input InvertOff(void) : "InvertOff - when set behavior of door is normal."
]
@SolidClass base(Trigger) = trigger_waterydeath:
"A trigger volume that spawns leeches around entities inside it, and does damage to them until they die. "+
"Used to prevent players entering deep water."
[
BiteInterval(float) : "Bite Interval" : "0.3" : "The amount of time that should pass in between leech bites."
PainStep(float) : "Pain Step" : "2.0" : "Damage will increase by this number for each leech bite."
MaxPain(float) : "Max Pain" : "15.0" : "This is the maximum damage that could be attained after multiple pain steps."
output OnDamage(integer) : "Fires each time an entity takes damage."
]
//-------------------------------------------------------------------------
//
// Point Entities
//
//-------------------------------------------------------------------------
@PointClass base(Targetname) iconsprite("editor/hl2_gamerules.vmt") color(239 163 14) = hl2_gamerules : "Proxy entity for HL2 Gamerules"
[
DefaultCitizenType(choices) : "Default Citizen Type" : 0 : "Overrides the default citizen type." =
[
0 : "None"
1 : "Downtrodden"
2 : "Refugee"
3 : "Rebel"
4 : "Unique"
]
// Friendly fire is just a global state now.
//GlobalFriendlyFire(choices) : "Global Friendly Fire Override" : 2 : "Forces friendly fire or friendly fire prevention on all NPCs." =
//[
// 0 : "Disable friendly fire on all NPCs"
// 1 : "Enable friendly fire on all NPCs"
// 2 : "N/A"
//]
//SetEpisodic(choices) : "Episodic" : 2 : "Undefined behavior." =
//[
// 0 : "No"
// 1 : "Yes"
// 2 : "Default"
//]
SetPlayerSquadAutosummon(choices) : "Player Squad Autosummon Allowed" : 1 : "Sets whether citizens are allowed to automatically follow the player again when they're at a command point and left alone for a while." =
[
0 : "No"
1 : "Yes"
]
SetLegacyFlashlight(choices) : "Legacy Flashlight" : : "Sets whether the EP2 flashlight or the original flashlight from HL2 and Episode One should be used. 'No' means use the EP2 version, 'Yes' means use the original flashlight, and 'Default' doesn't change anything." =
[
"" : "Default"
0 : "No"
1 : "Yes"
]
SetStunstickPickupBehavior(choices) : "Stunstick Pickup Behavior" : 0 : "Controls how stunsticks should react to being touched by the player." =
[
0 : "Only apply energy and disappear (default)"
1 : "Allow pickup, apply energy if already owned"
2 : "Don't apply energy and don't allow pickup"
3 : "Allow pickup, but never apply energy"
]
SetAllowSPRespawn(choices) : "Allow SP respawn" : 0 : "Allows players to respawn in singleplayer instead of being forced to reload the last save upon dying. Use OnPlayerSpawn in logic_playerproxy to fire an output each time the player respawns." =
[
0 : "No"
1 : "Yes"
]
//input EpisodicOn(void) : "Turns on Episodic mode."
//input EpisodicOff(void) : "Turns off Episodic mode."
//input SetFriendlyFire(integer) : "Sets the global friendly fire override."
input DefaultCitizenType(integer) : "Sets the default citizen type."
input SetPlayerSquadAutosummon(bool) : "Sets player squad autosummon."
input SetLegacyFlashlight(bool) : "Sets legacy flashlight."
input SetStunstickPickupBehavior(bool) : "Sets stunstick pickup behavior."
input SetAllowSPRespawn(bool) : "Sets SP respawning."
]
@PointClass base(EnvGlobal) iconsprite("editor/env_global.vmt") = env_global :
"An entity to control a game-specific global states."
[
globalstate(choices) : "Global State to Set" =
[
"gordon_precriminal" : "Gordon pre-criminal"
"antlion_allied" : "Antlions are player allies"
// "player_stealth" : "Player in APC is disguised as combine"
"suit_no_sprint" : "Suit sprint function not yet enabled"
"super_phys_gun" : "Super phys gun is enabled (Mapbase: Counter 1 prevents item dissolve)"
"friendly_encounter" : "Friendly encounter sequence (lower weapons, etc.)"
// "citizens_passive" : "Citizens are *not* player allies (cannot be commanded)"
"gordon_invulnerable" : "Gordon is invulnerable"
"no_seagulls_on_jeep" : "Don't spawn seagulls on the jeep"
"ep2_alyx_injured" : "Episode 2: Alyx injured"
"ep_alyx_darknessmode" : "Episodic: Alyx darkness mode"
"hunters_to_run_over" : "Ep2 Counter: Hunters to run over before they dodge"
"friendly_fire_override" : "Mapbase: Friendly fire override (on = enabled, off = disabled, dead = no override)"
"antlion_noinstakill" : "Mapbase: Antlion-to-soldier insta-kill disabled"
]
]
@PointClass base(Targetname, Parentname, EnableDisable) sphere(SetRadius) = point_radiation_source : "Radiation source that trips the player's geiger counter. Does no actual damage."
[
SetRadius(float): "Radius" : "0" : "Only affects the geiger counter if the player is within this radius. 0 = no radius, use intensity only"
SetIntensity(float): "Intensity" : "1.0" : "The intensity of the radiation source. Cannot be 0."
TestPVS(choices) : "Test PVS" : 1 : "Tests whether the player is in this entity's PVS before attempting to update." =
[
0 : "No"
1 : "Yes"
]
input Enable(void) : "Enable"
input Disable(void) : "Disable"
]
//-------------------------------------------------------------------------
//
// Tanks
//
//-------------------------------------------------------------------------
@BaseClass base(Targetname, Parentname, Origin, Angles, RenderFields, Global, Shadow) = BaseTank
[
spawnflags(flags) =
[
1 : "[1] Start Active" : 1
16 : "[16] Only Direct" : 0
32 : "[32] Controllable" : 1
64 : "[64] Damage Kick" : 0
256 : "[256] Aiming Assistance (Player Only)" : 0
1024 : "[1024] NPC Controllable" : 0
2048 : "[2048] NPC Set Controller (uninterruptible)" : 0
4096 : "[4096] Allow friendlies to hit player" : 0
8192: "[8192] Ignore range when making viewcone checks" : 0
32768 : "[32768] Non-solid." : 0
131072 : "[131072] Perfect accuracy every 3rd shot at player" : 0
]
control_volume(target_destination) : "Control Volume" : "" : "Name of a trigger the specifies the volume in which a player must be to control this tank."
// Mainly for use with 1009 team settings (game_team_master)
master(target_destination) : "(Team) Master"
yawrate(string) : "Yaw rate" : "30"
yawrange(string) : "Yaw range" : "180"
yawtolerance(string) : "Yaw tolerance" : "15"
pitchrate(string) : "Pitch rate" : "0"
pitchrange(string) : "Pitch range" : "0"
pitchtolerance(string) : "Pitch tolerance" : "5"
barrel(string) : "Barrel Length" : "0"
barrely(string) : "Barrel Horizontal" : "0"
barrelz(string) : "Barrel Vertical" : "0"
spritesmoke(sprite) : "Smoke Sprite" : "" : "A specific sprite to use for the muzzle's smoke effect."
spriteflash(sprite) : "Flash Sprite" : "" : "A specific sprite to use for the muzzle's flash effect."
spritescale(string) : "Sprite scale" : "1" : "The scale for smoke and flash sprites."
rotatestartsound(sound) : "Rotate Start Sound" : ""
rotatesound(sound) : "Rotate Loop Sound" : ""
rotatestopsound(sound) : "Rotate Stop Sound" : ""
firerate(string) : "Rate of Fire" : "1"
bullet_damage(string) : "Damage Per Bullet" : "0" : "If set to 0, it'll use the base weapon bullet's damage."
bullet_damage_vs_player(string) : "Damage Per Bullet Vs Player" : "0" : "If set to 0, it'll use the Damage Per Bullet value."
persistence(string) : "Firing persistence" : "1" : "(Seconds) How long to keep firing at last known position after lose sight of target"
persistence2(string) : "Firing persistence2" : "0" : "(Seconds) After lost enemy and persistence time has passed, how long to occasionally fire at enemy's last known position"
firespread(choices) : "Bullet accuracy" : 0 =
[
0: "Perfect Shot"
1: "Small cone"
2: "Medium cone"
3: "Large cone"
4: "Extra-large cone"
]
minRange(string) : "Minmum target range" : "0"
maxRange(string) : "Maximum target range" : "0"
_minlight(string) : "Minimum light level"
gun_base_attach(string) : "Gun Base Attachment" : "" : "If Parent is specified, this is the attachment point on the parent to aim from."
gun_barrel_attach(string) : "Gun Barrel Attachment" : "" : "If Parent is specified, this is the attachment point on the parent to fire from. If you specify this, you'll want to specify the Gun Base Attachment too."
gun_yaw_pose_param(string) : "Gun Yaw Pose Param" : "" : "If Parent + the Gun Pitch Pose Param is specified, then the gun itself will be invisible and the func_tank will steer a gun on the parent using the pose parameters."
gun_yaw_pose_center(float) : "Gun Yaw Pose Center" : "0" : "The center yaw pose parameter of the gun on the parent"
gun_pitch_pose_param(string) : "Gun Pitch Pose Param" : "" : "If Parent + the Gun Yaw Pose Param is specified, then the gun itself will be invisible and the func_tank will steer a gun on the parent using the pose parameters."
gun_pitch_pose_center(float) : "Gun Pitch Pose Center" : "0" : "The center pitch pose parameter of the gun on the parent"
ammo_count(integer) : "Ammunition Count" : -1 : "Only applies to player use. -1 = unlimited ammo."
LeadTarget(choices) : "Lead Target" : "No" =
[
0 : "No"
1 : "Yes"
]
npc_man_point(target_destination) : "NPC Man Point" : "" : "Point where NPC must stand to man this func_tank."
playergraceperiod(float) : "Post-NPC Attack Grace Period" : "0" : "If specified, NPC's manning this func tank won't fire at the player, after firing at a non-player, for this amount of time."
ignoregraceupto(float) : "Ignore Grace Upto" : "768" : "The player grace period is ignored if the player's under this distance from the func_tank."
playerlocktimebeforefire(float) : "Player Lock Time" : "0" : "The tank must have the player as a target for this amount of time before it's allowed to fire."
ShouldFindNPCs(choices) : "Automatically search for NPCs" : 1 : "If controllable by NPCs, sets whether we should automatically search for NPCs to use this func_tank or just wait for the player to set it. Identical to StartFindingNPCs and StopFindingNPCs." =
[
0 : "No"
1 : "Yes"
]
effecthandling(choices) : "Effect Handling" : 0 : "Special effect handling that influences sound and muzzle effects. Individual settings can override parts of it." =
[
0 : "None"
1 : "AR2"
2 : "Combine Cannon"
]
TraceFilter(filterclass) : "Trace Filter" : "" : "Entities that pass this filter will be ignored by this func_tank while it's aiming."
DontHitController(choices) : "Don't hit controller" : 1 : "If enabled, bullets will not hit whoever is controlling this func_tank." =
[
0 : "No"
1 : "Yes"
]
ControllerGlued(choices) : "NPC controller glued" : 0 : "If enabled, NPCs that mount this func_tank will disregard certain conditions that cause it to dismount automatically, like damage from behind or enemies getting beyond reach. They will still dismount for things like grenades." =
[
0 : "No"
1 : "Yes"
]
PlayerBBoxDist(float) : "Player Crosshair Trace Offset" : "24" : "When a func_tank wants to aim at the player's crosshair, it draws a line to the point they're looking at. The line should start this many units ahead to avoid colliding with the player or any nearby objects. Decreasing the value is only recommended if 'Dont Hit Controller' is enabled."
// Inputs
input Activate(void) : "Turn the tank on"
input Deactivate(void) : "Turn the tank off (go dormant)"
input SetFireRate(string) : "How fast to fire (0 = don't fire)"
input SetDamage(string) : "Set the Damage Per Bullet"
input SetTargetPosition(string) : "World position that I should aim at"
input SetTargetDir(vector) : "Direction to aim at."
input SetTargetEntityName(target_destination) : "Name of entity I should follow/attack"
input SetTargetEntity(target_destination) : "Entity I should follow/attack (output from other entity only)"
input ClearTargetEntity(void) : "Clear the entity I should be attacking."
input FindNPCToManTank(target_destination) : "Find a nearby NPC to man this func_tank."
input TeleportNPCToManTank(target_destination) : "Teleports the specified NPC to man this func_tank. The parameter cannot be blank and the chosen NPC will man the tank instantly."
input ForceNPCToManTank(target_destination) : "Forces the specified NPC to snap to manning this func_tank, regardless of the NPC's current position. They will still turn to face it."
input StartFindingNPCs(void) : "Start searching for NPCs to man this func_tank."
input StopFindingNPCs(void) : "Stop searching for NPCs to man this func_tank."
input ForceNPCOff(void) : "Force the NPC manning this func_tank (if any) to leave."
input SetMaxRange(float) : "Set the max range of the func_tank."
// Outputs
output OnFire(void) : "Fires when the tank fires its bullets"
output OnAquireTarget(string) : "Fires when target is newly in range and can be shot, passes target"
output OnLoseTarget(string) : "Fires when when target goes out of range, passes target"
output OnAmmoDepleted(void) : "Fires when tank runs out of ammo"
output OnGotController(void) : "Fires when an NPC starts to control this tank. Players do NOT fire this input."
output OnLostController(void) : "Fires when the NPC controller of the tank stops controlling it. Players do NOT fire this input."
output OnGotPlayerController(void) : "Fires when a Player starts to control this tank. NPCs do NOT fire this input."
output OnLostPlayerController(void) : "Fires when the Player controller of the tank stops controlling it. NPCs do NOT fire this input."
output OnReadyToFire(void) : "Fires once when the tank is done waiting to fire between rounds"
]
// Only some classes use this
@BaseClass = TankShootSound
[
shootsound(sound) : "Shoot Sound" : "" : "Plays a specific sound to use each time this tank fires."
]
// dvs: FIXME: put this back once we have an episodic FGD
//@SolidClass base(BaseTank) = func_tank : "Brush Gun Turret"
//[
// bullet(choices) : "Bullets" : 0 =
// [
// 0: "None"
// 1: "Pistol"
// 2: "SMG1"
// 3: "AR2"
// 4: "Laser"
// ]
//
// spawnflags(flags) =
// [
// 8192: "[8192] Ignore range when making viewcone checks" : 0
// 256 : "[256] Aiming Assistance (Player Only)" : 0
// ]
//]
// dvs: FIXME: move into an episodic FGD
@SolidClass base(BaseTank, TankShootSound) = func_tank : "Brush Gun Turret"
[
ammotype(choices) : "Ammo type" : "" =
[
"" : "None"
"Pistol" : "Pistol"
"SMG1" : "SMG1"
"AR2" : "AR2"
"CombineHeavyCannon" : "Combine Heavy Cannon (Episodic only)"
"StriderMinigun" : "Strider Minigun"
]
]
@SolidClass base(BaseTank) = func_tankpulselaser : "Brush Pulse Laser"
[
PulseSpeed(float) : "Pulse Speed" : 1000 : "How fast does pulse travel"
PulseColor(color255) : "Pulse Color" : "255 0 0" : "Color of the pulse"
PulseWidth(float) : "Pulse Width" : "20" : "Width of the pulse"
PulseLife(float) : "Pulse Life" : 2 : "(Seconds) How long the pulse lasts"
PulseLag(float) : "Pulse Lag" : "0.05" : "(Seconds) How far behind is pulse tail"
PulseFireSound(sound) : "Pulse Fire Sound" : "" : "Sound played when pulse fires"
]
@SolidClass base(BaseTank) = func_tanklaser : "Brush Laser Turret"
[
laserentity(target_destination) : "env_laser Entity"
]
@SolidClass base(BaseTank) = func_tankrocket : "Brush Rocket Turret"
[
rocketspeed(float) : "Projectile speed" : 800 : "Speed the rocket will travel at."
]
@SolidClass base(BaseTank, TankShootSound) = func_tankairboatgun : "Airboat Gun Turret"
[
firespread(choices) : "Bullet accuracy" : -1 =
[
-1: "Original (slightly smaller than medium cone)"
0: "Perfect Shot"
1: "Small cone"
2: "Medium cone"
3: "Large cone"
4: "Extra-large cone"
]
heavy_shot_spread(choices) : "Heavy shot accuracy" : 0 : "The accuracy for each 'heavy' shot, which fires at a specified interval." =
[
0: "Perfect Shot"
1: "Small cone"
2: "Medium cone"
3: "Large cone"
4: "Extra-large cone"
]
heavy_shot_interval(float) : "Heavy shot interval" : "0.2" : "The interval between each 'heavy' shot, which carries higher knockback and, by default, perfect accuracy. The vast majority of bullets that hit the enemy are these 'heavy' shots."
airboat_gun_model(target_destination) : "Airboat gun model (Obsolete)" : : "You can do everything and more with the parent now, so you'd be better off using regular func_tank parent behavior than this. It is still functional for legacy support."
use_damage_kv(choices) : "Use Damage KV" : 0 : "Allows this func_tankairboatgun to use the Bullet Damage keyvalues instead of the airboat gun's default damage." =
[
0 : "No"
1 : "Yes"
]
]
@SolidClass base(BaseTank) = func_tankapcrocket : "APC Rocket Turret"
[
rocketspeed(float) : "Projectile speed" : 800 : "Speed the rocket will travel at."
burstcount(integer) : "Burst shot count" : 10 : "Number of missiles to shoot in a burst"
input DeathVolley(void) : "Fire a burst of rockets cause we're dying."
]
@SolidClass base(BaseTank) sphere(radius) = func_tankmortar : "Brush Mortar Turret"
[
iMagnitude(Integer) : "Explosion Magnitude" : 100
firedelay(string) : "Shell travel time" : 2 : "How long after the turret fires before the shell impacts"
firestartsound(sound) : "Firing start sound" : "" : "Sound of the mortar firing"
//fireendsound(sound) : "Firing end sound" : ""
incomingsound(sound) : "Incoming Shell Sound" : "" : "Sound of the shell falling on the target"
warningtime(float) : "Incoming warning time" : "1" : "How long before the shell impacts to play the warning sound"
firevariance(float) : "Fire time variance" : "0" : "How much variability to add to fire rate (time +-)"
radius(float) : "Explosion Radius" : "0" : "The radius of each shell's explosion. Reflected in its effects as well as its damage. 0 = Default (350)"
trace_mask(choices) : "Trace Mask" : 16395 : "The mask to use for when the mortar is tracing attacks from above. Good for when you want the mortar to hit NPCs like striders." =
[
16395: "MASK_SOLID_BRUSHONLY (Default)"
100679691: "MASK_SHOT_HULL (hits NPCs)"
]
input FireAtWill(void) : "Allow tank to fire next shot as soon as ready."
]
@SolidClass base(BaseTank) = func_tankphyscannister : "PhysCannister Turret"
[
barrel_volume(target_destination) : "Barrel Volume" : "" : "Name of a trigger the specifies the volume in which cannisters must be placed."
]
@SolidClass base(BaseTank, TankShootSound) = func_tank_combine_cannon : "Combine sentry cannon"
[
firerate(string) : "Rate of Fire" : "1.5"
ammotype(choices) : "Ammo type" : "" =
[
"" : "None"
"Pistol" : "Pistol"
"SMG1" : "SMG1"
"AR2" : "AR2"
"CombineHeavyCannon" : "Combine Heavy Cannon"
]
ControllableVersion(choices) : "Controllable Version" : 0 : "Enables a tweaked version of func_tank_combine_cannon that is designed to be controlled by players and NPCs." =
[
0 : "No"
1 : "Yes"
]
input DisableHarrass(void) : "Disable the cannon tracking an unseen player"
input EnableHarrass(void) : "Allow the cannon to track and pester a player who is hiding (DEFAULT)"
output OnShotAtPlayer(void) : "Fired everytime the cannon shoots at the player"
]
@SolidClass base(BaseTank, TankShootSound) = func_tanklogic :
"A special kind of turret designed to fire outputs instead of bullets, functioning solely through the I/O system."
[
ShootsThroughWater(choices) : "Shoots through water" : 0 : "If enabled, this func_tanklogic will be allowed to trace through water. (as opposed to just hitting the surface)" =
[
0 : "No"
1 : "Yes"
]
output OnFire_BarrelPos(vector) : "Fires each time this func_tank would fire a bullet. Passes the barrel's current position."
output OnFire_ShootPos(vector) : "Fires each time this func_tank would fire a bullet. Passes the position which said bullet would hit, spread applied."
output OnFire_FirstEnt(ehandle) : "Fires each time this func_tank would fire a bullet. Passes the first entity that would be hit, if any."
]
//-------------------------------------------------------------------------
//
// Items
//
//-------------------------------------------------------------------------
@BaseClass color(0 0 200) base(Targetname, Angles, Shadow) sphere(fademindist) sphere(fademaxdist) = Item
[
output OnPlayerTouch(void) : "Fires when the player touches this object"
output OnCacheInteraction(void) : "This output fires when the player proves they have 'found' this item. Fires on: Player Touch (whether or not player actually acquires the item), Picked up by +USE, Picked up by Physcannon, Punted by Physcannon."
fademindist(float) : "Start Fade Dist/Pixels" : -1 : "Distance at which the prop starts to fade (<0 = use fademaxdist). If 'Screen Space Fade' is selected, this represents the number of pixels wide covered by the prop when it starts to fade."
fademaxdist(float) : "End Fade Dist/Pixels" : 0 : "Maximum distance at which the prop is visible (0 = don't fade out). If 'Screen Space Fade' is selected, this represents the *minimum* number of pixels wide covered by the prop when it fades."
fadescale(float) : "Fade Scale" : 1 : "If you specify a fade in the worldspawn, or if the engine is running under dx7, then the engine will forcibly fade out props even if fademindist/fademaxdist isn't specified." +
" This scale factor gives you some control over the fade. Using 0 here turns off the forcible fades." +
spawnflags(Flags) =
[
1 : "[1] Start constrained" : 0
2 : "[2] Deny player pickup (reserve for NPC)" : 0
4 : "[4] Not puntable by Gravity Gun" : 0
8 : "[8] Deny NPC pickup (reserve for player)" : 0
64 : "[64] Always touchable (no obstruction checking)" : 0
]
// Inputs
input EnablePlayerPickup(void) : "Enables player pickup if it was previously disabled."
input DisablePlayerPickup(void) : "Disables player pickup if it was previously enabled."
input EnableNPCPickup(void) : "Enables NPC pickup if it was previously disabled."
input DisableNPCPickup(void) : "Disables NPC pickup if it was previously enabled."
input BreakConstraint(void) : "Breaks the constraint on this item if it started constrained."
]
@BaseClass base(Item) = ItemAmmo
[
AmmoMultiplier(float) : "Ammo Multiplier" : "1.0" : "Multiplies the amount of ammo this item gives. Using a negative number directly sets it to that number, rather than multiplying it."
// Inputs
input SetAmmoMultiplier(float) : "Sets the multiplier for the amount of ammo this item gives."
]
@PointClass base(Item) studio("models/items/healthkit.mdl") = item_dynamic_resupply : "A dynamic item. When the player enters the PVS of this entity, " +
"it will determine the item most needed by the player, spawn one of those items, and remove itself. To determine which item the player most needs, it " +
"calculates which of the Desired Health/Armor/Ammo ratios the player is farthest from.\n\nIf the player is above all the desired levels, then no item " +
"will be spawned, unless this item_dynamic_resupply was created by an item_item_crate. In that case, a random piece of ammo used by a weapon, that " +
"the player has, will be spawned. If the 'Fallback to Health Vial' spawnflag is set, a health vial will be spawned instead of the ammo.\n\nBy default, " +
"the item_dynamic_resupply uses the values inside the Master resupply, instead of using it's own values. This makes it easy to tweak the desired " +
"loadout of many resupplies. The BecomeMaster input allows you to switch Masters dynamically as the level progresses."
[
spawnflags(Flags) =
[
1 : "[1] Use Master's values" : 1
2 : "[2] Is Master" : 0
4 : "[4] Spawn even if player meets all requirements" : 0
8 : "[8] Fallback to Health Vial" : 0
16 : "[16] Alternate master" : 0
]
DesiredHealth(float) : "Desired Health Ratio" : "1" : "A ratio from 0 to 1. Attempt to fill the player up to this percentage of his max health."
DesiredArmor(float) : "Desired Armor Ratio" : "0.3" : "A ratio from 0 to 1. Attempt to fill the player up to this percentage of his max armor."
DesiredAmmoPistol(float) : "Desired Pistol Ammo Ratio" : "0.5" : "A ratio from 0 to 1. Attempt to fill the player up to this percentage of his max ammo carrying capacity."
DesiredAmmoSMG1(float) : "Desired SMG1 Ammo Ratio" : "0.5" : "A ratio from 0 to 1. Attempt to fill the player up to this percentage of his max ammo carrying capacity."
DesiredAmmoSMG1_Grenade(float) : "Desired SMG1 Grenade Ammo Ratio" : "0.1" : "A ratio from 0 to 1. Attempt to fill the player up to this percentage of his max ammo carrying capacity."
DesiredAmmoAR2(float) : "Desired AR2 Ammo Ratio" : "0.4" : "A ratio from 0 to 1. Attempt to fill the player up to this percentage of his max ammo carrying capacity."
DesiredAmmoBuckshot(float) : "Desired Shotgun Ammo Ratio" : "0.5" : "A ratio from 0 to 1. Attempt to fill the player up to this percentage of his max ammo carrying capacity."
DesiredAmmoRPG_Round(float) : "Desired RPG Ammo Ratio" : "0" : "A ratio from 0 to 1. Attempt to fill the player up to this percentage of his max ammo carrying capacity."
DesiredAmmoGrenade(float) : "Desired Grenade Ammo Ratio" : "0.1" : "A ratio from 0 to 1. Attempt to fill the player up to this percentage of his max ammo carrying capacity."
DesiredAmmo357(float) : "Desired 357 Ammo Ratio" : "0" : "A ratio from 0 to 1. Attempt to fill the player up to this percentage of his max ammo carrying capacity."
DesiredAmmoCrossbow(float) : "Desired Crossbow Ammo Ratio" : "0" : "A ratio from 0 to 1. Attempt to fill the player up to this percentage of his max ammo carrying capacity."
DesiredAmmoAR2_AltFire(float) : "Desired AR2 Alt-fire Ammo Ratio" : "0" : "A ratio from 0 to 1. Attempt to fill the player up to this percentage of his max ammo carrying capacity."
// Inputs
input CalculateType(void) : "Force the dynamic resupply to calculate which item it should spawn."
input BecomeMaster(void) : "Make this resupply the master resupply. All other resupplies set to Use Master's Values will now use this resupply's values."
]
@PointClass base(ItemAmmo) studio("models/items/boxsrounds.mdl")= item_ammo_pistol : "Box of Pistol ammo" []
@PointClass base(ItemAmmo) studio("models/items/BoxSRounds.mdl")= item_ammo_pistol_large : "Large Box of Pistol ammo" []
@PointClass base(ItemAmmo) studio("models/items/BoxMRounds.mdl")= item_ammo_smg1 : "Box of SMG1 ammo" []
@PointClass base(ItemAmmo) studio("models/items/BoxMRounds.mdl")= item_ammo_smg1_large : "Large Box of SMG1 ammo" []
@PointClass base(ItemAmmo) studio("models/items/combine_rifle_cartridge01.mdl")= item_ammo_ar2 : "Box of AR2 ammo" []
@PointClass base(ItemAmmo) studio("models/items/combine_rifle_cartridge01.mdl")= item_ammo_ar2_large : "Large Box of AR2 ammo" []
@PointClass base(ItemAmmo) studio("models/items/357ammo.mdl")= item_ammo_357 : "Box of 357 ammo" []
@PointClass base(ItemAmmo) studio("models/items/357ammobox.mdl")= item_ammo_357_large : "Large Box of 357 ammo" []
@PointClass base(ItemAmmo) studio("models/items/CrossbowRounds.mdl")= item_ammo_crossbow : "Box of Crossbow ammo" []
@PointClass base(ItemAmmo) studio("models/items/BoxBuckshot.mdl")= item_box_buckshot : "Box Buckshot" []
@PointClass base(ItemAmmo) studio("models/weapons/w_missile_closed.mdl")= item_rpg_round : "RPG Round" []
@PointClass base(ItemAmmo) studio("models/items/AR2_Grenade.mdl")= item_ammo_smg1_grenade : "SMG1 Grenade" []
@PointClass base(Item) studio("models/items/battery.mdl") = item_battery : "HEV battery" []
@PointClass base(Item) studio("models/items/healthkit.mdl") = item_healthkit : "Small Health Kit" []
@PointClass base(Item) studio("models/healthvial.mdl") = item_healthvial : "Personal Health Kit" []
@PointClass base(ItemAmmo) studio("models/items/combine_rifle_ammo01.mdl") = item_ammo_ar2_altfire : "AR2 Alt-fire Round" []
@PointClass base(Item) studio("models/items/hevsuit.mdl") = item_suit : "HEV Suit"
[
spawnflags(Flags) =
[
1 : "[1] Short Logon (now stops hands)" : 0
]
]
@PointClass base(Targetname, Parentname, Angles, RenderFields, BaseFadeProp) studio("models/items/ammocrate_empty.mdl") = item_ammo_crate : "Ammo Crate"
[
AmmoType(choices) : "Ammo Type" : 0 =
[
0 : "Pistol"
1 : "SMG1"
2 : "AR2"
3 : "RPG Rounds"
4 : "Buckshot"
5 : "Grenades"
6 : "357 Magnum"
7 : "Crossbow"
8 : "AR2 Alt-Fire Balls"
9 : "SMG Alt-Fire Grenades"
10 : "S.L.A.M."
11 : "Empty"
]
skin(integer) : "Skin" : 0 : "The ''Empty'' ammo crate can use multiple skins based on other crates. Changing the skin might be reflected in the viewport, but it will only apply to the empty ammo crate."
// Inputs
input Kill(void) : "Remove the ammo crate"
output OnUsed(void) : "Fires when +used by the player."
output OnAmmoTaken(void) : "Fires the instant ammo is taken from this crate."
input Skin(integer) : "Changes the model skin to the specified number."
]
@PointClass base(BasePropPhysics, Targetname, Angles, DamageFilter, BaseFadeProp) studioprop() = item_item_crate : "Item Crate" // studio("models/items/item_item_crate.mdl")
[
model(studio) : "Model" : "models/items/item_item_crate.mdl" : "The model of this item_item_crate. Only works when this crate's appearance is set to use a custom model."
CrateType(choices) : "Crate Contains" : 0 =
[
0 : "Contains specified item"
1 : "Contains point_template (use specific resupply)"
]
CrateAppearance(choices) : "Crate Appearance" : 0 =
[
0 : "Default Appearance"
1 : "Radar Beacon Crate"
2 : "Custom Model (use model keyvalue)"
]
ItemClass(pointentityclass) : "Item Type" : "item_dynamic_resupply" : "Class name of the entity to spawn when the crate is broken."
ItemCount(integer) : "Item Count" : 1 : "Number of items to emit upon breakage"
SpecificResupply(target_destination) : "Specific resupply/Target template" : "" : "If item type is item_dynamic_resupply, specify a specific one to use instead of the master. If the crate contains a point_template, this is required to specify which point_template to spawn."
// Inputs
input Kill(void) : "Remove the item crate"
input Break(void) : "Breaks the breakable."
input SetHealth(integer) : "Sets a new value for health. If the breakable's health reaches zero it will break."
input AddHealth(integer) : "Adds health to the breakable. If the breakable's health reaches zero it will break."
input RemoveHealth(integer) : "Removes health from the breakable. If the breakable's health reaches zero it will break."
// Outputs
output OnBreak(void) : "Fires when broken."
output OnHealthChanged(float) : "Fires when the health of this breakable changes, passing the new value of health as a percentage of max health, from [0..1]."
output OnCacheInteraction(void) : "This output fires when the player proves they have 'found' this crate. Fires on: Picked up by +USE, Picked up by Physcannon, Punted by Physcannon, Broken."
output OnItem(ehandle) : "Fires for each item spawned by this crate."
]
//@PointClass base(item_item_crate) studioprop() = item_item_crate_custom : "Identical to item_item_crate, except a 'Model' keyvalue is added for convenience when using a custom model." +
// "Its classname is changed back to item_item_crate upon spawning and this entity is only necessary when using the 'Custom Model' crate appearance."
//[
// model(studio) : "Model" : "models/items/item_item_crate.mdl" : "The model of this item_item_crate. Only works when this crate's appearance is set to use a custom model."
//]
@PointClass base(Targetname, Parentname, Angles, RenderFields, Studiomodel, BaseFadeProp) studioprop() = item_healthcharger : "Health Charger"
[
// dmdelay(integer) : "Deathmatch recharge delay" : 0
//_minlight(string) : "Minimum light level"
model(studio) : "Model" : "models/props_combine/health_charger001.mdl"
Charge(integer) : "Juice" : 0 : "Overrides the amount of suit power this charger contains. Use 0 for the default charge, which is usually the maximum juice. Use -1 if you want the charger to start empty."
MaxCharge(integer) : "Max Juice" : 0 : "Overrides the maximum suit power this charger contains. Use 0 for the default charge, 75."
SetIncrementValue(integer) : "Increment Health" : 0 : "How much charge should be given each 'increment', or each tenth-of-a-second interval in which the player is given health while using this charger. Juice is also decreased accordingly. Use 0 for the default increment, 1."
// Inputs
input Recharge(void) : "Recharge to full"
input SetCharge(integer) : "Sets the *maximum* charge, refilling the charger in the process."
input SetChargeNoMax(float) : "Sets the charger's current juice without doing anything with the maximum."
input SetIncrementValue(integer) : "Sets the charger's increment value."
// Outputs
output OutRemainingHealth(float) : "Outputs this charger's remaining health while used."
output OnHalfEmpty(void) : "Half-Empty"
output OnEmpty(void) : "Empty"
output OnFull(void) : "Recharged to full."
output OnPlayerUse(void) : "Fired when the player +USEs this charger."
]
@PointClass base(Targetname, Parentname, Angles, RenderFields, Studiomodel, BaseFadeProp) studioprop() = item_suitcharger : "Battery recharger"
[
// dmdelay(integer) : "Deathmatch recharge delay" : 0
//_minlight(string) : "Minimum light level"
model(studio) : "Model" : "models/props_combine/suit_charger001.mdl"
Charge(integer) : "Juice" : 0 : "Overrides the amount of suit power this charger contains. Use 0 for the maximum juice. (which is normally 75) Use -1 if you want the charger to start empty."
MaxCharge(integer) : "Max Juice" : 0 : "Overrides the maximum suit power this charger contains. Use 0 for the default charge, which varies based on this entity's spawnflags. (Normal = 75, Citadel = 500, Kleiner = 25)"
SetIncrementValue(integer) : "Increment Armor" : 0 : "How much charge should be given each 'increment', or each tenth-of-a-second interval in which the player is given suit armor while using this charger. Juice is also decreased accordingly. Use 0 for the default increment. (Normal = 1, Citadel = 10)"
spawnflags(flags) =
[
8192 : "[8192] Citadel recharger" : 0
16384 : "[16384] Kleiner's recharger" : 0
]
// Inputs
input Recharge(void) : "Recharge to full"
input SetCharge(integer) : "Sets the *maximum* charge, refilling the charger in the process."
input SetChargeNoMax(float) : "Sets the charger's current juice without doing anything with the maximum."
input SetIncrementValue(integer) : "Sets the charger's increment value."
// Outputs
output OutRemainingCharge(float) : "Outputs this charger's remaining juice while used."
output OnHalfEmpty(void) : "Half-Empty"
output OnEmpty(void) : "Empty"
output OnFull(void) : "Recharged to full."
output OnPlayerUse(void) : "Fired when the player +USEs this charger."
]
//-------------------------------------------------------------------------
//
// Weapons
//
//-------------------------------------------------------------------------
@BaseClass color(0 0 200) base(Targetname, Angles, RenderFields) sphere(fademindist) sphere(fademaxdist) = Weapon
[
spawnflags(Flags) =
[
1 : "[1] Start constrained" : 0
2 : "[2] Deny player pickup (reserve for NPC)" : 0
4 : "[4] Not puntable by Gravity Gun" : 0
8 : "[8] Deny NPC pickup (reserve for player)" : 0
16 : "[16] Preserve ammo values when picked up" : 0
32 : "[32] Preserve name on player pickup" : 0
64 : "[64] Always touchable (no obstruction checking)" : 0
]
SetAmmo1(integer) : "Ammo 1 Override" : 0 : "Overrides the amount of primary ammo this weapon has. Be sure to set 'Preserve ammo values when picked up' for this to be maintained upon pickup."
SetAmmo2(integer) : "Ammo 2 Override" : 0 : "Overrides the amount of secondary ammo this weapon has. Be sure to set 'Preserve ammo values when picked up' for this to be maintained upon pickup."
// Inputs
input EnablePlayerPickup(void) : "Enables player pickup if it was previously disabled."
input DisablePlayerPickup(void) : "Disables player pickup if it was previously enabled."
input EnableNPCPickup(void) : "Enables NPC pickup if it was previously disabled."
input DisableNPCPickup(void) : "Disables NPC pickup if it was previously enabled."
input BreakConstraint(void) : "Breaks the constraint on this weapon if it started constrained."
input SetAmmo1(integer) : "Sets the amount of primary ammo stored in this weapon."
input SetAmmo2(integer) : "Sets the amount of secondary ammo stored in this weapon."
input ForcePrimaryFire(void) : "Forces the weapon to fire its primary attack."
input ForceSecondaryFire(void) : "Forces the weapon to fire its secondary attack. Whether or not it actually fires a secondary attack depends on the weapon and who owns it."
// Outputs
output OnPlayerUse(void) : "Fires when the player +uses this weapon"
output OnPlayerPickup(void) : "Fires when the player picks up this weapon"
output OnNPCPickup(void) : "Fires when an NPC picks up this weapon"
output OnCacheInteraction(void) : "Fires when the player 'proves' they've found this weapon. Fires on: Player Touch, +USE pickup, Physcannon pickup, Physcannon punt."
output OnDropped(void) : "Fires when the weapon is dropped by a NPC or player, either through death or from picking up a different weapon."
fademindist(float) : "Start Fade Dist/Pixels" : -1 : "Distance at which the prop starts to fade (<0 = use fademaxdist). If 'Screen Space Fade' is selected, this represents the number of pixels wide covered by the prop when it starts to fade."
fademaxdist(float) : "End Fade Dist/Pixels" : 0 : "Maximum distance at which the prop is visible (0 = don't fade out). If 'Screen Space Fade' is selected, this represents the *minimum* number of pixels wide covered by the prop when it fades."
fadescale(float) : "Fade Scale" : 1 : "If you specify a fade in the worldspawn, or if the engine is running under dx7, then the engine will forcibly fade out props even if fademindist/fademaxdist isn't specified." +
" This scale factor gives you some control over the fade. Using 0 here turns off the forcible fades." +
]
@PointClass base(Weapon) studio("models/weapons/w_crowbar.mdl") sphere(fademindist) sphere(fademaxdist) = weapon_crowbar : "Crowbar" []
@PointClass base(Weapon) studio("models/weapons/w_stunbaton.mdl") sphere(fademindist) sphere(fademaxdist) = weapon_stunstick : "StunStick" []
@PointClass base(Weapon) studio("models/weapons/w_pistol.mdl") sphere(fademindist) sphere(fademaxdist) = weapon_pistol : "Pistol" []
@PointClass base(Weapon) studio("models/weapons/w_irifle.mdl") sphere(fademindist) sphere(fademaxdist) = weapon_ar2 : "Assault Rifle 2" []
@PointClass base(Weapon) studio("models/weapons/w_rocket_launcher.mdl") sphere(fademindist) sphere(fademaxdist) = weapon_rpg : "Missile Launcher" []
@PointClass base(Weapon) studio("models/weapons/w_smg1.mdl") sphere(fademindist) sphere(fademaxdist) = weapon_smg1 : "SMG1" []
@PointClass base(Weapon) studio("models/weapons/w_357.mdl") sphere(fademindist) sphere(fademaxdist) = weapon_357 : "357" []
@PointClass base(Weapon) studio("models/weapons/w_crossbow.mdl") sphere(fademindist) sphere(fademaxdist) = weapon_crossbow : "Crossbow" []
@PointClass base(Weapon) studio("models/weapons/w_shotgun.mdl") sphere(fademindist) sphere(fademaxdist) = weapon_shotgun : "Shotgun" []
@PointClass base(Weapon) studio("models/weapons/w_grenade.mdl") sphere(fademindist) sphere(fademaxdist) = weapon_frag : "Frag Grenade" []
@PointClass base(Weapon) studio("models/weapons/w_physics.mdl") sphere(fademindist) sphere(fademaxdist) = weapon_physcannon : "Physics Cannon" []
@PointClass base(Weapon) studio("models/weapons/w_bugbait.mdl") sphere(fademindist) sphere(fademaxdist) = weapon_bugbait: "Bug bait" []
@PointClass base(Weapon) studio("models/weapons/W_Alyx_Gun.mdl") sphere(fademindist) sphere(fademaxdist) = weapon_alyxgun: "Alyx Gun" []
@PointClass base(Weapon) studio("models/weapons/W_annabelle.mdl") sphere(fademindist) sphere(fademaxdist) = weapon_annabelle: "Annabelle (Grigori)" []
@PointClass base(Weapon) studio("models/weapons/w_slam.mdl") sphere(fademindist) sphere(fademaxdist) = weapon_slam: "A tripmine/satchel hybrid from HL2:MP.\n\nCome on and slam, and welcome to the jam!\nCome on and slam, if you wanna jam!" []
// TODO: Move to its own FGD? Needs to access Weapon base class somehow
@BaseClass color(0 0 220) base(Weapon, Studiomodel) sphere(fademindist) sphere(fademaxdist) = CustomScriptedWeapon
[
vscripts_client(string) : "Client-side Entity Scripts" : "" : "Name(s) of script files that are executed on the client. Weapons need to have a clientside counterpart for prediction in multiplayer, but this is not needed in singleplayer mapping."
weapondatascript_name(string) : "Weapon Script Name" : "" : "Name of the weapon script this entity should use. Uses the classname (weapon_custom_scripted1) by default."
]
@PointClass base(CustomScriptedWeapon) studioprop() sphere(fademindist) sphere(fademaxdist) = weapon_custom_scripted1: "Scripted Weapon 1" []
@PointClass base(Targetname, Parentname, Angles, RenderFields, DamageFilter) studio( "models/weapons/w_slam.mdl" ) sphere(DmgRadius) = npc_tripmine : "S.L.A.M. Tripmine"
[
PowerUpTime(float) : "Power Up Time" : "2.0" : "How much time this tripmine takes to power up after being activated."
Damage(float) : "Damage" : "150" : "The amount of damage this tripmine can deal."
DmgRadius(float) : "Damage Radius" : "200" : "The radius in which this tripmine can damage."
spawnflags(flags) =
[
1 : "[1] Start inactive" : 0
]
// Inputs
input Activate(void) : "Recharge to full"
// Outputs
output OnExplode(void) : "Fires when this tripmine explodes."
]
@SolidClass base(Trigger) = trigger_rpgfire :
"A volumetric trigger that triggers whenever an RPG is fired within it."
[
// Outputs
output OnTrigger(void) : "Fires while the trigger is activated"
]
@SolidClass base(Trigger) = trigger_vphysics_motion :
"A volumetric trigger that affects the motion of vphysics objects that touch it."
[
spawnflags(Flags) =
[
4096 : "[4096] Can move (through hierarchical attachment)" : 0
]
StartDisabled(choices) : "Start Disabled" : 0 =
[
0 : "No"
1 : "Yes"
]
filtername(filterclass) : "Filter Name" : : "Filter to use to see if activator triggers me. See filter_activator_name for more explanation."
SetGravityScale(float) : "Scale gravity of objects in the field." : "1.0"
input SetGravityScale(float) : "Scale gravity of objects in the field."
SetAdditionalAirDensity(float) : "Additional air density for drag" : "0"
input SetAdditionalAirDensity(float) : "Additional air density for drag"
SetVelocityLimit(float) : "Max velocity in field (0 disables)" : "0.0"
input SetVelocityLimit(float) : "Max velocity in field."
SetVelocityLimitDelta(float) : "Max amount to reduce velocity per second when it exceeds the velocity limit (0 disables)" : "0.0"
input SetVelocityLimitDelta(float) : "Max amount to reduce velocity per second"
input SetVelocityLimitTime(string) : "Accepts two arguments: the first is the new velocity limit, the second is the time it takes to ramp to that value"
SetVelocityScale(float) : "Velocity scale/drag" : "1.0"
input SetVelocityScale(float) : "Velocity scale/drag"
SetAngVelocityLimit(float) : "Max angular velocity in field (degrees/s, 0 disables)" : "0.0"
input SetAngVelocityLimit(float) : "Max angular velocity in field."
SetAngVelocityScale(float) : "Angular Velocity scale/drag" : "1.0"
input SetAngVelocityScale(float) : "Angular Velocity scale/drag"
SetLinearForce(float) : "Linear force (0 disables)" : "0.0"
input SetLinearForce(float) : "Linear force (0 disables)"
SetLinearForceAngles(angle) : "Direction of linear force (Pitch Yaw Roll (Y Z X))" : "0 0 0"
// input SetLinearForceAngles(angle) : "Direction of linear force (Pitch Yaw Roll (Y Z X))"
ParticleTrailMaterial(string) : "Particle Trail Material" : : "Name of a material to use for the particle trail, no name means no particle trail"
ParticleTrailLifetime(float) : "Particle Trail Lifetime" : 4 : "Lifetime of the particles to emit"
ParticleTrailStartSize(float) : "Particle Trail Starting Sprite Size" : 2 : "Starting size of the sprite to emit"
ParticleTrailEndSize(float) : "Particle Trail Ending Sprite Size" : 3 : "Ending size of the sprite to emit"
// Inputs
input Enable(void) : "Enable the trigger."
input Disable(void): "Disable the trigger."
input Toggle(void) : "Toggle enable/disable."
]
@PointClass base(Targetname, Parentname) size( 16 16 16) sphere(radius) color( 255 255 0 ) = point_bugbait : "Bugbait sensor point"
[
Enabled(choices) : "Start Enabled" : 1 =
[
0 : "No"
1 : "Yes"
]
spawnflags(Flags) =
[
1: "[1] Do not call antlions to position" : 0
2: "[2] Don't activate on thrown bugbait splashes" : 0
4: "[4] Don't activate on squeezed bugbait" : 0
]
radius(integer) : "Sensor Radius" : 512
// Inputs
input Enable(void) : "Enable the sensor."
input Disable(void): "Disable the sensor."
input Toggle(void) : "Toggle the sensor."
// Outputs
output OnBaited(void) : "Fires when bugbait lands within a radius of the sensor"
]
@PointClass base(Targetname, Angles) size(16 16 16) line(255 255 255, targetname, target) color(247 181 82) = path_corner : "Generic path point"
[
spawnflags(Flags) =
[
1: "[1] Wait for retrigger" : 0
2: "[2] Teleport to THIS path_corner" : 0
]
target(target_destination) : "Next stop target"
wait(integer) : "Wait here (secs)" : 0
speed(integer) : "New Train Speed" : 0
yaw_speed(integer) : "New Train rot. Speed" : 0
// Inputs
input SetNextPathCorner(target_destination) : "Sets next pathcorner"
// Outputs
output OnPass(void) : "Fires when a path follower passes this point"
]
@PointClass base(Targetname) size(16 16 16) color(255 0 0) = path_corner_crash : "Helicopter Crash Path"
[
target(target_destination) : "Next stop target"
]
//-------------------------------------------------------------------------
//
// Player effects
//
//-------------------------------------------------------------------------
@PointClass base(Targetname) size(-16 -16 -16, 16 16 16) = player_loadsaved : "Load Auto-Saved game"
[
duration(string) : "Fade Duration (seconds)" : "2"
holdtime(string) : "Hold Fade (seconds)" : "0"
renderamt(integer) : "Fade Alpha" : 255
rendercolor(color255) : "Fade Color (R G B)" : "0 0 0"
loadtime(string) : "Reload delay" : "0"
// Inputs
input Reload(void) : "Ends this game and reloads"
]
@PointClass base(Targetname) size(-16 -16 -16, 16 16 16) = player_weaponstrip : "Strips player's weapons"
[
// Inputs
input Strip(void) : "Strip player's weapons"
input StripWeaponsAndSuit(void) : "Strip player's weapons and his suit"
]
@PointClass base(Targetname) size(-16 -16 -16, 16 16 16) = player_speedmod: "Speeds up or slows down player velocity over time (slow mo/fast forward)"
[
spawnflags(Flags) =
[
1: "[1] Suppress weapons" : 0
2: "[2] Suppress HUD" : 0
4: "[4] Suppress jump" : 0
8: "[8] Suppress duck" : 0
16: "[16] Suppress use" : 0
32: "[32] Suppress sprint" : 0
64: "[64] Suppress attack" : 0
128: "[128] Suppress zoom" : 0
256: "[256] Don't suppress flashlight" : 0
]
AdditionalButtons(integer) : "Additional Buttons" : 0 : "Additional buttons to suppress, other than those listed in the spawnflags. Advanced users only."
// Inputs
input ModifySpeed(float) : "Modifies player speed by X ammount. Use 1.0 to reset."
input Enable(void) : "Enables the spawnflag abilities without actually modifying the player's speed."
input Disable(void) : "Disables the spawnflag abilities without actually modifying the player's speed."
input SetAdditionalButtons(integer) : "Sets the additional suppressed buttons."
]
//-------------------------------------------------------------------------
//
// Logic Entities
//
//-------------------------------------------------------------------------
@PointClass color(0 0 255) base(Targetname) iconsprite("editor/choreo_scene.vmt") = logic_choreographed_scene :
"Manages a choreographed scene of one or more actors."
[
// Keys
SceneFile(scene) : "Scene file"
// Links
target1(target_destination) : "Target 1"
target2(target_destination) : "Target 2"
target3(target_destination) : "Target 3"
target4(target_destination) : "Target 4"
target5(target_destination) : "Target 5"
target6(target_destination) : "Target 6"
target7(target_destination) : "Target 7"
target8(target_destination) : "Target 8"
busyactor(choices) : "If an Actor is talking..." : 1 : "What to do if an actor this scene needs is already talking when this scene is told to start." =
[
0: "Start immediately"
1: "Wait for actor to finish"
2: "Interrupt at next interrupt event"
3: "Cancel at next interrupt event"
]
// Inputs
input Start(void) : "Starts playback of the scene file"
input Pause(void) : "Pauses playback of the scene file"
input Resume(void) : "Resumes playback of the scene if it has been paused"
input Cancel(void) : "Cancels playback of the scene"
input CancelAtNextInterrupt(void) : "Cancels playback of the scene at the next interrupt event in the scene."
input PitchShift(float) : "Multiplies the the pitch"
input InterjectResponse(string) : "Finds an actor who can respond to the specified concept string while the scene continues playing"
input StopWaitingForActor(void) : "Stop waiting on an actor to stop talking."
// Unmarked inputs
input Trigger(integer) : "Fires the OnTrigger output of the specified number."
input SetTarget1(target_destination) : "Sets this target to the specified entity."
input SetTarget2(target_destination) : "Sets this target to the specified entity."
input SetTarget3(target_destination) : "Sets this target to the specified entity."
input SetTarget4(target_destination) : "Sets this target to the specified entity."
input SetTarget5(target_destination) : "Sets this target to the specified entity."
input SetTarget6(target_destination) : "Sets this target to the specified entity."
input SetTarget7(target_destination) : "Sets this target to the specified entity."
input SetTarget8(target_destination) : "Sets this target to the specified entity."
// Outputs
output OnStart(void) : "The scene has started"
output OnCompletion(void) : "The scene has completed"
output OnCanceled(void) : "The scene has been canceled"
output OnTrigger1(void) : "Scene trigger 1"
output OnTrigger2(void) : "Scene trigger 2"
output OnTrigger3(void) : "Scene trigger 3"
output OnTrigger4(void) : "Scene trigger 4"
output OnTrigger5(void) : "Scene trigger 5"
output OnTrigger6(void) : "Scene trigger 6"
output OnTrigger7(void) : "Scene trigger 7"
output OnTrigger8(void) : "Scene trigger 8"
output OnTrigger9(void) : "Scene trigger 9"
output OnTrigger10(void) : "Scene trigger 10"
output OnTrigger11(void) : "Scene trigger 11"
output OnTrigger12(void) : "Scene trigger 12"
output OnTrigger13(void) : "Scene trigger 13"
output OnTrigger14(void) : "Scene trigger 14"
output OnTrigger15(void) : "Scene trigger 15"
output OnTrigger16(void) : "Scene trigger 16"
onplayerdeath(choices) : "On player death" : 0 : "What should this entity do if the player dies" =
[
0 : "Do Nothing"
1 : "Cancel Script and return to AI"
]
]
@PointClass color(0 0 255) base(Targetname) iconsprite("editor/choreo_manager.vmt") = logic_scene_list_manager :
"Manages a list of logic_choreographed_scene entities. Store choreo scenes in them in order that they will be played by other inputs. Whenever a scene plays, the manager will remove all scenes before that one in the list. The name of another logic_scene_list_manager can be entered in a slot instead of an invididual scene, which will cause all scenes in that manager to be removed when a later scene in this list is played."
[
scene0(target_destination) : "Scene 1" : "" : "The name of a logic_choreographed_scene, or logic_scene_list_manager."
scene1(target_destination) : "Scene 2" : "" : "The name of a logic_choreographed_scene, or logic_scene_list_manager."
scene2(target_destination) : "Scene 3" : "" : "The name of a logic_choreographed_scene, or logic_scene_list_manager."
scene3(target_destination) : "Scene 4" : "" : "The name of a logic_choreographed_scene, or logic_scene_list_manager."
scene4(target_destination) : "Scene 5" : "" : "The name of a logic_choreographed_scene, or logic_scene_list_manager."
scene5(target_destination) : "Scene 6" : "" : "The name of a logic_choreographed_scene, or logic_scene_list_manager."
scene6(target_destination) : "Scene 7" : "" : "The name of a logic_choreographed_scene, or logic_scene_list_manager."
scene7(target_destination) : "Scene 8" : "" : "The name of a logic_choreographed_scene, or logic_scene_list_manager."
scene8(target_destination) : "Scene 9" : "" : "The name of a logic_choreographed_scene, or logic_scene_list_manager."
scene9(target_destination) : "Scene 10" : "" : "The name of a logic_choreographed_scene, or logic_scene_list_manager."
scene10(target_destination) : "Scene 11" : "" : "The name of a logic_choreographed_scene, or logic_scene_list_manager."
scene11(target_destination) : "Scene 12" : "" : "The name of a logic_choreographed_scene, or logic_scene_list_manager."
scene12(target_destination) : "Scene 13" : "" : "The name of a logic_choreographed_scene, or logic_scene_list_manager."
scene13(target_destination) : "Scene 14" : "" : "The name of a logic_choreographed_scene, or logic_scene_list_manager."
scene14(target_destination) : "Scene 15" : "" : "The name of a logic_choreographed_scene, or logic_scene_list_manager."
scene15(target_destination) : "Scene 16" : "" : "The name of a logic_choreographed_scene, or logic_scene_list_manager."
// Inputs
input Shutdown(void) : "Remove the manager and all scenes referenced by it (and all scenes referenced by logic_scene_list_manager's embedded in this one)."
]
@PointClass base(Targetname, Parentname) sphere(volume) iconsprite("editor/ai_sound.vmt") = ai_sound :
"This entity makes sounds or smells that can be sensed by NPCs, butnot by the player. This can be used " +
"to cause reactions in nearby NPCs.\n\n" +
"Sound Types\n" +
" Combat: Will cause most NPCs to become alert\n" +
" World: Will cause most NPCs to become alert\n" +
" Danger: Will cause most NPCs to move away from the position of the sound\n" +
" Bullet Impact: \n" +
" Carcass: \n" +
" Meat: \n" +
" Garbage: \n" +
" Thumper: causes antlions to run away briefly\n" +
" Readiness: (Low, Medium, High) Causes player companions that can hear this sound to change readiness\n"
[
//input InsertSound(Integer) : "THIS IS NOW OBSOLETE. Use InsertAISound"
input EmitAISound(void) : "Make the sound."
volume(integer) : "Volume" : 120 : "How far away this sound can be heard. This is a radius."
duration(float) : "Duration" : "0.5" : "How long the sound persists each time you insert it."
soundtype(choices) : "Sound Type" : 0 : "The type of sound or smell will determine the reaction of NPCs that sense it." =
[
0: "Select one"
1: "Combat"
2: "World"
//4: "Player (Don't use)"
8: "Danger"
16: "Bullet Impact"
32: "Carcass"
64: "Meat"
128: "Garbage"
256: "Thumper"
512: "Bugbait"
1024: "Physics Danger"
2048: "Sniper Danger (only scares sniper)"
4096: "Move Away - Most NPCs will clear the radius of this sound when heard."
8192: "Player Vehicle"
16384 : "Readiness - Low"
32768 : "Readiness - Medium"
65536 : "Readiness - High"
]
soundcontext(choices) : "Additional sound context (optional)" : 0 : "Optional settings specifying such things as who can or cannot hear the sound." =
[
0 : "Select one"
1048576 : "From sniper"
2097152 : "Gunfire (use with combat sound type)"
4194304 : "Mortar (pending explosion)"
8388608 : "Only Combine can hear"
67108864 : "Combine cannot can hear"
16777216 : "React to source (face sound owner)"
33554432 : "Explosion (use with combat sound type)"
134217728 : "Danger approach (run if see sound owner, turn to face if not)"
268435456 : "Only allies can hear"
]
locationproxy(target_destination) : "Location Proxy" : "" : "The name of an entity to use as a proxy to determine the location at which to make the sound. If you specify an entity here, the sound will be made at that entity's location (!player included)"
target(target_destination) : "Sound Owner" : "" : "An optional entity to use that the sound doesn't emit from, but is specified as the 'owner'. This is needed for certain sound contexts and other miscellaneous stuff. If not specified, the ai_sound will be used as the owner."
]
@PointClass size( -4 -4 -4, 4 4 4 ) base(Targetname, Parentname) = env_rotorwash : "Rotorwash Effect"
[
spawnflags(Flags) =
[
1 : "[1] Ignore solid" : 0
]
input DoEffect(Void) : "Make a rotor puff"
]
@PointClass base(Targetname, Parentname, Angles, BaseFadeProp) sphere(fademindist) sphere(fademaxdist) studio("models/props_combine/combine_mine01.mdl") = combine_mine : "A bouncing Combine mine. Mapbase adds a few new I/O/KV, but probably not enough."
[
bounce(choices) : "Bounce" : 1 : "Whether the mine should bounce up in the air before exploding." =
[
0: "No"
1: "Yes"
]
ExplosionDelay(float) : "Delay" : "0.5" : "The delay after being triggered before this mine bounces, or before it explodes if bouncing is disabled. Does not apply to the cavern type."
LockSilently(choices) : "Lock Silently" : 1 : "Prevents the mine from making any clamping sound when it plants itself for the first time, after which it makes sound again." =
[
0: "No"
1: "Yes"
]
// Still kept in for legacy support, but otherwise deprecated
//StartDisarmed(choices) : "Start Disarmed" : 0 : "If yes, mine begins dormant." =
//[
// 0 : "No"
// 1 : "Yes"
//]
InitialState(choices) : "Initial State" : 0 : "The initial state of this mine." =
[
0 : "Deploying"
1 : "Disarmed"
2 : "Captive (locked in physgun)"
3 : "Planted"
4 : "Triggered (bounce, explode on touch)"
5 : "Physgun Launch (no bounce, explode on touch)"
]
CheapWarnSound(choices) : "Cheap Warn Sound" : 0 : "Makes the mine's warn sound use generic sound methods instead of a sound patch, which is cheaper and doesn't continuously take up audio channels. Use this for areas with tons of active mines." =
[
0 : "No"
1 : "Yes"
]
Modification(choices): "Citizen modified" : 0 : "'Normal' is default Combine behavior. 'Cavern' detonates earlier in its jump, and has a different default skin." =
[
0 : "Normal"
1 : "Cavern"
]
Friendly(choices): "Start Friendly" : 0 : "Makes this mine friendly, as if it was placed by the player." =
[
0 : "No"
1 : "Yes"
]
enemyfilter(filterclass) : "Enemy Filter" : : "Makes this combine_mine target specific NPCs as enemies. It will also use its default targets unless ''Filter Exclusive'' is enabled."
friendfilter(filterclass) : "Friend Filter" : : "Makes this combine_mine target specific NPCs as friends. It will also use its default targets unless ''Filter Exclusive'' is enabled."
FilterExclusive(choices): "Filter Exclusive" : 0 : "If enabled, the filters will be the exclusive factor in determining whether a mine is friendly or hostile towards a target. Entities that pass neither filter will be ignored by the mine." =
[
0 : "No"
1 : "Yes"
]
LOSMask(choices) : "LOS method" : 16395 : "Controls what the mine can't see through when looking for enemies. Useful for when you want mines to see through grates and fences." =
[
16395 : "Default - Solid entities (MASK_SOLID_BRUSHONLY)"
16449 : "NPC LOS (MASK_BLOCKLOS)"
]
// Inputs
input Disarm(void) : "Disarm this mine (open hooks and shut off) if not placed by player."
input Bounce(void) : "Causes this mine to instantly bounce straight up into the air."
input BounceAtTarget(target_destination) : "Causes this mine to bounce at the specified entity, regardless of distance."
input SetEnemyFilter(target_destination) : "Changes this mine's enemy filter to the named filter."
input SetFriendFilter(target_destination) : "Changes this mine's friend filter to the named filter."
// Outputs
output OnPulledUp(void) : "Fires when this mine is uprooted with a physgun."
output OnTriggered(void) : "Fires when this mine is triggered by an enemy."
output OnExplode(void) : "Fires when this mine actually explodes."
]
@PointClass size( -4 -4 -4, 4 4 4 ) base(Targetname, Parentname) = env_ar2explosion :
"AR2 explosion visual effect. Big, volume-filling brown cloud. Does not cause damage or emit sound."
[
input Explode(Void) : "Make the explosion effect."
material(material) : "Particle Material" : "particle/particle_noisesphere" : "The material to use for each particle in the explosion."
]
@PointClass size( -4 -4 -4, 4 4 4 ) base(Targetname) = env_starfield : "Starfield effect"
[
input TurnOn(void) : "Turn on"
input TurnOff(void) : "Turn off"
input SetDensity(float) : "Set the density of the starfield. It's a multiplier, so 1 is the default."
]
@PointClass size( -4 -4 -4, 4 4 4 ) base(Targetname, Parentname, Angles) = env_flare : "Flare"
[
scale(float) : "Scale" : 1
duration(float) : "Duration" : 30
spawnflags(Flags) =
[
1 : "[1] No DLight" : 0
2 : "[2] No Smoke" : 0
4 : "[4] Infinite" : 0
8 : "[8] Start off" : 0
]
input Start(float) : "Starts the flare burning. The flare will burn for the specified number of seconds (0 = infinite)."
input Die(float) : "Causes the flare to fade out over the specified number of seconds, and then die (0 = die instantly)."
input Launch(float) : "Launch the flare forward with the specified speed."
]
@PointClass base(Targetname, Parentname, Angles) = env_muzzleflash : "Muzzle Flash"
[
parentattachment(string) : "Parent Attachment" : "" : "The name of an attachment on the parent to hierarchically attach to."
scale(float) : "Scale" : "1" : "Size of the muzzle flash."
input Fire(void) : "Fires the effect once."
]
@PointClass base(Targetname, Parentname) size(-4 -4 -4, 4 4 4) color(0 180 0) = env_terrainmorph :
"Morphs terrain by pulling vertices along a normal.\n\n" +
"Place this entity the desired distance from a terrain surface and set ANGLES " +
"to the normal along which you want to pull the surface's vertices. If you set the INSTANT spawnflag, " +
"the morph will take place instantly instead of over time.\n"
[
startradius( integer ) : "Start Radius" : 500 : "Radius of the effect when morphing begins. Only this value is used" +
"if the effect is flagged to occur instantly."
goalradius( integer ) : "Goal Radius" : 100 : "Radius of the effect at the end of morphing. The radius of this effect will change from "+
"Start Radius to Goal Radius over the duration of this effect. This value is ignored if the effect is flagged to occur instantly."
duration( integer ) : "Duration" : 3 : "The morph will take place over this period of time (seconds). Ignored if flagged to occur instantly"
fraction( integer ) : "Displacement Fraction" : 1 : "If set to 1, the terrain surface will be pulled exactly to this entity's position." +
" If set to 0.5, the surface will be pulled exactly half way to this entity's position. " +
"If set to 2, the surface will be pulled to an imaginary point twice as far away as this entity. " +
"(Any Displacement Fraction greater than 1.0 will result in clipping. The surface cannot be pulled beyond " +
"This entity's position and any vertices attemping will clip to this entity's position. You may use this feature to create mesas.)"
// Inputs
input BeginMorph(void) : "Begin Morph"
spawnflags(flags) =
[
1: "[1] Instant" : 0
]
]
@PointClass base(Targetname, EnableDisable) = logic_achievement :
"Sends an achievement system related event from the map to the achievement system."
[
//keyvalues
AchievementEvent(choices) : "Achievement Event" : 0 : "Named event is sent to the achievement system when this entity receives a 'FireEvent' input." =
[
"ACHIEVEMENT_EVENT_HL2_HIT_CANCOP_WITHCAN" : "[HL2] Hit the trashcan cop with the can."
"ACHIEVEMENT_EVENT_HL2_PUT_CANINTRASH" : "[HL2] Put the can in the trash."
"ACHIEVEMENT_EVENT_HL2_ESCAPE_APARTMENTRAID" : "[HL2] Escape the apartment block raid."
"ACHIEVEMENT_EVENT_HL2_BREAK_MINITELEPORTER" : "[HL2] Break the mini-teleporter in Kleiner's lab."
"ACHIEVEMENT_EVENT_HL2_GET_CROWBAR" : "[HL2] Get the crowbar."
"ACHIEVEMENT_EVENT_HL2_GET_AIRBOAT" : "[HL2] Get the Airboat"
"ACHIEVEMENT_EVENT_HL2_GET_AIRBOATGUN" : "[HL2] Get the airboat's mounted gun."
"ACHIEVEMENT_EVENT_HL2_FIND_VORTIGAUNTCAVE" : "[HL2] Discover the hidden singing vortigaunt cave in chapter Water Hazard."
"ACHIEVEMENT_EVENT_HL2_KILL_CHOPPER" : "[HL2] Destroy the hunter-chopper in Half-Life 2."
"ACHIEVEMENT_EVENT_HL2_FIND_HEVFACEPLATE" : "[HL2] Find the HEV Suit Charger faceplate in Eli's scrapyard."
"ACHIEVEMENT_EVENT_HL2_GET_GRAVITYGUN" : "[HL2] Get the Gravity Gun in Black Mesa East"
"ACHIEVEMENT_EVENT_HL2_MAKEABASKET" : "[HL2] Make a basket in Eli's scrapyard."
"ACHIEVEMENT_EVENT_HL2_BEAT_RAVENHOLM_NOWEAPONS_START" : "[HL2] Beat Ravenholm Gravgun only. (Start)."
"ACHIEVEMENT_EVENT_HL2_BEAT_RAVENHOLM_NOWEAPONS_END" : "[HL2] Beat Ravenholm Gravgun only. (End)."
"ACHIEVEMENT_EVENT_HL2_BEAT_CEMETERY" : "[HL2] Escort Gregori safely through the church cemetery."
"ACHIEVEMENT_EVENT_HL2_KILL_ENEMIES_WITHCRANE" : "[HL2] Kill 3 enemies using the crane."
"ACHIEVEMENT_EVENT_HL2_PIN_SOLDIER_TOBILLBOARD" : "[HL2] Pin the soldier to the billboard with the crossbow in chapter Highway 17."
"ACHIEVEMENT_EVENT_HL2_KILL_ODESSAGUNSHIP" : "[HL2] Defend Little Odessa from the gunship attack."
"ACHIEVEMENT_EVENT_HL2_BEAT_DONTTOUCHSAND" : "[HL2] Cross the antlion beach in chapter Sandtraps without touching the sand."
"ACHIEVEMENT_EVENT_HL2_ENTER_NOVAPROSPEKT" : "[HL2] Get inside Nova Prospekt"
"ACHIEVEMENT_EVENT_HL2_BEAT_TURRETSTANDOFF2" : "[HL2] Survive the second turret standoff in the prison."
"ACHIEVEMENT_EVENT_HL2_FOLLOWFREEMAN" : "[HL2] Gain command of a squad of rebels in the uprising"
"ACHIEVEMENT_EVENT_HL2_BEAT_TOXICTUNNEL" : "[HL2] Get through the toxic tunnel under City 17 in Half-Life 2."
"ACHIEVEMENT_EVENT_HL2_BEAT_PLAZASTANDOFF" : "[HL2] Survive the Generator Plaza standoff in chapter Anticitizen One."
"ACHIEVEMENT_EVENT_HL2_KILL_ALLC1709SNIPERS" : "[HL2] Kill all of the snipers in City 17."
"ACHIEVEMENT_EVENT_HL2_BEAT_SUPRESSIONDEVICE" : "[HL2] Shut down the supression device by disabling its generators."
"ACHIEVEMENT_EVENT_HL2_BEAT_C1713STRIDERSTANDOFF" : "[HL2] Survive the rooftop strider battle in the ruins of City 17."
"ACHIEVEMENT_EVENT_HL2_BEAT_GAME" : "[HL2] Destroy the Citadel's reactor core (Beat Game)."
"ACHIEVEMENT_EVENT_HL2_GMAN_KLEINERSLAB" : "[HL2] G-Man: trainstation_05 on Kleiner's Monitor"
"ACHIEVEMENT_EVENT_HL2_GMAN_TRAINCAR" : "[HL2] G-Man: canals_01 on TV in vort train car"
"ACHIEVEMENT_EVENT_HL2_GMAN_REDBARN" : "[HL2] G-Man: canals_06 at the red barn"
"ACHIEVEMENT_EVENT_HL2_GMAN_OUTDOORMONITOR" : "[HL2] G-Man: canals_06 on giant outdoor monitor"
"ACHIEVEMENT_EVENT_HL2_GMAN_CATWALK" : "[HL2] G-Man: canals_12 on catwalk"
"ACHIEVEMENT_EVENT_HL2_GMAN_DAM" : "[HL2] G-Man: canals_13 to the left of the dam"
"ACHIEVEMENT_EVENT_HL2_GMAN_TRAINTRACKS" : "[HL2] G-Man: town_05 at the end of the tracks"
"ACHIEVEMENT_EVENT_HL2_GMAN_ODESSA" : "[HL2] G-Man: coast_03 odessa meeting"
"ACHIEVEMENT_EVENT_HL2_GMAN_PRISONMONITOR" : "[HL2] G-Man: prison_02 control room monitor"
"ACHIEVEMENT_EVENT_HL2_GMAN_FOYERTV" : "[HL2] G-Man: c17_02 on TV in the destroyed foyer"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_KLEINERSLAB" : "[HL2] Lamda: Secret entrance to Kleiner's lab in trainstation_05"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_CANALSSTATION" : "[HL2] Lamda: canals_01 building by tracks"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_VENTCRAWL" : "[HL2] Lamda: canals_01 vent crawl"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_CANALSTUNNEL" : "[HL2] Lamda: canals_01a tunnel"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_SEWERGRATE" : "[HL2] Lamda: canals_02 below grate in sewer corridor"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_STEAMPIPE" : "[HL2] Lamda: canals_03 under steam pipe"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_CURVEDROOM" : "[HL2] Lamda: canals_05 on second level of curved room"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_SHANTYTOWN" : "[HL2] Lamda: canals_05 before shanty town"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_TUNNELLADDER" : "[HL2] Lamda: canals_06 on overhead metal walkway in tunnel"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_REDBARN" : "[HL2] Lamda: canals_06 at the red barn"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_FLOATINGRAMP" : "DON'T USE ME [HL2] Lamda: canals_06 outside the pipe at floating ramp puzzle"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_ZOMBIEAMBUSH" : "[HL2] Lamda: canals_06 outside exploded tanker (zombie ambush)"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_BELOWAPCS" : "[HL2] Lamda: canals_07 in the wall below apcs"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_COUNTERWEIGHT" : "[HL2] Lamda: canals_08 in counterweighted basket"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_RAILWAYBRIDGE" : "[HL2] Lamda: canals_08 behind railway bridge piling"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_TUNNELPLATFORMS" : "[HL2] Lamda: canals_09 on wooden platforms in tunnel"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_BANKEDCANAL" : "[HL2] Lamda: canals_10 up banked side of canals passage"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_CANALWALL" : "[HL2] Lamda: canals_10 in wall opening after canals passage"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_CHANNELSPLIT" : "[HL2] Lamda: canals_12 right side of split channel"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_BMEDOCK" : "[HL2] Lamda: eli_01 Black Mesa East dock"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_GENERATORS" : "[HL2] Lamda: town_01 through ductwork behind generators"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_CARCRUSHERARENA" : "[HL2] Lamda: town_01 behind fence in car-crusher arena"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_RAVENHOLMATTIC" : "[HL2] Lamda: town_01a in attic opposite map exit"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_MINETUNNELEXIT" : "[HL2] Lamda: town_05 tunnel exit from ravenholm mine"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_COASTSHACK" : "[HL2] Lamda: coast_01 shack after the buggy jump"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_POISONSHACK" : "[HL2] Lamda: coast_03 poison headcrab shack"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_GUNSHIPVAN" : "[HL2] Lamda: coast_04 broken down van after the gunship"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_SUICIDECITIZEN" : "[HL2] Lamda: coast_05 suicide citizen's gas tank cache"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_RAILROADSHACK" : "[HL2] Lamda: coast_07 fenced off area outside of town"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_COASTABOVEBATTERY" : "[HL2] Lamda: coast_09 above the bathroom in the battery puzzle building"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_SANDSHACK" : "[HL2] Lamda: coast_11 elevated shack after the board bridge"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_GMANCACHE" : "[HL2] Lamda: prison_02 in the boarded up area of the gman sighting"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_CELLCACHE" : "[HL2] Lamda: prison_03 in the prison cell"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_POISONLAUNDRY" : "[HL2] Lamda: prison_05 in the laundry utility room"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_SODAMACHINE" : "[HL2] Lamda: prison_06 on top of the soda machine"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_STREETWARDOGWALL" : "[HL2] Lamda: c17_02 next to first Combine wall"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_STREETWARSHACK" : "[HL2] Lambda: c17_04 inside shack before metrocop holdout"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_STREETWARFENCE" : "[HL2] Lamda: c17_05 behind fence before end of map"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_FREEWAYTUNNEL" : "[HL2] Lamda: c17_06a at start of freeway tunnel"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_DRAWBRIDGE" : "[HL2] Lamda: c17_06b before second drawbridge"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_PLAZAFENCE" : "[HL2] Lamda: c17_06b behind fence before end of map"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_SEWERSCATWALKS" : "[HL2] Lamda: c17_08 lowest catwalk at sewer entrance"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_POISONZOMBIEALCOVE" : "[HL2] Lamda: c17_08 wall cubby next to poison zombie"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_PIPEHOPTUNNEL" : "[HL2] Lamda: c17_08 end of pipe hop tunnel by poison zombie"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_EXITCATWALK" : "[HL2] Lamda: c17_08 side of building next to hallway leading to level exit"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_ENDOFC1712B" : "[HL2] Lamda: c17_12b at map exit"
"ACHIEVEMENT_EVENT_HL2_LAMDACACHE_WHITEVAN" : "[HL2] Lamda: c17_13 white van in underground garage"
"ACHIEVEMENT_EVENT_EP1_BEAT_MAINELEVATOR" : "[EP1] Reach the bottom of the main elevator shaft."
"ACHIEVEMENT_EVENT_EP1_BEAT_CITADELCORE_START" : "[EP1] Contain the citadel core. (start)"
"ACHIEVEMENT_EVENT_EP1_BEAT_CITADELCORE_END" : "[EP1] Contain the citadel core. (end)"
"ACHIEVEMENT_EVENT_EP1_BEAT_CITADELCORE" : "[EP1] Contain the citadel core."
"ACHIEVEMENT_EVENT_EP1_BEAT_CITADELCORE_NOSTALKERKILLS" : "[EP1] Contain the citadel core with no stalker kills"
"ACHIEVEMENT_EVENT_EP1_BEAT_GARAGEELEVATORSTANDOFF" : "[EP1] Survive long enough to get on the elevator in the parking garage."
"ACHIEVEMENT_EVENT_EP1_BEAT_HOSPITALATTICGUNSHIP" : "[EP1] Destroy the gunship in the hospital attic."
"ACHIEVEMENT_EVENT_EP1_BEAT_CITIZENESCORT_NOCITIZENDEATHS_START" : "[EP1] Don't let any citizens die when escorting them to the escape train (start)."
"ACHIEVEMENT_EVENT_EP1_BEAT_CITIZENESCORT_NOCITIZENDEATHS_END" : "[EP1] Don't let any citizens die when escorting them to the escape train (end)."
"ACHIEVEMENT_EVENT_EP1_BEAT_GAME_NOHEALTHPICKUPS_START" : "[EP1] Beat EP1 without picking up any health. (start)"
"ACHIEVEMENT_EVENT_EP1_BEAT_GAME_NOHEALTHPICKUPS_END" : "[EP1] Beat EP1 without picking up any health. (end)"
"ACHIEVEMENT_EVENT_EP1_START_GAME" : "[EP1] Began EP1 (for tracking One Free Bullet)"
"ACHIEVEMENT_EVENT_EP1_BEAT_GAME" : "[EP1] Beat EP1 (for tracking One Free Bullet)"
"ACHIEVEMENT_EVENT_EP2_BEAT_ANTLIONINVASION" : "[EP2] Hold off the antlion invasion inside the mine shaft"
"ACHIEVEMENT_EVENT_EP2_BEAT_ANTLIONGUARDS" : "[EP2] Defeat both antlion guards outside the White Forest"
"ACHIEVEMENT_EVENT_EP2_BEAT_HUNTERAMBUSH" : "[EP2] Survive the Hunter ambush at the radio tower."
"ACHIEVEMENT_EVENT_EP2_KILL_CHOPPER_NOMISSES_START" : "[EP2] Start of the chopper arena battle."
"ACHIEVEMENT_EVENT_EP2_KILL_CHOPPER_NOMISSES_END" : "[EP2] End of the chopper arena battle."
"ACHIEVEMENT_EVENT_EP2_KILL_COMBINECANNON" : "[EP2] Destroy the Combine Cannon in the junkyard."
"ACHIEVEMENT_EVENT_EP2_BEAT_RACEWITHDOG" : "[EP2] Beat DOG in the race to the White Forest."
"ACHIEVEMENT_EVENT_EP2_BEAT_ROCKETCACHEPUZZLE" : "[EP2] Unlock the Rocket Launcher lambda cache in chapter Under The Radar."
"ACHIEVEMENT_EVENT_EP2_BEAT_WHITEFORESTINN" : "[EP2] Survive the invasion at White Forest Inn"
"ACHIEVEMENT_EVENT_EP2_PUT_ITEMINROCKET" : "[EP2] Send <some object from chapter 1> into space."
"ACHIEVEMENT_EVENT_EP2_BEAT_MISSILESILO2" : "[EP2] Secure the launch doors on missile silo 2."
"ACHIEVEMENT_EVENT_EP2_BEAT_GAME" : "[EP2] Save the missile silo from the Combine offensive."
"ACHIEVEMENT_EVENT_EP2_BEAT_OUTLAND12_NOBUILDINGSDESTROYED" : "[EP2] Save the missile silo without losing any buildings."
"ACHIEVEMENT_EVENT_EP2_FIND_RADAR_CACHE" : "[EP2] Found a radar cache in chapter Under The Radar."
"ACHIEVEMENT_EVENT_EP2_RADARCACHE_VAN" : "[EP2] Radar Cache: 09 first van cache"
"ACHIEVEMENT_EVENT_EP2_RADARCACHE_RPG" : "[EP2] Radar Cache: 09 rpg cache"
"ACHIEVEMENT_EVENT_EP2_RADARCACHE_SHACK" : "[EP2] Radar Cache: 09 shack floor board cache"
"ACHIEVEMENT_EVENT_EP2_RADARCACHE_CAVE" : "[EP2] Radar Cache: 10 cave cache"
"ACHIEVEMENT_EVENT_EP2_RADARCACHE_HANGING" : "[EP2] Radar Cache: 10 hanging crate cache"
"ACHIEVEMENT_EVENT_EP2_WEBCACHE_01" : "[EP2] Web Cache: ep2_outland_01a underwater cache"
"ACHIEVEMENT_EVENT_EP2_WEBCACHE_02" : "[EP2] Web Cache: ep2_outland_03 grim pinata cache"
"ACHIEVEMENT_EVENT_EP2_WEBCACHE_03" : "[EP2] Web Cache: ep2_outland_03 first arena exit tunnel wall cache"
"ACHIEVEMENT_EVENT_EP2_WEBCACHE_04" : "[EP2] Web Cache: ep2_outland_03 second arena exit tunnel ceiling cache"
"ACHIEVEMENT_EVENT_EP2_WEBCACHE_05" : "[EP2] Web Cache: ep2_outland_03 zombine grenade trap cache"
"ACHIEVEMENT_EVENT_EP2_WEBCACHE_06" : "[EP2] Web Cache: ep2_outland_04 gear cave entry wall cache"
"ACHIEVEMENT_EVENT_EP2_WEBCACHE_07" : "[EP2] Web Cache: ep2_outland_04 gear cave rockfall ceiling cache"
"ACHIEVEMENT_EVENT_EP2_WEBCACHE_08" : "[EP2] Web Cache: ep2_outland_04 gear cave barnacle ceiling cache"
"ACHIEVEMENT_EVENT_EP2_WEBCACHE_09" : "[EP2] Web Cache: ep2_outland_04 gear cave poison crab wall cache"
"ACHIEVEMENT_EVENT_PORTAL_GET_PORTALGUNS" : "[PORTAL] Acquire the fully powered Aperture Science Handheld Portal Device."
"ACHIEVEMENT_EVENT_PORTAL_KILL_COMPANIONCUBE" : "[PORTAL] Do whatever it takes to survive."
"ACHIEVEMENT_EVENT_PORTAL_ESCAPE_TESTCHAMBERS" : "[PORTAL] Make the correct party escort submission position decision."
"ACHIEVEMENT_EVENT_PORTAL_BEAT_GAME" : "[PORTAL] Complete Portal."
]
// Inputs
input Toggle(void) : "Toggle the relay between enabled and disabled."
input FireEvent(void) : "Tells the achievement system the specifed event has occured."
// Outputs
output OnFired(void) : "When the event fires, this fires."
]
//-------------------------------------------------------------------------
//
// Camera/monitor entities
//
//-------------------------------------------------------------------------
@PointClass base(Targetname, Parentname, Angles) studioprop("models/editor/camera.mdl") frustum(FOV,fogstart,fogend,250 250 250,-1) = point_camera : "Camera"
[
// MAPBASE: sphere(fogstart) sphere(fogend) is distracting, especially with the frustum.
// Instead of using spheres, we just stuck it into the frustum properties.
spawnflags(Flags) =
[
1 : "[1] Start Off" : 0
]
FOV(float) : "FOV" : 90 : "Field of view in degrees"
// resolution(float) : "resolution" : 256 : "width/height of the render target for the camera"
UseScreenAspectRatio(choices) : "Screen Aspect Ratio" : 0 =
[
0 : "No"
1 : "Yes"
]
fogEnable(choices) : "Fog Enable" : 0 =
[
0 : "No"
1 : "Yes"
]
fogColor(color255) : "Fog Color" : "0 0 0"
fogStart(float) : "Fog Start" : 2048 : "The near fog plane."
fogEnd(float) : "Fog End" : 4096 : "The far fog/clipping plane."
fogMaxDensity(float) : "Fog Max Density [0..1]" : 1 : "The maximum fog density. 0=no fog, 1=full fog."
SkyMode(choices) : "Sky Mode" : 2 : "How to draw the sky through this point_camera." =
[
2 : "Draw sky texture"
1 : "Draw 3D skybox"
]
RenderTarget(choices) : "Render target" : "" : "Makes this camera target a specific RT texture instead of just _rt_Camera, allowing for multiple active point_cameras. Monitors for this camera must use materials which draw the target texture. You can manually type in any RT texture name if you know what you're doing." =
[
"_rt_Camera" : "_rt_Camera (default)"
"_rt_Camera0" : "_rt_Camera0"
"_rt_Camera1" : "_rt_Camera1"
"_rt_Camera2" : "_rt_Camera2"
"_rt_WaterReflection" : "_rt_WaterReflection (requires no nearby water/mirrors)"
"_rt_WaterRefraction" : "_rt_WaterRefraction (requires no nearby water/mirrors)"
]
// Inputs
input ChangeFOV(string) : "Changes camera's FOV over time"
input SetOnAndTurnOthersOff(void) : "Turn the camera on, and turn all other cameras off. Does not affect cameras using different render targets."
input SetOn(void) : "Turn the camera on."
input SetOff(void) : "Turn the camera off."
input SetSkyMode(integer) : "Sets the sky mode. NOTE: 2 = draw sky texture, 1 = draw 3D skybox!"
input SetRenderTarget(string) : "Sets the render target."
]
@PointClass base(point_camera) studioprop("models/editor/camera.mdl") = point_camera_ortho : "Orthographic Camera"
[
Ortho0(float) : "Ortho Top" : 100 : "The ortho's top dimension. Will be FOV if 0."
Ortho1(float) : "Ortho Bottom" : 0 : "The ortho's bottom dimension. Will be a negative version of the top if 0."
Ortho2(float) : "Ortho Left" : 0 : "The ortho's left dimension. Will be the top if 0."
Ortho3(float) : "Ortho Right" : 0 : "The ortho's right dimension. Will be a negative version of the left if 0."
IsOrtho(choices) : "Ortho Enabled" : 1 : "Sets whether this camera is orthographic. This is for when you want to toggle ortho mode via input." =
[
0 : "No"
1 : "Yes"
]
// Inputs
input SetOrthoEnabled(bool) : "Changes camera's FOV over time"
input SetOrthoTop(string) : "Changes the top ortho over time"
input SetOrthoBottom(string) : "Changes the bottom ortho over time"
input SetOrthoLeft(string) : "Changes the left ortho over time"
input SetOrthoRight(string) : "Changes the right ortho over time"
]
@SolidClass base(func_brush) = func_monitor :
"A monitor that renders the view from a given point_camera entity."
[
target(target_destination) : "Camera name"
// Inputs
input Toggle(void) : "Toggle - If on, turn off, if off, turn on."
input Enable(void) : "Enable."
input Disable(void) : "Disable."
input SetCamera(target_destination) : "Sets the camera to use for this monitor. Takes the name of a point_camera entity in the map."
]
@SolidClass base(func_brush) = func_bulletshield :
"A shield that stops only bullets."
[
]
//-------------------------------------------------------------------------
//
// Vehicles.
//
//-------------------------------------------------------------------------
@BaseClass base(Targetname, Origin, Global, prop_static_base) = BaseVehicle
[
vehiclescript(string) : "Vehicle Script File" : "scripts/vehicles/jeep_test.txt"
actionScale(float) : "Scale of action input / framerate" : "1"
// Inputs
input Action(float) : "Set the speed of the action animation"
input TurnOn(void) : "Turn on: Start engine & enable throttle"
input TurnOff(void) : "Turn off: Stop engine, disable throttle, engage brakes."
input Lock(void) : "Prevent the player from entering or exiting the vehicle."
input Unlock(void) : "Re-allow the player to enter or exit the vehicle."
]
@BaseClass base(BaseVehicle) = BaseDriveableVehicle
[
VehicleLocked(choices) : "Start locked" : 0 =
[
0 : "No"
1 : "Yes"
]
// Outputs
output PlayerOn(void) : "Player entered the vehicle"
output PlayerOff(void) : "Player exited the vehicle"
output PressedAttack(void) : "Player Pressed attack key"
output PressedAttack2(void) : "Player Pressed attack2 key"
output AttackAxis(string) : "State of attack button [0,1]"
output Attack2Axis(string) : "State of attack2 button [0,1]"
output OnPlayerUse(void) : "Fires when the player interacts with this entity."
// Inputs
input HandBrakeOn(void) : "Turns the handbrake on"
input HandBrakeOff(void): "Releases the handbrake"
input EnterVehicle(void) : "Forces the activator (or player) into the vehicle."
input EnterVehicleImmediate(void) : "Forces the activator (or player) into the vehicle without enter/exit animations."
input ExitVehicle(void) : "Boots the driver out of the vehicle."
input ExitVehicleImmediate(void) : "Immediately boots the driver out of the vehicle with no animations."
]
@PointClass base(BaseVehicle) studioprop() = prop_vehicle :
"Studiomodel vehicle that can be driven via inputs."
[
// Inputs
input Steer(float) : "Steer the vehicle +/-1"
input Throttle(float) : "Throttle +/-1"
spawnflags(flags) =
[
1 : "[1] Always Think (Run physics every frame)" : 0
]
]
@PointClass base(BaseDriveableVehicle) studioprop() = prop_vehicle_driveable :
"Generic driveable studiomodel vehicle."
[
]
@PointClass base(Targetname, Angles) studio() = point_apc_controller : "APC Controller"
[
spawnflags(flags) =
[
1 : "[1] Active" : 0
]
yawrate(string) : "Yaw rate" : "30"
yawtolerance(string) : "Yaw tolerance" : "15"
pitchrate(string) : "Pitch rate" : "0"
pitchtolerance(string) : "Pitch tolerance" : "20"
rotatestartsound(sound) : "Rotate Start Sound" : ""
rotatesound(sound) : "Rotate Loop Sound" : ""
rotatestopsound(sound) : "Rotate Stop Sound" : ""
minRange(string) : "Minmum target range" : "0"
maxRange(string) : "Maximum target range" : "0"
targetentityname(target_destination) : "Name of entity I should follow/attack" : ""
// Inputs
input Activate(void) : "Turn the APC rockets on"
input Deactivate(void) : "Turn the APC rockets off (go dormant)"
// Outputs
output OnFireAtTarget(void) : "Fires when a valid target is found and the APC should shoot rockets"
]
@PointClass base(BaseDriveableVehicle) studioprop() = prop_vehicle_apc :
"APC with mounted guns, can only be driven by a vehicle driver or a npc_apcdriver."
[
model(studio) : "World model" : "models/combine_apc.mdl"
VehicleLocked(choices) : "Start locked" : 1 : "APCs cannot be properly controlled by players, at least not by default. It's best to keep this locked." =
[
0 : "No"
1 : "Yes"
]
missilehint(target_destination) : "Missile Hint Target" : "" : "Name of one or more info_apc_missile_hint entities to use to determine what to hit."
//Inputs
input FireMissileAt(target_destination) : "A target to fire a missile at"
input Destroy(void) : "Causes the APC to blow up."
// Outputs
output OnFiredMissile(void) : "Fired when the APC shoots a missile."
output OnDeath(void) : "Fired when the APC is killed."
output OnDamaged(void) : "Fired when the APC is damaged."
output OnDamagedByPlayer(void) : "Fired when the APC is damaged by the player."
]
@SolidClass base(Targetname, Origin, Angles, EnableDisable) = info_apc_missile_hint :
"Something that helps APC missiles guide. If the missile can hit the associated target entity"+
"between the time it takes the current enemy to enter + leave the hint, then the missile will guide to the entity."
[
target(target_destination) : "Target Entity" : "" : "The entity that the missile will guide towards if the conditions are met."
]
@PointClass base(BaseDriveableVehicle) studioprop() = prop_vehicle_jeep :
"Driveable studiomodel jeep."
[
model(studio) : "World model" : "models/buggy.mdl" : "Use jalopy.mdl if you're using Episodic. If you want to use the original HL2 buggy in Episodic, use prop_vehicle_jeep_old."
input StartRemoveTauCannon(void) : "Start the tau removal sequence."
input FinishRemoveTauCannon(void) : "Finish the tau removal sequence."
input EnableGun(bool) : "Enables or disables the jeep's tau cannon and associated crosshair."
// FIXME: These will move into episodic
input LockEntrance( void ) : "Stops NPC's from entering the vehicle until unlocked."
input UnlockEntrance( void ) : "Allows NPC's to enter the vehicle."
input LockExit( void ) : "Stops NPC's from exiting the vehicle until unlocked."
input UnlockExit( void ) : "Allows NPC's to exit the vehicle."
input EnableRadar( void ) : "Turn on the Jalopy radar"
input DisableRadar( void ) : "Turn off the Jalopy radar"
input EnableRadarDetectEnemies( void ) : "Enable Jalopy radar to detect Striders and Hunters"
input AddBusterToCargo( void ) : "Put a striderbuster in the cargo trigger"
input SetCargoHopperVisibility ( bool ) : "Set the strider buster hopper thingy to be visible, or invisible."
input EnableHazardLights ( void ) : "Enables the jalopy's hazard lights."
input DisableHazardLights ( void ) : "Disables the jalopy's hazard lights."
input DisablePhysGun(void) : "Disable physgun interactions with the jeep."
input EnablePhysGun(void) : "Enable physgun interactions with the jeep (default)."
input CreateLinkController(void) : "Automatically builds and attaches a link controller to the car, which cuts the node connections under the car while the car is standing still."
input DestroyLinkController(void) : "Destroys the link controller created by CreateLinkController."
CargoVisible(choices): "Hopper Visible" : 0 : "Is the striderbuster cargo hopper visible?" =
[
0 : "No"
1 : "Yes"
]
NoHazardLights(choices) : "No Hazard Lights" : 0 : "Stops the jalopy's hazard lights from turning on and flashing when the player exits the vehicle." =
[
0 : "No"
1 : "Yes"
]
spawnflags(Flags) =
[
1 : "[1] HUD Locator Precache" : 0
]
EnableGun(choices) : "Has Gun" : 0 : "Whether the jeep's tau cannon is enabled or disabled." =
[
0 : "No"
1 : "Yes"
]
// FIXME: These are going to change!
output OnCompanionEnteredVehicle(void) : "Companion has entered the vehicle."
output OnCompanionExitedVehicle(void) : "Companion has exited the vehicle."
output OnHostileEnteredVehicle(void) : "Hostile has entered the vehicle."
output OnHostileExitedVehicle(void) : "Hostile has exited the vehicle."
]
@PointClass base(BaseDriveableVehicle) studioprop() = prop_vehicle_jeep_old :
"A way to access the original HL2 jeep in Episodic. Just use prop_vehicle_jeep if you're using the original HL2 version."
[
model(studio) : "World model" : "models/buggy.mdl"
input StartRemoveTauCannon(void) : "Start the tau removal sequence."
input FinishRemoveTauCannon(void) : "Finish the tau removal sequence."
input DisablePhysGun(void) : "Disable physgun interactions with the jeep."
input EnablePhysGun(void) : "Enable physgun interactions with the jeep (default)."
]
@PointClass base(BaseDriveableVehicle) studioprop() = vehicle_viewcontroller :
"Vehicle hack to control player view"
[
input ForcePlayerIn(string) : "Force the player into the vehicle. The animation to use can be specified in the parameter. Without a parameter, the player just teleports."
input ForcePlayerOut(void) : "Force the player out of the vehicle."
]
@PointClass base(BaseDriveableVehicle) studioprop() = prop_vehicle_airboat :
"Driveable studiomodel airboat."
[
model(studio) : "World model" : "models/airboat.mdl"
vehiclescript(string) : "Vehicle Script File" : "scripts/vehicles/airboat.txt"
EnableGun(choices) : "Has Gun" : 0 : "Whether the airboat's gun is enabled or disabled." =
[
0 : "No"
1 : "Yes"
]
input EnableGun(bool) : "Enables or disables the airboat gun and associated crosshair."
input InputStartRotorWashForces(void) : "The airboat will start to be blown around by the helicopter rotor wash."
input InputStopRotorWashForces(void) : "The airboat will no longer be blown around by the helicopter rotor wash."
]
@PointClass base(BaseDriveableVehicle) studioprop() = prop_vehicle_cannon :
"Driveable studiomodel cannon."
[
]
@PointClass base(BaseDriveableVehicle) studioprop() = prop_vehicle_crane :
"Driveable studiomodel crane."
[
magnetname(target_destination) : "Magnet entity" : ""
input ForcePlayerIn(void) : "Force the player to get into the crane. Only works in singleplayer."
]
@PointClass base(BaseDriveableVehicle, Parentname) studioprop() = prop_vehicle_prisoner_pod :
"Combine prisoner pod that the player can ride in."
[
model(studio) : "World model" : "models/vehicles/prisoner_pod.mdl"
vehiclescript(string) : "Vehicle Script File" : "scripts/vehicles/prisoner_pod.txt"
input Open(void) : "Plays the pod's open animation and unlocks the pod for entry or exit."
input Close(void) : "Plays the pod's close animation and locks the pod for entry or exit."
input EnterVehicle(void) : "Forces the activator (or player) into the pod."
input EnterVehicleImmediate(void) : "Forces the activator (or player) into the pod without enter/exit animations."
input ExitVehicle(void) : "Boots the prisoner out of the pod."
output OnOpen(void) : "Fired when the pod is open enough to enter."
output OnClose(void) : "Fired when the pod too closed to enter."
]
//@PointClass size( -4 -4 -4, 4 4 4 ) base(Targetname, Parentname) = env_vehiclecrosshair :
// "Vehicle crosshair replica. Uses its own origin and angles. Parent to a func_tank or something."
//[
// //TargetVehicle(target_destination) : "Target vehicle"
//
// StartDisabled(choices) : "Start Disabled" : 1 =
// [
// 0 : "No"
// 1 : "Yes"
// ]
//
// input TurnOn(void) : "Turns on the crosshair."
// input TurnOff(void) : "Turns off the crosshair."
// input UnableToFire(bool) : "Toggles whether the crosshair should show up as red, or unable to fire."
//]
@PointClass size( -4 -4 -4, 4 4 4 ) base(Targetname) = env_starfield : "Starfield effect"
[
input TurnOn(void) : "Turn on"
input TurnOff(void) : "Turn off"
input SetDensity(float) : "Set the density of the starfield. It's a multiplier, so 1 is the default."
]
@PointClass base(BaseSpeaker) iconsprite("editor/ambient_generic.vmt") = env_speaker : "Announcement Speaker"
[
]
//-------------------------------------------------------------------------
// Script entities
//-------------------------------------------------------------------------
@PointClass base(Angles,Targetname,Parentname) = script_tauremoval : "Script: Custom entity used to handle the tau removal sequence in coast. (unused)"
[
vortigaunt(target_destination) : "Vortigaunt to use"
// Inputs
input StartScript(void) : "Start the script."
input RemoveTau(void) : "Start removing the Tau cannon now."
]
@PointClass base(Targetname) = script_intro : "Script: Custom entity used to handle the intro sequence."
[
// Inputs
input Activate(void) : "Take control of the player's view and start blending the two scenes."
input Deactivate(void) : "Stop controlling the view."
input SetCameraViewEntity(target_destination) : "Set the viewpoint to blend with the player's viewpoint."
input SetBlendMode(integer) : "Set the blending mode to use."
input SetFOV(integer) : "Set the fov for the second camera."
input SetNextFOV(integer) : "Set the FOV to blend to over time. Follow this with a SetFOVBlendTime input to start the fov blend."
input SetFOVBlendTime(float) : "Set the amount of time it should take to blend to the next fov target, and start blending."
input SetNextBlendMode(integer) : "Set the blending mode to blend to over time. Follow this with a SetNextBlendTime input to start the mode blend."
input SetNextBlendTime(float) : "Set the amount of time it should take to blend to the next mode, and start blending."
input FadeTo(string) : "Fade to a specific alpha amount of an amount of time. Parameters: <alpha> <duration>"
input SetFadeColor(string) : "Set the fade color. Parameters: <Red> <Green> <Blue>"
input SetDrawSky(bool) : "Sets whether the skybox should be drawn."
input SetDrawSky2(bool) : "Sets whether the skybox should be drawn in the second view."
alternatefovchange(choices) : "Match env_zoom's FOV transition" : 0 : "Whether the script should match env_zoom's FOV transition." =
[
0 : "No"
1 : "Yes"
]
DrawSky(choices) : "Draw skybox" : 0 : "Allows the skybox to be drawn while the script_intro is active. Drawing the skybox *might* break the VortWarp shader used by the transcending vortigaunts in EP1/EP2." =
[
0 : "No"
1 : "Yes"
]
DrawSky2(choices) : "Draw skybox in camera view" : 0 : "Allows the skybox to be drawn in the second view. Otherwise draws a solid white background." =
[
0 : "No"
1 : "Yes"
]
UseEyePosition(choices) : "Use camera's eye position" : 0 : "Uses the camera view entity's eye position instead of its origin. Intended to be used with info_player_view_proxy." =
[
0 : "No"
1 : "Yes"
]
]
@PointClass base(Targetname) iconsprite("editor/info_target.vmt") = info_player_view_proxy : "Copies a player's view as if they're at a different position. Intended to be used with script_intro."
[
Enabled(choices) : "Start Activated" : 0 : "Starts with position offsetting enabled." =
[
0 : "No"
1 : "Yes"
]
MeasureReference(target_destination) : "Measure Reference" : "" : "Used for logic_measure_movement-based offsetting. The movement of the player will be measured relative to this entity."
TargetReference(target_destination) : "Movement Reference" : "" : "Used for logic_measure_movement-based offsetting. The info_player_position_offset will move relative to this entity."
TargetScale(float) : "Movement scale" : "1" : "Used for logic_measure_movement-based offsetting. This is a scale to *divide* the measured movements by before applying those movements to this entity."
// Inputs
input Activate(void) : "Begin offsetting."
input Deactivate(void) : "Stop offsetting."
]
//-------------------------------------------------------------------------
//
// Special effects
//
//-------------------------------------------------------------------------
@PointClass base(Angles,Targetname,Parentname) = env_citadel_energy_core : "Special effect for the energy cores in citadel."
[
spawnflags(Flags) =
[
1 : "[1] No small particles" : 0
2 : "[2] Start on" : 0
]
scale(float) : "Scale" : 1 : "Scale of the effect. 1 is the default size, 2 is twice that, etc."
// Inputs
input StartCharge(float) : "Start charging the core over specified number of seconds."
input StartDischarge(void) : "Start discharging the core over specified number of seconds."
input Stop(float) : "Stops the effect at any point."
]
@PointClass base(Angles,Targetname,Parentname) size(-4 -4 -4, 4 4 4) color(0 0 255) line( 0 0 255, targetname, EndTargetName) = env_alyxemp : "Special effect for the Alyx's EMP device."
[
Type(choices) : "EMP Type" : 0 =
[
0 : "Small"
1 : "Large"
]
EndTargetName(target_destination) : "Target Entity" : "" : "Entity to use as a target endpoint."
// Inputs
input StartCharge(float) : "Start charging the effect over specified number of seconds."
input StartDischarge(void) : "Start discharging the effect over specified number of seconds."
input Stop(float) : "Stops the effect at any point."
input SetTargetEnt(target_destination) : "Sets the target entity for the effect."
]
@PointClass = test_sidelist : "Test entity for Ken!"
[
sides(sidelist) : "Sides"
]
//-------------------------------------------------------------------------
// Countdown timer for the teleporter at the end of the game
//-------------------------------------------------------------------------
@PointClass base(Targetname) iconsprite("editor/info_target.vmt") = info_teleporter_countdown : "Countdown timer for the teleporter. The status of the teleporter will appear on vgui_screen entities whose panel is 'teleport_countdown_screen'."
[
// Inputs
input StartCountdown(float) : "Starts the teleporter countdown. Requires an argument which is the number of seconds for the countdown."
input StopCountdown(void) : "Stops the countdown permanently"
input Disable(void) : "Pauses the countdown due to a temporary malfunction. A warning sign will appear on the linked vgui screens."
input Enable(void) : "Restarts the countdown since the malfunction is finished."
]
@PointClass base(BaseDriveableVehicle, Parentname) studioprop() = prop_vehicle_choreo_generic :
"Generic Choreo vehicle used for magical events."
[
model(studio) : "World model" : "models/vehicles/prisoner_pod.mdl"
vehiclescript(string) : "Vehicle Script File" : "scripts/vehicles/choreo_vehicle.txt"
input Open(void) : "Plays the vehicle's open animation and unlocks the vehicle for entry or exit."
input Close(void) : "Plays the vehicle's close animation and locks the vehicle for entry or exit."
input EnterVehicle(void) : "Forces the activator (or player) into the vehicle."
input EnterVehicleImmediate(void) : "Forces the activator (or player) into the vehicle without enter/exit animations."
input ExitVehicle(void) : "Boots the prisoner out of the vehicle."
input Viewlock(bool) : "Set true to prevent Gordon from looking around *at all*. Set false to let him look within limits."
input SetAnimation(string) : "Force the prop to play an animation. The parameter should be the name of the animation."
output OnOpen(void) : "Fired when the vehicle is open enough to enter."
output OnClose(void) : "Fired when the vehicle too closed to enter."
ignoremoveparent(choices) : "Ignore Move Parent on Exit" : 0 : "Should the player ignore this vehicle's move parent went performing exit checks." =
[
0 : "No"
1 : "Yes"
]
ignoreplayer(choices) : "Ignore Player collision" : 0 : "The player wont collide against this vehicle when moving around." =
[
0 : "No"
1 : "Yes"
]
]
@FilterClass base(BaseFilter) iconsprite("editor/filter_class.vmt") = filter_combineball_type :
"A filter that filters by combine ball type."
[
balltype(choices) : "Ball Type" : 1 =
[
0 : "Not Thrown (in combine ball field, etc)"
2 : "Thrown/Launched by the player's physcannon"
3 : "Launched by point_combine_ball_launcher"
]
]
@PointClass base(Targetname) = env_entity_dissolver: "Entity Dissolver"
[
input Dissolve(target_destination) : "Dissolve target, if no target is passed it'll use the target specified in the target field."
target(target_destination) : "Target to Dissolve" : "" : "Targetname of the entity you want to dissolve."
magnitude(integer) : "Magnitude" : 250 : "How strongly to push away from the center."
dissolvetype(choices) : "Dissolve Type" : "Energy" =
[
0 : "Energy"
1 : "Heavy electrical"
2 : "Light electrical"
3 : "Core Effect"
]
]
@PointClass base(Targetname, Angles) studio("models/props_combine/coreball.mdl") = prop_coreball: "Core Ball"
[
input SetScaleX(vector) : "Scales the coreball in one Axis. Params: <New Size> <Time>"
input SetScaleY(vector) : "Scales the coreball in one Axis. Params: <New Size> <Time>"
input SetScaleZ(vector) : "Scales the coreball in one Axis. Params: <New Size> <Time>"
]
@PointClass base(Targetname, Studiomodel, Angles, RenderFields) studioprop() = prop_scalable : "Scalable Prop"
[
input SetScaleX(vector) : "Scales the prop in one Axis. Params: <New Size> <Time>"
input SetScaleY(vector) : "Scales the prop in one Axis. Params: <New Size> <Time>"
input SetScaleZ(vector) : "Scales the prop in one Axis. Params: <New Size> <Time>"
]
@PointClass base(BasePropPhysics, Targetname, Angles, DamageFilter, BaseFadeProp) studioprop() = prop_flare : "Flare Prop"
[
model(studio) : "Model" : "models/props_junk/flare.mdl" : "Any model entered here can use flares."
input StartFlare(void) : "Ignites the flare."
input StopFlare(void) : "Extinguishes the flare."
input AddFlareLifetime(float) : "Adds to the flare's lifetime. Negative numbers subtract."
input RemoveFlare(void) : "Kills/removes the flare. Doesn't restore flare."
input RestoreFlare(void) : "Restores the flare after it is burned out."
output OnRestored(void) : "Fired when player instigates +USE."
]
@PointClass base(Targetname, Angles) sphere(radius) sphere(inner_radius) = point_push: "Point Push"
[
spawnflags(Flags) =
[
1 : "[1] Test LOS before pushing" : 0
2 : "[2] Use angles for push direction" : 0
4 : "[4] No falloff (constant push at any distance)" : 0
8 : "[8] Push players" : 1
16 : "[16] Push physics" : 1
]
enabled(choices) : "Start Enabled" : 1 =
[
0 : "No"
1 : "Yes"
]
magnitude(float) : "Magnitude" : 100 : "How strongly to push away from the center."
radius(float) : "Radius" : 128 : "Radius to affect items in."
inner_radius(float) : "Inner radius" : "0" : "If not zero, the LOS is calculated from a point intersecting this sphere."
input Enable(void) : "Enable the push."
input Disable(void): "Disable the push."
]
@NPCClass base(Targetname, Angles, BaseFadeProp, Global, DamageFilter) studio("models/antlion_grub.mdl") sphere(fademindist) sphere(fademaxdist) = npc_antlion_grub :
"Antlion grub"
[
spawnflags(Flags) =
[
1 : "[1] Do not automatically attach to surface" : 0
]
input Squash( void ) : "Squash the grub!"
output OnAgitated( void ) : "Fired when the grub is stepped on or damaged."
output OnDeath( void ) : "Fired when the grub is killed."
output OnDeathByPlayer( void ) : "Fired when the grub is killed (only by the player)."
]
@NPCClass base(Item) studio() = item_grubnugget :
"Antlion grub nugget"
[
model(choices) : "Denomination" : "models/grub_nugget_small.mdl" : "Sets the nugget's size." =
[
"models/grub_nugget_small.mdl" : "Small"
"models/grub_nugget_medium.mdl" : "Medium"
"models/grub_nugget_large.mdl" : "Large"
]
]
@PointClass base(BasePropPhysics) studioprop() sphere(fademindist) sphere(fademaxdist) studio("models/magnusson_device.mdl") = weapon_striderbuster :
"Strider Buster"
[
spawnflags(Flags) =
[
8388608 : "[8388608] Don't use game_weapon_manager" : 0
]
dud(choices) : "Dud Bomb" : 0 : "This striderbuster is not armed (to be used for training)." =
[
0 : "No"
1 : "Yes"
]
output OnAttachToStrider(void) : "Fired when the striderbuster successfully attaches to a strider."
output OnDetonate(void) : "Fired when the striderbuster detonates."
output OnShatter(void) : "Fired when the striderbuster shatters without detonating."
output OnShotDown(void) : "Fired when the striderbuster shatters after being shot down by Hunters"
]
@PointClass base(Targetname, Parentname) sphere(radius) = point_flesh_effect_target : "Flesh Effect Target"
[
radius(float) : "Radius" : 8 : "Radius of the effect when active"
input SetRadius(vector) : "Sets a new radius and time to interpolate to it(as a vector <Size> <Time in Seconds>)."
]