<?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=Kizmut+Smit</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=Kizmut+Smit"/>
	<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/wiki/Special:Contributions/Kizmut_Smit"/>
	<updated>2026-07-05T13:34:38Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Pedro_Oval/Mono_code_memory_usage/CIL&amp;diff=1195975</id>
		<title>User:Pedro Oval/Mono code memory usage/CIL</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Pedro_Oval/Mono_code_memory_usage/CIL&amp;diff=1195975"/>
		<updated>2015-03-30T00:56:42Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: +cat :3&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here&#039;s the CIL code generated by the script below, which gives some insight of what&#039;s happening under the hood.&lt;br /&gt;
&lt;br /&gt;
Compilation was done using the viewer&#039;s built-in compiler as suggested by [[User:Becky Pippen/LSL Performance]]. Assembly was done using &amp;lt;code&amp;gt;ilasm&amp;lt;/code&amp;gt; from the Mono suite.&lt;br /&gt;
&lt;br /&gt;
Script that gets compiled:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lsl2&amp;quot;&amp;gt;&lt;br /&gt;
integer i;&lt;br /&gt;
u(){}&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        integer x;&lt;br /&gt;
        integer y = 0;&lt;br /&gt;
        integer z;&lt;br /&gt;
        float f;&lt;br /&gt;
        float g;&lt;br /&gt;
        vector v;&lt;br /&gt;
        list a;&lt;br /&gt;
&lt;br /&gt;
        ;;;;;;;;;{{{{{{{{}}}}}}}}&lt;br /&gt;
        return;&lt;br /&gt;
        x;&lt;br /&gt;
        (x);&lt;br /&gt;
        (integer)x;&lt;br /&gt;
        (float)x;&lt;br /&gt;
        f;&lt;br /&gt;
        (float)f;&lt;br /&gt;
        (integer)f;&lt;br /&gt;
        v;&lt;br /&gt;
        v.z;&lt;br /&gt;
        -x;&lt;br /&gt;
        ~x;&lt;br /&gt;
        !x;&lt;br /&gt;
        --x;&lt;br /&gt;
        ++x;&lt;br /&gt;
        x--;&lt;br /&gt;
        x++;&lt;br /&gt;
        x=y;&lt;br /&gt;
        x==y;&lt;br /&gt;
        x=y=z;&lt;br /&gt;
        f=x;&lt;br /&gt;
        f=(float)x;&lt;br /&gt;
        x!=y;&lt;br /&gt;
        x+y;&lt;br /&gt;
        x-y;&lt;br /&gt;
        x+-y;&lt;br /&gt;
        x*y;&lt;br /&gt;
        x/y;&lt;br /&gt;
        x%y;&lt;br /&gt;
        x&amp;amp;y;&lt;br /&gt;
        x&amp;amp;&amp;amp;y;&lt;br /&gt;
        x|y;&lt;br /&gt;
        x||y;&lt;br /&gt;
        x^y;&lt;br /&gt;
        x&amp;lt;&amp;lt;y;&lt;br /&gt;
        x&amp;gt;&amp;gt;y;&lt;br /&gt;
        x&amp;lt;y;&lt;br /&gt;
        x&amp;gt;y;&lt;br /&gt;
        x&amp;lt;=y;&lt;br /&gt;
        x&amp;gt;=y;&lt;br /&gt;
        x+=y;&lt;br /&gt;
        x-=y;&lt;br /&gt;
        x+=-y;&lt;br /&gt;
        x*=y;&lt;br /&gt;
        x/=y;&lt;br /&gt;
        x%=y;&lt;br /&gt;
        if (x) ;&lt;br /&gt;
        if (x) ; else ;&lt;br /&gt;
        0;&lt;br /&gt;
        x^x;&lt;br /&gt;
        1;&lt;br /&gt;
        -1;&lt;br /&gt;
        0xffffffff;&lt;br /&gt;
        ALL_SIDES;&lt;br /&gt;
        x|~x;&lt;br /&gt;
        x+1;&lt;br /&gt;
        -~x;&lt;br /&gt;
        x-1;&lt;br /&gt;
        x+-1;&lt;br /&gt;
        ~-x;&lt;br /&gt;
        x*y+y-1;&lt;br /&gt;
        (x+1)*y-1;&lt;br /&gt;
        ~(~x*y)&lt;br /&gt;
        while (x) ;&lt;br /&gt;
        do ; while (x);&lt;br /&gt;
        for (;x;) ;&lt;br /&gt;
        @label; if (x) jump label;&lt;br /&gt;
        0.0;&lt;br /&gt;
        f=0.0;&lt;br /&gt;
        f=0;&lt;br /&gt;
        &amp;lt;0.0, 0.0, 0.0&amp;gt;;&lt;br /&gt;
        ZERO_VECTOR;&lt;br /&gt;
        &amp;lt;0, 0, 0&amp;gt;;&lt;br /&gt;
        &amp;lt;-1.0, -1.0, 0.0&amp;gt;;&lt;br /&gt;
        TOUCH_INVALID_TEXCOORD;&lt;br /&gt;
        &amp;lt;-1, -1, 0&amp;gt;;&lt;br /&gt;
        &amp;lt;0xffffffff, 0xffffffff, 0&amp;gt;;&lt;br /&gt;
        v+v;&lt;br /&gt;
        v-v;&lt;br /&gt;
        v*v;&lt;br /&gt;
        v%v;&lt;br /&gt;
        [];&lt;br /&gt;
        a=[];&lt;br /&gt;
        a+[x];&lt;br /&gt;
        a+x;&lt;br /&gt;
        [x]+a;&lt;br /&gt;
        x+a;&lt;br /&gt;
        [x];&lt;br /&gt;
        []+x;&lt;br /&gt;
        (list)x;&lt;br /&gt;
        [x,y];&lt;br /&gt;
        []+x+y;&lt;br /&gt;
        (string)a;&lt;br /&gt;
        i;&lt;br /&gt;
        u();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compiled and annotated result:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
          .assembly extern mscorlib {.ver 1:0:5000:0}&lt;br /&gt;
          .assembly extern LslLibrary {.ver 0:1:0:0}&lt;br /&gt;
          .assembly extern LslUserScript {.ver 0:1:0:0}&lt;br /&gt;
          .assembly extern ScriptTypes {.ver 0:1:0:0}&lt;br /&gt;
          .assembly &#039;LSL_y&#039; {.ver 0:0:0:0}&lt;br /&gt;
          .class public auto ansi serializable beforefieldinit LSL_y extends [LslUserScript]LindenLab.SecondLife.LslUserScript&lt;br /&gt;
          {&lt;br /&gt;
              .field public int32 &#039;i&#039;&lt;br /&gt;
              .method public hidebysig  specialname  rtspecialname instance default void .ctor ()  cil managed&lt;br /&gt;
              {&lt;br /&gt;
                  .maxstack 500&lt;br /&gt;
&lt;br /&gt;
                  // Globals initialization&lt;br /&gt;
&lt;br /&gt;
                  // integer i;&lt;br /&gt;
02                ldarg.0&lt;br /&gt;
16                ldc.i4.0&lt;br /&gt;
7D 01 00 00 04    stfld int32 LSL_y::&#039;i&#039;&lt;br /&gt;
&lt;br /&gt;
02                ldarg.0&lt;br /&gt;
28 01 00 00 0A    call instance void [LslUserScript]LindenLab.SecondLife.LslUserScript::.ctor()&lt;br /&gt;
2A                ret&lt;br /&gt;
              }&lt;br /&gt;
              .method public hidebysig instance default void &#039;gu&#039;() cil managed&lt;br /&gt;
              {&lt;br /&gt;
                  .maxstack 500&lt;br /&gt;
2A                ret&lt;br /&gt;
              }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
              .method public hidebysig instance default void edefaultstate_entry() cil managed&lt;br /&gt;
              {&lt;br /&gt;
                  .maxstack 500&lt;br /&gt;
                  .locals init (int32, int32, int32, float32, float32, class [ScriptTypes]LindenLab.SecondLife.Vector, class [mscorlib]System.Collections.ArrayList)&lt;br /&gt;
                  // integer x;&lt;br /&gt;
16                ldc.i4.0&lt;br /&gt;
13 00             stloc.s 0&lt;br /&gt;
&lt;br /&gt;
                  // integer y = 0;&lt;br /&gt;
20 00 00 00 00    ldc.i4 0&lt;br /&gt;
13 01             stloc.s 1&lt;br /&gt;
&lt;br /&gt;
                  // integer z;&lt;br /&gt;
16                ldc.i4.0&lt;br /&gt;
13 02             stloc.s 2&lt;br /&gt;
&lt;br /&gt;
                  // float f;&lt;br /&gt;
23 00 00 00 00    ldc.r8 0&lt;br /&gt;
00 00 00 00&lt;br /&gt;
13 03             stloc.s 3&lt;br /&gt;
&lt;br /&gt;
                  // float g;&lt;br /&gt;
23 00 00 00 00    ldc.r8 0&lt;br /&gt;
00 00 00 00&lt;br /&gt;
13 04             stloc.s 4&lt;br /&gt;
&lt;br /&gt;
                  // vector v;&lt;br /&gt;
23 00 00 00 00    ldc.r8 0&lt;br /&gt;
00 00 00 00&lt;br /&gt;
23 00 00 00 00    ldc.r8 0&lt;br /&gt;
00 00 00 00&lt;br /&gt;
23 00 00 00 00    ldc.r8 0&lt;br /&gt;
00 00 00 00&lt;br /&gt;
28 02 00 00 0A    call class [ScriptTypes]LindenLab.SecondLife.Vector class [LslUserScript]LindenLab.SecondLife.LslUserScript::&#039;CreateVector&#039;(float32, float32, float32)&lt;br /&gt;
13 05             stloc.s 5&lt;br /&gt;
&lt;br /&gt;
                  // list a;&lt;br /&gt;
28 03 00 00 0A    call class [mscorlib]System.Collections.ArrayList class [LslUserScript]LindenLab.SecondLife.LslUserScript::CreateList()&lt;br /&gt;
13 06             stloc.s 6&lt;br /&gt;
&lt;br /&gt;
                  // ;;; {{{ }}} generate no code&lt;br /&gt;
&lt;br /&gt;
                  // return;&lt;br /&gt;
2A                ret&lt;br /&gt;
&lt;br /&gt;
                  // x;&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // (x);&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // (integer)x;&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // (float)x;&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
6C                conv.r8&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // f;&lt;br /&gt;
11 03             ldloc.s 3&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // (float)f;&lt;br /&gt;
11 03             ldloc.s 3&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // (integer)f;&lt;br /&gt;
11 03             ldloc.s 3&lt;br /&gt;
28 04 00 00 0A    call int32 [LslLibrary]LindenLab.SecondLife.LslRunTime::ToInteger(float32)&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // v;&lt;br /&gt;
11 05             ldloc.s 5&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // v.z;&lt;br /&gt;
12 05             ldloca.s 5&lt;br /&gt;
78 05 00 00 0A    ldfld float32 class [ScriptTypes]LindenLab.SecondLife.Vector::z&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // -x;&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
65                neg&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // ~x;&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
66                not&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // !x;&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
16                ldc.i4.0&lt;br /&gt;
FE 01             ceq&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // --x;&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
17                ldc.i4.1&lt;br /&gt;
59                sub&lt;br /&gt;
25                dup&lt;br /&gt;
13 00             stloc.s 0&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // ++x;&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
17                ldc.i4.1&lt;br /&gt;
58                add&lt;br /&gt;
25                dup&lt;br /&gt;
13 00             stloc.s 0&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // x--;&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
17                ldc.i4.1&lt;br /&gt;
59                sub&lt;br /&gt;
25                dup&lt;br /&gt;
13 00             stloc.s 0&lt;br /&gt;
26                pop&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // x++;&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
17                ldc.i4.1&lt;br /&gt;
58                add&lt;br /&gt;
25                dup&lt;br /&gt;
13 00             stloc.s 0&lt;br /&gt;
26                pop&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // x = y;&lt;br /&gt;
11 01             ldloc.s 1&lt;br /&gt;
25                dup&lt;br /&gt;
13 00             stloc.s 0&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // x == y;&lt;br /&gt;
11 01             ldloc.s 1&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
FE 01             ceq&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // x = y = z;&lt;br /&gt;
11 02             ldloc.s 2&lt;br /&gt;
25                dup&lt;br /&gt;
13 01             stloc.s 1&lt;br /&gt;
25                dup&lt;br /&gt;
13 00             stloc.s 0&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // f = x;&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
6C                conv.r8&lt;br /&gt;
25                dup&lt;br /&gt;
13 03             stloc.s 3&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // f = (float)x;&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
6C                conv.r8&lt;br /&gt;
25                dup&lt;br /&gt;
13 03             stloc.s 3&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // x != y; implemented as: !(x==y)&lt;br /&gt;
11 01             ldloc.s 1  // this part is x == y&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
FE 01             ceq&lt;br /&gt;
16                ldc.i4.0   // this part is &#039;not&#039;&lt;br /&gt;
FE 01             ceq&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // x + y;&lt;br /&gt;
11 01             ldloc.s 1&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
58                add&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // x - y;&lt;br /&gt;
11 01             ldloc.s 1&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
28 06 00 00 0A    call int32 [LslUserScript]LindenLab.SecondLife.LslUserScript::Subtract(int32, int32)&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // x + -y;&lt;br /&gt;
11 01             ldloc.s 1&lt;br /&gt;
65                neg&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
58                add&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // x * y;&lt;br /&gt;
11 01             ldloc.s 1&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
5A                mul&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // x / y;&lt;br /&gt;
11 01             ldloc.s 1&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
28 07 00 00 0A    call int32 [LslUserScript]LindenLab.SecondLife.LslUserScript::Divide(int32, int32)&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // x % y;&lt;br /&gt;
11 01             ldloc.s 1&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
28 08 00 00 0A    call int32 [LslUserScript]LindenLab.SecondLife.LslUserScript::Modulo(int32, int32)&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // x &amp;amp; y;&lt;br /&gt;
11 01             ldloc.s 1&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
5F                and&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // x &amp;amp;&amp;amp; y; implemented as: !(!x | !y)&lt;br /&gt;
11 01             ldloc.s 1    // !x&lt;br /&gt;
16                ldc.i4.0&lt;br /&gt;
FE 01             ceq&lt;br /&gt;
11 00             ldloc.s 0    // !y&lt;br /&gt;
16                ldc.i4.0&lt;br /&gt;
FE 01             ceq&lt;br /&gt;
60                or           // !x | !y&lt;br /&gt;
16                ldc.i4.0     // !(!x | !y)&lt;br /&gt;
FE 01             ceq&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // x | y;&lt;br /&gt;
11 01             ldloc.s 1&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
60                or&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // x || y; implemented as: !!(x | y)&lt;br /&gt;
11 01             ldloc.s 1    // x | y&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
60                or&lt;br /&gt;
16                ldc.i4.0     // !(x | y)&lt;br /&gt;
FE 01             ceq&lt;br /&gt;
16                ldc.i4.0     // !!(x | y)&lt;br /&gt;
FE 01             ceq&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // x ^ y;&lt;br /&gt;
11 01             ldloc.s 1&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
61                xor&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // x &amp;lt;&amp;lt; y;&lt;br /&gt;
11 01             ldloc.s 1&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
28 09 00 00 0A    call int32 [LslUserScript]LindenLab.SecondLife.LslUserScript::ShiftLeft(int32, int32)&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // x &amp;gt;&amp;gt; y;&lt;br /&gt;
11 01             ldloc.s 1&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
28 0A 00 00 0A    call int32 [LslUserScript]LindenLab.SecondLife.LslUserScript::ShiftRight(int32, int32)&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // x &amp;lt; y; implemented as: y &amp;gt; x&lt;br /&gt;
11 01             ldloc.s 1&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
FE 02             cgt&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // x &amp;gt; y; implemented as: y &amp;lt; x;&lt;br /&gt;
11 01             ldloc.s 1&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
FE 04             clt&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // x &amp;lt;= y; implemented as: !(y &amp;lt; x)&lt;br /&gt;
11 01             ldloc.s 1&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
FE 04             clt&lt;br /&gt;
16                ldc.i4.0&lt;br /&gt;
FE 01             ceq&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // x &amp;gt;= y; implemented as: !(y &amp;gt; x)&lt;br /&gt;
11 01             ldloc.s 1&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
FE 02             cgt&lt;br /&gt;
16                ldc.i4.0&lt;br /&gt;
FE 01             ceq&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // x += y;&lt;br /&gt;
11 01             ldloc.s 1&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
58                add&lt;br /&gt;
25                dup&lt;br /&gt;
13 00             stloc.s 0&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // x -= y;&lt;br /&gt;
11 01             ldloc.s 1&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
28 06 00 00 0A    call int32 [LslUserScript]LindenLab.SecondLife.LslUserScript::Subtract(int32, int32)&lt;br /&gt;
25                dup&lt;br /&gt;
13 00             stloc.s 0&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // x += -y;&lt;br /&gt;
11 01             ldloc.s 1&lt;br /&gt;
65                neg&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
58                add&lt;br /&gt;
25                dup&lt;br /&gt;
13 00             stloc.s 0&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // x *= y;&lt;br /&gt;
11 01             ldloc.s 1&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
5A                mul&lt;br /&gt;
25                dup&lt;br /&gt;
13 00             stloc.s 0&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // x /= y;&lt;br /&gt;
11 01             ldloc.s 1&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
28 07 00 00 0A    call int32 [LslUserScript]LindenLab.SecondLife.LslUserScript::Divide(int32, int32)&lt;br /&gt;
25                dup&lt;br /&gt;
13 00             stloc.s 0&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // x %= y;&lt;br /&gt;
11 01             ldloc.s 1&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
28 08 00 00 0A    call int32 [LslUserScript]LindenLab.SecondLife.LslUserScript::Modulo(int32, int32)&lt;br /&gt;
25                dup&lt;br /&gt;
13 00             stloc.s 0&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // if (x) ;&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
39 00 00 00 00    brfalse LabelTempJump0&lt;br /&gt;
                  // THEN branch code goes here&lt;br /&gt;
              LabelTempJump0:&lt;br /&gt;
&lt;br /&gt;
                  // if (x) ; else ;&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
39 05 00 00 00    brfalse LabelTempJump1&lt;br /&gt;
                  // THEN branch code would go here&lt;br /&gt;
38 00 00 00 00    br LabelTempJump2&lt;br /&gt;
                  // ELSE branch code would go here&lt;br /&gt;
              LabelTempJump1:&lt;br /&gt;
              LabelTempJump2:&lt;br /&gt;
&lt;br /&gt;
                  // 0;&lt;br /&gt;
20 00 00 00 00    ldc.i4 0&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // x ^ x;&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
61                xor&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // 1;&lt;br /&gt;
20 01 00 00 00    ldc.i4 1&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // -1; note the negative sign takes code memory&lt;br /&gt;
20 01 00 00 00    ldc.i4 1&lt;br /&gt;
65                neg&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // 0xffffffff; note it equals -1 without the sign taking memory&lt;br /&gt;
20 FF FF FF FF    ldc.i4 -1&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // ALL_SIDES; ditto&lt;br /&gt;
20 FF FF FF FF    ldc.i4 -1&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // x | ~x;&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
66                not&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
60                or&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // x + 1;&lt;br /&gt;
20 01 00 00 00    ldc.i4 1&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
58                add&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // -~x;&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
66                not&lt;br /&gt;
65                neg&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // x - 1;&lt;br /&gt;
20 01 00 00 00    ldc.i4 1&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
28 06 00 00 0A    call int32 [LslUserScript]LindenLab.SecondLife.LslUserScript::Subtract(int32, int32)&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // x + -1;&lt;br /&gt;
20 01 00 00 00    ldc.i4 1&lt;br /&gt;
65                neg&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
58                add&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // ~-x;&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
65                neg&lt;br /&gt;
66                not&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // x*y + y - 1;&lt;br /&gt;
20 01 00 00 00    ldc.i4 1&lt;br /&gt;
11 01             ldloc.s 1&lt;br /&gt;
11 01             ldloc.s 1&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
5A                mul&lt;br /&gt;
58                add&lt;br /&gt;
28 06 00 00 0A    call int32 [LslUserScript]LindenLab.SecondLife.LslUserScript::Subtract(int32, int32)&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // (x + 1)*y - 1;&lt;br /&gt;
20 01 00 00 00    ldc.i4 1&lt;br /&gt;
11 01             ldloc.s 1&lt;br /&gt;
20 01 00 00 00    ldc.i4 1&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
58                add&lt;br /&gt;
5A                mul&lt;br /&gt;
28 06 00 00 0A    call int32 [LslUserScript]LindenLab.SecondLife.LslUserScript::Subtract(int32, int32)&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // ~(~x*y);&lt;br /&gt;
11 01             ldloc.s 1&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
66                not&lt;br /&gt;
5A                mul&lt;br /&gt;
66                not&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // while (x) ;&lt;br /&gt;
              LabelTempJump3:&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
39 05 00 00 00    brfalse LabelTempJump4&lt;br /&gt;
                  // Looped code would go here&lt;br /&gt;
38 F4 FF FF FF    br LabelTempJump3&lt;br /&gt;
              LabelTempJump4:&lt;br /&gt;
&lt;br /&gt;
                  // do ; while (x);&lt;br /&gt;
              LabelTempJump5:&lt;br /&gt;
                  // Looped code would go here&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
3A F9 FF FF FF    brtrue LabelTempJump5&lt;br /&gt;
&lt;br /&gt;
                  // for (; x; ) ;&lt;br /&gt;
              LabelTempJump6:&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
39 05 00 00 00    brfalse LabelTempJump7&lt;br /&gt;
                  // Looped code would go here&lt;br /&gt;
38 F4 FF FF FF    br LabelTempJump6&lt;br /&gt;
              LabelTempJump7:&lt;br /&gt;
&lt;br /&gt;
                  // @label; if (x) jump label;&lt;br /&gt;
              &#039;label&#039;:&lt;br /&gt;
                  // Looped code would go here&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
39 05 00 00 00    brfalse LabelTempJump8&lt;br /&gt;
38 F4 FF FF FF    br &#039;label&#039;&lt;br /&gt;
              LabelTempJump8:&lt;br /&gt;
&lt;br /&gt;
                  // 0.0;&lt;br /&gt;
23 00 00 00 00    ldc.r8 (00 00 00 00 00 00 00 00)&lt;br /&gt;
00 00 00 00&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // f = 0.0;&lt;br /&gt;
23 00 00 00 00    ldc.r8 (00 00 00 00 00 00 00 00)&lt;br /&gt;
00 00 00 00&lt;br /&gt;
25                dup&lt;br /&gt;
13 03             stloc.s 3&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // f = 0;&lt;br /&gt;
20 00 00 00 00    ldc.i4 0&lt;br /&gt;
6C                conv.r8&lt;br /&gt;
25                dup&lt;br /&gt;
13 03             stloc.s 3&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // &amp;lt;0.0, 0.0, 0.0&amp;gt;;&lt;br /&gt;
23 00 00 00 00    ldc.r8 (00 00 00 00 00 00 00 00)&lt;br /&gt;
00 00 00 00&lt;br /&gt;
23 00 00 00 00    ldc.r8 (00 00 00 00 00 00 00 00)&lt;br /&gt;
00 00 00 00&lt;br /&gt;
23 00 00 00 00    ldc.r8 (00 00 00 00 00 00 00 00)&lt;br /&gt;
00 00 00 00&lt;br /&gt;
28 02 00 00 0A    call class [ScriptTypes]LindenLab.SecondLife.Vector class [LslUserScript]LindenLab.SecondLife.LslUserScript::&#039;CreateVector&#039;(float32, float32, float32)&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // ZERO_VECTOR;&lt;br /&gt;
23 00 00 00 00    ldc.r8 (00 00 00 00 00 00 00 00)&lt;br /&gt;
00 00 00 00&lt;br /&gt;
23 00 00 00 00    ldc.r8 (00 00 00 00 00 00 00 00)&lt;br /&gt;
00 00 00 00&lt;br /&gt;
23 00 00 00 00    ldc.r8 (00 00 00 00 00 00 00 00)&lt;br /&gt;
00 00 00 00&lt;br /&gt;
28 02 00 00 0A    call class [ScriptTypes]LindenLab.SecondLife.Vector class [LslUserScript]LindenLab.SecondLife.LslUserScript::&#039;CreateVector&#039;(float32, float32, float32)&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // &amp;lt;0, 0, 0&amp;gt;;&lt;br /&gt;
20 00 00 00 00    ldc.i4 0&lt;br /&gt;
6C                conv.r8&lt;br /&gt;
20 00 00 00 00    ldc.i4 0&lt;br /&gt;
6C                conv.r8&lt;br /&gt;
20 00 00 00 00    ldc.i4 0&lt;br /&gt;
6C                conv.r8&lt;br /&gt;
28 02 00 00 0A    call class [ScriptTypes]LindenLab.SecondLife.Vector class [LslUserScript]LindenLab.SecondLife.LslUserScript::&#039;CreateVector&#039;(float32, float32, float32)&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // &amp;lt;-1.0, -1.0, 0.0&amp;gt;;&lt;br /&gt;
23 00 00 00 00    ldc.r8 (00 00 00 00 00 00 f0 3f)&lt;br /&gt;
00 00 F0 3F&lt;br /&gt;
65                neg&lt;br /&gt;
23 00 00 00 00    ldc.r8 (00 00 00 00 00 00 f0 3f)&lt;br /&gt;
00 00 F0 3F&lt;br /&gt;
65                neg&lt;br /&gt;
23 00 00 00 00    ldc.r8 (00 00 00 00 00 00 00 00)&lt;br /&gt;
00 00 00 00&lt;br /&gt;
28 02 00 00 0A    call class [ScriptTypes]LindenLab.SecondLife.Vector class [LslUserScript]LindenLab.SecondLife.LslUserScript::&#039;CreateVector&#039;(float32, float32, float32)&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // TOUCH_INVALID_TEXCOORD;&lt;br /&gt;
23 00 00 00 00    ldc.r8 (00 00 00 00 00 00 f0 bf)&lt;br /&gt;
00 00 F0 BF&lt;br /&gt;
23 00 00 00 00    ldc.r8 (00 00 00 00 00 00 f0 bf)&lt;br /&gt;
00 00 F0 BF&lt;br /&gt;
23 00 00 00 00    ldc.r8 (00 00 00 00 00 00 00 00)&lt;br /&gt;
00 00 00 00&lt;br /&gt;
28 02 00 00 0A    call class [ScriptTypes]LindenLab.SecondLife.Vector class [LslUserScript]LindenLab.SecondLife.LslUserScript::&#039;CreateVector&#039;(float32, float32, float32)&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // &amp;lt;-1, -1, 0&amp;gt;;&lt;br /&gt;
20 01 00 00 00    ldc.i4 1&lt;br /&gt;
65                neg&lt;br /&gt;
6C                conv.r8&lt;br /&gt;
20 01 00 00 00    ldc.i4 1&lt;br /&gt;
65                neg&lt;br /&gt;
6C                conv.r8&lt;br /&gt;
20 00 00 00 00    ldc.i4 0&lt;br /&gt;
6C                conv.r8&lt;br /&gt;
28 02 00 00 0A    call class [ScriptTypes]LindenLab.SecondLife.Vector class [LslUserScript]LindenLab.SecondLife.LslUserScript::&#039;CreateVector&#039;(float32, float32, float32)&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // &amp;lt;0xffffffff, 0xffffffff, 0&amp;gt;;&lt;br /&gt;
20 FF FF FF FF    ldc.i4 -1&lt;br /&gt;
6C                conv.r8&lt;br /&gt;
20 FF FF FF FF    ldc.i4 -1&lt;br /&gt;
6C                conv.r8&lt;br /&gt;
20 00 00 00 00    ldc.i4 0&lt;br /&gt;
6C                conv.r8&lt;br /&gt;
28 02 00 00 0A    call class [ScriptTypes]LindenLab.SecondLife.Vector class [LslUserScript]LindenLab.SecondLife.LslUserScript::&#039;CreateVector&#039;(float32, float32, float32)&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // v + v;&lt;br /&gt;
11 05             ldloc.s 5&lt;br /&gt;
11 05             ldloc.s 5&lt;br /&gt;
28 0B 00 00 0A    call class [ScriptTypes]LindenLab.SecondLife.Vector class [LslUserScript]LindenLab.SecondLife.LslUserScript::&#039;Add&#039;(class [ScriptTypes]LindenLab.SecondLife.Vector, class [ScriptTypes]LindenLab.SecondLife.Vector)&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // v - v;&lt;br /&gt;
11 05             ldloc.s 5&lt;br /&gt;
11 05             ldloc.s 5&lt;br /&gt;
28 0C 00 00 0A    call class [ScriptTypes]LindenLab.SecondLife.Vector class [LslUserScript]LindenLab.SecondLife.LslUserScript::&#039;Subtract&#039;(class [ScriptTypes]LindenLab.SecondLife.Vector, class [ScriptTypes]LindenLab.SecondLife.Vector)&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // v * v;&lt;br /&gt;
11 05             ldloc.s 5&lt;br /&gt;
11 05             ldloc.s 5&lt;br /&gt;
28 0D 00 00 0A    call float32 class [LslUserScript]LindenLab.SecondLife.LslUserScript::&#039;Multiply&#039;(class [ScriptTypes]LindenLab.SecondLife.Vector, class [ScriptTypes]LindenLab.SecondLife.Vector)&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // v % v;&lt;br /&gt;
11 05             ldloc.s 5&lt;br /&gt;
11 05             ldloc.s 5&lt;br /&gt;
28 0E 00 00 0A    call class [ScriptTypes]LindenLab.SecondLife.Vector class [LslUserScript]LindenLab.SecondLife.LslUserScript::&#039;Modulo&#039;(class [ScriptTypes]LindenLab.SecondLife.Vector, class [ScriptTypes]LindenLab.SecondLife.Vector)&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // [];&lt;br /&gt;
28 03 00 00 0A    call class [mscorlib]System.Collections.ArrayList class [LslUserScript]LindenLab.SecondLife.LslUserScript::CreateList()&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // a = [];&lt;br /&gt;
28 03 00 00 0A    call class [mscorlib]System.Collections.ArrayList class [LslUserScript]LindenLab.SecondLife.LslUserScript::CreateList()&lt;br /&gt;
25                dup&lt;br /&gt;
13 06             stloc.s 6&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // a + [x];&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
8C 01 00 00 1B    box [mscorlib]System.Int32&lt;br /&gt;
28 03 00 00 0A    call class [mscorlib]System.Collections.ArrayList class [LslUserScript]LindenLab.SecondLife.LslUserScript::CreateList()&lt;br /&gt;
28 0F 00 00 0A    call class [mscorlib]System.Collections.ArrayList class [LslUserScript]LindenLab.SecondLife.LslUserScript::Prepend(object, class [mscorlib]System.Collections.ArrayList)&lt;br /&gt;
11 06             ldloc.s 6&lt;br /&gt;
28 10 00 00 0A    call class [mscorlib]System.Collections.ArrayList class [LslUserScript]LindenLab.SecondLife.LslUserScript::Append(class [mscorlib]System.Collections.ArrayList, class [mscorlib]System.Collections.ArrayList)&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // a + x;&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
11 06             ldloc.s 6&lt;br /&gt;
28 11 00 00 0A    call class [mscorlib]System.Collections.ArrayList class [LslUserScript]LindenLab.SecondLife.LslUserScript::Append(int32, class [mscorlib]System.Collections.ArrayList)&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // [x] + a;&lt;br /&gt;
11 06             ldloc.s 6&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
8C 01 00 00 1B    box [mscorlib]System.Int32&lt;br /&gt;
28 03 00 00 0A    call class [mscorlib]System.Collections.ArrayList class [LslUserScript]LindenLab.SecondLife.LslUserScript::CreateList()&lt;br /&gt;
28 0F 00 00 0A    call class [mscorlib]System.Collections.ArrayList class [LslUserScript]LindenLab.SecondLife.LslUserScript::Prepend(object, class [mscorlib]System.Collections.ArrayList)&lt;br /&gt;
28 10 00 00 0A    call class [mscorlib]System.Collections.ArrayList class [LslUserScript]LindenLab.SecondLife.LslUserScript::Append(class [mscorlib]System.Collections.ArrayList, class [mscorlib]System.Collections.ArrayList)&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // x + a;&lt;br /&gt;
11 06             ldloc.s 6&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
8C 01 00 00 1B    box [mscorlib]System.Int32&lt;br /&gt;
28 12 00 00 0A    call class [mscorlib]System.Collections.ArrayList class [LslUserScript]LindenLab.SecondLife.LslUserScript::Prepend(class [mscorlib]System.Collections.ArrayList, object)&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // [x];&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
8C 01 00 00 1B    box [mscorlib]System.Int32&lt;br /&gt;
28 03 00 00 0A    call class [mscorlib]System.Collections.ArrayList class [LslUserScript]LindenLab.SecondLife.LslUserScript::CreateList()&lt;br /&gt;
28 0F 00 00 0A    call class [mscorlib]System.Collections.ArrayList class [LslUserScript]LindenLab.SecondLife.LslUserScript::Prepend(object, class [mscorlib]System.Collections.ArrayList)&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // []+x;&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
28 03 00 00 0A    call class [mscorlib]System.Collections.ArrayList class [LslUserScript]LindenLab.SecondLife.LslUserScript::CreateList()&lt;br /&gt;
28 11 00 00 0A    call class [mscorlib]System.Collections.ArrayList class [LslUserScript]LindenLab.SecondLife.LslUserScript::Append(int32, class [mscorlib]System.Collections.ArrayList)&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // (list)x;&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
8C 01 00 00 1B    box [mscorlib]System.Int32&lt;br /&gt;
28 13 00 00 0A    call class [mscorlib]System.Collections.ArrayList class [LslUserScript]LindenLab.SecondLife.LslUserScript::CreateList(object)&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // [x, y];&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
8C 01 00 00 1B    box [mscorlib]System.Int32&lt;br /&gt;
11 01             ldloc.s 1&lt;br /&gt;
8C 01 00 00 1B    box [mscorlib]System.Int32&lt;br /&gt;
28 03 00 00 0A    call class [mscorlib]System.Collections.ArrayList class [LslUserScript]LindenLab.SecondLife.LslUserScript::CreateList()&lt;br /&gt;
28 0F 00 00 0A    call class [mscorlib]System.Collections.ArrayList class [LslUserScript]LindenLab.SecondLife.LslUserScript::Prepend(object, class [mscorlib]System.Collections.ArrayList)&lt;br /&gt;
28 0F 00 00 0A    call class [mscorlib]System.Collections.ArrayList class [LslUserScript]LindenLab.SecondLife.LslUserScript::Prepend(object, class [mscorlib]System.Collections.ArrayList)&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // []+x+y;&lt;br /&gt;
11 01             ldloc.s 1&lt;br /&gt;
11 00             ldloc.s 0&lt;br /&gt;
28 03 00 00 0A    call class [mscorlib]System.Collections.ArrayList class [LslUserScript]LindenLab.SecondLife.LslUserScript::CreateList()&lt;br /&gt;
28 11 00 00 0A    call class [mscorlib]System.Collections.ArrayList class [LslUserScript]LindenLab.SecondLife.LslUserScript::Append(int32, class [mscorlib]System.Collections.ArrayList)&lt;br /&gt;
28 11 00 00 0A    call class [mscorlib]System.Collections.ArrayList class [LslUserScript]LindenLab.SecondLife.LslUserScript::Append(int32, class [mscorlib]System.Collections.ArrayList)&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // (string)a;&lt;br /&gt;
11 06             ldloc.s 6&lt;br /&gt;
28 14 00 00 0A    call string [LslLibrary]LindenLab.SecondLife.LslRunTime::ListToString(class [mscorlib]System.Collections.ArrayList)&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // i;&lt;br /&gt;
02                ldarg.0&lt;br /&gt;
7B 01 00 00 04    ldfld int32 LSL_y::&#039;i&#039;&lt;br /&gt;
26                pop&lt;br /&gt;
&lt;br /&gt;
                  // u();&lt;br /&gt;
02                ldarg.0&lt;br /&gt;
28 02 00 00 06    call instance void class LSL_y::&#039;gu&#039;()&lt;br /&gt;
&lt;br /&gt;
                  // end of event&lt;br /&gt;
2A                ret&lt;br /&gt;
              }&lt;br /&gt;
&lt;br /&gt;
          }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Important notes: =====&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;ldloc.s 0&amp;lt;/code&amp;gt; (opcode 11, argument 00) is probably contracted to the abbreviation &amp;lt;code&amp;gt;ldloc.0&amp;lt;/code&amp;gt; (opcode 06) at assembly time, resulting in the length of 2 obtained in the [[User:Pedro Oval/Mono code memory usage|memory usage tests]]. Or possibly the server-side compiler added an optimization of this case (!). Either way, the evidence for this is confirmed by the fact that &amp;lt;code&amp;gt;x;&amp;lt;/code&amp;gt; takes 2 bytes if it&#039;s one of the first four local variables (there are 1-byte opcodes for ldloc.0 through ldloc.3), and 3 bytes otherwise. This applies to all appearances of this opcode and the similar &amp;lt;code&amp;gt;stloc.s&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Local variable definitions seem to take a variable and big number of bytes (averaging about 47 bytes for local integers) if there is a function call anywhere in the event in which they are defined. Reason unknown.&lt;br /&gt;
* Backward jumps seem to take many more bytes than what the CIL result above suggests. Forward jumps, however, seem predictable enough.&lt;br /&gt;
* As things are now, having more than 256 local variables in a single function or event causes wraparound, making the 257th be an alias to the 1st, and so on. If they aren&#039;t the same type, the script crashes at runtime with an uncaught exception. That&#039;s a consequence of using &amp;lt;code&amp;gt;ldloc.s&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;stloc.s&amp;lt;/code&amp;gt; without switching to the long version (&amp;lt;code&amp;gt;ldloc&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;stloc&amp;lt;/code&amp;gt;) when the argument is greater than 255.&lt;br /&gt;
&lt;br /&gt;
===== Additional memory usage notes: =====&lt;br /&gt;
* Global variable, function, and function parameter names do take code memory from the script (as part of some symbol table). Fortunately they take 1 byte per character only, as opposed to Mono strings, which take at least 2 bytes per character (they are UTF-16). That extra code is only taken once per variable, regardless of how many times it is used.&lt;br /&gt;
* In addition to the state code and state change command code, the state names themselves take code memory from the script, as follows:&lt;br /&gt;
** The state name by itself takes no code memory, but internally, each event name includes the state name. The internal name for the event is e.g. &amp;lt;code&amp;gt;edefaultstate_entry&amp;lt;/code&amp;gt; (for state &amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt;, event &amp;lt;code&amp;gt;state_entry&amp;lt;/code&amp;gt;), &amp;lt;code&amp;gt;eblahtimer&amp;lt;/code&amp;gt; (for state blah, event &amp;lt;code&amp;gt;timer&amp;lt;/code&amp;gt;). These names take 1 byte per character.&lt;br /&gt;
** If a state switch statement appears in the code, the state name takes additionally 2 bytes per character. (But these strings are reused, so multiple state switch statements don&#039;t take additional space for the strings.)&lt;br /&gt;
&lt;br /&gt;
Although not mentioned above, every single-byte string needs an additional terminating zero byte, and every UTF-16 string needs an additional length prefix byte (or more if longer than 127 bytes, i.e. 63 characters if in the ASCII range) plus an additional terminating zero byte.&lt;br /&gt;
&lt;br /&gt;
{{Resource Conservation Portal Nav|cat=memory}}&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Template:LSL_Function/ParticleSystem&amp;diff=1191100</id>
		<title>Template:LSL Function/ParticleSystem</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Template:LSL_Function/ParticleSystem&amp;diff=1191100"/>
		<updated>2014-06-01T05:07:48Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: glBlendFunc URL update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#if:&lt;br /&gt;
&lt;br /&gt;
{{LSL Signature/Add|&lt;br /&gt;
{{LSL Const/Signature|PSYS_PART_FLAGS|integer|0}}&lt;br /&gt;
{{LSL Const/Signature|PSYS_PART_BOUNCE_MASK|integer|hex=0x004|4}}&lt;br /&gt;
{{LSL Const/Signature|PSYS_PART_EMISSIVE_MASK|integer|hex=0x100|256}}&lt;br /&gt;
{{LSL Const/Signature|PSYS_PART_FOLLOW_SRC_MASK|integer|hex=0x010|16}}&lt;br /&gt;
{{LSL Const/Signature|PSYS_PART_FOLLOW_VELOCITY_MASK|integer|hex=0x020|32}}&lt;br /&gt;
{{LSL Const/Signature|PSYS_PART_INTERP_COLOR_MASK|integer|hex=0x001|1}}&lt;br /&gt;
{{LSL Const/Signature|PSYS_PART_INTERP_SCALE_MASK|integer|hex=0x002|2}}&lt;br /&gt;
{{LSL Const/Signature|PSYS_PART_RIBBON_MASK|integer|hex=0x400|1024}}&lt;br /&gt;
{{LSL Const/Signature|PSYS_PART_TARGET_LINEAR_MASK|integer|hex=0x080|128}}&lt;br /&gt;
{{LSL Const/Signature|PSYS_PART_TARGET_POS_MASK|integer|hex=0x040|64}}&lt;br /&gt;
{{LSL Const/Signature|PSYS_PART_WIND_MASK|integer|hex=0x008|8}}&lt;br /&gt;
{{LSL Const/Signature|PSYS_SRC_PATTERN|integer|9}}&lt;br /&gt;
{{LSL Const/Signature|PSYS_SRC_PATTERN_EXPLODE|integer|hex=0x02|2}}&lt;br /&gt;
{{LSL Const/Signature|PSYS_SRC_PATTERN_ANGLE_CONE|integer|hex=0x08|8}}  &lt;br /&gt;
{{LSL Const/Signature|PSYS_SRC_PATTERN_ANGLE|integer|hex=0x04|4}}&lt;br /&gt;
{{LSL Const/Signature|PSYS_SRC_PATTERN_DROP|integer|hex=0x01|1}}&lt;br /&gt;
{{LSL Const/Signature|PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY|integer|hex=0x10|16}}&lt;br /&gt;
{{LSL Const/Signature|PSYS_SRC_BURST_RADIUS|integer|16}}&lt;br /&gt;
{{LSL Const/Signature|PSYS_SRC_ANGLE_BEGIN|integer|22}}&lt;br /&gt;
{{LSL Const/Signature|PSYS_SRC_ANGLE_END|integer|23}}&lt;br /&gt;
{{LSL Const/Signature|PSYS_SRC_INNERANGLE|integer|10|c=deprecated}}&lt;br /&gt;
{{LSL Const/Signature|PSYS_SRC_OUTERANGLE|integer|11|c=deprecated}}&lt;br /&gt;
{{LSL Const/Signature|PSYS_SRC_TARGET_KEY|integer|20}}&lt;br /&gt;
{{LSL Const/Signature|PSYS_PART_START_COLOR|integer|1}}&lt;br /&gt;
{{LSL Const/Signature|PSYS_PART_END_COLOR|integer|3}}&lt;br /&gt;
{{LSL Const/Signature|PSYS_PART_START_ALPHA|integer|2}}&lt;br /&gt;
{{LSL Const/Signature|PSYS_PART_END_ALPHA|integer|4}}&lt;br /&gt;
{{LSL Const/Signature|PSYS_PART_START_SCALE|integer|5}}&lt;br /&gt;
{{LSL Const/Signature|PSYS_PART_END_SCALE|integer|6}}&lt;br /&gt;
{{LSL Const/Signature|PSYS_SRC_TEXTURE|integer|12}}&lt;br /&gt;
{{LSL Const/Signature|PSYS_PART_START_GLOW|integer|26}}&lt;br /&gt;
{{LSL Const/Signature|PSYS_PART_END_GLOW|integer|27}}&lt;br /&gt;
{{LSL Const/Signature|PSYS_SRC_MAX_AGE|integer|19}}&lt;br /&gt;
{{LSL Const/Signature|PSYS_PART_MAX_AGE|integer|7}}&lt;br /&gt;
{{LSL Const/Signature|PSYS_SRC_BURST_RATE|integer|13}}&lt;br /&gt;
{{LSL Const/Signature|PSYS_SRC_BURST_PART_COUNT|integer|15}}&lt;br /&gt;
{{LSL Const/Signature|PSYS_SRC_ACCEL|integer|8}}&lt;br /&gt;
{{LSL Const/Signature|PSYS_SRC_OMEGA|integer|21}}&lt;br /&gt;
{{LSL Const/Signature|PSYS_SRC_BURST_SPEED_MIN|integer|17}}&lt;br /&gt;
{{LSL Const/Signature|PSYS_SRC_BURST_SPEED_MAX|integer|18}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{#vardefine:self|*}}&lt;br /&gt;
{{#vardefine:moded|stp}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{#vardefine:header|{{#var:header}}{{LSLC|Effects}}{{LSLC|Light}}{{LSLC|Particles}}{{LSLC|Prim}}{{LSLC|Stop}}}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{LSL Function/color}}&lt;br /&gt;
{{LSL Function/alpha}}&lt;br /&gt;
&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
===constants_nb===&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;{{#if:&lt;br /&gt;
{{#vardefine:constants_nb|{{#var:constants_nb}}&lt;br /&gt;
{{{!}} {{prettytable|style=margin-top:0; margin-right:0;}}&lt;br /&gt;
{{!}}-{{Hl2}}&lt;br /&gt;
{{!!}} &lt;br /&gt;
{{!!}} Rule / Value Constant&lt;br /&gt;
{{!!}} Rule Parameter&lt;br /&gt;
{{!!}} Description&lt;br /&gt;
{{!!}} Value&lt;br /&gt;
{{!}}- style=&amp;quot;background-color:#ccffcc;&amp;quot; id=&amp;quot;{{anchorencode:System Behavior}}&amp;quot;&lt;br /&gt;
{{!}} colspan=&amp;quot;5&amp;quot; align=&amp;quot;left&amp;quot;{{!}}&#039;&#039;&#039;System Behavior&#039;&#039;&#039;&lt;br /&gt;
{{!}}- id=&amp;quot;PSYS_PART_FLAGS&amp;quot;&lt;br /&gt;
{{!}}colspan=&amp;quot;2&amp;quot;{{!}}PSYS_PART_FLAGS&lt;br /&gt;
{{!!}}[[integer]] {{LSL Param|flags}}&lt;br /&gt;
{{!!}}Various flags controlling the behavior of the particle system. The value may be specified as an integer in decimal or [[hexadecimal|hex]] format, or by ORing together (using the &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; operator) one or more of the following flag constants:&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}0&lt;br /&gt;
{{!}}- style=&amp;quot;background-color:#e0e0e0;&amp;quot; id=&amp;quot;PSYS_PART_BOUNCE_MASK&amp;quot;&lt;br /&gt;
{{!}}rowspan=&amp;quot;13&amp;quot; style=&amp;quot;background-color:#c0c0c0;&amp;quot; align=&amp;quot;center&amp;quot; valign=&amp;quot;center&amp;quot;{{!}}&#039;&#039;&#039;V&amp;lt;br /&amp;gt;a&amp;lt;br /&amp;gt;l&amp;lt;br /&amp;gt;u&amp;lt;br /&amp;gt;e&amp;lt;br /&amp;gt;s&#039;&#039;&#039;&lt;br /&gt;
{{!}}colspan=&amp;quot;2&amp;quot;{{!}}PSYS_PART_BOUNCE_MASK&lt;br /&gt;
{{!!}}When set, specifies particles will bounce off a plane at the [[Viewer coordinate frames#Region|region]] Z height of the emitter. On &amp;quot;bounce&amp;quot;, each particle reverses velocity and angle. This only works for particles above the plane falling down on it.&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}{{LSL_Hex|0x004|4}}&lt;br /&gt;
{{!}}- style=&amp;quot;background-color:#e0e0e0;&amp;quot; id=&amp;quot;PSYS_PART_EMISSIVE_MASK&amp;quot;&lt;br /&gt;
{{!}} colspan=&amp;quot;2&amp;quot;{{!}}PSYS_PART_EMISSIVE_MASK&lt;br /&gt;
{{!!}}When set, particles are full-bright and are unaffected by global lighting (sunlight). Otherwise, particles will be lit depending on the current global lighting conditions. Note that point lights &#039;&#039;&#039;do&#039;&#039;&#039; illuminate non-emissive particles.&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}{{LSL_Hex|0x100|256}}&lt;br /&gt;
{{!}}- style=&amp;quot;background-color:#e0e0e0;&amp;quot; id=&amp;quot;PSYS_PART_FOLLOW_SRC_MASK&amp;quot;&lt;br /&gt;
{{!}} colspan=&amp;quot;2&amp;quot;{{!}}PSYS_PART_FOLLOW_SRC_MASK&lt;br /&gt;
{{!!}}When set, particles move relative to the position of the emitter. Otherwise, particle position and movement are unaffected by the position/movement of the emitter. This flag disables the PSYS_SRC_BURST_RADIUS rule.&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}{{LSL_Hex|0x010|16}}&lt;br /&gt;
{{!}}- style=&amp;quot;background-color:#e0e0e0;&amp;quot; id=&amp;quot;PSYS_PART_FOLLOW_VELOCITY_MASK&amp;quot;&lt;br /&gt;
{{!}} colspan=&amp;quot;2&amp;quot;{{!}}PSYS_PART_FOLLOW_VELOCITY_MASK&lt;br /&gt;
{{!!}}When set, particles rotate to orient their &amp;quot;top&amp;quot; towards the direction of movement or emission. Otherwise, particles are oriented vertically as their textures would appear (top of texture at top, left at left).&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}{{LSL_Hex|0x020|32}}&lt;br /&gt;
{{!}}- style=&amp;quot;background-color:#e0e0e0;&amp;quot; id=&amp;quot;PSYS_PART_INTERP_COLOR_MASK&amp;quot;&lt;br /&gt;
{{!}} colspan=&amp;quot;2&amp;quot;{{!}}PSYS_PART_INTERP_COLOR_MASK&lt;br /&gt;
{{!!}}When set, particle color and alpha transition from their START settings to their END settings during the particle&#039;s lifetime. The transition is a smooth interpolation.&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}{{LSL_Hex|0x001|1}}&lt;br /&gt;
{{!}}- style=&amp;quot;background-color:#e0e0e0;&amp;quot; id=&amp;quot;PSYS_PART_INTERP_SCALE_MASK&amp;quot;&lt;br /&gt;
{{!}} colspan=&amp;quot;2&amp;quot;{{!}}PSYS_PART_INTERP_SCALE_MASK&lt;br /&gt;
{{!!}}When set, particle size/scale transitions from its START setting to its END setting during the particle&#039;s lifetime.&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}{{LSL_Hex|0x002|2}}&lt;br /&gt;
{{!}}- style=&amp;quot;background-color:#e0e0e0;&amp;quot; id=&amp;quot;PSYS_PART_RIBBON_MASK&amp;quot;&lt;br /&gt;
{{!}} colspan=&amp;quot;2&amp;quot;{{!}}PSYS_PART_RIBBON_MASK&lt;br /&gt;
{{!!}}When set, particles are joined together into one continuous triangle strip&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}{{LSL_Hex|0x400|1024}}&lt;br /&gt;
{{!}}- style=&amp;quot;background-color:#e0e0e0;&amp;quot; id=&amp;quot;PSYS_PART_TARGET_LINEAR_MASK&amp;quot;&lt;br /&gt;
{{!}} colspan=&amp;quot;2&amp;quot;{{!}}PSYS_PART_TARGET_LINEAR_MASK&lt;br /&gt;
{{!!}} When set, emitted particles move in a straight line towards the target specified by the PSYS_SRC_TARGET_KEY rule. In this mode, PSYS_SRC_ACCEL, PSYS_SRC_BURST_RADIUS, and possibly other rules are ignored.&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}{{LSL_Hex|0x080|128}}&lt;br /&gt;
{{!}}- style=&amp;quot;background-color:#e0e0e0;&amp;quot; id=&amp;quot;PSYS_PART_TARGET_POS_MASK&amp;quot;&lt;br /&gt;
{{!}} colspan=&amp;quot;2&amp;quot;{{!}}PSYS_PART_TARGET_POS_MASK&lt;br /&gt;
{{!!}}When set, emitted particles change course during their lifetime, attempting to move towards the target specified by the PSYS_SRC_TARGET_KEY rule by the time they expire. Note that if no target is specified, the target moves out of range, or an invalid target is specified, the particles target the prim itself.&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}{{LSL_Hex|0x040|64}}&lt;br /&gt;
{{!}}- style=&amp;quot;background-color:#e0e0e0;&amp;quot; id=&amp;quot;PSYS_PART_WIND_MASK&amp;quot;&lt;br /&gt;
{{!}} colspan=&amp;quot;2&amp;quot;{{!}}PSYS_PART_WIND_MASK&lt;br /&gt;
{{!!}}When set, particle movement is affected by the [[llWind|wind]]. It is applied as a secondary force on the particles.&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}{{LSL_Hex|0x008|8}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
&lt;br /&gt;
{{!}}- style=&amp;quot;background-color:#e0e0e0;&amp;quot; id=&amp;quot;PSYS_PART_BEAM_MASK&amp;quot;&lt;br /&gt;
{{!}} colspan=&amp;quot;2&amp;quot;{{!}}&amp;lt;s&amp;gt;PSYS_PART_BEAM_MASK&amp;lt;/s&amp;gt;&lt;br /&gt;
{{!!}}(&#039;&#039;unimplemented&#039;&#039;) mask but in the enum &lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}{{LSL_Hex|0x200|}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
&lt;br /&gt;
{{!}}- style=&amp;quot;background-color:#e0e0e0;&amp;quot; id=&amp;quot;LL_PART_HUD&amp;quot;&lt;br /&gt;
{{!}} colspan=&amp;quot;2&amp;quot;{{!}}&amp;lt;s&amp;gt;LL_PART_HUD&amp;lt;/s&amp;gt;&lt;br /&gt;
{{!!}}Used by the viewer to keep HUD and World particle sources separate.&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}{{LSL_Hex|0x40000000|}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
&lt;br /&gt;
{{!}}- style=&amp;quot;background-color:#e0e0e0;&amp;quot; id=&amp;quot;LL_PART_DEAD_MASK&amp;quot;&lt;br /&gt;
{{!}} colspan=&amp;quot;2&amp;quot;{{!}}&amp;lt;s&amp;gt;LL_PART_DEAD_MASK&amp;lt;/s&amp;gt;&lt;br /&gt;
{{!!}}Removes particles, not compatible with any other PSYS_PART_*_MASK&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}{{LSL_Hex|0x80000000|}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- No point in displaying these.&lt;br /&gt;
{{!}}- style=&amp;quot;background-color:#e0e0e0;&amp;quot; id=&amp;quot;LL_PART_RANDOM_ACCEL_MASK&amp;quot;&lt;br /&gt;
{{!}} colspan=&amp;quot;2&amp;quot;{{!}}&amp;lt;s style=&amp;quot;color:darkred;&amp;quot;&amp;gt;LL_PART_RANDOM_ACCEL_MASK&amp;lt;/s&amp;gt;&lt;br /&gt;
{{!!}}(&#039;&#039;unimplemented &amp;amp; commented out&#039;&#039;) Presumed to be used to apply random acceleration to the particles.&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}} -&lt;br /&gt;
{{!}}-&lt;br /&gt;
&lt;br /&gt;
{{!}}- style=&amp;quot;background-color:#e0e0e0;&amp;quot; id=&amp;quot;LL_PART_RANDOM_VEL_MASK&amp;quot;&lt;br /&gt;
{{!}} colspan=&amp;quot;2&amp;quot;{{!}}&amp;lt;s style=&amp;quot;color:darkred;&amp;quot;&amp;gt;LL_PART_RANDOM_VEL_MASK&amp;lt;/s&amp;gt;&lt;br /&gt;
{{!!}}(&#039;&#039;unimplemented &amp;amp; commented out&#039;&#039;) Presumed to be used to specify random velocity for the particles upon emission.&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}} -&lt;br /&gt;
{{!}}-&lt;br /&gt;
&lt;br /&gt;
{{!}}- style=&amp;quot;background-color:#e0e0e0;&amp;quot; id=&amp;quot;LL_PART_TRAIL_MASK&amp;quot;&lt;br /&gt;
{{!}} colspan=&amp;quot;2&amp;quot;{{!}}&amp;lt;s style=&amp;quot;color:darkred;&amp;quot;&amp;gt;LL_PART_TRAIL_MASK&amp;lt;/s&amp;gt;&lt;br /&gt;
{{!!}}(&#039;&#039;unimplemented &amp;amp; commented out&#039;&#039;) Presumed to be used for implementing &amp;quot;trails&amp;quot; via emitting more particles at shorter bursts.&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}} -&lt;br /&gt;
{{!}}-&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{!}}- style=&amp;quot;background-color:#ccffcc;&amp;quot; id=&amp;quot;{{anchorencode:System Presentation}}&amp;quot;&lt;br /&gt;
{{!}} colspan=&amp;quot;5&amp;quot; align=&amp;quot;left&amp;quot;{{!}}&#039;&#039;&#039;System Presentation&#039;&#039;&#039;&lt;br /&gt;
{{!}}- id=&amp;quot;PSYS_SRC_PATTERN&amp;quot;&lt;br /&gt;
{{!}} colspan=&amp;quot;2&amp;quot;{{!}}PSYS_SRC_PATTERN&lt;br /&gt;
{{!!}}[[integer]] {{LSL Param|pattern}}&lt;br /&gt;
{{!!}}Specifies the general emission pattern.&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}9&lt;br /&gt;
{{!}}- style=&amp;quot;background-color:#e0e0e0;&amp;quot; id=&amp;quot;PSYS_SRC_PATTERN_EXPLODE&amp;quot;&lt;br /&gt;
{{!}}rowspan=&amp;quot;5&amp;quot; style=&amp;quot;background-color:#c0c0c0;&amp;quot; align=&amp;quot;center&amp;quot; valign=&amp;quot;center&amp;quot;{{!}}&#039;&#039;&#039;V&amp;lt;br /&amp;gt;a&amp;lt;br /&amp;gt;l&amp;lt;br /&amp;gt;u&amp;lt;br /&amp;gt;e&amp;lt;br /&amp;gt;s&#039;&#039;&#039;&lt;br /&gt;
{{!}}colspan=&amp;quot;2&amp;quot;{{!}}PSYS_SRC_PATTERN_EXPLODE&lt;br /&gt;
{{!!}}Sprays particles outwards in a spherical area. The Initial velocity of each particle is determined by PSYS_SRC_BURST_SPEED_MIN and PSYS_SRC_BURST_SPEED_MAX.  The EXPLODE pattern ignores the ANGLE parameters.&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}{{LSL_Hex|0x02|2}}&lt;br /&gt;
{{!}}- style=&amp;quot;background-color:#e0e0e0;&amp;quot; id=&amp;quot;PSYS_SRC_PATTERN_ANGLE_CONE&amp;quot;&lt;br /&gt;
{{!}}colspan=&amp;quot;2&amp;quot;{{!}}PSYS_SRC_PATTERN_ANGLE_CONE&lt;br /&gt;
{{!!}}Sprays particles outwards in a spherical, sub-spherical, conical or ring shaped area, as defined by the ANGLE parameters PSYS_SRC_ANGLE_BEGIN and PSYS_SRC_ANGLE_END.   The ANGLE_CONE pattern can be used to imitate the EXPLODE pattern by explicitly setting PSYS_SRC_ANGLE_BEGIN to 0.00000 and PSYS_SRC_ANGLE_END to 3.14159 (or PI) (or vice versa).&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}{{LSL_Hex|0x08|8}}  &lt;br /&gt;
{{!}}- style=&amp;quot;background-color:#e0e0e0;&amp;quot; id=&amp;quot;PSYS_SRC_PATTERN_ANGLE&amp;quot;&lt;br /&gt;
{{!}} colspan=&amp;quot;2&amp;quot;{{!}}PSYS_SRC_PATTERN_ANGLE&lt;br /&gt;
{{!!}}Sprays particles outward in a flat circular, semi-circular, arc or ray shaped areas, as defined by PSYS_SRC_ANGLE_BEGIN and PSYS_SRC_ANGLE_END.  The circular pattern radiates outwards around the prim&#039;s local X axis line.  &lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}{{LSL_Hex|0x04|4}}&lt;br /&gt;
{{!}}- style=&amp;quot;background-color:#e0e0e0;&amp;quot; id=&amp;quot;PSYS_SRC_PATTERN_DROP&amp;quot;&lt;br /&gt;
{{!}}colspan=&amp;quot;2&amp;quot;{{!}}PSYS_SRC_PATTERN_DROP&lt;br /&gt;
{{!!}}Creates particles with no initial velocity.  The DROP pattern will override any values given for PSYS_SRC_BURST_RADIUS, PSYS_SRC_BURST_SPEED_MIN, and PSYS_SRC_BURST_SPEED_MAX, setting each to 0.00000.  (All patterns will behave like the DROP pattern, if RADIUS, SPEED_MIN and SPEED_MAX are explicitly set to 0.0000.)&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}{{LSL_Hex|0x01|1}}&lt;br /&gt;
{{!}}- style=&amp;quot;background-color:#e0e0e0;&amp;quot; id=&amp;quot;PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY&amp;quot;&lt;br /&gt;
{{!}}colspan=&amp;quot;2&amp;quot;{{!}}PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY&lt;br /&gt;
{{!!}}(&#039;&#039;incomplete implementation&#039;&#039;) acts the same as the PSYS_SRC_PATTERN_DROP pattern, it is believed that the original intention for this pattern was to invert the effect of the ANGLE parameters, making them delineate an area where particles were NOT to be sprayed. (effectively the inverse or opposite of the behavior of the ANGLE_CONE pattern).&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}{{LSL_Hex|0x10|16}}&lt;br /&gt;
{{!}}- id=&amp;quot;PSYS_SRC_BURST_RADIUS&amp;quot;&lt;br /&gt;
{{!}}colspan=&amp;quot;2&amp;quot;{{!}}PSYS_SRC_BURST_RADIUS&lt;br /&gt;
{{!!}}[[float]] {{LSL Param|radius}}&lt;br /&gt;
{{!!}}Specifies the distance from the emitter where particles will be created. This rule is ignored when the PSYS_PART_FOLLOW_SRC_MASK flag is set. A test in http://forums-archive.secondlife.com/327/f5/226722/1.html indicates that the maximum value is 50.00&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}16&lt;br /&gt;
{{!}}- id=&amp;quot;PSYS_SRC_ANGLE_BEGIN&amp;quot;&lt;br /&gt;
{{!}}colspan=&amp;quot;2&amp;quot;{{!}}PSYS_SRC_ANGLE_BEGIN&lt;br /&gt;
{{!!}}[[float]] {{LSL Param|angle_begin}}&lt;br /&gt;
{{!!}}Specifies a half angle, in radians, of a circular or spherical &amp;quot;dimple&amp;quot; or conic section (starting from the emitter facing) within which particles will NOT be emitted. Valid values are the same as for PSYS_SRC_ANGLE_END, though the effects are reversed accordingly. If the pattern is PSYS_SRC_PATTERN_ANGLE, the presentation is a 2D flat circular section. If PSYS_SRC_PATTERN_ANGLE_CONE or PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY is used, the presentation is a 3D spherical section. Note that the value of this parameter and PSYS_SRC_ANGLE_END are internally re-ordered such that this parameter gets the smaller of the two values.&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}22&lt;br /&gt;
{{!}}- id=&amp;quot;PSYS_SRC_ANGLE_END&amp;quot;&lt;br /&gt;
{{!}}colspan=&amp;quot;2&amp;quot;{{!}}PSYS_SRC_ANGLE_END&lt;br /&gt;
{{!!}}[[float]] {{LSL Param|angle_end}}&lt;br /&gt;
{{!!}}Specifies a half angle, in radians, of a circular or spherical &amp;quot;dimple&amp;quot; or conic section (starting from the emitter facing) within which particles WILL be emitted. Valid values are 0.0, which will result in particles being emitted in a straight line in the direction of the emitter facing, to [[PI]], which will result in particles being emitted in a full circular or spherical arc around the emitter, not including the &amp;quot;dimple&amp;quot; or conic section defined by PSYS_SRC_ANGLE_BEGIN. If the pattern is PSYS_SRC_PATTERN_ANGLE, the presentation is a 2D flat circular section. If PSYS_SRC_PATTERN_ANGLE_CONE or PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY is used, the presentation is a 3D spherical section. Note that the value of this parameter and PSYS_SRC_ANGLE_BEGIN are internally re-ordered such that this parameter gets the larger of the two values.&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}23&lt;br /&gt;
{{!}}- id=&amp;quot;PSYS_SRC_INNERANGLE&amp;quot;&lt;br /&gt;
{{!}}colspan=&amp;quot;2&amp;quot;{{!}}&amp;lt;del&amp;gt;PSYS_SRC_INNERANGLE&amp;lt;/del&amp;gt;&lt;br /&gt;
{{!!}}[[float]] {{LSL Param|angle_inner}}&lt;br /&gt;
{{!!}}&#039;&#039;&#039;DEPRECATED: Use PSYS_SRC_ANGLE_BEGIN instead.&#039;&#039;&#039; Works similar to its replacement rule, except the edge of the section is aligned with the emitter facing, rather than its center.&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}10&lt;br /&gt;
{{!}}- id=&amp;quot;PSYS_SRC_OUTERANGLE&amp;quot;&lt;br /&gt;
{{!}}colspan=&amp;quot;2&amp;quot;{{!}}&amp;lt;del&amp;gt;PSYS_SRC_OUTERANGLE&amp;lt;/del&amp;gt;&lt;br /&gt;
{{!!}}[[float]] {{LSL Param|angle_outer}}&lt;br /&gt;
{{!!}}&#039;&#039;&#039;DEPRECATED: Use PSYS_SRC_ANGLE_END instead.&#039;&#039;&#039; Works similar to its replacement rule, except the edge of the section is aligned with the emitter facing, rather than the section&#039;s center.&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}11&lt;br /&gt;
{{!}}- id=&amp;quot;PSYS_SRC_TARGET_KEY&amp;quot;&lt;br /&gt;
{{!}}colspan=&amp;quot;2&amp;quot;{{!}}PSYS_SRC_TARGET_KEY&lt;br /&gt;
{{!!}}[[key]] {{LSL Param|target}}&lt;br /&gt;
{{!!}}Specifies the key of a target object, prim, or agent towards which the particles will change course and move (if PSYS_PART_TARGET_POS_MASK is specified) or will move in a straight line (if PSYS_PART_TARGET_LINEAR_MASK is specified). They will attempt to end up at the geometric center of the target at the end of their lifetime. Requires the PSYS_PART_TARGET_POS_MASK or PSYS_PART_TARGET_LINEAR_MASK flag be set. [[#Caveats|caveat 4]]&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}20&lt;br /&gt;
{{!}}- style=&amp;quot;background-color:#ccffcc;&amp;quot; id=&amp;quot;{{anchorencode:Particle Appearance}}&amp;quot;&lt;br /&gt;
{{!}}colspan=&amp;quot;5&amp;quot; align=&amp;quot;left&amp;quot;{{!}}&#039;&#039;&#039;Particle Appearance&#039;&#039;&#039;&lt;br /&gt;
{{!}}- id=&amp;quot;PSYS_PART_START_COLOR&amp;quot;&lt;br /&gt;
{{!}}colspan=&amp;quot;2&amp;quot;{{!}}PSYS_PART_START_COLOR&lt;br /&gt;
{{!!}}[[vector]] {{LSL Param|color_start}}&lt;br /&gt;
{{!!}}A vector specifying the [[color]] of the particles upon emission.&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}1&lt;br /&gt;
{{!}}- id=&amp;quot;PSYS_PART_END_COLOR&amp;quot;&lt;br /&gt;
{{!}}colspan=&amp;quot;2&amp;quot;{{!}}PSYS_PART_END_COLOR&lt;br /&gt;
{{!!}}[[vector]] {{LSL Param|color_end}}&lt;br /&gt;
{{!!}}A vector specifying the [[color]] the particles transition to during their lifetime. Only used if the PSYS_PART_INTERP_COLOR_MASK flag is set.&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}3&lt;br /&gt;
{{!}}- id=&amp;quot;PSYS_PART_START_ALPHA&amp;quot;&lt;br /&gt;
{{!}}colspan=&amp;quot;2&amp;quot;{{!}}PSYS_PART_START_ALPHA&lt;br /&gt;
{{!!}}[[float]] {{LSL Param|alpha_start}}&lt;br /&gt;
{{!!}}Specifies the [[alpha]] of the particles upon emission. Valid values are in the range 0.0 to 1.0. Lower values are more transparent; higher ones are more opaque.&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}2&lt;br /&gt;
{{!}}- id=&amp;quot;PSYS_PART_END_ALPHA&amp;quot;&lt;br /&gt;
{{!}}colspan=&amp;quot;2&amp;quot;{{!}}PSYS_PART_END_ALPHA&lt;br /&gt;
{{!!}}[[float]] {{LSL Param|alpha_end}}&lt;br /&gt;
{{!!}}Specifies the [[alpha]] the particles transition to during their lifetime. Only used if the PSYS_PART_INTERP_COLOR_MASK flag is set. Valid values are the same as PSYS_PART_START_ALPHA.&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}4&lt;br /&gt;
{{!}}- id=&amp;quot;PSYS_PART_START_SCALE&amp;quot;&lt;br /&gt;
{{!}}colspan=&amp;quot;2&amp;quot;{{!}}PSYS_PART_START_SCALE&lt;br /&gt;
{{!!}}[[vector]] {{LSL Param|scale_start}}&lt;br /&gt;
{{!!}}Specifies the [[scale]] or size of the particles upon emission. Valid values for each direction are 0.03125 to 4.0, in meters. The actual particle size is always a multiple of 0.03125. Smaller changes don&#039;t have any effect. Since particles are essentially 2D sprites, the Z component of the vector is ignored and can be set to 0.0.&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}5&lt;br /&gt;
{{!}}- id=&amp;quot;PSYS_PART_END_SCALE&amp;quot;&lt;br /&gt;
{{!}}colspan=&amp;quot;2&amp;quot;{{!}}PSYS_PART_END_SCALE&lt;br /&gt;
{{!!}}[[vector]] {{LSL Param|scale_end}}&lt;br /&gt;
{{!!}}Specifies the [[scale]] or size the particles transition to during their lifetime. Only used if the PSYS_PART_INTERP_SCALE_MASK flag is set. Valid values are the same as PSYS_PART_START_SCALE.&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}6&lt;br /&gt;
{{!}}- id=&amp;quot;PSYS_SRC_TEXTURE&amp;quot;&lt;br /&gt;
{{!}}colspan=&amp;quot;2&amp;quot;{{!}}PSYS_SRC_TEXTURE&lt;br /&gt;
{{!!}}[[string]] {{LSL Param|texture}}&lt;br /&gt;
{{!!}}Specifies the name of a texture in the emitter prim&#039;s inventory to use for each particle. Alternatively, you may specify an asset key [[UUID]] for a texture. If using [[llLinkParticleSystem]] and texture is not a UUID, texture must be in the emitter prim (not necessarily with the script).&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}12&lt;br /&gt;
{{!}}- id=&amp;quot;PSYS_PART_START_GLOW&amp;quot;&lt;br /&gt;
{{!}}colspan=&amp;quot;2&amp;quot;{{!}}PSYS_PART_START_GLOW&lt;br /&gt;
{{!!}}[[float]] {{LSL Param|glow_start}}&lt;br /&gt;
{{!!}}Specifies the glow of the particles upon emission. Valid values are in the range of 0.0 (no glow) to 1.0 (full glow).&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}26&lt;br /&gt;
{{!}}- id=&amp;quot;PSYS_PART_END_GLOW&amp;quot;&lt;br /&gt;
{{!}}colspan=&amp;quot;2&amp;quot;{{!}}PSYS_PART_END_GLOW&lt;br /&gt;
{{!!}}[[float]] {{LSL Param|glow_end}}&lt;br /&gt;
{{!!}}Specifies the glow that the particles transition to during their lifetime. Valid values are the same as PSYS_PART_START_GLOW.&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}27&lt;br /&gt;
{{!}}- style=&amp;quot;background-color:#ccffcc;&amp;quot; id=&amp;quot;{{anchorencode:Particle Blending}}&amp;quot;&lt;br /&gt;
{{!}} colspan=&amp;quot;5&amp;quot; align=&amp;quot;left&amp;quot;{{!}}&#039;&#039;&#039;Particle Blending&#039;&#039;&#039;&lt;br /&gt;
{{!}}- style=&amp;quot;background-color:#ffcccc;&amp;quot;&lt;br /&gt;
{{!}} colspan=&amp;quot;5&amp;quot; align=&amp;quot;left&amp;quot;{{!}}&#039;&#039;&#039;Note:&#039;&#039;&#039; The particle system blend parameters wrap directly to OpenGL&#039;s glBlendFunc.  Detailed documentation for glBlendFunc, including formulas, can be found in the [http://www.opengl.org/sdk/docs/man/html/glBlendFunc.xhtml official glBlendFunc documentation]&lt;br /&gt;
{{!}}- id=&amp;quot;PSYS_PART_BLEND_FUNC_SOURCE&amp;quot;&lt;br /&gt;
{{!}} colspan=&amp;quot;2&amp;quot;{{!}}PSYS_PART_BLEND_FUNC_SOURCE&lt;br /&gt;
{{!!}}[[integer]] {{LSL Param|bf_source}}&lt;br /&gt;
{{!!}}Specifies how blending function uses the incoming particle&#039;s color and alpha information to produce the rendered result. Defaults to PSYS_PART_BF_SOURCE_ALPHA.&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}24&lt;br /&gt;
{{!}}- id=&amp;quot;PSYS_PART_BLEND_FUNC_DEST&amp;quot;&lt;br /&gt;
{{!}} colspan=&amp;quot;2&amp;quot;{{!}}PSYS_PART_BLEND_FUNC_DEST&lt;br /&gt;
{{!!}}[[integer]] {{LSL Param|bf_dest}}&lt;br /&gt;
{{!!}}Specifies how blending function uses the current framebuffer&#039;s color and alpha information to produce the rendered result. Defaults to PSYS_PART_BF_ONE_MINUS_SOURCE_ALPHA.&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}25&lt;br /&gt;
{{!}}- style=&amp;quot;background-color:#e0e0e0;&amp;quot; id=&amp;quot;PSYS_PART_BF_ONE&amp;quot;&lt;br /&gt;
{{!}}rowspan=&amp;quot;8&amp;quot; style=&amp;quot;background-color:#c0c0c0;&amp;quot; align=&amp;quot;center&amp;quot; valign=&amp;quot;center&amp;quot;{{!}}&#039;&#039;&#039;V&amp;lt;br /&amp;gt;a&amp;lt;br /&amp;gt;l&amp;lt;br /&amp;gt;u&amp;lt;br /&amp;gt;e&amp;lt;br /&amp;gt;s&#039;&#039;&#039;&lt;br /&gt;
{{!}}colspan=&amp;quot;2&amp;quot;{{!}}PSYS_PART_BF_ONE&lt;br /&gt;
{{!!}}Do not scale the source or destination RGBA values.&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}{{LSL_Hex|0x0|0}}&lt;br /&gt;
{{!}}- style=&amp;quot;background-color:#e0e0e0;&amp;quot; id=&amp;quot;PSYS_PART_BF_ZERO&amp;quot;&lt;br /&gt;
{{!}}colspan=&amp;quot;2&amp;quot;{{!}}PSYS_PART_BF_ZERO&lt;br /&gt;
{{!!}}Zero out the source or destination RGBA values.&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}{{LSL_Hex|0x1|1}}&lt;br /&gt;
{{!}}- style=&amp;quot;background-color:#e0e0e0;&amp;quot; id=&amp;quot;PSYS_PART_BF_DEST_COLOR&amp;quot;&lt;br /&gt;
{{!}}colspan=&amp;quot;2&amp;quot;{{!}}PSYS_PART_BF_DEST_COLOR&lt;br /&gt;
{{!!}}Scale the RGBA values by the RGBA values of the destination.&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}{{LSL_Hex|0x2|2}}&lt;br /&gt;
{{!}}- style=&amp;quot;background-color:#e0e0e0;&amp;quot; id=&amp;quot;PSYS_PART_BF_SOURCE_COLOR&amp;quot;&lt;br /&gt;
{{!}}colspan=&amp;quot;2&amp;quot;{{!}}PSYS_PART_BF_SOURCE_COLOR&lt;br /&gt;
{{!!}}Scale the RGBA values by the RGBA values of the particle source.&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}{{LSL_Hex|0x3|3}}&lt;br /&gt;
{{!}}- style=&amp;quot;background-color:#e0e0e0;&amp;quot; id=&amp;quot;PSYS_PART_BF_ONE_MINUS_DEST_COLOR&amp;quot;&lt;br /&gt;
{{!}}colspan=&amp;quot;2&amp;quot;{{!}}PSYS_PART_BF_ONE_MINUS_DEST_COLOR&lt;br /&gt;
{{!!}}Scale the RGBA values by the inverted RGBA values of the destination.&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}{{LSL_Hex|0x4|4}}&lt;br /&gt;
{{!}}- style=&amp;quot;background-color:#e0e0e0;&amp;quot; id=&amp;quot;PSYS_PART_BF_ONE_MINUS_SOURCE_COLOR&amp;quot;&lt;br /&gt;
{{!}}colspan=&amp;quot;2&amp;quot;{{!}}PSYS_PART_BF_ONE_MINUS_SOURCE_COLOR&lt;br /&gt;
{{!!}}Scale the RGBA values by the inverted RGBA values of the particle source.&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}{{LSL_Hex|0x5|5}}&lt;br /&gt;
{{!}}- style=&amp;quot;background-color:#e0e0e0;&amp;quot; id=&amp;quot;PSYS_PART_BF_SOURCE_ALPHA&amp;quot;&lt;br /&gt;
{{!}}colspan=&amp;quot;2&amp;quot;{{!}}PSYS_PART_BF_SOURCE_ALPHA&lt;br /&gt;
{{!!}}Scale the RGBA values by the alpha values of the particle source.&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}{{LSL_Hex|0x7|7}}&lt;br /&gt;
{{!}}- style=&amp;quot;background-color:#e0e0e0;&amp;quot; id=&amp;quot;PSYS_PART_BF_ONE_MINUS_SOURCE_ALPHA&amp;quot;&lt;br /&gt;
{{!}}colspan=&amp;quot;2&amp;quot;{{!}}PSYS_PART_BF_ONE_MINUS_SOURCE_ALPHA&lt;br /&gt;
{{!!}}Scale the RGBA values by the inverted alpha values of the particle source.&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}{{LSL_Hex|0x9|9}}&lt;br /&gt;
{{!}}- style=&amp;quot;background-color:#ccffcc;&amp;quot; id=&amp;quot;{{anchorencode:Particle Flow}}&amp;quot;&lt;br /&gt;
{{!}}colspan=&amp;quot;5&amp;quot; align=&amp;quot;left&amp;quot;{{!}}&#039;&#039;&#039;Particle Flow&#039;&#039;&#039;&lt;br /&gt;
{{!}}- id=&amp;quot;PSYS_SRC_MAX_AGE&amp;quot;&lt;br /&gt;
{{!}}colspan=&amp;quot;2&amp;quot;{{!}}PSYS_SRC_MAX_AGE&lt;br /&gt;
{{!!}}[[float]] {{LSL Param|duration_system}}&lt;br /&gt;
{{!!}}Specifies the length of time, in seconds, that the emitter will operate upon coming into view range (if the particle system is already set) or upon execution of this function (if already in view range). Upon expiration, no more particles will be emitted, except as specified above. Zero will give the particle system an infinite duration. ([[#Caveats|caveat 1]])&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}19&lt;br /&gt;
{{!}}- id=&amp;quot;PSYS_PART_MAX_AGE&amp;quot;&lt;br /&gt;
{{!}}colspan=&amp;quot;2&amp;quot;{{!}}PSYS_PART_MAX_AGE&lt;br /&gt;
{{!!}}[[float]] {{LSL Param|duration_particle}}&lt;br /&gt;
{{!!}}Specifies the lifetime of each particle emitted, in seconds. Maximum is 30.0 seconds. During this time, the particle will appear, change appearance and move according to the parameters specified in the other sections, and then disappear.&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}7&lt;br /&gt;
{{!}}- id=&amp;quot;PSYS_SRC_BURST_RATE&amp;quot;&lt;br /&gt;
{{!}}colspan=&amp;quot;2&amp;quot;{{!}}PSYS_SRC_BURST_RATE&lt;br /&gt;
{{!!}}[[float]] {{LSL Param|burst_sleep}}&lt;br /&gt;
{{!!}}Specifies the time interval, in seconds, between &amp;quot;bursts&amp;quot; of particles being emitted. Specifying a value of 0.0 will cause the emission of particles as fast as the viewer can do so.&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}13&lt;br /&gt;
{{!}}- id=&amp;quot;PSYS_SRC_BURST_PART_COUNT&amp;quot;&lt;br /&gt;
{{!}}colspan=&amp;quot;2&amp;quot;{{!}}PSYS_SRC_BURST_PART_COUNT&lt;br /&gt;
{{!!}}[[integer]] {{LSL Param|burst_particle_count}}&lt;br /&gt;
{{!!}}Specifies the number of particles emitted in each &amp;quot;burst&amp;quot;.&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}15&lt;br /&gt;
{{!}}- style=&amp;quot;background-color:#ccffcc;&amp;quot; id=&amp;quot;{{anchorencode:Particle Motion}}&amp;quot;&lt;br /&gt;
{{!}}colspan=&amp;quot;5&amp;quot; align=&amp;quot;left&amp;quot;{{!}}&#039;&#039;&#039;Particle Motion&#039;&#039;&#039;&lt;br /&gt;
{{!}}- id=&amp;quot;PSYS_SRC_ACCEL&amp;quot;&lt;br /&gt;
{{!}}colspan=&amp;quot;2&amp;quot;{{!}}PSYS_SRC_ACCEL&lt;br /&gt;
{{!!}}[[vector]] {{LSL Param|acceleration}}&lt;br /&gt;
{{!!}}Specifies a directional acceleration vector applied to each particle as it is emitted, in meters per second squared. Valid values are 0.0 to 100.0 for each direction both positive and negative, as [[Viewer coordinate frames#Region|region]] coordinates.&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}8&lt;br /&gt;
{{!}}- id=&amp;quot;PSYS_SRC_OMEGA&amp;quot;&lt;br /&gt;
{{!}}colspan=&amp;quot;2&amp;quot;{{!}}PSYS_SRC_OMEGA&lt;br /&gt;
{{!!}}[[vector]] {{LSL Param|omega}}&lt;br /&gt;
{{!!}}Specifies the rotational spin of the emitter in radians per second along each axis. This &amp;quot;unsticks&amp;quot; the emitter facing from the prim&#039;s positive Z axis and is noticeable in directional presentations. Prim spin (via [[llTargetOmega]]) has no effect on emitter spin. ([[#Caveats|caveat 2]] and [[#Caveats|caveat 3]])&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}21&lt;br /&gt;
{{!}}- id=&amp;quot;PSYS_SRC_BURST_SPEED_MIN&amp;quot;&lt;br /&gt;
{{!}}colspan=&amp;quot;2&amp;quot;{{!}}PSYS_SRC_BURST_SPEED_MIN&lt;br /&gt;
{{!!}}[[float]] {{LSL Param|speed_min}}&lt;br /&gt;
{{!!}}Specifies the minimum value of a random range of values which is selected for each particle in a burst as its initial speed upon emission, in meters per second. Note that the value of this parameter and PSYS_SRC_BURST_SPEED_MAX are internally re-ordered such that this parameter gets the smaller of the two values.&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}17&lt;br /&gt;
{{!}}- id=&amp;quot;PSYS_SRC_BURST_SPEED_MAX&amp;quot;&lt;br /&gt;
{{!}}colspan=&amp;quot;2&amp;quot;{{!}}PSYS_SRC_BURST_SPEED_MAX&lt;br /&gt;
{{!!}}[[float]] {{LSL Param|speed_max}}&lt;br /&gt;
{{!!}}Specifies the maximum value of a random range of values which is selected for each particle in a burst as its initial speed upon emission, in meters per second. Note that the value of this parameter and PSYS_SRC_BURST_SPEED_MIN are internally re-ordered such that this parameter gets the larger of the two values.&lt;br /&gt;
{{!}}align=&amp;quot;center&amp;quot;{{!}}18&lt;br /&gt;
{{!}}-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
{{!}}- id=&amp;quot;{{anchorencode:Constant Footnotes}}&amp;quot;&lt;br /&gt;
{{!}} style=&amp;quot;font-size:80%&amp;quot; colspan=&amp;quot;5&amp;quot; {{!}} LL_PART_* constants are only found in {{SourceLink|indra/llmessage/llpartdata.h|rev=1681|line=99}}, those flags in &amp;lt;span style=&amp;quot;color:darkred;&amp;quot;&amp;gt;red&amp;lt;/span&amp;gt; have been commented out.&lt;br /&gt;
{{!}}-&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}} }}&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{#var:constants_nb}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;{{#if:&lt;br /&gt;
&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Signature====&lt;br /&gt;
{{#tag:pre|{{#var:signature}}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;{{#if:&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Toy_Wylie/Misc/Script_Memory&amp;diff=1188989</id>
		<title>User:Toy Wylie/Misc/Script Memory</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Toy_Wylie/Misc/Script_Memory&amp;diff=1188989"/>
		<updated>2014-03-31T22:51:25Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: +cat :3&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is an example on why Script Memory Reporters are a bad thing and can&#039;t provide the information a land owner is looking for. Banning or kicking people because of the reported script memory size is not helping the case. What we really need is an accurate reporting tool that does not rely on scripts playing nice but reports the true facts regardless of how the script was made.&lt;br /&gt;
&lt;br /&gt;
===Some Myths and Facts===&lt;br /&gt;
&#039;&#039;&#039;Myth:&#039;&#039;&#039; Mono scripts are much larger! They show as 64k on my reporter, while LSO scripts only need 16k&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fact:&#039;&#039;&#039; This is inaccurate. It is true that a Mono script needs more memory for the same source code size. However, an LSO script always allocates and uses the full 16k it gets, while a Mono script only uses what it needs, in 4k blocks. And since a lot of scripts are usually very small helper scripts, the memory consumption of Mono scripts is actually lower than LSO:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;// This standard door script takes up 4412 bytes in Mono&lt;br /&gt;
// and 16384 bytes in LSO. An outside script reporting tool&lt;br /&gt;
// would report it as 65536 bytes in Mono and 16384 in LSO.&lt;br /&gt;
&lt;br /&gt;
rotation home;&lt;br /&gt;
integer isOpen=FALSE;&lt;br /&gt;
&lt;br /&gt;
open()&lt;br /&gt;
{&lt;br /&gt;
    if(isOpen)&lt;br /&gt;
        llSetLocalRot(home);&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        home=llGetLocalRot();&lt;br /&gt;
        llSetLocalRot(home*llEuler2Rot(&amp;lt;0.0,0.0,90.0&amp;gt;*DEG_TO_RAD));&lt;br /&gt;
    }&lt;br /&gt;
    isOpen=!isOpen;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    touch_start(integer total_number)&lt;br /&gt;
    {&lt;br /&gt;
        llOwnerSay((string) llGetUsedMemory());&lt;br /&gt;
        open();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using the new [[llSetMemoryLimit]] function we can make the situation a little bit better:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;// This modified standard door script takes up 4924 bytes in Mono&lt;br /&gt;
// and 16384 bytes in LSO. An outside script reporting tool&lt;br /&gt;
// would report it as 5000 bytes in Mono and 16384 in LSO.&lt;br /&gt;
&lt;br /&gt;
rotation home;&lt;br /&gt;
integer isOpen=FALSE;&lt;br /&gt;
&lt;br /&gt;
open()&lt;br /&gt;
{&lt;br /&gt;
    if(isOpen)&lt;br /&gt;
        llSetLocalRot(home);&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        home=llGetLocalRot();&lt;br /&gt;
        llSetLocalRot(home*llEuler2Rot(&amp;lt;0.0,0.0,90.0&amp;gt;*DEG_TO_RAD));&lt;br /&gt;
    }&lt;br /&gt;
    isOpen=!isOpen;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llSetMemoryLimit(5000);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    touch_start(integer total_number)&lt;br /&gt;
    {&lt;br /&gt;
        llOwnerSay((string) llGetUsedMemory());&lt;br /&gt;
        open();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But this is only good for static scripts like this one. If your script uses a lot of memory for a short period of time and most of the remaining time sits idle with little to no memory usage, this approach will not work at all. And having to manually re-set the memory limit for each part of the script adds more code and more ways for it to fail.&lt;br /&gt;
&lt;br /&gt;
{{Resource Conservation Portal Nav|cat=memory}}&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Category:Process-Time_Conservation&amp;diff=1188988</id>
		<title>Category:Process-Time Conservation</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Category:Process-Time_Conservation&amp;diff=1188988"/>
		<updated>2014-03-31T22:47:17Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: +LSL cat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:LSL Resource Conservation]]&lt;br /&gt;
{{LSL Header|ml=*}}{{LSLC|}}&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Category:LSL_Resource_Conservation&amp;diff=1188987</id>
		<title>Category:LSL Resource Conservation</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Category:LSL_Resource_Conservation&amp;diff=1188987"/>
		<updated>2014-03-31T22:46:59Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: +LSL cat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Simulator Resource Conservation]]&lt;br /&gt;
{{LSL Header|ml=*}}{{LSLC|}}&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Category:Memory_Conservation&amp;diff=1188986</id>
		<title>Category:Memory Conservation</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Category:Memory_Conservation&amp;diff=1188986"/>
		<updated>2014-03-31T22:45:53Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: -/+cat/cat templates&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:LSL Resource Conservation]]&lt;br /&gt;
{{LSL Header|ml=*}}{{LSLC|}}&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Category:LSL_Script_Profiler&amp;diff=1188985</id>
		<title>Category:LSL Script Profiler</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Category:LSL_Script_Profiler&amp;diff=1188985"/>
		<updated>2014-03-31T22:43:25Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: +cat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header|ml=*}}{{LSLC|}}{{LSLC|Script}}{{Resource Conservation Portal Nav|cat=memory}}&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Becky_Pippen/Memory_Efficiency&amp;diff=1188984</id>
		<title>User:Becky Pippen/Memory Efficiency</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Becky_Pippen/Memory_Efficiency&amp;diff=1188984"/>
		<updated>2014-03-31T22:39:30Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: +cat :3&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Information Content and Memory Efficiency ==&lt;br /&gt;
&lt;br /&gt;
For a refresher on relevant information theory, see [http://www.cs.cmu.edu/~dst/Tutorials/Info-Theory/ this tutorial].&lt;br /&gt;
&lt;br /&gt;
It&#039;s useful to understand the &amp;quot;information content&amp;quot; of data so that you can calculate&lt;br /&gt;
the theoretical minimum number of bits needed to store the data. Typically it&#039;s the&lt;br /&gt;
logarithm base two of the total number of possible values the data can have. Here are&lt;br /&gt;
some examples:&lt;br /&gt;
&lt;br /&gt;
* coin toss: log2(2) = 1 bit per toss&lt;br /&gt;
* 6-sided die toss: log2(6) = 2.585 bits per toss&lt;br /&gt;
* integers 0 through 100: log2(101) = 6.66 bits each&lt;br /&gt;
* 32-bit integers, non-negative values: log2(2147483648) = 31 bits each&lt;br /&gt;
* 32-bit integers, all possible values: log2(4294967296) = 32 bits each&lt;br /&gt;
&lt;br /&gt;
The actual memory space used by various LSL data types can be found here:&lt;br /&gt;
* [http://lslwiki.net/lslwiki/wakka.php?wakka=MemoryUsage LSL Memory Usage in lswiki.net]&lt;br /&gt;
* [[LSL_Script_Memory|Script memory usage in wiki.secondlife.com]]&lt;br /&gt;
&lt;br /&gt;
The memory efficiency is simply the information content divided by the actual memory used. Here are some examples:&lt;br /&gt;
&lt;br /&gt;
==== Example #1 - 7-bit ASCII text ====&lt;br /&gt;
&lt;br /&gt;
In classic LSO (the old LSL compiler), it takes one byte of memory (8 bits) to hold one 7-bit ASCII character&lt;br /&gt;
for an efficieny of 7/8 = 88%. In Mono, it takes two bytes (16 bits) to hold each ASCII character for an efficiency&lt;br /&gt;
of 7/16 = 44%.&lt;br /&gt;
&lt;br /&gt;
==== Example #2 - Vectors in a global list ====&lt;br /&gt;
&lt;br /&gt;
The information content of a vector is the equivalent of three floats, or 3 * 32 bits = 96 bits per vector.&lt;br /&gt;
A list in Mono consumes 224 bits for each vector element for an efficiency of 96 / 224 = 43%. Note that if you only&lt;br /&gt;
need to store a smaller range of values in each vector component, the information content will be smaller.&lt;br /&gt;
For example, suppose you need to store a color vector with two decimal digits of accuracy for each component.&lt;br /&gt;
In other words, instead of precision like &amp;lt;0.567876, 0.198273, 0.993656&amp;gt;, it&#039;s sufficient for your purposes if&lt;br /&gt;
the data gets rounded off to &amp;lt;0.57, 0.20, 0.99&amp;gt;. In that case, each of the three components can take&lt;br /&gt;
one of 101 possible values (0.00 through 1.00 with 0.01 resolution), and the information content is&lt;br /&gt;
then 3 * log2(101) = 20 bits. If regular vectors are stored in a list, the efficiency would drop to 20 / 224 = 9%. Ouch.&lt;br /&gt;
&lt;br /&gt;
==== Example #3 - UUIDs in a global list ====&lt;br /&gt;
&lt;br /&gt;
The information content of a UUID is 128 bits. In a global list in Mono, each key takes up to 106 bytes (848 bits)&lt;br /&gt;
for an efficiency of 128 / 848 = 15%. Suppose your script needs to store&lt;br /&gt;
up to 1000 avatar UUIDs in a global list. That&#039;s going to use up 1000*106 bytes = 106,000 bytes, more than&lt;br /&gt;
the memory available to a single Mono script. However, since each UUID contains only 16 bytes (128 bits)&lt;br /&gt;
of information, the theoretical minimum memory requirement would be 1000*16 = 16000 bytes, well within&lt;br /&gt;
the capacity of a Mono script.&lt;br /&gt;
&lt;br /&gt;
===Now what?===&lt;br /&gt;
&lt;br /&gt;
Now that you know the minimum amount of memory needed and the amount actually used, you can &lt;br /&gt;
make realistic goals for reducing memory usage. For some suggestions for specific scripting techniques,&lt;br /&gt;
see [[User:Becky_Pippen/Script_Memory_Limits| this checklist of things you can do]].&lt;br /&gt;
&lt;br /&gt;
{{Resource Conservation Portal Nav|cat=memory}}&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Becky_Pippen/Script_Memory_Limits&amp;diff=1188983</id>
		<title>User:Becky Pippen/Script Memory Limits</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Becky_Pippen/Script_Memory_Limits&amp;diff=1188983"/>
		<updated>2014-03-31T22:38:19Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: +cat :3&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Script Memory Limits ==&lt;br /&gt;
Oh No! LSL script memory limits are coming! What to do?&lt;br /&gt;
&lt;br /&gt;
Don&#039;t panic. [[User:Becky_Pippen/Memory_Limits_FAQ|&#039;&#039;&#039;See this FAQ&#039;&#039;&#039;]], then see the strategy and checklist below and do what you need to do.&lt;br /&gt;
&lt;br /&gt;
==Strategy==&lt;br /&gt;
&lt;br /&gt;
To reduce script memory usage, start with the big items&lt;br /&gt;
first before tweaking individual lines of code. Sorry, I&#039;m not impressed if you save&lt;br /&gt;
a dozen bytes through some clever rearrangement&lt;br /&gt;
of a formula here or a statement there. First see if you can eliminate entire scripts or whack off&lt;br /&gt;
&#039;&#039;thousands&#039;&#039; of bytes all at once by using a different approach or algorithm,&lt;br /&gt;
or by removing that one memory-hungry feature, or by using a different&lt;br /&gt;
data storage format. Then review the checklist below for more ideas.&lt;br /&gt;
&lt;br /&gt;
==Checklist==&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Measure&#039;&#039;&#039; - For help measuring the memory your script uses, see [[User:Becky_Pippen/Measure_Script_Memory_Usage|this page]].&lt;br /&gt;
# &#039;&#039;&#039;Requirements and goals&#039;&#039;&#039; - Do you know how efficiently your data currently uses memory? Do you know how much improvement is possible? For suggestions, see [[User:Becky_Pippen/Memory_Efficiency|this page about measuring information content and memory efficiency]].&lt;br /&gt;
# &#039;&#039;&#039;Scripts in child prims&#039;&#039;&#039; - If your object uses multiple scripts to detect changes in child prims, or for resizing or retexturing all the prims in a linkset (like some hair or shoes), see [[User:Becky_Pippen/New_LSL_Functions|the new LSL functions]] to reduce this to a single script.&lt;br /&gt;
# &#039;&#039;&#039;Hashing&#039;&#039;&#039; - Does your script need to remember lots of avatar names, keys, or other identifying information? If so, [[User:Becky_Pippen/Hashing|consider storing hashes of the data instead]].&lt;br /&gt;
# &#039;&#039;&#039;Strings/Text&#039;&#039;&#039; - If your script contain a large number of strings for error messages or help text, perhaps in multiple languages, see [[User:Becky_Pippen/Text_Storage| these suggestions for storing text data]].&lt;br /&gt;
# &#039;&#039;&#039;Numeric data&#039;&#039;&#039; - If your script needs to store long lists of numeric data, see [[User:Becky_Pippen/Numeric_Storage|these suggestions for storing numeric data]].&lt;br /&gt;
&lt;br /&gt;
{{Resource Conservation Portal Nav|cat=memory}}&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Code_Racer&amp;diff=1188295</id>
		<title>Code Racer</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Code_Racer&amp;diff=1188295"/>
		<updated>2014-03-13T01:31:42Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: +cat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header}}&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q: Want to see if one version of code usually runs faster than another?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; Run your code inside a test harness such as the example code here to race two or more versions time and again. Along the way, declare the winners, measuring each win by the change in the [[llGetTime]] dilated script time.&lt;br /&gt;
&lt;br /&gt;
= Sample Results =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Click Running = No to stop this script after you&#039;ve seen enough ...&lt;br /&gt;
2007-10-25T02:33:12.806088Z&lt;br /&gt;
&lt;br /&gt;
~4.237066 ms elapsed in version 1 to place at 1 by 8 of 10 votes&lt;br /&gt;
~10.047700 ms elapsed in version 2 to place at 2 by 8 of 10 votes&lt;br /&gt;
2007-10-25T02:33:15.009855Z&lt;br /&gt;
&lt;br /&gt;
~3.089838 ms elapsed in version 1 to place at 1 by 44 of 100 votes&lt;br /&gt;
~5.549734 ms elapsed in version 2 to place at 2 by 57 of 100 votes&lt;br /&gt;
2007-10-25T02:33:35.422763Z&lt;br /&gt;
&lt;br /&gt;
~1.333064 ms elapsed in version 1 to place at 1 by 55 of 100 votes&lt;br /&gt;
~3.434490 ms elapsed in version 2 to place at 2 by 64 of 100 votes&lt;br /&gt;
2007-10-25T02:33:56.083810Z&lt;br /&gt;
&lt;br /&gt;
~0.760552 ms elapsed in version 1 to place at 1 by 49 of 100 votes&lt;br /&gt;
~1.922230 ms elapsed in version 2 to place at 2 by 63 of 100 votes&lt;br /&gt;
2007-10-25T02:34:16.564139Z&lt;br /&gt;
&lt;br /&gt;
~1.981575 ms elapsed in version 1 to place at 1 by 481 of 1000 votes&lt;br /&gt;
~5.013962 ms elapsed in version 2 to place at 2 by 597 of 1000 votes&lt;br /&gt;
2007-10-25T02:37:40.371221Z&lt;br /&gt;
&lt;br /&gt;
~1.475276 ms elapsed in version 1 to place at 1 by 498 of 1000 votes&lt;br /&gt;
~3.177954 ms elapsed in version 2 to place at 2 by 596 of 1000 votes&lt;br /&gt;
2007-10-25T02:41:07.869815Z&lt;br /&gt;
&lt;br /&gt;
~0.773118 ms elapsed in version 1 to place at 1 by 467 of 1000 votes&lt;br /&gt;
~1.858705 ms elapsed in version 2 to place at 2 by 597 of 1000 votes&lt;br /&gt;
2007-10-25T02:44:25.003959Z&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Code =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
// Race a few version of code in dilated script time as measured by llGetTime.&lt;br /&gt;
// http://wiki.secondlife.com/wiki/Code_Racer&lt;br /&gt;
&lt;br /&gt;
// List every runnable version.&lt;br /&gt;
&lt;br /&gt;
list theRunners = [0, 1, 2];&lt;br /&gt;
&lt;br /&gt;
// Count runnable versions.&lt;br /&gt;
&lt;br /&gt;
integer theRunnable;&lt;br /&gt;
&lt;br /&gt;
// Count votes to place.&lt;br /&gt;
&lt;br /&gt;
list theVotes;&lt;br /&gt;
&lt;br /&gt;
// Sum the run times observed.&lt;br /&gt;
&lt;br /&gt;
list theSums;&lt;br /&gt;
&lt;br /&gt;
// Count the races that ran without time running backwards.&lt;br /&gt;
&lt;br /&gt;
integer theAverageable;&lt;br /&gt;
&lt;br /&gt;
// Race no code alongside the other code in order to measure overhead.&lt;br /&gt;
&lt;br /&gt;
runner0()&lt;br /&gt;
{&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Race a few versions of code.&lt;br /&gt;
&lt;br /&gt;
runner1()&lt;br /&gt;
{&lt;br /&gt;
    integer spinning;&lt;br /&gt;
    for (spinning = 0; spinning &amp;lt; 25; ++spinning)&lt;br /&gt;
        ;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
runner2()&lt;br /&gt;
{&lt;br /&gt;
    integer spinning;&lt;br /&gt;
    for (spinning = 0; spinning &amp;lt; 50; ++spinning)&lt;br /&gt;
        ;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
runner3()&lt;br /&gt;
{&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
runner4()&lt;br /&gt;
{&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
runner5()&lt;br /&gt;
{&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Run the chosen runner once.&lt;br /&gt;
// Run thru an equal time while choosing any runner.&lt;br /&gt;
&lt;br /&gt;
run(integer runner)&lt;br /&gt;
{&lt;br /&gt;
    if (runner == 0) { runner0(); }&lt;br /&gt;
    if (runner == 1) { runner1(); }&lt;br /&gt;
    if (runner == 2) { runner2(); }&lt;br /&gt;
    if (runner == 3) { runner3(); }&lt;br /&gt;
    if (runner == 4) { runner4(); }&lt;br /&gt;
    if (runner == 5) { runner5(); }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Start up.&lt;br /&gt;
&lt;br /&gt;
startup()&lt;br /&gt;
{&lt;br /&gt;
    llOwnerSay(&amp;quot;&amp;quot;);&lt;br /&gt;
    llOwnerSay(&amp;quot;Click Running = No to stop this script after you&#039;ve seen enough ...&amp;quot;);&lt;br /&gt;
    llOwnerSay(llGetTimestamp());&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Measure the race in calendar time elapsed since the minute began,&lt;br /&gt;
// if called in place of llGetTime.&lt;br /&gt;
//&lt;br /&gt;
// Note: &amp;quot;YYYY-MM-DDThh:mm:ss.ff..fZ&amp;quot; = llGetTimestamp();&lt;br /&gt;
// Note: 17 = 0 + llStringLength(&amp;quot;YYYY-MM-DDThh:mm:&amp;quot;)&lt;br /&gt;
// Note: -2 = -1 - llStringLength(&amp;quot;Z&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
float getTime()&lt;br /&gt;
{&lt;br /&gt;
    return (float) llGetSubString(llGetTimestamp(), 17, -2); // &amp;quot;ss.ff..f&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Race the runners and return the times when each ran.&lt;br /&gt;
// Run in llGetTime dilated script time or in getTime calendar time.&lt;br /&gt;
&lt;br /&gt;
list eachRunnerRun()&lt;br /&gt;
{&lt;br /&gt;
    list befores = [];&lt;br /&gt;
    integer runnablePlus = theRunnable + 1;&lt;br /&gt;
    integer running;&lt;br /&gt;
    for (running = 0; running &amp;lt; runnablePlus; ++running)&lt;br /&gt;
    {&lt;br /&gt;
        integer running = llList2Integer(theRunners, running);&lt;br /&gt;
        befores += llGetTime(); // choose script llGetTime or calendar getTime here&lt;br /&gt;
        run(running);&lt;br /&gt;
    }&lt;br /&gt;
    return befores;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Return elapsed run time per runner,&lt;br /&gt;
// else return [] if time ran backwards.&lt;br /&gt;
&lt;br /&gt;
list getRuntimesElseNone(list befores)&lt;br /&gt;
{&lt;br /&gt;
    list runtimes = [];&lt;br /&gt;
    float before = llList2Float(befores, 0);&lt;br /&gt;
    integer timing;&lt;br /&gt;
    for (timing = 0; timing &amp;lt; theRunnable; ++timing)&lt;br /&gt;
    {&lt;br /&gt;
        float after = llList2Float(befores, timing + 1);&lt;br /&gt;
        float runtime = after - before;&lt;br /&gt;
        if (runtime &amp;lt; 0.0) return [];&lt;br /&gt;
        runtimes += runtime;&lt;br /&gt;
        before = after;&lt;br /&gt;
    }&lt;br /&gt;
    return runtimes;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Add to a listed float.&lt;br /&gt;
&lt;br /&gt;
list addFloat(list sums, integer index, float addition)&lt;br /&gt;
{&lt;br /&gt;
    list results = [];&lt;br /&gt;
    integer summable = llGetListLength(sums);&lt;br /&gt;
    integer summing;&lt;br /&gt;
    for (summing = 0; summing &amp;lt; summable; ++summing)&lt;br /&gt;
    {&lt;br /&gt;
        float result = llList2Float(sums, summing);&lt;br /&gt;
        if (index == summing)&lt;br /&gt;
        {&lt;br /&gt;
            result += addition;&lt;br /&gt;
        }&lt;br /&gt;
        results += result;&lt;br /&gt;
    }&lt;br /&gt;
    return results;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Add to a listed integer.&lt;br /&gt;
&lt;br /&gt;
list addInteger(list sums, integer index, integer addition)&lt;br /&gt;
{&lt;br /&gt;
    list results = [];&lt;br /&gt;
    integer summable = llGetListLength(sums);&lt;br /&gt;
    integer summing;&lt;br /&gt;
    for (summing = 0; summing &amp;lt; summable; ++summing)&lt;br /&gt;
    {&lt;br /&gt;
        integer result = llList2Integer(sums, summing);&lt;br /&gt;
        if (index == summing)&lt;br /&gt;
        {&lt;br /&gt;
            result += addition;&lt;br /&gt;
        }&lt;br /&gt;
        results += result;&lt;br /&gt;
    }&lt;br /&gt;
    return results;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Race the runners once, vote to place, and sum run time per runner.&lt;br /&gt;
&lt;br /&gt;
runRace()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
    // Race the runners once.&lt;br /&gt;
&lt;br /&gt;
    list runtimes = getRuntimesElseNone(eachRunnerRun());&lt;br /&gt;
//  llOwnerSay(&amp;quot;[&amp;quot; + llDumpList2String(runtimes, &amp;quot;, &amp;quot;) + &amp;quot;] == runtimes&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    // Sort the runtimes into places.&lt;br /&gt;
&lt;br /&gt;
    list places = llListSort(runtimes, 1, TRUE); // sort least to most&lt;br /&gt;
    integer placeable = llGetListLength(places); // 0 or theRunnable&lt;br /&gt;
&lt;br /&gt;
    // Sum run time per runner.&lt;br /&gt;
&lt;br /&gt;
    integer adding;&lt;br /&gt;
    for (adding = 0; adding &amp;lt; placeable; ++adding)&lt;br /&gt;
    {&lt;br /&gt;
        integer running = llList2Integer(theRunners, adding);&lt;br /&gt;
        float runtime = llList2Float(runtimes, adding);&lt;br /&gt;
        theSums = addFloat(theSums, running, runtime);&lt;br /&gt;
        ++theAverageable;&lt;br /&gt;
&lt;br /&gt;
        // Vote to place at each equal runtime.&lt;br /&gt;
&lt;br /&gt;
        integer placing;&lt;br /&gt;
        for (placing = 0; placing &amp;lt; placeable; ++placing)&lt;br /&gt;
        {&lt;br /&gt;
            float placed = llList2Float(places, placing);&lt;br /&gt;
            if (runtime == placed)&lt;br /&gt;
            {&lt;br /&gt;
                integer flat = (running * placeable) + placing;&lt;br /&gt;
                theVotes = addInteger(theVotes, flat, 1);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Start up a burst of races.&lt;br /&gt;
&lt;br /&gt;
zeroBurst()&lt;br /&gt;
{&lt;br /&gt;
    theSums = theVotes = [];&lt;br /&gt;
    theRunnable = llGetListLength(theRunners);&lt;br /&gt;
    integer placing;&lt;br /&gt;
    for (placing = 0; placing &amp;lt; theRunnable; ++placing)&lt;br /&gt;
    {&lt;br /&gt;
        theSums += 0.0;&lt;br /&gt;
        integer running;&lt;br /&gt;
        for (running = 0; running &amp;lt; theRunnable; ++running)&lt;br /&gt;
        {&lt;br /&gt;
            theVotes += 0;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Report a burst of races.&lt;br /&gt;
&lt;br /&gt;
reportBurst(integer scaling)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
    // Consider each place.&lt;br /&gt;
&lt;br /&gt;
    integer placing;&lt;br /&gt;
    for (placing = 0; placing &amp;lt; theRunnable; ++placing)&lt;br /&gt;
    {&lt;br /&gt;
        list votes = llList2ListStrided(llList2List(theVotes, placing, -1), 0, -1, theRunnable);&lt;br /&gt;
        integer winner = llList2Integer(llListSort(votes, 1, TRUE), -1);&lt;br /&gt;
&lt;br /&gt;
        // Find the winner (or the winners) of that place.&lt;br /&gt;
&lt;br /&gt;
        integer running;&lt;br /&gt;
        for (running = 1; running &amp;lt; theRunnable; ++running)&lt;br /&gt;
        {&lt;br /&gt;
            integer vote4place = llList2Integer(votes, running); &lt;br /&gt;
            if (vote4place == winner)&lt;br /&gt;
            {&lt;br /&gt;
&lt;br /&gt;
                // Describe a winner.&lt;br /&gt;
&lt;br /&gt;
                float summed = llList2Float(theSums, running) - llList2Float(theSums, 0);&lt;br /&gt;
                float average = 1000.0 * (summed / theAverageable);&lt;br /&gt;
&lt;br /&gt;
                llOwnerSay(&amp;quot;~&amp;quot; +&lt;br /&gt;
                    (string) average + &amp;quot; ms elapsed in version &amp;quot; + (string) running +&lt;br /&gt;
                    &amp;quot; to place at &amp;quot; + (string) placing +&lt;br /&gt;
                    &amp;quot; by &amp;quot; + (string) vote4place + &amp;quot; of &amp;quot; + (string) scaling + &amp;quot; votes&amp;quot;&lt;br /&gt;
                );&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Run a few bursts of races at each scale, for indefinitely increasing scale.&lt;br /&gt;
&lt;br /&gt;
runRaceRepeatedly()&lt;br /&gt;
{&lt;br /&gt;
    integer scaleable = 10;&lt;br /&gt;
    integer repeatable = 2; // decide how often to repeat the first burst&lt;br /&gt;
    while (TRUE)&lt;br /&gt;
    {&lt;br /&gt;
        integer repeating;&lt;br /&gt;
        for (repeating = 0; repeating &amp;lt; repeatable; ++repeating)&lt;br /&gt;
        {&lt;br /&gt;
            zeroBurst();&lt;br /&gt;
&lt;br /&gt;
            integer scaling;&lt;br /&gt;
            for (scaling = 0; scaling &amp;lt; scaleable; ++scaling)&lt;br /&gt;
            {&lt;br /&gt;
                runRace();&lt;br /&gt;
                theRunners = llList2List(theRunners, -1, -1) + llList2List(theRunners, 0, -2);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            llOwnerSay(&amp;quot;&amp;quot;);&lt;br /&gt;
            reportBurst(scaling);&lt;br /&gt;
            llOwnerSay((string) llGetRegionTimeDilation() + &amp;quot; dilation @ &amp;quot; + llGetTimestamp());&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        scaleable *= 10;&lt;br /&gt;
        repeatable = 3; // decide how often to repeat the other bursts&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Race to measure relative run-time cost of multiple versions of code.&lt;br /&gt;
// Produce unreasonable answers when the run-time cost measured equals or exceeds 60 seconds.&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        startup();&lt;br /&gt;
        runRaceRepeatedly();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Instructions =&lt;br /&gt;
&lt;br /&gt;
This instrument quickly &amp;amp; accurately measures the run time difference between a number of fragments of code. For example, the code presented here measures the difference between the two fragments of code found inside the functions named runner1 and runner2. To measure other code, insert the code you want to compare into the runner1, runner2, runner3, etc. functions. See the source line that assigns [0, 1, 2] to theRunners? List all the runners you want to run there. Leave runner0 empty so that the harness correctly measures and subtracts out its own overhead.&lt;br /&gt;
&lt;br /&gt;
= Alternatives &amp;amp; Caveats =&lt;br /&gt;
&lt;br /&gt;
This instrument compares run times quickly, like 100X faster than the Efficiency Tester instrument. This instrument runs a number of fragments of code at a time, gives you immediate results and then progressively more accurate results over time, like when you slowly fetch a detailed image from the web. This instrument burns thru hugely much run time, so that it can provide immediate feedback to make work proceed when the work would otherwise be too hard &amp;amp; boring to attract enough volunteers. &lt;br /&gt;
&lt;br /&gt;
The [[Efficiency Tester]] instrument serves a different purpose. That instrument adds accuracy to a measure of a range of observed run times in as little time as possible. By simple arithmetic, running thru 200ms for 1,000 times necessarily takes at least 200s, aka, more than 3 minutes. That instrument runs one fragment of code at a time, but then runs that fragment many many times to try and average out any distractions that may hit the server during the run. That instrument actually can measure 200ms in as little as 10 minutes, but that instrument gives you no answer at all until after 10,000 runs and no final answer until after 30,000 runs.&lt;br /&gt;
&lt;br /&gt;
See the [[LSL Script Efficiency]] article for much discussion of the Efficiency Tester instrument, including recommendations on how to avoid distracting the server into spending run time running other code in parallel. Those same recommendation apply to any llGetTimestamp harness, including this instrument.&lt;br /&gt;
&lt;br /&gt;
Please do try to find deserted places to run such benchmarks and remember to turn them off when you finish! Else naturally you&#039;ll be rudely lagging the sim for the other people sharing the sim with you, for however long you run the benchmark.&lt;br /&gt;
&lt;br /&gt;
= See Also =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Functions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[llGetTime]] - fetch the (often zeroed) dilated time in seconds and fractional seconds &lt;br /&gt;
&lt;br /&gt;
[[llGetTimestamp]] - fetch the ISO 8601 &amp;quot;YYYY-MM-DDThh:mm:ss.ff..fZ&amp;quot; string that names the calendar date and time that is now&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Scripts&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Code Sizer]] - count bytes of code with perfect accuracy&lt;br /&gt;
&lt;br /&gt;
[[Efficiency Tester]] - run as long as you please to count approximate milliseconds of run time with every more accuracy&lt;br /&gt;
&lt;br /&gt;
{{Resource Conservation Portal Nav|cat=process}}&lt;br /&gt;
{{LSLC|Library}}{{LSLC|Examples}}&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LSL_Constants_vs_Globals&amp;diff=1188294</id>
		<title>LSL Constants vs Globals</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LSL_Constants_vs_Globals&amp;diff=1188294"/>
		<updated>2014-03-13T01:20:16Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: Replaced cat w nav&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are some advantages in using global variables over the string and key constants when programming in [[LSO]]; it&#039;s faster and uses less bytecode when it is longer than 3 characters and is used more than twice, but it uses more bytecode when it is shorter than 3 characters or is used once. This is easily demonstrated by running the scripts in Figure 1.&lt;br /&gt;
&lt;br /&gt;
However, this is only true for [[LSO]] compiled programs. If [[Mono]] is used, then the opposite is true and it uses less memory to use constants. Mono uses only one copy of a constant in memory. In the scripts in Figure 1, using constants saves the memory used to initialize the variable null_key. This is true if LL constants (like NULL_KEY) are used or if user supplied strings (such as &amp;quot;this is a string&amp;quot;) are used.&lt;br /&gt;
&lt;br /&gt;
===Pros when using LSO===&lt;br /&gt;
* Faster&lt;br /&gt;
* Uses less bytecode when it is longer than 3 characters and it used more than twice.&lt;br /&gt;
&lt;br /&gt;
===Cons===&lt;br /&gt;
* User can accidentally change the value.&lt;br /&gt;
* Uses more bytecode when it is shorter than 3 characters or it used once.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| {{Prettytable|style=margin-top:0;}}&lt;br /&gt;
|+ Figure 1: Bytecode Cost&lt;br /&gt;
|- {{Hl2}}&lt;br /&gt;
! Constant&lt;br /&gt;
! Global&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dead(){&lt;br /&gt;
    key a = NULL_KEY;&lt;br /&gt;
    key b = NULL_KEY;&lt;br /&gt;
    key c = NULL_KEY;&lt;br /&gt;
    key d = NULL_KEY;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
default {&lt;br /&gt;
    state_entry() {&lt;br /&gt;
        llOwnerSay((string) llGetFreeMemory());&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;lsl&amp;gt;key null_key = NULL_KEY;&lt;br /&gt;
&lt;br /&gt;
dead(){&lt;br /&gt;
    key a = null_key;&lt;br /&gt;
    key b = null_key;&lt;br /&gt;
    key c = null_key;&lt;br /&gt;
    key d = null_key;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
default {&lt;br /&gt;
    state_entry() {&lt;br /&gt;
        llOwnerSay((string) llGetFreeMemory());&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Resource Conservation Portal Nav|cat=memory}}&lt;br /&gt;
[[Category:LSL]]&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Template:Resource_Conservation_Portal_Nav/doc&amp;diff=1188292</id>
		<title>Template:Resource Conservation Portal Nav/doc</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Template:Resource_Conservation_Portal_Nav/doc&amp;diff=1188292"/>
		<updated>2014-03-13T01:16:30Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: making categories adaptable as pages are consolidated&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Resource Conservation Portal Navigation box.&lt;br /&gt;
&lt;br /&gt;
Usage:&amp;lt;nowiki&amp;gt;{{Resource Conservation Portal Nav|cat=memory}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Result: {{Resource Conservation Portal Nav|cat=memory}}&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Template:Resource_Conservation_Portal_Nav&amp;diff=1188291</id>
		<title>Template:Resource Conservation Portal Nav</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Template:Resource_Conservation_Portal_Nav&amp;diff=1188291"/>
		<updated>2014-03-13T01:16:21Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: start:placeholder for resource nav&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{{#switch:{{{cat|}}}&lt;br /&gt;
|memory = [[Category:Memory Conservation]]&lt;br /&gt;
|process = [[Category:Process-Time Conservation]]&lt;br /&gt;
|client = [[Category:Client Resource Conservation]]&lt;br /&gt;
|[[Category:Performance and stability]]&lt;br /&gt;
}}&amp;lt;/onlyinclude&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{{{PAGENAME}}/doc}} [[Category:KB Templates]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Category:Script_Resource_Conservation&amp;diff=1188287</id>
		<title>Category:Script Resource Conservation</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Category:Script_Resource_Conservation&amp;diff=1188287"/>
		<updated>2014-03-12T23:33:34Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: No LSL prefix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Category:Process-Time_Conservation&amp;diff=1188285</id>
		<title>Category:Process-Time Conservation</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Category:Process-Time_Conservation&amp;diff=1188285"/>
		<updated>2014-03-12T23:32:26Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: LSL cat prefix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:LSL Resource Conservation]]&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Category:LSL_Resource_Conservation&amp;diff=1188284</id>
		<title>Category:LSL Resource Conservation</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Category:LSL_Resource_Conservation&amp;diff=1188284"/>
		<updated>2014-03-12T23:31:41Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: +cat cat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Simulator Resource Conservation]]&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Category:Memory_Conservation&amp;diff=1188283</id>
		<title>Category:Memory Conservation</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Category:Memory_Conservation&amp;diff=1188283"/>
		<updated>2014-03-12T23:27:16Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: lsl prefix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:LSL Resource Conservation]]&lt;br /&gt;
[[Category:LSL Memory]]&lt;br /&gt;
[[Category:LSL]]&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Kizmut_Smit/ClientAssetKeys&amp;diff=1188281</id>
		<title>User:Kizmut Smit/ClientAssetKeys</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Kizmut_Smit/ClientAssetKeys&amp;diff=1188281"/>
		<updated>2014-03-12T23:16:04Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: start clientassetkeys&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Textures&lt;br /&gt;
Environment, Avatar, General UI, Inventory, Map, Find, Movement Controls, Edit Mode, Misc&lt;br /&gt;
Animations&lt;br /&gt;
Sounds&lt;br /&gt;
&lt;br /&gt;
==Textures==&lt;br /&gt;
===Environment===&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;width: 100%; border-collapse: separate; border-spacing: 0; border-width: 1px; border-style: solid; border-color: #000; padding: 0;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color: #dfd;&amp;quot;&lt;br /&gt;
!File&lt;br /&gt;
!UUID&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|alpha_gradient.tga||e97cf410-8e61-7005-ec06-629eba4cd1fb||Used for generating the texture for the ground dynamically. Also used for creating the &amp;quot;invisiprim&amp;quot; that hides avatars, prims with alpha values less than 1.0 and particle effects&lt;br /&gt;
|-&lt;br /&gt;
|alpha_gradient_2d.tga||38b86f85-2575-52a9-a531-23108d8da837||Used for generating the texture for the ground dynamically. Also used for creating the &amp;quot;invisiprim&amp;quot; that hides avatars, prims with alpha values less than 1.0 and particle effects&lt;br /&gt;
|-&lt;br /&gt;
|collision texture||35f217a3-f618-49cf-bbca-c86d486551a9||Sprite used to generate collision visual effect.&lt;br /&gt;
|-&lt;br /&gt;
|grass_texture_1.tga||79504bf5-c3ec-0763-6563-d843de66d0a1&lt;br /&gt;
|-&lt;br /&gt;
|grass_texture_2.tga||6c4727b8-ac79-ba44-3b81-f9aa887b47eb&lt;br /&gt;
|-&lt;br /&gt;
|grass_texture_3.tga||99bd60a2-3250-efc9-2e39-2fbcadefbecc&lt;br /&gt;
|-&lt;br /&gt;
|grass_texture_4.tga||7a2b3a4a-53c2-53ac-5716-aac7d743c020&lt;br /&gt;
|-&lt;br /&gt;
|noentrylines.tga||5d3e196b-fd4d-ada7-e4c1-99f8e9f1cfbf||Red &amp;quot;No entry of property&amp;quot; lines.&lt;br /&gt;
|-&lt;br /&gt;
|noentrypasslines.tga||ac8f8627-6a30-8da8-d4bd-958668eea7a0||Green &amp;quot;No entry of property, except with pass&amp;quot; lines.&lt;br /&gt;
|-&lt;br /&gt;
|propertyline.tga||e3548c46-8d5e-03da-fcab-4fc36ad818bb||Semi-transparent texture overlayed on the ground along the borders of a property when View&amp;gt;Show Property Lines is active.&lt;br /&gt;
|-&lt;br /&gt;
|terrain_dirt.tga||b8d3965a-ad78-bf43-699b-bff8eca6c975||Ground texture.&lt;br /&gt;
|-&lt;br /&gt;
|terrain_dirt_detail.tga||0bc58228-74a0-7e83-89bc-5c23464bcec5||Hi-res ground texture.&lt;br /&gt;
|-&lt;br /&gt;
|terrain_grass.tga||abb783e6-3e93-26c0-248a-247666855da3||Ground texture.&lt;br /&gt;
|-&lt;br /&gt;
|terrain_grass_detail.tga||63338ede-0037-c4fd-855b-015d77112fc8||Hi-res ground texture.&lt;br /&gt;
|-&lt;br /&gt;
|terrain_mountain.tga||179cdabd-398a-9b6b-1391-4dc333ba321f||Ground texture.&lt;br /&gt;
|-&lt;br /&gt;
|terrain_mountain_detail.tga||303cd381-8560-7579-23f1-f0a880799740||Hi-res ground texture.&lt;br /&gt;
|-&lt;br /&gt;
|terrain_rock.tga||beb169c7-11ea-fff2-efe5-0f24dc881df2||Ground texture.&lt;br /&gt;
|-&lt;br /&gt;
|terrain_rock_detail.tga||53a2f406-4895-1d13-d541-d2e3b86bc19c||Hi-res ground texture.&lt;br /&gt;
|-&lt;br /&gt;
|tree_beach_grass_1.tga||18fb888b-e8f1-dce7-7da7-321d651ea6b0&lt;br /&gt;
|-&lt;br /&gt;
|tree_cypress_1.tga||fb2ae204-3fd1-df33-594f-c9f882830e66&lt;br /&gt;
|-&lt;br /&gt;
|tree_cypress_2.tga||30047cec-269d-408e-0c30-b2603b887268&lt;br /&gt;
|-&lt;br /&gt;
|tree_dogwood.tga||64367bd1-697e-b3e6-0b65-3f862a577366&lt;br /&gt;
|-&lt;br /&gt;
|tree_eelgrass.tga||96b4de31-f4fa-337d-ec78-451e3609769e&lt;br /&gt;
|-&lt;br /&gt;
|tree_eucalyptus.tga||a6162133-724b-54df-a12f-51cd070ad6f3&lt;br /&gt;
|-&lt;br /&gt;
|tree_fern.tga||8872f2b8-31db-42d8-580a-b3e4a91262de&lt;br /&gt;
|-&lt;br /&gt;
|tree_kelp_1.tga||2caf1179-7861-6ff3-4b7d-46e17780bdfa&lt;br /&gt;
|-&lt;br /&gt;
|tree_kelp_2.tga||2a4880b6-b7a3-690a-2049-bfbe38eafb9f&lt;br /&gt;
|-&lt;br /&gt;
|tree_oak.tga||8a515889-eac9-fb55-8eba-d2dc09eb32c8&lt;br /&gt;
|-&lt;br /&gt;
|tree_palm_1.tga||ca4e8c27-473c-eb1c-2f5d-50ee3f07d85c&lt;br /&gt;
|-&lt;br /&gt;
|tree_palm_2.tga||2d784476-d0db-9979-0cff-9408745a7cf3&lt;br /&gt;
|-&lt;br /&gt;
|tree_pine_1.tga||0187babf-6c0d-5891-ebed-4ecab1426683&lt;br /&gt;
|-&lt;br /&gt;
|tree_pine_2.tga||d691a01c-13b7-578d-57c0-5caef0b4e7e1&lt;br /&gt;
|-&lt;br /&gt;
|tree_plumeria.tga||6de37e4e-7029-61f5-54b8-f5e63f983f58&lt;br /&gt;
|-&lt;br /&gt;
|tree_sea_sword.tga||5894e2e7-ab8d-edfa-e61c-18cf16854ba3&lt;br /&gt;
|-&lt;br /&gt;
|tree_tropical_1.tga||5bc11cd6-2f40-071e-a8da-0903394204f9&lt;br /&gt;
|-&lt;br /&gt;
|tree_tropical_2.tga||cdd9a9fc-6d0b-f90d-8416-c72b6019bca8&lt;br /&gt;
|-&lt;br /&gt;
|undergrowth_1.tga||8f458549-173b-23ff-d4ff-bfaa5ea2371b&lt;br /&gt;
|-&lt;br /&gt;
|water||2bfd3884-7e27-69b9-ba3a-3e673f680004||Semi-transparent blue texture shown on the surface of water.&lt;br /&gt;
|-&lt;br /&gt;
|winter_tree_aspen.tga||7c0cf89b-44b1-1ce2-dd74-07102a98ac2a&lt;br /&gt;
|-&lt;br /&gt;
|winter_tree_pine_1.tga||10d2a01a-0818-84b9-4b96-c2eb63256519&lt;br /&gt;
|-&lt;br /&gt;
|winter_tree_pine_2.tga||67931331-0c02-4876-1255-28770896c6a2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Avatar===&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;width: 100%; border-collapse: separate; border-spacing: 0; border-width: 1px; border-style: solid; border-color: #000; padding: 0;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color: #dfd;&amp;quot;&lt;br /&gt;
!File&lt;br /&gt;
!UUID&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|silhouette.tga||da5d4079-7819-6b53-d2a4-dc9929381d7d||The constant shadow cast by the avatar&#039;s feet?&lt;br /&gt;
|-&lt;br /&gt;
|avatar_thumb_bkgrnd.tga||3a7f4f0d-be14-ee78-29e3-fc8b0b2a68d3&lt;br /&gt;
|-&lt;br /&gt;
|eyes.tga||6522e74d-1660-4e7f-b601-6f48c1659a77&lt;br /&gt;
|-&lt;br /&gt;
|hair.tga||7ca39b4c-bd19-4699-aff7-f93fd03d3e7b&lt;br /&gt;
|-&lt;br /&gt;
|pixiesmall.tga||168e6813-096e-07ea-97ae-fd416826f627||The particle texture used as both the default texture for particles and for avatar editing beams.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===General UI===&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;width: 100%; border-collapse: separate; border-spacing: 0; border-width: 1px; border-style: solid; border-color: #000; padding: 0;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color: #dfd;&amp;quot;&lt;br /&gt;
!File&lt;br /&gt;
!UUID&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|button_disabled_32x128.tga||f8124d60-2875-c358-7847-2acb63e5400c&lt;br /&gt;
|-&lt;br /&gt;
|button_enabled_32x128.tga||d8faf8cb-ee6e-b0b5-abd9-bde873ad3461&lt;br /&gt;
|-&lt;br /&gt;
|button_enabled_selected_32x128.tga||1eddba75-b682-110a-104e-6cdcce616a25&lt;br /&gt;
|-&lt;br /&gt;
|cam_rotate_in.tga||70bf2262-3eed-4996-88ac-076907e8921d&lt;br /&gt;
|-&lt;br /&gt;
|cam_rotate_out.tga||88745b46-da05-11d5-8ac0-0003477c4611&lt;br /&gt;
|-&lt;br /&gt;
|cam_tracking_in.tga||fe2fc73b-5a64-4a8e-aacc-46fa81faf96a&lt;br /&gt;
|-&lt;br /&gt;
|cam_tracking_out.tga||95c4ea0e-e3c2-4904-b847-7d7676139ebb&lt;br /&gt;
|-&lt;br /&gt;
|cam_zoom_minus_in.tga||deed3f4b-93e9-4183-a3b0-a5a98a6de1bb&lt;br /&gt;
|-&lt;br /&gt;
|cam_zoom_out.tga||bb02e941-cb3b-4dd3-892a-6841b5de6e45&lt;br /&gt;
|-&lt;br /&gt;
|cam_zoom_plus_in.tga||c7aefd32-ce13-4242-82cc-2631d44ff9d3&lt;br /&gt;
|-&lt;br /&gt;
|checkbox_disabled_false.tga||7d94cb59-32a2-49bf-a516-9e5a2045f9d9&lt;br /&gt;
|-&lt;br /&gt;
|checkbox_disabled_true.tga||c817c642-9abd-4236-9287-ae0513fe7d2b&lt;br /&gt;
|-&lt;br /&gt;
|checkbox_enabled_false.tga||05bb64ee-96fd-4243-b74e-f40a41bc53ba&lt;br /&gt;
|-&lt;br /&gt;
|checkbox_enabled_true.tga||cf4a2ed7-1533-4686-9dde-df9a37ddca55&lt;br /&gt;
|-&lt;br /&gt;
|closebox.tga||47a8c844-cd2a-4b1a-be01-df8b1612fe5d&lt;br /&gt;
|-&lt;br /&gt;
|close_in_blue.tga||e5821134-23c0-4bd0-af06-7fa95b9fb01a&lt;br /&gt;
|-&lt;br /&gt;
|close_inactive_blue.tga||779e4fa3-9b13-f74a-fba9-3886fe9c86ba&lt;br /&gt;
|-&lt;br /&gt;
|combobox_arrow.tga||b31c1335-0e9c-4927-bc90-53277777d9c1&lt;br /&gt;
|-&lt;br /&gt;
|crosshairs.tga||6e1a3980-bf2d-4274-8970-91e60d85fb52||Texture for the mouselook crosshairs.&lt;br /&gt;
|-&lt;br /&gt;
|minimize.tga||34c9398d-bb78-4643-9633-46a2fa3e9637&lt;br /&gt;
|-&lt;br /&gt;
|minimize_inactive.tga||6e72abba-1378-437f-bf7a-f0c15f3e99a3&lt;br /&gt;
|-&lt;br /&gt;
|minimize_pressed.tga||39801651-26cb-4926-af57-7af9352c273c&lt;br /&gt;
|-&lt;br /&gt;
|notify_box_icon.tga||b2ef2d31-9714-a07b-6ca7-31638166364b&lt;br /&gt;
|-&lt;br /&gt;
|notify_next.tga||07d0ea4c-af0c-aad1-dbbf-c24020ff2b80&lt;br /&gt;
|-&lt;br /&gt;
|notify_tip_icon.tga||74ba3584-58ea-9984-5b76-62d37942ab77&lt;br /&gt;
|-&lt;br /&gt;
|radio_active_false.tga||7a1ba9b8-1047-4d1e-9cfc-bc478c80b63f&lt;br /&gt;
|-&lt;br /&gt;
|radio_active_true.tga||52f09e07-5816-4052-953c-94c6c10479b7&lt;br /&gt;
|-&lt;br /&gt;
|radio_inactive_false.tga||90688481-67ff-4af0-be69-4aa084bcad1e&lt;br /&gt;
|-&lt;br /&gt;
|radio_inactive_true.tga||1975db39-aa29-4251-aea0-409ac09d414d&lt;br /&gt;
|-&lt;br /&gt;
|resize_handle_bottom_right_blue.tga||e3690e25-9690-4f6c-a745-e7dcd885285a&lt;br /&gt;
|-&lt;br /&gt;
|restore.tga||111b39de-8928-4690-b7b2-e17d5c960277&lt;br /&gt;
|-&lt;br /&gt;
|restore_inactive.tga||0eafa471-70af-4882-b8c1-40a310929744&lt;br /&gt;
|-&lt;br /&gt;
|restore_pressed.tga||90a0ed5c-2e7b-4845-9958-a64a1b30f312&lt;br /&gt;
|-&lt;br /&gt;
|scrollbutton_down_in_blue.tga||d2421bab-2eaf-4863-b8f6-5e4c52519247&lt;br /&gt;
|-&lt;br /&gt;
|scrollbutton_down_out_blue.tga||b4ecdecf-5c8d-44e7-b882-17a77e88ed55&lt;br /&gt;
|-&lt;br /&gt;
|scrollbutton_left_in_blue.tga||ea137a32-6718-4d05-9c22-7d570d27b2cd&lt;br /&gt;
|-&lt;br /&gt;
|scrollbutton_left_out_blue.tga||43773e8d-49aa-48e0-80f3-a04715f4677a&lt;br /&gt;
|-&lt;br /&gt;
|scrollbutton_right_in_blue.tga||b749de64-e903-4c3c-ac0b-25fb6fa39cb5&lt;br /&gt;
|-&lt;br /&gt;
|scrollbutton_right_out_blue.tga||3d700d19-e708-465d-87f2-46c8c0ee7938&lt;br /&gt;
|-&lt;br /&gt;
|scrollbutton_up_in_blue.tga||a93abdf3-27b5-4e22-a8fa-c48216cd2e3a&lt;br /&gt;
|-&lt;br /&gt;
|scrollbutton_up_out_blue.tga||dad084d7-9a46-452a-b0ff-4b9f1cefdde9&lt;br /&gt;
|-&lt;br /&gt;
|spin_down_in_blue.tga||a985ac71-052f-48e6-9c33-d931c813ac92&lt;br /&gt;
|-&lt;br /&gt;
|spin_down_out_blue.tga||b6d240dd-5602-426f-b606-bbb49a30726d&lt;br /&gt;
|-&lt;br /&gt;
|spin_up_in_blue.tga||c8450082-96a0-4319-8090-d3ff900b4954&lt;br /&gt;
|-&lt;br /&gt;
|spin_up_out_blue.tga||56576e6e-6710-4e66-89f9-471b59122794&lt;br /&gt;
|-&lt;br /&gt;
|square_btn_32x128.tga||b28df901-6b8d-d31c-7903-4eb9676d4bfc&lt;br /&gt;
|-&lt;br /&gt;
|square_btn_selected_32x128.tga||c48c9e95-191b-96d3-08b2-6e8ada58b651&lt;br /&gt;
|-&lt;br /&gt;
|startup_logo.tga||66864f3c-e095-d9c8-058d-d6575e6ed1b8&lt;br /&gt;
|-&lt;br /&gt;
|status_build.tga||175a6b75-45c9-c2c2-4765-bf37a3909b53||No-build land status symbol.&lt;br /&gt;
|-&lt;br /&gt;
|status_busy.tga||beb0d821-6725-abdf-032d-1f70cdabde82||Busy mode symbol.&lt;br /&gt;
|-&lt;br /&gt;
|status_fly.tga||0e058115-5b8f-c3d7-dcaa-9623d92885d1||No-fly land status symbol.&lt;br /&gt;
|-&lt;br /&gt;
|status_health.tga||4330e8ce-b39b-1eb8-c2ec-a97c0b3947b5||Health-enabled area symbol.&lt;br /&gt;
|-&lt;br /&gt;
|status_money.tga||5863eb7a-1546-6501-533a-6061f73a36b7||L$ symbol.&lt;br /&gt;
|-&lt;br /&gt;
|status_scripts.tga||4cc1afcd-04dd-178f-e074-0f9dc730ab45||No-scripts land status symbol.&lt;br /&gt;
|-&lt;br /&gt;
|tab_bottom_blue.tga||bf0a8779-689b-48c3-bb9a-6af546366ef4&lt;br /&gt;
|-&lt;br /&gt;
|tab_bottom_selected_blue.tga||c001d8fd-a869-4b6f-86a1-fdcb106df9c7&lt;br /&gt;
|-&lt;br /&gt;
|tab_left.tga||1097dcb3-aef9-8152-f471-431d840ea89e&lt;br /&gt;
|-&lt;br /&gt;
|tab_left_selected.tga||bea77041-5835-1661-f298-47e2d32b7a70&lt;br /&gt;
|-&lt;br /&gt;
|tab_top_blue.tga||1ed83f57-41cf-4052-a3b4-2e8bb78d8191&lt;br /&gt;
|-&lt;br /&gt;
|tab_top_selected_blue.tga||16d032e8-817b-4368-8a4e-b7b947ae3889&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Inventory===&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;width: 100%; border-collapse: separate; border-spacing: 0; border-width: 1px; border-style: solid; border-color: #000; padding: 0;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color: #dfd;&amp;quot;&lt;br /&gt;
!Filename&lt;br /&gt;
!UUID&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|button_anim_pause.tga||db2d9c2d-0bbd-21e2-e83a-103ea2def7a8&lt;br /&gt;
|-&lt;br /&gt;
|button_anim_pause_selected.tga||ad65d67a-777b-fbfa-693d-4bdcfca2acca&lt;br /&gt;
|-&lt;br /&gt;
|button_anim_play.tga||2a7f6738-5d82-2ff3-d419-30ed09cbb72b&lt;br /&gt;
|-&lt;br /&gt;
|button_anim_play_selected.tga||119c37bb-24af-45fe-ae11-3a6bc3c85138&lt;br /&gt;
|-&lt;br /&gt;
|button_anim_stop.tga||e10c9e36-d9f6-c8b4-de96-557dccce9205&lt;br /&gt;
|-&lt;br /&gt;
|button_anim_stop_selected.tga||b8c0e0aa-2771-439e-c919-d2f5dad69a1c&lt;br /&gt;
|-&lt;br /&gt;
|container_animation.tga||c4e657a1-4c86-0159-2da0-32ff948484e6&lt;br /&gt;
|-&lt;br /&gt;
|container_bodypart.tga||770cb2df-758d-34d5-36c7-e3de06db5b5d&lt;br /&gt;
|-&lt;br /&gt;
|container_clothing.tga||dd90406f-4c8f-a3f9-41df-d562f94f09e0&lt;br /&gt;
|-&lt;br /&gt;
|container_gesture.tga||59cd31c0-2791-3c48-f740-f0a36c68653e||If a gesture is dragged out of inventory onto the ground, it appears contained in a cube with this texture applied to it.&lt;br /&gt;
|-&lt;br /&gt;
|container_landmark.tga||24c63386-04f7-ce6f-4ff2-dfb215d2e21f||If a landmark is dragged out of inventory onto the ground, it appears contained in a cube with this texture applied to it.&lt;br /&gt;
|-&lt;br /&gt;
|container_many_things.tga||849d3292-d9fa-7186-5465-dd7b5fc1ec48||If multiple inventory items (or a folder is) are selected, and dragged on to the ground, they appear in the contents of a cube with this texture applied to it.&lt;br /&gt;
|-&lt;br /&gt;
|container_object.tga||ad887ae1-2bee-f2c9-6786-5599de3c95c4&lt;br /&gt;
|-&lt;br /&gt;
|container_script.tga||b93bd494-c4bd-bcdf-4a59-35a9497d03f3||If a script is dragged out of inventory onto the ground, it appears contained in a cube with this texture applied to it.&lt;br /&gt;
|-&lt;br /&gt;
|container_sound.tga||5ddea031-cfa3-2776-43e3-c7146c1b4cd6||If a sound is dragged out of inventory onto the ground, it appears contained in a cube with this texture applied to it.&lt;br /&gt;
|-&lt;br /&gt;
|container_texture.tga||b3f95caf-bd62-bef3-0ded-dea752920629||If a texture is dragged out of inventory onto the ground, it appears contained in a cube with this texture applied to it.&lt;br /&gt;
|-&lt;br /&gt;
|inv_folder_animation.tga||4d59b3ee-f29d-b912-2bcc-9bb1f8a07ec6||Icon used for the &amp;quot;Animations&amp;quot; inventory folder.&lt;br /&gt;
|-&lt;br /&gt;
|inv_folder_bodypart.tga||1fe05580-1d2f-0345-b28b-52b6e3a20e5d||Icon used for the &amp;quot;Bodyparts&amp;quot; inventory folder.&lt;br /&gt;
|-&lt;br /&gt;
|inv_folder_callingcard.tga||a3735971-e2b2-d78a-580d-d265cd8f2484||Icon used for the &amp;quot;Calling Cards&amp;quot; inventory folder.&lt;br /&gt;
|-&lt;br /&gt;
|inv_folder_clothing.tga||f1427d3d-b2e8-97c4-69ab-1f36d4c0e8f0||Icon used for the &amp;quot;Clothing&amp;quot; inventory folder.&lt;br /&gt;
|-&lt;br /&gt;
|inv_folder_gesture.tga||4de9129a-9fc1-d759-d739-364293906ba2||Icon used for the &amp;quot;Gestures&amp;quot; inventory folder.&lt;br /&gt;
|-&lt;br /&gt;
|inv_folder_landmark.tga||9f921155-7c8c-e276-d5ec-03ac9340584d||Icon used for the &amp;quot;Landmarks&amp;quot; inventory folder.&lt;br /&gt;
|-&lt;br /&gt;
|inv_folder_lostandfound.tga||9a371a04-297d-bacf-0d16-5f49753efe1d||Icon used for the &amp;quot;Lost and Found&amp;quot; inventory folder.&lt;br /&gt;
|-&lt;br /&gt;
|inv_folder_notecard.tga||a9e75d84-5073-9cb7-10a9-1ca68ef5c7ba||Icon used for the &amp;quot;Notecards&amp;quot; inventory folder.&lt;br /&gt;
|-&lt;br /&gt;
|inv_folder_object.tga||113e5133-fd0d-ee51-4a59-9d67ca10e8a7||Icon used for the &amp;quot;Objects&amp;quot; inventory folder.&lt;br /&gt;
|-&lt;br /&gt;
|inv_folder_plain_closed.tga||86f00960-c3e9-9680-145d-3beffd743e9c||Icon used for closed inventory folders.&lt;br /&gt;
|-&lt;br /&gt;
|inv_folder_plain_open.tga||d15dc243-2d0b-47af-0ce1-ec376464bdc8||Icon used for open inventory folders.&lt;br /&gt;
|-&lt;br /&gt;
|inv_folder_script.tga||baa5c310-6a6d-cc48-51eb-65196ba31d77||Icon used for the &amp;quot;Scripts&amp;quot; inventory folder.&lt;br /&gt;
|-&lt;br /&gt;
|inv_folder_snapshot.tga||6efe85e7-800f-1843-296c-a5b7adffe091||Icon used for the &amp;quot;Snapshots&amp;quot; inventory folder.&lt;br /&gt;
|-&lt;br /&gt;
|inv_folder_sound.tga||e10cb910-1e71-da47-bd12-8c53f7793714||Icon used for the &amp;quot;Sounds&amp;quot; inventory folder.&lt;br /&gt;
|-&lt;br /&gt;
|inv_folder_texture.tga||743f035b-a049-43f4-16c7-7ec8daa2c481||Icon used for the &amp;quot;Textures&amp;quot; inventory folder.&lt;br /&gt;
|-&lt;br /&gt;
|inv_folder_trash.tga||88ad072e-ea0b-aabd-5ac0-b37862a6eb66||Icon used for the &amp;quot;Trash&amp;quot; inventory folder.&lt;br /&gt;
|-&lt;br /&gt;
|inv_item_animation.tga||b5cda0d6-d196-ce48-63db-d04323ef8931||Icon used to represent a texture inventory item.&lt;br /&gt;
|-&lt;br /&gt;
|inv_item_attach.tga||5bcae41e-aa5d-02f8-edf1-605ebdd875ab||Icon used to represent a texture inventory item.&lt;br /&gt;
|-&lt;br /&gt;
|inv_item_bodypart.tga||d2a5362d-5c55-57dd-a9e9-5c814d1ddc16||Icon used to represent a texture inventory item.&lt;br /&gt;
|-&lt;br /&gt;
|inv_item_callingcard_offline.tga||d0afe86b-2489-7600-55b7-6abb0a63d9f9||Icon used to represent an offline calling card.&lt;br /&gt;
|-&lt;br /&gt;
|inv_item_callingcard_online.tga||672cc53e-8dc0-ba91-2a4e-574104cf071c||Icon used to represent an online calling card.&lt;br /&gt;
|-&lt;br /&gt;
|inv_item_clothing.tga||34dfe476-8e26-0e3a-11cf-76cc4a7126ce||Icon used to represent a clothing inventory item.&lt;br /&gt;
|-&lt;br /&gt;
|inv_item_eyes.tga||eaa5fd96-5c25-06ef-2280-7ef20203e167||Icon used to represent eye settings.&lt;br /&gt;
|-&lt;br /&gt;
|inv_item_gesture.tga||5579245d-d5bf-5f13-46b0-8624490de24c||Icon used to represent a gesture inventory item.&lt;br /&gt;
|-&lt;br /&gt;
|inv_item_gloves.tga||117b11cb-c04e-5081-13da-1a8846070fd0||Icon used to represent a texture inventory item.&lt;br /&gt;
|-&lt;br /&gt;
|inv_item_hair.tga||6bca3bf4-ed6d-d438-63a0-2a7066d03a0b||Icon used to represent hair settings.&lt;br /&gt;
|-&lt;br /&gt;
|inv_item_jacket.tga||8df59386-56e0-c811-0443-840da3acb3a5||Icon used to represent a jacket inventory item.&lt;br /&gt;
|-&lt;br /&gt;
|inv_item_landmark.tga||bf25a2a0-85da-7fa0-0993-e461768d0221||Icon used to represent an unvisited landmark.&lt;br /&gt;
|-&lt;br /&gt;
|inv_item_landmark_visited.tga||229fac85-5428-4ab7-adeb-eb8389e91092||Icon used to represent a visited landmark.&lt;br /&gt;
|-&lt;br /&gt;
|inv_item_notecard.tga||23ce8a2c-9ea2-d863-6572-806f0645b0c7||Icon used to represent a notecard inventory item.&lt;br /&gt;
|-&lt;br /&gt;
|inv_item_object.tga||0f0780a0-89c4-742a-ef28-26405a41cf85||Icon used to represent a object inventory item.&lt;br /&gt;
|-&lt;br /&gt;
|inv_item_pants.tga||a87a58ca-f857-63b1-0acf-072711ed1bdb||Icon used to represent a pants inventory item.&lt;br /&gt;
|-&lt;br /&gt;
|inv_item_script.tga||59a3df81-ed76-06c9-7264-6dada535e7a3||Icon used to represent a script inventory item.&lt;br /&gt;
|-&lt;br /&gt;
|inv_item_shape.tga||4463e433-4db5-79ef-c1b0-4821b03ddb07||Icon used to represent a shape inventory item.&lt;br /&gt;
|-&lt;br /&gt;
|inv_item_shirt.tga||e2ffb62b-6abc-22d6-952d-764759b4d636||Icon used to represent a shirt inventory item.&lt;br /&gt;
|-&lt;br /&gt;
|inv_item_shoes.tga||cf384fa5-1edd-c37c-2134-283dd4fe3396||Icon used to represent a shoes inventory item.&lt;br /&gt;
|-&lt;br /&gt;
|inv_item_skirt.tga||0b43f826-2abc-2944-7d72-10777a51d19b||Icon used to represent a skirt inventory item.&lt;br /&gt;
|-&lt;br /&gt;
|inv_item_snapshot.tga||3810d584-b092-7caa-57e0-010f192b9659||Icon used to represent a snapshot inventory item.&lt;br /&gt;
|-&lt;br /&gt;
|inv_item_socks.tga||22137c6d-6ec5-6eee-9a2e-2d7a9e6cbcd4||Icon used to represent a socks inventory item.&lt;br /&gt;
|-&lt;br /&gt;
|inv_item_sound.tga||eb414d69-c77d-d4e7-66e6-6c2e6f6c1976||Icon used to represent a sound inventory item.&lt;br /&gt;
|-&lt;br /&gt;
|inv_item_texture.tga||19f452d7-4eee-9f46-76cc-5497d17f1dd9||Icon used to represent a texture inventory item.&lt;br /&gt;
|-&lt;br /&gt;
|inv_item_underpants.tga||2f15dc09-4385-526c-aa5d-d9d516ec7d99||Icon used to represent a underpants inventory item.&lt;br /&gt;
|-&lt;br /&gt;
|inv_item_undershirt.tga||f72ab629-a3ab-de0c-35c0-5285e27478ce||Icon used to represent a undershirt inventory item.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Map===&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;width: 100%; border-collapse: separate; border-spacing: 0; border-width: 1px; border-style: solid; border-color: #000; padding: 0;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color: #dfd;&amp;quot;&lt;br /&gt;
!File&lt;br /&gt;
!UUID&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|compass markers||79156764-de98-4815-9d50-b10a7646bcf4&lt;br /&gt;
|-&lt;br /&gt;
|direction_arrow.tga||586383e8-4d9b-4fba-9196-2b5938e79c2c&lt;br /&gt;
|-&lt;br /&gt;
|map_avatar_16.tga||db0dadd5-026a-88cf-f5c1-523a0a2daa3e&lt;br /&gt;
|-&lt;br /&gt;
|map_avatar_8.tga||0be58a91-8065-c02b-7a12-2cc14dddbc37&lt;br /&gt;
|-&lt;br /&gt;
|map_avatar_you_8.tga||02fbdc40-5e07-a6e1-228b-58e10f8335b7&lt;br /&gt;
|-&lt;br /&gt;
|map_event.tga||6008be5e-9267-2a3a-9798-e81b076c22ca||Map event icon&lt;br /&gt;
|-&lt;br /&gt;
|map_event_mature.tga||f9cdba28-a227-d613-2f16-ce06209314ae||Map mature event icon&lt;br /&gt;
|-&lt;br /&gt;
|map_home.tga||ae9b8f5f-03a1-2e71-db77-6eb27a1ba181||Map telehub icon&lt;br /&gt;
|-&lt;br /&gt;
|map_telehub.tga||bf1b2bb0-13b1-40ae-3354-b1b93761bdb4||Map telehub icon&lt;br /&gt;
|-&lt;br /&gt;
|map_track_16.tga||a3878395-ef00-a0e6-ee9a-f45ed6b9ce59&lt;br /&gt;
|-&lt;br /&gt;
|map_track_8.tga||bfdc7bf6-e2ee-1754-f4df-cc25887714ad&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Find===&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;width: 100%; border-collapse: separate; border-spacing: 0; border-width: 1px; border-style: solid; border-color: #000; padding: 0;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color: #dfd;&amp;quot;&lt;br /&gt;
!File&lt;br /&gt;
!UUID&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|icon_auction.tga||96abf5b1-335c-6b76-61e3-74ada07f3cb8&lt;br /&gt;
|-&lt;br /&gt;
|icon_avatar_offline.tga||34648c67-5bfb-5790-e05e-8bd6600fd087&lt;br /&gt;
|-&lt;br /&gt;
|icon_avatar_online.tga||529ed15b-3d41-dcc1-79de-90bf21770b5b&lt;br /&gt;
|-&lt;br /&gt;
|icon_day_cycle.tga||5b30a285-f1e3-92b1-dcd3-0d07366ced3e&lt;br /&gt;
|-&lt;br /&gt;
|icon_event.tga||be235ae0-53cf-1d68-b3ae-cf375ed1fb58&lt;br /&gt;
|-&lt;br /&gt;
|icon_event_mature.tga||cc090999-1b3e-2e97-7a38-c9f4afd10297&lt;br /&gt;
|-&lt;br /&gt;
|icon_for_sale.tga||f20728fd-1670-3771-2293-e0dd3f0bcaab&lt;br /&gt;
|-&lt;br /&gt;
|icon_group.tga||04237108-a879-5a95-9b0c-b18fd09bc447&lt;br /&gt;
|-&lt;br /&gt;
|icon_land_for_landless.tga||c421ddf2-b9d7-b373-503c-f4c423f37f1c&lt;br /&gt;
|-&lt;br /&gt;
|icon_place.tga||ba0bac4e-815e-14e1-2895-5065b8c703b3&lt;br /&gt;
|-&lt;br /&gt;
|icon_popular.tga||bdd47da5-5b5b-c906-37ad-16aaa64f096f&lt;br /&gt;
|-&lt;br /&gt;
|icon_top_pick.tga||77ca91a2-4431-aeaf-6249-3dd99c7dd86d&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Movement Controls===&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;width: 100%; border-collapse: separate; border-spacing: 0; border-width: 1px; border-style: solid; border-color: #000; padding: 0;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color: #dfd;&amp;quot;&lt;br /&gt;
!File&lt;br /&gt;
!UUID&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|move_backward_in.tga||db11d956-5e7d-4aa5-b39d-7774d339fc5c&lt;br /&gt;
|-&lt;br /&gt;
|move_backward_out.tga||3ae8bb18-ed97-4cd3-ae5c-d54bc8479fe7&lt;br /&gt;
|-&lt;br /&gt;
|move_down_in.tga||b92a70b9-c841-4c94-b4b3-cee9eb460d48&lt;br /&gt;
|-&lt;br /&gt;
|move_down_out.tga||b5abc9fa-9e62-4e03-bc33-82c4c1b6b689&lt;br /&gt;
|-&lt;br /&gt;
|move_forward_in.tga||54197a61-f5d1-4c29-95d2-c071d08849cb&lt;br /&gt;
|-&lt;br /&gt;
|move_forward_out.tga||a0eb4021-1b20-4a53-892d-8faa9265a6f5&lt;br /&gt;
|-&lt;br /&gt;
|move_left_in.tga||724996f5-b956-46f6-9844-4fcfce1d5e83&lt;br /&gt;
|-&lt;br /&gt;
|move_left_out.tga||82476321-0374-4c26-9567-521535ab4cd7&lt;br /&gt;
|-&lt;br /&gt;
|move_right_in.tga||7eeb57d2-3f37-454d-a729-8b217b8be443&lt;br /&gt;
|-&lt;br /&gt;
|move_right_out.tga||1fbe4e60-0607-44d1-a50a-032eff56ae75&lt;br /&gt;
|-&lt;br /&gt;
|move_turn_left_in.tga||95463c78-aaa6-464d-892d-3a805b6bb7bf&lt;br /&gt;
|-&lt;br /&gt;
|move_turn_left_out.tga||13a93910-6b44-45eb-ad3a-4d1324c59bac&lt;br /&gt;
|-&lt;br /&gt;
|move_turn_right_in.tga||5e616d0d-4335-476f-9977-560bccd009da&lt;br /&gt;
|-&lt;br /&gt;
|move_turn_right_out.tga||5a44fd04-f52b-4c30-8b00-4a31e27614bd&lt;br /&gt;
|-&lt;br /&gt;
|move_up_in.tga||49b4b357-e430-4b56-b9e0-05b8759c3c82&lt;br /&gt;
|-&lt;br /&gt;
|move_up_out.tga||f887146d-829f-4e39-9211-cf872b78f97c&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Edit Mode===&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;width: 100%; border-collapse: separate; border-spacing: 0; border-width: 1px; border-style: solid; border-color: #000; padding: 0;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color: #dfd;&amp;quot;&lt;br /&gt;
!File&lt;br /&gt;
!UUID&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|bump_bark.tga||6c9fa78a-1c69-2168-325b-3e03ffa348ce||Bumpieness&lt;br /&gt;
|-&lt;br /&gt;
|bump_bricks.tga||b8eed5f0-64b7-6e12-b67f-43fa8e773440||Bumpieness&lt;br /&gt;
|-&lt;br /&gt;
|bump_checker.tga||9deab416-9c63-78d6-d558-9a156f12044c||Bumpieness&lt;br /&gt;
|-&lt;br /&gt;
|bump_concrete.tga||db9d39ec-a896-c287-1ced-64566217021e||Bumpieness&lt;br /&gt;
|-&lt;br /&gt;
|bump_crustytile.tga||f2d7b6f6-4200-1e9a-fd5b-96459e950f94||Bumpieness&lt;br /&gt;
|-&lt;br /&gt;
|bump_cutstone.tga||d9258671-868f-7511-c321-7baef9e948a4||Bumpieness&lt;br /&gt;
|-&lt;br /&gt;
|bump_discs.tga||d21e44ca-ff1c-a96e-b2ef-c0753426b7d9||Bumpieness&lt;br /&gt;
|-&lt;br /&gt;
|bump_gravel.tga||4726f13e-bd07-f2fb-feb0-bfa2ac58ab61||Bumpieness&lt;br /&gt;
|-&lt;br /&gt;
|bump_petridish.tga||e569711a-27c2-aad4-9246-0c910239a179||Bumpieness&lt;br /&gt;
|-&lt;br /&gt;
|bump_siding.tga||073c9723-540c-5449-cdd4-0e87fdc159e3||Bumpieness&lt;br /&gt;
|-&lt;br /&gt;
|bump_stonetile.tga||ae874d1a-93ef-54fb-5fd3-eb0cb156afc0||Bumpieness&lt;br /&gt;
|-&lt;br /&gt;
|bump_stucco.tga||92e66e00-f56f-598a-7997-048aa64cde18||Bumpieness&lt;br /&gt;
|-&lt;br /&gt;
|bump_suction.tga||83b77fc6-10b4-63ec-4de7-f40629f238c5||Bumpieness&lt;br /&gt;
|-&lt;br /&gt;
|bump_weave.tga||735198cf-6ea0-2550-e222-21d3c6a341ae||Bumpieness&lt;br /&gt;
|-&lt;br /&gt;
|bump_woodgrain.tga||058c75c0-a0d5-f2f8-43f3-e9699a89c2fc||Bumpieness&lt;br /&gt;
|-&lt;br /&gt;
|missing_asset.tga||32dfd1c8-7ff6-5909-d983-6d4adfb4255d||MISSING IMAGE&lt;br /&gt;
|-&lt;br /&gt;
|object_cone.tga||c2b8c90a-7dca-26e3-1a63-7aa4a0389cf9||Build tools Cone object type icon&lt;br /&gt;
|-&lt;br /&gt;
|object_cone_active.tga||cf69c64b-f19e-e1f3-a586-42fef31a23be||Build tools Cone object selected icon&lt;br /&gt;
|-&lt;br /&gt;
|object_cube.tga||70c747ac-1de3-a8b9-514d-101753ca6ccb||Build tools Cube object type icon&lt;br /&gt;
|-&lt;br /&gt;
|object_cube_active.tga||f9c5e213-1076-7a7d-7889-52388aad2c1a||Build tools Cube object selected icon&lt;br /&gt;
|-&lt;br /&gt;
|object_cylinder.tga||13e35d95-5f6c-9a91-1766-49dedf9b1267||Build tools Cylinder object type icon&lt;br /&gt;
|-&lt;br /&gt;
|object_cylinder_active.tga||3f3e4932-8412-e2a7-cfe9-92caf5978b1b||Build tools Cylinder object selected icon&lt;br /&gt;
|-&lt;br /&gt;
|object_grass.tga||7ca8e672-920b-4653-3970-1abc91abef58||Build tools Grass object type icon&lt;br /&gt;
|-&lt;br /&gt;
|object_grass_active.tga||d0fc7cc9-646a-6860-cf7c-1d9e58cd6dab||Build tools Grass object selected icon&lt;br /&gt;
|-&lt;br /&gt;
|object_hemi_cone.tga||69d5e60c-739a-40b1-b526-84072121e394||Build tools half-cone object type icon&lt;br /&gt;
|-&lt;br /&gt;
|object_hemi_cone_active.tga||2e0c5435-95bb-1c0d-5da1-42336fb1cfc0||Build tools half-cone object selected icon&lt;br /&gt;
|-&lt;br /&gt;
|object_hemi_cylinder.tga||f4be3e06-24a8-f86e-acc7-7daefc0572b7||Build tools half-cylinder object type icon&lt;br /&gt;
|-&lt;br /&gt;
|object_hemi_cylinder_active.tga||67279486-cfc1-3633-de42-85db65db373c||Build tools half-cylinder object selected icon&lt;br /&gt;
|-&lt;br /&gt;
|object_hemi_sphere.tga||b67251ab-1716-b9fb-f911-967ba3fe027b||Build tools half-sphere object type icon&lt;br /&gt;
|-&lt;br /&gt;
|object_hemi_sphere_active.tga||6c489466-3058-6475-6b1b-e5fc1d49f1f3||Build tools half-sphere object selected icon&lt;br /&gt;
|-&lt;br /&gt;
|object_prism.tga||02935f3a-dcda-3b42-1874-da89d4c12870||Build tools Prism object type icon&lt;br /&gt;
|-&lt;br /&gt;
|object_prism_active.tga||223aac97-bd2f-ec2e-ad45-5641b77c78f9||Build tools Prism object selected icon&lt;br /&gt;
|-&lt;br /&gt;
|object_pyramid.tga||9dde8b56-2cc4-a932-b63a-38c3a83221ad||Build tools Pyramid object type icon&lt;br /&gt;
|-&lt;br /&gt;
|object_pyramid_active.tga||e7217b1a-e3d8-e339-d28a-d7714d0b5bee||Build tools Pyramid object selected icon&lt;br /&gt;
|-&lt;br /&gt;
|object_ring.tga||a7610e41-4647-16d8-0e0e-85a1211c1596||Build tools Ring object type icon&lt;br /&gt;
|-&lt;br /&gt;
|object_ring_active.tga||2c955a73-fa31-237b-a4a1-5c8ede3bae50||Build tools Ring object selected icon&lt;br /&gt;
|-&lt;br /&gt;
|object_sphere.tga||7fa122c0-b994-460e-8636-cdc451d67268||Build tools Sphere object type icon&lt;br /&gt;
|-&lt;br /&gt;
|object_sphere_active.tga||f2c3bcbc-2904-41a5-1c22-688f176fd1ee||Build tools Sphere object selected icon&lt;br /&gt;
|-&lt;br /&gt;
|object_tetrahedron.tga||e17db404-9fc5-9534-1038-777c82b2771f||Build tools Tetrahedron object type icon&lt;br /&gt;
|-&lt;br /&gt;
|object_tetrahedron_active.tga||2792ea3b-c052-85fe-d168-a62b2f4e9d7c||Build tools Tetrahedron object selected icon&lt;br /&gt;
|-&lt;br /&gt;
|object_torus.tga||19e1f4c9-6aa6-4414-981d-59a1343a6472||Build tools Torus object type icon&lt;br /&gt;
|-&lt;br /&gt;
|object_torus_active.tga||ef2bca77-5004-4547-b00a-3b96e463f89f||Build tools Torus object selected icon&lt;br /&gt;
|-&lt;br /&gt;
|object_tree.tga||710d1bec-fb33-28f1-e77e-ddbb5b51f5ed||Build tools Tree object type icon&lt;br /&gt;
|-&lt;br /&gt;
|object_tree_active.tga||da4835c7-b12a-41dd-11db-dae452f040c2||Build tools Tree object selected icon&lt;br /&gt;
|-&lt;br /&gt;
|object_tube.tga||7ce81316-a478-480f-961c-435fcbdecaf0||Build tools Tube object type icon&lt;br /&gt;
|-&lt;br /&gt;
|object_tube_active.tga||55c3e4d1-cfdc-48a8-af32-a34844b91832||Build tools Tube object selected icon&lt;br /&gt;
|-&lt;br /&gt;
|plywood (default object texture)||89556747-24cb-43ed-920b-47caed15465f||The default texture prims are set to upon creation.&lt;br /&gt;
|-&lt;br /&gt;
|selected texture||a85ac674-cb75-4af6-9499-df7c5aaf7a28||Texture of crosshairs that is overlayed onto the selected texture in &amp;quot;Select Texture&amp;quot; mode.&lt;br /&gt;
|-&lt;br /&gt;
|tool_dozer.tga||d2a0d4d4-54eb-4d16-be4b-4eae43845c74&lt;br /&gt;
|-&lt;br /&gt;
|tool_dozer_active.tga||d4afdbbe-1550-4b7d-91de-95731f47e8e3&lt;br /&gt;
|-&lt;br /&gt;
|tool_land.tga||86fe4df4-0ecb-4382-b9ae-475925a92388&lt;br /&gt;
|-&lt;br /&gt;
|tool_land_active.tga||34e60587-0791-4a07-8918-f5995fcc22a3&lt;br /&gt;
|-&lt;br /&gt;
|tool_orbit.tga||06964fe4-033f-448a-95c9-30dc41d1be8b&lt;br /&gt;
|-&lt;br /&gt;
|tool_orbit_active.tga||ee4e07db-3f72-4098-bd4c-aef34515a7bc&lt;br /&gt;
|-&lt;br /&gt;
|tool_pan.tga||a32aa302-0a15-48d2-b2b1-4d69f1161173&lt;br /&gt;
|-&lt;br /&gt;
|tool_pan_active.tga||24d9ad33-0b42-4eb5-99a3-659d838bc5c0&lt;br /&gt;
|-&lt;br /&gt;
|tool_zoom.tga||27eb8829-fe65-45ed-a49a-73aac42f4b38&lt;br /&gt;
|-&lt;br /&gt;
|tool_zoom_active.tga||69445f58-5c8e-44e0-9d2e-47408bb43b39&lt;br /&gt;
|-&lt;br /&gt;
|white.tga||5748decc-f629-461c-9a36-a35a221fe21f||The &amp;quot;blank&amp;quot; texture.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;width: 100%; border-collapse: separate; border-spacing: 0; border-width: 1px; border-style: solid; border-color: #000; padding: 0;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color: #dfd;&amp;quot;&lt;br /&gt;
!File&lt;br /&gt;
!UUID&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|alpha_noise.tga||b9e1cf8a-9660-c020-0c69-18f1ea27268a&lt;br /&gt;
|-&lt;br /&gt;
|alpha_sizzle.tga||e121e2fc-7573-740f-edfd-0d45a9ba486e||Possibly a texture used to generate clouds? Also the texture used for unloaded textures in the texture picker&lt;br /&gt;
|-&lt;br /&gt;
|black.tga||e2244626-f22f-4839-8123-1e7baddeb659&lt;br /&gt;
|-&lt;br /&gt;
|darkgray.tga||267e26d3-e0e1-41b8-91b1-3b337102928d&lt;br /&gt;
|-&lt;br /&gt;
|legend.tga||ca7609c6-6ec6-32d9-332e-0d8f437ef644&lt;br /&gt;
|-&lt;br /&gt;
|lightning||f8e2c2f0-7d5e-bb9a-68d0-7a3e87984784&lt;br /&gt;
|-&lt;br /&gt;
|lightning (flipped horizontally)||eef34d99-4f5b-efa1-4586-b4853c430dd3&lt;br /&gt;
|-&lt;br /&gt;
|lightgray.tga||c520bf46-cc5d-412b-a60b-9f1bd245189f&lt;br /&gt;
|-&lt;br /&gt;
|rounded_square.tga||38ce8b3c-fb30-5c59-9926-bd643613f606&lt;br /&gt;
|-&lt;br /&gt;
|rounded_square_soft.tga||4c95e6bc-fe77-9cb4-b58a-909848042c1e&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Animations==&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;width: 100%; border-collapse: separate; border-spacing: 0; border-width: 1px; border-style: solid; border-color: #000; padding: 0;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color: #dfd;&amp;quot;&lt;br /&gt;
!File&lt;br /&gt;
!UUID&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|avatar_aim_l_bow.bvh||46bb4359-de38-4ed8-6a22-f1f52fe8f506&lt;br /&gt;
|-&lt;br /&gt;
|avatar_aim_r_bazooka.bvh||b5b4a67d-0aee-30d2-72cd-77b333e932ef&lt;br /&gt;
|-&lt;br /&gt;
|avatar_aim_r_handgun.bvh||3147d815-6338-b932-f011-16b56d9ac18b&lt;br /&gt;
|-&lt;br /&gt;
|avatar_aim_r_rifle.bvh||ea633413-8006-180a-c3ba-96dd1d756720&lt;br /&gt;
|-&lt;br /&gt;
|avatar_angry_fingerwag.bvh||c1bc7f36-3ba0-d844-f93c-93be945d644f&lt;br /&gt;
|-&lt;br /&gt;
|avatar_angry_tantrum.bvh||11000694-3f41-adc2-606b-eee1d66f3724&lt;br /&gt;
|-&lt;br /&gt;
|avatar_away.bvh||fd037134-85d4-f241-72c6-4f42164fedee&lt;br /&gt;
|-&lt;br /&gt;
|avatar_backflip.bvh||c4ca6188-9127-4f31-0158-23c4e2f93304&lt;br /&gt;
|-&lt;br /&gt;
|avatar_blowkiss.bvh||db84829b-462c-ee83-1e27-9bbee66bd624&lt;br /&gt;
|-&lt;br /&gt;
|avatar_bow.bvh||82e99230-c906-1403-4d9c-3889dd98daba&lt;br /&gt;
|-&lt;br /&gt;
|avatar_brush.bvh||349a3801-54f9-bf2c-3bd0-1ac89772af01&lt;br /&gt;
|-&lt;br /&gt;
|avatar_busy.bvh||efcf670c-2d18-8128-973a-034ebc806b67&lt;br /&gt;
|-&lt;br /&gt;
|avatar_clap.bvh||9b0c1c4e-8ac7-7969-1494-28c874c4f668&lt;br /&gt;
|-&lt;br /&gt;
|avatar_courtbow.bvh||9ba1c942-08be-e43a-fb29-16ad440efc50&lt;br /&gt;
|-&lt;br /&gt;
|avatar_crouch.bvh||201f3fdf-cb1f-dbec-201f-7333e328ae7c&lt;br /&gt;
|-&lt;br /&gt;
|avatar_crouchwalk.bvh||47f5f6fb-22e5-ae44-f871-73aaaf4a6022&lt;br /&gt;
|-&lt;br /&gt;
|avatar_dance1.bvh||b68a3d7c-de9e-fc87-eec8-543d787e5b0d&lt;br /&gt;
|-&lt;br /&gt;
|avatar_dance2.bvh||928cae18-e31d-76fd-9cc9-2f55160ff818&lt;br /&gt;
|-&lt;br /&gt;
|avatar_dance3.bvh||30047778-10ea-1af7-6881-4db7a3a5a114&lt;br /&gt;
|-&lt;br /&gt;
|avatar_dance4.bvh||951469f4-c7b2-c818-9dee-ad7eea8c30b7&lt;br /&gt;
|-&lt;br /&gt;
|avatar_dance5.bvh||4bd69a1d-1114-a0b4-625f-84e0a5237155&lt;br /&gt;
|-&lt;br /&gt;
|avatar_dance6.bvh||cd28b69b-9c95-bb78-3f94-8d605ff1bb12&lt;br /&gt;
|-&lt;br /&gt;
|avatar_dance7.bvh||a54d8ee2-28bb-80a9-7f0c-7afbbe24a5d6&lt;br /&gt;
|-&lt;br /&gt;
|avatar_dance8.bvh||b0dc417c-1f11-af36-2e80-7e7489fa7cdc&lt;br /&gt;
|-&lt;br /&gt;
|avatar_dead.bvh||57abaae6-1d17-7b1b-5f98-6d11a6411276&lt;br /&gt;
|-&lt;br /&gt;
|avatar_drink.bvh||0f86e355-dd31-a61c-fdb0-3a96b9aad05f&lt;br /&gt;
|-&lt;br /&gt;
|avatar_express_afraid.bvh||6b61c8e8-4747-0d75-12d7-e49ff207a4ca&lt;br /&gt;
|-&lt;br /&gt;
|avatar_express_afraid_emote.bvh||aa2df84d-cf8f-7218-527b-424a52de766e&lt;br /&gt;
|-&lt;br /&gt;
|avatar_express_anger.bvh||5747a48e-073e-c331-f6f3-7c2149613d3e&lt;br /&gt;
|-&lt;br /&gt;
|avatar_express_anger_emote.bvh||1a03b575-9634-b62a-5767-3a679e81f4de&lt;br /&gt;
|-&lt;br /&gt;
|avatar_express_bored.bvh||b906c4ba-703b-1940-32a3-0c7f7d791510&lt;br /&gt;
|-&lt;br /&gt;
|avatar_express_bored_emote.bvh||214aa6c1-ba6a-4578-f27c-ce7688f61d0d&lt;br /&gt;
|-&lt;br /&gt;
|avatar_express_cry.bvh||92624d3e-1068-f1aa-a5ec-8244585193ed&lt;br /&gt;
|-&lt;br /&gt;
|avatar_express_cry_emote.bvh||d535471b-85bf-3b4d-a542-93bea4f59d33&lt;br /&gt;
|-&lt;br /&gt;
|avatar_express_disdain.bvh||d4416ff1-09d3-300f-4183-1b68a19b9fc1&lt;br /&gt;
|-&lt;br /&gt;
|avatar_express_embarrassed_emote.bvh||0b8c8211-d78c-33e8-fa28-c51a9594e424&lt;br /&gt;
|-&lt;br /&gt;
|avatar_express_frown.bvh||fee3df48-fa3d-1015-1e26-a205810e3001&lt;br /&gt;
|-&lt;br /&gt;
|avatar_express_kiss.bvh||1e8d90cc-a84e-e135-884c-7c82c8b03a14&lt;br /&gt;
|-&lt;br /&gt;
|avatar_express_laugh.bvh||18b3a4b5-b463-bd48-e4b6-71eaac76c515&lt;br /&gt;
|-&lt;br /&gt;
|avatar_express_laugh_emote.bvh||62570842-0950-96f8-341c-809e65110823&lt;br /&gt;
|-&lt;br /&gt;
|avatar_express_open_mouth.bvh||d63bc1f9-fc81-9625-a0c6-007176d82eb7&lt;br /&gt;
|-&lt;br /&gt;
|avatar_express_repulsed.bvh||36f81a92-f076-5893-dc4b-7c3795e487cf&lt;br /&gt;
|-&lt;br /&gt;
|avatar_express_repulsed_emote.bvh||f76cda94-41d4-a229-2872-e0296e58afe1&lt;br /&gt;
|-&lt;br /&gt;
|avatar_express_sad.bvh||0eb702e2-cc5a-9a88-56a5-661a55c0676a&lt;br /&gt;
|-&lt;br /&gt;
|avatar_express_sad_emote.bvh||eb6ebfb2-a4b3-a19c-d388-4dd5c03823f7&lt;br /&gt;
|-&lt;br /&gt;
|avatar_express_shrug.bvh||70ea714f-3a97-d742-1b01-590a8fcd1db5&lt;br /&gt;
|-&lt;br /&gt;
|avatar_express_shrug_emote.bvh||a351b1bc-cc94-aac2-7bea-a7e6ebad15ef&lt;br /&gt;
|-&lt;br /&gt;
|avatar_express_smile.bvh||b7c7c833-e3d3-c4e3-9fc0-131237446312&lt;br /&gt;
|-&lt;br /&gt;
|avatar_express_surprise.bvh||313b9881-4302-73c0-c7d0-0e7a36b6c224&lt;br /&gt;
|-&lt;br /&gt;
|avatar_express_surprise_emote.bvh||728646d9-cc79-08b2-32d6-937f0a835c24&lt;br /&gt;
|-&lt;br /&gt;
|avatar_express_tongue_out.bvh||835965c6-7f2f-bda2-5deb-2478737f91bf&lt;br /&gt;
|-&lt;br /&gt;
|avatar_express_toothsmile.bvh||b92ec1a5-e7ce-a76b-2b05-bcdb9311417e&lt;br /&gt;
|-&lt;br /&gt;
|avatar_express_wink.bvh||869ecdad-a44b-671e-3266-56aef2e3ac2e&lt;br /&gt;
|-&lt;br /&gt;
|avatar_express_wink_emote.bvh||da020525-4d94-59d6-23d7-81fdebf33148&lt;br /&gt;
|-&lt;br /&gt;
|avatar_express_worry.bvh||9f496bd2-589a-709f-16cc-69bf7df1d36c&lt;br /&gt;
|-&lt;br /&gt;
|avatar_express_worry_emote.bvh||9c05e5c7-6f07-6ca4-ed5a-b230390c3950&lt;br /&gt;
|-&lt;br /&gt;
|avatar_falldown.bvh||666307d9-a860-572d-6fd4-c3ab8865c094&lt;br /&gt;
|-&lt;br /&gt;
|avatar_female_walk.bvh||f5fc7433-043d-e819-8298-f519a119b688&lt;br /&gt;
|-&lt;br /&gt;
|avatar_fist_pump.bvh||7db00ccd-f380-f3ee-439d-61968ec69c8a&lt;br /&gt;
|-&lt;br /&gt;
|avatar_fly.bvh||aec4610c-757f-bc4e-c092-c6e9caf18daf&lt;br /&gt;
|-&lt;br /&gt;
|avatar_flyslow.bvh||2b5a38b2-5e00-3a97-a495-4c826bc443e6&lt;br /&gt;
|-&lt;br /&gt;
|avatar_hello.bvh||9b29cd61-c45b-5689-ded2-91756b8d76a9&lt;br /&gt;
|-&lt;br /&gt;
|avatar_hold_l_bow.bvh||8b102617-bcba-037b-86c1-b76219f90c88&lt;br /&gt;
|-&lt;br /&gt;
|avatar_hold_r_bazooka.bvh||ef62d355-c815-4816-2474-b1acc21094a6&lt;br /&gt;
|-&lt;br /&gt;
|avatar_hold_r_handgun.bvh||efdc1727-8b8a-c800-4077-975fc27ee2f2&lt;br /&gt;
|-&lt;br /&gt;
|avatar_hold_r_rifle.bvh||3d94bad0-c55b-7dcc-8763-033c59405d33&lt;br /&gt;
|-&lt;br /&gt;
|avatar_hold_throw_r.bvh||7570c7b5-1f22-56dd-56ef-a9168241bbb6&lt;br /&gt;
|-&lt;br /&gt;
|avatar_hover.bvh||4ae8016b-31b9-03bb-c401-b1ea941db41d&lt;br /&gt;
|-&lt;br /&gt;
|avatar_hover_down.bvh||20f063ea-8306-2562-0b07-5c853b37b31e&lt;br /&gt;
|-&lt;br /&gt;
|avatar_hover_up.bvh||62c5de58-cb33-5743-3d07-9e4cd4352864&lt;br /&gt;
|-&lt;br /&gt;
|avatar_impatient.bvh||5ea3991f-c293-392e-6860-91dfa01278a3&lt;br /&gt;
|-&lt;br /&gt;
|avatar_jump.bvh||2305bd75-1ca9-b03b-1faa-b176b8a8c49e&lt;br /&gt;
|-&lt;br /&gt;
|avatar_jumpforjoy.bvh||709ea28e-1573-c023-8bf8-520c8bc637fa&lt;br /&gt;
|-&lt;br /&gt;
|avatar_kick_roundhouse_r.bvh||49aea43b-5ac3-8a44-b595-96100af0beda&lt;br /&gt;
|-&lt;br /&gt;
|avatar_kissmybutt.bvh||19999406-3a3a-d58c-a2ac-d72e555dcf51&lt;br /&gt;
|-&lt;br /&gt;
|avatar_land.bvh||7a17b059-12b2-41b1-570a-186368b6aa6f&lt;br /&gt;
|-&lt;br /&gt;
|avatar_laugh_short.bvh||ca5b3f14-3194-7a2b-c894-aa699b718d1f&lt;br /&gt;
|-&lt;br /&gt;
|avatar_motorcycle_sit.bvh||08464f78-3a8e-2944-cba5-0c94aff3af29&lt;br /&gt;
|-&lt;br /&gt;
|avatar_musclebeach.bvh||315c3a41-a5f3-0ba4-27da-f893f769e69b&lt;br /&gt;
|-&lt;br /&gt;
|avatar_no_head.bvh||5a977ed9-7f72-44e9-4c4c-6e913df8ae74&lt;br /&gt;
|-&lt;br /&gt;
|avatar_no_unhappy.bvh||d83fa0e5-97ed-7eb2-e798-7bd006215cb4&lt;br /&gt;
|-&lt;br /&gt;
|avatar_nyanya.bvh||f061723d-0a18-754f-66ee-29a44795a32f&lt;br /&gt;
|-&lt;br /&gt;
|avatar_peace.bvh||b312b10e-65ab-a0a4-8b3c-1326ea8e3ed9&lt;br /&gt;
|-&lt;br /&gt;
|avatar_point_me.bvh||17c024cc-eef2-f6a0-3527-9869876d7752&lt;br /&gt;
|-&lt;br /&gt;
|avatar_point_you.bvh||ec952cca-61ef-aa3b-2789-4d1344f016de&lt;br /&gt;
|-&lt;br /&gt;
|avatar_prejump.bvh||7a4e87fe-de39-6fcb-6223-024b00893244&lt;br /&gt;
|-&lt;br /&gt;
|avatar_punch_l.bvh||f3300ad9-3462-1d07-2044-0fef80062da0&lt;br /&gt;
|-&lt;br /&gt;
|avatar_punch_onetwo.bvh||eefc79be-daae-a239-8c04-890f5d23654a&lt;br /&gt;
|-&lt;br /&gt;
|avatar_punch_r.bvh||c8e42d32-7310-6906-c903-cab5d4a34656&lt;br /&gt;
|-&lt;br /&gt;
|avatar_rps_countdown.bvh||35db4f7e-28c2-6679-cea9-3ee108f7fc7f&lt;br /&gt;
|-&lt;br /&gt;
|avatar_rps_paper.bvh||0836b67f-7f7b-f37b-c00a-460dc1521f5a&lt;br /&gt;
|-&lt;br /&gt;
|avatar_rps_rock.bvh||42dd95d5-0bc6-6392-f650-777304946c0f&lt;br /&gt;
|-&lt;br /&gt;
|avatar_rps_scissors.bvh||16803a9f-5140-e042-4d7b-d28ba247c325&lt;br /&gt;
|-&lt;br /&gt;
|avatar_run.bvh||05ddbff8-aaa9-92a1-2b74-8fe77a29b445&lt;br /&gt;
|-&lt;br /&gt;
|avatar_salute.bvh||cd7668a6-7011-d7e2-ead8-fc69eff1a104&lt;br /&gt;
|-&lt;br /&gt;
|avatar_shoot_l_bow.bvh||e04d450d-fdb5-0432-fd68-818aaf5935f8&lt;br /&gt;
|-&lt;br /&gt;
|avatar_shout.bvh||6bd01860-4ebd-127a-bb3d-d1427e8e0c42&lt;br /&gt;
|-&lt;br /&gt;
|avatar_sit.bvh||1a5fe8ac-a804-8a5d-7cbd-56bd83184568&lt;br /&gt;
|-&lt;br /&gt;
|avatar_sit_female.bvh||b1709c8d-ecd3-54a1-4f28-d55ac0840782&lt;br /&gt;
|-&lt;br /&gt;
|avatar_sit_generic.bvh||245f3c54-f1c0-bf2e-811f-46d8eeb386e7&lt;br /&gt;
|-&lt;br /&gt;
|avatar_sit_ground.bvh||1c7600d6-661f-b87b-efe2-d7421eb93c86&lt;br /&gt;
|-&lt;br /&gt;
|avatar_sit_to_stand.bvh||a8dee56f-2eae-9e7a-05a2-6fb92b97e21e&lt;br /&gt;
|-&lt;br /&gt;
|avatar_sleep.bvh||f2bed5f9-9d44-39af-b0cd-257b2a17fe40&lt;br /&gt;
|-&lt;br /&gt;
|avatar_smoke_idle.bvh||d2f2ee58-8ad1-06c9-d8d3-3827ba31567a&lt;br /&gt;
|-&lt;br /&gt;
|avatar_smoke_inhale.bvh||6802d553-49da-0778-9f85-1599a2266526&lt;br /&gt;
|-&lt;br /&gt;
|avatar_smoke_throw_down.bvh||0a9fb970-8b44-9114-d3a9-bf69cfe804d6&lt;br /&gt;
|-&lt;br /&gt;
|avatar_snapshot.bvh||eae8905b-271a-99e2-4c0e-31106afd100c&lt;br /&gt;
|-&lt;br /&gt;
|avatar_soft_land.bvh||f4f00d6e-b9fe-9292-f4cb-0ae06ea58d57&lt;br /&gt;
|-&lt;br /&gt;
|avatar_stand.bvh||2408fe9e-df1d-1d7d-f4ff-1384fa7b350f&lt;br /&gt;
|-&lt;br /&gt;
|avatar_stand_1.bvh||15468e00-3400-bb66-cecc-646d7c14458e&lt;br /&gt;
|-&lt;br /&gt;
|avatar_stand_2.bvh||370f3a20-6ca6-9971-848c-9a01bc42ae3c&lt;br /&gt;
|-&lt;br /&gt;
|avatar_stand_3.bvh||42b46214-4b44-79ae-deb8-0df61424ff4b&lt;br /&gt;
|-&lt;br /&gt;
|avatar_stand_4.bvh||f22fed8b-a5ed-2c93-64d5-bdd8b93c889f&lt;br /&gt;
|-&lt;br /&gt;
|avatar_standup.bvh||3da1d753-028a-5446-24f3-9c9b856d9422&lt;br /&gt;
|-&lt;br /&gt;
|avatar_stretch.bvh||80700431-74ec-a008-14f8-77575e73693f&lt;br /&gt;
|-&lt;br /&gt;
|avatar_stride.bvh||1cb562b0-ba21-2202-efb3-30f82cdf9595&lt;br /&gt;
|-&lt;br /&gt;
|avatar_surf.bvh||41426836-7437-7e89-025d-0aa4d10f1d69&lt;br /&gt;
|-&lt;br /&gt;
|avatar_sword_strike_r.bvh||85428680-6bf9-3e64-b489-6f81087c24bd&lt;br /&gt;
|-&lt;br /&gt;
|avatar_talk.bvh||5c682a95-6da4-a463-0bf6-0f5b7be129d1&lt;br /&gt;
|-&lt;br /&gt;
|avatar_throw_r.bvh||aa134404-7dac-7aca-2cba-435f9db875ca&lt;br /&gt;
|-&lt;br /&gt;
|avatar_tryon_shirt.bvh||83ff59fe-2346-f236-9009-4e3608af64c1&lt;br /&gt;
|-&lt;br /&gt;
|avatar_turn_180.bvh||038fcec9-5ebd-8a8e-0e2e-6e71a0a1ac53&lt;br /&gt;
|-&lt;br /&gt;
|avatar_turnback_180.bvh||6883a61a-b27b-5914-a61e-dda118a9ee2c&lt;br /&gt;
|-&lt;br /&gt;
|avatar_turnleft.bvh||56e0ba0d-4a9f-7f27-6117-32f2ebbf6135&lt;br /&gt;
|-&lt;br /&gt;
|avatar_turnright.bvh||2d6daa51-3192-6794-8e2e-a15f8338ec30&lt;br /&gt;
|-&lt;br /&gt;
|avatar_type.bvh||c541c47f-e0c0-058b-ad1a-d6ae3a4584d9&lt;br /&gt;
|-&lt;br /&gt;
|avatar_walk.bvh||6ed24bd8-91aa-4b12-ccc7-c97c857ab4e0&lt;br /&gt;
|-&lt;br /&gt;
|avatar_whisper.bvh||7693f268-06c7-ea71-fa21-2b30d6533f8f&lt;br /&gt;
|-&lt;br /&gt;
|avatar_whistle.bvh||b1ed7982-c68e-a982-7561-52a88a5298c0&lt;br /&gt;
|-&lt;br /&gt;
|avatar_wink_hollywood.bvh||c0c4030f-c02b-49de-24ba-2331f43fe41c&lt;br /&gt;
|-&lt;br /&gt;
|avatar_yes_happy.bvh||b8c8b2a3-9008-1771-3bfc-90924955ab2d&lt;br /&gt;
|-&lt;br /&gt;
|avatar_yes_head.bvh||15dd911d-be82-2856-26db-27659b142875&lt;br /&gt;
|-&lt;br /&gt;
|avatar_yoga_float.bvh||42ecd00b-9947-a97c-400a-bbc9174c7aeb&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Sounds==&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; style=&amp;quot;width: 100%; border-collapse: separate; border-spacing: 0; border-width: 1px; border-style: solid; border-color: #000; padding: 0;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color: #dfd;&amp;quot;&lt;br /&gt;
!Sound&lt;br /&gt;
!UUID&lt;br /&gt;
|-&lt;br /&gt;
|bell ting||ed124764-705d-d497-167a-182cd9fa2e6c&lt;br /&gt;
|-&lt;br /&gt;
|click||4c8c3c77-de8d-bde2-b9b8-32635e0fd4a6&lt;br /&gt;
|-&lt;br /&gt;
|health reduction (female)||219c5d93-6c09-31c5-fb3f-c5fe7495c115&lt;br /&gt;
|-&lt;br /&gt;
|health reduction (male)||e057c244-5768-1056-c37e-1537454eeb62&lt;br /&gt;
|-&lt;br /&gt;
|IM session, new incoming (2 bells)||67cc2844-00f3-2b3c-b991-6418d01e1bb7&lt;br /&gt;
|-&lt;br /&gt;
|IM start||c825dfbc-9827-7e02-6507-3713d18916c1&lt;br /&gt;
|-&lt;br /&gt;
|instant message notification||67cc2844-00f3-2b3c-b991-6418d01e1bb7&lt;br /&gt;
|-&lt;br /&gt;
|invalid operation||4174f859-0d3d-c517-c424-72923dc21f65&lt;br /&gt;
|-&lt;br /&gt;
|keyboard loop||5e191c7b-8996-9ced-a177-b2ac32bfea06&lt;br /&gt;
|-&lt;br /&gt;
|money change, down (coins)||77a018af-098e-c037-51a6-178f05877c6f&lt;br /&gt;
|-&lt;br /&gt;
|money change, up (cash register bell)||104974e3-dfda-428b-99ee-b0d4e748d3a3&lt;br /&gt;
|-&lt;br /&gt;
|null keystroke||2ca849ba-2885-4bc3-90ef-d4987a5b983a&lt;br /&gt;
|-&lt;br /&gt;
|object collision||be582e5d-b123-41a2-a150-454c39e961c8&lt;br /&gt;
|-&lt;br /&gt;
|object collision (rubber)||212b6d1e-8d9c-4986-b3aa-f3c6df8d987d&lt;br /&gt;
|-&lt;br /&gt;
|object collision (plastic)||d55c7f3c-e1c3-4ddc-9eff-9ef805d9190e&lt;br /&gt;
|-&lt;br /&gt;
|object collision (flesh)||2d8c6f51-149e-4e23-8413-93a379b42b67&lt;br /&gt;
|-&lt;br /&gt;
|object collision (wood splintering?)||6f00669f-15e0-4793-a63e-c03f62fee43a&lt;br /&gt;
|-&lt;br /&gt;
|object collision (glass break)||85cda060-b393-48e6-81c8-2cfdfb275351&lt;br /&gt;
|-&lt;br /&gt;
|object collision (metal clunk)||d1375446-1c4d-470b-9135-30132433b678&lt;br /&gt;
|-&lt;br /&gt;
|object create (whoosh)||f4a0660f-5446-dea2-80b7-6482a082803c&lt;br /&gt;
|-&lt;br /&gt;
|object delete||0cb7b00a-4c10-6948-84de-a93c09af2ba9&lt;br /&gt;
|-&lt;br /&gt;
|object rez (shake)||3c8fc726-1fd6-862d-fa01-16c5b2568db6&lt;br /&gt;
|-&lt;br /&gt;
|pie menu appear (ding)||8eaed61f-92ff-6485-de83-4dcc938a478e&lt;br /&gt;
|-&lt;br /&gt;
|pie menu slice highlight||d9f73cf8-17b4-6f7a-1565-7951226c305d&lt;br /&gt;
|-&lt;br /&gt;
|pie menu slice highlight1||f6ba9816-dcaf-f755-7b67-51b31b6233e5&lt;br /&gt;
|-&lt;br /&gt;
|pie menu slice highlight2||7aff2265-d05b-8b72-63c7-dbf96dc2f21f&lt;br /&gt;
|-&lt;br /&gt;
|pie menu slice highlight3||09b2184e-8601-44e2-afbb-ce37434b8ba1&lt;br /&gt;
|-&lt;br /&gt;
|pie menu slice highlight4||bbe4c7fc-7044-b05e-7b89-36924a67593c&lt;br /&gt;
|-&lt;br /&gt;
|pie menu slice highlight5||d166039b-b4f5-c2ec-4911-c85c727b016c&lt;br /&gt;
|-&lt;br /&gt;
|pie menu slice highlight6||242af82b-43c2-9a3b-e108-3b0c7e384981&lt;br /&gt;
|-&lt;br /&gt;
|pie menu slice highlight7||c1f334fb-a5be-8fe7-22b3-29631c21cf0b&lt;br /&gt;
|-&lt;br /&gt;
|snapshot||3d09f582-3851-c0e0-f5ba-277ac5c73fb4&lt;br /&gt;
|-&lt;br /&gt;
|teleport/texture apply||d7a9a565-a013-2a69-797d-5332baa1a947&lt;br /&gt;
|-&lt;br /&gt;
|thunder||e95c96a5-293c-bb7a-57ad-ce2e785ad85f&lt;br /&gt;
|-&lt;br /&gt;
|window close||2c346eda-b60c-ab33-1119-b8941916a499&lt;br /&gt;
|-&lt;br /&gt;
|window open||c80260ba-41fd-8a46-768a-6bf236360e3a&lt;br /&gt;
|-&lt;br /&gt;
|zipper/squeek||6cf2be26-90cb-2669-a599-f5ab7698225f&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Category:Simulator_Resource_Conservation&amp;diff=1188092</id>
		<title>Category:Simulator Resource Conservation</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Category:Simulator_Resource_Conservation&amp;diff=1188092"/>
		<updated>2014-03-06T00:57:22Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: +catcat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Categories]]&lt;br /&gt;
[[Category:Performance_and_stability]]&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LSL_Constants_vs_Globals&amp;diff=1188091</id>
		<title>LSL Constants vs Globals</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LSL_Constants_vs_Globals&amp;diff=1188091"/>
		<updated>2014-03-06T00:56:20Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: +cats&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are some advantages in using global variables over the string and key constants when programming in [[LSO]]; it&#039;s faster and uses less bytecode when it is longer than 3 characters and is used more than twice, but it uses more bytecode when it is shorter than 3 characters or is used once. This is easily demonstrated by running the scripts in Figure 1.&lt;br /&gt;
&lt;br /&gt;
However, this is only true for [[LSO]] compiled programs. If [[Mono]] is used, then the opposite is true and it uses less memory to use constants. Mono uses only one copy of a constant in memory. In the scripts in Figure 1, using constants saves the memory used to initialize the variable null_key. This is true if LL constants (like NULL_KEY) are used or if user supplied strings (such as &amp;quot;this is a string&amp;quot;) are used.&lt;br /&gt;
&lt;br /&gt;
===Pros when using LSO===&lt;br /&gt;
* Faster&lt;br /&gt;
* Uses less bytecode when it is longer than 3 characters and it used more than twice.&lt;br /&gt;
&lt;br /&gt;
===Cons===&lt;br /&gt;
* User can accidentally change the value.&lt;br /&gt;
* Uses more bytecode when it is shorter than 3 characters or it used once.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| {{Prettytable|style=margin-top:0;}}&lt;br /&gt;
|+ Figure 1: Bytecode Cost&lt;br /&gt;
|- {{Hl2}}&lt;br /&gt;
! Constant&lt;br /&gt;
! Global&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dead(){&lt;br /&gt;
    key a = NULL_KEY;&lt;br /&gt;
    key b = NULL_KEY;&lt;br /&gt;
    key c = NULL_KEY;&lt;br /&gt;
    key d = NULL_KEY;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
default {&lt;br /&gt;
    state_entry() {&lt;br /&gt;
        llOwnerSay((string) llGetFreeMemory());&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;lsl&amp;gt;key null_key = NULL_KEY;&lt;br /&gt;
&lt;br /&gt;
dead(){&lt;br /&gt;
    key a = null_key;&lt;br /&gt;
    key b = null_key;&lt;br /&gt;
    key c = null_key;&lt;br /&gt;
    key d = null_key;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
default {&lt;br /&gt;
    state_entry() {&lt;br /&gt;
        llOwnerSay((string) llGetFreeMemory());&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Memory Conservation]]&lt;br /&gt;
[[Category:LSL]]&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Category:Simulator_Resource_Conservation&amp;diff=1188090</id>
		<title>Category:Simulator Resource Conservation</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Category:Simulator_Resource_Conservation&amp;diff=1188090"/>
		<updated>2014-03-06T00:55:46Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: +catcat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Categories]]&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Category:Script_resource_Conservation&amp;diff=1188089</id>
		<title>Category:Script resource Conservation</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Category:Script_resource_Conservation&amp;diff=1188089"/>
		<updated>2014-03-06T00:54:50Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: +blanking typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Category:Script_Resource_Conservation&amp;diff=1188088</id>
		<title>Category:Script Resource Conservation</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Category:Script_Resource_Conservation&amp;diff=1188088"/>
		<updated>2014-03-06T00:53:15Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: +catcat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Simulator Resource Conservation]]&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Category:Memory_Conservation&amp;diff=1188087</id>
		<title>Category:Memory Conservation</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Category:Memory_Conservation&amp;diff=1188087"/>
		<updated>2014-03-06T00:52:24Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: +capitalize Resource!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Script Resource Conservation]]&lt;br /&gt;
[[Category:LSL Memory]]&lt;br /&gt;
[[Category:LSL]]&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Category:Process-Time_Conservation&amp;diff=1188086</id>
		<title>Category:Process-Time Conservation</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Category:Process-Time_Conservation&amp;diff=1188086"/>
		<updated>2014-03-06T00:51:32Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: +catcat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Script Resource Conservation]]&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Category:Script_resource_Conservation&amp;diff=1188085</id>
		<title>Category:Script resource Conservation</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Category:Script_resource_Conservation&amp;diff=1188085"/>
		<updated>2014-03-06T00:49:01Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: +catcat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Simulator Resource Conservation]]&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Category:Memory_Conservation&amp;diff=1188084</id>
		<title>Category:Memory Conservation</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Category:Memory_Conservation&amp;diff=1188084"/>
		<updated>2014-03-06T00:48:26Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: +catcat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Script resource Conservation]]&lt;br /&gt;
[[Category:LSL Memory]]&lt;br /&gt;
[[Category:LSL]]&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Kizmut_Smit/kizmuTECH/Paint_Can&amp;diff=1185335</id>
		<title>User:Kizmut Smit/kizmuTECH/Paint Can</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Kizmut_Smit/kizmuTECH/Paint_Can&amp;diff=1185335"/>
		<updated>2013-12-20T00:55:11Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: Paint Can usage&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Paint Can=&lt;br /&gt;
__TOC__&lt;br /&gt;
==Objective==&lt;br /&gt;
Alleviate tedium for builders and modders attempting to adjust matching colours in a linkset on many faces at a time.&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
#Insert script into root of object.&lt;br /&gt;
#Specify the new colour by changing the face of one prim in the linkset and then click on it.&lt;br /&gt;
#Press Select in the dialogue menu. This will be the colour used to replace the rest.&lt;br /&gt;
#Specify the colour to be replaced by clicking on one of the remaining faces to be changed.&lt;br /&gt;
#Press Change in the dialogue menu. This will change the remaining prim faces matching the old colour in the linkset to the new colour specified in the beginning.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{User:Kizmut Smit/Templates/Scripts}}&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Kizmut_Smit/Templates/Scripts&amp;diff=1185334</id>
		<title>User:Kizmut Smit/Templates/Scripts</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Kizmut_Smit/Templates/Scripts&amp;diff=1185334"/>
		<updated>2013-12-20T00:54:34Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: *nudge*&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&amp;lt;center&amp;gt;&amp;lt;table style=&amp;quot;border: 1px solid #0000ff; background: #ccddff; color: black; width: {{{width|85%}}}; min-width: 400px; margin-left: 20px; margin-right: 20px;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;32&amp;quot;  valign=&amp;quot;top&amp;quot;&amp;gt;[[Image:KBtip.png|32px|link=]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td&amp;gt;At this time scripts mentioned here are available upon request. Contact [[User:Kizmut Smit|kizmut Smit]] for more info.&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;/onlyinclude&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Availability note for kizmuTECH scripts pages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Kizmut_Smit/Templates/Scripts&amp;diff=1185333</id>
		<title>User:Kizmut Smit/Templates/Scripts</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Kizmut_Smit/Templates/Scripts&amp;diff=1185333"/>
		<updated>2013-12-20T00:54:06Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: *nudge*&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&amp;lt;center&amp;gt;&amp;lt;table style=&amp;quot;border: 1px solid #0000ff; background: #ccddff; color: black; width: {{{width|85%}}}; min-width: 400px; margin-left: 20px; margin-right: 20px;&amp;quot;&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;32&amp;quot;  valign=&amp;quot;top&amp;quot;&amp;gt;[[Image:KBtip.png|32px|link=]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td&amp;gt;At this time scripts mentioned here are available upon request. Contact [[User:Kizmut Smit|kizmut Smit]] for more info.&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;/onlyinclude&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Availability note for kizmuTECH scripts pages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Kizmut_Smit/Templates/Scripts&amp;diff=1185332</id>
		<title>User:Kizmut Smit/Templates/Scripts</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Kizmut_Smit/Templates/Scripts&amp;diff=1185332"/>
		<updated>2013-12-20T00:52:32Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: template for availability note&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&amp;lt;table style=&amp;quot;border: 1px solid #0000ff; background: #ccddff; color: black; width: {{{width|85%}}}; min-width: 400px; margin-left: 20px; margin-right: 20px;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;32&amp;quot;  valign=&amp;quot;top&amp;quot;&amp;gt;[[Image:KBtip.png|32px|link=]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td&amp;gt;At this time scripts mentioned here are available upon request. Contact [[User:Kizmut Smit|kizmut Smit]] for more info.&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;/onlyinclude&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Availability note for kizmuTECH scripts pages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Kizmut_Smit/kizmuTECH&amp;diff=1185331</id>
		<title>User:Kizmut Smit/kizmuTECH</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Kizmut_Smit/kizmuTECH&amp;diff=1185331"/>
		<updated>2013-12-20T00:28:20Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: projects&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=kizmuTECH=&lt;br /&gt;
Catalogue of projects developed under the kizmuTECH umbrella.&lt;br /&gt;
==Scripts==&lt;br /&gt;
===Build Tools===&lt;br /&gt;
*[[User:Kizmut Smit/kizmuTECH/Paint Can|Paint Can]]&lt;br /&gt;
*[[User:Kizmut Smit/kizmuTECH/Scripts#Touch Face/Link Report|Touch Face/Link Report]]&lt;br /&gt;
*[[User:Kizmut Smit/kizmuTECH/Scripts#Rotation Report|Rotation Report]]&lt;br /&gt;
*[[User:Kizmut Smit/kizmuTECH/Scripts#Animation Check|Animation Check]]&lt;br /&gt;
*[[User:Kizmut Smit/kizmuTECH/Scripts#Texture Anim on Touch|Texture Anim on Touch]]&lt;br /&gt;
&lt;br /&gt;
==Builds==&lt;br /&gt;
===Structures===&lt;br /&gt;
*[[User:Kizmut Smit/kizmuTECH/Structures#Unicorn Mayo|Unicorn Mayo]]&lt;br /&gt;
===Entertainment===&lt;br /&gt;
*[[User:Kizmut Smit/kizmuTECH/Entertainment#Memory Game|Memory Game]]&lt;br /&gt;
===Accessories===&lt;br /&gt;
*[[User:Kizmut Smit/kizmuTECH/Accessories#Rainbow Text|Rainbow Text]]&lt;br /&gt;
&lt;br /&gt;
==Services==&lt;br /&gt;
*kizmuTECH Radio&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Kizmut_Smit/kizmuTECH/Scripts&amp;diff=1185329</id>
		<title>User:Kizmut Smit/kizmuTECH/Scripts</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Kizmut_Smit/kizmuTECH/Scripts&amp;diff=1185329"/>
		<updated>2013-12-20T00:27:45Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: kizmuTECH Scripts Available&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Scripts=&lt;br /&gt;
__TOC__&lt;br /&gt;
==Tools==&lt;br /&gt;
===Touch Face/Link Report===&lt;br /&gt;
Indicates link number and face where touched on object linkset.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Rotation Report===&lt;br /&gt;
Reports rotation in rotation format for scripting.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Animation Check===&lt;br /&gt;
Reports current animation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Texture Anim on Touch===&lt;br /&gt;
Animates texture on face touched.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LSL_Script_Memory&amp;diff=1176198</id>
		<title>LSL Script Memory</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LSL_Script_Memory&amp;diff=1176198"/>
		<updated>2013-01-16T18:26:55Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: +cat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Multi-lang|category=LSL}}{{LSL Header}}{{LSLC|}}{{RightToc}}&lt;br /&gt;
&lt;br /&gt;
=Script Memory=&lt;br /&gt;
All scripts in LSL  pre-MONO start out with 16 kilobytes of memory. Mono scripts start with 64 kilobytes, this may be reduced with [[llSetMemoryLimit]](). Additionally, Mono scripts only use the amount of real memory that they currently need, not the amount allocated to them (64kB, or whatever was set by [[llSetMemoryLimit]](). Mono scripts also share the memory needed for their bytecode with all other instances in the same region of the same script copied after compilation. Below is a list of code and the memory usage.&lt;br /&gt;
&lt;br /&gt;
All of the following data was collected through [[llGetFreeMemory]](). As the LSL compiler is not a simple program, the data below may not be 100% accurate, in fact, much of it is wrong and could use corrections.&lt;br /&gt;
&lt;br /&gt;
There are still many bits that could be improved upon, and many more that could use more detail. If anyone has any free time, play around with the memory usage for different functions. A list of needed updates is at the end of the page.&lt;br /&gt;
&lt;br /&gt;
=Variables=&lt;br /&gt;
See the end of this page.&lt;br /&gt;
==Declaring variables as global==&lt;br /&gt;
===Variable Memory Usage===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
integer  10&lt;br /&gt;
float    10&lt;br /&gt;
string   18 + 1 per character&lt;br /&gt;
key      18 + 1 per character&lt;br /&gt;
vector   18&lt;br /&gt;
rotation 22&lt;br /&gt;
list     21 + list memory usage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===List Memory Usage===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
integer  15&lt;br /&gt;
float    15&lt;br /&gt;
string   12 + 1 per character&lt;br /&gt;
key      12 + 1 per character&lt;br /&gt;
vector   23&lt;br /&gt;
rotation 27&lt;br /&gt;
list     Lists Can Not Contain Lists&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== List Memory Usage (MONO) ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
integer  20&lt;br /&gt;
float    20&lt;br /&gt;
string   22 + 2 per character&lt;br /&gt;
key      34 + 2 per character&lt;br /&gt;
vector   28&lt;br /&gt;
rotation 32&lt;br /&gt;
list     Lists Can Not Contain Lists&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
String entries have a constant 8 for pre-compile text. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
myList = [&amp;quot;testing&amp;quot;, &amp;quot;1&amp;quot;, &amp;quot;asdhdgkjajlgsdfdsw&amp;quot;]&lt;br /&gt;
   (8, 8, 8)&lt;br /&gt;
myList = [llGetSubString(&amp;quot;testing&amp;quot;, 0, -1), (string)1, llToUpper(&amp;quot;asdhdgkjajlgsdfdsw&amp;quot;)]&lt;br /&gt;
   (22 + 14, 22 + 2, 22 + 36)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Declaring variables inside default state==&lt;br /&gt;
===Variable Memory Usage===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
integer  15&lt;br /&gt;
float    15&lt;br /&gt;
string   12 + 1 per character&lt;br /&gt;
key      12 + 1 per character&lt;br /&gt;
vector   31&lt;br /&gt;
rotation 39&lt;br /&gt;
list     15 + list memory usage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===List Memory Usage===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
integer  7&lt;br /&gt;
float    7&lt;br /&gt;
string   4 + 1 per character&lt;br /&gt;
key      4 + 1 per character&lt;br /&gt;
vector   23&lt;br /&gt;
rotation 30&lt;br /&gt;
list     Lists Can Not Contain Lists&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Simply stating values==&lt;br /&gt;
===Putting a Value onto the Stack===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Integers 1 + 4 bytes for the value&lt;br /&gt;
Float    1 + 4 bytes for the value&lt;br /&gt;
String   1 + bytes for characters + 1 byte for null&lt;br /&gt;
Key      1 + bytes for characters + 1 byte for null&lt;br /&gt;
Vector   1 + 3 * float cost&lt;br /&gt;
Rotation 1 + 4 * float cost&lt;br /&gt;
List     1 + 4 for list length + list memory usage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To remove a value from the stack costs 1 byte.&lt;br /&gt;
&lt;br /&gt;
===List Memory Usage===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Integers 7&lt;br /&gt;
Float    7&lt;br /&gt;
String   4 + 1 per character&lt;br /&gt;
Key      4 + 1 per character&lt;br /&gt;
Vector   23&lt;br /&gt;
Rotation 30&lt;br /&gt;
list     Lists Can Not Contain Lists&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Constants==&lt;br /&gt;
All integer constants use 6 bytes of memory.&lt;br /&gt;
===Other Constants===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ZERO_VECTOR   16&lt;br /&gt;
ZERO_ROTATION 21&lt;br /&gt;
NULL_KEY      39&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Extras==&lt;br /&gt;
6 bytes to reference variables&lt;br /&gt;
==Examples==&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
integer i; //10 bytes&lt;br /&gt;
&lt;br /&gt;
default {&lt;br /&gt;
 state_entry() {&lt;br /&gt;
  list l = [&amp;quot;Testing&amp;quot;, &amp;quot;This&amp;quot;] //15 (list) + 15 (string) + 8 (string)&lt;br /&gt;
 }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Functions=&lt;br /&gt;
==Declaring functions==&lt;br /&gt;
Functions require 16 bytes to be created, with 3 bytes per parameter, plus bytes commensurate with the return type.&lt;br /&gt;
&lt;br /&gt;
In Mono, however, functions and event handlers take up memory in &#039;&#039;&#039;512-byte chunks&#039;&#039;&#039;.  Even an empty function requires at least 512 bytes.  (Empty event handlers, however, apparently do not.)  The code within the function takes up whatever bytes are not required by the declaration.  Once the code + declaration fills a 512-byte chunk, another whole chunk is allocated to it.&lt;br /&gt;
&lt;br /&gt;
===Return Types===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
integer  4&lt;br /&gt;
float    4&lt;br /&gt;
string   4&lt;br /&gt;
key      4&lt;br /&gt;
vector   20&lt;br /&gt;
rotation 27&lt;br /&gt;
list     4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Declaring variables in functions==&lt;br /&gt;
===Variable Memory Usage===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
integer  11&lt;br /&gt;
float    11&lt;br /&gt;
string   8 + 1 per character&lt;br /&gt;
key      8 + 1 per character&lt;br /&gt;
vector   19&lt;br /&gt;
rotation 23&lt;br /&gt;
list     11 + list memory usage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===List Memory Usage===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
integer  7&lt;br /&gt;
float    7&lt;br /&gt;
string   4 + 1 per character&lt;br /&gt;
key      4 + 1 per character&lt;br /&gt;
vector   23&lt;br /&gt;
rotation 30&lt;br /&gt;
list     Lists Can Not Contain Lists&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Calling functions==&lt;br /&gt;
21 bytes to call a function with no return&amp;lt;br&amp;gt;&lt;br /&gt;
21 bytes to call a function with any return + type of return&amp;lt;br&amp;gt;&lt;br /&gt;
Subtract number of parameters entered&lt;br /&gt;
===Return Types===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
integer  2&lt;br /&gt;
float    2&lt;br /&gt;
string   10 + 1 per character returned&lt;br /&gt;
key      10 + 1 per character returned&lt;br /&gt;
vector   2&lt;br /&gt;
rotation 2&lt;br /&gt;
list     18 + list memory usage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
list f() {  //16 (function) + 4 (return)&lt;br /&gt;
    list ret = [0]; //11 (list) + 7 (integer)&lt;br /&gt;
    return ret; 6 (list)&lt;br /&gt;
}  &lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
string f() {&lt;br /&gt;
    return &amp;quot;&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
default {&lt;br /&gt;
    state_entry() {&lt;br /&gt;
        f();   //21 (call to f) + 10 (returns string)&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Operators=&lt;br /&gt;
==List of Operators== &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+  1&lt;br /&gt;
-  1&lt;br /&gt;
*  1&lt;br /&gt;
/  1&lt;br /&gt;
%  1&lt;br /&gt;
&amp;amp;  0&lt;br /&gt;
|  0&lt;br /&gt;
^  0&lt;br /&gt;
!  0&lt;br /&gt;
&amp;gt;&amp;gt; 0&lt;br /&gt;
&amp;lt;&amp;lt; 0&lt;br /&gt;
~  1&lt;br /&gt;
== 1&lt;br /&gt;
&amp;lt;= 1&lt;br /&gt;
&amp;lt;  1&lt;br /&gt;
&amp;gt;= 1&lt;br /&gt;
&amp;gt;  1&lt;br /&gt;
!= 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Assignment==&lt;br /&gt;
Assigning values to variables takes as many bytes as used minus one.&lt;br /&gt;
===Examples===&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
string s; //12 bytes&lt;br /&gt;
s;        //6 bytes&lt;br /&gt;
&amp;quot;&amp;quot;;       //3 bytes (see below)&lt;br /&gt;
s = &amp;quot;&amp;quot;;   //8 (6 (string) + 3 (null string) - 1) bytes&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
However...&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
string s = &amp;quot;&amp;quot;; //12 bytes&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
integer i; //15 bytes&lt;br /&gt;
i = i + 1 // 6 bytes (integer) + 6 bytes (integer) + 6 bytes (1) + 1 byte (addition) - 1 byte (assignment)&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Statements==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if    6&lt;br /&gt;
while 11&lt;br /&gt;
for   11&lt;br /&gt;
do    6&lt;br /&gt;
jump  5&lt;br /&gt;
@     0&lt;br /&gt;
state 5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Examples===&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
if (5 &amp;lt; 10) { // 6 (if) + 6 (integer) + 6 (integer) + 1 (compare)&lt;br /&gt;
//Do something here&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
while (1 &amp;lt; 2 &amp;amp; 3 &amp;lt; 4) { // 11 (while) + 4*6 (4 integers) + 2 (2 compares)&lt;br /&gt;
//Do something here&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Typecasting==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
integer  10&lt;br /&gt;
float    10&lt;br /&gt;
string   10&lt;br /&gt;
key      10&lt;br /&gt;
vector   10&lt;br /&gt;
rotation 10&lt;br /&gt;
list     25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==States==&lt;br /&gt;
14 bytes for any event in a state + 1 for each parameter&lt;br /&gt;
17 bytes to create a new state&lt;br /&gt;
=Needed Updates=&lt;br /&gt;
Several updates are needed for this page, the most needed are listed below:&lt;br /&gt;
* Verification of all data&lt;br /&gt;
* Clarification of explanations&lt;br /&gt;
* Investigations into how the functions work&lt;br /&gt;
** Calling of functions&lt;br /&gt;
** How return types effect the return&lt;br /&gt;
* In the following code, the call to llGetFreeMemory() returns a different value. How is it affected? Why?&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
default {&lt;br /&gt;
     state_entry() {&lt;br /&gt;
          llOwnerSay((string)llGetFreeMemory());&lt;br /&gt;
          list l = [&amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;];&lt;br /&gt;
          llOwnerSay((string)llGetFreeMemory());&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Update pending=&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
//  &lt;br /&gt;
//  Script memory - work in progress&lt;br /&gt;
//  &lt;br /&gt;
//  (c) 1012&lt;br /&gt;
//  llDeleteSubString( &amp;quot;yepey Resident&amp;quot;, llSubstringIndex( &amp;quot;yepey Resident&amp;quot;, &amp;quot; &amp;quot; ),  -1 );&lt;br /&gt;
//  &lt;br /&gt;
//  The script won&#039;t compile due to previously decalerd variables.&lt;br /&gt;
//  This script will, when finished, replace all of the above.&lt;br /&gt;
//  &lt;br /&gt;
//  Regards,&lt;br /&gt;
//  yepey&lt;br /&gt;
//  &lt;br /&gt;
//  &lt;br /&gt;
//          GLOBAL VARIABLES&lt;br /&gt;
//          --------------------------------------------------------------------&lt;br /&gt;
integer     int = 0;                                        // 8&lt;br /&gt;
float       fl  = 0.0;                                      // 8&lt;br /&gt;
string      str = &amp;quot;&amp;quot;;                                       // 22&lt;br /&gt;
string      str = &amp;quot;a&amp;quot;;                                      // 22 + 2&lt;br /&gt;
string      str = &amp;quot;\n&amp;quot;;                                     // 22 + 2&lt;br /&gt;
key         id  = &amp;quot;&amp;quot;;                                       // 8&lt;br /&gt;
key         id = NULL_KEY;                                  // 8&lt;br /&gt;
key         id = &amp;quot;a822ff2b-ff02-461d-b45d-dcd10a2de0c2&amp;quot;;    // 8&lt;br /&gt;
vector      v   = ZERO_VECTOR;                              // 16&lt;br /&gt;
vector      v   = &amp;lt; 0, 0, 0 &amp;gt;;                              // 16&lt;br /&gt;
rotation    r   = ZERO_ROTATION;                            // 16&lt;br /&gt;
rotation    r   = &amp;lt; 0, 0, 0, 1 &amp;gt;;                           // 16&lt;br /&gt;
list        l   = [];                                       // 44&lt;br /&gt;
list        l   = [                                         // 44 + o.O&lt;br /&gt;
                    0,                                      //    28&lt;br /&gt;
                    1.0,                                    //    28&lt;br /&gt;
                    &amp;quot;&amp;quot;,                                     //    30&lt;br /&gt;
                    &amp;quot;a&amp;quot;,                                    //    32&lt;br /&gt;
                    &amp;quot;\n&amp;quot;,                                   //    32&lt;br /&gt;
                    NULL_KEY,                               //   102&lt;br /&gt;
                    ZERO_VECTOR,                            //    36&lt;br /&gt;
                    ZERO_ROTATION                           //    40&lt;br /&gt;
                  ];&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    &lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        &lt;br /&gt;
//      LOCAL VARIABLES&lt;br /&gt;
//      ------------------------------------------------------------------------&lt;br /&gt;
        integer     int = 0;                                        // 4&lt;br /&gt;
        float       fl  = 0.0;                                      // 4&lt;br /&gt;
        string      str = &amp;quot;&amp;quot;;                                       // 18 +&lt;br /&gt;
        string      str = &amp;quot;a&amp;quot;;                                      //    2&lt;br /&gt;
        string      str = &amp;quot;\n&amp;quot;;                                     //    2&lt;br /&gt;
        key         id  = &amp;quot;&amp;quot;;                                       // 4&lt;br /&gt;
        key         id = NULL_KEY;                                  // 4&lt;br /&gt;
        key         id = &amp;quot;a822ff2b-ff02-461d-b45d-dcd10a2de0c2&amp;quot;;    // 4&lt;br /&gt;
        vector      v   = ZERO_VECTOR;                              // 12&lt;br /&gt;
        vector      v   = &amp;lt; 0, 0, 0 &amp;gt;;                              // 12&lt;br /&gt;
        rotation    r   = ZERO_ROTATION;                            // 16&lt;br /&gt;
        rotation    r   = &amp;lt; 0, 0, 0, 1 &amp;gt;;                           // 16&lt;br /&gt;
        list        l   = [];                                       // 40&lt;br /&gt;
        list        l   = [                                         // 40 + o.O&lt;br /&gt;
                            0,                                      //    16&lt;br /&gt;
                            1.0,                                    //    16&lt;br /&gt;
                            &amp;quot;&amp;quot;,                                     //    18 +&lt;br /&gt;
                            &amp;quot;a&amp;quot;,                                    //       2&lt;br /&gt;
                            &amp;quot;\n&amp;quot;,                                   //       2&lt;br /&gt;
                            NULL_KEY,                               // 90&lt;br /&gt;
                            ZERO_VECTOR,                            // 24&lt;br /&gt;
                            ZERO_ROTATION                           // 28&lt;br /&gt;
                            ];&lt;br /&gt;
        &lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
state examples&lt;br /&gt;
{&lt;br /&gt;
    &lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        &lt;br /&gt;
        /* IMPLEMENTATION NEEDED  */&lt;br /&gt;
        &lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:LSL Memory]]&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=External_script_memory&amp;diff=1176197</id>
		<title>External script memory</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=External_script_memory&amp;diff=1176197"/>
		<updated>2013-01-16T18:22:37Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: +cat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header|ml=3}}{{LSLC|}}&lt;br /&gt;
{{hint&lt;br /&gt;
|mode=note&lt;br /&gt;
|title_desc=Under Construction&lt;br /&gt;
|desc=More examples need to be added.&lt;br /&gt;
}}&lt;br /&gt;
There is a few ways in LSL to store external memory for using later on in case of resetting the script or any of many possibilities of just variable storage just wont cut it, and this page is to show whats the possible ways in storing data.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
One way of storing data for later use is [[llGetObjectDesc]] and [[llSetObjectDesc]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
string data;&lt;br /&gt;
string username;&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        data = llGetObjectDesc();&lt;br /&gt;
        if(llGetObjectDesc()){&lt;br /&gt;
            llSay(0,&amp;quot;Last Toucher was saved as &amp;quot;+llGetObjectDesc());&lt;br /&gt;
        }else{&lt;br /&gt;
            llSay(0,&amp;quot;No Data found&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    touch_start(integer total_number)&lt;br /&gt;
    {&lt;br /&gt;
        username = llDetectedName(0);&lt;br /&gt;
       llSetObjectDesc(username);&lt;br /&gt;
       llResetScript();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To create a Boolean constant you can use a method like so.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
//These functions should only be used if your script is not going to be using llSetText&lt;br /&gt;
SetConstant(integer tof){&lt;br /&gt;
    if(tof == TRUE)&lt;br /&gt;
        llSetPrimitiveParams([ PRIM_TEXT, &amp;quot; &amp;quot;,&amp;lt;1,0,0&amp;gt;, 1.0 ]);&lt;br /&gt;
        if(tof == FALSE)&lt;br /&gt;
        llSetPrimitiveParams([ PRIM_TEXT, &amp;quot;&amp;quot;,&amp;lt;1,0,0&amp;gt;, 1.0 ]);&lt;br /&gt;
    } &lt;br /&gt;
integer GetConstant(){&lt;br /&gt;
   list params = llGetPrimitiveParams([PRIM_TEXT]);&lt;br /&gt;
       if (llList2String(params,0))&lt;br /&gt;
           return TRUE;&lt;br /&gt;
           return FALSE;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llSay(0,(string)GetConstant()); //First time should output 0, then once you click and it restarts, it will output 1&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    touch_start(integer total_number)&lt;br /&gt;
    {&lt;br /&gt;
        SetConstant(TRUE);&lt;br /&gt;
        llResetScript();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
[[Category:LSL Memory]]&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:LSL_Portal&amp;diff=1169150</id>
		<title>Talk:LSL Portal</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:LSL_Portal&amp;diff=1169150"/>
		<updated>2012-06-14T19:18:26Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: +dynamic /* Categories */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header}}{{Talk}}&lt;br /&gt;
= Please do not copy content from LSLwiki =&lt;br /&gt;
&lt;br /&gt;
From [http://forums.secondlife.com/showpost.php?p=1392697&amp;amp;postcount=44 Rob Linden&#039;s post to the forum]:&lt;br /&gt;
:Hi folks, sorry for dropping into this conversation late. I haven&#039;t read through everything here, but I&#039;d like to present an alternative.&lt;br /&gt;
&lt;br /&gt;
:There have been several requests that Linden Lab take on the hosting of the LSL wiki. There are several problems with us doing this work. The primary problem is the question of ownership of the material. Since, to the best of our knowledge, there was never an explicit, consistent notice of ownership of this material throughout its creation, nor a clear assignment/license associated with contributing more material, it would seem the only safe way to license this content would be to contact every single contributor throughout the life of the wiki and get an explicit license or copyright assignment from them. Note that I said &amp;quot;safe&amp;quot;, not &amp;quot;practical&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
:We&#039;re not in a position to go down that road. However, we do have wiki.secondlife.com, which has had, since day one, a very clear notice about the license under which contributions are made and distributed. We would be very happy to see the community collaborate on newly created content on wiki.secondlife.com. As long as you author the content (not cut and paste from sources you are not the sole author of), we welcome your contribution. -- [[User:Rob Linden|Rob Linden]] 14:30, 24 January 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
OK, so let&#039;s talk about formatting rules for entries.&lt;br /&gt;
&lt;br /&gt;
(Moved to [[LSL Portal Guidelines]], so that this talk doesn&#039;t get too cluttered.) -- [[User:Talarus Luan|Talarus Luan]] 16:32, 24 January 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
[[User:Talarus Luan|Talarus Luan]] 14:28, 24 January 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=Other Discussion=&lt;br /&gt;
&lt;br /&gt;
== LSL Guide lost ==&lt;br /&gt;
&lt;br /&gt;
http://svn.secondlife.com/trac/linden/changeset/1392&lt;br /&gt;
linked from the page history &lt;br /&gt;
says new residents downloading the client won&#039;t be getting a copy of the LSL_Guide.html any more ...&lt;br /&gt;
&lt;br /&gt;
Q1. Where on the web do new residents go to get the LSL_Guide now? -- [[User:Ppaatt Lynagh|Ppaatt Lynagh]] 16:17, 3 January 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Q2. How should this [[LSL Portal]] page tell new residents to be sure to read the LSL_Guide first to correctly understand what else we say here? -- [[User:Ppaatt Lynagh|Ppaatt Lynagh]] 16:17, 3 January 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Untitled Chat ==&lt;br /&gt;
&lt;br /&gt;
Should we make this the front page to the LSL reference, or put that one more level down?  I kinda lean toward the former.  [[User:Gigs Taggart|Gigs Taggart]] 14:09, 24 January 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Yeah i think so... (Unsigned by Dimentox Travanti}&lt;br /&gt;
:Remember to sign your post with four tildes. [[User:Gigs Taggart|Gigs Taggart]] 14:26, 24 January 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I used a modified version of the [http://meta.wikimedia.org/wiki/User:Ajqnic:GeSHiHighlight GeSHiHighlight] plugin for MediaWiki.  With an LSL syntax file.  The license for the plugin and for [http://qbnz.com/highlighter/ GeSHi] is GPL, it also requires another plugin [http://meta.wikimedia.org/wiki/User:Ajqnic:purgePage purgePage].&lt;br /&gt;
--[[User:Thraxis Epsilon|Thraxis Epsilon]] 15:00, 24 January 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
== Regarding copying content from the existing Wiki ==&lt;br /&gt;
&lt;br /&gt;
This isn&#039;t clear from Rob&#039;s post, but it should be made clear: we CAN copy our OWN content from the existing wiki. IE, I plan to copy/paste my XML-RPC notes from the existing one. Does that present an issue? If so, why?&lt;br /&gt;
[[User:Talarus Luan|Talarus Luan]] 16:03, 24 January 2007 (PST)&lt;br /&gt;
:If you are the sole author, it wouldn&#039;t.  Just be careful and check the page history.   [[User:Gigs Taggart|Gigs Taggart]] 16:10, 24 January 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
== Syntax Highlighting ==&lt;br /&gt;
&lt;br /&gt;
Updated info on the syntax highlighting is available here [[http://rpgstats.com/wiki/index.php?title=GeSHiHiLight.php GeSHiHiLight]]&lt;br /&gt;
--[[User:Thraxis Epsilon|Thraxis Epsilon]] 16:10, 24 January 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
:Lets hope they include it soon ^^ [[User:Strife Onizuka|Strife Onizuka]] 21:21, 24 January 2007 (PST)&lt;br /&gt;
:Is there anyone we can ask? [[User:Dimentox Travanti|Dimentox Travanti]] 10:50, 25 January 2007 (PST)&lt;br /&gt;
:any news or update on this? [[User:Blueman Steele|Blueman Steele]] 6:12, 10 February 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
::We tried to use start using this on Thursday, but ran into some problems.  Thraxis, it&#039;ll help if you can contact me privately to discuss some of the issues. -- [[User:Rob Linden|Rob Linden]] 00:37, 11 February 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
:What&#039;s the status of syntax highlighting? --[[User:Mokelembembe Mokeev|Mokelembembe Mokeev]] 15:11, 24 April 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
::No one has made any efforts recently to get the highlighter included in the wiki. If you are going to post highlighted code, it would be good to have it output in such a way that keywords link to their appropriate pages. -- [[User:Strife Onizuka|Strife Onizuka]] 16:53, 24 April 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
:Talked with Rob Liden - The concern with the script is about security and the possiblity of injecting PHP code into the script hilighting. Since its a possible security issue he would like somebody at Linden to look into and fix it. I&#039;m going to look into the script and tell Rob what I found also. --[[User:Mokelembembe Mokeev|Mokelembembe Mokeev]] 15:29, 4 May 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Let&#039;s refer to this simply as the &amp;quot;LSL portal&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
Since there&#039;s already something out there called the &amp;quot;LSLwiki&amp;quot;, let&#039;s refer to this as the LSL Portal to distinguish it.  If there&#039;s no objection, I&#039;ll move the pages with &amp;quot;LSL Wiki&amp;quot; in the title to some other appropriate name -- [[User:Rob Linden|Rob Linden]] 17:09, 24 January 2007 (PST)&lt;br /&gt;
:No objections here. :) I just updated [[LSL Wiki To-do]] with some assignment tables. I went ahead and moved it to [[LSL Portal To-do]] [[User:Talarus Luan|Talarus Luan]] 18:12, 24 January 2007 (PST)&lt;br /&gt;
:: Simple, consistent messaging: I&#039;ve gotten into the habit of using &amp;quot;LSL Portal&amp;quot; regularly myself.&lt;br /&gt;
:: --[[User:Torley Linden|Torley Linden]] 10:40, 31 January 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
== A way back... ==&lt;br /&gt;
&lt;br /&gt;
Every page should have a header that goes back to the portal index not the wiki index.&lt;br /&gt;
if we could even geta link in the left hand would be great.&lt;br /&gt;
&lt;br /&gt;
[[User:Dimentox Travanti|Dimentox Travanti]] 10:47, 25 January 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
: I second the idea of a link in the main Navigation list.  It makes it a lot easier to access the LSL Portal.&lt;br /&gt;
: [[User:Cron Stardust|Cron Stardust]] 11:25, 5 March 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
== Transitions ==&lt;br /&gt;
Encouraging to see this happening — and to see [http://www.lslwiki.org/ a second mirror] for the [http://www.lslwiki.com LSL wiki] too; hopefully I haven&#039;t come too late, because these developments look like they&#039;ve transpired over the last few days.&lt;br /&gt;
&lt;br /&gt;
Just wanted to let you know I&#039;ve added a link to our LSL Portal from our blog&#039;s Notices; it&#039;ll be up for some time. I&#039;m also going to add a simple article to the [http://secondlife.com/knowledgebase/ Knowledge Base] directing to this LSL Portal, since it&#039;s important to get more contributors aware, interested, and involved.&lt;br /&gt;
&lt;br /&gt;
I&#039;d like to personally be more active in this wiki... great things are afoot. I&#039;ve been spread across too many [http://secondlife.com/knowledgebase/article.php?id=357 communication channels] lately, so I&#039;ve been rotating between focuses (foci?); hopefully next week I&#039;ll have more hands-on energy here.&lt;br /&gt;
&lt;br /&gt;
Thanx to each and all of you building up this resource so far!&lt;br /&gt;
&lt;br /&gt;
--[[User:Torley Linden|Torley Linden]] 10:21, 26 January 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
== LSL Header/Footer ==&lt;br /&gt;
Below is the header/footer template: &amp;lt;nowiki&amp;gt;{{LSL Header}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
{{LSL Header}}&lt;br /&gt;
Also, since &amp;lt;nowiki&amp;gt;&amp;lt;lsl&amp;gt;&amp;lt;/lsl&amp;gt;&amp;lt;/nowiki&amp;gt; tags don&#039;t seem to work yet, I used &amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/nowiki&amp;gt;... hope that&#039;s alright, I know nothing about wikis except what I&#039;ve taught myself tonight. --[[User:DoteDote Edison|DoteDote Edison]] 20:45, 27 January 2007 (EST)&lt;br /&gt;
:Actually, go ahead and use the &amp;lt;nowiki&amp;gt;&amp;lt;lsl&amp;gt;&amp;lt;/lsl&amp;gt;&amp;lt;/nowiki&amp;gt; tags. Even though it may look like crap right this minute, as soon as the module is installed, it will instantly be perfect. :) [[User:Talarus Luan|Talarus Luan]] 14:59, 29 January 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
== LSL wiki-namespace ==&lt;br /&gt;
&lt;br /&gt;
All the LSL pages are prefixed with &amp;quot;LSL &amp;quot;, like &amp;quot;LSL Portal&amp;quot;, &amp;quot;LSL LLRand&amp;quot;, etc.  It would seem more justly to use the wiki-namespace &amp;quot;LSL:&amp;quot;.  Change the names from &amp;quot;LSL LLRand&amp;quot; to &amp;quot;LSL:LLRand&amp;quot;.  My 2 lindens. [[User:Dzonatas Sol|Dzonatas Sol]] 00:28, 2 February 2007 (PST) &lt;br /&gt;
:Just thought about this little more. We could use subpages instead of namespaces, then the talk pages will fully work.  &amp;quot;LSL/LLRand&amp;quot; for example [[User:Dzonatas Sol|Dzonatas Sol]] 00:41, 2 February 2007 (PST)&lt;br /&gt;
::I&#039;m not going to make a big fuss about it, but I&#039;d prefer if, per the [[Editing Guidelines]], that the page just be called &amp;quot;LLRand&amp;quot;. -- [[User:Rob Linden|Rob Linden]] 01:06, 2 February 2007 (PST)&lt;br /&gt;
:As this wiki has grown a great deal in other aspects the need for a namespace for LSL: has become even greater. This would allow the search functions to isolate LSL results from the more general content unrelated to LSL. This would also start a shift from many listings being sorted entirely under &#039;&#039;&#039;L&#039;&#039;&#039;. — [[User:Kizmut Smit|kizmut]]&amp;lt;span style=&amp;quot;letter-spacing: -2px&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;[[User Talk:Kizmut Smit|T]]&amp;lt;/sup&amp;gt;/&amp;lt;sub&amp;gt;[[Special:Contributions/Kizmut Smit|C]]&amp;lt;/sub&amp;gt;&amp;lt;/span&amp;gt; 12:02, 14 June 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
== LSL conformance test ==&lt;br /&gt;
&lt;br /&gt;
Hi folks, we&#039;re planning to consolidate a lot of our scattered LSL conformance tests on this wiki.  I created two rather crude templates: [[Template:LSL conformance test]] and [[Template:LSL conformance script]], which were created for adding our conformance suite.  See [[LSL llGetUnixTime test]] for an example.  I&#039;d like to get a sense from people if this is a sensible way to do this.  The idea is to get these templates stabilized, and that will provide us a mechanism for those of us at LL to consolidate our tests.  Of course, if the community wants to chip in, that&#039;s great too...having items in our standard LSL conformance suite makes it less likely that we&#039;ll break an LSL feature that&#039;s important to you. -- [[User:Rob Linden|Rob Linden]] 22:53, 7 February 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
== LSL Categories List ==&lt;br /&gt;
What about a vertical list of categories down the right side of the LSL Portal front page?  The right-side list on the original wiki was my primary source of navigation, but maybe I&#039;m odd.  I could add it myself, but I&#039;m not sure how to make it automatically update the list as new categories are added. --[[User:DoteDote Edison|DoteDote Edison]] 20:20, 9 February 2007 (EST)&lt;br /&gt;
:Oops... right after I posted this, I noticed that it&#039;s item #4 on the &amp;quot;To-Do&amp;quot; list.  I went ahead and modified the front page to add a cetagories list.  If you don&#039;t like it, feel free to revert.  --[[User:DoteDote Edison|DoteDote Edison]] 20:55, 9 February 2007 (EST)&lt;br /&gt;
:The names all start with &amp;quot;LSL&amp;quot; and the names are not optimal for listing... The names could be changed though. I&#039;ll dig though the MediaWiki commands later and see if I can find any that would work well in this case. I don&#039;t have high hopes in this case. [[User:Strife Onizuka|Strife Onizuka]] 18:59, 9 February 2007 (PST)&lt;br /&gt;
Is the 200 articles per category page a mediawiki limit, or can we change it to 400 per page in a configuration somewhere? [[User:DoteDote Edison|DoteDote Edison]] 21:50, 22 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:If there&#039;s an issue with seeing all the pages, I can add the alphabetical navigation template later.&lt;br /&gt;
:[[User:SignpostMarv Martin|SignpostMarv Martin]] 06:16, 23 February 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
== Internationalizing ==&lt;br /&gt;
&lt;br /&gt;
How do we want to go about internationalizing the LSL wiki. It should probably be tied into the global wiki effort. [[User:Strife Onizuka|Strife Onizuka]] 07:20, 11 February 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
:With modular templates (e.g. the way I do them) vs monolithic templates (e.g. the way you do them), the templates won&#039;t need to be changed, only the content going into them. Regarding [[User talk:SignpostMarv Martin/Sandbox/Project:Internationalisation#multi-lingual articles|Project:Internationalisation#multi-lingual articles]], I have some freaky ideas to make maintenance of the LSL-specific multi-lingual articles a little easier to maintain.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;p.s. I&#039;m not sure whether Internationalisation of the LSL articles should be discussed here or [[User talk:SignpostMarv Martin/Sandbox/Project:Internationalisation#multi-lingual articles|there]].&amp;lt;br /&amp;gt;[[User:SignpostMarv Martin|SignpostMarv Martin]] 08:05, 11 February 2007 (PST) [[Talk:LSL_Function_Style|Moved from Talk:LSL_Function_Style]]&lt;br /&gt;
&lt;br /&gt;
::But your idea on templates don&#039;t provide structure, it requires the user to provide the structure and if we want to change the layout of the pages we need to go through and change ever single page. I&#039;m pretty sure I can put together template-templates that should make translating the templates easy as setting a few variables. We wouldn&#039;t be using the template-template directly for rendering but use [http://meta.wikimedia.org/wiki/Help:Substitution substitution]. Changing a dozen monolithic templates is better then changing a dozen * 328 pages. Also means that you get the same translation ever single time.&amp;lt;br/&amp;gt;I&#039;ve been thinking i could modify the LSLC, LSLG, LSLGC templates to support automated linking in language specific subpages. So if the page you are on is in Spanish, the links will lead to pages in Spanish if they exist. No special modifications to the links needed.[[User:Strife Onizuka|Strife Onizuka]] 06:43, 13 February 2007 (PST)&lt;br /&gt;
:::&#039;&#039;But your idea on templates don&#039;t provide structure, it requires the user to provide the structure&#039;&#039;&lt;br /&gt;
:::* That&#039;s kinda the point. Look at what information will need to be reused over and over again, and put it into a small template. Then those templates can be used directly, or as part of a wrapper template.&lt;br /&gt;
:::&#039;&#039;I&#039;m pretty sure I can put together template-templates that should make translating the templates easy as setting a few variables.&#039;&#039;&lt;br /&gt;
:::* The templates don&#039;t need translating, just the content.&lt;br /&gt;
:::&#039;&#039;I&#039;ve been thinking i could modify the LSLC, LSLG, LSLGC templates to support automated linking in language specific subpages. So if the page you are on is in Spanish, the links will lead to pages in Spanish if they exist.&#039;&#039;&lt;br /&gt;
:::* That would be bad.&lt;br /&gt;
:::* Better idea to follow.&lt;br /&gt;
:::[[User:SignpostMarv Martin|SignpostMarv Martin]] 13:13, 13 February 2007 (PST)&lt;br /&gt;
:::[[Template:Multi-lang]] I&#039;ve given up fixing the bugs in that, but you get the idea behind it&#039;s intent. Include [[Help:Getting_started_in_Second_Life/langs]] in your test page and &amp;lt;nowiki&amp;gt;{{#vardefine:article-lang}}&amp;lt;/nowiki&amp;gt; to either &#039;&#039;&#039;spa&#039;&#039; or &#039;&#039;&#039;eng&#039;&#039;&#039;.&lt;br /&gt;
:::Please fork the code into your own userspace if you&#039;re going to work on it (unless you know of an instant fix) to prevent edit collisions.&lt;br /&gt;
:::I&#039;ve also started work on [[Template:ISO_639-3/native]] to save a bit of time with entering languages that one browser might not be configured for (e.g. the higher-end UTF-8 characters)&lt;br /&gt;
:::[[User:SignpostMarv Martin|SignpostMarv Martin]] 22:08, 19 February 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
:[[User:CatherinePfeffer|Catherine Pfeffer]] Starting translation of the LSL Portal to French with the group &amp;quot;Constructeurs et scripteurs&amp;quot;&lt;br /&gt;
&lt;br /&gt;
: Please refer to a related discussion on [[Project:Languages]].  -- [[User:Alissa Sabre|Alissa Sabre]] 07:58, 4 November 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
== phasing out of [[Template:LSLG]] ==&lt;br /&gt;
&lt;br /&gt;
Since the need to prefix almost everything with LSL_ is now being removed, all articles that are calling [[Template:LSLG]] should be edited to use a Wiki link, as the template is now rather redundant. &lt;br /&gt;
&lt;br /&gt;
The list of articles calling [[Template:LSLG|LSLG]] can be viewed via [https://wiki.secondlife.com/w/index.php?title=Special:Whatlinkshere&amp;amp;target=Template%3ALSLG Special:Whatlinkshere].&lt;br /&gt;
&amp;lt;br /&amp;gt;[[User:SignpostMarv Martin|SignpostMarv Martin]] 22:08, 19 February 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
:I think the pages in the {{LSLGC|FixMe}} category should be of a higher priority. Phasing out usage is reasonable, going through every page that uses it on the other hand just to remove it would be a waste of resources. I&#039;m a bit nervous about stopping using it at present, the metaphoric paint hasn&#039;t even dried on the move yet. Considering it doesn&#039;t effect the rendering, phasing it&#039;s usage out is appropriate. [[User:Strife Onizuka|Strife Onizuka]] 23:20, 20 February 2007 (PST)&lt;br /&gt;
::Waste of resources ?&lt;br /&gt;
::Isn&#039;t it a waste of resources to use a template that in most cases is entirely redundant ?&lt;br /&gt;
::[[User:SignpostMarv Martin|SignpostMarv Martin]] 02:23, 21 February 2007 (PST)&lt;br /&gt;
:::We haven&#039;t even finihed moving the function pages to the new names and template yet.  You could help with that instead of worrying about templates, you know. [[User:Gigs Taggart|Gigs Taggart]] 07:35, 21 February 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
== The original LSL Wiki is back! ==&lt;br /&gt;
Catherine Omega&#039;s [http://www.lslwiki.net original LSL Wiki] is back. She mentioned:&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&amp;quot;This is DEFINITELY back. And it&#039;s definitely permanent. It&#039;s all editable. And it&#039;s the &#039;official&#039;, Catherine-Omega-approved one.&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://www.catherineomega.com/2007/37/the-lsl-wiki-finds-a-new-home Further context can be found @ her blog.] --[[User:Torley Linden|Torley Linden]] 13:41, 28 February 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
== Table ==&lt;br /&gt;
&lt;br /&gt;
I&#039;ve been playing with the table (again). I&#039;ve tried to get it so it looks decent in both IE and Firefox. I&#039;ve been trying to get it to put all the extra space into the last section, which I managed in Firefox but haven&#039;t figured out the correct permutation of parameters for IE. I&#039;m content at this moment to leave it be (I use Firefox). [[User:Strife Onizuka|Strife Onizuka]] 08:49, 17 March 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Warning notice? ==&lt;br /&gt;
&lt;br /&gt;
Might it be an idea to include a short warning on the top of this page that the LSL Portal is as yet incomplete?&lt;br /&gt;
&lt;br /&gt;
I just spent a while trying to find a list function I knew existed, but couldn&#039;t remember the exact name of, which hasn&#039;t made it here yet before realising that not all functions are listed yet.&lt;br /&gt;
--[[User:Nick Shatner|Nick Shatner]], 02:56, 2 May 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
:The vast majority of functions have been catagorized so if you had started from the {{LSLGC|List|list category page}} you probably would have found it. There are a small handful of functions that haven&#039;t been catagorized beyond the {{LSLGC|Functions}} category. I&#039;m not sure if a warning is warranted but I do recognize there are gaps in the LSL information. -- [[User:Strife Onizuka|Strife Onizuka]] 13:31, 2 May 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
llSetText page&lt;br /&gt;
which is here&lt;br /&gt;
http://wiki.secondlife.com/wiki/LlSetText&lt;br /&gt;
is missing from page listing all the functions. Can&#039;t quite figure out how that page gets its info, so not going to touch it.&lt;br /&gt;
-- (anonymous and undated) (because not signed with dash dash tilde tilde tilde tilde)&lt;br /&gt;
&lt;br /&gt;
:http://wiki.secondlife.com/w/index.php?title=Category:LSL_Functions&amp;amp;from=PlaySound&lt;br /&gt;
:includes [[llSetText]] nowadays&lt;br /&gt;
:maybe because &amp;quot;LSL Functions&amp;quot; appears in the Categories list at the end nowadays.&lt;br /&gt;
:-- [[User:Ppaatt Lynagh|Ppaatt Lynagh]] 05:57, 2 December 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
== Conspiracy? ==&lt;br /&gt;
&lt;br /&gt;
I whould like to know if &amp;lt;br/&amp;gt;&lt;br /&gt;
a) this is a public wiki, where everybody can contribute so the LSL gets better known, or if it is a private viki with conspirativ charakter&amp;lt;br/&amp;gt;&lt;br /&gt;
b) why it is kept so spartanik with information&amp;lt;br/&amp;gt;&lt;br /&gt;
c) why no lindens who wrote LSL document their work&amp;lt;br/&amp;gt;&lt;br /&gt;
d) why some private persons are called administrators, what rights do they have, and if they have ever signed a paper that makes them not abuse theyr position&amp;lt;br/&amp;gt;&lt;br /&gt;
e) why linden lab employees never fisicaly work and only give &amp;quot;precios advises&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
dont dare to delete this.&amp;lt;br/&amp;gt;&lt;br /&gt;
{{User|Anylyn Hax}} 04:09, 8 August 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
:I shall try to answer:&lt;br /&gt;
:a) It is a public wiki but not everyone can contribute, you must have an SL account to contribute.&lt;br /&gt;
:b) No one has added more information.&lt;br /&gt;
:c) They did, it&#039;s in the LSL manual that ships with the client (it&#039;s common knowledge that it sucks).&lt;br /&gt;
:d) I don&#039;t know of any non-linden administrators on the wiki.&lt;br /&gt;
:e) The design of LSL is stable and there are very few LSL bugs that haven&#039;t been vetted; it would surprise me if there were any full time LSL devs. Just because we don&#039;t see them working doesn&#039;t mean they aren&#039;t working; the SL code base is huge.&lt;br /&gt;
:-- [[User:Strife Onizuka|Strife Onizuka]] 12:56, 8 August 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Vehicle Tutorial ==&lt;br /&gt;
&lt;br /&gt;
Could we get the original vehicle tutorial added to this wiki. I realize it&#039;s not in the correct format, but it&#039;s a place to start. There was a wikified version too in the old wiki someone did, but they&#039;d have to contribute it themselves I&#039;d think. I can&#039;t find the original tutorial outside the old wiki.&lt;br /&gt;
&lt;br /&gt;
:The tutorial was part of the LSL manual that ships with the client. LL has given permission to post it on the wiki. -- [[User:Strife Onizuka|Strife Onizuka]] 16:37, 8 September 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
::I found an old copy I had and wikified it. This is pretty much the original version, so it&#039;s probably a bit whacked, please fix any problems you&#039;re aware of [[User:Ralph Doctorow|Ralph Doctorow]]&lt;br /&gt;
&lt;br /&gt;
== color ==&lt;br /&gt;
&lt;br /&gt;
It would be very helpful if I could use different colored text when writing my articles. Could buttons be added for black text, red text, green text, and one other color of text? Or could someone list the codes that can be used to change text color?&lt;br /&gt;
&lt;br /&gt;
Just as an example of what I intend to use color for:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;black&#039;&#039;rotation &#039;&#039;red&#039;&#039;variable&#039;&#039;black&#039;&#039;=&amp;lt;&#039;&#039;red&#039;&#039;%,%,%,&#039;&#039;green&#039;&#039;#.#&#039;&#039;black&#039;&#039;&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
-- Anonymous, Undated&lt;br /&gt;
&lt;br /&gt;
: The LSL /LSL tags give colour to LSL code, &#039;&#039;e.g.&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;vector up = &amp;lt; 0, 0, 1 &amp;gt;;&amp;lt;/lsl&amp;gt; -- [[User:Ppaatt Lynagh|Ppaatt Lynagh]] 16:20, 3 January 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== LSL tags and automatic linking: some errors noticed ==&lt;br /&gt;
&lt;br /&gt;
I&#039;m not aware of a specific template to edit/update, but I&#039;ve noticed some of auto-linked functions and constants from &amp;lt;nowiki&amp;gt;&amp;lt;lsl&amp;gt;&amp;lt;/lsl&amp;gt;&amp;lt;/nowiki&amp;gt; tags point to incorrect or &#039;bad&#039; (not found) pages. case in point, llSay points to Lsl_LLSay (which will redirect), and PUBLIC_CHANNEL points to a non-existant search page (there is an actual page available, but it doesn&#039;t go there). I&#039;m sure there are other examples of this, but I&#039;m not aware of a way to update it.... &lt;br /&gt;
&lt;br /&gt;
also curious to know if there is any hope of having localized pages (like french) redirect to their language equivalents through these tags at some point (I know it&#039;s not really feasible at the moment)&lt;br /&gt;
-- [[User:Void Singer|Void Singer]] 13:42, 19 February 2008 (PST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hacks? ==&lt;br /&gt;
&lt;br /&gt;
Could we please create a hacks page to be linked on the main LSL portal. Similiar to the old LSL wiki of compiling a growing list of well known tricks and tips for scripting.&lt;br /&gt;
&lt;br /&gt;
For example a well known trick, which I use frequently is the use of (List!=[]) instead of llGetListLength. --[[User:Nexii Malthus|Nexii Malthus]] 07:38, 19 May 2008 (PDT)&lt;br /&gt;
&lt;br /&gt;
:I&#039;ve slapped a page together: [[LSL Hacks]]. I&#039;d like comments on the style and layout. Please in the future don&#039;t stand on ceremony, if a niche needs filling, then please fill it with content. I have found that if you wait for people to weigh in before you start then nothing will get done. Better to do your best and make adjustments when there is a stink. -- [[User:Strife Onizuka|Strife Onizuka]] 09:37, 19 May 2008 (PDT)&lt;br /&gt;
&lt;br /&gt;
== LSLwiki.net ==&lt;br /&gt;
&amp;lt;sup&amp;gt;(moved from &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[{{fullurl:Template talk:LSL Function|oldid=110833}} Template talk:LSL Function]&amp;lt;/span&amp;gt;)&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I had a discussion with [[User:Gally Young|Gally]] today and we came to the following conclusion:&amp;lt;br&amp;gt;Since we&#039;re not able to copy content from [http://www.lslwiki.net lslwiki.net] and vice versa - because of licensing problems - we might benefit from linking related articles of both wikis. So users can easily switch from one Wiki to the other and find the information most helpful for them. There shouldn&#039;t be a rivalry between these two documentation projects. They should benefit from each other. Therefor, we&#039;re adding a link to the related LSLwiki.net article to this template. I hope it&#039;s ok.&amp;lt;br&amp;gt;&lt;br /&gt;
Something else on the same topic: It seems to be(come) quite popular in Wiki culture to double-license the own contributions, in order to make them easier to share. Wikis of interest for us:&lt;br /&gt;
* The Second Life Wiki (of course): [http://creativecommons.org/licenses/by-sa/3.0/ Creative Commons Attribution-Share Alike 3.0]&lt;br /&gt;
* The [http://www.lslwiki.net LSLwiki.net]: an [http://lslwiki.net/lslwiki/wakka.php?wakka=LSLwikicopyright implicit copyright model]&lt;br /&gt;
* The [http://secondlife.wikia.com/wiki/Main_Page SecondLife Wikia]: [http://www.gnu.org/copyleft/fdl.html GNU Free Documentation License]&lt;br /&gt;
Please consider to double-license your contributions to this (or other) Wikis in order to make them easier to share, by writing a statemanet about double licensing on your userpage. You can also use one of [[User:SignpostMarv Martin|Marv]]&#039;s templates: [[Template:Re-license contributions]] as well as [[Template:License]].&amp;lt;br&amp;gt;&lt;br /&gt;
This is just a &#039;&#039;suggestion&#039;&#039; of course. Just do it, in case you want to do it.&amp;lt;br&amp;gt;&lt;br /&gt;
Greetz, [[Image:Zai_signature.png|45px]] &#039;&#039;&#039;[[User:Zai Lynch|Lynch]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Zai Lynch|talk]]|[[Special:Contributions/Zai Lynch|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 20:14, 9 September 2008 (PDT)&lt;br /&gt;
&lt;br /&gt;
== LSL Portal should have links to pages that are helpful and often used ==&lt;br /&gt;
&lt;br /&gt;
* The guidelines shown is for editing the LSL portal and not about LSL script it self. Instead it should link to say [[LSL Style Guide]] or just be removed.&lt;br /&gt;
* The same thing with the to do link. I would just remove it.&lt;br /&gt;
* I most often use [[:Category:LSL Functions]]. When I first was looking for information on how to script in LSL this is what I wanted. I think it should be the first link. Looking at [[Special:Statistics]] it is the 5th most viewed page with 708,956 views.&lt;br /&gt;
* Next I think [[LSL Tutorial]] should be added as it is a great place for people who have never scripted before and even for those who work in other languages. This is also the 8th most viewed page on the wiki.&lt;br /&gt;
* The last link I would add [[:Category:LSL_Library]] which is a list of scripts that show off how LSL works or does a common task.&lt;br /&gt;
:* For the the two categories you may want to use [[Template:LSLGC]].&lt;br /&gt;
[[User:Master Starship|Master Starship]] 17:34, 23 April 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* I take it you haven&#039;t see the [[Template:LSL Header|Header]] at the top of every article in the [[LSL Portal]]. It has all those links you call for. (Those articles didn&#039;t get popular because people used &amp;quot;Search&amp;quot;).&lt;br /&gt;
* The [[LSL Portal Guidelines]] contains not just the rules but the mission statement for the LSL Portal. It is fundamental to the this portals continued existence. Without it we would lack direction, and defined social guidelines. Without defined guidelines we would eventual descend into chaos (I&#039;ve seen it happen; the writing of the guidelines has mostly been in reaction to specific incidents). It needs to be in a prominent position so that editors will find it and read it (or can&#039;t make excuses as to why they haven&#039;t read it).&lt;br /&gt;
* Like the [[LSL Portal Guidelines]], the [[LSL Portal To-do]] link is in a section dedicated to the [[LSL Portal]] as a whole, not to LSL scripting. The rest of the page is dedicated to scripting. It&#039;s a small section.&lt;br /&gt;
-- &#039;&#039;&#039;[[User:Strife_Onizuka|Strife]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Strife_Onizuka|talk]]|[[Special:Contributions/Strife_Onizuka|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 19:14, 23 April 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Proposal About &amp;quot;LSL Categories&amp;quot; Section ==&lt;br /&gt;
&lt;br /&gt;
I find current view is too messing and difficult to find what I need. The users end up looking in huge list of {{LSLGC|Functions}}, clicking much. I am thinking about organizing the list to easily look up the LSL articles.&lt;br /&gt;
&lt;br /&gt;
Here is the proposal of categorizing.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Avatar&lt;br /&gt;
 - Animation&lt;br /&gt;
 - Attachment&lt;br /&gt;
 - Behavior&lt;br /&gt;
 - Camera&lt;br /&gt;
 - Properties&lt;br /&gt;
Land&lt;br /&gt;
 - Parcel&lt;br /&gt;
 - Region&lt;br /&gt;
Object&lt;br /&gt;
 - Detection&lt;br /&gt;
 - Existence&lt;br /&gt;
 - Face&lt;br /&gt;
 - Inventory&lt;br /&gt;
 - Link&lt;br /&gt;
 - Media&lt;br /&gt;
 - Physic&lt;br /&gt;
 - Properties&lt;br /&gt;
 - Text&lt;br /&gt;
Script&lt;br /&gt;
 - Control&lt;br /&gt;
　- Convert&lt;br /&gt;
 - List&lt;br /&gt;
 - Math&lt;br /&gt;
 - Network&lt;br /&gt;
 - String&lt;br /&gt;
 - Time&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I tried to sort all existing 339 functions (except God, not active one).&lt;br /&gt;
Here is the list ---&amp;gt; [[User:Mako_Nozaki/Category_Function]]&lt;br /&gt;
&lt;br /&gt;
My thought is, current categories will remain as is and will be used as &amp;quot;tags&amp;quot;. Missing categories will be added and be linked from each functions. Adding these categories to LSL Header using Javascript (pulldown menu) might be cool. --[[User:Mako Nozaki|Mako]] 12:56, 1 May 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== User-Defined Functions ==&lt;br /&gt;
&lt;br /&gt;
I&#039;m personally adverse to linking to the template description rather than the category (which already back links to the template) in the &amp;quot;language reference&amp;quot; section, as per the [[https://wiki.secondlife.com/w/index.php?title=LSL_Portal&amp;amp;diff=0&amp;amp;oldid=1158048|most recent edit]]. but since it&#039;s obvious someone else is not I thought I&#039;d solicit thoughts before reverting it. I&#039;m thinking it could be more clear on the category page though.&amp;lt;br/&amp;gt;-- &#039;&#039;&#039;[[User:Void_Singer|Void]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User_talk:Void_Singer|talk]]|[[Special:Contributions/Void_Singer|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 22:49, 10 May 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
:I agree with you. In addition to that, I think the two articles should be merged. We gain nothing of value by having them separate. -- &#039;&#039;&#039;[[User:Strife_Onizuka|Strife]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Strife_Onizuka|talk]]|[[Special:Contributions/Strife_Onizuka|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 10:37, 11 May 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
::Pointed the link back at the category, folded the article into the category page, and marked the original article page for deletion.&amp;lt;br/&amp;gt;-- &#039;&#039;&#039;[[User:Void_Singer|Void]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User_talk:Void_Singer|talk]]|[[Special:Contributions/Void_Singer|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 10:45, 1 June 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Categories ==&lt;br /&gt;
&lt;br /&gt;
It&#039;s probably time to update the category list and tree again. It&#039;s been a while and I&#039;m sure I&#039;ve added more since the last time we update them. Also I should remember to update the LSL News box. -- &#039;&#039;&#039;[[User:Strife_Onizuka|Strife]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Strife_Onizuka|talk]]|[[Special:Contributions/Strife_Onizuka|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 10:42, 11 May 2012 (PDT)&lt;br /&gt;
:There are extensions that can update the category list automagically like [https://www.mediawiki.org/wiki/Extension:DynamicPageList_(Wikimedia) Extension:DynamicPageList]. I am not sure one is installed here. Would we have to wait for a Linden to set something up like this? — [[User:Kizmut Smit|kizmut]]&amp;lt;span style=&amp;quot;letter-spacing: -2px&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;[[User Talk:Kizmut Smit|T]]&amp;lt;/sup&amp;gt;/&amp;lt;sub&amp;gt;[[Special:Contributions/Kizmut Smit|C]]&amp;lt;/sub&amp;gt;&amp;lt;/span&amp;gt; 12:18, 14 June 2012 (PDT)&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:LSL_Portal&amp;diff=1169149</id>
		<title>Talk:LSL Portal</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:LSL_Portal&amp;diff=1169149"/>
		<updated>2012-06-14T19:05:45Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: +L /* LSL wiki-namespace */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header}}{{Talk}}&lt;br /&gt;
= Please do not copy content from LSLwiki =&lt;br /&gt;
&lt;br /&gt;
From [http://forums.secondlife.com/showpost.php?p=1392697&amp;amp;postcount=44 Rob Linden&#039;s post to the forum]:&lt;br /&gt;
:Hi folks, sorry for dropping into this conversation late. I haven&#039;t read through everything here, but I&#039;d like to present an alternative.&lt;br /&gt;
&lt;br /&gt;
:There have been several requests that Linden Lab take on the hosting of the LSL wiki. There are several problems with us doing this work. The primary problem is the question of ownership of the material. Since, to the best of our knowledge, there was never an explicit, consistent notice of ownership of this material throughout its creation, nor a clear assignment/license associated with contributing more material, it would seem the only safe way to license this content would be to contact every single contributor throughout the life of the wiki and get an explicit license or copyright assignment from them. Note that I said &amp;quot;safe&amp;quot;, not &amp;quot;practical&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
:We&#039;re not in a position to go down that road. However, we do have wiki.secondlife.com, which has had, since day one, a very clear notice about the license under which contributions are made and distributed. We would be very happy to see the community collaborate on newly created content on wiki.secondlife.com. As long as you author the content (not cut and paste from sources you are not the sole author of), we welcome your contribution. -- [[User:Rob Linden|Rob Linden]] 14:30, 24 January 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
OK, so let&#039;s talk about formatting rules for entries.&lt;br /&gt;
&lt;br /&gt;
(Moved to [[LSL Portal Guidelines]], so that this talk doesn&#039;t get too cluttered.) -- [[User:Talarus Luan|Talarus Luan]] 16:32, 24 January 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
[[User:Talarus Luan|Talarus Luan]] 14:28, 24 January 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=Other Discussion=&lt;br /&gt;
&lt;br /&gt;
== LSL Guide lost ==&lt;br /&gt;
&lt;br /&gt;
http://svn.secondlife.com/trac/linden/changeset/1392&lt;br /&gt;
linked from the page history &lt;br /&gt;
says new residents downloading the client won&#039;t be getting a copy of the LSL_Guide.html any more ...&lt;br /&gt;
&lt;br /&gt;
Q1. Where on the web do new residents go to get the LSL_Guide now? -- [[User:Ppaatt Lynagh|Ppaatt Lynagh]] 16:17, 3 January 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Q2. How should this [[LSL Portal]] page tell new residents to be sure to read the LSL_Guide first to correctly understand what else we say here? -- [[User:Ppaatt Lynagh|Ppaatt Lynagh]] 16:17, 3 January 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Untitled Chat ==&lt;br /&gt;
&lt;br /&gt;
Should we make this the front page to the LSL reference, or put that one more level down?  I kinda lean toward the former.  [[User:Gigs Taggart|Gigs Taggart]] 14:09, 24 January 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Yeah i think so... (Unsigned by Dimentox Travanti}&lt;br /&gt;
:Remember to sign your post with four tildes. [[User:Gigs Taggart|Gigs Taggart]] 14:26, 24 January 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I used a modified version of the [http://meta.wikimedia.org/wiki/User:Ajqnic:GeSHiHighlight GeSHiHighlight] plugin for MediaWiki.  With an LSL syntax file.  The license for the plugin and for [http://qbnz.com/highlighter/ GeSHi] is GPL, it also requires another plugin [http://meta.wikimedia.org/wiki/User:Ajqnic:purgePage purgePage].&lt;br /&gt;
--[[User:Thraxis Epsilon|Thraxis Epsilon]] 15:00, 24 January 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
== Regarding copying content from the existing Wiki ==&lt;br /&gt;
&lt;br /&gt;
This isn&#039;t clear from Rob&#039;s post, but it should be made clear: we CAN copy our OWN content from the existing wiki. IE, I plan to copy/paste my XML-RPC notes from the existing one. Does that present an issue? If so, why?&lt;br /&gt;
[[User:Talarus Luan|Talarus Luan]] 16:03, 24 January 2007 (PST)&lt;br /&gt;
:If you are the sole author, it wouldn&#039;t.  Just be careful and check the page history.   [[User:Gigs Taggart|Gigs Taggart]] 16:10, 24 January 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
== Syntax Highlighting ==&lt;br /&gt;
&lt;br /&gt;
Updated info on the syntax highlighting is available here [[http://rpgstats.com/wiki/index.php?title=GeSHiHiLight.php GeSHiHiLight]]&lt;br /&gt;
--[[User:Thraxis Epsilon|Thraxis Epsilon]] 16:10, 24 January 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
:Lets hope they include it soon ^^ [[User:Strife Onizuka|Strife Onizuka]] 21:21, 24 January 2007 (PST)&lt;br /&gt;
:Is there anyone we can ask? [[User:Dimentox Travanti|Dimentox Travanti]] 10:50, 25 January 2007 (PST)&lt;br /&gt;
:any news or update on this? [[User:Blueman Steele|Blueman Steele]] 6:12, 10 February 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
::We tried to use start using this on Thursday, but ran into some problems.  Thraxis, it&#039;ll help if you can contact me privately to discuss some of the issues. -- [[User:Rob Linden|Rob Linden]] 00:37, 11 February 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
:What&#039;s the status of syntax highlighting? --[[User:Mokelembembe Mokeev|Mokelembembe Mokeev]] 15:11, 24 April 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
::No one has made any efforts recently to get the highlighter included in the wiki. If you are going to post highlighted code, it would be good to have it output in such a way that keywords link to their appropriate pages. -- [[User:Strife Onizuka|Strife Onizuka]] 16:53, 24 April 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
:Talked with Rob Liden - The concern with the script is about security and the possiblity of injecting PHP code into the script hilighting. Since its a possible security issue he would like somebody at Linden to look into and fix it. I&#039;m going to look into the script and tell Rob what I found also. --[[User:Mokelembembe Mokeev|Mokelembembe Mokeev]] 15:29, 4 May 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Let&#039;s refer to this simply as the &amp;quot;LSL portal&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
Since there&#039;s already something out there called the &amp;quot;LSLwiki&amp;quot;, let&#039;s refer to this as the LSL Portal to distinguish it.  If there&#039;s no objection, I&#039;ll move the pages with &amp;quot;LSL Wiki&amp;quot; in the title to some other appropriate name -- [[User:Rob Linden|Rob Linden]] 17:09, 24 January 2007 (PST)&lt;br /&gt;
:No objections here. :) I just updated [[LSL Wiki To-do]] with some assignment tables. I went ahead and moved it to [[LSL Portal To-do]] [[User:Talarus Luan|Talarus Luan]] 18:12, 24 January 2007 (PST)&lt;br /&gt;
:: Simple, consistent messaging: I&#039;ve gotten into the habit of using &amp;quot;LSL Portal&amp;quot; regularly myself.&lt;br /&gt;
:: --[[User:Torley Linden|Torley Linden]] 10:40, 31 January 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
== A way back... ==&lt;br /&gt;
&lt;br /&gt;
Every page should have a header that goes back to the portal index not the wiki index.&lt;br /&gt;
if we could even geta link in the left hand would be great.&lt;br /&gt;
&lt;br /&gt;
[[User:Dimentox Travanti|Dimentox Travanti]] 10:47, 25 January 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
: I second the idea of a link in the main Navigation list.  It makes it a lot easier to access the LSL Portal.&lt;br /&gt;
: [[User:Cron Stardust|Cron Stardust]] 11:25, 5 March 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
== Transitions ==&lt;br /&gt;
Encouraging to see this happening — and to see [http://www.lslwiki.org/ a second mirror] for the [http://www.lslwiki.com LSL wiki] too; hopefully I haven&#039;t come too late, because these developments look like they&#039;ve transpired over the last few days.&lt;br /&gt;
&lt;br /&gt;
Just wanted to let you know I&#039;ve added a link to our LSL Portal from our blog&#039;s Notices; it&#039;ll be up for some time. I&#039;m also going to add a simple article to the [http://secondlife.com/knowledgebase/ Knowledge Base] directing to this LSL Portal, since it&#039;s important to get more contributors aware, interested, and involved.&lt;br /&gt;
&lt;br /&gt;
I&#039;d like to personally be more active in this wiki... great things are afoot. I&#039;ve been spread across too many [http://secondlife.com/knowledgebase/article.php?id=357 communication channels] lately, so I&#039;ve been rotating between focuses (foci?); hopefully next week I&#039;ll have more hands-on energy here.&lt;br /&gt;
&lt;br /&gt;
Thanx to each and all of you building up this resource so far!&lt;br /&gt;
&lt;br /&gt;
--[[User:Torley Linden|Torley Linden]] 10:21, 26 January 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
== LSL Header/Footer ==&lt;br /&gt;
Below is the header/footer template: &amp;lt;nowiki&amp;gt;{{LSL Header}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
{{LSL Header}}&lt;br /&gt;
Also, since &amp;lt;nowiki&amp;gt;&amp;lt;lsl&amp;gt;&amp;lt;/lsl&amp;gt;&amp;lt;/nowiki&amp;gt; tags don&#039;t seem to work yet, I used &amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/nowiki&amp;gt;... hope that&#039;s alright, I know nothing about wikis except what I&#039;ve taught myself tonight. --[[User:DoteDote Edison|DoteDote Edison]] 20:45, 27 January 2007 (EST)&lt;br /&gt;
:Actually, go ahead and use the &amp;lt;nowiki&amp;gt;&amp;lt;lsl&amp;gt;&amp;lt;/lsl&amp;gt;&amp;lt;/nowiki&amp;gt; tags. Even though it may look like crap right this minute, as soon as the module is installed, it will instantly be perfect. :) [[User:Talarus Luan|Talarus Luan]] 14:59, 29 January 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
== LSL wiki-namespace ==&lt;br /&gt;
&lt;br /&gt;
All the LSL pages are prefixed with &amp;quot;LSL &amp;quot;, like &amp;quot;LSL Portal&amp;quot;, &amp;quot;LSL LLRand&amp;quot;, etc.  It would seem more justly to use the wiki-namespace &amp;quot;LSL:&amp;quot;.  Change the names from &amp;quot;LSL LLRand&amp;quot; to &amp;quot;LSL:LLRand&amp;quot;.  My 2 lindens. [[User:Dzonatas Sol|Dzonatas Sol]] 00:28, 2 February 2007 (PST) &lt;br /&gt;
:Just thought about this little more. We could use subpages instead of namespaces, then the talk pages will fully work.  &amp;quot;LSL/LLRand&amp;quot; for example [[User:Dzonatas Sol|Dzonatas Sol]] 00:41, 2 February 2007 (PST)&lt;br /&gt;
::I&#039;m not going to make a big fuss about it, but I&#039;d prefer if, per the [[Editing Guidelines]], that the page just be called &amp;quot;LLRand&amp;quot;. -- [[User:Rob Linden|Rob Linden]] 01:06, 2 February 2007 (PST)&lt;br /&gt;
:As this wiki has grown a great deal in other aspects the need for a namespace for LSL: has become even greater. This would allow the search functions to isolate LSL results from the more general content unrelated to LSL. This would also start a shift from many listings being sorted entirely under &#039;&#039;&#039;L&#039;&#039;&#039;. — [[User:Kizmut Smit|kizmut]]&amp;lt;span style=&amp;quot;letter-spacing: -2px&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;[[User Talk:Kizmut Smit|T]]&amp;lt;/sup&amp;gt;/&amp;lt;sub&amp;gt;[[Special:Contributions/Kizmut Smit|C]]&amp;lt;/sub&amp;gt;&amp;lt;/span&amp;gt; 12:02, 14 June 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
== LSL conformance test ==&lt;br /&gt;
&lt;br /&gt;
Hi folks, we&#039;re planning to consolidate a lot of our scattered LSL conformance tests on this wiki.  I created two rather crude templates: [[Template:LSL conformance test]] and [[Template:LSL conformance script]], which were created for adding our conformance suite.  See [[LSL llGetUnixTime test]] for an example.  I&#039;d like to get a sense from people if this is a sensible way to do this.  The idea is to get these templates stabilized, and that will provide us a mechanism for those of us at LL to consolidate our tests.  Of course, if the community wants to chip in, that&#039;s great too...having items in our standard LSL conformance suite makes it less likely that we&#039;ll break an LSL feature that&#039;s important to you. -- [[User:Rob Linden|Rob Linden]] 22:53, 7 February 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
== LSL Categories List ==&lt;br /&gt;
What about a vertical list of categories down the right side of the LSL Portal front page?  The right-side list on the original wiki was my primary source of navigation, but maybe I&#039;m odd.  I could add it myself, but I&#039;m not sure how to make it automatically update the list as new categories are added. --[[User:DoteDote Edison|DoteDote Edison]] 20:20, 9 February 2007 (EST)&lt;br /&gt;
:Oops... right after I posted this, I noticed that it&#039;s item #4 on the &amp;quot;To-Do&amp;quot; list.  I went ahead and modified the front page to add a cetagories list.  If you don&#039;t like it, feel free to revert.  --[[User:DoteDote Edison|DoteDote Edison]] 20:55, 9 February 2007 (EST)&lt;br /&gt;
:The names all start with &amp;quot;LSL&amp;quot; and the names are not optimal for listing... The names could be changed though. I&#039;ll dig though the MediaWiki commands later and see if I can find any that would work well in this case. I don&#039;t have high hopes in this case. [[User:Strife Onizuka|Strife Onizuka]] 18:59, 9 February 2007 (PST)&lt;br /&gt;
Is the 200 articles per category page a mediawiki limit, or can we change it to 400 per page in a configuration somewhere? [[User:DoteDote Edison|DoteDote Edison]] 21:50, 22 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:If there&#039;s an issue with seeing all the pages, I can add the alphabetical navigation template later.&lt;br /&gt;
:[[User:SignpostMarv Martin|SignpostMarv Martin]] 06:16, 23 February 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
== Internationalizing ==&lt;br /&gt;
&lt;br /&gt;
How do we want to go about internationalizing the LSL wiki. It should probably be tied into the global wiki effort. [[User:Strife Onizuka|Strife Onizuka]] 07:20, 11 February 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
:With modular templates (e.g. the way I do them) vs monolithic templates (e.g. the way you do them), the templates won&#039;t need to be changed, only the content going into them. Regarding [[User talk:SignpostMarv Martin/Sandbox/Project:Internationalisation#multi-lingual articles|Project:Internationalisation#multi-lingual articles]], I have some freaky ideas to make maintenance of the LSL-specific multi-lingual articles a little easier to maintain.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;p.s. I&#039;m not sure whether Internationalisation of the LSL articles should be discussed here or [[User talk:SignpostMarv Martin/Sandbox/Project:Internationalisation#multi-lingual articles|there]].&amp;lt;br /&amp;gt;[[User:SignpostMarv Martin|SignpostMarv Martin]] 08:05, 11 February 2007 (PST) [[Talk:LSL_Function_Style|Moved from Talk:LSL_Function_Style]]&lt;br /&gt;
&lt;br /&gt;
::But your idea on templates don&#039;t provide structure, it requires the user to provide the structure and if we want to change the layout of the pages we need to go through and change ever single page. I&#039;m pretty sure I can put together template-templates that should make translating the templates easy as setting a few variables. We wouldn&#039;t be using the template-template directly for rendering but use [http://meta.wikimedia.org/wiki/Help:Substitution substitution]. Changing a dozen monolithic templates is better then changing a dozen * 328 pages. Also means that you get the same translation ever single time.&amp;lt;br/&amp;gt;I&#039;ve been thinking i could modify the LSLC, LSLG, LSLGC templates to support automated linking in language specific subpages. So if the page you are on is in Spanish, the links will lead to pages in Spanish if they exist. No special modifications to the links needed.[[User:Strife Onizuka|Strife Onizuka]] 06:43, 13 February 2007 (PST)&lt;br /&gt;
:::&#039;&#039;But your idea on templates don&#039;t provide structure, it requires the user to provide the structure&#039;&#039;&lt;br /&gt;
:::* That&#039;s kinda the point. Look at what information will need to be reused over and over again, and put it into a small template. Then those templates can be used directly, or as part of a wrapper template.&lt;br /&gt;
:::&#039;&#039;I&#039;m pretty sure I can put together template-templates that should make translating the templates easy as setting a few variables.&#039;&#039;&lt;br /&gt;
:::* The templates don&#039;t need translating, just the content.&lt;br /&gt;
:::&#039;&#039;I&#039;ve been thinking i could modify the LSLC, LSLG, LSLGC templates to support automated linking in language specific subpages. So if the page you are on is in Spanish, the links will lead to pages in Spanish if they exist.&#039;&#039;&lt;br /&gt;
:::* That would be bad.&lt;br /&gt;
:::* Better idea to follow.&lt;br /&gt;
:::[[User:SignpostMarv Martin|SignpostMarv Martin]] 13:13, 13 February 2007 (PST)&lt;br /&gt;
:::[[Template:Multi-lang]] I&#039;ve given up fixing the bugs in that, but you get the idea behind it&#039;s intent. Include [[Help:Getting_started_in_Second_Life/langs]] in your test page and &amp;lt;nowiki&amp;gt;{{#vardefine:article-lang}}&amp;lt;/nowiki&amp;gt; to either &#039;&#039;&#039;spa&#039;&#039; or &#039;&#039;&#039;eng&#039;&#039;&#039;.&lt;br /&gt;
:::Please fork the code into your own userspace if you&#039;re going to work on it (unless you know of an instant fix) to prevent edit collisions.&lt;br /&gt;
:::I&#039;ve also started work on [[Template:ISO_639-3/native]] to save a bit of time with entering languages that one browser might not be configured for (e.g. the higher-end UTF-8 characters)&lt;br /&gt;
:::[[User:SignpostMarv Martin|SignpostMarv Martin]] 22:08, 19 February 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
:[[User:CatherinePfeffer|Catherine Pfeffer]] Starting translation of the LSL Portal to French with the group &amp;quot;Constructeurs et scripteurs&amp;quot;&lt;br /&gt;
&lt;br /&gt;
: Please refer to a related discussion on [[Project:Languages]].  -- [[User:Alissa Sabre|Alissa Sabre]] 07:58, 4 November 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
== phasing out of [[Template:LSLG]] ==&lt;br /&gt;
&lt;br /&gt;
Since the need to prefix almost everything with LSL_ is now being removed, all articles that are calling [[Template:LSLG]] should be edited to use a Wiki link, as the template is now rather redundant. &lt;br /&gt;
&lt;br /&gt;
The list of articles calling [[Template:LSLG|LSLG]] can be viewed via [https://wiki.secondlife.com/w/index.php?title=Special:Whatlinkshere&amp;amp;target=Template%3ALSLG Special:Whatlinkshere].&lt;br /&gt;
&amp;lt;br /&amp;gt;[[User:SignpostMarv Martin|SignpostMarv Martin]] 22:08, 19 February 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
:I think the pages in the {{LSLGC|FixMe}} category should be of a higher priority. Phasing out usage is reasonable, going through every page that uses it on the other hand just to remove it would be a waste of resources. I&#039;m a bit nervous about stopping using it at present, the metaphoric paint hasn&#039;t even dried on the move yet. Considering it doesn&#039;t effect the rendering, phasing it&#039;s usage out is appropriate. [[User:Strife Onizuka|Strife Onizuka]] 23:20, 20 February 2007 (PST)&lt;br /&gt;
::Waste of resources ?&lt;br /&gt;
::Isn&#039;t it a waste of resources to use a template that in most cases is entirely redundant ?&lt;br /&gt;
::[[User:SignpostMarv Martin|SignpostMarv Martin]] 02:23, 21 February 2007 (PST)&lt;br /&gt;
:::We haven&#039;t even finihed moving the function pages to the new names and template yet.  You could help with that instead of worrying about templates, you know. [[User:Gigs Taggart|Gigs Taggart]] 07:35, 21 February 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
== The original LSL Wiki is back! ==&lt;br /&gt;
Catherine Omega&#039;s [http://www.lslwiki.net original LSL Wiki] is back. She mentioned:&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&amp;quot;This is DEFINITELY back. And it&#039;s definitely permanent. It&#039;s all editable. And it&#039;s the &#039;official&#039;, Catherine-Omega-approved one.&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://www.catherineomega.com/2007/37/the-lsl-wiki-finds-a-new-home Further context can be found @ her blog.] --[[User:Torley Linden|Torley Linden]] 13:41, 28 February 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
== Table ==&lt;br /&gt;
&lt;br /&gt;
I&#039;ve been playing with the table (again). I&#039;ve tried to get it so it looks decent in both IE and Firefox. I&#039;ve been trying to get it to put all the extra space into the last section, which I managed in Firefox but haven&#039;t figured out the correct permutation of parameters for IE. I&#039;m content at this moment to leave it be (I use Firefox). [[User:Strife Onizuka|Strife Onizuka]] 08:49, 17 March 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Warning notice? ==&lt;br /&gt;
&lt;br /&gt;
Might it be an idea to include a short warning on the top of this page that the LSL Portal is as yet incomplete?&lt;br /&gt;
&lt;br /&gt;
I just spent a while trying to find a list function I knew existed, but couldn&#039;t remember the exact name of, which hasn&#039;t made it here yet before realising that not all functions are listed yet.&lt;br /&gt;
--[[User:Nick Shatner|Nick Shatner]], 02:56, 2 May 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
:The vast majority of functions have been catagorized so if you had started from the {{LSLGC|List|list category page}} you probably would have found it. There are a small handful of functions that haven&#039;t been catagorized beyond the {{LSLGC|Functions}} category. I&#039;m not sure if a warning is warranted but I do recognize there are gaps in the LSL information. -- [[User:Strife Onizuka|Strife Onizuka]] 13:31, 2 May 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
llSetText page&lt;br /&gt;
which is here&lt;br /&gt;
http://wiki.secondlife.com/wiki/LlSetText&lt;br /&gt;
is missing from page listing all the functions. Can&#039;t quite figure out how that page gets its info, so not going to touch it.&lt;br /&gt;
-- (anonymous and undated) (because not signed with dash dash tilde tilde tilde tilde)&lt;br /&gt;
&lt;br /&gt;
:http://wiki.secondlife.com/w/index.php?title=Category:LSL_Functions&amp;amp;from=PlaySound&lt;br /&gt;
:includes [[llSetText]] nowadays&lt;br /&gt;
:maybe because &amp;quot;LSL Functions&amp;quot; appears in the Categories list at the end nowadays.&lt;br /&gt;
:-- [[User:Ppaatt Lynagh|Ppaatt Lynagh]] 05:57, 2 December 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
== Conspiracy? ==&lt;br /&gt;
&lt;br /&gt;
I whould like to know if &amp;lt;br/&amp;gt;&lt;br /&gt;
a) this is a public wiki, where everybody can contribute so the LSL gets better known, or if it is a private viki with conspirativ charakter&amp;lt;br/&amp;gt;&lt;br /&gt;
b) why it is kept so spartanik with information&amp;lt;br/&amp;gt;&lt;br /&gt;
c) why no lindens who wrote LSL document their work&amp;lt;br/&amp;gt;&lt;br /&gt;
d) why some private persons are called administrators, what rights do they have, and if they have ever signed a paper that makes them not abuse theyr position&amp;lt;br/&amp;gt;&lt;br /&gt;
e) why linden lab employees never fisicaly work and only give &amp;quot;precios advises&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
dont dare to delete this.&amp;lt;br/&amp;gt;&lt;br /&gt;
{{User|Anylyn Hax}} 04:09, 8 August 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
:I shall try to answer:&lt;br /&gt;
:a) It is a public wiki but not everyone can contribute, you must have an SL account to contribute.&lt;br /&gt;
:b) No one has added more information.&lt;br /&gt;
:c) They did, it&#039;s in the LSL manual that ships with the client (it&#039;s common knowledge that it sucks).&lt;br /&gt;
:d) I don&#039;t know of any non-linden administrators on the wiki.&lt;br /&gt;
:e) The design of LSL is stable and there are very few LSL bugs that haven&#039;t been vetted; it would surprise me if there were any full time LSL devs. Just because we don&#039;t see them working doesn&#039;t mean they aren&#039;t working; the SL code base is huge.&lt;br /&gt;
:-- [[User:Strife Onizuka|Strife Onizuka]] 12:56, 8 August 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Vehicle Tutorial ==&lt;br /&gt;
&lt;br /&gt;
Could we get the original vehicle tutorial added to this wiki. I realize it&#039;s not in the correct format, but it&#039;s a place to start. There was a wikified version too in the old wiki someone did, but they&#039;d have to contribute it themselves I&#039;d think. I can&#039;t find the original tutorial outside the old wiki.&lt;br /&gt;
&lt;br /&gt;
:The tutorial was part of the LSL manual that ships with the client. LL has given permission to post it on the wiki. -- [[User:Strife Onizuka|Strife Onizuka]] 16:37, 8 September 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
::I found an old copy I had and wikified it. This is pretty much the original version, so it&#039;s probably a bit whacked, please fix any problems you&#039;re aware of [[User:Ralph Doctorow|Ralph Doctorow]]&lt;br /&gt;
&lt;br /&gt;
== color ==&lt;br /&gt;
&lt;br /&gt;
It would be very helpful if I could use different colored text when writing my articles. Could buttons be added for black text, red text, green text, and one other color of text? Or could someone list the codes that can be used to change text color?&lt;br /&gt;
&lt;br /&gt;
Just as an example of what I intend to use color for:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;black&#039;&#039;rotation &#039;&#039;red&#039;&#039;variable&#039;&#039;black&#039;&#039;=&amp;lt;&#039;&#039;red&#039;&#039;%,%,%,&#039;&#039;green&#039;&#039;#.#&#039;&#039;black&#039;&#039;&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
-- Anonymous, Undated&lt;br /&gt;
&lt;br /&gt;
: The LSL /LSL tags give colour to LSL code, &#039;&#039;e.g.&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;vector up = &amp;lt; 0, 0, 1 &amp;gt;;&amp;lt;/lsl&amp;gt; -- [[User:Ppaatt Lynagh|Ppaatt Lynagh]] 16:20, 3 January 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== LSL tags and automatic linking: some errors noticed ==&lt;br /&gt;
&lt;br /&gt;
I&#039;m not aware of a specific template to edit/update, but I&#039;ve noticed some of auto-linked functions and constants from &amp;lt;nowiki&amp;gt;&amp;lt;lsl&amp;gt;&amp;lt;/lsl&amp;gt;&amp;lt;/nowiki&amp;gt; tags point to incorrect or &#039;bad&#039; (not found) pages. case in point, llSay points to Lsl_LLSay (which will redirect), and PUBLIC_CHANNEL points to a non-existant search page (there is an actual page available, but it doesn&#039;t go there). I&#039;m sure there are other examples of this, but I&#039;m not aware of a way to update it.... &lt;br /&gt;
&lt;br /&gt;
also curious to know if there is any hope of having localized pages (like french) redirect to their language equivalents through these tags at some point (I know it&#039;s not really feasible at the moment)&lt;br /&gt;
-- [[User:Void Singer|Void Singer]] 13:42, 19 February 2008 (PST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hacks? ==&lt;br /&gt;
&lt;br /&gt;
Could we please create a hacks page to be linked on the main LSL portal. Similiar to the old LSL wiki of compiling a growing list of well known tricks and tips for scripting.&lt;br /&gt;
&lt;br /&gt;
For example a well known trick, which I use frequently is the use of (List!=[]) instead of llGetListLength. --[[User:Nexii Malthus|Nexii Malthus]] 07:38, 19 May 2008 (PDT)&lt;br /&gt;
&lt;br /&gt;
:I&#039;ve slapped a page together: [[LSL Hacks]]. I&#039;d like comments on the style and layout. Please in the future don&#039;t stand on ceremony, if a niche needs filling, then please fill it with content. I have found that if you wait for people to weigh in before you start then nothing will get done. Better to do your best and make adjustments when there is a stink. -- [[User:Strife Onizuka|Strife Onizuka]] 09:37, 19 May 2008 (PDT)&lt;br /&gt;
&lt;br /&gt;
== LSLwiki.net ==&lt;br /&gt;
&amp;lt;sup&amp;gt;(moved from &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[{{fullurl:Template talk:LSL Function|oldid=110833}} Template talk:LSL Function]&amp;lt;/span&amp;gt;)&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I had a discussion with [[User:Gally Young|Gally]] today and we came to the following conclusion:&amp;lt;br&amp;gt;Since we&#039;re not able to copy content from [http://www.lslwiki.net lslwiki.net] and vice versa - because of licensing problems - we might benefit from linking related articles of both wikis. So users can easily switch from one Wiki to the other and find the information most helpful for them. There shouldn&#039;t be a rivalry between these two documentation projects. They should benefit from each other. Therefor, we&#039;re adding a link to the related LSLwiki.net article to this template. I hope it&#039;s ok.&amp;lt;br&amp;gt;&lt;br /&gt;
Something else on the same topic: It seems to be(come) quite popular in Wiki culture to double-license the own contributions, in order to make them easier to share. Wikis of interest for us:&lt;br /&gt;
* The Second Life Wiki (of course): [http://creativecommons.org/licenses/by-sa/3.0/ Creative Commons Attribution-Share Alike 3.0]&lt;br /&gt;
* The [http://www.lslwiki.net LSLwiki.net]: an [http://lslwiki.net/lslwiki/wakka.php?wakka=LSLwikicopyright implicit copyright model]&lt;br /&gt;
* The [http://secondlife.wikia.com/wiki/Main_Page SecondLife Wikia]: [http://www.gnu.org/copyleft/fdl.html GNU Free Documentation License]&lt;br /&gt;
Please consider to double-license your contributions to this (or other) Wikis in order to make them easier to share, by writing a statemanet about double licensing on your userpage. You can also use one of [[User:SignpostMarv Martin|Marv]]&#039;s templates: [[Template:Re-license contributions]] as well as [[Template:License]].&amp;lt;br&amp;gt;&lt;br /&gt;
This is just a &#039;&#039;suggestion&#039;&#039; of course. Just do it, in case you want to do it.&amp;lt;br&amp;gt;&lt;br /&gt;
Greetz, [[Image:Zai_signature.png|45px]] &#039;&#039;&#039;[[User:Zai Lynch|Lynch]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Zai Lynch|talk]]|[[Special:Contributions/Zai Lynch|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 20:14, 9 September 2008 (PDT)&lt;br /&gt;
&lt;br /&gt;
== LSL Portal should have links to pages that are helpful and often used ==&lt;br /&gt;
&lt;br /&gt;
* The guidelines shown is for editing the LSL portal and not about LSL script it self. Instead it should link to say [[LSL Style Guide]] or just be removed.&lt;br /&gt;
* The same thing with the to do link. I would just remove it.&lt;br /&gt;
* I most often use [[:Category:LSL Functions]]. When I first was looking for information on how to script in LSL this is what I wanted. I think it should be the first link. Looking at [[Special:Statistics]] it is the 5th most viewed page with 708,956 views.&lt;br /&gt;
* Next I think [[LSL Tutorial]] should be added as it is a great place for people who have never scripted before and even for those who work in other languages. This is also the 8th most viewed page on the wiki.&lt;br /&gt;
* The last link I would add [[:Category:LSL_Library]] which is a list of scripts that show off how LSL works or does a common task.&lt;br /&gt;
:* For the the two categories you may want to use [[Template:LSLGC]].&lt;br /&gt;
[[User:Master Starship|Master Starship]] 17:34, 23 April 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* I take it you haven&#039;t see the [[Template:LSL Header|Header]] at the top of every article in the [[LSL Portal]]. It has all those links you call for. (Those articles didn&#039;t get popular because people used &amp;quot;Search&amp;quot;).&lt;br /&gt;
* The [[LSL Portal Guidelines]] contains not just the rules but the mission statement for the LSL Portal. It is fundamental to the this portals continued existence. Without it we would lack direction, and defined social guidelines. Without defined guidelines we would eventual descend into chaos (I&#039;ve seen it happen; the writing of the guidelines has mostly been in reaction to specific incidents). It needs to be in a prominent position so that editors will find it and read it (or can&#039;t make excuses as to why they haven&#039;t read it).&lt;br /&gt;
* Like the [[LSL Portal Guidelines]], the [[LSL Portal To-do]] link is in a section dedicated to the [[LSL Portal]] as a whole, not to LSL scripting. The rest of the page is dedicated to scripting. It&#039;s a small section.&lt;br /&gt;
-- &#039;&#039;&#039;[[User:Strife_Onizuka|Strife]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Strife_Onizuka|talk]]|[[Special:Contributions/Strife_Onizuka|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 19:14, 23 April 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Proposal About &amp;quot;LSL Categories&amp;quot; Section ==&lt;br /&gt;
&lt;br /&gt;
I find current view is too messing and difficult to find what I need. The users end up looking in huge list of {{LSLGC|Functions}}, clicking much. I am thinking about organizing the list to easily look up the LSL articles.&lt;br /&gt;
&lt;br /&gt;
Here is the proposal of categorizing.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Avatar&lt;br /&gt;
 - Animation&lt;br /&gt;
 - Attachment&lt;br /&gt;
 - Behavior&lt;br /&gt;
 - Camera&lt;br /&gt;
 - Properties&lt;br /&gt;
Land&lt;br /&gt;
 - Parcel&lt;br /&gt;
 - Region&lt;br /&gt;
Object&lt;br /&gt;
 - Detection&lt;br /&gt;
 - Existence&lt;br /&gt;
 - Face&lt;br /&gt;
 - Inventory&lt;br /&gt;
 - Link&lt;br /&gt;
 - Media&lt;br /&gt;
 - Physic&lt;br /&gt;
 - Properties&lt;br /&gt;
 - Text&lt;br /&gt;
Script&lt;br /&gt;
 - Control&lt;br /&gt;
　- Convert&lt;br /&gt;
 - List&lt;br /&gt;
 - Math&lt;br /&gt;
 - Network&lt;br /&gt;
 - String&lt;br /&gt;
 - Time&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I tried to sort all existing 339 functions (except God, not active one).&lt;br /&gt;
Here is the list ---&amp;gt; [[User:Mako_Nozaki/Category_Function]]&lt;br /&gt;
&lt;br /&gt;
My thought is, current categories will remain as is and will be used as &amp;quot;tags&amp;quot;. Missing categories will be added and be linked from each functions. Adding these categories to LSL Header using Javascript (pulldown menu) might be cool. --[[User:Mako Nozaki|Mako]] 12:56, 1 May 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== User-Defined Functions ==&lt;br /&gt;
&lt;br /&gt;
I&#039;m personally adverse to linking to the template description rather than the category (which already back links to the template) in the &amp;quot;language reference&amp;quot; section, as per the [[https://wiki.secondlife.com/w/index.php?title=LSL_Portal&amp;amp;diff=0&amp;amp;oldid=1158048|most recent edit]]. but since it&#039;s obvious someone else is not I thought I&#039;d solicit thoughts before reverting it. I&#039;m thinking it could be more clear on the category page though.&amp;lt;br/&amp;gt;-- &#039;&#039;&#039;[[User:Void_Singer|Void]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User_talk:Void_Singer|talk]]|[[Special:Contributions/Void_Singer|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 22:49, 10 May 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
:I agree with you. In addition to that, I think the two articles should be merged. We gain nothing of value by having them separate. -- &#039;&#039;&#039;[[User:Strife_Onizuka|Strife]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Strife_Onizuka|talk]]|[[Special:Contributions/Strife_Onizuka|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 10:37, 11 May 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
::Pointed the link back at the category, folded the article into the category page, and marked the original article page for deletion.&amp;lt;br/&amp;gt;-- &#039;&#039;&#039;[[User:Void_Singer|Void]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User_talk:Void_Singer|talk]]|[[Special:Contributions/Void_Singer|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 10:45, 1 June 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Categories ==&lt;br /&gt;
&lt;br /&gt;
It&#039;s probably time to update the category list and tree again. It&#039;s been a while and I&#039;m sure I&#039;ve added more since the last time we update them. Also I should remember to update the LSL News box. -- &#039;&#039;&#039;[[User:Strife_Onizuka|Strife]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Strife_Onizuka|talk]]|[[Special:Contributions/Strife_Onizuka|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 10:42, 11 May 2012 (PDT)&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:LSL_Portal&amp;diff=1169148</id>
		<title>Talk:LSL Portal</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:LSL_Portal&amp;diff=1169148"/>
		<updated>2012-06-14T19:02:18Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: !/* LSL wiki-namespace */ !&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header}}{{Talk}}&lt;br /&gt;
= Please do not copy content from LSLwiki =&lt;br /&gt;
&lt;br /&gt;
From [http://forums.secondlife.com/showpost.php?p=1392697&amp;amp;postcount=44 Rob Linden&#039;s post to the forum]:&lt;br /&gt;
:Hi folks, sorry for dropping into this conversation late. I haven&#039;t read through everything here, but I&#039;d like to present an alternative.&lt;br /&gt;
&lt;br /&gt;
:There have been several requests that Linden Lab take on the hosting of the LSL wiki. There are several problems with us doing this work. The primary problem is the question of ownership of the material. Since, to the best of our knowledge, there was never an explicit, consistent notice of ownership of this material throughout its creation, nor a clear assignment/license associated with contributing more material, it would seem the only safe way to license this content would be to contact every single contributor throughout the life of the wiki and get an explicit license or copyright assignment from them. Note that I said &amp;quot;safe&amp;quot;, not &amp;quot;practical&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
:We&#039;re not in a position to go down that road. However, we do have wiki.secondlife.com, which has had, since day one, a very clear notice about the license under which contributions are made and distributed. We would be very happy to see the community collaborate on newly created content on wiki.secondlife.com. As long as you author the content (not cut and paste from sources you are not the sole author of), we welcome your contribution. -- [[User:Rob Linden|Rob Linden]] 14:30, 24 January 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
OK, so let&#039;s talk about formatting rules for entries.&lt;br /&gt;
&lt;br /&gt;
(Moved to [[LSL Portal Guidelines]], so that this talk doesn&#039;t get too cluttered.) -- [[User:Talarus Luan|Talarus Luan]] 16:32, 24 January 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
[[User:Talarus Luan|Talarus Luan]] 14:28, 24 January 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=Other Discussion=&lt;br /&gt;
&lt;br /&gt;
== LSL Guide lost ==&lt;br /&gt;
&lt;br /&gt;
http://svn.secondlife.com/trac/linden/changeset/1392&lt;br /&gt;
linked from the page history &lt;br /&gt;
says new residents downloading the client won&#039;t be getting a copy of the LSL_Guide.html any more ...&lt;br /&gt;
&lt;br /&gt;
Q1. Where on the web do new residents go to get the LSL_Guide now? -- [[User:Ppaatt Lynagh|Ppaatt Lynagh]] 16:17, 3 January 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Q2. How should this [[LSL Portal]] page tell new residents to be sure to read the LSL_Guide first to correctly understand what else we say here? -- [[User:Ppaatt Lynagh|Ppaatt Lynagh]] 16:17, 3 January 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Untitled Chat ==&lt;br /&gt;
&lt;br /&gt;
Should we make this the front page to the LSL reference, or put that one more level down?  I kinda lean toward the former.  [[User:Gigs Taggart|Gigs Taggart]] 14:09, 24 January 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Yeah i think so... (Unsigned by Dimentox Travanti}&lt;br /&gt;
:Remember to sign your post with four tildes. [[User:Gigs Taggart|Gigs Taggart]] 14:26, 24 January 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I used a modified version of the [http://meta.wikimedia.org/wiki/User:Ajqnic:GeSHiHighlight GeSHiHighlight] plugin for MediaWiki.  With an LSL syntax file.  The license for the plugin and for [http://qbnz.com/highlighter/ GeSHi] is GPL, it also requires another plugin [http://meta.wikimedia.org/wiki/User:Ajqnic:purgePage purgePage].&lt;br /&gt;
--[[User:Thraxis Epsilon|Thraxis Epsilon]] 15:00, 24 January 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
== Regarding copying content from the existing Wiki ==&lt;br /&gt;
&lt;br /&gt;
This isn&#039;t clear from Rob&#039;s post, but it should be made clear: we CAN copy our OWN content from the existing wiki. IE, I plan to copy/paste my XML-RPC notes from the existing one. Does that present an issue? If so, why?&lt;br /&gt;
[[User:Talarus Luan|Talarus Luan]] 16:03, 24 January 2007 (PST)&lt;br /&gt;
:If you are the sole author, it wouldn&#039;t.  Just be careful and check the page history.   [[User:Gigs Taggart|Gigs Taggart]] 16:10, 24 January 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
== Syntax Highlighting ==&lt;br /&gt;
&lt;br /&gt;
Updated info on the syntax highlighting is available here [[http://rpgstats.com/wiki/index.php?title=GeSHiHiLight.php GeSHiHiLight]]&lt;br /&gt;
--[[User:Thraxis Epsilon|Thraxis Epsilon]] 16:10, 24 January 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
:Lets hope they include it soon ^^ [[User:Strife Onizuka|Strife Onizuka]] 21:21, 24 January 2007 (PST)&lt;br /&gt;
:Is there anyone we can ask? [[User:Dimentox Travanti|Dimentox Travanti]] 10:50, 25 January 2007 (PST)&lt;br /&gt;
:any news or update on this? [[User:Blueman Steele|Blueman Steele]] 6:12, 10 February 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
::We tried to use start using this on Thursday, but ran into some problems.  Thraxis, it&#039;ll help if you can contact me privately to discuss some of the issues. -- [[User:Rob Linden|Rob Linden]] 00:37, 11 February 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
:What&#039;s the status of syntax highlighting? --[[User:Mokelembembe Mokeev|Mokelembembe Mokeev]] 15:11, 24 April 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
::No one has made any efforts recently to get the highlighter included in the wiki. If you are going to post highlighted code, it would be good to have it output in such a way that keywords link to their appropriate pages. -- [[User:Strife Onizuka|Strife Onizuka]] 16:53, 24 April 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
:Talked with Rob Liden - The concern with the script is about security and the possiblity of injecting PHP code into the script hilighting. Since its a possible security issue he would like somebody at Linden to look into and fix it. I&#039;m going to look into the script and tell Rob what I found also. --[[User:Mokelembembe Mokeev|Mokelembembe Mokeev]] 15:29, 4 May 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Let&#039;s refer to this simply as the &amp;quot;LSL portal&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
Since there&#039;s already something out there called the &amp;quot;LSLwiki&amp;quot;, let&#039;s refer to this as the LSL Portal to distinguish it.  If there&#039;s no objection, I&#039;ll move the pages with &amp;quot;LSL Wiki&amp;quot; in the title to some other appropriate name -- [[User:Rob Linden|Rob Linden]] 17:09, 24 January 2007 (PST)&lt;br /&gt;
:No objections here. :) I just updated [[LSL Wiki To-do]] with some assignment tables. I went ahead and moved it to [[LSL Portal To-do]] [[User:Talarus Luan|Talarus Luan]] 18:12, 24 January 2007 (PST)&lt;br /&gt;
:: Simple, consistent messaging: I&#039;ve gotten into the habit of using &amp;quot;LSL Portal&amp;quot; regularly myself.&lt;br /&gt;
:: --[[User:Torley Linden|Torley Linden]] 10:40, 31 January 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
== A way back... ==&lt;br /&gt;
&lt;br /&gt;
Every page should have a header that goes back to the portal index not the wiki index.&lt;br /&gt;
if we could even geta link in the left hand would be great.&lt;br /&gt;
&lt;br /&gt;
[[User:Dimentox Travanti|Dimentox Travanti]] 10:47, 25 January 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
: I second the idea of a link in the main Navigation list.  It makes it a lot easier to access the LSL Portal.&lt;br /&gt;
: [[User:Cron Stardust|Cron Stardust]] 11:25, 5 March 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
== Transitions ==&lt;br /&gt;
Encouraging to see this happening — and to see [http://www.lslwiki.org/ a second mirror] for the [http://www.lslwiki.com LSL wiki] too; hopefully I haven&#039;t come too late, because these developments look like they&#039;ve transpired over the last few days.&lt;br /&gt;
&lt;br /&gt;
Just wanted to let you know I&#039;ve added a link to our LSL Portal from our blog&#039;s Notices; it&#039;ll be up for some time. I&#039;m also going to add a simple article to the [http://secondlife.com/knowledgebase/ Knowledge Base] directing to this LSL Portal, since it&#039;s important to get more contributors aware, interested, and involved.&lt;br /&gt;
&lt;br /&gt;
I&#039;d like to personally be more active in this wiki... great things are afoot. I&#039;ve been spread across too many [http://secondlife.com/knowledgebase/article.php?id=357 communication channels] lately, so I&#039;ve been rotating between focuses (foci?); hopefully next week I&#039;ll have more hands-on energy here.&lt;br /&gt;
&lt;br /&gt;
Thanx to each and all of you building up this resource so far!&lt;br /&gt;
&lt;br /&gt;
--[[User:Torley Linden|Torley Linden]] 10:21, 26 January 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
== LSL Header/Footer ==&lt;br /&gt;
Below is the header/footer template: &amp;lt;nowiki&amp;gt;{{LSL Header}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
{{LSL Header}}&lt;br /&gt;
Also, since &amp;lt;nowiki&amp;gt;&amp;lt;lsl&amp;gt;&amp;lt;/lsl&amp;gt;&amp;lt;/nowiki&amp;gt; tags don&#039;t seem to work yet, I used &amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/nowiki&amp;gt;... hope that&#039;s alright, I know nothing about wikis except what I&#039;ve taught myself tonight. --[[User:DoteDote Edison|DoteDote Edison]] 20:45, 27 January 2007 (EST)&lt;br /&gt;
:Actually, go ahead and use the &amp;lt;nowiki&amp;gt;&amp;lt;lsl&amp;gt;&amp;lt;/lsl&amp;gt;&amp;lt;/nowiki&amp;gt; tags. Even though it may look like crap right this minute, as soon as the module is installed, it will instantly be perfect. :) [[User:Talarus Luan|Talarus Luan]] 14:59, 29 January 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
== LSL wiki-namespace ==&lt;br /&gt;
&lt;br /&gt;
All the LSL pages are prefixed with &amp;quot;LSL &amp;quot;, like &amp;quot;LSL Portal&amp;quot;, &amp;quot;LSL LLRand&amp;quot;, etc.  It would seem more justly to use the wiki-namespace &amp;quot;LSL:&amp;quot;.  Change the names from &amp;quot;LSL LLRand&amp;quot; to &amp;quot;LSL:LLRand&amp;quot;.  My 2 lindens. [[User:Dzonatas Sol|Dzonatas Sol]] 00:28, 2 February 2007 (PST) &lt;br /&gt;
:Just thought about this little more. We could use subpages instead of namespaces, then the talk pages will fully work.  &amp;quot;LSL/LLRand&amp;quot; for example [[User:Dzonatas Sol|Dzonatas Sol]] 00:41, 2 February 2007 (PST)&lt;br /&gt;
::I&#039;m not going to make a big fuss about it, but I&#039;d prefer if, per the [[Editing Guidelines]], that the page just be called &amp;quot;LLRand&amp;quot;. -- [[User:Rob Linden|Rob Linden]] 01:06, 2 February 2007 (PST)&lt;br /&gt;
:As this wiki has grown a great deal in other aspects the need for a namespace for LSL: has become even greater. This would allow the search functions to isolate LSL results from the more general content unrelated to LSL. — [[User:Kizmut Smit|kizmut]]&amp;lt;span style=&amp;quot;letter-spacing: -2px&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;[[User Talk:Kizmut Smit|T]]&amp;lt;/sup&amp;gt;/&amp;lt;sub&amp;gt;[[Special:Contributions/Kizmut Smit|C]]&amp;lt;/sub&amp;gt;&amp;lt;/span&amp;gt; 12:02, 14 June 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
== LSL conformance test ==&lt;br /&gt;
&lt;br /&gt;
Hi folks, we&#039;re planning to consolidate a lot of our scattered LSL conformance tests on this wiki.  I created two rather crude templates: [[Template:LSL conformance test]] and [[Template:LSL conformance script]], which were created for adding our conformance suite.  See [[LSL llGetUnixTime test]] for an example.  I&#039;d like to get a sense from people if this is a sensible way to do this.  The idea is to get these templates stabilized, and that will provide us a mechanism for those of us at LL to consolidate our tests.  Of course, if the community wants to chip in, that&#039;s great too...having items in our standard LSL conformance suite makes it less likely that we&#039;ll break an LSL feature that&#039;s important to you. -- [[User:Rob Linden|Rob Linden]] 22:53, 7 February 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
== LSL Categories List ==&lt;br /&gt;
What about a vertical list of categories down the right side of the LSL Portal front page?  The right-side list on the original wiki was my primary source of navigation, but maybe I&#039;m odd.  I could add it myself, but I&#039;m not sure how to make it automatically update the list as new categories are added. --[[User:DoteDote Edison|DoteDote Edison]] 20:20, 9 February 2007 (EST)&lt;br /&gt;
:Oops... right after I posted this, I noticed that it&#039;s item #4 on the &amp;quot;To-Do&amp;quot; list.  I went ahead and modified the front page to add a cetagories list.  If you don&#039;t like it, feel free to revert.  --[[User:DoteDote Edison|DoteDote Edison]] 20:55, 9 February 2007 (EST)&lt;br /&gt;
:The names all start with &amp;quot;LSL&amp;quot; and the names are not optimal for listing... The names could be changed though. I&#039;ll dig though the MediaWiki commands later and see if I can find any that would work well in this case. I don&#039;t have high hopes in this case. [[User:Strife Onizuka|Strife Onizuka]] 18:59, 9 February 2007 (PST)&lt;br /&gt;
Is the 200 articles per category page a mediawiki limit, or can we change it to 400 per page in a configuration somewhere? [[User:DoteDote Edison|DoteDote Edison]] 21:50, 22 February 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
:If there&#039;s an issue with seeing all the pages, I can add the alphabetical navigation template later.&lt;br /&gt;
:[[User:SignpostMarv Martin|SignpostMarv Martin]] 06:16, 23 February 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
== Internationalizing ==&lt;br /&gt;
&lt;br /&gt;
How do we want to go about internationalizing the LSL wiki. It should probably be tied into the global wiki effort. [[User:Strife Onizuka|Strife Onizuka]] 07:20, 11 February 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
:With modular templates (e.g. the way I do them) vs monolithic templates (e.g. the way you do them), the templates won&#039;t need to be changed, only the content going into them. Regarding [[User talk:SignpostMarv Martin/Sandbox/Project:Internationalisation#multi-lingual articles|Project:Internationalisation#multi-lingual articles]], I have some freaky ideas to make maintenance of the LSL-specific multi-lingual articles a little easier to maintain.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;p.s. I&#039;m not sure whether Internationalisation of the LSL articles should be discussed here or [[User talk:SignpostMarv Martin/Sandbox/Project:Internationalisation#multi-lingual articles|there]].&amp;lt;br /&amp;gt;[[User:SignpostMarv Martin|SignpostMarv Martin]] 08:05, 11 February 2007 (PST) [[Talk:LSL_Function_Style|Moved from Talk:LSL_Function_Style]]&lt;br /&gt;
&lt;br /&gt;
::But your idea on templates don&#039;t provide structure, it requires the user to provide the structure and if we want to change the layout of the pages we need to go through and change ever single page. I&#039;m pretty sure I can put together template-templates that should make translating the templates easy as setting a few variables. We wouldn&#039;t be using the template-template directly for rendering but use [http://meta.wikimedia.org/wiki/Help:Substitution substitution]. Changing a dozen monolithic templates is better then changing a dozen * 328 pages. Also means that you get the same translation ever single time.&amp;lt;br/&amp;gt;I&#039;ve been thinking i could modify the LSLC, LSLG, LSLGC templates to support automated linking in language specific subpages. So if the page you are on is in Spanish, the links will lead to pages in Spanish if they exist. No special modifications to the links needed.[[User:Strife Onizuka|Strife Onizuka]] 06:43, 13 February 2007 (PST)&lt;br /&gt;
:::&#039;&#039;But your idea on templates don&#039;t provide structure, it requires the user to provide the structure&#039;&#039;&lt;br /&gt;
:::* That&#039;s kinda the point. Look at what information will need to be reused over and over again, and put it into a small template. Then those templates can be used directly, or as part of a wrapper template.&lt;br /&gt;
:::&#039;&#039;I&#039;m pretty sure I can put together template-templates that should make translating the templates easy as setting a few variables.&#039;&#039;&lt;br /&gt;
:::* The templates don&#039;t need translating, just the content.&lt;br /&gt;
:::&#039;&#039;I&#039;ve been thinking i could modify the LSLC, LSLG, LSLGC templates to support automated linking in language specific subpages. So if the page you are on is in Spanish, the links will lead to pages in Spanish if they exist.&#039;&#039;&lt;br /&gt;
:::* That would be bad.&lt;br /&gt;
:::* Better idea to follow.&lt;br /&gt;
:::[[User:SignpostMarv Martin|SignpostMarv Martin]] 13:13, 13 February 2007 (PST)&lt;br /&gt;
:::[[Template:Multi-lang]] I&#039;ve given up fixing the bugs in that, but you get the idea behind it&#039;s intent. Include [[Help:Getting_started_in_Second_Life/langs]] in your test page and &amp;lt;nowiki&amp;gt;{{#vardefine:article-lang}}&amp;lt;/nowiki&amp;gt; to either &#039;&#039;&#039;spa&#039;&#039; or &#039;&#039;&#039;eng&#039;&#039;&#039;.&lt;br /&gt;
:::Please fork the code into your own userspace if you&#039;re going to work on it (unless you know of an instant fix) to prevent edit collisions.&lt;br /&gt;
:::I&#039;ve also started work on [[Template:ISO_639-3/native]] to save a bit of time with entering languages that one browser might not be configured for (e.g. the higher-end UTF-8 characters)&lt;br /&gt;
:::[[User:SignpostMarv Martin|SignpostMarv Martin]] 22:08, 19 February 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
:[[User:CatherinePfeffer|Catherine Pfeffer]] Starting translation of the LSL Portal to French with the group &amp;quot;Constructeurs et scripteurs&amp;quot;&lt;br /&gt;
&lt;br /&gt;
: Please refer to a related discussion on [[Project:Languages]].  -- [[User:Alissa Sabre|Alissa Sabre]] 07:58, 4 November 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
== phasing out of [[Template:LSLG]] ==&lt;br /&gt;
&lt;br /&gt;
Since the need to prefix almost everything with LSL_ is now being removed, all articles that are calling [[Template:LSLG]] should be edited to use a Wiki link, as the template is now rather redundant. &lt;br /&gt;
&lt;br /&gt;
The list of articles calling [[Template:LSLG|LSLG]] can be viewed via [https://wiki.secondlife.com/w/index.php?title=Special:Whatlinkshere&amp;amp;target=Template%3ALSLG Special:Whatlinkshere].&lt;br /&gt;
&amp;lt;br /&amp;gt;[[User:SignpostMarv Martin|SignpostMarv Martin]] 22:08, 19 February 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
:I think the pages in the {{LSLGC|FixMe}} category should be of a higher priority. Phasing out usage is reasonable, going through every page that uses it on the other hand just to remove it would be a waste of resources. I&#039;m a bit nervous about stopping using it at present, the metaphoric paint hasn&#039;t even dried on the move yet. Considering it doesn&#039;t effect the rendering, phasing it&#039;s usage out is appropriate. [[User:Strife Onizuka|Strife Onizuka]] 23:20, 20 February 2007 (PST)&lt;br /&gt;
::Waste of resources ?&lt;br /&gt;
::Isn&#039;t it a waste of resources to use a template that in most cases is entirely redundant ?&lt;br /&gt;
::[[User:SignpostMarv Martin|SignpostMarv Martin]] 02:23, 21 February 2007 (PST)&lt;br /&gt;
:::We haven&#039;t even finihed moving the function pages to the new names and template yet.  You could help with that instead of worrying about templates, you know. [[User:Gigs Taggart|Gigs Taggart]] 07:35, 21 February 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
== The original LSL Wiki is back! ==&lt;br /&gt;
Catherine Omega&#039;s [http://www.lslwiki.net original LSL Wiki] is back. She mentioned:&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&amp;quot;This is DEFINITELY back. And it&#039;s definitely permanent. It&#039;s all editable. And it&#039;s the &#039;official&#039;, Catherine-Omega-approved one.&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://www.catherineomega.com/2007/37/the-lsl-wiki-finds-a-new-home Further context can be found @ her blog.] --[[User:Torley Linden|Torley Linden]] 13:41, 28 February 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
== Table ==&lt;br /&gt;
&lt;br /&gt;
I&#039;ve been playing with the table (again). I&#039;ve tried to get it so it looks decent in both IE and Firefox. I&#039;ve been trying to get it to put all the extra space into the last section, which I managed in Firefox but haven&#039;t figured out the correct permutation of parameters for IE. I&#039;m content at this moment to leave it be (I use Firefox). [[User:Strife Onizuka|Strife Onizuka]] 08:49, 17 March 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Warning notice? ==&lt;br /&gt;
&lt;br /&gt;
Might it be an idea to include a short warning on the top of this page that the LSL Portal is as yet incomplete?&lt;br /&gt;
&lt;br /&gt;
I just spent a while trying to find a list function I knew existed, but couldn&#039;t remember the exact name of, which hasn&#039;t made it here yet before realising that not all functions are listed yet.&lt;br /&gt;
--[[User:Nick Shatner|Nick Shatner]], 02:56, 2 May 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
:The vast majority of functions have been catagorized so if you had started from the {{LSLGC|List|list category page}} you probably would have found it. There are a small handful of functions that haven&#039;t been catagorized beyond the {{LSLGC|Functions}} category. I&#039;m not sure if a warning is warranted but I do recognize there are gaps in the LSL information. -- [[User:Strife Onizuka|Strife Onizuka]] 13:31, 2 May 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
llSetText page&lt;br /&gt;
which is here&lt;br /&gt;
http://wiki.secondlife.com/wiki/LlSetText&lt;br /&gt;
is missing from page listing all the functions. Can&#039;t quite figure out how that page gets its info, so not going to touch it.&lt;br /&gt;
-- (anonymous and undated) (because not signed with dash dash tilde tilde tilde tilde)&lt;br /&gt;
&lt;br /&gt;
:http://wiki.secondlife.com/w/index.php?title=Category:LSL_Functions&amp;amp;from=PlaySound&lt;br /&gt;
:includes [[llSetText]] nowadays&lt;br /&gt;
:maybe because &amp;quot;LSL Functions&amp;quot; appears in the Categories list at the end nowadays.&lt;br /&gt;
:-- [[User:Ppaatt Lynagh|Ppaatt Lynagh]] 05:57, 2 December 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
== Conspiracy? ==&lt;br /&gt;
&lt;br /&gt;
I whould like to know if &amp;lt;br/&amp;gt;&lt;br /&gt;
a) this is a public wiki, where everybody can contribute so the LSL gets better known, or if it is a private viki with conspirativ charakter&amp;lt;br/&amp;gt;&lt;br /&gt;
b) why it is kept so spartanik with information&amp;lt;br/&amp;gt;&lt;br /&gt;
c) why no lindens who wrote LSL document their work&amp;lt;br/&amp;gt;&lt;br /&gt;
d) why some private persons are called administrators, what rights do they have, and if they have ever signed a paper that makes them not abuse theyr position&amp;lt;br/&amp;gt;&lt;br /&gt;
e) why linden lab employees never fisicaly work and only give &amp;quot;precios advises&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
dont dare to delete this.&amp;lt;br/&amp;gt;&lt;br /&gt;
{{User|Anylyn Hax}} 04:09, 8 August 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
:I shall try to answer:&lt;br /&gt;
:a) It is a public wiki but not everyone can contribute, you must have an SL account to contribute.&lt;br /&gt;
:b) No one has added more information.&lt;br /&gt;
:c) They did, it&#039;s in the LSL manual that ships with the client (it&#039;s common knowledge that it sucks).&lt;br /&gt;
:d) I don&#039;t know of any non-linden administrators on the wiki.&lt;br /&gt;
:e) The design of LSL is stable and there are very few LSL bugs that haven&#039;t been vetted; it would surprise me if there were any full time LSL devs. Just because we don&#039;t see them working doesn&#039;t mean they aren&#039;t working; the SL code base is huge.&lt;br /&gt;
:-- [[User:Strife Onizuka|Strife Onizuka]] 12:56, 8 August 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Vehicle Tutorial ==&lt;br /&gt;
&lt;br /&gt;
Could we get the original vehicle tutorial added to this wiki. I realize it&#039;s not in the correct format, but it&#039;s a place to start. There was a wikified version too in the old wiki someone did, but they&#039;d have to contribute it themselves I&#039;d think. I can&#039;t find the original tutorial outside the old wiki.&lt;br /&gt;
&lt;br /&gt;
:The tutorial was part of the LSL manual that ships with the client. LL has given permission to post it on the wiki. -- [[User:Strife Onizuka|Strife Onizuka]] 16:37, 8 September 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
::I found an old copy I had and wikified it. This is pretty much the original version, so it&#039;s probably a bit whacked, please fix any problems you&#039;re aware of [[User:Ralph Doctorow|Ralph Doctorow]]&lt;br /&gt;
&lt;br /&gt;
== color ==&lt;br /&gt;
&lt;br /&gt;
It would be very helpful if I could use different colored text when writing my articles. Could buttons be added for black text, red text, green text, and one other color of text? Or could someone list the codes that can be used to change text color?&lt;br /&gt;
&lt;br /&gt;
Just as an example of what I intend to use color for:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;black&#039;&#039;rotation &#039;&#039;red&#039;&#039;variable&#039;&#039;black&#039;&#039;=&amp;lt;&#039;&#039;red&#039;&#039;%,%,%,&#039;&#039;green&#039;&#039;#.#&#039;&#039;black&#039;&#039;&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
-- Anonymous, Undated&lt;br /&gt;
&lt;br /&gt;
: The LSL /LSL tags give colour to LSL code, &#039;&#039;e.g.&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;vector up = &amp;lt; 0, 0, 1 &amp;gt;;&amp;lt;/lsl&amp;gt; -- [[User:Ppaatt Lynagh|Ppaatt Lynagh]] 16:20, 3 January 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== LSL tags and automatic linking: some errors noticed ==&lt;br /&gt;
&lt;br /&gt;
I&#039;m not aware of a specific template to edit/update, but I&#039;ve noticed some of auto-linked functions and constants from &amp;lt;nowiki&amp;gt;&amp;lt;lsl&amp;gt;&amp;lt;/lsl&amp;gt;&amp;lt;/nowiki&amp;gt; tags point to incorrect or &#039;bad&#039; (not found) pages. case in point, llSay points to Lsl_LLSay (which will redirect), and PUBLIC_CHANNEL points to a non-existant search page (there is an actual page available, but it doesn&#039;t go there). I&#039;m sure there are other examples of this, but I&#039;m not aware of a way to update it.... &lt;br /&gt;
&lt;br /&gt;
also curious to know if there is any hope of having localized pages (like french) redirect to their language equivalents through these tags at some point (I know it&#039;s not really feasible at the moment)&lt;br /&gt;
-- [[User:Void Singer|Void Singer]] 13:42, 19 February 2008 (PST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hacks? ==&lt;br /&gt;
&lt;br /&gt;
Could we please create a hacks page to be linked on the main LSL portal. Similiar to the old LSL wiki of compiling a growing list of well known tricks and tips for scripting.&lt;br /&gt;
&lt;br /&gt;
For example a well known trick, which I use frequently is the use of (List!=[]) instead of llGetListLength. --[[User:Nexii Malthus|Nexii Malthus]] 07:38, 19 May 2008 (PDT)&lt;br /&gt;
&lt;br /&gt;
:I&#039;ve slapped a page together: [[LSL Hacks]]. I&#039;d like comments on the style and layout. Please in the future don&#039;t stand on ceremony, if a niche needs filling, then please fill it with content. I have found that if you wait for people to weigh in before you start then nothing will get done. Better to do your best and make adjustments when there is a stink. -- [[User:Strife Onizuka|Strife Onizuka]] 09:37, 19 May 2008 (PDT)&lt;br /&gt;
&lt;br /&gt;
== LSLwiki.net ==&lt;br /&gt;
&amp;lt;sup&amp;gt;(moved from &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[{{fullurl:Template talk:LSL Function|oldid=110833}} Template talk:LSL Function]&amp;lt;/span&amp;gt;)&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I had a discussion with [[User:Gally Young|Gally]] today and we came to the following conclusion:&amp;lt;br&amp;gt;Since we&#039;re not able to copy content from [http://www.lslwiki.net lslwiki.net] and vice versa - because of licensing problems - we might benefit from linking related articles of both wikis. So users can easily switch from one Wiki to the other and find the information most helpful for them. There shouldn&#039;t be a rivalry between these two documentation projects. They should benefit from each other. Therefor, we&#039;re adding a link to the related LSLwiki.net article to this template. I hope it&#039;s ok.&amp;lt;br&amp;gt;&lt;br /&gt;
Something else on the same topic: It seems to be(come) quite popular in Wiki culture to double-license the own contributions, in order to make them easier to share. Wikis of interest for us:&lt;br /&gt;
* The Second Life Wiki (of course): [http://creativecommons.org/licenses/by-sa/3.0/ Creative Commons Attribution-Share Alike 3.0]&lt;br /&gt;
* The [http://www.lslwiki.net LSLwiki.net]: an [http://lslwiki.net/lslwiki/wakka.php?wakka=LSLwikicopyright implicit copyright model]&lt;br /&gt;
* The [http://secondlife.wikia.com/wiki/Main_Page SecondLife Wikia]: [http://www.gnu.org/copyleft/fdl.html GNU Free Documentation License]&lt;br /&gt;
Please consider to double-license your contributions to this (or other) Wikis in order to make them easier to share, by writing a statemanet about double licensing on your userpage. You can also use one of [[User:SignpostMarv Martin|Marv]]&#039;s templates: [[Template:Re-license contributions]] as well as [[Template:License]].&amp;lt;br&amp;gt;&lt;br /&gt;
This is just a &#039;&#039;suggestion&#039;&#039; of course. Just do it, in case you want to do it.&amp;lt;br&amp;gt;&lt;br /&gt;
Greetz, [[Image:Zai_signature.png|45px]] &#039;&#039;&#039;[[User:Zai Lynch|Lynch]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Zai Lynch|talk]]|[[Special:Contributions/Zai Lynch|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 20:14, 9 September 2008 (PDT)&lt;br /&gt;
&lt;br /&gt;
== LSL Portal should have links to pages that are helpful and often used ==&lt;br /&gt;
&lt;br /&gt;
* The guidelines shown is for editing the LSL portal and not about LSL script it self. Instead it should link to say [[LSL Style Guide]] or just be removed.&lt;br /&gt;
* The same thing with the to do link. I would just remove it.&lt;br /&gt;
* I most often use [[:Category:LSL Functions]]. When I first was looking for information on how to script in LSL this is what I wanted. I think it should be the first link. Looking at [[Special:Statistics]] it is the 5th most viewed page with 708,956 views.&lt;br /&gt;
* Next I think [[LSL Tutorial]] should be added as it is a great place for people who have never scripted before and even for those who work in other languages. This is also the 8th most viewed page on the wiki.&lt;br /&gt;
* The last link I would add [[:Category:LSL_Library]] which is a list of scripts that show off how LSL works or does a common task.&lt;br /&gt;
:* For the the two categories you may want to use [[Template:LSLGC]].&lt;br /&gt;
[[User:Master Starship|Master Starship]] 17:34, 23 April 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* I take it you haven&#039;t see the [[Template:LSL Header|Header]] at the top of every article in the [[LSL Portal]]. It has all those links you call for. (Those articles didn&#039;t get popular because people used &amp;quot;Search&amp;quot;).&lt;br /&gt;
* The [[LSL Portal Guidelines]] contains not just the rules but the mission statement for the LSL Portal. It is fundamental to the this portals continued existence. Without it we would lack direction, and defined social guidelines. Without defined guidelines we would eventual descend into chaos (I&#039;ve seen it happen; the writing of the guidelines has mostly been in reaction to specific incidents). It needs to be in a prominent position so that editors will find it and read it (or can&#039;t make excuses as to why they haven&#039;t read it).&lt;br /&gt;
* Like the [[LSL Portal Guidelines]], the [[LSL Portal To-do]] link is in a section dedicated to the [[LSL Portal]] as a whole, not to LSL scripting. The rest of the page is dedicated to scripting. It&#039;s a small section.&lt;br /&gt;
-- &#039;&#039;&#039;[[User:Strife_Onizuka|Strife]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Strife_Onizuka|talk]]|[[Special:Contributions/Strife_Onizuka|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 19:14, 23 April 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Proposal About &amp;quot;LSL Categories&amp;quot; Section ==&lt;br /&gt;
&lt;br /&gt;
I find current view is too messing and difficult to find what I need. The users end up looking in huge list of {{LSLGC|Functions}}, clicking much. I am thinking about organizing the list to easily look up the LSL articles.&lt;br /&gt;
&lt;br /&gt;
Here is the proposal of categorizing.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Avatar&lt;br /&gt;
 - Animation&lt;br /&gt;
 - Attachment&lt;br /&gt;
 - Behavior&lt;br /&gt;
 - Camera&lt;br /&gt;
 - Properties&lt;br /&gt;
Land&lt;br /&gt;
 - Parcel&lt;br /&gt;
 - Region&lt;br /&gt;
Object&lt;br /&gt;
 - Detection&lt;br /&gt;
 - Existence&lt;br /&gt;
 - Face&lt;br /&gt;
 - Inventory&lt;br /&gt;
 - Link&lt;br /&gt;
 - Media&lt;br /&gt;
 - Physic&lt;br /&gt;
 - Properties&lt;br /&gt;
 - Text&lt;br /&gt;
Script&lt;br /&gt;
 - Control&lt;br /&gt;
　- Convert&lt;br /&gt;
 - List&lt;br /&gt;
 - Math&lt;br /&gt;
 - Network&lt;br /&gt;
 - String&lt;br /&gt;
 - Time&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I tried to sort all existing 339 functions (except God, not active one).&lt;br /&gt;
Here is the list ---&amp;gt; [[User:Mako_Nozaki/Category_Function]]&lt;br /&gt;
&lt;br /&gt;
My thought is, current categories will remain as is and will be used as &amp;quot;tags&amp;quot;. Missing categories will be added and be linked from each functions. Adding these categories to LSL Header using Javascript (pulldown menu) might be cool. --[[User:Mako Nozaki|Mako]] 12:56, 1 May 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== User-Defined Functions ==&lt;br /&gt;
&lt;br /&gt;
I&#039;m personally adverse to linking to the template description rather than the category (which already back links to the template) in the &amp;quot;language reference&amp;quot; section, as per the [[https://wiki.secondlife.com/w/index.php?title=LSL_Portal&amp;amp;diff=0&amp;amp;oldid=1158048|most recent edit]]. but since it&#039;s obvious someone else is not I thought I&#039;d solicit thoughts before reverting it. I&#039;m thinking it could be more clear on the category page though.&amp;lt;br/&amp;gt;-- &#039;&#039;&#039;[[User:Void_Singer|Void]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User_talk:Void_Singer|talk]]|[[Special:Contributions/Void_Singer|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 22:49, 10 May 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
:I agree with you. In addition to that, I think the two articles should be merged. We gain nothing of value by having them separate. -- &#039;&#039;&#039;[[User:Strife_Onizuka|Strife]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Strife_Onizuka|talk]]|[[Special:Contributions/Strife_Onizuka|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 10:37, 11 May 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
::Pointed the link back at the category, folded the article into the category page, and marked the original article page for deletion.&amp;lt;br/&amp;gt;-- &#039;&#039;&#039;[[User:Void_Singer|Void]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User_talk:Void_Singer|talk]]|[[Special:Contributions/Void_Singer|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 10:45, 1 June 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Categories ==&lt;br /&gt;
&lt;br /&gt;
It&#039;s probably time to update the category list and tree again. It&#039;s been a while and I&#039;m sure I&#039;ve added more since the last time we update them. Also I should remember to update the LSL News box. -- &#039;&#039;&#039;[[User:Strife_Onizuka|Strife]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Strife_Onizuka|talk]]|[[Special:Contributions/Strife_Onizuka|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 10:42, 11 May 2012 (PDT)&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlGetRegionAgentCount&amp;diff=1168557</id>
		<title>LlGetRegionAgentCount</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlGetRegionAgentCount&amp;diff=1168557"/>
		<updated>2012-06-07T08:14:07Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: +related&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Function&lt;br /&gt;
|func_id=334|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|func=llGetRegionAgentCount&lt;br /&gt;
|return_type=integer&lt;br /&gt;
|return_text=that is the number of avatars in the region.&lt;br /&gt;
|caveats&lt;br /&gt;
|examples=&amp;lt;lsl&amp;gt;//Tell the owner how many avatars are in the region on touch&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    touch_start(integer count)&lt;br /&gt;
    {&lt;br /&gt;
        llOwnerSay((string)llGetRegionAgentCount());&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;&lt;br /&gt;
|spec&lt;br /&gt;
|caveats=&lt;br /&gt;
* The value returned by this function is technically the average number of agents who were in the region for the past second, rounded to the nearest integer.  This means that there is a slight (&amp;lt;1 second) delay  in agent count when an agent enters or exits a region.&lt;br /&gt;
|constants&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions=&lt;br /&gt;
{{LSL DefineRow||[[llGetAgentList]]}}&lt;br /&gt;
{{LSL DefineRow||[[llGetRegionFPS]]}}&lt;br /&gt;
{{LSL DefineRow||[[llGetRegionTimeDilation]]}}&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_events&lt;br /&gt;
|also_articles&lt;br /&gt;
|notes&lt;br /&gt;
|history=Introduced in {{SVN|568|rev=88085|branch=Release|anchor=file33|date=Wednesday, 21 May 2008}}&lt;br /&gt;
|cat1=Region&lt;br /&gt;
|cat2&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlSetPos&amp;diff=1167605</id>
		<title>LlSetPos</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlSetPos&amp;diff=1167605"/>
		<updated>2012-05-23T18:52:31Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: +also regionpos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Function&lt;br /&gt;
|inject-2={{Issues/SVC-1945}}{{LSL Function/position|pos|region=*|local=*}}&lt;br /&gt;
|func_id=58|func_sleep=0.2|func_energy=10.0&lt;br /&gt;
|func=llSetPos&lt;br /&gt;
|p1_type=vector|p1_name=pos|p1_desc=&amp;amp;#32;(see &#039;&#039;[[#Specification]]&#039;&#039;).|p1_hover=.&lt;br /&gt;
|func_desc=Moves the object or primitive towards &#039;&#039;&#039;pos&#039;&#039;&#039; without using physics.&lt;br /&gt;
|func_footnote=Movement is capped to 10m per call for unattached root prims.{{Footnote|Unless you exploit the undocumented [[warpPos]] bug.}}&lt;br /&gt;
|spec=This function is available for nonphysical root prims and all child prims. It has no effect on the root prim if the object is physical.&lt;br /&gt;
=====Coordinate Frame=====&lt;br /&gt;
*Root prims (or single prim objects)&lt;br /&gt;
**Attached&lt;br /&gt;
***&#039;&#039;&#039;pos&#039;&#039;&#039; is a [[Viewer coordinate frames#Local|local coordinate]] relative to the attach point.&lt;br /&gt;
**Not attached&lt;br /&gt;
***&#039;&#039;&#039;pos&#039;&#039;&#039; is a [[Viewer coordinate frames#Region|region coordinate]].&lt;br /&gt;
*Child prims (non root prims)&lt;br /&gt;
**&#039;&#039;&#039;pos&#039;&#039;&#039; is a [[Viewer coordinate frames#Local|local coordinate]] relative to the root prim.&lt;br /&gt;
|caveats=&lt;br /&gt;
*Because of the intermixing of local and regional coordinates with this function, when a prims position is wanted it is best to use [[llGetLocalPos]].&lt;br /&gt;
*This function does not work in the root prim of physical objects. Use a physical function like [[llMoveToTarget]] instead.&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
//Move the object up 1m when someone touches it.&lt;br /&gt;
default {&lt;br /&gt;
     touch_start(integer i) {&lt;br /&gt;
          llSetPos(llGetPos() + &amp;lt;0,0,1&amp;gt;);&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
// to bypass the small movement bug use this&lt;br /&gt;
// - created by Madpeter Zond&lt;br /&gt;
// notes: it does not check if the movement would go out of limit range for linked prims&lt;br /&gt;
llSetLocalPos(vector offset)&lt;br /&gt;
{&lt;br /&gt;
    vector save = offset;&lt;br /&gt;
    if(offset.x &amp;lt; 0.0) offset.x -= 1;&lt;br /&gt;
    else offset.x += 1;&lt;br /&gt;
    if(offset.y &amp;lt; 0.0) offset.y -= 1;&lt;br /&gt;
    else offset.y += 1;&lt;br /&gt;
    if(offset.z &amp;lt; 0.0) offset.z -= 1;&lt;br /&gt;
    else offset.z += 1;&lt;br /&gt;
    llSetPos(offset);&lt;br /&gt;
    llSetPos(save);    &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions={{LSL DefineRow||[[llSetRegionPos]]|Sets position of object to any position within the region.}}&lt;br /&gt;
{{LSL DefineRow||[[llGetLocalPos]]|Returns the prim&#039;s local position if it is attached or non-root (otherwise it returns the global position)}}&lt;br /&gt;
{{LSL DefineRow||[[llGetRootPosition]]|Gets the root prims position}}&lt;br /&gt;
{{LSL DefineRow||[[llGetPos]]|Returns the prim&#039;s global position, even if it is attached or non-root}}&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_events&lt;br /&gt;
|also_articles&lt;br /&gt;
|notes=Multiple movement commands can be chained together with [[llSetPrimitiveParams]] and [[PRIM_POSITION]]. The advantage of doing this is that the script only sleeps once per function call instead of once per movement.&lt;br /&gt;
|cat1=Movement&lt;br /&gt;
|cat2=Prim&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlRegionSay&amp;diff=1160698</id>
		<title>LlRegionSay</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlRegionSay&amp;diff=1160698"/>
		<updated>2012-01-07T09:40:56Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: +llRegionSayTo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Function/chat|channel|msg|np=*}}{{LSL_Function&lt;br /&gt;
|func_id=331&lt;br /&gt;
|func_sleep=0.0&lt;br /&gt;
|func_energy=10.0&lt;br /&gt;
|func=llRegionSay&lt;br /&gt;
|p1_type=integer|p1_name=channel|p1_desc&lt;br /&gt;
|p2_type=string|p2_name=msg|p2_desc&lt;br /&gt;
|func_desc=Says the string &#039;&#039;&#039;msg&#039;&#039;&#039; on channel number &#039;&#039;&#039;channel&#039;&#039;&#039; that can be heard anywhere in the [[region]] by a script [[listen|listening]] on &#039;&#039;&#039;channel&#039;&#039;&#039;.&lt;br /&gt;
|func_footnote=Regardless of where the prim is, the message will not travel over region borders.&lt;br /&gt;
|return_text&lt;br /&gt;
|spec&lt;br /&gt;
|constants&lt;br /&gt;
|caveats=*This function cannot transmit on the {{#var:PUBLIC_CHANNEL}}, this is a design feature and not a bug.&lt;br /&gt;
*If &#039;&#039;&#039;msg&#039;&#039;&#039; is longer than 1023 bytes it is truncated to 1023 bytes.&lt;br /&gt;
*A prim can &#039;&#039;&#039;not&#039;&#039;&#039; hear itself, to prevent problems with recursion.&lt;br /&gt;
|examples=&amp;lt;lsl&amp;gt;default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llRegionSay(25,&amp;quot;This is an incredibly useless program.&amp;quot; );&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;&lt;br /&gt;
To avoid making your object spam its neighborhood, use [[llOwnerSay]] or [[llInstantMessage]].&lt;br /&gt;
|helpers&lt;br /&gt;
|also_events=&lt;br /&gt;
{{LSL DefineRow||[[listen]]|}}&lt;br /&gt;
|also_functions=&lt;br /&gt;
{{LSL DefineRow||[[llListen]]|}}&lt;br /&gt;
{{LSL DefineRow||[[llRegionSayTo]]|Sends chat directly to specified target within region}}&lt;br /&gt;
{{LSL DefineRow||[[llOwnerSay]]|Sends chat to the owner only}}&lt;br /&gt;
{{LSL DefineRow||[[llWhisper]]|Sends chat limited to 10 meters}}&lt;br /&gt;
{{LSL DefineRow||[[llSay]]|Sends chat limited to 20 meters}}&lt;br /&gt;
{{LSL DefineRow||[[llShout]]|Sends chat limited to 100 meters}}&lt;br /&gt;
{{LSL DefineRow||[[llInstantMessage]]|}}&lt;br /&gt;
{{LSL DefineRow||[[llDialog]]|}}&lt;br /&gt;
{{LSL DefineRow||[[llTextBox]]|}}&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_articles&lt;br /&gt;
|notes=If one object &#039;says&#039; something to another object (e.g., a button that, when touched,&lt;br /&gt;
turns on a lamp), it is a good idea to use a very negative channel, e.g.,&lt;br /&gt;
&amp;lt;lsl&amp;gt;    llRegionSay(-5243212,&amp;quot;turn on&amp;quot;);&amp;lt;/lsl&amp;gt;&lt;br /&gt;
Negative channels are popular for script communications because the client is unable to chat directly on those channels (&amp;quot;/-xxxx message&amp;quot; won&#039;t chat &amp;quot;message&amp;quot; on channel &amp;quot;-xxxx&amp;quot;, it will chat &amp;quot;/-xxxx message&amp;quot; on channel zero). The only way to do so prior to [[llTextBox]] was to use [[llDialog]] which was limited to 24 bytes.&lt;br /&gt;
&lt;br /&gt;
If {{#var:DEBUG_CHANNEL}} is used as &#039;&#039;&#039;channel&#039;&#039;&#039;, the script will say &#039;&#039;&#039;msg&#039;&#039;&#039; to the Script Warning/Error window. &lt;br /&gt;
&lt;br /&gt;
* As of 1.18.3, using llRegionSay on the {{#var:DEBUG_CHANNEL}} will wrap around and display on channel 0, with a range of 100m.&lt;br /&gt;
|history=&lt;br /&gt;
*Introduced with SL 1.16.0&lt;br /&gt;
|cat1=Communications&lt;br /&gt;
|cat2=Chat&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Kizmut_Smit&amp;diff=1049782</id>
		<title>User:Kizmut Smit</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Kizmut_Smit&amp;diff=1049782"/>
		<updated>2010-10-01T19:53:13Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Kizmut Smit/imgbox|image=KSmit02 001.png|caption=kizmut Smit}}&lt;br /&gt;
&#039;&#039;&#039;Resident since:&#039;&#039;&#039; 2007-08-11&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Main objective:&#039;&#039;&#039; Assist others in making fun objects do fun stuff.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Abilities:&#039;&#039;&#039;&lt;br /&gt;
* Advanced building&lt;br /&gt;
* Extensive lsl&lt;br /&gt;
* poses&lt;br /&gt;
* Streaming media&lt;br /&gt;
* Land/Region/Estate Management&lt;br /&gt;
* html/php&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Languages:&#039;&#039;&#039; English and lsl.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Species:&#039;&#039;&#039; Noob ringtail lemur.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Personal description:&#039;&#039;&#039; I like pudding.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Second Life profile:&#039;&#039;&#039; [http://world.secondlife.com/resident/5a9f5114-65dd-4d55-9383-9516c418111d kizmut Smit]&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Kizmut_Smit/EmeraldStuff&amp;diff=1049772</id>
		<title>User:Kizmut Smit/EmeraldStuff</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Kizmut_Smit/EmeraldStuff&amp;diff=1049772"/>
		<updated>2010-10-01T19:52:29Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: Replaced content with &amp;#039;[]&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[]&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:Viewer_URI_Name_Space&amp;diff=1015413</id>
		<title>Talk:Viewer URI Name Space</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:Viewer_URI_Name_Space&amp;diff=1015413"/>
		<updated>2010-08-23T18:47:50Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: /* URL Escaped? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Does this mean that no region can be named &#039;app&#039;? [[User:Phoenix|Phoenix]] 17:27, 23 July 2007 (PDT)&lt;br /&gt;
:Yes, no region can be named &amp;quot;app&amp;quot;.  I had to pick some prefix, this one seemed reasonable.  Unfortunately, also any string starting with secondlife:// can be legally parsed as a region name.  [[User:James|James]] 08:54, 24 July 2007 (PDT)&lt;br /&gt;
::I think this is a really bad direction to start down -- it artificially limits our usable space. I think we should instead make a new protocol for local resources, or make a more general url syntax. For example:&lt;br /&gt;
&lt;br /&gt;
slclient://locally/available/resource&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
secondlifegrid://localhost/locally/available/resource&lt;br /&gt;
&lt;br /&gt;
[[User:Phoenix|Phoenix]] 09:39, 24 July 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
I agree with Phoenix here.  Extending the secondlife: scheme is a mistake, since it&#039;s already well defined what it means:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Via the Second Life protocol I am access Region Foo at x,y,z&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Mozilla uses the uri scheme chrome for &amp;quot;locally accessable resources that are accessed without knowing their precise filesystem location&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
secondlife:// as a region name is actually okay.  In URI form, it would be secondlife://secondlife%3A%2F%2F/1/2/3&lt;br /&gt;
&lt;br /&gt;
From what I can tell, something like slchrome:// or slui:// would be better.&lt;br /&gt;
&lt;br /&gt;
[[User:Mark|Mark]] 10:07, 24 July 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
Yes, I see your point and agree.  I initially chose secondlife:// for expedience, as the installer already registered it on all platforms, the embedded mozilla already had callbacks for the links, etc.  But we need a different protocol for this type of command.&lt;br /&gt;
&lt;br /&gt;
I&#039;m going to use slclient:// because the word &amp;quot;client&amp;quot; is probably more understandable to an end user (who might see the raw link in a browser warning dialog) than &amp;quot;chrome&amp;quot; or &amp;quot;ui&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[User:James|James]] 10:30, 24 July 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Well, while it is ugly, and unfortunate, I don&#039;t think a &amp;quot;one-time&amp;quot; fix of inserting &amp;quot;/app&amp;quot; at the top level is that bad.  I think there are plenty of downsides to creating another scheme identifier.  A way to make this more palatable is to fix the top level of the path, so whereas before you had:&lt;br /&gt;
 secondlife://Obscure/123/98&lt;br /&gt;
you&#039;d now have:&lt;br /&gt;
 secondlife://location/Obscure/123/98&lt;br /&gt;
The old one would be deprecated, and yes, regions with the name &amp;quot;app&amp;quot; or &amp;quot;location&amp;quot; or whatever else we put a the top level wouldn&#039;t work with the old style.&lt;br /&gt;
&lt;br /&gt;
The primary reason for having a scheme is that it is the way to get an operating system to open up another application with a class of URIs.  Hence, everything in such a URI namespace is really the name for something the running viewer can do.  We shouldn&#039;t use the secondlife: scheme to address elements of our network at all.  Hence, I don&#039;t think the need for a top level &#039;/localhost&#039; in the examples above.&lt;br /&gt;
&lt;br /&gt;
Since the scheme is entirely for the purpose of directing the viewer, it is reasonable to think of all those resources named as actions or concepts in the viewer.  In otherwords, the URI&lt;br /&gt;
 secondlife://event/&amp;lt;uuid&amp;gt;&lt;br /&gt;
should be though of as the viewer&#039;s concept of that event in our system.  And this should conceptually distinct from, say:&lt;br /&gt;
 http://services.agni.lindenlab.com/event/&amp;lt;uuid&amp;gt;&lt;br /&gt;
which would be a reference to the event resource back at the grid.&lt;br /&gt;
&lt;br /&gt;
As such, such URIs really should only imply viewer actions on those objects:  I could see secondlife: URIs that open an event in the viewer (but one wonders why?), but not one that creates an event that way.  For the most part, I think we should be steering such functionality to the web services.&lt;br /&gt;
&lt;br /&gt;
Lastly, a big problem with the URI tree proposed is that it puts all content into global name spaces by type.  In particular:&lt;br /&gt;
 secondlife://app/parcel/&amp;lt;uuid&amp;gt;&lt;br /&gt;
implies that one can reach ANY parcel that way.  This is bad as it forces us to think in terms of a single global list.  Much better would be&lt;br /&gt;
 secondlife://app/grid/agni/region-by-name/Obscure/parcels/&amp;lt;uuid&amp;gt;/view&lt;br /&gt;
Though, admittadly, the &amp;quot;/grid/agni&amp;quot; part may be overkilll.... but perhaps not...&lt;br /&gt;
&lt;br /&gt;
[[User:ZeroLinden|ZeroLinden]] 10:38, 24 July 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The primary motivation for this is to make clicking on links in a Find All search results page (output by Google Search Appliance) show SL UI with details on that data.  Even if we move that data display to HTML, we&#039;ll still need a way to have links/buttons that offer teleports, open the IM window, etc.  So we need a commmand format.&lt;br /&gt;
&lt;br /&gt;
At the time the parcel links in the HTML pages for search are made, I do not have access to the region name or other information other than the UUID of the parcel.  For example, top picks only store the parcel UUIDs.  I could thrash the database during the static HTML page generation for search to look up the region names for each parcel UUID I encountered, but that seems a waste of effort to me.&lt;br /&gt;
&lt;br /&gt;
I could imagine having special links that opened, say, the event UI as a useful way to share references to information in our system, on outside web pages, in our own IM, and in tutorials.  Since I have to do some internal link management for search, it seems reasonable to me to expose those URLs to the outside world.&lt;br /&gt;
&lt;br /&gt;
I would prefer to reserve the words &amp;quot;event&amp;quot;, &amp;quot;classified&amp;quot;, &amp;quot;place&amp;quot;, &amp;quot;parcel&amp;quot;, &amp;quot;agent&amp;quot;, &amp;quot;resident&amp;quot;, &amp;quot;person&amp;quot; and &amp;quot;group&amp;quot; as being invalid region names.  secondlife://agent/&amp;lt;agent_id&amp;gt; looks cleaner to me than secondlife://app/...&lt;br /&gt;
&lt;br /&gt;
Without slclient://, all these links are working now.  Do we really want slclient://?  Also, our entire system for places/events/top picks currently stores only parcel ids.  I&#039;m not thrilled about embarking on a huge refactoring of this system just to get search to work.&lt;br /&gt;
&lt;br /&gt;
[[User:James|James]] 10:56, 24 July 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Non-Standard ==&lt;br /&gt;
&lt;br /&gt;
Bah!  I can&#039;t believe I didn&#039;t notice this before: Our syntax doesn&#039;t follow the recommended syntax for path based URI schemes!  It should start with &amp;lt;b&amp;gt;three&amp;lt;/b&amp;gt; slashes, not two, like file: does.  This is because the thing after the double slash is the &amp;lt;i&amp;gt;authority&amp;lt;/i&amp;gt; section, containing a hostname and port (and other stuff optionally as well...).&lt;br /&gt;
&lt;br /&gt;
It might be worse - depending on one&#039;s reading of section 3 of RFC 3986, our use of double slashes without an authority section could be seen as illegal.  Of course, we &amp;lt;i&amp;gt;could&amp;lt;/i&amp;gt; claim that the region name or &amp;quot;app&amp;quot; was the authority (and hence host).... but I bet w don&#039;t follow all the proper conventions for host names.   Fie!&lt;br /&gt;
&lt;br /&gt;
See http://tools.ietf.org/html/rfc3986&lt;br /&gt;
&lt;br /&gt;
[[User:ZeroLinden|ZeroLinden]] 15:33, 6 September 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;James writes:&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Looks like &amp;lt;code&amp;gt;secondlife:///&amp;lt;/code&amp;gt; is what we want.  My only concern would be&lt;br /&gt;
that crappy IRC clients and other programs that attempt to automatically&lt;br /&gt;
identify URLs in text would choke.  Colloquy does it correctly.  I will&lt;br /&gt;
try other clients in the office tomorrow.&lt;br /&gt;
&lt;br /&gt;
Changing to &amp;lt;code&amp;gt;secondlife:///&amp;lt;/code&amp;gt; is trivial in my code.  Any reason I&lt;br /&gt;
shouldn&#039;t just do it?&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Well, we have to continue to handle the existant URLs.  So perhaps we take this moment to &amp;quot;fix&amp;quot; the whole scheme:&lt;br /&gt;
&lt;br /&gt;
 secondlife://&amp;lt;region name&amp;gt;/&amp;lt;x&amp;gt;/&amp;lt;y&amp;gt;/&amp;lt;z&amp;gt;&lt;br /&gt;
  -- old style, still accepted&lt;br /&gt;
 &lt;br /&gt;
 secondlife:///viewer/go/&amp;lt;region name/&amp;lt;x&amp;gt;/&amp;lt;y&amp;gt;/&amp;lt;z&amp;gt;&lt;br /&gt;
  -- new style, with well defined rules about encoding region names&lt;br /&gt;
 &lt;br /&gt;
 secondlife:///viewer/agent/&amp;lt;agent_id&amp;gt;&lt;br /&gt;
 secondlife:///viewer/group/&amp;lt;group_id&amp;gt;&lt;br /&gt;
  -- etc., the controls being added for search&lt;br /&gt;
  -- (that these are an implicit &amp;quot;open a floater on this item&amp;quot; verb is a little odd,&lt;br /&gt;
   what&#039;s the URL for &amp;quot;IM this line of text to this agent&amp;quot;?)&lt;br /&gt;
 &lt;br /&gt;
 secondlife:///viewer/login/...&lt;br /&gt;
  -- the login work for web site auth.&lt;br /&gt;
&lt;br /&gt;
[[User:ZeroLinden|ZeroLinden]] 08:57, 7 September 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
I will of course support legacy URLs.  I see no strong reason to switch from &amp;quot;app&amp;quot; to &amp;quot;viewer&amp;quot;.  Likewise, my initial syntax for agents/groups/etc. is of the form:&lt;br /&gt;
&lt;br /&gt;
  secondlife:///app/agent/&amp;lt;agent_id&amp;gt;/about&lt;br /&gt;
&lt;br /&gt;
Where &amp;quot;about&amp;quot; is the verb.  Thus we can add &amp;quot;im&amp;quot;, &amp;quot;offer-teleport&amp;quot;, etc.&lt;br /&gt;
&lt;br /&gt;
Any reason I should not just implement secondlife:///app/agent/&amp;lt;agent_id&amp;gt;/about ?&lt;br /&gt;
&lt;br /&gt;
[[User:James|James]] 09:57, 7 September 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Question About secondlife:///app/chat/channel/text ==&lt;br /&gt;
&lt;br /&gt;
I tried &amp;quot;secondlife:///app/chat/0/Text&amp;quot; And That Worked But How Do You Get More Than One Word? I Would Like To Use It In A Hud For Staff At A Club When The Hud Will Fill In The First Name Of The Person Into Some Standard Greetings And Information. But Escaping The Text And My Character Will Of Course Say It With It Still Escaped.&lt;br /&gt;
Ive Tried A Few Ways Hoping Something Would Work But Get Only The Forst Word Or Nothing At All, Its A Rainy Day Project&lt;br /&gt;
  llOwnerSay(&amp;quot;Click To Speak:  secondlife:///app/chat/0/Testing, Testing 123&amp;quot;);//Says Testing&lt;br /&gt;
  llOwnerSay(&amp;quot;Click To Speak:  secondlife:///app/chat/0/&amp;quot; + llEscapeURL(&amp;quot;Testing, Testing 123&amp;quot;));//Says Testing%2C%20Testing%20123&lt;br /&gt;
  llLoadURL(llGetOwner(), &amp;quot;Click To Speak&amp;quot;, &amp;quot;secondlife:///app/chat/0/&amp;quot; + llEscapeURL(&amp;quot;Testing, Testing 123&amp;quot;));//Nothing Happens&lt;br /&gt;
  llLoadURL(llGetOwner(), &amp;quot;Click To Speak&amp;quot;, &amp;quot;secondlife:///app/chat/0/Testing, Testing 123&amp;quot;);//Nothing Happens&lt;br /&gt;
&lt;br /&gt;
[[User:Adicted Waco|Adi]] 07:12, 8 August 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== URL Escaped? ==&lt;br /&gt;
&lt;br /&gt;
Someone tell me if I am testing this wrong, since this article says it is URL escaped.&lt;br /&gt;
&lt;br /&gt;
If I click: secondlife:///app/chat/0/foo%20bar&lt;br /&gt;
&lt;br /&gt;
The result is as follows:&lt;br /&gt;
&lt;br /&gt;
[11:46:03]  kizmut Smit: foo%20bar&lt;br /&gt;
&lt;br /&gt;
[[User:Kizmut Smit|Kizmut Smit]] 18:47, 23 August 2010 (UTC)&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:Viewer_URI_Name_Space&amp;diff=1015403</id>
		<title>Talk:Viewer URI Name Space</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:Viewer_URI_Name_Space&amp;diff=1015403"/>
		<updated>2010-08-23T18:47:09Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: /* URL Escaped? */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Does this mean that no region can be named &#039;app&#039;? [[User:Phoenix|Phoenix]] 17:27, 23 July 2007 (PDT)&lt;br /&gt;
:Yes, no region can be named &amp;quot;app&amp;quot;.  I had to pick some prefix, this one seemed reasonable.  Unfortunately, also any string starting with secondlife:// can be legally parsed as a region name.  [[User:James|James]] 08:54, 24 July 2007 (PDT)&lt;br /&gt;
::I think this is a really bad direction to start down -- it artificially limits our usable space. I think we should instead make a new protocol for local resources, or make a more general url syntax. For example:&lt;br /&gt;
&lt;br /&gt;
slclient://locally/available/resource&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
secondlifegrid://localhost/locally/available/resource&lt;br /&gt;
&lt;br /&gt;
[[User:Phoenix|Phoenix]] 09:39, 24 July 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
I agree with Phoenix here.  Extending the secondlife: scheme is a mistake, since it&#039;s already well defined what it means:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Via the Second Life protocol I am access Region Foo at x,y,z&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Mozilla uses the uri scheme chrome for &amp;quot;locally accessable resources that are accessed without knowing their precise filesystem location&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
secondlife:// as a region name is actually okay.  In URI form, it would be secondlife://secondlife%3A%2F%2F/1/2/3&lt;br /&gt;
&lt;br /&gt;
From what I can tell, something like slchrome:// or slui:// would be better.&lt;br /&gt;
&lt;br /&gt;
[[User:Mark|Mark]] 10:07, 24 July 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
Yes, I see your point and agree.  I initially chose secondlife:// for expedience, as the installer already registered it on all platforms, the embedded mozilla already had callbacks for the links, etc.  But we need a different protocol for this type of command.&lt;br /&gt;
&lt;br /&gt;
I&#039;m going to use slclient:// because the word &amp;quot;client&amp;quot; is probably more understandable to an end user (who might see the raw link in a browser warning dialog) than &amp;quot;chrome&amp;quot; or &amp;quot;ui&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[User:James|James]] 10:30, 24 July 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Well, while it is ugly, and unfortunate, I don&#039;t think a &amp;quot;one-time&amp;quot; fix of inserting &amp;quot;/app&amp;quot; at the top level is that bad.  I think there are plenty of downsides to creating another scheme identifier.  A way to make this more palatable is to fix the top level of the path, so whereas before you had:&lt;br /&gt;
 secondlife://Obscure/123/98&lt;br /&gt;
you&#039;d now have:&lt;br /&gt;
 secondlife://location/Obscure/123/98&lt;br /&gt;
The old one would be deprecated, and yes, regions with the name &amp;quot;app&amp;quot; or &amp;quot;location&amp;quot; or whatever else we put a the top level wouldn&#039;t work with the old style.&lt;br /&gt;
&lt;br /&gt;
The primary reason for having a scheme is that it is the way to get an operating system to open up another application with a class of URIs.  Hence, everything in such a URI namespace is really the name for something the running viewer can do.  We shouldn&#039;t use the secondlife: scheme to address elements of our network at all.  Hence, I don&#039;t think the need for a top level &#039;/localhost&#039; in the examples above.&lt;br /&gt;
&lt;br /&gt;
Since the scheme is entirely for the purpose of directing the viewer, it is reasonable to think of all those resources named as actions or concepts in the viewer.  In otherwords, the URI&lt;br /&gt;
 secondlife://event/&amp;lt;uuid&amp;gt;&lt;br /&gt;
should be though of as the viewer&#039;s concept of that event in our system.  And this should conceptually distinct from, say:&lt;br /&gt;
 http://services.agni.lindenlab.com/event/&amp;lt;uuid&amp;gt;&lt;br /&gt;
which would be a reference to the event resource back at the grid.&lt;br /&gt;
&lt;br /&gt;
As such, such URIs really should only imply viewer actions on those objects:  I could see secondlife: URIs that open an event in the viewer (but one wonders why?), but not one that creates an event that way.  For the most part, I think we should be steering such functionality to the web services.&lt;br /&gt;
&lt;br /&gt;
Lastly, a big problem with the URI tree proposed is that it puts all content into global name spaces by type.  In particular:&lt;br /&gt;
 secondlife://app/parcel/&amp;lt;uuid&amp;gt;&lt;br /&gt;
implies that one can reach ANY parcel that way.  This is bad as it forces us to think in terms of a single global list.  Much better would be&lt;br /&gt;
 secondlife://app/grid/agni/region-by-name/Obscure/parcels/&amp;lt;uuid&amp;gt;/view&lt;br /&gt;
Though, admittadly, the &amp;quot;/grid/agni&amp;quot; part may be overkilll.... but perhaps not...&lt;br /&gt;
&lt;br /&gt;
[[User:ZeroLinden|ZeroLinden]] 10:38, 24 July 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The primary motivation for this is to make clicking on links in a Find All search results page (output by Google Search Appliance) show SL UI with details on that data.  Even if we move that data display to HTML, we&#039;ll still need a way to have links/buttons that offer teleports, open the IM window, etc.  So we need a commmand format.&lt;br /&gt;
&lt;br /&gt;
At the time the parcel links in the HTML pages for search are made, I do not have access to the region name or other information other than the UUID of the parcel.  For example, top picks only store the parcel UUIDs.  I could thrash the database during the static HTML page generation for search to look up the region names for each parcel UUID I encountered, but that seems a waste of effort to me.&lt;br /&gt;
&lt;br /&gt;
I could imagine having special links that opened, say, the event UI as a useful way to share references to information in our system, on outside web pages, in our own IM, and in tutorials.  Since I have to do some internal link management for search, it seems reasonable to me to expose those URLs to the outside world.&lt;br /&gt;
&lt;br /&gt;
I would prefer to reserve the words &amp;quot;event&amp;quot;, &amp;quot;classified&amp;quot;, &amp;quot;place&amp;quot;, &amp;quot;parcel&amp;quot;, &amp;quot;agent&amp;quot;, &amp;quot;resident&amp;quot;, &amp;quot;person&amp;quot; and &amp;quot;group&amp;quot; as being invalid region names.  secondlife://agent/&amp;lt;agent_id&amp;gt; looks cleaner to me than secondlife://app/...&lt;br /&gt;
&lt;br /&gt;
Without slclient://, all these links are working now.  Do we really want slclient://?  Also, our entire system for places/events/top picks currently stores only parcel ids.  I&#039;m not thrilled about embarking on a huge refactoring of this system just to get search to work.&lt;br /&gt;
&lt;br /&gt;
[[User:James|James]] 10:56, 24 July 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Non-Standard ==&lt;br /&gt;
&lt;br /&gt;
Bah!  I can&#039;t believe I didn&#039;t notice this before: Our syntax doesn&#039;t follow the recommended syntax for path based URI schemes!  It should start with &amp;lt;b&amp;gt;three&amp;lt;/b&amp;gt; slashes, not two, like file: does.  This is because the thing after the double slash is the &amp;lt;i&amp;gt;authority&amp;lt;/i&amp;gt; section, containing a hostname and port (and other stuff optionally as well...).&lt;br /&gt;
&lt;br /&gt;
It might be worse - depending on one&#039;s reading of section 3 of RFC 3986, our use of double slashes without an authority section could be seen as illegal.  Of course, we &amp;lt;i&amp;gt;could&amp;lt;/i&amp;gt; claim that the region name or &amp;quot;app&amp;quot; was the authority (and hence host).... but I bet w don&#039;t follow all the proper conventions for host names.   Fie!&lt;br /&gt;
&lt;br /&gt;
See http://tools.ietf.org/html/rfc3986&lt;br /&gt;
&lt;br /&gt;
[[User:ZeroLinden|ZeroLinden]] 15:33, 6 September 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;James writes:&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Looks like &amp;lt;code&amp;gt;secondlife:///&amp;lt;/code&amp;gt; is what we want.  My only concern would be&lt;br /&gt;
that crappy IRC clients and other programs that attempt to automatically&lt;br /&gt;
identify URLs in text would choke.  Colloquy does it correctly.  I will&lt;br /&gt;
try other clients in the office tomorrow.&lt;br /&gt;
&lt;br /&gt;
Changing to &amp;lt;code&amp;gt;secondlife:///&amp;lt;/code&amp;gt; is trivial in my code.  Any reason I&lt;br /&gt;
shouldn&#039;t just do it?&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Well, we have to continue to handle the existant URLs.  So perhaps we take this moment to &amp;quot;fix&amp;quot; the whole scheme:&lt;br /&gt;
&lt;br /&gt;
 secondlife://&amp;lt;region name&amp;gt;/&amp;lt;x&amp;gt;/&amp;lt;y&amp;gt;/&amp;lt;z&amp;gt;&lt;br /&gt;
  -- old style, still accepted&lt;br /&gt;
 &lt;br /&gt;
 secondlife:///viewer/go/&amp;lt;region name/&amp;lt;x&amp;gt;/&amp;lt;y&amp;gt;/&amp;lt;z&amp;gt;&lt;br /&gt;
  -- new style, with well defined rules about encoding region names&lt;br /&gt;
 &lt;br /&gt;
 secondlife:///viewer/agent/&amp;lt;agent_id&amp;gt;&lt;br /&gt;
 secondlife:///viewer/group/&amp;lt;group_id&amp;gt;&lt;br /&gt;
  -- etc., the controls being added for search&lt;br /&gt;
  -- (that these are an implicit &amp;quot;open a floater on this item&amp;quot; verb is a little odd,&lt;br /&gt;
   what&#039;s the URL for &amp;quot;IM this line of text to this agent&amp;quot;?)&lt;br /&gt;
 &lt;br /&gt;
 secondlife:///viewer/login/...&lt;br /&gt;
  -- the login work for web site auth.&lt;br /&gt;
&lt;br /&gt;
[[User:ZeroLinden|ZeroLinden]] 08:57, 7 September 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
I will of course support legacy URLs.  I see no strong reason to switch from &amp;quot;app&amp;quot; to &amp;quot;viewer&amp;quot;.  Likewise, my initial syntax for agents/groups/etc. is of the form:&lt;br /&gt;
&lt;br /&gt;
  secondlife:///app/agent/&amp;lt;agent_id&amp;gt;/about&lt;br /&gt;
&lt;br /&gt;
Where &amp;quot;about&amp;quot; is the verb.  Thus we can add &amp;quot;im&amp;quot;, &amp;quot;offer-teleport&amp;quot;, etc.&lt;br /&gt;
&lt;br /&gt;
Any reason I should not just implement secondlife:///app/agent/&amp;lt;agent_id&amp;gt;/about ?&lt;br /&gt;
&lt;br /&gt;
[[User:James|James]] 09:57, 7 September 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Question About secondlife:///app/chat/channel/text ==&lt;br /&gt;
&lt;br /&gt;
I tried &amp;quot;secondlife:///app/chat/0/Text&amp;quot; And That Worked But How Do You Get More Than One Word? I Would Like To Use It In A Hud For Staff At A Club When The Hud Will Fill In The First Name Of The Person Into Some Standard Greetings And Information. But Escaping The Text And My Character Will Of Course Say It With It Still Escaped.&lt;br /&gt;
Ive Tried A Few Ways Hoping Something Would Work But Get Only The Forst Word Or Nothing At All, Its A Rainy Day Project&lt;br /&gt;
  llOwnerSay(&amp;quot;Click To Speak:  secondlife:///app/chat/0/Testing, Testing 123&amp;quot;);//Says Testing&lt;br /&gt;
  llOwnerSay(&amp;quot;Click To Speak:  secondlife:///app/chat/0/&amp;quot; + llEscapeURL(&amp;quot;Testing, Testing 123&amp;quot;));//Says Testing%2C%20Testing%20123&lt;br /&gt;
  llLoadURL(llGetOwner(), &amp;quot;Click To Speak&amp;quot;, &amp;quot;secondlife:///app/chat/0/&amp;quot; + llEscapeURL(&amp;quot;Testing, Testing 123&amp;quot;));//Nothing Happens&lt;br /&gt;
  llLoadURL(llGetOwner(), &amp;quot;Click To Speak&amp;quot;, &amp;quot;secondlife:///app/chat/0/Testing, Testing 123&amp;quot;);//Nothing Happens&lt;br /&gt;
&lt;br /&gt;
[[User:Adicted Waco|Adi]] 07:12, 8 August 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== URL Escaped? ==&lt;br /&gt;
&lt;br /&gt;
Someone tell me if I am testing this wrong, since this article says it is URL escaped.&lt;br /&gt;
&lt;br /&gt;
If I click: secondlife:///app/chat/0/foo%20bar&lt;br /&gt;
The result is as follows:&lt;br /&gt;
[11:46:03]  kizmut Smit: foo%20bar&lt;br /&gt;
&lt;br /&gt;
[[User:Kizmut Smit|Kizmut Smit]] 18:47, 23 August 2010 (UTC)&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Web_Textures&amp;diff=992032</id>
		<title>Web Textures</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Web_Textures&amp;diff=992032"/>
		<updated>2010-07-31T03:52:51Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: +cat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{hint|mode=note|desc=This has been superseded by [[HTTP Texture]].}}&lt;br /&gt;
&lt;br /&gt;
==Summary==&lt;br /&gt;
This page is about dynamic web textures, a feature to allow an LSL script to assign an image URL to a face and cause it to dynamically update from the script.   This is not HTML-on-a-prim, though it shares some of the same complications regarding anonymity.&lt;br /&gt;
&lt;br /&gt;
This raises a potential issue regarding [[Expected Privacy]].  The only practical way to accomplish dynamic web textures is to let the client download the image directly.  This will expose user&#039;s IP addresses. This issue is also there for HTML on a prim, though the limitations several Lindens have mentioned to reduce the processing overhead of HTML on a prim - similar to the current limitations for media textures - make it less likely to be easily abused. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;We are looking toward making it possible for prims to reference external websites for texture information, which is where PNG textures would start to come into play. -Phoenix Linden&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Benefits of this feature ==&lt;br /&gt;
&lt;br /&gt;
#Negates the need for scripts like XyText that are very laggy when dynamic displays are large.&lt;br /&gt;
#Allows for things like streaming news service [[HUD]]s.&lt;br /&gt;
#Interactive games can present large amounts of off-world data.&lt;br /&gt;
#Corporations that already have many dynamic web assets can reuse them in-world.&lt;br /&gt;
#The L$10 upload fee can be avoided if the user hosts the content by him/herself.&lt;br /&gt;
&lt;br /&gt;
== Possible benefits ==&lt;br /&gt;
&lt;br /&gt;
#Live porn.  &#039;&#039;Did we really have to mention this?&#039;&#039;&lt;br /&gt;
#Web Cams.&lt;br /&gt;
&lt;br /&gt;
The previous 2 are already possible via quicktime streaming which is more efficient.&lt;br /&gt;
&lt;br /&gt;
== Potential LSL implementation ==&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
llSetTextureURL(integer face, string url);&lt;br /&gt;
llRefreshTextureURL(integer face);&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
Example with text generation script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
llSetTextureURL(1, llUrlEncode(&amp;quot;http://example.com/getpng.php?text= &amp;quot; + text + &amp;quot;&amp;amp;font=futura&amp;amp;rez=512x512&amp;quot;);&lt;br /&gt;
llRefreshTextureURL(integer face);&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Privacy problems ==&lt;br /&gt;
The agent IP is already exposed if the avatar is listening to streamed media, but this is limited to agents that (a) have streaming media enabled, and (b) visit the specific parcel that the &#039;media bug&#039; is associated with. Attempting to use streaming media to build up a database associating avatars with IP addresses would be enormously expensive.&lt;br /&gt;
&lt;br /&gt;
Despite the small exposure, there are a number of people who do not use streaming media because of privacy concerns.&lt;br /&gt;
&lt;br /&gt;
Textures, unlike streaming media, are ubiquitous and require no significant expenditure to distribute around the grid. The potential for large scale data mining to associate characters in SL with each other and with real-life identities is significantly higher.&lt;br /&gt;
&lt;br /&gt;
*The relative severity of this should be pondered.&lt;br /&gt;
&lt;br /&gt;
== Suggested Privacy Protections ==&lt;br /&gt;
There are a number of mechanisms that could be used to mitigate this effect: &lt;br /&gt;
&lt;br /&gt;
=== Do nothing, just implement it ===&lt;br /&gt;
* Pro: Feature itself is somewhat easy to implement, if images are powers of 2&lt;br /&gt;
* Pro: Most other protocols on the internet expose IP to the server, this isn&#039;t unprecedented.&lt;br /&gt;
* Con: Unannounced loss of anonymity.&lt;br /&gt;
** Mitigation: Announce it first. &lt;br /&gt;
* Con: Sets precedent for other features that may expose IP association information.&lt;br /&gt;
** Note: this might be seen as a &amp;quot;Pro&amp;quot;.&lt;br /&gt;
* Con: Trivial to associate IP with agent using textures. Much easier than it is with a parcel media stream.&lt;br /&gt;
* Con: Could become a public relations nightmare if users react badly.&lt;br /&gt;
&lt;br /&gt;
=== Global on/off, with one time dialog opt-in ===&lt;br /&gt;
The client could prompt the first time you encounter a web texture, and ask you if you want to enable it, warning you that it will expose your IP address to third parties.  This would be similar to the way parcel streaming media prompts the first time you encounter a parcel with it set.&lt;br /&gt;
*Con: The user is asked to make technical decisions they might not understand.&lt;br /&gt;
*Con: The user must sacrifice all dynamic web content to get privacy for their IP.&lt;br /&gt;
*Pro: No annoyance for those who don&#039;t care about exposing IP associations.&lt;br /&gt;
&lt;br /&gt;
For HUD attachments this could be handled as a special case (see below).&lt;br /&gt;
&lt;br /&gt;
=== Proxy Options ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;External Proxy&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Update (7/7/2007): [[SLSquid Proxy]] addresses this issue.&lt;br /&gt;
&lt;br /&gt;
The client would provide a place to enter a HTTP proxy address for web textures.  This would allow the user to enter an anonymizing proxy service if they want to.&lt;br /&gt;
*Pro: Easy to implement&lt;br /&gt;
*Pro: Proxy support will be needed anyway for the general move to HTTP texture transfers for regular asset textures.&lt;br /&gt;
*Con: Configuring proxy settings for anonymizing proxies can be extremely difficult even for professionals.&lt;br /&gt;
** Mitigation: this work can be hidden by the browser or browser extensions, so SL or a plugin for SL could do the work.&lt;br /&gt;
*** But there isn&#039;t such a plugin mechanism yet.&lt;br /&gt;
*Con: Anonymizing proxies are slow and unreliable.&lt;br /&gt;
** Only individuals that care about exposing their IP need to suffer this delay.&lt;br /&gt;
*Con: Proxy support is not even implemented yet for the help browser&lt;br /&gt;
*Con: Default settings (no proxy) expose users to privacy violations.&lt;br /&gt;
** Which means this is likely to be a PR disaster.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Built-In&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Linden Lab could create their own anonymizing proxy server.&lt;br /&gt;
*Pro: No setup on the user&#039;s part is required.&lt;br /&gt;
*Con: Cost / Support / Implementation on Linden Lab&#039;s plate.&lt;br /&gt;
&lt;br /&gt;
=== Attachments ===&lt;br /&gt;
Using web textures in an attachment (particularly a [[HUD]]) provides an attacker the greatest opportunity to ensure that they have a correct match to an IP address, so while this is not that useful for bulk data gathering it&#039;s particularly problematic for targeted attacks. It would probably be best not to make web textures on attachments an exception to any wider restrictions. Web textures on HUDs, though, are particularly useful, so there should be some mechanism to allow a user to grant their own attachments the right to load web textures even if they are otherwise disabled.&lt;br /&gt;
&lt;br /&gt;
*Pro: Allows cautious users to use web-enabled HUDs.&lt;br /&gt;
*Pro: Promotes effective low-lag tools.&lt;br /&gt;
&lt;br /&gt;
=== Server side (SIM) ===&lt;br /&gt;
Much like {{LSLG|llHTTPRequest}} the SIM could download the texture and be subjected to the same restrictions (no more than 20 requests per 100 seconds). This would ensure peoples privacy is protected. Another permutation of this would be to provide both a client side and server side implementation of web textures.&lt;br /&gt;
&lt;br /&gt;
*Pro: Privacy is protected&lt;br /&gt;
*Pro: No user intervention required.&lt;br /&gt;
*Con: More pressure on the sim.&lt;br /&gt;
**Mitigation: Limits per sim.  Freedom for sim owners to decide.&lt;br /&gt;
*Con: Not suitable for highly dynamic applications, such as web cams or games.&lt;br /&gt;
**Mitigation: SIM should be able to cache Web-acquired content, the total cache can be limited similar to prim-limitations.  This forces creative management.  Cams should stream anyway, and game mediums usually require memory management.&lt;br /&gt;
*Con: Vulnerability of LL servers for image-load attacks&lt;br /&gt;
**Mitigation: Limitation similar to llHTTPRequest,llEmail, etc.&lt;br /&gt;
*Note: This is effectively equivalent to LL providing a proxy.&lt;br /&gt;
*Con: May run into DMCA issues retaining copyrighted material on sim.&lt;br /&gt;
&lt;br /&gt;
=== Dialog Boxes for HUD attachments ===&lt;br /&gt;
For the subset of targeted exploits using HUDs, a dialog box similar to the ones used for other permissions could be used when attaching a HUD with web textures, asking if you want to allow the HUD to use them.&lt;br /&gt;
&lt;br /&gt;
*Pro: Easy on the scripter.&lt;br /&gt;
*Pro: Implemented entirely in the client.&lt;br /&gt;
*Con: This only protects against targeted attacks though HUDs, it provides no protection against data mining. A more general mechanism might still be required.&lt;br /&gt;
*Con: The user is asked to make technical decisions they might not understand.&lt;br /&gt;
*Con: It&#039;s a unique mechanism.&lt;br /&gt;
*Con: Dialog boxes are annoying.&lt;br /&gt;
*Con: UI studies show that users automatically click yes in many dialog boxes without thinking.&lt;br /&gt;
*Pro: Establishes precedent for other useful client-side security and privacy tools&lt;br /&gt;
**Or is that a con? :)&lt;br /&gt;
&lt;br /&gt;
==== The Permissions system ====&lt;br /&gt;
&lt;br /&gt;
Alternatively, this could be done through the normal LSL permission system with a permission request, and something like PERMISSION_TEXTURE_URL.&lt;br /&gt;
&lt;br /&gt;
*Pro: Already well-understood interface.&lt;br /&gt;
*Con: Relatively inflexible, especially if required for non-HUD objects that might want to reach a wide audience (like a billboard).&lt;br /&gt;
**Compromise: Perhaps non-attached objects could default to having the permission.  But, attached or especially HUDs could not.  As stated in this sub-proposal.&lt;br /&gt;
&lt;br /&gt;
==== Whitelists ====&lt;br /&gt;
&lt;br /&gt;
This could simply be handled the same way as third-party textures in the proposal below. The same pros and cons apply.&lt;br /&gt;
&lt;br /&gt;
*Pro: No need for separate mechanisms for HUD textures and non-HUD textures.&lt;br /&gt;
*Con: HUDs do not detach after leaving a SIM.  This could allow for pop-up like exploits.  Especially, for the novice who believes what they read.&lt;br /&gt;
&lt;br /&gt;
=== White/Black List ===&lt;br /&gt;
Similar to Firefox/IE popup blocking, the client could manage white/black lists.  &lt;br /&gt;
*Pro: Flexible and complete control&lt;br /&gt;
*Pro: users not concerned about privacy could select &amp;quot;Accept everything&amp;quot;&lt;br /&gt;
*Con: If poorly implementd, this would cause a lot of user input: (for example, thousands of prompts per second for someone flying over the mainland).&lt;br /&gt;
*Con: The user is asked to make technical decisions they might not understand (the user might be tricked, they might not know who to trust).&lt;br /&gt;
*Con: Very complex to implement, UI elements hard to design effectively.&lt;br /&gt;
**Mitigation: Using existing controls (texture cues, pie menu) would simplify the implementation and make the interface more familiar.&lt;br /&gt;
*Con: Reinstalling could lose settings.&lt;br /&gt;
**Mitigation: Selecting a &amp;quot;safe default&amp;quot; would protect naive users. If it&#039;s easy to update the whitelist or disable the protections again this shouldn&#039;t cause any major inconvenience for anyone.&lt;br /&gt;
&lt;br /&gt;
==== Suggested implementation: ====&lt;br /&gt;
&lt;br /&gt;
===== Safe but convenient default behavior. =====&lt;br /&gt;
*Textures on prims set to the land group are automatically loaded by default.&lt;br /&gt;
*Optionally - Textures set by scripts created by you, or owned by and readable by you are automatically loaded by default.&lt;br /&gt;
*All other textures are left unloaded.&lt;br /&gt;
&lt;br /&gt;
===== No popups. =====&lt;br /&gt;
*Unloaded HTML textures have a distinct appearance.&lt;br /&gt;
*Optionally - Left-clicking on the object will load the unloaded texture(s).&lt;br /&gt;
*Right-clicking on an unloaded HTML texture will bring up the pie menu, and a pie menu option will allow you to load the textures on the object or whitelist it.&lt;br /&gt;
**Load the textures on this object.&lt;br /&gt;
**Always load textures on this object&lt;br /&gt;
**Always load textures from objects owned by this person&lt;br /&gt;
**Always load textures from objects in this group&lt;br /&gt;
*You can also remove these permissions if they are set.&lt;br /&gt;
&lt;br /&gt;
===== Simple preferences =====&lt;br /&gt;
* Privacy setting: only three levels of privacy:&lt;br /&gt;
** Low - load all HTTP textures and HTML-on-a-prim automatically.&lt;br /&gt;
** Normal - default behavior described above.&lt;br /&gt;
** High - No HTTP textures are loaded.&lt;br /&gt;
* Button to clear textures.&lt;br /&gt;
&lt;br /&gt;
===== What is required of the Sim =====&lt;br /&gt;
&lt;br /&gt;
When an HTTP texture is sent to the client, it&#039;s bundled with some UUIDs:&lt;br /&gt;
*The owner of the object. (Already available)&lt;br /&gt;
*Optionally - The creator (and owner if the script was full perm when the texture was set) of the script that set the texture, to implement the &amp;quot;my scripts&amp;quot; option.&lt;br /&gt;
*Optionally - A flag indicating the user has granted permission to display this texture through the permission system as suggested under &#039;&#039;&#039;Attachments&#039;&#039;&#039;, above.&lt;br /&gt;
*The group of the object. (Already available)&lt;br /&gt;
&lt;br /&gt;
=== Change Users Privacy Expectation ===&lt;br /&gt;
Make it clear to the users that their IP address association with their avatar name is not private information and can&#039;t be protected while still providing dynamic and seamless integration with the rest of the Internet.&lt;br /&gt;
*Pro: No technical implementation necessary.&lt;br /&gt;
*Con: Not easy.&lt;br /&gt;
*Assumes &#039;dynamic and seamless integration with the rest of the Internet&#039; is necessarily desirable. The results of Microsoft attempting this with Active Desktop has been less than optimal to say the least.&lt;br /&gt;
&lt;br /&gt;
=== Trusted hosting partners ===&lt;br /&gt;
Have one or more trusted hosting partners that would provide scriptable webspace on standard Linux servers.  The key difference is that the partners could not allow the IP address of clients to pass through to the scripting language.&lt;br /&gt;
*Pro: Fully fixes privacy problem, with no effort required from the end user.&lt;br /&gt;
*Con: Hard to monitor trusted partners for compliance if more than one.  &lt;br /&gt;
*Con: If only one, then developers have no choice.&lt;br /&gt;
*Con: Business risk from close external relationship with other company if only one provider.&lt;br /&gt;
*Con: Not in the spirit of SL.&lt;br /&gt;
&lt;br /&gt;
=== Linden Lab Webhosting ===&lt;br /&gt;
Linden Lab would could offer their own webhosting that withholds end user IP similar to above.&lt;br /&gt;
*Pro: Fully fixes the privacy problem&lt;br /&gt;
*Pro: Could also be used as a super low latency way to do HTTPRequest calls to a web server.  HTTPRequest limits could be raised for requests to these servers.&lt;br /&gt;
*Con: LL is not a web hosting company.&lt;br /&gt;
**But they sort of are... it&#039;s just a &amp;quot;3d web&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* {{Jira|VWR-217}} - New Feature -&amp;gt; LSL -&amp;gt; Dynamic Web Textures&lt;br /&gt;
* [[SLSquid Proxy]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Feature Requests]]&lt;br /&gt;
[[Category:LSL_HTTP]]&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Kizmut_Smit&amp;diff=916542</id>
		<title>User:Kizmut Smit</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Kizmut_Smit&amp;diff=916542"/>
		<updated>2010-05-15T13:48:46Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: profile update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Kizmut Smit/imgbox|image=KSmit02 001.png|caption=kizmut Smit}}&lt;br /&gt;
&#039;&#039;&#039;Resident since:&#039;&#039;&#039; 2007-08-11&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Main objective:&#039;&#039;&#039; Assist others in making fun objects do fun stuff.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Abilities:&#039;&#039;&#039;&lt;br /&gt;
* Advanced building&lt;br /&gt;
* Extensive lsl&lt;br /&gt;
* poses&lt;br /&gt;
* Streaming media&lt;br /&gt;
* Land/Region/Estate Management&lt;br /&gt;
* html/php&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Languages:&#039;&#039;&#039; English and lsl.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Species:&#039;&#039;&#039; Noob ringtail lemur.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Personal description:&#039;&#039;&#039; I like pudding.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Second Life profile:&#039;&#039;&#039; [http://world.secondlife.com/resident/5a9f5114-65dd-4d55-9383-9516c418111d kizmut Smit]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[User:Kizmut Smit/EmeraldStuff]]&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LINK_SET&amp;diff=916532</id>
		<title>LINK SET</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LINK_SET&amp;diff=916532"/>
		<updated>2010-05-15T13:38:38Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: +primparamsFAST&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Issues/SVC-3510}}{{LSL Constant&lt;br /&gt;
|name=LINK_SET&lt;br /&gt;
|type=integer&lt;br /&gt;
|value=-1&lt;br /&gt;
|desc&lt;br /&gt;
|examples&lt;br /&gt;
|constants=&lt;br /&gt;
{{LSL DefineRow||[[LINK_ALL_CHILDREN]]|}}&lt;br /&gt;
{{LSL DefineRow||[[LINK_ALL_OTHERS]]|}}&lt;br /&gt;
{{LSL DefineRow||[[LINK_ROOT]]|}}&lt;br /&gt;
{{LSL DefineRow||[[LINK_THIS]]|}}&lt;br /&gt;
|functions=&lt;br /&gt;
{{LSL DefineRow||[[llBreakLink]]|}}&lt;br /&gt;
{{LSL DefineRow||[[llGetLinkKey]]|}}&lt;br /&gt;
{{LSL DefineRow||[[llGetLinkName]]|}}&lt;br /&gt;
{{LSL DefineRow||[[llMessageLinked]]|}}&lt;br /&gt;
{{LSL DefineRow||[[llSetLinkAlpha]]|}}&lt;br /&gt;
{{LSL DefineRow||[[llSetLinkColor]]|}}&lt;br /&gt;
{{LSL DefineRow||[[llSetLinkTexture]]|}}&lt;br /&gt;
{{LSL DefineRow||[[llSetLinkPrimitiveParams]]|}}&lt;br /&gt;
{{LSL DefineRow||[[llSetLinkPrimitiveParamsFast]]|}}&lt;br /&gt;
|events=&lt;br /&gt;
|cat1=Link&lt;br /&gt;
|cat2=Link Message&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LINK_ROOT&amp;diff=916522</id>
		<title>LINK ROOT</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LINK_ROOT&amp;diff=916522"/>
		<updated>2010-05-15T13:38:02Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: +primparams&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Constant&lt;br /&gt;
|name=LINK_ROOT&lt;br /&gt;
|type=integer&lt;br /&gt;
|value=1&lt;br /&gt;
|desc&lt;br /&gt;
|caveats=&lt;br /&gt;
*In a single prim object LINK_ROOT will not refer to the root prim!&lt;br /&gt;
**If your script needs to work in single and multiprim objects, instead of &amp;lt;code&amp;gt;[[LINK_ROOT]]&amp;lt;/code&amp;gt;, use either &amp;lt;code&amp;gt;([[llGetLinkNumber]]() != 0)&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;(!![[llGetLinkNumber]]())&amp;lt;/code&amp;gt;&lt;br /&gt;
|examples&lt;br /&gt;
|constants=&lt;br /&gt;
{{LSL DefineRow||[[LINK_ALL_CHILDREN]]|}}&lt;br /&gt;
{{LSL DefineRow||[[LINK_ALL_OTHERS]]|}}&lt;br /&gt;
{{LSL DefineRow||[[LINK_SET]]|}}&lt;br /&gt;
{{LSL DefineRow||[[LINK_THIS]]|}}&lt;br /&gt;
|functions=&lt;br /&gt;
{{LSL DefineRow||[[llBreakLink]]|}}&lt;br /&gt;
{{LSL DefineRow||[[llGetLinkKey]]|}}&lt;br /&gt;
{{LSL DefineRow||[[llGetLinkName]]|}}&lt;br /&gt;
{{LSL DefineRow||[[llMessageLinked]]|}}&lt;br /&gt;
{{LSL DefineRow||[[llSetLinkAlpha]]|}}&lt;br /&gt;
{{LSL DefineRow||[[llSetLinkColor]]|}}&lt;br /&gt;
{{LSL DefineRow||[[llSetLinkPrimitiveParams]]|}}&lt;br /&gt;
{{LSL DefineRow||[[llSetLinkPrimitiveParamsFast]]|}}&lt;br /&gt;
|events=&lt;br /&gt;
{{LSL DefineRow||[[link_message]]|}}&lt;br /&gt;
|cat1=Link&lt;br /&gt;
|cat2=Link Message&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LINK_THIS&amp;diff=916512</id>
		<title>LINK THIS</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LINK_THIS&amp;diff=916512"/>
		<updated>2010-05-15T13:37:40Z</updated>

		<summary type="html">&lt;p&gt;Kizmut Smit: +primparams&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Issues/SVC-600}}{{Issues/SVC-3510}}{{Issues/SVC-3199}}{{LSL Constant&lt;br /&gt;
|name=LINK_THIS&lt;br /&gt;
|type=integer&lt;br /&gt;
|value=-4&lt;br /&gt;
|desc&lt;br /&gt;
|examples&lt;br /&gt;
|constants=&lt;br /&gt;
{{LSL DefineRow||[[LINK_ALL_CHILDREN]]|}}&lt;br /&gt;
{{LSL DefineRow||[[LINK_ALL_OTHERS]]|}}&lt;br /&gt;
{{LSL DefineRow||[[LINK_ROOT]]|}}&lt;br /&gt;
{{LSL DefineRow||[[LINK_SET]]|}}&lt;br /&gt;
|functions=&lt;br /&gt;
{{LSL DefineRow||[[llBreakLink]]|}}&lt;br /&gt;
{{LSL DefineRow||[[llGetLinkKey]]|}}&lt;br /&gt;
{{LSL DefineRow||[[llGetLinkName]]|}}&lt;br /&gt;
{{LSL DefineRow||[[llMessageLinked]]|}}&lt;br /&gt;
{{LSL DefineRow||[[llSetLinkAlpha]]|}}&lt;br /&gt;
{{LSL DefineRow||[[llSetLinkColor]]|}}&lt;br /&gt;
{{LSL DefineRow||[[llSetLinkPrimitiveParams]]|}}&lt;br /&gt;
{{LSL DefineRow||[[llSetLinkPrimitiveParamsFast]]|}}&lt;br /&gt;
|events=&lt;br /&gt;
|issues&lt;br /&gt;
|cat1=Link&lt;br /&gt;
|cat2=Link Message&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Kizmut Smit</name></author>
	</entry>
</feed>