Lifts, lifts and more lifts.
There are several ways in which to make a lift in a map, depending on how the lift behaves will change what properties are used inside the entity or the brush entity altogether.
The most simple lift that can be made is using a 'func_door', as it moves from its starting position, then moves its height/width/breadth depending on which way the move direction is. As default the door would move 'on touch' however this can be changed.
Create a flat block with the brush tool and change it to a func_door using the 'To Entity' button.
As an example for this I want the lift to rise 128 to the top of a block. This can be done by editing the field called 'Move Direction (Pitch, Yaw, Roll)' and 'lip'.
In 'Move Direction' change the direction to up and in lip type in the height of the block that you want the lift to rise minus 2x the height of the lift (it automatically moves its height and its already 8 above the ground), however put a minus in front because it works backwards (-112).
That is the simplest lift to make but be careful because the lift can move even if it is bumped slightly.Lifts triggered by a button.
Copy and paste your lift and put it next to your other lift. We want this lift to be activated by a button.
Press Alt+Enter to bring up the door's properties and click on the tab that says flags. Un-tick the flag that says 'touch opens' and click the one that says 'toggle'.
You can click the flag that says 'use opens' if you want the actual door to be the button to activate it however we are using an external button.
In the func_door's properties go to the one called name and call it 'lift1'. This is so then the button can reference the door.
Create a block beside the lift using the brush tool and convert it to a 'func_button'.
In its flags click the 'don't move' tick and click on the tab that says Outputs. Click the 'add' button. This will add an 'output' or 'action' for the button to do.
Since the lift is now 'toggled' it will now also have to have an output to tell it when to close, otherwise it will not lower down from the height of the 128 high block.
In lift1's outputs click add. We want the lift to descend half a second after it reaches the top.
That is it for a lift that is toggled by a button however not all lifts stop at either 'A' or 'B'. What happens if you want it to stop at 'C'?Lifts with multiple stops
These are more difficult than a normal lift that uses a 'func_door', to make a lift stop at many places or it's route it needs to be changed into another entity called a 'func_movelinear'. Copy and paste your lift and change the func_door into a fun_movelinear. In the name property call it 'lift2'.
In the property that says 'move distance' put in 248. This is because we want the lift to be able to move up 2 storeys.
Since we want this one to stop at a choice of 2 levels; we need more buttons and an extra level. If you want the lift to work from all levels it is necessary to put 3 buttons on each level however we are only going to put 2 buttons on the lowest level to demonstrate how it works.
Create your extra entities.
In the button's outputs that is used for the 1st level click add.
Func_movelinear's use a decimal from 0-1 to workout the placement of the lift. 0 being its starting position and 1 its ending position. The number 0.5 would therefore put the lift at its half-way mark (or 124 units).
Do the same for the 2nd button however change its output to move to 1.
If you want to have the lift be toggled to level 0, put another button in etc.Lifts activated by a trigger
Last one! Copy and paste your 'func_movelinear' lift to another spot. We want this one to be activated by a custom shaped trigger. In the name property call it 'lift3'. In the 'move distance' property we want it to move 120 units (1 storey).
Create your block using the brush tool and change this entity to a 'trigger_multiple'.
In the trigger_multiple's properties for the one that says parent choose 'lift3'. This is so the lift doesn't activate when people are below the lift.
In the trigger_multiple's Outputs click add.
Open here will do the same as setting the position to 1. Remember also to add another output in the lift so then the lift closes automatically.
I hoped that this was helpful and keep on lifting! :)