Creating a portal elevator

== Introduction ==
It is a common misconception that making an elevator in Portal is very hard. It is, however a very simple process. If it is created properly, it can be turned into a prefab and be easily duplicated.
== The Base ==
The first thing to do is to build the base for the elevator. This consists of brushes and func_details. It is the fastest part of the process.
=== The Landing ===
A landing is really easy to make. It consists of 7 walls and a floor and ceiling with a similar hole. It can be easily recreated from the image on the right. Please note, that the image to the right, the grid is 16 units/square. When you have finished your first landing, texture it and group it, so it can be easily duplicated for the bottom landing.
===Exit / Entrance details===
Create a prop_static entity and enter the following properties:
Property Name	Value
World Model 	models/props/elevator_caps/elevator_caps.mdl
Next, fit the prop inside the entrance and exit of the elevator
====Second Model====
Make another prop_static entity and enter the following properties:
Property Name	Value
World Model 	models/props/elevatorshaft_wall/elevatorshaft_wall.mdl
Next, fit the prop inside the entrance and exit of the elevator and make sure the prop aligns with the walls.
=== The Shaft ===
The shaft is also very easy. It consists of 3 parts. A top cap, a middle piece, and a bottom cap. Walls are 192*16, and textured with plasticwall002a. The caps are 64 units tall, and the center piece is 384 units.
=== The Shaft Details ===
* 1. Create 4 16*16 sized brushes and place them in each corner. They should be turned into a func_detail.
* 2. Next, create a block that is 8*8*160.
:A. Texture it with plasticwall002a as well.
:B. Then slice it into 3 pieces vertically, that are 2, 4, and 2 respectively.
:C. Take the center piece and resize it to be 2 units wide, instead of 8. Texture it with white008.
:D. Duplicate this piece to from a square.
:E. Make it a func_detail and place one every 64 units in the center shaft.
=== The Landing Details ===
Place the elevator landing prop in the center of the landing. You may choose to add the 16 light beams, however for such a time consuming process, it is easier to copy it from the example map. Note: All original portal maps have a misplaced light beam. If copying it, you may wish to move it into place. Place the platform rings in place. The top of these rings align to the top of the platform room. Copy the landing details to the second landing.
== The Elevator ==
=== The Props ===
Place a prop_dynamic with these settings in the lower landing.
Property Name	Value
Name 	elevator1_model
Parent 	elevator1_train
World Model 	models/props/round_elevator_body.mdl
=== The func_ tracktrain ===
Hide world details and make a func_tracktrain out of invisible brushes as shown.
Property Name 	Value
Change Angles 	None
First Stop Target 	elevator1_path1
Height Above Track	0
Max Speed 	65
Name 	elevator1_train
Stop Sound 	eli_lab.elevator_stop
Volume 	1
Check every flag except Fixed Orient, and Use Max Speed. Set these settings:
=== Fixing door collisions ===
Create a brush textured with tools\toolsinvisible and place it as shown. Tie this brush to a func_brush. This will stop a player from getting stuck in the door when collisions are enabled.
Property Name 	Value
Name 	elevator1_block
Start Disabled	Yes
=== The Paths ===
Place two paths in the center of the room. Call the first one "elevator1_path1," and the second one "elevator1_path2." Do not set the second path to point to anything.
Enable props and test the map using ent_fire. Determine if the paths need to be repositioned. In my case I needed to move it back 8 units and down 16.
== The Details ==
=== Beams ===
Place an info_particle_system with the following values:
Property Name 	Value
Name 	elevator1_beam
Parent 	elevator1_train
Particle System Name	elevator_beam
Start Active 	Yes
Place an env_citidel_energy_core with these settings:
Property Name	Value
Name 	elevator1_core
Parent 	elevator1_train
=== Lights ===
Place two lights with the following settings:
Property Name 	Value
Name 	elevator1_lights
Appearence 	Slow strobe
Brightness 	183 204 218 60
Brightness HDR	183 204 218 40
Also, set initially dark.
=== Sounds ===
Place three sounds, with their source set to the elevator model.
They should be:
* Portal.elevator_chime
* Portal.elevator_start
* Doors.FullClose11
Name them something unique.
=== Shake ===
Add an env_shake with these settings:
Property Name	Value
Duration 	2
Name 	elevator1_shake
Parent 	elevator1_train
== The Trigger ==
Create a trigger brush inside the elevator with these outputs:
	My Output	Target Entity 	Target Input 	Parameter	Delay	Only Once
	OnTrigger	elevator1_doors 	SetAnimation 	close 	0.00 	No
	OnTrigger	elevator1_doors 	EnableCollision	 	0.00 	No
	OnTrigger	elevator1_block 	Enable 	 	0.00 	No
	OnTrigger	elevator1_train 	StartForward 	 	5.00 	No
	OnTrigger	elevator1_start 	PlaySound 	 	5.00 	No
	OnTrigger	elevator1_shake 	StartShake 	 	5.00 	No
	OnTrigger	elevator1_lights	TurnOn 	 	8.00 	No
Set the second path track to have these outputs:
	My Output	Target Entity 	Target Input 	Parameter	Delay	Only Once
	OnPass 	elevator1_close 	PlaySound 	 	0.00 	No
	OnPass 	elevator1_lights	TurnOff 	 	0.00 	No
	OnPass 	elevator1_chime 	PlaySound 	 	1.00 	No
	OnPass 	elevator1_doors 	SetAnimation 	open 	1.00 	No
	OnPass 	elevator1_block 	Disable 	 	1.50 	No
	OnPass 	elevator1_doors 	DisableCollision	 	1.50 	No
== Final Touches ==
Place a soundscape (portal_testchmb.elevator_shaft) in the center of the shaft. You may add a changelevel, which fires with the path_track. Change levels will not be covered in this tutorial.
To make this an elevator at the beginning, simply change the train's first stop target to elevator1_path2.
Note: You should save the elevator in its own file and copy and paste it to preserve the grouping, so you can easily turn it into a multi stop elevator.
To make a multiple stop elevator, simply add another path track, and set the middle path tracks to fire a stop event to the train. A trigger can be placed at every floor and disabled until required.
Remember to disable collision when placing your trigger in your level. Otherwise, you will not be able to enter the elevator.</div>
== See also ==
* Portal Level Creation
Category:Portal
Category:Level Design
Category:Tutorials