This entity is
not in the
FGD by default.
See below for instructions on making it available.
trigger_portal is an brush entity in the Source base code. It moves touched entity to a target location, changing the model's orientation to match the exit target. It differs from trigger_teleport in that it "reorients physics" and (probably) preserves velocity.
Note:This entity is unavailable in any Source game. However, it can be made available in Sourcemods using custom binaries by editing server_base.vpc
to include trigger_portal.cpp
before building the project, or by adding the file within Visual Studio after building the project.
Bug:The code for this entity will not compile on its own. See below for how to fix it. [todo tested in ?]
FGD Code
@SolidClass base(Trigger, Angles) = trigger_portal :
"A trigger volume which teleports touched entities and reorients their physics."
[
RemotePortal(target_destination) : "Remote Portal" : : "The trigger_portal linked to this entity. Entities that touch this entity will be teleported to the Remote Portal."
//Inputs
input SetRemotePortal(string) : "Set the remote portal to the specified trigger_portal."
]
Code Fix
Line 278 and 302:
SetContextThink( &CTriggerPortal::DisabledThink, gpGlobals->curtime + 0.1, TRIGGER_DISABLED_THINK );
Keyvalues
- Remote Portal ([todo internal name (i)]) <targetname>
- The trigger_portal linked to this entity. Entities that touch this entity will be teleported to the Remote Portal.
BaseTrigger
- Filter Name (filtername) <filter>
- A filter entity to test potential activators against.
- Start Disabled (StartDisabled) <boolean>
- Stay dormant until activated (with the
Enable input).
|
- Pitch Yaw Roll (Y Z X) (angles) <QAngle>
- This entity's orientation in the world. Pitch is rotation around the Y axis, yaw is the rotation around the Z axis, roll is the rotation around the X axis.
Flags
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 .
|
Inputs
- SetRemotePortal <stringRedirectInput/string>
- Set the remote portal to the specified trigger_portal.
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.
|