Mapbase/Entities

One of the main goals of is to expand upon the entities that can be placed in Hammer. This includes changes to existing entities as well as completely new entities. This article serves as an index regarding these changes.
== Base Changes ==
Many of Mapbase's changes (mainly new I/O/KV) apply to all of a certain type of entity, rather than any specific entity. The following articles go into detail regarding their respective base classes:
* Base Entity — Changes to all entities.
* NPCs — Changes to NPCs.
* Base Combat Character — Changes to NPCs and players.
* Weapons — Changes to weapons.
* Filters — Changes to filters.
== Entity List ==
The following list contains every entity that can be placed in Hammer when using Mapbase, including pre-existing entities as well as new entities. Each entity's status indicates how Mapbase has affected it compared to default Source 2013. Note that this generally does not count the base changes described above.
=== Legend ===
Status	Meaning
 	This entity has not been changed.
 	This entity has been changed by Mapbase.
 	This entity has been partially or fully obsoleted by Mapbase.
 	This entity has not been changed directly, but it has been affected by Mapbase in some other way.
 	This entity was added to Mapbase and did not exist before.
 	This entity was ported or partially ported to Mapbase from another game or mod.
 	This entity is based on an entity from another game or mod, but it is not a direct port.
 	This entity already existed, but it was not accessible to mappers before Mapbase due to lack of FGD definition, available I/O/KV, etc.
