Left 4 Dead/left4dead.fgd

common/left 4 dead/bin/left4dead.fgd // // Entities for Left 4 Dead //

@include "base.fgd"

@PointClass base(Targetname,Angles,Parentname) studioprop("models/editor/camera.mdl") = point_viewcontrol_multiplayer : "A camera entity that controls all players' views. While it's active, the players will see out of the camera." [	fov(float) : "Field of view" : "90" : "Player FOV" fov_rate(float) : "Seconds to reach FOV target" : "1.0" : "Amount of time it should take to reach the specified FOV"

// Inputs input Enable(void) : "Enable the point_viewcontrol_multiplayer, and start controlling the players' view." input Disable(void) : "Disable the point_viewcontrol_multiplayer, and stop controlling the players' view." ]

@PointClass base(Targetname,Angles,Parentname) studioprop("models/editor/camera.mdl") = point_viewcontrol_survivor : "A camera entity that controls the player's view. Travels from camera position to a first-person view on input." [	fov(float) : "Field of view" : "90" : "Player FOV (if Set FOV spawnflag is set)" fov_rate(float) : "Seconds to reach FOV target" : "1.0" : "Amount of time it should take to reach the specified FOV"

spawnflags(flags) = [		1: "Disable when move finished" : 1 2: "Set FOV" : 0 ]

// Inputs input Enable(void) : "Enable the point_viewcontrol, and start controlling the player's view." input Disable(void) : "Disable the point_viewcontrol, and stop controlling the player's view." input StartMovement(void) : "Start the movement to first-person view." ]

@PointClass base(Targetname,Angles,Parentname) studioprop("models/editor/camera.mdl") = point_deathfall_camera : "A camera entity that players falling to their deaths look through." [	fov(float) : "Field of view" : "90" : "Player FOV" fov_rate(float) : "Seconds to reach FOV target" : "1.0" : "Amount of time it should take to reach the specified FOV" ]

//- // // 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."

// 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) iconsprite("editor/logic_auto.vmt") = logic_versus_random : "Fires random outputs in the first round of a versus map, " + "and then repeats those outputs in the second round of a versus map. " [

input PickRandom(void) : "Fires a random output with at least one connection."

// Outputs output OnRandom01(void) : "Fired when the input value equals the Random01 value." output OnRandom02(void) : "Fired when the input value equals the Random02 value." output OnRandom03(void) : "Fired when the input value equals the Random03 value." output OnRandom04(void) : "Fired when the input value equals the Random04 value." output OnRandom05(void) : "Fired when the input value equals the Random05 value." output OnRandom06(void) : "Fired when the input value equals the Random06 value." output OnRandom07(void) : "Fired when the input value equals the Random07 value." output OnRandom08(void) : "Fired when the input value equals the Random08 value." output OnRandom09(void) : "Fired when the input value equals the Random09 value." output OnRandom10(void) : "Fired when the input value equals the Random10 value." output OnRandom11(void) : "Fired when the input value equals the Random11 value." output OnRandom12(void) : "Fired when the input value equals the Random12 value." output OnRandom13(void) : "Fired when the input value equals the Random13 value." output OnRandom14(void) : "Fired when the input value equals the Random14 value." output OnRandom15(void) : "Fired when the input value equals the Random15 value." output OnRandom16(void) : "Fired when the input value equals the Random16 value." ]

@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" ] ]

@PointClass base(prop_dynamic) studioprop sphere(fademindist) sphere(fademaxdist) = prop_car_glass : "This class is the same as prop_dynamic, with a car alarm." [ ]

@PointClass base(prop_physics) studioprop sphere(fademindist) sphere(fademaxdist) = prop_car_alarm : "This class is the same as prop_physics, with a car alarm." [	output OnCarAlarmStart(void) : "Car alarm should go off" output OnCarAlarmEnd(void) : "Car alarm has shut off" output OnCarAlarmChirpStart(void) : "" output OnCarAlarmChirpEnd(void) : "" ]

@PointClass base(Targetname, Angles, Studiomodel) studioprop sphere(fademindist) sphere(fademaxdist) = prop_fuel_barrel : "A physics prop that acts like a barrel of fuel when shot" [

spawnflags(flags) = [		1 : "Start Asleep" : 0 ]	fademindist(float) : "Start Fade Dist/Pixels" : -1 : "Distance at which the prop starts to fade (<0 = subtract from fademaxdist)." fademaxdist(float) : "End Fade Dist/Pixels" : 0 : "Maximum distance at which the prop is visible (0 = don't fade out)." fadescale(float) : "Fade Scale" : 1 : "If you specify a fade in the worldspawn, or if the engine is running under low end/medium end/XBox360, 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." +												 " Numbers smaller than 1 cause the prop to fade out at further distances, and greater than 1 cause it to fade out at closer distances."

model(studio) : "World model" : "models/props_industrial/barrel_fuel.mdl" BasePiece(studio) : "Base Piece" : "models/props_industrial/barrel_fuel_partb.mdl" FlyingPiece01(studio) : "Flying Piece 1" : "models/props_industrial/barrel_fuel_parta.mdl" FlyingPiece02(studio) : "Flying Piece 2" : "" FlyingPiece03(studio) : "Flying Piece 3" : "" FlyingPiece04(studio) : "Flying Piece 4" : "" //texture(decal) : "Scorch Decal" : "decals/molotovscorch"

DetonateParticles(string) : "Detonation Particles" : "weapon_pipebomb" FlyingParticles(string) : "Flying Piece Particles" : "barrel_fly" //ImpactParticles(string) : "Impact Particles" : "" DetonateSound(sound) : "Sound played when the object explodes." : "BaseGrenade.Explode" ]

@PointClass base(prop_dynamic) studioprop sphere(fademindist) sphere(fademaxdist) = prop_glowing_object : "A dynamic prop that can glow through walls" [	StartGlowing(choices) : "Start Glowing" : 1 : "Whether this objkect glows when the map starts" = [		0 : "No" 1 : "Yes" ]	GlowForTeam(choices) : "Glow For Team" : -1 : "Team(s) this entity should glow for" = [		-1 : "Everyone" 2 : "Survivors" 3 : "Infected" ]

input StartGlowing(void) : "Turns on glowing for this object" input StopGlowing(void) : "Turns off glowing for this object" ]

@SolidClass = func_ladder : "Ladder. Players will be able to freely along one side of this brush, as if it was a ladder. " + "If you are using a model prop for the visual representation of the ladder in the map, " + "apply the toolsinvisibleladder material to the climbable side of the func_ladder brush." [ ]

@SolidClass base(Trigger) = trigger_auto_crouch : "Allows players touching the trigger to auto-crouch." [ ]

@SolidClass base(Targetname, EnableDisable) = func_nav_blocker : "A brush entity that can block nav areas touching its AABB." [	input BlockNav(string) : "Starts blocking nav areas." input UnblockNav(void) : "Stops blocking nav areas."

teamToBlock(choices) : "Team(s) to block" : -1 : "Team(s) this entity should block" = [		-1 : "Everyone" 2 : "Survivors" 3 : "Infected" ] ]

@SolidClass base(Targetname, EnableDisable) = func_nav_avoidance_obstacle : "A brush entity that tells bots to avoid nav areas touching its AABB." [ ]

@SolidClass base(Targetname) = func_nav_attribute_region : "A brush entity that holds attributes to be applied to regions of nav areas during generation." [	spawnFlags(flags) = [		2: "Empty (no wanderers)" : 0 32: "Battlestation" : 0 64: "Finale" : 0 128: "Mission Start" : 0 256: "Battlefield" : 0 2048: "Checkpoint" : 0 8192: "No mobs" : 0 ] ]

@SolidClass base(Targetname) = func_nav_stairs_toggle : "This will add or remove the 'STAIRS' attribute from all nav areas that overlap the brush" [	InitialSetting(choices) : "Initial Setting" : 0 : "" = [		0 : "Leave Default Value" 1 : "Add Attribute" -1 : "Remove Attribute" ]	input AddStairsAttribute(void) : "Adds the STAIRS attribute to overlapping nav areas" input RemoveStairsAttribute(void) : "Removes the STAIRS attribute from overlapping nav areas" ]

@SolidClass base(Targetname, EnableDisable) = func_ragdoll_fader : "A brush entity that will fade out any ragdolls that touch it" [

]

@SolidClass base(Targetname, EnableDisable) = func_fire_extinguisher : "A brush entity that will fade out any ragdolls that touch it" [

]

@SolidClass base(Targetname, EnableDisable) = func_spawn_volume : "A brush entity that can be used to designate a desired spawn area" [	StartDisabled(choices) : "Start Disabled" : 1 = [		0 : "No" 1 : "Yes" ] ]

@SolidClass base(Targetname, Parentname, Origin, RenderFields) = func_elevator : "A brush entity that moves vertically." [	top(vecline) : "Top floor position" bottom(vecline) : "Bottom floor position"

speed(integer) : "Speed" : 100 : "The speed that the elevator moves, in inches per second." acceleration(integer) : "Acceleration" : 100 : "The acceleration at which the elevator approaches its target speed, in inches per second per second." blockdamage(float) : "Block Damage" : 0 : "The amount of damage to do to any entity that blocks the elevator, per frame." startsound(sound) : "Sound played when the elevator starts moving." stopsound(sound) : "Sound played when the elevator stops moving." disablesound(sound) : "Sound played when the elevator is disabled."

// Inputs input MoveToFloor(string) : "Start the elevator moving to the specified floor." input Disable(void) : "Stops the elevator and prevents it from moving again."

// Outputs output OnReachedTop(string) : "Fired when the brush reaches the top." output OnReachedBottom(string) : "Fired when the brush reaches the bottom." ]

@PointClass base(Targetname, Parentname, Angles) iconsprite("editor/info_target.vmt") = info_elevator_floor : "Elevator floor height target." [	// Outputs output OnReachedFloor(void) : "Fired when an elevator reaches this floor." ]

@PointClass base(Targetname) = info_director [	// Inputs input PanicEvent(void) : "Fired when a major event happens that the director should know about." input PanicEventControlled(integer) : "Like Panic Event, but allows for control some controll of intensity. Stadard values are 1 for earlier maps, 2 for later maps" input ForceSurvivorPositions(void) : "Make each survivor stand at an info_survivor_position." input ReleaseSurvivorPositions(void) : "Allow survivors to move freely again." input FireConceptToAny(string) : "Fire a speech concept to any survivor that is capable of speaking it." input StartIntro(void) : "Fire when the intro starts." input FinishIntro(void) : "Fire when the intro ends." input EnableTankFrustration(void) : "Can be used to enable the tank frustration meter." input DisableTankFrustration(void) : "Can be used to disable the tank frustration meter." // Outputs output OnGameplayStart(void) : "Fired when a map loads, all players join and gameplay begins." output OnPanicEventFinished(void) : "Fired when a panic event is finished." ]

@PointClass base(Targetname) = info_game_event_proxy [	event_name(string) : "Name of the event to generate" range(float) : "Range" : "50" : "How near the player must be to determine visibility. THIS IS IN FEET"

spawnflags(flags) = [		1: "Fire Automatically When First Seen" : 0 ]

// Inputs input GenerateGameEvent(void) : "Generate my game event. (This entity is sent as the SUBJECT)" ]

@SolidClass base( Targetname, EnableDisable ) = fog_volume : "An entity to control the fog in the map." [	FogName(target_destination) : "Fog Name" : : "The name of the fog entity associated with this volume." PostProcessName(target_destination) : "Postprocess Name" : : "The name of the postprocess entity associated with this volume." ColorCorrectionName(target_destination) : "ColorCorrection Name" : : "The name of the color_correction entity associated with this volume." ]

@FilterClass base(BaseFilter) iconsprite("editor/filter_team.vmt") = filter_activator_team : "A filter that filters by the team of the activator." [	filterteam(choices) : "Filter Team Number" : 2 : "The team number to filter by. If the filter mode is Allow, only entities whose "+ "team number matches the given team will pass the filter. If the filter mode is Disallow, "+ "all entities EXCEPT those whose team number matches the given team will pass the filter." =	[		2 : "Survivor" 3 : "Infected" ] ]

@FilterClass base(BaseFilter) iconsprite("editor/filter_team.vmt") = filter_activator_infected_class : "A filter that filters by the activator's infected class." [	filterinfectedclass(choices) : "Filter Infected Class" : 2 : "The infected class to filter by. If the filter mode is Allow, only entities whose "+ "class matches the given team will pass the filter. If the filter mode is Disallow, "+ "all entities EXCEPT those whose class matches the given team will pass the filter." =	[		1 : "Smoker" 2 : "Boomer" 3 : "Hunter" 5 : "Tank" ] ]

@PointClass base(prop_dynamic_base,EnableDisable) studioprop("models/w_models/weapons/w_minigun.mdl") = prop_minigun : "A mounted gun players can +USE" [	model(studio) : "World model" : "models/w_models/weapons/w_minigun.mdl" MaxYaw(float) : "Max yaw" : "90" : "Max yaw the gun can be turned." MaxPitch(float) : "Max pitch" : "60" : "Max pitch the gun can be depressed." MinPitch(float) : "Min pitch" : "-30" : "Min pitch the gun can be raised."

// Outputs output OnFireStart(void) : "Fired when the minigun has spun up and is starting firing." output OnFireStop(void) : "Fired when the minigun has stopped firing." ]

@PointClass base(prop_dynamic_base,EnableDisable) studioprop("models/w_models/weapons/50cal.mdl") = prop_mounted_machine_gun: "50 caliber mounted gun (+USE)" [	model(studio) : "World model" : "models/w_models/weapons/50cal.mdl" MaxYaw(float) : "Max yaw" : "90" : "Max yaw the gun can be turned." MaxPitch(float) : "Max pitch" : "60" : "Max pitch the gun can be depressed." MinPitch(float) : "Min pitch" : "-30" : "Min pitch the gun can be raised."

// Outputs output OnFireStart(void) : "Fired when the machine gun has starting firing." output OnFireStop(void) : "Fired when the machine gun has stopped firing." ]

@PointClass base(prop_dynamic_base,EnableDisable) studioprop = prop_health_cabinet : "Health Cabinet" [	model(studio) : "World model" : "models/props_interiors/medicalcabinet02.mdl" HealthCount(integer) : "Number of pain pills" : 1 : "Number of pain pills/first aid kits inside (1-4)" ]

@PointClass base(Targetname, Angles, Parentname) color(255 100 100) studio("models/survivors/survivor_biker.mdl") = info_survivor_position : "A point where survivors are placed when escaping the finale" [	Order(integer) : "Order" : 1 : "Index of spot based on order people got on board. (1-4)" SurvivorName(string) : "Survivor Name" : "" : "Force this survivor to use this position (Zoey, Louis, etc.)"

// Inputs input SetViewControl(string) : "If a survivor is assigned to this position, set his view to a point_viewcontrol" ]

@PointClass base(Targetname, PlayerClass, Angles) studio("models/survivors/survivor_biker.mdl") = info_survivor_rescue : "Survivor rescue point" [	rescueEyePos(vecline) : "Eye position of survivors waiting for rescue" model(studio) : "World model" : "models/editor/playerstart.mdl" ]

@PointClass base(Targetname, Angles, EnableDisable) studioprop = trigger_finale : "Finale Trigger" [	model(studio) : "World model" : "models/props_misc/german_radio.mdl"

disableshadows(choices) : "Disable Shadows" : 0 : "Used to disable dynamic shadows on this entity." =	[		0 : "No" 1 : "Yes" ]

FirstUseDelay(float) : "First Use Delay" : "0" : "For two-part finale starts, delays this many seconds before allowing another +use." UseDelay(float) : "Use Delay" : "0" : "Starts the finale this many seconds after a +use."

input FinaleEscapeFinished(void) : "Give the survivors a victory." input FinaleEscapeForceSurvivorPositions(void) : "Make the survivors stand still on the escape vehicle." input FinaleEscapeVehicleReadyForSurvivors(void) : "Make survivors say something about how the vehicle has stopped now." input ForceFinaleStart(void) : "Start the finale now." input EnableEscapeSequence(void) : "Allow the escape sequence to happen at the proper phase of the finale." input DisableEscapeSequence(void) : "Block the escape sequence from happening (until re-enabled). Infected will still spawn."

output FinaleEscapeStarted(void) : "Fired when the survivors should start their escape." output FinaleWon(void) : "Fired when the survivors win the finale." output FinaleLost(void) : "Fired when the survivors lose the finale." output FirstUseStart(void) : "Fired when a player uses the trigger the first time." output UseStart(void) : "Fired when a player uses the trigger to start the finale." output FinaleStart(void) : "Fired when the finale starts." output FinalePause(void) : "Fired during the pause between each finale wave." output EscapeVehicleLeaving(void) : "Fired when the escape vehicle starts to leave." ]

@PointClass base(Targetname, Angles, EnableDisable) studioprop = trigger_finale_dlc3 : "Controller for special DLC3 Finale" [	model(studio) : "World model" : "models/props_vehicles/floodlight_generator_switch01.mdl"

disableshadows(choices) : "Disable Shadows" : 0 : "Used to disable dynamic shadows on this entity." =	[		0 : "No" 1 : "Yes" ]

//	FirstUseDelay(float) : "First Use Delay" : "0" : "For two-part finale starts, delays this many seconds before allowing another +use." //	UseDelay(float) : "Use Delay" : "0" : "Starts the finale this many seconds after a +use."

input FinaleEscapeFinished(void) : "Give the survivors a victory." input FinaleEscapeForceSurvivorPositions(void) : "Make the survivors stand still on the escape vehicle." input FinaleEscapeVehicleReadyForSurvivors(void) : "Make survivors say something about how the vehicle has stopped now." input ForceFinaleStart(void) : "Start the finale now." input EnableEscapeSequence(void) : "Allow the escape sequence to happen at the proper phase of the finale." input DisableEscapeSequence(void) : "Block the escape sequence from happening (until re-enabled). Infected will still spawn." input AdvanceFinaleState(void) : "Advances through the DLC3 Finale states" input DLC3FinaleWon(void) : "Indicates the survivors have met the specific win conditions for the DLC3 finale. " input DLC3FinaleLost(void) : "Indicates the survivors have failed the specific conditions for the DLC3 finale. " input DLC3FinaleEnableChaseTanks(void) : "Turns on the chase tanks for the escape sequence" input DLC3SacrificePlayerBeginsRun(void) : "A player ( !Activator ) has committed to the sacrifice run"

output FinaleEscapeStarted(void) : "Fired when the survivors should start their escape." //	output FinaleWon(void) : "Fired when the survivors win the finale." //	output FinaleLost(void) : "Fired when the survivors lose the finale." //	output FirstUseStart(void) : "Fired when a player uses the trigger the first time." //	output UseStart(void) : "Fired when a player uses the trigger to start the finale." output FinaleStart(void) : "Fired when the finale starts." output FinalePause(void) : "Fired during the pause between each finale wave." output EscapeVehicleLeaving(void) : "Fired when the escape vehicle starts to leave." output OnDLC3FinaleLull(void): "Fired when there is a break while waiting for the next generator to be started" ]

@SolidClass base(Trigger) = trigger_escape : "Indicates if there are Survivors in the volume who can escape the finale" [	output OnEscapePossible(void) : "Fired if there is at least 1 survivor standing in the trigger" output OnEscapeImpossible(void) : "Fired if there are no survivors standing in the trigger" ]

@PointClass base(Targetname, Angles) studioprop = trigger_standoff : "Standoff Trigger" [	model(studio) : "World model" : "models/props_misc/german_radio.mdl" spawnflags(flags) = [		512: "Diable +use" : 0 ]

disableshadows(choices) : "Disable Shadows" : 0 : "Used to disable dynamic shadows on this entity." =	[		0 : "No" 1 : "Yes" ]

UseDuration(float) : "Use Duration" : "0" : "Seconds a survivor must +use the trigger to start the finale (0 is instantaneous)." UseDelay(float) : "Use Delay" : "0" : "Starts the finale this many seconds after a +use."

input FinaleEscapeFinished(void) : "Give the survivors a victory." input FinaleEscapeForceSurvivorPositions(void) : "Make the survivors stand still on the escape vehicle." input FinaleEscapeVehicleReadyForSurvivors(void) : "Make survivors say something about how the vehicle has stopped now." input ForceFinaleStart(void) : "Start the finale now." output FinaleEscapeStarted(void) : "Fired when the survivors should start their escape." output FinaleWon(void) : "Fired when the survivors win the finale." output FinaleLost(void) : "Fired when the survivors lose the finale." output UseStart(void) : "Fired when a duration-based +use starts." output UseCancel(void) : "Fired when a duration-based +use is stopped early." output FinaleStart(void) : "Fired when the finale starts." output FinalePause(void) : "Fired during the pause between each finale wave." output EscapeVehicleLeaving(void) : "Fired when the escape vehicle starts to leave." ]

@SolidClass = info_changelevel : "An entity that marks a level change.\n" + "Place an info_landmark in both maps that marks the 'same' location in each map.\n"+ "TIPS & TRICKS: To fire events in the next level, use the OnLevelChange output to turn on "+ "an env_global in the current level. Create an logic_auto in the next level that checks "+ "for the state set by the env_global.\n\n"+ "To control which entities go through the level transition, create one or more info_transitions and "+ "give them the same name as the landmark. Any entities within the info_transition(s) will go to the next map." [	targetname(target_source) : "Name" map(string) : "New Map Name" landmark(target_destination) : "Landmark Name" spawnflags(flags) = [		2: "Disable Touch" : 0 4: "To Previous Chapter" : 0 ]	// Outputs output OnChangeLevel(void) : "Fired when the level changes." ]

@PointClass base(prop_door_rotating) studioprop = prop_door_rotating_checkpoint : "An entity used to place a special checkpoint door in the world." [ ]

@PointClass base(Targetname, Angles, Parentname, Angles) studio("models/infected/common_male01.mdl") = info_zombie_spawn : "An entity used to spawn a zombie" [	population(string) : "Population" : "default" : "Zombie population to choose among." input SpawnZombie(void) : "Spawn a zombie now." AttackOnSpawn(choices) : "Attack On Spawn" : 0 : "Whether this zombie should always attack on spawn. Note that this only affects tanks and witches at this time, all others always attack on spawn." =	[		0: "No" 1: "Yes" ]	// Outputs output OnSpawnNormal(void) : "Fired when the spawner creates a normal infected." output OnSpawnSmoker(void) : "Fired when the spawner creates a Smoker." output OnSpawnBoomer(void) : "Fired when the spawner creates a Boomer." output OnSpawnHunter(void) : "Fired when the spawner creates a Hunter." output OnSpawnWitch(void) : "Fired when the spawner creates a Witch." output OnSpawnTank(void) : "Fired when the spawner creates a Tank." ]

@PointClass base(Origin,Targetname) = info_remarkable : "An object in the world such that characters seeing it will speak a TLK_REMARK concept" [	contextsubject(string) : "Subject context" : "" : "Text to put in the SUBJECT context of the TLK_REMARK fired upon sighting this object." ]

@PointClass base(Targetname, Parentname, Angles, EnableDisable) studio("models/editor/cone_helper.mdl") = env_weaponfire : "Weapon fire" [	TargetArc(float) : "Target Arc" : "40" : "The arc that the entity will seach for targets (in degrees)" TargetRange(float) : "Target Range" : "3600" : "The distance that the endity will search for targets (in inches)" filtername(filterclass) : "Target Filter" : : "Filter to use to determine if an entity is a valid target" DamageMod(float) : "Damage Modifier" : "1.0" : "Used to increase or decrease the amount of damage per shot" WeaponType(choices) : "Weapon Type" : 1 = [		1: "Assault Rifle" 2: "Hunting Rifle" 3: "Auto Shotgun" ]

TargetTeam(choices) : "Target Team" : 3 = [		3: "Zombies" 2: "Survivors" -1: "Either" ]	IgnorePlayers(choices) : "Ignore Players" : 0 = [		0: "No" 1: "Yes" ]

]

@PointClass base(Targetname, Angles) studio("models/editor/cone_helper.mdl") = env_rock_launcher : "Rock launcher" [	RockTargetName(target_destination) : "Target Name" : : "The name of the entity to throw the rock at." RockDamageOverride(integer) : "Rock Damage Override" : 0 : "damage to be used instead of the the default rock damage. " input LaunchRock(void) : "Launch a rock" input SetTarget(string) : "Target a new entity (by name)" ]

// // Weapons

@BaseClass color(0 0 200) base(Targetname, Angles) = Weapon [	output OnPlayerPickup(void) : "Fires when the player picks up this weapon" ]

@BaseClass color(0 0 200) base(Parentname, Global, Targetname, Angles, Studiomodel) = WeaponSpawnSingle [	solid(choices) : "Collisions" : 6 = [		0: "Not Solid" 2: "Use Bounding Box" 6: "Use VPhysics" ]

spawnflags(Flags) = [		1 : "Enable Physics" : 0 2 : "Must Exist" : 0 ]	// Outputs output OnItemSpawn(void) : "Fired if this object is spawned on the map. If the weapon is removed during the weapon spawn pass, this will not fire." ]

@BaseClass color(0 0 200) base(WeaponSpawnSingle) = WeaponSpawn [	count(integer) : "Count" : 4 : "Max number of weapons given before disappearing." spawnflags(Flags) = [		131072 : "Don't Cluster With Similar Items" : 0 ]	]

@BaseClass color(0 0 200) base(WeaponSpawn) = WeaponSpawnOptionalScavenge [	spawnflags(Flags) = [		65536 : "Add To Director Scavenge List" : 0 ] ]

// Left4Dead Guns --- @PointClass base(WeaponSpawn) studioprop("models/w_models/Weapons/w_pistol_1911.mdl") = weapon_pistol_spawn : "Pistols" [] @PointClass base(WeaponSpawn) studioprop("models/w_models/Weapons/w_smg_uzi.mdl") = weapon_smg_spawn : "Submachinegun" [] @PointClass base(WeaponSpawn) studioprop("models/w_models/Weapons/w_shotgun.mdl") = weapon_pumpshotgun_spawn : "Pump Shotgun" [] @PointClass base(WeaponSpawnOptionalScavenge) studioprop("models/w_models/Weapons/w_autoshot_m4super.mdl") = weapon_autoshotgun_spawn : "Auto Shotgun" [] @PointClass base(WeaponSpawnOptionalScavenge) studioprop("models/w_models/Weapons/w_rifle_m16a2.mdl") = weapon_rifle_spawn : "Assault Rifle" [] @PointClass base(WeaponSpawnOptionalScavenge) studioprop("models/w_models/Weapons/w_sniper_mini14.mdl") = weapon_hunting_rifle_spawn : "Hunting Rifle" []

// Grenades - @PointClass base(WeaponSpawn) studioprop("models/w_models/weapons/w_eq_pipebomb.mdl") = weapon_pipe_bomb_spawn : "Pipe Bomb" [] @PointClass base(WeaponSpawn) studioprop("models/w_models/weapons/w_eq_molotov.mdl") = weapon_molotov_spawn : "Molotov" []

// Special -- @PointClass base(WeaponSpawnSingle) studioprop("models/w_models/weapons/w_eq_Medkit.mdl") = weapon_first_aid_kit_spawn : "First Aid Kit" [] @PointClass base(WeaponSpawnSingle) studioprop("models/w_models/weapons/w_eq_painpills.mdl") = weapon_pain_pills_spawn : "Painkillers" []

// Ammo - @PointClass base(WeaponSpawn) studioprop = weapon_ammo_spawn : "Ammo" []

// Weapon Population @PointClass base(Targetname,Angles) = info_map_parameters : "L4D-specific map parameters." [	PainPillDensity(float) : "Pain Pill density" : "6.48" : "Pain Pill density per sq 100 yards" MolotovDensity(float) : "Molotov density" : "6.48" : "Molotov density per sq 100 yards" PipeBombDensity(float) : "Pipe Bomb density" : "6.48" : "Pipe Bomb density per sq 100 yards" PistolDensity(float) : "Pistol density" : "6.48" : "Pistol density per sq 100 yards" WeaponDensity(float) : "Weapon density" : "6.48" : "Weapon (non-pistol) density per sq 100 yards" GasCanDensity(float) : "Gas Can density" : "6.48" : "Gas Can density per sq 100 yards" OxygenTankDensity(float) : "Oxygen Tank density" : "6.48" : "Oxygen Tank density per sq 100 yards" PropaneTankDensity(float) : "Propane Tank density" : "6.48" : "Propane Tank density per sq 100 yards"

ItemClusterRange(float) : "Item Cluster Range" : 50 : "Scavenge items of the same kind that are this close to each other are considered a single 'cluster' for population purposes" FinaleItemClusterCount(integer) : "Finale Item Cluster Count" : 3 : "How many clusters of items will be populated in the finale" input UpdateCvars(void) : "Stuff values from this entity into cvars for tweaking" ]

@PointClass base(Targetname,Angles) = info_map_parameters_versus : "L4D-specific map parameters for versus games." [	PainPillDensity(float) : "Pain Pill density" : "6.48" : "Pain Pill density per sq 100 yards" MolotovDensity(float) : "Molotov density" : "6.48" : "Molotov density per sq 100 yards" PipeBombDensity(float) : "Pipe Bomb density" : "6.48" : "Pipe Bomb density per sq 100 yards" PistolDensity(float) : "Pistol density" : "6.48" : "Pistol density per sq 100 yards" WeaponDensity(float) : "Weapon density" : "6.48" : "Weapon (non-pistol) density per sq 100 yards" GasCanDensity(float) : "Gas Can density" : "6.48" : "Gas Can density per sq 100 yards" OxygenTankDensity(float) : "Oxygen Tank density" : "6.48" : "Oxygen Tank density per sq 100 yards" PropaneTankDensity(float) : "Propane Tank density" : "6.48" : "Propane Tank density per sq 100 yards"

ItemClusterRange(float) : "Item Cluster Range" : 50 : "Scavenge items of the same kind that are this close to each other are considered a single 'cluster' for population purposes" FinaleItemClusterCount(integer) : "Finale Item Cluster Count" : 3 : "How many clusters of items will be populated in the finale" input UpdateCvars(void) : "Stuff values from this entity into cvars for tweaking" ]

@PointClass base(Targetname,Angles) = info_gamemode : "Game mode trigger." [	output OnCoop(void) : "Fired when the map spawns in coop games." output OnVersus(void) : "Fired when the map spawns in versus games." output OnSurvival(void) : "Fired when the map spawns in survival games." ]

// Beam spotlight - @PointClass base(Targetname, Parentname, RenderFields, Angles) studio("models/editor/cone_helper.mdl") = beam_spotlight : "An entity to draw a spotlight. Will draw a beam when the player views it side on, and a halo when it's facing towards the player. "+ "Unless the 'No Dynamic Light' spawnflag is checked, it will also create a dynamic light wherever the end of the spotlight rests." +	"This spotlight is entirely client side, it is not sync'd across clients." [	spawnflags(Flags) = [		1 : "Start On" : 1 2 : "No Dynamic Light" : 0 4 : "Start rotation on" : 0 8 : "Reverse Direction" : 0 16 : "X Axis" : 0 32 : "Y Axis" : 0 ]

HaloSprite(sprite) : "Halo Sprite" : "sprites/light_glow03.vmt" : "The material that should be used for the halo" BeamSprite(sprite) : "Beam Sprite" : "sprites/glow_test02.vmt" : "The material that should be used for the beam" maxspeed(integer) : "Max Rotation Speed" : 100 : "The maximum rotation speed of the spotlight, in degrees per second."

spotlightlength(integer) : "Spotlight Length" : 500 : "Length of the spotlight beam." spotlightwidth(integer) : "Spotlight Width" : 50 : "Width of the spotlight beam." rendercolor(color255) : "Color (R G B)" : "255 255 255" HDRColorScale(float) : "HDR color scale." : "0.7" : "float value to multiply sprite color by when running in HDR mode." // Inputs input LightOn(void) : "Turn the spotlight on." input LightOff(void) : "Turn the spotlight off" input Start(void) : "Start the rotator rotating." input Stop(void) : "Stop the rotator from rotating." input Reverse(void) : "Reverse the direction of rotation of the rotator." // outputs output OnLightOn(void) : "Fires when light turns on." output OnLightOff(void) : "Fires when light turns off." ]

@PointClass base(Angles) iconsprite("editor/env_particles.vmt") = env_detail_controller : "Overrides the min and max fade distances for details sprites in the map." [	fademindist(integer) : "Start Fade Dist/Pixels" : 512 : "The distance at which the detail props will start fading away." fademaxdist(integer) : "End Fade Dist/Pixels" : 1024 : "The distance at which the detail props will stop fading and stop drawing entirely." ]

@PointClass base(Targetname, Parentname) iconsprite("editor/info_target.vmt") = info_goal_infected_chase : "An entity that attracts infected like the pipe bomb to give them something "+ "to do during outros. Put this in hierarchy with the escape vehicle or with "+ "a func_tracktrain to make all the infected in the map chase it!" [	input Enable(void) : "Start attracting all infected in the map." input Disable(void) : "Stop attracting infected." ]

@SolidClass base(Targetname, Parentname, RenderFields, Global, Inputfilter, EnableDisable, Shadow) = func_playerinfected_clip : "Simple Clip brush that blocks player infected movement." [	spawnflags(flags) = [		2: "Ignore player +USE" : 1 ]

Solidity(choices) : "Solidity" : 2 : "Used to control the solidity/collision of these brushes." =	[		0 : "Toggle" 1 : "Never Solid" 2 : "Always Solid" ]

vrad_brush_cast_shadows(choices) : "Shadows" : 0 : "Set this if this brush casts lightmap shadows." =	[		0 : "No" 1 : "Yes" ]	]

@PointClass wirebox(mins, maxs) base(Targetname) = env_player_blocker : "An entity which blocks any PC/NPC from entering of the specified type." [	mins(vector) : "Mins" : "-4 -128 -80" maxs(vector) : "Maxs" : "4 128 80"

initialstate(choices) : "Initial State" : 1 = [		0 : "Disabled" 1 : "Enabled" ]	BlockType(choices) : "Blocks" : 0 = [		0: "Everyone" 1: "Survivors" 2: "Player Infected" 3: "All Special Infected (Player and AI)" ]

// Inputs input Enable(void) : "Enables the Blocker" input Disable(void) : "Disables the Blocker" ]

@NPCClass base(Angles, Targetname) studio = commentary_dummy : "Commentary Dummy" [	model(studio) : "Dummy Model" : "models/survivors/survivor_biker.mdl" EyeHeight(integer) : "Eye Height" : 64 : "Eye height relative to origin. Only necessary when staring at players" StartingAnim(string) : "Starting Animation" : "Idle_Calm_Pistol" : "The name of the starting animation that this dummy will play when it spawns." StartingWeapons(string) : "Starting Weapons" : "weapon_pistol" : "The names of any weapons the dummy should have when it spawns. Separated by spaces, commas, or semicolons. Last specified weapon will be equipped" LookAtPlayers(choices) : "Stare at players" : 0 : "Set to true if you want the dummy to attempt to stare at players all the time." =	[		0 : "No" 1 : "Yes" ]	HeadYawPoseParam(string) : "Head Yaw Pose Parameter" : "Head_Yaw" : "The name of the head yaw pose parameter. Only necessary when staring at players" HeadPitchPoseParam(string) : "Head Pitch Pose Parameter" : "Head_Pitch" : "The name of the head yaw pose parameter. Only necessary when staring at players" input SetAnimation(string) : "Force the dummy to play an animation. The parameter should be the name of the animation." ]

@PointClass base(Targetname, Angles, Parentname, Angles) studio("models/infected/smoker.mdl") = commentary_zombie_spawner : "Zombie Manual Spawning Point" [	input SpawnZombie(string) : "Spawn a specific zombie now. String format is zombie type followed by an optional target name (e.g. 'smoker,BostonJoe' or 'common_male_suit'). Zombie types: boomer, common_*, hunter, smoker, tank, witch" output OnSpawnedZombieDeath(void) : "One of the zombies spawned by this entity has died" ]

@PointClass base(Targetname) size(-8 -8 -8, 8 8 8) = env_outtro_stats : "An entity to control the outtro stats at the end of a campaign." [	// Inputs input RollStatsCrawl(void) : "Start the outro stats rolling." input RollCredits(void) : "Start the outro credits rolling." // Outputs output OnOuttroStatsDone(void) : "Fired when the stats having finished rolling or the user cancels out." ]

@SolidClass base(Trigger, Targetname) = trigger_hurt_ghost : "A trigger volume that damages entities (and ghosts) that touch it." [	master(string) : "Master (Obsolete)" : : "Legacy support: The name of a master entity. If the master hasn't been activated, this entity will not activate." damage(integer) : "Damage" : 10 : "The amount of damage done to entities that touch this trigger. The damage is done every half-second. See also 'Damage Model' for extra details on how damage can be dealt." damagecap(integer) : "Damage Cap" : 20 : "Maximum damage dealt per second. This field is only used if you select the Doubling w/Forgiveness damage model, via the spawnflag." damagetype(choices) : "Damage Type" : 0 = [		0 : "GENERIC" 1 : "CRUSH" 2 : "BULLET" 4 : "SLASH" 8 : "BURN" 16 : "FREEZE" 32 : "FALL" 64 : "BLAST" 128 : "CLUB" 256 : "SHOCK" 512 : "SONIC" 1024 : "ENERGYBEAM" 16384: "DROWN" 32768 : "PARALYSE" 65536 : "NERVEGAS" 131072 : "POISON" 262144 : "RADIATION" 524288 : "DROWNRECOVER" 1048576 : "CHEMICAL" 2097152 : "SLOWBURN" 4194304 : "SLOWFREEZE" ]

damagemodel(choices) : "Damage Model" : 0 : "How damage is dealt. Normal always does the specified amount of damage each half second. Doubling starts with the specified amount and doubles it each time it hurts the toucher. Forgiveness means that if the toucher gets out of the trigger the damage will reset to the specified value. Good for making triggers that are deadly over time without having to cause massive damage on each touch." =	[		0 : "Normal" 1 : "Doubling w/forgiveness" ]	nodmgforce(choices) : "Zero Damage Force" : 0 : "Should the damaged entity receive no physics force from this trigger." =	[		0 : "No" 1 : "Yes" ]	// Inputs input SetDamage(float) : "Set a new amount of damage for this trigger." // Outputs output OnHurt(void) : "Fired whenever this trigger hurts something other than a player." output OnHurtPlayer(void) : "Fired whenever this trigger hurts a player." ]

@SolidClass base(Targetname, Parentname, Origin, RenderFields,DamageFilter) = func_button_timed: "An entity that takes time to use." [	use_time(integer) : "Use Time" : 5 : "" use_string(string) : "Use String" : "Using...." : ""	glow(target_destination) : "Glow Entity" : : "The name of an entity that will get the +use glow for this button." auto_disable(choices) : "Auto-Disable On Time Up" : 1 : "When the use timer is up, disable the button. (Can be enabled with an input)" = [		0 : "No" 1 : "Yes" ]	spawnflags(flags) = [		2048: "Starts locked" : 0 ]	locked_sound(choices) : "Locked Sound" : 0 : "Sound played when the player tries to use the button, and fails because it's locked." = 	[		0: "None" 2: "Access Denied" 8: "Small zap" 10: "Buzz" 11: "Buzz Off" 12: "Latch Locked" ]

// Inputs input Lock(void) : "Lock the button, preventing it from functioning and playing a locked sound." input Unlock(void) : "Unlock the button, allowing it to function." input Enable(void) : "Enable the button, so it glows and can be used." input Disable(void) : "Disable the button, so it can't be used and doesn't glow."

// Outputs output OnPressed(void) : "Fired when the button is pressed." output OnUnPressed(void) : "Fired when the button is unpressed." output OnTimeUp(void) : "Fired when the button has been held more than the required amount of time." output OnUseLocked(void) : "Fired when the button is used while locked." ]

@PointClass base(Targetname) = logic_game_event : "Allows firing game events. no params for now." [	eventName(string) : "Game Event Name" : "" : "event name ( from ModEvents.res ) to fire. no params for now" spawnflags(flags) = [		1: "userid field with activator" : 0 ]	// Inputs input FireEvent(void) : "Fire the event" ]