Creating An Auto Portal
Introduction
This guide will show you how to make an auto portal, this is a very simple process and should be done in no time.
Auto Portal on the wall to walk through
The Frame
Make a prop_static entity and change it's world model to "models/props/autoportal_frame/autoportal_frame.mdl"
The Portal
Make a prop_portal entity and name it "portal". Set the Property "Start Activated" to Inactive. Set the "Portal Number" property to which portal you are using. Note: Portal 1 is the Blue Portal and Portal 2 is the Orange/Red Portal.
Position the prop_portal 2 units above the bottom of the portal frame (prop_static entity).
Portal Spawn Sound
Make an ambient_generic entity and name it to "sound_portal_spawn". Set the "Sound Name" value depending on what type of portal you have. Portal.open_blue is the Blue Portal and Portal.open_red is the Orange Portal. Set "Max Audible Distance" to "333". Set "Source Entity Name" to "portal".
Go to flags and make sure these are set... [] Play Everywhere [] Start Silent [^/] is NOT Looped
Portal Spawn Shake: Make an env_shake entity and name it to "shake_portal_spawn".
Optional (Recommended)
If you want to make this a prefab, I suggest following these steps to make things easier... Make a logic_relay and name it to relay_portal_spawn Add the outputs:
OnTrigger portal SetActivatedState 1 OnTrigger shake_portal_spawn StartShake OnTrigger sound_portal_spawn PlaySound
Auto Portal for ceilings, floors, Portals for Flinging:
I highly suggest you read "Auto Portal on the wall to step through" before you enter this part.
Aligning the portal
perfectly center the portal with the auto-portal frame
Rotating
Simply rotate the entire portal and make further corrections afterwards. Note: Rotating the prop_portal will make the portal look like it is in the same position in the hammer editor, you will have to rely on which direction the origin (yellow line in 2d view) is facing.
Implementation:
Make the Portal spawn
Make some entity trigger the relay_portal_spawn logic_relay
For example with:trigger_once:
OnTrigger relay_portal_spawn Trigger
Make the Portal close
To make the portal close, give prop_portal entity an input of
SetActivatedState 0