LlRegionSay - Second Life Wiki


From Second Life Wiki

Jump to: navigation, search



Function: llRegionSay( integer channel, string msg );

Says the string msg on channel number channel that can be heard anywhere in the region by a script listening on channel.

• integer channel output chat channel, any integer value except zero[1]
• string msg message to be transmitted

Regardless of where the prim is, the message will not travel over region borders.

Channel Constant Description
DEBUG_CHANNEL 0x7FFFFFFF Chat channel reserved for script debugging and error messages, broadcasts to all nearby users.


  • Messages sent on DEBUG_CHANNEL are throttled to a rate of <200/10sec, per region, per owner/user.
    • Once the rate is exceeded, all following messages on 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.
  • This function cannot transmit on PUBLIC_CHANNEL channel 0, this is a design feature and not a bug.
  • If msg is longer than 1024 characters it is truncated to 1024 characters. (Note that in Mono, each character occupies 2 memory bytes).
  • 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


        llRegionSay(25,"This is an incredibly useless program." );
To avoid making your object spam its neighborhood, use llOwnerSay or llInstantMessage.


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.,

    llRegionSay(-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.

If DEBUG_CHANNEL is used as channel, the script will say msg to the Script Warning/Error window.

If you wish two objects owned by the same person to communicate within a SIM, one idea is to make both scripts compute the channel based on the owner UUID. e.g. :-

    gChannel = 0x80000000 | (integer) ( "0x" + (string) llGetOwner() );
  • As of 1.18.3, using llRegionSay on the DEBUG_CHANNEL will wrap around and display on channel 0, with a range of 100m.

See Also


•  listen


•  llListen
•  llRegionSayTo Sends chat directly to specified target within region
•  llOwnerSay Sends chat to the owner only
•  llWhisper Sends chat limited to 10 meters
•  llSay Sends chat limited to 20 meters
•  llShout Sends chat limited to 100 meters
•  llInstantMessage
•  llDialog
•  llTextBox

Deep Notes


Search JIRA for related Issues


  1. ^ Channel zero is also known as: PUBLIC_CHANNEL, open chat, local chat and public chat
This article wasn't helpful for you? Maybe the related article at the LSL Wiki is able to bring enlightenment.