CityLite
The CityLite (also known as ShittyLite) is a programmable traffic signal system.
Contents
Setup
- Rez signals and set their signal IDs.
- For Single signals, click each signal, select Config, and set a signal ID.
- X-Straight and Y-Straight are "regular" signals. X and Y are different roads; X is usually the main road, and Y is the crossroad.
- X-Left and Y-Left are protected left turn signals. These are optional. Setting this signal ID will change the texture to a left turn signal texture.
- Custom allows you to set a custom signal ID. This is only used for custom-programmed controllers.
- For 4-Way and 3-Way signals, look at the top of the signal (you should see little X and Y markers). Rotate the signal to your liking.
- For Single signals, click each signal, select Config, and set a signal ID.
- If you don't want all signals in the region synchronized, or you have different intersection configurations (some have left turn signals, some don't, etc.) you will need to set each signal's intersection. Click it, select Config, select Intersection, and type an intersection ID in. More information on intersections is below.
- Rez a controller for each intersection ID (if you didn't set any, just rez one controller - this will control all signals in the region).
- Edit the _config notecard in the controller. For more information on this, see below.
- The signals should start up once the notecard is finished loading.
Protected Left Turn
You can set the signal ID to X-Left or Y-Left to change the signal to a protected left turn signal. (If you're using a custom signal ID and you want a left turn signal, you'll have to set it to X-Left first.)
Protected left turn signals are not enabled by default - they'll just remain red. If you have an X-Left signal, you'll need to set XLEFT to 1 in the controller's _config notecard - similarly, if you have a Y-Left signal, you'll need to set YLEFT to 1. This only works with the default sequence; these settings are ignored if you're using a custom programming sequence.
Signal Customization
You can customize Single signals by clicking them, selecting Config, and using Tgl Surround or Tgl Mount. These will toggle the surround plate and the hanging mount, respectively.
Access Settings & Manual/Override Controls
The access settings in the _config notecard (ACCESS, WHITELIST, and BLACKLIST) are used to access the controller's manual intersection controls AND the signals' override controls for the same intersection. Anyone that has access can do the following:
- Controller Manual Controls (click the controller)
- Automatic: Returns control to the automatic sequence (if in manual mode).
- Manual: Disengages the automatic sequence and lets the user control lights manually. Also opens the Set Colors menu.
- Set Colors (NOTE: These controls, except for Sig Custom, only work for the default signal IDs - X-Straight, Y-Straight, X-Left, and Y-Left.)
- X Ylw/Y Red: X flashes yellow, Y flashes red.
- X Red/Y Ylw: X flashes red, Y flashes yellow.
- All Red: X and Y flash red.
- All Yellow: X and Y flash yellow.
- All Off: X and Y turn off.
- Sig X-Straight, Sig Y-Straight, Sig X-Left, Sig Y-Left: Lets you change the color for all signals with that ID.
- Sig X-All, Sig Y-All: Lets you change the color for all X or all Y signals.
- Sig Custom: Lets you change the color for all signals with specified custom ID.
- Signal Override Controls (click an individual signal)
- Rtn Control: Returns control to the controller (if in override mode).
- Override: Ignores the controller and lets the user control the light manually. Also opens the Set Color menu.
- Set Color: Lets you change the color for that signal only.
Intersections
CityLite works through the use of intersection IDs. Most users want to keep things simple, so in this case, just don't change intersection IDs anywhere (signals or controller) and everything will be synced together.
However, if you want to separately-controlled intersections, you'll have to set an intersection ID. Click each signal in the intersection and select Config, then select Intersection, then enter your ID. In a separate controller, edit the _config notecard and change the ID. Now, that controller will control only the signals with the same intersection ID. You can set multiple intersections to the same ID, and they'll be synced as well.
Remember, intersection IDs are separate from signal IDs.
All intersections using the same ID should be configured the same way. This means, if you have one intersection with just straight signals, you shouldn't use the same ID for an intersection with straight and left turn signals. One way to fix this is to use the Default ID for intersections with just straight signals, then have a separate controller for intersections with X-Left signaled intersections, then another for Y-Left signals, then another for X-Left and Y-Left signals. (Obviously, if you don't have a certain type, you can not have that controller, but this is just an example.)
Custom Programming Sequence
You can now program your signals to whatever sequence you want. Just type in the sequence you want in the _program notecard in the controller and set Custom in the _config notecard to Yes.
Programming is done using these commands:
[signalID] [color] [intersectionID] [signalID] [color] WAIT [time] INPUT [channel] [command] ANYINPUT [channel] [command]
Each commands needs to be on a separate line. The _program notecard that comes with the controller has an example which simulates the default settings in the _config notecard. Let's decode it:
X-Straight RED X-Left RED Y-Straight RED Y-Left RED
Set all signals to red.
WAIT 1
Wait 1 second.
X-Straight GREEN WAIT 10
Set X-Straight to green and wait 10 seconds. All other signals will remain red.
X-Straight YELLOW WAIT 3
Set X-Straight to yellow and wait 3 seconds.
X-Straight RED WAIT 1
Set X-Straight to red and wait 1 second. This is the ALLRED config setting.
And so on, and so forth. Once the notecard reaches the end, it restarts from the beginning.
Here's an example of a program that would control an intersection ID with turn signals and an intersection ID without turn signals at the same time (IntTurn and IntNoTurn):
IntTurn X-Straight RED IntTurn X-Left RED IntTurn Y-Straight RED IntTurn Y-Left RED IntNoTurn X-Straight RED IntNoTurn Y-Straight RED WAIT 1 IntTurn X-Left GREEN IntNoTurn X-Straight GREEN WAIT 4 IntTurn X-Left YELLOW WAIT 3 IntTurn X-Left RED WAIT 1 IntTurn X-Straight GREEN WAIT 8 IntTurn X-Straight YELLOW IntNoTurn X-Straight YELLOW WAIT 3 IntTurn X-Straight RED IntNoTurn X-Straight RED WAIT 1 IntTurn Y-Left GREEN IntNoTurn Y-Straight GREEN WAIT 4 IntTurn Y-Left YELLOW WAIT 3 IntTurn Y-Left RED WAIT 1 IntTurn Y-Straight GREEN WAIT 8 IntTurn Y-Straight YELLOW IntNoTurn Y-Straight YELLOW WAIT 3
In this case, IntNoTurn's straight signals are set to green while IntTurn's left turn sequence runs through. If you used the default sequence and just one intersection ID, the straight signals in intersections with no left turn signals would just remain red while the left turn sequence runs through. This program eliminates that extended red period, but you have to set two a different intersection ID for each type of intersection.
Alternatively, you can use the INPUT command to wait for external commands:
X-Straight RED INPUT 1 go X-Straight GREEN WAIT 4 X-Straight YELLOW WAIT 3
This program would wait for something owned by the owner of the signal controller to say "go" on channel 1, and then switch to green for a few seconds, then yellow, then back to red, and repeat.
Note that the ANYINPUT is the same as INPUT, but allows objects owned by anyone (or any avatar) to issue the commands, not just objects owned by the same person (or the owner themselves).
Here's one that demonstrates the use of multiple INPUT commands in the same program - a simple starting signal for a racetrack:
X-Straight OFF INPUT 500 ready X-Straight RED INPUT 500 go X-Straight YELLOW WAIT 1 X-Straight GREEN INPUT 500 reset
This sequence accepts input on channel 500. When you're ready to begin, send "ready" and the signals turn on as red. To go, send "go" and the signals turn from yellow to green. To reset the signals, send "reset" and they turn off.
Feel free to experiment with programming! We're excited to see what our customers come up with on this.