// Synergy Mod - www.synergymod.com // Game Data File // ------------------------- // All include files have been merged into one // so we can modify values if need be // // SYNERGY TODO: // - // - // - // ========================================================================================== // ========================================================================================== // SHARED DATA // ========================================================================================== // ========================================================================================== @mapsize(-16384, 16384) //------------------------------------------------------------------------- // // Base Classes // //------------------------------------------------------------------------- @BaseClass = Angles [ angles(angle) : "Pitch Yaw Roll (Y Z X)" : "0 0 0" : "This entity's orientation in the world. Pitch is rotation around the Y axis, " + "yaw is the rotation around the Z axis, roll is the rotation around the X axis." ] @BaseClass = Origin [ origin(origin) : "Origin (X Y Z)" : : "The position of this entity's center in the world. Rotating entities typically rotate around their origin." ] @BaseClass = Studiomodel [ model(studio) : "World Model" skin(integer) : "Skin" : 0 : "Some models have multiple versions of their textures, called skins. Set this to a number other than 0 to use that skin instead of the default." disableshadows(choices) : "Disable Shadows" : 0 : "Used to disable dynamic shadows on this entity." = [ 0 : "No" 1 : "Yes" ] // Inputs input Skin(integer) : "Changes the model skin to the specified number." input DisableShadow(void) : "Turn shadow off." input EnableShadow(void) : "Turn shadow on." input AlternativeSorting(bool) : "Used to attempt to fix sorting problems when rendering. True activates, false deactivates" // Outputs output OnIgnite(void) : "Fired when this object catches fire." ] @BaseClass = BasePlat [ input Toggle(void) : "Toggles the platform's state." input GoUp(void) : "Tells the platform to go up." input GoDown(void) : "Tells the platform to go down." ] @BaseClass = Targetname [ targetname(target_source) : "Name" : : "The name that other entities refer to this entity by." // Inputs input Kill(void) : "Removes this entity from the world." input KillHierarchy(void) : "Removes this entity and all its children from the world." input AddOutput(string) : "Adds an entity I/O connection to this entity. Format: ::::. Very dangerous, use with care." input FireUser1(void) : "Causes this entity's OnUser1 output to be fired." input FireUser2(void) : "Causes this entity's OnUser2 output to be fired." input FireUser3(void) : "Causes this entity's OnUser3 output to be fired." input FireUser4(void) : "Causes this entity's OnUser4 output to be fired." // Outputs output OnUser1(void) : "Fired in response to FireUser1 input." output OnUser2(void) : "Fired in response to FireUser2 input." output OnUser3(void) : "Fired in response to FireUser3 input." output OnUser4(void) : "Fired in response to FireUser4 input." ] @BaseClass = Parentname [ parentname(target_destination) : "Parent" : : "The name of this entity's parent in the movement hierarchy. Entities with parents move with their parent." // Inputs input SetParent(string) : "Changes the entity's parent in the movement hierarchy." input SetParentAttachment(string) : "Change this entity to attach to a specific attachment point on its parent. Entities must be parented before being sent this input. The parameter passed in should be the name of the attachment." input SetParentAttachmentMaintainOffset(string) : "Change this entity to attach to a specific attachment point on it's parent. Entities must be parented before being sent this input. The parameter passed in should be the name of the attachment. The entity will maintain it's position relative to the parent at the time it is attached." input ClearParent(void) : "Removes this entity from the the movement hierarchy, leaving it free to move independently." ] @BaseClass = BaseBrush [ // Inputs input SetTextureIndex(integer) : "Used by HL1Port. Sets the brush texture index. Use a material_modify_control entity instead." input IncrementTextureIndex(void) : "Used by HL1Port. Increments the brush texture index. Use a material_modify_control entity instead." ] @BaseClass = EnableDisable [ StartDisabled(choices) : "Start Disabled" : 0 = [ 0 : "No" 1 : "Yes" ] // Inputs input Enable(void) : "Enable this entity." input Disable(void) : "Disable this entity." ] @BaseClass = RenderFxChoices [ renderfx(choices) :"Render FX" : 0 = [ 0: "Normal" 1: "Slow Pulse" 2: "Fast Pulse" 3: "Slow Wide Pulse" 4: "Fast Wide Pulse" 9: "Slow Strobe" 10: "Fast Strobe" 11: "Faster Strobe" 12: "Slow Flicker" 13: "Fast Flicker" 5: "Slow Fade Away" 6: "Fast Fade Away" 7: "Slow Become Solid" 8: "Fast Become Solid" 14: "Constant Glow" 15: "Distort" 16: "Hologram (Distort + fade)" 23: "Cull By Distance (TEST)" 24: "Spotlight FX" 26: "Fade Near" ] ] @BaseClass = Shadow [ disableshadows(choices) : "Disable shadows" : 0 = [ 0 : "No" 1 : "Yes" ] input DisableShadow(void) : "Turn shadow off." input EnableShadow(void) : "Turn shadow on." ] @BaseClass base(RenderFxChoices) = RenderFields [ rendermode(choices) : "Render Mode" : 0 : "Used to set a non-standard rendering mode on this entity. See also 'FX Amount' and 'FX Color'." = [ 0: "Normal" 1: "Color" 2: "Texture" 3: "Glow" 4: "Solid" 5: "Additive" 7: "Additive Fractional Frame" 9: "World Space Glow" 10: "Dont Render" ] renderamt(integer) : "FX Amount (0 - 255)" : 255 : "The FX amount is used by the selected Render Mode." rendercolor(color255) : "FX Color (R G B)" : "255 255 255" : "The FX color is used by the selected Render Mode." disablereceiveshadows(choices) : "Disable Receiving Shadows" : 0 = [ 0 : "No" 1 : "Yes" ] input Alpha(integer) : "Set the sprite's alpha (0 - 255)." input Color(color255) : "Set the sprite's color (R G B)." ] // Inherit from this to get the ability to only include an object in a range of dx levels. // NOTE!!: MAKE SURE THAT YOU DON'T USE THIS WITH ANYTHING THAT WILL BREAK SAVE-GAMES SWITCHING // BETWEEN DXLEVELS!!!! @BaseClass = DXLevelChoice [ mindxlevel(choices) : "Minimum DX Level" : 0 = [ 0 : "default (lowest)" 70 : "dx7" ] maxdxlevel(choices) : "Maximum DX Level" : 0 = [ 0 : "default (highest)" 60 : "dx6" ] ] @BaseClass = Inputfilter [ InputFilter(choices) : "Input Filter" : 0 : "Used to specify which inputs this entity will accept." = [ 0 : "Allow all inputs" 8 : "Ignore Touch/Untouch" 16 : "Ignore Use" 32 : "Ignore All" ] ] @BaseClass = Global [ globalname(string) : "Global Entity Name" : "" : "Name by which this entity is linked to another entity in a different map. When the player transitions to a new map, entities in the new map with globalnames matching entities in the previous map will have the previous map's state copied over their state." ] @BaseClass base(Targetname) = EnvGlobal : "An entity to control a global game state." [ initialstate(choices) : "Initial State" : 0 = [ 0 : "Off" 1 : "On" 2 : "Dead" ] spawnflags(flags) = [ 1 : "Set Initial State" : 0 ] // Inputs input TurnOn(void) : "Set state of global to ON." input TurnOff(void) : "Set state of global to OFF." input Toggle(void) : "Toggles state of global between ON and OFF." input Remove(void) : "Set state of global to DEAD." ] @BaseClass = DamageFilter [ damagefilter(target_destination) : "Damage Filter" : "" : "Name of the filter entity that controls which entities can damage us." input SetDamageFilter(string) : "Sets the entity to use as damage filter. Pass in an empty string to clear the damage filter." ] @BaseClass = ResponseContext [ // Inputs input AddContext(string) : "Adds a context to this entity's list of response contexts. The format should be 'key:value'." input RemoveContext(string) : "Remove a context from this entity's list of response contexts. The name should match the 'key' of a previously added context." input ClearContext(void) : "Removes all contexts in this entity's list of response contexts." // Pre-defined contexts at server startup time (set by mapper) ResponseContext(string) : "Response Contexts" : "" : "Response system context(s) for this entity. Format should be: 'key:value,key2:value2,etc'. When this entity speaks, the list of keys & values will be passed to the response rules system." ] @BaseClass base(Targetname, DamageFilter, Shadow) = Breakable [ ExplodeDamage(float) : "Explosion Damage" : 0 : "If non-zero, when this entity breaks it will create an explosion that causes the specified amount of damage. See also 'Explosion Radius'." ExplodeRadius(float) : "Explosion Radius" : 0 : "If non-zero, when this entity breaks it will create an explosion with a radius of the specified amount. See also 'Explosion Damage'." PerformanceMode(choices) : "Performance Mode" : 0 : "Used to limit the amount of gibs produced when this entity breaks, for performance reasons." = [ 0 : "Normal" 1 : "No Gibs" 2 : "Full Gibs on All Platforms" ] // Inputs input Break(void) : "Breaks the breakable." input SetHealth(integer) : "Sets a new value for the breakable's 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." input EnablePhyscannonPickup(void) : "Makes the breakable able to picked up by the physcannon." input DisablePhyscannonPickup(void) : "Makes the breakable not able to picked up by the physcannon." // Outputs output OnBreak(void) : "Fired when this breakable breaks." output OnHealthChanged(float) : "Fired when the health of this breakable changes, passing the new value of health as a percentage of max health, from [0..1]." output OnPhysCannonDetach(void) : "Fired when the physcannon has ripped this breakable off of the wall. Only fired if ACT_PHYSCANNON_DETACH is defined in the model this breakable is using." output OnPhysCannonAnimatePreStarted(void) : "Fired when this prop starts playing the Pre physcannon-pull activity, caused by the player trying to grab this prop with the physcannon. Only fired if the ACT_PHYSCANNON_ANIMATE_PRE activity is defined in the model this breakable is using." output OnPhysCannonAnimatePullStarted(void) : "Fired when this prop starts playing the physcannon-pull activity, caused by the player trying to grab this prop with the physcannon. Only fired if the ACT_PHYSCANNON_ANIMATE activity is defined in the model this breakable is using. If the prop has Pre pull anim, this will be fired after the Pre anim has finished playing." output OnPhysCannonPullAnimFinished(void) : "Fired when this prop has finished playing the physcannon-pull activity, caused by the player trying to grab this prop with the physcannon. Only fired if the ACT_PHYSCANNON_ANIMATE activity is defined in the model this breakable is using. If the prop has Pre & Post pull anims, this will be fired after the Post anim has finished playing." output OnPhysCannonAnimatePostStarted(void) : "Fired when this prop starts playing the Post physcannon-pull activity. Only fired if the ACT_PHYSCANNON_ANIMATE_POST activity is defined in the model this breakable is using." ] @BaseClass base(Breakable, Parentname, Global) = BreakableBrush [ spawnflags(flags) = [ 1 : "Only Break on Trigger" : 0 2 : "Break on Touch" : 0 4 : "Break on Pressure" : 0 512: "Break immediately on Physics" : 0 1024: "Don't take physics damage" : 0 ] propdata(choices) : "Prop Data" : 0 : "Set to the best approximation of the size and material of this entity's brushes. If set, it will override this entity's health and damage taken from various weapons. See the propdata.txt file in the scripts directory of your MOD to get a detailed list of what each entry specifies." = [ 0 : "None" 1 : "Wooden.Tiny" 2 : "Wooden.Small" 3 : "Wooden.Medium" 4 : "Wooden.Large" 5 : "Wooden.Huge" 6 : "Metal.Small" 7 : "Metal.Medium" 8 : "Metal.Large" 9 : "Cardboard.Small" 10 : "Cardboard.Medium" 11 : "Cardboard.Large" 12 : "Stone.Small" 13 : "Stone.Medium" 14 : "Stone.Large" 15 : "Stone.Huge" 16 : "Glass.Small" 17 : "Plastic.Small" 18 : "Plastic.Medium" 19 : "Plastic.Large" 20 : "Pottery.Small" 21 : "Pottery.Medium" 22 : "Pottery.Large" 23 : "Pottery.Huge" 24 : "Glass.Window" ] health(integer) : "Strength" : 1 : "Number of points of damage to take before breaking. 0 means don't break." material(choices) :"Material Type" : 0 : "Set to the material type of the brush. Used to decide what sounds to make when damaged, and what gibs to produce when broken." = [ 0: "Glass" 1: "Wood" 2: "Metal" 3: "Flesh" 4: "CinderBlock" 5: "Ceiling Tile" 6: "Computer" 7: "Unbreakable Glass" 8: "Rocks" ] explosion(choices) : "Gibs Direction" : 0 : "Used to decide which direction to throw gibs when broken." = [ 0: "Random" 1: "Relative to Attack" 2: "Use Precise Gib Dir" ] gibdir(angle) : "Precise Gib Direction" : "0 0 0" : "Specifies the direction to throw gibs when this breakable breaks. Be sure to select Use Precise Gib Dir in the Gibs Direction field!" nodamageforces(choices) : "Damaging it Doesn't Push It" : 0 : "Used to determine whether or not damage should cause the brush to move." = [ 0: "No" 1: "Yes" ] // Inputs input EnableDamageForces(void) : "Damaging the entity applies physics forces to it." input DisableDamageForces(void) : "Damaging the entity does *not* apply physics forces to it." gibmodel(string) : "Gib Model" : "" : "Used by HL1Port to specify a custom gib model to break into, overriding the 'Material Type'." spawnobject(choices) : "Spawn On Break" : 0 : "When broken, an entity of the selected type will be created." = [ 1: "item_battery" 2: "item_healthkit" 3: "item_ammo_pistol" 4: "item_ammo_pistol_large" 5: "item_ammo_smg1" 6: "item_ammo_smg1_large" 7: "item_ammo_ar2" 8: "item_ammo_ar2_large" 9: "item_box_buckshot" 10: "item_flare_round" 11: "item_box_flare_rounds" 12: "item_ml_grenade" 13: "item_smg1_grenade" 14: "item_box_sniper_rounds" 15: "unused1" 16: "weapon_stunstick" 17: "weapon_ar1" 18: "weapon_ar2" 19: "unused2" 20: "weapon_ml" 21: "weapon_smg1" 22: "weapon_smg2" 23: "weapon_slam" 24: "weapon_shotgun" 25: "weapon_molotov" 26: "item_dynamic_resupply" ] explodemagnitude(integer) : "Explode Magnitude" : 0 : "If non-zero, when this entity breaks it will create an explosion that causes the specified amount of damage." pressuredelay(float) : "Pressure Delay" : 0 : "Delay, in seconds, after 'broken' by pressure before breaking apart (allows for sound to play before breaking apart)." ] @BaseClass base(Breakable) = BreakableProp [ spawnflags(flags) = [ 16 : "Break on Touch" : 0 32 : "Break on Pressure" : 0 ] pressuredelay(float) : "Pressure Delay" : 0 : "Delay, in seconds, after 'broken' by pressure before breaking apart (allows for sound to play before breaking apart)." ] @BaseClass base(Targetname, Angles, RenderFields, DamageFilter, ResponseContext, Shadow) color(0 200 200) = BaseNPC [ target(target_destination) : "Target Path Corner" : : "If set, the name of a path corner entity that this NPC will walk to, after spawning." squadname(String) : "Squad Name" : : "NPCs that are in the same squad (i.e. have matching squad names) will share information about enemies, and will take turns attacking and covering each other." hintgroup(String) : "Hint Group" : "" : "Hint groups are used by NPCs to restrict their hint-node searching to a subset of the map's hint nodes. Only hint nodes with matching hint group names will be considered by this NPC." hintlimiting(choices) : "Hint Limit Nav" : 0 : "Limits NPC to using specified hint group for navigation requests, but does not limit local navigation." = [ 0 : "No" 1 : "Yes" ] spawnflags(Flags) = [ 1 : "Wait Till Seen" : 0 2 : "Gag (No IDLE sounds until angry)" : 0 4 : "Fall to ground (unchecked means *teleport* to ground)" : 1 8 : "Drop Healthkit" : 0 16 : "Efficient - Don't acquire enemies or avoid obstacles" : 0 128: "Wait For Script" : 0 256: "Long Visibility/Shoot" : 0 512: "Fade Corpse" : 0 1024: "Think outside PVS" : 0 2048: "Template NPC (used by npc_maker, will not spawn)" : 0 4096: "Do Alternate collision for this NPC (player avoidance)" : 0 8192: "Don't drop weapons" : 0 16384 : "Ignore player push (dont give way to player)" : 0 ] //initialidle(string) : "Initial Idle Activity" :: "Activity the NPC should use to idle until becomes alert" sleepstate(choices) : "Sleep State" : 0 : "Holds the NPC in stasis until specified condition. See also 'Wake Radius' and 'Wake Squad'." = [ 0 : "None" 1 : "Waiting for threat" 2 : "Waiting for PVS" 3 : "Waiting for input, ignore PVS" 4 : "Auto PVS" 5 : "Auto PVS after PVS" ] wakeradius(float) : "Wake Radius" : 0 : "Auto-wake if player within this distance" wakesquad(choices) : "Wake Squad" : 0 : "Wake all of the NPCs squadmates if the NPC is woken" = [ 0 : "No" 1 : "Yes" ] physdamagescale(float) : "Physics Impact Damage Scale" : "1.0" : "Scales damage energy when this character is hit by a physics object. With a value of 0 the NPC will take no damage from physics." // Outputs output OnDamaged(void) : "Fired when this NPC takes damage." output OnDeath(void) : "Fired when this NPC is killed." output OnHalfHealth(void) : "Fired when this NPC reaches half of its maximum health." output OnHearWorld(void) : "Fired when this NPC hears a sound (other than combat or the player)." output OnHearPlayer(void) : "Fired when this NPC hears the player." output OnHearCombat(void) : "Fired when this NPC hears combat sounds." output OnFoundEnemy(string) : "Fired when this NPC establishes line of sight to its enemy (outputs entity)." output OnLostEnemyLOS(void) : "Fired when this NPC loses line of sight to its enemy." output OnLostEnemy(void) : "Fired when this NPC loses its enemy. Usually due to the enemy being killed/removed, or because this NPC has selected a newer, more dangerous enemy." output OnFoundPlayer(string) : "Fired when this NPC establishes line of sight to its enemy, and that enemy is a player (outputs player entity)." output OnLostPlayerLOS(void) : "Fired when this NPC loses line of sight to its enemy, and that enemy is a player." output OnLostPlayer(void) : "Fired when this NPC loses its enemy, and that enemy was a player. Usually due to the enemy being killed/removed, or because this NPC has selected a newer, more dangerous enemy." output OnDamagedByPlayer(void) : "Fired when this NPC is hurt by a player." output OnDamagedByPlayerSquad(void) : "Fired when this NPC is hurt by a player OR by one of the player's squadmates." output OnDenyCommanderUse(void) : "Fired when this NPC has refused to join the player's squad." output OnSleep(void) : "Fired when this NPC enters a sleep state." output OnWake(void) : "Fired when this NPC comes out of a sleep state." output OnForcedInteractionAborted(void) : "Fired when the NPC aborts a forced interaction for some reason (target NPC died, couldn't be pathed to, etc)" output OnForcedInteractionFinished(void) : "NPCs in actbusies can no longer perform dynamic interactions." // Inputs input SetRelationship(string) : "Changes this entity's relationship with another entity or class. Format: " input SetHealth(integer) : "Set this NPC's health." input SetBodyGroup(integer) : "HACK: Sets this NPC's body group (from 0 - n). You'd better know what you are doing!" input physdamagescale(float) : "Sets the value that scales damage energy when this character is hit by a physics object. NOTE: 0 means this feature is disabled for backwards compatibility." input Ignite(void) : "Ignite, burst into flames" input Break(void) : "Break, smash into pieces" input StartScripting(void) : "Enter scripting state. In this state, NPCs ignore a variety of stimulus that would make them break out of their scripts: They ignore danger sounds, ignore +USE, don't idle speak or respond to other NPC's idle speech, and so on." input StopScripting(void) : "Exit scripting state." input Assault(string) : "Start an assault. Parameter passed in should be the name of the rally point." input SetSquad(string) : "Set the name of this NPC's squad. It will be removed from any existing squad automatically. Leaving the parameter blank will remove the NPC from any existing squad." input Wake(void) : "Wakes up the NPC if it is sleeping." input ForgetEntity(string) : "Clears out the NPC's knowledge of a named entity." input GagEnable(void) : "Turn on the NPC Gag flag. NPC won't speak outside of choreographed scenes." input GagDisable(void) : "Turn off the NPC Gag flag." input IgnoreDangerSounds(float) : "Ignore danger sounds for the specified number of seconds." input HolsterWeapon(void) : "Force the NPC to holster their weapon. Ignored if the NPC is scripting, if the NPC's weapon is already holstered, or if the NPC doesn't use weapons." input HolsterAndDestroyWeapon(void) : "Identical to HolsterWeapon, except the weapon is destroyed once it has been holstered and concealed." input UnholsterWeapon(void) : "Force the NPC to draw their weapon. Ignored if the NPC is scripting, if the NPC's weapon is already drawn, or if the NPC doesn't use weapons." input ForceInteractionWithNPC(string) : "Force the NPC to use a dynamic interaction with another NPC. Parameter format: " input UpdateEnemyMemory(string) : "Update (or Create) this NPC's memory of an enemy and its location" // synEdit output OnPlayerHeal(void) : "Fired when a player heals this NPC with a PDHV." CustomID(string) : "Custom NPC Value" : "" : "This value should be left blank unless you wish to customize this NPC. This value must be the title of a Custom Script File (they are found in 'scripts/csf/')." ] @PointClass base(Targetname, Parentname, Angles) iconsprite("editor/info_target.vmt") = info_npc_spawn_destination : "NPC Spawn Destination. (Consult npc_template_maker help for more info)" [ ReuseDelay(float) : "Reuse Delay" : 1 : "After an NPC is spawned at this destination, the delay before this destination is eligible for selection again." RenameNPC(string) : "New NPC Name" : "" : "If an NPC spawns at this destination, change that NPC's targetname to this." // Outputs output OnSpawnNPC(void) : "Fired when an NPC spawns at this destination." ] @BaseClass base(Targetname, Angles, EnableDisable) iconsprite("editor/npc_maker.vmt") color(0 0 255) = BaseNPCMaker [ StartDisabled(choices) : "Start Disabled" : 1 = [ 0 : "No" 1 : "Yes" ] spawnflags(Flags) = [ // Only in npc__maker, npc_template_maker uses flag from template NPC 16 : "Fade Corpse" : 0 32 : "Infinite Children" : 0 64 : "Do Not Drop" : 0 128 : "Don't Spawn While Visible" : 0 ] MaxNPCCount(integer) : "Num. of NPCs" : 1 : "Number of NPCs that will spawn before this spawner is exhausted." SpawnFrequency(string) : "Frequency" : "5" : "How often (in seconds) a new NPC will be spawned. If set to -1, a new NPC will be made when the last NPC dies." MaxLiveChildren(integer) : "Max Live NPCs" : 5 : "Maximum number of live children allowed at any one time (new ones will not be made until one dies). If set to -1, no limit is applied." // Outputs output OnSpawnNPC(string) : "Fired when an NPC is spawned. The activator is the NPC, and the string is the name of the NPC." output OnAllSpawned(void) : "Fired when the spawned is exhausted (all children have been spawned)." output OnAllSpawnedDead(void) : "Fired when the spawner is exhausted (all children have been spawned) and all spawned children have died." output OnAllLiveChildrenDead(void) : "Fired when all spawned children have died. This does not mean the spawned is exhausted, so a new child may be spawned any time after this (unless the maker is disabled)." // Inputs input Spawn(void) : "Spawns an NPC." input Toggle(void) : "Toggles the spawner enabled/disabled state." input Enable(void) : "Enables the spawner." input Disable(void) : "Disables the spawner." input AddMaxChildren(integer) : "Adds to the number of NPCs that can spawn before the spawner is exhausted. If an exhausted spawner is given some children to spawn, it still wont begin spawning until it is re-enabled with the Enable input." input SetMaxChildren(integer) : "Sets the number of NPCs that can spawn before the spawner is exhausted. If an exhausted spawner is given some children to spawn, it still won't begin spawning until it is re-enabled with the Enable input." input SetMaxLiveChildren(integer) : "Sets the maximum number of NPCs that can be alive at any one time from this spawner." input SetSpawnFrequency(float) : "Sets how often (in seconds) a new NPC will be spawned." ] @PointClass base(BaseNPCMaker) iconsprite("editor/npc_maker.vmt") = npc_template_maker : "An entity that creates NPCs. The NPCs it creates are clones of a template NPC. NPCs are spawned around this maker's origin, or at specified destination points." [ spawnflags(Flags) = [ 256 : "Always use radius spawn" : 0 512 : "Don't preload template models" : 0 ] TemplateName(target_destination) : "Name of template NPC" : "" : "Template NPC that this maker should be creating clones of." Radius(float) : "Radius" : 256 : "Radius around this maker within which NPCs are to be placed. Spawned NPCs will try and find empty space within this radius to spawn." DestinationGroup(target_destination) : "Name of Destination Group" : : "If you'd like spawned NPCs to be created at an info_npc_spawn_destination entity, enter the name of that entity here. If you have more than one destination entity by that name, the Destination Criteria will be used to select one from the group." CriterionVisibility(Choices) : "Dest. Criterion: Visible to player?" : 2 : "Should the NPC try to spawn at a destination that the player can see? Only applicable if a Destination Group is being used." = [ 0 : "Yes" 1 : "No" 2 : "Don't Care" ] CriterionDistance(Choices) : "Dest. Criterion: Distance to player?" : 2 : "Should the NPC try to spawn nearest to or farthest from the player's current location? Only applicable if a Destination Group is being used." = [ 0 : "Nearest" 1 : "Farthest" 2 : "Don't Care" ] MinSpawnDistance(integer) : "Minimum spawn distance from player" : 0 : "The spawn destination node distance to the player will have to be further or equal than this value." //Inputs input SpawnNPCInRadius(void) : "Spawn an NPC somewhere within the maker's radius." input SpawnNPCInLine(void) : "Spawn an NPC somewhere within a line behind the maker." input ChangeDestinationGroup(string) : "Switch to a different set of Destination entities." input SetMinimumSpawnDistance(integer) : "Set the minimum spawn distance from player to destination node." ] @BaseClass base( BaseNPC ) = BaseHelicopter [ InitialSpeed(string) : "Initial Speed" : "0" : "Sets the helicopter's desired speed that it should try to reach as soon as it's spawned." target(target_destination) : "Target path_track" : : "(Optional) The name of a path_track entity that this NPC will fly to after spawning." // Inputs input MoveTopSpeed(void) : "The helicopter will immediately move at top speed toward its current goal, or in its current orientation if it's on top of its goal." input ChangePathCorner(target_destination) : "Tell the helicopter to move to a path corner on a new path." input SelfDestruct(void) : "Self Destruct." input Activate(void) : "Activate. Use to wake up a helicopter that spawned with the 'Await Input' spawnflag on." input SetTrack(target_destination) : "Set a track for the helicopter to adhere to. The helicopter will do nothing if he's on the same path, and will move to the closest point on the specified track if he's on a different path." input FlyToSpecificTrackViaPath(target_destination) : "The helicopter will first fly to the closest point on the path if he's on a different path. Then he'll fly along the path to the specified track point." 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 StartBreakableMovement(void) : "The helicopter is now allowed to disobey direct commands to go to particular points if he senses an enemy. He will move to the closest point (or farthest point, if ChooseFarthestPathPoint is used), on the path if he senses an enemy." input StopBreakableMovement(void) : "The helicopter can not disobey direct commands. He will continue to fly along his patrol path or to his specified target even if he senses an enemy." spawnflags(Flags) = [ // AWAIT INPUT will make the helicopter spawn disabled, awaiting // the "Activate" input to start acting. 32 : "No Rotorwash" : 0 64 : "Await Input" : 0 ] ] @BaseClass color(0 255 0) = PlayerClass [] @BaseClass color(180 10 180) = Light [ _light(color255) : "Brightness" : "255 255 255 200" _lightHDR(color255) : "BrightnessHDR" : "-1 -1 -1 1" style(Choices) : "Appearance" : 0 = [ 0 : "Normal" 10: "Fluorescent flicker" 2 : "Slow, strong pulse" 11: "Slow pulse, noblack" 5 : "Gentle pulse" 1 : "Flicker A" 6 : "Flicker B" 3 : "Candle A" 7 : "Candle B" 8 : "Candle C" 4 : "Fast strobe" 9 : "Slow strobe" ] pattern(string) : "Custom Appearance" : "" : "Set a custom pattern of light brightness for this light. Pattern format is a string of characters, where 'a' is total darkness, 'z' fully bright. i.e. 'aaggnnttzz' would be a steppy fade in from dark to light." _constant_attn(string) : "Constant" : "0" _linear_attn(string) : "Linear" : "0" _quadratic_attn(string) : "Quadratic" : "1" _fifty_percent_distance(string) : "50 percent falloff distance" : "0": "Distance at which brightness should fall off to 50%. If set, overrides linear constant and quadratic paramaters." _zero_percent_distance(string) : "0 percent falloff distance" : "0": "Distance at which brightness should fall off to negligible (1/256)%. Must set _fifty_percent_distance to use." // Inputs input TurnOn(void) : "Turn the light on." input TurnOff(void) : "The the light off." input Toggle(void) : "Toggle the light's current state." input SetPattern(string) : "Set a custom pattern of light brightness for this light. Pattern format is a string of characters, where 'a' is total darkness, 'z' fully bright. i.e. 'aaggnnttzz' would be a steppy fade in from dark to light." input FadeToPattern(string) : "Fades from first value in old pattern, to first value in the new given pattern. Pattern format is a string of characters, where 'a' is total darkness, 'z' fully bright. i.e. 'aaggnnttzz' would be a steppy fade in from dark to light." ] @BaseClass = Node [ nodeid(integer) readonly : "Node ID" ] @BaseClass base(Node) = HintNode [ hinttype(choices) : "Hint" : 0 = [ 0 : "None" 2: "World: Window" 12: "World: Act Busy Hint" 13: "World: Visually Interesting" 14: "World: Visually Interesting (Don't aim at)" 15: "World: Inhibit Combine Mines within 15 feet" 16: "World: Visually Interesting (Stealth mode)" 100: "Crouch Cover Medium" 101: "Crouch Cover Low" 102: "Waste Scanner Spawn" 103: "Entrance / Exit Pinch" // 104: "Guard Point" 105: "Enemy Disadvantage Point" 106: "Health Kit" 400: "Antlion: Burrow Point" 401: "Antlion: Thumper Flee Point" 450: "Headcrab: Burrow Point" 451: "Headcrab: Exit Pod Point" 500: "Roller: Patrol Point" 501: "Roller: Cleanup Spot" 700: "Crow: Fly to point" 701: "Crow: Perch point" 900: "Follower: Wait point" 901: "Override jump permission" 902: "Player squad transition point" 903: "NPC exit point" 904: "Strider node" 950: "Player Ally: Push away destination" 1000: "HL1 World: Machinery" 1001: "HL1 World: Blinking Light" 1002: "HL1 World: Human Blood" 1003: "HL1 World: Alien Blood" // 1100: "CS Hostage: Escape Point" ] hintactivity(string) : "Hint Activity" : "" : "Activity associated with this hint node. Various parts of the NPC AI play this activity at times. i.e. Actbusy nodes will play this activity when an NPC acts busy on the node." nodeFOV(choices) : "Node FOV" : 180 : "Imagine this node requires that an NPC be in the node's field of view in order to use this hint." = [ 45 : "45 Degrees" 90 : "90 Degrees" 180 : "180 Degrees" 360 : "360 Degrees" ] // Does not inherit from EnableDisable, as node itself will // use that. This is enabling/disabling of the hint only StartHintDisabled(choices) : "Start Hint Disabled" : 0 = [ 0 : "No" 1 : "Yes" ] Group(string) : "Hint Group" : "" : "If specified, gives the hint a specific group name. Useful for hint nodes that need to be logically grouped together. NPCs may also refuse to use hint nodes that don't match their hint group." TargetNode(node_dest) : "Target node" : -1 : "The node ID of an associated target node, if any." IgnoreFacing(choices) : "Ignore Facing" : 2 : "Don't pay attention to the facing of the node. May not apply to a given hint type." = [ 0 : "No" 1 : "Yes" 2 : "Default" ] MinimumState(choices) : "Minimum State" : 1 : "Require an NPC have a minimum state to use the hint." = [ 1 : "Idle" 2 : "Alert" 3 : "Combat" ] MaximumState(choices) : "Maximum State" : 3 : "Require an NPC have a maximum state to use the hint." = [ 1 : "Idle" 2 : "Alert" 3 : "Combat" ] // Inputs input EnableHint(void) : "Enable hint." input DisableHint(void) : "Disable hint." ] @BaseClass base(Targetname, Parentname, Origin, EnableDisable, Global) = TriggerOnce [ spawnflags(flags) = [ 1: "Clients" : 1 2: "NPCs" : 0 4: "Pushables": 0 8: "Physics Objects" : 0 16: "Only player ally NPCs" : 0 32: "Only clients in vehicles" : 0 64: "Everything" : 0 512: "Only clients *not* in vehicles" : 0 1024: "Physics debris" : 0 ] filtername(filterclass) : "Filter Name" : : "Filter to use to see if activator triggers me. See filter_activator_name for more explanation." // Inputs input Toggle(void) : "Toggles this trigger between enabled and disabled states." // Outputs output OnStartTouch(void) : "Fired when an entity starts touching this trigger. The touching entity must pass this trigger's filters to cause this output to fire." ] @BaseClass base(Targetname, Parentname, Origin, EnableDisable, TriggerOnce) = Trigger [ output OnEndTouch(void) : "Fired when an entity stops touching this trigger. Only entities that passed this trigger's filters will cause this output to fire." output OnEndTouchAll(void) : "Fires when an entity stops touching this trigger, and no other entities are touching it. Only entities that passed this trigger's filters are considered." ] @BaseClass = worldbase [ message(string) : "Map Description / Title" skyname(string) : "SkyBox Texture Name" : "sky_day01_01" chaptertitle(string) : "Chapter Title Message" : "" : "Chapter Title that appears onscreen when this level starts." startdark(choices) : "Level Fade In" : 0 = [ 0 : "No" 1 : "Yes" ] gametitle(choices) : "Display Game Title" : 0 : "Game Title that appears onscreen when this level starts." = [ 0 : "No" 1 : "Yes" ] newunit(choices) : "New Level Unit" : 0 : "Used to clear out savegame data of previous levels to keep the savegame size as small as possible. Only set it to Yes if the player cannot return to any previous levels." = [ 0 : "No, keep current" 1 : "Yes, clear previous levels" ] maxoccludeearea(float) : "Max occludee area" : "0" : "Prevents occlusion testing for entities that take up more than X% of the screen." minoccluderarea(float) : "Min occluder area" : "0" : "Prevents this occluder from being used if it takes up less than X% of the screen." maxpropscreenwidth(float) : "Start Fade Pixels" : -1 : "Number of pixels wide at which all props in the level start to fade (<0 = use fademaxdist). This number is ignored if the prop has a specific fade distance specified." minpropscreenwidth(float) : "End Fade Pixels" : 0 : "Minimum number of pixels wide at which the prop is visible (0 = don't fade out). This number is ignored if the prop has a specific fade distance specified." detailvbsp(string) : "Detail.vbsp file" : "detail.vbsp" : "Detail.vbsp file to use for emitting detail props (found in directory /modname)" detailmaterial(string) : "Detail material file" : "detail/detailsprites" : "Material for detail sprites to use for drawing detail props" coldworld(choices) : "World is cold" : 0 = [ 0 : "No" 1 : "Yes" ] ] //------------------------------------------------------------------------- // // World // //------------------------------------------------------------------------- @SolidClass base(Targetname, worldbase, ResponseContext) = worldspawn : "This is the world entity. Each map can only contain one, and it's automatically created for you." [ ] @PointClass base(Targetname) iconsprite("editor/ambient_generic.vmt") sphere() = ambient_generic : "Universal ambient sound. Use it to play and control a single sound." [ message(sound) : "Sound Name" : "" : "Name of the GameSound entry for the sound to play. Also supports direct .wav filenames." health(integer) : "Volume" : 10 : "Sound volume, expressed as a range from 0 to 10, where 10 is the loudest." preset(choices) :"Dynamic Presets" : 0 = // NEEDHELP [ 0: "None" 1: "Huge Machine" 2: "Big Machine" 3: "Machine" 4: "Slow Fade in" 5: "Fade in" 6: "Quick Fade in" 7: "Slow Pulse" 8: "Pulse" 9: "Quick pulse" 10: "Slow Oscillator" 11: "Oscillator" 12: "Quick Oscillator" 13: "Grunge pitch" 14: "Very low pitch" 15: "Low pitch" 16: "High pitch" 17: "Very high pitch" 18: "Screaming pitch" 19: "Oscillate spinup/down" 20: "Pulse spinup/down" 21: "Random pitch" 22: "Random pitch fast" 23: "Incremental Spinup" 24: "Alien" 25: "Bizzare" 26: "Planet X" 27: "Haunted" ] volstart(integer) : "Start Volume" : 0 // NEEDHELP fadeinsecs(integer) : "Fade in time in seconds (0-100)" : 0 // NEEDHELP fadeoutsecs(integer) : "Fade out time in seconds (0-100)" : 0 // NEEDHELP pitch(integer) : "Pitch" : 100 : "Sound pitch, expressed as a range from 1 to 255, where 100 is the sound's default pitch." pitchstart(integer) : "Start Pitch" : 100 // NEEDHELP spinup(integer) : "Spin up time (0-100)" : 0 // NEEDHELP spindown(integer) : "Spin down time (0-100)" : 0 // NEEDHELP lfotype(integer) : "LFO type 0)off 1)sqr 2)tri 3)rnd" : 0 // NEEDHELP lforate(integer) : "LFO rate (0-1000)" : 0 // NEEDHELP lfomodpitch(integer) : "LFO mod pitch (0-100)" : 0 // NEEDHELP lfomodvol(integer) : "LFO mod vol (0-100)" : 0 // NEEDHELP cspinup(integer) : "Incremental Spinup Count" : 0 // NEEDHELP radius(string) : "Max Audible Distance" : "1250" : "Maximum distance at which this sound is audible." spawnflags(flags) = [ 1: "Play everywhere" : 0 16:"Start Silent": 1 32:"Is NOT Looped": 1 ] SourceEntityName(target_destination) : "SourceEntityName" : : "If an entity is specified, sound will come from this named entity instead of the location of ambient_generic." // Inputs input Pitch(integer) : "Sets the sound pitch, expressed as a range from 1 to 255, where 100 is the sound's default pitch." input PlaySound(void) : "Starts the sound." input StopSound(void) : "Stops the sound if it is playing." input ToggleSound(void) : "Toggles the sound between playing and stopping." input Volume(integer) : "Sets the sound volume, expressed as a range from 0 to 10, where 10 is the loudest." input FadeIn(integer) : "Fades the sound up to full volume over a specified number of seconds, with a range from 0 to 100 seconds." input FadeOut(integer) : "Fades the sound to silence over a specified number of seconds, with a range from 0 to 100 seconds." ] @SolidClass base(Targetname) = func_lod : "Brush-built model that fades out over a specified distance. Useful for creating world detail that doesn't need to be drawn far away, for performance reasons." [ DisappearDist(integer) : "Disappear Distance" : 2000 : "Distance at which these brushes should fade out." Solid(choices) : "Solid" : 0 : "Set whether or not these brushes should collide with other entities." = [ 0: "Solid" 1: "Nonsolid" ] ] @PointClass base(Targetname) = env_zoom : "An entity that can be used to control the player's FOV. Useful for scenes where the player's view is being controlled, or player-usable binoculars/telescopes, etc." [ Rate(float) : "Seconds to reach target" : "1.0" : "Amount of time it should take to reach the specified FOV." FOV(integer) : "Target FOV" : 75 : "FOV that this entity should set the player's FOV to when active." // Inputs input Zoom(void) : "Start controlling the player's FOV." input UnZoom(void) : "Stop controlling the player's FOV." spawnflags(flags) = [ 1: "Allow Suit Zoom" : 0 ] ] @PointClass base(Targetname) = env_screenoverlay: "An entity that can display and control a set of screen overlays, to be displayed over the player's view. Useful for view effects like drunkenness, or teleporter afterimages, etc." [ OverlayName1(string) : "Overlay Name 1" : "" : "Name of the first overlay material to display." OverlayTime1(float) : "Overlay Duration 1" : "1.0" : "Amount of time that the first overlay should be displayed for, after which it will begin showing the second overlay." OverlayName2(string) : "Overlay Name 2" : "" : "Name of the second overlay material to display. If left blank, overlay displaying will finish, and this entity will consider itself done." OverlayTime2(float) : "Overlay Duration 2" : "1.0" : "Amount of time that the second overlay should be displayed for, after which it will begin showing the third overlay." OverlayName3(string) : "Overlay Name 3" : "" : "Name of the third overlay material to display. If left blank, overlay displaying will finish, and this entity will consider itself done." OverlayTime3(float) : "Overlay Duration 3" : "1.0" : "Amount of time that the third overlay should be displayed for, after which it will begin showing the fourth overlay." OverlayName4(string) : "Overlay Name 4" : "" : "Name of the fourth overlay material to display. If left blank, overlay displaying will finish, and this entity will consider itself done." OverlayTime4(float) : "Overlay Duration 4" : "1.0" : "Amount of time that the fourth overlay should be displayed for, after which it will begin showing the fifth overlay." OverlayName5(string) : "Overlay Name 5" : "" : "Name of the fifth overlay material to display. If left blank, overlay displaying will finish, and this entity will consider itself done." OverlayTime5(float) : "Overlay Duration 5" : "1.0" : "Amount of time that the fifth overlay should be displayed for, after which it will begin showing the sixth overlay." OverlayName6(string) : "Overlay Name 6" : "" : "Name of the sixth overlay material to display. If left blank, overlay displaying will finish, and this entity will consider itself done." OverlayTime6(float) : "Overlay Duration 6" : "1.0" : "Amount of time that the sixth overlay should be displayed for, after which it will begin showing the seventh overlay." OverlayName7(string) : "Overlay Name 7" : "" : "Name of the seventh overlay material to display. If left blank, overlay displaying will finish, and this entity will consider itself done." OverlayTime7(float) : "Overlay Duration 7" : "1.0" : "Amount of time that the seventh overlay should be displayed for, after which it will begin showing the eighth overlay." OverlayName8(string) : "Overlay Name 8" : "" : "Name of the eighth overlay material to display. If left blank, overlay displaying will finish, and this entity will consider itself done." OverlayTime8(float) : "Overlay Duration 8" : "1.0" : "Amount of time that the eighth overlay should be displayed for, after which it will begin showing the ninth overlay." OverlayName9(string) : "Overlay Name 9" : "" : "Name of the ninth overlay material to display. If left blank, overlay displaying will finish, and this entity will consider itself done." OverlayTime9(float) : "Overlay Duration 9" : "1.0" : "Amount of time that the ninth overlay should be displayed for, after which it will begin showing the tenth overlay." OverlayName10(string) : "Overlay Name 10" : "" : "Name of the tenth overlay material to display. If left blank, overlay displaying will finish, and this entity will consider itself done." OverlayTime10(float) : "Overlay Duration 10" : "1.0" : "Amount of time that the tenth overlay should be displayed for, after which this entity will stop displaying overlays." // Inputs input StartOverlays(void) : "Start displaying the first overlay." input StopOverlays(void) : "Stop displaying any overlays." input SwitchOverlay(float) : "Switch to displaying a specific overlay. Pass in the desired overlay number in the parameter." ] @PointClass base(Targetname) = env_screeneffect : "Allows screenspace effects to be played on the player's view." [ type(choices) : "Effect Type" : 0 : "Which effect to use." = [ 0 : "Advisor Stun" 1 : "Intro Blur" ] // Inputs input StartEffect(float) : "Start the effect with the duration in seconds as the passed parameter." input StopEffect(float) : "Stop the effect." ] @PointClass base(Targetname) = env_texturetoggle : "An entity that allows you to change the textures on other brush-built entities." [ target(target_destination) : "Target Brush(es)." // Inputs input IncrementTextureIndex(void) : "Increments target brush's current texture frame by one." input SetTextureIndex(integer) : "Sets target brush's texture frame to the specified index." ] @PointClass base(Targetname, Angles) = env_splash : "An entity that creates a splash effect at its origin. If the 'find water surface' spawnflag is set, it will instead trace down below itself to find the water surface on which to create splashes." [ scale(float) : "Scale of the splash" : "8.0" // Inputs input Splash(void) : "Create a splash effect." spawnflags(flags) = [ 1: "Automatically find water surface (place entity above water)" : 0 2: "Diminish with depth (diminished completely in 10 feet of water)" : 1 ] ] @PointClass base(Parentname) color(180 10 180) = env_particlelight : "An entity that can be used to light the smoke particles emitted by env_smokestack entities. Does not light any other particle types." [ Color(color255) : "Color" : "255 0 0" : "Color emitted by this light." Intensity(integer) : "Intensity" : 5000 directional(choices) : "Directional" : 0 : "If this is specified, then this light will use the bump map on the particles. Each particle system can have one ambient and one directional light." = [ 0 : "No" 1 : "Yes" ] PSName(string) : "Particle System Entity" : "" : "Set this to the name of the env_smokestack that you want this light to affect." ] @PointClass base(Angles) color(255 0 0) = env_sun : "An entity to control & draw a sun effect in the sky." [ target(target_destination) : "Viewer entity" : : "Name of an entity used to determine where the sun is in the skybox. The sun should be lined up on a line from this entity to the env_sun entity." use_angles(choices) : "UseAngles" : 0 : "The old way to orient env_sun is to point it at a target. The new way is to specify the angles. If you use the new way, set this property to YES." = [ 0 : "No" 1 : "Yes" ] pitch(integer) : "Pitch" : 0 rendercolor(color255) : "Sun Color (R G B)" : "100 80 80" overlaycolor(color255) : "Overlay Color (R G B)" : "0 0 0" : "A value of 0 0 0 will act the old way." size(integer) : "Size" : 16 overlaysize(integer) : "Overlay Size" : -1 : "A value of -1 means the overlay will act the old way." material(sprite) : "Material Name" : "sprites/light_glow02_add_noz" : "Material of the inner glow." overlaymaterial(sprite) : "Overlay Material Name" : "sprites/light_glow02_add_noz" : "Material of the overlay glow." HDRColorScale(float) : "HDR color scale." : "1.0" : "float value to multiply sprite color by when running in HDR mode." // Inputs input TurnOn(void) : "Enable sun rendering." input TurnOff(void) : "Disable sun rendering." input SetColor(color255) : "Change the sun's color. Format: " ] @PointClass base(Targetname) = game_ragdoll_manager : "An entity to control the number of ragdolls in the world, for performance reasons." [ MaxRagdollCount(integer) : "Max Ragdoll Count" : -1 : "Sets the max number of ragdolls that can be in the world at a time (if they are flagged to fade). Set to -1 if you want to use the default value (g_ragdoll_maxcount)." SaveImportant(choices) : "Save Important Ragdolls" : 0 : "Should the ragdoll manager make sure ally ragdolls aren't deleted?" = [ 0 : "No" 1 : "Yes" ] // Inputs input SetMaxRagdollCount(integer) : "Set the Max Ragdoll Count." ] @PointClass base(Targetname) = game_gib_manager : "An entity to control the number of gibs in the world, for performance reasons." [ maxpieces(integer) : "Max Gib Count" : -1 : "Sets the max number of gib that can be spawned at a time. Set to -1 if you want to use the default value (func_break_max_pieces)." input InputSetMaxPieces(integer) : "Set the Max gibs Count." ] @PointClass base(Parentname, Targetname, Angles) color(255 128 0) = env_lightglow : "An entity that puts an additive glow in the world, mostly used over light sources." [ rendercolor(color255) : "Color (R G B)" : "255 255 255" VerticalGlowSize(integer) : "Vertical Size" : 30 HorizontalGlowSize(integer) : "Horizontal Size" : 30 MinDist(integer) : "Minimum Distance" : 500 : "The distance at which this effect will be fully translucent." MaxDist(integer) : "Maximum Distance" : 2000 : "The distance at which this effect will be at full intensity." OuterMaxDist(integer) : "Outer Maximum Distance" : 0 : "If larger than the maximum distance, this is the length at which the glow will fade completely out, between the span of the maximum distance and this length." GlowProxySize(float) : "Glow Proxy Geometry Size" : "2.0" : "Size of the glow to be rendered for visibility testing. Must be larger than the distance from the sprite center to empty space. So if this glow is inside geometry (like a light bulb), set this value to be bigger than the bulb's radius. Any time a sphere of this radius would be visible (poking through any nearby geometry), the glow will be rendered." HDRColorScale(float) : "HDR color scale." : "1.0" : "float value to multiply sprite color by when running in HDR mode." // Inputs input Color(color255) : "Change the render color of the glow. Format: " spawnflags(flags) = [ 1: "Visible only from front" : 0 ] ] @PointClass base(Parentname, Angles) color(255 255 255) = env_smokestack : "An entity that spits out a constant stream of smoke. See particlezoo.vmf for sample usage. You can place up to two env_particlelight entities near the smoke stack to add ambient light to its particles." [ targetname(target_source) : "Name" : : "The name that other entities refer to this entity by." InitialState(choices) : "Initial State" : 0 = [ 0 : "Off" 1 : "On" ] BaseSpread(integer) : "Spread at the base" : 20 : "Amount of random spread in the origins of the smoke particles when they're spawned." SpreadSpeed(integer) : "Spread Speed" : 15 : "Amount of random spread in the velocity of the smoke particles after they're spawned." Speed(integer) : "Speed" : 30 : "The speed at which the smoke particles move after they're spawned." StartSize(integer) : "Particle start size" : 20 : "Size of the smoke particles when they're first emitted." EndSize(integer) : "Particle end size" : 30 : "Size of the smoke particles at the point they fade out completely." Rate(integer) : "Emission rate" : 20 : "Rate at which to emit smoke particles (i.e. particles to emit per second)." JetLength(integer) : "Length of smoke trail" : 180 : "Length of the smokestack. Lifetime of the smoke particles is derived from this & particle speed." WindAngle(integer) : "Wind X/Y Angle" : 0 : "This specifies the wind direction. It is an angle in the XY plane. WindSpeed specifies the strength of the wind." WindSpeed(integer) : "Wind Speed" : 0 : "The strength of the wind." SmokeMaterial(string) : "Particle material" : "particle/SmokeStack.vmt" : "Material of the smoke particles emitted by this stack." twist(integer) : "Twist" : 0 : "The amount, in degrees per second, that the smoke particles twist around the origin." roll(float) : "Roll Speed": 0 : "Amount of roll in degrees per second." rendercolor(color255) : "Base Color (R G B)" : "255 255 255" renderamt(integer) : "Translucency" : 255 // Inputs input TurnOn(void) : "Turn on the smokestack." input TurnOff(void) : "Turn off the smokestack." input Toggle(void) : "Toggles the smokestack between on and off state." input JetLength(integer): "Set the length of the smoke trail." input Rate(integer) : "Set the rate at which to emit smoke particles (particles per second)." input Speed(integer) : "Set the speed at which the smoke particles move after they're spawned." input SpreadSpeed(integer) : "Set the amount of random spread in the velocity of the smoke particles after they're spawned." ] @PointClass base(Targetname) iconsprite("editor/env_fade") = env_fade : "An entity that controls screen fades." [ spawnflags(flags) = [ 1: "Fade From" : 0 2: "Modulate" : 0 8: "Stay Out" : 0 ] duration(string) : "Duration (seconds)" : "2" : "The time that it will take to fade the screen in or out." holdtime(string) : "Hold Fade (seconds)" : "0" : "The time to hold the faded in/out state." renderamt(integer) : "Fade Alpha" : 255 : "Alpha of the fade, where 0 = fully transparent and 255 = fully opaque." rendercolor(color255) : "Fade Color (R G B)" : "0 0 0" // Inputs input Fade(void) : "Start the screen fade." // Outputs output OnBeginFade(void) : "Fired when the fade has begun." ] @PointClass base(Targetname) = env_player_surface_trigger : "An entity that monitors the material of the surface the player is standing on, and fires outputs whenever it changes to/from a specific material." [ gamematerial(choices) : "Game Material to Watch" : "0" : "The material to watch. When the player stands on/off this material, this entity's outputs will be fired." = [ 0 : "None (player's in the air)" 67 : "Concrete" 77 : "Metal" 68 : "Dirt" 86 : "Vent" 71 : "Grate" 84 : "Tile" 83 : "Slosh" 87 : "Wood" 80 : "Computer" 89 : "Glass" 70 : "Flesh" 73 : "Clip" 79 : "Foliage" 78 : "Sand" ] // Inputs input Enable(void) : "Start watching the player's surface." input Disable(void) : "Stop watching the player's surface." // Outputs output OnSurfaceChangedToTarget(void) : "Fired when the player moves onto the specified game material." output OnSurfaceChangedFromTarget(void) : "Fired when the player moves off the specified game material." ] @PointClass base(Targetname) iconsprite("editor/env_tonemap_controller.vmt") = env_tonemap_controller : "An entity that controls the HDR tonemapping for the player. Think of it as a method of controlling the exposure of the player's eyes." [ // Inputs input SetTonemapScale(void) : "Set the player's tonemap scale. It should be a value between 0 and 2, where 0 is the eyes fully closed, 1 is use the unchanged autoexposure (default), and 2 is the eye fully wide open." input BlendTonemapScale(string) : "Blend from the player's current tonemap scale to a new one. The parameter syntax is as follows: . For example: '0.5 10' would blend from the current tonemap scale to 0.5 over a period of 10 seconds. Tonemap scale is a value between 0 and 2, where 0 is the eyes fully closed, 1 is use the unchanged autoexposure (default), and 2 is the eye fully wide open." input UseDefaultAutoExposure(void) : "Revert to using the default tonemap auto exposure." input SetAutoExposureMin(float) : "Set a custom tonemap auto exposure minimum." input SetAutoExposureMax(float) : "Set a custom tonemap auto exposure maximum." input SetBloomScale(float) : "Set a custom bloom scale." input SetTonemapRate(float) : "Set the rate for autoexposure adjustment." ] @PointClass base(Targetname, Parentname) sweptplayerhull() = func_useableladder : "A Half-Life 2 ladder. Handles player auto mount/unmount, as well as +use to get onto the ladder. \n\n" + "See also 'info_ladder_dismount', used to specify ladder auto-dismount points.\n\n" + "Note: This entity is non-functional in Counter-Strike: Source. Use func_ladder instead." [ spawnflags(flags) = [ 1: "Fake Ladder" : 0 ] point0(vector) : "Start" : : "Ladder end point." point1(vector) : "End" : : "Ladder end point." StartDisabled(choices) : "Start Disabled" : 0 = [ 0 : "No" 1 : "Yes" ] // Inputs input Enable(void) : "Enable this ladder." input Disable(void) : "Disable this ladder." output OnPlayerGotOnLadder(void) : "Fired whenever a player gets on this ladder." output OnPlayerGotOffLadder(void) : "Fired whenever a player gets off this ladder." ] @PointClass base(Targetname, Parentname, Angles) size( -16 -16 0, 16 16 72 ) color(127 127 127) = func_ladderendpoint : "An entity used to specify the endpoints of a ladder. This entity is functional, but has been replaced by the " + "easier-to-use func_useableladder entity. Left in only for backwards-compatibility!\n\n" + "To be valid, a full sized player hull traced between the start and end points must not be obstructed at level " + "activation time. The angle determines in which direction the player leaves the ladder if the player presses the " + "+jump button.\n\n" + "Note: This entity is non-functional in Counter-Strike: Source. In CS:S, use func_ladder instead." [ target(target_destination) : "Other" : : "A ladder goes between any two func_ladderendpoints pointing at each other." // TODO: Allow individual ladder end points to be enabled, disabled // TODO: Allow ladder to specify movement speed or a speed scale while on ladder // TODO: Allow specifying radius within with you must be in order to +use to get on the ladder ] @PointClass base(Parentname) size( -16 -16 0, 16 16 4 ) color(255 128 255)= info_ladder_dismount : "An entity to handle endpoints for multiple ladders that are too close to each other." [ target(target_destination) : "LadderName" : : "If multiple ladders are near multiple endpoints, use this to stop them from interfering with each other." ] @SolidClass base(Targetname) color(0 128 255) = func_areaportalwindow : "An entity that can be used to optimize the visibility in a map. If you seal off an area with them, when the viewer moves the specified distance away from them, they will go opaque and the parts inside the area will not be drawn. The 'target' brush model should enclose the func_areaportal window so no parts of it are culled by the window. If you use the optional foreground brush model, then it should enclose the 'target' brush model." [ target(target_destination) : "Rendered Window" : : "The name of a brush model to render as the window." FadeStartDist(integer) : "Fade Start Distance" : 128 : "When the viewer is closer than this distance, the alpha is set to 'TranslucencyLimit'." FadeDist(integer) : "Fade End Distance" : 512 : "When the viewer is at this distance, the portal becomes solid and closes off." TranslucencyLimit(string) : "Translucency limit" : "0.2" : "This value limits the translucency of the bmodel and prevents it from becoming invisible when the viewer is right on top of it." BackgroundBModel(string) : "Foreground bmodel" : "" : "(Optional) brush model that is drawn after the fading brush model. This model should have alpha in its textures so you can see through it." PortalVersion(integer) readonly : "Portal Version" : 1 : "(Don't change). Differentiates between shipping HL2 maps and maps using new engine features." ] @SolidClass base(Targetname, RenderFields, Global, Shadow) = func_wall : "Legacy support. Use func_brush instead." [ _minlight(string) : "Minimum Light Level" : : "The minimum level of ambient light that hits this brush." ] @SolidClass base(Targetname) = func_clip_vphysics : "A brush entity that's considered solid to vphysics." [ filtername(filterclass) : "Filter Name" : : "Filter to use to see if activator collides with me. See filter_activator_name for more explanation. Allow means 'Allow to Block' for this entity." ] @SolidClass base(Targetname, Parentname, Origin, RenderFields, Global, Inputfilter, EnableDisable, Shadow) = func_brush : "An brush built entity with various features." [ spawnflags(flags) = [ 2: "Ignore player +USE" : 0 ] _minlight(string) : "Minimum Light Level" : : "The minimum level of ambient light that hits this brush." Solidity(choices) : "Solidity" : 0 : "Used to control the solidity/collision of these brushes." = [ 0 : "Toggle" 1 : "Never Solid" 2 : "Always Solid" ] excludednpc(string) : "NPC class excluded from collisions" : "" : "If an NPC classname is specified here, NPCs of that type won't collide with these brushes." invert_exclusion(choices) : "Invert NPC class exclusion" : 0 : "If set, then the excluded NPC class will consider this brush solid, and all other NPC classes will consider it non-solid." = [ 0 : "No" 1 : "Yes" ] solidbsp(choices) : "Solid BSP" : 0 : "Set this if this brush is in heirarchy with a moving object of some kind, and the player can stand on this brush." = [ 0 : "No" 1 : "Yes" ] ] //------------------------------------------------------------------------- // // A Vgui screen in 3D // //------------------------------------------------------------------------- @BaseClass base(Targetname, Parentname, Angles) = vgui_screen_base [ panelname(string) : "Panel Name" overlaymaterial(string) : "Overlay Material" : "" : "Name of a material to overlay over the top of the VGUI screen. NOTE: This material must write Z for the VGUI screen to work." width(integer) : "Panel Width in World" : 32 : "Width of the panel in units." height(integer) : "Panel Height in World" : 32 : "Height of the panel in units." // Inputs input SetActive(void) : "Make the vgui screen visible." input SetInactive(void) : "Make the vgui screen invisible." ] @PointClass base(vgui_screen_base) size(-4 -4 -4, 4 4 4) = vgui_screen : "A VGUI screen. Useful for in-world monitors." [ ] //------------------------------------------------------------------------- // // Cyclers // //------------------------------------------------------------------------- @PointClass base(Targetname, Parentname, Angles, RenderFxChoices, RenderFields) studio() = cycler : "An entity used to display a model for testing purposes. Shooting it with cycle through the model's animations." [ spawnflags(flags) = [ 1: "Not Solid" : 0 ] model(studio) : "Model" skin(integer) : "Skin" : 0 : "Some models have multiple versions of their textures, called skins. Set this to a number other than 0 to use that skin instead of the default." sequence(integer) : "Sequence" : 0 : "Default animation sequence for the model to be playing after spawning." // Inputs input SetSequence(string) : "Sets the cycler's sequence." ] //------------------------------------------------------------------------- // // Environmental effects // //------------------------------------------------------------------------- @BaseClass base(Targetname, Parentname) = gibshooterbase [ angles(string) : "Gib Direction (Pitch Yaw Roll)" : "0 0 0" : "The direction the gibs will fly." m_iGibs(integer) : "Number of Gibs" : 3 : "Total number of gibs to shoot each time it's activated." delay(string) : "Delay between shots" : "0" : "Delay (in seconds) between shooting each gib. If 0, all gibs shoot at once." gibangles(string) : "Gib Angles (Pitch Yaw Roll)" : "0 0 0" : "The orientation of the spawned gibs." gibanglevelocity(string) : "Max angular velocity" : "0" : "How fast (degrees/sec) the gib pieces should spin. They will spin on x and y axis at between 10% and 100% of this speed." m_flVelocity(integer) : "Gib Velocity" : 200 : "Speed of the fired gibs" m_flVariance(string) : "Course Variance" : "0.15" : "How much variance in the direction gibs are fired." m_flGibLife(string) : "Gib Life" : "4" : "Time in seconds for gibs to live +/- 5%" lightingorigin(target_destination) : "Lighting Origin" : "" : "Select an info_lighting to specify a location to sample lighting from for all gibs spawned by this shooter, instead of their own origins." spawnflags(Flags) = [ 1 : "Repeatable" : 0 ] // Inputs input Shoot(void) : "Force the gibshooter to create and shoot a gib." ] @PointClass base(Targetname, Parentname, RenderFxChoices) size(-4 -4 -4, 4 4 4) line(255 255 255, targetname, LightningStart, targetname, LightningEnd) = env_beam : "An entity that creates a visible beam between two points. The points can be attached to entities to make the beam move around." [ renderamt(integer) : "Brightness (1 - 255)" : 100 rendercolor(color255) : "Beam Color (R G B)" : "255 255 255" Radius(integer) : "Radius" : 256 : "If the 'Random Strike' spawnflag is set, this radius determines the area within which the endpoints will randomly strike." life(string) : "Life (seconds 0 = infinite)" : "1" : "Amount of time before the beam dies. Setting to zero will make the beam stay forever." BoltWidth(float) : "Width of beam" : 2 : "Pixel width of the beam." NoiseAmplitude(float) : "Amount of noise (0-255)" : 0 : "The amount of noise in the beam. 0 is a perfectly straight beam." texture(sprite) : "Sprite Name" : "sprites/laserbeam.spr" : "The material used to draw the beam." TextureScroll(integer) : "Texture Scroll Rate (0-100)" : 35 : "Rate at which the beam texture should scroll along the beam." framerate(integer) : "Frames per 10 seconds" : 0 : "Framerate at which the beam texture should animate, if it has multiple frames." framestart(integer) : "Starting Frame" : 0 : "The frame to start the beam texture on." StrikeTime(string) : "Strike again time (secs)" : "1" : "Refire time between random strikes of the beam. Only used if the 'Random Strike' spawnflag is set." damage(string) : "Damage / second" : "0" : "How much damage this beam does per second to things it hits when it is continually on, or instantaneously if it strikes. For continuous damage, the value should be greater than 10 or it may not work." LightningStart(target_destination) : "Start Entity" : "" : "Entity that the beam starts at." LightningEnd(target_destination) : "Ending Entity" : "" : "Entity that the beam ends at." decalname(string) : "Decal Name" : "Bigshot" : "Decal to be applied at the end of the beam" HDRColorScale(float) : "HDR color scale." : "1.0" : "float value to multiply sprite color by when running in HDR mode." spawnflags(flags) = [ 1 : "Start On" : 0 2 : "Toggle" : 0 4 : "Random Strike" : 0 8 : "Ring" : 0 16: "StartSparks" : 0 32: "EndSparks" : 0 64: "Decal End" : 0 128: "Shade Start" : 0 256: "Shade End" : 0 512: "Taper Out" : 0 ] TouchType(choices) : "Touch Type (tripwire)" : 0 : "If you want the beam to fire an output when touched by entities, choose the entity type here." = [ 0 : "Not a tripwire" 1 : "Player Only" 2 : "NPC Only" 3 : "Player or NPC" 4 : "Player or NPC or Physprop" ] filtername(filterclass) : "Filter Name" : : "Filter to use to see if activator triggers me. See filter_activator_name for more explanation." // Inputs input TurnOn(void) : "Turns the beam on." input TurnOff(void) : "Turns the beam off." input Toggle(void) : "Toggles the beam between on and off." input StrikeOnce(void) : "Causes the beam to strike once. It will stay on for its set Life and then turn off (it will never turn off if Life is set to zero)." input Alpha(integer) : "Sets the beam's alpha (0 - 255)." input Color(color255) : "Sets the beam's render color (R G B)." input Amplitude(float) : "Set the amplitude of beam noise (0 - 255)." input ScrollSpeed(float) : "Set the scroll speed in units per second (0 - 100)." input Width(float) : "Set the width of the beam, in pixels." // Outputs output OnTouchedByEntity(void) : "Fired when an entity touches the beam. Only fired if the entity passes the 'Touch Type' choice." ] @PointClass base(Targetname, Parentname) size(-4 -4 -4, 4 4 4) = env_beverage : "HL1 Legacy: Beverage Dispenser." [ health(integer) : "Capacity" : 10 : "Number of cans in the dispenser." beveragetype(choices) : "Beverage Type" : 0 = [ 0 : "Coca-Cola" 1 : "Sprite" 2 : "Diet Coke" 3 : "Orange" 4 : "Surge" 5 : "Moxie" 6 : "Random" ] input Activate(void) : "Enable this dispenser." ] @SolidClass base(Targetname, Parentname, Angles) = env_embers : "An entity used to create a volume in which to spawn fire embers." [ particletype(choices) : "Ember type" : 0 = [ 0 : "Normal" 1 : "Smooth Fade" 2 : "Pulled" ] density(integer) : "Density (particles per second)" : 50 lifetime(integer) : "Particle Lifetime (seconds)" : 4 speed(integer) : "Particle Speed (units per second)" : 32 rendercolor(color255) : "Ember Color (R G B)" : "255 255 255" spawnflags(Flags) = [ 1 : "Start On" : 0 2 : "Toggle" : 0 ] ] @PointClass base(Targetname, Parentname) size(-16 -16 -16, 16 16 16) = env_funnel : "HL1 Legacy: Large Portal Funnel" [ spawnflags(flags) = [ 1: "Reverse" : 0 ] ] @PointClass base(Targetname, Parentname) size(-16 -16 -16, 16 16 16) color(255 0 0) = env_blood : "An entity used to spawn blood effects." [ spraydir(angle) : "Spray Direction (Pitch Yaw Roll)" : "0 0 0" : "The general direction that the blood should spray and the direction to trace to apply the decal." color(choices) : "Blood Color" : 0 = [ 0 : "Red (Human)" 1 : "Yellow (Alien)" ] amount(string) : "Amount of blood (damage to simulate)" : "100" spawnflags(flags) = [ 1: "Random Direction" : 0 2: "Blood Stream" : 0 4: "On Player" : 0 8: "Spray decals" : 0 // dvs: support these flags //16: "Cloud" : 0 //32: "Drops" : 0 //64: "Gore" : 0 ] // Inputs input EmitBlood(void) : "Triggers the blood effect." ] @SolidClass base(Targetname, Parentname) = env_bubbles : "An entity used to create a volume in which to spawn bubbles." [ density(integer) : "Bubble density" : 2 frequency(integer) : "Bubble frequency" : 2 current(integer) : "Speed of Current" : 0 : "The speed of the water current in the volume, used to move the bubbles." spawnflags(Flags) = [ 1 : "Start Off" : 0 ] // Inputs input Activate(void) : "Activates the bubbles." input Deactivate(void) : "Deactivates the bubbles." input Toggle(void) : "Toggles the bubbles on and off." input SetDensity(integer) : "Sets the bubble density." input SetFrequency(integer) : "Sets bubble emission rate in bubbles per second." input SetCurrent(integer) : "Sets current speed in inches per second." ] @PointClass base(Targetname, Parentname) iconsprite("editor/env_explosion.vmt") = env_explosion : "An entity that creates an explosion at its origin." [ iMagnitude(Integer) : "Magnitude" : 100 : "The amount of damage done by the explosion." // If no radius override, magnitude will determine radius. iRadiusOverride(Integer) : "Radius Override" : 0 : "If specified, the radius in which the explosion damages entities. If unspecified, the radius will be based on the magnitude." fireballsprite(sprite) : "Fireball Sprite" : "sprites/zerogxplode.spr" rendermode(choices) : "Render Mode" : 5 = [ 0: "Normal" 4: "Solid" 5: "Additive" ] spawnflags(flags) = [ 1: "No Damage" : 0 2: "Repeatable" : 0 4: "No Fireball" : 0 8: "No Smoke" : 0 16: "No Decal" : 0 32: "No Sparks" : 0 64: "No Sound" : 0 128: "Random Orientation" : 0 256: "No Fireball Smoke" : 0 512: "No particles" : 0 1024: "No DLights" : 0 2048: "Don't clamp Min" : 0 4096: "Don't clamp Max" : 0 ] // Inputs input Explode(void) : "Triggers the explosion." ] @PointClass base(Targetname, Parentname) color(200 50 0) size(-8 -8 -8, 8 8 8) = env_smoketrail : "An entity that creates a smoke trail." [ opacity(float) : "Sprite Opacity" : "0.75" : "Opacity of the sprites (range from 0 - 1)." spawnrate(float) : "Spawn Rate" : "20" : "Number of particles to emit each second." lifetime(float) : "Particle Life Time" : "5.0" : "Number of seconds until each particle dies." startcolor(color255) : "Start Color" : "192 192 192" : "Starting color of the emitted particles." endcolor(color255) : "End Color" : "160 160 160" : "Ending color of the emitted particles." emittime(float) : "Emitter Life Time" : "0" : "Number of seconds until the env_smoketrail stops emitting particles. 0 means never stop emitting particles." minspeed(float) : "Minimum Random Speed" : "10" : "Minimum randomly-directed speed to use for emitted particles." maxspeed(float) : "Maximum Random Speed" : "20" : "Maximum randomly-directed speed to use for emitted particles." mindirectedspeed(float) : "Minimum Directed Speed" : "0" : "Minimum speed along the env_smoketrail's forward direction (x axis) to use for emitted particles." maxdirectedspeed(float) : "Maximum Directed Speed" : "0" : "Maximum speed along the env_smoketrail's forward direction (x axis) to use for emitted particles." startsize(float) : "Starting particle size" : "15" : "Starting particle size." endsize(float) : "Ending particle size" : "50" : "Ending particle size." spawnradius(float) : "Spawn radius" : "15" : "Distance from env_smoketrail at which particles are emitted." firesprite(sprite) : "Fire Sprite" : "sprites/firetrail.spr" smokesprite(sprite) : "Smoke Puff" : "sprites/whitepuff.spr" ] @PointClass base(Targetname, Parentname) sphere() sphere(inner_radius) iconsprite("editor/env_physexplosion.vmt") = env_physexplosion : "An entity that creates an explosion at its origin. If the no-damage spawnflag is set, the explosion won't be visible, but will apply force to any physics objects within its radius." [ magnitude(string) : "Magnitude" : "100" : "Amount of physics force applied by the explosion." radius(string) : "Clamp Radius (0 = auto)" : "0" : "If specified, the radius in which the explosion damages entities. If unspecified, the radius will be based on the magnitude." targetentityname(target_destination) : "Limit to Entity" : "" : "If specified, the explosion will only affect the matching entity." spawnflags(flags) = [ 1 : "No Damage - Only Force" : 1 2 : "Push players" : 0 4 : "Push radially - not as a sphere" : 0 8 : "Test LOS before pushing" : 0 16 : "Disorient player if pushed" : 0 ] inner_radius(float) : "Inner radius" : "0" : "If not zero, the LOS is calculated from a point intersecting this sphere." // Inputs input Explode(void) : "Trigger the explosion." // Outputs output OnPushedPlayer(void) : "Fires when the player is pushed by the explosion." ] @PointClass base(Targetname, Parentname) line(255 255 255, targetname, directionentityname) iconsprite("editor/env_physexplosion.vmt") = env_physimpact : "An entity that will cause a physics impact on another entity." [ angles(string) : "Pitch Yaw Roll (Y Z X)" : "0 0 0" : "Direction to project the impact." magnitude(integer) : "Magnitude" : 100 : "Strength of the impact." distance(integer) : "Distance" : 0 : "How far to project the impact (if 0 uses a default value)." directionentityname(target_destination) : "Point to Entity" : "" : "If set, 'Distance' and Angle settings are ignored and the direction and distance to the target entity will be used." spawnflags(flags) = [ 1: "No fall-off" : 0 2: "Infinite Length" : 0 4: "Ignore Mass" : 0 ] // Inputs input Impact(void) : "Trigger the impact" ] // This has been disabled until it can be reimplemented, destroyed, or renamed - jdw //@PointClass base(Targetname, Parentname) size(-4 -4 -4, 4 4 4) = env_splash : // "Can be used to create either a spash effect or a stream of falling or spurting liquid." + // "Will create a splash decal on the collided surface the same color as the liquid" //[ // spawnrate(float) : "SpawnRate" : "10" : "How many particles some out" // startcolor(color255) : "StartColor" : "100 100 100" : "Color of particles when the are emitted" // endcolor(color255) : "EndColor" : "240 110 0" : "Color that particles approach" // speed(float) : "Speed" : 3 : "Averate speed of an emitted particles" // speedrange(float) : "SpeedRange" : 1 : "Speed range of an emitted particles" // widthmin(float) : "WidthMin" : 2 : "Width of smallest particle emitted" // widthmax(float) : "WidthMax" : 8 : "Width of largest particle emitted" // noise(float) : "Noise" : "0.1" : "Amount of directional noise in stream" // lifetime(float) : "Lifetime" : 5 : "Lifetime of particles (in secs)" // numdecals(integer) : "Num Decals" : 1 : "Number of decals used (keep small)" // startactive(choices) : "Start On" : 1 = // [ // 0 : "No" // 1 : "Yes" // ] // // // Inputs // input SetSpawnRate(float) : "Sets how many particles come out" // input SetSpeed(float) : "Sets speed of emitted particle" // input SetNoise(float) : "Sets noise of emitted particle (0-1)" // input SetLifetime(float) : "Sets lifetime of emitted particles (in seconds)" // input TurnOn(void) : "Turns particles on" // input TurnOff(void) : "Turns particles off" //] @PointClass base(Targetname, Parentname, EnableDisable) iconsprite("editor/env_fire") color(0 180 0) = env_fire : "An entity that handles a single flame at its origin. The flame causes heat 'damage' to other env_fire entities around it, and will eventually ignite non-flaming env_fire entities nearby, causing the fire to spread." [ health(integer) : "Duration" : 30 : "Amount of time the fire will burn." firesize(integer) : "Size" : 64 : "Height (in world units) of the flame." fireattack(integer) : "Attack" : 4 : "Amount of time the fire takes to grow to full strength." firetype(choices) : "Type" : 0 = [ 0 : "Natural" 1 : "Plasma" ] spawnflags(flags) = [ 1: "Infinite Duration" : 0 2: "Smokeless" : 0 4: "Start On" : 0 8: "Start Full" : 0 16: "Don't drop" : 0 32: "No glow" : 0 128: "Delete when out" : 0 256: "Visible from above" : 0 ] ignitionpoint(float) : "Ignition Point" : 32 : "Amount of heat 'damage' to take before this flame should ignite." damagescale(float) : "Damage Scale" : "1.0" : "Multiplier of the burn damage done by the flame." // Inputs input StartFire(void) : "Start the fire." input Extinguish(float) : "Puts out the fire permanently in the number of seconds specified." input ExtinguishTemporary(float): "Puts out the fire temporarily in the number of seconds specified." // Outputs output OnIgnited(void) : "Fires when the fire is first ignited." output OnExtinguished(void) : "Fires when the fire is fully extinguished." ] @PointClass base(Targetname, Parentname) iconsprite("editor/env_firesource") color(255 255 0) sphere(fireradius) = env_firesource : "An entity that provides heat to all nearby env_fire entities. Cannot be extinguished." [ spawnflags(flags) = [ 1: "Start On" : 0 ] fireradius(float) : "Radius" : 128 : "The radius around this entity in which to provide heat." firedamage(float) : "Intensity / Damage" : 10 : "Amount of heat 'damage' to apply to env_fire entities within the radius." // Inputs input Enable(void) : "Enable fire source." input Disable(void) : "Disable fire source." ] @PointClass base(Targetname, Parentname) size(-4 -4 -4, 4 4 4) color(255 255 0) sphere(fireradius) = env_firesensor : "An entity that detects changes in heat nearby." [ spawnflags(flags) = [ 1: "Start On" : 1 ] fireradius(float) : "Radius" : 128 : "The radius around this entity in which to detect heat changes." heatlevel(float) : "Heat level" : 32 : "The target heat level to check for. Outputs are fired when the heat moves over this target level (increasing or decreasing)." heattime(float) : "Time at level" : 0 : "The amount of time the heat level must spend over the target level before the 'OnHeatLevelStart' output is fired." // Inputs input Enable(void) : "Enable fire sensor." input Disable(void) : "Disable fire sensor." output OnHeatLevelStart(void) : "Fires when the heat level has been sustained for the specified length of time." output OnHeatLevelEnd(void) : "Fires when the heat level drops below the target level." ] @PointClass base(Targetname) size(-4 -4 -4, 4 4 4) color(0 180 0) = env_entity_igniter : "An entity that catches a target entity on fire. If the entity is an animating model, it will have sprite flames attached to its skeleton. Otherwise the entity will emit particle flame puffs." [ target(target_destination) : "Entity to ignite" : : "Name of the entity to catch on fire." lifetime(float) : "Lifetime in seconds" : 10 : "Duration of flames." // Inputs input Ignite(void) : "Ignite the target entity." ] @PointClass base(Targetname, DXLevelChoice, Angles) iconsprite("editor/fog_controller.vmt") color(255 255 255) = env_fog_controller : "An entity that controls the fog and view distance in the map." [ // Inputs input SetStartDist(float) : "Set the fog start distance." input SetEndDist(float) : "Set the fog end distance." input TurnOn(void) : "Turn the fog on." input TurnOff(void) : "Turn the fog off." input SetColor(color255) : "Set the primary fog color." input SetColorSecondary(color255) : "Set the secondary fog color." input SetFarZ(integer): "Set the far clip plane distance." input SetAngles(string) : "Set the angles to use for the secondary fog direction." input SetColorLerpTo(color255) : "Set the primary fog color." input SetColorSecondaryLerpTo(color255) : "Set the secondary fog color." input SetStartDistLerpTo(float) : "Set the fog start distance." input SetEndDistLerpTo(float) : "Set the fog end distance." input StartFogTransition(void) : "Start fog transition." // Starting fog parameters for the level. These are selectable per LOD. fogenable(choices) : "Fog Enable" : 0 = [ 0 : "No" 1 : "Yes" ] fogblend(choices) : "Fog Blend" : 0 = [ 0 : "No" 1 : "Yes" ] use_angles(choices) : "Use Angles for Fog Dir" : 0 = [ 0 : "No" 1 : "Yes" ] fogcolor(color255) : "Primary Fog Color" : "255 255 255" fogcolor2(color255) : "Secondary Fog Color" : "255 255 255" fogdir(string) : "Primary Fog Direction" : "1 0 0" fogstart(string) : "Fog Start" : "500.0" fogend(string) : "Fog End" : "2000.0" foglerptime(float) : "Interpolate time" : "0" farz(string) : "Far Z Clip Plane" : "-1" ] @PointClass base(Targetname, Parentname, Angles) studioprop("models/editor/spot_cone.mdl") color(255 255 255) = env_steam : "An entity used to create a jet of steam." [ spawnflags(flags) = [ 1 : "Emissive" : 0 ] InitialState(choices) : "Initial State" : 0 = [ 0 : "Off" 1 : "On" ] //Type of particle to spew out type(choices) : "Particle Type" : 0 = [ 0 : "Normal" 1 : "Heat Wave" ] SpreadSpeed(integer) : "Spread Speed" : 15 : "The amount of random spread in the particle's velocity after they spawn." Speed(integer) : "Speed" : 120 : "The default speed at which the particles move after they spawn." StartSize(integer) : "Particle start size" : 10 : "The initial size of the particles after they spawn." EndSize(integer) : "Particle end size" : 25 : "The size of the particles at the point at which they are removed." Rate(integer) : "Emission rate" : 26 : "The rate of particle emission. i.e. particles per second." rendercolor(color255) : "Color (R G B)" : "255 255 255" JetLength(integer) : "Length of steam jet" : 80 : "The length of the jet determines the lifetime of each particle." renderamt(integer) : "Translucency" : 255 rollspeed(float) : "How fast does the particles spin" : 8 // Inputs input TurnOn(void) : "Turns the steam jet on." input TurnOff(void) : "Turns the steam jet off." input Toggle(void) : "Toggles the steam jet between on and off." input JetLength(integer) : "Sets the length of steam jet." input Rate(integer) : "Sets the particle emission rate in particles per second." input Speed(integer) : "Sets the default speed of the particles in units per second." input SpreadSpeed(integer) : "Sets the spread speed in units per second." ] @PointClass base(Targetname, Parentname, RenderFxChoices) size(-4 -4 -4, 4 4 4) line(255 255 255, targetname, LaserTarget) = env_laser : "An entity that creates a laser beam between itself and a given target." [ LaserTarget(target_destination) : "Target of Laser" : : "Name of entity, or entities, to strike at. The target is randomly chosen if there are multiple entities matching the given name." renderamt(integer) : "Brightness (1 - 255)" : 100 rendercolor(color255) : "Beam Color (R G B)" : "255 255 255" width(float) : "Width of Beam" : 2 : "The width of the laser beam, in pixels." NoiseAmplitude(integer) : "Amount of noise (0-255)" : 0 : "The amount of noise in the beam. 0 is a perfectly straight beam." texture(sprite) : "Sprite Name" : "sprites/laserbeam.spr" : "The material used to draw the laser beam." EndSprite(sprite) : "End Sprite" : "" : "If specified, this sprite will be drawn at the end of the laser beam." TextureScroll(integer) : "Texture Scroll Rate (0-100)" : 35 : "Rate at which the beam texture should scroll along the beam." framestart(integer) : "Starting Frame" : 0 : "The frame to start the beam texture on." damage(string) : "Damage / second" : "100" : "How much damage this laser does. per second. to things it hits." dissolvetype(choices) : "Dissolve Type" : "None" = [ -1 : "None" 0 : "Energy" 1 : "Heavy electrical" 2 : "Light electrical" ] spawnflags(flags) = [ 1 : "Start On" : 0 16: "StartSparks" : 0 32: "EndSparks" : 0 64: "Decal End" : 0 ] // Inputs input TurnOn(void) : "Turns the laser on." input TurnOff(void) : "Turns the laser off." input Toggle(void) : "Toggles the laser between on and off." ] @PointClass base(Targetname) size(-8 -8 -8, 8 8 8) = env_message : "An entity that draws a text message on player's HUDs." [ message(string) : "Message Text" spawnflags(flags) = [ 1: "Play Once" : 0 2: "All Clients" : 0 ] messagesound(sound) : "Sound Effect" : "" : "When the message is shown, this sound effect will be played, originating from this entity." messagevolume(string) : "Volume 0-10" : "10" : "Volume of the sound effect." messageattenuation(Choices) : "Sound Radius" : 0 = [ 0 : "Small Radius" 1 : "Medium Radius" 2 : "Large Radius" 3 : "Play Everywhere" ] // Inputs input ShowMessage(void) : "Shows the message and plays the sound." // Outputs output OnShowMessage(void) : "Fired when the message is activated." ] @PointClass base(Targetname) size(-8 -8 -8, 8 8 8) = env_hudhint : "An entity to control the display of HUD hints. HUD hints are used to show the player what key is bound to a particular command." [ message(string) : "Hint Text (localized)" : "" : "This should be set to match the desired HUD hint entry in the hl2\resource\valve_english.txt." // Inputs input ShowHudHint(void) : "Shows the hint message." input HideHudHint(void) : "Hides the hint message." ] @PointClass sphere() iconsprite("editor/env_shake.vmt") base(Targetname, Parentname) = env_shake : "An entity to control screen shake on players." [ spawnflags(flags) = [ 1: "GlobalShake" : 0 //2: "Disrupt player control" : 0 // doesn't work 4: "In Air" : 0 // shakes objects even if they are not onground 8: "Physics" : 0 // shakes physically as well as the camera 16: "Ropes" : 0 // shakes ropes too. 32: "DON'T shake view (for shaking ropes or physics only)" : 0 ] amplitude(float) : "Amplitude (0-16)" : "4" : "The amount of noise in the screen shake. Should be a range between 0 and 16." radius(float) : "Effect Radius" : "500" : "The radius around this entity in which to affect players." duration(float) : "Duration (seconds)" : "1" : "The length of time in which to shake the player's screens." frequency(float) : "Frequency" : "2.5" : "The frequency used to apply the screen shake. Should be a value between 0 and 255, where 0.1 = jerk, and 255.0 = rumble." // Inputs input Amplitude(string) : "Set the amplitude (0-16)" input Frequency(string) : "Set the frequence. Should be a value between 0 and 255, where 0.1 = jerk, and 255.0 = rumble." input StartShake(void) : "Start the shake." input StopShake(void) : "Stop the shake." ] @PointClass sphere() size(-4 -4 -4, 4 4 4) base(Targetname, Parentname) = env_viewpunch : "Causes a view punch on players." [ spawnflags(flags) = [ 1: "Punch all players (ignore radius)" : 0 2: "Punch players in the air" : 0 ] punchangle(angle) : "Punch angles" : "0 0 90" : "The punch angles to apply." radius(float) : "Effect Radius" : "500" : "The radius around this entity in which to affect players." // Inputs input ViewPunch(void) : "Performs the view punch." ] @PointClass base(Targetname, Parentname) = env_rotorwash_emitter : "Creates rotorwash." [ altitude(float) : "Altitude" : "1024" : "Altitude the rotorwash will show up." ] @PointClass base(gibshooterbase) iconsprite("editor/gibshooter.vmt") = gibshooter : "An entity that shoots out gibs. Style of body part depends on language type." [ ] @PointClass base(gibshooterbase, RenderFields) iconsprite("editor/env_shooter.vmt") = env_shooter : "An entity that shoots models, or sprites, out of its origin." [ shootmodel(studio) : "Model" : "" : "Thing to shoot out. Can be a .mdl or a .vmt." shootsounds(choices) :"Material Sound" : -1 = [ -1: "None" 0: "Glass" 1: "Wood" 2: "Metal" 3: "Flesh" 4: "Concrete" ] simulation(choices) :"Simulate" : 0 = [ 0: "Point" 1: "Physics" 2: "Ragdoll" ] skin(integer) : "Gib Skin" : 0 : "Some models have multiple versions of their textures, called skins. Set this to a number other than 0 to use that skin on all gibs produced by this shooter." spawnflags(flags) = [ 2 : "On fire" : 0 4 : "strict remove after lifetime" : 0 ] nogibshadows(choices) :"Disable Shadows on Gibs" : 0 = [ 0: "No" 1: "Yes" ] gibgravityscale(float) : "Gib gravity scale" : "1" : "ONLY WORKS FOR POINT GIBS. This field allows you to scale gravity so that gibs fall faster, slower, or not at all." ] @PointClass base(gibshooterbase, RenderFields) iconsprite("editor/env_shooter.vmt") = env_rotorshooter : "An entity that creates gibs when it's within the influence of a helicopter's rotor wash." [ shootmodel(studio) : "Model" : "" : "Thing to shoot out. Can be a .mdl or a .vmt." shootsounds(choices) :"Material Sound" : -1 = [ -1: "None" 0: "Glass" 1: "Wood" 2: "Metal" 3: "Flesh" 4: "Concrete" ] simulation(choices) :"Simulate" : 0 = [ 0: "Point" 1: "Physics" 2: "Ragdoll" ] skin(integer) : "Gib Skin" : 0 : "Some models have multiple versions of their textures, called skins. Set this to a number other than 0 to use that skin on all gibs produced by this shooter." spawnflags(flags) = [ 2 : "On fire" : 0 ] rotortime(float) : "Time Under Rotor" : "1" : "The average time it has to be under the rotor before it shoots a gib." rotortimevariance(float) : "Time variance" : "0.3" : "The random amount to vary the time it has to be under the rotor before it shoots a gib." ] @PointClass base(Targetname,Parentname) sphere() iconsprite("editor/env_soundscape.vmt") = env_soundscape_proxy : "An entity that acts like a soundscape but gets all of its sound parameters from another env_soundscape entity." [ MainSoundscapeName(target_destination) : "Soundscape Entity" : "" : "The soundscape to get all sound parameters from." radius(integer) : "Radius" : 128 // NEEDHELP: The datadesc doesn't include this entry. Probably not used. ] @PointClass base(Targetname,Parentname,EnableDisable) sphere() iconsprite("editor/env_soundscape.vmt") line(255 255 255, targetname, position0) line(255 255 255, targetname, position1) line(255 255 255, targetname, position2) line(255 255 255, targetname, position3) line(255 255 255, targetname, position4) line(255 255 255, targetname, position5) line(255 255 255, targetname, position6) line(255 255 255, targetname, position7) = env_soundscape : "An entity to control sound in an area. The active soundscape at any time is the last one that had line-of-sight to the player, and was within the radius." [ radius(integer) : "Radius" : 128 : "If set to -1, then the player can hear the soundscape as long as he can see it (regardless of distance to it)." soundscape(choices) : "Soundscape" : "Nothing" : "The name of the soundscape to use. Corresponds to an entry in the soundscapes*.txt file in the hl2\scripts directory." = [ "Nothing" : "Nothing" "Automatic" : "Automatic" "Automatic_Dialog" : "Automatic (dialog)" "GenericIndoor" : "Indoor" "GenericOutdoor" : "Outdoor" ] position0(target_destination) : "Sound Position 0" : "" : "A sound position that will be referenced inside the soundscape text file. Usually used to position a set of sounds within the world." position1(target_destination) : "Sound Position 1" : "" : "A sound position that will be referenced inside the soundscape text file. Usually used to position a set of sounds within the world." position2(target_destination) : "Sound Position 2" : "" : "A sound position that will be referenced inside the soundscape text file. Usually used to position a set of sounds within the world." position3(target_destination) : "Sound Position 3" : "" : "A sound position that will be referenced inside the soundscape text file. Usually used to position a set of sounds within the world." position4(target_destination) : "Sound Position 4" : "" : "A sound position that will be referenced inside the soundscape text file. Usually used to position a set of sounds within the world." position5(target_destination) : "Sound Position 5" : "" : "A sound position that will be referenced inside the soundscape text file. Usually used to position a set of sounds within the world." position6(target_destination) : "Sound Position 6" : "" : "A sound position that will be referenced inside the soundscape text file. Usually used to position a set of sounds within the world." position7(target_destination) : "Sound Position 7" : "" : "A sound position that will be referenced inside the soundscape text file. Usually used to position a set of sounds within the world." // Inputs input Enable(void) : "Enable the soundscape." input Disabled(void) : "Disable the soundscape." input ToggleEnabled(void) : "Toggle the soundscape enabled state." // Outputs output OnPlay(void) : "Fired when this soundscape becomes the active one." ] @PointClass base(env_soundscape) sphere() iconsprite("editor/env_soundscape.vmt") = env_soundscape_triggerable : "An entity that works like env_soundscape except that it works in conjunction with trigger_soundscape to determine when a player hears it." [ ] @PointClass base(Targetname, Parentname, Angles) iconsprite("editor/env_spark.vmt") = env_spark : "An entity used to create sparks at its origin." [ MaxDelay(string) : "Max Delay" : "0" : "The longest delay between sparks (in seconds)." Magnitude(choices) : "Magnitude" : 1 : "The size of the sparks." = [ 1 : "Small" 2 : "Medium" 5 : "Large" 8 : "Huge" ] TrailLength(choices) : "Spark Trail Length" : 1 = [ 1 : "Short" 2 : "Medium" 3 : "Long" ] spawnflags(flags) = [ 64: "Start ON" : 0 128: "Glow" : 0 256: "Silent" : 0 512: "Directional" : 0 ] // Inputs input StartSpark(void) : "Start the spark effect." input StopSpark(void) : "Stop the spark effect." input ToggleSpark(void) : "Toggle the on/off state of the spark effect." input SparkOnce(void) : "Spark once." ] @PointClass base(Targetname, Parentname, RenderFields,DXLevelChoice) size(-2 -2 -2, 2 2 2) sprite() color(20 140 20) = env_sprite : "An entity that controls the drawing of a sprite in the world." [ framerate(string) : "Framerate" : "10.0" : "Rate at which the sprite should animate, if at all." model(sprite) : "Sprite Name" : "sprites/glow01.spr" : "Material of the sprite to be drawn." scale(string) : "Scale" : "" : "Scale multiplier of the sprite." spawnflags(flags) = [ 1: "Start on" : 0 2: "Play Once" : 0 ] GlowProxySize(float) : "Size of Glow Proxy Geometry." : "2.0" : "Size of the glow to be rendered for visibility testing. Must be larger than the distance from the sprite center to empty space. So if this glow is inside geometry (like a light bulb), set this value to be bigger than the bulb's radius. Any time a sphere of this radius would be visible (poking through any nearby geometry), the glow will be rendered." HDRColorScale(float) : "HDR color scale." : "1.0" : "float value to multiply sprite color by when running in HDR mode." // Inputs input SetScale(float) : "Set the sprite's scale (0 - 8.0)." input HideSprite(void) : "Hide the sprite. Won't be drawn until the 'ShowSprite' input is received." input ShowSprite(void) : "Show the sprite." input ToggleSprite(void) : "Toggle the sprite between hidden and shown." ] @PointClass base(Targetname, Angles) iconsprite("editor/env_wind.vmt") = env_wind : "An entity to control wind in the map. Partially functional." [ //gustsound(sound) : "Gust Sound Filename" : "" : "Sound to be played to simulate the gusting wind." minwind(integer) : "Min normal speed" : 20 : "Minimum speed of the wind while idling." maxwind(integer) : "Max normal speed" : 50 : "Maximum speed of the wind while idling." mingust(integer) : "Min gust speed" : 100 : "Minimum speed of wind gusts." maxgust(integer) : "Max gust speed" : 250 : "Maximum speed of wind gusts." mingustdelay(integer) : "Min gust delay" : 10 : "Minimum time delay between random gusts." maxgustdelay(integer) : "Max gust delay" : 20 : "Maximum time delay between random gusts." gustduration(integer) : "Gust Duration" : 5 : "How long will the wind gust for." gustdirchange(integer) : "Max gust dir change (degrees)" : 20 : "Maximum amount that the wind's direction changes due to a gust." output OnGustStart(void) : "Fired when a wind gust begins." output OnGustEnd(void) : "Fired when a wind gust ends." ] @PointClass base(Angles) size(-16 -16 -16, 16 16 16) color(0 0 255) = sky_camera : "An entity used to control the 3D Skybox. Its origin is used to determine the 3D Skybox's position relative to the map. Place this entity, in the 3D Skybox, at the point where the origin of the map should be." [ scale(integer) : "3D Skybox scale" : 16 : "Scale of the skybox." fogenable(choices) : "Fog Enable" : 0 = [ 0 : "No" 1 : "Yes" ] fogblend(choices) : "Fog Blend" : 0 = [ 0 : "No" 1 : "Yes" ] use_angles(choices) : "Use Angles for Fog Dir" : 0 = [ 0 : "No" 1 : "Yes" ] fogcolor(color255) : "Primary Fog Color" : "255 255 255" fogcolor2(color255) : "Secondary Fog Color" : "255 255 255" fogdir(string) : "Primary Fog Dir" : "1 0 0" fogstart(string) : "Fog Start" : "500.0" : "Distance at which the skybox fog should start." fogend(string) : "Fog End" : "2000.0" : "Distance at which the skybox fog should be fully opaque." ] @BaseClass base(Targetname, ResponseContext) = BaseSpeaker [ delaymin(string) : "Min Delay Between Announcements" : "15" delaymax(string) : "Max Delay Between Announcements" : "135" spawnflags(flags) = [ 1: "Start Silent" : 0 2: "Play Everywhere" : 0 ] rulescript(string) : "Context rule script" : "" : "Script file containing rules for playing appropriate sounds." concept(string) : "Concept name" : "" : "High level concept name used as primary search key." // Inputs input TurnOn(void) : "Turn on the random announcements." input TurnOff(void) : "Turn off the random announcements." input Toggle(void) : "Toggle the random announcements off and on." ] //------------------------------------------------------------------------- // // Game Entities // //------------------------------------------------------------------------- @PointClass base(Targetname) = game_weapon_manager : "An entity used to limit the number of a particular weapon type in the world. Useful in places where NPCs are spawning rapidly, dying, and dropping weapons." [ weaponname(string) : "Weapon Classname" : "" : "Classname of the weapon type to limit." maxpieces(integer) : "Max Allowed in Level" : 0 : "The maximum amount of the specified weapon type allowed in the world." ammomod(float) : "Ammo modifier" : 1 : "Modifier for ammount of ammo dropped by a weapon." // Inputs input SetAmmoModifier(float): "Adjust the ammo modifier." ] @PointClass base(Targetname) iconsprite("editor/game_end.vmt") = game_end : "An entity that ends a multiplayer game." [ master(string) : "Master (Obsolete)" : : "Legacy support: The name of a master entity. If the master hasn't been activated, this entity will not activate." input EndGame(void) : "End the multiplayer game." ] @PointClass base(Targetname) size(-8 -8 -8, 8 8 8) = game_player_equip : "An entity that gives equipment to the player who activates it. To use, add new keys to this entity, where each key is the classname of a weapon/item, and the corresponding value is the number of those weapons/items to give to the player who uses this entity. If the 'Use Only' spawnflag isn't set, then players can just touch this entity to get the equipment." [ spawnflags(flags) = [ 1: "Use Only" : 0 ] // synEdit TeamNum(choices) : "Team Number" : "0" : "Team this entity will be used for." = [ "0" : "All" "2" : "Combine Team" "3" : "Rebel Team" ] input Use(void) : "Equip the activator of this event the items of this entity." master(string) : "Team Master (Obsolete)" : : "Legacy support: The name of a master entity. If the master hasn't been activated, this entity will not activate." ] @PointClass base(Targetname) size(-8 -8 -8, 8 8 8) = game_player_team : "An entity that changes the team of the player who activates it." [ spawnflags(flags) = [ 1 : "Remove On fire" : 0 2 : "Kill Player" : 0 4 : "Gib Player" : 0 ] target(string) : "game_team_master to use" master(string) : "Master (Obsolete)" : : "Legacy support: The name of a master entity. If the master hasn't been activated, this entity will not activate." ] @PointClass base(Targetname) size(-8 -8 -8, 8 8 8) = game_score : "An entity that awards/deducts points from the player who activates it." [ spawnflags(flags) = [ 1: "Allow Negative" : 0 2: "Team Points" : 0 ] points(integer) : "Points to add (+/-)" : 1 master(string) : "Master (Obsolete)" : : "Legacy support: The name of a master entity. If the master hasn't been activated, this entity will not activate." // Inputs input ApplyScore(void) : "Add score to player." ] @PointClass base(Targetname) iconsprite("editor/game_text.vmt") = game_text : "An entity that displays text on player's screens." [ spawnflags(flags) = [ 1: "All Players" : 0 ] message(string) : "Message Text" : "" : "Message to display onscreen." x(string) : "X (0 - 1.0 = left to right) (-1 centers)" : "-1" : "Horizontal position on the player's screens to draw the text. The value should be between 0 and 1, where 0 is the far left of the screen and 1 is the far right. -1 centers the text." y(string) : "Y (0 - 1.0 = top to bottom) (-1 centers)" : "-1" : "Vertical position on the player's screens to draw the text. The value should be between 0 and 1, where 0 is the top of the screen and 1 is the bottom. -1 centers the text." effect(Choices) : "Text Effect" : 0 = [ 0 : "Fade In/Out" 1 : "Credits" 2 : "Scan Out" ] color(color255) : "Color1" : "100 100 100" color2(color255) : "Color2" : "240 110 0" fadein(string) : "Fade in Time (or character scan time)" : "1.5" : "The time it should take for the text to fully fade in." fadeout(string) : "Fade Out Time" : "0.5" : "The time it should take for the text to fade out, after the hold time has expired." holdtime(string) : "Hold Time" : "1.2" : "The time the text should stay onscreen, after fading in, before it begins to fade out." fxtime(string) : "Scan time (scan effect only)" : "0.25" : "If the 'Text Effect' is set to Scan Out, this is the time it should take to scan out all the letters in the text." channel(choices) : "Text Channel" : 1 : "You can have up to four individual game_text messages onscreen at once, stored in channels. Select which channel this text should be placed in, which will overwrite any active message already in that channel." = [ 1 : "Channel 1" 2 : "Channel 2" 3 : "Channel 3" 4 : "Channel 4" ] master(string) : "Master" : : "Legacy support: The name of a master entity. If the master hasn't been activated, this entity will not activate." // Inputs input Display(void) : "Display the message text." ] @PointClass base(Parentname, Angles) size(-2 -2 -2, 2 2 2) = point_enable_motion_fixup : "An entity used to move a motion-disabled prop when it enables motion. Parent this entity to the prop, and when the prop has its motion enabled, it will immediately teleport to the origin of this entity." [ ] @PointClass base(Targetname, Parentname) size(-8 -8 -8, 8 8 8) = point_message : "An entity that displays a text message in the world, at its origin." [ spawnflags(flags) = [ 1: "Start Disabled" : 0 ] message(string) : "Entity Message" radius(integer) : "Show message radius" : 128 : "Distance the player must be within to see this message." developeronly(choices) : "Developer Only?" : 0 : "If set, this message will only be visible when developer mode is on." = [ 0 : "No" 1 : "Yes" ] // Inputs input Enable(void) : "Start displaying the message text, if the player is within the message radius." input Disable(void) : "Stop displaying the message text." ] @PointClass base(Targetname, Parentname, RenderFields, Angles) studio("models/editor/axis_helper_thick.mdl") = point_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." [ spawnflags(Flags) = [ 1 : "Start On" : 1 2 : "No Dynamic Light" : 0 ] 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." : "1.0" : "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" ] @PointClass base(Targetname, Parentname) size(-8 -8 -8, 8 8 8) = point_tesla : "An entity that creates tesla lightning arcs around its origin." [ m_SourceEntityName(string) : "Source Entity" : "" : "If specified, tesla lightning will originate from the specified entity. Otherwise, they originate from this entity." m_SoundName(string) : "Sound Name" : "DoSpark" : "Sound to be played whenever lightning is created." texture(sprite) : "Sprite Name" : "sprites/physbeam.vmt" : "Material to use for the tesla lightning beams." m_Color(color255) : "Color" : "255 255 255" m_flRadius(integer) : "Radius" : 200 : "Radius around the origin to find a point to strike with a tesla lightning beam." beamcount_min(integer) : "Min # of Beams" : 6 : "Minimum number of tesla lightning beams to create when creating an arc." beamcount_max(integer) : "Max # of Beams" : 8 : "Maximum number of tesla lightning beams to create when creating an arc." thick_min(string) : "Min Beam Width" : "4" : "Minimum width of the tesla lightning beams." thick_max(string) : "Max Beam Width" : "5" : "Maximum width of the tesla lightning beams." lifetime_min(string) : "Min Time Visible" : "0.3" : "Minimum lifetime of the tesla lightning beams." lifetime_max(string) : "Max Time Visible" : "0.3" : "Maximum lifetime of the tesla lightning beams." interval_min(string) : "Min Time Between Arcs":"0.5" : "Minimum time delay between random arcing." interval_max(string) : "Max Time Between Arcs":"2" : "Maximum time delay between random arcing." // Inputs input TurnOn(void) : "Turn emitter on." input TurnOff(void) : "Turn emitter off." input DoSpark(void) : "Force a single arc." ] @PointClass base(Targetname) size(-8 -8 -8, 8 8 8) = point_clientcommand : "An entity that issues commands to the client console, as if it was typed in by the player (if activator is a player, or the local player in single player)." [ // Inputs input Command(string) : "Command to execute." ] @PointClass base(Targetname) size(-8 -8 -8, 8 8 8) = point_servercommand : "An entity that issues commands to the server console." [ // Inputs input Command(string) : "Command to execute." ] @PointClass base(Targetname) size(-8 -8 -8, 8 8 8) = game_ui : "An entity used to override player input when the player is looking at it." [ spawnflags(flags) = [ 32 : "Freeze Player" : 1 64 : "Hide Weapon" : 1 128 : "+Use Deactivates" : 1 256 : "Jump Deactivates" : 1 ] FieldOfView(float) : "FieldOfView" : "-1.0" : "The amount of tolerance in the view checking when determining whether the player's input is still under control. 1.0 = straight ahead, 0.0 = +/- 90 degrees, -1.0 = all directions. If the player isn't within the tolerance, the player regains control." // Inputs input Deactivate(void) : "Return Player Control." input Activate(void) : "Take Player Control." // Outputs output PlayerOn(void) : "Fired whenever this entity starts controlling the player's input." output PlayerOff(void) : "Fired whenever this entity stops controlling the player's input." output PressedMoveLeft(void) : "Fired whenever the player presses the moveleft key." output PressedMoveRight(void) : "Fired whenever the player presses the moveright key." output PressedForward(void) : "Fired whenever the player presses the forward key." output PressedBack(void) : "Fired whenever the player presses the backward key." output PressedAttack(void) : "Fired whenever the player presses the attack key." output PressedAttack2(void) : "Fired whenever the player presses the secondary attack key." output XAxis(string) : "An output that fires whenever the X axis of the player's input changes. i.e. -1 when the player has moveleft key down, 1 when the player has moveright key down, and 0 if neither." output YAxis(string) : "An output that fires whenever the Y axis of the player's input changes. i.e. -1 when the player has backward key down, 1 when the player has forward key down, and 0 if neither." output AttackAxis(string) : "An output that fires whenever the state of the player's attack key changes. i.e. 1 when the player has the attack key down, 0 otherwise." output Attack2Axis(string) : "An output that fires whenever the state of the player's secondary attack key changes. i.e. 1 when the player has the secondary attack key down, 0 otherwise." ] @SolidClass base(Targetname, Parentname) = game_zone_player : "An entity used to count the number of players within a zone." [ // Inputs input CountPlayersInZone(void) : "Count the number of players in the zone, and fire the corresponding outputs." // Outputs output OnPlayerInZone(void) : "Fired whenever a count finds a player inside the zone, with the player as the activator." output OnPlayerOutZone(void) : "Fired whenever a count finds a player outside the zone, with the player as the activator." output PlayersInCount(integer) : "Fired after a count, and contains the number of players found inside the zone." output PlayersOutCount(integer) : "Fired after a count, and contains the number of players found outside the zone." ] //------------------------------------------------------------------------- // // Info Entities // //------------------------------------------------------------------------- @PointClass base(Targetname) decal() studio("models/editor/axis_helper_thick.mdl") = infodecal : "An entity that places a decal on the world. If the decal has no target name, it will immediately apply itself when the level is loaded. "+ "If it has a name specified, it won't apply until it receives the 'Activate' input." [ texture(decal) LowPriority(choices) : "Low Priority (can be replaced)" : 0 = [ 0 : "No" 1 : "Yes" ] // Inputs input Activate(void) : "Force the decal to apply itself to the world." ] // A decal to be applied to a prop or the world using specified origin and orientation and radius, uses an orientation angle and a radius to determine // ray to cast for projection @PointClass base(Angles,Targetname) decal() studio("models/editor/axis_helper_thick.mdl") = info_projecteddecal : "An entity that projects a decal onto the world (or props). If the decal has no target name, it will immediately apply itself when "+ "the level is loaded. If it has a name specified, it won't apply until it receives the 'Activate' input." [ texture(decal) Distance(float) : "Distance" : 64 : "Distance from the origin to project the decal." // Inputs input Activate(void) : "Force the decal to apply itself to the world." ] @PointClass = info_no_dynamic_shadow : "Use this entity to mark surfaces that shouldn't receive dynamic shadows. Useful to apply to walls and floors "+ "where shadows are drawn improperly, giving away the location of enemies." [ sides(sidelist) : "Brush faces" ] @PointClass base(PlayerClass, Angles) studio("models/editor/playerstart.mdl") = info_player_start : "This entity indicates the position and facing direction at which the player will spawn. Any number of "+ "info_player_start entities may be placed in a map for when working in cordoned-off portions of the map. "+ "When multiple info_player_start entities are present in a map, set the 'Master' spawnflag on one of them "+ "to indicate which one should be used when running the entire map." [ spawnflags(flags) = [ 1: "Master (Has priority if multiple info_player_starts exist)" : 0 ] ] @PointClass size(-1 -1 0, 1 1 1) color(80 150 225) studio("models/editor/overlay_helper.mdl") overlay() = info_overlay : "An entity that places an overlay on the world." [ material(material) : "Material" sides(sidelist) : "Brush faces" RenderOrder(integer) : "Render Order" : 0 : "Higher values render after lower values. This value can be 0-3." StartU(float) : "U Start" : "0.0" EndU(float) : "U End" : "1.0" StartV(float) : "V Start" : "0.0" EndV(float) : "V End" : "1.0" BasisOrigin(Vector) readonly : "Overlay Basis Origin(Read-Only)" BasisU(Vector) readonly : "Overlay Basis U(Read-Only)" BasisV(Vector) readonly : "Overlay Basis V(Read-Only)" BasisNormal(Vector) readonly : "Overlay Basis Normal(Read-Only)" uv0(vector) readonly : "Overlay Point 1(Read-Only)" uv1(vector) readonly : "Overlay Point 2(Read-Only)" uv2(vector) readonly : "Overlay Point 3(Read-Only)" uv3(vector) readonly : "Overlay Point 4(Read-Only)" ] @PointClass size(-8 -8 -8, 8 8 8) sidelist(sides) sidelist(sides2) overlay_transition() = info_overlay_transition : "Overlay Transition" [ material(material) : "Material" sides(sidelist) : "Brush faces" sides2(sidelist) : "Water faces" LengthTexcoordStart(float) : "Texcoord Length Start" : "0.0" LengthTexcoordEnd(float) : "Texcoord Length End" : "1.0" WidthTexcoordStart(float) : "Texcoord Width Start" : "0.0" WidthTexcoordEnd(float) : "Texcoord Width End" : "1.0" Width1(float) : "Width Land" : "25.0" Width2(float) : "Width Water" : "25.0" DebugDraw(integer) : "Show Debug" : 0 : "Boolean value (0 or 1)." ] @PointClass size(-4 -4 -4, 4 4 4) color(0 180 0) = info_intermission : "An entity that defines an intermission spot where dead players will float until they respawn." [ target(target_destination) : "Entity to look at" : : "Name of entity that dead players will face while in intermission at this spot." ] @PointClass base(Targetname) iconsprite("editor/info_landmark") = info_landmark : "An entity that acts as a landmark for transitions to another level. There should be a corresponding info_landmark entity in the next map. Entities will be transitioned to the next level relative to the info_landmark entities." [ ] @PointClass base(Targetname) size(-8 -8 -8, 8 8 8) = info_null : "An entity that's immediately removed on spawning. Useful as a spotlight target." [ ] @PointClass base(Targetname, Parentname, Angles) iconsprite("editor/info_target.vmt") = info_target : "An entity that does nothing. Very useful as a positioning entity for other entities to refer to (i.e. the endpoint of an env_beam)" [ input DispatchEffect(string) : "Dispatch an effect from this point. Unfinished." ] @PointClass base(Targetname, EnableDisable, Parentname, Angles) iconsprite("editor/info_target.vmt") sphere(radius) = phys_ragdollmagnet : "An entity that acts like a magnet for ragdolls. Useful for crafting exaggerated ragdoll behavior (i.e. guys falling over rails on death). If the "+ "Bar Magnet spawnflag is set, the magnet works like it was a cylindrical magnet i.e. it attracts ragdolls to the nearest point on a line." [ axis(vecline) : "Bar Magnet Axis" radius(float) : "Effective Radius" : "512" : "Radius in which ragdolls are affected around this entity's origin." force(float) : "Force" : "5000" : "Magnetic force to apply to ragdolls within the radius. Expressed as kilograms per inch per second. So a force of 1000 will add 10 inches/second to a 100kg man. It will add 100 inches per second to a 10kg headcrab." target(string) : "Entity to affect" : "" : "If specified, the phys_ragdollmagnet will only affect the target entity." spawnflags( Flags ) = [ 2 : "Bar Magnet (use axis helper)" : 0 ] ] @PointClass base(Targetname) iconsprite("editor/info_lighting.vmt") = info_lighting : "An entity that can be used to change the lighting origin of a prop_static. Set the prop_static's Lighting Origin to point at this entity to "+ "make the prop_static light as if it was at the info_lighting's origin. Good for prop_static entities that are embedded in world geometry (like rocks/windows/etc)." [ ] // This is obsolete, info_target is all you need now. @PointClass base(Targetname, Parentname, Angles, PlayerClass) studio("models/editor/playerstart.mdl") = info_teleport_destination : "An entity that does nothing itself, but can be used to specify the destination for a trigger_teleport entity. An info_target can be used instead." [ ] //------------------------------------------------------------------------- // // Nodes and Hints // //------------------------------------------------------------------------- @PointClass base(Node) studio("models/editor/ground_node.mdl") color(232 219 8) = info_node : "A navigation node for ground moving NPCs. Navigation nodes are baked into the nodegraph so that NPCs can move " + "to them. Ground nodes fall to the ground when they spawn." [ spawnflags(Flags) = [ 1 : "Force human permission" : 0 2 : "Force small_centered permission" : 0 4 : "Force wide_human permission" : 0 8 : "Force tiny permissiont" : 0 16 : "Force wide_short permission" : 0 32 : "Force medium permission" : 0 64 : "Force tiny_centered permission" : 0 128 : "Force large permission" : 0 256 : "Force large_centered permission" : 0 512 : "Keep editor position" : 0 ] ] @PointClass base(Targetname, Angles, HintNode) studio("models/editor/ground_node_hint.mdl") color(232 219 8) = info_node_hint : "A navigation node for ground moving NPCs that includes some context information for NPCs that are interested in it. The hint might " + "indicate a window that could be looked out of, or an item of interest that could be commented on. Many hint nodes are NPC-specific, " + "so it's helpful to use naming conventions like 'Crow: Fly to point' in the hint choices list. The angles of a hint node indicate what direction " + "the NPC should face to perform the hint behavior.\n\n" + "It's important to understand the distinction between scripts, such as scripted_sequence and scripted_schedule, and info_hint entities. Scripts summon " + "NPCs to specific cue points to play their parts, while hints provide context information to the AI that they use to perform their " + "behaviors. Hints require code support in the NPC, while scripts are generic and may require only animations to play. Use a hint if the behavior is driven " + "by the AI, use a script if the behavior is driven by the map." [ // Outputs output OnNPCStartedUsing(string) : "Fired when an NPC has reached this node and started using it. Passes along the NPC." output OnNPCStoppedUsing(string) : "Fired when an NPC has stopped using this node. Passes along the NPC." ] @PointClass base(Node) studio("models/editor/air_node.mdl") color(232 171 8) = info_node_air : "A navigation node for flying NPCs. Air navigation nodes are baked into the nodegraph so that NPCs can move " + "to them. Air nodes do not fall to the ground when they spawn." [ nodeheight(integer) : "NodeHeight" : 0 ] @PointClass base(Angles, Targetname, HintNode) studio("models/editor/air_node_hint.mdl") color(232 171 8) line(255 255 255, nodeid, TargetNode) = info_node_air_hint : "A navigation node for flying NPCs that includes some context information for NPCs that are interested in it. The hint might " + "indicate a window that could be looked into, or an item of interest that could be commented on. Many hint nodes are NPC-specific, " + "so it's helpful to use naming conventions like 'Crow: Fly to point' in the hint choices list. The angles of a hint node indicate what direction " + "the NPC should face to perform the hint behavior." [ nodeheight(integer) : "NodeHeight" : 0 ] @PointClass base(Targetname, Angles, HintNode) studio("models/editor/node_hint.mdl") color(255 255 255) = info_hint : "A hint that is not used for navigation. They don't go into the nodegraph, nor do they fall to the ground. Use these to provide " + "some spatial context for NPCs, such as 'look here if you can't find the player' or 'throw rocks at this spot'." [ ] @PointClass base(Targetname) color(220 180 0) size(-8 -8 -8, 8 8 8) line(255 255 255, nodeid, StartNode, nodeid, EndNode) = info_node_link : "A dynamic connection between two navigation nodes. You specify the node IDs of the start and end nodes, and then you can use entity I/O " + "to turn on and off the connection. This could be used to create or destroy a connection in the nodegraph because of some event in your map " + "(a bridge being created/destroyed, etc)." [ StartNode(node_dest) : "Start node ID" : : "The node ID of one end of the node connection." EndNode(node_dest) : "End node ID" : : "The node ID of one end of the node connection." initialstate(choices) : "Initial State" : 1 = [ 0 : "Off" 1 : "On" ] linktype(choices) : "Type of Connection" : 1 = [ 1 : "Ground" 2 : "Jump" 4 : "Fly" 8 : "Climb" ] AllowUse(string) : "Allow Pass When Off" : : "Entity or class to allow passage even when node is off" spawnflags( Flags ) = [ 1 : "Force human connect" : 0 2 : "Force small_centered connect" : 0 4 : "Force wide_human connect" : 0 8 : "Force tiny connect" : 0 16 : "Force wide_short connect" : 0 32 : "Force medium connect" : 0 64 : "Force tiny_centered connect" : 0 128 : "Force large connect" : 0 256 : "Force large_centered connect" : 0 ] // Inputs input TurnOn(void) : "Turn the link on." input TurnOff(void) : "Turn the link off." ] @PointClass wirebox(mins, maxs) base(Targetname) = info_node_link_controller : "An entity that controls all connections between nodes that intersect the controller's volume. "+ "This allows for mass enabling/disabling of all node connections through a volume." [ mins(vector) : "Mins" : "-8 -32 -36" maxs(vector) : "Maxs" : "8 32 36" initialstate(choices) : "Initial State" : 1 = [ 0 : "Off" 1 : "On" ] AllowUse(string) : "Allow Pass When Off" : : "Entity or class to allow passage even when node is off" // Inputs input TurnOn(void) : "Turn the link on." input TurnOff(void) : "Turn the link off." ] @PointClass sphere(radius) base(Targetname, Parentname) = info_radial_link_controller : "This entity automatically severs node connections that pass through its radius. If it moves, it will restore those connections." [ radius(float) : "Radius (Use Helper!)" : 120 ] @PointClass base(Targetname, Angles, HintNode) studio("models/editor/climb_node.mdl") color(153 215 103) = info_node_climb : "A climb-node for AI navigation. Only usable by NPCs that can climb." [ ] //------------------------------------------------------------------------- // // Lights // //------------------------------------------------------------------------- @PointClass light() iconsprite("editor/light.vmt") base(Targetname, Light) sphere(_fifty_percent_distance) sphere(_zero_percent_distance) = light : "An invisible omnidirectional lightsource." [ target(target_destination) : "Entity To Point At" : : "The name of an entity in the map that the spotlight will point at. This will override the spotlight's angles." spawnflags(Flags) = [ 1 : "Initially dark" : 0 ] _distance(integer) : "Maximum Distance" : 0 : "This is the distance that light is allowed to cast, in inches." ] @PointClass base(Angles) iconsprite("editor/light_env.vmt") = light_environment : "Sets the color and angle of the light from the sun and sky." [ pitch(integer) : "Pitch" : 0 : "The downward pitch of the light from the sun. 0 is horizontal, -90 is straight down." _light(color255) : "Brightness" : "255 255 255 200" _ambient(color255) : "Ambient" : "255 255 255 20" _lightHDR(color255) : "BrightnessHDR" : "-1 -1 -1 1" _ambientHDR(color255) : "AmbientHDR" : "-1 -1 -1 1" ] @PointClass base(Targetname, Angles, Light) lightprop("models/editor/spot.mdl") lightcone() sphere(_fifty_percent_distance) sphere(_zero_percent_distance) = light_spot : "An invisible and directional spotlight." [ target(target_destination) : "Entity to point at" : : "The name of an entity in the map that the spotlight will point at. This will override the spotlight's angles." _inner_cone(integer) : "Inner (bright) angle" : 30 _cone(integer) : "Outer (fading) angle" : 45 _exponent(integer) : "Focus" : 1 _distance(integer) : "Maximum distance" : 0 : "This is the distance that light is allowed to cast, in inches." pitch(integer) : "Pitch" : -90 spawnflags(Flags) = [ 1 : "Initially dark" : 0 ] ] @PointClass base(Targetname, Parentname, Angles) iconsprite("e