----   -   -  -----  -     ----     -----  ----   -----   ---  -  --   ---
| -- \ | | | | -   - | |   |  - \    -   - |  - \  -   -  / -- | |/ /  / -- --
| -- / | | | |  | |  | |   | | \ \    | |  |  - /   | |  / /   |   /   \ \  --
| -- \ | | | |  | |  | |   | | / /    | |  |  - \   | |  \ \   |   \    \ \ --
| -- / |  -  | -   - |  -- |  - /     | |  | | \ \ -   -  \ -- | |\ \  -- / --
 ----   -----  -----  ----  ----       -    -   -- -----   ---  -  --  ---
       _                    _ _       _     _           ___   _   _   _
      |_ | | |\ |  \    / |  |  |_|  |_ |  |_ \  /  /\   |   / \ |_> <_
      |  |_| | \|   \/\/  |  |  | |  |_ |_ |_  \/  /  \  |   \_/ | \  _>
              _          __   __           __            __
             |_> \ /    /_   /_  /|//  /  /   /_/  /|   /_/  /|//
             |_>  |    __/  /_  /  /  /  /_  / /  / |  / |  /  /
Build Tricks: Fun With Elevators
by Semicharm
This is a guide to using and controlling Build's elevator sector effects.  It
will take you step-by-step from the basic principles for controlling elevator
effects to the creation of a fully functional elevator that works like a real
elevator.  
Each section outlines solutions to solving problems from previous sections and
adding new features to them as well, so please do not skip ahead.  Also, each
section includes examples, tips, and notes on how and why these tricks work. 
This guide also includes sample maps to demonstrate the effects detailed in
each section.
This guide assumes that you are familiar with all of the basics of using the
Build editor and creating sector effects.  If you are still learning Build, I
recommend getting "The Map Editing FAQ", by Jonah Bishop.  For those who
already know how to use Build, I recommend reading "The Build Tricks
Tutorial", by Patola.  Many of the "help sector" tricks are used to great
effect in this guide.
Table of Contents
Introduction
Controlling the Elevator
Section 1: Simple Three-Floor Elevator
1.1 Introduction
1.2 Setup
    Figure 1a Rooms and elevator
    Figure 1b Separating Room3 from the elevator
1.3 Mutilswiches
1.4 Setting up the Stop
    Figure 1c Adding a Stop to the elevator
    Figure 1d Tags and corresponding movement of the elevator
1.5 Setting the Starting Position of the Elevator
Section 2: Simple Four-Floor Elevator
2.1 Introduction
2.2 Setup
    Figure 1a Rooms and elevator
    Figure 2b Separating Room2 and 4 from the elevator
2.3 Setting the Starting Position of the Elevator
Section 3: Elevator Doors
3.1 Introduction
3.2 Controlling the Doors Using Two-Way Trains
3.3 Ceiling Door
    Figure 3a Adding a ceiling door to Room1
3.4 Sliding Door
    Figure 3b Adding sliding doors to Room2 
  3.4.1 A More Realistic Elevator Door
        Figure 3c. Connecting the elevator to the doorway of Room2
        Figure 3d: Connecting the elevator to the doors of Room2
  3.4.2 Metal Gates
        Figure 3e: Adding metal gates to Room3
  3.4.3 Another Sliding Door for Elevators
        Figure 3f: Adding sliding doors to Room4
        Figure 3g: Connecting the elevator to the doors of Room4
3.5 Correcting the Timing of the Doors
  3.5.1 Using Two-Way Trains to Delay the Elevator
  3.5.2 Using Auto-Close Doors for Timing
  3.5.3 Adjusting the Timing of the Doors
3.6 Setting the Starting Position of the Elevator
Section 4: Elevator Call Buttons
4.1 Introduction
4.2 Complex Switches
4.3 Setup
  4.3.1 Setting Up the Switches
        Figure 4a Call button for Room3
  4.3.2 Controlling the Stops
  4.3.3 Setting the Starting Position of the Elevator
4.4 Adding Switches to the Elevator
4.5 Adjusting the Timing of the Doors and Stops
4.6 Adding Buttons to the Elevator
4.7 Call Button Lights
Section 5: Advanced Topics
5.1 Design Issues
  5.1.1 Adding More Floors to the Elevator
  5.1.2 Player Staring Points
  5.1.3 "Floor Rise" GPSpeed Bug
5.2 Creating Elevator Platforms
5.3 Complex Elevators
  5.3.1 Creating Free Standing Structures in an Elevator
5.4 Elevator Transport Effect
5.5 Single Door Elevator
    Figure 5a Connecting the floors to a single doorway
    Figure 5b Adding the track and sliding sectors
    Figure 5c Completed effect
5.6 Myst Elevator
Closing Thoughts
About the Author 
Introduction
Normally, elevators in Build only go between two floors, but this doesn't
reveal how they really work.  If there are more than two sectors connected to
the elevator's sector, things begin to get interesting.  Take either of the
"elevator platform" effects for example.   When the elevator is activated,
Build looks at the floor heights of the connected sectors to see if there are
any that are lower than the floor of the elevator's sector.  If so, Build
lowers its height to the height of the next lower floor.  If it is already at
the height of the lowest sector, then Build raises its height to the height of
the next higher floor.  Contradictory to the Build documentation, both
"elevator platform" effects are identical and interchangeable.  
Unfortunately, they are not particularly useful.  The other two elevator
effects however will do the opposite.  If there are any connected sectors with
floors that are higher than the floor of the elevator's sector, Build raises
its height to the height of the next higher floor. Otherwise, Build lowers its
height to the height of the next lower floor.  With this in mind some
interesting effects are possible.
Controlling the Elevator.
While this by itself may seem useful, there's a catch; once an elevator effect
reaches the highest sector, it will only go back and forth between the two
highest sectors.  However, there is a way to use all of this to our advantage
in order to control the movement of the elevator.  To do this, the floor
heights of the connected sectors need to be moved.  If the heights of these
sectors could be controlled, the movement of the elevator could be controlled
as well.  Since it does not make any sense to move the doorways connected to
the elevator, they need to be separated from the elevator with another sector. 
Now all that is needed is to connect new sectors to the elevator and set them
to go between the lowest height for the elevator and any height you want.  The
easiest way to do this is to use the "floor rise" effect.  These sectors will
be called "Stops".  When you want the elevator to stop at a particular height,
just set one of the Stops to go to that height.  After the Stop has moved into
place, activate the elevator and reset the stop to the lowest height.  When
the elevator is activated, Build first looks for the next highest sector and
then the next lowest sector.  Since the Stop would be the only sector that is
higher than the other connected sectors, it will always move the elevator to
that height.  Of course, it can be forced to go to the lowest height by not
setting any of the Stops before activating the it.
One thing to note is that if the Stop is moving when the elevator is
activated, the elevator will move to the height where the Stop was at that
moment, so make sure that the Stop is not moving first.  However, it is OK to
move a Stop after the elevator is activated because Build only checks the
heights when it activates the elevator.
Well, that is enough theory.  Now for some practical examples that you can use
in your own maps!
Section 1: Simple Three-Floor Elevator
Difficulty: Intermediate
Map: EX1S3.MAP
1.1 Introduction
The first problem to tackle is to make an elevator go between three floors. 
This time we'll use several shortcuts so that we can focus the Stop itself.  
The easiest way to control the elevator and Stop is to use a multiswich. 
Since the multiswitch can only activate four consecutive tags, in order, the
elevator will go to the next floor each time the switch is activated like so,
floor 1->2->3-> 2->1->2...
1.2 Setup
First, create an elevator with three adjoining rooms.
Call these Room1, 2, and 3.
- Set the sector floor and ceiling heights of each of the rooms.  
- Set the height of the elevator floor to the height of the floor of Room1.
- Set the ceiling to the height of the ceiling of Room3.
Figure 1a Rooms and elevator (top and front views)
+--------+--+--------+            +--+--------+
|  Room2 |  | Room3  |            |  | Room3  |
+--------+--+--------+            |  +--------+
         |  |                     |  |
         |R |            +--------+  |
         |o |            |  Room2 |  |
         |o |    |       +--------+  |    |
         |m |  --+--x             |  |  --+--x
         |1 |    |                +--+    |
         +--+    y          Room1 |  |    z
                                  +--+
Room3 needs to be separated from the elevator so that it does not interfere
with it. 
- Spilt the elevator sector by creating a sector in the elevator and  
connecting it to the doorway of Room3.
Figure 1b Separating Room3 from the elevator (top view)
--------+------
       /|           |
       +| Room3   --+--x
       +|           |
       \|           y
        +------
-------++
 Room1 |
You should make this sector very narrow so that it is not seen when playing
the map.
- Now set the sector tag of the elevator to 19 to make it an "elevator up" 
  effect.
