From Second Life Wiki
Say
llSay
Summary
Function: llSay( integer channel, string msg );
Says the text supplied in string msg on channel supplied in integer channel.
| • integer
| channel
| –
| output channel, any integer value
|
|
| • string
| msg
| –
| message to be transmitted
|
|
| Channel Constant
| Description
|
| DEBUG_CHANNEL
| 0x7FFFFFFF
| Chat channel reserved for script debugging and error messages.
|
| PUBLIC_CHANNEL
| 0x0
| Chat channel that broadcasts to all nearby users.
|
Caveats
- Messages sent on PUBLIC_CHANNEL and DEBUG_CHANNEL are throttled to a rate of <200/10sec, per region, per owner/user.
- Once the rate is exceeded, all following messages on PUBLIC_CHANNEL or DEBUG_CHANNEL will be dropped until the send rate is again below 200/2sec for the previous 2 sec. Dropped messages, despite being dropped still count against the limit.
- Text spoken can only be heard within 20 meters of the speaking prim (rather than the root). This is contrary to how the event listen works, where a message can only be heard by any prim in the object if and only if the root prim is capable of hearing it.
- Text can be a maximum of 1024 bytes. This can convey 1024 ASCII characters, or 512 UTF-8 characters such as á
- A prim can not hear itself, this to prevent problems with recursion. It can however hear other prims within the same object.
All Issues ~
Search JIRA for related Bugs
Notes
- Channel 0 is the PUBLIC_CHANNEL. Everyone can hear chat transmitted on this channel. All other channels are private channels (not sent to users, with the exception of DEBUG_CHANNEL).
- Consider using llInstantMessage, llOwnerSay, or the DEBUG_CHANNEL for debugging purposes. If DEBUG_CHANNEL is used as channel, the script will say msg to the Script Warning/Error window.
- If one object 'says' something to another object (e.g., a button that, when touched, turns on a lamp), it is a good idea to use a very negative channel, e.g., -5243212 but don't just use any number take a look at the User-Defined Protocols & APIs and choose one that won't interfere with other protocols. If you are going to sell your script widely please add it to the appropriate known chat channels list so others won't interfere with your product (do keep in mind you should build your product so that it handles interference appropriately).
llSay(-5243212,"turn on");
Negative channels are popular for script communications because the standard SL client is unable to chat directly on those channels ("/-xxxx message" won't chat "message" on channel "-xxxx", it will chat "/-xxxx message" on channel zero). The only way to do so prior to llTextBox was to use llDialog which was limited to 24 bytes.
See Also
Events
Functions
| •
| llListen
| –
| Ask for listen events
|
|
| •
| llInstantMessage
| –
| Sends chat to the owner only (or to some other user only) to avoid spamming the PUBLIC_CHANNEL
|
|
| •
| llOwnerSay
| –
| Sends chat to the owner only to avoid spamming the PUBLIC_CHANNEL
|
|
| •
| llRegionSay
| –
| Sends chat region wide
|
|
| •
| llRegionSayTo
| –
| Sends chat region wide to a specific avatar, or their attachments, or to a rezzed object of known UUID
|
|
| •
| llShout
| –
| Sends chat limited to 100 meters
|
|
| •
| llWhisper
| –
| Sends chat limited to 10 meters
|
|
Articles