The Car (Elevator) Section

In order to support multi-deck elevators, each elevator car can be defined separately. The Car section is a subsection of the Elevator section, and allows you to create additional cars for your elevator. These are also numbered, starting with 1.

To create additional cars, this section is normally placed right after the elevator's CreateElevator command.

The section headers and footers are similar to the ones in the Elevator section.
To specify a single car, you would type something like:
<Car 2>
and end it with:
<EndCar>
For a range of elevators, you would use something like:
<Cars 1 to 2>
and end with:
<EndCars>

When creating a new elevator car, the required values for each are the ServicedFloors parameter and the CreateCar command.

Variables:

%elevator% - number of the current elevator
%car% - number of the current car

Parameters:

1. Name - sets the name of the car
Example: Name = Lower Car

2. OpenSpeed - open/close speed of the elevator doors. This must be specified after the CreateCar command.
Syntax: OpenSpeed doornumber = value
Example: OpenSpeed 1 = 0.2

3. SlowSpeed - open/close speed multiplier of the elevator doors used for slow movement, usually nudge mode. The default is 0.5, which ends up being half of the door's speed value. This must be specified after the CreateCar command.
Syntax: SlowSpeed doornumber = value
Example: SlowSpeed 1 = 0.2

4. ManualSpeed - open/close speed multiplier of the elevator doors used for manual movement. The default is 0.2. This must be specified after the CreateCar command.
Syntax: ManualSpeed doornumber = value
Example: ManualSpeed 1 = 0.2

5. ServicedFloors - a comma-separated list of floors this elevator car services. Ranges can also be specified by putting a "-" between the numbers. Please note that each car must serve different floors.
Example: ServicedFloors = 0, 5, 6, 7-30, 31

6. DoorTimer - the length of time (in milliseconds) that the elevator doors should stay open before automatically closing. Specify 0 to disable. The default is 5000, or 5 seconds. This must be specified after the CreateCar command.
Syntax: DoorTimer doornumber = value
Example: DoorTimer 1 = 10000

7. QuickClose - the length of time (in milliseconds) that the elevator doors should stay open before automatically closing, in quick-close mode. Specify 0 to disable. The default is 3000, or 3 seconds. This must be specified after the CreateCar command.
Syntax: QuickClose doornumber = value
Example: QuickClose 1 = 10000

8. NudgeTimer - the length of time (in seconds) that the doors have to remain open before the elevator car activates nudge mode for the related door. Specify 0 to disable. The default is 30 seconds. This must be specified after the CreateCar command.
Syntax: NudgeTimer doornumber = value
Example: NudgeTimer 1 = 10

9. OpenSound - the sound file to play when the elevator doors open. Default is elevatoropen.wav. Leave the filename field blank for no sound. This must be specified after the CreateCar command.
Syntax: OpenSound doornumber = filename
Example: OpenSound 1 = open.wav

10. CloseSound - the sound file to play when the elevator doors close. Default is elevatorclose.wav. Leave the filename field blank for no sound. This must be specified after the CreateCar command.
Syntax: CloseSound doornumber = filename
Example: CloseSound 1 = close.wav

11. CarStartSound, CarUpStartSound, CarDownStartSound - the sound file to play when the elevator car starts moving/speeds up. Leave the filename field blank for no sound. By default no sound is played. The first command specifies both up and down sounds, while the others are for either upwards movement or downwards movement.
Example: CarStartSound = start.wav

12. CarMoveSound, CarUpMoveSound, CarDownMoveSound - the sound file to play while the elevator car is moving. This file is automatically looped by the simulator. By default no sound is played. Leave the filename field blank for no sound. The first command specifies both up and down sounds, while the others are for either upwards movement or downwards movement.
Example: CarMoveSound = move.wav

13. CarStopSound, CarUpStopSound, CarDownStopSound - the sound file to play when the elevator car slows down and stops. By default no sound is played. Leave the filename field blank for no sound. The first command specifies both up and down sounds, while the others are for either upwards movement or downwards movement.
Example: CarStopSound = stop.wav

14. CarIdleSound - the sound file to play when the elevator car is idle (generally the fan sound). Default is elevidle.wav. Leave the filename field blank for no sound.
Example: CarIdleSound = idle.wav

15. ChimeSound - the sound file to play when the elevator car arrives at a floor. Default is chime1.wav. This must be specified after the CreateCar command. This is used for both up and down chimes. Leave the filename field blank for no sound.
Syntax: ChimeSound doornumber = filename
Example: ChimeSound 1 = chime.wav

