<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.secondlife.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ponder+Song</id>
	<title>Second Life Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.secondlife.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ponder+Song"/>
	<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/wiki/Special:Contributions/Ponder_Song"/>
	<updated>2026-05-26T00:35:04Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Email&amp;diff=1195605</id>
		<title>Email</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Email&amp;diff=1195605"/>
		<updated>2015-02-19T22:28:20Z</updated>

		<summary type="html">&lt;p&gt;Ponder Song: spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Event&lt;br /&gt;
|inject-2={{Issues/SVC-23}}{{Issues/SCR-499}}&lt;br /&gt;
|event_id=21|event_delay&lt;br /&gt;
|event=email&lt;br /&gt;
|p1_type=string|p1_name=time|p1_desc=In the &amp;lt;code&amp;gt;(string)[[llGetUnixTime]]&amp;lt;/code&amp;gt; format|p1_hover=In the (string)llGetUnixTime format&lt;br /&gt;
|p2_type=string|p2_name=address|p2_desc&lt;br /&gt;
|p3_type=string|p3_name=subject|p3_desc&lt;br /&gt;
|p4_type=string|p4_name=message|p4_desc&lt;br /&gt;
|p5_type=integer|p5_name=num_left|p5_desc=The number of emails remaining in the email queue.{{Footnote|The email being processed is not counted as it has already been popped from the queue.}}|p5_hover=The number of emails left in the email queue.&lt;br /&gt;
|event_desc=Triggered as a result of calling [[llGetNextEmail]] where there is a matching email in the email queue.&lt;br /&gt;
|event_footnote=The email queue is associated with the prim and any script in the prim can access it. &amp;lt;br/&amp;gt; The prim&#039;s email address is its key with &amp;quot;@lsl.secondlife.com&amp;quot; appended, &amp;lt;code&amp;gt;[[llGetKey]]() + &amp;quot;@lsl.secondlife.com&amp;quot;&amp;lt;/code&amp;gt;{{Footnote|1=Preview grid email address are constructed differently: &amp;lt;code style=&amp;quot;font-size: 123%;&amp;quot;&amp;gt;[[llGetKey]]() + &amp;quot;@lsl.&amp;quot; + grid + &amp;quot;.lindenlab.com&amp;quot;&amp;lt;/code&amp;gt;; for the main beta grid set grid to {{String|aditi}}.|2=Beta grid email address are constructed differently: llGetKey() + {{String|@lsl.}} + grid + {{String|.lindenlab.com}}; for the main beta grid set grid to {{String|aditi}}.}}.&lt;br /&gt;
|constants&lt;br /&gt;
|spec=The email event is triggered as a result of calling [[llGetNextEmail]] when there is an email that matches [[llGetNextEmail]]&#039;s optional filters. The first email that matches the filters is removed from the email queue and its data is used as the parameters for this event. If no email matches the filters but the queue is not empty this event is not triggered. Besides the effects of filtering, the email queue is {{HoverText|FIFO|First In First Out}}.&lt;br /&gt;
|caveats=&lt;br /&gt;
* The email queue is limited to 100 emails, any email after that is bounced.&lt;br /&gt;
* The message field may have a maximum of 1000 single-byte characters. This count includes the header information (&#039;&#039;&#039;address&#039;&#039;&#039;, &#039;&#039;&#039;subject&#039;&#039;&#039;, etc).&lt;br /&gt;
* [[llEmail|Emails sent from within SL]] will have their message body prefixed with a header detailing the originating prim. See [[llEmail]] for more details.&lt;br /&gt;
* Due to bug {{Jira|SVC-23}} (present since 2005), objects may stop receiving emails completely until either the region is restarted or the object crosses a region boundary (resetting the script doesn&#039;t help).&lt;br /&gt;
&lt;br /&gt;
Copiable objects may be drag-copied inworld to create a new duplicate in its place and restarted. The new copy will (usually) work in its place, and the old unworking object may be deleted. (ed. by Nyoko Salome 120816)&lt;br /&gt;
&lt;br /&gt;
Emails sent may eventually be received after a restart/region-cross. Hence, don&#039;t rely on this event for reliable inter-region messaging. &lt;br /&gt;
|constants&lt;br /&gt;
|examples=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lsl2&amp;quot;&amp;gt;&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llSetTimerEvent(5.0);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    timer()&lt;br /&gt;
    {&lt;br /&gt;
    //  get next email, don&#039;t filter by sender or subject&lt;br /&gt;
        llGetNextEmail(&amp;quot;&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    email( string time, string address, string subject, string message, integer num_left )&lt;br /&gt;
    {&lt;br /&gt;
    //  if we received an email from an object within Second Life&lt;br /&gt;
        if (llGetSubString(address, -19, -1) == &amp;quot;@lsl.secondlife.com&amp;quot;)&lt;br /&gt;
//      {&lt;br /&gt;
            message = llDeleteSubString(message, 0, llSubStringIndex(message, &amp;quot;\n\n&amp;quot;) + 1);&lt;br /&gt;
//      }&lt;br /&gt;
&lt;br /&gt;
    //  PUBLIC_CHANNEL has the integer value 0&lt;br /&gt;
        llSay(PUBLIC_CHANNEL, message);&lt;br /&gt;
&lt;br /&gt;
    //  if there&#039;s another email in the queue waiting&lt;br /&gt;
    //  get next email, don&#039;t filter by sender or subject&lt;br /&gt;
        if(num_left)&lt;br /&gt;
            llGetNextEmail(&amp;quot;&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_header&lt;br /&gt;
|also_events&lt;br /&gt;
|also_functions={{LSL DefineRow||[[llEmail]]|}}&lt;br /&gt;
{{LSL DefineRow||[[llGetNextEmail]]|}}&lt;br /&gt;
|also_articles&lt;br /&gt;
|also_footer&lt;br /&gt;
|notes=&lt;br /&gt;
For tips on how to process emails sent from within SL, see the entry on [[llEmail#Prim2Prim_Email|llEmail]].&lt;br /&gt;
|mode&lt;br /&gt;
|deprecated&lt;br /&gt;
|cat1=Email&lt;br /&gt;
|cat2&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Ponder Song</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Fix_Small_Prims&amp;diff=1187719</id>
		<title>Fix Small Prims</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Fix_Small_Prims&amp;diff=1187719"/>
		<updated>2014-02-13T16:58:01Z</updated>

		<summary type="html">&lt;p&gt;Ponder Song: /* About */ grammar.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header}}{{RightToc}}&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
== About ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
Fix Small Prims by [[User:Emma_Nowhere|Emma Nowhere]]&lt;br /&gt;
&lt;br /&gt;
Now updated to use [https://jira.secondlife.com/browse/SVC-224 LLGetLinkPrimitiveParams].&lt;br /&gt;
&lt;br /&gt;
In Second Life, no prim can be less that .01 meters in any given dimension (width, length, or height).  When you try to resize an object, you often find you can&#039;t shrink it below a certain size.  This is because one of the prims in the object is already at its minimum size in one of it&#039;s dimensions.  This script checks every prim in an object and slightly increases the sizes of the prims which are already at their smallest possible sizes, so that the overall object that the prim is part of can be scaled down.  This usually lets you reduce the object in size by an additional 20%.  You can repeat the process several times if you&#039;re not able to shrink the object enough on the first try.  &lt;br /&gt;
&lt;br /&gt;
In the instructions below, we&#039;ll refer to your object that you want to resize, such as a necklace or a tree, as a &amp;quot;linkset&amp;quot;.  We call it this because the object consists of a linked set of prims, rather than one single prim.&lt;br /&gt;
&lt;br /&gt;
If you&#039;re not familiar with how prims and linking work, please read the following wiki pages:&lt;br /&gt;
&lt;br /&gt;
[[Prim]]&lt;br /&gt;
&lt;br /&gt;
[[Link]]&lt;br /&gt;
&lt;br /&gt;
How to use with menu:&lt;br /&gt;
&lt;br /&gt;
#Install this script in the root prim of a linked set of prims (aka &amp;quot;linkset&amp;quot;)&lt;br /&gt;
#Type /1fsp to show the menu&lt;br /&gt;
#Hit the &amp;quot;Fix&amp;quot; button to fix all the small prims&lt;br /&gt;
#Resize the linkset object to the desired size with the Viewer Editing Tools&lt;br /&gt;
#Type /1fsp to show the menu again&lt;br /&gt;
#Hit the &amp;quot;Finish&amp;quot; button to remove the script and finalize prim sizes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(Advanced) How to use with chat commands:&lt;br /&gt;
&lt;br /&gt;
#Install this script in the root prim of a linked set of prims (aka &amp;quot;linkset&amp;quot;).&lt;br /&gt;
#Type /1fsprun to fix all the small prims&lt;br /&gt;
#Resize the linkset object to the desired size with the Viewer Editing Tools&lt;br /&gt;
#Type /1fsprestore if you need to return them to their original sizes (you should only use this for no-copy objects, otherwise make a copy before you start)&lt;br /&gt;
#Type /1fspcleanup to remove the scripts from the linkset and finalize prim sizes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT:&#039;&#039;&#039;  You should always make a backup copy of the object before using this script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== FixSmallPrims ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
// FixSmallPrims2&lt;br /&gt;
// by Emma Nowhere&lt;br /&gt;
//&lt;br /&gt;
// Last modified: 5/30/2010&lt;br /&gt;
//&lt;br /&gt;
// How to use with menu:&lt;br /&gt;
// 1. Install this script in the root prim of a linked set of prims (aka &amp;quot;linkset&amp;quot;)&lt;br /&gt;
// 2. Type /1fsp to show the menu&lt;br /&gt;
// 3. Hit the &amp;quot;Fix&amp;quot; button to fix all the small prims&lt;br /&gt;
// 4. Resize the linkset object to the desired size with the Editing Tools&lt;br /&gt;
// 5. Type /1fsp to show the menu again&lt;br /&gt;
// 6. Hit the &amp;quot;Finish&amp;quot; button to remove the script and finalize prim sizes&lt;br /&gt;
//&lt;br /&gt;
// (Advanced) How to use via chat commands:&lt;br /&gt;
// 1. Install this script in the root prim of a linked set of prims (aka &amp;quot;linkset&amp;quot;)&lt;br /&gt;
// 2. Type /1fsp to show the menu&lt;br /&gt;
// 3. Type /1fsprun to fix all the small prims&lt;br /&gt;
// 4. Resize the linkset object to the desired size with the Editing Tools&lt;br /&gt;
// 5. Type /1fsprestore to return them to their original sizes&lt;br /&gt;
// 6. Type /1fspcleanup to remove the script and finalize prim sizes&lt;br /&gt;
 &lt;br /&gt;
integer CHANNEL = 1;&lt;br /&gt;
integer MENU_CHANNEL = -1001;&lt;br /&gt;
 &lt;br /&gt;
list backupScales = [];&lt;br /&gt;
integer backupStored = FALSE;&lt;br /&gt;
 &lt;br /&gt;
list rescaleFlags = [];&lt;br /&gt;
 &lt;br /&gt;
backup() {&lt;br /&gt;
    if (!backupStored) {&lt;br /&gt;
        llOwnerSay(&amp;quot;Backing up prim sizes&amp;quot;);&lt;br /&gt;
        backupScales = [];&lt;br /&gt;
        integer p = llGetNumberOfPrims();&lt;br /&gt;
        integer i = 0;&lt;br /&gt;
        for (i = 1; i &amp;lt;= p; i++)&lt;br /&gt;
        {&lt;br /&gt;
            list params = llGetLinkPrimitiveParams(i, [PRIM_SIZE]);&lt;br /&gt;
            vector scale = llList2Vector(params, 0);&lt;br /&gt;
            backupScales = backupScales + [scale];&lt;br /&gt;
        }&lt;br /&gt;
        backupStored = TRUE;&lt;br /&gt;
        llOwnerSay(&amp;quot;Prim sizes backed up&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
restore() {&lt;br /&gt;
    if (backupStored) {&lt;br /&gt;
        llOwnerSay(&amp;quot;Restoring previously backed up prim sizes&amp;quot;);&lt;br /&gt;
        integer p = llGetNumberOfPrims();&lt;br /&gt;
        integer i = 0;&lt;br /&gt;
        for (i = 1; i &amp;lt;= p; i++)&lt;br /&gt;
        {&lt;br /&gt;
            vector scale = llList2Vector(backupScales, i - 1);&lt;br /&gt;
            llSetLinkPrimitiveParamsFast(i, [PRIM_SIZE, scale]);&lt;br /&gt;
        }&lt;br /&gt;
        llOwnerSay(&amp;quot;Previously backed up prim sizes restored&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    rescaleFlags = [];&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
cleanup() {&lt;br /&gt;
    llOwnerSay(&amp;quot;Cleaning up FixSmallPrims data and finalizing prim sizes&amp;quot;);&lt;br /&gt;
    integer p = llGetNumberOfPrims();&lt;br /&gt;
    integer i = 0;&lt;br /&gt;
    for (i = 1; i &amp;lt;= p; i++)&lt;br /&gt;
    {&lt;br /&gt;
        vector backupScale = llList2Vector(backupScales, i - 1);&lt;br /&gt;
        integer rescaleI = (i - 1) * 3;&lt;br /&gt;
        integer rescaleX = llList2Integer(rescaleFlags, rescaleI);&lt;br /&gt;
        integer rescaleY = llList2Integer(rescaleFlags, rescaleI + 1);&lt;br /&gt;
        integer rescaleZ = llList2Integer(rescaleFlags, rescaleI + 2);&lt;br /&gt;
 &lt;br /&gt;
        list params = llGetLinkPrimitiveParams(i, [PRIM_SIZE]);&lt;br /&gt;
        vector scale = llList2Vector(params, 0);&lt;br /&gt;
 &lt;br /&gt;
        if (rescaleX) {&lt;br /&gt;
            scale.x = backupScale.x;&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        if (rescaleY) {&lt;br /&gt;
            scale.y = backupScale.y;&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        if (rescaleZ) {&lt;br /&gt;
            scale.z = backupScale.z;&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        if (rescaleX || rescaleY || rescaleZ) {&lt;br /&gt;
            llOwnerSay(&amp;quot;Cleaning size of linked prim #&amp;quot; + (string)i);&lt;br /&gt;
            llSetLinkPrimitiveParamsFast(i, [PRIM_SIZE, scale]);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    llOwnerSay(&amp;quot;Deleting FixSmallPrims script&amp;quot;);&lt;br /&gt;
    llRemoveInventory(llGetScriptName()); &lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
process() {&lt;br /&gt;
    restore();&lt;br /&gt;
    backup();&lt;br /&gt;
 &lt;br /&gt;
    llOwnerSay(&amp;quot;Starting fixing prims&amp;quot;);&lt;br /&gt;
    rescaleFlags = [];&lt;br /&gt;
    integer p = llGetNumberOfPrims();&lt;br /&gt;
    integer i = 0;&lt;br /&gt;
    for (i = 1; i &amp;lt;= p; i++)&lt;br /&gt;
    {&lt;br /&gt;
        list params = llGetLinkPrimitiveParams(i, [PRIM_SIZE]);&lt;br /&gt;
        vector scale = llList2Vector(params, 0);&lt;br /&gt;
 &lt;br /&gt;
        integer rescaleX = FALSE;&lt;br /&gt;
        integer rescaleY = FALSE;&lt;br /&gt;
        integer rescaleZ = FALSE;&lt;br /&gt;
 &lt;br /&gt;
        if (scale.x &amp;lt; .015) {&lt;br /&gt;
            scale.x = .015;&lt;br /&gt;
            rescaleX = TRUE;&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        if (scale.y &amp;lt; .015) {&lt;br /&gt;
            scale.y = .015;&lt;br /&gt;
            rescaleY = TRUE;&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        if (scale.z &amp;lt; .015) {&lt;br /&gt;
            scale.z = .015;&lt;br /&gt;
            rescaleZ = TRUE;&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        if (rescaleX || rescaleY || rescaleZ) {&lt;br /&gt;
            llOwnerSay(&amp;quot;Fixing size of linked prim #&amp;quot; + (string)i);&lt;br /&gt;
            llSetLinkPrimitiveParamsFast(i, [PRIM_SIZE, scale]);&lt;br /&gt;
        }&lt;br /&gt;
        rescaleFlags = rescaleFlags + [rescaleX, rescaleY, rescaleZ];&lt;br /&gt;
    }&lt;br /&gt;
    llOwnerSay(&amp;quot;Done fixing prims\n\nResize your object and type /&amp;quot; + (string)CHANNEL + &amp;quot;fsp for menu when done.\n\n&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
menu() {&lt;br /&gt;
    llDialog(llGetOwner(),&lt;br /&gt;
    &amp;quot;Fix Small Prims\n\nMake a backup of your object first.\n\nPlease choose an option:\n&amp;quot;,&lt;br /&gt;
    [&amp;quot;Fix&amp;quot;, &amp;quot;Finish&amp;quot;], MENU_CHANNEL);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry() &lt;br /&gt;
    {&lt;br /&gt;
        llListen(CHANNEL, &amp;quot;&amp;quot;, llGetOwner(), &amp;quot;&amp;quot;);&lt;br /&gt;
        llListen(MENU_CHANNEL, &amp;quot;&amp;quot;, llGetOwner(), &amp;quot;&amp;quot;);&lt;br /&gt;
        llOwnerSay(&amp;quot;FixSmallPrims Ready&amp;quot;);&lt;br /&gt;
        llOwnerSay(&amp;quot;Type /&amp;quot; + (string)CHANNEL + &amp;quot;fsp for menu&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    on_rez(integer start_param) {&lt;br /&gt;
        llOwnerSay(&amp;quot;FixSmallPrims Installed&amp;quot;);&lt;br /&gt;
        llOwnerSay(&amp;quot;Type /&amp;quot; + (string)CHANNEL + &amp;quot;fsp for menu&amp;quot;);&lt;br /&gt;
    }    &lt;br /&gt;
 &lt;br /&gt;
    listen(integer channel, string name, key id, string message) &lt;br /&gt;
    {&lt;br /&gt;
        if (message == &amp;quot;fsp&amp;quot;) {&lt;br /&gt;
            menu();&lt;br /&gt;
        }&lt;br /&gt;
        else if (message == &amp;quot;fsptest&amp;quot;) {&lt;br /&gt;
            llOwnerSay(&amp;quot;FixSmallPrims script is installed and ready&amp;quot;);            &lt;br /&gt;
            if (backupStored) {&lt;br /&gt;
                llOwnerSay(&amp;quot;Original prim sizes have been backed up&amp;quot;);            &lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        else if (message == &amp;quot;fspbackup&amp;quot;) {&lt;br /&gt;
            backup();&lt;br /&gt;
        }&lt;br /&gt;
        else if (message == &amp;quot;fsprestore&amp;quot;) {&lt;br /&gt;
            restore();&lt;br /&gt;
        }&lt;br /&gt;
        else if ((message == &amp;quot;fspcleanup&amp;quot;) || (message == &amp;quot;Finish&amp;quot;)) {        &lt;br /&gt;
            cleanup();                    &lt;br /&gt;
        }&lt;br /&gt;
        else if ((message == &amp;quot;fsprun&amp;quot;) || (message == &amp;quot;Fix&amp;quot;)) {&lt;br /&gt;
            process();            &lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{{#vardefine:sort|Fix Small Prims}}{{LSLC|Library}}&lt;/div&gt;</summary>
		<author><name>Ponder Song</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=How_far_does_my_voice_carry%3F&amp;diff=815852</id>
		<title>How far does my voice carry?</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=How_far_does_my_voice_carry%3F&amp;diff=815852"/>
		<updated>2010-03-20T22:02:58Z</updated>

		<summary type="html">&lt;p&gt;Ponder Song: tyop fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{KBmaster}}&lt;br /&gt;
&lt;br /&gt;
{{KB Communication}}Use this guide to help you determine how far you need to be from someone in order for them to hear you talking or typing.&lt;br /&gt;
&lt;br /&gt;
==Text Chat==&lt;br /&gt;
&lt;br /&gt;
Text chat (as seen on the &#039;&#039;&#039;Local Chat&#039;&#039;&#039; tab of your chat history window) comes in several different flavors, each with its own range:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Normal text chat&#039;&#039;&#039; has a range of 20 meters; you must be standing within 20 meters of the source to hear the chat.  To use normal text chat, press &#039;&#039;&#039;Enter&#039;&#039;&#039;, input your text into the chat bar, and then press &#039;&#039;&#039;Enter&#039;&#039;&#039; or press the &#039;&#039;&#039;Say&#039;&#039;&#039; button.&lt;br /&gt;
* &#039;&#039;&#039;Shouted text chat&#039;&#039;&#039; has a range of 100 meters.  If you are addressing a large crowd, or someone very far away, you can use shouted text.  To shout, press &#039;&#039;&#039;Enter&#039;&#039;&#039;, input your text into the chat bar, then press &#039;&#039;&#039;Ctrl-Enter&#039;&#039;&#039; or click the dropdown menu and select &#039;&#039;&#039;Shout&#039;&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Whispered&#039;&#039;&#039; text only has a range of 10 meters. To whisper, press &#039;&#039;&#039;Enter&#039;&#039;&#039;, input your text into the chat bar, then click the dropdown menu and select &#039;&#039;&#039;Whisper&#039;&#039;&#039;. Whispered text is also used by objects that are running Resident-created scripts; oftentimes scripted vending machines will whisper, so as not to disturb other shoppers.&lt;br /&gt;
* &#039;&#039;&#039;[[How do I Instant Message (IM) someone?|Instant Messages]], [[How do I Instant Message (IM) a group of people at once?|Group Chats, and Friend Conferences]]&#039;&#039;&#039; have no arbitrary distance limitations.  You can send an instant message to someone who is anywhere in Second Life®!&lt;br /&gt;
&lt;br /&gt;
{{KBtip| Text chat ranges exist for your convenience and sanity; just like in real life, you shouldn&#039;t shout unless it&#039;s necessary!  Otherwise, you may disrupt the conversations of other nearby Residents.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Voice Chat==&lt;br /&gt;
&lt;br /&gt;
Your listening distance for voice chat is a little trickier to figure out than with text chat:&lt;br /&gt;
&lt;br /&gt;
* In your Voice Chat preferences (&#039;&#039;&#039;Edit &amp;amp;gt; Preferences &amp;amp;gt; Voice Chat tab&#039;&#039;&#039;) you may choose to either &#039;&#039;&#039;Hear Voice Chat from camera position&#039;&#039;&#039;, or &#039;&#039;&#039;Hear Voice Chat from avatar position&#039;&#039;&#039;.  Because this choice determines the location of your &amp;quot;ears&amp;quot; for listening to Voice Chat, it will affect the distance from which you can hear someone speaking.&lt;br /&gt;
* You are able to hear Voice Chat up to 60 meters from your listening position.  If you have &#039;&#039;&#039;Hear Voice Chat from camera position&#039;&#039;&#039; selected, this means you can hear Voice Chat from up to 110 meters away (50 meters camera tether + 60 meters from your camera).  Under special circumstances, Linden Lab may choose to alter these distance settings on a Region-by-Region basis.&lt;br /&gt;
* In &#039;&#039;all cases&#039;&#039;, if you are able to hear another Resident, his name will appear in the &#039;&#039;&#039;Active Speakers&#039;&#039;&#039; window, which you can activate by pressing the button to the left of &#039;&#039;&#039;Talk&#039;&#039;&#039; on the toolbar at the bottom of your screen.  This holds true even if the other Resident is hiding or otherwise invisible.&lt;br /&gt;
* Group voice chat and direct calls have no distance limitations.  Group voice chat and direct peer-to-peer voice chat will always work, regardless of distance.&lt;br /&gt;
&lt;br /&gt;
For more detailed information on voice chat, see [[How to use voice]].&lt;br /&gt;
{{KBtrivia|1= Voice chat distance limits are enforced by our system in such a way that they cannot be overridden by changes to an open source Viewer.  In other words: It&#039;s impossible to use a modified Second Life Viewer to remove the hearing range limits described in this article.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Creators]]&lt;br /&gt;
[[Category:Chat and IM]]&lt;br /&gt;
[[Category:Coding Scripts]]&lt;br /&gt;
[[Category:Educators]]&lt;br /&gt;
[[Category:Second Life for Beginners]]&lt;br /&gt;
[[Category:General Avatar Information]]&lt;br /&gt;
[[Category:Business Owners]]&lt;br /&gt;
[[Category:General Second Life Software Information]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Knowledge Base]]&lt;/div&gt;</summary>
		<author><name>Ponder Song</name></author>
	</entry>
</feed>