//Credits goes to Pinsplash, editied by @notfoundname. // //TO install: //1. Download and drop into bin folder (where hammer.exe is located); //2. Open Hammer, Tools -> Options... -> Game Configurations -> Game Data Files, add SECSS.fgd; //3. Restart Hammer. @mapsize(-16384, 16384) @MaterialExclusion //Texture folders to not load. You can remove everything from this list if you want, but you probably won't ever use these, they'll make more clutter in Hammer's texture browser, and you'll probably be better off making your own brush/sprite/whatever-friendly versions of them anyway. [ "console" //backgrounds "cstrike" //junk "debug" //debug stuff? // "detail" //detail sprites. doesn't seem to break anything if excluded but I can see it happening // "editor" //can't exclude editor because editor/wireframe is needed by Hammer itself "effects" //does have just a few things of use... "engine" "halflife" //HL1 textures?? "hlmv" "hud" "matsys_regressiontest" //meow "overviews" //minimaps // "particle" //not excluded since some entity defaults use textures in here "perftest" //does have some usable textures but mostly junk "scripted" "shadertest" "skybox" //skies. trust me, it's easier to view them on VDC // "vgui" //vgui_slideshow_display uses this folder "voice" "vr" ] @AutoVisGroup = "Custom" //Custom visgroups under the auto tab [ "AI" [ "func_nav_blocker" ] "Gameplay" // entities used for gameplay things, so entities for things like bomb sites, hostages, windows, doors - color(0 255 0) [ "func_bomb_target" "func_buyzone" "func_breakable" "func_breakable_surf" "func_door" "func_door_rotating" "func_hostage_rescue" "func_ladder" "func_pushable" "game_end" "game_player_equip" "game_score" "hostage_entity" "info_map_parameters" "info_player_counterterrorist" "info_player_terrorist" "prop_door_rotating" "prop_vehicle" "prop_vehicle_driveable" "trigger_hurt" ] "Interactive things" [ "func_breakable" "func_breakable_surf" "func_button" "func_door" "func_door_rotating" "func_fish_pool" "func_guntarget" "func_pushable" "func_rot_button" "func_tanktrain" "func_tracktrain" "func_weight_button" "momentary_rot_button" "prop_door_rotating" ] "Lighting & Light FX" // color(160 240 37) [ "env_lightglow" "env_particlelight" "env_projectedtexture" "env_tonemap_controller" "info_lighting" "info_no_dynamic_shadow" "light" "light_directional" "light_dynamic" "light_environment" "light_spot" "point_spotlight" "shadow_control" ] "Logic" // color(248 155 0) [ "env_entity_maker" "env_firesensor" "env_firesource" "env_global" "filter_activator_class" "filter_activator_mass_greater" "filter_activator_name" "filter_activator_team" "filter_damage_type" "filter_multi" "game_ui" "game_zone_player" "logic_auto" "logic_branch" "logic_branch_listener" "logic_case" "logic_compare" "logic_multicompare" "logic_relay" "logic_timer" "math_colorblend" "math_counter" "math_remap" "point_anglesensor" "point_angularvelocitysensor" "point_clientcommand" "point_proximity_sensor" "point_servercommand" "point_template" "point_velocitysensor" "trigger_look" "trigger_multiple" "trigger_once" "trigger_proximity" ] "Misc" [ "env_entity_dissolver" "env_entity_igniter" "func_brush" "func_instance" "func_instance_parms" "func_proprrespawnzone" "func_traincontrols" "func_wall" "func_wall_toggle" "hammer_updateignorelist" "info_null" "info_target" "info_teleport_destination" "path_corner" "path_track" "point_devshot_camera" "point_enable_motion_fixup" "point_playermoveconstraint" "point_teleport" "trigger_playermovement" "trigger_remove" "trigger_teleport" "trigger_teleport_relative" ] "Moving things" [ "func_button" "func_door" "func_door_rotating" "func_guntarget" "func_movelinear" "func_physbox" "func_physbox_multiplayer" "func_platrot" "func_pushable" "func_rot_button" "func_rotating" "func_tanktrain" "func_trackautochange" "func_trackchange" "func_tracktrain" "func_train" "func_water_analog" "momentary_rot_button" "prop_door_rotating" "prop_physics" "prop_physics_multiplayer" "prop_physics_override" "prop_ragdoll" "prop_sphere" "prop_vehicle" "prop_vehicle_driveable" ] "Obsolete" // idk if it makes any sense [ "cycler" "func_conveyor" "func_illusionary" "func_lod" "func_platrot" "func_pushable" "func_tanktrain" "func_trackchange" "func_trackautochange" "func_wall" "func_wall_toggle" "game_gib_manager" "info_teleport_destination" "phys_torque" "trigger_brush" ] "Optimization" // color(0 180 0) [ "env_detail_controller" "func_areaportal" "func_areaportalwindow" "func_detail" "func_lod" "func_occluder" "func_viscluster" "game_gib_manager" "game_weapon_manager" ] "Physics" // color(255 0 255) [ "env_physexplosion" "env_physimpact" "env_wind" "func_clip_vphysics" "func_conveyor" "func_physbox" "func_physbox_multiplayer" "func_weight_button" "info_constraint_anchor" "info_mass_center" "logic_collision_pair" "logic_measure_movement" "phys_ballsocket" "phys_constraint" "phys_constraintsystem" "phys_convert" "phys_hinge" "phys_keepupright" "phys_lengthconstraint" "phys_magnet" "phys_motor" "phys_pulleyconstraint" "phys_ragdollconstraint" "phys_ragdollmagnet" "phys_slideconstraint" "phys_spring" "phys_thruster" "phys_torque" "physics_cannister" "point_push" "prop_physics" "prop_physics_multiplayer" "prop_physics_override" "prop_ragdoll" "prop_sphere" "prop_vehicle" "prop_vehicle_driveable" "target_changegravity" "trigger_apply_impulse" "trigger_gravity" "trigger_impact" "trigger_push" "trigger_vphysics_motion" "trigger_wind" ] "Player Spawns" [ "info_player_counterterrorist" "info_player_terrorist" ] "Preserved Entities" [ "env_soundscape" "env_soundscape_proxy" "env_soundscape_triggerable" "env_sun" "env_wind" "env_fog_controller" "func_brush" "func_wall" "func_buyzone" "func_illusionary" "func_hostage_rescue" "func_bomb_target" "infodecal" "info_projecteddecal" "info_node" "info_target" "info_node_hint" "info_player_counterterrorist" "info_player_terrorist" "info_map_parameters" "keyframe_rope" "move_rope" "info_ladder" "point_viewcontrol" "shadow_control" "sky_camera" "trigger_soundscape" "point_devshot_camera" ] "Scripting" // color(0 255 255) [ "env_explosion" "env_fade" "player_speedmod" "player_weaponstrip" "point_hurt" "point_viewcontrol" ] "Sound" // color(0 0 255) [ "ambient_generic" "env_microphone" "func_footstep_control" "point_surroundtest" ] "Soundscapes" // color(1 128 255) [ "env_soundscape" "env_soundscape_proxy" "env_soundscape_triggerable" "trigger_soundscape" ] "Visual" // color(255 203 11) [ "color_correction" "cycler" "env_beam" "env_blood" "env_bubbles" "env_cubemap" "env_dustpuff" "env_dusttrail" "env_effectscript" "env_embers" "env_fire" "env_fire_trail" "env_fog_controller" "env_funnel" "env_gunfire" "env_laser" "env_muzzleflash" "env_screenoverlay" "env_shake" "env_shooter" "env_smokestack" "env_smoketrail" "env_spark" "env_splash" "env_sporeexplosion" "env_sprite" "env_sprite_oriented" "env_spritetrail" "env_steam" "env_sun" "env_texturetoggle" "env_viewpunch" "func_dustcloud" "func_dustmotes" "func_fish_pool" "func_illusionary" "func_monitor" "func_precipitation" "func_reflective_glass" "func_smokevolume" "game_text" "info_camera_link" "info_overlay" "info_overlay_transition" "info_particle_system" "info_player_logo" "info_projecteddecal" "infodecal" "keyframe_rope" "material_modify_control" "move_rope" "point_camera" "point_posecontroller" "point_tesla" "prop_detail" "prop_dynamic" "prop_dynamic_ornament" "prop_dynamic_override" "prop_static" "sky_camera" "spark_shower" "vgui_screen" "vgui_slideshow_display" ] "Weapons, pickups" // color(160 37 240) [ "item_defuser" "weapon_ak47" "weapon_aug" "weapon_awp" "weapon_c4" "weapon_deagle" "weapon_elite" "weapon_famas" "weapon_fiveseven" "weapon_flashbang" "weapon_g3sg1" "weapon_galil" "weapon_glock" "weapon_hegrenade" "weapon_knife" "weapon_m249" "weapon_m3" "weapon_m4a1" "weapon_mac10" "weapon_mp5navy" "weapon_p228" "weapon_p90" "weapon_scout" "weapon_sg550" "weapon_sg552" "weapon_smokegrenade" "weapon_tmp" "weapon_ump45" "weapon_usp" "weapon_xm1014" ] ] //SE BASE SPECIAL 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 object's Y axis (looking up or down), yaw is rotation around the object's Z axis (looking left and right), roll is rotation around the object's X axis (similar to a person doing cartwheels)." ] @BaseClass = DamageFilter [ damagefilter(filterclass) : "Damage Filter Name" : : "When this entity receives damage, it will filter by this entity." input SetDamageFilter(target_destination) : "Sets Damage Filter." ] @BaseClass = Effects [ effects(choices) : "Effect Flags" : 0 : "For configuring visual effects. If you want to combine effects, turn off SmartEdit and change effects value to a sum of needed ones (16 + 256 = 272 - no RTT shadow draw and shade from fullbright to lit). Change only if you know what you are doing." = [ 0: "0 - None" 1: "1 - Bonemerge always (very expensive!)" 2: "2 - Bright, dynamic light at entity origin" 4: "4 - Dim, dynamic light at entity origin" 8: "8 - No movement interpolation" 16: "16 - Don't cast shadows" 32: "32 - Don't draw entity" 64: "64 - Don't receive dynamic shadows" 128: "128 - Bonemerge only in PVS" 256: "256 - Unsubtle blink" 512: "512 - Flag parent as always animating and realign each frame" ] ] @BaseClass = EnableDisable [ StartDisabled(choices) : "Start Disabled" : 0 : "Stay inactive until Enabled." = [ 0 : "No" 1 : "Yes" ] input Enable(void) : "Makes the entity active." input Disable(void) : "Makes the entity inactive." ] @BaseClass = FadeKeys [ fademindist(float) : "Start Fade Distance" : -1 : "Distance at which the entity starts fading. If less than 0, the entity will disappear instantly when the End Fade Distance is hit. The value will scale appropriately if the entity is in a 3D Skybox." fademaxdist(float) : "End Fade Distance" : 0 : "Distance at which the entity ends fading. If less than 0, the entity won't disappear at all. The value will scale appropriately if the entity is in a 3D Skybox." ] //Many entities force a particular model, so keeping this in CBaseAnimating wouldn't be the most intuitive... @BaseClass = Model [ model(studio) : "World Model" : : "A path to a .mdl." ] @BaseClass = Origin [ origin(origin) : "Origin (X Y Z)" : : "The point in the world that acts as sort of center of the entity. Rotating entities typically rotate around their origin. Changing the origin with AddOutput usually results in the entity moving." ] @BaseClass = Parent [ parentname(target_destination) : "Parent" : : "Specifies a movement parent. An entity with a parent will be forced to maintain its current position relative to the specified entity. Child entities cannot be moved in any other way and will intersect with other solid objects if they must. Parented entities will forward Use inputs to their parent.\n" + "An attachment point for this entity to follow can be specified by putting its name after the parent entity's name, separated by a comma. View attachment points ingame with ent_attachments.\n" + "Entities which aren't intended to be parented may not function correctly. phys_constraint can be used as an alternative to parenting." input SetParent(target_destination) : "Sets Parent." input SetParentAttachment(string) : "Teleports this entity to a specific attachment point on its Parent and moves identically to that attachment point." input SetParentAttachmentMaintainOffset(string) : "Same as SetParentAttachment, but the entity is not teleported and instead keeps its current position and angles, until the attachment moves." input ClearParent(void) : "Sets the Parent keyvalue to be blank, removing this entity from any hierarchy." ] @BaseClass = RenderMode [ rendermode(choices) : "Render Mode" : 0 : "A special rendering mode to use on this entity. (https://developer.valvesoftware.com/wiki/Render_Modes)" = [ 0 : "Normal" 1 : "Color" 2 : "Texture" 3 : "Glow" 4 : "Solid/Alphatest" 5 : "Additive" 7 : "Additive Fractional Frame" 8 : "Alpha Add" 9 : "World Space Glow" 10 : "Don't Render" ] ] @BaseClass = RenderAmount [ renderamt(integer) : "Render Amount/Transparency" : 255 : "Transparency amount. Requires a Render Mode other than Normal. 0 is invisible, 255 is fully visible." input Alpha(integer) : "Sets Render Amount/Transparency." ] @BaseClass = RenderColor [ rendercolor(color255) : "Render Color (R G B)" : "255 255 255" : "Color channel filter to add to this entity's texture(s)." input Color(color255) : "Sets Render Color." ] @BaseClass base(RenderAmount,RenderColor) = RenderAlphaColor [ ] @BaseClass = RenderFX [ renderfx(choices) : "Render FX" : 0 : "Preset appearance effects. Bug: Sometimes functions incorrectly if changed with AddOutput, but is the only way to change effects other than making multiple versions of the object." = [ 0 : "Normal" 1 : "Slow Pulse" 2 : "Fast Pulse" 3 : "Slow Wide Pulse" 4 : "Fast Wide Pulse" 5 : "Slow Fade Away (from another mode)" 6 : "Fast Fade Away (from another mode)" 7 : "Slow Become Solid (from another mode)" 8 : "Fast Become Solid (from another mode)" 9 : "Slow Strobe" 10 : "Fast Strobe" 11 : "Faster Strobe" 12 : "Slow Flicker" 13 : "Fast Flicker" 15 : "Distort" 24 : "Faster Pulse" ] ] @BaseClass base(RenderMode,RenderAlphaColor,RenderFX,Effects) = RenderFields [ ] @BaseClass base(RenderFields,Parent) = VisibleBrush [ _minlight(float) : "Minimum Light" : 0 : "Minimum amount of light to hit this brush. 0 is none, 1 is 'fullbright'. Useful because the lightmaps will not update as the entity moves." disablereceiveshadows(choices) : "Disable Receiving Shadows" : 0 : "Adds EF_NORECEIVESHADOW to this entity. (_rt_shadows shadows don't cast onto entity)" = [ 0 : "No" 1 : "Yes" ] vrad_brush_cast_shadows(choices) : "Static Shadow" : 0 : "Determines if this entity will cast a static shadow." = [ 0 : "No static shadow" 1 : "Cast static shadow" ] TeamNum(choices) : "Team Number" : 0 : "Entity's default team. See 'SetTeam' input for more info." = [ 0 : "None" 1 : "Spectator" 2 : "Terrorist" 3 : "Counter-Terrorist" ] input SetTeam(integer) : "Sets entity's team.\n" + "This input (as well as TeamNum k/v) exist for every entity in the game, but generally useful on brushes with PlayerTeamMatch material proxy.\n" + "https://gamebanana.com/tuts/16760" ] @BaseClass = Toggle [ input Toggle(void) : "If on, turn off. If off, turn on." ] //I don't want these on doors. @BaseClass = DynamicPropAnimations [ DefaultAnim(string) : "Default Animation" : : "The animation this prop will play when not doing a random or forced animation." RandomAnimation(choices) : "Randomly Animate" : 0 : "Makes the prop randomly select and play animations at intervals defined by the Min/Max Random Anim Time keyvalues. In between the random animations, it will revert to playing the Default Animation." = [ 0 : "No" 1 : "Yes" ] MinAnimTime(float) : "Min Random Anim Time" : : "Minimum time between random animations." MaxAnimTime(float) : "Max Random Anim Time" : : "Maximum time between random animations." input SetAnimation(string) : "Forces the prop to play the specified animation." input SetDefaultAnimation(string) : "Sets Default Animation." input SetPlaybackRate(float) : "Sets the framerate at which animations are played." output OnAnimationBegun(void) : "Fired when an animation begins." output OnAnimationDone(void) : "Fired when an animation finishes." ] //SE BASE CLASSES @BaseClass = CBaseEntity [ targetname(target_source) : "Name" : : "The name that other entities refer to this entity by. TIP: avoid naming an entity the same thing as any classname to avoid issues with code that tries searching by targetname *and* classname." globalname(string) : "Global Entity Name" : : "Name by which this entity is linked to another entity in the map. When a new round begins, entities in the next round with Global Entity Names matching entities in the previous will copy the previous entity's state. TODO: Describe what this is useful for, especially in multiplayer..." hammerid(integer) : "Hammer ID" : : "An ID (usually) automatically assigned to this entity by Hammer. Used by some debugging commands, such as ent_keyvalue. Entities spawned at run-time are not assigned any Hammer ID." input Kill(void) : "Removes this entity and any entities parented to it from the world." input KillHierarchy(void) : "Functions the same as Kill, although this entity and any entities parented to it are killed on the same frame. TODO: Cases where this is needed?" input AddOutput(string) : "Changes a keyvalue or adds an I/O connection on this entity. Not all keyvalues will work with this input as they require special handling.\n" + "Keyvalue format: \n" + "IO format: ::::\n" + "The parameter can be left blank, but do not omit either ':' surrounding it or the game will think the delay is the parameter! is whether the IO event can be fired again. Put 0 to allow infinite refires, put 1 to make it only fire once ever." input FireUser1(string) : "Fires the OnUser1 output. Bug: These inputs can pass a string parameter, but do nothing with it. If the input is sent from an output that automatically passes a non-string parameter (such as OnLessThan from logic_compare) the input will fail to send because the parameters types are incompatible. To work around this, place any placeholder text in the parameter box." input FireUser2(string) : "Fires the OnUser2 output." input FireUser3(string) : "Fires the OnUser3 output." input FireUser4(string) : "Fires the OnUser4 output." input DispatchEffect(string) : "Dispatches a special effect from the entity's origin. See here: https://developer.valvesoftware.com/wiki/List_of_Client_Effects" output OnUser1(void) : "Fires in response to the FireUser1 input." output OnUser2(void) : "Fires in response to the FireUser2 input." output OnUser3(void) : "Fires in response to the FireUser3 input." output OnUser4(void) : "Fires in response to the FireUser4 input." ] @BaseClass base(CBaseEntity,Parent,Angles,FadeKeys,RenderFields) = CBaseAnimating [ skin(integer) : "Skin" : 0 : "Some models have multiple skins. This value selects from the index, starting with 0." body(integer) : "Body Group" : 0 : "Sets the the active $bodygroup." playbackrate(float) : "Playback Rate" : : "A multiplier of the speed at which the current animation will be played, negative values are accepted. The model will go back to its regular animation speed once its current one finishes." cycle(float) : "Cycle" : : "How far along the model is through playing its current animation, as a range from 0-1. This can be changed with AddOutput." LightingOrigin(target_destination) : "Lighting Origin" : : "An entity from which to sample lighting instead of the entity's origin. It cannot be any internal entity, including info_lighting." fadescale(float) : "Fade Scale" : 1 : "If specified in the worldspawn, or if the game is running below DirectX 8, entities will fade out even if the Start/End Fade Distance keyvalues aren't specified. This value gives more control over when this happens: numbers smaller than 1 cause the entity to fade out farther away, and greater than 1 cause it to fade out at closer distances. Using 0 turns off the forced fade altogether. See also $noforcedfade." disableshadows(choices) : "Disable Shadows" : 0 : "Adds EF_NOSHADOW to this entity. (No _rt_shadows shadow cast.)" = [ 0 : "No" 1 : "Yes" ] shadowcastdist(integer) : "Shadow Cast Distance" : 0 : "Sets how far the entity casts _rt_shadows shadows. 0 means default distance from the shadow_control entity." modelscale(float) : "Model Scale" : 1 : "A multiplier for the size of the model. Negative values are accepted. Does not scale the individual pieces that make up physics meshes, but will scale the distances between them." input Skin(integer) : "Sets Skin." input SetBodyGroup(integer) : "Sets the Body Group keyvalue." input Ignite(void) : "Makes the entity catch on fire indefinitely." input IgniteLifetime(float) : "Makes the entity catch on fire for a given amount of time." input BecomeRagdoll(void) : "Kills the entity and creates a client-side ragdoll from the model. The model must have $collisionjoints, otherwise it may cause bugs. See also: phys_convert." input SetLightingOrigin(target_destination) : "Sets Lighting Origin." input SetModelScale(string) : "Sets Model Scale. Does not alter the physics collisions in most cases, however. Negative values are accepted. Takes two values separated by a space. Depending on the entity, you may be able to add a second number to make the model grow/shrink smoothly over a certain number of seconds." input EnableDamageForces(void) : "Allows the entity to be pushed by damage done to it (usually force amount correlates with the damage done)." input DisableDamageForces(void) : "Prevents the entity from being pushed by damage done to it." input EnableShadow(void) : "Adds _rt_shadows shadows to the entity." input DisableShadow(void) : "Removes _rt_shadows shadows from the entity." output OnIgnite(void) : "Fired when the entity catches fire, such as from an env_entity_igniter or the Ignite inputs." ] @BaseClass base(CBaseAnimating) = CBaseCombatWeapon [ spawnflags(flags) = [ 1 : "Start constrained - Makes the weapon not move." : 0 2 : "Deny player pickup" : 0 ] input HideWeapon(void) : "If the weapon is being held by someone, makes it invisible. The weapon will reappear if they switch weapons." output OnPlayerUse(void) : "Fires when a player +uses this weapon." output OnPlayerPickup(void) : "Fires when a player picks up this weapon." output OnCacheInteraction(void) : "Fires every tick when a player attempts to pick up this weapon, even if he can't." ] @BaseClass base(CBaseEntity) = CBaseFilter [ Negated(choices) : "Filter mode" : 0 : "If set to Allow, only entities who match the criteria will pass the filter." = [ 0 : "Allow entities that match criteria" 1 : "Disallow entities that match criteria" ] input TestActivator(void) : "Tests if the !activator of this input meets the criteria, then and fires either OnPass or OnFail. Changing Filter mode will affect which output is fired." output OnPass(void) : "Fires when TestActivator is sent and the !activator is allowed by the criteria." output OnFail(void) : "Fires when TestActivator is sent and the !activator is not allowed by the criteria." ] @BaseClass base(CBaseEntity,VisibleBrush,DamageFilter,Origin) = CBaseButton [ spawnflags(flags) = [ 1 : "Don't move" : 1 32 : "Toggle - Button can be sent back to its original position at any time. Otherwise, only when Delay Before Reset is over." : 0 256 : "Touch Activates - OnPressed fires when players physically bump into the button." : 0 512 : "Damage Activates - OnPressed fires when the entity is hit. Does not affect OnDamaged." : 0 1024 : "Use Activates - OnPressed fires when the entity is +used." : 1 2048 : "Starts locked" : 0 ] speed(integer) : "Speed" : : "The speed that the button moves, in units per second or degrees per second if rotating." wait(integer) : "Delay Before Reset (-1 stay)" : 1 : "Amount of time in seconds after the button has moved to the pressed position before it returns to the starting position. Once it has returned, it can be used again. If the value is set to -1, the button never returns." sounds(choices) : "Press Sound 1" : 0 : "Sound to play when pressed and unlocked." = [ 0 : "None" 2 : "Access denied 1" 8 : "Access denied 2" 10 : "Access denied 3" 11 : "Access denied 4" 3 : "Access granted" 9 : "Beep 1" 15 : "Beep 2" 16 : "Beep 3" 17 : "Beep 4" 18 : "Beep 5" 19 : "Beep 6" 34 : "Beep 7" 40 : "Combine lock 1" 41 : "Combine lock 2" 42 : "Combine lock 3" 43 : "Combine lock 4" 45 : "Combine lock 5" 47 : "Combine lock 6" 12 : "Door locked" 13 : "Door opened" 1 : "Light hum" 5 : "Machine 1" 6 : "Machine 2" 4 : "Moving parts 1" 21 : "Moving parts 2" 22 : "Moving parts 3" 23 : "Moving parts 4" 24 : "Moving parts 5" 25 : "Moving parts 6" 26 : "Moving parts 7" 27 : "Moving parts 8" 28 : "Moving parts 9" ] unlocked_sound(choices) : "Press Sound 2" : 0 : "Sound played when the button is pressed while unlocked. If set, the sound that plays alternates between this and Press Sound 1, even if the first one is set to None." = [ 0 : "None" 2 : "Access denied 1" 8 : "Access denied 2" 10 : "Access denied 3" 11 : "Access denied 4" 3 : "Access granted" 9 : "Beep 1" 15 : "Beep 2" 16 : "Beep 3" 17 : "Beep 4" 18 : "Beep 5" 19 : "Beep 6" 34 : "Beep 7" 40 : "Combine lock 1" 41 : "Combine lock 2" 42 : "Combine lock 3" 43 : "Combine lock 4" 45 : "Combine lock 5" 47 : "Combine lock 6" 12 : "Door locked" 13 : "Door opened" 1 : "Light hum" 5 : "Machine 1" 6 : "Machine 2" 4 : "Moving parts 1" 21 : "Moving parts 2" 22 : "Moving parts 3" 23 : "Moving parts 4" 24 : "Moving parts 5" 25 : "Moving parts 6" 26 : "Moving parts 7" 27 : "Moving parts 8" 28 : "Moving parts 9" ] locked_sound(choices) : "Locked Sound" : 2 : "Sound played when the player tries to use the button, and fails because it's locked." = [ 0 : "None" 2 : "Access denied 1" 8 : "Access denied 2" 10 : "Access denied 3" 11 : "Access denied 4" 3 : "Access granted" 9 : "Beep 1" 15 : "Beep 2" 16 : "Beep 3" 17 : "Beep 4" 18 : "Beep 5" 19 : "Beep 6" 34 : "Beep 7" 40 : "Combine lock 1" 41 : "Combine lock 2" 42 : "Combine lock 3" 43 : "Combine lock 4" 45 : "Combine lock 5" 47 : "Combine lock 6" 12 : "Door locked" 13 : "Door opened" 1 : "Light hum" 5 : "Machine 1" 6 : "Machine 2" 4 : "Moving parts 1" 21 : "Moving parts 2" 22 : "Moving parts 3" 23 : "Moving parts 4" 24 : "Moving parts 5" 25 : "Moving parts 6" 26 : "Moving parts 7" 27 : "Moving parts 8" 28 : "Moving parts 9" ] input Lock(void) : "Locks the button, preventing it from functioning." input Unlock(void) : "Unlocks the button, allowing it to function." input Press(void) : "Activates the button as if it was pressed." input PressIn(void) : "Activates the button as if it was pressed, sending it to the pressed position." input PressOut(void) : "Unpresses the button, sending it to the unpressed position." output OnDamaged(void) : "Fires when the button is damaged." output OnPressed(void) : "Fires when the button is pressed." output OnUseLocked(void) : "Fires when the button is pressed but locked." output OnIn(void) : "Fires when the button reaches the in/pressed position." output OnOut(void) : "Fires when the button reaches the out/released position." ] @BaseClass base(CBaseAnimating) = CBaseCombatCharacter [ physdamagescale(float) : "Physics Impact Damage Scale" : : "Multiplier for damage amount when this entity is hit by a physics object. With a value of 0 the entity will take no damage from physics." input PhysDamageScale(float) : "Sets Physics Impact Damage Scale." ] @BaseClass base(CBaseEntity,VisibleBrush,Origin) = CBaseDoor [ spawnflags(flags) = [ 4 : "Non-solid to Player (not compatible with Ignore Debris as that also sets a collision group)" : 0 8 : "Passable - Door is solid to nothing at all." : 0 32 : "Toggle - Door can be closed by +use even if Delay Before Reset is not over." : 0 256 : "Use Opens" : 1 1024 : "Touch Opens - When player touches the door, counts as an attempt to open it." : 0 2048 : "Starts locked" : 0 4096 : "Door Silent" : 0 65536 : "If closing, allow Use to reopen." : 0 ] speed(integer) : "Speed" : 200 : "The speed that the door moves, in units per second or degrees per second if rotating." wait(integer) : "Delay Before Reset (-1 stay)" : 1 : "Amount of time in seconds after the door has moved to the open position before it returns to the closed position. Once it has returned, it can be used again. If the value is set to -1, the door never returns." noise1(sound) : "Start Sound" : : "Sound to play when the door starts moving. If Start Close Sound is specified, this sound only plays when the door starts opening." noise2(sound) : "Stop Sound" : : "Sound to play when the door stops moving. If Stop Close Sound is specified, this sound only plays when the door starts closing." startclosesound(sound) : "Start Close Sound" : : "Sound to play when the door starts closing." closesound(sound) : "Stop Close Sound" : : "Sound to play when the door stops closing." locked_sound(sound) : "Locked Sound" : : "Sound played when the player tries to open the door, and fails because it's locked." unlocked_sound(sound) : "Unlocked Sound" : : "Sound played when door is pressed and unlocked." chainstodoor(target_destination) : "Linked Door" : : "Passes the door's +use inputs and touch events onto a different door, so it also is activated." forceclosed(choices) : "Force Closed" : 0 : "Damages things that block the door. (Or attempts to push it out, if the blocker is an umdamageable physics object.) Useful for doors that have to close even if the player tries to block them with objects. Requires Blocking Damage be set to a non-zero value." = [ 0 : "No" 1 : "Yes" ] dmg(float) : "Blocking Damage" : 1 : "Amount of damage done to entities that block the movement of this door, per tick. Requires Force Closed to be set to Yes." spawnpos(choices) : "Spawn Position" : 0 : "The door will spawn in this position. Does NOT change what positions are considered 'open' or 'closed'." = [ 0 : "Closed" 1 : "Open" ] loopmovesound(choices) : "Loop Moving Sound?" : 0 : "Makes the door's Start Sound loop until the door finishes moving. BUG: If an already-looping sound is played with this enabled, it can continue forever. Further attempts to open or close the door will only add another looping sample to the noise." = [ 0 : "No" 1 : "Yes" ] ignoredebris(choices) : "Ignore Debris" : 0 : "Changes the door's collision group to COLLISION_GROUP_INTERACTIVE, which ignores debris objects. Not compatible with the Non-solid to Player spawnflag as it also sets a collision group." = [ 0 : "No" 1 : "Yes" ] input Open(void) : "Opens door." input Close(void) : "Closes door." input Toggle(void) : "Opens door if closed, closes door if open." input Lock(void) : "Prevents door from opening or closing." input Unlock(void) : "Allows door to operate as normal." input SetSpeed(float) : "Sets Speed." input Use(void) : "Simulates a player using the door (acts mostly the same as the other inputs)." output OnClose(void) : "Fires when the door starts to close." output OnOpen(void) : "Fires when the door starts to open." output OnFullyClosed(void) : "Fires when the door finishes closing. Reversed if Start Open flag is set." output OnFullyOpen(void) : "Fires when the door finishes opening. Reversed if Start Open flag is set." output OnBlockedClosing(void) : "Fires when the door has been blocked from closing. Activator is whatever blocks the door." output OnBlockedOpening(void) : "Fires when the door has been blocked from opening. Activator is whatever blocks the door." output OnUnblockedClosing(void) : "Fires when the door is no longer blocked from closing." output OnUnblockedOpening(void) : "Fires when the door is no longer blocked from opening." output OnLockedUse(void) : "Fires when the player tries to open the door but fails because it is locked." ] //Out of alphabetical order here because the FGD parser is big dummy @BaseClass base(Model,CBaseAnimating,DamageFilter) = CBreakableProp [ spawnflags(flags) = [ 16 : "Break on Touch" : 0 32 : "Break on Pressure (breaks whenever put under any pressure e.g. being stood on)" : 0 ] solid(choices) : "Collisions" : 6 : "Method of collision for this entity." = [ 0 : "None" 1 : "BSP (QPhysics)" 2 : "Bounding Box" 4 : "Oriented Bounding Box" 6 : "VPhysics" ] 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." minhealthdmg(integer) : "Min Damage to Hurt" : : "If a single hit to the object doesn't do at least this much damage, the prop won't take any of the damage from that hit." 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" 3 : "Reduced gibs" ] BreakModelMessage(string) : "Break Model Message" : : "'If set, will use this break model message instead of the normal break behavior.' TODO: What is this" PressureDelay(float) : "Pressure Delay" : 0 : "Seconds to delay breaking from pressure if Break on Pressure is checked. Allows creaking/groaning sounds to play." physdamagescale(float) : "Physics Impact Damage Scale" : 1 : "Multiplier for damage amount when this entity is hit by a physics object. With a value of 0 the entity will take no damage from physics." input physdamagescale(float) : "Sets Physics Impact Damage Scale." input Break(void) : "Breaks the prop." input SetHealth(integer) : "Sets a new value for the prop's health. If the prop's health reaches zero it will break. Works even if not using an _override entity." input AddHealth(integer) : "Adds health to the prop." input RemoveHealth(integer) : "Removes health from the prop." output OnBreak(void) : "Fired when this object breaks. !Activator is whatever breaks the object." output OnHealthChanged(float) : "Fired whenever the health of the prop has increased or decreased. Automatically puts the new health amount as a decimal percent (e.g. 45% = 0.45) as the input parameter, unless overridden by the mapper." ] @BaseClass base(CBreakableProp) = CDynamicProp [ spawnflags(flags) = [ 64 : "Use Hitboxes for Renderbox TODO: Does this REALLY do that?" : 0 //128 : "TODO: 'No VPhysics'" : 0 //256 : "Start with collision disabled" : 0 //these things does not seem to work ] StartDisabled(choices) : "Start Disabled" : 0 : "Makes the prop invisible but solid. It can be made visible with the Enable input." = [ 0 : "No" 1 : "Yes" ] DisableBoneFollowers(choices) : "Disable Bone Followers" : 0 : "Disables generation of phys_bone_followers for each piece of the model if it's using $collisionjoints. phys_bone_followers can quickly eat up the edict count, so this keyvalue can be very helpful in freeing resources. Disabling this will make the model lose solidity aside from a small box, which can be disabled by setting the 'Start with collision disabled' flag." = [ 0 : "No" 1 : "Yes" ] input TurnOff(void) : "Hides the prop, by adding EF_NODRAW." input TurnOn(void) : "Shows the prop, by removing EF_NODRAW." input EnableCollision(void) : "Makes the prop solid." input DisableCollision(void) : "Makes the prop non-solid." ] @BaseClass base(CDynamicProp) = CBasePropDoor [ spawnflags(flags) = [ 2048 : "Starts locked - Cannot be opened or closed until Unlocked." : 0 4096 : "Door silent - Door does not play sounds. All sounds can be controlled with keyvalues." : 0 32768 : "Ignore player +use" : 0 ] speed(float) : "Speed" : 300 : "How fast the door moves, in world units per second (or degrees per second, if the door rotates)." hardware(choices) : "Hardware Type" : 1 : "Sets the model's $bodygroup. The opening/closing sounds may also change." = [ 0 : "None" 1 : "Lever (door knob)" 2 : "Push bar" 3 : "Keypad" ] returndelay(float) : "Delay Before close" : -1 : "Amount of time, in seconds, after the door has opened before it closes. If the value is set to -1, the door never closes itself." soundmoveoverride(sound) : "Moving Sound" : : "Sound to play when the door starts to close or open, even when changing direction while opening or closing. Doors may have default sounds which play depending on the model." soundopenoverride(sound) : "Fully Open Sound" : : "Sound to play when the door finishes opening." soundcloseoverride(sound) : "Fully Closed Sound" : : "Sound to play when the door finishes closing." soundlockedoverride(sound) : "Locked Sound" : : "Sound played when the player tries to open the door, and fails because it's locked." soundunlockedoverride(sound) : "Unlocked Sound" : : "Sound to play when the door is used while not currently moving." slavename(target_destination) : "Slave Name" : : "Targetname of another door that should open and close whenever this one does." forceclosed(choices) : "Force Closed" : 1 : "If set, this door will close even if something is blocking it. The door will attempt to break or shove the object out of the way." = [ 0 : "No" 1 : "Yes" ] input Open(void) : "If not already open, opens the door." input OpenAwayFrom(target_destination) : "If not already open, opens the door away from the specified entity (to avoid hitting that entity)." input Close(void) : "If not already open, closes the door." input Toggle(void) : "If open, close. If closed, open." input Use(void) : "Like Toggle, opens or closes the door. The difference is that this input will behave more like it was opened by a real person (special sounds, lever animation, etc). OnLockedUse will fire if applicable." input Lock(void) : "Makes the door unable to be opened or closed." input Unlock(void) : "Makes the door openable and closable." output OnOpen(void) : "Fires when the door begins to open." output OnClose(void) : "Fires when the door begins to close." output OnFullyOpen(void) : "Fires when the door is finished opening." output OnFullyClosed(void) : "Fires when the door is finished closing." output OnBlockedOpening(void) : "Fires when the door is blocked while opening. !activator is whatever blocks the door." output OnBlockedClosing(void) : "Fires when the door is blocked while closing. !activator is whatever blocks the door." output OnUnblockedOpening(void) : "Fires when the door is no longer being blocked while opening." output OnUnblockedClosing(void) : "Fires when the door is no longer being blocked while closing." output OnLockedUse(void) : "Fires when the player attempts to open or close the door, but fails because it's locked." ] @BaseClass base(CBaseEntity,Parent,EnableDisable,Toggle,Origin) = CBaseTrigger [ spawnflags(flags) = [ 1 : "Clients (players) may trigger." : 1 8 : "Physics Objects may trigger." : 0 64 : "Everything (not including physics debris) may trigger." : 0 1024 : "Physics debris may trigger. Debris objects are usually small and not solid to players." : 0 4096 : "Disallow Bots from triggering." : 0 ] filtername(filterclass) : "Filter Name" : : "A filter entity (such as filter_activator_name) to test potential activators against." input TouchTest(void) : "For testing if something is currently touching the trigger. Fires either the OnTouching or OnNotTouching output." input StartTouch(void) : "Fires the OnStartTouch output." input EndTouch(void) : "Fires the OnEndTouch output." input DisableAndEndTouch(void) : "Disables this trigger and acts as if all currently touching entities have stopped touching it immediately." output OnStartTouch(void) : "Fired when a valid entity starts touching this trigger." output OnStartTouchAll(void) : "Fired when a valid entity starts touching this trigger, and no other entities are already touching it. If there are any other entities touching the trigger when a new one begins to touch, only OnStartTouch will fire." output OnEndTouch(void) : "Fired when a valid entity stops touching this trigger. WARNING: If the !activator of this output is a player who disconnected, any entity trying to see what the activator was can cause a crash." output OnEndTouchAll(void) : "Fired when ALL valid entities stop touching this trigger." output OnTouching(void) : "Fired if something is currently touching this trigger when sent TouchTest." output OnNotTouching(void) : "Fired if nothing is currently touching this trigger when sent TouchTest." ] @BaseClass base(CBaseEntity,Parent,EnableDisable,Toggle) = CBaseVPhysicsTrigger [ spawnflags(flags) = [ 1 : "Clients (players) may trigger." : 1 8 : "Physics Objects may trigger." : 0 64 : "Everything (not including physics debris) may trigger." : 0 1024 : "Physics debris may trigger. Debris objects are usually small and not solid to players." : 0 4096 : "Can move (through parenting)" : 0 ] filtername(filterclass) : "Filter Name" : : "A filter entity to test potential activators against." ] @BaseClass base(CBaseEntity,Parent,RenderAlphaColor) = CBeam [ spawnflags(flags) = [ 1 : "Start On" : 1 2 : "Toggle (Obsolete. Uncheck if checked and use the Toggle input instead.)" : 0 16 : "StartSparks (temporarily emits a sparks at starting point.)" : 0 32 : "EndSparks (temporarily emits a sparks at ending point.)" : 0 64 : "Decal End (scorch mark where a damaging beam hits something. For env_beam see Decal Name.)" : 0 ] HDRColorScale(float) : "HDR color scale" : "1.0" : "Value to multiply sprite color by when running in HDR mode." damage(integer) : "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." dissolvetype(choices) : "Sparks on Damage" : 0 : "If this beam damages something, shows sparks on that entity." = [ 0 : "No" 1 : "Yes" ] input Width(float) : "Sets the radius of the beam (i.e. 1 = 2 world units total thickness)." input Noise(float) : "Sets how far away from the middle that the beam is allowed to deviate." input ColorRedValue(integer) : "Sets how red the beam is (0-255). The resulting color will be affected by any color in the base texture, so only hueless textures will be able to show the full color spectrum." input ColorGreenValue(integer) : "Sets how green the beam is (0-255)." input ColorBlueValue(integer) : "Sets how blue the beam is (0-255)." ] @BaseClass base(CBaseEntity,VisibleBrush,DamageFilter) = CBreakable [ spawnflags(flags) = [ 1 : "Only Break on Trigger (Break input)" : 0 2 : "Break on Touch" : 0 4 : "Break on Pressure (when something is on top of this entity)" : 0 512 : "Break immediately on Physics (any physics damage will break the brush)" : 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, this will override Strength and Material Type and the damage amounts taken from various weapons. Some settings can make the brush unbreakable." = [ 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/Health" : 1 : "How much damage to take before breaking. The brush will not break from damage if this is 0." material(choices) : "Material Type" : 0 : "Material type of the brush. Decides what sounds to make when damaged, and what gibs to produce when broken." = [ 0 : "Glass" 1 : "Wood" 2 : "Metal" 4 : "Concrete" 5 : "Ceiling Tile - Tile sound, HL1 plaster gib sound on break, wood gibs" 6 : "Computer - Metal sounds, spark sound and effect, wood gibs" 7 : "Unbreakable Glass - Not breakable. Makes cartoon-y bullet sound." 8 : "Rocks" 10 : "None - Wood gibs" ] explosion(choices) : "Gibs Direction" : 1 : "Used to decide which direction to throw gibs when broken." = [ 0 : "Random" 1 : "Relative to Attack" 2 : "Use Precise Gib Dir (see below)" ] gibdir(angle) : "Precise Gib Direction" : "0 0 0" : "An exact direction in which to throw gibs when breaking. Be sure to select Use Precise Gib Dir in Gibs Direction!" PerformanceMode(choices) : "Gib Mode" : 0 : "How many gibs to spawn." = [ 0 : "All Gibs" 3 : "Reduced gibs" 1 : "No Gibs" ] minhealthdmg(integer) : "Min Damage to Hurt" : 1 : "If a single hit to the object doesn't do at least this much damage, the entity won't take any of the damage from that hit." PressureDelay(float) : "Pressure Delay" : 0 : "Seconds to delay breaking from pressure if Break on Pressure is checked. Allows creaking/groaning sounds to play." physdamagescale(float) : "Physics Impact Damage Scale" : 1 : "Multiplier for damage amount when this entity is hit by a physics object. With a value of 0 the entity will take no damage from physics." input SetMass(float) : "If this entity is physically simulated, set its mass." 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." input RemoveHealth(integer) : "Removes health from the breakable." output OnBreak(void) : "Fired when this object breaks. Activator is whatever breaks the object." output OnHealthChanged(float) : "Fired whenever the health of the breakable has increased or decreased. Will fire multiple times at once when shot by shotguns. Automatically puts the new health amount as a decimal percent (e.g. 45% = 0.45) as the input parameter, unless overridden by the mapper." ] @BaseClass base(CBaseEntity,Parent,EnableDisable) = CEnvSoundscape [ radius(integer) : "Radius" : 128 : "Defines the entity's sphere of influence. -1 means infinite range." soundscape(string) : "Soundscape" : : "The name of the soundscape to play. Some examples are provided, but the entire list is not. Corresponds to an entry in the soundscapes*.txt file in the /scripts/ directory. The best way to browse soundscapes is from within the game with the playsoundscape console command." position0(target_destination) : "Sound Position 0" : : "Entities which define the location from which any positioned sounds play. Must be entities that the client knows about (e.g info_target or anything visible)." position1(target_destination) : "Sound Position 1" : : "Entities which define the location from which any positioned sounds play. Must be entities that the client knows about (e.g info_target or anything visible)." position2(target_destination) : "Sound Position 2" : : "Entities which define the location from which any positioned sounds play. Must be entities that the client knows about (e.g info_target or anything visible)." position3(target_destination) : "Sound Position 3" : : "Entities which define the location from which any positioned sounds play. Must be entities that the client knows about (e.g info_target or anything visible)." position4(target_destination) : "Sound Position 4" : : "Entities which define the location from which any positioned sounds play. Must be entities that the client knows about (e.g info_target or anything visible)." position5(target_destination) : "Sound Position 5" : : "Entities which define the location from which any positioned sounds play. Must be entities that the client knows about (e.g info_target or anything visible)." position6(target_destination) : "Sound Position 6" : : "Entities which define the location from which any positioned sounds play. Must be entities that the client knows about (e.g info_target or anything visible)." position7(target_destination) : "Sound Position 7" : : "Entities which define the location from which any positioned sounds play. Must be entities that the client knows about (e.g info_target or anything visible)." input ToggleEnabled(void) : "Toggle the soundscape on/off. When off, the soundscape will never play from this entity." output OnPlay(void) : "Fired when this soundscape becomes the active one." ] @BaseClass base(CBaseEntity,VisibleBrush,Origin) = CFuncBrush [ spawnflags(flags) = [ 2 : "Ignore player +USE - This entity is able to suck in +use inputs for no reason. Check this to make it stop." : 1 ] Solidity(choices) : "Solidity" : 0 : "Used to control the solidity/collision of these brushes." = [ 0 : "Toggle - The solidity can be toggled together with its visibility." 1 : "Never Solid" 2 : "Always Solid" ] solidbsp(choices) : "Solid BSP" : 0 : "How the engine processes this entity's solidity. Try changing this to BSP if players move oddly while touching the brush (if it moves)." = [ 0 : "VPhysics" 1 : "BSP (QPhysics)" ] StartDisabled(choices) : "Start Disabled" : 0 : "Makes the brush start invisible. If Solidity is Toggle, the brush will also be non-solid." = [ 0 : "No" 1 : "Yes" ] input Enable(void) : "Makes the entity visible. If Solidity is Toggle, the brush will become solid." input Disable(void) : "Makes the entity invisible. If Solidity is Toggle, the brush will become non-solid." input Toggle(void) : "If enabled, disables the entity. If disabled, enables the entity." ] @BaseClass base(CBaseEntity,VisibleBrush,Origin) = CFuncMoveLinear [ spawnflags(flags) = [ 8 : "Not Solid (BUG: breaks phys_constraint)" : 0 ] movedir(angle) : "Move Direction (Pitch Yaw Roll)" : "0 0 0" : "The direction the brush will move in." startsound(sound) : "Start sound" : : "Sound played when the brush starts moving." stopsound(sound) : "Stop sound" : : "Sound played when the brush stops moving." blockdamage(float) : "Block Damage" : 0 : "How much to damage entities that block the brush per tick." startposition(float) : "Start Position" : 0 : "Position of brush when spawned, where 0 is the position shown in Hammer and 1 is the position given when Move Direction is combined with Move Distance. This keyvalue (and the SetPosition input) do not do any bounds checking, so if the brush is told to move to '2', it will move double the Move Distance, though doing so will not fire OnFullyOpen and OnFullyClosed. Also takes negative values." movedistance(float) : "Move Distance" : 100 : "The distance from the starting point that the brush should move, in units." speed(float) : "Speed" : 100 : "How fast the brush moves." input Open(void) : "Moves the brush to the end position." input Close(void) : "Moves the brush to the start position." input SetPosition(float) : "Moves the brush to a specific position, where 0 is the starting position and 1 is the end position." input SetSpeed(float) : "Sets Speed." output OnFullyOpen(void) : "Fires when the brush stops at the end position." output OnFullyClosed(void) : "Fires when the brush stops at the start position." ] @BaseClass base(CBaseEntity,Parent) = CFunc_Dust [ Color(color255) : "Particle Color (R G B)" : "255 232 176" : "Color of the sprites." SpawnRate(integer) : "Particles Per Second" : 12 : "Number of particles to spawn, per second." SizeMin(float) : "Minimum Particle Size" : 8 : "Minimum size sprites can be." SizeMax(float) : "Maximum Particle Size" : 10 : "Maximum size sprites can be." SpeedMax(integer) : "Maximum Particle Speed" : 5 : "Maximum speed that the particles can move after spawning." LifetimeMin(integer) : "Minimum Particle Lifetime" : 2 : "Minimum number of seconds until each particle dies. Particles live for a random duration between this and Maximum Particle Lifetime." LifetimeMax(integer) : "Maximum Particle Lifetime" : 4 : "Maximum number of seconds until each particle dies." DistMax(integer) : "Maximum Visible Distance" : 384 : "Maximum distance at which particles are visible. They fade to transparency at this distance." FallSpeed(float) : "Fall Speed" : 0 : "Extra downward speed applied to the sprites." Alpha(integer) : "Alpha" : 255 : "Translucency of the particles. 0 means that they are invisible, 255 means opaque." Frozen(choices) : "Frozen" : 0 : "Spawns the number of sprites specified in Particles Per Second, then freezes them all in place. The sprites will never go away, except if the entity is Killed." = [ 0 : "No" 1 : "Yes" ] StartDisabled(choices) : "Start Disabled" : 0 : "Stay inactive until sent TurnOn." = [ 0 : "No" 1 : "Yes" ] input TurnOn(void) : "Turns the emitter on." input TurnOff(void) : "Turns the emitter off." ] @BaseClass base(CBaseAnimating) = CItem [ spawnflags(flags) = [ 1 : "Frozen in place" : 0 ] ] @BaseClass base(CBaseEntity,Toggle) = CLight [ spawnflags(flags) = [ 1 : "Initially dark - If this light is toggled, tell it to spawn in the off state." : 0 ] _light(color255) : "Brightness" : "255 255 255 200" : "Color and intensity of the light." _lightHDR(color255) : "Brightness HDR" : "-1 -1 -1 1" : "If specified, color + intensity for players with HDR turned on. The default -1 -1 -1 1 means the lightmap data will be the same, regardless of HDR. The lighting may still appear different ingame, due to HDR being on." _lightscaleHDR(float) : "Brightness Scale HDR" : 1 : "Multiplier for the color + intensity for players with HDR turned on. (Works with Brightness HDR, though it doesn't make sense to use them together.)" style(choices) : "Appearance" : 0 : "Modulates the light between its lit and unlit states. See https://developer.valvesoftware.com/wiki/Template:Light_appearances for preset info. Using these counts as making the light toggleable." = [ 0 : "Normal (m)" 10 : "Fluorescent flicker (mmamammmmammamamaaamammma)" 2 : "Slow, strong pulse (abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba)" 11 : "Slow pulse, noblack (abcdefghijklmnopqrrqponmlkjihgfedcba)" 5 : "Gentle pulse (jklmnopqrstuvwxyzyxwvutsrqponmlkj)" 1 : "Flicker A (mmnmmommommnonmmonqnmmo)" 6 : "Flicker B (nmonqnmomnmomomno)" 3 : "Candle A (mmmmmaaaaammmmmaaaaaabcdefgabcdefg)" 7 : "Candle B (mmmaaaabcdefgmmmmaaaammmaamm)" 8 : "Candle C (mmmaaammmaaammmabcdefaaaammmmabcdefmmmaaaa)" 4 : "Fast strobe (mamamamamama)" 9 : "Slow strobe (aaaaaaaazzzzzzzz)" 12 : "Underwater light mutation (mmnnmmnnnmmnn)" ] pattern(string) : "Custom Appearance" : : "Sets a custom pattern. Pattern format is a string of characters, where a is total darkness, m is default and z is fully bright. i.e. aaggnnttzz would be a steppy fade in from dark to light." defaultstyle(string) : "Default Style" : : "TODO: Unknown." input TurnOn(void) : "Turns the light on." input TurnOff(void) : "Turns the light off." input SetPattern(string) : "Sets a Custom Appearance." ] @BaseClass base(CBreakable,Origin) = CPhysBox [ spawnflags(flags) = [ 4096 : "Start Asleep" : 0 16384 : "Debris - Don't collide with the player or other debris" : 0 32768 : "Motion Disabled" : 0 262144 : "Not affected by rotor wash" : 0 524288 : "Generate output on +USE (OnPlayerUse)" : 1 8388608 : "Prevent motion enable on player bump" : 0 ] massScale(float) : "Mass Scale" : 1 : "A scale multiplier for the object's mass. Use the convar sv_massreport 1 to see the actual mass of the object ingame. You can also use Override Parameters to set 'mass' to whatever you want." Damagetype(choices) : "Impact Damage Type" : 0 : "Sets the 'sharpness' of the brush. Sharp objects are far more damaging." = [ 0 : "Blunt" 1 : "Sharp" ] overridescript(string) : "Override Parameters" : : "A list of physics key/value pairs that are usually in a physics prop .qc file. (https://developer.valvesoftware.com/wiki/Prop_data) Format is 'key,value,key,value,etc'." disableshadows(choices) : "Disable Shadows" : 0 : "Adds EF_NOSHADOW to this entity. (No _rt_shadows shadow cast.)" = [ 0 : "No" 1 : "Yes" ] shadowcastdist(integer) : "Shadow Cast Distance" : 0 : "Sets how far the entity casts _rt_shadows shadows. 0 means default distance from the shadow_control entity." damagetoenablemotion(integer) : "Health Level to Override Motion" : : "If specified, this object will start motion disabled. Once its health has dropped below this specified amount, it will enable motion." forcetoenablemotion(float) : "Physics Impact Force to Override Motion" : : "If specified, this object will start motion disabled. Any impact that imparts a force greater than this value on the physbox will enable motion." health(integer) : "Strength" : 0 : "Number of points of damage to take before breaking. 0 means don't break." notsolid(choices) : "Not solid to world" : 0 : "If set, the object will pass through world geometry." = [ 0 : "Solid to World" 1 : "Passes through World" ] input Sleep(void) : "Tells the brush to quit moving. Any physics forces (excluding gravity and water buoyancy) will cause the object to resume moving as usual. Sleeping also occurs automatically when the object has no physics forces to keep it awake, and is no longer moving a noticeable amount." input Wake(void) : "If the object was told to sleep, tells it to start moving again." input DisableMotion(void) : "Tells the object to stop moving completely. No physics forces will re-enable motion, not even Wake." input EnableMotion(void) : "If the object's motion has been disabled entirely, tells it to resume movement as usual. This will also Wake the object, if it is Sleeping." input DisableFloating(void) : "If the object would normally float when in water, tells it to not float. There seems to be no way to re-enable floating behavior." output OnDamaged(void) : "Fires when this entity is damaged." output OnAwakened(void) : "Fires when this entity becomes awake (collision/force is applied)." output OnMotionEnabled(void) : "Fires when motion is sent EnableMotion." output OnPlayerUse(void) : "Fires when the player tries to +USE the physbox. This output will fire only if the Generate output on +USE spawnflag is set." ] @BaseClass base(CBaseEntity) = CPhysConstraint [ spawnflags(flags) = [ 1 : "No Collision until break - While the constraint is active, the affected entities will not be solid." : 0 4 : "Start inactive" : 0 16 : "Do not connect entities until turned on - (See FGD comment)" : 0 ]//Starts the connection off, and if either of the objects moves before the constraint gets turned on, they will consider their current locations relative to each other as where they should be once the constraint turns on. If not set, objects will snap back to the positions they were relative to each other in Hammer. attach1(target_destination) : "Entity 1" : : "First entity to attach." attach2(target_destination) : "Entity 2" : : "Second entity to attach. Leave blank to attach Entity 1 to the world." constraintsystem(target_destination) : "Constraint System Manager" : : "Name of a phys_constraintsystem that this constraint is a part of. Sometimes this is necessary to keep constraint entities from fighting with each other." forcelimit(float) : "Force Limit to Break (lbs)" : 0 : "The amount of force an impact must apply to the constraint to break it. A way of calculating this is to set it to the mass of an object that would break this constraint if it were resting on the constrained objects." torquelimit(float) : "Torque Limit to Break (lbs * distance)" : 0 : "The amount of torque required to break the constraint. A way of calculating this is to multiply any reference mass by the resting distance (from the center of mass of the object) needed to break the constraint." breaksound(sound) : "Play Sound on Break" : : "A sound played when the constraint is broken." teleportfollowdistance(float) : "Follow teleport distance" : 10 : "If either of the constrained objects teleports more than this distance away, the other object will be teleported with it." input Break(void) : "Breaks the constraint. Broken constraints cannot be reactivated; they've been deleted." input TurnOn(void) : "Turns on the constraint. The constrained objects may move wildly (but semi-naturally) once this input is sent." input TurnOff(void) : "Turns off the constraint. The objects will move around as they normally would, unless they're constrained otherwise." output OnBreak(void) : "Fires when the constraint is broken." ] @BaseClass base(CBaseEntity) = CPhysForce [ spawnflags(flags) = [ 1 : "Start On - Force starts on, but shuts off after its Time of Force." : 1 ] attach1(target_destination) : "Attached Object" : : "Object to exert force on." forcetime(float) : "Time of Force (0=inf)" : 0 : "Force will only apply for this many seconds. 0 means forever." force(float) : "Force/Angular Acceleration" : 500 : "How much force to apply, in units/degrees per second per second." input Activate(void) : "Activates the force." input Deactivate(void) : "Stops the force." input Scale(float) : "Sets Force/Angular Acceleration." ] @BaseClass base(CBreakableProp) = CPhysicsProp [ spawnflags(flags) = [ 1 : "Start Asleep - Prop begins with motion disabled, but it may be enabled at any time by a force acting on it, or the Wake input." : 0 2 : "Don't take damage physics damage. (No damage from physics forces.)" : 0 4 : "Debris - Prop won't collide with player or other debris. Good for small obstructions and expensive models." : 0 8 : "Motion Disabled. Use EnableMotion to enable it." : 0 128 : "Not affected by rotor wash." : 0 256 : "Generate output on +use - Allow OnPlayerUse to fire." : 1 1024 : "Prevent motion enable on player bump - Motion will not be enabled by the player simply running into the prop." : 0 4096 : "Debris capable of triggering triggers. Requires 'Debris' to be set." : 0 ] massscale(float) : "Mass Scale" : 1 : "Multiplier for the object's mass." inertiascale(float) : "Scale Factor For Inertia" : 1 : "Scales how much the prop spins in reaction to forces. Larger numbers make the prop roll around more and take longer to settle." Damagetype(choices) : "Impact damage type" : 0 : "Kind of damage done to objects that are hit by this prop." = [ 0 : "Blunt" 1 : "Sharp" ] overridescript(string) : "Override Parameters" : : "A list of physics keyvalues that are usually embedded in the model (https://developer.valvesoftware.com/wiki/Prop_data). Format is key,value,key,value,..." damagetoenablemotion(integer) : "Health Level to Override Motion" : : "If specified, this object will start with motion disabled. Once its health has dropped below this specified amount, it will enable motion." forcetoenablemotion(float) : "Physics Impact Force to Override Motion" : : "If specified, this object will start motion disabled. Any impact that imparts a force greater than this value will enable motion." input Sleep(void) : "Tell the prop to quit moving. Any physics forces (excluding gravity and water buoyancy) will cause the object to resume moving as usual. Sleeping also occurs automatically when the object has no physics forces to keep it awake, and is no longer moving a noticeable amount." input Wake(void) : "If the object was told to sleep, tell it to start moving again." input DisableMotion(void) : "Tell the object to stop moving completely. No physics forces will re-enable motion, not even Wake." input EnableMotion(void) : "If the object's motion has been disabled entirely, tell it to resume movement as usual. This will also Wake the object, if it is Sleeping." input DisableFloating(void) : "If the object would normally float when in water, tell it to not float. There seems to be no way to re-enable floating behavior." output OnAwakened(void) : "Fires when the prop has woken (force was applied to it while asleep, or the Wake input was sent)." output OnMotionEnabled(void) : "Fires when motion has been enabled on the prop, either via the Health Level to Override Motion or Physics Impact Force to Override Motion keyvalues, or from the EnableMotion input." output OnPlayerUse(void) : "Fires when the player has +used the prop. Requires 'Generate output on +use' to be checked. \nBUG: !activator, as well as !caller are the physics prop itself! Maybe !pvsplayer could work." output OnOutOfWorld(void) : "Fires whenever the object is detected to be outside the world. Specifically, it checks if the object is outside of the world's bounding box or if the object is traveling at over 2000 units per second in any cardinal direction." ] @BaseClass base(CBasePropDoor) = CPropDoorRotating [ spawnflags(flags) = [ 1 : "Starts Open - Door rotates to open position on spawn. Overrides Spawn Position." : 0 8192 : "Use closes" : 1 ] spawnpos(choices) : "Spawn Position" : 0 : "The door will rotate to this position when spawned (appearance not updated in Hammer)." = [ 0 : "Closed" 1 : "Direction 1 (same as Starts Open)" 2 : "Direction 2" 3 : "Ajar (see Ajar Angles)" ] ajarangles(angle) : "Ajar Angles (Pitch Yaw Roll)" : 30 : "If Spawn Position is Ajar, the door will spawn with these angles." distance(float) : "Rotation Distance" : 90 : "How many degrees the door should move. If 0, defaults to 90." opendir(choices) : "Open Direction" : 0 : "How the door can open." = [ 0 : "Open Both Directions (normal behavior)" 1 : "Open Forward Only" 2 : "Open Backward Only" ] input SetRotationDistance(float) : "Sets Rotation Distance." input SetSpeed(float) : "Sets Speed." ] @BaseClass base(CBaseAnimating) = CPropVehicle [ spawnflags(flags) = [ 1 : "Always Think (Run physics every tick) - Process movement code on entity more often. Required for vehicle to actualy drive." : 1 ] actionScale(float) : "Scale of action input / framerate" : : "TODO: Description." vehiclescript(string) : "Vehicle Script File" : : "Path to a file that defines properties about this vehicle. Look in scripts/vehicles/ for examples." input Throttle(float) : "Applies force to the vehicle with bigger numbers meaning bigger force. Could be used to simulate bumpy roads." input Steer(float) : "Forces the vehicle to steer a certain way. -1 is regular left steering, 1 is regular right steering. 0 is straight. Numbers higher than 1 or lower than -1 will cause the steering to be stronger and last longer.\n" + "Bug: needs to be spammed at least 20 times in a single tick to work." input Action(float) : "Sets Scale of action input / framerate." input HandBrakeOn(void) : "Makes the vehicle start braking. Unless the player decides to hold down the brake, the brake will stop being applied instantly, so this has to be sent rapidly to have any real effect." input HandBrakeOff(void) : "Makes the vehicle stop braking. If the player is holding down the brake it will instantly reapply, so this has to be sent rapidly to have any real effect." ] @BaseClass base(CPropVehicle) = CPropVehicleDriveable [ VehicleLocked(choices) : "Start locked" : 0 : "Makes the vehicle unenterable and unexitable until it is Unlocked." = [ 0 : "No" 1 : "Yes" ] EnableGun(choices) : "Has Gun" : 0 : "If this vehicle has a mounted gun associated with it, set if it's functional or not." = [ 0 : "No" 1 : "Yes" ] input Unlock(void) : "Makes vehicle enterable and exitable." input Lock(void) : "Makes vehicle unenterable and unexitable." input TurnOff(void) : "Makes the vehicle inoperable." input TurnOn(void) : "Makes the vehicle operational again." output PlayerOn(void) : "Fires when the player enters the vehicle. Activator is that player." output PlayerOff(void) : "Fires when the player leaves the vehicle. Activator is that player." output PressedAttack(void) : "Fires when the driver starts using their primary fire (+attack)." output PressedAttack2(void) : "Fires when the driver starts using their secondary fire (+attack2)." output AttackAxis(integer) : "Fires constantly when a driver is in the vehicle. Automatically puts 0 or 1, depending on if the driver is using their primary fire, as the input parameter, unless overridden by the mapper." output Attack2Axis(integer) : "Fires constantly when a driver is in the vehicle. Automatically puts 0 or 1, depending on if the driver is using their secondary fire, as the input parameter, unless overridden by the mapper." ] @BaseClass base(CBaseEntity,Parent) = CRopeKeyframe [ spawnflags(flags) = [ 1 : "Auto resize - Rope length adjusts as needed." : 0 ] NextKey(target_destination) : "Next KeyFrame" : : "A keyframe_rope or move_rope that this one should connect to. Only one is allowed. Two rope entities do not need to specify each other; only one does. (Doing so actually creates two ropes.)" Type(choices) : "Type" : 0 : "How many physical points the rope can bend at. This number is usually lower than the amount of visual segments. TODO: How much perf does Semi-rigid save?" = [ 0 : "Rope (8. Normal.)" 1 : "Semi-rigid (2. Doesn't look quite as natural.)" 2 : "Rigid (0. Does not bend at all.)" ] Barbed(choices) : "Barbed" : 0 : "Experimental effect. Tries to make the rope look more like an actual rope by twisting the geometry. Looks awful if the rope has too much slack." = [ 0 : "No" 1 : "Yes" ] Width(float) : "Width (1-64)" : 2 : "Thickness of the rope in world units." TextureScale(float) : "Texture Scale" : 1 : "Texture resolution. The default resolution is 4 texels per world unit. Larger values stretch the texture and smaller values scrunch it up." Collide(choices) : "Collide with world" : 0 : "Makes the rope solid to world geometry." = [ 0 : "No" 1 : "Yes" ] Dangling(choices) : "Start Dangling" : 0 : "Tells the rope to have one end dangle freely in the air. Do not use this when hanging things on ropes!" = [ 0 : "No" 1 : "Yes" ] RopeMaterial(material) : "Rope Material" : "cable/cable.vmt" : "Texture to use on the rope." NoWind(choices) : "Disable Wind" : 0 : "Tells the rope to not be shaken by wind." = [ 0 : "No" 1 : "Yes" ] input SetForce(vector) : "Instantly applies force to the rope. Format is three positive and/or negative numbers representing movement on the X, Y and Z axes." input Break(void) : "Tells the rope to break." ] @BaseClass base(CBaseButton) = CRotButton [ spawnflags(flags) = [ 64 : "X Axis - Makes the entity rotate on its X axis. (Default is Z axis.)" : 0 128 : "Y Axis - Makes the entity rotate on its Y axis." : 0 ] distance(float) : "Distance (deg)" : 90 : "How much the brush should rotate in degrees." ] @BaseClass base(CBaseEntity,Parent,RenderFields) = CSprite [ spawnflags(flags) = [ 1 : "Start on" : 1 2 : "Play Once (Only animate once.)" : 0 ] model(sprite) : "Sprite Name" : "sprites/glow01.spr" : "The material to draw." scale(float) : "Scale" : ".25" : "Scale multiplier of the sprite. Maximum 64." framerate(float) : "Framerate" : 10 : "Rate at which the sprite should animate, if at all." frame(float) readonly : "frame" : 0 : "If the sprite is animated, the frame it's on. Cannot be set here; can only be changed with AddOutput, and requires Framerate to be above 0 to do so." GlowProxySize(float) : "Size of Glow Proxy Geometry" : 2 : "Size of the glow as needed for visibility testing. Any time a sphere of this radius would be visible (even if partially obscured by nearby geometry), the sprite will be rendered. Maximum 64." input SetScale(float) : "Sets Scale." input HideSprite(void) : "Makes the sprite invisible." input ShowSprite(void) : "Makes sprite visible." input ToggleSprite(void) : "If visible, hides. If invisible, shows." input ColorRedValue(integer) : "Change the intensity of the red channel (0-255)." input ColorGreenValue(integer) : "Change the intensity of the green channel (0-255)." input ColorBlueValue(integer) : "Change the intensity of the blue channel (0-255)." ] @BaseClass base(CBaseTrigger) = CTriggerHurt [ damage(float) : "Damage" : 10 : "How much damage to do every half-second. Affects how hard ragdolls get pushed. BUG: Damages half as much as it should. If Damage is 1, it gets reduced to 0.5 and then rounded down to 0, resulting in damage sounds despite not taking any damage." damagecap(float) : "Damage Cap" : 20 : "Maximum amount of damage to do when using Doubling with forgiveness as the Damage Model." damagemodel(choices) : "Damage Model" : 0 : "Controls how damage is applied. BUG: Damage will not reset to its initial value when using Doubling with forgiveness. A logic_timer rapidly enabling and disabling the trigger somehow fixes it." = [ 0 : "Normal - Straightforward; applies Damage every half-second." 1 : "Doubling with forgiveness - Damage doubles until all hurtable entities have left the trigger for 3 seconds." ] nodmgforce(choices) : "Zero Damage Force" : 0 : "If yes, cancels any physics force the hurt entity might receive." = [ 0 : "No" 1 : "Yes" ] damagetype(choices) : "Damage Type" : 0 : "What kind of damage to do." = [ 0 : "Generic" 1 : "Crush (physics)" 5 : "Sharp physics object (Crush+Slash)" 8 : "Burn" 32 : "Fall" 64 : "Blast (C4, HE)" 128 : "CS projectile collision (Club)" 256 : "Shock" 4098 : "CS bullets, knife (Bullet+Nevergib)" 16384 : "Drown" ] input SetDamage(float) : "Sets Damage." output OnHurt(void) : "Fires when the trigger hurts something that is NOT a player." output OnHurtPlayer(void) : "Fires when the trigger hurts a player." ] @BaseClass base(CBaseTrigger) = CTriggerMultiple [ wait(float) : "Delay Before Reset" : ".2" : "Time after being activated before OnTrigger can fire again. -1 means it will never fire the output again. If zero, defaults to 0.2." output OnTrigger(void) : "Fires whenever a valid entity is inside the trigger (potentially continuously). The trigger will wait until Delay Before Reset is over before firing this output again." ] @BaseClass base(CBaseCombatWeapon) = CWeaponCSBase [ ammo(integer) : "Reserve Ammo" : : "How much extra ammo the gun has. The gun will always come with at least one full clip. Does not work on non-gun weapons." ] //SE ENTITIES @PointClass base(CBaseEntity) iconsprite("editor/ambient_generic") sphere() color(0 0 255) = ambient_generic : "Plays a sound, either once or on loop, and either from a location in the world or globally. It can play soundscripts (Game Sounds), raw wav's or mp3's, and scripted sentences from sentences.txt.\n" + "BUG: As a general note, this entity is very broken! Advanced sound manipulation is best done through soundscripts or by putting effects directly on the sound file.\n" + "BUG: Parenting does not always work with ambient_generic. Use Source Entity.\n" + "BUG: Known to ignore inputs sent by ent_fire under some specific circumstances." [ spawnflags(flags) = [ 1 : "Play everywhere - Audible through the entire map and always the same volume. Broken for soundscripts." : 0 16 : "Start Silent - Makes the sound not play when the map loads. Sounds should usually start silent unless they are looped." : 1 32 : "Is NOT Looped - Allows the sound to played rapidly without interrupting itself. Does not make sound loop or not loop. BUGGY!" : 0 ] message(sound) : "Sound Name" : : "Sound to play." radius(float) : "Max Audible Distance" : 1250 : "Maximum distance that this sound may be heard from. BUG: Impressively, sounds are still slightly audible outside this range." SourceEntityName(target_destination) : "Source Entity" : : "A location that the sound will play at instead of from the ambient_generic. BUG: That entity must exist when this entity is spawned, or else the sound will still play at the ambient_generic. Using AddOutput to change this keyvalue does not work." preset(choices) : "Dynamic Presets" : 0 : "Various effect filters that change how sounds sound. Note that these are not DSP effects. Setting this will override many of the settings below." = [ 0 : "None" 1 : "Slow Spin up/down" 2 : "Spin up/down" 3 : "Fast Spin up/down" 4 : "Slow Fade in/out" 5 : "Fade in/out" 6 : "Fast Fade in/out" 7 : "Slow Pulse" 8 : "Pulse" 9 : "Fast Pulse" 10 : "Slow Pitch Oscillator" 11 : "Pitch Oscillator" 12 : "Fast Pitch Oscillator" 13 : "Pitch 1" 14 : "Pitch 2" 15 : "Pitch 3" 16 : "Pitch 4" 17 : "Pitch 5" 18 : "Pitch 6" 19 : "Alternate Pitch Oscillation" 20 : "Alternate Pitch Oscillation 2" 21 : "Random Pitch Slow" 22 : "Random Pitch Fast" 23 : "Incremental Spinup" 24 : "Weird Pitch 1" 25 : "Weird Pitch 2" 26 : "Weird Pitch 3" 27 : "Weird Pitch 4" ] pitch(integer) : "Pitch" : 100 : "Pitch of the sound on a range from 0 to 255. Default is 100. Does not work with soundscripts." pitchstart(integer) : "Start Pitch" : 100 : "A pitch for the sound to 'spin up' (start) and 'spin down' (end) at. See Spin up/down time. BUG: When this number is set higher than Pitch, only a small blip of the sound will play before the sound stops prematurely." spinup(integer) : "Spin up time (0-100)" : 0 : "When the sound begins playing, it will take this long for it to transition from Start Pitch to Pitch." spindown(integer) : "Spin down time (0-100)" : 0 : "When the sound is told to quit playing by an input, it will take this long to transition from Pitch to Start Pitch (once over, the sound finishes entirely)." health(integer) : "Volume" : 10 : "Volume for this sound to play at by default on a range from 0 (silent) to 10." volstart(integer) : "Start Volume" : 0 : "A volume for the sound to fade in from and fade out to. See Fade in/out time in seconds." fadeinsecs(integer) : "Fade in time in seconds (0-100)" : 0 : "When the sound begins playing, it will take this long to transition from Start Volume to Volume." fadeoutsecs(integer) : "Fade out time in seconds (0-100)" : 0 : "When the sound is told to quit playing by an input, it will take this long to transition from Volume to Start Volume (once over, the sound finishes entirely)." lfotype(choices) : "LFO Type" : 0 : "A Low Frequency Oscillation pattern to apply to the sound." = [ 0 : "None" 1 : "Square - Sound abruptly switches between high and low." 2 : "Triangle - Sound smoothly transitions between high and low." 3 : "Random - Sound changes unpredictably between high and low." ] lforate(integer) : "LFO rate (0-1000)" : 0 : "Frequency that the oscillation occurs." lfomodpitch(integer) : "LFO mod pitch (0-100)" : 0 : "Pitch to modulate down to. BUG: When using this, the sound may temporarily stop if the value is higher than Pitch or if Pitch is not at 100." lfomodvol(integer) : "LFO mod vol (0-100)" : 0 : "Volume to modulate down to. BUG: When using this, the sound may temporarily stop if the value is higher than Volume x 10 or if Volume is not at 10." cspinup(integer) : "Incremental Spinup Count" : 0 : "Legacy support. This keyvalue is weirdly implemented and is capable of increasing a sound's pitch over time. You should leave this at 0 unless you know what you're doing." input Pitch(integer) : "Plays the sound at a particular pitch." input PlaySound(void) : "Starts the sound." input StopSound(void) : "Stops the sound." input ToggleSound(void) : "Starts sound if not playing, and stops sound if playing. If Dynamic Presets is Incremental Spinup, increases the pitch by the amount in Incremental Spinup Count." input Volume(float) : "Plays the sound at a particular volume. (To clarify, this does not simply change the active volume of the sound. It stops the sound and makes it begin playing again.)" input FadeIn(integer) : "Starts sound with a transition from silence to full volume, lasting a given number of seconds. Seems to only work with very specific setups? Needs to be researched." input FadeOut(integer) : "Fades the sound to silence over a specified number of seconds." ] @PointClass base(CBaseEntity,Parent,EnableDisable) sphere(minfalloff) sphere(maxfalloff) iconsprite("editor/color_correction") color(255 203 11) = color_correction : "Loads a color correction lookup table (.raw) and controls its strength. Correction is applied in a sphere surrounding the entity, with a configurable amount of falloff. For more info on color correction, see here: https://developer.valvesoftware.com/wiki/Color_correction" [ minfalloff(float) : "Lookup Falloff Start Distance" : -1 : "Within this range to the entity, the effect will be at full strength. If this is larger than the End Distance, the effect will apply to the entire map." maxfalloff(float) : "Lookup Falloff End Distance" : -1 : "Maximum distance from the entity that the effect is applied. At this distance, the effect is barely apparent but will strengthen to 100% as the viewer approaches the Start Distance." maxweight(float) : "Maximum Weight" : 1 : "How strongly this entity should apply the effect. This is a decimal percent, e.g. 0.45 = 45%." fadeInDuration(float) : "Lookup Fade In Duration" : 0 : "How long this color correction should take to fade in." fadeOutDuration(float) : "Lookup Fade out Duration" : 0 : "How long this color correction should take to fade out." filename(string) : "Lookup Table Filename" : : "Filepath to the .raw being used." input SetFadeInDuration(float) : "Sets Lookup Fade In Duration." input SetFadeOutDuration(float) : "Sets Lookup Fade out Duration." ] @PointClass base(Model,CBaseAnimating) color(255 203 11) studio() = cycler : "OBSOLETE: You shouldn't use this entity, though it may appear in other people's maps. This entity was used in Half-Life for models, so replace it with a prop_ entity." [ ] @PointClass base(CBeam,Toggle) size(-4 -4 -4, 4 4 4) line(255 255 255, targetname, LightningStart, targetname, LightningEnd) color(255 203 11) = env_beam : "A beam of energy running between two entities.\nBUG: Parenting might break the entity. Try using logic_measure_movement or env_laser." [ spawnflags(flags) = [ 4 : "Random Strike (Once the beam has died, it will strike again randomly with a time variance set by Strike again time.)" : 0 128 : "Shade Start (The beam fades out toward its Start Entity. Overrides Shade End. Does not work on striking beams.)" : 0 256 : "Shade End (The beam fades out toward its Ending Entity. Is overridden by Shade Start. Does not work on striking beams.)" : 0 512 : "Taper Out (Makes the beam taper out into a point towards its Ending Entity. Does not work on striking beams.)" : 0 ] LightningStart(target_destination) : "Start Entity" : : "Entity that the beam starts at. If omitted the entity will instead use a random position on any surface within its Radius value. A new random position will be appointed for every strike." LightningEnd(target_destination) : "Ending Entity" : : "Entity that the beam ends at. If omitted the entity will instead use a random position on any surface within its Radius value. A new random position will be appointed for every strike." life(float) : "Life" : 0 : "Amount of time before the beam dies. Setting to zero will make the beam stay forever." BoltWidth(float) : "Width of beam" : 2 : "Radius of the beam (i.e. 1 = 2 world units total thickness)." NoiseAmplitude(float) : "Amount of noise" : 0 : "The amount of noise in the beam. 0 is a perfectly straight beam, and high values are very jagged." TextureScroll(integer) : "Texture Scroll Rate" : 35 : "Rate at which the beam texture should scroll along the beam." StrikeTime(float) : "Strike again time" : 1 : "Time between random strikes of the beam." texture(sprite) : "Sprite Name" : "sprites/laserbeam.spr" : "The material used to draw the beam." framestart(integer) : "Starting Frame" : 0 : "The frame to start the beam texture on." Radius(float) : "Radius" : 256 : "If the Random Strike spawnflag is set, this radius determines the area within which the endpoints will randomly strike." TouchType(choices) : "Touch Type" : 0 : "If the beam is touched by an entity fitting this criteria, the OnTouchedByEntity output will fire." = [ 0 : "Not a tripwire (all entities ignored)" 1 : "Player Only" 2 : "NPC Only" 3 : "Player or NPC" 4 : "Player or NPC or Physprop" ] filtername(filterclass) : "Filter Name" : : "A CBaseFilter entity used to filter which entities can cause OnTouchedByEntity to fire." decalname(string) : "Decal Name" : "Scorch" : "If Damage/Second is set to something, this decal will appear where the beam first touches a solid object." input TurnOn(void) : "Turns the beam on." input TurnOff(void) : "Turns the beam off." input StrikeOnce(void) : "Makes the beam turn on then turn off again once it dies." output OnTouchedByEntity(void) : "Fires if an entity passing the Touch Type and Filter Name criterion touches the beam. !Activator is that entity." ] @PointClass base(CBaseEntity,Parent) color(195 0 0) = env_blood : "Emits blood." [ spawnflags(flags) = [ 1 : "Random Direction - Spray Direction changes direction every time." : 0 4 : "On Player - Appears from !activator. A player must be the !activator otherwise blood comes from 1st player." : 0 8 : "Spray decals - Places a blood decal when emitting the blood." : 0 16 : "Cloud" : 0 32 : "Drops" : 0 64 : "Gore - Emits an effect similar to Cloud but smaller." : 0 ] spraydir(angle) : "Spray Direction" : "0 0 0" : "The direction to apply the decal in, and which way to throw the cloud and drops." amount(float) : "Amount of blood" : 40 : "Intensity; affects how far decal can go, size of blood cloud, drops and gore." input EmitBlood(void) : "Emits the blood effect." ] @SolidClass base(CBaseEntity,Parent,Toggle) color(28 146 214) = env_bubbles : "Volume in which to spawn rising bubbles. The number and frequency of bubbles can be adjusted. Use tools/toolsinvisible on this entity!" [ spawnflags(flags) = [ 1 : "Start Off" : 0 ] current(float) : "Speed of Current" : 0 : "Speed at which the water is moving. This will cause the bubbles to move east as they rise, or west if the number is negative." density(integer) : "Bubble density" : 0 : "How many bubbles to spawn in a single batch, plus one extra." frequency(integer) : "Bubble frequency" : 19 : "Time between spawning batches of bubbles. If 20 or greater, the time is always 2.5 seconds. If less, the time is 2.5 - (0.1 * X)." input Activate(void) : "Turns on the bubbles." input Deactivate(void) : "Turns off the bubbles." input SetCurrent(float) : "Sets Speed of Current." input SetDensity(integer) : "Sets Bubble density." input SetFrequency(integer) : "Sets Bubble frequency." ] @PointClass sidelist(sides) iconsprite("editor/env_cubemap") color(255 203 11) = env_cubemap : "When the buildcubemaps console command is executed, the position of this entity will be used to sample the environment for static reflections. Objects using $envmap will use the nearest cubemap as a reflection. When built, cubemaps will ignore any objects capable of moving, due to the fact that cubemaps are not able to 'update' themselves with the new position of the object. Due to being an internal entity, cubemaps cannot be erased, added or altered after the compile (in any easy and worthwhile way).\n"+ "Cubemaps should logically be placed around the player's eye level (which varies by game). They should not be placed too close to any object. Place at least one cubemap in each room and anywhere else that the environment changes largely. There aren't any direct consequences, but cubemaps should not be over-applied due to bloated file size." [ cubemapsize(choices) : "Cubemap Size" : 6 : "Resolution of a single side of the cube. Must be less than 1/4th of your screen's smallest dimension. Larger sizes can extremely bloat your map's file size, and the amount of resources required to open the map! Choose the resolution of each cubemap wisely." = [ 1 : "1x1" 2 : "2x2" 3 : "4x4" 4 : "8x8" 5 : "16x16" 6 : "32x32" 7 : "64x64" 8 : "128x128" 9 : "256x256" 10 : "512x512" 11 : "1024x1024" 12 : "2048x2048" 13 : "4096x4096" ] sides(sidelist) : "Brush faces" : : "An optional override for individual brush faces, forcing them to use this cubemap instead of the one closest to them. To select faces, press the Pick button then click on them in the 3D view. Hold Ctrl to select multiple faces." ] @PointClass base(CBaseEntity) iconsprite("editor/env_particles") color(0 180 0) sphere(fademindist) sphere(fademaxdist) = env_detail_controller : "It overrides the default fading distances for detail sprites." [ fademindist(float) : "Start Fade Dist/Pixels" : 400 : "Distance at which the sprites begin to fade away." fademaxdist(float) : "End Fade Dist/Pixels" : 1200 : "Distance at which the sprites are no longer visible (and therefore ignored by the renderer)." ] @PointClass base(CBaseEntity,Parent) iconsprite("editor/env_particles") color(255 203 11) = env_dustpuff : "Makes dust." [ scale(float) : "Scale" : 1 : "Size of the dust puff." speed(float) : "Speed" : 16 : "Speed at which the dust particles should move." color(color255) : "Dust color" : "128 128 128" : "Color of the dust particles." input SpawnDust(void) : "Spawns a dust puff." ] @PointClass base(CBaseEntity,Parent) iconsprite("editor/env_particles") color(255 203 11) = env_dusttrail : "An entity that continuously spawns dust sprites. Parent it to something in order to make a trail." [ color(color255) : "Color" : "127 127 127" : "Dust color." opacity(float) : "Opacity" : "0.5" : "How transparent the dust is, on a scale from 0 (invisible) to 1 (fully visible)." emittime(float) : "Emitter Lifetime" : 0 : "How long to spread dust before stopping. 0 = never stop. This entity will not remove itself automatically once it stops emitting." lifetime(float) : "Particle Lifetime" : 5 : "How long a single dust sprite can stay around for." spawnrate(float) : "Spawn Rate" : 10 : "How many dust sprites to spawn per second." minspeed(float) : "Minimum Random Speed" : 2 : "Minimum speed dust sprites can move at in a random direction. They will lose speed over their lifetime." maxspeed(float) : "Maximum Random Speed" : 4 : "Maximum speed dust sprites can move at in a random direction." mindirectedspeed(float) : "Minimum Directed Speed" : 0 : "Minimum speed to apply to dust sprites, in the direction specified by Pitch Yaw Roll." maxdirectedspeed(float) : "Maximum Directed Speed" : 0 : "Maximum speed to apply to dust sprites, in the direction specified by Pitch Yaw Roll." startsize(float) : "Start size" : 35 : "Size of the dust sprites when they first spawn." endsize(float) : "End size" : 55 : "Side of the dust sprites when they get close to de-spawning." spawnradius(float) : "Spawn Radius" : 2 : "How far away from the entity the dust sprites can spawn at." ] @PointClass base(CBaseAnimating) color(255 203 11) sphere(fademindist) sphere(fademaxdist) = env_effectscript : "Creates env_sprites and env_spritetrails parented to attachment points on an animated model to create complex effects. Arguably obsolete to the current particle system (info_particle_system)." [ model(studio) : "Script Model" : "models/Effects/teleporttrail.mdl" : "Model to use for animation sequence." scriptfile(string) : "Script File" : "scripts/effects/testeffect.txt" : "File with info about the visual effects to spawn. See scripts/effects/testeffect.txt from Half-Life 2." input SetSequence(string) : "Sets the script model's animation. See the sequence tab in the model browser for available animations." ] @SolidClass base(CBaseEntity,Parent) color(219 30 20) = env_embers : "It spawns fire embers within its volume. No more than 2048 sprites will appear at once. If it goes over this limit, it will temporarily stop spawning. The approximate number of sprites at any given time can be found by multiplying Density by Particle Lifetime. (The final number depends on a few other variables, including the size of the brush.)" [ spawnflags(flags) = [ 1 : "Start On" : 1 2 : "Toggle - If left off, only one Use input will ever be accepted." : 0 ] density(integer) : "Density" : 50 : "Number of particles spawned each second." lifetime(integer) : "Particle Lifetime" : 4 : "Number of seconds each particle lasts for. A certain amount of randomness is added proportional to the time specified here." speed(float) : "Particle Speed" : 32 : "Number of units moved by particles each second." rendercolor(color255) : "Ember Color" : "255 255 255" : "Color of the sprites." input Use(void) : "Turns the entity on or off." input Color(color255) : "Sets Ember Color. Already-spawned embers will not change color." ] @PointClass base(CBaseEntity) = env_entity_dissolver : "Kills and removes things in a flashy sci-fi fashion." [ target(target_destination) : "Target to Dissolve" : : "Targetname of the entity to dissolve." magnitude(integer) : "Magnitude" : 250 : "If Dissolve Type is Core effect, how strongly to push things away from this entity." dissolvetype(choices) : "Dissolve Type" : 0 : "Particle effects to be generated when something is dissolved." = [ 0 : "Energy" 1 : "Heavy electrical" 2 : "Light electrical" 3 : "Core effect" ] input Dissolve(target_destination) : "Dissolves the Target to Dissolve, or any other entity specified in the parameter." ] @PointClass base(CBaseEntity) color(255 94 8) = env_entity_igniter : "Catches things on fire." [ target(target_destination) : "Entity to ignite" : : "Entity or entities to ignite." lifetime(float) : "Lifetime in seconds" : 30 : "How long the flames last." input Ignite(void) : "Ignites the Entity to ignite." ] @PointClass base(CBaseEntity,Parent,Angles) color(248 155 0) = env_entity_maker : "It spawns a specified point_template template at the env_entity_maker's origin. It can be set to spawn automatically or through inputs." [ spawnflags(flags) = [ 1 : "Enable AutoSpawn - Spawn template whenever there's enough room to fit it, and the player is not looking." : 0 2 : "AutoSpawn: Wait for entity to be destroyed." : 0 4 : "AutoSpawn: Spawn even if the player is looking." : 0 8 : "ForceSpawn (input): Spawn only if there's enough room to fit the object." : 0 16 : "ForceSpawn (input): Spawn only if the player isn't looking." : 0 ] EntityTemplate(target_destination) : "Point_template To Spawn" : : "Name of the point_template to spawn here." PostSpawnSpeed(float) : "PostSpawn Movement Speed" : 0 : "All entities spawned will move this many units per second in the direction of PostSpawn Movement Direction." PostSpawnDirection(angle) : "PostSpawn Movement Direction" : 0 : "All entities spawned in the template will move in this direction." PostSpawnDirectionVariance(float) : "PostSpawn Direction Variance" : "0.15" : "The PostSpawn Movement Direction may vary by this many degrees. This is a radius." PostSpawnInheritAngles(choices) : "PostSpawn Inherit Angles" : 0 : "If Yes, spawned entities will face in the same direction as the env_entity_maker's Parent. (As opposed to the direction of this env_entity_maker itself.)" = [ 0 : "No" 1 : "Yes" ] input ForceSpawn(void) : "Spawns an instance of the template at this entity's origin and angles. See the ForceSpawn flags." input ForceSpawnAtEntityOrigin(target_destination) : "Spawns an instance of the template at the specified entity's origin and angles." output OnEntitySpawned(void) : "Fires when an instance of the entity template has been spawned." output OnEntityFailedSpawn(void) : "Fires when the template failed to spawn via ForceSpawn due to it not being able to fit properly or due to the player looking at the entity." ] @PointClass base(CBaseEntity,Parent) iconsprite("editor/env_explosion") color(0 255 255) sphere(iRadiusOverride) = env_explosion : "It creates an explosion at its origin." [ spawnflags(flags) = [ 1 : "No Damage" : 0 2 : "Repeatable - Once the explosion has happened, the entity will not remove itself." : 0 4 : "No Fireball" : 0 16 : "No Decal - Black scorch decal left at the explosion center." : 0 32 : "No Sparks (env_explosion normally makes a spark effect but only when underwater, due to a code typo)." : 0 64 : "No Sound" : 0 128 : "Random Orientation - Applies more randomness to the orientations of sprites. Virtually impossible to see the difference." : 0 256 : "No Fireball Smoke - Fireball smoke only spawns if the fireball itself can too." : 0 512 : "No Particles" : 0 2048 : "Don't clamp Min - Allow much smaller fire sprites." : 0 4096 : "Don't clamp Max - Allow much larger fire sprites." : 0 8192 : "Damage above surface only - Don't do damage to the player if they are underwater." : 0 16384 : "Generic damage - Do DMG_GENERIC damage, as opposed to DMG_BLAST." : 0 ] iMagnitude(integer) : "Magnitude" : 100 : "The amount of damage done by the explosion." 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." DamageForce(float) : "Damage Force" : 0 : "Overrides push force. BUG: Very obvious disparity between force applied to players and force applied to physics objects." input Explode(void) : "Makes the explosion happen. If Repeatable is not ticked, the entity will remove itself shortly after the explosion. If this input is sent very rapidly, the explosion may occur multiple times, or possibly infinitely due to the entity not removing itself fast enough! This delay is probably to avoid errors involved with attributing damage/kills to the explosion. If it becomes a problem, Kill the entity as soon as possible or otherwise prevent the input from sending." ] @PointClass base(CBaseEntity) iconsprite("editor/env_fade") color(0 255 255) = env_fade : "Makes the screen fade to or from a solid color. Add Duration and Hold Time together for the total time this entity will be in effect." [ spawnflags(flags) = [ 1 : "Fade From - Screen fades from the specified color instead of to it." : 0 2 : "Modulate - Uses attenuation blending to achieve the fade. 0 255 0 would mute red/blue, make a nightvision effect." : 0 4 : "Triggering player only - Only affects the screen of the !activator. (Otherwise, all players.)" : 1 8 : "Stay Out - Fade remains indefinitely until another fade deactivates it." : 0 ] duration(float) : "Duration (seconds)" : : "The time that it will take to fade the screen in or out." holdtime(float) : "Hold Fade (seconds)" : : "The time to hold the faded in/out state." renderamt(integer) : "Fade Alpha" : : "Alpha of the fade, where 0 = fully transparent and 255 = fully opaque." rendercolor(color255) : "Fade Color (R G B)" : : "Fade color." input Fade(void) : "Starts the screen fade." input Alpha(integer) : "Changes Fade Alpha." input Color(color255) : "Changes Fade Color." output OnBeginFade(void) : "Fired when the fade has begun." ] @PointClass base(CBaseEntity,Parent,EnableDisable) iconsprite("editor/env_fire") color(255 94 8) = env_fire : "It handles a single flame at its origin. The flame causes heat 'damage' to other env_fire entities around it, and will eventually ignite them, causing the fire to spread. The entity attempts to always place itself directly onto the ground by 'dropping' down. The fire may fall through the world if placed exactly at ground level. Place it a little bit above the ground to fix this." [ spawnflags(flags) = [ 1 : "Infinite Duration" : 1 2 : "Smokeless (good FPS boost)" : 0 4 : "Start Ignited" : 1 8 : "Ignore external heat" : 0 16 : "Don't drop (disables the dropping behavior)" : 0 128 : "Delete when out (entity will remove itself after extinguishing)" : 1 ] health(integer) : "Duration" : 30 : "Amount of time the fire will burn." firesize(integer) : "Size" : 64 : "Distance in which the fire can spread heat to other fire entities. Also scales the fire and smoke to look smaller or larger." fireattack(integer) : "Attack" : 4 : "Amount of time the fire takes to grow to full strength." ignitionpoint(float) : "Ignition Point" : 32 : "Amount of heat 'damage' to take before this flame should ignite." damagescale(float) : "Damage Scale" : 1 : "Multiplier of the burn damage done by the flame." input StartFire(void) : "Start the fire." input Extinguish(float) : "Puts out the fire permanently after the number of seconds specified." input ExtinguishTemporary(float) : "Puts out the fire temporarily after the number of seconds specified." output OnIgnited(void) : "Fires when the fire is first ignited." output OnExtinguished(void) : "Fires when the fire is fully extinguished." ] @PointClass base(CBaseEntity,Parent) iconsprite("editor/env_fire") color(255 94 8) = env_fire_trail : "Fire trail. Parent it to something." [ ] @PointClass base(CBaseEntity,Parent) sphere(fireradius) color(255 94 8) = env_firesensor : "It detects changes in heat from nearby env_fires (other fire-based things are ignored)." [ spawnflags(flags) = [ 1 : "Start On" : 1 ] fireradius(float) : "Radius" : : "The radius around this entity in which to detect heat changes." heatlevel(float) : "Heat level" : : "The target heat level to check for." heattime(float) : "Time at level" : : "The amount of time the heat level must spend over the target level before the OnHeatLevelStart output is fired." input Enable(void) : "Turns the entity on." input Disable(void) : "Turns the entity off." output OnHeatLevelStart(void) : "Fires when the heat has been above Heat level for the amount of time defined by Time at level." output OnHeatLevelEnd(void) : "Fires when the heat falls below Heat level." ] @PointClass base(CBaseEntity,Parent) sphere(fireradius) iconsprite("editor/env_fire") color(255 94 8) = env_firesource : "It provides heat to all nearby env_fire entities." [ spawnflags(flags) = [ 1 : "Start On" : 1 ] fireradius(float) : "Radius" : : "The radius around this entity in which to provide heat." firedamage(float) : "Intensity/Damage" : : "Amount of heat 'damage' to apply to env_fires within the Radius." input Enable(void) : "Turns the entity on." input Disable(void) : "Turns the entity off." ] @PointClass base(CBaseEntity,Angles) iconsprite("editor/fog_controller") color(255 203 11) sphere(fogstart) sphere(fogend) = env_fog_controller : "Creates fog in the air. Multiple may exist in one map in order to change settings at any time. The 3D Skybox fog levels set by the sky_camera parameters should correspond to your env_fog_controller settings. If there's more than one controller in the map, the one a player listens to can be changed by sending the player entity a SetFogController input." [ spawnflags(flags) = [ 1 : "Master - Makes this controller the one players listen to on start. Equivalent to sending the player SetFogController." : 0 ] fogenable(choices) : "Fog Enabled" : 1 : "Makes fog start active." = [ 0 : "No" 1 : "Yes" ] fogstart(float) : "Fog Start" : 400 : "How far away from the viewer the fog should start." fogend(float) : "Fog End" : 9500 : "How far away from the viewer the fog reaches Fog Max Density." fogmaxdensity(float) : "Fog Max Density" : 1 : "Maximum density the fog may reach. Expressed as a decimal percent, so for 45% put 0.45." farz(integer) : "Far Z Clip Plane" : -1 : "Anything beyond this distance in world units will not be rendered. This should be higher than Fog End. Past the far Z, the skybox (and only the skybox) is rendered, so your fog color will probably need to match its color." fogcolor(color255) : "Primary Fog Color" : "170 204 221" : "Fog Color." fogcolor2(color255) : "Secondary Fog Color" : "170 204 221" : "Secondary Fog Color. If Fog Blend is disabled, this color will never appear." fogblend(choices) : "Fog Blend" : 0 : "Enables color blending between Primary Fog Color and Secondary Fog Color. When the viewer looks in the Primary Fog Direction, fog will appear as the Primary color. When looking away from the specified direction, fog appears as the Secondary color. If the camera is not pointed directly at or away from the direction, a blend of the two colors will result." = [ 0 : "No" 1 : "Yes" ] fogdir(vector) : "Primary Fog Direction" : "1 0 0" : "Direction which the viewer camera is checked against to figure out the blend between the primary and secondary fog colors." use_angles(choices) : "Use Angles for Fog Dir" : 0 : "Use Pitch Yaw Roll for the Fog Blend direction instead of Primary Fog Direction." = [ 0 : "No" 1 : "Yes" ] foglerptime(float) : "Interpolate time" : 5 : "Fade time for the StartFogTransition input." input TurnOn(void) : "Turns the fog on." input TurnOff(void) : "Turns the fog off, meaning none appears at all if this is the controller being listened to." input SetStartDist(float) : "Sets Fog Start." input SetEndDist(float) : "Sets Fog End." input SetColor(color255) : "Sets Primary Fog Color." input SetColorSecondary(color255) : "Sets Secondary Fog Color." input SetFarZ(integer) : "Sets Far Z Clip Plane." input SetMaxDensity(float) : "Sets Fog Max Density." input SetAngles(string) : "Sets Primary Fog Direction." input SetColorLerpTo(color255) : "Stores a value for Primary Fog Color that is set once the StartFogTransition input is sent." input SetColorSecondaryLerpTo(color255) : "Stores a value for Secondary Fog Color that is set once the StartFogTransition input is sent." input SetStartDistLerpTo(float) : "Stores a value for Fog Start that is set once the StartFogTransition input is sent." input SetEndDistLerpTo(float) : "Stores a value for Fog End that is set once the StartFogTransition input is sent." input StartFogTransition(void) : "When fired, the fog fades to any new values sent through the 'LerpTo' inputs. Fade time is determined by the Interpolate time keyvalue.\n" + "BUG: If not specified by an input, the lerpto values for the start and end distances will be zero, so they'll inch closer and closer to the camera, then go back to normal once the transition is over." ] @PointClass base(CBaseEntity,Parent) color(255 203 11) = env_funnel : "Sprite funnel effect. Used in the start of Half-Life." [ spawnflags(flags) = [ 1 : "Reverse (Makes the sprites move away from the entity, instead of moving towards it.)" : 0 ] input Use(void) : "Emits the effect. Once it's done, the entity is automatically removed from the map." ] @PointClass base(CBaseEntity) color(248 155 0) = env_global : "Stores boolean info, even across rounds (logic_branch will reset). This also includes across maps. These can control if a logic_auto fires its outputs." [ spawnflags(flags) = [ 1 : "Set Initial State - Makes this entity define the global state once the server loads the map." : 1 ] globalstate(string) : "Global State to Set" : : "Global state the entity is associated with. Essentially, the name of a variable." initialstate(choices) : "Initial State" : 1 : "Used by Set Initial State to determine what the global state should be set to when the map starts." = [ 0 : "Off" 1 : "On" 2 : "Dead (Dead globals get turned off permanently, and can never be put back to Off or On.)" ] input TurnOn(void) : "Sets the global's state to ON." input TurnOff(void) : "Sets the global's state to OFF." input Toggle(void) : "Switches state of the global between ON and OFF." input Remove(void) : "Set state of global to DEAD." ] @PointClass base(CBaseEntity,Parent,EnableDisable) line(255 255 255, targetname, target) size(16 16 16) color(255 203 11) = env_gunfire : "Purely cosmetic gunfire effect." [ target(target_destination) : "Target" : : "Entity will shoot at this target. Required." minburstsize(integer) : "Min Burst Size" : 30 : "Minimum number of shots in a burst of shots." maxburstsize(integer) : "Max Burst Size" : 30 : "Maximum number of shots in a burst of shots." minburstdelay(float) : "Min Delay Between Bursts" : 1 : "Minimum delay between bursts in seconds." maxburstdelay(float) : "Max Delay Between Bursts" : 1 : "Maximum delay between bursts in seconds." rateoffire(float) : "Rate of fire" : "11.1" : "Number of bullets to fire per second." spread(integer) : "Bullet spread" : 1 : "Bullets may deviate this far away in degrees, from shooting straight forward." bias(choices) : "Bullet distribution" : 1 : "How to distribute bullets within the spread. Even distribution will shoot bullets nearly uniformly throughout the Bullet spread cone. Biased will avoid the middle and aim more along the outside of the cone." = [ 1 : "Evenly distributed" -1 : "Biased towards the outside" ] collisions(choices) : "Collision detection" : 1 : "Whether/how to handle bullet collision detection. If you select None, this entity will be very cheap to use, but all bullets will stop short at their target's position in space and there will be no impact effects. Normal collision detection does the same things players do when they fire their guns (except harm anything)." = [ 0 : "None. Cheap performance." 1 : "Normal collision detection." ] shootsound(sound) : "Shoot Sound" : "weapons/ak47/ak47-1.wav" : "Gun sound to make." tracertype(choices) : "Tracer" : "Tracer" : "What to show for the bullet effects. See here for a full list: https://developer.valvesoftware.com/wiki/List_of_Client_Effects" = [ "Tracer" : "Normal" "CS_MuzzleFlash" : "None" ] ] @PointClass base(CBeam,Toggle) size(-4 -4 -4, 4 4 4) line(255 255 255, targetname, LaserTarget) color(255 203 11) = env_laser : "It creates a laser beam between itself and a given target. The main difference between this entity and env_beam is that a laser will not travel through anything solid. If the laser doesn't cause damage, make sure the origin is not inside anything solid. If your env_laser doesn't have a targetname it will automatically be turned on when the map starts." [ BoltWidth(float) : "Width of beam" : 2 : "Radius of the beam (i.e. 1 = 2 world units total thickness)." NoiseAmplitude(float) : "Amount of noise" : 0 : "The amount of noise in the beam. 0 is a perfectly straight beam, and high values are very jagged." TextureScroll(integer) : "Texture Scroll Rate" : 35 : "Rate at which the beam texture should scroll along the laser." texture(sprite) : "Sprite Name" : "sprites/laserbeam.spr" : "The material used to draw the laser. IMPORTANT: Remember to add the texture's file extension to the end, to prevent crashes and other bugs." LaserTarget(target_destination) : "Target of Laser" : : "The laser's endpoint. This is required." EndSprite(sprite) : "End Sprite" : : "If specified, this sprite will be drawn at the end of the laser." framestart(integer) : "Starting Frame" : 0 : "The frame to start the laser texture on." input TurnOn(void) : "Turns the beam on." input TurnOff(void) : "Turns the beam off." ] @PointClass base(CBaseEntity,Parent,Angles) studio("models/editor/axis_helper_thick.mdl") sphere(MinDist) sphere(MaxDist) sphere(OuterMaxDist) sphere(GlowProxySize) color(160 240 37) = env_lightglow : "It puts an additive glow in the world, mostly used over light sources and other locations where a glow would look natural (tunnels, caves, dark buildings, etc). It's main difference from env_sprite is its ability to appear only when the viewer is in a certain area. This entity does not have Enable/Disable inputs. Using the Color input with a parameter of 0 0 0 will hide it, as a workaround." [ spawnflags(flags) = [ 1 : "Visible only from front" : 0 ] rendercolor(color255) : "Color (R G B)" : "255 255 255" : "Glow color." VerticalGlowSize(integer) : "Vertical Size" : 30 : "Height of the sprite." HorizontalGlowSize(integer) : "Horizontal Size" : 30 : "Width of the sprite." 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, the glow will also fade out until this distance past Maximum Distance." GlowProxySize(float) : "Glow Proxy Geometry Size (0-64)" : 2 : "Size of the glow to be rendered for visibility testing. Any time a sphere of this radius would be visible (poking through any nearby geometry), the glow will be rendered." input Color(color255) : "Changes the color of the glow. A value of 0 0 0 will hide the sprite." ] @PointClass base(CBaseEntity,Parent,EnableDisable) sphere(MaxRange) iconsprite("editor/env_microphone") color(0 0 255) = env_microphone : "It acts as a microphone. In 'Speaker mode', it picks up sound and rebroadcasts it at a Speaker target. It ignores the Hears X spawnflags and does not fire the SoundLevel output. In 'Measuring mode', it measures the sound level at a Measure target and outputs the sound level as a value between 0 and 1. It only hears sounds that match the Hears X spawnflags." [ spawnflags(flags) = [ 1 : "Hears combat sounds" : 1 2 : "Hears world sounds" : 1 4 : "Hears player sounds" : 1 8 : "Hears bullet impacts" : 1 16 : "Swallows sounds routed through speakers - Original sound is erased" : 1 32 : "Hears explosions" : 1 64 : "Ignores non-attenuated sounds - Ignores sounds set to play everywhere in the map" : 0 ] SpeakerName(target_destination) : "Speaker target" : : "Name of an entity at which to play any sounds heard by this microphone. If specified, the microphone will consider itself in 'Speaker mode'." target(target_destination) : "Measure target" : : "If the speaker is not in 'Speaker mode', this is the name of the entity where the sound level is to be measured. If not specified, the env_microphone uses itself as the target." ListenFilter(filterclass) : "Listen Filter" : : "The name of a filter entity which specifies which entities the microphone can hear. Sounds emitted by other entities will be ignored." speaker_dsp_preset(choices) : "Speaker DSP Preset" : 0 : "Only useful in Speaker mode. If specified, sounds played back through speakers will be affected by the selected DSP setting. BUG: All active env_microphones are forced to use the same preset at the same time. This is because the entity just sets a ConVar called dsp_speaker which actually controls the preset. DSP will not apply to all sounds. AddOutput is buggy with this keyvalue. It's better to change the dsp_speaker convar directly." = [ 0 : "Normal" 3 : "Metal Reverb" 6 : "Tunnel Reverb" 12 : "Tunnel Reverb 2" 13 : "Tunnel Reverb 3" 16 : "Distant Muffled Echo" 20 : "Close Echo" 23 : "Weird Reverb" 37 : "Ear Ringing" 38 : "Radio" 40 : "Close Echo + Reverb" 55 : "Flange/Radio" ] Sensitivity(float) : "Sensitivity (0-10)" : 1 : "Sensitivity in measuring mode. 1 is normal, and anything between there and 10 causes SoundLevel's output to be even closer to 1.0." SmoothFactor(float) : "Smoothing (0-1)" : ".1" : "How much to smooth SoundLevel's output over time, so that it increases and decreases more gradually." MaxRange(float) : "Maximum hearing range (0=infinite)" : 0 : "Sounds beyond this range won't be heard." input SetSpeakerName(target_destination) : "Sets Speaker target." output SoundLevel(float) : "Fires in Measuring mode whenever the sound level changes. Automatically puts how loud the environment is (from 0 to 1) as the input parameter, unless overridden by the mapper." output OnRoutedSound(void) : "Fires in speaker mode whenever a sound is routed out through the specified Speaker target (if any)." output OnHeardSound(void) : "Fires in measure mode whenever this microphone hears any sound it cares about." ] @PointClass base(CBaseEntity,Parent) color(255 203 11) = env_muzzleflash : "It creates particle effects that would normally come from a gun firing. This entity is useful when making your own custom-made turrets or weapons to add a flame effect." [ parentattachment(string) : "Parent Attachment" : : "The name of an attachment (https://developer.valvesoftware.com/wiki/Attachments) on the parent to attach to." scale(float) : "Scale" : 3 : "Size of the muzzle flash." input Fire(void) : "Fires the effect once." ] @PointClass base(CBaseEntity,Parent) color(160 240 37) = env_particlelight : "It can be used to light the smoke particles emitted by env_smokestack entities. It does not light anything else." [ Color(color255) : "Color" : "255 0 0" : "Color emitted by this light." Intensity(integer) : "Intensity" : 5000 : "How strong the light is." Directional(choices) : "Directional" : 0 : "If Yes, this light will use the bumpmap on the smoke sprites. Each particle system can have one ambient and one directional light." = [ 0 : "No" 1 : "Yes" ] PSName(target_destination) : "Particle System Entity" : : "Set this to the name of the env_smokestack that you want this light to affect." ] @PointClass base(CBaseEntity,Parent) sphere(inner_radius) iconsprite("editor/env_physexplosion") color(255 0 255) = env_physexplosion : "It applies a force to objects within its radius, anything from a gentle nudge to a big explosion, depending on its magnitude. The explosion itself is not visible; for visible explosions, use env_explosion. Tip: Use this at a low force on hanging objects like lights to make them sway." [ spawnflags(flags) = [ 1 : "No Damage (Only force. Players will never be damaged even when this flag is off.)" : 1 2 : "Push players" : 1 4 : "Push radially - not as a sphere (Radially meaning as a cylinder. No upward or downward force will be generated.)" : 0 8 : "Test LOS before pushing (Otherwise, the force will travel through solid things.)" : 1 16 : "Disorient player if pushed - Jostles view significantly." : 0 ] magnitude(string) : "Magnitude" : 100 : "Amount of physics force applied by the explosion. Odd behavior may occur if set below 0 or above 100." 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." inner_radius(float) : "Inner radius" : 0 : "If not zero, the LOS is calculated from a point intersecting this sphere. (See the Test LOS flag.)" input Explode(void) : "Triggers the explosion." output OnPushedPlayer(void) : "Fires when a player is pushed by the explosion." ] @PointClass base(CBaseEntity,Parent) line(255 255 255, targetname, directionentityname) iconsprite("editor/env_physexplosion") color(255 0 255) = env_physimpact : "It causes a physics impact on another entity." [ spawnflags(flags) = [ 1 : "No fall-off (Force does not weaken with distance.)" : 0 2 : "Infinite Length" : 0 4 : "Ignore Mass" : 0 8 : "Ignore Surface Normal When Applying Force - Gives more predictable movement in some circumstances." : 1 ] angles(angle) : "Pitch Yaw Roll (Y Z X)" : : "Direction to send force in." magnitude(integer) : "Magnitude" : : "Strength of the impact." distance(integer) : "Distance" : : "How far to project the impact (if 0, defaults to 256)." directionentityname(target_destination) : "Point to Entity" : : "If set, the direction of the force will always point from the env_physimpact to the specified entity." input Impact(void) : "Triggers the impact." ] @PointClass base(CBaseEntity,Parent,Angles) size(-2 -2 -2, 2 2 2) frustum(lightfov,nearz,farz,lightcolor,-1) color(160 240 37) = env_projectedtexture : "It projects a texture onto the environment, simulating a realistic spotlight. Only one of these should be be active in the PVS at a time to avoid issues. Does not move correctly when parented." [ spawnflags(flags) = [ 1 : "Start enabled" : 1 ] texturename(material) : "Texture Name" : "effects/flashlight001" : "Texture this entity projects." target(target_destination) : "Target" : : "The entity will rotate to point at this target." lightfov(float) : "FOV" : 90 : "The field of view cone/pyramid at which the texture is projected." nearz(float) : "NearZ" : 4 : "Objects closer than this will not receive the light from the projection." farz(float) : "FarZ" : 800 : "Objects beyond this distance will not receive the light from the projection." enableshadows(choices) : "Enable Shadows" : 1 : "Enables/disables shadows from this projected texture." = [ 0 : "No" 1 : "Yes" ] shadowquality(choices) : "Shadow Quality" : 1 : "Quality of shadows." = [ 0 : "Low (sharp, pixelated shadows)" 1 : "High (smooth edged shadows)" ] lightonlytarget(choices) : "Light Only Target" : 0 : "Limit flashlight effect to only affect the Target entity. Does not change lighting on world geometry." = [ 0 : "No" 1 : "Yes" ] lightworld(choices) : "Light World" : 1 : "Control whether flashlight affects static world geometry." = [ 0 : "No" 1 : "Yes" ] lightcolor(color255) : "Light Color" : "255 255 255 200" : "RGB light color. Fourth number is the brightness." cameraspace(choices) : "Camera Space" : 0 : "If the entity has a Target, makes the projected texture rotate relative to the player's camera. If used, set Pitch Yaw Roll to 0 0 0." = [ 0 : "No" 1 : "Yes" ] textureframe(integer) : "Texture Frame" : 0 : "If the texture is animated, this is the frame it should begin on." input TurnOn(void) : "Turns on the texture." input TurnOff(void) : "Turns off the texture." input FOV(float) : "Sets FOV." input EnableShadows(integer) : "Sets Enable Shadows." input SpotlightTexture(string) : "Sets the spotlight texture." input Target(target_destination) : "Sets Target." input CameraSpace(integer) : "Sets Camera Space." input LightOnlyTarget(integer) : "Sets Light Only Target." input LightWorld(integer) : "Sets Light World." ] @PointClass base(CBaseEntity) color(255 203 11) = env_screenoverlay : "It can display and control a set of screen overlays, to be displayed over the player's view. Textures which aren't set up to be used with this entity will appear black. See effects/combine_binocoverlay for a working example. The effect will show to all players at once." [ OverlayName1(material) : "Overlay Name 1" : : "Overlay to display. When this overlay's associated duration is over, the next overlay will display." OverlayTime1(float) : "Overlay Duration 1" : : "Amount of time that the overlay should be displayed for. Once over, the next overlay will be shown. The last overlay on the list will always display indefinitely." OverlayName2(material) : "Overlay Name 2" : : "Overlay to display. When this overlay's associated duration is over, the next overlay will display." OverlayTime2(float) : "Overlay Duration 2" : : "Amount of time that the overlay should be displayed for. Once over, the next overlay will be shown. The last overlay on the list will always display indefinitely." OverlayName3(material) : "Overlay Name 3" : : "Overlay to display. When this overlay's associated duration is over, the next overlay will display." OverlayTime3(float) : "Overlay Duration 3" : : "Amount of time that the overlay should be displayed for. Once over, the next overlay will be shown. The last overlay on the list will always display indefinitely." OverlayName4(material) : "Overlay Name 4" : : "Overlay to display. When this overlay's associated duration is over, the next overlay will display." OverlayTime4(float) : "Overlay Duration 4" : : "Amount of time that the overlay should be displayed for. Once over, the next overlay will be shown. The last overlay on the list will always display indefinitely." OverlayName5(material) : "Overlay Name 5" : : "Overlay to display. When this overlay's associated duration is over, the next overlay will display." OverlayTime5(float) : "Overlay Duration 5" : : "Amount of time that the overlay should be displayed for. Once over, the next overlay will be shown. The last overlay on the list will always display indefinitely." OverlayName6(material) : "Overlay Name 6" : : "Overlay to display. When this overlay's associated duration is over, the next overlay will display." OverlayTime6(float) : "Overlay Duration 6" : : "Amount of time that the overlay should be displayed for. Once over, the next overlay will be shown. The last overlay on the list will always display indefinitely." OverlayName7(material) : "Overlay Name 7" : : "Overlay to display. When this overlay's associated duration is over, the next overlay will display." OverlayTime7(float) : "Overlay Duration 7" : : "Amount of time that the overlay should be displayed for. Once over, the next overlay will be shown. The last overlay on the list will always display indefinitely." OverlayName8(material) : "Overlay Name 8" : : "Overlay to display. When this overlay's associated duration is over, the next overlay will display." OverlayTime8(float) : "Overlay Duration 8" : : "Amount of time that the overlay should be displayed for. Once over, the next overlay will be shown. The last overlay on the list will always display indefinitely." OverlayName9(material) : "Overlay Name 9" : : "Overlay to display. When this overlay's associated duration is over, the next overlay will display." OverlayTime9(float) : "Overlay Duration 9" : : "Amount of time that the overlay should be displayed for. Once over, the next overlay will be shown. The last overlay on the list will always display indefinitely." OverlayName10(material) : "Overlay Name 10" : : "Overlay to display. This overlay will always display indefinitely." input StartOverlays(void) : "Starts displaying the first overlay." input StopOverlays(void) : "Stops displaying overlays." input SwitchOverlay(integer) : "Switches to displaying a specific overlay. Entering -1 as the value will cause the current overlay to display indefinitely." ] @PointClass base(CBaseEntity,Parent) iconsprite("editor/env_shake") sphere(radius) color(255 203 11) = env_shake : "It shakes the screens of players. Objects can be jostled as well. AFFECTS GUN ACCURACY!" [ spawnflags(flags) = [ 1 : "Global Shake - Ignore radius, entire map shakes." : 0 4 : "In Air - Shake players even in the air." : 0 8 : "Physics - Shake physics objects, not just the camera." : 0 16 : "Ropes - Shake ropes. (Works independently from 'Physics'.)" : 0 32 : "DON'T shake view (for shaking ropes or physics only)" : 0 64 : "DON'T Rumble Controller - Do not shake the controller for players using an console-style controller." : 0 ] amplitude(float) : "Amplitude (0-16)" : 5 : "How far away from the normal position the camera will wobble. Should be between 0 and 16." radius(float) : "Effect Radius" : 500 : "The radius around this entity in which to affect players." duration(float) : "Duration (seconds)" : 5 : "The length of time in which to shake the screen." frequency(float) : "Frequency" : 15 : "How many times per second to change the direction of the camera wobble. 40 is generally enough; values higher are hardly distinguishable." input Amplitude(float) : "Sets Amplitude." input Frequency(float) : "Sets Frequency." input StartShake(void) : "Start the shake." input StopShake(void) : "Stop the shake." ] @PointClass base(CBaseEntity,Parent,RenderFields) iconsprite("editor/env_shooter") color(255 203 11) = env_shooter : "It shoots gibs." [ spawnflags(flags) = [ 1 : "Repeatable (Otherwise, entity removes itself after firing.)" : 0 2 : "On fire - Gibs will be on fire!" : 0 4 : "Fade out even when in player's view" : 0 ] m_iGibs(integer) : "Number of Gibs" : 3 : "Total number of gibs to shoot each time the entity should shoot." m_flVelocity(float) : "Gib Velocity" : 300 : "Speed of the fired gibs." m_flVariance(float) : "Course Variance" : 3 : "How much variance in the direction gibs are fired." m_flGibLife(float) : "Gib Life" : 3 : "Time in seconds for gibs to live. This time will get randomly increased or decreased by up to 5% for each gib." Simulation(choices) : "Physics/Simulate" : 1 : "How the gibs will be physically simulated." = [ 0 : "Point (very cheap)" 1 : "Physics" 2 : "Ragdoll" ] delay(float) : "Delay between shots" : 0 : "Delay (in seconds) between shooting each gib. If 0, all gibs shoot at once." gibangles(angle) : "Gib Angles (Pitch Yaw Roll)" : "0 0 0" : "The orientation of the spawned gibs." gibanglevelocity(float) : "Max angular velocity" : 0 : "How fast (degrees/sec) the gibs should spin. They will spin on the x and y axes between 10% and 100% of this speed." angles(angle) : "Gib Direction (Pitch Yaw Roll)" : "0 0 0" : "The direction the gibs will fly." nogibshadows(choices) : "Disable Shadows" : 1 : "Set to disable render target shadows on gibs." = [ 0 : "No" 1 : "Yes" ] shootmodel(studio) : "Model" : : "Thing to shoot out." shootsounds(choices) : "Material Sound" : -1 : "What sounds play when the gibs collide with things." = [ -1 : "None" 0 : "Glass" 1 : "Wood" 2 : "Metal" 3 : "Flesh" 4 : "Concrete" ] 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." gibgravityscale(float) : "Gib gravity scale" : 1 : "Scale gravity so that gibs fall faster, slower, or not at all. Only applies when Simulate is Point." input Shoot(void) : "Shoots the gibs." ] @PointClass base(CBaseEntity,Parent,Angles,Toggle) color(255 203 11) = env_smokestack : "It spits out a constant stream of smoke. You can place up to two env_particlelights near the smoke stack to add ambient light to its particles." [ InitialState(choices) : "Initial State" : 1 : "Initial state of the entity." = [ 0 : "Off" 1 : "On" ] BaseSpread(integer) : "Spread at the base" : 20 : "How far away the smoke particles can spawn from the entity." 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 end of their lives." 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 and Speed." WindAngle(integer) : "Wind X/Y Angle" : 0 : "This specifies the wind direction. It is an angle in the XY plane." WindSpeed(integer) : "Wind Speed" : 0 : "The strength of the wind." Wind(vector) : "Wind Vector" : "0 0 0" : "Wind direction, not limited to any axis." SmokeMaterial(material) : "Particle material" : "particle/SmokeStack.vmt" : "Material of the smoke particles emitted by this entity." Twist(integer) : "Twist" : 0 : "The amount, in degrees per second, that the smoke particles twirl around the smoke stack entity." Roll(float) : "Roll Speed" : 0 : "How fast sprites rotate around themselves in degrees per second." rendercolor(color255) : "Base Color (R G B)" : "255 255 255" : "The color of the particles." renderamt(integer) : "Translucency" : 255 : "How much you can see through the particles." input TurnOn(void) : "Turn on the smokestack." input TurnOff(void) : "Turn off the smokestack." input JetLength(integer) : "Sets Length of smoke trail." input Rate(integer) : "Sets Emission rate." input Speed(integer) : "Sets Speed." input SpreadSpeed(integer) : "Sets Spread Speed." input Color(color255) : "Sets Base Color." input Alpha(integer) : "Sets Translucency." ] @PointClass base(CBaseEntity,Parent,Angles) iconsprite("editor/env_particles") color(255 203 11) = env_smoketrail : "An entity that continuously spawns sprites. Parent it to something in order to make a trail. The sprites will appear to fade away when the viewer is close to them." [ emittime(float) : "Emitter Life Time" : 1000 : "How long to emit sprites before stopping. This entity will not remove itself automatically once it stops emitting." lifetime(float) : "Particle Life Time" : 5 : "How long a single sprite can stay around for." startcolor(color255) : "Start Color" : "192 192 192" : "Starting color of the emitted sprites. Sprites will fade toward End Color." endcolor(color255) : "End Color" : "160 160 160" : "Color sprites will be at the end of their lifetime." opacity(float) : "Sprite Opacity" : "0.75" : "How transparent the sprites are, on a scale from 0 (invisible) to 1 (fully visible)." spawnrate(float) : "Spawn Rate" : 10 : "How many sprites to spawn per second." startsize(float) : "Starting particle size" : 35 : "Starting size of the sprites. Sprites will grow/shrink toward Ending particle size." endsize(float) : "Ending particle size" : 55 : "Size the sprites will be at the end of their lifetime." minspeed(float) : "Minimum Random Speed" : 2 : "Minimum speed sprites can move at in a random direction. They will lose speed over their lifetime." maxspeed(float) : "Maximum Random Speed" : 4 : "Maximum speed sprites can move at in a random direction." mindirectedspeed(float) : "Minimum Directed Speed" : 0 : "Minimum speed to apply to sprites, in the direction specified by Pitch Yaw Roll." maxdirectedspeed(float) : "Maximum Directed Speed" : 0 : "Maximum speed to apply to sprites, in the direction specified by Pitch Yaw Roll." spawnradius(float) : "Spawn radius" : 2 : "How far away from the entity the sprites can spawn at." ] @PointClass base(CEnvSoundscape) sphere(radius) iconsprite("editor/env_soundscape") 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) color(0 0 255) = env_soundscape : "Makes a player hear a certain soundscape (https://developer.valvesoftware.com/wiki/Soundscape) when they're able to see the entity. If multiple env_soundscapes are visible, the closest wins." [ ] @PointClass base(CBaseEntity,Parent,EnableDisable) sphere(radius) iconsprite("editor/env_soundscape") color(0 0 255) = env_soundscape_proxy : "It plays a soundscape with settings copied from an env_soundscape, env_soundscape_proxy, or env_soundscape_triggerable. Can't do anything a regular env_soundscape can't; it's solely for convenience." [ MainSoundscapeName(target_destination) : "Soundscape Entity" : : "The soundscape entity to become a copy of." radius(integer) : "Radius" : 128 : "Defines the entity's sphere of influence. -1 means infinite range." ] @PointClass base(CEnvSoundscape) sphere(radius) iconsprite("editor/env_soundscape") 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) color(0 0 255) = env_soundscape_triggerable : "Makes a player hear a certain soundscape when they touch a trigger_soundscape." [ ] @PointClass base(CBaseEntity,Parent,Angles) iconsprite("editor/env_spark") color(255 248 40) = env_spark : "It is used to create sparks at its origin." [ spawnflags(flags) = [ 64 : "Start ON" : 1 128 : "Glow" : 1 256 : "Silent" : 0 512 : "Directional" : 0 ] MaxDelay(string) : "Max Delay" : 0 : "The longest delay between sparks (in seconds). If this value is changed with AddOutput, the change will only take effect after the entity sparks again." Magnitude(choices) : "Magnitude" : 1 : "The amount of the sparks. Any number may be entered here." = [ 1 : "Small (1)" 2 : "Medium (2)" 5 : "Large (5)" 8 : "Huge (8)" ] TrailLength(choices) : "Spark Trail Length" : 1 : "Length of the spark trails. Any number may be entered here." = [ 1 : "Short (1)" 2 : "Medium (2)" 3 : "Long (3)" ] 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." output OnSpark(void) : "Fired when the sparks emit." ] @PointClass base(CBaseEntity,Parent) color(28 146 214) = env_splash : "It creates a generic splash effect like the one seen when bullets fire into water." [ spawnflags(flags) = [ 1 : "Automatically find water surface (place entity above water)" : 0 ] scale(float) : "Scale of the splash" : 8 : "Scale of the splash." input Splash(void) : "Creates the splash effect." ] @PointClass base(CBaseEntity,Parent,EnableDisable) iconsprite("editor/env_particles") color(220 136 61) = env_sporeexplosion : "Antlion bugbait particle from Half-Life 2." [ spawnrate(float) : "Spawn Rate (as percentage)" : 100 : "How dense the spore effect is. This percentage is not bound to 100; even values in the thousands are acceptable." ] @PointClass base(CSprite) size(-2 -2 -2, 2 2 2) sprite() sphere(GlowProxySize) color(255 203 11) = env_sprite : "Texture which turns to face the viewer. Good for dust and lighting effects." [ ] @PointClass base(CSprite) size(-2 -2 -2, 2 2 2) sprite() sphere(GlowProxySize) color(255 203 11) = env_sprite_oriented : "A sprite forced to stay in one direction. Texture must use a $spriteorientation." [ ] @PointClass base(CSprite) size(-2 -2 -2, 2 2 2) sprite() color(255 203 11) = env_spritetrail : "Leaves a fading trail behind it. (Parent it to something.)" [ lifetime(float) : "Lifetime" : 5 : "How long the beam lasts. Trails with a longer lifetime will draw less precise paths." startwidth(float) : "Start Width" : 4 : "The width of the beam at the beginning." endwidth(float) : "End Width" : 1 : "The width of the beam segment at the end of its lifetime." spritename(string) : "Sprite Name" : "sprites/bluelaser1.vmt" : "The material to draw. The entity will only use the top row of pixels for the trail." animate(choices) : "Animated" : 0 : "TODO: Tells the sprite to animate if it can? Has never been seen working." = [ 0 : "No" 1 : "Yes" ] ] @PointClass base(CBaseEntity,Parent,Angles,Toggle) studio("models/editor/cone_helper.mdl") color(255 203 11) = env_steam : "A jet of steam, or heat wave distortion." [ spawnflags(flags) = [ 1 : "Emissive - Use color from Color setting instead of grey. Light around entity also affects color in both cases." : 1 ] InitialState(choices) : "Initial State" : 1 : "Should the entity start emitting immediately?" = [ 0 : "Off" 1 : "On" ] Type(choices) : "Particle Type" : 0 : "Steam effect type." = [ 0 : "Normal" 1 : "Heat Wave" ] SpreadSpeed(integer) : "Spread Speed" : 15 : "The amount of random spread in the particle direction 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. Increasing Length of steam jet allows the sprites to grow even bigger." Rate(integer) : "Emission rate" : 26 : "The rate of particle emission. i.e. particles per second." JetLength(integer) : "Length of steam jet" : 80 : "How far to shoot out particles. The length of the jet determines the lifetime of each particle. BUG: Long jets of steam may suddenly disappear when the entity origin is not in the player's view." RollSpeed(float) : "How fast do the particles spin" : 8 : "Particle roll speed." rendercolor(color255) : "Color (R G B)" : "255 255 255" : "Steam color, only used if Emissive flag is set." renderamt(integer) : "Translucency" : 255 : "How see-through the smoke is." input TurnOn(void) : "Turns the steam jet on." input TurnOff(void) : "Turns the steam jet off." input JetLength(integer) : "Sets Length of steam jet." input Speed(integer) : "Sets Speed." input SpreadSpeed(integer) : "Sets Spread Speed." input Alpha(integer) : "Sets Translucency." ] @PointClass base(CBaseEntity,Parent,Angles) color(255 248 209) = env_sun : "It places a glowing sun effect in the skybox where it does not parallax, giving the impression that it is nearly infinitely far away. The entity does not contribute any actual lighting; it is merely a visual representation of the Sun. Use light_environment to provide actual sunlight for your map." [ material(sprite) : "Material Name" : "sprites/light_glow02_add_noz" : "Texture to show for the sun." overlaymaterial(sprite) : "Overlay Material Name" : "sprites/light_glow02_add_noz" : "Texture to show over the sun when the viewer is looking directly towards it." size(integer) : "Size" : 16 : "Size of the sun." overlaysize(integer) : "Overlay Size" : 16 : "How big the overlay material is. If -1, uses a default value." rendercolor(color255) : "Sun Color (R G B)" : "100 80 80" : "Color of the sun. The effect is additive with the sky: a pure yellow sun with a bright blue sky will appear white in-game; change the color to account for this." overlaycolor(color255) : "Overlay Color (R G B)" : "255 255 255" : "Color of the sun overlay." use_angles(choices) : "Positioning Method" : 0 : "Which settings should be used to determine where the sun is in the sky." = [ 0 : "Viewer Entity" 1 : "Pitch Yaw Roll" ] target(target_destination) : "Viewer Entity" : : "Name of an entity (sky_camera is a good choice) used to determine where the sun is in the skybox. The resulting sun sprite will be positioned based on a line starting from the Viewer entity towards the env_sun." pitch(float) : "Pitch" : "-60" : "This value sets the pitch position of the sun. It overrides the Pitch in Pitch Yaw Roll, even if left at 0, so it needs to be specified. This Pitch is reverse of the normal, so 90 is straight up, while -90 is straight down (directly overhead). BUG: Breaks when pointed straight down." input TurnOn(void) : "Enable sun rendering." input TurnOff(void) : "Disable sun rendering." input SetColor(color255) : "Sets Sun Color." ] @PointClass base(CBaseEntity) color(255 203 11) = env_texturetoggle : "Allows you to change the textures on entities. In order for env_texturetoggle to work properly, the texture must use a VMT material with the ToggleTexture proxy defined and pointing to an animated VTF file with at least two frames." [ target(target_destination) : "Target Brush(es)" : : "Name of the entities. All ToggleTexture materials on all entities (including sprites) matching the targetname will be affected." input IncrementTextureIndex(void) : "Increments the texture's current frame by one." input SetTextureIndex(integer) : "Sets the texture's frame to the specified number." ] @PointClass base(CBaseEntity) color(160 240 37) = env_tonemap_controller : "Controls tonemapping. Think of it as a method of controlling how the player's pupils adjust as they look at areas of different brightnesses. Also controls bloom. To see the effects of this, the map must be compiled with HDR (check the HDR box in the compile options, or use -hdr or -both on the VRAD command line) and the player in question must have HDR enabled in their video settings." [ input SetAutoExposureMin(float) : "Sets exposure level when looking at bright things. (Darkens environment in response.)" input SetAutoExposureMax(float) : "Sets exposure level when looking at dark things. (Brightens environment in response.)" input SetBloomScale(float) : "Sets how intense bloom is." input SetTonemapRate(float) : "If set to less than 1.0, divides the time it takes to transition between exposure levels by that much." input UseDefaultAutoExposure(void) : "If either SetAutoExposureMin or SetAutoExposureMax has been used, sets their values back to their defaults. (Determined by mat_autoexposure_min and mat_autoexposure_max.)" input UseDefaultBloomScale(void) : "If SetBloomScale has been used, sets the value back to its default. (Determined by mat_bloomscale.)" ] @PointClass base(CBaseEntity) color(255 203 11) = env_viewpunch : "Jostles the player's view." [ spawnflags(flags) = [ 1 : "Punch all players (ignore radius)" : 0 2 : "Punch players in the air" : 1 ] punchangle(angle) : "Punch angles" : "0 0 0" : "The angle to nudge the camera to." radius(float) : "Effect Radius" : 300 : "The radius around this entity in which to affect players." input ViewPunch(void) : "Performs the view punch." ] @PointClass base(CBaseEntity,Parent,Angles) iconsprite("editor/env_wind") color(255 0 255) = env_wind : "It pushes rope entities around as if wind was blowing on them." [ minwind(integer) : "Min normal speed" : 20 : "Minimum speed of the wind while not gusting." maxwind(integer) : "Max normal speed" : 50 : "Maximum speed of the wind while not gusting." 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." ] @FilterClass base(CBaseFilter) iconsprite("editor/filter_class") color(248 155 0) = filter_activator_class : "Filter that checks the classname of the activator." [ filterclass(string) : "Filter Classname" : : "The classname to filter by." ] @FilterClass base(CBaseFilter) iconsprite("editor/filter_class") color(248 155 0) = filter_activator_mass_greater : "Filter that checks an entity's mass. TIP: Check the masses of objects ingame with sv_massreport." [ filtermass(float) : "Filter Mass" : : "The mass to filter by. Set Filter mode to Disallow if you want to check masses lower than this number." ] @FilterClass base(CBaseFilter) iconsprite("editor/filter_name") color(248 155 0) = filter_activator_name : "Filter that checks the targetname of an entity." [ filtername(target_destination) : "Filter Name" : : "The name to filter by. TIP: Entities without any targetname can be filtered by leaving this keyvalue blank." ] @FilterClass base(CBaseFilter) iconsprite("editor/filter_name") color(248 155 0) = filter_activator_team : "Filter that checks the team of a player." [ filterteam(choices) : "Filter Team" : 2 : "The team to filter by." = [ 2 : "Terrorist" 3 : "Counter-Terrorist" ] ] @FilterClass base(CBaseFilter) iconsprite("editor/filter_multiple") color(248 155 0) = filter_damage_type : "Filter that checks the type of damage inflicted." [ damagetype(choices) : "Damage type" : 0 : "The damage type to filter by." = [ 0 : "Generic" 1 : "Crush (physics)" 5 : "Sharp physics object (Crush+Slash)" 8 : "Burn" 32 : "Fall" 64 : "Blast (C4, HE)" 128 : "CS projectile collision (Club)" 256 : "Shock" 4098 : "CS bullets, knife (Bullet+Nevergib)" 16384 : "Drown" ] ] @FilterClass base(CBaseFilter) iconsprite("editor/filter_multiple") color(248 155 0) = filter_multi : "A filter that combines other filters." [ FilterType(choices) : "Logic Type" : 0 : "Boolean logic applied when testing the filters." = [ 0 : "AND (all filters must pass for this filter to pass)" 1 : "OR (any filter passing is enough for this filter to pass)" ] Filter01(filterclass) : "Filter 1" : : "Filter to test." Filter02(filterclass) : "Filter 2" : : "Filter to test." Filter03(filterclass) : "Filter 3" : : "Filter to test." Filter04(filterclass) : "Filter 4" : : "Filter to test." Filter05(filterclass) : "Filter 5" : : "Filter to test." Negated(choices) : "Negate Outcome" : 0 : "Whether to negate the result of the sub-filters, after combining them using the Logic Type chosen. Negating the outcome using the AND logic type means that any sub-filter must fail for this filter to pass. Negating the outcome using the OR logic type means that all sub-filters must fail for this filter to pass." = [ 0 : "No" 1 : "Yes" ] ] @SolidClass base(CBaseEntity) color(0 248 219) = func_areaportal : "It creates an areaportal. (https://developer.valvesoftware.com/wiki/Areaportal) When the portal is open, it de-renders objects in the area across from the viewer which aren't visible through the opening. When the portal is closed it cannot be seen through at all. The entity's brush must be textured with tools/toolsareaportal for it to function. Areaportals should completely cover the entrance they're meant to work on. Areaportals must not be able to draw a line through visleaves from one side of themselves to another. If there are multiple openings to an area, there needs to be an areaportal over each one, otherwise the engine cannot define the boundaries between areas. If an areaportal can draw a line to itself, it's considered a leak and generates a pointfile just like a normal one." [ target(target_destination) : "Name of Linked Door" : : "Optional. A prop_door_rotating or func_door whose open/closed state controls the on/off state of the portal." StartOpen(choices) : "Initial State" : 1 : "Initial state of the portal." = [ 0 : "Closed" 1 : "Open" ] PortalVersion(integer) readonly : "Portal Version" : 1 : "Differentiates between shipping HL2 maps and maps using new engine features. Changing this could cause odd behavior." input Open(void) : "Sets the portal to the open state." input Close(void) : "Sets the portal to the closed state." input Toggle(void) : "Opens the portal if closed. Closes the portal if open." ] @SolidClass base(CBaseEntity) color(0 248 219) sphere(FadeStartDist) sphere(FadeDist) = func_areaportalwindow : "An areaportal which closes automatically when far away from the viewing player." [ target(target_destination) : "Rendered Window" : : "The brush entity that fills the gap left by the portal when closed. This entity's textures should not have transparency in its textures." FadeStartDist(integer) : "Fade Start Distance" : 128 : "Distance that the fade into the Rendered Window brush entity begins. The further back the player views, the more visible the brush entity will be." FadeDist(integer) : "Fade End Distance" : 512 : "Distance at which the Rendered Window is fully visible, and the portal closes." TranslucencyLimit(float) : "Translucency limit" : "0.2" : "Keeps the Rendered Window at least this visible at all times. Useful if your rendered window uses an opaque glass material. 1.0 means always fully visible." BackgroundBModel(target_destination) : "Foreground bmodel" : : "Optional brush entity that is drawn when the portal is open. This can simulate effects like moisture on windows." input SetFadeStartDistance(integer) : "Sets Fade Start Distance." input SetFadeEndDistance(integer) : "Sets Fade End Distance." ] @SolidClass base(CBaseTrigger) color(255 60 20) = func_bomb_target : "This entity creates bombsites. If the player with the bomb is touching this zone, they can plant the bomb. Whether a site is A or B is determined by the order they're made in. To change the letters, recreate one of the triggers." [ bomb_mount_target(target_destination) : "Bomb Mount Target" : : "If specified, the bomb will teleport to, and parent itself to the specified entity." input BombExplode(void) : "Makes the BombExplode output fire." input BombPlanted(void) : "Makes the BombPlanted output fire." output BombExplode(void) : "Fires when the bomb explodes." output BombPlanted(void) : "Fires when the bomb is planted." ] @SolidClass base(CBreakable,Origin) color(0 255 0) = func_breakable : "A brush that can take damage and break." [ ] @SolidClass quadbounds() base(CBreakable) color(127 255 255) = func_breakable_surf : "A surface that can be broken bit by bit. All faces except one should use the nodraw texture. The face that will be broken must be textured with glass/glasswindowbreak070a and be rectangular." [ spawnflags(flags) = [ 1 : "Physics damage decals - If a physics object weakly damages the entity, it will leave an impact mark." : 0 ] fragility(integer) : "Fragility" : 100 : "How fragile the glass pieces are after the surface has been broken." input Shatter(string) : "Shatters the window. Takes 3 numbers. The first two are the X and Y coords of the impact (as values from 0 to 1). The third is the radius of the shatter, in hammer units." ] @SolidClass base(CFuncBrush) = func_brush : "A general-purpose utility brush which can do many things." [ ] @SolidClass base(CBaseButton) = func_button : "A button which can be pressed with the use key (E)." [ movedir(angle) : "Move Direction (Pitch Yaw Roll)" : "0 0 0" : "Specifies the direction of motion to move when the button is used. Once the entity has moved so far that it's not occupying its original space anymore, it will stop moving." lip(integer) : "Lip" : 0 : "The amount, in units, of the button to leave inside its original space when pressed. Negative values make the button move even farther. By default, the button will move in Move Direction until it no longer occupies the space it was originally in." ] @SolidClass base(CBaseTrigger) color(255 177 0) = func_buyzone : "Players must be touching this volume to buy weapons and equipment." [ TeamNum(choices) : "Team Number" : 2 : "Which team the buyzone is for. All-team buyzones can be made by simply making two entities." = [ 2 : "Terrorist" 3 : "Counter-Terrorist" ] input SetTeam(integer) : "Sets the buyzone's team. Players with the buy menu open will not get closed out when it changes teams, but they still can't buy anything." ] @SolidClass base(CBaseEntity,Parent) color(216 5 136) = func_clip_vphysics : "It's a brush which is only solid to physics objects, like props and weapons. Hull-simulated objects (i.e. players, hostages, nades) can pass through." [ filtername(filterclass) : "Filter Name" : : "Filter to use to see if activator collides with this entity." input Enable(void) : "Makes the entity active." input Disable(void) : "Makes the entity inactive." ] @SolidClass base(CBaseEntity,VisibleBrush) color(255 0 255) = func_conveyor : "OBSOLETE: You shouldn't use this entity, though it may appear in other people's maps. It's a conveyor belt that may look convincing when given a scrolling texture. You should use a prop and a trigger_push instead. This entity is known to cause hitbox issues." [ spawnflags(flags) = [ 1 : "No Push - Makes the conveyor not move things that touch it." : 0 2 : "Not Solid - Make the conveyor untouchable, therefore preventing it from moving anything." : 0 ] movedir(angle) : "Move Direction (Pitch Yaw Roll)" : "0 0 0" : "Direction in which things move when on the conveyor. Changing this with AddOutput is possible but tricky because this keyvalue becomes a normalized vector after spawning." speed(float) : "Conveyor Speed" : 100 : "How fast to move things that are on the conveyor." input ToggleDirection(void) : "Changes the direction the conveyor pushes in by switching Conveyor Speed between negative and positive." ] @SolidClass color(0 180 0) = func_detail : "When the map is compiled, this entity will intentionally not cut visleaves, nor will it create extra unneeded brush faces if the brush intersects with a world brush. As with any other brush entity, since func_detail does not cut leaves, leaves may travel through them, therefore they cannot seal leaks." [ ] @SolidClass base(CBaseDoor) color(0 255 0) = func_door : "A simple sliding door. Moves until it's no longer in the space it originally occupied." [ movedir(angle) : "Move Direction" : "-90 0 0" : "The direction in which the door will move when it opens. It will open far enough that it does not occupy the space it spawned in." lip(integer) : "Lip" : 0 : "The amount, in units, of the door to leave inside its original space when pressed. Negative values make the door move even farther. By default, the door will move in Move Direction until it no longer occupies the space it was originally in." ] @SolidClass base(CBaseDoor) color(0 255 0) = func_door_rotating : "Rotating brush that can be 'opened' by players or NPCs. It rotates around its origin on the Z axis by default. The axis can be changed via spawnflags." [ spawnflags(flags) = [ 2 : "Reverse Dir - This door opens in the opposite direction." : 0 16 : "One-way - Forces door to only open one way." : 0 64 : "X Axis - This door rotates on the X axis." : 0 128 : "Y Axis - This door rotates on the Y axis." : 0 ] solidbsp(choices) : "Solid BSP" : 0 : "How the engine processes this entity's solidity. Try changing this to BSP if players move oddly while touching the brush." = [ 0 : "VPhysics" 1 : "BSP (QPhysics)" ] ] @SolidClass base(CFunc_Dust) color(255 203 11) = func_dustcloud : "Spawns randomly-sized dust particles within its volume. Unlike func_dustmotes, the size of sprites created by this entity will appear to scale realistically depending on how far away the viewer is." [ ] @SolidClass base(CFunc_Dust) color(255 203 11) = func_dustmotes : "Spawns randomly-sized dust particles within its volume. Unlike func_dustcloud, the size of sprites created by this entity will always take up the same amount of screen space, no matter how far away the viewer is." [ ] @PointClass base(CBaseEntity,Parent) sphere(max_range) studio() color(255 203 11) = func_fish_pool : "An area fish can swim in. Fish may react by panicking when they hear danger, or die if harmed." [ model(studio) : "World model" : "models/props/de_inferno/goldfish.mdl" : "Model that the fish will appear as." fish_count(integer) : "Fish Count" : 4 : "Number of fish in the pool." max_range(float) : "Max Range" : 255 : "How far away fish can travel from the entity. Maximum is 255 units." ] @SolidClass base(CBaseTrigger) color(0 0 255) = func_footstep_control : "It changes the footstep sounds used on ladders from metal to whatever is wanted. (Ladders usually don't make sounds except when strafing on them.)" [ source(string) readonly : "Surfaceprop to change" : "ladder" : "The surfaceprop of the ladder to change (this will always be 'ladder', obviously)." destination(string) : "New surfaceprop" : : "How to make the ladders within this trigger sound. See here for options: https://developer.valvesoftware.com/wiki/Material_surface_properties" ] @SolidClass base(CBaseEntity,VisibleBrush,Origin) = func_guntarget : "It's a breakable brush that can move along path_tracks." [ speed(float) : "Speed (units per second)" : 100 : "How fast the entity moves, in units per second." target(target_destination) : "First stop target" : : "Name of the first path_track in the path this entity should take." health(integer) : "Damage to Take" : 1 : "How much health the entity has." input Start(void) : "Makes the brush start moving." input Stop(void) : "Makes the brush stop moving." input Toggle(void) : "Switches brush between moving and not moving." output OnDeath(void) : "Fires when the entity is broken. !activator is the damage inflictor." ] @SolidClass base(CBaseTrigger) color(0 200 0) = func_hostage_rescue : "When a hostage hits this brush, they're considered rescued." [ ] @SolidClass base(CBaseEntity,VisibleBrush) color(255 203 11) = func_illusionary : "OBSOLETE: You shouldn't use this entity, though it may appear in other people's maps. This entity was used in Half-Life for non-solid brushes. Use func_brush instead." [ ] @PointClass base(Angles) size(-2 -2 -2, 2 2 2) instance() = func_instance : "It inserts another VMF into the current map. Similar to C++ member functions, a func_instance can be given parameters that change what it does, and the original instance VMF can be edited at any time and instantly apply to all other VMFs that use it. This saves you the tedious work of updating them all individually (though, maps already using the instance will have to be recompiled).\n"+ "BUGS: Entities using an inverted 'pitch' keyvalue will not have that adjusted when the instance is rotated in Hammer. func_viscluster does not function when part of an instance. Instances cannot be nested in CSS. An instance that tries to insert itself inside it will crash Hammer.\n"+ "Hammer expects the instance VMF to be in the same folder as this map, or in a subfolder of it. If you successfully followed step 6 of this FGD's installation, place instance VMFs in Counter-Strike Source/cstrike/maps/instances/." [ targetname(target_source) : "Fix Up Name" : : "String appended to the targetnames of every entity in this instance. This is needed when sending I/O in and out of the instance. Hammer assumes all entity I/O is between entities in the instance and will change the names in I/O connections to ones that are potentially wrong. You can prevent this by adding an @ to the entities. If an entity's targetname in the actual map starts with an @ symbol, references to it inside the instance will not be altered by this keyvalue. Hammer may not recognize this syntax, but it does work. @ will also prevent the name of an entity inside the instance from changing." fixup_style(choices) : "Entity Name Fix Up" : 0 : "How to append the Fix Up Name to the entities." = [ 0 : "Prefix (fixup-name)" 1 : "Postfix (name-fixup)" 2 : "None (name)" ] file(instance_file) : "VMF Filename" : : "Filepath to the instance VMF. It must be in the same folder as the main map or in a subfolder of it." replace01(instance_variable) : "Replace" : : "If the entities inside this instance have the text in Variable put anywhere inside them, such as an input parameter or keyvalue, that text will be replaced with whatever is in Value. Usually a $ is placed in front of the variable's name to make it more identifiable. If SmartEdit is off, just put 'variable value'. These values do not update other references to them when the map is running. TIP: Multiple parameters can be put in a single field. I.e. a targetname set to 'MyXValueMyYValue' where the instance has 'MyXValue 1' and 'MyYValue 2' would compile to '12'." replace02(instance_variable) : "Replace" : : "If the entities inside this instance have the text in Variable put anywhere inside them, such as an input parameter or keyvalue, that text will be replaced with whatever is in Value." replace03(instance_variable) : "Replace" : : "If the entities inside this instance have the text in Variable put anywhere inside them, such as an input parameter or keyvalue, that text will be replaced with whatever is in Value." replace04(instance_variable) : "Replace" : : "If the entities inside this instance have the text in Variable put anywhere inside them, such as an input parameter or keyvalue, that text will be replaced with whatever is in Value." replace05(instance_variable) : "Replace" : : "If the entities inside this instance have the text in Variable put anywhere inside them, such as an input parameter or keyvalue, that text will be replaced with whatever is in Value." replace06(instance_variable) : "Replace" : : "If the entities inside this instance have the text in Variable put anywhere inside them, such as an input parameter or keyvalue, that text will be replaced with whatever is in Value." replace07(instance_variable) : "Replace" : : "If the entities inside this instance have the text in Variable put anywhere inside them, such as an input parameter or keyvalue, that text will be replaced with whatever is in Value." replace08(instance_variable) : "Replace" : : "If the entities inside this instance have the text in Variable put anywhere inside them, such as an input parameter or keyvalue, that text will be replaced with whatever is in Value." replace09(instance_variable) : "Replace" : : "If the entities inside this instance have the text in Variable put anywhere inside them, such as an input parameter or keyvalue, that text will be replaced with whatever is in Value." replace10(instance_variable) : "Replace" : : "If the entities inside this instance have the text in Variable put anywhere inside them, such as an input parameter or keyvalue, that text will be replaced with whatever is in Value." ] @PointClass iconsprite("editor/func_instance_parms") = func_instance_parms : "Gives a default value for instance parameters. Does not do anything else, confirmed by testing. Instance parameters work perfectly fine without this entity." [ parm1(instance_parm) : "Parm" : : "An instance parameter. The order they are defined in will have no effect. Put the $variable name in Variable. The Value is whatever type of value the parameter is. The Default is simply a default value for the variable if you don't define it in the func_instance." parm2(instance_parm) : "Parm" : : "An instance parameter. The order they are defined in will have no effect. Put the $variable name in Variable. The Value is whatever type of value the parameter is. The Default is simply a default value for the variable if you don't define it in the func_instance." parm3(instance_parm) : "Parm" : : "An instance parameter. The order they are defined in will have no effect. Put the $variable name in Variable. The Value is whatever type of value the parameter is. The Default is simply a default value for the variable if you don't define it in the func_instance." parm4(instance_parm) : "Parm" : : "An instance parameter. The order they are defined in will have no effect. Put the $variable name in Variable. The Value is whatever type of value the parameter is. The Default is simply a default value for the variable if you don't define it in the func_instance." parm5(instance_parm) : "Parm" : : "An instance parameter. The order they are defined in will have no effect. Put the $variable name in Variable. The Value is whatever type of value the parameter is. The Default is simply a default value for the variable if you don't define it in the func_instance." parm6(instance_parm) : "Parm" : : "An instance parameter. The order they are defined in will have no effect. Put the $variable name in Variable. The Value is whatever type of value the parameter is. The Default is simply a default value for the variable if you don't define it in the func_instance." parm7(instance_parm) : "Parm" : : "An instance parameter. The order they are defined in will have no effect. Put the $variable name in Variable. The Value is whatever type of value the parameter is. The Default is simply a default value for the variable if you don't define it in the func_instance." parm8(instance_parm) : "Parm" : : "An instance parameter. The order they are defined in will have no effect. Put the $variable name in Variable. The Value is whatever type of value the parameter is. The Default is simply a default value for the variable if you don't define it in the func_instance." parm9(instance_parm) : "Parm" : : "An instance parameter. The order they are defined in will have no effect. Put the $variable name in Variable. The Value is whatever type of value the parameter is. The Default is simply a default value for the variable if you don't define it in the func_instance." parm10(instance_parm) : "Parm" : : "An instance parameter. The order they are defined in will have no effect. Put the $variable name in Variable. The Value is whatever type of value the parameter is. The Default is simply a default value for the variable if you don't define it in the func_instance." ] @SolidClass color(248 75 0) = func_ladder : "A Half-Life style ladder which can be climbed on vertically or horizontally." [ ] @SolidClass base(CBaseEntity,VisibleBrush) color(0 180 0) = func_lod : "OBSOLETE: You shouldn't use this entity, though it may appear in other people's maps. This entity used to be needed as an optimization which would fade brushes away when not near them. This is no longer useful as checking the distance from camera to brush, and rendering the brush translucently, is slower than drawing the brush opaquely as world/detail." [ DisappearDist(float) : "Disappear Distance" : 2000 : "Distance at which the brush starts to fade out." Solid(choices) : "Solid" : 0 : "Set whether or not the brush should collide with other entities." = [ 0 : "Solid" 1 : "Nonsolid" ] ] @SolidClass base(CFuncBrush) color(255 203 11) = func_monitor : "It displays a real-time scene captured from a point_camera somewhere else in the world. For the entity to work, the surface(s) on which the camera view will be displayed must have a material with $basetexture _rt_Camera. Stock materials that work are dev/dev_combinemonitor* and dev/dev_tvmonitor*. Visual artifacts may appear if the camera can see a func_monitor." [ target(target_destination) : "Camera name" : : "The point_camera to render." input SetCamera(target_destination) : "Changes Camera name." ] @SolidClass base(CFuncMoveLinear) = func_movelinear : "Can be told to move an arbitrary distance in a set direction. There are bugs that may arise when parenting this entity to another func_movelinear or func_water_analog. A func_door can be used as a workaround." [ ] @SolidClass base(CBaseEntity,Parent,Origin) color(0 255 255) = func_nav_blocker : "A brush entity that can block navmesh areas touching it so that bots will not attempt to go somewhere." [ input BlockNav(void) : "Starts blocking nav areas." input UnblockNav(void) : "Stops blocking nav areas." ] @SolidClass base(CBaseEntity,Toggle) color(29 59 109) = func_occluder : "Hides models behind it. Use carefully! Occluders start to drain performance when the cost of checking each model for LOS outweighs the benefit of not rendering the occluded polys." [ StartActive(choices) : "Initial State" : 1 : "How the occluder starts off. Use inputs to activate it." = [ 0 : "Inactive" 1 : "Active" ] input Activate(void) : "Makes the occluder active. (De-render models obscured by it.)" input Deactivate(void) : "Makes the occluder inactive." ] @SolidClass base(CPhysBox) color(255 0 255) = func_physbox : "A brush that's free to move around like a prop_physics." [ ] @SolidClass base(CPhysBox) color(255 0 255) = func_physbox_multiplayer : "A brush that is identical to func_physbox, except it is not solid to players and the runtime collisions use a more bouncy method that avoids the prediction errors normal physics objects get." [ ] @SolidClass base(CBaseEntity,Origin,VisibleBrush) = func_platrot : "OBSOLETE: You shouldn't use this entity, though it may appear in other people's maps. This entity was used in Half-Life for brushes that could rotate while moving up and down at the same time, so use func_tracktrain instead." [ spawnflags(flags) = [ 64 : "X Axis - Makes the entity rotate on its X axis instead of Z. It will still move along the Z axis." : 0 128 : "Y Axis - Makes the entity rotate on its Y axis instead of Z. It will still move along the Z axis." : 0 ] speed(float) : "Speed" : 100 : "How fast to move up or down, in units per second. NOTE: The speed at which the entity spins is automatically set by this so that the entity will move and rotate for the exact same amount of time. (Originally named 'Speed of Rotation', misleading.)" rotation(float) : "Spin amount" : 90 : "How much the brush should spin." ] @SolidClass base(CBaseEntity,Parent) color(0 127 127) = func_precipitation : "It creates precipitation effects inside its volume. Func_precipitations should not intersect with func_smokevolumes, as it can freeze the game. If precipitation is so dense that more than 32,000 vertices must be rendered at once, the game will crash. An active point_camera may cause precipitation to stop rendering. Precipitation may fall through very thin roofs." [ renderamt(integer) : "Density (0-100%)" : 100 : "How much precipitation will fall from the brush. The rate may also be influenced by the brush's size. Tip: To maintain a consistent density across your entire map, combine all your func_precipitation brushes into one entity." rendercolor(color255) : "Color (R G B)" : "255 255 255" : "Color of precipitation. Only some types of precipitation acknowledge this value." preciptype(choices) : "Precipitation Type" : 0 : "What type of precipitation to make." = [ 0 : "Rain" 1 : "Snow" 2 : "Ash - Missing textures! Take all 3 materials/effects/fleck_ash* textures and /ember_swirling001 from HL2Ep1's ep1_pak_dir.vpk" 3 : "Snowfall" ] input Alpha(integer) : "If Precipitation Type is Rain, sets the density." ] @SolidClass base(CBaseEntity) = func_proprrespawnzone : "Clientside physics props that are placed in this brush in Hammer will automatically respawn in their original place if they get destroyed or moved. The props won't respawn if a player could see it happen or if they're too close." [ ] @SolidClass base(CBaseEntity,VisibleBrush,CBreakable) color(255 203 11) = func_pushable : "OBSOLETE: You shouldn't use this entity, though it may appear in other people's maps. This entity was used in Half-Life to make pushable crates. In Source, it acts like func_physbox but cannot be pushed by bullets or any physics object." [ ] @SolidClass base(CFuncBrush) color(255 203 11) = func_reflective_glass : "Reflects the world in realtime. Will not render the player looking at it unless they're in third person. Expect issues when other realtime surfaces like water are in the PVS. Use the texture glass/reflectiveglass001 on the reflective side." [ ] @SolidClass base(CRotButton) = func_rot_button : "Rotates to an activated position when pressed." [ ] @SolidClass base(CBaseEntity,VisibleBrush,Origin) = func_rotating : "Rotates indefinitely." [ spawnflags(flags) = [ 1 : "Start on - Rotates immediately after spawning." : 0 2 : "Reverse Direction - Rotates in opposite direction." : 0 4 : "X Axis - Brush will spin on the X Axis. (Default axis is Z)" : 0 8 : "Y Axis - Brush will spin on the Y Axis." : 0 16 : "Acc/Dcc - Accelerates and decelerates when stopping and starting. See Friction." : 0 32 : "Fan Pain - If something touches the brush, it will be hurt by an amount equal to the current rotation speed divided by 10." : 0 64 : "Not solid" : 0 128 : "Small Sound Radius - Sets Rotating sound WAV's radius to small. (Default radius is large)" : 0 256 : "Medium Sound Radius - Sets Rotating sound WAV's radius to medium." : 0 ] maxspeed(float) : "Max Rotation Speed" : 100 : "How fast the brush can rotate in degrees per second." message(sound) : "Rotating sound WAV" : : "Sound to play while rotating." fanfriction(float) : "Friction (1 - 100%)" : 1 : "If Acc/Dcc is checked, this number will determine how fast the brush accelerates and decelerates. Higher = faster." volume(float) : "Volume (10 = loudest)" : 10 : "Volume of Rotating sound WAV." dmg(integer) : "Blocking Damage" : 10 : "How much to damage an entity which blocks this brush from rotating. BUG: This variable may be affected by the code run by Fan Pain." solidbsp(choices) : "Solid Type" : 0 : "How the engine processes this entity's solidity. Try changing this to BSP if players move oddly while touching the brush." = [ 0 : "VPhysics" 1 : "BSP (QPhysics)" ] input SetSpeed(float) : "Sets the target speed of the brush. 0.0 means stop, 1.0 means go at Max Rotation Speed, and 0.5 would mean go at half max speed. Negative values are allowed." input Start(void) : "Makes the brush start rotating." input Stop(void) : "Makes the brush stop rotating." input Toggle(void) : "If rotating, stop. If stopped, start rotating." input Reverse(void) : "Reverses the rotation direction." input StartForward(void) : "Makes the brush rotate in the non-reversed direction." input StartBackward(void) : "Makes the brush rotate in the reversed direction." input StopAtStartPos(void) : "Tells the brush to quit rotating once it rotates back to its original orientation." ] @SolidClass base(CBaseEntity,Parent) color(255 203 11) = func_smokevolume : "It spawns sprites within its volume. Commonly used for large, localized areas of fog. Func_smokevolumes should not intersect with func_precipitations, as it can freeze the game." [ spawnflags(flags) = [ 1 : "Blend Colors" : 1 ] Color1(color255) : "Particle Color1 (R G B)" : "78 86 82" : "Color 1. If Blend Colors is checked, sprites can be blends between these two colors. If not, they will either be one or the other." Color2(color255) : "Particle Color2 (R G B)" : "70 70 70" : "Color 2. If Blend Colors is checked, sprites can be blends between these two colors. If not, they will either be one or the other." material(material) : "Material" : "particle/particle_smokegrenade" : "What the sprites will appear as." ParticleDrawWidth(float) : "Particle Draw Width" : 80 : "Size of the sprites." ParticleSpacingDistance(float) : "Particle Spacing Distance" : 50 : "The distance between the particles inside the volume. The lower the number, the denser the particles, and the more overdraw (drawing a pixel multiple times) there will be." DensityRampSpeed(float) : "Density Ramp Speed" : 15 : "How quickly the Density changes." RotationSpeed(float) : "Rotation Speed" : 6 : "The speed that the particles should rotate, in degrees per second." MovementSpeed(float) : "Movement Speed" : 10 : "The speed that the particles should move around, in units per second." Density(float) : "Density" : 1 : "Sprite transparency. Ranges from 0.0 (fully invisible, does not render at all) to 1.0." input SetRotationSpeed(float) : "Sets Rotation Speed." input SetMovementSpeed(float) : "Sets Movement Speed." input SetDensity(float) : "Sets Density." ] @SolidClass base(func_platrot) = func_trackchange : "OBSOLETE: You shouldn't use this entity, though it may appear in other people's maps. This entity was used in Half-Life for platforms that carry a func_tracktrain to another track. You should use another func_tracktrain instead." [ height(integer) : "Travel Altitude" : 0 : "The vertical height above the track that the train moves. Negative values moves the train below." spawnflags(flags) = [ 1: "Auto Activate train" : 0 2: "Relink track" : 0 8: "Start at Bottom" : 0 16: "Rotate Only" : 0 64: "X Axis" : 0 128: "Y Axis" : 0 ] train(target_destination) : "Train to Switch" // NEEDHELP toptrack(target_destination) : "Top Track" // NEEDHELP bottomtrack(target_destination) : "Bottom Track" // NEEDHELP ] @SolidClass base(CBaseEntity,VisibleBrush,Origin) = func_tracktrain : "An entity that moves along a path defined by path_track entities.\n" + "IMPORTANT: Unless the Fixed Orientation flag is set, build your train so that the front of the train is facing down the X axis. (This means that the front of the train is visible in the front view, top is seen from the top view, etc.) When it spawns it will automatically rotate to face the first path_track on the path.\n" + "BUG: The Reverse and StartBackward inputs may not function correctly if the New Train Speed keyvalue in the involved path_track entities is set to 0. The train may fail to reverse, and be jammed in place or move in the wrong direction. To solve this issue, some or all of the path_tracks must have their New Train Speed keyvalue set to a non-zero value.\n" + "BUG: Trains stop just short of their final destination, with higher speed resulting in a larger gap. At low speeds, this is hard to notice.\n" + "BUG: If trains do not have the same parent as the track nodes they follow, the game may crash." [ spawnflags(flags) = [ 1 : "No Pitch (X-rot) - Makes the entity's pitch never change as it moves." : 0 2 : "No User Control - Prevents players from controlling the entity." : 1 4 : "Forward Only - The controlling player may only move the entity forward, or stop it." : 0 8 : "Not solid" : 0 16 : "Fixed Orientation - Makes the brush stay in the orientation it was created in." : 0 128 : "HL1 Train - Alternate collision code. Try setting this if players move oddly while touching the brush." : 0 256 : "Use max speed for pitch shifting move sound (See Max pitch)." : 0 512 : "Don't hurt blockers" : 0 ] wheels(float) : "Distance Between the Wheels" : 24 : "Used for turning and stopping. Increase the value for smoother turns." height(float) : "Height above track" : 0 : "How high above the path_tracks the train will stay." startspeed(float) : "Max Speed (units / second)" : 100 : "The maximum speed that this train can move. Any speeds applied to this train, such as by path_tracks or SetSpeed inputs, will be clamped to this maximum value." speed(float) : "Initial Speed (units / second)" : 0 : "How much speed the train will move with the moment it spawns." bank(float) : "Bank Angle on Turns" : 0 : "Alters the entity's roll by this much when it moves near path_tracks." dmg(integer) : "Damage on Crush" : 1 : "The amount of damage this train does to entities that block it, per tick (damage occurs very quickly). Requires that 'Don't hurt blockers' is not checked." MoveSound(sound) : "Move Sound" : : "A sound that is played (and looped) while the train is moving." MovePingSound(sound) : "Move Ping Sound" : : "A sound that is played more frequently as the train speeds up." StartSound(sound) : "Start Sound" : : "A sound played when the train starts moving." StopSound(sound) : "Stop Sound" : : "A sound played when the train stops moving." volume(integer) : "Volume" : : "How loudly (from 1 to 10) sounds will play." MoveSoundMinPitch(integer) : "Min pitch" : 100 : "The pitch of Move Sound as the train comes to a stop. This value is between 1 and 255, with 100 being the sound's normal pitch." MoveSoundMaxPitch(integer) : "Max pitch" : 100 : "The pitch of Move Sound once the train's speed reaches 1000 units per second (or Max Speed, if 'Use max speed for pitch shifting move sound' was checked)." MoveSoundMinTime(float) : "Min move sound interval" : 1 : "Minimum interval between playing the Move Ping Sound." MoveSoundMaxTime(float) : "Max move sound interval" : 1 : "Maximum interval between playing the Move Ping Sound." velocitytype(choices) : "Change Velocity" : 0 : "The method through which this train changes its velocity as it moves along the path." = [ 0 : "Instant" 1 : "Linear blend" 2 : "Ease in/ease out" ] orientationtype(choices) : "Change angles" : 3 : "The method through which this train changes its orientation as it moves along the path." = [ 0 : "Never (fixed orientation)" 1 : "Near path_tracks (BUG: makes train always face direction of motion)" 2 : "Linear blend" 3 : "Ease in/ease out" ] ManualSpeedChanges(choices) : "Manual Train Speed" : 0 : "TODO: What is this???" = [ 0 : "Off" 1 : "On" ] ManualAccelSpeed(float) : "Manual Accel Speed" : 3 : "How fast the entity accelerates." ManualDecelSpeed(float) : "Manual Decel Speed" : 3 : "How fast the entity decelerates." input Stop(void) : "Stops the train." input StartForward(void) : "Makes the train move forward (if it can)." input StartBackward(void) : "Makes the train move backward (if it can)." input Toggle(void) : "If stopped, start moving. If moving, stop." input Resume(void) : "Resumes the train moving in the current direction after it was stopped via the Stop or Toggle input." input Reverse(void) : "Reverses the direction of the train." input SetSpeed(float) : "Sets the speed of the train, as a portion of Max Speed (0.0 to 1.0)." input SetSpeedDir(float) : "Sets the speed of the train, as a portion of Max Speed (0.0 to 1.0). This input accepts negative values, allowing for direction reversal." input SetSpeedReal(float) : "Sets the speed in units per second. Must be a positive number between 0.0 and Max Speed." input SetSpeedDirAccel(float) : "Sets the speed of the train, as a portion of Max Speed. The train will accelerate or decelerate to that speed, as opposed to instantly changing. Negative values up to -1.0 are allowed and will reverse the train." input TeleportToPathTrack(target_destination) : "Teleports the train to the designated path_track, and makes it fire its OnTeleport output. The path_track does not have to be in the train's current path." input SetSpeedForwardModifier(float) : "TODO: What is this." output OnStart(void) : "Fires when the train starts moving." output OnNextPoint(void) : "Fires rapidly and continuously as the train moves. Activator is the path_track being traveled to." ] @SolidClass base(func_tracktrain) = func_tanktrain : "OBSOLETE: You shouldn't use this entity, though it may appear in other people's maps. This entity is buggy and doesn't do what it's supposed to do. You should really use func_tracktrain instead." [ ] @SolidClass base(func_trackchange) = func_trackautochange : "OBSOLETE: You shouldn't use this entity, though it may appear in other people's maps. This entity was used in Half-Life for platforms that carry a func_tracktrain to another track. You should use another func_tracktrain instead." [ input Trigger(void) : "Trigger the track change." ] @SolidClass base(CBaseEntity,VisibleBrush,Origin,Toggle) = func_train : "Moves along a set of path_tracks. It was replaced with func_tracktrain in Half-Life, but this entity is still useful because it doesn't suffer some of that entity's bugs." [ spawnflags(flags) = [ 8 : "Not Solid" : 0 ] target(target_destination) : "Target Track" : : "Name of a path_track to move towards. The brush will teleport to this entity upon spawning. If changed with AddOutput, it will move towards that entity instead, but the effect will only take place once the entity reaches its current target or is sent the Stop input, sent AddOutput, then Started again." dmg(integer) : "Blocking Damage" : -1 : "How much damage to do to players that block the brush. Set to -1 to not do any damage." speed(float) : "Speed" : 100 : "How many units per second to move." noise1(sound) : "Start/Movement Sound" : : "The sound to play when the brush moves." noise2(sound) : "Stop Sound" : : "The sound to play when the brush stops moving." volume(integer) : "Sound Volume" : 1 : "How loud the sounds are from 0.0 (quietest) to 1.0 (loudest)." input Start(void) : "Makes the entity start moving." input Stop(void) : "Makes the entity stop moving." ] @SolidClass base(CBaseEntity,Parent) = func_traincontrols : "Optional entity which a player must be inside if they wish to control a func_tracktrain (using the Half-Life 1 controls). If not used, players only have to be standing on the train. Bug: Uses a dumb detection method. The controlling player's origin must be inside the entity's bounding box." [ target(target_destination) : "Train Name" : : "The train this entity is linked to. The entity also needs be parented to that train." ] @SolidClass color(0 180 0) = func_viscluster : "Its purpose is reducing the amount of time spent compiling by telling VVIS that all the visleaves in the volume should be treated as one. If an outside leaf can see ANY clustered leaf, every leaf of that cluster will be in the PVS of that leaf. The reverse is also true; if any leaf in a cluster can see another leaf (including the ones inside the cluster) then every leaf in the cluster will see that leaf. Every leaf in the cluster will see every other one in the cluster. Poor use will result in decreased performance ingame. Avoid placing a func_viscluster through the surface of a water brush or touching areaportals as it can cause visual bugs and compile errors." [ ] @SolidClass base(CBaseEntity,VisibleBrush) = func_wall : "OBSOLETE: You shouldn't use this entity, though it may appear in other people's maps. This entity was basically Half-Life's version of func_brush. Fun fact: players can apply their sprays on this brush. If this behavior is not in the first place, use func_brush instead." [ ] @SolidClass base(CBaseEntity,VisibleBrush) = func_wall_toggle : "OBSOLETE: You shouldn't use this entity, though it may appear in other people's maps. This entity was basically Half-Life's version of func_brush. Same as func_wall, but can be toggled on/off. When off, the brush will be non-solid and invisible. Its state will transfer to next rounds. Func_brush should be used instead." [ spawnflags(flags) = [ 1 : "Starts Invisible" : 0 ] // Inputs input Toggle(void) : "Toggle the brush on/off. When off, the brush will be non-solid and invisible." ] @SolidClass base(CFuncMoveLinear) = func_water_analog : "Can be used to make a water brush move. MUST use cheap water! There are bugs that may arise when parenting this entity to a func_movelinear or func_water_analog. A func_door can be used as a workaround." [ ] @SolidClass base(CBaseEntity,VisibleBrush,Origin) color(255 0 255) = func_weight_button : "It's a brush which fires outputs depending on how much weight is pressing on it. Weapons and other items being carried by players, and hostages, are considered weightless. BUG: Players will not be weighed correctly, and their effective weight on the button can change unpredictably as they move. BUG: Physics objects may jiggle inexplicably when touching the brush." [ WeightToActivate(float) : "Weight to Activate" : : "Amount of weight (kg) needed to fire outputs. TIP: Use sv_massreport 1 to see the weights of objects ingame." output OnPressed(void) : "Fires when enough weight is on the button." output OnReleased(void) : "Fires when the button was pressed, but now weight has been removed." ] @PointClass base(CBaseEntity) iconsprite("editor/game_end") color(0 255 0) = game_end : "Ends the game as if the map's time has run out or it was won in some way. To end a round, see info_map_parameters." [ input EndGame(void) : "Instantly freezes players, shows the scoreboard, and changes the map to whatever it would normally change it to." ] @PointClass base(CBaseEntity) color(0 180 0) = game_gib_manager : "OBSOLETE: You shouldn't use this entity, though it may appear in other people's maps. This entity is a pointlessly excessive optimization technique. It limits how many gibs there can be on the map. Gibs almost always clean themselves up after a certain amount of time." [ maxpieces(integer) : "Max Gib Count" : -1 : "How many gibs there can be in the map at once. -1 means no limit." allownewgibs(choices) : "Allow New Gibs To Spawn" : 1 : "If true, when the max gib count is reached, oldest gibs are removed as new gibs spawn. If false, new gibs will not be spawned once the gib limit is reached." = [ 0 : "No" 1 : "Yes" ] input SetMaxPieces(integer) : "Sets Max Gib Count." ] @PointClass base(CBaseEntity) color(0 255 0) = game_player_equip : "Gives weapons to players, even if they don't deserve it.\n" + "In order to tell this entity what to give the player:\n" + "1. Press the SmartEdit button (in order to turn it off).\n" + "2. Click Add to add a new keyvalue.\n" + "3. Insert the entity's classname in the Key field. Up to 32 different types of entities may be given.\n" + "4. Specify how many instances of the entity to spawn in the Value field. Maximum is 32. This allows you to spawn up to 1024 entities." [ spawnflags(flags) = [ 1 : "Use Only - Only activate from Use input. Otherwise players automatically get items upon spawning." : 0 ] input Use(void) : "Gives the !activator the items. If the activator is not a player, the game can crash!" ] @PointClass base(CBaseEntity) color(0 255 0) = game_score : "Manually gives points to players and teams." [ spawnflags(flags) = [ 1 : "Allow Negative - If Points to add is negative, allow player score to go lower than 0. No effect on whole team." : 1 2 : "Team Points - Applies score change to the entire team. (The big number at the top of the scoreboard.)" : 0 ] points(integer) : "Points to add (+/-)" : 1 : "How many points to add or subtract." input ApplyScore(void) : "Applies the score change to the input's !activator (or the activator's team)." ] @PointClass base(CBaseEntity) iconsprite("editor/game_text") color(255 203 11) = game_text : "It displays text on players' screens." [ spawnflags(flags) = [ 1 : "All Players - Makes text show to the whole server, otherwise only to the !activator." : 0 ] message(string) : "Message Text" : : "Message to display onscreen. TIP: strings from text files in cstrike/resource/ (such as #Valve_Move_Forward) will be translated for all users to the language they're running the game on." x(float) : "X (0 - 1.0 = left to right) (-1 centers)" : -1 : "Horizontal position of the text. 0.0 = far left, 1.0 = far right, -1 = perfectly centered." y(float) : "Y (0 - 1.0 = top to bottom) (-1 centers)" : -1 : "Vertical position of the text. 0.0 = top, 1.0 = bottom, -1 = perfectly centered." effect(choices) : "Text Effect" : 0 : "How the text appears and disappears." = [ 0 : "Fade In/Out - The whole text fades in and fades out." 2 : "Scan Out - Puts each letter in one by one and gives the letters an alternative color if they were just put in." ] color(color255) : "Color1" : "255 255 255" : "The primary color used by all text effects. Note: Bright backgrounds or dark text colors can result in the text being nearly invisible." color2(color255) : "Color2" : "240 110 0" : "The color a letter will be when it's first put on the screen when using Scan Out." channel(choices) : "Text Channel" : 0 : "The game can have up to 6 game_texts active at once, but every text message must use a different channel otherwise the previous message on that channel will be erased." = [ 0 : "Channel 0" 1 : "Channel 1" 2 : "Channel 2" 3 : "Channel 3" 4 : "Channel 4" 5 : "Channel 5" ] fadein(float) : "Fade in Time (or character scan time)" : ".2" : "If Text Effect is Fade In/Out, this is how long the text takes to fade in. If it's Scan Out, this is how long each letter will take to pop in." holdtime(float) : "Hold Time" : 5 : "Once all the text is fully on-screen, how long to keep it there before fading away." fadeout(float) : "Fade Out Time" : ".2" : "How long it takes for text to fade out after Hold Time is over." fxtime(float) : "Scan time (scan effect only)" : ".5" : "If Text Effect is Scan Out, this is how long it will take a newly-created letter to fade from Color2 to Color1. This fade time is not taken into account by Hold Time. Hold time begins the moment the last letter pops on the screen." input Display(void) : "Shows the text to the !activator, or to everyone if All Players is checked." ] @PointClass base(CBaseEntity) color(248 155 0) = game_ui : "It monitors a player's game input (such as walking and looking around) and puts it into outputs. It even works with bots! One game_ui is needed for every player that needs to be monitored at once. The player is the activator of all outputs." [ spawnflags(flags) = [ 32 : "Freeze Player - Sets the player's walking speed to 0 while the entity is active." : 1 64 : "Hide Weapon - Makes the player's weapon be hidden. BUG: player goes to reference pose." : 0 128 : "+Use Deactivates - Stops monitoring the player if they press E." : 1 256 : "Jump Deactivates - Stops monitoring the player if they jump." : 1 ] FieldOfView(float) : "Field Of View" : -1 : "If the entity is active, how far away the player can look from it while not deactivating it. -1 = any direction, 0 = 90 degrees, 1 = looking perfectly at it. The angle will still be checked even through solid walls." input Activate(target_destination) : "Starts monitoring input. If the parameter is specified, it monitors a player with that targetname. Otherwise, the entity monitors the !activator." input Deactivate(void) : "Stops monitoring the player input." output PlayerOn(void) : "Fires when Activate is sent." output PlayerOff(void) : "Fires when Deactivate is sent or when the player looks outside of Field Of View." output PressedMoveLeft(void) : "Fires when the player sends +moveleft (walk left)." output UnpressedMoveLeft(void) : "Fires when the player sends -moveleft" output PressedMoveRight(void) : "Fires when the player sends +moveright (walk right)." output UnpressedMoveRight(void) : "Fires when the player sends -moveright." output PressedForward(void) : "Fires when the player sends +forward (walk forward)." output UnpressedForward(void) : "Fires when the player sends -forward." output PressedBack(void) : "Fires when the player sends +back (walk backward)." output UnpressedBack(void) : "Fires when the player sends -back." output PressedAttack(void) : "Fires when the player sends +attack (primary attack)." output UnpressedAttack(void) : "Fires when the player sends -attack." output PressedAttack2(void) : "Fires when the player sends +attack2 (secondary attack)." output UnpressedAttack2(void) : "Fires when the player sends -attack2." ] //CSS has weapons drop fairly frequently, but killing them randomly would probably not be smart for gameplay, so treat as generic manager @PointClass base(CBaseEntity) color(0 180 0) = game_weapon_manager : "Counts how many of an entity are in the map. If it finds too many entities of one kind, it will delete old ones. It's intended as an optimization." [ weaponname(string) : "Entity Classname" : : "Classname of the entity to monitor." maxpieces(integer) : "Max Allowed in Level" : : "How many entities of the specified type may be in the map at once." input SetMaxPieces(integer) : "Sets Max Allowed in Level." ] @SolidClass base(CBaseEntity,Parent) color(248 155 0) = game_zone_player : "It fires outputs depending on if any players (including spectators) are inside or outside its volume." [ input CountPlayersInZone(void) : "Tells the entity to count how many players are inside it, then fires the outputs which should fire." output OnPlayerInZone(void) : "Fires once for every player found in the zone when the input is sent. !activator is that player." output OnPlayerOutZone(void) : "Fires once for every player found outside the zone when the input is sent. !activator is that player." output PlayersInCount(integer) : "Fires when the CountPlayersInZone input is sent. Automatically puts the number of players inside the zone as the input parameter, unless overridden by the mapper." output PlayersOutCount(integer) : "Fires when the CountPlayersInZone input is sent. Automatically puts the number of players outside the zone as the input parameter, unless overridden by the mapper." ] @PointClass base(CBaseEntity) = hammer_updateignorelist : "Entities with targetnames matching the ones specified here will not have their VMF position updated when using the hammer_update_safe_entities console command. Several of these can exist in a map." [ IgnoredName01(target_destination) : "Ignored Name 01" : : "Targetname of an entity to ignore." IgnoredName02(target_destination) : "Ignored Name 02" : : "Targetname of an entity to ignore." IgnoredName03(target_destination) : "Ignored Name 03" : : "Targetname of an entity to ignore." IgnoredName04(target_destination) : "Ignored Name 04" : : "Targetname of an entity to ignore." IgnoredName05(target_destination) : "Ignored Name 05" : : "Targetname of an entity to ignore." IgnoredName06(target_destination) : "Ignored Name 06" : : "Targetname of an entity to ignore." IgnoredName07(target_destination) : "Ignored Name 07" : : "Targetname of an entity to ignore." IgnoredName08(target_destination) : "Ignored Name 08" : : "Targetname of an entity to ignore." IgnoredName09(target_destination) : "Ignored Name 09" : : "Targetname of an entity to ignore." IgnoredName10(target_destination) : "Ignored Name 10" : : "Targetname of an entity to ignore." IgnoredName11(target_destination) : "Ignored Name 11" : : "Targetname of an entity to ignore." IgnoredName12(target_destination) : "Ignored Name 12" : : "Targetname of an entity to ignore." IgnoredName13(target_destination) : "Ignored Name 13" : : "Targetname of an entity to ignore." IgnoredName14(target_destination) : "Ignored Name 14" : : "Targetname of an entity to ignore." IgnoredName15(target_destination) : "Ignored Name 15" : : "Targetname of an entity to ignore." IgnoredName16(target_destination) : "Ignored Name 16" : : "Targetname of an entity to ignore." ] @PointClass base(CBaseAnimating,Angles) studio("models/Characters/hostage_04.mdl") color(0 255 0) = hostage_entity : "A hostage. Has to go to a func_hostage_rescue." [ input OnRescueZoneTouch(void) : "Rescues the hostage." ] @PointClass base(CBaseEntity) color(255 203 11) = info_camera_link : "It displays the view of a point_camera onto brushes or models. The view is saved to a texture called _rt_Camera, which must be specified as the $basetexture for the material that the view will appear on. An info_camera_link is used in the last Half-Life 2 map to create the view through the opening portal (effects/portalrift.mdl)." [ PointCamera(target_destination) : "Camera Name" : : "point_camera which the view will be taken from." input SetCamera(target_destination) : "Sets Camera Name." ] @PointClass base(CBaseEntity,Parent) color(255 0 255) = info_constraint_anchor : "It is used to tell CPhysConstraints where to attach themselves relative to the objects being constrained (typically they attach at the center of mass). Set this entity as Entity 1 in the constraint, then parent this entity to Entity 2. BUG: The SetParentAttachment input doesn't work on this entity." [ massScale(float) : "Mass scale" : 1 : "Multiplier for the constrained object's mass. 1 = no change." ] @PointClass base(CBaseEntity) iconsprite("editor/info_landmark") color(248 155 0) = info_landmark : "It is used by trigger_teleport's 'Local Destination Landmark' keyvalue. Also used as a generic target entity, much like info_target." [ ] @PointClass iconsprite("editor/info_lighting") color(160 240 37) = info_lighting : "When a prop_static's Lighting Origin is set to this entity's targetname, the prop will set its origin to the origin of the info_lighting during compile time. This will affect its lighting and cubemap reflections.\n"+ "To use this with other point entities, use the same keyvalue, but change the info_lighting to an info_target. Brush entities should use the Minimum Light Level keyvalue, or they can be stored in a remote location with better lighting, then teleported to the correct position.\n"+ "BUG: In unknown circumstances, sometimes puts the origin in the wrong spot or doesn't move it at all. Perhaps there's a conflict with $illumposition?" [ targetname(target_source) : "Name" : : "The name that other entities refer to this entity by." ] @PointClass base(CBaseEntity) color(0 255 0) = info_map_parameters : "Sets some properties of the map and can end the round." [ buying(choices) : "Teams that can buy" : 0 : "Who is allowed to buy weapons, etc. Can also be controlled by not making one or both func_buyzones." = [ 0 : "Everyone" 1 : "Only Counter-Terrorists" 2 : "Only Terrorists" 3 : "Nobody" ] bombradius(float) : "C4 Explosion Radius" : 500 : "Radius of the C4's explosion. This number gets multiplied by roughly 4 to create the actual radius. Maximum value is 2048. Normal radius is about 2000." input FireWinCondition(integer) : "Makes the round end. Parameter is the reason the round is ending.\n" + "0: Bomb Detonated\n" + "1: VIP Escaped\n" + "2: VIP Assassinated\n" + "3: Terrorists Escaped\n" + "4: CTs Prevented Escape\n" + "5: Escaping Terrorists Neutralized\n" + "6: Bomb Defused\n" + "7: Terrorists Eliminated\n" + "8: CTs Eliminated\n" + "9: Round Draw\n" + "10: All Hostages Rescued\n" + "11: Bombing Failed\n" + "12: Rescue Failed\n" + "13: Terrorist Escape Failed\n" + "14: VIP Escape Failed\n" + "15: Game Commencing\n" + "16: No Reason, Terrorists win" ] @PointClass base(CBaseEntity) size(-4 -4 -4, 4 4 4) color(255 0 255) = info_mass_center : "It sets the center of mass of a physics object to this entity's location. Removes itself after spawning." [ target(target_destination) : "Target object" : : "Object to set the COM for. (Typically a func_physbox or prop_physics.)" ] @PointClass color(160 240 37) = info_no_dynamic_shadow : "It defines brush faces which should not receive _rt_shadows shadows. Useful for any situation where shadows may look odd or give an unintended advantage to a player." [ sides(sidelist) : "Brush faces" : : "Brush faces to hide shadows from. To select faces, press the Pick button then click on them in the 3D view. Hold Ctrl to select multiple faces." ] @PointClass base(CBaseEntity) = info_null : "It removes itself the moment it spawns. It doesn't have many uses, but one is being a target for light_spots. It's good to still eventually remove them from the VMF when no longer needed because they do still network themselves, for one tick." [ ] @PointClass base(FadeKeys) size(-1 -1 0, 1 1 1) color(77 147 216) studio("models/editor/overlay_helper.mdl") sphere(fademindist) sphere(fademaxdist) overlay() color(255 203 11) = info_overlay : "It adds a texture such as a sign or stain onto a brush. Place them with Hammer's overlay tool (Shift+O). The overlay tool can also distort overlays by dragging the 4 white squares. Overlays will work on any world geometry, including displacements and func_detail brushes. A map may have up to 512 overlays." [ targetname(target_source) : "Name" : : "Name of the overlay. This allows for env_texturetoggle to target the overlay. It appears that naming an overlay does not enable it to be parented or killed, etc." material(material) : "Material" : : "The material to overlay. It can be of any type." sides(sidelist) : "Brush faces" : : "Brush faces the overlay will appear on. The overlay tool will automatically fill this in when the overlay is created, but if the geometry near the overlay changes, this will have to be updated manually." RenderOrder(integer) : "Render Order" : 0 : "A value from 0 to 3. Higher value overlays will render on top of lower ones. Overlapping overlays with the same value will Z-fight." StartU(float) : "U Start" : 0 : "Texture coordinates for the image X-axis. This normally starts at zero (left) and goes to 1 (right). Adjust values to change position and scaling." EndU(float) : "U End" : 1 : "Texture coordinates for the image X-axis. This normally starts at zero (left) and goes to 1 (right). Adjust values to change position and scaling." StartV(float) : "V Start" : 0 : "Texture coordinates for the image Y-axis. This normally starts at zero (top) and goes to 1 (bottom). Adjust values to change position and scaling." EndV(float) : "V End" : 1 : "Texture coordinates for the image Y-axis. This normally starts at zero (top) and goes to 1 (bottom). Adjust values to change position and scaling." BasisOrigin(vector) readonly : "Overlay Basis Origin (Read-Only)" : : "Center of the texture." BasisU(vector) readonly : "Overlay Basis U (Read-Only)" : : "Direction of the material's X-axis." BasisV(vector) readonly : "Overlay Basis V (Read-Only)" : : "Direction of the material's Y-axis." BasisNormal(vector) readonly : "Overlay Basis Normal (Read-Only)" : : "Direction perpendicular to the surface." uv0(vector) readonly : "Overlay Point 1 (Read-Only)" : : "Position of a corner. Adjust using the overlay tool." uv1(vector) readonly : "Overlay Point 2 (Read-Only)" : : "Position of a corner. Adjust using the overlay tool." uv2(vector) readonly : "Overlay Point 3 (Read-Only)" : : "Position of a corner. Adjust using the overlay tool." uv3(vector) readonly : "Overlay Point 4 (Read-Only)" : : "Position of a corner. Adjust using the overlay tool." ] @PointClass sidelist(sides) sidelist(sides2) overlay_transition() color(255 203 11) size(16 16 16) = info_overlay_transition : "It puts a texture in the space where a brush/displacement touches water. (i.e. a transition from land to water) It can be used to show waves on a shore. The entity is very buggy. Sometimes bits and pieces of the shore effect will just not render. It may show as a solid color or just not at all. Sometimes using cut and paste in Hammer will bug the entity in some way." [ material(material) : "Material" : : "Material to put over the transition between land and water." sides(sidelist) : "Brush faces" : : "Land faces to apply on." sides2(sidelist) : "Water faces" : : "Water faces to apply on." Width1(float) : "Width Land" : 5 : "How far the texture goes onto land." Width2(float) : "Width Water" : 5 : "How far the texture goes onto water." LengthTexcoordStart(float) : "Texcoord Length Start" : 0 : "TODO: Description." LengthTexcoordEnd(float) : "Texcoord Length End" : 1 : "TODO: Description." WidthTexcoordStart(float) : "Texcoord Width Start" : 0 : "TODO: Description." WidthTexcoordEnd(float) : "Texcoord Width End" : 1 : "TODO: Description." DebugDraw(choices) : "Show Debug" : 0 : "Shows debugging info about the positioning of the texture." = [ 0 : "No" 1 : "Yes" ] ] @PointClass base(CBaseEntity,Parent,Angles) studio("models/editor/cone_helper.mdl") line(255 255 255, targetname, cpoint1) line(255 255 255, targetname, cpoint2) line(255 255 255, targetname, cpoint3) line(255 255 255, targetname, cpoint4) line(255 255 255, targetname, cpoint5) line(255 255 255, targetname, cpoint6) line(255 255 255, targetname, cpoint7) line(255 255 255, targetname, cpoint8) line(255 255 255, targetname, cpoint9) line(255 255 255, targetname, cpoint10) line(255 255 255, targetname, cpoint11) line(255 255 255, targetname, cpoint12) line(255 255 255, targetname, cpoint13) line(255 255 255, targetname, cpoint14) line(255 255 255, targetname, cpoint15) line(255 255 255, targetname, cpoint16) line(255 255 255, targetname, cpoint17) line(255 255 255, targetname, cpoint18) line(255 255 255, targetname, cpoint19) line(255 255 255, targetname, cpoint20) line(255 255 255, targetname, cpoint21) line(255 255 255, targetname, cpoint22) line(255 255 255, targetname, cpoint23) line(255 255 255, targetname, cpoint24) line(255 255 255, targetname, cpoint25) line(255 255 255, targetname, cpoint26) line(255 255 255, targetname, cpoint27) line(255 255 255, targetname, cpoint28) line(255 255 255, targetname, cpoint29) line(255 255 255, targetname, cpoint30) line(255 255 255, targetname, cpoint31) line(255 255 255, targetname, cpoint32) line(255 255 255, targetname, cpoint33) line(255 255 255, targetname, cpoint34) line(255 255 255, targetname, cpoint35) line(255 255 255, targetname, cpoint36) line(255 255 255, targetname, cpoint37) line(255 255 255, targetname, cpoint38) line(255 255 255, targetname, cpoint39) line(255 255 255, targetname, cpoint40) line(255 255 255, targetname, cpoint41) line(255 255 255, targetname, cpoint42) line(255 255 255, targetname, cpoint43) line(255 255 255, targetname, cpoint44) line(255 255 255, targetname, cpoint45) line(255 255 255, targetname, cpoint46) line(255 255 255, targetname, cpoint47) line(255 255 255, targetname, cpoint48) line(255 255 255, targetname, cpoint49) line(255 255 255, targetname, cpoint50) line(255 255 255, targetname, cpoint51) line(255 255 255, targetname, cpoint52) line(255 255 255, targetname, cpoint53) line(255 255 255, targetname, cpoint54) line(255 255 255, targetname, cpoint55) line(255 255 255, targetname, cpoint56) line(255 255 255, targetname, cpoint57) line(255 255 255, targetname, cpoint58) line(255 255 255, targetname, cpoint59) line(255 255 255, targetname, cpoint60) line(255 255 255, targetname, cpoint61) line(255 255 255, targetname, cpoint62) line(255 255 255, targetname, cpoint63) color(255 203 11) = info_particle_system : "Creates and controls a particle system. https://developer.valvesoftware.com/wiki/Particle_System_Overview" [ effect_name(string) : "Particle System Name" : : "The name of the particle system to spawn. (Not the name of a PCF file.)" start_active(choices) : "Start Active" : 1 : "Should the particles emit immediately after spawning in?" = [ 0 : "No" 1 : "Yes" ] cpoint1(target_destination) : "Control Point 1" : : "An entity which acts as a control point for the particle system. If any value is left blank all those following it will be ignored. Control point entities must exist on the client's end. This means that most invisible entities will not work. info_target is a good entity to use. TIP: Control point 0 is the origin of the info_particle_system itself." cpoint1_parent(integer) : "Control Point 1's Parent" : : "A control point entity which will act as a parent to this one." cpoint2(target_destination) : "Control Point 2" : : "An entity which acts as a control point for the particle system." cpoint2_parent(integer) : "Control Point 2's Parent" : : "A control point entity which will act as a parent to this one." cpoint3(target_destination) : "Control Point 3" : : "An entity which acts as a control point for the particle system." cpoint3_parent(integer) : "Control Point 3's Parent" : : "A control point entity which will act as a parent to this one." cpoint4(target_destination) : "Control Point 4" : : "An entity which acts as a control point for the particle system." cpoint4_parent(integer) : "Control Point 4's Parent" : : "A control point entity which will act as a parent to this one." cpoint5(target_destination) : "Control Point 5" : : "An entity which acts as a control point for the particle system." cpoint5_parent(integer) : "Control Point 5's Parent" : : "A control point entity which will act as a parent to this one." cpoint6(target_destination) : "Control Point 6" : : "An entity which acts as a control point for the particle system." cpoint6_parent(integer) : "Control Point 6's Parent" : : "A control point entity which will act as a parent to this one." cpoint7(target_destination) : "Control Point 7" : : "An entity which acts as a control point for the particle system." cpoint7_parent(integer) : "Control Point 7's Parent" : : "A control point entity which will act as a parent to this one." cpoint8(target_destination) : "Control Point 8" : : "An entity which acts as a control point for the particle system." cpoint9(target_destination) : "Control Point 9" : : "An entity which acts as a control point for the particle system." cpoint10(target_destination) : "Control Point 10" : : "An entity which acts as a control point for the particle system." cpoint11(target_destination) : "Control Point 11" : : "An entity which acts as a control point for the particle system." cpoint12(target_destination) : "Control Point 12" : : "An entity which acts as a control point for the particle system." cpoint13(target_destination) : "Control Point 13" : : "An entity which acts as a control point for the particle system." cpoint14(target_destination) : "Control Point 14" : : "An entity which acts as a control point for the particle system." cpoint15(target_destination) : "Control Point 15" : : "An entity which acts as a control point for the particle system." cpoint16(target_destination) : "Control Point 16" : : "An entity which acts as a control point for the particle system." cpoint17(target_destination) : "Control Point 17" : : "An entity which acts as a control point for the particle system." cpoint18(target_destination) : "Control Point 18" : : "An entity which acts as a control point for the particle system." cpoint19(target_destination) : "Control Point 19" : : "An entity which acts as a control point for the particle system." cpoint20(target_destination) : "Control Point 20" : : "An entity which acts as a control point for the particle system." cpoint21(target_destination) : "Control Point 21" : : "An entity which acts as a control point for the particle system." cpoint22(target_destination) : "Control Point 22" : : "An entity which acts as a control point for the particle system." cpoint23(target_destination) : "Control Point 23" : : "An entity which acts as a control point for the particle system." cpoint24(target_destination) : "Control Point 24" : : "An entity which acts as a control point for the particle system." cpoint25(target_destination) : "Control Point 25" : : "An entity which acts as a control point for the particle system." cpoint26(target_destination) : "Control Point 26" : : "An entity which acts as a control point for the particle system." cpoint27(target_destination) : "Control Point 27" : : "An entity which acts as a control point for the particle system." cpoint28(target_destination) : "Control Point 28" : : "An entity which acts as a control point for the particle system." cpoint29(target_destination) : "Control Point 29" : : "An entity which acts as a control point for the particle system." cpoint30(target_destination) : "Control Point 30" : : "An entity which acts as a control point for the particle system." cpoint31(target_destination) : "Control Point 31" : : "An entity which acts as a control point for the particle system." cpoint32(target_destination) : "Control Point 32" : : "An entity which acts as a control point for the particle system." cpoint33(target_destination) : "Control Point 33" : : "An entity which acts as a control point for the particle system." cpoint34(target_destination) : "Control Point 34" : : "An entity which acts as a control point for the particle system." cpoint35(target_destination) : "Control Point 35" : : "An entity which acts as a control point for the particle system." cpoint36(target_destination) : "Control Point 36" : : "An entity which acts as a control point for the particle system." cpoint37(target_destination) : "Control Point 37" : : "An entity which acts as a control point for the particle system." cpoint38(target_destination) : "Control Point 38" : : "An entity which acts as a control point for the particle system." cpoint39(target_destination) : "Control Point 39" : : "An entity which acts as a control point for the particle system." cpoint40(target_destination) : "Control Point 40" : : "An entity which acts as a control point for the particle system." cpoint41(target_destination) : "Control Point 41" : : "An entity which acts as a control point for the particle system." cpoint42(target_destination) : "Control Point 42" : : "An entity which acts as a control point for the particle system." cpoint43(target_destination) : "Control Point 43" : : "An entity which acts as a control point for the particle system." cpoint44(target_destination) : "Control Point 44" : : "An entity which acts as a control point for the particle system." cpoint45(target_destination) : "Control Point 45" : : "An entity which acts as a control point for the particle system." cpoint46(target_destination) : "Control Point 46" : : "An entity which acts as a control point for the particle system." cpoint47(target_destination) : "Control Point 47" : : "An entity which acts as a control point for the particle system." cpoint48(target_destination) : "Control Point 48" : : "An entity which acts as a control point for the particle system." cpoint49(target_destination) : "Control Point 49" : : "An entity which acts as a control point for the particle system." cpoint50(target_destination) : "Control Point 50" : : "An entity which acts as a control point for the particle system." cpoint51(target_destination) : "Control Point 51" : : "An entity which acts as a control point for the particle system." cpoint52(target_destination) : "Control Point 52" : : "An entity which acts as a control point for the particle system." cpoint53(target_destination) : "Control Point 53" : : "An entity which acts as a control point for the particle system." cpoint54(target_destination) : "Control Point 54" : : "An entity which acts as a control point for the particle system." cpoint55(target_destination) : "Control Point 55" : : "An entity which acts as a control point for the particle system." cpoint56(target_destination) : "Control Point 56" : : "An entity which acts as a control point for the particle system." cpoint57(target_destination) : "Control Point 57" : : "An entity which acts as a control point for the particle system." cpoint58(target_destination) : "Control Point 58" : : "An entity which acts as a control point for the particle system." cpoint59(target_destination) : "Control Point 59" : : "An entity which acts as a control point for the particle system." cpoint60(target_destination) : "Control Point 60" : : "An entity which acts as a control point for the particle system." cpoint61(target_destination) : "Control Point 61" : : "An entity which acts as a control point for the particle system." cpoint62(target_destination) : "Control Point 62" : : "An entity which acts as a control point for the particle system." cpoint63(target_destination) : "Control Point 63" : : "An entity which acts as a control point for the particle system." input Start(void) : "Tells the particle system to begin emitting, if it wasn't already." input Stop(void) : "Tells the particle system to quit emitting." ] @PointClass base(CBaseEntity,Parent,Angles) studio("models/player/ct_urban.mdl") color(0 255 0) = info_player_counterterrorist : "Spawning point for counter-terrorists. Directly sets the maximum members that can be on a team; one needs to be placed for every team member who might join." [ ] @PointClass base(CBaseEntity,Parent,Angles) studio("models/editor/camera.mdl") color(255 203 11) = info_player_logo : "Intended to provide the view for background maps, like those in Half-Life 2. Players will see the map from this point when the map is loaded with map_background." [ ] @PointClass base(CBaseEntity,Parent,Angles) studio("models/player/t_phoenix.mdl") color(0 255 0) = info_player_terrorist : "Spawning point for terrorists. Directly sets the maximum members that can be on a team; one needs to be placed for every team member who might join." [ ] @PointClass base(CBaseEntity,Parent,Angles) studio("models/editor/cone_helper.mdl") color(255 203 11) = info_projecteddecal : "It projects a decal onto models." [ texture(decal) : "Texture" : : "Texture to apply." Distance(float) : "Distance" : 300 : "Maximum distance from the origin to project the decal. The decal will not go through anything solid." input Activate(void) : "Applies the decal." ] @PointClass base(CBaseEntity,Parent,Angles) iconsprite("editor/info_target") studioprop() = info_target : "It's a generic 'target'. Other entities can use it as a reference point for many different things. Note that this is a preserved entity, which means its properties will transfer to next rounds. It cannot be spawned using point_template and 'Kill'ing it removes it forever." [ spawnflags(flags) = [ 1 : "Transmit to client - Tells the player's end where the entity is. Not necessary unless using certain client-side effects." : 0 ] model(studio) : "Helper Model" : : "Does nothing. Meant only to serve as a reference for the proportions of something." ] @PointClass base(CBaseEntity,Parent,Angles) studio("models/editor/playerstart.mdl") = info_teleport_destination : "OBSOLETE: You shouldn't use this entity, though it may appear in other people's maps. This entity used to be needed for trigger_teleport's destination. Use info_target." [ ] @PointClass base(CBaseEntity) decal() studio("models/editor/axis_helper_thick.mdl") color(255 203 11) = infodecal : "It adds a texture such as a sign, stain, or bullet hole onto any surface. Place them with Hammer's decal tool (Shift+D). The entity will apply the decal then remove itself if it does not have a targetname. If it does, it will wait for the Activate input. BUG: In Hammer, decals may look like they're applied to the brush a displacement came from. They will work fine in-game though, provided that they're close to the actual displacement face." [ texture(decal) : "Texture" : : "The texture to apply." LowPriority(choices) : "Low Priority (can be replaced)" : 0 : "Sets if this decal can be deleted for performance reasons if the map has a lot of decals in it." = [ 0 : "No" 1 : "Yes" ] input Activate(void) : "Applies the decal, then removes the infodecal entity." ] @PointClass base(CItem) studio("models/weapons/w_defuser.mdl") color(160 37 240) sphere(fademindist) sphere(fademaxdist) = item_defuser : "A defuse kit which CTs can pick up." [ ] @KeyFrameClass base(CRopeKeyframe) studio("models/editor/axis_helper_thick.mdl") animator() keyframe() color(255 203 11) = keyframe_rope : "Defines one end of a rope. The properties set in a rope entity will only affect the rope drawn between that entity and the one specified in that entity's Next KeyFrame field. BUG: The rope will mysteriously vanish if it has a parent when a round begins. Use Shift+Drag to create ropes quickly. Identical to move_rope." [ PositionInterpolator(choices) readonly : "Position Interpolator" : 2 : "How the rope curve is done. Only type 2 (Rope) is fully supported." = [ 0 : "Linear" 1 : "Catmull-Rom Spline" 2 : "Rope" ] MoveSpeed(integer) readonly : "Speed (units per second)" : 1 : "Does not actually exist. Needs to be above 0 to show the rope preview in Hammer." ] @PointClass base(CLight) light() iconsprite("editor/light") sphere(_fifty_percent_distance) sphere(_zero_percent_distance) color(160 240 37) = light : "A light that emits in every direction. Unless the entity is given a targetname, it will remove itself upon spawning because the game no longer needs it for anything. Named lights are toggleable and can take inputs but do a simpler light calculation and lightmap pieces are limited to up to 2 toggled lights shining on them at once." [ _constant_attn(float) : "Constant" : 0 : "How strongly the light should use constant attenuation. Processed in a ratio along with Linear and Quadratic to determine how quickly light weakens as it moves away from its source (this entity). Do not use these if already using the 50% and 0% falloff KVs. See here: https://developer.valvesoftware.com/wiki/Constant-Linear-Quadratic_Falloff." _linear_attn(float) : "Linear" : 0 : "How strongly the light should use linear attenuation." _quadratic_attn(float) : "Quadratic" : 1 : "How strongly the light should use quadratic attenuation." _fifty_percent_distance(float) : "50 percent falloff distance" : 0 : "How far away from the source that light weakens to 50% its original brightness. Do not use these if already using the constant-linear-quadratic falloff KVs." _zero_percent_distance(float) : "0 percent falloff distance" : 0 : "How far away from the source that light weakens to 0.4% (1/256) its original brightness, at which point VRAD will quit calculating it." _hardfalloff(float) : "hard falloff" : 0 : "Light will not hit surfaces this far away from the source." ] @PointClass base(CLight,Angles) iconsprite("editor/light_env") color(160 240 37) = light_directional : "NOTE: requires Slammin's modified VRAD to work, because it does not exist on engine level, therefore naming it is useless.\n" + "It makes light come from skybox tool textures in the map in order to simulate sunlight. It can't use ambient settings like light_environment can, but it can be used multiple times in one map, even with a light_environment. " [ pitch(integer) : "Pitch" : -57 : "Overrides the pitch in Pitch Yaw Roll. VRAD ignores the regular one, so it must be specified. Note that this pitch is the negative of the regular one, so -90 is straight down. Both pitch values should be opposites." SunSpreadAngle(float) : "Sun Spread Angle" : 0 : "How much the angles of the light particles can vary to simulate a penumbra effect. The lightmap scale of the brushes which light falls on also determines how blurry the shadows look." ] @PointClass base(CBaseEntity,Parent,Toggle) iconsprite("editor/light") sphere(distance) lightcone() size(-4 -4 -4, 4 4 4) color(160 240 37) = light_dynamic : "Light that's computed and rendered in realtime. It can move and change its properties at any moment. The Pitch keyvalue doesn't actually affect the entity ingame. All it does is set the pitch of Hammer's lightcone helper. To see where light will cast, set Pitch to the first number in Pitch Yaw Roll and flip the + or - sign. env_projectedtexture is generally agreed upon as a better entity for dynamic lighting for its more realistic results and less unintuitive setup. light_dynamic does have some advantages, though; more than one can be on at once, and it can emit in all directions." [ spawnflags(flags) = [ 1 : "Do not light brushes" : 0 2 : "Do not light models" : 0 ] target(target_destination) : "Entity to point at" : : "An entity that the light will point at (even if either entity moves). In some situations this will look extremely bad because the light recomputes the angle every tick with no interpolation, resulting in choppy 'motion'." _light(color255) : "Light color" : "255 255 255" : "Color of the light." brightness(integer) : "Light brightness" : 1 : "A value representing the light's intensity. 10 is probably much more than one will ever want. To fine tune the brightness, one can adjust the Light color to be darker." _cone(float) : "Outer (fading) angle" : : "How wide the light casts (on models). Set this to 0 to have the light cast in all directions (for models and brushes)." pitch(integer) : "Pitch" : : "Pitch value used by Hammer's lightcone visualization. Doesn't affect the actual lighting at all." distance(float) : "Maximum distance" : : "How far away from the entity light can cast, in world units." spotlight_radius(float) : "Spotlight end radius" : : "How big of a circle to illuminate when light hits brushes. The light will always be in a circle shape." style(choices) : "Appearance" : 0 : "Modulates the light's brightness. See https://developer.valvesoftware.com/wiki/Template:Light_appearances for preset info." = [ 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" 12 : "Underwater light mutation" ] input Color(color255) : "Sets Light color." input Brightness(integer) : "Sets Light brightness." input Distance(float) : "Sets Maximum distance." input _cone(float) : "Sets Outer (fading) angle." input spotlight_radius(float) : "Sets Spotlight end radius." input style(integer) : "Sets Appearance." input TurnOn(void) : "Turns the light on." input TurnOff(void) : "Turns the light off." ] @PointClass base(CLight,Angles) iconsprite("editor/light_env") color(160 240 37) = light_environment : "It makes light come from skybox tool textures in the map in order to simulate sunlight. Unless the entity is given a targetname, it will remove itself upon spawning because the game no longer needs it for anything. Named lights are toggleable and can take inputs but do a simpler light calculation and lightmap pieces are limited to up to 2 toggled lights shining on them at once. NOTE: The pitch value (whether from Pitch or Pitch Yaw Roll) is inverse of the regular one, so -90 is straight down. Also, the roll value means nothing." [ pitch(integer) : "Pitch" : -57 : "If used, overrides the pitch in Pitch Yaw Roll. This is entirely useless." _ambient(color255) : "Ambient" : "255 255 255 20" : "Color and intensity of the ambient light. Ambient light is added on all surfaces which have LOS to a skybox brush, without any regard for the sunlight's angle." _ambientHDR(color255) : "Ambient HDR" : "-1 -1 -1 1" : "If specified, ambient light settings for players with HDR turned on. The default -1 -1 -1 1 means the lightmap data will be the same, regardless of HDR. The lighting may still appear different ingame, due to HDR being on." _AmbientScaleHDR(float) : "Ambient Scale HDR" : 1 : "Multiplier for the color + intensity of ambient light for players with HDR turned on. (Works with Ambient HDR, though it doesn't make sense to use them together.)" SunSpreadAngle(float) : "Sun Spread Angle" : 0 : "How much the angles of the light particles can vary to simulate a penumbra effect. The lightmap scale of the brushes which light falls on also determines how blurry the shadows look." ] @PointClass base(CLight,Angles) lightprop("models/editor/spot.mdl") lightcone() sphere(_fifty_percent_distance) sphere(_zero_percent_distance) color(160 240 37) = light_spot : "A light entity made to emit light in a certain direction. Unless the entity is given a targetname, it will remove itself upon spawning because the game no longer needs it for anything. Named lights are toggleable and can take inputs but do a simpler light calculation and lightmap pieces are limited to up to 2 toggled lights shining on them at once." [ pitch(angle_negative_pitch) : "Pitch" : -90 : "Overrides the pitch in Pitch Yaw Roll. VRAD ignores the regular one, so it must be specified in order to orientate the light. Note that this pitch is the negative of the regular one, so -90 is straight down." target(target_destination) : "Entity To Point At" : : "Light will point at this entity. info_null works well." _inner_cone(float) : "Inner (bright) angle" : 30 : "The angle of the cone in which the light emits at full intensity. Past this angle, light will weaken until it stops completely at Outer (fading) angle. Maximum 90." _cone(float) : "Outer (fading) angle" : 45 : "The farthest angle away from Pitch Yaw Roll that the light is allowed emit at. Maximum 90." _exponent(float) : "Focus" : 1 : "Bias for where most of the intensity falloff between Inner (bright) angle and Outer (fading) angle occurs. Decimals between 0 and 1 cause the falloff to occur closer to the outer angle, and numbers above 1 make it happen closer to the inner angle." _constant_attn(float) : "Constant" : 0 : "How strongly the light should use constant attenuation. Processed in a ratio along with Linear and Quadratic to determine how quickly light weakens as it moves away from its source (this entity). Do not use these if already using the 50% and 0% falloff KVs. See here: https://developer.valvesoftware.com/wiki/Constant-Linear-Quadratic_Falloff." _linear_attn(float) : "Linear" : 0 : "How strongly the light should use linear attenuation." _quadratic_attn(float) : "Quadratic" : 1 : "How strongly the light should use quadratic attenuation." _fifty_percent_distance(float) : "50 percent falloff distance" : 0 : "How far away from the source that light weakens to 50% its original brightness. Do not use these if already using the constant-linear-quadratic falloff KVs." _zero_percent_distance(float) : "0 percent falloff distance" : 0 : "How far away from the source that light weakens to 0.4% (1/256) its original brightness, at which point VRAD will quit calculating it." _hardfalloff(float) : "hard falloff" : 0 : "Light will not hit surfaces this far away from the source." ] @PointClass base(CBaseEntity) iconsprite("editor/logic_auto") color(248 155 0) = logic_auto : "Fires outputs automatically." [ spawnflags(flags) = [ 1 : "Remove on fire - Removes the entity after firing outputs. Delayed inputs will work." : 1 ] globalstate(string) : "Global State to Read" : : "A global state (env_global) which must be set to 'On' in order for this entity to fire any outputs." output OnMapSpawn(void) : "Fires when the server loads the map and once at the start of every round." output OnNewGame(void) : "Fires when the server loads the map and once at the start of every round." output OnMultiNewMap(void) : "Fires when the server loads the map and once at the start of every round." output OnBackgroundMap(void) : "Fires when the map is loaded as a background map (map_background command)." ] @PointClass base(CBaseEntity) iconsprite("editor/logic_branch") color(248 155 0) = logic_branch : "It stores a boolean (true/false, yes/no, 1/0) value. Use env_global to make the value persist across rounds." [ InitialValue(integer) : "Initial value" : 1 : "What the value should be set to when the entity spawns." input SetValue(integer) : "Sets Initial value." input SetValueTest(integer) : "Sets Initial value, then causes OnTrue or OnFalse to fire." input Toggle(void) : "Inverts the value." input ToggleTest(void) : "Inverts the value, then causes outputs to fire." input Test(void) : "Makes OnTrue or OnFalse fire without changing the value." output OnTrue(void) : "Fires if the value is true (1)." output OnFalse(void) : "Fires if the value is false (0)." ] @PointClass base(CBaseEntity) color(248 155 0) = logic_branch_listener : "It observes the states of multiple logic_branches at once, allowing for more complex logic setups. When the state of a logic_branch changes, it will automatically tell logic_branch_listeners which are watching it to fire outputs." [ Branch01(target_destination) : "Logic Branch 01" : : "logic_branches to watch. These keyvalues will accept multiple logic_branches in the same field if some are given the same targetname, but the entity only accepts 16 entities maximum. Wildcards (i.e. branch_1, branch_2 being referred to as branch_*) are also supported." Branch02(target_destination) : "Logic Branch 02" : : "logic_branches to watch. These keyvalues will accept multiple logic_branches in the same field if some are given the same targetname, but the entity only accepts 16 entities maximum. Wildcards (i.e. branch_1, branch_2 being referred to as branch_*) are also supported." Branch03(target_destination) : "Logic Branch 03" : : "logic_branches to watch. These keyvalues will accept multiple logic_branches in the same field if some are given the same targetname, but the entity only accepts 16 entities maximum. Wildcards (i.e. branch_1, branch_2 being referred to as branch_*) are also supported." Branch04(target_destination) : "Logic Branch 04" : : "logic_branches to watch. These keyvalues will accept multiple logic_branches in the same field if some are given the same targetname, but the entity only accepts 16 entities maximum. Wildcards (i.e. branch_1, branch_2 being referred to as branch_*) are also supported." Branch05(target_destination) : "Logic Branch 05" : : "logic_branches to watch. These keyvalues will accept multiple logic_branches in the same field if some are given the same targetname, but the entity only accepts 16 entities maximum. Wildcards (i.e. branch_1, branch_2 being referred to as branch_*) are also supported." Branch06(target_destination) : "Logic Branch 06" : : "logic_branches to watch. These keyvalues will accept multiple logic_branches in the same field if some are given the same targetname, but the entity only accepts 16 entities maximum. Wildcards (i.e. branch_1, branch_2 being referred to as branch_*) are also supported." Branch07(target_destination) : "Logic Branch 07" : : "logic_branches to watch. These keyvalues will accept multiple logic_branches in the same field if some are given the same targetname, but the entity only accepts 16 entities maximum. Wildcards (i.e. branch_1, branch_2 being referred to as branch_*) are also supported." Branch08(target_destination) : "Logic Branch 08" : : "logic_branches to watch. These keyvalues will accept multiple logic_branches in the same field if some are given the same targetname, but the entity only accepts 16 entities maximum. Wildcards (i.e. branch_1, branch_2 being referred to as branch_*) are also supported." Branch09(target_destination) : "Logic Branch 09" : : "logic_branches to watch. These keyvalues will accept multiple logic_branches in the same field if some are given the same targetname, but the entity only accepts 16 entities maximum. Wildcards (i.e. branch_1, branch_2 being referred to as branch_*) are also supported." Branch10(target_destination) : "Logic Branch 10" : : "logic_branches to watch. These keyvalues will accept multiple logic_branches in the same field if some are given the same targetname, but the entity only accepts 16 entities maximum. Wildcards (i.e. branch_1, branch_2 being referred to as branch_*) are also supported." Branch11(target_destination) : "Logic Branch 11" : : "logic_branches to watch. These keyvalues will accept multiple logic_branches in the same field if some are given the same targetname, but the entity only accepts 16 entities maximum. Wildcards (i.e. branch_1, branch_2 being referred to as branch_*) are also supported." Branch12(target_destination) : "Logic Branch 12" : : "logic_branches to watch. These keyvalues will accept multiple logic_branches in the same field if some are given the same targetname, but the entity only accepts 16 entities maximum. Wildcards (i.e. branch_1, branch_2 being referred to as branch_*) are also supported." Branch13(target_destination) : "Logic Branch 13" : : "logic_branches to watch. These keyvalues will accept multiple logic_branches in the same field if some are given the same targetname, but the entity only accepts 16 entities maximum. Wildcards (i.e. branch_1, branch_2 being referred to as branch_*) are also supported." Branch14(target_destination) : "Logic Branch 14" : : "logic_branches to watch. These keyvalues will accept multiple logic_branches in the same field if some are given the same targetname, but the entity only accepts 16 entities maximum. Wildcards (i.e. branch_1, branch_2 being referred to as branch_*) are also supported." Branch15(target_destination) : "Logic Branch 15" : : "logic_branches to watch. These keyvalues will accept multiple logic_branches in the same field if some are given the same targetname, but the entity only accepts 16 entities maximum. Wildcards (i.e. branch_1, branch_2 being referred to as branch_*) are also supported." Branch16(target_destination) : "Logic Branch 16" : : "logic_branches to watch. These keyvalues will accept multiple logic_branches in the same field if some are given the same targetname, but the entity only accepts 16 entities maximum. Wildcards (i.e. branch_1, branch_2 being referred to as branch_*) are also supported." input Test(void) : "Tells the entity to look at the state of every logic_branch it was told to watch, then fires the appropriate output." input _OnLogicBranchRemoved(void) : "Sent automatically by a logic_branch when it gets removed for any reason. The !activator will no longer be watched by this entity. Makes the entity fire an output, but only if the listener's final result has changed." output OnAllTrue(void) : "Fires if all logic_branches are set to true." output OnAllFalse(void) : "Fires if all logic_branches are set to false." output OnMixed(void) : "Fires if the logic_branches are not all true nor all false." ] @PointClass base(CBaseEntity) iconsprite("editor/logic_case") color(248 155 0) = logic_case : "It takes an input value, then fires one of 16 cool outputs if the value matches one that the entity has stored. It can also be told to fire a random output." [ Case01(string) : "Case 01" : : "Values to store. Because these are strings, numbers with extra zeroes are different than the same numeric value without those zeroes (0.50, 0.5)." Case02(string) : "Case 02" : : "Values to store. Because these are strings, numbers with extra zeroes are different than the same numeric value without those zeroes (0.50, 0.5)." Case03(string) : "Case 03" : : "Values to store. Because these are strings, numbers with extra zeroes are different than the same numeric value without those zeroes (0.50, 0.5)." Case04(string) : "Case 04" : : "Values to store. Because these are strings, numbers with extra zeroes are different than the same numeric value without those zeroes (0.50, 0.5)." Case05(string) : "Case 05" : : "Values to store. Because these are strings, numbers with extra zeroes are different than the same numeric value without those zeroes (0.50, 0.5)." Case06(string) : "Case 06" : : "Values to store. Because these are strings, numbers with extra zeroes are different than the same numeric value without those zeroes (0.50, 0.5)." Case07(string) : "Case 07" : : "Values to store. Because these are strings, numbers with extra zeroes are different than the same numeric value without those zeroes (0.50, 0.5)." Case08(string) : "Case 08" : : "Values to store. Because these are strings, numbers with extra zeroes are different than the same numeric value without those zeroes (0.50, 0.5)." Case09(string) : "Case 09" : : "Values to store. Because these are strings, numbers with extra zeroes are different than the same numeric value without those zeroes (0.50, 0.5)." Case10(string) : "Case 10" : : "Values to store. Because these are strings, numbers with extra zeroes are different than the same numeric value without those zeroes (0.50, 0.5)." Case11(string) : "Case 11" : : "Values to store. Because these are strings, numbers with extra zeroes are different than the same numeric value without those zeroes (0.50, 0.5)." Case12(string) : "Case 12" : : "Values to store. Because these are strings, numbers with extra zeroes are different than the same numeric value without those zeroes (0.50, 0.5)." Case13(string) : "Case 13" : : "Values to store. Because these are strings, numbers with extra zeroes are different than the same numeric value without those zeroes (0.50, 0.5)." Case14(string) : "Case 14" : : "Values to store. Because these are strings, numbers with extra zeroes are different than the same numeric value without those zeroes (0.50, 0.5)." Case15(string) : "Case 15" : : "Values to store. Because these are strings, numbers with extra zeroes are different than the same numeric value without those zeroes (0.50, 0.5)." Case16(string) : "Case 16" : : "Values to store. Because these are strings, numbers with extra zeroes are different than the same numeric value without those zeroes (0.50, 0.5)." input InValue(string) : "Makes the entity fire an output if the parameter matches any of the Case values." input PickRandom(void) : "Makes the entity fire a random OnCase output if that output is being used in the map." input PickRandomShuffle(void) : "Makes the entity fire a random OnCase output if that output is being used in the map. This input will not fire outputs it previously fired, until all of them have, which will make the shuffle start over." output OnCase01(void) : "Fired when the 'in' value matches the string stored in Case 01." output OnCase02(void) : "Fired when the 'in' value matches the string stored in Case 02." output OnCase03(void) : "Fired when the 'in' value matches the string stored in Case 03." output OnCase04(void) : "Fired when the 'in' value matches the string stored in Case 04." output OnCase05(void) : "Fired when the 'in' value matches the string stored in Case 05." output OnCase06(void) : "Fired when the 'in' value matches the string stored in Case 06." output OnCase07(void) : "Fired when the 'in' value matches the string stored in Case 07." output OnCase08(void) : "Fired when the 'in' value matches the string stored in Case 08." output OnCase09(void) : "Fired when the 'in' value matches the string stored in Case 09." output OnCase10(void) : "Fired when the 'in' value matches the string stored in Case 10." output OnCase11(void) : "Fired when the 'in' value matches the string stored in Case 11." output OnCase12(void) : "Fired when the 'in' value matches the string stored in Case 12." output OnCase13(void) : "Fired when the 'in' value matches the string stored in Case 13." output OnCase14(void) : "Fired when the 'in' value matches the string stored in Case 14." output OnCase15(void) : "Fired when the 'in' value matches the string stored in Case 15." output OnCase16(void) : "Fired when the 'in' value matches the string stored in Case 16." output OnDefault(string) : "Fired if the 'in' value did not match any Case value. Automatically puts the 'in' value as the input parameter, unless overridden by the mapper." ] @PointClass base(CBaseEntity) color(255 0 255) = logic_collision_pair : "It can be used to control if two specific entities consider each other to be solid." [ attach1(target_destination) : "Attachment 1" : : "Entity to target." attach2(target_destination) : "Attachment 2" : : "Entity to target." startdisabled(choices) : "Start with collisions disabled" : 1 : "Self-explanatory." = [ 0 : "No" 1 : "Yes" ] input EnableCollisions(void) : "Enables collisions between the two entities." input DisableCollisions(void) : "Disables collisions between the two entities." ] @PointClass base(CBaseEntity) iconsprite("editor/logic_compare") color(248 155 0) = logic_compare : "It compares two numbers to each other and fires outputs depending on their values." [ InitialValue(float) : "Initial value" : 0 : "Value #1." CompareValue(float) : "Compare value" : 0 : "Value #2." input SetValue(float) : "Sets Initial value." input SetCompareValue(float) : "Sets Compare value." input SetValueCompare(float) : "Sets Initial value, then compares it to Compare value and fires outputs." input Compare(void) : "Compares the values and fires outputs." output OnEqualTo(float) : "Fires if the values are equal. Automatically puts Initial value as the input parameter, unless overridden by the mapper." output OnNotEqualTo(float) : "Fires if the values are not equal. Automatically puts Initial value as the input parameter, unless overridden by the mapper." output OnGreaterThan(float) : "Fires if Initial value is greater than Compare value. Automatically puts Initial value as the input parameter, unless overridden by the mapper." output OnLessThan(float) : "Fires if Initial value is less than Compare value. Automatically puts Initial value as the input parameter, unless overridden by the mapper." ] @PointClass base(CBaseEntity) color(255 0 255) = logic_measure_movement : "It measures the position of an entity relative to another entity, then moves a third entity in a similar way, relative to a 4th entity. This can be used to make an entity move as if it's parented, but rotate on its own axes. Neither of the references can be the logic_measure_movement itself, or odd behavior will occur. Two logic_measure_movements can be set up to make two entities move each other equally, but it may look jittery." [ MeasureTarget(target_destination) : "Entity to Measure" : : "The entity which will have its movement measured." MeasureReference(target_destination) : "Measure Reference" : : "The entity that Entity to Measure will be measured relative to." TargetReference(target_destination) : "Movement Reference" : : "The entity that Entity to Move will move relative to when Entity to Measure moves. When this entity moves, Entity to Move will move as if it were parented to it." Target(target_destination) : "Entity to Move" : : "The entity that will move relative to Movement Reference in the same manner that Entity to Measure moved relative to Measure Reference." TargetScale(float) : "Movement scale" : 1 : "Divider for how far away Entity to Move is from Movement Reference. 0.5 will make the entity move double the amount that Entity to Measure does." MeasureType(choices) : "Measurement Type" : 0 : "If Entity to Measure is something with eyes (e.g. the player), use Eye position to check the direction the entity is looking in, instead of the actual Pitch Yaw Roll." = [ 0 : "Position" 1 : "Eye position" ] input SetMeasureTarget(target_destination) : "Sets Entity to Measure." input SetMeasureReference(target_destination) : "Sets Measure Reference." input SetTargetReference(target_destination) : "Sets Movement Reference." input SetTarget(target_destination) : "Sets Entity to Move." input SetTargetScale(float) : "Sets Movement scale." ] @PointClass base(CBaseEntity) iconsprite("editor/logic_multicompare") color(248 155 0) = logic_multicompare : "It checks for equality between every member of a list of integers. Essentially logic_branch_listener but comparing integers instead of booleans." [ ShouldComparetoValue(choices) : "Should use Integer Value" : 0 : "If Yes, the value in Integer Value will be added to the list. If not used, every value given might be equal, but not specifically a value the mapper wants." = [ 0 : "No" 1 : "Yes" ] IntegerValue(integer) : "Integer Value (optional)" : 0 : "A value to add to the list." input InputValue(integer) : "Adds a value to the list of ones being compared." input CompareValues(void) : "Compares the values and fires an output." output OnEqual(void) : "Fires if all the values are equal." output OnNotEqual(void) : "Fires if any values are not equal." ] @PointClass base(CBaseEntity,EnableDisable,Toggle)iconsprite("editor/logic_relay") color(248 155 0) = logic_relay : "It fires outputs when told to, acting as a sort of middleman for IO. It's often used to organize map logic. It can be told to enable and disable itself, and cancel delayed inputs. The entity will prevent itself from firing while any delayed inputs are waiting to go through, meaning it has an optional cooldown on how often it can fire." [ spawnflags(flags) = [ 1 : "Only trigger once - Makes the entity remove itself after firing OnTrigger or OnSpawn." : 0 2 : "Allow fast retrigger - Allow refire even if delayed inputs have not fully sent." : 0 ] input Trigger(void) : "Makes OnTrigger fire." input CancelPending(void) : "Cancels any delayed inputs from this entity which haven't gone through." input EnableRefire(void) : "Tells the entity it can refire even if it has delayed inputs waiting to fire. Delayed inputs will not be cancelled. The entity automatically sends this to itself once all its delayed inputs have gone through." output OnTrigger(void) : "Fires when Trigger is sent." output OnSpawn(void) : "Fires when the entity spawns (map start or via point_template)." ] @PointClass base(CBaseEntity,EnableDisable,Toggle) iconsprite("editor/logic_timer") color(248 155 0) = logic_timer : "It fires an output at regular or random intervals. Tip: Having a small amount of randomness in the timing of events can help break monotony." [ spawnflags(flags) = [ 1 : "Oscillator - Instead of OnTimer, fires OnTimerHigh or OnTimerLow every interval, alternating." : 0 ] RefireTime(float) : "Refire Interval" : 1 : "How many seconds there should be between output fires. Minimum is 0.01." UseRandomTime(choices) : "Use Random Time" : 0 : "If set, the interval will be a random amount between the keyvalues below." = [ 0 : "No" 1 : "Yes" ] LowerRandomBound(float) : "Minimum Random Interval" : 1 : "If using a random time, the minimum amount of time between timer intervals." UpperRandomBound(float) : "Maximum Random Interval" : 2 : "If using a random time, the maximum amount of time between timer intervals." input RefireTime(float) : "Sets Refire Interval, then resets the timer." input ResetTimer(void) : "Resets the timer." input FireTimer(void) : "Makes the appropriate output fire, then resets the timer." input LowerRandomBound(float) : "Sets Minimum Random Interval." input UpperRandomBound(float) : "Sets Maximum Random Interval." input AddToTimer(float) : "Adds extra time until the next output fire, if the entity is enabled. Does not change any keyvalues." input SubtractFromTimer(float) : "Subtracts time from the next output fire, if the entity is enabled. If the subtraction is so large that it would cause the output to fire in the past, it will fire immediately. Does not change any keyvalues." output OnTimer(void) : "Fires every interval, unless Oscillator is checked." output OnTimerHigh(void) : "Fires every other interval if Oscillator is checked." output OnTimerLow(void) : "Fires every other interval if Oscillator is checked." ] @PointClass base(CBaseEntity,Parent) color(255 203 11) = material_modify_control : "It modifies a VMT parameter in real time. The material must have the MaterialModify or MaterialModifyAnimated proxy. MaterialModifyAnimated can take the same parameters as AnimatedTexture. BUG: The entity will not work unless it's parented to an object that's in the PVS, on-screen, and has at least one face facing towards the viewer that's textured with the Material to Modify. The entity does not limit itself to only controlling textures on its parent." [ materialName(material) : "Material to modify" : : "The material that will get modified. By default, the entity will edit the parameter for *every* surface in the map that uses the targeted material. To control which specific surfaces get modified, make them this entity's Parent." materialVar(string) : "Material variable to modify" : : "Which parameter to modify. E.g. $color." input SetMaterialVar(string) : "Changes the actual value of the Material variable." input SetMaterialVarToCurrentTime(void) : "Sets the Material variable to the current server time. Valve probably created this input for debugging purposes." input StartAnimSequence(string) : "Makes the material go through any frames that it has. Format: " input StartFloatLerp(string) : "Makes the Material variable transition from one value to another. Format: " ] @PointClass base(CBaseEntity) color(248 155 0) = math_colorblend : "Given two colors, it outputs a medium color which is closer to one or the other based on the value of an input's parameter. Also accepts alpha values." [ spawnflags(flags) = [ 1 : "Ignore out of range input values (Otherwise, OutColor passes the min/max color)." : 0 ] inmin(float) : "Minimum Valid Input Value" : 1 : "Lower limit for values received by InValue." inmax(float) : "Maximum Valid Input Value" : 10 : "Upper limit for values received by InValue." colormin(color255) : "Output RGB color when input is min" : "0 0 0" : "What color will be put out when the value from InValue is at Minimum Valid Input Value." colormax(color255) : "Output RGB color when input is max" : "255 255 255" : "What color will be put out when the value from InValue is at Maximum Valid Input Value." input InValue(float) : "When given a value between Minimum Valid Input Value and Maximum Valid Input Value, this input will fire OutColor with a color between Output RGB color when input is min and Output RGB color when input is max." output OutColor(color255) : "Fires when InValue is sent. Automatically puts a color as the input parameter, unless overridden by the mapper." ] @PointClass base(CBaseEntity) iconsprite("editor/math_counter") color(248 155 0) = math_counter : "It stores a number value which can be manipulated in various ways." [ startvalue(float) : "Initial Value" : 1 : "Starting value for the counter." min(float) : "Minimum Legal Value" : 1 : "Minimum legal value for the counter. If both the minimum and maximum values are set to 0, they will be ignored." max(float) : "Maximum Legal Value" : 10 : "Maximum legal value for the counter." StartDisabled(choices) : "Start Disabled" : 0 : "Stay inactive until Enabled. When disabled, the stored value will not be changeable. GetValue will still work." = [ 0 : "No" 1 : "Yes" ] input Add(float) : "Adds the parameter value onto the stored number." input Subtract(float) : "Subtracts the parameter value from the stored number." input Multiply(float) : "Multiplies the stored number by the parameter value." input Divide(float) : "Divides the stored number by the parameter value." input SetValue(float) : "Sets the stored number." input SetValueNoFire(float) : "Sets the stored number without firing any outputs." input SetHitMin(float) : "Sets Minimum Legal Value. OnHitMin will fire if appropriate." input SetHitMax(float) : "Sets Maximum Legal Value. OnHitMax will fire if appropriate." input GetValue(void) : "Fires OnGetValue." input Enable(void) : "Makes the entity active." input Disable(void) : "Makes the entity inactive." output OutValue(float) : "Fires whenever the stored number changes, except when caused by SetValueNoFire. Automatically puts the stored number as the input parameter, unless overridden by the mapper." output OnHitMin(void) : "Fires when the stored number reaches Minimum Legal Value." output OnHitMax(void) : "Fires when the stored number reaches Maximum Legal Value." output OnGetValue(float) : "Fires when GetValue is sent. Automatically puts the stored number as the input parameter, unless overridden by the mapper." ] @PointClass base(CBaseEntity) color(248 155 0) = math_remap : "Given two boundaries, it translates an input value to what its value would be relative to two other boundaries." [ spawnflags(flags) = [ 1 : "Ignore out of range input values - Completely ignore inputs outside the min/max range." : 0 2 : "Clamp output range - If input is outside min/max output the min/max value instead of going outside it." : 0 ] in1(float) : "Minimum Valid Input Value" : 2 : "Lower limit for values received by InValue." in2(float) : "Maximum Valid Input Value" : 4 : "Upper limit for values received by InValue." out1(float) : "Output Value When Input Is Min" : 20 : "Lower limit for values passed from OutValue." out2(float) : "Output Value When Input Is Max" : 40 : "Upper limit for values passed from OutValue." input InValue(float) : "When given a value between Minimum Valid Input Value and Maximum Valid Input Value, this input will fire OutValue with a number between Output Value When Input Is Min and Output Value When Input Is Max." input Enable(void) : "Makes the entity active." input Disable(void) : "Makes the entity inactive." output OutValue(float) : "Fires when InValue is sent. Automatically puts a number as the input parameter, unless overridden by the mapper." ] @SolidClass base(CRotButton,VisibleBrush,Origin) = momentary_rot_button : "It's a brush that continues to rotate as the player holds down +use." [ spawnflags(flags) = [ 1 : "Not Solid" : 0 32 : "Toggle (Disable Auto Return) - Prevents the entity from automatically returning when left alone." : 0 1024 : "Use Activates - Allows the player to activate the entity. (Otherwise, it will only move by inputs.)" : 0 8192 : "Jiggle when used while locked" : 1 ] returnspeed(float) : "Auto-return speed" : 20 : "If Toggle is not checked, how fast the wheel rotates back to its original angle when left alone." startposition(float) : "Start Position" : 0 : "A number between 0.0 and 1.0 which represents the wheel's position when it spawns. 0 means its un-rotated position, 1 means the fully rotated position." startdirection(choices) : "Start Direction" : -1 : "Which way the wheel turns." = [ -1 : "Forward" 1 : "Backward" ] solidbsp(choices) : "Solid BSP" : 0 : "How the engine processes this entity's solidity. Try changing this to BSP if players move oddly while touching the brush." = [ 0 : "VPhysics" 1 : "BSP (QPhysics)" ] input SetPosition(float) : "Rotates the wheel to a position. Parameter is a number between 0.0 (un-rotated position) and 1.0 (rotated position)." input SetPositionImmediately(float) : "Teleports the wheel to a position. Parameter is a number between 0.0 (un-rotated position) and 1.0 (rotated position)." input _DisableUpdateTarget(void) : "Makes Position quit firing." input _EnableUpdateTarget(void) : "Makes Position fire again." input Enable(void) : "Allows the player to activate the entity. (Otherwise, it will only move by inputs.) Functions independently from Use Activates. The entity sends this input to itself when jiggling." input Disable(void) : "Disallows the player from activating the entity." output Position(float) : "Fires when the position of the wheel changes. Automatically puts the wheel's position from 0.0 to 1.0 as the input parameter, unless overridden by the mapper." output OnUnpressed(void) : "Fires when the player quits holding their use key." output OnFullyClosed(void) : "Fires when the entity reaches its fully rotated position." output OnFullyOpen(void) : "Fires when the entity reaches its un-rotated position." output OnReachedPosition(void) : "Fires when the entity reaches a position specified by SetPosition or either of its 'end' positions." ] @KeyFrameClass base(CRopeKeyframe) studio("models/editor/axis_helper_thick.mdl") animator() keyframe() color(255 203 11) = move_rope : "Defines one end of a rope. The properties set in a rope entity will only affect the rope drawn between that entity and the one specified in that entity's Next KeyFrame field. BUG: The rope will mysteriously vanish if it has a parent when a round begins. Use Shift+Drag to create ropes quickly. Identical to keyframe_rope." [ PositionInterpolator(choices) readonly : "Position Interpolator" : 2 : "How the rope curve is done. Only type 2 (Rope) is fully supported." = [ 0 : "Linear" 1 : "Catmull-Rom Spline" 2 : "Rope" ] MoveSpeed(integer) readonly : "Speed (units per second)" : 1 : "Does not actually exist. Needs to be above 0 to show the rope preview in Hammer." ] @PointClass base(CBaseEntity,Angles,Parent) line(255 255 255, targetname, target) size(16 16 16) color(248 155 0) = path_corner : "When multiple of these are put together, they define a path that some entities can follow. TIP: If the targetname and Next Stop Target keyvalues are set, the entity can be dragged while holding Shift to create the next node in the path while automatically updating those two keyvalues." [ spawnflags(flags) = [ 1 : "Wait for retrigger - TODO: No effect?" : 0 2 : "Teleport to this path track - func_train will teleport to this spot instead of normal movement." : 0 ] target(target_destination) : "Next stop target" : : "The next path_corner in the path." wait(float) : "Wait here (secs)" : : "How long the path follower should wait here before moving on. This is only acknowledged by func_guntarget, point_viewcontrol, and func_train." speed(float) : "New Train Speed" : 0 : "If the path follower can have a variable speed, when it meets this entity, its speed will be set to this as long as it's not more than the entity's maximum speed if it has one." input SetNextPathCorner(target_destination) : "Sets Next stop target." input InPass(void) : "Fires OnPass. Normally the path follower entity sends this to the path node when it reaches that point." output OnPass(void) : "Fires when an entity passes this node." ] @PointClass base(CBaseEntity,Angles,Parent) cylinder(255 255 255, targetname, target, radius, targetname, targetname, radius) size(16 16 16) color(248 155 0) = path_track : "When multiple of these are put together, they define a path that some entities can follow. TIP: If the targetname and Next Stop Target keyvalues are set, the entity can be dragged while holding Shift to create the next node in the path while automatically updating those two keyvalues." [ spawnflags(flags) = [ 1 : "Disabled - Starts disabled. Trains stop at the last enabled node." : 0 4 : "Branch Reverse - Trains will use Branch Paths when in reverse." : 0 8 : "Disable train - When train passes over this entity, its No User Control flag gets set." : 0 16 : "Teleport to this path track - Train will teleport to this spot instead of normal movement." : 0 32768 : "Start on Branch - Sends trains to Branch Path by default." : 0 ] target(target_destination) : "Next Stop Target" : : "The next path_track in the path. TIP: Some but not all path followers will acknowledge when this keyvalue is changed with AddOutput." altpath(target_destination) : "Branch Path" : : "An alternative path_track to be the next node in the path. Useful for making branching paths. Must be enabled with EnableAlternatePath. TIP: Some but not all path followers will acknowledge when this keyvalue is changed with AddOutput." speed(float) : "New Train Speed" : 0 : "If the path follower can have a variable speed, when it meets this entity, its speed will be set to this as long as it's not more than the entity's maximum speed if it has one." orientationtype(choices) : "Orientation Type" : 1 : "The way that the path follower faces as it moves through this path track." = [ 0 : "No change" 1 : "Face direction of motion" 2 : "Face this path_track's angles" ] input EnableAlternatePath(void) : "Makes the entity send path followers to Branch Path." input DisableAlternatePath(void) : "Makes the entity send path followers through the regular path again." input ToggleAlternatePath(void) : "Switches the entity between the two path nodes." input EnablePath(void) : "Enables this path node." input DisablePath(void) : "Disables this path node." input TogglePath(void) : "Switches the path node between its enabled and disabled states." input InPass(void) : "Fires OnPass. Normally the path follower entity sends this to the path node when it reaches that point." input InTeleport(void) : "Fires OnTeleport. Normally the path follower entity sends this to the path node when it teleports to it." output OnPass(void) : "Fires when an entity passes this node." output OnTeleport(void) : "Fires when an entity teleports to this node." ] @PointClass base(CPhysConstraint) iconsprite("editor/phys_ballsocket") color(255 0 255) = phys_ballsocket : "It makes two objects rotate around the entity's origin, but otherwise move as they normally would." [ ] @PointClass base(CPhysConstraint) color(255 0 255) = phys_constraint : "It forces two objects to keep the same position and angles relative to each other, similar to parenting, but more as if the objects were welded together and exist as one object." [ ] @PointClass base(CBaseEntity) color(255 0 255) = phys_constraintsystem : "It keeps physics constraints from fighting with each other when they're part of the same group of entities. If a physics object affected by multiple constraints appears to jiggle violently, use this entity as the Constraint System Manager of the constraints." [ additionaliterations(integer) : "Additional System Iterations" : : "Tells the physics engine to do additional calculating for the objects affected by this constraint system. This will result in better physics." ] @PointClass base(CBaseEntity) color(255 0 255) = phys_convert : "When told to, it makes entities physically simulated. It turns brush entities into simple_physics_brush'es and model entities into simple_physics_prop's. Some entities will break. BUG: Flags only work when using a Model Swap Entity. BUG: prop_dynamic will not convert unless it has a Parent." [ spawnflags(flags) = [ 1 : "Convert Asleep - Tells the entity to not move until something touches it." : 0 2 : "Convert As Debris - Makes the entity not collide with most other objects." : 0 ] target(target_destination) : "Entity to convert" : : "Name of the entities that will be converted. BUG: When multiple entities are specified here while using a Model Swap Entity, only one entity will be converted, because all of the converted entities would share the same data for decals and dynamic lighting." swapmodel(target_destination) : "Model Swap Entity" : : "Name of an optional third entity which Entity to convert will switch to the model of." massoverride(float) : "Mass Override" : : "Sets the mass of the converted object to this amount in kg." input ConvertTarget(void) : "Makes Entity to convert be physically simulated." output OnConvert(void) : "Fires when ConvertTarget is sent." ] @PointClass base(CPhysConstraint) color(255 0 255) = phys_hinge : "It forces one or two entities to rotate only on a single axis, but otherwise move as normal." [ spawnflags(flags) = [ 8 : "Change mass to keep stable attachment to world - TODO: Clarify" : 0 ] hingefriction(float) : "Friction" : 0 : "How stiff the hinge is." hingeaxis(vecline) : "Hinge Axis" : : "The 'other' end of the rotation axis." SystemLoadScale(float) : "Load Scale" : 1 : "'Scale of the load connected to this hinge (1=just the objects directly connected)' TODO: Clarify" input SetAngularVelocity(float) : "Makes the hinge begin rotating this many degrees per second." input SetHingeFriction(float) : "Sets Friction." ] @PointClass base(CBaseEntity,Parent,Angles) color(255 0 255) = phys_keepupright : "It tries to rotate an object so that it sticks to this entity's Pitch Yaw Roll." [ spawnflags(flags) = [ 1 : "Start inactive" : 0 ] attach1(target_destination) : "Target Entity" : : "Entity to align." angularlimit(float) : "Angular Limit" : 15 : "How much force this entity can put on the physics object. How much is needed to overcome gravity varies by object." input TurnOn(void) : "Enables the entity." input TurnOff(void) : "Disabled the entity." input SetAngularLimit(float) : "Sets Angular Limit." ] @PointClass base(CPhysConstraint) studio("models/editor/axis_helper.mdl") color(255 0 255) = phys_lengthconstraint : "It controls the distance two entities can be from each other. If one entity gets too close or too far, the other entity will be pushed or pulled. Note: The maximum distance is not determined by the distance between the entities in Hammer; it's between this entity's own origin and Attached object 2 point." [ spawnflags(flags) = [ 2 : "Keep Rigid - Makes the minimum length the same as the maximum length." : 0 ] addlength(float) : "Additional Length" : 0 : "Add or subtract this much from the maximum length." minlength(float) : "Minimum Length" : 0 : "Minimum distance the entities can be from each other." attachpoint(vecline) : "Attached object 2 point" : : "The point that Entity 2 is attached by. (For Entity 1, that point is this entity's origin.)" ] @PointClass base(Model,CBaseAnimating,Toggle) color(255 0 255) sphere(fademindist) sphere(fademaxdist) = phys_magnet : "It acts like a magnet. Objects with the material types M and P (metal and computer, https://developer.valvesoftware.com/wiki/Material_Types) will get attached to the magnet if they touch it. BUG: The magnet does not check what's touching it when the TurnOn input is sent, so if it's touching something as it's turned on, that object will not stick until a new touchlink is created." [ spawnflags(flags) = [ 1 : "Start Asleep - Magnet will not move until a force acts on it." : 0 2 : "Motion Disabled - Magnet never moves." : 0 4 : "Suck On Touch - Tries to pull objects in. Buggy." : 0 8 : "Allow Attached Rotation - Allows attached objects to rotate freely." : 0 16 : "Coast jeep pickup hack - Only pick up classname prop_vehicle_jeep, break or delete anything else." : 0 ] forcelimit(float) : "Force Limit to Break (lbs)" : : "The amount of force that must be applied to make an object escape the magnet's pull." torquelimit(float) : "Torque Limit to Break (lbs * distance)" : : "The amount of torque that must be applied to make an object escape the magnet's pull." massscale(float) : "Mass Scale" : : "Multiplier for the magnet's mass." overridescript(string) : "Override Parameters" : : "A list of physics keyvalues that are usually embedded in the model. (https://developer.valvesoftware.com/wiki/Prop_data) Format is key,value,key,value,..." maxobjects(integer) : "Maximum Attached Objects" : : "The maximum number of physics objects that can be stuck to the magnet at once. 0 = no limit." input TurnOn(void) : "Turns the magnet on." input TurnOff(void) : "Turns the magnet off (detaches any objects)." output OnAttach(void) : "Fires when something gets attached to the magnet." output OnDetach(void) : "Fires when something breaks free from the magnet naturally (not due to the magnet turning off)." ] @PointClass base(CBaseEntity,Parent) color(255 0 255) = phys_motor : "It tries to spin an object with a certain amount of force. The object being spun will still be affected by other forces, like gravity." [ spawnflags(flags) = [ 1 : "Start On" : 1 2 : "No world collision - If Hinge Object was set, make the Attached Object not collide with world brushes." : 0 4 : "Hinge Object - Makes the object 'attached' to the motor. If not set, it will move around freely." : 0 ] attach1(target_destination) : "Attached Object" : : "Object to apply force to." axis(vecline) : "Rotation Axis" : : "Defines one end of the axis to rotate the object on. (Other is this entity's origin.)" speed(float) : "Rotation Speed" : 0 : "How much force to apply." inertiafactor(float) : "System Interia Scale" : 1 : "The motor's acceleration. Larger values will make the object speed up or slow down to the desired speed faster, and make it turn around sooner if it begins rotating the wrong way. Big values can cause jiggling." spinup(float) : "Spin up time" : 1 : "If set, Rotation Speed gets divided by this amount. Might be useful if the motor speed is changing in some dynamic way, such as by the position of a momentary_rot_button." addangaccel(float) : "Additional Speed" : 0 : "An amount to add to Rotation Speed after it's divided by Spin up time. Might be useful if the motor speed is changing in some dynamic way, such as by the position of a momentary_rot_button." input SetSpeed(float) : "Sets Rotation Speed." input TurnOn(void) : "Turns the motor on." input TurnOff(void) : "Turns the motor off." ] @PointClass base(CPhysConstraint) studio("models/editor/axis_helper.mdl") color(255 0 255) = phys_pulleyconstraint : "It forces the sum distances of two sets of points to always be the same. Whenever one distance changes, the other distance will increase or decrease. The first distance is the one between this entity's origin and Entity 1. The second distance is between Pulley Position 2 and Entity 2." [ position2(vecline) : "Pulley Position 2" : : "The point that Entity 2 is suspended from." addlength(float) : "Additional Length" : 0 : "Add or subtract this amount from the pulley's total length. (Default is the distance from the entity's origin to Entity 1 plus distance from Pulley Position 2 to Entity 2." gearratio(float) : "Pulley Gear Ratio" : 1 : "Multiplier for how much moving Entity 2 affects Entity 1. Can cause erratic movement once gravity is taken into account." ] @PointClass base(CPhysConstraint) studio("models/editor/axis_helper.mdl") color(255 0 255) = phys_ragdollconstraint : "It makes two objects rotate around the entity's origin, but otherwise move as they normally would. The extents to which the objects rotate can also be set." [ xmin(float) : "X axis min limit" : -45 : "Minimum extent that the objects can rotate on the X axis. -180 min and 180 max = no constraint on this axis." ymin(float) : "Y axis min limit" : -45 : "Minimum extent that the objects can rotate on the Y axis. -180 min and 180 max = no constraint on this axis." zmin(float) : "Z axis min limit" : -45 : "Minimum extent that the objects can rotate on the Z axis. -180 min and 180 max = no constraint on this axis." xmax(float) : "X axis max limit" : 45 : "Maximum extent that the objects can rotate on the X axis." ymax(float) : "Y axis max limit" : 45 : "Maximum extent that the objects can rotate on the Y axis." zmax(float) : "Z axis max limit" : 45 : "Maximum extent that the objects can rotate on the Z axis." xfriction(float) : "X axis friction" : 0 : "Friction to apply when moving on the X axis." yfriction(float) : "Y axis friction" : 0 : "Friction to apply when moving on the Y axis." zfriction(float) : "Z axis friction" : 0 : "Friction to apply when moving on the Z axis." ] @PointClass base(CBaseEntity,Parent,EnableDisable) iconsprite("editor/info_target") sphere(radius) color(255 0 255) = phys_ragdollmagnet : "It applies force to ragdolls left by dead players and hostages at the moment they die. Ragdolls get pushed towards or away from the entity." [ spawnflags(flags) = [ 2 : "Bar Magnet (use axis helper) - Push to nearest point between origin and Bar Magnet Axis." : 0 ] radius(float) : "Effective Radius" : 512 : "Radius in which ragdolls are affected around this entity's origin/the line." force(float) : "Force" : 5000 : "Force to apply, in kilograms per unit per second. Negative values push away instead of to the entity. A 10kg ragdoll will get launched farther than a 100kg one. Tip: If the entity appears to not work, you may simply need to set this to a very high value." target(target_destination) : "Entity to affect" : : "If specified, only affect entities with this targetname." axis(vecline) : "Bar Magnet Axis" : : "Other end of the bar. See Bar Magnet." ] @PointClass base(CPhysConstraint) studio("models/editor/axis_helper.mdl") color(255 0 255) = phys_slideconstraint : "It locks the movement of one or two entities to a single axis." [ spawnflags(flags) = [ 2 : "Limit Endpoints - Limit entity movement to the endpoints defined in Hammer." : 0 ] slidefriction(float) : "Friction" : 0 : "How much friction is present in the sliding mechanism. Extremely high friction values will not prevent the object from budging, but will return it to its original position." slideaxis(vecline) : "Sliding Axis" : : "The 'other' end of the axis to slide on." SystemLoadScale(float) : "Load Scale" : 1 : "'Scale of the load connected to this constraint (1=just the objects directly connected)' TODO: Clarify" input SetVelocity(float) : "Pushes the object(s) in the constraint with this much force." ] @PointClass base(CBaseEntity,Parent) color(255 0 255) = phys_spring : "It acts as a spring, connecting two objects together. The entity should be placed where you want one end to be, and Spring Axis should be placed at the other." [ spawnflags(flags) = [ 1 : "Force only on stretch - Spring will never try to expand itself in order to reach Spring Length." : 0 ] attach1(target_destination) : "Entity 1" : : "First entity to attach." attach2(target_destination) : "Entity 2" : : "Second entity to attach. Leave blank to attach Entity 1 to the world." springaxis(vecline) : "Spring Axis" : : "Other end of the spring. (The first end is this entity's origin.)" length(float) : "Spring Length" : : "How long the spring should normally be, not accounting for forces such as gravity and friction. If not specified, the length will simply be the distance from the origin to Spring Axis." constant(float) : "Spring Constant" : : "How much force the spring will use to shrink or grow to reach the Spring Length." damping(float) : "Damping Constant" : : "The spring's inverse elasticity; larger numbers will cause the spring to be less bouncy." relativedamping(float) : "Relative Damping Constant" : : "How much to slow the object down, in all directions, when the spring is trying to expand or contract. Does not affect rotation. Increasing this may help reduce jiggling." input SetSpringConstant(float) : "Sets Spring Constant." input SetSpringLength(float) : "Sets Spring Length." input SetSpringDamping(float) : "Sets Damping Constant." ] @PointClass base(CPhysForce,Angles,Parent) color(255 0 255) = phys_thruster : "It pushes or spins an object." [ spawnflags(flags) = [ 2 : "Apply Force - Applies linear (moving in a line) force." : 1 4 : "Apply Torque - Applies rotational force." : 0 8 : "Orient Locally - The direction of thruster changes as the angles of the Attached Object change." : 1 16 : "Ignore Mass" : 0 32 : "Ignore Pos - Puts the thrust at the object center to prevent spinning" : 0 ] ] @PointClass base(CPhysForce) color(255 0 255) = phys_torque : "Spins an object. phys_motor and phys_thruster give the same function with more options." [ axis(vecline) : "Rotation Axis" : : "Axis to rotate the object around." ] @PointClass base(CBaseCombatCharacter) sphere(expradius) studioprop() color(255 0 255) sphere(fademindist) sphere(fademaxdist) = physics_cannister : "It's a regular physics object that acts like a gas canister. When hurt, the cannister will fly off cartoonishly. If it takes enough damage, it will explode. The model should have a 'nozzle' attachment point, which is where gas will escape and thrust will be produced from." [ spawnflags(flags) = [ 1 : "Start Asleep - Canister will not move until a force acts upon it." : 0 ] model(studio) : "World Model" : "models/props_c17/canister01a.mdl" : "A path to a .mdl." health(integer) : "Health" : 200 : "How much damage the canister can take before exploding." expdamage(float) : "Explosion Damage" : 200 : "Maximum damage when exploding." expradius(float) : "Explosion Radius" : 250 : "Maximum range of explosion." fuel(float) : "Fuel Seconds" : 12 : "How long to fly around for." thrust(float) : "Thrust" : 3000 : "How much force to fly around with." gassound(sound) : "Thruster Sound" : "ambient/objects/cannister_loop.wav" : "The sound played when the gas is escaping from the canister." rendercolor(color255) : "Smoke Color" : "255 255 255" : "Color of gas." renderamt(integer) : "Smoke Alpha" : 127 : "Opacity of gas." input Activate(void) : "Makes the canister start flying." input Deactivate(void) : "Makes the canister stop flying." input Explode(void) : "Makes the canister explode." input Wake(void) : "Wakes the object if it was sleeping." output OnActivate(void) : "Fires whenever the canister is activated." output OnAwakened(void) : "Fires the first time that the entity moves, if Start Asleep was set." ] @PointClass base(CBaseEntity) color(0 255 255) = player_speedmod : "It changes the player's velocity (including falling speed) and can disable various things." [ spawnflags(flags) = [ 1 : "Suppress weapons - Hides and disables weapons, stops working when weapons are switched" : 0 2 : "Suppress HUD (only hides part of HUD, disables weapon switching and sniper scope graphic)" : 0 4 : "Suppress jump (view still shifts up for a moment)" : 0 8 : "Suppress duck" : 0 16 : "Suppress +use" : 0 64 : "Suppress attack (no bullet, still makes sound and visuals, viewmodels may do draw animation when attempting to fire)" : 0 ] input ModifySpeed(float) : "Multiplies the player velocity by this much and does the things specified in the flags. To set everything back to normal, send the input with the parameter 1. The !activator must be a player in order to work. Tip: Set the speed to .99 to only use the flags." ] @PointClass base(CBaseEntity) color(0 255 255) = player_weaponstrip : "It removes the weapons of a player. The activator is the targeted player." [ input Strip(void) : "Takes away the player's weapons." input StripWeaponsAndSuit(void) : "Takes away the player's weapons and armor+helmet." ] @PointClass base(CBaseEntity,EnableDisable,Toggle) color(248 155 0) = point_anglesensor : "It detects if an entity points toward another for a period of time." [ spawnflags(flags) = [ 1 : "Use target entity's angles (NOT position) - Checks if entities face the same direction." : 0 ] target(target_destination) : "Target Entity Name" : : "Name of the entity whose angles will be sensed." lookatname(target_destination) : "Look At Entity" : : "Entity to check if Target Entity is pointed towards." duration(float) : "Duration" : 1 : "How long Target Entity must look at Look At Entity to fire OnFacingLookat." tolerance(float) : "Tolerance" : 5 : "How many degrees off Target Entity can point at Look At Entity while still counting as looking at it. 0 means the target must point perfectly at the other entity. 180 means the direction can be anything." input Test(void) : "Immediately fires OnFacingLookat or OnNotFacingLookat depending on if the Target Entity is looking at Look At Entity within Tolerance." input SetTargetEntity(target_destination) : "Sets Target Entity." output FacingPercentage(float) : "Constantly fires. Automatically puts a value (closer to 1.0 when pointing at Look At Entity and closer to 0.0 when not) as the input parameter, unless overridden by the mapper. (Hits 0 when not within Tolerance.)" output TargetDir(vector) : "Fires every time the Target Entity changes its angle. Automatically puts the new angles as numbers from -1.0 to 1.0 as the input parameter, unless overridden by the mapper. This is not very useful, as there are practically zero inputs that take a vector." output OnFacingLookat(void) : "Fires when the Target Entity has looked at Look At Entity within Tolerance for Duration, or when it's looking at it when the entity is sent the Test input." output OnNotFacingLookat(void) : "Fires when the Target Entity is not looking at Look At Entity within Tolerance when the Test input is sent." ] @PointClass base(CBaseEntity) color(248 155 0) = point_angularvelocitysensor : "It detects how fast an entity is spinning (angular velocity). Cannot detect spinning speed of func_rotating." [ target(target_destination) : "Target Entity Name" : : "Name of the entity whose angular velocity will be sensed." threshold(float) : "Threshold Velocity" : 150 : "Speed to compare the Target Entity to, in degrees per second." fireinterval(float) : "Fire Interval" : 1 : "Angular velocity must cross the threshold for at least this long to fire outputs." axis(vecline) : "Axis" : : "If Use Axis Helper is set, the entity will have to spin around this imaginary axis." usehelper(choices) : "Use Axis Helper" : 1 : "If set, the entity will will have to spin around an arbitrary axis defined by Axis." = [ 0 : "No" 1 : "Yes" ] input Test(void) : "Instantly checks the angular velocity of the Target Entity and fires appropriate outputs." input TestWithInterval(void) : "Checks the angular velocity of the Target Entity while accounting for Fire Interval and fires appropriate outputs." output AngularVelocity(float) : "Fires every time Target Entity rotates. Automatically puts the new magnitude of the angular velocity as the input parameter, unless overridden by the mapper. BUG: Not exactly? Numbers are inconsistent when the object is revolving around something else, and said fluctuation isn't reflected in the other outputs." output OnGreaterThan(void) : "Fires when the target's angular velocity stays above Threshold Velocity for Fire Interval, if it was previously below." output OnLessThan(void) : "Fires when the target's angular velocity stays below Threshold Velocity for Fire Interval, if it was previously above." ] @PointClass base(CBaseEntity,Parent,Angles) studioprop("models/editor/camera.mdl") color(255 203 11) = point_camera : "func_monitors and info_camera_links use this entity to show a view of the map from another place. Only one point_camera can be rendered at any one time." [ spawnflags(flags) = [ 1 : "Start Off - Camera is not active immediately." : 0 ] FOV(float) : "FOV" : 90 : "How wide the camera's view is in degrees." UseScreenAspectRatio(choices) : "Screen Aspect Ratio" : 0 : "TODO: What is this?" = [ 0 : "No" 1 : "Yes" ] fogEnable(choices) : "Fog Enable" : 1 : "Enables fog in the camera view." = [ 0 : "No" 1 : "Yes" ] fogColor(color255) : "Fog Color" : "255 255 255" : "Color of the fog. It should match the skybox color to make it look good." fogStart(float) : "Fog Start" : 500 : "Distance from the camera at which fog will start to fade in." fogEnd(float) : "Fog End" : 2000 : "Distance from the camera at which the fog is at full density." fogMaxDensity(float) : "Fog Max Density [0..1]" : 1 : "How dense fog can be. 1.0 = full density (all pixels are the color of Fog Color beyond Fog End), 0.5 = half density." input ChangeFOV(string) : "Takes two numbers, first is what to change FOV to, and the second is how many seconds to spend shifting to the new FOV." input SetOnAndTurnOthersOff(void) : "Turns this camera on, and turns all other point_cameras off." input SetOn(void) : "Turns the camera on." input SetOff(void) : "Turns the camera off." ] @PointClass base(CBaseEntity) color(248 155 0) = point_clientcommand : "It executes a console command as if it were typed in from a certain player's console. (As opposed to the server's own console.) As with most other text fields in Hammer, using quote marks on this entity will cause a minor corruption of the VMF, because the file format relies on quote marks as syntax. If you accidentally do this, open the VMF in a text editor and delete the extra quote marks." [ input Command(string) : "Executes the string in the parameter. In multiplayer, the player to affect has to be the !activator." ] @PointClass base(CBaseEntity,Angles) studioprop("models/editor/camera.mdl") = point_devshot_camera : "It takes screenshots of a map every time the map is loaded. Used to create time lapses of a map's development. The game must have been loaded with -maxdevshots in the launch options/command line. The first camera is prone to taking screenshots of the welcome HUD. If this happens, make an extra camera to take a picture of that, then other ones should function fine." [ cameraname(string) : "Camera Name" : : "Required. A folder inside /screenshots/[mapname]/ to save screenshots to. Must not match the name of another camera, or they might both break!" FOV(integer) : "Camera FOV" : : "How wide the camera's view is in degrees." ] @PointClass base(CBaseEntity,Parent,Angles) = point_enable_motion_fixup : "If a motion-disabled prop has this entity parented to it, it will teleport to the position and angles of this entity when its motion becomes enabled." [ ] @PointClass base(CBaseEntity,Parent,Toggle) sphere(DamageRadius) color(0 255 255) = point_hurt : "It damages things inside a radius." [ damage(float) : "Damage" : 5 : "How much damage to do every time the Delay interval passes. This amount is factored into the force that objects will take when hit." DamageTarget(target_destination) : "Target Entity" : : "If specified, only this entity will take damage. Otherwise, all entities within the Radius will take damage. If used, the !activator is considered the attacker." DamageRadius(float) : "Radius" : 200 : "How close entities have to be to get damaged." DamageDelay(float) : "Delay" : 1 : "Time between each hit." damagetype(choices) : "Damage Type" : 0 : "What kind of damage to do." = [ 0 : "Generic" 1 : "Crush (physics)" 5 : "Sharp physics object (Crush+Slash)" 8 : "Burn" 32 : "Fall" 64 : "Blast (C4, HE)" 128 : "CS projectile collision (Club)" 256 : "Shock" 4098 : "CS bullets, knife (Bullet+Nevergib)" 16384 : "Drown" ] input Hurt(void) : "Forces damage immediately, regardless of Delay." input TurnOn(void) : "Makes the entity begin doing damage at timed intervals." input TurnOff(void) : "Makes the entity stop doing timed damage." ] @PointClass base(CBaseEntity,Parent) sphere(radius) = point_playermoveconstraint : "It contains the player to a sphere by reducing their walking speed. They may still escape the sphere by other means of movement such as jumping, or even simply using walking inertia to their advantage. If you want to use this to keep someone constrained with 100% certainty, you need to also include something else, such as clipping." [ radius(float) : "Radius" : 256 : "How far away the player can go." width(float) : "Constraint Width" : 75 : "Width of the constraint edge. This is the distance in which to start slowing players down as they approach the edge of the radius." speedfactor(float) : "Speed Factor" : "0.15" : "Multiplier applied to the player's walking speed as they approach the radius edge. Even when set to 0, the player can still escape through non-walking means such as jumping or being pushed." input TurnOn(void) : "Starts constraining the player. The entity automatically turns off if the player escapes the radius." input TurnOff(void) : "Stops constraining the player." output OnConstraintBroken(void) : "Fires when the player escapes the radius." ] @PointClass base(CBaseEntity) color(255 203 11) = point_posecontroller : "It manipulates a $poseparameter on a prop. Will interfere with other animations. Trying to modulate a non-existent pose param will cause a crash. TODO: Needs revisions after I find an instance of it being used." [ PropName(target_destination) : "Prop Name" : : "Name of the prop to control." PoseParameterName(string) : "Pose Parameter Name" : : "Name of the $poseparameter to control." PoseValue(float) : "Pose Parameter Value" : 0 : "Value to set the pose param to. 0 min, 1 max." InterpolationTime(float) : "Interpolation Time" : 0 : "How many seconds it takes the prop to shift to the pose specified by this entity. 0 min, 10 max." InterpolationWrap(choices) : "Should wrap from 0.0 to 1.0 when interpolating" : 0 : "TODO: ?" = [ 0 : "No" 1 : "Yes" ] CycleFrequency(float) : "Cycle Frequency" : 0 : "How many times to cycle through the parameter per second. -10 min, 10 max." FModulationType(choices) : "Frequency Modulation Type" : 0 : "How to cycle through the parameter." = [ 0 : "None" 1 : "Sine" 2 : "Square" 3 : "Triangle" 4 : "Sawtooth" 5 : "Noise" ] FModTimeOffset(float) : "Frequency Modulation Time Offset" : 0 : "Modulation time offset. -1 min, 1 max." FModRate(float) : "Frequency Modulation Rate" : 0 : "Modulation cycles per second. -10 min, 10 max. TODO: How is this different from Cycle Frequency." FModAmplitude(float) : "Frequency Modulation Amplitude" : 0 : "Scale of the modulation. 0 min, 10 max." input SetPoseParameterName(string) : "Sets Pose Parameter Name." input SetPoseValue(float) : "Sets Pose Parameter Value." input SetInterpolationTime(float) : "Sets Interpolation Time." input SetCycleFrequency(float) : "Sets Cycle Frequency." input SetFModType(integer) : "Sets Frequency Modulation Type." input SetFModTimeOffset(float) : "Sets Frequency Modulation Time Offset." input SetFModRate(float) : "Sets Frequency Modulation Rate." input SetFModAmplitude(float) : "Sets Frequency Modulation Amplitude." input RandomizeFMod(float) : "Sets Frequency Modulation Type to a random type, sets Frequency Modulation Time Offset to a random amount, and sets the Rate and Amplitude to a random amount which is more or less apparent depending on the value of the parameter (0 to 1)." input GetFMod(void) : "Prints modulation info to the console. (Requires developer 1 in the console before taking effect.)" ] @PointClass base(CBaseEntity,Parent,EnableDisable,Toggle,Angles) color(248 155 0) = point_proximity_sensor : "It records the distance between it and another entity." [ spawnflags(flags) = [ 1 : "Test the distance as measured along the axis specified by our direction (see FGD comment)" : 0 ]//Instead of outputting the distance from this entity to the target, the entity outputs the length of an intersecting line going in the direction of Pitch Yaw Roll that extends until it meets another imaginary line perpendicular to it which intersects the Target Entity. Useful for telling if something has crossed a certain latitude/longitude/altitude without making huge triggers. target(target_destination) : "Target Entity Name" : : "Entity to measure the distance from." input SetTargetEntity(target_destination) : "Sets Target Entity." output Distance(float) : "Fires continuously, unless disabled. Automatically puts the distance between this entity and the Target Entity as the input parameter, unless overridden by the mapper." ] @PointClass base(CBaseEntity,Parent) sphere(radius) sphere(inner_radius) color(255 0 255) = point_push : "It pushes things away from a point in space." [ spawnflags(flags) = [ 1 : "Test LOS before pushing - Entity makes sure it has a line of sight to objects before pushing them." : 0 2 : "Use angles for push direction - Entities get pushed in the direction of Pitch Yaw Roll instead of away from the entity." : 0 4 : "No falloff - Push force does not weaken as distance increases." : 0 8 : "Push players" : 1 16 : "Push physics objects" : 1 ] enabled(choices) : "Start Enabled" : 0 : "Start enabled?" = [ 0 : "No" 1 : "Yes" ] magnitude(float) : "Magnitude" : 100 : "How strongly to push away from the center. Negative values will pull objects in." radius(float) : "Radius" : 128 : "Radius to affect items in." inner_radius(float) : "Inner radius" : 0 : "When using Test LOS before pushing, the LOS must intersect a point in this sphere around the entity. If 0, it must intersect the entity origin." input Enable(void) : "Makes the entity active." input Disable(void) : "Makes the entity inactive." ] @PointClass base(CBaseEntity) color(248 155 0) = point_servercommand : "It executes a command from the server's console. As with most other text fields in Hammer, using quote marks on this entity will cause a minor corruption of the VMF, because the file format relies on quote marks as syntax. If you accidentally do this, open the VMF in a text editor and delete the extra quote marks." [ input Command(string) : "Executes the string in the parameter." ] @PointClass base(CBaseEntity,Parent,RenderColor,Angles) studio("models/editor/cone_helper.mdl") color(160 240 37) = point_spotlight : "It's a lighting effect that either shows a beam or a halo, depending on where the viewer is." [ spawnflags(flags) = [ 1 : "Start On" : 1 2 : "No Dynamic Light - Does not emit real-time lighting affecting the brightness of props and world geometry." : 1 ] IgnoreSolid(choices) : "Ignore Solid" : 0 : "If not set, the beam will automatically shorten itself upon hitting a solid surface to avoid going through it." = [ 0 : "No" 1 : "Yes" ] spotlightlength(float) : "Spotlight Length" : 200 : "Length of the spotlight beam and dynamic light." spotlightwidth(float) : "Spotlight Width" : 50 : "Width of the spotlight beam and dynamic light." input LightOn(void) : "Turns the light on." input LightOff(void) : "Turns the light off." output OnLightOn(void) : "Fires when the light turns on. Bug: Stops firing if the entity has or had a parent." output OnLightOff(void) : "Fires when the light turns off." ] @PointClass base(CBaseEntity) color(0 0 255) = point_surroundtest : "It detects what audio setup the player is using. Used on the map test_speakers." [ input FireCorrectOutput(void) : "Tells the entity to fire one of its outputs. If it detects a setup it doesn't recognize, no output will fire." output On2Speakers(void) : "Fires if player is using 2 speakers." output On4Speakers(void) : "Fires if player is using 4 speakers." output On51Speakers(void) : "Fires if player is using 5.1 speakers." ] @PointClass base(CBaseEntity,Parent,Angles) = point_teleport : "It teleports an entity to where this entity is." [ spawnflags(flags) = [ 1 : "Teleport Home - Teleports the entity to where it was when the point_teleport spawned." : 0 ] target(target_destination) : "Entity To Teleport" : : "A single entity to teleport. !activator is a valid target." input Teleport(void) : "Teleports the entity to where the point_teleport was when it spawned. The current position can be used by spawning another point_teleport." ] @PointClass base(CBaseEntity,Parent) color(248 155 0) = point_template : "It causes an entity or set of entities to spawn any number of times. If an entity in the template has some dependency on one also in the template (such as I/O connections or parenting), the names used by both will automatically change to unique ones when spawned to avoid potential conflicts between multiple instances of the template. The unique names will look like this: entname&0000 with the 0000 potentially being any number. Every spawned entity can be targeted with entname*. Also note that this name changing is not done to input parameters, and the numbers assigned are not always reliable and predictable between map loads. When activated, this entity will spawn the entities in the template at the same positions, relative to this entity, that they had when this entity was created. This will be their original positions if the point_template has not been moved." [ spawnflags(flags) = [ 1 : "Don't remove template entities - Keeps the original entities in the map." : 0 2 : "Preserve entity names (Don't do name fixup) - Don't edit targetnames to be unique." : 0 ] Template01(target_destination) : "Template 1" : : "Entities to spawn. Multiple entities can be specified in a single keyvalue by giving them identical names or by using wildcards (*). There doesn't seem to be a limit on how many entities can be spawned at once." Template02(target_destination) : "Template 2" : : "Entities to spawn. Multiple entities can be specified in a single keyvalue by giving them identical names or by using wildcards (*). There doesn't seem to be a limit on how many entities can be spawned at once." Template03(target_destination) : "Template 3" : : "Entities to spawn. Multiple entities can be specified in a single keyvalue by giving them identical names or by using wildcards (*). There doesn't seem to be a limit on how many entities can be spawned at once." Template04(target_destination) : "Template 4" : : "Entities to spawn. Multiple entities can be specified in a single keyvalue by giving them identical names or by using wildcards (*). There doesn't seem to be a limit on how many entities can be spawned at once." Template05(target_destination) : "Template 5" : : "Entities to spawn. Multiple entities can be specified in a single keyvalue by giving them identical names or by using wildcards (*). There doesn't seem to be a limit on how many entities can be spawned at once." Template06(target_destination) : "Template 6" : : "Entities to spawn. Multiple entities can be specified in a single keyvalue by giving them identical names or by using wildcards (*). There doesn't seem to be a limit on how many entities can be spawned at once." Template07(target_destination) : "Template 7" : : "Entities to spawn. Multiple entities can be specified in a single keyvalue by giving them identical names or by using wildcards (*). There doesn't seem to be a limit on how many entities can be spawned at once." Template08(target_destination) : "Template 8" : : "Entities to spawn. Multiple entities can be specified in a single keyvalue by giving them identical names or by using wildcards (*). There doesn't seem to be a limit on how many entities can be spawned at once." Template09(target_destination) : "Template 9" : : "Entities to spawn. Multiple entities can be specified in a single keyvalue by giving them identical names or by using wildcards (*). There doesn't seem to be a limit on how many entities can be spawned at once." Template10(target_destination) : "Template 10" : : "Entities to spawn. Multiple entities can be specified in a single keyvalue by giving them identical names or by using wildcards (*). There doesn't seem to be a limit on how many entities can be spawned at once." Template11(target_destination) : "Template 11" : : "Entities to spawn. Multiple entities can be specified in a single keyvalue by giving them identical names or by using wildcards (*). There doesn't seem to be a limit on how many entities can be spawned at once." Template12(target_destination) : "Template 12" : : "Entities to spawn. Multiple entities can be specified in a single keyvalue by giving them identical names or by using wildcards (*). There doesn't seem to be a limit on how many entities can be spawned at once." Template13(target_destination) : "Template 13" : : "Entities to spawn. Multiple entities can be specified in a single keyvalue by giving them identical names or by using wildcards (*). There doesn't seem to be a limit on how many entities can be spawned at once." Template14(target_destination) : "Template 14" : : "Entities to spawn. Multiple entities can be specified in a single keyvalue by giving them identical names or by using wildcards (*). There doesn't seem to be a limit on how many entities can be spawned at once." Template15(target_destination) : "Template 15" : : "Entities to spawn. Multiple entities can be specified in a single keyvalue by giving them identical names or by using wildcards (*). There doesn't seem to be a limit on how many entities can be spawned at once." Template16(target_destination) : "Template 16" : : "Entities to spawn. Multiple entities can be specified in a single keyvalue by giving them identical names or by using wildcards (*). There doesn't seem to be a limit on how many entities can be spawned at once." input ForceSpawn(void) : "Spawns all entities specified in the keyvalues." output OnEntitySpawned(void) : "Fires when ForceSpawn is sent and the entities successfully spawned." ] @PointClass base(CBaseEntity,Parent) color(255 203 11) = point_tesla : "It's a visual effect inspired by the electrical arcs of tesla coils." [ m_SourceEntityName(target_destination) : "Source Entity" : : "Lightning effect will come from the specified entity instead of this one." m_SoundName(sound) : "Sound Name" : "DoSpark" : "Sound to be played whenever lightning is created." texture(sprite) : "Sprite Name" : "sprites/physbeam.vmt" : "Texture to use for the electric beams." m_Color(color255) : "Color" : "255 255 255" : "Color filter applied to the beams." m_flRadius(float) : "Radius" : 200 : "Radius around the origin to find a point to strike with a lightning beam." beamcount_min(integer) : "Min # of Beams" : 6 : "Minimum number of beams to create." beamcount_max(integer) : "Max # of Beams" : 8 : "Maximum number of beams to create." lifetime_min(float) : "Min Time Visible" : ".3" : "Minimum amount of time beams last." lifetime_max(float) : "Max Time Visible" : ".3" : "Maximum amount of time beams last." thick_min(float) : "Min Beam Width" : 4 : "How thin beams can be." thick_max(float) : "Max Beam Width" : 5 : "How thick beams can be." interval_min(float) : "Min Time Between Arcs" : ".5" : "Minimum amount of time between sparks." interval_max(float) : "Max Time Between Arcs" : 2 : "Maximum amount of time between sparks." m_bOn(choices) : "Start Enabled" : 1 : "Emitter spawns activated." = [ 0 : "No" 1 : "Yes" ] input TurnOn(void) : "Enables the emitter; emits in intervals determined by Min/Max Time Between Arcs." input TurnOff(void) : "Disables the emitter." input DoSpark(void) : "Forces a single spark." ] @PointClass base(CBaseEntity) color(248 155 0) = point_velocitysensor : "It records the velocity of an entity." [ target(target_destination) : "Target Entity Name" : : "Entity whose velocity will be sensed." axis(vecline) : "Measurement Axis" : : "Axis to measure movement along. If the line points east, the entity does not record up/down movement or north/south movement." enabled(choices) : "Start Enabled" : 1 : "Start enabled?" = [ 0 : "No" 1 : "Yes" ] input Enable(void) : "Makes the entity active." input Disable(void) : "Makes the entity inactive." output Velocity(float) : "Fires when the Target Entity's velocity changes. Automatically puts the object's new velocity as the input parameter, unless overridden by the mapper." ] @PointClass base(CBaseEntity,Angles,Parent) studioprop("models/editor/camera.mdl") color(0 255 255) = point_viewcontrol : "Players can be forced to see the world through this entity. The entity is also used for the view when players first load into the map (you don't need to change any settings for this, just add it in).\n" + "BUG: Various weird behavior results when using the entity's native ability to follow path_tracks. It's recommended to attach the entity to a func_tracktrain using logic_measure_movement.\n" + "BUG: Players will be stuck seeing out of the point_viewcontrol if the entity is deleted or they die while viewing!\n" + "BUG: Parenting does not work. Parenting to an attachment works.\n" + "BUG: The entity must have something to look at to use path_tracks." [ spawnflags(flags) = [ 1 : "Start At Player - When enabled, the entity sets itself to begin at the player's view." : 0 2 : "Follow Player - Makes the entity look at the player." : 0 4 : "Freeze Player - Prevents the player from moving around, shooting, etc. Makes camera move weirder." : 0 8 : "Infinite Hold Time - Makes the camera active indefinitely, until told to shut off via Disable." : 1 32 : "Make Player non-solid - Makes the player not collide with things." : 0 64 : "Interruptable by Player - Allows player to regain control by shooting, moving around, etc." : 0 ] target(target_destination) : "Entity to Look At" : : "Entity to point towards and track while active." targetattachment(string) : "Target Attachment" : : "If set, the camera will focus on the specified attachment on the Entity to Look At. Tip: View attachment points with ent_attachments." wait(float) : "Hold Time" : 10 : "The amount of time the camera should control the player's view for, after which it deactivates itself. If the camera should stay active perpetually, set the Infinite Hold Time spawnflag." moveto(target_destination) : "Path Corner" : : "The first path_track in a series that the camera should move to once activated. If not specified, the camera won't move anywhere." acceleration(float) : "Acceleration units/sec^2" : : "How many units per second, per second, that the camera will speed up, to reach the speed desired by the path_track if that entity wants it to be faster." deceleration(float) : "Stop Deceleration units/sec^2" : : "How many units per second, per second, that the camera will slow down, to reach the speed desired by the path_track if that entity wants it to be slower." input Enable(void) : "Takes control of the !activator's view (otherwise, the first player on the server)." input Disable(void) : "Restores the player's view. BUG: If the camera is moving while this is sent, it will keep going in that direction, eventually leaving the map entirely." output OnEndFollow(void) : "Fired when the entity deactivates due to the Disable input being sent, the Entity to Look At being destroyed, or the Hold Time expiring." ] @PointClass base(Angles) studioprop() color(255 203 11) = prop_detail : "Prop that can turn to face the camera." [ model(studio) : "World model" : : "World model to appear as. It must have $staticprop in the QC and the texture (and all of its skins) must use UnlitGeneric for the shader. 128 character limit." detailOrientation(choices) : "Orientation" : 0 : "Model rotation behavior." = [ 0 : "No rotation (default)." 1 : "Always rotate to face the camera head on." 2 : "Rotate to face the camera, but ignore the Z axis." ] ] @PointClass base(CPropDoorRotating) color(0 255 0) studioprop() = prop_door_rotating : "A rotating door. These doors are usually opened by players when they +use it (E by default)." [ ] @PointClass base(CDynamicProp,DynamicPropAnimations) sphere(fademindist) sphere(fademaxdist) studioprop() color(255 203 11) = prop_dynamic : "A model that can animate." [ ] @PointClass base(CDynamicProp,DynamicPropAnimations) sphere(fademindist) sphere(fademaxdist) studioprop() color(255 203 11) = prop_dynamic_ornament : "It teleports itself to an entity then parents itself to it. If this entity and the parent have models with matching bones that are meant to be merged (e.g. a player model and a weapon model), they will merge bones." [ InitialOwner(target_destination) : "Target Entity" : : "Entity to attach to." input SetAttached(target_destination) : "Sets the parent to a new entity." input Detach(void) : "Hides the entity." ] @PointClass base(CDynamicProp,DynamicPropAnimations) sphere(fademindist) sphere(fademaxdist) studioprop() color(255 203 11) = prop_dynamic_override : "A version of prop_dynamic that lets you use ANY model, and set its Health on spawn. Automatically converts to prop_dynamic after spawning." [ health(integer) : "Health" : : "How close the prop is to breaking. If not set, the health is defined through the model's QC file. Even if this is set, the prop will not take damage if its model is not configured to break." ] @PointClass base(CPhysicsProp) studioprop() sphere(fademindist) sphere(fademaxdist) color(255 0 255) = prop_physics : "A model that moves around realistically. Most of the time, you should use prop_physics_multiplayer instead for networking reasons." [ ] @PointClass base(CPhysicsProp) studioprop() sphere(fademindist) sphere(fademaxdist) color(255 0 255) = prop_physics_multiplayer : "A version of prop_physics which can cut down on network traffic generated by moving props." [ physicsmode(choices) : "Physics Mode" : 0 : "How the prop should move and behave." = [ 0 : "Auto Detect - Lets game decide based on size and mass." 1 : "Solid, Server-side - Solid, looks and acts normal." 2 : "Non-Solid, Server-side - Non-solid, but is still consistent between players." 3 : "Non-Solid, Client-side - Non-solid, position may desynchronize between players. Does not generate network traffic when moving." ] ] @PointClass base(CPhysicsProp) studioprop() sphere(fademindist) sphere(fademaxdist) color(255 0 255) = prop_physics_override : "A version of prop_physics that can use ANY model and set its Health on spawn." [ health(integer) : "Health" : : "How close the prop is to breaking. If not set, the health is defined through the model's QC file. Even if this is set, the prop will not take damage if its model is not configured to break." ] @PointClass base(Model,CBaseAnimating) sphere(fademindist) sphere(fademaxdist) studioprop() color(255 0 255) = prop_ragdoll : "A realistically-moving model with multiple connected components, like a player's corpse after they die. Ragdolls made by this entity are server-side, meaning they can create a LOT of network traffic. Use them carefully." [ spawnflags(flags) = [ 4 : "Debris - Don't collide with the player or other debris." : 1 4096 : "Use LRU Retirement - TODO: Probably refers to the Least Recently Used algorithm? No effect seen." : 0 16384 : "Motion Disabled - Ragdoll starts with motion disabled." : 0 32768 : "Allow stretch - TODO: Broken..?" : 0 65536 : "Start Asleep - Don't move until a force acts on the ragdoll." : 0 ] angleOverride(string) : "Override Animation" : : "Makes each joint on the ragdoll spawn in a particular position. This is automatically filled in by the hammer_update_entity command. Don't edit manually except for clearing it out." StartDisabled(choices) : "Start Disabled" : 0 : "Makes the model start invisible (but still solid)." = [ 0 : "No" 1 : "Yes" ] modelscale(float) readonly : "Model Scale" : 1 : "Must be kept at 1 to avoid crash." input StartRagdollBoogie(void) : "Makes the ragdoll shake as if it was shocked." input EnableMotion(void) : "Allows the ragdoll to move." input DisableMotion(void) : "Prevents the ragdoll from moving." input Enable(void) : "Makes the ragdoll visible." input Disable(void) : "Makes the ragdoll invisible." input FadeAndRemove(float) : "Fades the ragdoll out over the specified number of seconds, then removes it." ] @PointClass base(Model,Angles,FadeKeys) color(255 203 11) sphere(fademindist) sphere(fademaxdist) studioprop() = prop_static : "It adds a model to the world which cannot move or animate. When placed, they do not exist as entity. Static props are less expensive than other model entities. Models with $bumpmapped materials are never lit per-vertex. Up to 4096 prop_statics can be in a map. Models will work with this entity only if the 'static' box is checked inside the model browser. Alternatives are a prop_physics with motion disabled and a prop_dynamic that simply sits there and does nothing (though, the lighting might not be the same)." [ fadescale(float) : "Fade Scale" : 1 : "If specified in the worldspawn, or if the game is running below DirectX 8, entities will fade out even if the Start/End Fade Distance keyvalues aren't specified. This value gives more control over when this happens: numbers smaller than 1 cause the entity to fade out farther away, and greater than 1 cause it to fade out at closer distances. Using 0 turns off the forced fade altogether. See also $noforcedfade." skin(integer) : "Skin" : 0 : "Some models have multiple skins. This value selects from the index, starting with 0." solid(choices) : "Collisions" : 6 : "Method of collision for this entity." = [ 0 : "None" 2 : "Bounding Box" 6 : "VPhysics" ] disableshadows(choices) : "Disable Shadows" : 0 : "Prevents this entity from creating lightmap shadows." = [ 0 : "No" 1 : "Yes" ] screenspacefade(choices) : "Screen Space Fade" : 0 : "Method for judging when the prop should fade in and out of transparency. If 'Yes', Start Fade Distance and End Fade Distance will be a measure of pixels instead of world units. TODO: Does this really measure pixels, or is there some math in between?" = [ 0 : "No (Determine by distance from object in world units.)" 1 : "Yes (Determine by prop size on screen, in pixels.)" ] lightingorigin(target_destination) : "Lighting Origin" : : "An info_lighting from which to sample lighting and cubemaps." disablevertexlighting(choices) : "Disable Vertex lighting" : 0 : "Makes the model be lit solely by the amount of light that hits the origin. This is a small but good optimization for props that are already evenly lit." = [ 0 : "No" 1 : "Yes" ] disableselfshadowing(choices) : "Disable Self-Shadowing with vertex lighting" : 0 : "Prop will not cast shadows on itself when per-vertex lighting is calculated. Good for foliage and trees." = [ 0 : "No" 1 : "Yes" ] ignorenormals(choices) : "Ignore surface normal for computing vertex lighting" : 0 : "Makes light ignore the angle it hits the side of the prop at. This allows for paper-thin props like grass to be lit evenly on both sides." = [ 0 : "No" 1 : "Yes" ] generatelightmaps(choices) : "Generate (and use) lightmaps for this static prop" : 0 : "Tell this prop to generate UV-based lightmaps. Be wary of increased file size and compile time. See here for a guide on using https://tf2maps.net/threads/guide-prop-lightmaps.24682/#post-330133. Requires -staticproplighting for $light_exe in the advanced compile window. BUG: This setting doesn't work on models with multiple skins." = [ 0 : "No" 1 : "Yes" ] lightmapresolutionx(integer) : "Lightmap Resolution X" : 32 : "If generating lightmaps, the resolution of the lightmap in the X (U) direction. Higher values will make lightmapping more accurate." lightmapresolutiony(integer) : "Lightmap Resolution Y" : 32 : "If generating lightmaps, the resolution of the lightmap in the Y (V) direction. Higher values will make lightmapping more accurate." ] @PointClass base(CPhysicsProp) studioprop() sphere(fademindist) sphere(fademaxdist) sphere() color(255 0 255) = prop_sphere : "A prop with perfectly spherical collisions." [ radius(integer) readonly : "Size" : 12 : "Size of the collision sphere. Can't be changed." ] @PointClass base(CPropVehicle) studio() = prop_vehicle : "Vehicle prop that cannot be entered. Can be controlled via inputs." [ model(studio) : "Model" : "models/buggy.mdl" : "Model to use." vehiclescript(string) : "Vehicle Script File" : "scripts/vehicles/jeep_test.txt" : "Path to a file that defines properties about this vehicle." ] @PointClass base(CPropVehicleDriveable) studio() = prop_vehicle_driveable : "Vehicle prop that can be entered and controlled by a player. Bug: When players enter the vehicle, their camera will move to the wrong position and they will have no control over the vehicle, nor be able to exit. To fix this, use a Sourcemod plugin: https://github.com/Mikusch/source-vehicles" [ model(studio) : "Model" : "models/buggy.mdl" : "Model to use." vehiclescript(string) : "Vehicle Script File" : "scripts/vehicles/jeep_test.txt" : "Path to a file that defines properties about this vehicle." input ShowHudHint(void) : "Shows the driver the HUD hints for the turbo and handbrake. The jeep automatically sends this to itself the first few times the player enters it." input StartRemoveTauCannon(void) : "Moves the gun off the jeep. Meant to be immediately followed by FinishRemoveTauCannon." input FinishRemoveTauCannon(void) : "Disables and hides the gun. BUG: Any decals that got on the gun will still be visible." ] @PointClass base(CBaseEntity) iconsprite("editor/shadow_control") color(160 240 37) = shadow_control : "Sets properties of dynamic shadows cast by moving objects." + "BUG: Shadows may clip through walls. This can be worked around by decreasing shadow distance or using info_no_dynamic_shadow and mark faces that should not receive shadows." [ angles(angle) : "Pitch Yaw Roll (Y Z X)" : "45 57 0" : "Direction shadows will cast in. This should usually match the angles of a light_environment, except pitch should be opposite (-75 -> 75, 60 -> -60 ect.)." color(color255) : "Shadow Color" : "128 128 128" : "Color of the shadows." distance(float) : "Maximum Distance" : 100 : "Maximum distance that shows can cast in world units." disableallshadows(choices) : "All Shadows Disabled" : 0 : "Disables shadows completely. Setting color to 255 255 255 gives same effect." = [ 0 : "No" 1 : "Yes" ] input Color(color255) : "Sets Shadow Color." input Direction(vector) : "Sets the shadow direction as a vector." input SetDistance(float) : "Sets Maximum Distance." input SetAngles(string) : "Sets Pitch Yaw Roll (shadow direction as a set of angles)." input SetShadowsDisabled(integer) : "Sets All Shadows Disabled." ] @PointClass base(CBaseEntity,Angles) color(255 203 11) = sky_camera : "It is used to mark the position of the map's origin inside 3D skyboxes. As your position changes relative to the map's origin it will be scaled and applied relative to the sky_camera. Multiple/moving 3D skyboxes are possible. More info here https://tf2maps.net/threads/multiple-3d-skyboxes.35829" [ scale(integer) : "3D Skybox scale" : 16 : "How much bigger than normal objects in the skybox space will appear to be. If the scale is 16 (the usual value), a 1x1x1 cube will appear to be 16x16x16. Fog distances will automatically be scaled up by this amount." fogenable(choices) : "Fog Enable" : 1 : "Shows fog on skybox objects." = [ 0 : "No" 1 : "Yes" ] fogstart(float) : "Fog Start" : 200 : "How far away from the viewer the fog should start." fogend(float) : "Fog End" : 25000 : "How far away from the viewer the fog reaches Fog Max Density." fogmaxdensity(float) : "Fog Max Density" : 1 : "Maximum density the fog may reach. Expressed as a decimal percent, so for 45% put 0.45." fogcolor(color255) : "Primary Fog Color" : "136 158 166" : "Fog Color." fogcolor2(color255) : "Secondary Fog Color" : "255 255 255" : "Secondary Fog Color. If Fog Blend is disabled, this color will never appear." fogblend(choices) : "Fog Blend" : 0 : "Enables color blending between Primary Fog Color and Secondary Fog Color. When the viewer looks in the Primary Fog Direction, fog will appear as the Primary color. When looking away from the specified direction, fog appears as the Secondary color. If the camera is not pointed directly at or away from the direction, a blend of the two colors will result." = [ 0 : "No" 1 : "Yes" ] fogdir(vector) : "Primary Fog Direction" : "1 0 0" : "An angle which the viewer camera is checked against to figure out the blend between the primary and secondary fog colors." use_angles(choices) : "Use Angles for Fog Dir" : 0 : "Use Pitch Yaw Roll for the Fog Blend direction instead of Primary Fog Direction." = [ 0 : "No" 1 : "Yes" ] ] @PointClass base(CBaseEntity,Parent,Angles) size(-2 -2 -2, 2 2 2) iconsprite("editor/env_spark") color(255 248 40) = spark_shower : "Spark effect created by underwater env_explosions. It will jump in a direction set by its Pitch Yaw Roll." [ ] @PointClass base(CBaseEntity) color(255 0 255) = target_changegravity : "Changes the gravity setting of players." [ gravity(integer) : "Gravity" : 1 : "What to change the gravity amount to. Multiplier of regular gravity. Mods can easily change this keyvalue to a float, thereby greatly increasing its usefulness. Cannot be set to 0." input ChangeGrav(void) : "Changes the gravity of the activating player to the amount in Gravity." input ResetGrav(void) : "Changes the gravity of the activating player to the previous amount of gravity that was being experienced by the most recent activator player of the ChangeGrav input, before that input was sent." ] @SolidClass base(CBaseTrigger) color(255 0 255) = trigger_apply_impulse : "It pushes objects inside it when told to, much like a trigger_push with 'Once Only' checked." [ impulse_dir(angle) : "Impulse Direction" : : "Angle to push objects in." force(float) : "Impulse Force" : : "Force to push objects with." input ApplyImpulse(void) : "Applies the force." ] @SolidClass base(CBaseEntity,EnableDisable,Parent,RenderFields) color(255 0 255) = trigger_brush : "OBSOLETE: You shouldn't use this entity, though it may appear in other people's maps. It's an entity which was used during Half-Life 2's development which would filter inputs based on a few things. It's function has been replaced by trigger flags and filter entities." [ solid(choices) : "Collisions" : 6 : "Method of collision for this entity." = [ 0 : "None" 1 : "BSP (QPhysics)" 2 : "Bounding Box" 4 : "Oriented Bounding Box" 6 : "VPhysics" ] 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" ] DontMessageParent(choices) : "Don't alert parent" : 0 : "If yes, OnStartTouch, OnEndTouch outputs or Use input will be forwarded to parented entity." = [ 0 : "Yes" 1 : "No" ] input Use(void) : "Fires the OnUse output." output OnUse(void) : "Fired when the Use input is given." output OnStartTouch(void) : "Fired when an entity starts touching this trigger." output OnEndTouch(void) : "Fired when an entity stops touching this trigger." ] @SolidClass base(CBaseTrigger) color(255 0 255) = trigger_gravity : "It gives a custom gravity setting to players (and players only, despite the flags). The player will keep that gravity setting until their gravity is changed by another trigger_gravity. Even if they die, they'll still have the gravity amount they had before. BUG: Filters do not work with this entity." [ gravity(float) : "Gravity" : : "What to change the gravity to. Multiplier of regular gravity. Cannot be set to 0.0." ] @SolidClass base(CTriggerHurt) color(0 255 0) = trigger_hurt : "Hurts things that enter the volume." [ ] @SolidClass base(CTriggerMultiple) color(255 0 255) = trigger_impact : "It pushes objects as if they were hit." [ Magnitude(float) : "Magnitude" : : "The strength of the impact." noise(float) : "Noise" : : "How much randomness to add to the impact direction. 0.0 = no noise, 1.0 = random direction." viewkick(float) : "Viewkick" : : "If hitting a player, jostle their view by this much. Proportional to Magnitude." input Impact(void) : "Hits the entities." input SetMagnitude(float) : "Sets Magnitude." output ImpactForce(vector) : "Fires when the Impact input gets sent. Automatically puts the force that was applied (before noise is added, not accounting for mass) as the input parameter, unless overridden by the mapper." ] @SolidClass base(CTriggerMultiple) color(248 155 0) = trigger_look : "Fires an output when a player is inside it and looks at a certain spot. The entity does not check if the player has a line of sight to the target; only if they're facing its direction. BUG: If multiple entities in the map have the same name as the target entity, then OnTrigger may fire inconsistently. The output may either be delayed or never fire at all. These effects seem to worsen the more offending entities there are in the map. Does not work through portals." [ spawnflags(flags) = [ 128 : "Fire Once - Entity removes itself after firing." : 0 256 : "Use Velocity instead of facing - Use the direction the player is going in, instead of the direction they're looking in." : 0 ] target(target_destination) : "Look Target" : : "The name of the entity to be looked at." LookTime(float) : "LookTime" : "0.5" : "Player must look at the target for this long before firing the output." FieldOfView(float) : "FieldOfView" : "0.9" : "How closely the player must be looking towards the Look Target to fire the output. 1.0 = directly at it, 0.0 = 90 degrees away, -1.0 any direction." Timeout(float) : "Timeout" : : "If non-zero, how long to wait for the player to look towards the target once they're inside the trigger. See OnTimeout. NOTE: When this keyvalue is set, the outputs will not fire again if one has already, until the player leaves and reenters the trigger. TODO: Is that a bug?" input LookTime(float) : "Sets LookTime." input FieldOfView(float) : "Sets FieldOfView." output OnTrigger(void) : "Fires when the player has been inside the trigger and has been looking at the Look Target for the amount of time specified by LookTime." output OnTimeout(void) : "Fires when the player has been inside the trigger but did not look at Look Target for the time specified in LookTime within the time specified in Timeout." ] @SolidClass base(CTriggerMultiple) color(248 155 0) = trigger_multiple : "Standard, most common entity for trigger logic. Simply fires outputs." [ ] @SolidClass base(CTriggerMultiple) color(248 155 0) = trigger_once : "Fires an output once when touched, then removes itself. Equivalent to setting 'Fire once' on the outputs of a trigger_multiple." [ ] @SolidClass base(CBaseTrigger) = trigger_playermovement : "It controls some aspects of player movement when a player is inside it. BUG: Despite being coded to only affect players, the 'Clients' flag still has to be checked!" [ spawnflags(flags) = [ 128 : "Disable auto player movement - See FGD comment." : 0 ]//Disables automatic uncrouching (only way to uncrouch is to leave the trigger or jump), disables the automatic "step up/down" when moving between surfaces of similar (but different) heights, and TODO: Does something to water movement..? ] @SolidClass base(CBaseTrigger) color(248 155 0) = trigger_proximity : "When an object is inside its volume, it measures that object's distance from another entity." [ measuretarget(target_destination) : "Point to Measure From" : : "Entity to measure the distance from. The trigger can use its own origin as the measuring point if specified here. BUG: If the specified entity is parented to anything, NearestEntityDistance never fires." radius(float) : "Radius to measure within" : : "How close an entity has to be to the Point to Measure From to fire the NearestEntityDistance output." output NearestEntityDistance(float) : "Fires whenever there's a change in distance to the nearest valid entity that's touching the trigger and within the radius. !Activator is the nearest entity. Automatically puts the distance to the nearest entity divided by Radius to measure within as the input parameter, unless overridden by the mapper." ] @SolidClass base(CBaseTrigger) color(255 0 255) = trigger_push : "It pushes things." [ spawnflags(flags) = [ 128 : "Once Only - Trigger removes itself after pushing a single object once." : 0 ] pushdir(angle) : "Push Direction (Pitch Yaw Roll)" : "0 0 0" : "Direction of force." speed(float) : "Speed of Push" : 40 : "How much to push things. Spams console if above 1000." alternateticksfix(float) : "Scale force for alternate ticks" : 0 : "If non-zero, force is multiplied by this much when the server is running with sv_alternateticks 1. TODO: What are good values for this?" ] @SolidClass base(CBaseTrigger) = trigger_remove : "It removes things that touch it, as if they were sent the Kill input. Entities programmed to not activate triggers (e.g. logic entities, weapons) will not be removed. Be VERY careful when using this. Even a player can be removed!" [ ] @SolidClass base(CBaseTrigger) color(0 0 255) = trigger_soundscape : "It triggers an env_soundscape_triggerable." [ soundscape(target_destination) : "Soundscape" : : "env_soundscape_triggerable to activate." ] @SolidClass base(CBaseTrigger) = trigger_teleport : "It teleports objects to another place. Teleported objects will lose their linear velocity (but not angular). Players however, don't lose any velocity." [ spawnflags(flags) = [ 32 : "Preserve angles even when a local landmark is not specified - See FGD comment." : 0 ]//If checked, teleported objects will keep their angles that they had before being teleported, as opposed to snapping to the angles of the Remote Destination. target(target_destination) : "Remote Destination" : : "Where to teleport entities to. The trigger itself can be specified here to move entities to its origin." landmark(target_destination) : "Local Destination Landmark" : : "If specified, the entity will note the position of teleported objects relative to this entity, and then teleport entities to the same position relative to Remote Destination. Also preserves the entity's angles and velocity." ] @SolidClass base(CBaseTrigger) = trigger_teleport_relative : "It teleports objects to the center of the brush (not the origin) with an optional offset." [ teleportoffset(vector) : "Offset (X Y Z)" : : "Position offset in Hammer units to give to teleported objects." ] @SolidClass base(CBaseVPhysicsTrigger) color(255 0 255) = trigger_vphysics_motion : "It can manipulate objects inside it in a number of ways. Sometimes used in Half-Life 2 for forcefield-like effects." [ SetGravityScale(float) : "Scale of gravity" : 1 : "Multiplies the gravity experienced by objects in the field." SetAdditionalAirDensity(float) : "Additional air density for drag" : 0 : "Air drag. Applies to both linear and angular velocity." SetVelocityLimit(float) : "Max velocity" : 0 : "Maximum velocity of objects in the field. Leave at 0 to not set a maximum." SetVelocityLimitDelta(float) : "Deceleration to limit" : 0 : "How quickly objects will lose speed when moving above Max velocity. Leave at 0 to make them instantly change to the maximum velocity." SetVelocityScale(float) : "Velocity scale/drag" : 1 : "Multiplies the velocity of objects. Instead of using decimals, the velocity has to be scaled down with negative numbers." SetAngVelocityLimit(float) : "Max angular velocity" : 0 : "How fast objects should be able to spin, in degrees per second. Leave at 0 to not set a maximum." SetAngVelocityScale(float) : "Angular Velocity scale/drag" : 1 : "Multiplies the angular velocity of objects. Instead of using decimals, the velocity has to be scaled down with negative numbers." SetLinearForce(float) : "Linear force" : 0 : "If non-zero, objects will be pushed with this much force." SetLinearForceAngles(angle) : "Direction of linear force (Pitch Yaw Roll)" : "0 0 0" : "Which way to push things." ParticleTrailMaterial(sprite) : "Particle Trail Material" : : "A texture to use for sprites which will appear around objects in the trigger." ParticleTrailLifetime(float) : "Particle Trail Lifetime" : 1 : "How long a single sprite will last." ParticleTrailStartSize(float) : "Particle Trail Starting Sprite Size" : 1 : "How big sprites are when first created." ParticleTrailEndSize(float) : "Particle Trail Ending Sprite Size" : ".3" : "The size sprites will shrink/grow to over their lifetime." input SetGravityScale(float) : "Sets Scale of gravity." input SetAdditionalAirDensity(float) : "Sets Additional air density for drag." input SetVelocityLimit(float) : "Sets Max velocity." input SetVelocityLimitTime(string) : "Takes two numbers: the first sets Max velocity, and the second is how many seconds it should take to transition to the new value." input SetVelocityLimitDelta(float) : "Sets Deceleration to limit." input SetVelocityScale(float) : "Sets Velocity scale/drag." input SetAngVelocityLimit(float) : "Sets Max angular velocity." input SetAngVelocityScale(float) : "Sets Angular Velocity scale/drag." input SetLinearForce(float) : "Sets Linear force." input SetLinearForceAngles(string) : "Sets Direction of linear force. BUG: If any physics objects are asleep inside the trigger when this input is sent, those objects will not wake." ] @SolidClass base(CBaseVPhysicsTrigger,Angles) color(255 0 255) = trigger_wind : "It creates wind. Only pushes physics objects, i.e. dropped weapons and props." [ Speed(integer) : "Speed" : 400 : "How fast the wind should be." SpeedNoise(integer) : "Speed Noise" : 0 : "The wind speed will randomly vary by up to this much." DirectionNoise(integer) : "Direction Noise" : 0 : "The wind direction will randomly vary off Pitch Yaw Roll by up to this much." HoldTime(integer) : "Hold Time" : 10 : "How long to wait between making random changes in the wind's speed and angle." HoldNoise(integer) : "Hold Noise" : 0 : "Hold Time will randomly vary by up to this much." input SetSpeed(integer) : "Sets Speed, then immediately recomputes the speed and direction noise." ] @PointClass base(CBaseEntity,Parent,Angles) size(-4 -4 -4, 4 4 4) color(255 203 11) = vgui_screen : "A computer-like screen that shows one or more textures." [ panelname(string) : "Panel Name" : : "Name of a 'panel' to show. See Counter-Strike Source/cstrike/cstrike_pak_dir.vpk/scripts/vgui_screens.txt. Default ones: c4_panel, c4_display_panel, vgui_test_screen, teleport_countdown_screen, slideshow_display_screen." overlaymaterial(material) : "Overlay Material" : : "A texture to put over the screen." width(float) : "Panel Width in World" : 32 : "How wide to make the panel." height(float) : "Panel Height in World" : 32 : "How tall to make the panel." ] @PointClass base(CBaseEntity,Parent,Angles) studio("models/editor/axis_helper_thick.mdl") color(255 203 11) = vgui_slideshow_display : "It shows images in a slideshow.\n" + "Place it in the lower left corner of where you want the screen and rotate it so that the yellow line points which way you want the screen to face.\n" + "The entity has up to 16 'sub-lists' that it can randomly choose from before selecting which picture to show from a certain list. One list consists of every image in Image Directory, and others are created by specifying a $keyword from the vmt in the parameter of AddSlides. For example, if a single image is added via AddSlides, the entity will show that image 50% of the time, and all others 50% of the time, collectively.\n" + "The same list can be added multiple times to weight which slides are more common. So you could add 'cow', 'cow', 'cow', 'chicken' and you'll be 3 times more likely to see a cow in the shuffle than a chicken.\n" + "Setting the Cycle Type to Forward will display all the added images in order by keyword (in the order that the keywords were added), then in alphabetical order for each slide in the keyword.\n" + "All randomness is done clientside, so two players may not necessarily see the same thing." [ directory(string) : "Image Directory (materials/vgui/...)" : : "A subfolder of materials/vgui/ to take images from. E.g. slideshow/glados from Portal. Subdirectories of the specified one will not be included." minslidetime(float) : "Min Slide Time" : 1 : "Minimum amount of time to display a slide for." maxslidetime(float) : "Max Slide Time" : 1 : "Maximum amount of time to display a slide for." cycletype(choices) : "Cycle Type" : 1 : "How to progress through the images." = [ 0 : "Random" 1 : "Forward" 2 : "Backward" ] nolistrepeat(choices) : "No List Repeat" : 0 : "If Cycle Type is random, should the entity let the same image appear multiple times before it's gone through every single one?" = [ 0 : "Allow List Repeats" 1 : "Skip to next unused frame on the list" ] width(integer) : "Panel width" : 32 : "Width of the panel in units." height(integer) : "Panel height" : 32 : "Height of the panel in units." input Enable(void) : "Makes the slideshow visible and active." input Disable(void) : "Makes the slideshow invisible and inactive. BUG: The timer counting the time until the next slide change will still run. The entity will immediately change to the next slide once re-enabled if it does so after that timer runs out." input RemoveAllSlides(void) : "Clears out all lists of slides. The screen will be left on the last frame it chose." input AddSlides(string) : "Adds images in the folder with this $keyword as their own sub-list. If Cycle Type is Forward or Backward the images will be shown once every other queued image has." input SetMinSlideTime(float) : "Sets Min Slide Time." input SetMaxSlideTime(float) : "Sets Max Slide Time." input SetCycleType(integer) : "Sets Cycle Type." input SetNoListRepeat(integer) : "Sets No List Repeat." ] @PointClass base(CWeaponCSBase) color(160 37 240) sphere(fademindist) sphere(fademaxdist) studio("models/weapons/w_rif_ak47.mdl") = weapon_ak47 : "CV-47" [ ] @PointClass base(CWeaponCSBase) color(160 37 240) sphere(fademindist) sphere(fademaxdist) studio("models/weapons/w_rif_aug.mdl") = weapon_aug : "Bullpup" [ ] @PointClass base(CWeaponCSBase) color(160 37 240) sphere(fademindist) sphere(fademaxdist) studio("models/weapons/w_snip_awp.mdl") = weapon_awp : "Magnum Sniper Rifle" [ ] @PointClass base(CWeaponCSBase) color(160 37 240) sphere(fademindist) sphere(fademaxdist) studio("models/weapons/w_c4.mdl") = weapon_c4 : "C4 Explosive" [ ] @PointClass base(CWeaponCSBase) color(160 37 240) sphere(fademindist) sphere(fademaxdist) studio("models/weapons/w_pist_deagle.mdl") = weapon_deagle : "Night Hawk .50C" [ ] @PointClass base(CWeaponCSBase) color(160 37 240) sphere(fademindist) sphere(fademaxdist) studio("models/weapons/w_pist_elite.mdl") = weapon_elite : ".40 Dual Elites" [ ] @PointClass base(CWeaponCSBase) color(160 37 240) sphere(fademindist) sphere(fademaxdist) studio("models/weapons/w_rif_famas.mdl") = weapon_famas : "Clarion 5.56" [ ] @PointClass base(CWeaponCSBase) color(160 37 240) sphere(fademindist) sphere(fademaxdist) studio("models/weapons/w_pist_fiveseven.mdl") = weapon_fiveseven : "ES Five-Seven" [ ] @PointClass base(CWeaponCSBase) color(160 37 240) sphere(fademindist) sphere(fademaxdist) studio("models/weapons/w_eq_flashbang.mdl") = weapon_flashbang : "Flashbang. Classname of thrown flashbang is flashbang_projectile." [ ] @PointClass base(CWeaponCSBase) color(160 37 240) sphere(fademindist) sphere(fademaxdist) studio("models/weapons/w_snip_g3sg1.mdl") = weapon_g3sg1 : "D3/AU-1" [ ] @PointClass base(CWeaponCSBase) color(160 37 240) sphere(fademindist) sphere(fademaxdist) studio("models/weapons/w_rif_galil.mdl") = weapon_galil : "IDF Defender" [ ] @PointClass base(CWeaponCSBase) color(160 37 240) sphere(fademindist) sphere(fademaxdist) studio("models/weapons/w_pist_glock18.mdl") = weapon_glock : "9X19mm Sidearm" [ ] @PointClass base(CWeaponCSBase) color(160 37 240) sphere(fademindist) sphere(fademaxdist) studio("models/weapons/w_eq_fraggrenade.mdl") = weapon_hegrenade : "High Explosive Grenade. Classname of thrown hegrenade is hegrenade_projectile." [ ] @PointClass base(CWeaponCSBase) color(160 37 240) sphere(fademindist) sphere(fademaxdist) studio("models/weapons/w_knife_t.mdl") = weapon_knife : "Knife" [ ] @PointClass base(CWeaponCSBase) color(160 37 240) sphere(fademindist) sphere(fademaxdist) studio("models/weapons/w_mach_m249para.mdl") = weapon_m249 : "M249" [ ] @PointClass base(CWeaponCSBase) color(160 37 240) sphere(fademindist) sphere(fademaxdist) studio("models/weapons/w_shot_m3super90.mdl") = weapon_m3 : "Leone 12 Gauge Super" [ ] @PointClass base(CWeaponCSBase) color(160 37 240) sphere(fademindist) sphere(fademaxdist) studio("models/weapons/w_rif_m4a1.mdl") = weapon_m4a1 : "Maverick M4A1 Carbine" [ ] @PointClass base(CWeaponCSBase) color(160 37 240) sphere(fademindist) sphere(fademaxdist) studio("models/weapons/w_smg_mac10.mdl") = weapon_mac10 : "Ingram Mac-10" [ ] @PointClass base(CWeaponCSBase) color(160 37 240) sphere(fademindist) sphere(fademaxdist) studio("models/weapons/w_smg_mp5.mdl") = weapon_mp5navy : "K&M Sub-Machine Gun" [ ] @PointClass base(CWeaponCSBase) color(160 37 240) sphere(fademindist) sphere(fademaxdist) studio("models/weapons/w_pist_p228.mdl") = weapon_p228 : "228 Compact" [ ] @PointClass base(CWeaponCSBase) color(160 37 240) sphere(fademindist) sphere(fademaxdist) studio("models/weapons/w_smg_p90.mdl") = weapon_p90 : "ES C90" [ ] @PointClass base(CWeaponCSBase) color(160 37 240) sphere(fademindist) sphere(fademaxdist) studio("models/weapons/w_snip_scout.mdl") = weapon_scout : "Schmidt Scout" [ ] @PointClass base(CWeaponCSBase) color(160 37 240) sphere(fademindist) sphere(fademaxdist) studio("models/weapons/w_snip_sg550.mdl") = weapon_sg550 : "Krieg 550 Commando" [ ] @PointClass base(CWeaponCSBase) color(160 37 240) sphere(fademindist) sphere(fademaxdist) studio("models/weapons/w_rif_sg552.mdl") = weapon_sg552 : "Krieg 552" [ ] @PointClass base(CWeaponCSBase) color(160 37 240) sphere(fademindist) sphere(fademaxdist) studio("models/weapons/w_eq_smokegrenade.mdl") = weapon_smokegrenade : "Smoke Grenade. Classname of thrown smokegrenade is smokegrenade_projectile." [ ] @PointClass base(CWeaponCSBase) color(160 37 240) sphere(fademindist) sphere(fademaxdist) studio("models/weapons/w_smg_tmp.mdl") = weapon_tmp : "Schmidt Machine Pistol" [ ] @PointClass base(CWeaponCSBase) color(160 37 240) sphere(fademindist) sphere(fademaxdist) studio("models/weapons/w_smg_ump45.mdl") = weapon_ump45 : "K&M UMP45" [ ] @PointClass base(CWeaponCSBase) color(160 37 240) sphere(fademindist) sphere(fademaxdist) studio("models/weapons/w_pist_usp.mdl") = weapon_usp : "K&M .45 Tactical" [ ] @PointClass base(CWeaponCSBase) color(160 37 240) sphere(fademindist) sphere(fademaxdist) studio("models/weapons/w_shot_xm1014.mdl") = weapon_xm1014 : "Leone YG1265 Auto Shotgun" [ ] @SolidClass = worldspawn : "This entity represents the entire map. It holds the static props and brushes, including displacements, and many 'global' settings which must be easily available to other entities at all times. When something refers to 'the world', it means this entity.\n" + "You don't have to place this entity into the map. It's already made for you! Access the keyvalues in Hammer by going to Map -> Map Properties..." [ targetname(target_source) : "Name" : "the_world" : "The name that other entities refer to this entity by." message(string) : "Map Description / Title" : : "Doesn't affect anything. Just a spot to place any information about your map. This will be retained in the BSP." skyname(string) : "SkyBox Texture Name" : "assault" : "Skybox material. https://developer.valvesoftware.com/wiki/Counter-Strike_Source_Sky_List" startdark(choices) : "Level Fade In" : 0 : "Makes the map fade in from pure black when loaded." = [ 0 : "No" 1 : "Yes" ] maxoccludeearea(float) : "Max occludee area" : 0 : "Prevents func_occluder testing for entities that take up more than X% of the screen." minoccluderarea(float) : "Min occluder area" : 0 : "Prevents func_occluders from being used if they take up less than X% of the screen." maxpropscreenwidth(float) : "Start Fade Pixels" : -1 : "Number of pixels wide at which all entities in the level start to fade. This number is ignored if the entity has a specific fade distance specified." minpropscreenwidth(float) : "End Fade Pixels" : 0 : "Minimum number of pixels wide an entity must be for it to be drawn. This number is ignored if the entity has a specific fade distance specified." detailvbsp(string) : "Detail.vbsp file" : "detail.vbsp" : "Detail.vbsp to use for emitting detail props/sprites." detailmaterial(string) : "Detail material file" : "detail/detailsprites" : "Material properties that apply to all detail props." input AddOutput(string) : "Changes a keyvalue or adds an I/O connection on this entity. Not all keyvalues will work with this input as they require special handling.\n" + "Keyvalue format: \n" + "IO format: ::::\n" + "The parameter can be left blank, but do not omit either ':' surrounding it or the game will think the delay is the parameter! is whether the IO event can be fired again. Put 0 to allow infinite refires, put 1 to make it only fire once ever." input FireUser1(string) : "Fires the OnUser1 output. Bug: These inputs can pass a string parameter, but do nothing with it. If the input is sent from an output that automatically passes a non-string parameter (such as OnLessThan from logic_compare) the input will fail to send because the parameters types are incompatible. To work around this, place any placeholder text in the parameter box." input FireUser2(string) : "Fires the OnUser2 output." input FireUser3(string) : "Fires the OnUser3 output." input FireUser4(string) : "Fires the OnUser4 output." output OnUser1(void) : "Fires in response to the FireUser1 input." output OnUser2(void) : "Fires in response to the FireUser2 input." output OnUser3(void) : "Fires in response to the FireUser3 input." output OnUser4(void) : "Fires in response to the FireUser4 input." ]