Alternative Multi-Stop Elevator

== Theory ==
=== Initial Start ===
When the player first enters the elevator, they will press a button representing a floor. Lets say Elevator_M6_Button_&i (Floor 6) was pressed (Pressing Elevator_F6_Button_&i refer to the same set of commands), it would first trigger the F6_ButtonFunctions_&i commands to trigger Close_AllDoors_&i, F6_TestRelay_&i, LockButtons_&i. Also calling Elevator_&i and Elevator_Weight_&i to SetPosition to 5 (Floor 6 is 5) (func_movelinear always start with 0). As well as calling the Elevator_Chime_&i to PlaySound.
=== Closing All Doors ===
Close_AllDoors_&i actually closes one door, but calls on the CompareAll_&i to do its own work of finding the open doors thus preventing refiring all of the doors to animate unnecessarily (or glitch). When CompareAll_&i is triggered, it causes all of logic_compare enities named F1_Compare_&i through F6_Compare_&i to force their comparisons to be made.
F6_TestRelay_&i will trigger the Test_Relay_All_&i(which forces the value of zero and tests it for branches F1_Branch_Button_&i through F6_Branch_Button_&i) and retrigger F6_Branch_Button_&i to have its value set at one and tested.
LockButtons_&i Locks all of the buttons inside and outside of the elevator for the duration of the cycle (prevents the elevator from changing floors while running)
When Elevator_&i gets to the sixth floor, it passes over the F6_Trigger_&i (Passe over others as well) .When the elevator is touching F6_Trigger_&i , it sets the value of 1 and tests it on F6_Branch_Trigger_&i, when it is not touching it sets F6_Branch_Trigger_&i to 0 and tests it. (This also fires other commands but they are not critical to operation).
The F6_Branch_Listener_&i Listens to find if both F6_Branch_Button_&i and F6_Branch_Trigger_&i set to 1. If that is the case it fires F6_Timer_&i to start. After the duration of 3 seconds have passed, it triggers UnlockButtons_&i, 1/6 of a second later it locks both Elevator_F6_Button_&i and Elevator_M6_Button_&i, 5/6 of a second later it disables F6_Timer_&i, and last at 1 5/6 of a second later, Elevator_M_Door_&i is opened and F6_DoorBranch_&i value is set at 1 and tested.
When the'F6_DoorBranch_&i conditions are met ,It triggers F6_DoorTimerOpen_&i to be enabled and fires the timer 1/6 of a second later. When the time is up it fires Elevator_OpenDoor_F6_&i to tigger. Then Elevator_F6_Door_&i is triggered to open, Elevator_Sound_F6_Door_&i PlaySound, and F6_SetAllCompare_&i is triggered setting all of the logic_compare entities F1_Compare_&i Through F6_Compare_&i to 6. When the condition is met, F6_Compare_&i will trigger F6_DoorBranch_&i set the value to 0 and test it.
Final Result
== Brush Work Construction ==
This elevator's surrounding construction follows similar to the MultiStop elevator tutorial, however, the elevator itself is constructed from a func_movelinear. Therefore, you will not need any path_track. This allows the elevator to stop exactly at each point rather than slightly above or below the intended destination. However this method can be time-consuming to make and can be more confusing as well. A majority of the entities used here are for accurate door control, which would make the design fairly worthless for anything less than 3 floors.
What's needed for a six floor elevator:
7 ambient_generic(s)
12 func_button(s)
16 func_door(s)(or 7 prop_dynamic(s)
1 func_movelinear
1 logic_auto
18 logic_branch(es)
6 logic_branch_listener(s)
6 logic_compare(s)
35 logic_relay(s) 
18 logic_timer(s)
6 trigger_multiple(s)
== Brush Entities ==
This would be the entity that will move the player to his or her desired floor.
ClassInfo
:Class
::func_movelinear
Keyvalues
Property Name 	Value
Name 	Elevator_&i
Move Direction (Pitch Yaw Roll) 	-90 0 0
Move Distance 	160
Block Damage 	2000
Sound played when the brush starts moving	(Pick A Sound)
Sound played when the brush stops moving 	(Pick A Sound)
Outputs
NONE
----
This entity would be placed on a wall outside of the elevator.
ClassInfo
:Class
::func_button
Keyvalues
Property Name	Value
Name 	Elevator_F1_Button_&i
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnPressed	F1_ButtonFunctions_&i	Trigger 	 	0.00
Flags
☑ Don't move
☑ Use Activates
----
This entity would be placed on a wall outside of the elevator.
ClassInfo
:Class
::func_button
Keyvalues
Property Name	Value
Name 	Elevator_F2_Button_&i
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnPressed	F2_ButtonFunctions_&i	Trigger 	 	0.00
Flags
☑ Don't move
☑ Use Activates
----
This entity would be placed on a wall outside of the elevator.
ClassInfo
:Class
::func_button
Keyvalues
Property Name	Value
Name 	Elevator_F3_Button_&i
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnPressed	F3_ButtonFunctions_&i	Trigger 	 	0.00
Flags
☑ Don't move
☑ Use Activates
----
This entity would be placed on a wall outside of the elevator.
ClassInfo
:Class
::func_button
Keyvalues
Property Name	Value
Name 	Elevator_F4_Button_&i
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnPressed	F4_ButtonFunctions_&i	Trigger 	 	0.00
Flags
☑ Don't move
☑ Use Activates
----
This entity would be placed on a wall outside of the elevator.
ClassInfo
:Class
::func_button
Keyvalues
Property Name	Value
Name 	Elevator_F5_Button_&i
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnPressed	F5_ButtonFunctions_&i	Trigger 	 	0.00
Flags
☑ Don't move
☑ Use Activates
----
This entity would be placed on a wall outside of the elevator.
ClassInfo
:Class
::func_button
Keyvalues
Property Name	Value
Name 	Elevator_F6_Button_&i
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnPressed	F6_ButtonFunctions_&i	Trigger 	 	0.00
Flags
☑ Don't move
☑ Use Activates
----
This entity would be placed inside of the elevator and will move with it.
ClassInfo
:Class
::func_button
Keyvalues
Property Name	Value
Name 	Elevator_M1_Button_&i
Parent 	Elevator_&i
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnPressed	F1_ButtonFunctions_&i	Trigger 	 	0.00
Flags
☑ Don't move
☑ Use Activates
----
This entity would be placed inside of the elevator and will move with it.
ClassInfo
:Class
::func_button
Keyvalues
Property Name	Value
Name 	Elevator_M2_Button_&i
Parent 	Elevator_&i
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnPressed	F2_ButtonFunctions_&i	Trigger 	 	0.00
Flags
☑ Don't move
☑ Use Activates
----
This entity would be placed inside of the elevator and will move with it.
ClassInfo
:Class
::func_button
Keyvalues
Property Name	Value
Name 	Elevator_M3_Button_&i
Parent 	Elevator_&i
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnPressed	F3_ButtonFunctions_&i	Trigger 	 	0.00
Flags
☑ Don't move
☑ Use Activates
----
This entity would be placed inside of the elevator and will move with it.
ClassInfo
:Class
::func_button
Keyvalues
Property Name	Value
Name 	Elevator_M4_Button_&i
Parent 	Elevator_&i
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnPressed	F4_ButtonFunctions_&i	Trigger 	 	0.00
Flags
☑ Don't move
☑ Use Activates
----
This entity would be placed inside of the elevator and will move with it.
ClassInfo
:Class
::func_button
Keyvalues
Property Name	Value
Name 	Elevator_M5_Button_&i
Parent 	Elevator_&i
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnPressed	F5_ButtonFunctions_&i	Trigger 	 	0.00
Flags
☑ Don't move
☑ Use Activates
----
This entity would be placed inside of the elevator and will move with it.
ClassInfo
:Class
::func_button
Keyvalues
Property Name	Value
Name 	Elevator_M6_Button_&i
Parent 	Elevator_&i
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnPressed	F6_ButtonFunctions_&i	Trigger 	 	0.00
Flags
☑ Don't move
☑ Use Activates
----
This is used for detecting the elevator as it passes over. It is mainly used for door control, though it can be used for indicator lights.
ClassInfo
:Class
::trigger_multiple
Keyvalues
Property Name	Value
Name 	F1_Trigger_&i
Outputs
	My Output 	Target Entity 	Target Input	Parameter	Delay
	OnEndTouch 	F1_Branch_Trigger_&i	SetValueTest	0 	0.00
	OnStartTouch	F1_Branch_Trigger_&i	SetValueTest	1 	0.00
	OnEndTouch 	num1_&i 	Disable 	 	0.00
	OnStartTouch	num1_&i 	Enable 	 	0.00
	OnEndTouch 	F1_Light_&i 	Color 	0 255 0 	0.00
	OnStartTouch	F1_Light_&i 	Color 	255 0 0 	0.00
Flags
☑ Everything (not including physics debris)
----
This is used for detecting the elevator as it passes over. It is mainly used for door control, though it can be used for indicator lights.
ClassInfo
:Class
::trigger_multiple
Keyvalues
Property Name	Value
Name 	F2_Trigger_&i
Outputs
	My Output 	Target Entity 	Target Input	Parameter	Delay
	OnEndTouch 	F2_Branch_Trigger_&i	SetValueTest	0 	0.00
	OnStartTouch	F2_Branch_Trigger_&i	SetValueTest	1 	0.00
	OnEndTouch 	num2_&i 	Disable 	 	0.00
	OnStartTouch	num2_&i 	Enable 	 	0.00
	OnEndTouch 	F2_Light_&i 	Color 	0 255 0 	0.00
	OnStartTouch	F2_Light_&i 	Color 	255 0 0 	0.00
Flags
☑ Everything (not including physics debris)
----
This is used for detecting the elevator as it passes over. It is mainly used for door control, though it can be used for indicator lights.
ClassInfo
:Class
::trigger_multiple
Keyvalues
Property Name	Value
Name 	F3_Trigger_&i
Outputs
	My Output 	Target Entity 	Target Input	Parameter	Delay
	OnEndTouch 	F3_Branch_Trigger_&i	SetValueTest	0 	0.00
	OnStartTouch	F3_Branch_Trigger_&i	SetValueTest	1 	0.00
	OnEndTouch 	num3_&i 	Disable 	 	0.00
	OnStartTouch	num3_&i 	Enable 	 	0.00
	OnEndTouch 	F3_Light_&i 	Color 	0 255 0 	0.00
	OnStartTouch	F3_Light_&i 	Color 	255 0 0 	0.00
Flags
☑ Everything (not including physics debris)
----
This is used for detecting the elevator as it passes over. It is mainly used for door control, though it can be used for indicator lights.
ClassInfo
:Class
::trigger_multiple
Keyvalues
Property Name	Value
Name 	F4_Trigger_&i
Outputs
	My Output 	Target Entity 	Target Input	Parameter	Delay
	OnEndTouch 	F4_Branch_Trigger_&i	SetValueTest	0 	0.00
	OnStartTouch	F4_Branch_Trigger_&i	SetValueTest	1 	0.00
	OnEndTouch 	num4_&i 	Disable 	 	0.00
	OnStartTouch	num4_&i 	Enable 	 	0.00
	OnEndTouch 	F4_Light_&i 	Color 	0 255 0 	0.00
	OnStartTouch	F4_Light_&i 	Color 	255 0 0 	0.00
Flags
☑ Everything (not including physics debris)
----
This is used for detecting the elevator as it passes over. It is mainly used for door control, though it can be used for indicator lights.
ClassInfo
:Class
::trigger_multiple
Keyvalues
Property Name	Value
Name 	F5_Trigger_&i
Outputs
	My Output 	Target Entity 	Target Input	Parameter	Delay
	OnEndTouch 	F5_Branch_Trigger_&i	SetValueTest	0 	0.00
	OnStartTouch	F5_Branch_Trigger_&i	SetValueTest	1 	0.00
	OnEndTouch 	num5_&i 	Disable 	 	0.00
	OnStartTouch	num5_&i 	Enable 	 	0.00
	OnEndTouch 	F5_Light_&i 	Color 	0 255 0 	0.00
	OnStartTouch	F5_Light_&i 	Color 	255 0 0 	0.00
Flags
☑ Everything (not including physics debris)
----
This is used for detecting the elevator as it passes over. It is mainly used for door control, though it can be used for indicator lights.
ClassInfo
:Class
::trigger_multiple
Keyvalues
Property Name	Value
Name 	F6_Trigger_&i
Outputs
	My Output 	Target Entity 	Target Input	Parameter	Delay
	OnEndTouch 	F6_Branch_Trigger_&i	SetValueTest	0 	0.00
	OnStartTouch	F6_Branch_Trigger_&i	SetValueTest	1 	0.00
	OnEndTouch 	num6_&i 	Disable 	 	0.00
	OnStartTouch	num6_&i 	Enable 	 	0.00
	OnEndTouch 	F6_Light_&i 	Color 	0 255 0 	0.00
	OnStartTouch	F6_Light_&i 	Color 	255 0 0 	0.00
Flags
☑ Everything (not including physics debris)
== Functional Relays ==
These Functional relays were created to reduce the number of commands when operating the elevator, more for organizational purposes. For example, rather than rewriting 6 or 12 commands in roughly 24 diferent places, we can write one command for the same 24 places.
This locks the buttons to prevent players from retriggering while the elevator is operating.
ClassInfo
:Class
::logic_relay
Keyvalues
Property Name	Value
Name 	LockButtons_&i
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTrigger	Elevator_F1_Button_&i	Lock 	 	0.00
	OnTrigger	Elevator_F2_Button_&i	Lock 	 	0.00
	OnTrigger	Elevator_F3_Button_&i	Lock 	 	0.00
	OnTrigger	Elevator_F4_Button_&i	Lock 	 	0.00
	OnTrigger	Elevator_F5_Button_&i	Lock 	 	0.00
	OnTrigger	Elevator_F6_Button_&i	Lock 	 	0.00
	OnTrigger	Elevator_M1_Button_&i	Lock 	 	0.00
	OnTrigger	Elevator_M2_Button_&i	Lock 	 	0.00
	OnTrigger	Elevator_M3_Button_&i	Lock 	 	0.00
	OnTrigger	Elevator_M4_Button_&i	Lock 	 	0.00
	OnTrigger	Elevator_M5_Button_&i	Lock 	 	0.00
	OnTrigger	Elevator_M6_Button_&i	Lock 	 	0.00
----
This unlocks when the elevator is done with the full cycle.
ClassInfo
:Class
::logic_relay
Keyvalues
Property Name	Value
Name 	UnockButtons_&i
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTrigger	Elevator_F1_Button_&i	Unock 	 	0.00
	OnTrigger	Elevator_F2_Button_&i	Unock 	 	0.00
	OnTrigger	Elevator_F3_Button_&i	Unock 	 	0.00
	OnTrigger	Elevator_F4_Button_&i	Unock 	 	0.00
	OnTrigger	Elevator_F5_Button_&i	Unock 	 	0.00
	OnTrigger	Elevator_F6_Button_&i	Unock 	 	0.00
	OnTrigger	Elevator_M1_Button_&i	Unock 	 	0.00
	OnTrigger	Elevator_M2_Button_&i	Unock 	 	0.00
	OnTrigger	Elevator_M3_Button_&i	Unock 	 	0.00
	OnTrigger	Elevator_M4_Button_&i	Unock 	 	0.00
	OnTrigger	Elevator_M5_Button_&i	Unock 	 	0.00
	OnTrigger	Elevator_M6_Button_&i	Unock 	 	0.00
----
This forces all of the logic_compare entities to compare the currently set values to affect the doors on all floors. 
ClassInfo
:Class
::logic_relay
Keyvalues
Property Name	Value
Name 	CompareAll_&i
Outputs
	My Output	Target Entity	Target Input	Parameter	Delay
	OnTrigger	F1_Compare_&i	Compare 	 	0.00
	OnTrigger	F2_Compare_&i	Compare 	 	0.00
	OnTrigger	F3_Compare_&i	Compare 	 	0.00
	OnTrigger	F4_Compare_&i	Compare 	 	0.00
	OnTrigger	F5_Compare_&i	Compare 	 	0.00
	OnTrigger	F6_Compare_&i	Compare 	 	0.00
----
This is to force close all of the doors when the elevator starts its cycle. (Utilizing the CompareAll_&i relay)
ClassInfo
:Class
::logic_relay
Keyvalues
Property Name	Value
Name 	Close_AllDoors_&i
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTrigger	CompareAll_&i 	Trigger 	 	0.00
	OnTrigger	Elevator_M_Door_&i	SetAnimation	close 	0.00
----
Used for setting all of the values to false (0) the the elevator has a destination change.
ClassInfo
:Class
::logic_relay
Keyvalues
Property Name	Value
Name 	Test_Relay_All_&i
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTrigger	F1_Branch_Button_&i	SetValueTest	0 	0.00
	OnTrigger	F2_Branch_Button_&i	SetValueTest	0 	0.00
	OnTrigger	F3_Branch_Button_&i	SetValueTest	0 	0.00
	OnTrigger	F4_Branch_Button_&i	SetValueTest	0 	0.00
	OnTrigger	F5_Branch_Button_&i	SetValueTest	0 	0.00
	OnTrigger	F6_Branch_Button_&i	SetValueTest	0 	0.00
----
Used to open the first-floor door when the map starts.
ClassInfo
:Class
::logic_auto
Outputs
	My Output 	Target Entity 	Target Input	Parameter	Delay
	OnMapSpawn	Elevator_M_Door_&i	SetAnimation	open 	0.00
	OnMapSpawn	F1_DoorBranch_&i 	SetValueTest	1 	0.00
== Floor Specific Functions ==
=== Floor 1 ===
This triggers the cycle instructions to get to the particular floor (Triggered by one of the two elevator buttons).
ClassInfo
:Class
::logic_relay
Keyvalues
Property Name	Value
Name 	F1_ButtonFunctions_&i
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTrigger	Close_AllDoors_&i 	Trigger 	 	0.00
	OnTrigger	F1_TestRelay_&i 	Trigger 	 	0.00
	OnTrigger	LockButtons_&i 	Trigger 	 	0.00
	OnTrigger	Elevator_Chime_&i 	PlaySound 	 	0.00
	OnTrigger	Elevator_&i 	SetPosition 	0 	2.00
	OnTrigger	Elevator_Weight_&i	SetPosition 	0 	2.00
----
ClassInfo
:Class
::logic_relay
Keyvalues
Property Name	Value
Name 	F1_TestRelay_&i
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTrigger	F1_Branch_Button_&i	SetValueTest	1 	0.01
	OnTrigger	Test_Relay_All_&i 	Trigger 	0 	0.00
----
This branch will only have a True value (1) if the corresponding button has been pressed (ex. if "Elevator_F1_Button_&i" was pressed, F1_Branch_Button_&i would be set to true)
ClassInfo
:Class
::logic_branch
Keyvalues
Property Name	Value
Name 	F1_Branch_Button_&i
Initial value	0
Outputs
NONE
----
This branch will only have a True value (1) if the corresponding trigger has been tripped (ex. if "F1_Trigger_&i" was pressed, "F1_Branch_Trigger_&i" would be set to true)
ClassInfo
:Class
::logic_branch
Keyvalues
Property Name	Value
Name 	F1_Branch_Trigger_&i
Initial value	0
Outputs
NONE
----
This listens to the values of both branches on the same floor before triggering the timer control. (This is only set to look for the True (1) value of the branches)
ClassInfo
:Class
::logic_branch_listener
Keyvalues
Property Name 	Value
Name 	F1_Branch_Listener_&i
Logic Branch 01	F1_Branch_Button_&i
Logic Branch 02	F1_Branch_Trigger_&i
Outputs
	My Output 	Target Entity	Target Input	Parameter	Delay
	OnAllFalse	F1_Timer_&i 	Disable 	 	0.00
	OnAllTrue 	F1_Timer_&i 	Enable 	 	0.00
	OnMixed 	F1_Timer_&i 	Disable 	 	0.00
	OnAllTrue 	F1_Timer_&i 	FireTimer 	 	0.10
----
This is used to prevent retriggering the doors, and only activates the following commands after a delay of 3 seconds.
ClassInfo
:Class
::logic_timer
Keyvalues
Property Name 	Value
Name 	F1_Timer_&i
Start Disabled 	Yes
Refire Interval	3
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTimer 	UnlockButtons_&i 	Trigger 	 	0.00
	OnTimer 	Elevator_F1_Button_&i	Lock 	 	0.10
	OnTimer 	Elevator_M1_Button_&i	Lock 	 	0.10
	OnTimer 	F1_Timer_&i 	Disable 	 	0.50
	OnTimer 	Elevator_M_Door_&i 	SetAnimation	open 	1.50
	OnTimer 	F1_DoorBranch_&i 	SetValueTest	1 	1.50
----
A set of instructions to open the specified door on the same floor.
ClassInfo
:Class
::logic_relay
Keyvalues
Property Name	Value
Name 	Elevator_OpenDoor_F1_&i
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTrigger	Elevator_F1_Door_&i 	SetAnimation	open 	0.00
	OnTrigger	Elevator_Sound_F1_Door_&i	PlaySound 	 	0.00
	OnTrigger	F1_SetAllCompare_&i 	Trigger 	 	0.00
----
A set of instructions to close the specified door on the same floor.
ClassInfo
:Class
::logic_relay
Keyvalues
Property Name	Value
Name 	Elevator_CloseDoor_F1_&i
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTrigger	Elevator_F1_Door_&i 	SetAnimation	close 	0.00
	OnTrigger	Elevator_Sound_F1_Door_&i	PlaySound 	 	0.00
----
Timer delay for opening the door on the specified floor (prevents glitching the animations).
ClassInfo
:Class
::logic_timer
Keyvalues
Property Name 	Value
Name 	F1_DoorTimerOpen_&i
Start Disabled 	Yes
Refire Interval	3
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTimer 	Elevator_OpenDoor_F1_&i	Trigger 	 	0.00
---
Timer delay for closing the door on the specified floor (prevents glitching the animations).
ClassInfo
:Class
::logic_timer
Keyvalues
Property Name 	Value
Name 	F1_DoorTimerClose_&i
Start Disabled 	Yes
Refire Interval	3
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTimer 	Elevator_CloseDoor_F1_&i	Trigger 	 	0.00
----
This controls when the door should be open or closed.
ClassInfo
:Class
::logic_branch
Keyvalues
Property Name	Value
Name 	F1_DoorBranch_&i
Initial value	0
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnFalse 	F1_DoorTimerClose_&i	Enable 	 	0.00
	OnFalse 	F1_DoorTimerOpen_&i 	Disable 	 	0.00
	OnTrue 	F1_DoorTimerOpen_&i 	Enable 	 	0.00
	OnTrue 	F1_DoorTimerClose_&i	Disable 	 	0.00
	OnFalse 	F1_DoorTimerClose_&i	FireTimer 	 	0.10
	OnTrue 	F1_DoorTimerOpen_&i 	FireTimer 	 	0.10
	OnFalse 	F1_DoorTimerClose_&i	Disable 	 	1.00
	OnTrue 	F1_DoorTimerOpen_&i 	Disable 	 	1.00
----
This sets all of the floors to a certain value (if we were going to floor 6, all of the value are set to six, then only one logic_compare entity is tripped that uses 6 as its compare value therefore only triggering the doors on the sixth floor).
ClassInfo
:Class
::logic_relay
Keyvalues
Property Name	Value
Name 	F1_SetAllCompare_&i
Outputs
	My Output	Target Entity	Target Input	Parameter	Delay
	OnTrigger	F1_Compare_&i	SetValue 	1 	0.00
	OnTrigger	F2_Compare_&i	SetValue 	1 	0.00
	OnTrigger	F3_Compare_&i	SetValue 	1 	0.00
	OnTrigger	F4_Compare_&i	SetValue 	1 	0.00
	OnTrigger	F5_Compare_&i	SetValue 	1 	0.00
	OnTrigger	F6_Compare_&i	SetValue 	1 	0.00
----
ClassInfo
:Class
::logic_compare
Keyvalues
Property Name	Value
Name 	F1_Compare_&i
Compare value	1
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnEqualTo	F1_DoorBranch_&i	SetValueTest	0 	0.00
=== Floor 2 ===
This triggers the cycle instructions to get to the particular floor (Triggered by one of the two elevator buttons).
ClassInfo
:Class
::logic_relay
Keyvalues
Property Name	Value
Name 	F2_ButtonFunctions_&i
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTrigger	Close_AllDoors_&i 	Trigger 	 	0.00
	OnTrigger	F2_TestRelay_&i 	Trigger 	 	0.00
	OnTrigger	LockButtons_&i 	Trigger 	 	0.00
	OnTrigger	Elevator_Chime_&i 	PlaySound 	 	0.00
	OnTrigger	Elevator_&i 	SetPosition 	1 	2.00
	OnTrigger	Elevator_Weight_&i	SetPosition 	1 	2.00
----
ClassInfo
:Class
::logic_relay
Keyvalues
Property Name	Value
Name 	F2_TestRelay_&i
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTrigger	F2_Branch_Button_&i	SetValueTest	1 	0.01
	OnTrigger	Test_Relay_All_&i 	Trigger 	0 	0.00
----
This branch will only have a True value (1) if the corresponding button has been pressed (ex. if "Elevator_F1_Button_&i" was pressed, F1_Branch_Button_&i would be set to true)
ClassInfo
:Class
::logic_branch
Keyvalues
Property Name	Value
Name 	F2_Branch_Button_&i
Initial value	0
Outputs
NONE
----
This branch will only have a True value (1) if the corresponding trigger has been tripped (ex. if "F1_Trigger_&i" was pressed, "F1_Branch_Trigger_&i" would be set to true)
ClassInfo
:Class
::logic_branch
Keyvalues
Property Name	Value
Name 	F2_Branch_Trigger_&i
Initial value	0
Outputs
NONE
----
This listens to the values of both branches, of the same floor, before triggering the timer control. (This is only set to look for the true value of the branches).
ClassInfo
:Class
::logic_branch_listener
Keyvalues
Property Name 	Value
Name 	F2_Branch_Listener_&i
Logic Branch 01	F2_Branch_Button_&i
Logic Branch 02	F2_Branch_Trigger_&i
Outputs
	My Output 	Target Entity	Target Input	Parameter	Delay
	OnAllFalse	F2_Timer_&i 	Disable 	 	0.00
	OnAllTrue 	F2_Timer_&i 	Enable 	 	0.00
	OnMixed 	F2_Timer_&i 	Disable 	 	0.00
	OnAllTrue 	F2_Timer_&i 	FireTimer 	 	0.10
----
This is used to prevent retriggering the doors, only activates the following commands after a 3 second delay.
ClassInfo
:Class
::logic_timer
Keyvalues
Property Name 	Value
Name 	F2_Timer_&i
Start Disabled 	Yes
Refire Interval	3
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTimer 	UnlockButtons_&i 	Trigger 	 	0.00
	OnTimer 	Elevator_F2_Button_&i	Lock 	 	0.10
	OnTimer 	Elevator_M2_Button_&i	Lock 	 	0.10
	OnTimer 	F2_Timer_&i 	Disable 	 	0.50
	OnTimer 	Elevator_M_Door_&i 	SetAnimation	open 	1.50
	OnTimer 	F2_DoorBranch_&i 	SetValueTest	1 	1.50
----
A set of instructions to open the specified door on the same floor.
ClassInfo
:Class
::logic_relay
Keyvalues
Property Name	Value
Name 	Elevator_OpenDoor_F2_&i
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTrigger	Elevator_F2_Door_&i 	SetAnimation	open 	0.00
	OnTrigger	Elevator_Sound_F2_Door_&i	PlaySound 	 	0.00
	OnTrigger	F2_SetAllCompare_&i 	Trigger 	 	0.00
----
A set of instructions to close the specified door on the same floor.
ClassInfo
:Class
::logic_relay
Keyvalues
Property Name	Value
Name 	Elevator_CloseDoor_F2_&i
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTrigger	Elevator_F2_Door_&i 	SetAnimation	close 	0.00
	OnTrigger	Elevator_Sound_F2_Door_&i	PlaySound 	 	0.00
----
Timer delay for opening the door on the specified floor (prevents glitching the animations).
ClassInfo
:Class
::logic_timer
Keyvalues
Property Name 	Value
Name 	F2_DoorTimerOpen_&i
Start Disabled 	Yes
Refire Interval	3
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTimer 	Elevator_OpenDoor_F2_&i	Trigger 	 	0.00
---
Timer delay for closing the door on the specified floor (prevents glitching the animations).
ClassInfo
:Class
::logic_timer
Keyvalues
Property Name 	Value
Name 	F2_DoorTimerClose_&i
Start Disabled 	Yes
Refire Interval	3
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTimer 	Elevator_CloseDoor_F2_&i	Trigger 	 	0.00
----
This controls when the door should be open or closed.
ClassInfo
:Class
::logic_branch
Keyvalues
Property Name	Value
Name 	F2_DoorBranch_&i
Initial value	0
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnFalse 	F2_DoorTimerClose_&i	Enable 	 	0.00
	OnFalse 	F2_DoorTimerOpen_&i 	Disable 	 	0.00
	OnTrue 	F2_DoorTimerOpen_&i 	Enable 	 	0.00
	OnTrue 	F2_DoorTimerClose_&i	Disable 	 	0.00
	OnFalse 	F2_DoorTimerClose_&i	FireTimer 	 	0.10
	OnTrue 	F2_DoorTimerOpen_&i 	FireTimer 	 	0.10
	OnFalse 	F2_DoorTimerClose_&i	Disable 	 	1.00
	OnTrue 	F2_DoorTimerOpen_&i 	Disable 	 	1.00
----
This sets all of the floors to a certain value (if we were going to floor 6, all of the value are set to six, then only one logic_compare enity is tripped that uses 6 as its compare value therefore only triggering the doors on the sixth floor).
ClassInfo
:Class
::logic_relay
Keyvalues
Property Name	Value
Name 	F2_SetAllCompare_&i
Outputs
	My Output	Target Entity	Target Input	Parameter	Delay
	OnTrigger	F1_Compare_&i	SetValue 	2 	0.00
	OnTrigger	F2_Compare_&i	SetValue 	2 	0.00
	OnTrigger	F3_Compare_&i	SetValue 	2 	0.00
	OnTrigger	F4_Compare_&i	SetValue 	2 	0.00
	OnTrigger	F5_Compare_&i	SetValue 	2 	0.00
	OnTrigger	F6_Compare_&i	SetValue 	2 	0.00
----
ClassInfo
:Class
::logic_compare
Keyvalues
Property Name	Value
Name 	F2_Compare_&i
Compare value	2
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnEqualTo	F2_DoorBranch_&i	SetValueTest	0 	0.00
=== Floor 3 ===
This triggers the cycle instructions to get to the particular floor (Triggered by one of the two elevator buttons).
ClassInfo
:Class
::logic_relay
Keyvalues
Property Name	Value
Name 	F3_ButtonFunctions_&i
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTrigger	Close_AllDoors_&i 	Trigger 	 	0.00
	OnTrigger	F3_TestRelay_&i 	Trigger 	 	0.00
	OnTrigger	LockButtons_&i 	Trigger 	 	0.00
	OnTrigger	Elevator_Chime_&i 	PlaySound 	 	0.00
	OnTrigger	Elevator_&i 	SetPosition 	2 	2.00
	OnTrigger	Elevator_Weight_&i	SetPosition 	2 	2.00
----
ClassInfo
:Class
::logic_relay
Keyvalues
Property Name	Value
Name 	F3_TestRelay_&i
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTrigger	F3_Branch_Button_&i	SetValueTest	1 	0.01
	OnTrigger	Test_Relay_All_&i 	Trigger 	0 	0.00
----
This branch will only have a True value (1) if the corresponding button has been pressed (ex. if "Elevator_F1_Button_&i" was pressed, F1_Branch_Button_&i would be set to true)
ClassInfo
:Class
::logic_branch
Keyvalues
Property Name	Value
Name 	F3_Branch_Button_&i
Initial value	0
Outputs
NONE
----
This branch will only have a True value (1) if the corresponding trigger has been tripped (ex. if "F1_Trigger_&i" was pressed, "F1_Branch_Trigger_&i" would be set to true)
ClassInfo
:Class
::logic_branch
Keyvalues
Property Name	Value
Name 	F3_Branch_Trigger_&i
Initial value	0
Outputs
NONE
----
This listens to the values of both branches, of the same floor, before triggering the timer control. (This is only set to look for the true value of the branches).
ClassInfo
:Class
::logic_branch_listener
Keyvalues
Property Name 	Value
Name 	F3_Branch_Listener_&i
Logic Branch 01	F3_Branch_Button_&i
Logic Branch 02	F3_Branch_Trigger_&i
Outputs
	My Output 	Target Entity	Target Input	Parameter	Delay
	OnAllFalse	F3_Timer_&i 	Disable 	 	0.00
	OnAllTrue 	F3_Timer_&i 	Enable 	 	0.00
	OnMixed 	F3_Timer_&i 	Disable 	 	0.00
	OnAllTrue 	F3_Timer_&i 	FireTimer 	 	0.10
----
This is used to prevent retriggering the doors, only activates the following commands after a delay of 3 seconds.
ClassInfo
:Class
::logic_timer
Keyvalues
Property Name 	Value
Name 	F3_Timer_&i
Start Disabled 	Yes
Refire Interval	3
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTimer 	UnlockButtons_&i 	Trigger 	 	0.00
	OnTimer 	Elevator_F3_Button_&i	Lock 	 	0.10
	OnTimer 	Elevator_M3_Button_&i	Lock 	 	0.10
	OnTimer 	F3_Timer_&i 	Disable 	 	0.50
	OnTimer 	Elevator_M_Door_&i 	SetAnimation	open 	1.50
	OnTimer 	F3_DoorBranch_&i 	SetValueTest	1 	1.50
----
A set of instructions to open the specified door on the same floor.
ClassInfo
:Class
::logic_relay
Keyvalues
Property Name	Value
Name 	Elevator_OpenDoor_F3_&i
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTrigger	Elevator_F3_Door_&i 	SetAnimation	open 	0.00
	OnTrigger	Elevator_Sound_F3_Door_&i	PlaySound 	 	0.00
	OnTrigger	F3_SetAllCompare_&i 	Trigger 	 	0.00
----
A set of instructions to close the specified door on the same floor.
ClassInfo
:Class
::logic_relay
Keyvalues
Property Name	Value
Name 	Elevator_CloseDoor_F3_&i
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTrigger	Elevator_F3_Door_&i 	SetAnimation	close 	0.00
	OnTrigger	Elevator_Sound_F3_Door_&i	PlaySound 	 	0.00
----
Timer delay for opening the door on the specified floor (prevents glitching the animations)
ClassInfo
:Class
::logic_timer
Keyvalues
Property Name 	Value
Name 	F3_DoorTimerOpen_&i
Start Disabled 	Yes
Refire Interval	3
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTimer 	Elevator_OpenDoor_F3_&i	Trigger 	 	0.00
---
timer delay for closing the door on the specified floor (prevents glitching the animations)
ClassInfo
:Class
::logic_timer
Keyvalues
Property Name 	Value
Name 	F3_DoorTimerClose_&i
Start Disabled 	Yes
Refire Interval	3
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTimer 	Elevator_CloseDoor_F3_&i	Trigger 	 	0.00
----
This controls when the door should be open or closed
ClassInfo
:Class
::logic_branch
Keyvalues
Property Name	Value
Name 	F3_DoorBranch_&i
Initial value	0
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnFalse 	F3_DoorTimerClose_&i	Enable 	 	0.00
	OnFalse 	F3_DoorTimerOpen_&i 	Disable 	 	0.00
	OnTrue 	F3_DoorTimerOpen_&i 	Enable 	 	0.00
	OnTrue 	F3_DoorTimerClose_&i	Disable 	 	0.00
	OnFalse 	F3_DoorTimerClose_&i	FireTimer 	 	0.10
	OnTrue 	F3_DoorTimerOpen_&i 	FireTimer 	 	0.10
	OnFalse 	F3_DoorTimerClose_&i	Disable 	 	1.00
	OnTrue 	F3_DoorTimerOpen_&i 	Disable 	 	1.00
----
This sets all of the floors to a certain value (if we were going to floor 6, all of the value are set to six, then only one logic_compare entity is tripped that uses 6 as its compare value therefor only triggering the doors on the sixth floor)
ClassInfo
:Class
::logic_relay
Keyvalues
Property Name	Value
Name 	F3_SetAllCompare_&i
Outputs
	My Output	Target Entity	Target Input	Parameter	Delay
	OnTrigger	F1_Compare_&i	SetValue 	3 	0.00
	OnTrigger	F2_Compare_&i	SetValue 	3 	0.00
	OnTrigger	F3_Compare_&i	SetValue 	3 	0.00
	OnTrigger	F4_Compare_&i	SetValue 	3 	0.00
	OnTrigger	F5_Compare_&i	SetValue 	3 	0.00
	OnTrigger	F6_Compare_&i	SetValue 	3 	0.00
----
ClassInfo
:Class
::logic_compare
Keyvalues
Property Name	Value
Name 	F3_Compare_&i
Compare value	3
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnEqualTo	F3_DoorBranch_&i	SetValueTest	0 	0.00
=== Floor 4 ===
This triggers the cycle instructions to get to the particular floor (Triggered by one of the two elevator buttons)
ClassInfo
:Class
::logic_relay
Keyvalues
Property Name	Value
Name 	F4_ButtonFunctions_&i
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTrigger	Close_AllDoors_&i 	Trigger 	 	0.00
	OnTrigger	F4_TestRelay_&i 	Trigger 	 	0.00
	OnTrigger	LockButtons_&i 	Trigger 	 	0.00
	OnTrigger	Elevator_Chime_&i 	PlaySound 	 	0.00
	OnTrigger	Elevator_&i 	SetPosition 	3 	2.00
	OnTrigger	Elevator_Weight_&i	SetPosition 	3 	2.00
----
ClassInfo
:Class
::logic_relay
Keyvalues
Property Name	Value
Name 	F4_TestRelay_&i
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTrigger	F4_Branch_Button_&i	SetValueTest	1 	0.01
	OnTrigger	Test_Relay_All_&i 	Trigger 	0 	0.00
----
This branch will only have a true value (1) if the corresponging button has been pressed (ex. if "Elevator_F1_Button_&i" was pressed, F1_Branch_Button_&i would be set to true)
ClassInfo
:Class
::logic_branch
Keyvalues
Property Name	Value
Name 	F4_Branch_Button_&i
Initial value	0
Outputs
NONE
----
This branch will only have a true value (1) if the corresponding trigger has been tripped (ex. if "F1_Trigger_&i" was pressed, "F1_Branch_Trigger_&i" would be set to true)
ClassInfo
:Class
::logic_branch
Keyvalues
Property Name	Value
Name 	F4_Branch_Trigger_&i
Initial value	0
Outputs
NONE
----
This listens to the values of both branches, of the same floor, before triggering the timer control. (This is only set to look for the true value of the branches)
ClassInfo
:Class
::logic_branch_listener
Keyvalues
Property Name 	Value
Name 	F4_Branch_Listener_&i
Logic Branch 01	F4_Branch_Button_&i
Logic Branch 02	F4_Branch_Trigger_&i
Outputs
	My Output 	Target Entity	Target Input	Parameter	Delay
	OnAllFalse	F4_Timer_&i 	Disable 	 	0.00
	OnAllTrue 	F4_Timer_&i 	Enable 	 	0.00
	OnMixed 	F4_Timer_&i 	Disable 	 	0.00
	OnAllTrue 	F4_Timer_&i 	FireTimer 	 	0.10
----
This is used to prevent retriggering the doors, only activates the following commands after a delay of 3 seconds.
ClassInfo
:Class
::logic_timer
Keyvalues
Property Name 	Value
Name 	F4_Timer_&i
Start Disabled 	Yes
Refire Interval	3
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTimer 	UnlockButtons_&i 	Trigger 	 	0.00
	OnTimer 	Elevator_F4_Button_&i	Lock 	 	0.10
	OnTimer 	Elevator_M4_Button_&i	Lock 	 	0.10
	OnTimer 	F4_Timer_&i 	Disable 	 	0.50
	OnTimer 	Elevator_M_Door_&i 	SetAnimation	open 	1.50
	OnTimer 	F4_DoorBranch_&i 	SetValueTest	1 	1.50
----
A set of instructions to open the specified door on the same floor.
ClassInfo
:Class
::logic_relay
Keyvalues
Property Name	Value
Name 	Elevator_OpenDoor_F4_&i
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTrigger	Elevator_F4_Door_&i 	SetAnimation	open 	0.00
	OnTrigger	Elevator_Sound_F4_Door_&i	PlaySound 	 	0.00
	OnTrigger	F4_SetAllCompare_&i 	Trigger 	 	0.00
----
A set of instructions to close the specified door on the same floor.
ClassInfo
:Class
::logic_relay
Keyvalues
Property Name	Value
Name 	Elevator_CloseDoor_F4_&i
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTrigger	Elevator_F4_Door_&i 	SetAnimation	close 	0.00
	OnTrigger	Elevator_Sound_F4_Door_&i	PlaySound 	 	0.00
----
timer delay for opening the door on the specified floor (prevents glitching the animations)
ClassInfo
:Class
::logic_timer
Keyvalues
Property Name 	Value
Name 	F4_DoorTimerOpen_&i
Start Disabled 	Yes
Refire Interval	3
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTimer 	Elevator_OpenDoor_F4_&i	Trigger 	 	0.00
---
Timer delay for closing the door on the specified floor (prevents glitching the animations).
ClassInfo
:Class
::logic_timer
Keyvalues
Property Name 	Value
Name 	F4_DoorTimerClose_&i
Start Disabled 	Yes
Refire Interval	3
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTimer 	Elevator_CloseDoor_F4_&i	Trigger 	 	0.00
----
This controls when the door should be open or closed.
ClassInfo
:Class
::logic_branch
Keyvalues
Property Name	Value
Name 	F4_DoorBranch_&i
Initial value	0
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnFalse 	F4_DoorTimerClose_&i	Enable 	 	0.00
	OnFalse 	F4_DoorTimerOpen_&i 	Disable 	 	0.00
	OnTrue 	F4_DoorTimerOpen_&i 	Enable 	 	0.00
	OnTrue 	F4_DoorTimerClose_&i	Disable 	 	0.00
	OnFalse 	F4_DoorTimerClose_&i	FireTimer 	 	0.10
	OnTrue 	F4_DoorTimerOpen_&i 	FireTimer 	 	0.10
	OnFalse 	F4_DoorTimerClose_&i	Disable 	 	1.00
	OnTrue 	F4_DoorTimerOpen_&i 	Disable 	 	1.00
----
This sets all of the floors to a certain value (if we were going to floor 6, all of the value are set to six, then only one logic_compare enity is tripped that uses 6 as its compare value therefore only triggering the doors on the sixth floor).
ClassInfo
:Class
::logic_relay
Keyvalues
Property Name	Value
Name 	F4_SetAllCompare_&i
Outputs
	My Output	Target Entity	Target Input	Parameter	Delay
	OnTrigger	F1_Compare_&i	SetValue 	4 	0.00
	OnTrigger	F2_Compare_&i	SetValue 	4 	0.00
	OnTrigger	F3_Compare_&i	SetValue 	4 	0.00
	OnTrigger	F4_Compare_&i	SetValue 	4 	0.00
	OnTrigger	F5_Compare_&i	SetValue 	4 	0.00
	OnTrigger	F6_Compare_&i	SetValue 	4 	0.00
----
ClassInfo
:Class
::logic_compare
Keyvalues
Property Name	Value
Name 	F4_Compare_&i
Compare value	4
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnEqualTo	F4_DoorBranch_&i	SetValueTest	0 	0.00
=== Floor 5 ===
This triggers the cycle instructions to get to the particular floor (Triggered by one of the two elevator buttons).
ClassInfo
:Class
::logic_relay
Keyvalues
Property Name	Value
Name 	F5_ButtonFunctions_&i
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTrigger	Close_AllDoors_&i 	Trigger 	 	0.00
	OnTrigger	F5_TestRelay_&i 	Trigger 	 	0.00
	OnTrigger	LockButtons_&i 	Trigger 	 	0.00
	OnTrigger	Elevator_Chime_&i 	PlaySound 	 	0.00
	OnTrigger	Elevator_&i 	SetPosition 	4 	2.00
	OnTrigger	Elevator_Weight_&i	SetPosition 	4 	2.00
----
ClassInfo
:Class
::logic_relay
Keyvalues
Property Name	Value
Name 	F5_TestRelay_&i
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTrigger	F5_Branch_Button_&i	SetValueTest	1 	0.01
	OnTrigger	Test_Relay_All_&i 	Trigger 	0 	0.00
----
This branch will only have a True value (1) if the corresponding button has been pressed (ex. if "Elevator_F1_Button_&i" was pressed, F1_Branch_Button_&i would be set to true)
ClassInfo
:Class
::logic_branch
Keyvalues
Property Name	Value
Name 	F5_Branch_Button_&i
Initial value	0
Outputs
NONE
----
This branch will only have a True value (1) if the corresponding trigger has been tripped (ex. if "F1_Trigger_&i" was pressed, "F1_Branch_Trigger_&i" would be set to true)
ClassInfo
:Class
::logic_branch
Keyvalues
Property Name	Value
Name 	F5_Branch_Trigger_&i
Initial value	0
Outputs
NONE
----
This listens to the values of both branches, of the same floor, before triggering the timer control. (This is only set to look for the true value of the branches)
ClassInfo
:Class
::logic_branch_listener
Keyvalues
Property Name 	Value
Name 	F5_Branch_Listener_&i
Logic Branch 01	F5_Branch_Button_&i
Logic Branch 02	F5_Branch_Trigger_&i
Outputs
	My Output 	Target Entity	Target Input	Parameter	Delay
	OnAllFalse	F5_Timer_&i 	Disable 	 	0.00
	OnAllTrue 	F5_Timer_&i 	Enable 	 	0.00
	OnMixed 	F5_Timer_&i 	Disable 	 	0.00
	OnAllTrue 	F5_Timer_&i 	FireTimer 	 	0.10
----
This was used to prevent retriggering the doors, only activates the following commands after a delay of 3 seconds.
ClassInfo
:Class
::logic_timer
Keyvalues
Property Name 	Value
Name 	F5_Timer_&i
Start Disabled 	Yes
Refire Interval	3
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTimer 	UnlockButtons_&i 	Trigger 	 	0.00
	OnTimer 	Elevator_F5_Button_&i	Lock 	 	0.10
	OnTimer 	Elevator_M5_Button_&i	Lock 	 	0.10
	OnTimer 	F5_Timer_&i 	Disable 	 	0.50
	OnTimer 	Elevator_M_Door_&i 	SetAnimation	open 	1.50
	OnTimer 	F5_DoorBranch_&i 	SetValueTest	1 	1.50
----
A set of instructions to open the specified door on the same floor.
ClassInfo
:Class
::logic_relay
Keyvalues
Property Name	Value
Name 	Elevator_OpenDoor_F5_&i
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTrigger	Elevator_F5_Door_&i 	SetAnimation	open 	0.00
	OnTrigger	Elevator_Sound_F5_Door_&i	PlaySound 	 	0.00
	OnTrigger	F5_SetAllCompare_&i 	Trigger 	 	0.00
----
A set of instructions to close the specified door on the same floor.
ClassInfo
:Class
::logic_relay
Keyvalues
Property Name	Value
Name 	Elevator_CloseDoor_F5_&i
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTrigger	Elevator_F5_Door_&i 	SetAnimation	close 	0.00
	OnTrigger	Elevator_Sound_F5_Door_&i	PlaySound 	 	0.00
----
Timer delay for opening the door on the specified floor (prevents glitching the animations)
ClassInfo
:Class
::logic_timer
Keyvalues
Property Name 	Value
Name 	F5_DoorTimerOpen_&i
Start Disabled 	Yes
Refire Interval	3
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTimer 	Elevator_OpenDoor_F5_&i	Trigger 	 	0.00
---
Timer delay for closing the door on the specified floor (prevents glitching the animations)
ClassInfo
:Class
::logic_timer
Keyvalues
Property Name 	Value
Name 	F5_DoorTimerClose_&i
Start Disabled 	Yes
Refire Interval	3
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTimer 	Elevator_CloseDoor_F5_&i	Trigger 	 	0.00
----
This controls when the door should be open or closed.
ClassInfo
:Class
::logic_branch
Keyvalues
Property Name	Value
Name 	F5_DoorBranch_&i
Initial value	0
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnFalse 	F5_DoorTimerClose_&i	Enable 	 	0.00
	OnFalse 	F5_DoorTimerOpen_&i 	Disable 	 	0.00
	OnTrue 	F5_DoorTimerOpen_&i 	Enable 	 	0.00
	OnTrue 	F5_DoorTimerClose_&i	Disable 	 	0.00
	OnFalse 	F5_DoorTimerClose_&i	FireTimer 	 	0.10
	OnTrue 	F5_DoorTimerOpen_&i 	FireTimer 	 	0.10
	OnFalse 	F5_DoorTimerClose_&i	Disable 	 	1.00
	OnTrue 	F5_DoorTimerOpen_&i 	Disable 	 	1.00
----
This sets all of the floors to a certain value (if we were going to floor 6, all of the value are set to six, then only one logic_compare entity is tripped that uses 6 as its compare value therefore only triggering the doors on the sixth floor)
ClassInfo
:Class
::logic_relay
Keyvalues
Property Name	Value
Name 	F5_SetAllCompare_&i
Outputs
	My Output	Target Entity	Target Input	Parameter	Delay
	OnTrigger	F1_Compare_&i	SetValue 	5 	0.00
	OnTrigger	F2_Compare_&i	SetValue 	5 	0.00
	OnTrigger	F3_Compare_&i	SetValue 	5 	0.00
	OnTrigger	F4_Compare_&i	SetValue 	5 	0.00
	OnTrigger	F5_Compare_&i	SetValue 	5 	0.00
	OnTrigger	F6_Compare_&i	SetValue 	5 	0.00
----
ClassInfo
:Class
::logic_compare
Keyvalues
Property Name	Value
Name 	F5_Compare_&i
Compare value	5
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnEqualTo	F5_DoorBranch_&i	SetValueTest	0 	0.00
=== Floor 6 ===
This triggers the cycle instructions to get to the particular floor (Triggered by one of the two elevator buttons)
ClassInfo
:Class
::logic_relay
Keyvalues
Property Name	Value
Name 	F6_ButtonFunctions_&i
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTrigger	Close_AllDoors_&i 	Trigger 	 	0.00
	OnTrigger	F6_TestRelay_&i 	Trigger 	 	0.00
	OnTrigger	LockButtons_&i 	Trigger 	 	0.00
	OnTrigger	Elevator_Chime_&i 	PlaySound 	 	0.00
	OnTrigger	Elevator_&i 	SetPosition 	5 	2.00
	OnTrigger	Elevator_Weight_&i	SetPosition 	5 	2.00
----
ClassInfo
:Class
::logic_relay
Keyvalues
Property Name	Value
Name 	F6_TestRelay_&i
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTrigger	F6_Branch_Button_&i	SetValueTest	1 	0.01
	OnTrigger	Test_Relay_All_&i 	Trigger 	0 	0.00
----
This branch will only have a True value (1) if the corresponding button has been pressed (ex. if "Elevator_F1_Button_&i" was pressed, F1_Branch_Button_&i would be set to true)
ClassInfo
:Class
::logic_branch
Keyvalues
Property Name	Value
Name 	F6_Branch_Button_&i
Initial value	0
Outputs
NONE
----
This branch will only have a True value (1) if the corresponging trigger has been tripped (ex. if "F1_Trigger_&i" was pressed, "F1_Branch_Trigger_&i" would be set to true)
ClassInfo
:Class
::logic_branch
Keyvalues
Property Name	Value
Name 	F6_Branch_Trigger_&i
Initial value	0
Outputs
NONE
----
This listens to the values of both branches on the same floor before triggering the timer control. (This is only set to look for the true value of the branches)
ClassInfo
:Class
::logic_branch_listener
Keyvalues
Property Name 	Value
Name 	F6_Branch_Listener_&i
Logic Branch 01	F6_Branch_Button_&i
Logic Branch 02	F6_Branch_Trigger_&i
Outputs
	My Output 	Target Entity	Target Input	Parameter	Delay
	OnAllFalse	F6_Timer_&i 	Disable 	 	0.00
	OnAllTrue 	F6_Timer_&i 	Enable 	 	0.00
	OnMixed 	F6_Timer_&i 	Disable 	 	0.00
	OnAllTrue 	F6_Timer_&i 	FireTimer 	 	0.10
----
This was used to prevent retriggering the doors, and only activates the following commands after a delay of 3 seconds.
ClassInfo
:Class
::logic_timer
Keyvalues
Property Name 	Value
Name 	F6_Timer_&i
Start Disabled 	Yes
Refire Interval	3
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTimer 	UnlockButtons_&i 	Trigger 	 	0.00
	OnTimer 	Elevator_F6_Button_&i	Lock 	 	0.10
	OnTimer 	Elevator_M6_Button_&i	Lock 	 	0.10
	OnTimer 	F6_Timer_&i 	Disable 	 	0.50
	OnTimer 	Elevator_M_Door_&i 	SetAnimation	open 	1.50
	OnTimer 	F6_DoorBranch_&i 	SetValueTest	1 	1.50
----
A set of instructions to open the specified door on the same floor.
ClassInfo
:Class
::logic_relay
Keyvalues
Property Name	Value
Name 	Elevator_OpenDoor_F6_&i
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTrigger	Elevator_F6_Door_&i 	SetAnimation	open 	0.00
	OnTrigger	Elevator_Sound_F6_Door_&i	PlaySound 	 	0.00
	OnTrigger	F6_SetAllCompare_&i 	Trigger 	 	0.00
----
A set of instructions to close the specified door on the same floor.
ClassInfo
:Class
::logic_relay
Keyvalues
Property Name	Value
Name 	Elevator_CloseDoor_F6_&i
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTrigger	Elevator_F6_Door_&i 	SetAnimation	close 	0.00
	OnTrigger	Elevator_Sound_F6_Door_&i	PlaySound 	 	0.00
----
Timer delay for opening the door on the specified floor (prevents glitching the animations)
ClassInfo
:Class
::logic_timer
Keyvalues
Property Name 	Value
Name 	F6_DoorTimerOpen_&i
Start Disabled 	Yes
Refire Interval	3
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTimer 	Elevator_OpenDoor_F6_&i	Trigger 	 	0.00
---
Timer delay for closing the door on the specified floor (prevents glitching the animations)
ClassInfo
:Class
::logic_timer
Keyvalues
Property Name 	Value
Name 	F6_DoorTimerClose_&i
Start Disabled 	Yes
Refire Interval	3
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnTimer 	Elevator_CloseDoor_F6_&i	Trigger 	 	0.00
----
This controls when the door should be open or closed.
ClassInfo
:Class
::logic_branch
Keyvalues
Property Name	Value
Name 	F6_DoorBranch_&i
Initial value	0
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnFalse 	F6_DoorTimerClose_&i	Enable 	 	0.00
	OnFalse 	F6_DoorTimerOpen_&i 	Disable 	 	0.00
	OnTrue 	F6_DoorTimerOpen_&i 	Enable 	 	0.00
	OnTrue 	F6_DoorTimerClose_&i	Disable 	 	0.00
	OnFalse 	F6_DoorTimerClose_&i	FireTimer 	 	0.10
	OnTrue 	F6_DoorTimerOpen_&i 	FireTimer 	 	0.10
	OnFalse 	F6_DoorTimerClose_&i	Disable 	 	1.00
	OnTrue 	F6_DoorTimerOpen_&i 	Disable 	 	1.00
----
This sets all of the floors to a certain value (if we were going to floor 6, all of the value are set to six, then only one logic_compare entity is tripped that uses 6 as its compare value therefore only triggering the doors on the sixth floor)
ClassInfo
:Class
::logic_relay
Keyvalues
Property Name	Value
Name 	F6_SetAllCompare_&i
Outputs
	My Output	Target Entity	Target Input	Parameter	Delay
	OnTrigger	F1_Compare_&i	SetValue 	6 	0.00
	OnTrigger	F2_Compare_&i	SetValue 	6 	0.00
	OnTrigger	F3_Compare_&i	SetValue 	6 	0.00
	OnTrigger	F4_Compare_&i	SetValue 	6 	0.00
	OnTrigger	F5_Compare_&i	SetValue 	6 	0.00
	OnTrigger	F6_Compare_&i	SetValue 	6 	0.00
----
ClassInfo
:Class
::logic_compare
Keyvalues
Property Name	Value
Name 	F6_Compare_&i
Compare value	6
Outputs
	My Output	Target Entity 	Target Input	Parameter	Delay
	OnEqualTo	F6_DoorBranch_&i	SetValueTest	0 	0.00
Category:Tutorials