Coop Door (Portal 2)

Co-Op doors consist of two triggers that both bots step on to open the door and for each trigger a person sign lights up.
==Instance==
1.) Create a with the following settings:
::
Property Name	Value
Name 	coop_exit_door
VMF Filename 	instances/coop/coop_team_double_exit_door.vmf
 
2.) Create a block brush with the Trigger texture. Tie this brush to a with the following outputs:
::
	My Output 	Target Entity 	Target Input 	Parameter	Delay	Only Once
	OnStartTouchBluePlayer 	coop_exit_door	instance:relay_blue_in;Trigger 	<none> 	0.00 	No
	OnEndTouchBluePlayer 	coop_exit_door	instance:relay_blue_out;Trigger 	<none> 	0.00 	No
	OnStartTouchOrangePlayer	coop_exit_door	instance:relay_orange_in;Trigger 	<none> 	0.00 	No
	OnEndTouchOrangePlayer 	coop_exit_door	instance:relay_orange_out;Trigger	<none> 	0.00 	No
==Manual Creation==
===The Door===
1.) Add a with the following settings:
::
Property Name	Value
Name 	door_01
2.) Add a with the following settings:
::
Property Name	Value
Name 	coop_man
and outputs:
::
	My Output 	Target Entity	Target Input	Parameter	Delay	Only Once
	OnChangeToAllTrue	door_01 	Open 	<none> 	0.00 	No
===Triggers===
1.) Add a with the following Settings:
::
Property Name	Value
Name 	relay_b_in
and outputs:
::
	My Output	Target Entity	Target Input 	Parameter	Delay	Only Once
	OnTrigger	coop_man 	SetStateATrue	<none> 	0.00 	No
2.) Add a logic_relay with the following Settings:
::
Property Name	Value
Name 	relay_b_out
and outputs:
::
	My Output	Target Entity	Target Input 	Parameter	Delay	Only Once
	OnTrigger	coop_man 	SetStateAFalse	<none> 	0.00 	No
3.) Repeat steps 1-2, but change the following:
::
Property Name	Value
Name 	relay_o_in
outputs:
::
	My Output	Target Entity	Target Input 	Parameter	Delay	Only Once
	OnTrigger	coop_man 	SetStateBTrue	<none> 	0.00 	No
Add a logic_relay with the following Settings:
::
Property Name	Value
Name 	relay_o_out
outputs:
::
	My Output	Target Entity	Target Input 	Parameter	Delay	Only Once
	OnTrigger	coop_man 	SetStateBFalse	<none> 	0.00 	No
4.) Create a block brush with the Trigger texture applied. Tie this brush to a with the following outputs:
::
	My Output 	Target Entity	Target Input	Parameter	Delay	Only Once
	OnStartTouchBluePlayer 	relay_b_in 	Trigger 	<none> 	0.00 	No
	OnEndTouchBluePlayer 	relay_b_out 	Trigger 	<none> 	0.00 	No
	OnStartTouchOrangePlayer	relay_o_in 	Trigger 	<none> 	0.00 	No
	OnEndTouchOrangePlayer 	relay_o_out 	Trigger 	<none> 	0.00 	No
===Check Boxes===
1.) Add a with the following settings:
::
Property Name	Value
World Model 	models/props/sign_frame02/sign_frame02.mdl
2.)
Create a 32L×4W×32H with the texture signage/signage_coop_teamdoor_orange.
::
Property Name	Value
Name 	checkbox_o
Align it to the left, inside the frame.
3.) Repeat step 2, but use signage/signage_coop_teamdoor_blue for the texture instead.
Align it to the right, inside the frame.
4.) Add two s with the following settings:
::
Property Name 	Value
Name 	textog_o
Target Brush(es).	checkbox_o
::
Property Name 	Value
Name 	textog_b
Target Brush(es).	checkbox_b
5.) Add two s with the following settings:
::
Property Name	Value
Name 	sound_out
Sound Name 	portal.button_down
::
Property Name	Value
Name 	sound_in
Sound Name 	portal.button_up
6.) Add the following outputs to relay_o_in:
::
	My Output	Target Entity	Target Input 	Parameter	Delay	Only Once
	OnTrigger	textog_o 	SetTextureIndex	1 	0.00 	No
	OnTrigger	sound_in 	PlaySound 	<none> 	0.00 	No
Add the following outputs to relay_o_out:
::
	My Output	Target Entity	Target Input 	Parameter	Delay	Only Once
	OnTrigger	textog_o 	SetTextureIndex	0 	0.00 	No
	OnTrigger	sound_out 	PlaySound 	<none> 	0.00 	No
Add the following outputs to relay_b_in:
::
	My Output	Target Entity	Target Input 	Parameter	Delay	Only Once
	OnTrigger	textog_b 	SetTextureIndex	1 	0.00 	No
	OnTrigger	sound_in 	PlaySound 	<none> 	0.00 	No
Add the following outputs to relay_b_out:
::
	My Output	Target Entity	Target Input 	Parameter	Delay	Only Once
	OnTrigger	textog_b 	SetTextureIndex	0 	0.00 	No
	OnTrigger	sound_out 	PlaySound 	<none> 	0.00 	No
You have now created a door that will open only if both co-op partners are in the triggers.
Category:Portal 2 Level Design
Category:Portal 2 Tutorials