16. UpChimeSound - the sound file to play when the elevator car arrives at a floor and it's direction is up. Default is chime1-up.wav. Leave the filename field blank for no sound. This must be specified after the CreateCar command.
Syntax: UpChimeSound doornumber = filename
Example: UpChimeSound 1 = chime.wav

17. DownChimeSound - the sound file to play when the elevator car arrives at a floor and it's direction is down. Default is chime1-down.wav. Leave the filename field blank for no sound. This must be specified after the CreateCar command.
Syntax: DownChimeSound doornumber = filename
Example: DownChimeSound 1 = chime.wav

18. EarlyUpChimeSound - the sound file to play during an early arrival notification of the elevator and the direction is up.. Default is chime1-up.wav. Leave the filename field blank for no sound. This must be specified after the CreateCar command.
Syntax: EarlyUpChimeSound doornumber = filename
Example: EarlyUpChimeSound 1 = chime.wav

19. EarlyDownChimeSound - the sound file to play during an early arrival notification of the elevator, and the direction is down. Default is chime1-down.wav. Leave the filename field blank for no sound. This must be specified after the CreateCar command.
Syntax: EarlyDownChimeSound doornumber = filename
Example: EarlyDownChimeSound 1 = chime.wav

20. AlarmSound - the sound file to play when the elevator car's alarm button is pressed. Default is bell1.wav. Leave the filename field blank for no sound.
Example: AlarmSound = bell2.wav

21. AlarmSoundStop - the sound file to play when the elevator car's alarm button is released. Leave the filename field blank for no sound. Default is bell1-stop.wav.
Example: AlarmSoundStop = bell2-stop.wav

22. BeepSound - the sound file to play when the elevator car reaches a new floor. There is no default; if this is set, the beeps will be automatically enabled. If an asterisk (*) is specified, it is replaced with the current floor number.
Example: BeepSound = beep.wav

23. FloorSound - the sound file(s) to play when the elevator car arrives at a floor; normally this is used for files that speak the floor number. There is no default; if this is set, the sounds will be automatically enabled. If an asterisk (*) is specified, it is replaced with the current floor number.
Example: FloorSound = floor*.wav

24. UpMessage - the notification sound file(s) to play after the elevator car arrives at a floor and the doors open - this tells the passengers that the elevator is going up. There is no default; if this is set, the sound will be automatically enabled. If an asterisk (*) is specified, it is replaced with the current floor number.
Example: UpMessage = goingup.wav

25. DownMessage - the notification sound file(s) to play after the elevator car arrives at a floor and the doors open - this tells the passengers that the elevator is going down. There is no default; if this is set, the sound will be automatically enabled. If an asterisk (*) is specified, it is replaced with the current floor number.
Example: DownMessage = goingdown.wav

26. OpenMessage - the notification sound file(s) to play when the elevator doors begin opening - this tells the passengers that the doors are opening. There is no default; if this is set, the sound will be automatically enabled. If an asterisk (*) is specified, it is replaced with the current floor number.
Example: OpenMessage = doorsopening.wav

27. CloseMessage - the notification sound file(s) to play when the elevator doors begin closing - this tells the passengers that the doors are closing. There is no default; if this is set, the sound will be automatically enabled. If an asterisk (*) is specified, it is replaced with the current floor number.
Example: CloseMessage = doorsclosing.wav

28. MessageOnMove - if set to true, the Up/Down messages will be played when the elevator starts moving, otherwise it'll play after the doors open. The default is false.
Example: MessageOnMove = true

29. MessageOnStart - if set to true, the Up/Down messages will be played when the elevator doors start opening, otherwise it'll play after the doors finish opening. The default is false.
Example: MessageOnStart = true

30. MessageOnClose - if set to true, the Up/Down messages will be played before the elevator moves once the doors start closing, otherwise it'll play after the doors finish opening. The default is false.
Example: MessageOnClose = true

31. Music - the sound file to play for the elevator car music in both movement directions - the sound is automatically looped. There is no default; if this is set, the sound will be automatically enabled.
Example: Music = musicfile.wav

32. MusicUp - the sound file to play for the elevator car music in the up direction - the sound is automatically looped. There is no default; if this is set, the sound will be automatically enabled.
Example: MusicUp = musicfile.wav

33. MusicDown - the sound file to play for the elevator car music in the down direction - the sound is automatically looped. There is no default; if this is set, the sound will be automatically enabled.
Example: MusicDown = musicfile.wav

34. NudgeSound - the sound file to play while in nudge mode. Default is buzz.wav. Leave the filename field blank for no sound. This must be specified after the CreateCar command.
Syntax: NudgeSound doornumber = filename
Example: NudgeSound 1 = buzz.wav