1.3 Multiswitches
- Add a multiswitch (#147) to each room and in the elevator.
Note: Use sprite #147, NOT #146.  It works like the normal multiswitch, but
only activates one tag at a time.  Also, it activates the second tag, of the
four tags that it can activate, the first time the player uses it in the game.
The multiswitch requires four consecutive tags, so for this example use tags
11 to 14.  
- Set the LoTags of the multiswitchs to 11.  
Note: Sprites in elevators tend to act strangely.
- Make the multiswitch one-sided.
- Face it against the back wall so that it cannot be seen.  
- Make it really big, so that the player can press anywhere on the back wall
  to activate it.
The elevator needs to be activated every time one of the multiswiches is
activated.
- Add four Activators to the elevator a set their LoTags to 11, 12, 13, and
  14.
1.4 Setting up the Stop
Next, add a Stop for Room3 so that the elevator can go there. 
- Connect a sector to the back of the elevator.
- Make it a "floor rise" SectorEffector (SE31).
- Set the height of the floor to the height of the floor of Room1.
- Set the height of the SE to the height of the floor of Room3 
- Set the angle of the SE to 512, so that the Stop starts at this height in
  the game.
Figure 1c Adding a Stop to the elevator (top and front views)
              ++                +-----++--------
              ||<-Stop          |     ||
--------+-----++--------        |     || Room3
        |      |                |     ||
  Room2 |      | Room3          |     SE--------
        |      |                |     ||
--------+      +--------        ~     ~~
        ++----++                ~     ~~
         |    |     |           |+----+|          |
          Room1   --+--x        ||    ||        --+--x
                    |           ||    ||          |
                    y           ||    ||<-Stop    z
                           Room1++----++
Here is how to setup an elevator Stop.  The Stop needs to be at Room3 before
the elevator can go there.  In this example it's best to do this when the
elevator goes from Room2 down to Room1, so that it has enough time to move
into place.  This needs to happen when the multiswitch activates tag 11. 
- Add an Activator with a LoTag of 11 to the Stop.
The Stop also needs to be reset after the elevator goes to Room3. 
- Add another Activator with a LoTag of 13 to the Stop.  
Figure 1d Tags and corresponding movement of the elevator (front view)
           +--+-
           |  | 14
      / \  |  +- |
       |   |  |  |
       |  -+  | \ /
      13   |  |  11
      / \ -+  |  |     |
       |   |  |  |   --+--x
       |   +--+ \ /    |
      12   |  |        z
           +--+  
The Stop needs to move quickly so that elevator cannot be activated again
while the Stop is moving. 
- Add a GPSpeed sprite to the Stop
- Set the LoTag to 1024.
Note: Even though it would be preferable to set the speed even higher, this
can trigger a bug in the Build engine that prevents the Stop from reaching the
set height.  While it is possible to work around the bug, it can be tricky to
do so.
- Finally, set the height of the elevator's ceiling to what ever you want.  
Once you've tested the elevator in the game you'll want to hide the Stop so
that it cannot be seen while playing the game.
Note: The map, EX1S3.MAP, is the polished version of the original prototype
that I used to test the multi-floor elevator trick.
1.5 Setting the Starting Position of the Elevator
Even though the elevator in this example is setup to start at Room1, it can
also be setup to start at Room2 or 3 as well.  To do this, the elevator needs
to be setup as if it is at that room during the game.
To setup the elevator to start from Room2
- Move the floor and ceiling of the elevator sector up to the height of the
  floor and ceiling of Room2.
- Change the spite of the multiswitches to sprite #148, which activates the 
  third tag the first time the player uses it in the game.
To setup the elevator to start from Room3
- Move the floor and ceiling of the elevator sector up to the height of the
  floor and ceiling of Room3.
- Change the spite of the multiswitches to sprite #149.  Which activates the
  four tag the first time the player uses it in the game.
When the elevator goes to Room3, the Stop needs to be reset.  Since the
elevator is starting at Room3, the Stop needs to at the at the lowest height
at the start of the game.
- Set the angle of the SE in the Stop to 1536.
Tag Reference
Tag  Use                                     Activates
11   Send elevator from Room2 to Room1       Elevator, Stop
12   Send elevator from Room1 to Room2       Elevator
13   Send elevator from Room2 to Room3       Elevator, Stop
14   Send elevator from Room3 to Room2       Elevator
Section 2: Simple Four-Floor Elevator
Difficulty: Intermediate - Advanced
Map: EX2S4.MAP
2.1 Introduction
For another practical example, we will expand the elevator from Section 1 by
adding a fourth floor.  This time the elevator will move like so: floor 1->2-
>3->4->1->2...  Unfortunately, some of the shortcuts will not work this time,
so things will get a bit more complicated.
2.2 Setup
Using the map you created in Example 1, connect another room, Room4, to the
elevator that is higher than the other three.
- Set the height of ceiling of the elevator to the height of the ceiling of
  Room4.
- Add another multiswitch in Room4.
Make sure that the switch in the elevator is not blocking the doorway of
Room4.  Most of the space on the walls of the elevator are used for the four
doors.  In the sample map, EX2S4.MAP, there is a tall, thin multiswitch in
each of the four corners, such that they are not seen during the game and the
player can still press on any of the walls of the elevator to activate them.
Room2 did not need a Stop in the previous section, but this time it does.
- Add two more Stops to the elevator, Stop2 and 4, so that the elevator can go
  to these rooms.
- For Stop 2, set the floor to the height of the floor of Room1.
- Set the height of the SE to the height of the floor of Room2 
- Set the angle of the SE to 512.
- For Stop4, set the floor to the height of the floor of Room1.
- Set the height of the SE to the height of the floor of Room4
- set the angle of the SE to 512.
- Also add GPSpeed sprites to Stop2 and 4 and set their LoTags to 1024. 
Figure 2a. Adding Room4 and Stop2 and 4 (top and front views)
         Room4                       +-----+++-+
        |    |++++             Room4 ||    ||| |
        |    |||||                   ||    ||| |
       ++----++++++                  ||    ||| |
-------+      432 +-------           |+----+SE |
       |          |                  |      ||<-Stop4
 Room2 |   19     | Room3            |      || |
       |          |                  |      || |
-------+          +-------           |      |++|-------
       ++----+----+                  |      ||||
        |    |       |               |      |||| Room3    |
         Room1     --+--x            |      ||||        --+--x
                     |               |      |SE|-------   |
                     y               |      ||||          Z
                                     |      |||<-Stop3
                                     |      ||||
                              -------+      ||++
                                     |      ||||
                               Room2 |      ||||<-Stop2
                                     |      ||||
                              -------+      ||SE
                                     |      ||||
                                     |      ||||
                                     |      ||||
                                     |+----+||||
                                     ||    |||||
                                     ||    |||||
                                     ||    |||||
                               Room1 ++----+++++
Stop4 needs to be at Room4 before the elevator can go there.  It is best to do
this when the elevator returns to Room1 and this needs to happen when the
multiswitch activates tag 11. 
- Add an Activator with a LoTag of 11 to the Stop.
The Stop also needs to be reset after the elevator goes to Room4.
- Add another Activator with a LoTag of 14 to the Stop.   
Also, Stop2 needs to be at Room2 before the elevator can go there.  It is best
to do this when the elevator returns to Room1.
- Add an Activator with a LoTag of 11 to the Stop.
The Stop also needs to be reset after the elevator goes to Room2.
- Add another Activator with a LoTag of 12 to the Stop.
In Section 1, Room2 did not interfere with the movement of the elevator, so it
did not need to be separated from the elevator.  However, this is rarely the
case, so Room2 and Room4 need to be separated from the elevator.  
- connect sectors to the doorways of both rooms like we did for Room3 in
  Section 1.2.
Figure 2b Separating Room2 and 4 from the elevator (top view)
       Room4
       |    |||||
      ++----++++++
------+ \__/     +------
      |\        /|          |
Room2 ||  19    || Room3  --+--x
      |/        \|          |
------+          +------    y
      ++----+----+
       |    |
        Room1
- Remove the sector tag from these sectors 
- Set the height of their ceilings to the height of the ceiling for the room.  
They could be higher, but they need to be at least this high.
You should also make these sectors very narrow so that they are not seen when
playing the game.
- Finally, move the ceiling of the elevator back down.
Once again, after you've tested the elevator in the game you will want to hide
the Stops so that they cannot be seen while playing the game.
2.3 Setting the Starting Position of the Elevator
This time the elevator can start from Room1, 2,or 3, but not Room4.  Starting
the elevator from Room4 would require using the normal mutliswitch, sprite
#146, which activates two tags each time it is used.  Because of this, it will
not work properly with the stops.
To set the starting position of the elevator, it needs to be setup as if it is
at that room during the game.
To setup the elevator to start from Room1
- Set the floor and ceiling of the elevator sector to the height of the floor
  and ceiling of Room1.
- Change the spite of the multiswitches to sprite #147, which activates the
  second tag the first time the player uses it in the game.
When the elevator goes to either Room2 or 3, the Stop for that room needs to
be reset.  Since the elevator is starting at that Room, the stop needs to at
the at the lowest height at the start of the game.
To setup the elevator to start from Room2
- Move the floor and ceiling of the elevator sector up to the height of the
  floor and ceiling of Room2.
- Change the spite of the multiswitches to sprite #148.  It will activate the
  third tag the first time the player uses it in the game.
- Set the angle of the SE in Stop2 to 1536.
To setup the elevator to start from Room3
- Move the floor and ceiling of the elevator sector up to the height of the
  floor and ceiling of Room3.
- Change the spite of the multiswitches to sprite #149.  It will activate the
  four tag the first time the player uses it in the game.
- Set the angle of the SE in Stop3 to 1536.
- Set the angle of the SE in Stop2 to 1536.
Tag Reference
Tag  Use                                     Activates
11   Send elevator from Room4 to Room1       Elevator, Stop2, Stop3, Stop4
12   Send elevator from Room1 to Room2       Elevator, Stop2
13   Send elevator from Room2 to Room3       Elevator, Stop3
14   Send elevator from Room3 to Room4       Elevator, Stop4
Section 3: Elevator Doors
Difficulty: Expert
Map: EX3S4D.MAP
3.1 Introduction
For the next example, we are going to add doors to the four-floor elevator
from Section 2.  This section will explore several styles of doors and how to
get them to work in sync with the elevator.  The techniques discussed here can
be applied to not only elevators, but all kinds of other effects as well!
3.2 Controlling the Doors Using Two-way Trains
First we need to use a trick to control the doors.  
- For this task create four two-way trains (ST31;SE30), one for each door.  
Let's call them Train1A, 2A, 3A, and 4A.  
Note: For those who are not familiar with this trick, the two-way train can be
used to activate two consecutive tags and the length of the track controls the
timing between activations.  It also locks every switch that has the same
LoTag as an Activator in the train's sector.  I assume that it does this to
prevent the player from trying to activate the train while it is moving.  This
is very important because it also prevents the player from interfering with
the elevator as well.
The trains do not need to be fancy, simple squares will do.  
The tracks should be just wide enough to fit the train and at least 14 units
long at the largest grid size.  
Note: Do not connect the tracks to any of the rooms, because you do not need
to see the trains when playing the game.  However, sometimes it can be useful
to see the trains when debugging the elevator.
- For this example set the HiTag of Train1's SE to 111.
The door should open when the elevator arrives at Room1 and closed when it
leaves Room1.
- Add two Activators with LoTags of 11 and 12.
- Set the HiTag of Train2's SE to 121.
- To open and close the door for Room2 add two Activators with LoTags of 12
  and 13.
- Set the HiTag of Train3's SE to 131.
- To open and close the door for Room3 add two Activators with LoTags of 13
  and 14.
- Set the HiTag of Train4's SE to 141.  To open and close the door for Room4.
- Add two Activators with LoTags of 14 and 11.
3.3 Ceiling Door
Start by adding a simple ceiling door to Room1.
- First, create a sector for the doorway where Room1 connects to the elevator.
- Set the height of the ceiling to the desired height for the door.
- To create the door, spilt this sector twice, making three sectors.
- Make the middle sector a "ceiling door" (ST20) 
- Add an Activator with of LoTag 111, the first tag for Train1.
Figure 3a Adding a Ceiling Door to Room1 (top view)
 Room2 |          | Room3
-------+          +-------
       ++----+----+
        +----+             |
        +----+ <-door    --+--x
        +----+             |
        |    |             y       
         Room1
Now is a good time to test the door.  
If the door does not work, double check the settings for Train1 and the door.
If the door opens before the elevator arrives at Room1, make the track for
Train1A longer.
If the door stays closed for a long time after the elevator arrives at Room1,
make the track for Train1A shorter.
It's just a mater of trial and error.
3.4 Sliding Door
Another type of door commonly used for elevators are sliding doors
(ST25;SE15), so add a pair to Room2.  For this example uses my simple method
for creating sliding doors, but any method will do.
- First, create a sector for the doorway where Room2 connects to the elevator. 
- Set the height of the ceiling to the desired height for the door. 
- Add two points to each white-wall of the doorway.
- Use these points to connect a new sector for each door.  
The doors should meet at the middle of the doorway.
- Set the sector tags of the doors to 25. 
- Add a SectorEffector with a LoTag of 15 to each door.  
- Angle the SE's so that they point toward each other. 
- Now, lower the ceiling of the door sectors to the floor.
- Move their walls up against the walls of the doorway without overlapping.  
Figure 3b Adding sliding doors to Room2 (top and left views)
          | Room4            |                  |
         ++-------           |+----------------+|
------++++                   ||       ||       ||
      ||||                   ||       ||       ||
      ||||                   ||       ||       ||
      ||||                   ||       ||       ||
Room2 |++|                   ||       ||       ||
      |++|                   ||       ||       ||
      ||||                   ||       ||       ||
      ||||            |      ||       ||       ||     |
      ||||          --+--x   |+-------++-------+|   --+--y
------++++            |      |                  |     |
         ++-------    y                               z
          | Room1
You can look at the example map, EX3S4D, to see how this should look.  This
may sound harder than it really is, but in practice it is easy to make
compared the style of sliding doors used in the game maps.
Since the doors are closed at the start of the game, use the second tag for
Train2 to activate them.  
- Add an Activator to each door with a LoTag of 122.
- Also set the SE's HiTag of one of the doors to 126 and the other to 127.   
Note: Both doors have to have Activators or else the player could open one of
them.  Because both of the doors have Activators with the same LoTag, their
SE's also must have different HiTags.
Again, you should test the map to make sure that these doors are working
correctly.
3.4.1 A More Realistic Elevator Door
While these sliding doors look fine for an elevator platform, they do not look
like the doors you would see in a real elevator.  Real elevators have two
separate sets of doors; one is attached to the elevator shaft at each floor
and the other is attached to the elevator itself.  So now we'll modify the set
of sliding doors to Room2 to make them look like real doors!
Before we continue, now would be a good time to save.
Remove the sector separating Room2 from the elevator by joining the elevator
sector with it, connecting the doorway of Room2 to the elevator.  
Figure 3c. Connecting the elevator to the doorway of Room2 (top view)
       Room4
       |    |||||
      ++----++++++
------+ \__/     +------
      |         /|          |
Room2 |   19    || Room3  --+--x
      |         \|          |
------+          +------    y
      ++----+----+
       |    |
        Room1
Regardless of how you made the doors the basic process is still the same.  
- Set the height of the floor of the doorway and door sectors to the height of
  the floor of Room1.
- Connect the corner points of the doors that are closest to the elevator.  
The doorway should now be split.
- If you used my method for making sliding doors, make sure to lower the
  ceiling of the door sectors to the floor.
Note: If you made doors with white walls, like the style used in the game
maps, just connect the corner point of the doors to the point on the red wall
between the them that is closest to the elevator.
- Join the elevator sector with the part of the doorway that is still
  connected to it.
Now the doors should be connected to the elevator itself.
Figure 3d: Connecting the elevator to the doors of Room2 (top and front views)
          | Room4             -------++-+
         ++----------                || |
-------+++                     Room2 || |
       |||                           || |
       |||                    -------++ |       |
       |||                            | |     --+--x
 Room2 |++\_connected           door->| |       |
       |++/  points                   | |       z
       |||                            | |+-
       |||               |            | ||
       |||             --+--x         | || Room1
-------+++               |            | ||
         ++----------    y            +-++-
          | Room1
In 3D mode you should see the door to Room2 from inside the elevator.  
- Use the 'O' key on each door to orientate the texture with the elevator
  ceiling.
If you move the ceiling of the elevator, the door textures should move with
it.
If this did not work, DO NOT SAVE!  Reload your map and try again.  If you
still do not get it to work correctly, look at the example map, EX3S4D, to see
how this should look.
- Now realign the textures on both sides of the door and test the map.
3.4.2 Metal Gates
While writing this guide I thought of two more designs for sliding doors, so I
included them as well.  Next we wil add metal gates to Room3.  These would be
very fitting for a map with an industrial or ghetto setting.
These doors require using my method for making sliding doors; the style used
in the game maps will not work this time.
Follow the directions used for the doors in section 3.4 to create two doors in
the doorway of Room3, only this time do not lower the ceilings of the door
sectors.
- Connect both of the corner points of the doors where they meet, splitting
  the doorway twice.
- Join the elevator sector with the part of the doorway that is still
  connected to it.
Now the doors should be connected to the elevator itself.
- Raise the ceilings of the door sectors and the sector in between them up to
  the height of the ceiling of Room4.
- Lower the floors of these sectors to the height of the floor of Room1.  
Note: Their ceilings have to be at least this heigh or else they will not look
correct.
Figure 3e: Adding metal gates to Room3 (top view) 
 | | | 
-+-+-+-++
        +++--------
        |||
        |||
        |||
        ++| Room3 
        ++|
        |||
        |||            |
        |||          --+--x  Room1
        +++--------    |
-------++              y
Since the doors are closed at the start of the game, we need to use the second
tag for Train3 to activate them.  
- Add an Activator to each door with a LoTag of 132.
- Also set the SE's HiTag of one of the doors to 136 and the other to 137.
- Add a mask wall to both walls of each door.
- Use the 'O' key on each door to orientate the texture with the ceilings of
  the elevator and Room3.
Make sure to align the textures on both sides of the walls.
When you are done there should be a set of gates in the elevator and a set of
gates at Room3.  Both sets will open when the elevator reaches Room3.  
You should test the map to make sure that these doors are working correctly.
3.4.3 Another Sliding Door for Elevators
I do not know what to call this one.  It is the style of elevator doors that
are common in office buildings.
Note: While this can be done with the style of sliding doors used in the game
maps, my style is much easier.
Follow the directions used for the doors in section 3.4 to create a single
door in the doorway of Room4.
- Make the door only half as wide as the doorway.
- Add two points to the edge of the door.
- Connect another door to it.
- Make this door half as wide as the doorway, so that the door closes it off,
  and half as thick as the other door.
- Also, position the door about half way between the elevator and Room4.
The smaller door will need to move the entire width of the doorway.
- Add a GPSpeed sprite to this door and set its LoTag to 512.
Figure 3f: Adding sliding doors to Room4 (top view)
           |              Room4               |
           +----------------------------------+
           +----------------+                 | 
           |                +----------------+| |  |  |
           |                +----------------+| |  |  |
           +----------------+                 | |  |  |
           +----------------------------------+ |  |  | 
           |                                  | +--+--+    |
-------+++-+                                  +-+        --+--x
       |||                                                 |
 Room2 |||                                                 y
       |||
- Now add two points to the edge of the bigger door, one on each side of the
  smaller door.  Position these points as close to the small door as you can.
Note: These points are needed to keep the smaller door from warping the edge
of the bigger door, or at least so that this is not seen. 
Since the doors are closed at the start of the game, we need to use the second
tag for Train4 to activate them.  
- Add an Activator to each door with a LoTag of 142.
- Also set the SE HiTag of one of the doors to 146 and the other to 147.  
Now connect them to the elevator.  
- Remove the sector separating Room4 from the elevator by joining the elevator
  sector with it, connecting the doorway of Room4 to the elevator.  
- Add a point to the side of the doorway near the smaller door.
- Connect it with the corner point of the door that is closest to the elevator
  to split the doorway.  
- Join the elevator sector with the part of the doorway that is still
  connected to it.  
Figure 3g: Connecting elevator to doors of Room4 (top view)
          |              Room4               |
          +----------------------------------+
          +----------------+                 | 
          |                +----------------+| |  |  |
          |                +----------------++ |  |  |
          +----------------+                 | |  |  |
          |                                  | +--+--+    |
--------+-+                                  +-+        --+--x
        |                                                 |
  Room2 |                                                 y
        |
- Set the height of the floor of the doorway and door sectors to the height of
  the floor of Room1.
- Lower the ceiling of the door sectors to the floor.
In 3D mode, use the 'O' key on each door to orientate the texture with the
elevator ceiling 
Realign the textures on each side of the doors.  
You should test the map to make sure that these doors are working correctly.
Tag Reference
Tag  Use                                     Activates
11   Send elevator from Room4 to Room1       Elevator, Stop2, Stop3, Stop4,
                                             Train1A, Train4A
12   Send elevator from Room1 to Room2       Elevator, Stop2, Train1A, Train2A
13   Send elevator from Room2 to Room3       Elevator, Stop3, Train2A, Train3A
14   Send elevator from Room3 to Room4       Elevator, Stop4, Train3A, Train4A
111  First tag for Train1A                   Door for Room1
112  Second tag for Train1A
121  First tag for Train2A
122  Second tag for Train2A                  Doors for Room2
126  HiTag of door for Room2
127  HiTag of door for Room2
131  First tag for Train3A
132  Second tag for Train3A                  Doors for Room3
136  HiTag of door for Room3
137  HiTag of door for Room3
141  First tag for Train4A
142  Second tag for Train4A                  Doors for Room4
146  HiTag of door for Room4
147  HiTag of door for Room4
3.5 Correcting the Timing of the Doors
Before moving on there still is a problem that should be addressed; the
elevator starts moving before the doors close.  This is especially obvious
when using slow-moving effects such as sliding doors.  To fix this problem,
the activation of the elevator needs to be delayed long enough for the doors
to close.
3.5.1 Using Two-Way Trains to Delay the Elevator
First, create four more trains like before, one for each door.  Let's call
these trains, Train1B, 2B, 3B, and 4B.
The track sectors should be at least 7 units long at the largest grid size.
Note: Again, do not connect the tracks to any of the rooms, because you do not
need to see the trains when playing the map.
- For this example, set the HiTags of these train's SEs to 113, 123, 133, and
  143.
Each train needs to be activated before the elevator leaves a room.  The
elevator will leave Room1 when the multiswitch activates tag 12, Room2 when it
activates tag 13, Room3 when it activates tag 14, and Room4 when it activates
tag 11.  
- Add an Activator to the Train1B with a LoTag of 12.
- Add another Activator with a LoTag of 13 to Train2B.
- Add another Activator with a LoTag of 14 to Train3B.
- Add another Activator with a LoTag of 11 to Train4B.
3.5.2 Using Auto-Close Doors for Timing
Now these trains need to be reset back to their starting positions after they
activate their second tags so that they will be ready for next time.  To do
this we need to use another timing trick, the auto-close door.
Note: When a door, such as the "ceiling door", has an auto-close effect (SE10)
it will activate the tags of any Activators in the door's sector.  We can use
this to our advantage, but it can be just as much of a disadvantage.  For
instance, if an Activator is used to open the door, all of the Activators with
the same LoTag will be activated again when the door closes, so be careful
when using this trick.
These doors should not be seen when playing the game.
- For this example create a "ceiling door" at the end of the track of Train1B,
  2B, 3B, and 4B.
- Add an auto-close effect (SE10) to each door.  
- Set the HiTags of these SEs to 4.
Note: The auto-close delay of the door tricks needs to be long enough to let
the door tricks open completely, or else they will close without activating
anything. 
The train needs to activate the door trick to open it, but the door trick also
needs to activate the train when it closes.
- Add an Activator with a LoTag of 114 to the door trick for Train1B.
- Add another Activator with a LoTag of 115 to the door trick and the train.  
For the three other trains do the same thing, except use LoTags 124 and 125
for Train2B, 134 and 135 for Train3B, and 144 and 145 for Train4B.
The elevator needs to be activated after these trains activate their second
tags.  The second tags could be used to activate the elevator, but if the
elevator has already stopped when the door trick resets one of the trains the
elevator will be activated again!  Thus it would be wiser to use the same tag
that the door trick uses to reset the train. 
- Change the LoTags of the Activators in the elevator to 115, 125, 135, and
  145.
For simple elevators the Stops need to be activated at the same time as the
elevator.
- Change the LoTags of the Activators on Stop2 to 115 and 145.
- Change the LoTags of the Activators on Stop3 to 125 and 145.
- Change the LoTags of the Activators on Stop4 to 135 and 145.  
3.5.3 Adjusting the Timing of the Doors
Now to adjust the timing.  
For instance, if the elevator leaves Room3 before the door closes, make
Train3B longer.
If the elevator delays for a long time after the door closes, make Train3B
shorter.
Do this for the doors on all for rooms.
You will also have to adjust Train1A, 2A, 3A, and 4A, so that the doors open
afer the elevator arrives.
If the door opens before the elevator arrives at Room3, make the track for
Train3A longer.
If the door stays closed for a long time after the elevator arrives at Room3,
make the track for Train3A shorter.  It's just a mater of trial and error.
There's a lot of stuff going on, so if you're confused by all of this, you can
refer to the sample map, EX3S4D, to see how this should look.
3.6 Setting the Starting Position of the Elevator
First, remember that in section 3.3 the Activator in the door for Room1 was
set to 111.  It now needs to be setup like the rest of the doors.
- Set the LoTag of the Activator in the door for Room1 to 112, the second tag
  for Train1A.
Since we are using the same four-floor elevator from Section 2, read Section
2.3 to see how to setup the elevator.  
Now the doors on the floor where the elevator starts needs to be open at the
start of the game.  To do this, activate the two-way train trick that controls
these doors.  You could use a TouchPlate in the sector where the player
starts, but the only problem is that you would have to move it every time you
change the player's starting point.  A better way would be to create another
door trick.
The door trick does not need to be seen while playing the game.
- Add it to the end of the train's track.
- Set the height of the ceiling so that the door is open.  
Note: If a door trick is open at the start of the game, it will automatically
close after the delay set by the auto-close effect.  This is very useful for
starting just about any effect.
- Add an Activator to the door trick and the train.
- Set their LoTags to any unused number.
For example, if you want the elevator to start at Room2, place the Activator
in the sector of Train2A.
Tag Reference
Tag  Use                                     Activates
1    Door trick for start of game            (See Section 3.6 for use)
11   Send elevator from Room4 to Room1       Train1A, Train4A, Train4B
12   Send elevator from Room1 to Room2       Train1A, Train2A, Train1B
13   Send elevator from Room2 to Room3       Train2A, Train3A, Train2B
14   Send elevator from Room3 to Room4       Train3A, Train4A, Train3B
111  First tag for Train1A
112  Second tag for Train1A                  Door for Room1
113  First tag for Train1B
114  Second tag for Train1B                  Door trick for Train1B
115  Door trick for Train1B                  Elevator, Stop2, Train1B
121  First tag for Train2A
122  Second tag for Train2A                  Doors for Room2
123  First tag for Train2B
124  Second tag for Train2B                  Door trick for Train2B
125  Door trick for Train2B                  Elevator, Stop3, Train2B
126  HiTag of door for Room2
127  HiTag of door for Room2
131  First tag for Train3A
132  Second tag for Train3A                  Doors for Room3
133  First tag for Train3B
134  Second tag for Train3B                  Door trick for Train3B
135  Door trick for Train3B                  Elevator, Stop4, Train3B
136  HiTag of door for Room3
137  HiTag of door for Room3
141  First tag for Train4A
142  Second tag for Train4A                  Doors for Room4
143  First tag for Train4B
144  Second tag for Train4B                  Door trick for Train4B
145  Door trick for Train4B                  Elevator, Stop2, Stop3, Stop4,
                                             Train4B
146  HiTag of door for Room4
147  HiTag of door for Room4
Note: The following examples assume that you know how to setup the elevator
Stops, two-way train tricks, and auto-close door tricks used in Section 3.  If
you do not thoroughly understand these concepts do not even tempt any of the
following examples.
Section 4: Elevator call buttons
Difficulty: Expert
Map: EX4C4D.MAP
4.1 Introduction
The designs of the elevators in the previous sections were relatively simple
to create.  However they did not have call buttons to send the elevator
directly to any floor like a real elevator, so this section will show you how
to make them!
4.2 Complex Switches
The purpose of the multiswitch in the previous examples was to overcome a
shortcoming of Build's elevator sector effects; they have no persistent state, 
i.e. which floor the elevator is on.  During the game, when the elevator is
sent to another floor you would need to close the doors on the floor where the
elevator is first, but you would have no way to know which floor.  The
multiswich on the other hand does have a persistent state and can activate
tags based on that state, which allowed us to keep track of which floor the 
elevator is on.  Unfortunately, the multiswitch only has four states and it
can only activate consecutive tags.  Thus it cannot control an elevator with
more than four floors nor can it be used to send the elevator directly to a
specific floor, which excludes the use of real call buttons too.
To get around these short comings we need a more sophisticated switching
mechanism that not only has a persistent state, but also can handle as many
tags as we want and in any order we chose.  Luckily, there is a "feature" of
Build that works in our favor.  If one switch is directly in front of another,
the player can only press the switch in front.  Now if the switch in front was
moved so that the player cannot press it, then only the other switch can be
used.  By switching the position of the switches, the access to the switches
can be controlled.
4.3 Setup
The elevator from Section 3 has all of the basic components we need, so it can
be used for this section as well.
Last time the two-way train tricks were only needed to operate the doors. 
This time they are needed to control the positions of the switches as well, so
even if you do not plan on having any doors for the elevator you will still
need the trains.
If you are using the map you created from Section3
- delete all of the multiswitches 
- delete all of the Activators with the LoTags 11, 12, 13, and 14 
These will not be needed anymore.
- Also, set the angles of the SectorEffectors in the Stops to 1536.
4.3.1 Setting up the Switches
Add sectors near the doorways in each of the rooms.  
These will be used to make call buttons for the elevator, so make these
sectors about 1 unit wide at the 4th grid size, 2 units high, and 8 units from
the floor of the room.  
Note: The switches can be bigger if you want, but it would be best to not make
them any smaller.  Some times Build would not activate it, even if the player
would stand directly in front of it and press on it.  
The call button will be used to call the elevator from any floor directly to
the floor where the call button is.  To do this the call button will require
four switches, one for each floor.  One of these switches will be used to call
the elevator from the floor it is currently on and the switch that is used
will depend upon which floor the elevator is on.
To control which switch will be used, the positions of the switches need to be
controlled.  To move the switches independently, each switch needs its own
sector.
- In each of the call button sectors, split it four times to make five
  sectors.
The buttons needed to moved low enough so that the player cannot press on it.
- lower floors of the front four sectors by 3 units.
- Place switch sprites in the middle of the back four sectors of each call
  button.
- Set their angles so that they point out into their respective rooms and set
  their X and Y repeats to 16.
To switch the position of the switches, 
- make the middle three sectors of the call buttons "floor rise" sectors
  (SE31).
- Add Activators to each of these sectors.
- Raise their SectorEffectors by 3 units.
Note: While testing another map, I found that it is possible to press on a
switch while its "floor rise" sector is moving.  
- To fix this issue, place a GPSpeed sprite with their LoTags set to 1024 in
  each of these sectors.
The switches in the call button for Room1 need to call the elevator from any
floor to this one.
- For this example set the LoTag of the switch in the back to 11
- Set the LoTag of the other three switches to 21, 31, 41.
Note: The switch in the back is not required, but I included it anyway.
Besides, you might even find a use for it.
The switches in the call button for Room2 need to call the elevator from any
floor to this one. 
- Set the LoTag of the switch in the back to 22.
- Set the LoTag of the other three switches to 12, 32, and 42.
The switches in the call button for Room3 need to call the elevator from any
floor to this one.
- Set the LoTag of the switch in the back to 33. 
- Set the LoTag of the other three switches to 13, 23, and 43.
The switches in the call button for Room4 need to call the elevator from any
floor to this one.
- Set the LoTag of the switch in the back to 44
- Set the LoTag of the other three switches to 14, 24, and 34.
Before we can continue the trains have to be modified to be controlled by the
call buttons.  If you remember from Section3, the trains with the SE HiTags of
111, 121, 131, and 141 were named Train1A, 2A, 3A, and 4A.
First, Train1A needs to move when the elevator is either sent to or from
Room1.
- Add six Activators to this train.
- And set their LoTags to 21, 31, 41, 12, 13, and 14.
Train2A needs to move when the elevator is either sent to or from Room2.
- Add six activators to this train.
- Set their LoTags to 12, 32, 42, 21, 23, and 24.
Train3A needs to move when the elevator is either sent to or from Room3.
- Add six activators to this train.
- Set their LoTags to 13, 23, 43, 31, 32, and 34.
Train4A needs to move when the elevator is either sent to or from Room4.
- Add six activators to this train.
- Set their LoTags to 14, 24, 34, 41, 42, and 43.
The second tags for these trains were used open the elevator doors after the
elevator arrived at a floor and close them before it left.  The switches for
each floor need to be raised up when the elevator arrives at the floor and
lowered when it leaves, so that the player can only have access to the
switches that will send the elevator from the floor it is currently on to
another floor.  To do this, use the first tag for these trains.
- Find the switches with the LoTags 12, 13 and 14.
- Set the LoTag of the Activators in these sectors to 111, the second tag for
  Train1A.
- Find the switches with the LoTags 21, 23 and 24.
- Set the LoTag of the Activators in these sectors to 121, the second tag for
  Train2A.
- Find the switches with the LoTags 31, 32 and 34.
- Set the LoTag of the Activators in these sectors to 131, the second tag for
  Train3A.
- Find the switches with the LoTags 41, 42 and 43.
- Set the LoTag of the Activators in these sectors to 141, the second tag for
  Train4A.
To finish the call buttons, 
- Raise the floor of the front sector of each of the call buttons by 3 units.
- Add a 1-way wall to the back of this sector to hide all of the switches.
When you are done the call button for Room3 should look like this.
Figure 4a Call button for Room3 (side and top views)
 |    __ 1-way wall                        +-------+
 |   /                       floor-raise__ | | 33  |
 +--+--+--+--+--+                         \+-|-|---+
 |  |  |  |---33|            floor-raise__ |SE 43  |
 +--+SE|SE|SE+--+                         \+-|-|---+
 |---13-23-43|               floor-raise__ |SE 23  |
 |  +--+--+--+                            \+-|-|---+ __1-way wall
 |    \  \  \__floor-raise                 |SE 13  |/
 |     \  \____floor-raise                 +---|---+
 |      \______floor-raise                 |   |   |
                                       ----+-------+----
4.3.2 Controlling the Stops
Now the Stops have to be setup for the call buttons as well.  In Section 3 the
Stops could be set in advance because we always knew which floor the elevator
would go to next.  This time we do not know until the player presses a call
button, so the Stops will have to be set before the elevator can be activated. 
Previously the trains with the SE HiTags of 113, 123, 133, and 143, which were
named Train1B, 2B, 3B, and 4B, were used to delay the activation of the
elevator in order to give the doors enough time to close.  This time the
elevator also needs to be delayed in order to give the Stops enough time to
move into place.
These trains need to move before the elevator can go to a floor.
- Add three Activators to Train1B.
- Set their LoTags to 21, 31, and 41.
- Add three Activators to Train2B.
- Set their LoTags to 12, 32, and 42.
- Add three Activators to Train3B
- Set their LoTags to 13, 23, and 43.
- Add three Activators to Train4B
- Set their LoTags to 14, 24, and 34.
- To control Stop2, add an Activator to its sector.
- Set the Activator's Lotag to 123, the first tag for Train2B.
- For Stop3, add an Activator with its Lotag set to 133, the first tag for
  Train3B.
- For Stop4, add an Activator with its Lotag set to 143, the first tag for
  Train4B.
4.3.3 Setting the Starting Position of the Elevator
First decide which floor you want the elevator to be on when the game starts.  
- Set the heights of the sector's floor and ceiling to where they would be if
  the elevator was at that floor.
Note: The height of the floor of the elevator sector should match the height
of the SE of the Stop for this floor.
Now the doors and switches for this floor need to be set.  Both are controlled
by the same train, so all that is needed is to activate this train when the
game starts.
To do this, create another door trick.  The door trick does not need to be
seen while playing the game so add it to the end of the train's track.
- Set the height of the ceiling so that the door is open.  
This will cause the auto-close effect (SE10) in the door trick to kick in at
the start of the game.
- Add an Activator to the door trick and the train 
- Set their LoTags to any unused number.
For example, if you want the elevator to start at Room2, place the Activator
in the sector of Train2A.
You can also set the elevator to go from any starting position to a specific
floor.
- To do this the set heights of the floor and ceiling of the elevator's sector
  to where you want.  The space between them should be the same as before.
The doors and switches for the floor where the elevator is going to stop need
to be set.
- Move the Activator used to set the starting floor for the elevator to the 
  train trick for this floor.
Now to move the elevator, the other train trick for this floor needs to be
activated.
- Add another Activator with the same LoTag to the this train as well.
So if you had set the elevator to start at Room2 like the example in
Section4.3.4, but now want it to start at Room2 and move to Room3 at the start
of the game, 
- Move the Activator from Train2A to Train3A
- Add another Activator with the same LoTag to Train3B.
4.4 Adding Switches to the Elevator
We have everything we need for a working elevator, except there are no buttons
in the elevator!  This is not a simple task, so there is a whole section
devoted to this issue.
In order for the elevator to have a button for each floor the elevator needs
to have a switch for each floor, on every floor.  That way, no matter which
floor the elevator is on, the player can go directly to any floor. 
Unfortunately, this elevator would require squeezing four buttons into it! 
Also, each button would require four switches, for a total of sixteen
switches.
Note: There is at least one way to get around the button issue - use fewer
buttons.  Anyone who has played Dark Forces could remember that it also had
multi-floor elevators.  Each floor had a call button, but in the elevator
itself there were only two buttons, up and down.  At least then the elevator
would only need two buttons no mater how many floor there are.
In order for the buttons to work, their switches have to be accessible from
inside the elevator, but remain stationary.  At least this is the simplest
way.
- First, set the height of the ceiling of the elevator to the height of the
  ceiling of Room4.
- Set the height the floor of the elevator to the height of the floor of
  Room1.
- Add a sector inside of the elevator.
- Remove the sector tag.
- Place the sector near one of the walls.
- Set the front wall of the sector to block the player.
Note: The last step is required to prevent an unusual bug in the elevator
effect.  It seems that if the player is ever trapped against the floor of the
elevator, all of the Activators in the elevator will be triggered!  
Since the switches are rotated to face the wall, Build will automatically set
them to block the player.  If they are far enough away from the wall and the
player is close enough to them while the elevator is moving, player can be
trapped between one of them and the elevator, triggering the bug.  This bug
tends to be unpredictable, so it is best to avoid it.
Depending on how you designed your elevator you may need a separate sector for
each button.
- Place four switches inside this sector, one for each floor, and make the
  sector very narrow.
Make sure that none of the buttons are blocking the doorways.
- Set the heights of all of the switches.  They should be about 8 units from
  the height of the floor of the sector of each room.
- Set their X and Y repeats to 16.
- Make a copy of these switches for each of the other buttons in the elevator.
If you decided to use four buttons, one button will be used for each floor. 
The switches for that button will have to be set to send the elevator to that
floor.
- For Room1, set the LoTag of the switch for the first button to 11, set the
  second to 12, set the third to 13, and set the four to 14.
- For Room2, set the LoTag of the switch for the first button to 21, set the
  second to 22, set the third to 23, and set the four to 24.
- For Room3, set the LoTag of the switch for the first button to 31, set the
  second to 32, set the third to 33, and set the four to 34.
- For Room4, set the LoTag of the switch for the first button to 41, set the
  second to 42, set the third to 43, and set the four to 44.
In case you did not notice, these are the same tags used for the switches in
the call buttons.
If you decided to use two buttons for a "Dark Forces" style elevator, one
button will send the elevator up one floor and the other will send it down one
floor.
- For Room1, set the LoTag of the switch for the down button to 11 and set the
  one for the up button to 12.
- For Room2, set the LoTag of the switch for the down button to 21 and set the
  one for the up button to 23.
- For Room3, set the LoTag of the switch for the down button to 32 and set the
  one for the up button to 34.
- For Room1, set the LoTag of the switch for the down button to 43 and set the
  one for the up button to 44.
This is not pretty, but it gets the job done and it is enough to test the
elevator.  
Finally, set the height of the ceiling and floor of the elevator's sector to
where there were before you added the switches.
4.5 Adjusting the Timing of the Doors and Stops
Now that we have everything that is need to get the elevator to work, it would
be a good time to test it out before moving on.
There is a lot of things going on, so there is a lot to test.  You will need
to test every switch in all of the call buttons and the elevator.  Also be
sure to double check the settings for all of the two-way trains, Stops, and
the elevator itself.  The only thing that is easy about this example is
getting something wrong!
After you get all of the tricks working, adjust the timing of the train
tricks.
Note: When adjusting the timing, always make the elevator travel the longest
distance to get to the floor you are testing, as this will require the longest
delay.  For Room1 and 2, always send the elevator to Room4 first.  For Room3
and 4, always send the elevator to Room1 first.
To adjust the timing, first adjust the length of the tracks of Train1B, 2B,
3B, and 4B.
If the elevator stops before it gets to the height of the floor, the elevator
was activated while the Stop was moving.  The track of the train trick for
that floor needs to be longer.
If the elevator waits for a long time after the Stop was set, then the track
of the train needs to be shorter.
Also, if the elevator moves before the doors close, then the track of the
train needs to be longer.
After these timings have been set, adjust the length of the tracks of Train1A,
2A, 3A, and 4A.
If the doors open before the elevator arrives at the floor, the track of the 
train needs to be longer.
If the doors stay closed for a long time after the elevator arrives at the
floor, the track of the train needs to be shorter.
It would be best to have a friend help you test your level in a multiplayer
game, but if that is not possible you can always turn the clipping off
(dnclip) and run back and forth between the floors.
It can be tricky to get all of this right.  I said that this requires an
expert, so do not say that I didn't warn you!
4.6 Adding Buttons to the Elevator
In the quest for a perfect elevator, or as close as one can get in Build, the
next step is to add buttons to the elevator.  These were mentioned in
Section4.4, but the truth is that the buttons themselves have not been added
yet.  To do this we will create fake buttons that simply add a nice facade to
the effect, like we did with the 1-way wall on the call buttons.  However,
this requires extra sectors that would have to move with the elevator so that
they look like part of the elevator.  While this sounds impossible, it is
actually easy, if you have been following this guide.  All that is needed is
to make the button's sector an elevator sector effect and give it its own
Stops.
If you completed Example 4 up to this point, 
- connect another sector to the sector with the switches.
- Set the sector tag to 19.
- Raise the height of the floor of the sector 8 units.
- Lower the height of the ceiling of the sector so that the distance between
  the ceiling and the floor is about the height of the switches.
This sector needs to move at the same time as the elevator. 
- Add four Activators
- Set their LoTags to 115, 125, 135, and 145.
- Now create three Stops for this sector.  You can copy the three other stops
  and connect the new stops to this sector.
- Raise the height of the floors of the new stops and their SEs 8 units.
- Use the 'O' key on each switch to orientate all of them against the wall.
- Make them single-sided
- Set their angles so that they face the wall and cannot be seen.
Now all that is left to do is to make these new sectors look like buttons. 
How you do this really depends on how you designed your elevator and your own
personal aesthetics.
If you made separate sectors for the switches of each of the buttons, you will
need to connect a new sector to each of these sectors to make the remaining
buttons.
One way to get the button sectors to move in sync with the elevator is to add
Stops to all of these sectors.  
There is another way, but there is no easy way to undo it once it is done. 
After you get the buttons to look how you want, be sure to save. 
- Join the sector for the first button you added, the one with the Stops, with
  the sectors for each of the other buttons.
Once you are done, the floors and ceilings of the button sectors should move
at the same time.  That is because they are the same sector!  However, if this
does not work correctly, you will need to reload the map and try again.
Note: Normally, connecting disjointed sectors is a VERY bad idea, as this can
seriously damage a map.  However, the Build engine technically does not have a
problem with this, so when done correctly this can be a very powerful
technique.
Again, always save before attempting this.  There is no easy way to undo it
without deleting the entire joined sector.
Note: If you move the starting position of the elevator sector, you have to
move the button sectors as well.
4.7 Call Button Lights
For a special touch, you can also make the call buttons light up!  In real
elevators, the call button has a light that comes on when it is pressed and
goes off when the elevator arrives.
At first you may think about using the normal "light switch" effect (SE12),
but it will not work correctly in this case.  For this we need to use another
type of trick, the "lighting sector" trick (thanks Patola).  It uses the "up
open door lights" effect (SE8) to turn a light on or off when ever a door is
opened or closed.  Unlike the "light switch" effect, this can be controlled by
anything that can trigger an Activator!
The door for the "lighting sector" trick needs to be opened when the button is
pressed to turn on the light and needs to be closed when the elevator arrives
to turn off the light.  The easiest way to do this is to use the first tag of
Train1B, 2B, 3B and 4B to control the door.  The timing may not be 100%
accurate, but it is usually close enough.  In order to get more accurate
timing, extra train tricks would have to be used.
For this trick, the doors should not be seen.
- Create a "ceiling door" at the end of the track of Train1B, 2B, 3B, and 4B.
- Add an Activator to each of these doors.
- Add make each of these doors an "up open door lights" effect (SE8).
- Add a "up open door lights" effect (SE8) to each of the call buttons.
- Set the shading of the button to match the shading of the neighboring walls.
Note: The shade should at least be 10, or else the effect might not even be
noticed.
For Room1,
- Set the HiTag of the SE in the call button and the "lighting sector" to 118.
- Set the LoTag of the Activator in the "Lighting Sector" to 113.
For Room2,
- Set the HiTag of the SE in the call button and the "lighting sector" to 128.
- Set the LoTag of the Activator in the "Lighting Sector" to 123.
For Room3,
- Set the HiTag of the SE in the call button and the "lighting sector" to 138.
- Set the LoTag of the Activator in the "lighting sector" to 133.
For Room4,
- Set the HiTag of the SE in the call button and the "lighting sector" to 148.
- Set the LoTag of the Activator in the "lighting sector" to 143.
One problem with this effect is that it will also light up the wall the button
is on.  To fix this simply set the HiTag of the wall in front of the button to
1.  If you used the '2' key on the wall in 3D mode, you need to set the HiTag
of the other side of the wall instead.  To do this set the HiTag of the
section of the wall below the button.
Note: You can also use this effect to light the buttons in the elevator as
well.  However, this would require each button to have its own sector and its
own set of Stops.  If you are creative enough, you should be able to get two
of the buttons to share the same set of Stops.
Tag Reference
Tag  Use                                     Activates
1    Door trick for start of game            (See Section 4.3.3 for use)
11   
12   Send elevator from Room1 to Room2       Train1A, Train2A, Train2B
13   Send elevator from Room1 to Room3       Train1A, Train3A, Train3B
14   Send elevator from Room1 to Room4       Train1A, Train4A, Train4B
21   Send elevator from Room2 to Room1       Train1A, Train2A, Train1B
22   
23   Send elevator from Room2 to Room3       Train2A, Train3A, Train3B
24   Send elevator from Room2 to Room4       Train2A, Train4A, Train4B
31   Send elevator from Room3 to Room1       Train1A, Train3A, Train1B
32   Send elevator from Room3 to Room2       Train2A, Train3A, Train2B
33   
34   Send elevator from Room3 to Room4       Train3A, Train4A, Train4B
41   Send elevator from Room4 to Room1       Train1A, Train4A, Train1B
42   Send elevator from Room4 to Room2       Train2A, Train4A, Train2B
43   Send elevator from Room4 to Room3       Train3A, Train4A, Train3B
44   
111  First tag for Train1A                   Switch12, Switch13, Switch14
112  Second tag for Train1A                  Door for Room1
113  First tag for Train1B                   Room1 call button light
114  Second tag for Train1B                  Door trick for Train1B
115  Door trick for Train1B                  Elevator, Train1B
118  Room1 call button light
121  First tag for Train2A                   Switch21, Switch23, Switch24
122  Second tag for Train2A                  Doors for Room2
123  First tag for Train2B                   Stop2, Room2 call button light
124  Second tag for Train2B                  Door trick for Train2B
125  Door trick for Train2B                  Elevator, Train2B
126  HiTag of door for Room2
127  HiTag of door for Room2
128  Room2 call button light
131  First tag for Train3A                   Switch31, Switch32, Switch34
132  Second tag for Train3A                  Doors for Room3
133  First tag for Train3B                   Stop3, Room3 call button light
134  Second tag for Train3B                  Door trick for Train3B
135  Door trick for Train3B                  Elevator, Stop4, Train3B
136  HiTag of door for Room3
137  HiTag of door for Room3
138  Room3 call button light
141  First tag for Train4A                   Switch41, Switch42, Switch43
142  Second tag for Train4A                  Doors for Room4
143  First tag for Train4B                   Stop4, Room4 call button light
144  Second tag for Train4B                  Door trick for Train4B
145  Door trick for Train4B                  Elevator, Train4B
146  HiTag of door for Room4
147  HiTag of door for Room4
148  Room4 call button light
Note: Call button lights were not used in the sample map, EX4C4D.MAP.
Section 5: Advanced Topics
Well, if you have made it this far then congratulations!  You are now a master
of the elevator sector effect (and are entitled to all bragging rights).
5.1 Design Issues
Now that you understand the basics of constructing elevator tricks, I am sure
you that you already have some cleaver ideas that you are dying to try out. 
However, there are some other topics and issues that should be considered.
5.1.1 Adding More Floors to the Elevator
I hope that by now you can see that the systematic design of the elevator from
Section 4 can be expanded beyond four floors, but each additional floor
creates additional complexity.
First, there is the issue of adding more doors to the elevator.  Normally 
Build does not allow doorways to overlap, so each floor that the elevator
stops at would require its own door.  The design of the elevator sector itself
would become more complicated as it is forced to accommodate more doors.  
Even though I never would have thought that it was possible, I discovered a
way to break this limitation!  Read Section 5.5 if you are brave enough to
tempt this daring feat.
There is also an issue of fitting additional buttons in the elevator.  Since
their is a limit to the size of the elevator buttons, more buttons require
more space.  You may feel tempted to space them vertically, but beware that
Build does not handle this very well.  If switches are far enough apart that
the player can only see one of the them, like the in example in Section 4.4,
then Build does not have a problem.  However, if switches are too close
together, Build may not be able to figure out which switch the player is
trying to press and guess the wrong one.  However, this only happens when
pressing a switch.  Projectile collisions in Build are more accurate, but
requiring the player to shoot at the elevator buttons would be annoying!  One
solution is to use the two button configuration discussed in Section4.4. 
There many be solutions as well.
Even if you are creative enough to work around these issues, there are
restrictions imposed by Build itself; it has a limit on the number of sectors,
walls and sprites that it can handle (1024 sectors, 8192 walls and 4096
sprites to be exact).  For example, think about an eight floor elevator with
sliding doors and everything.  It would require a total of 128 sprites for
switches alone, not to mention about another 500 sprites for the doors, the
elevator and other related tricks that make the whole thing work.  This might
not seem like much, but all of this would also require about 260 sectors. 
That is over a fourth of the total number of sectors allowed!
Then there is the biggest limitation of all, your sanity!  Even though the
tricks used in this guide are small, manageable units, trying to get them all
to work in harmony to create an elevator that can handle eight floors wound be
maddening.
That said, the only other limit is your imagination.
5.1.2 Player Starting Points
While testing one of the examples for this guide I noticed a strange bug when
the player starting point was in the elevator sector.  It seems to be related
to the "elevator trap" bug discussed in a note in Section 4.4.  The bug might
be triggered if the player start point is too close to the floor.
If this happens,
- Load the map.
- Raise your height in 3D mode.
- Set the player start point.
- Save the map again.
5.1.3 "Floor Rise" GPSpeed Bug
This bug was mentioned earlier in a note in Section 1.4.  The problem is this,
if the distance between the floor of a "floor rise" sector effect and its SE
is not an exact multiple of the LoTag of the GPSpeed sprite, the height of the
"floor rise" effect will rise by a multiple of the LoTag that is closest to
this distance.
For example, the distance between the floor of a "floor rise" sector effect
and its SE is 8192 (8 units) and the LoTag of the GPSpeed sprite is set to
1792. 8192 divided by 1792 is about 4.556, so the height of the "floor rise"
effect will rise by 1792 times 4, which is only 7192.
Normally you would want to avoid this bug by setting the LoTag of the GPSpeed
sprite to a multiple of the distance.  However, since Build sets the grid size
for sector floors to 1024, you could use a "floor rise" effect to set it to a
specific height.
5.2 Creating Elevator Platforms
Difficulty: Intermediate
Map: EX5EP1.MAP
Standard elevators are fine, but what about elevator platforms?  Since the
"elevator platform" sector effects simply will not work, you will need to make
an elevator effect look like an elevator platform effect.  
To do this, 
- Raise the ceiling of the elevator sector above the ceiling of the top floor,
  so that it can never be seen during the game.  
- Create a sector in the middle of the elevator sector that is connected to
  the all of the elevator's stops.  
This will separate the elevator sector from all of the surrounding walls and
create a new elevator sector.  
- Remove the sector tag from the original elevator sector. 
- Move the walls of the new elevator sector as close as you can to the walls
  of the original elevator sector without crossing them.
5.3 Complex Elevators
Difficulty: Expert
Map: EX5EP1.MAP
Normally, elevator sector effects consist of a single sector.  However, more
complex elevator designs can be created by using multiple elevator sectors
moving in sync so that they appear to be a part of a single elevator.
Actually, this was already accomplished in Section 4.6 when the elevator
buttons were added!  To extend this concept from the button example, several
rules need to be followed.
- Every sector that will be part of the elevator must be setup to stop at the
  same relative height.
Two sectors of the elevator that are 3 units apart should be set to stop so
that they will always be 3 units apart.
- Neighboring elevator sectors with the same floor height can be connected
  together.
Since they are at the same height and will move that the same time, they will
not interfere with each other.
Also, for elevators controlled by Stops, two elevator sectors with the same
floor heights can share the same set of Stops.
- Neighboring elevator sectors with different floor heights must be separated
  with a stationary sector.
- All stationary sectors that are connected to the elevator, except those that
  are used to control the height of the elevator, must have their floors at or
  below the height of the floor for the bottom floor and their ceilings at or
  above the height of the ceiling of the top floor.
This applies to any elevator, even ordinary two-floor elevators.  Any sector
that is connected to an elevator effect can control where it stops.  This is
why in the example from Section 1 Room2 was connected to the elevator sector,
but Room3 was not.  This is also why the floors of the other sectors connected
to the elevator were lowered.
Note: Construction of the elevators in every example in guide has been
governed by these rules.  They are not arbitrary, nor are meant to stop you
from trying anything.  They are merely guidelines to help you succeed in your
own endeavors.
While all of this may seem easy enough, the problem is that the more sectors
there are in the elevator, the harder it becomes to hide the sectors that
control them, especially Stops.
There is one solution to this problem, but it is not for the faint of heart.
- Disconnect the Stops from an elevator sector.
- Create a new sector that is connected to these Stops.
- Join the elevator sector with the new sector.
Again, this is not something that should be taken lightly as it can really
mess up the sector.
5.3.1 Creating Free Standing Structures in an Elevator
Since sprites are the only objects in Build that are not attached to a sector,
they are often used to create free standing structures.  Unfortunately,
sprites placed in elevator effects have an ugly bug, so they cannot be used.
However, there is a way to make structures that appear to be free standing.
To demonstrate this effect,
- Create a sector.
- Create another sector that is completely inside of the first.
- Lower the ceiling and raise the floor of the inter sector.
- Create a mask wall on one wall of the inter sector.
- Set the parallax effect on the ceilings and floors of these two sectors.
This construct causes Build to not render the floor, ceiling, or walls of the
inner sector, revealing anything that is behind it.   This makes it appear as
if the mask wall is floating in midair.  Even though you cannot see the walls
of the inner sector, they are still there and can block the player.  
Complete the effect by hiding the parallax ceiling and floor.
- Raise the ceiling and lower the floor of the outer sector.
- Make these sectors as thin as possible.
This effect is somewhat limited, but usefully none the less.  It is best to
place these sectors near a wall, so that the player does not get confused by
the "invisible" inner sector.
5.4 Elevator Transport Effect
The "elevator transport" effect is unlike all of the other elevator effects. 
It does not have the general usefulness of the ordinary elevator effects, but
it worth further study.
Normally, the "elevator transport" effect consist of two separate elevators
that are linked by an invisible transporter.  The player is transported from
one elevator to the other after the elevator travels a distance equal to the
distance between the floor and the ceiling of the elevator sector.
Unlike the other elevator effects, you cannot simply connect another sector to
it to add another floor.  However, it is can travel to more than two floors.  
Following the rules for creating the "elevator transport" effect,
- Create another elevator identical to the other two.
- Set the height of the new elevator to be higher than the one with its sector
  HiTag of set to 1.
- Set the sector HiTag of the new elevator to 2.
Also, the elevator can start at any of the floors by setting the SE of the
elevator for that floor to the darkest shade.
Even though it looks like an elevator effect, it moves like the "elevator
platform" effects.  Each time it is activated it will move to a low floor
until it reaches the bottom floor, the one with the sector HiTag set to 0. 
Then it will only travel between the bottom two floors.  However if the player
can get to the one of the higher floors and activate the elevator, it can
return to that floor.
Unfortunately, there does not seem to be anyway to control the movement of the
"elevator transport" effect.
5.5 Single Door Elevator
Difficulty: Build Guru
Map: EX5ML1.MAP, EX5ML3.MAP
The "elevator transport" effect may be unyielding to any attempts to control
it, but it does have one admirable quality, like real elevators it only has
one door.  While finishing this guide, I began to ponder the inconceivable
notion of creating a multi-floor elevator with a single door, the last great
hurdle to creating a "real" elevator in Build.  After a bit of brainstorming,
I figured out a way to accomplish the impossible.
5.5.1 Setup
A real elevator has one door that opens at the doorway on each floor, which
are directly above each other.  The problem is that Build does not allow the
doorway of each floor to be connected to same sector wall of the elevator, the
classic sector-over-sector problem.  Of course, it is possible to connect
multiple sectors to the same sector if each one is connected to a separate
wall.  This time, instead of creating a separate doorway in the elevator for
each floor, connect them to a single doorway with each of them connected to a
separate sector wall.
Figure 5a Connecting the floors to a single doorway
 +-----+  +-----+  +-----+             ++-----------------+-----++
 |     |  |     |  |     |             ||                 |     ||
 |     |  |     |  |     |             ||                 |     ||
 |     |  |     |  |     |             ||                 |     ||
 |     |  |     |  |     |             ||                 +-----+|
 +-----+  +-----+  +-----+ __elevator  ||                       ||
 +-----+--+-----+--+-----+/  doorway   ||        +-----+        ||
++-----------------------++            ||        |     |        ||
|                         |    |       ||        |     |        ||
|                         |  --+--x    ||        |     |        ||
|                         |    |       ||        +-----+        ||
+-------------------------+    y       ||                       ||
                                       |+-----+                 ||
                                       ||     |                 ||    |
                                       ||     |                 ||  --+--x
                                       ||     |                 ||    |
                                       ++-----+-----------------++    z
Now the problem is to get the doorway on each floor directly above each other. 
The solution is to overlap the sectors for each floor without overlapping
their doorways!  Since the elevator can only access one floor at any time, the
easiest way to do this would be to manipulate the doorway sectors such that
only one of the them is open to the elevator and all of the others are closed
off.
To accomplish this unusual feat I have created a sector warping effect.  It is
not pretty, but it is the best you can hope for when pushing the Build engine
to such extremes.
- First, split the elevator's doorway sector to create two long sectors.
The sector connected to the other doorways is the "track" along which the
manipulation will take place.
- Split the track by creating a sector between the doorways of each of the
  floors.
- Adjust each section of the track so that floors and ceilings are at the same
  height as the adjacent doorway.
The doorways of each floor need be manipulated by sliding the smaller sectors
that split the track.
- Add a "sliding door" effect (ST25,SE15) to each of the smaller sectors on
  the track.
- Set the angle of the SEs to point along the track, towards the highest floor
  for the elevator.
Figure 5b Adding the track and sliding sectors
 +-----+  +-----+  +-----+             ++-----+--+-----+--+-----++
 |     |  |     |  |     |             ||     |  |     |  |     ||
 |     |  |     |  |     |             ||     |  |     |  |     ||
 |     |  |     |  |     |             ||     |  |     |  |     ||
 |     |  |     |  |     |             ||     |  |     |  +-----+|
 +-----+  +-----+  +-----+ __track     ||     |  |     |  |     ||
 +-----+--+-----+--+-----+/__elevator  ||     |  +-----+  |     ||
 +-----+--+-----+--+-----+/  doorway   ||     |  |     |  |     ||
++-----------------------++            ||     |  |     |  |     ||
|                         |    |       ||     |  |     |  |     ||
|                         |  --+--x    ||     |  +-----+  |     ||
|                         |    |       ||     |  |     |  |     ||
+-------------------------+    y       |+-----+  |     |  |     ||
                                       ||     |  |     |  |     ||    |
                                       ||     |  |     |  |     ||  --+--x
                                       ||     |SE---   |SE---   ||    |
                                       ++-----+--+-----+--+-----++    z
                                                 \_____/
                                                    |
                                             sliding sectors
As the sliding sector moves it will stretch the white wall of the doorway
connected to it.  The white wall needs to be stretched all of the way pass the
other side of the doorway in order to close it off from the elevator.  If it
only moves up to the edge of the doorway, the "hall of mirrors" bug will still
be seen when the floors are overlapped.
- Make a small niche for the track where the doorway for the lowest floor and
  the doorway for the elevator connect to it.
This will give the sliding sectors a space to move into so that they can pass
the other edge of the doorway without crossing through the wall at the end of
the track.
- Add GPSpeed sprites to each of the sliding sectors.
- Find the length of the doorway and the niche, add them together, and divide
  by 2.
- Set the LoTags of the GPSpeed sprites to this number so that they will slide
  all the way into the niche when the effect is completed.
To keep the slides the of the doorway square,
- Insert a point on the white walls of the doorway sectors that are connected
  to the sliding sectors.
- Move these points as close to the track as you can.
Now the sliding sectors need to be controlled to select which of the doorways
will be open.  In this example, the sliding sector between the doorways of the
first and second floors needs to be activated whenever the elevator is sent to
or from the first floor.  Also, the sliding door between the doorways of the
second and third floors needs to be activated whenever the elevator is sent to
or from the third floor.  Since the sliding sectors are connected to the two
adjacent doorways, the doorway on the second floor will be open whenever the
other two are closed.  Also note that in order to go directly between the
first and third floors both sliding sectors should be activated at the same
time.  How the sliding sectors are controlled depends on how your elevator is
setup.  Once they are finished, lower their ceilings to their floors.
Note: After the effect is complete it will be VERY difficult to modify the
doorways on each floor.  It would be best to complete them and make a backup
copy of the map before you continue.
Now to complete the effect, the floors have to be overlapped.
- Make the sliding sectors every thin.
- Line them up next to each other beside the doorway to the first floor.
- Move the sector on the second floor and its doorway over top of the first
  floor.  
The sectors should be as close as possible without overlapping their points. 
Also, the red walls of the doorways should lie directly on top of each other.
Notice that the tiny white wall that was on the corner of the doorway of the
second floor is now stretched across the doorway and completely closes it off. 
When the sliding sector connected to it moves it will open this doorway and
close the off the doorway on the first floor.
Be sure to test the effect to make sure that the you can pass through the
doorways when they are open and that "hall of mirrors" bug cannot be seen once
the doorways are closed.  If this does not work correctly, there is no easy
way to fix it.  You will have to restore the backup copy and try again.  Once
you get the effect to work correctly with the first and second floors you can
do the same for the third floor as well.  
Be patient, this effect is not hard to setup, but it can every difficult to
complete.
When all of the floors have been overlapped you can finish the elevator to
complete the effect.  Also, you can make the track very narrow to minimize the
gap between the doorways.
Figure 5c Completed effect
 +-----+              +-----++
 |     |              |     ||
 |     |              |     ||
 |     |              |     ||
 |     |  __track &   +-----++
 +-----+ /  sliding   |     ||
 +-----++   sectors   +-----++
++-----++             |     ||
|       |    |        |     ||
|       |  --+--x     |     ||
|       |    |        +-----++
+-------+    y        |     ||
                     ++-----++
                     ||     ||    |
                     ||     ||  --+--x
                     ||     ||    |
                     ++-----++    z
                              \__sliding sectors
5.5.2 Issues
This effect forces Build to do some things that it was clearly not designed to
do.  As a result there are several side effects.  First, the "hall of mirrors"
bug is clearly visible while the effect is manipulating the doorway sectors. 
Another problem is that the stretching of the white walls of the doorways is
also visible.  The best way to get around these issues is to place this effect
between two doors.  Simply close the doors to cover up the effect while it is
in action.  
There is another bug, but unfortunately I have not been able to fix it.  Build
seems to be momentarily confused When the player passes through the section
where the sectors overlap, causing the view to shutter.  This again shows how
far the effect pushes the Build engine.  Considering how much that has been
accomplished, I am willing to live with this minor inconvenience.
Note: While I am certain that this effect can be used for more than three
floors, but I have not personally attempted it yet.
Note: The map, EX5ML3.MAP, is the polished version of the original elevator
test model that I used while toiling with many of the advanced concepts
detailed in this guide.  As far as I am aware, it is the most complete model
of a "real" elevator created in Build that exist!
5.6 Myst Elevator
Difficulty: Build Guru
Map: EX5MYST.MAP
For the final example I have included the contraption that I call the Myst
elevator. The basis of this trick was the idea of recreating the rotating
elevators that are commonly seen in the Myst series.  I decided to include it
with this guide not only to show off my skills as a master trickster, but to
bewilder and inspire others to the kinds of twisted creations that are
possible with complex elevator tricks and an open mind.
Considering the insanity of its design, it would be very difficult to explain
the construction of this example and impossible to create diagrams of it with
plain text.  The best that I can tell you is that it is a complex three-floor
elevator with disjointed sectors wrapped inside of a "rotate rise bridge"
effect!
Closing Thoughts
Well, that was probably more that you EVER wanted to know about Build's
elevator effects!  When I started this guide I did not even imagine that it
would have come this far, so I hope that you enjoyed the experience as much as
I have.  Considering how comprehensive this guide is, you maybe left wondering
what comes next?  I guess that is up to you!  Everything that I had set out to
accomplish while writing this guide has already been finished and documented.  
Well, almost everything.  In my quest to perfect the "real" elevator effect,
there was one detail that I have not been able to work out.  When a real
elevator remains at a floor for a length of time it will automatically close
its doors.  If you press the call button on the floor where the elevator is it
will open the doors again, but if you press a call button on another floor
they will remain closed.  This is actually what the unused switches were
intended for!  I had decided to leave them in my designs in hopes that I would
find a satisfactory solution to the problem.  Unfortunately, the complexity
that it would add to the elevator effect does not seem worth the effort for
such a marginal addition, so I did not bother to pursue the issue.
About the Author
After earning a degree in Computer Science Engineering, I have yet to find
where I fit into the "real world", so in the meantime I have been pursuing
other endeavors.  Considering that I am a hard core computer junky (and not
afraid to admit it) almost all of them are computer related.  Also, being an
avid gamer and aspiring to be a software developer in the gaming industry, I
have spent a great deal of time studying games.  One that has always been of
interest is Duke Nukem 3D.  I am always trying to find ways to expand the
boundaries of the moldy old Build engine!
Any questions and comments can be sent to semi_charm@yahoo.com.  While I do
appreciate constructive criticism, any trash will be filed appropriately.