LlRegionSay
Looking for the current API? Open the llRegionSay reference →
Wiki description
Function notes
Regardless of where the prim is, the message will not travel over region borders.
Caveats
- This function cannot transmit on PUBLIC_CHANNEL channel 0, this is a design feature and not a bug.
- If
msgis 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. Use llMessageLinked instead for intra-prim messaging.
Examples
default
{
state_entry()
{
llRegionSay(25,"This is an incredibly useless program." );
}
}To avoid making your object spam its neighborhood, use llOwnerSay or llInstantMessage.
Notes
If one object 'says' something to another object (e.g., a button that, when touched,
turns on a lamp), consider a very negative channel, e.g.,
llRegionSay(-5243212,"turn on");Using negative channels for script communications remains a common practice because, prior to September 2016, the standard SL client was unable to chat on negative channels. The only way to do so prior to llTextBox was to use llDialog which was limited to 24 bytes. However, since 2016, viewers have been able to chat on negative channels, with messages capped to 254 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: functions
See also: events
History
- Introduced with SL 1.16.0
- Date of Release 23-05-2007
Shared wiki helpers
The original page also injects shared parameter notes, caveats or issue information through these helpers. Their conditional MediaWiki logic is not reproduced here; inspect the preserved helper source for additional material.
Original shared helper source (conditional wiki logic is not evaluated)
{{LSL Injection Test}}{{#if:
<includeonly>{{#if:{{{nc|}}}||{{#vardefine:hidden-text|{{#var:hidden-text}}{{LSLC|Communications{{#var:lang}}}}}}}}</includeonly>
{{#if:{{{1|<noinclude>*</noinclude>}}}|
<includeonly>{{#if:{{{nc|}}}||{{#vardefine:hidden-text|{{#var:hidden-text}}{{LSLC|Chat{{#var:lang}}}}}}}}</includeonly>
{{#vardefine:fc-neither|{{#ifeq:{{#if:{{{np|}}}|*}}{{#if:{{{nd|}}}|*}}|**|*}}}}
{{#if:{{#var:fc-neither}}|{{LSL Constants/Chat}}|
{{#vardefine:constants_nb|{{LSL Constants/Chat|np={{{np|}}}|nd={{{nd|}}}|direct={{{direct|}}}}}
{{#var:constants_nb}}}}}}
{{#if:{{{np|}}}||{{Footnote|handle=channel_zero|Channel zero is also known as: {{#var:PUBLIC_CHANNEL}}, open chat, local chat and public chat|Channel zero is also known as: PUBLIC_CHANNEL, open chat, local chat and public chat}}}}
{{#vardefine:p_{{{1|none}}}_desc|{{#if:{{{input|}}}|input|output}} {{LSLGC|Chat|chat}} channel, any integer value {{#if:{{#var:fc-neither}}|except zero{{Footnote|handle=channel_zero}} and {{#var:DEBUG_CHANNEL}}|{{#if:{{{np|}}}|except zero{{Footnote|handle=channel_zero}}}}{{#if:{{{nd|}}}|except {{#var:DEBUG_CHANNEL}}}}}}}}
{{#vardefine:p_{{{1|none}}}_hover|{{#if:{{{input|}}}|input|output}} chat channel, any integer value {{#if:{{#var:fc-neither}}|except zero (PUBLIC_CHANNEL) and DEBUG_CHANNEL|{{#if:{{{np|}}}|except zero (PUBLIC_CHANNEL)}}{{#if:{{{nd|}}}|except DEBUG_CHANNEL}}}}}}
{{#ifeq:{{#var:fc-neither}}{{{1|<noinclude>{{{1}}}</noinclude>}}}{{{dialog|}}}|{{{1}}}|
{{#vardefine:caveats|{{#var:caveats}}
*Messages sent on {{#if:{{{np|}}}||channel zero{{Footnote|handle=channel_zero}} {{#if:{{{nd|}}}||and}}}} {{#if:{{{nd|}}}||{{#var:DEBUG_CHANNEL}}}} are throttled to a rate of <200/10sec, per region, per owner/user.
**Once the rate is exceeded, all following messages on {{#if:{{{np|}}}||channel zero {{#if:{{{nd|}}}||or}}}} {{#if:{{{nd|}}}||{{#var:DEBUG_CHANNEL}}}} will be dropped until the send rate is again below 200/10sec for the previous 10 sec. Dropped messages, despite being dropped still count against the limit.}}
}}
}}
{{#if:{{{2|<noinclude>*</noinclude>}}}|
{{#if:{{{input|}}}|
{{#vardefine:p_{{{2|none_}}}_desc|{{#if:{{{ph|}}}|{{{ph|}}}|{{{pd|}}}}} message}}
|
{{#if:{{{dialog|}}}|
{{#vardefine:p_{{{2|none_}}}_desc|message to be displayed in the {{{dialog|}}}}}
|
{{#vardefine:p_{{{2|none_}}}_desc|message to be transmitted}}
}}
}}
}}
}}<noinclude>
{| {{Prettytable}}
|-{{Hl2}}
! #var
! value
|-
{{VarPair|caveats}}
|-
{{VarPair|p_{{{1|none}}}_desc}}
|-
{{VarPair|p_{{{1|none}}}_hover}}
|-
{{VarPair|p_{{{2|none_}}}_desc}}
|-
{{VarPair|constants_nb}}
|-
{{VarPair|examples}}
|-
{{VarPairTable|footnotes}}
|}
</noinclude>Original wiki source
Some wiki templates and tables need their original context. View this article on the Second Life Wiki. Technical wording and examples are retained from the source; historical guidance may differ from current behavior.