35. Doors - sets the number of doors the elevator car will have. The default is 1. Set to 0 in order to have a doorless elevator car.
Example: Doors = 2

36. MusicPosition - sets the position of the music sound emitter relative of the elevator car's position. If this command is not specified, it'll be placed in the center of the elevator car on the ceiling.
Syntax: MusicPosition = x, y, z
Example: MusicPosition = 0, 8, 0

37. MusicOn - Enables or disables music on start. Default is true.
Syntax: MusicOn = false

38. MusicOnMove - Determines if music should only be played while the elevator is moving or not. Default is false.
Syntax: MusicOnMove = true

39. DisplayFloors - sets the floors that will be displayed by the elevator car's indicators. This command uses the same syntax as the ServicedFloors command.
Syntax: DisplayFloors = 0, 9, 19, 29

40. AutoEnable - Determines if interior objects should automatically be enabled or disabled when the user enters/exits the elevator car (set to false for glass elevators).
Syntax: AutoEnable = false

41. DoorSensor - enable or disable the door sensor (electric eye), which is a trigger object placed in the elevator door area. Default is enabled for automatic doors. A second parameter specifies the sound file to play when switching between on and off - this is normally used for a relay switch sound effect. Only specify the first parameter for no sound. This must be specified after the CreateCar command.
Syntax: DoorSensor doornumber = enable[, filename]
Example: DoorSensor 1 = true, click.wav
To have the sensor play a continuous beep while it's on (obstructed), create a sound inside the elevator car with the AddSound command using the filename of the beep sound you want, and then create an action with the elevator car's "sensor" command name. So for elevator 1 car 1, you would create an action named "Elevator 1:Car 1:sensor", and the action would do a "playsound" command on the sound you created.

42. CarEmergencyStopSound - the sound file to play for the elevator car when an emergency stop is initiated. Leave the filename field blank to use the normal car stop sound, if specified. By default no sound is played.
Example: CarEmergencyStopSound = emergstop_car.wav

43. IndependentService - enables independent service mode for the elevator, and makes this car the active car for the mode.
Example: IndependentService = true

44. FireService2 - sets the fire service phase 2 mode that the elevator will start with, and makes this car the active car for the mode. Default is 0. Values are 0 for off, 1 for on, 2 for hold.
Syntax: FireService2 = 1

45. TimerDelay - specifies the key input timer delay, for keypads, in seconds. The default is 2 seconds.
Example: TimerDelay = 1

46. InvalidInput - specifies keypad input values that should be treated as invalid.
Example: InvalidInput = 13, 23

Commands:

1. CreateCar - creates an elevator car on the specified floor. This command is only used for creating additional cars, since the elevator's CreateElevator command creates Car 1 automatically. The Floor value must be greater than the previous car's floor.
Syntax: CreateCar floor
Example: CreateCar 1

2. AddFloor - adds a textured floor with the specified dimensions for the car
Syntax: AddFloor name, texturename, thickness, x1, z1, x2, z2, voffset1, voffset2, reverse_axis, texture_direction, tw, th
Example: AddFloor Floor1, Wood2, 0.5, -3.5, -3, 3.5, 3, 0, 0, false, false, 0, 0

3. AddWall - adds a textured wall for the car
Syntax: AddWall name, texturename, thickness, x1, z1, x2, z2, height1, height2, voffset1, voffset2, tw, th
Example: AddWall Wall1, Wood1, 0.5, -3.5, 3, 3.5, 3, 8, 8, 0, 0, 2, 2

The car's AddWall command is similar to the other AddWall commands.

4. AddDoors - creates elevator car doors
Syntax: AddDoors number, lefttexture, righttexture, thickness, CenterX, CenterZ, width, height, direction, tw, th

The AddDoors command creates working elevator car doors at the central location specified by CenterX and CenterZ, with width and height specifiying the width and height of each door, and Direction specifying the direction that the doors face (currently there are only 2: false if the doors are on the left or right sides, and true if the doors are on the front or back sides). Number specifies the number of the door to create (related to the Doors command) - if the car only has one door, or if the Doors command was not used, specify 1 here.

5. AddShaftDoors - creates elevator shaft doors
Syntax: AddShaftDoors number, lefttexture, righttexture, thickness, CenterX, CenterZ, voffset, tw, th, rotation

The AddShaftDoors command creates working elevator shaft doors at the central location specified by CenterX and CenterZ. Other parameters such as width, height, and direction are taken from the AddDoors command (so the regular elevator car doors need to be created first). The voffset parameter allows you to create shaft doors at a different vertical position than the base of the floor, and the elevator will automatically stop according to the shaft door's voffset for that floor. These doors should be moved slightly away from the car doors (to separate them both). Also, this command creates doors at all the floors specified in the ServicedFloors value, and cuts any shaft walls that are within the door area (and so this must be called after the shaft walls are created). Number specifies the number of the door to create (related to the Doors command) - if the elevator car only has one door, or if the Doors command was not used, specify 1 here. Rotation determines the rotation (relative of the parent) of the doors, normally used when rotating elevator cars to face a different direction.

