Bright Chat Relay

Let people chat and hear each other across any distance, region wide!


The Bright Chat Relay solves one problem. When you type to "chat", only avatars within 20m can "hear" you. So not everyone on a large parcel of land will hear each other.

The system consists of two copyable boxes: a "microphone", and a "speaker".

Rez microphones wherever you like, rez one speaker, and you're done. Any chat within 20m of a microphone will now be heard by EVERYONE on the parcel.

And they won't hear it twice. The system relays each message only to people too far away from the avatar chatting to have heard it.

So if Alice says something, and Bill is only 3m away, he can hear her. The system won't relay her message to him. But it will relay it to Clare, who is 25m away.

The system is highly configurable. You can decide *whose* chat to relay: everyone's, just yours, or just group members'. And you can include or exclude chat from your objects, group objects, or objects in general.

Nor is it limited to one parcel. You can relay chat between any parcels in the region with the same owner.

And you can restrict relays to coordinate "zones". If you have a nightclub on the ground, and a shopping mall in the sky above it, you can tell the system only to relay to people within the nightclub's zone. Or configure different microphones to be relayed to different zones.

A few technical notes:

1. Relayed chat messages may be up to 970 characters - about half a screenful of text.

2. SL limits objects sending chat messages to individual avatars across a region to 200 in 10 seconds, and will "throttle" or restrict objects belonging to an owner if they collectively exceed this. The Bright Chat Relay therefore introduces a tiny delay (about a fourteenth of a second) after relaying a message to an avatar, so it can never send more than 142 in 10 seconds - safely below the limit, and leaving capacity for other objects to send such messages. To relay a message to (say) 20 other people might therefore take a second and a half, and if the rate of relays exceeds about fourteen every second for a prolonged period, some messages might be dropped: but this would require a large group talking very fast to happen even occasionally.

3. Most chat can be heard 20m away. But residents can "shout" over 100m by pressing Control + Enter, or "whisper" over only 10m by pressing Shift + Enter. SL provides no way for any system to detect and allow for this. Shouted messages may therefore be heard twice by people 20-100m away, and whispered ones may not be relayed to those 10-20m away: but neither shouting nor whispering are common.

4. To prevent spamming a stranger's land, you must be in a parcel's group to use the relay on that parcel.

And so, for almost all chat, the Bright Chat Relay makes it possible to overcome Second Life's 20m chat limit - for some, or for all, as you need. DJ's can talk to everyone on the dance floor. Managers can make announcements to everyone on parcels with the same owner across an entire region. And everyone in the nightclub can talk to everyone else.

And the bigger the party, the more the fun!


To unpack the system, find the "Bright Chat Relay boxed" object in your inventory, and drag it onto the ground to rez it. Right-click to open the context menu, click "Open" to display the contents window, and click "Copy To Inventory" to create a new folder, also called "Bright Chat Relay boxed", in your inventory.

In here, you will find a "Bright Chat Relay MICROPHONE", a "Bright Chat Relay SPEAKER", and a notecard with these instructions.


Wherever people chat, and you wish to relay that chat, rez a "Bright Chat Relay MICROPHONE".

Each microphone will hear chat within 20m, so if you wish to relay all the chat from a wide area, place them so that nowhere is more than 20m from the nearest mike. (The simplest way is to lay them out in a grid, each mike 28m north, south, east, or west of the next. At this distance apart, nowhere will be more than 20m from the nearest mike.)

