Lifts...

Hello everyone, I’m drawing near the end of a RolePlay map i am making and so far i think its going to impress a lot of you here at FacePunch. But ive hit a dead end in The Maze of Confusion. Im attempting to make a lift, and so far its proving to be soo difficult. Its the hardest Function / Entity ive attempted to make. This is how i want it to work.

  • Lift System -

Lift start on bottom floor with the “Lift doors” and “Bottom floor doors” open.
You go in press the button and the "Lift Doors and “Bottom floor doors” close and lock. So does the “bottom floor button”. And the lift rises to the next floor. When it arrives at the next floor both the “Lift doors” and “Top floor doors” open. The “Bottom floor button” unlocks. Then you go out, you can then go back in. Press the button. “Lift doors” and “Top floor doors” close and the “Top floor button locks”. The lift goes down. “Top floor button unlocks” and “Lift doors” and “Bottom floor doors” open. So on and so forth.

Please can you help me to make this, i have set up the func_tracktrain and the buttons and that is all fine. I can make it go up and down but i cannot make the doors automatically open and close. Please help! It would be so appreciated, and ill put you in the credits for helping me! <3

It seems to me that the way you want it to work is rather self-explanatory. All you need is something to trigger the inputs. I assume you have the “lift doors” parented with the func_tracktrain, so you only need to make two buttons in the lift itself. You also need two buttons outside the lift: one on the bottom floor and one at the top floor. As far as opening the doors goes, these should be the outputs from the path_track’s for the tracktrain:



On the bottom floor:
OnPass > lift doors > Open ; Delay = 2 seconds     
OnPass > Bottom floor doors > Open ; Delay = 1 second

On the top floor:

OnPass > lift doors > Open ; Delay = 2 seconds     
OnPass > Top floor doors > Open ; Delay = 1 second

Now the button in the elevator that calls it to the top floor should have the same outputs as 
the button on the top floor. These should be their outputs:
OnPress > (Name of the buttons that call the elevator to the bottom floor) > lock ; No delay
OnPress > Lift doors > Close ; No delay
OnPress > Bottom floor doors > Close ; No delay
OnPress > (Name of func_tracktrain) > Startforward ; Delay = 3 seconds

Now for the buttons that call it to the bottom floor:
OnPress > (Name of the buttons that call it to the top floor) > lock ; No delay
OnPress > lift doors > Close ; No delay
OnPress > Top floor doors > Close ; No delay
OnPress > (Name of the func_tracktrain) > StartBackward ; Delay = 3 seconds


I believe this should work. I usually use func_movelinear’s.