6. CreatePanel - creates a button panel
Syntax: CreatePanel texturename, rows, columns, direction, CenterX, CenterZ, buttonwidth, buttonheight, spacingX, spacingY, voffset, tw, th
Example: CreatePanel Wall1, 5, 5, right, -3, -3, 0.15, 0.15, 0.3, 0.45, 4.5, 0, 0

The CreatePanel command creates a button panel at a position relative to the elevator car's center position (origin). Rows and Columns define the grid size of the panel. Direction is either "front", "back", "left" or "right", defining which direction the panel faces. SpacingX is the space (percent of a button's width) horizontally between each button, and spacingY is the space (percent of a button's height) vertically between each button. Not all positions need to be used; this is simply to provide a grid layout for the panel. This command also determines the width and height of the panel based on the spacing and button sizes. A simple formula for determining panel width or height is this - for width, it's (columns * buttonwidth) + (spacingX * (columns + 1)); for height, just swap columns with rows and spacingX with spacingY. If a texture is not specified, the back portion of the panel will not be shown.

7. AddButton - creates a standard button on the panel
Syntax: AddButton panel_number, sound, texture_unlit, texture_lit, row, column, floor/type, width, height[, hoffset, voffset]
Example 1: AddButton 1, switch.wav, Button5, ButtonLit5, 7, 3, 4, 1, 1
Example 2: AddButton 1, , Button5, ButtonLit5, 7, 3, 4, 1, 1, 0.1, -0.1

The AddButton command creates a button on the button panel created with CreatePanel. Panel_number specifies the number of the panel to add the button to. Row and Column specify the position on the grid where the button should be. Floor/Type specifies either the floor number that this button calls, or the action name such as "Open" (see the AddControl command for more info). Width and Height specify the width and height of the button, as a percentage of a single grid unit size (1 being 100%, 0.5 being 50%). If both values are 0, the default of 1 is used for both values. If only one of the values is 0, then the exact size other is used; for example, if width is 0 and height is 1 (or any other number), then the width will end up being the same size as the height. Hoffset and Voffset are optional parameters, and are used to position the button outside the normal grid, and are in grid units (buttonwidth and buttonheight parameters of the CreatePanel function). In the second example, the button is positioned 0.1 grid units to the right, and 0.1 grid units down. Notice that no sound is specified in the 2nd example - this means that a sound won't be played.

8. AddControl - advanced command for creating buttons, switches and knobs on the panel
Syntax: AddControl panel_number, sound, row, column, width, height, hoffset, voffset, selection_position, command_name(s), texture_name(s)
Example 1: AddControl 1, switch.wav, 7, 3, 1, 1, 0, 0, 1, open, ButtonOpen
Example 2: AddControl 1, switch.wav, 7, 3, 1, 1, 0, 0, 1, FanOff, FanOn, SwitchFanOff, SwitchFanOn
Example 3: AddControl 1, switch.wav, 7, 3, 1, 1, 0, 0, 1, Off, 4, Button5, ButtonLit5
Example 4: AddControl 1, switch.wav, 7, 3, 1, 1, 0, 0, 1, Fire2Off, Fire2On, Fire2Hold, FireKnob1, FireKnob2, FireKnob3

The AddControl command creates an advanced control on the specified button panel (created with CreatePanel). Most of the parameters are the same as the AddButton command, but the command_name(s) and texture_name(s) parameters allow you to specify a list of commands, and a list of textures to go along with those commands. A texture needs to be specified for every command; if you specify 3 commands and only 2 textures, you will get an error. The first example shows a door open button being created, with the command "open" and the texture "ButtonOpen". The 2nd example shows a fan switch being created, with the first command being "FanOff" with the "SwitchFanOff" texture being used for that, and "FanOn" for the second command with the "SwitchFanOn" texture being used for that. Example 3 shows a standard floor button being created (which is what the AddButton command does) and example 4 shows a fire service mode knob being created with 3 positions. Leave the sound field blank for no sound to be played. The selection_position parameter specifies the starting selection position, which is normally 1.

Available command names for elevators:

Off (no action)
[floor number] (specify only the floor number to send elevator to that floor)
Open [door] (open doors)
Close [door] (close doors)
OpenInt [door] (open interior/car doors)
CloseInt [door] (close interior/car doors)
OpenExt [door] (open exterior/shaft doors)
CloseExt [door] (close exterior/shaft doors)
OpenManual [door] (open doors manually)
CloseManual [door] (close doors manually)
OpenIntManual [door] (open interior/car doors manually)
CloseIntManual [door] (close interior/car doors manually)
OpenExtManual [door] (open exterior/shaft doors manually)
CloseExtManual [door] (close exterior/shaft doors manually)
StopDoors [door] (stop doors during manual movement)
Cancel (call cancel)
Run (put elevator in run state)
Stop (put elevator in stop state)
EStop (emergency stop)
Alarm (alarm trigger)
Fire1Off (fire service phase 1 off for all elevators in same bank, which means all served by first call button on recall floor)
Fire1On (fire service phase 1 on for all elevators in same bank)
Fire1Bypass (fire service phase 1 bypass for all elevators in same bank)
Fire2Off (fire service phase 2 off)
Fire2On (fire service phase 2 on)
Fire2Hold (fire service phase 2 hold)
UpPeakOn (enable up peak)
UpPeakOff (disable up peak)
DownPeakOn (enable down peak)
DownPeakOff (disable down peak)
PeakOff (disable both peak modes)
IndOn (enable independent service mode)
IndOff (disable independent service)
InsOn (enable inspection service mode)
InsOff (disable inspection service)
AcpOn (enable ACP mode)
AcpOff (disable ACP mode)
FanOn (enable fan/idle sound)
FanOff (disable fan/idle sound)
Hold [door] (hold door and disable door sensor temporarily)
MusicOn (enable music sound)
MusicOff (disable music sound)
UpOn (manual elevator up on)
UpOff (manual elevator up off)
DownOn (manual elevator down on)
DownOff (manual elevator down off)
InsUpOn (inspection mode up on)
InsUpOff (inspection mode up off)
InsDownOn (inspection mode down on)
InsDownOff (inspection mode down off)
GoOn (inspection mode go on)
GoOff (inspection mode go off)
Return (return to nearest serviced floor after stop)
Up (move up for manual elevator, for a button held by mouse button)
Down (move down for manual elevator, for a button held by mouse button)
InterlocksOn (enable interlocks)
InterlocksOff (disable interlocks)
Sensor [door] (open and hold doors without disabling sensor, used by door sensor)
Reset [door] (reset door timer and turn on door sensor, which turns off hold)
SensorOn [door] (enable door sensor)
SensorOff [door] (disable door sensor)
SensorReset [door] (same as Reset but doesn't touch sensor setting)
Input1 (number 1 on keypad)
Input2 (number 2 on keypad)
Input3 (number 3 on keypad)
Input4 (number 4 on keypad)
Input5 (number 5 on keypad)
Input6 (number 6 on keypad)
Input7 (number 7 on keypad)
Input8 (number 8 on keypad)
Input9 (number 9 on keypad)
Input0 (number 0 on keypad)
InputMinus (minus on keypad)
InputStar (star on keypad)
InputBackspace (extra feature with character "<")
InputEnter (enter key on keypad)
InputClear (clear key on keypad)

Some commands in the above list have an optional Door parameter. For example, Open 2 will open door 2, while Open or Open 0 will open all doors.
When this command is used, actions are created using the specified commands. The resulting names of the actions are the elevator name, followed by a colon, then the Car name followed by another colon, and then the command name, in order to be unique to each elevator and car. So the "Open" command for Elevator 1 Car 1 is created as an action named "Elevator 1:Car 1:open", and you can specify more actions with that name to run multiple actions when the elevator car opens it's doors.
9. AddFloorIndicator - creates a floor indicator
Syntax: AddFloorIndicator texture_prefix, blank_texture, direction, CenterX, CenterZ, width, height, voffset

The AddFloorIndicator command creates a floor indicator at the position (relative to the elevator car) specified by CenterX and CenterZ. Direction is the direction the indicator faces, and can be either "left", "right", "front" or "back". This command can be given multiple times to create multiple indicators. Texture_prefix is the base name of the texture to load when displaying a floor ID; for example if the elevator car is on floor 3, and you specify a prefix of "Button", it'll load the "Button3" texture. Blank_texture specifies a texture to be used when the indicator is blank.

10. AddDirectionalIndicator - creates an internal directional indicator/lantern
Syntax: AddDirectionalIndicator ActiveDirection, Single, Vertical, BackTexture, UpTexture, UpTextureLit, DownTexture, DownTextureLit, CenterX, CenterZ, voffset, direction, BackWidth, BackHeight, ShowBack, tw, th
Example: AddDirectionalIndicator false, false, true, Metal, UpLight, UpLightOn, DownLight, DownLightOn, -3, -4.162, 6, front, 0.5, 1, true, 0, 0

This command will create a directional indicator inside the elevator car, and the positioning is relative of the elevator car's center.

ActiveDirection determines if the indicator should continuously display the active elevator direction (true), or if it should show the elevator's direction for the current call (false, default)

Single determines if a single indicator light should be created instead of two. If this is true, the unlit texture is specified in UpLight, and the DownLight value is ignored.

Vertical determines if the two lights should be vertically separated (true), or horizontally separated (false)

BackTexture is the texture of the wall plate behind the lights

UpTexture and DownTexture are the textures used for the lights themselves, and the "Lit" texures are the ones to show when the light is on. DownTexture is ignored if Single is true.

CenterX and CenterZ are the central location of the indicators

voffset is the altitude offset that the object is above each floor

direction determines the direction the indicators face:
'front' means they face towards the front of the building
'back' means they face towards the back of the building
'left' means they face left
'right' means they face right

BackWidth and BackHeight are the width and height of the wall plate

ShowBack determines if the wall plate should be shown, and is either true or false

tw and th are the texture scaling for the wall plate.

11. AddDirectionalIndicators - creates the elevator's exterior directional indicator/lanterns (similar to the CreateCallButtons command)
Syntax: AddDirectionalIndicators Relative, ActiveDirection, Single, Vertical, BackTexture, UpTexture, UpTextureLit, DownTexture, DownTextureLit, CenterX, CenterZ, voffset, direction, BackWidth, BackHeight, ShowBack, tw, th
Example: AddDirectionalIndicators true, false, false, true, Metal, UpLight, UpLightOn, DownLight, DownLightOn, -3, -4.162, 6, front, 0.5, 1, true, 0, 0

This command will create directional indicators on all floors the elevator car serves. It'll also automatically create the up and down lights depending on the floor. To create indicators on a per-floor basis, use the AddDirectionalIndicator command in the Floor section.

Relative determines if the X and Z coordinates are relative to the elevator car's origin (center) or not.

ActiveDirection determines if the indicator should continuously display the active elevator direction (true), or if it should show the elevator's direction for the current call (false, default)

Single determines if a single indicator light should be created instead of two. If this is true, the unlit texture is specified in UpLight, and the DownLight value is ignored.

Vertical determines if the two lights should be vertically separated (true), or horizontally separated (false)

BackTexture is the texture of the wall plate behind the lights

UpTexture and DownTexture are the textures used for the lights themselves, and the "Lit" texures are the ones to show when the light is on. DownTexture is ignored if Single is true.

CenterX and CenterZ are the central location of the indicators

voffset is the altitude offset that the object is above each floor

direction determines the direction the indicators face:
'front' means they face towards the front of the building
'back' means they face towards the back of the building
'left' means they face left
'right' means they face right

BackWidth and BackHeight are the width and height of the wall plate

ShowBack determines if the wall plate should be shown, and is either true or false

tw and th are the texture scaling for the wall plate.

12. SetShaftDoors - (deprecated) sets positioning and thickness of shaft doors which will be created with the older AddShaftDoor command. Please use the newer AddShaftDoor syntax instead.
Syntax: SetShaftDoors number, thickness, CenterX, CenterZ

This command must be used before calling the older AddShaftDoor command. This specifies the thickness and X/Z positioning for the shaft doors that will be created. Number specifies the door number this is associated with (use 1 if only one door).

13. AddFloorSigns - creates floor signs on all floors serviced by the elevator car
Syntax: AddFloorSigns door_number, relative, texture_prefix, direction, CenterX, CenterZ, width, height, voffset

The AddFloorSigns command creates floor signs (similar to floor indicators) on all the floors serviced by the current elevator car. Direction is the direction the signs face, and can be either "left", "right", "front" or "back". Texture_prefix is the base name of the texture to load when displaying a floor ID; for example if the sign is on floor 3, and you specify a prefix of "Button", it'll load the "Button3" texture. Door_number specifies the door number to check against, meaning if shaft doors don't exist on a certain floor for the specified door, the sign won't be created on that floor. This can be bypassed by setting door_number to 0.

14. AddSound - creates a user-defined sound at the specified position
Syntax: AddSound name, filename, x, y, z, loop[, volume, speed, min_distance, max_distance, doppler_level, cone_inside_angle, cone_outside_angle, cone_outside_volume, direction_x, direction_y, direction_z]
Example 1: AddSound MySound, sound.wav, 10, 100, 5, true
Example 2: AddSound MySound, ambient.ogg, 10, 100, 5, true, 1, 100, 1, -1, 0, 360, 360, 1, 0, 0, 0

For information on the parameters, see the AddSound command in the Global Commands section. The only difference here is that the X, Y and Z position values are relative of the elevator car's center/origin. Loop specifies if the sound should loop and play on startup.

15. AddDoorComponent - creates a single elevator car door component, used for creating custom door styles
Syntax: AddDoorComponent number, name, texture, sidetexture, thickness, direction, openspeed, closespeed, x1, z1, x2, z2, height, voffset, tw, th, side_tw, side_th

Example: AddDoorComponent 1, Left, ElevDoors, Black, 0.2, left, 0.3, 0.3, -1.75, 0, 0, 0, 8, 0, 0, 0, 0, 0

The AddDoorComponent command allows you to create your own custom door styles. It creates a single door component within a set - for example, the standard center-open doors have 2 door components: left and right. With this command you specify the positioning of a component similar to wall creation, specify it's textures, tell it which direction it's going to travel during opening, and what it's speed will be. Number specifies the number of the door to create (related to the Doors command) - if the elevator car only has one door, or if the Doors command was not used, specify 1 here. Texture refers to the texture used on the main (front and back) sides of the door. SideTexture refers to the texture used on the sides (and top/bottom) of the door. Direction is either Up, Down, Left (or Front; is the same), or Right (or Back; is also the same). Side_tw and side_th specify the texture tiling for the sides. Use the FinishDoors command after creating the components. The above example creates the left door component for the standard center-open doors, and uses default speed values. This command replaces the AddDoors command.

16. AddShaftDoorsComponent - creates a single shaft door component for all serviced floors - used for creating custom door styles
Syntax: AddShaftDoorsComponent number, name, texture, sidetexture, thickness, direction, openspeed, closespeed, x1, z1, x2, z2, height, voffset, tw, th, side_tw, side_th

This command is almost identical to the AddDoorComponent command, except that it creates shaft doors. Use the FinishShaftDoors command after creating the components. This command replaces the AddShaftDoors command. To create shaft doors on a per-floor basis, use the AddShaftDoorComponent command in the Floors section.

17. FinishDoors - finishes elevator car door creation - use this after all related AddDoorComponent commands are used.
Syntax: FinishDoors number[, door_walls, track_walls]

This command completes the elevator car door creation by storing the central location and shift factor, cutting walls for the door, creating side connection pieces for the cut, etc. The optional door_walls option specifies if the command should create the side door filler walls (texture used is "ConnectionWall"), and the optional track_walls option specifies if the top/bottom track connection walls should be made (texture used is "Connection").

18. FinishShaftDoors - finishes shaft door creation for all serviced floors - use this after all related AddShaftDoorsComponent commands are used, or specify it without the AddShaftDoorComponent commands if you're creating a manual shaft door.
Syntax: FinishShaftDoors number[, door_walls, track_walls]

This command is almost identical to the FinishDoors command except that it's used for finishing shaft doors on all serviced floors.

19. AddDoor - adds a textured door in the specified location, which moves with the elevator car
Syntax: AddDoor opensound, closesound, texturename, open, thickness, direction, speed, CenterX, CenterZ, width, height, voffset, tw, th

See the AddDoor command in the floor section for information on the parameters. CenterX and CenterZ are relative of the elevator car's center.

20. AddModel - adds a 3D model to the elevator car. If a filename is specified, the model's textures/materials must be defined in a separate ".material" file, and a separate collider mesh ".collider.mesh" will be loaded. In that situation, if a collider mesh isn't available, a simple box collider will be created. If a filename is not specified, this command will create a new empty model, where it's name can be used as the destobject parameter in other commands (in the related Elevator or Car section), and a collider will be automatically created.
Syntax: AddModel name, filename, center, CenterX, CenterY, CenterZ, RotationX, RotationY, RotationZ, MaxRenderDistance, ScaleMultiplier, EnablePhysics, Restitution, Friction, Mass
Example 1: AddModel MyModel, cube.mesh, true, 0, 0, 0, 0, 0, 0, 0, 1, false, 0, 0, 0
Example 2: AddModel MyModel, cube.mesh, true, 0, 0, 0, 0, 0, 0, 0, 1, true, 0.1, 0.5, 0.1
Example 3: AddModel MyModel, , false, 0, 0, 0, 0, 0, 0, 0, 1, true, 0.1, 0.5, 0.1

The Center value is either true or false, and determines if the loaded model should be automatically centered, otherwise the exact mesh positioning in the model file will be used. The CenterY value is relative to the current elevator car's base. MaxRenderDistance determines the maximum distance in feet that the object will be shown (0 means unlimited). ScaleMultiplier allows you to change the size of the object during the load - for example, set to 2 to double the size. Models are in the OGRE native mesh format. In the example, the material/texture file is cube.material, and the optional collider mesh file is cube.collider.mesh. EnablePhysics enables Bullet physics on the object, and Restitution, Friction and Mass determine the physical properties of the object.

21. AddActionControl - creates a custom control that uses a specific action defined by AddAction.
Syntax: AddActionControl name, sound, direction, centerx, centerz, width, height, voffset, selection_position, action_name(s), texture_name(s)
Example: AddActionControl MyControl, switch.wav, front, -10, 10, 1.5, 1.5, 4, 1, UndoMyAction, MyAction, Touch, TouchLit
AddActionControl command creates an advanced control similar to elevator button panel controls, but assigned to an action created with the AddAction command. The action_name(s) and texture_name(s) parameters allow you to specify a list of actions, and a list of textures to go along with those actions. There needs to be a texture for every action; if you specify 3 actions and only 2 textures, you will get an error. The control starts up in the first action, and switches to the next actions in sequence when it's clicked. Direction is the direction the control itself will face in 3D space (front, left, right, back). Voffset is relative of the elevator car's base. Leave the sound field blank for no sound to be played. Selection_position is the starting selection position, which is normally 1.

22. AddTrigger - creates a trigger that is used to signal an action when the user's camera enters or leaves the defined area.
Syntax: AddTrigger name, sound, start_x, start_y, start_z, end_x, end_y, end_z, action_names(s)
Example: AddTrigger MyTrigger, switch.wav, -30, 0, -30, -20, 10, -20, UndoMyAction, MyAction
AddTrigger creates a trigger similar to action controls (AddActionControl) and elevator controls. The action_names(s) parameter allows you to specify a list of actions that this trigger will call when the camera enters or exits the area. The trigger starts in the first action, and will switch to each consecutive action when the users enters/leaves. The X, Y and Z parameters specify the 3D box that defines the trigger area, and are relative of the elevator car's location. Leave the sound field blank for no sound to be played.

23. AddKeypadIndicator - creates a keypad indicator for this car.
Syntax: AddKeypadIndicator sound, texture_prefix, blank_texture, direction, CenterX, CenterZ, width, height, voffset, timer_duration
Example: Add KeypadIndicator mechchime9.wav, Button, Black, right, 0, 0, 0.5, 0.5, 1, 5

The AddKeypadIndicator command creates a keypad indicator for the associated car. Sound is the sound played when displaying that a call has been requested and the different errors relating to the keypad, and if an asterisk is specified, the asterisk is replaced with the message shown on the screen, so "Sound*.wav" would change to "SoundRequested.wav". Texture_prefix specifies the base name of the texture used, so if "Button" is specified, the texture "ButtonRequested" would load when a call is requested. Blank_texture is the texture to use when off. CenterX and CenterZ are the center locations of the indicator. Timer_duration specifies how long the indicator message should be displayed, in seconds. The error text used is both "??" and "XX", so make sure to load textures for those (such as "Button??"). The "??" value is displayed when a floor entry is invalid, and the "XX" entry means "error". For error sounds, since the "??" characters sometimes can't be used in filenames, the simulator will expand it to "Invalid", and "XX" to "Error", so as an example the sounds will be "SoundInvalid.wav" and "SoundError.wav", if "Sound*.wav" is used for the sound parameter.

24. AddElevatorIDSigns - creates elevator ID signs on all floors serviced by the elevator car
Syntax: AddElevatorIDSigns door_number, relative, texture_prefix, direction, CenterX, CenterZ, width, height, voffset

The AddElevatorIDSigns command creates elevator ID signs on all the floors serviced by the current elevator car. Direction is the direction the signs face, and can be either "left", "right", "front" or "back". Texture_prefix is the base name of the texture to load when displaying an elevator ID; for example if the sign is for an elevator with an ID of A, and you specify a prefix of "Button", it'll load the "ButtonA" texture. Door_number specifies the door number to check against, meaning if shaft doors don't exist on a certain floor for the specified door, the sign won't be created on that floor. This can be bypassed by setting door_number to 0.

25. AddReverb - creates a reverb object at the specified position
Syntax: AddReverb name, type, x, y, z, min_distance, max_distance
Example: AddReverb MyReverb, ConcertHall, 0, 0, 0, 0, 100
Reverb objects apply a certain type of reverb in a sphere. All sounds within this sphere are then heard with the reverb.
For information on the parameters, see the AddReverb command in the Global Commands section. The only difference here is that the Y value is relative of the elevator car's base, and moves with the elevator car.