trigger_push  is a   brush entity  available in all 
 Source games. It is a trigger volume that pushes entities that touch it, except those with a parent.
Bug:
 Does not affect Common infected and witches  [todo tested in ?] 
Bug:
 Does not affect drones [confirm]  [todo tested in ?] 
Keyvalues
- Name (targetname)  <string>[ Edit ]
 
- The name that other entities refer to this entity by, via Inputs/Outputs or other keyvalues (e.g. 
parentname or target).
Also displayed in Hammer's 2D views and Entity Report.  
- Push Direction (pushdir)  <angle>
 
- Angles indicating the direction to push touched entities.
 
Note:In 
 changing this keyvalue via "Point At..." creates a new "angles" property. Copy its value to "Push Direction". 
- Speed of Push (speed)  <integer>
 
- The speed at which to push entities away, in inches / second.
 
- Scale force for alternate ticks (alternateticksfix)  <float>
 
- If nonzero, scale the force by this amount when running with alternate ticks. This fixes problems with an overly large force due to the longer frametime on when running with 
sv_alternateticks 1. 
- Trigger on Start Touch (triggeronstarttouch)  <boolean> (only in 
) 
- Trigger on start touch instead of on touch.
 
- Only Falling Players (OnlyFallingPlayers)  <boolean> (in all games since 
) (also in 
) 
- Only affect players if they are falling (and not pressing jump).
 
- Player fall speed (FallingSpeedThreshold)  <float> (in all games since 
) (also in 
) 
- A player must be falling this fast for them to be pushed.
 
BaseTrigger
- Filter Name (filtername)  <filter>
 
- A filter entity to test potential activators against.
  
- Start Disabled (StartDisabled)  <boolean>
 
- Stay dormant until activated (with the
Enableinput).  
 | 
Flags
TriggerPush:
- Once Only (possibly means set velocity rather than apply acceleration) : [128]
 
- Affects Ladders (Half-Life 2) : [256]
 
BaseTrigger
- Everything (not including physics debris) : [64]
  
- Clients (Survivors, Special Infected, Tanks 
  ) : [1]  
- Only clients in vehicles : [32]
  
- Only clients *not* in vehicles : [512]
  
- Disallow Bots (removed since 
 ) : [4096]  
- NPCs (Common Infected, Witches 
  ) : [2]  
- Only player ally NPCs : [16]
  
- Only NPCs in vehicles (respects player ally flag) : [2048]
  
- Physics Objects (not including physics debris) : [8]
  
- Physics debris (include also physics debris) : [1024]
  
Pushables (Passes entities with classname func_pushable) : [4]   
- Deprecated.
  Equivalent to using Everything + filter_activator_class that filters func_pushable.  
 | 
- Correctly account for object mass (
trigger_push used to assume 100Kg) and multiple component physics objects (car, blob...) : [4096] (in all games since 
) 
Inputs
- SetPushSpeed  <integerRedirectInput/integer> (only in 
) 
- Set the push speed in inches / second.
 
- SetPushDirection  <vectorRedirectInput/Vector> (in all games since 
) (also in 
) 
- Sets the push angle of the trigger.
 
- SetSpeed  <integerRedirectInput/integer> (only in 
) 
- Sets the push speed. Still takes alternate tick keyvalue into account.
 
BaseTrigger
- Toggle
 
- Toggles this trigger between enabled and disabled states.
  
- Enable
 
- Enable trigger
  
- Disable
 
- Disable trigger
  
- TouchTest   (in all games since 
 ) 
- Triggers either the OnTouching or OnNotTouching outputs for whether anything is touching this entity. 
 Bug:Sleeping prop_physics will never fire "OnTouching". Also applies to entities using prop_physics as base.  (tested in:  )  
- StartTouch   (in all games since 
 ) !FGD 
- Behave as if the !caller entity had just entered the trigger volume. Accepts non-physical entities.
  
- EndTouch   (in all games since 
 ) !FGD 
- Behave as if !caller had just exited the trigger volume.
  
- DisableAndEndTouch   (only in 
  ) 
- Disables this trigger and calls EndTouch on all currently-touching entities.
  
 | 
Outputs
BaseTrigger
- OnStartTouch
 
- !activator = entity that caused this output
 !caller = this entity Fired when a valid entity starts touching this trigger.  
- OnStartTouchAll
 
- !activator = entity that caused this output
 !caller = this entity Fired when a valid entity starts touching this trigger, and no other entities are touching it. If there are any other entities touching the trigger when a new one begins to touch, only OnStartTouch will fire.  
- OnEndTouch
 
- !activator = entity that caused this output
 !caller = this entity Fired when a valid entity stops touching this trigger. 
 Note:Will also fire for entities touching it when trigger is disabled via Disable input 
 Warning:This includes entities which are deleted while inside the trigger. In this case !activator will be invalid. 
 Warning:OnEndTouch can fire before OnStartTouch under certain circumstances[How?] where both are fired on the same tick and each have the same delay.  Fix:Add a slight delay to OnEndTouch. 
- OnEndTouchAll
 
- !activator = entity that caused this output
 !caller = this entity Fired when all valid entities stop touching this trigger.  
- OnTouching   (in all games since 
 ) 
- !activator = !caller = this entity
 Fired if something is currently touching this trigger when TouchTest is fired.  
- OnNotTouching   (in all games since 
 ) 
- !activator = !caller = this entity
 Fired if nothing is currently touching this trigger when TouchTest is fired.  
 |