Indicator Lights (Portal 2)

As a courtesy, please do not edit this while this message is displayed.
If this page has not been edited for at least several hours to a few days, please remove this template. This message is intended to help reduce edit conflicts; please remove it between editing sessions to allow others to edit the page.
The person who added this notice will be listed in its edit history should you wish to contact them.
Indicator Lights are lines of small lights that are present in test chambers to indicate the interaction between two or more entities in the map, typically between a button and another entity in the world. The typical usage of the lights are the lights being blue when inactive, and orange when active.
How to make Indicator Lights
This tutorial assumes basic knowledge of Hammer.
Step 1
In your map, create two entities you want to interact with each other. These could varied from a Heavy Duty Super-Colliding Super-Button opening a simple exit door, to a button that will temporarily interact with a Diversity Vent that will deliver gel that will lead you one step closer to the solution. Next to the activator place an env_texturetoggle entity - this will help us change the indicator colors further in the tutorial.
Step 2
Select a texture for the lights in the texture browser, for this tutorial use "signage/indicator_lights/indicator_lights_floor" (Easily found by typing "indicator" in the filter bar).
signage/indicator_lights/indicator_lights_floor
signage/indicator_lights/indicator_lights_wall
signage/indicator_lights/indicator_lights_corner_wall
signage/indicator_lights/indicator_lights_corner_floor
signage/indicator_lights/indicator_neon_straight
Step 3
Select the Overlay option in hammer, and place your lights overlays as desired. Functionally it doesn't matter how they're placed, though a logical line between the entities interacting is desired, usually the shortest way between the two entities; Don't forget the shortest way could be on a wall at some point. To keep consistent with Valve's approach to these lights, when the line turns a signage/indicator_lights/indicator_lights_corner_wall
should be in the corner, thus his name came to be.
The length of one strip is four circles, however sometimes you might want to have fewer overlays to keep your map clean. Luckily you can adjust the overlay properties to make it longer rather than make duplicates of the strip. This is accomplished by editing the U Start or U End keyvalue in the properties window for the overlay. Another way of accomplishing this is to stretch 'physically' the overlay in one of the 2D views - make sure that the 'Texture Lock' is unchecked.


Step 4
Select the overlays you just placed (and ONLY the overlays you want) and name them all the same. Use "indlights_1" for this tutorial. Then open up the env_texturetoggle you previously placed, and enter the same name into the Target Brush(es) field. Now name the env_texturetoggle "texturetoggle_lights_01"
Step 5
Select the button entity, and go to the outputs menu. Add a new output, set output name to "OnPressed", set Target entities to the name you gave the env_texturetoggle, set Via this input to "SetTextureIndex" and set the parameter overide to 1. This will change the texture to the appropriate orange texture. Then, make another output with the same settings, except change the output named to "OnButtonReset" and change the parameter override to 0.
Done, your indicator lights should now be working!
Checkmark Box
1. Create a prop_static with the following properties:
Property Name Value World Model models/props/sign_frame01/sign_frame01.mdl
Align it so it will be at the end of your light path.
2. At the exact same spot, with the exact same "Pitch Yaw roll" place a prop_indicator_panel. The best way to do this is to shift-drag the prop_static to the same place by moving it a unit to one direction and returning it.
3. Fill the prop_indicator_panel's fields as desired. Give the entity a name, and make sure it is linked to the overlay not the env_texturetoggle.
Property Name Value Name checkmark_indlights_1 Indicator Lights indlights_1
4. Add to the activator entity another two outputs:
My Output > Target Entity Target Input Parameter Delay Only Once OnPressed checkmark_indlights_1 Check 0.00 No OnButtonReset checkmark_indlights_1 Uncheck 0.00 No
So now you have an operating checkmark box as well, don't forget to link the activator to the activated entity too.