VERC: Rotating Lights Last edited 16 years ago2003-03-03 23:14:00 UTC by Penguinboy Penguinboy

This article was recovered from an archive and needs to be reviewed

  1. The formatting may be incorrect as it was automatically converted to WikiCode from HTML, it needs to be revised and reformatted
  2. Some information may be out of date as it was written before Half-Life was available on Steam
  3. After the article is re-formatted and updated for Steam HL, remove this notice
  4. Please do not remove the archive notice from the bottom of the article.
  5. Some archive articles are no longer useful, or they duplicate information from other tutorials and entity guides. In this case, delete the page after merging any relevant information into other pages. Contact an admin to delete a page.


There were various places in Half-Life (and in the Half-Life Uplink demo, from which the picture below was taken) where there are various forms of what appear to be rotating lights. This effect is a combination of a few diffent entities- a func_rotating (the visible light "beams"), a light entity (for the actual light given off), and an env_render (which makes the rotating light beams visible when the effect is triggered).


The first thing to do is... build the light, of course. Below is a closer look at the rotating light objects.
In the picture above, the light fixture is a normal world brush (there is a 1 unit wide func_wall between it and the wall to prevent unnecessary brush splitting). The three objects labeled func_rotating all belong to one func_rotating entity.

The func_rotating entity

The setup of this entity is fairly straightforward. Below are the essential properties you'll need to set. Something that should be kept in mind is that an origin brush (the green and white part of the func_rotating in the picture above) needs to be a part of the rotating entity. The most complicated thing about this func_rotating entity will be texturing it correctly. As you can see from the picture above, it's a yellow texture that fades to black. There are two different textures you can use for this: FADE and FADE2. You will more than likely need to scale the texture down a bit (and give the textures for the upper beam a negative Y scale to flip it around the right way) using the texture application tool (Shift+A). Also, using the texture application tool, you'll neeed to apply the BLACK texture to the top and bottom of the beams.

The light entity

Next we'll add in the light entity. Ok, honest this time, this one really is straightforward. It should be placed just in front of the func_rotating object.

The ambient_generic entity

This is just an extra. A common use for these lights is to signal an emergency event, and typically an alarm sound would accompany them. Place the ambient_generic wherever you'd like the alarm sound to come from, and set it up with the following properties.


Ok, so now we have a light beam that's invisible, a light that is dark, and a sound that is silent. Useful. Sounds like some ancient riddle. :) To get the events rolling, we'll use a multi_manager to coordinate everything. First, we need to setup an env_render to make the light beams visible when everything gets triggered.

The env_render entity

This is pretty simple to setup. Render Mode (rendermode) - Set this to Additive (5). This gives the light beam a slightly opaque bright look. Now that we have the final piece of the puzzle, its time to coordinate everything. Place a multi_manager in your level and use the following properties. The rest of these key values have to be added manually, by turning off SmartEdit mode in the multi_manager properties, then clicking on the Add button. Now, all you need to do is activate the light1_mm multi_manager to turn on the rotating light.
As shown in the picture above, there is a func_breakable which, when broken, triggers the multi_manager which starts the course of events. This can be alternately handled many different ways - a trigger the player walks through, a button a player or monster activates, a trigger_auto that activates it after a certain time, etc etc. If you need a map to disect, refer to the example map below.


For a more concrete illustration, check out the example map linked below.
This article was originally published on the Valve Editing Resource Collective (VERC).
TWHL only archives articles from defunct websites. For more information on TWHL's archiving efforts, please visit the TWHL Archiving Project page.


You must log in to post a comment. You can login or register a new account.