=== Entities ===
Classname	Status	Summary
 	 	
 	 	
 	 	Deprecated by SetHintGroup input and entity finder entities.
 	 	
 	 	
 	 	ForceThisNPCToStopBusy and OnNPCStartedLeavingBusy, casual actbusy, etc.
 	 	This derives from ai_goal_actbusy and receives the same improvements.
 	 	
 	 	Allows mappers to control the fear behavior allies formerly only used automatically against hunters.
 	 	Wait points have been improved and unmarked formations have been added to the editor, but follow behavior itself hasn't changed much.
 	 	This derives from ai_goal_follow and receives the same improvements.
 	 	It has angles in Hammer now, but other than that it just has indirect changes from ai_goal_lead_weapon.
 	 	Timeout time can be specified, weapon_bugbait is no longer hardcoded, etc.
 	 	
 	 	Some npc_metropolice changes are related to police goals, but nothing has been changed in the behavior itself.
 	 	Custom standoff parameters are now in the FGD and medium cover hints are now fully implemented as potential cover.
 	 	
 	 	"Classify" classes (e.g. CLASS_PLAYER_ALLY) can now be used. See the new ai_relationship_classify for changing default relationships.
 	 	A special version of ai_relationship that modifies relationship classes directly within in the gamerules, allowing mappers to change the game's "true" default relationships for their map. This also allows ai_relationship to be used on top of a global relationship modification. For example, let's say you want all npc_metropolice (CLASS_METROPOLICE) to be hostile to npc_combine_s (CLASS_COMBINE) *except* for a few npc_metropolice that don't attack soldiers for environmental or balance reasons. This entity allows you to have that kind of relationship setup.
 	 	SatisfyConditions input, NPC state can be set to "Don't care"
 	 	Unmarked sound types and contexts have been added to the editor, a sound "owner" can now be specified
 	 	
 	 	Modifies a NPC's shot regulator to change burst-related stuff.
 	 	
 	 	SetSound, sound flags keyvalue with "Pause sound with game pause" option, !activator support, OnSoundFinished
 	 	
 	 	
 	 	
 	 	
 	 	Added friend/foe override filters, fixed default enemy registering, added several new I/O/KV including the ability to start friendly, etc. Also actually acts like a point entity in Hammer.
 	 	This entity is used for the striders' warp cannon and was used for the cut Combine Guard's weapon, but Mapbase gives it a bunch of I/O/KV and puts it in the FGD.
 	 	
 	 	
 	 	
 	 	
 	 	Some fixes, Amplitude input, ability to set start/end entity, etc.
 	 	
 	 	
 	 	Shoots gibs otherwise associated with func_breakable.
 	 	
 	 	
 	 	Emits captions/subtitles manually without requiring an accompanying sound.
 	 	The ability to use custom credits files and set the number of lingering ending lines have been added.
 	 	Parallax Corrected Cubemaps are now supported. Also see Autocubemap.
 	 	An entity ported from the which allows for a complex depth-of-field effect.
 	 	
 	 	
 	 	
 	 	
 	 	
 	 	OutSpawnedEntity and ForceSpawnAtEntityOrigin/Center have been added.
 	 	SetIgnoredEntity has been added.
 	 	Added "Don't purge" spawnflag, which stops an env_fade from overwriting all other fades.
 	 	
 	 	New spawnflag for accepting flares. Flares will give off dynamic heat based off of their lifetime.
 	 	
 	 	
 	 	Starts with fog enabled.
 	 	Activate input, "Don't remove on fire" flag, missing sprite added to mod files.
 	 	Counter output replaced with OutCounter in an attempt to dodge the aliasing issue. New global states have also been added, but they're unrelated to env_global itself.
 	 	An orthographic projected texture entity ported from the . It's received a few changes in Mapbase, like zero default offset with keyvalues for mappers change it themselves.
 	 	Ability to choose any sound in the sound browser, FireBurst for firing bursts manually, OnFire for each bullet.
 	 	StopHissing to stop post-impact hissing, OnCrab for each crab that emerges from the canister
 	 	Button combinations, raw strings, etc. as well as SetHudHint.
 	 	Mapper-placed hint for the game instructor.
 	 	OnTouchedByEntity added, based on the output from env_beam. It fires per frame though, so be careful.
 	 	Added Enable/Disable inputs and the ability to start disabled. Fade distances in Hammer also now have spheres.
 	 	
 	 	Added unmarked DSP presets, SetDSPPreset, specific channel/pitch scale, and a local landmark keyvalue similar to trigger_teleport.
 	 	
 	 	
 	 	
 	 	
 	 	ExplodeAndRemove, negative magnitude for pulling things in
 	 	
 	 	
 	 	Uses improvements from the VDC, the , and a few open-source mods.
 	 	
 	 	
 	 	
 	 	
 	 	
 	 	
 	 	Now properly derives from Targetname in Hammer, meaning it is no longer missing user I/O, etc.
 	 	
 	 	
 	 	
 	 	
 	 	
 	 	Now supports a "target" to use for selected responses (!target1 scene actor, sound origin, etc.) and also has a new OnSpeak output
 	 	
 	 	
 	 	
 	 	
 	 	
 	 	
 	 	
 	 	
 	 	
 	 	
 	 	Added UseDefaultBloomScale and SetBloomScaleRange to Hammer, fixed SetBloomScaleRange only accepting single floats.
 	 	
 	 	Added "wind radius", a feature from that allows for multiple env_wind entities in different areas. Also added inputs to change all wind parameters and a "Tree sway scale" for how much an env_wind entity should affect $treesway materials. Also added "inner" radius, which allows the env_wind's intensity to fade out in combination with regular wind radius.
 	 	Added UnZoomWithRate and SetZoomRate inputs for unzooming at the zoom rate and setting the zoom rate after spawning.
 	 	the dedicated article] for more information.
 	 	Filters an entity by its "Classify" class, e.g. CLASS_PLAYER_ALLY.
 	 	Filters an entity by its response contexts. There is a filter_activator_context available in and newer games, but this entity works differently and has new options/capabilities.
 	 	Filters an NPC by its hint group.
 	 	Only passes entities within the specified volume, e.g. a trigger.
 	 	Filters an entity by the value of the specified keyvalue, similar to .
 	 	Uses all base filter changes detailed in filter_activator_class.
 	 	Filters an entity by its model name.
 	 	Uses all base filter changes detailed in filter_activator_class.
 	 	Filters an entity by its relationship to the target entity.
 	 	Uses all base filter changes detailed in filter_activator_class.
 	 	Filters an NPC by its squad name.
 	 	Filters an entity by its surface data.
 	 	A base filter that always returns true.
 	 	Controls the filter owner's ability to produce blood from damage. This exists to take advantage of workarounds originally used for . Can use a secondary filter to filter blood and/or actual damage.
 	 	Uses all base filter changes detailed in filter_activator_class.
 	 	Modifies damage taken by the filter's owner. Can use a secondary filter for various purposes.
 	 	Transfers damage taken by the filter's owner to the specified entity. Can use a secondary filter for various purposes.
 	 	New option for setting how to compare the damage type (should contain one, all, etc.).
 	 	This derives from ai_goal_actbusy and receives the same improvements.
 	 	Uses all base filter changes detailed in filter_activator_class.
 	 	Redirects to a target filter with the damage inflictor as the activator instead of the attacker.
 	 	Redirects to a target filter with the activator's owner entity as the activator instead of the original activator.
 	 	A filter which utilizes hooks in its Entity Scripts.
 	 	
 	 	Variant of func_areaportal that only draws when viewed from one direction. Based on the code from this article.
 	 	
 	 	
 	 	
 	 	
 	 	
 	 	
 	 	A special brush that only has a physics shadow on the client, allowing clientside ragdolls to collide with it.
 	 	Implemented the "Start Disabled" keyvalue and added a new SetFilter input.
 	 	
 	 	Detects when the player commands their squad to move somewhere within the volume, with the ability to fire outputs, cancel the order, redirect the order, etc.
 	 	
 	 	
 	 	No longer contains obsolete GoldSrc-era keyvalues.
 	 	Uses the same changes as func_door.
 	 	Radius now displays in Hammer.
 	 	Radius now displays in Hammer.
 	 	WIP entity inspired by Portal 2's world portals created by taking advantage of view rendering tricks without having to use any code from Portal itself.
 	 	Contains several new I/O/KV for controlling the fish.
 	 	
 	 	Has been given some of item_healthcharger's I/O/KV, but not all of them.
 	 	
 	 	
 	 	
 	 	The original brush ladder from MP games like . Implemented based on the Brush ladders article.
 	 	
 	 	Added the ability to manually choose a maximum fade distance.
 	 	
 	 	
 	 	Integrated CFuncMoveLinear ParentingFix.
 	 	Brush version of info_null. Functionally identical.
 	 	
 	 	SetDebris input for toggling debris status.
 	 	
 	 	Backported particle types from .
 	 	Has been given some of item_suitcharger's I/O/KV, but not all of them.
 	 	
 	 	Fixed the "Starts Locked" spawnflag.
 	 	Applied normalizaton to angles.
 	 	
 	 	Ported "ammo type", moved around a few things, added some NPC-related inputs, added a trace filter, etc.
 	 	Added support for the player to control directly.
 	 	Fixed NPC control, added heavy shot options, deprecated the "Airboat gun model" keyvalue for parenting.
 	 	Uses the same changes as func_tank.
 	 	Uses the same changes as func_tank.
 	 	A special kind of func_tank that fires outputs instead of bullets. Outputs are based on a trace that simulates a bullet trace. They pass the position where the bullet would hit, the first entity it would hit, the barrel position, etc. allowing you to effectively create your own func_tank. It can also be controlled by NPCs.
 	 	Shell radius and trace control.
 	 	Uses the same changes as func_tank.
 	 	Uses the same changes as func_tank.
 	 	Rockets now properly credit the turret's controller.
 	 	
 	 	
 	 	
 	 	
 	 	
 	 	New CheckPlayerOn input for getting a player onto a ladder if possible, ForcePlayerOn for forcing a player onto a ladder no matter what. Also stopped ladder entities from always drawing debug information when loading a level with set to a value greater than 1.
 	 	
 	 	
 	 	
 	 	
 	 	Uses the same changes as func_movelinear.
 	 	Part of the convar modification system that allows maps to change cvars in a safe and controlled way, saving them so they could be loaded later and reverting them on level unload.
 	 	New EndGameSP input that functions as a shortcut for "startupmenu force". This could be changed by certain mods (e.g. mapping competitions) for firing "map finished" events.
 	 	Reads certain global variables, like curtime.
 	 	Stores map details for things like the Discord RPC, allowing mappers to control game details shown on Discord while they're playing their map.
 	 	
 	 	
 	 	
 	 	
 	 	Added SetText from Alien Swarm and newline support with /n (mind the forward slash). Also added auto-break keyvalue.
 	 	Added outputs for several binds, also added OutButtons for use with math_bits.
 	 	
 	 	
 	 	Keyvalue for setting NPC class and ability to use squads.
 	 	Ragdolls are now properly ignited when set to spawn on fire.
 	 	
 	 	
 	 	Controls new game-specific HL2 options, like HL2/EP1 vs. EP2 flashlight or default citizen type.