(Don't worry if the ranges of the microphones overlap: the system can handle this without duplicating relayed messages.)

Click the microphone to display the following menu:

Microphone: OFF
Relay to zone: A


Click [ON] to switch the microphone on. Until it is on, it will not relay anything it hears.

Click a [ZONE] button to select to which "zone" the microphone should relay chat. A zone is an area defined by certain coordinates, and zone A is set up in advance to mean "everywhere". See "Defining Zones" below.

Don't worry if the microphones look strange rezzed in the middle of your space. They are phantom - so no one will bump into them - and below, you will learn how to make them all invisible.


Rez ONE speaker anywhere in one of your parcels in the region.

(One speaker is enough to relay chat to anywhere on a parcel, and anywhere on any other parcels in the region with the same owner. If you rez a second speaker, it will detect that a speaker already exists, and delete itself.)

Click the speaker to display the following menu:

Speaker: OFF | Floating Text: ON
Mode: LIVE | This Parcel Only: YES
Relay Avatars: ALL | Relay Objects: NONE
Zones: 1 | Runtime: 0.02h
Messages: 0 | Dupes: 0 | Relays: 0
Script 1: 41008b | Script 2: 50588b


Click the buttons to control the speaker:

[ON] switches the speaker on.

(NOTE: The speaker must be set to the parcel's group to be switched on in live mode. This restriction is designed to prevent the system being used to spam a stranger's land. If you aren't a member of a parcel's group, you will not be able to relay chat on that parcel.)

[TEXT] switches the floating text above the speaker on and off.

[MODE] switches between test mode and live mode. In test mode, the speaker will not relay any chat: but it will tell you what chat if *would* relay if it were live. This is a useful way to test the layout of your microphones before going live.

[PARCEL] switches between relaying chat only to avatars on the parcel containing the speaker, and to avatars on all parcels with the same owner in the region.

[AVATARS] controls whose chat should be relayed. Click to choose between NONE (nobody's), OWNER (just yours), GROUP (group members'), or ANYONE.

[OBJECTS] controls which objects should have their chat relayed. It can be set to NONE, OWNER (your objects), GROUP (objects set to the same group as the speaker), or ANYONE (anyone's objects).

[LIST MIKES] will display a list of all the microphones you have in the region:

Bright Chat Relay MICROPHONE #020 at Jane's Club (40,66,150) set to zone A & switched ON

[SHOW MIKES] and [HIDE MIKES] will make all your microphones in the region visible or invisible.

Once you have switched on your microphones, and switched on your speaker, anything said within 20m of a microphone will be relayed to everyone on your land.

(The menu, and the floating text, also show some statistics: see "Speaker Statistics" below to see what these mean.)


A "zone" is a three dimensional area - a block of space - into which chat picked up by a microphone should be relayed.

For instance, if a microphone relays to zone A, then only avatars within zone A will hear chat picked up by that microphone.

Initially, all microphones relay to zone A, and zone A covers "everywhere".

If you want everything picked up by the microphones to be relayed everywhere, then you don't have to do anything more. Just leave the microphones set to zone A, and leave the definition of zone A as it is.

However, this may not be what you want. You may have a nightclub on the ground, and a shopping mall above it in the sky: and you may not want chat from microphones in the club relayed to the mall, or vice versa.

You can control this by creating zones.

Right-click the speaker to display its pop-up menu, select "Open" to show its "Contents" window, and double-click the "ZONES" notecard to open it.

Each line in this notecard is a zone. To begin with, there will only be one:

A, 0, 256, 0, 256, 0, 4096

The initial letter is the name of the zone. You can set up up to 9 zones, from A to I.

The following six numbers are region coordinates: minimum x, maximum x, minimum y, maximum y, minimum z, and maximum z.

So this line means that microphones set to zone A should relay chat to any avatar whose X position is 0-256, Y is 0-256, and Z is 0-4096.

Regions are 256m squares, with a "build ceiling" of 4906m, so this zone's coordinates cover the entire region, and microphones on band A will be relayed everywhere.

(However, note that the Bright Chat Relay will never relay chat to avatars on parcels which have different owners - even if they are within a zone's coordinates. This is to prevent accidentally spamming someone else's land. So you don't need to set coordinates to exclude other people's parcels - the system will exclude them automatically.)

Let us imagine your nightclub is at ground level at Z=50, and the floor of your shopping mall is at Z=1000 - a kilometre above the ground. You could set up your zones like this:

A, 0, 256, 0, 256, 0, 100
B, 0, 256, 0, 256, 950, 1050

You'll notice that zone A's maximum Z coordinate has been changed from 4096 to 100. This means that avatars above 100m will no longer hear chat picked up by microphones set to A. Set the microphones on the ground to zone A, and chat within the nightclub will not be relayed to the mall in the sky.

You'll also notice a new zone B has been created. Microphones set to zone B will only be heard by avatars between 950m and 1050m above the ground. Set microphones in the mall to zone B, and chat within the mall will only be relayed to other avatars in the mall.

You can set up overlapping zones, but if you do, make sure microphones set to the overlapping zones are at least 40m apart. Otherwise, nearby microphones set to (say) zones C and D may pick up the same chat message, and anyone in the area where zones C and D overlap will hear it twice.


In the speaker menu, and in floating text above the speaker, you will see the following statistics:

Zones: 1 | Runtime: 3.34h
Messages: 87 | Dupes: 7 | Relays: 246
Script 1: 41008b | Script 2: 50588b

Zones: The number of zones set up - see "Defining Zones" above.

Runtime: How many hours the scripts have been running since they were last reset. The system resets automatically every 24 hours (without stopping its service).

Messages: How many chat messages the speaker has accepted from a microphone to be relayed.

Dupes: How many chat messages the speaker has rejected as duplicates. If someone is within 20m of two microphones set to the same zone, both microphones will pick up their chat messages. The speaker will spot the duplication, and reject one of the messages as a duplicate. (This is meant to happen: it does not indicate a problem.)

Relays: How many relay messages have been sent. For instance, if a microphone picks up a single chat message, and there are five people too far away from the avatar chatting to hear it, the speaker will relay it to each of those five people, adding five to this counter.

Script 1/2: How many bytes of free memory each of the scripts inside the speaker have.


* Be imaginative. Do you run a racetrack, with powerful motorcycles racing around a large complex course? Placing microphones along the track will let the riders talk to each other even while they are racing, however far apart they are. Put microphones in the spectator stands as well, and let rival supporters compete in cheering, and let the riders hear their encouragement!

* Don't set up more microphones than you have to. Each can hear everything said within a sphere with 20m radius. Placing them in a grid 28m from each other means their coverage overlaps, so nowhere is more than 20m from a mike. A 100m x 100m space can be covered in this way using 16 microphones. Each is only one prim.

* If you wish to use the Bright Chat Relay as a public address system, then rez only one microphone in a private spot, and configure it to relay only *your* chat. Anything you say near this microphone will be heard by everyone.


Shan Bright
Chief Executive Officer