Entity that creates one-way "portal" on surfaces, rendering the image "seen" from target entity (info_target or another portal), optionally allowing to travel through to it's target. Image can be also scaled making possible to create 3D skybox or miniatures from parts of the map. Origin brush is required for this entity. This entity can be freely triggered to enable/disable rendering.


OnDestroy Function ondestroyfn : Name of the function to use from already parsed .as script files when entity is destroyed (killed) in any way. If the function belongs to namespace, you must use prefix with the namespace name (e.g. mynamespace::MyFunction) for the keyvalue.

Name targetname : Set name of func_portal so other entities can trigger it to enable or disable it. Depending on trigger use-type: 'On'- enable portal, 'Toggle'- toggle portal, 'Off'- disable portal. Can be kill-targeted.

Target target : Specify name of info_target or another func_portal that player will be teleported to when walking through surface of this func_portal.

Pitch Yaw Roll (X Y Z) angles : Where Z means Y and Y means Z, that is, when you're thinking Hammer-grid. (Hammer uses Z for height and Y for depth, while every other sane 3D-application does this the other way round; nonetheless this keyvalue description has the letters in the conventional order) This, technically, is a 3D-vector containing Euler-angles to describe either the entity's rotation or direction of effect. E.g. a func_door_rotating will use this as its initial rotation, while a trigger_push will keep its original alignment and use this for the direction of its push-effect instead. Euler-angles are a hierarchical system to determine an object's orientation in 3D-space. A yaw-value of 0 would mean the entity would face east. (right in top-down view) 90 would mean it would face north. (up in top-down-view) After yaw, pitch is applied. Think aiming up/down with your character in first person. At last, the roll-value is applied. Think your character falling over sideways in first person. Some entities, mostly point entities, do not use the angles keyvalue for any purpose.

Zoom zoom : Scales image the func_portal is displaying.

Max FPS fps : Target frames per second rendered by this func_portal. Decreasing improves performance.

Min Render Distance mindist : Minimum render distance in which func_portal is rendering. Leave empty or set to 0 for no minimum distance threshold.

Max Render Distance maxdist : Maximum render distance in which func_portal is rendering. Leave empty or set to 0 for infinite.

Texture Mode textureMode : Set which textures on this brush are replaced by display.

  • 0 : { Textures : Apply display on every surface.
  • 1 : All Textures : All transparent textures, those which names starts with '{' character.
  • 2 : Named Texture : Textures with name specified in "Texture Name" keyvalue below.

Texture Name textureName : Name of the texture to apply display on. Works only when "Texture Mode" is set to 'Named Texture'.


  • 1 : Solid : Enables collision.

  • 2 : Start Disabled : If selected, func_portal need to be enabled.

  • 4 : Teleport : Check this so portal will not only show destination image but also teleport to it.

  • 8 : No GL ClipPlanes : Usually when a portal is renderer, everything between the player and the area that the portal shows is clipped away. Usually you want this enabled, but you might want to disable this feature when creating concave portals (e.g. for 3D skyboxes).

  • 16 : Render only every 2nd frame : Update display only every two frames instead of every frame, this improves performance.

  • 32 : Shoot through : Allow shooting bullets and transporting projectiles through portal.

Portals can be moved an rotated by trigger_setorigin.

For two-way portals create two separate func_portals then let first portal target second one and vice versa.

If target is a portal and 'Teleport' flag is checked, the player will be teleported to the center of target's origin brush.