<?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=Aeron+Kohime</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=Aeron+Kohime"/>
	<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/wiki/Special:Contributions/Aeron_Kohime"/>
	<updated>2026-08-01T00:31:33Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:Phantom_Child&amp;diff=1138261</id>
		<title>Talk:Phantom Child</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:Phantom_Child&amp;diff=1138261"/>
		<updated>2011-03-23T17:01:15Z</updated>

		<summary type="html">&lt;p&gt;Aeron Kohime: /* Oh Wow */ sig&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Awesome script. Still works as of 9/25/2008. And you can even set the object as physical! (Change the &#039;flexible-set&#039; by a &#039;physical-set&#039;){{unsigned|Protector Cone|16:46, 26 September 2008}}&lt;br /&gt;
&lt;br /&gt;
== Reboot? ==&lt;br /&gt;
&lt;br /&gt;
It has to be reseted on reboot. I wish I knew what event a server reboot causes to script, to avoid that it is not phantom for even 1 second after restart.&lt;br /&gt;
&lt;br /&gt;
== Bug Fix ==&lt;br /&gt;
Since this is an exploit of a current bug (jiralink?), would it be possible to estimate how the item reacts once the bug is fixed? Which would be the expected behaviour?&lt;br /&gt;
#Script silently fails, child and object staying solid?&lt;br /&gt;
#Script shouts an error on debug channel, child and object staying solid?&lt;br /&gt;
#Script works, child &#039;&#039;&#039;and&#039;&#039;&#039; object turning phantom?&lt;br /&gt;
I&#039;m currently thinking about using it for a friends product but am afraid of the consequences... Others might be too. So it would be noteworthy in the article.&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; 15:26, 28 October 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
:The only bug I can see in this is enabling flexible on shapes that aren&#039;t allowed to be flexible. After the second type change it disables it but (I assume) it forgets to tell the physics engine. If this is the case, the fix would result in the objects staying solid. -- &#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; 01:11, 6 April 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Reboot ==&lt;br /&gt;
[[llGetTime]] and [[llRequestSimulatorData]] could both work in a loop, but [[CHANGED_REGION_START]] is probably the better solution.&lt;br /&gt;
&amp;lt;lsl&amp;gt;   //-- add this&lt;br /&gt;
  changed (integer vBitChanges){&lt;br /&gt;
    if (CHANGED_REGION_START &amp;amp; vBitChanges){&lt;br /&gt;
      llResetScript();&lt;br /&gt;
    }&lt;br /&gt;
  }&amp;lt;/lsl&amp;gt;&lt;br /&gt;
I&#039;m adding the change to the main page, but posting this here in case anyone objects to the change&lt;br /&gt;
[[User:Void Singer|Void Singer]] 18:21, 5 April 2009 (UTC)&lt;br /&gt;
* Void, I had to remove your change while testing this script in-world: I got error on CHANGED_REGION_START - that was today on Hippotropolis, running Second Life Server 1.25.6.113484 - --[[User:Opensource Obscure|oobscure]] 15:16, 6 April 2009 (UTC)&lt;br /&gt;
** At this point I&#039;m not sure if the CHANGED_REGION_START return value is live on the server. the constant itself obviously (now) isn&#039;t live. either someone forgot to update the viewer with the new constant(I think the keyword checking still happens there?), or the wiki page for it got mislabeled/changed(more likely). I changed the code to compile regardless, and if it&#039;s live on the server it should work, otherwise it does nothing. unfortunately I can&#039;t restart a sim to check. [[User:Void Singer|Void Singer]] 06:33, 8 April 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Even better... ==&lt;br /&gt;
&lt;br /&gt;
A friend of mine recently (3/16/2010) discovered that we can get a much better phantom child effect by calling llVolumeDetect in a prim, linking it to something, and deleting the script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
default {&lt;br /&gt;
    state_entry() {&lt;br /&gt;
        llVolumeDetect(TRUE);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    changed(integer change) {&lt;br /&gt;
        if (change &amp;amp; CHANGED_LINK) {&lt;br /&gt;
            llRemoveInventory(llGetScriptName());&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This appears to persist even after re-rezzing, changing owner  several times, and survives toggling phantom on the linkset.&lt;br /&gt;
Apparently there are already products on the market using this trick to great effect, but I can&#039;t find any previous mention of this technique.&lt;br /&gt;
I&#039;m considering posting this to the JIRA as a &amp;quot;please don&#039;t fix!&amp;quot; issue.&lt;br /&gt;
&lt;br /&gt;
--[[User:Michelle Resistance|Michelle Resistance]] 16:39, 18 March 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Ok, some experimenting has revealed quirky side-effects to doing this.  The collision_start event behaves very oddly in linksets using this technique.  Scripts in the root will get collision_start events when phantom children are intersected, but collisions with solid prims in the linkset will trigger a flood of collision_start events.  In phantom child prims, no collision_start events are generated at all.  Solid child prims seem to have normal collision_start triggering.  Prims delinked from the linkset seem to have lingering issues with collision_start events.  Please reply here if you discover additional side-effects, or can elaborate on what&#039;s been posted.&lt;br /&gt;
&lt;br /&gt;
--[[User:Michelle Resistance|Michelle Resistance]] 17:41, 18 March 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Oh Wow ==&lt;br /&gt;
&lt;br /&gt;
I didn&#039;t think this would take off with so many revisions. I decided to post it because I found it useful so long ago. I only recently found it again because of someone selling the script on the market https://marketplace.secondlife.com/p/Dvandva-Phantom-Child-Script/1219467. &amp;amp;mdash;[[Image:Aeko_Signature.png|40px|link=User:Aeron Kohime]] &#039;&#039;[[User:Aeron Kohime|Aeron Kohime]]&#039;&#039; 09:48, 23 March 2011 (PDT)&lt;/div&gt;</summary>
		<author><name>Aeron Kohime</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=File:Aeko_Signature.png&amp;diff=1138258</id>
		<title>File:Aeko Signature.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=File:Aeko_Signature.png&amp;diff=1138258"/>
		<updated>2011-03-23T16:55:11Z</updated>

		<summary type="html">&lt;p&gt;Aeron Kohime: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Aeron Kohime</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:Phantom_Child&amp;diff=1138257</id>
		<title>Talk:Phantom Child</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:Phantom_Child&amp;diff=1138257"/>
		<updated>2011-03-23T16:48:37Z</updated>

		<summary type="html">&lt;p&gt;Aeron Kohime: /* Oh Wow */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Awesome script. Still works as of 9/25/2008. And you can even set the object as physical! (Change the &#039;flexible-set&#039; by a &#039;physical-set&#039;){{unsigned|Protector Cone|16:46, 26 September 2008}}&lt;br /&gt;
&lt;br /&gt;
== Reboot? ==&lt;br /&gt;
&lt;br /&gt;
It has to be reseted on reboot. I wish I knew what event a server reboot causes to script, to avoid that it is not phantom for even 1 second after restart.&lt;br /&gt;
&lt;br /&gt;
== Bug Fix ==&lt;br /&gt;
Since this is an exploit of a current bug (jiralink?), would it be possible to estimate how the item reacts once the bug is fixed? Which would be the expected behaviour?&lt;br /&gt;
#Script silently fails, child and object staying solid?&lt;br /&gt;
#Script shouts an error on debug channel, child and object staying solid?&lt;br /&gt;
#Script works, child &#039;&#039;&#039;and&#039;&#039;&#039; object turning phantom?&lt;br /&gt;
I&#039;m currently thinking about using it for a friends product but am afraid of the consequences... Others might be too. So it would be noteworthy in the article.&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; 15:26, 28 October 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
:The only bug I can see in this is enabling flexible on shapes that aren&#039;t allowed to be flexible. After the second type change it disables it but (I assume) it forgets to tell the physics engine. If this is the case, the fix would result in the objects staying solid. -- &#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; 01:11, 6 April 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Reboot ==&lt;br /&gt;
[[llGetTime]] and [[llRequestSimulatorData]] could both work in a loop, but [[CHANGED_REGION_START]] is probably the better solution.&lt;br /&gt;
&amp;lt;lsl&amp;gt;   //-- add this&lt;br /&gt;
  changed (integer vBitChanges){&lt;br /&gt;
    if (CHANGED_REGION_START &amp;amp; vBitChanges){&lt;br /&gt;
      llResetScript();&lt;br /&gt;
    }&lt;br /&gt;
  }&amp;lt;/lsl&amp;gt;&lt;br /&gt;
I&#039;m adding the change to the main page, but posting this here in case anyone objects to the change&lt;br /&gt;
[[User:Void Singer|Void Singer]] 18:21, 5 April 2009 (UTC)&lt;br /&gt;
* Void, I had to remove your change while testing this script in-world: I got error on CHANGED_REGION_START - that was today on Hippotropolis, running Second Life Server 1.25.6.113484 - --[[User:Opensource Obscure|oobscure]] 15:16, 6 April 2009 (UTC)&lt;br /&gt;
** At this point I&#039;m not sure if the CHANGED_REGION_START return value is live on the server. the constant itself obviously (now) isn&#039;t live. either someone forgot to update the viewer with the new constant(I think the keyword checking still happens there?), or the wiki page for it got mislabeled/changed(more likely). I changed the code to compile regardless, and if it&#039;s live on the server it should work, otherwise it does nothing. unfortunately I can&#039;t restart a sim to check. [[User:Void Singer|Void Singer]] 06:33, 8 April 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Even better... ==&lt;br /&gt;
&lt;br /&gt;
A friend of mine recently (3/16/2010) discovered that we can get a much better phantom child effect by calling llVolumeDetect in a prim, linking it to something, and deleting the script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
default {&lt;br /&gt;
    state_entry() {&lt;br /&gt;
        llVolumeDetect(TRUE);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    changed(integer change) {&lt;br /&gt;
        if (change &amp;amp; CHANGED_LINK) {&lt;br /&gt;
            llRemoveInventory(llGetScriptName());&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This appears to persist even after re-rezzing, changing owner  several times, and survives toggling phantom on the linkset.&lt;br /&gt;
Apparently there are already products on the market using this trick to great effect, but I can&#039;t find any previous mention of this technique.&lt;br /&gt;
I&#039;m considering posting this to the JIRA as a &amp;quot;please don&#039;t fix!&amp;quot; issue.&lt;br /&gt;
&lt;br /&gt;
--[[User:Michelle Resistance|Michelle Resistance]] 16:39, 18 March 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Ok, some experimenting has revealed quirky side-effects to doing this.  The collision_start event behaves very oddly in linksets using this technique.  Scripts in the root will get collision_start events when phantom children are intersected, but collisions with solid prims in the linkset will trigger a flood of collision_start events.  In phantom child prims, no collision_start events are generated at all.  Solid child prims seem to have normal collision_start triggering.  Prims delinked from the linkset seem to have lingering issues with collision_start events.  Please reply here if you discover additional side-effects, or can elaborate on what&#039;s been posted.&lt;br /&gt;
&lt;br /&gt;
--[[User:Michelle Resistance|Michelle Resistance]] 17:41, 18 March 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Oh Wow ==&lt;br /&gt;
&lt;br /&gt;
I didn&#039;t think this would take off with so many revisions. I decided to post it because I found it useful so long ago. I only recently found it again because of someone selling the script on the market https://marketplace.secondlife.com/p/Dvandva-Phantom-Child-Script/1219467. [[User:Aeron Kohime|Aeron Kohime]] 09:48, 23 March 2011 (PDT)&lt;/div&gt;</summary>
		<author><name>Aeron Kohime</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LSL_Script_Memory&amp;diff=392823</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=392823"/>
		<updated>2009-06-14T07:54:09Z</updated>

		<summary type="html">&lt;p&gt;Aeron Kohime: /* Return Types */ - Someone forgot the &amp;lt;pre&amp;gt; tag for this&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. 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;
==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;
The first few (3-5) memory entries take different amount of memory each, ranging from 0 to double the mentioned usage.&lt;br /&gt;
&lt;br /&gt;
String memory usage is a constant 8 after the first few entries for user text inserted directly to list. (myList += [&amp;quot;text&amp;quot;] vs. myList += [llGetSubString(&amp;quot;text&amp;quot;, 0, -1)])&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;
===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;
==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;/div&gt;</summary>
		<author><name>Aeron Kohime</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=FastConeSpread&amp;diff=348583</id>
		<title>FastConeSpread</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=FastConeSpread&amp;diff=348583"/>
		<updated>2009-05-07T00:34:38Z</updated>

		<summary type="html">&lt;p&gt;Aeron Kohime: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
// 2009, Nexii Malthus&lt;br /&gt;
// Licensed under the Creative Commons Attribution-Share Alike 3.0 License&lt;br /&gt;
// http://creativecommons.org/licenses/by-sa/3.0/&lt;br /&gt;
&lt;br /&gt;
float Spread = 15.0;&lt;br /&gt;
&lt;br /&gt;
default{&lt;br /&gt;
    state_entry(){&lt;br /&gt;
        Spread *= DEG_TO_RAD;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    touch_start( integer d ){&lt;br /&gt;
        float x = (llFrand(1)-0.5)*PI;&lt;br /&gt;
        float y = (llFrand(1)-0.5)*Spread;&lt;br /&gt;
        &lt;br /&gt;
        rotation rSpread = &amp;lt;0,llSin(y),0,llCos(y)&amp;gt; * &amp;lt;llSin(x),0,0,llCos(x)&amp;gt;;&lt;br /&gt;
        llSetRot( rSpread );&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
// 2008-2009, Aeron Kohime&lt;br /&gt;
// Licensed under the Creative Commons Attribution 3.0 License&lt;br /&gt;
// http://creativecommons.org/licenses/by/3.0/&lt;br /&gt;
&lt;br /&gt;
float spread = 15.0;&lt;br /&gt;
&lt;br /&gt;
default{&lt;br /&gt;
    state_entry(){&lt;br /&gt;
        spread *= DEG_TO_RAD;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    touch_start( integer d ){&lt;br /&gt;
        float y = spread*(llFrand(1)-0.5);&lt;br /&gt;
        float z = spread*(llFrand(1)-0.5);&lt;br /&gt;
        rotation rSpread = llEuler2Rot(&amp;lt;0,y,z&amp;gt;);&lt;br /&gt;
        llSetRot( rSpread );&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;/div&gt;</summary>
		<author><name>Aeron Kohime</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User_talk:Strife_Onizuka&amp;diff=347163</id>
		<title>User talk:Strife Onizuka</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User_talk:Strife_Onizuka&amp;diff=347163"/>
		<updated>2009-05-06T05:02:20Z</updated>

		<summary type="html">&lt;p&gt;Aeron Kohime: /* Thoughts on built-in preprocessor */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{:User:Zai_Lynch/Award}}You found my talk page... Find old discussions at: [[User:Strife_Onizuka/Talkpage_Archive_01]]&lt;br /&gt;
&lt;br /&gt;
== Question about [[Template:Multi-lang]] ==&lt;br /&gt;
Heyas =)&amp;lt;br&amp;gt;&lt;br /&gt;
I was trying to add the new &#039;&#039;version&#039;&#039; feature to the [[Template:Help/de|help template]] and stumbled upon a difficulty where I hoped you could help me with... I made a testpage at [[User:Zai Lynch/Sandbox/MLtest/de]] but it acts weird... when i make a change to [[User:Zai_Lynch/Sandbox/MLtest/version]] then the box is displayed at the test page. When I just edit and save the test page (without changing anything) it eats up the language bar. It acts somehow unexpectedly/random. I don&#039;t really know why it is... (o.O) Any ideas?&amp;lt;br&amp;gt;&lt;br /&gt;
[[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; 19:42, 5 November 2008 (UTC)&lt;br /&gt;
:I&#039;ll take a look at the template and fidget with it. No ideas come to mind. -- &#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; 20:00, 5 November 2008 (UTC)&lt;br /&gt;
::Kewl, thx! :-)&lt;br /&gt;
::And I&#039;ll go to bed as early as 9PM for the first time in ages (o.O) gotta be ill... ^^&lt;br /&gt;
::&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;sleepy* [[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:07, 5 November 2008 (UTC)&lt;br /&gt;
:hm... the bug seems to be very strange. And it isn&#039;t part of the template.&lt;br /&gt;
:Please try the following and tell me what you see:&lt;br /&gt;
:*Log out of the Wiki and then browse to [[Quickie_Wiki_Intro/Usercategories]] (or [[User:Zai_Lynch/Sandbox/MLtest/de]]). Notice: there is a language bar on top&lt;br /&gt;
:*Log in the Wiki and look at the same page. Notice: Language bar is gone.&lt;br /&gt;
:*Edit the article and preview. Notice: Language bar is visible in preview.&lt;br /&gt;
:*Save the article. Notice: Language bar is gone again.&lt;br /&gt;
:*Go to [[Special:Preferences]] and change the interface language (to German, for example). Notice: The language bar is visible...&lt;br /&gt;
:*Change the language back to English. Notice: The language bar is gone again...&lt;br /&gt;
:o.O [[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; 07:47, 6 November 2008 (UTC)&lt;br /&gt;
::Had to sacrifice a (unused) feature but it&#039;s working now. Weird bug nevertheless... Sorry for spamming&lt;br /&gt;
::[[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; 02:16, 7 November 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
== grid list ==&lt;br /&gt;
&lt;br /&gt;
Strife, I was wondering if you&#039;d mind if I took the idea from the grids and downloads list that you have and turned it into a template since I know of a few places (my userpage for one :) ) where it could be useful and I didn&#039;t just want to copy off the code especially without your permission. [[User:Gordon Wendt|Gordon Wendt]] 16:34, 6 November 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Do what you want with it, I didn&#039;t put it in the global space because...&lt;br /&gt;
:*Make changes without having to fix what it breaks.&lt;br /&gt;
:*Unsure about who would want to use it.&lt;br /&gt;
:*Didn&#039;t want to fix my content when others changed it.&lt;br /&gt;
:To recap, you are welcome to reuse the code. -- &#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; 20:24, 6 November 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
== LSL Category Localization Template ==&lt;br /&gt;
&lt;br /&gt;
Heyas! =)&amp;lt;br&amp;gt;&lt;br /&gt;
It&#039;s me again... I wanted to ask for feedback/input on these two templates: [[User:Zai_Lynch/Sandbox/Template:LSL_Cat_L10n/de|German]], [[User:Zai_Lynch/Sandbox/Template:LSL_Cat_L10n/fr|French]].&amp;lt;br&amp;gt; It would be supposed to easily provide unified localized LSL cats so translators wouldn&#039;t accidentally connect an article to a wrong category when they&#039;d choose another translation for the same word. I implemented a small test version in [[Template:LSL Function/de]], [[Template:LSL Event/de]], [[Template:LSL Constant/de]], [[Template:LSLC/de]] and [[Template:LSLGC/de]]. I tried about 5 different ways of implementing the template itself (without database-slaves) but they all failed due to either wiki limitations or parser function bugs (it worked well in the sandbox wiki). I&#039;d like to try it in the German localization (can&#039;t break much content there at the moment...) and in case it works out fine, Gally would be willing to help me for the French implementation. Do you have any objections against the template (could it break something? slow the wiki down?) or input, thoughts, ...? Are there more templates besides the 5 I already altered, where I should pay attention to?&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; 00:35, 21 November 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I&#039;ve given a lot of thought to slaves in the past (there was a time I wanted a centralized function/constant/event description lookup for the &amp;quot;Also...&amp;quot; section). The correct way to implement them is to have a slave for each letter, the advantage is that slaves can have slaves. If implemented properly the cost is very small. The problem however is that you have to be conscious of the format. If you want to change the format you have to change the entire DB. I believe the best solution is to version each of the entries. Now at this point you need to take a step back and ask &amp;quot;Am I reinventing the wheel?&amp;quot; And the answer is &amp;quot;Yes&amp;quot;. Essentially what you want is a database where you can feed it a key and get the stored value pair.&lt;br /&gt;
&lt;br /&gt;
:There is of course another solution to this problem. Make all the Categories smart so they can be included (like the PRIM_* flags), and pass it a parameter that tells it to only return the foreign language category name you specify OR you could make a subpage like we do for the translation version (which would be really smart) and just have the lookup table there.&lt;br /&gt;
&lt;br /&gt;
:Anywho there are my initial thoughts on this. Last time I checked MW executes both sides of a conditional, so you need to make it so what is inside the conditional is not the template but just the name of the template (so it only executes text and not a template). -- &#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; 01:42, 21 November 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
::Thx for the feedback =)&lt;br /&gt;
::@Slaves: I didn&#039;t wanted to use any slaves for this. My goal was, to have all translations stored on one page so that only that one needed to be localized. Unfortunatly, the else-if chain exceeded the maximum depth allowed by the mediawiki. So I tried to break the chain into two chains and store a variable value in case the first chain didn&#039;t give a result, so the second chain starts. This [http://wiki.zeitenwerk.de/index.php/Template:LSL_Cat_L10n/de works in the sandbox] but not over here due to [[Help:Known_caveats_in_parser_functions|the nasty bug you mentioned as well]]. I also tried a recursive process where the template called itself with a value but the Wiki complained again (it doesn&#039;t like loops...). After two other work arounds failed too, I had to create the slaves to do the job... But I&#039;m not really happy with that solution since it splits my database into 2. Splitting it further (for every letter) would erase one of the benefits: easy localization. I think the database (around 100 terms in worst case, usually less cause not all terms need a translation) is to small to justify that.&lt;br /&gt;
::The smart cat version is a way I thought about too (and Gally had a similar idea to unify categories on translated subpages), but the problem with it would be again that it is a decentralized implementation. Someone who wants to begin with a new translation of the portal would have to edit all smart-cat pages instead of only one (or two) database pages. So I would consider this method in case it notably decreases the load on the Wiki. I don&#039;t know how computationally intensive it is for the Wiki to check the current database slaves. In case it&#039;s to much, I&#039;d like the subpage-lookup best. With some preperation (collecting translations for more than one language, like done with the [[Mentor_Linguist_Scribe_Translation_Project/HP_L10N|HP L10n]]) and then add them all when we got maybe 5 or 6 languages.&lt;br /&gt;
::[[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; 17:03, 21 November 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::You would actually want to use &amp;quot;switch&amp;quot; instead of &amp;quot;ifeq&amp;quot;, that said, you don&#039;t want to have a huge switch statement, it&#039;s not good for the wiki. Huge templates take a long time to execute (take a look at the templates on [[LSO]], they take so long to rebuild that the connection times out and the wiki has a fit). Anyway you cut it, to add a new language would require duplicating the slave DB. It would not be fun. You may gain some centralization by having the Slave DB but to keep it from bringing the wiki to it&#039;s knees you won&#039;t have much. If we decide to forgo the centralization altogether and go with a system like the article versioning, we can solve several problems all at once that would have popped up as a result of having it in a DB. If we do it properly we can set it up like multi-lang with the articles in need of translation. Sure it would be a bear to setup for each language but the alternatives just don&#039;t scale or require maintenance to allow it to scale. -- &#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; 04:25, 22 November 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
::::Just to make sure that we&#039;re on the same page: I meant one DB (or X slaves) for each language. Not one DB for all languages. The German templates would only call the German DB, French only French, etc. So the maximum else-if depth got an upper bound at the count of LSL cats (worst case, when every cat has a translation other than cat/ISO-CODE) which seems to be something between 100 and 110.&lt;br /&gt;
::::That beeing said, I got to agree about the [[LSO]] article. I also checked the L10n lookup database and got to say that it needs like forever to load... Might be since I included it a hundret times in the table to verify that all translations work right and (since most of the translations are missing) it needs to run the else-if chain till the end. So it would only be included about 4 times on an average article I guess. Load would then be roughly ((current load)/100)*4 + (load of other templates). &lt;br /&gt;
::::So I think we&#039;ll go with the smart-cat-subpage-lookup? I&#039;d then need a complete list of LSL cats to hand them out to linguists to translate. I &#039;&#039;think&#039;&#039; the [[User:Zai_Lynch/Sandbox/Template:LSL_Cat_L10n/de|table]] should be complete but I&#039;m not 100% sure. For implementation we&#039;d need to take care of the input format. French translations use &amp;quot;cat/fr&amp;quot; as input while Japanese and German translations just use &amp;quot;cat&amp;quot;. So we&#039;d either need to add these differences at the subpages (bad imho) or make the template unify the input before passing it to the lookup (better imho).&lt;br /&gt;
::::[[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; 14:46, 22 November 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::::It won&#039;t be ((current load)/100)*4 + (load of other templates), it will be (current load)*4 + (load of other templates); there is no speed gain to my knowledge to a big switch statement (that I know of), it&#039;s O(N), not O(1). You probably don&#039;t want more than 25 items per slave, properly configured, it won&#039;t be much more costly then the slaves. -- &#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; 01:27, 23 November 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
::::::Currently, the template is included about 100 times in the table. At an average article, it would be only included maybe 3, 4 or 5 times. So it would be ((the load of the 100 includes table) / 100) * (number of inclusions in the article). That is what I meant. Not the else-if depth or the switch. &lt;br /&gt;
::::::[[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; 01:37, 23 November 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
== MIA ==&lt;br /&gt;
Ouch, I hope you get yourself setup soon with a new job and computer, your a valuable member of the community and it would be somewhat depressing to lose you. I wish you good luck. --[[User:Nexii Malthus|Nexii Malthus]] 10:53, 30 November 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
What Nexii said... *adds home, job and PC to Santa&#039;s list for Strife, as well as a four leaf clover and a fresh polished horseshoe for the x-tra boost of luck*&amp;lt;br&amp;gt;[[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; 13:37, 30 November 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
:It all basically means I can&#039;t write scripts, login to SL or do much template work (alignment gets funky at smaller than 100% zoom). -- &#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; 01:31, 1 December 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
take care... (o.O) hope you&#039;re one of [http://www.xkcd.com/466/ them] and we&#039;ll have you back soon. *hugz*&amp;lt;br&amp;gt;[[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; 22:57, 21 December 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
: *Borrows a computer* for the moment things are ok, after the holidays things will be a mess... *hugs* -- &#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; 17:04, 22 December 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Geek Award ==&lt;br /&gt;
LOL. That really makes my day. As to the inspiration... I got sick of having to manually double embed templates to avoid the call cost. I had been wanting a null/empty template so I could have an if on the template name and so nothing would get included... but then I&#039;m like, why not a variable template? So I start to write it and I&#039;m then like? What to name it... I know &amp;quot;Template&amp;quot;. On review though, the null/empty template is the better idea. -- &#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; 21:44, 10 December 2008 (UTC)&lt;br /&gt;
:Glad you like it (^_^)&lt;br /&gt;
:Can you explain why an empty template is reducing the load on the Wiki when you call it with a parser function as an argument? Has it got something to do with {{Jira|WEB-896}}?&lt;br /&gt;
:[[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; 22:45, 10 December 2008 (UTC)&lt;br /&gt;
::Yep it has to do with {{Jira|WEB-896}}. Say you had the following code but you wanted it conditional:&lt;br /&gt;
::&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ugly|ugly param1|ugly param2}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
::The easy thing would be to just wrap it:&lt;br /&gt;
::&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#if:{{{test|}}}|{{ugly|ugly param1|ugly param2}}}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
::The problem is, Template:Ugly gets evaluated (and it effects #vars).&lt;br /&gt;
::Lets look at this solution:&lt;br /&gt;
::&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{{{#if:{{{test|}}}|ugly|/dev/null}}|ugly param1|ugly param2}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
::By putting the conditional around the name of the template, when the test fails it evaluates Template:/dev/null ... which does nothing, and with MediaWiki 1.12 template parameters aren&#039;t evaluated until they are first used by the template; so in this case, they are never evaluated. It gets us around the ugly problem of conditional templates getting called needlessly.&lt;br /&gt;
&lt;br /&gt;
::Historically I&#039;ve used Template:! instead of /dev/null, for the only reason I hadn&#039;t gotten around to making the /dev/null template. This of course had it&#039;s own problems (specifically that it inserted a | (pipe character)). I&#039;ll probably start converting things over to /dev/null when I do template updates.&lt;br /&gt;
&lt;br /&gt;
::P.S. You nailed it on the head though, Template:Template is the result of me giving into my more nerdy tendencies. -- &#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; 23:49, 10 December 2008 (UTC)&lt;br /&gt;
:::Oh I get it. Is really a pretty creative work around! [[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; 03:01, 11 December 2008 (UTC)&lt;br /&gt;
Haha, nice award. Template:Template is definitely something interesting. --[[User:Nexii Malthus|Nexii Malthus]] 02:11, 11 December 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Widgets ==&lt;br /&gt;
&lt;br /&gt;
[[User:Kuraiko Yoshikawa|Kuraiko]] added the [http://www.mediawiki.org/wiki/Extension:Widgets widgets extension] to [http://wiki.zeitenwerk.de our sandbox] and added [http://wiki.zeitenwerk.de/index.php/User:BlindWanderer your account] to the widget editors group. So if you&#039;d like to play arround with widgets in a sandboxed SLwiki-like environment in order to develop some for this Wiki, you can have a look there when you&#039;re back and got time and so... Keep in mind that parser functions are acting slightly different, but the rest should be the same and the content isn&#039;t so much outdated (maybe a few month old). Have fun =)&amp;lt;br&amp;gt;I hope it will all turn out well for you soon... oh btw: you got mail. Outdated though.&amp;lt;br&amp;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; 02:10, 23 December 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Notecard campaign to M Linden ==&lt;br /&gt;
&lt;br /&gt;
I have been distributing this notecard:&lt;br /&gt;
&lt;br /&gt;
 [If you agree, please remove this line, replace the signature below, and send to M]&lt;br /&gt;
 &lt;br /&gt;
 M, &lt;br /&gt;
 &lt;br /&gt;
 Please hire Strife Onizuka; please read his user page: &lt;br /&gt;
 &lt;br /&gt;
  http://wiki.secondlife.com/wiki/User:Strife_Onizuka&lt;br /&gt;
 &lt;br /&gt;
 I don&#039;t know him personally, only through his volunteer work,&lt;br /&gt;
 and I&#039;m not related to him or interested in this financially.&lt;br /&gt;
 &lt;br /&gt;
 Would you please ask the Lindens in the HR department to read&lt;br /&gt;
 https://wiki.secondlife.com/wiki/User:Strife_Onizuka and see if&lt;br /&gt;
 he&#039;s ever applied, and if not, invite him to using his email&lt;br /&gt;
 address on file, and if so, resubmit him to jobs&lt;br /&gt;
 http://lindenlab.hrmdirect.com/employment/view.php?req=27066 and &lt;br /&gt;
 http://lindenlab.hrmdirect.com/employment/view.php?req=26066 ?&lt;br /&gt;
 &lt;br /&gt;
 Thank you.&lt;br /&gt;
 &lt;br /&gt;
 JS Uralia&lt;br /&gt;
[[User:JS Uralia|JS Uralia]] 03:26, 30 December 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
:As awesome as that is, I somehow have a feeling M Linden would be too overwhelmed with other inventory gives, IMs and other dialogs. --[[User:Nexii Malthus|Nexii Malthus]] 17:47, 31 December 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I haven&#039;t applied for a job with LL in 4 1/2 years. The triage job doesn&#039;t sound like a job I would want to do on a full time basis. With all honesty I don&#039;t think I&#039;m skilled enough to be a senior developer for LL; I&#039;ve met several of them and I don&#039;t feel I&#039;m smart enough. -- &#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; 21:45, 1 January 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::I didn&#039;t knew if I should answer to the topic, though I need to disagree now. I can not tell about your knowledge in C/C++ (etc.) or about the needed experience for the job. You might be lacking either or both and that might be the reason for not applying. But you&#039;re definatly &#039;&#039;&#039;not&#039;&#039;&#039; lacking smartness in any way. You&#039;ve proofen that uncountable times.&lt;br /&gt;
::[[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; 05:20, 2 January 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
==WB==&lt;br /&gt;
Glad to see you&#039;re still out there! Lack of life signals made me worry :-S Hope you&#039;re ok... [[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; 02:33, 28 February 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Just stealing some time to catch things up. Things are pretty dull (to the point of insanity) here, I got a job working 3rd shift at a convenience store. The work is ok and the pay isn&#039;t terrible but it isn&#039;t something I want to do for much longer (I took the job to see if I could do it). My right knee started complaining in October and just a couple weeks ago my left joined the rebellion (along with a pain in my lower lumbar, though stretches help with that... now I can just about touch my toes). My flat feet determine how many days a week I can work, turns out two days on and one day off is what I have to do to avoid stabbing foot pain. My carpal tunnel fortunately enough has not reared it&#039;s ugly head. Any who, I figure it will look good on a Resume. With the economy as it is, I don&#039;t know when I&#039;ll get my computer fixed. -- &#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; 03:26, 28 February 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::Sounds as if you&#039;re having a tough time. Was hoping for something more disney-esque to colorize your life... I don&#039;t really have an idea how, but in case I can help with anything, ping me via mail or here or so anytime! And leave a lifesign every couple of weeks plz (o.O)&lt;br /&gt;
::[[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; 17:12, 28 February 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I wish you good luck! And thank you for updating [[LSL http server/examples]] with your correction :) --[[User:Opensource Obscure|oobscure]] 00:05, 1 March 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: NP, It happens that the (keyword) change is the result of one of my feature suggestions. It&#039;s nice to know that I may be disconnected but not out of mind.&lt;br /&gt;
:: I like to think of it as that part of the movie where the bad guy has it all his own way right before the hero makes a comeback. The job has been a good thing for me though, it&#039;s taken a bit of the cynicism away and dowsed the growing self-entitlement. The years of being a forum moderator took a lot of the cartilage off my personality; the job has forced some of it to regrow, for me to be less abrasive. The one thing it does lack is that &amp;quot;It&#039;s ALIVE, Mohohahaha&amp;quot; feeling you get with programming. Programming is chiseling you ego, your expertise, your farsightedness in stone; cleaning and stocking shelves is just pushing a boulder up hill, though serving customers has it&#039;s rewards. It is nice to be able to work with people, I missed that doing freelance programming. -- &#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; 16:58, 1 March 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::Thx for enhancing the function with the bitwise shift! =) I gotta confess that I had no clue about that operator.&lt;br /&gt;
:::@ &amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt;[[Template:Dev/null|dev/null]]}}: I&#039;m not sure if it&#039;s still needed, since we finally got an up-to-date parser functions extension ({{Jira|WEB-896}}) and it might not execute both sides of the conditional anymore. And we got Cite! Still no collabsible tables tho... &lt;br /&gt;
:::Your ability to analyze yourself and look at the positive side of thinks is... Just wonderful :-) Miss that so often when people tell about their lifes. Keep that! It&#039;s refreshing =)&lt;br /&gt;
:::[[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; 22:44, 1 March 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Re: [[User:Zai Lynch/Talkpage_Archive_02#Free Hugs... Beware!|Free Hugs... Beware!]] ==&lt;br /&gt;
Had to think about you when I noticed [http://www.asofterworld.com/index.php?id=410 more free hugs at a softer world.]&amp;lt;br&amp;gt;(^_^) --[[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; 15:31, 12 March 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Categorization ==&lt;br /&gt;
&lt;br /&gt;
I&#039;ve been running through [[Special:UncategorizedCategories]] trying to cut down the number of entries there.&lt;br /&gt;
&lt;br /&gt;
I&#039;ve reverted the help portal mod to [[:Category:LSL]] ^_^&lt;br /&gt;
&lt;br /&gt;
[[User:SignpostMarv Martin|SignpostMarv Martin]] 21:23, 14 April 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Wiki Contributors==&lt;br /&gt;
Heyas :-)&amp;lt;br&amp;gt;&lt;br /&gt;
2 questions:&lt;br /&gt;
#Did I [[User_talk:Zai_Lynch#Recommendations_for_wiki_superusers|miss someone]]?&lt;br /&gt;
#[[Template:ZWSP]] (and ZWJ + ZWNJ)...? Can you name a possible usecase for the first one and tell what the other two are going to be about? (o.O)&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; 00:20, 17 April 2009 (UTC)&lt;br /&gt;
::ZWSP is the name of the character (Zero Width SPace), it might be useful when you need to kick the wiki engine into doing something that the parser doesn&#039;t want to let you do (like having a # as the lead character as a result in an #if and not have it put it on a new line *rolls eyes*). The other two, Zero Width Joiner and Zero Width No Joiner, are similar character, according to Unicode they cause certain characters to take on different forms when put next to each other (combination characters: Mayan? Chinese?). I really wanted Zero Width Non Breaking Space but my computers font doesn&#039;t support it (it would have been really useful, it would be a character that I could put anywhere, you wouldn&#039;t see it and it would have no effect except on the wiki engine) oh well. -- &#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; 03:14, 17 April 2009 (UTC)&lt;br /&gt;
:::Ah, yuss, makes sense as first character of the line. I&#039;d &amp;lt;nowiki&amp;gt;&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;&amp;lt;/nowiki&amp;gt; but &amp;lt;nowiki&amp;gt;{{ZWSP}}#&amp;lt;/nowiki&amp;gt; is nicer. Thanks for the explanation :-) Added it to the [[Help:Editors Toolbox|toolbox]]. &lt;br /&gt;
:::--[[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; 11:27, 17 April 2009 (UTC)&lt;br /&gt;
Why didn&#039;t I think of &amp;lt;nowiki&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;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; 17:16, 17 April 2009 (UTC)&lt;br /&gt;
:Would have been to easy ;-) *hugz* [[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; 21:52, 17 April 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Because I don&#039;t say it enough ==&lt;br /&gt;
And haven&#039;t said it recently to you but I should tell you directly, despite the emotional limitations of words: thanks for continuing to persist and relentlessly contribute to this wiki and to broader understanding of technical knowledge for so many Residents, AND myself! Since the beginning of my SL and seeing your tortured prim display, you&#039;ve been influential on the later decisions I&#039;d make to &#039;&#039;enlighten&#039;&#039; our communities. &amp;lt;font color=&amp;quot;#ff0080&amp;quot;&amp;gt;&#039;&#039;&#039;- [[Image:Torley-favicon.png]] [[User:Torley Linden|Torley]] on 2009-04-17 @ 10:29 AM PST&#039;&#039;&#039;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:I&#039;m not the type to point out the obvious... I consider a lot obvious that others don&#039;t. I often don&#039;t say what&#039;s important because of this, or what should be said or even what needs to be said.&lt;br /&gt;
&lt;br /&gt;
:You are one of SL&#039;s greatest assets, you have done not just good works but great works. You have carried the torch of enlightenment better than anyone else. When others around you had lost their cool you kept yours. I have always struggled to achieve the completeness your works exude, you make me strive to do better, your work has always inspired me. You honor me too much. It has been an honor to work with. It has been an honor to be your friend and I am honored to have inspired you.&lt;br /&gt;
&lt;br /&gt;
:For me the inspiration came from the short science fiction stories that I grew up on, the stories that shaped the minds of the computer communities of the 70&#039;s and 80&#039;s. The stories that had a kernel of truth in them: the context of the stories turned from science fiction into fact as hardware and software evolved. Stories that talked about governmental abuses, untrustworthy 3rd parties and the erosion of rights &amp;amp; privileges that are now all to poignant and relevant. I came by the ideals of GNU honestly and they left a deep impression on me. Why try to dam and control the rivers of information, to push it into canals and reservoirs only to portion out small amounts? Let the information go where it wants, give people access to it, let them work with it, they will amaze with what they do with it. But this isn&#039;t the 80&#039;s or even the 90&#039;s and that ideology just doesn&#039;t work anymore, there is a dark side to it which people have focused on; they have trouble focusing on enlightenment. -- &#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; 21:31, 17 April 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== You asked me to elaborate on my recent edit to llGetLocalPos() ==&lt;br /&gt;
&lt;br /&gt;
Although I sent you a note in world I have not heard back from you as yet. I tested the return of the function in the same object as both physical and not. It returns the same vector!!?? I have thus removed my edit. However in my defence I will say that I only added what is stated in the lsl script (when hoverng over the function with the mouse pointer). I don&#039;t understand why &amp;quot;If the script isn&#039;t physical&amp;quot; is mentioned. Perhaps you could be so good as to explain sometime. Not sorry but confused.&lt;br /&gt;
&lt;br /&gt;
Eddy.&lt;br /&gt;
&lt;br /&gt;
:I don&#039;t get in world very often unfortunately... (my main computer died and this one is pretty crappy, the experience isn&#039;t fun). My perspective has been: The tooltips are often wrong and should not be trusted. That said, if you find one that is wrong you should open a [jira.secondlife.com jira issue]. In the past LL was really bad about LSL documentation (they still are but they are getting better), both forms they provided (tooltips being one) were often wrong and incomplete; and this was the driving force behind the community creating it&#039;s own wiki. This and other things LL did jaded the community. Trust has been a big issue, many of the older scripters have developed a high level of apathy and just don&#039;t report bugs. It&#039;s a sad state of affairs but generally getting better as LL becomes more responsive. -- &#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; 20:34, 24 April 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Thanx for the rapid response. Although I really don&#039;t know if the tooltip is wrong. My limited experience does not really qualify me to say. I just tested what happened in physical static, physical moving and non physical and the same vector was returned in all 3 cases. I see this as &amp;quot;proof&amp;quot; that the function acts the same way whether in a physical script or not but then my cyber kitty isn&#039;t going or a walk as it should and I can&#039;t find any good reason why not. So I am perhaps not the best judge of whether this is a JIRA worthy issue. If I KNOW something to be wrong I will report it (as I have) but I really think it would be better for someone with more experience to test this one out before it&#039;s brought to the attention of the world wide wiki!! (About my kitty...I am begining to wonder if I have found another bug to be honest. I seem to have a knack for it)&lt;br /&gt;
&lt;br /&gt;
Cheers for now, Eddy.&lt;br /&gt;
&lt;br /&gt;
:I didn&#039;t remember it acting differently between physical and non-physical but I was giving you the benefit of the doubt (you might have done original research). It&#039;s frowned upon to post something vague like what you did in the documentation, stuff like that should be posted on the discussion page; it just isn&#039;t useful to document that there is a difference but not to document what that difference is. It&#039;s bad style to post things you haven&#039;t verified, it can be disruptive and counter productive. You are new, we understand, you are forgiven. -- &#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; 21:12, 24 April 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Turns out kitty was just being fussy about her vectors. Sometimes the compiler is a little less than specific when it matters eh? Anyway I will watch my additions carefully and be sure to only add what is true, accurate and relevent (of course this would be easier if LL didn&#039;t do the oposite in there own scripts). TTFN&lt;br /&gt;
&lt;br /&gt;
== Might I draw your attention to llGetLocalRot() ? Within this very wiki.==&lt;br /&gt;
&lt;br /&gt;
Another case of &amp;quot;(If the script isn&#039;t physical)&amp;quot;. I didn&#039;t do it!! lolz. Do you or anyone else know why so many tooltips mention this physical script condition/variable?&lt;br /&gt;
&lt;br /&gt;
:The documentation was originally written from the tooltips (I kid you not). (P.S. Please sign your comments with &amp;lt;nowiki&amp;gt;~~~~&amp;lt;/nowiki&amp;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; 20:57, 26 April 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Okies.  -- &#039;&#039;&#039;[[User:EddyFragment_Robonaught|Eddy]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:EddyFragment_Robonaught|talk]]|[[Special:Contributions/EddyFragment_Robonaught|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 8.29am GMT, 27 April 2009 (What does &amp;quot;UTC&amp;quot; stand for?)&lt;br /&gt;
&lt;br /&gt;
:UTC is &#039;&#039;almost&#039;&#039; GMT (see http://en.wikipedia.org/wiki/Coordinated_Universal_Time ). Tho you don&#039;t have to do the hard work in manually creating your signature. Just write four tildes (&amp;lt;nowiki&amp;gt;~~~~&amp;lt;/nowiki&amp;gt;) and the wiki will automatically convert them into your username and a timestamp. When you&#039;d like to have a custom signature, you can go to [[Special:Preferences]] and play around with the &#039;&#039;Signature&#039;&#039; option :-) [http://en.wikipedia.org/wiki/Wikipedia:Signatures More info on that @ Wikipedia]&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; 08:00, 27 April 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Thank you Lynch. I am not very knowledgable with computers. Still have trouble opening files and simple stuff like that. This wiki is a maze of links and I am afraid that even though my locic works just fine my knowledge is lacking. (I may need to edit this if I get the signiture bit wrong...Just type four squiggles...Here goes!). [[User:EddyFragment Robonaught|EddyFragment Robonaught]] 08:19, 27 April 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Hehe, looks well! And call me zai ;-) 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; 08:28, 27 April 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Sry zai (not Lynch). Good to meet you. -- [[User:EddyFragment Robonaught|Eddy]] 08:43, 27 April 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Yes the transclusion in LSL documentation does make it difficult to learn but it does make things so much easier to maintain once you have learned it. Consistency in layout and content is much easier with the transclusion IMHO. -- &#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; 00:50, 28 April 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Thoughts on built-in preprocessor ==&lt;br /&gt;
&lt;br /&gt;
What are your thoughts on a built in preprocessor for SL? Obviously #import would not be supported but the rest could probably be managed. --[[User:Aeron Kohime|Aeron Kohime]] 05:02, 6 May 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Aeron Kohime</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Preprocessing&amp;diff=347143</id>
		<title>Preprocessing</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Preprocessing&amp;diff=347143"/>
		<updated>2009-05-06T04:09:15Z</updated>

		<summary type="html">&lt;p&gt;Aeron Kohime: added ifndef and etc&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I suggest the ability to add preprocessing to LSL, as this has no effect on LSL itself but can provide scripts which can do many different things, depending on.&lt;br /&gt;
&lt;br /&gt;
This would include.&lt;br /&gt;
#Basic Define keyword, can be used to define custom static variables. (these may need to be typed)&lt;br /&gt;
#IF, ELSE, ENDIF preprocessor branches&lt;br /&gt;
#IFDEF, IFNDEF preprocessors&lt;br /&gt;
&lt;br /&gt;
As such a script such as this:&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
#define DEBUG&lt;br /&gt;
&lt;br /&gt;
#ifdef DEBUG&lt;br /&gt;
string mode = &amp;quot;DEBUG&amp;quot;;&lt;br /&gt;
#else&lt;br /&gt;
string mode = &amp;quot;NORMAL&amp;quot;;&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
#ifdef DEBUG&lt;br /&gt;
    on_rez(integer s)&lt;br /&gt;
    {&lt;br /&gt;
        llResetScript()&lt;br /&gt;
    }&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llOwnerSay(mode);&lt;br /&gt;
#ifdef DEBUG&lt;br /&gt;
        llOwnerSay(llGetDate();&lt;br /&gt;
    }&lt;br /&gt;
#else&lt;br /&gt;
    }&lt;br /&gt;
#endif&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Could produce two different scripts depending on the value of DEBUG, which would then get compiled/interpreted.&lt;br /&gt;
&lt;br /&gt;
With DEBUG defined&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
#define DEBUG&lt;br /&gt;
&lt;br /&gt;
string mode = &amp;quot;DEBUG&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    on_rez(integer s)&lt;br /&gt;
    {&lt;br /&gt;
        llResetScript()&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llOwnerSay(mode);&lt;br /&gt;
        llOwnerSay(llGetDate();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Without DEBUG defined&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
string mode = &amp;quot;NORMAL&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llOwnerSay(mode);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;/div&gt;</summary>
		<author><name>Aeron Kohime</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LSL_Useful_Function_WishList&amp;diff=347063</id>
		<title>LSL Useful Function WishList</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LSL_Useful_Function_WishList&amp;diff=347063"/>
		<updated>2009-05-06T02:32:33Z</updated>

		<summary type="html">&lt;p&gt;Aeron Kohime: /* Other functionality */ Added preprocessing to the list, Strife tell em what you think if you are around.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header|ml=*}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
NOTE: Please also add your feature requests to the [http://jira.secondlife.com/ JIRA] and create crosslinks between the wiki and the JIRA for voting, and assignment to projects.&lt;br /&gt;
&lt;br /&gt;
==A==&lt;br /&gt;
[[llAddToEstateBanList]] - {{Jira|SVC-244}} &lt;br /&gt;
&lt;br /&gt;
[[llAddCameraView]]&lt;br /&gt;
&lt;br /&gt;
==C==&lt;br /&gt;
llDetectedDrop?&lt;br /&gt;
&lt;br /&gt;
event: Dropped&lt;br /&gt;
&lt;br /&gt;
(To prevent spamming of objects with [[llAllowInventoryDrop]])&lt;br /&gt;
[[CHANGED_ALLOWED_DROP]] - {{Jira|SVC-3116}}&lt;br /&gt;
&lt;br /&gt;
[[llChangeLandPassPrice]]&lt;br /&gt;
&lt;br /&gt;
[[llChildPrims2List]]&lt;br /&gt;
&lt;br /&gt;
==D==&lt;br /&gt;
{{LSLG|llDetermineType}}&lt;br /&gt;
==E==&lt;br /&gt;
{{LSLG|llExecuteMenuCommand}}&lt;br /&gt;
&lt;br /&gt;
==F==&lt;br /&gt;
{{LSLG|llForeach}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;llFrandom&amp;lt;/s&amp;gt; use [[llFrand]]&lt;br /&gt;
&lt;br /&gt;
==G==&lt;br /&gt;
{{LSLG|llGetAgentHealth}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llGetAgentPreferedLanguage}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llGetAvatarKeysOnEstate}} - {{Jira|SVC-58}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llGetAvatarKeysOnParcel}} - also {{Jira|SVC-58}} as above&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llGetCreatorKey}} - &amp;lt;s&amp;gt;{{Jira|SVC-1602}}&amp;lt;/s&amp;gt; (is this done?) and mentioned on {{Jira|SVC-1633}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llGetEstateBanList}} - {{Jira|SVC-244}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llGetGender}} - {{Jira|SVC-1636}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llGetGroup}} - {{Jira|SVC-2928}} and {{Jira|SVC-606}} (duplicates?)&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llGetGroupTitle}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llGetInventoryDesc}} - {{Jira|SVC-377}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llGetLinkPrimitiveParams}} - {{Jira|SVC-224}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llGetMyAccountBalance}} &lt;br /&gt;
&lt;br /&gt;
{{LSLG|llGetNotecard}} (this search brings up a misfiled JIRA)&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llGetParcelBanList}} &lt;br /&gt;
&lt;br /&gt;
{{LSLG|llGetParcelPopulation}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llGetPowerThirst}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llGetPrice}} - {{Jira|SVC-1593}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;llGetScriptCreatorKey&amp;lt;/s&amp;gt; - use [[llGetInventoryCreator]]([[llGetScriptName]]()) instead&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llGetWorldPopulation}}&lt;br /&gt;
&lt;br /&gt;
==H==&lt;br /&gt;
{{LSLG|llHsv2Rgb}}&lt;br /&gt;
&lt;br /&gt;
==I==&lt;br /&gt;
{{LSLG|llInstantMessageGroup}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llInviteToGroup}} - {{Jira|VWR-273}} (marked &amp;quot;Resolved/Misfiled&amp;quot; as it should be a SVC request)&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llIsValidIntegerString}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llIsValidFloatString}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llIsValidVectorString}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llIsValidRotationString}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|ignored}} - {{Jira|SVC-3624}}&lt;br /&gt;
&lt;br /&gt;
==M==&lt;br /&gt;
{{LSLG|llMapTouch}}&lt;br /&gt;
&lt;br /&gt;
==N==&lt;br /&gt;
{{LSLG|llName2Key}} - {{Jira|SVC-215}}&lt;br /&gt;
&lt;br /&gt;
==O==&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llOnRegionReset}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llOverParcel}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|on_error}} [JIRA search inconclusive]&lt;br /&gt;
&lt;br /&gt;
==P==&lt;br /&gt;
{{LSLG|llParcelSay}} - {{Jira|SVC-1224}}&lt;br /&gt;
&lt;br /&gt;
==R==&lt;br /&gt;
:&#039;&#039;Note: the letters &#039;R&#039; and &#039;S&#039; still need to be checked for JIRA links as of 23:45, 15 March 2009 (UTC)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llRaiseError}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llRemoveFromEstateBanList}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llRequestClientData}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llReturnObject}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llReturnOwnersObjects}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llRgb2hsv}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llRotateAgent}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llRequestPermissions(llGetOwner(), PERMISSION_REFUND);}}&lt;br /&gt;
&lt;br /&gt;
==S==&lt;br /&gt;
{{LSLG|llSayTo}} - {{Jira|SVC-3983}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llSameGroupOfficer}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llSameGroupOwner}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llSetFaceText}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llSetInventoryDesc}} - {{Jira|SVC-3984}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llSetInventoryName}} - {{Jira|SVC-3984}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llSetLinkMotorParam}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llSetLinkText}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llSetCOG}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llSetNotecard}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llSetParcelDetails}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llSetParcelFlags}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llSetLinkPrimitiveParams(PRIM_TEXTURE_ANIM_%26_PRIM_TEXT)}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llSoundex}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llSpeakText}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llSpeech2Text}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llSpeech2TextRemove}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llStringUTF16ToUTF8}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llSayWithinRange}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llSetSunDirection}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llSetWaterMark}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llSetCloudLevel}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llSetTouch}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|stopwatch(float precision_time)}}&lt;br /&gt;
&lt;br /&gt;
==T==&lt;br /&gt;
{{LSLG|llTargetOffsetOmega}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llTeleportAgent}} - {{Jira|SVC-212}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llTriggerLandmark}} &lt;br /&gt;
&lt;br /&gt;
{{LSLG|llTrackTouches}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|llTreeSystem}}&lt;br /&gt;
&lt;br /&gt;
==W==&lt;br /&gt;
{{LSLG|llWriteToNotecard}}&lt;br /&gt;
&lt;br /&gt;
==Other functionality==&lt;br /&gt;
&lt;br /&gt;
{{LSLG|True tab-stops}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|Code Folding}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|Windowed Scripting}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|Switch Statement}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|Array}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|on_unrez|Event: Unrez / Delete}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|Conditionals}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|Preprocessing}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|State variables}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|Object Orientation aka OOP or OO}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|Various C++ aspects should be implemented in LSL, Classes, Switch Statements, pointers, etc.}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|Receive instant messages}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|money transfer denied for stale Event}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|Nestable lists}}&lt;br /&gt;
&lt;br /&gt;
{{LSLG|Nesting of Child Prims in a Parent}}&lt;br /&gt;
&lt;br /&gt;
* compound declarations, &amp;quot;integer i, j;&amp;quot; &lt;br /&gt;
&lt;br /&gt;
* Brackets for list index access, &amp;quot;l[5]=5;&amp;quot; &lt;br /&gt;
&lt;br /&gt;
* a (set of?) pragma(s) which offer(s~) synonyms for functions without the &amp;quot;ll&amp;quot; and their C, C#, and Javascript short common names, if any; &lt;br /&gt;
&lt;br /&gt;
* double precision floating point; &lt;br /&gt;
&lt;br /&gt;
* long integers; &lt;br /&gt;
&lt;br /&gt;
* dynamic typing;&lt;br /&gt;
&lt;br /&gt;
* Mephistopheles Thalheimer suggests also:&lt;br /&gt;
** function overloads and &lt;br /&gt;
** classes with method calls.&lt;br /&gt;
&lt;br /&gt;
* operator declarations;&lt;br /&gt;
&lt;br /&gt;
http://lslplus.sourceforge.net/ was just mentioned in Babbage&#039;s office hour -- can the m4 macro preprocessor accomplish some of these tasks, too?&lt;br /&gt;
&lt;br /&gt;
Also, [[Talk:Rotation#Useful_snippets|I&#039;ve offered L$5000 for enhancements to the rotation library]]. [[User:JS Uralia|JS Uralia]] 20:00, 12 March 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Aeron Kohime</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Preprocessing&amp;diff=347053</id>
		<title>Preprocessing</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Preprocessing&amp;diff=347053"/>
		<updated>2009-05-06T02:30:05Z</updated>

		<summary type="html">&lt;p&gt;Aeron Kohime: New page: I suggest the ability to add preprocessing to LSL, as this has no effect on LSL itself but can provide scripts which can do many different things, depending on.  This would include. #Basic...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I suggest the ability to add preprocessing to LSL, as this has no effect on LSL itself but can provide scripts which can do many different things, depending on.&lt;br /&gt;
&lt;br /&gt;
This would include.&lt;br /&gt;
#Basic Define keyword, can be used to define custom static variables. (these may need to be typed)&lt;br /&gt;
#IF, IFN, ELSE, ENDIF preprocessor branches&lt;br /&gt;
&lt;br /&gt;
As such a script such as this:&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
#define DEBUG   TRUE&lt;br /&gt;
&lt;br /&gt;
#if DEBUG&lt;br /&gt;
string mode = &amp;quot;DEBUG&amp;quot;;&lt;br /&gt;
#else&lt;br /&gt;
string mode = &amp;quot;NORMAL&amp;quot;;&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
#if DEBUG&lt;br /&gt;
    on_rez(integer s)&lt;br /&gt;
    {&lt;br /&gt;
        llResetScript()&lt;br /&gt;
    }&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llOwnerSay(mode);&lt;br /&gt;
#if DEBUG&lt;br /&gt;
        llOwnerSay(llGetDate();&lt;br /&gt;
    }&lt;br /&gt;
#else&lt;br /&gt;
    }&lt;br /&gt;
#endif&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Could produce two different scripts depending on the value of DEBUG, which would then get compiled/interpreted.&lt;br /&gt;
&lt;br /&gt;
With DEBUG set to TRUE.&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
#define DEBUG   TRUE&lt;br /&gt;
&lt;br /&gt;
string mode = &amp;quot;DEBUG&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    on_rez(integer s)&lt;br /&gt;
    {&lt;br /&gt;
        llResetScript()&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llOwnerSay(mode);&lt;br /&gt;
        llOwnerSay(llGetDate();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With DEBUG set to FALSE.&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
#define DEBUG   FALSE&lt;br /&gt;
&lt;br /&gt;
string mode = &amp;quot;NORMAL&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llOwnerSay(mode);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;/div&gt;</summary>
		<author><name>Aeron Kohime</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Phantom_Maker&amp;diff=210083</id>
		<title>Phantom Maker</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Phantom_Maker&amp;diff=210083"/>
		<updated>2009-01-26T01:40:47Z</updated>

		<summary type="html">&lt;p&gt;Aeron Kohime: Replace this warning with the real one, I don&amp;#039;t know what that is.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid black&amp;quot; cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;padding:.5em; background: #FF0000&amp;quot; |&#039;&#039;&#039;OBSOLETE:&#039;&#039;&#039;&lt;br /&gt;
|style=&amp;quot;padding:.5em; border-left: 1px solid black; background: #FFDD00&amp;quot;| This glitch has been fixed in Second Life, this Script no longer functions as intended.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While I ([[User:Xaviar_Czervik|Xaviar Czervik]]) was making a vehicle script, I discovered this glitch with [[llVolumeDetect]] that allows avatars to become phantom. This means, you can pass through all objects and avatars solid. It is a known bug, and I put it on the JIRA, {{Jira|SVC-2570}}, but Kate Linden has confirmed that people are allowed to use this without violating the CS or ToS.&lt;br /&gt;
&lt;br /&gt;
To make this effect, save this script in an object. Then, just sit on it. It will delete itself, so it may be better to take a copy first. After you stand back up, you will be able to pass through anything.&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
default {&lt;br /&gt;
    state_entry() {&lt;br /&gt;
        llSitTarget(&amp;lt;0,0,.1&amp;gt;, &amp;lt;0,0,0,0&amp;gt;);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    changed(integer i) {&lt;br /&gt;
        if (llGetOwner() != llAvatarOnSitTarget()) return;&lt;br /&gt;
        if (!(i &amp;amp; CHANGED_LINK)) return;&lt;br /&gt;
        llVolumeDetect(1);&lt;br /&gt;
        llDie();&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    on_rez(integer i) {&lt;br /&gt;
        llResetScript();&lt;br /&gt;
    }&lt;br /&gt;
        &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To remove the effect, do the same thing for the following script. Note the only difference is that there is a &amp;quot;llVolumeDetect(0);&amp;quot; after the first volume detect.&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
default {&lt;br /&gt;
    state_entry() {&lt;br /&gt;
        llSitTarget(&amp;lt;0,0,.1&amp;gt;, &amp;lt;0,0,0,0&amp;gt;);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    changed(integer i) {&lt;br /&gt;
        if (llGetOwner() != llAvatarOnSitTarget()) return;&lt;br /&gt;
        if (!(i &amp;amp; CHANGED_LINK)) return;&lt;br /&gt;
        llVolumeDetect(1);&lt;br /&gt;
        llVolumeDetect(0);&lt;br /&gt;
        llDie();&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    on_rez(integer i) {&lt;br /&gt;
        llResetScript();&lt;br /&gt;
    }&lt;br /&gt;
        &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;/div&gt;</summary>
		<author><name>Aeron Kohime</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Phantom_Child&amp;diff=88846</id>
		<title>Phantom Child</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Phantom_Child&amp;diff=88846"/>
		<updated>2008-08-29T20:20:41Z</updated>

		<summary type="html">&lt;p&gt;Aeron Kohime: /* Phantom Child */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header}}&lt;br /&gt;
=== Phantom Child ===&lt;br /&gt;
This easy to use code when put into a child prim of a linkset will make thay child and only that child phantom, even when taken into inventory and re-rezzed. You can use multiple copies of this script to make multiple children of a linkset phantom.&lt;br /&gt;
 &lt;br /&gt;
This code relies on a bug in Secondlife and may not function in later versions (currently server version 1.24). This script was created in part by [[User:Aeron Kohime|Aeron Kohime]] and documents this useful bug (which like invis-prims, has countless applications).&lt;br /&gt;
&lt;br /&gt;
You may use the follow script in any manner you like, excluding claiming you made it (unless your Strife Onizuka, in which case you made the hard part) and individually reselling it without change in function (its on the wiki silly). Otherwise you can sell it as part of a product, modify it, remove my comments, etc etc.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
//Phantom Child Script by Aeron Kohime&lt;br /&gt;
//WARNING: When used on the root prim it makes the entire object phantom, it&lt;br /&gt;
//         also does not function correctly on tortured prims. (Sorry.)&lt;br /&gt;
//GetPrimitiveParams function contributed by Strife Onizuka&lt;br /&gt;
list GetPrimitiveParams(list input)&lt;br /&gt;
{//Returns a list that can be fed to llSetPrimitiveParams&lt;br /&gt;
    list output;&lt;br /&gt;
    integer c = ~llGetListLength(input);&lt;br /&gt;
    while(0x80000000 &amp;amp; (c = - ~c))&lt;br /&gt;
    {&lt;br /&gt;
        list flag = (list)llList2Integer(input, c);&lt;br /&gt;
        if(~llListFindList([PRIM_BUMP_SHINY, PRIM_COLOR, PRIM_TEXTURE, PRIM_FULLBRIGHT, PRIM_TEXGEN, PRIM_GLOW], flag ))&lt;br /&gt;
        {&lt;br /&gt;
            integer side = llList2Integer(input, (c = - ~c));&lt;br /&gt;
            if(~side)//pop the stack&lt;br /&gt;
                output += flag + side + llGetPrimitiveParams( flag + side );&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                side = llGetNumberOfSides();&lt;br /&gt;
                do //we return the sides in reverse order, easier to code; runs faster.&lt;br /&gt;
                    output += flag + side + llGetPrimitiveParams( flag + (side = ~ -side) );&lt;br /&gt;
                while(side);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
            output += flag + llGetPrimitiveParams( flag );&lt;br /&gt;
    }&lt;br /&gt;
    return output;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
default {&lt;br /&gt;
    state_entry() {&lt;br /&gt;
        list prim = GetPrimitiveParams([PRIM_TYPE]);&lt;br /&gt;
        llSetPrimitiveParams([PRIM_TYPE, PRIM_TYPE_BOX,&lt;br /&gt;
            0, &amp;lt;0,1,0&amp;gt;, 0, &amp;lt;0,0,0&amp;gt;, &amp;lt;1,1,0&amp;gt;, &amp;lt;0,0,0&amp;gt;,&lt;br /&gt;
            PRIM_FLEXIBLE, TRUE, 0, 0, 0, 0, 0, &amp;lt;0,0,0&amp;gt;] + prim);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    on_rez(integer s) {&lt;br /&gt;
        llResetScript();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{LSLC|Library}}&lt;br /&gt;
{{LSLC|Examples}}&lt;/div&gt;</summary>
		<author><name>Aeron Kohime</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Aeron_Kohime&amp;diff=88845</id>
		<title>User:Aeron Kohime</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Aeron_Kohime&amp;diff=88845"/>
		<updated>2008-08-29T20:19:26Z</updated>

		<summary type="html">&lt;p&gt;Aeron Kohime: adding page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi there, welcome to my page. I am Aeron Kohime.&lt;br /&gt;
&lt;br /&gt;
I am studying in the amazing field of Artificial Intelligence! I have past experience in Artificial Nueral Networks, as well as Statistical, Heuristic, and Log based data Analysis and data mining. I have knowledge of advanced trignometry and some basic calculus (strange huh). In secondlife I am generally a decent if underestimated scripter, due to that most my experience is in things that are hard to transistion to secondlife without crashing the grid.. er I mean the sim. :3&lt;br /&gt;
&lt;br /&gt;
I am also an expiring artist, my art is.. bad, but I am trying to get better in any way I can.&lt;br /&gt;
&lt;br /&gt;
I work hard as I can but it normally goes poorly, if you want my help all you have to do is ask and i&#039;ll try my absolute best to help you out.. as long as it isn&#039;t financially (I am poor T_T).&lt;br /&gt;
&lt;br /&gt;
In short I want to do everything but I know I can&#039;t, so I try to do as much as I can.&lt;br /&gt;
&lt;br /&gt;
--------&lt;br /&gt;
In secondlife I have recently joined the military combat groups, I am apparently doing well as scripter there I find it very stimulating and I am learning new tricks very quickly!&lt;/div&gt;</summary>
		<author><name>Aeron Kohime</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Category:LSL_Library&amp;diff=88838</id>
		<title>Category:LSL Library</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Category:LSL_Library&amp;diff=88838"/>
		<updated>2008-08-29T20:07:22Z</updated>

		<summary type="html">&lt;p&gt;Aeron Kohime: adding Phantom Child to the table&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Multi-lang}}{{LSL Header}}{{RightToc}}&lt;br /&gt;
==Script Library==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em 0.5em 1.5em&amp;quot;&amp;gt;&lt;br /&gt;
Come to this page to see complex examples that show how to combine parts of LSL.&lt;br /&gt;
&lt;br /&gt;
Go to the [[:Category:LSL Examples|LSL Examples]] page to see brief examples of how to use parts of LSL &lt;br /&gt;
&lt;br /&gt;
Why collect complex examples here? Well, ...&lt;br /&gt;
&lt;br /&gt;
There are many [[script|scripts]] that have become buried in the [http://forums.secondlife.com/forumdisplay.php?f=15 Scripting Library forum], were lost with the death of the scripting forums, or sit idle in [[inventory|inventories]] that could be useful and should be more accessible.&lt;br /&gt;
&lt;br /&gt;
Other scripters may be in the same situation. This wiki is a well-suited medium for a script library. Feel free to add your scripts to the script library by creating new pages for them and linking to those pages here.&lt;br /&gt;
&lt;br /&gt;
Note that there are many more scripts in the LSL Library here, but you can&#039;t get to them if you don&#039;t know they exist, because they are subpages now, instead of an automatically updated category.  Good luck searching.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rules for posting: ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
#Your script must be tested and working. If it&#039;s not, stick it in your user-space until it is. This is a list of working, usable scripts.&lt;br /&gt;
#Add a link to your script&#039;s page here. Link back to this page from your script&#039;s page. Start your page with &amp;lt;nowiki&amp;gt;{{LSL Header}}&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
#Do not add scripts that duplicate the same functionality as an existing script or built in {{LSLGC|Functions|function}}. If yours does, explain why.&lt;br /&gt;
#Do not list simple scripts here. Include those among the [[:Category:LSL Examples|LSL Examples]] instead.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
==LSL Script Library==&lt;br /&gt;
&lt;br /&gt;
{| {{Prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
|{{Hl2}}| &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|{{Hl2}}| &#039;&#039;&#039;Creator&#039;&#039;&#039;&lt;br /&gt;
|{{Hl2}}| &#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
||[[3D Radar]]&lt;br /&gt;
||[[User:Jesse Barnett|Jesse Barnett]]&lt;br /&gt;
||Rezzes a ball for each avatar in range. Each ball tracks its own AV and displays distance.&lt;br /&gt;
|-&lt;br /&gt;
||[[AdvancedNotecardReader]]&lt;br /&gt;
||[[Lear Cale|Lear Cale]]&lt;br /&gt;
||Robust configuration notecard reader; supports multiple notecards with same suffix, handles reconfig on inventory change, and does not usurp the default state.&lt;br /&gt;
|-&lt;br /&gt;
||[[AntiDelay Node]]&lt;br /&gt;
||[[User:Xaviar Czervik|Xaviar Czervik]]&lt;br /&gt;
||Uses llMessageLinked to stop those pesky delays.&lt;br /&gt;
|-&lt;br /&gt;
||[[AO Overriding Pose Ball]]&lt;br /&gt;
||[[User:Jesse Barnett|Jesse Barnett]]&lt;br /&gt;
||No more turning your AO off and on when you sit down&lt;br /&gt;
|-&lt;br /&gt;
||[[ARCFOUR Strong Encryption Implementation]]&lt;br /&gt;
||[[User:Nekow42 Zarf|Nekow42 Zarf]]&lt;br /&gt;
||An LSL implementation of ARCFOUR, the most popular stream cipher still in use. It is licensed under a Creative Commons Attribution 3.0 license.&lt;br /&gt;
|-&lt;br /&gt;
||[[Assembly Programming Language|Assembly-Like Programming Language]]&lt;br /&gt;
||[[User:Xaviar Czervik|Xaviar Czervik]]&lt;br /&gt;
||A compiler that runs assembly-like programs.&lt;br /&gt;
|-&lt;br /&gt;
||[[Basic Encryption Modules]]&lt;br /&gt;
||[[User:Beverly Larkin|Beverly Larkin]]&lt;br /&gt;
||Basic encryption scripts, allows you to encrypt a float and shout it to another prim on a randomly chosen channel.&lt;br /&gt;
|-&lt;br /&gt;
||[[Binary Clock v1.1|Binary Clock]]&lt;br /&gt;
||[[User:Fox Diller|Fox Diller]]&lt;br /&gt;
||A Binary Clock.&lt;br /&gt;
|-&lt;br /&gt;
||[[Blog Feed]]&lt;br /&gt;
||[[User:Kageshen Kirax|Kageshen Kirax]]&lt;br /&gt;
||Displays the latest blog.&lt;br /&gt;
|-&lt;br /&gt;
||[[Builders Buddy|Builder&#039;s Buddy Tool]]&lt;br /&gt;
||[[User:Newfie Pendragon|Newfie Pendragon]]&lt;br /&gt;
||Script to easily move/rotate large builds that exceed the linkable size limit (30 meters).&lt;br /&gt;
|-&lt;br /&gt;
||[[Camera Sync]]&lt;br /&gt;
||[[User:Meyermagic Salome|Meyermagic Salome]] and [[User:Nomad Padar|Nomad Padar]]&lt;br /&gt;
||A system to synchronize the cameras of two avatars.&lt;br /&gt;
|-&lt;br /&gt;
||[[Chatbot]]&lt;br /&gt;
||Anonymous&lt;br /&gt;
||Compile and run the LSL you type on a channel, faster than you can thru the 2007-08 SL GUI.&lt;br /&gt;
|-&lt;br /&gt;
||[[Chat Logger (GPL)]]&lt;br /&gt;
||[[User:Nobody Fugazi|Nobody Fugazi]]&lt;br /&gt;
||Chat logger which requests permission from participants before recording them.&lt;br /&gt;
|-&lt;br /&gt;
||[[Chat_Relay|Chat Relay]]&lt;br /&gt;
||[[User:grumble Loudon|grumble Loudon]]&lt;br /&gt;
||A Chat relay which can be routed using a path header and won&#039;t echo.&lt;br /&gt;
|-&lt;br /&gt;
||[[Code Racer]]&lt;br /&gt;
||Anonymous&lt;br /&gt;
||Race two versions of code forever, to see which runs faster.&lt;br /&gt;
|-&lt;br /&gt;
||[[Code Sizer]]&lt;br /&gt;
||Anonymous&lt;br /&gt;
||Count the bytes compiled from source code, to measure how to write small code.&lt;br /&gt;
|-&lt;br /&gt;
||[[Color conversion scripts|Color Conversion]]&lt;br /&gt;
||[[User:Sally LaSalle|Sally LaSalle]]&lt;br /&gt;
||Convert between Red Green Blue (RGB) and Hue Saturation Value (HSV).&lt;br /&gt;
|-&lt;br /&gt;
||[[Library Combined Library|Combined Library]]&lt;br /&gt;
||[[User:Strife Onizuka|Strife Onizuka]]&lt;br /&gt;
||Library of mostly encoding and decoding functions, some more useful then others.&lt;br /&gt;
* String functions: Replace / Trim right / Trim left / Trim both&lt;br /&gt;
* Unicode conversion: UTF8 to Unicode / Unicode to UTF8&lt;br /&gt;
* List functions: Replace / Compare&lt;br /&gt;
|-&lt;br /&gt;
||[[Computer:jaycoonlanguage]]&lt;br /&gt;
||[[User:jayco121 Bing|jayco121 Bing]]&lt;br /&gt;
|| A language written in LSL that is meant for my computer (available at the shop).&lt;br /&gt;
|-&lt;br /&gt;
||[[Library_Chat_Relay|Conversation Relay]]&lt;br /&gt;
||[[User:Jippen Faddoul|Jippen Faddoul]]&lt;br /&gt;
||Chat relay which requests permission from participants before relaying their messages. Also includes their attachments. (ToS compliant).&lt;br /&gt;
|-&lt;br /&gt;
||[[Curtain script]]&lt;br /&gt;
||[[User:Zilla Larsson|Zilla Larsson]]&lt;br /&gt;
||A simple script to retract/stretch curtains, blinds, bedcovers and more&lt;br /&gt;
|-&lt;br /&gt;
||[[Dataserver API]]&lt;br /&gt;
||[[User:Revolution Perenti|Revolution Perenti]]&lt;br /&gt;
||Dataserver Framework for Notecards.&lt;br /&gt;
|-&lt;br /&gt;
||[[Date Library]]&lt;br /&gt;
||[[User:Corto Maltese|Corto Maltese]]&lt;br /&gt;
|| Date library, based on number of day since march 3rd 1600, can be used to calculate weekday, date differences, and date offset, and date formating.&lt;br /&gt;
|-&lt;br /&gt;
||[[Day of the Week]]&lt;br /&gt;
||[[User:DoteDote Edison|DoteDote Edison]]&lt;br /&gt;
||Function to get day of the week from [[llGetUnixTime]].&lt;br /&gt;
|-&lt;br /&gt;
||[[Deed Tools]]&lt;br /&gt;
||[[User:Falados Kapuskas|Falados Kapuskas]]&lt;br /&gt;
||Tools that allow the creator to modify Group-Owned (Deeded) Objects via chat.&lt;br /&gt;
|-&lt;br /&gt;
||[[Describe Chatter]]&lt;br /&gt;
||Anonymous&lt;br /&gt;
||Chat to see yourself as others do.&lt;br /&gt;
|-&lt;br /&gt;
||[[Dialog Control]]&lt;br /&gt;
||[[User:Nargus Asturias|Nargus Asturias]]&lt;br /&gt;
|| A (not-so) simple dialog control script. Call dialog and receive selected value via link_message(), with built-in timer and link_message() notification on time out. Supports multi-pages dialog and numeric property dialog. Button text and dialog&#039;s returned value can differ.&lt;br /&gt;
|-&lt;br /&gt;
||[[Dialog Menus Control]]&lt;br /&gt;
||[[User:Nargus Asturias|Nargus Asturias]]&lt;br /&gt;
|| An extension to Nargus Dialog Control. This menus control allow multi-level menus through SL dialog system. It can also recall last used menus. Menus are saved and pre-formatted for faster access. Though it is not the fastest, nor most memory efficient, but it should make it easier to use.&lt;br /&gt;
|-&lt;br /&gt;
||[[Dialog NumberPad|Dialog Number Pad]]&lt;br /&gt;
||[[User:DoteDote Edison|DoteDote Edison]]&lt;br /&gt;
||Use a dialog to accept positive integer input from users.&lt;br /&gt;
|-&lt;br /&gt;
||[[Efficiency Tester]]&lt;br /&gt;
||[[User:Xaviar Czervik|Xaviar Czervik]]&lt;br /&gt;
||Tests the speed of a function.&lt;br /&gt;
|-&lt;br /&gt;
||[[Email-to-IM|Email2IM]]&lt;br /&gt;
||[[User:DoteDote Edison|DoteDote Edison]]&lt;br /&gt;
||Send IMs to SL friends via email (translate emails from friends into IMs).&lt;br /&gt;
|-&lt;br /&gt;
||[[Fix Small Prims|Fix_Small_Prims]]&lt;br /&gt;
||[[User:Emma Nowhere|Emma Nowhere]]&lt;br /&gt;
||Finds and adjusts the smallest prims in a linkset so that it can be scaled down further.&lt;br /&gt;
|-&lt;br /&gt;
||[[Float2Hex]]&lt;br /&gt;
||[[User:Strife Onizuka|Strife Onizuka]]&lt;br /&gt;
||Very useful for transporting [[float|floats]].&lt;br /&gt;
|-&lt;br /&gt;
||[[Follower (script)|Follower]]&lt;br /&gt;
||Unknown, uploaded by [[User:Slik Swindlehurst|Slik Swindlehurst]]&lt;br /&gt;
||Makes an object follow the nearest person. Do not use for [[grief|griefing]].&lt;br /&gt;
|-&lt;br /&gt;
||[[Geometric|Geometric Library]]&lt;br /&gt;
||Community Project&lt;br /&gt;
||A substantial amount of various geometric functions for intersection and other purposes of 3D maths.&lt;br /&gt;
|-&lt;br /&gt;
||[[GetTimestampOffset]]&lt;br /&gt;
||[[User:Siann_Beck|Siann Beck]]&lt;br /&gt;
||Returns llGetTimestamp() with an hour offset.&lt;br /&gt;
|-&lt;br /&gt;
||[[Give InvItem every n hours]]&lt;br /&gt;
||[[User:Criz Collins|Criz Collins]]&lt;br /&gt;
||Will give an inventory item on touch only every n hours, even if somebody touches the object more than once. &lt;br /&gt;
|-&lt;br /&gt;
||[[Google Charts]]&lt;br /&gt;
||[[User:Dedric Mauriac|Dedric Mauriac]]&lt;br /&gt;
||Create links to display raw data as a chart image.&lt;br /&gt;
|-&lt;br /&gt;
||[[Group Privacy]]&lt;br /&gt;
||[[User:Chance Unknown|Chance Unknown]]&lt;br /&gt;
||Security device to insure members of a group can have a private area. Deactivates when nobody present.&lt;br /&gt;
|-&lt;br /&gt;
||[[Hello Avatar]]&lt;br /&gt;
||Linden Lab&lt;br /&gt;
||SL&#039;s default script.&lt;br /&gt;
|-&lt;br /&gt;
||[[High Altitude Rezzer|High Altitude Rezzer]]&lt;br /&gt;
||[[User:Jesse Barnett|Jesse Barnett]]&lt;br /&gt;
||Vehicle that goes straight up and then rezzes objects up to 4,096 meters.&lt;br /&gt;
|-&lt;br /&gt;
||[[Holodeck]]&lt;br /&gt;
||[[User:Revolution Perenti|Revolution Perenti]]&lt;br /&gt;
||Home Rezzing System (Open Source).&lt;br /&gt;
|-&lt;br /&gt;
||[[Intra-Region Update Server]]&lt;br /&gt;
||[[User:Emma_Nowhere|Emma Nowhere]]&lt;br /&gt;
||Centrally update objects such as Freeview screens or teleport pads within a region that are configured by notecards or contain modifiable objects or media assets.&lt;br /&gt;
|-&lt;br /&gt;
||[[Interpolation|Interpolation Library]]&lt;br /&gt;
||[[User:Nexii_Malthus|Nexii Malthus]]&lt;br /&gt;
||A small set of interpolation functions.&lt;br /&gt;
|-&lt;br /&gt;
||[[Inventory Menu]]&lt;br /&gt;
||[[User:Revolution Perenti|Revolution Perenti]]&lt;br /&gt;
||Inventory Based Menu System.&lt;br /&gt;
|-&lt;br /&gt;
||[[iTunes RPC Email|iTunes RPC]]&lt;br /&gt;
||[[User:Fox Diller|Fox Diller]]&lt;br /&gt;
||iTunes RPC via LSL [[llEmail]] and [[llRemoteDataReply]].&lt;br /&gt;
|-&lt;br /&gt;
||[[Key Pad Door|Keypad Door]]&lt;br /&gt;
||[[User:Tdub Dowler|Tdub Dowler]]&lt;br /&gt;
|| Door and keypad with changeable code. Follow instructions carefully!&lt;br /&gt;
|-&lt;br /&gt;
||[[LSL_languageAPI]]&lt;br /&gt;
||[[User:Gypsy paz|Gypsy Paz]]&lt;br /&gt;
||Multi-lingual API from notecard based language files&lt;br /&gt;
|-&lt;br /&gt;
||[[Last Sound System]]&lt;br /&gt;
||[[User:Babbage Linden|Babbage Linden]]&lt;br /&gt;
||An LSL Last.fm client.&lt;br /&gt;
|-&lt;br /&gt;
||[[Mandelbrot Explorer]]&lt;br /&gt;
||[[User:Babbage Linden|Babbage Linden]]&lt;br /&gt;
||An interactive fractal explorer.&lt;br /&gt;
|-&lt;br /&gt;
||[[Merge Sort]]&lt;br /&gt;
||[[User:Xaviar Czervik|Xaviar Czervik]]&lt;br /&gt;
||Implements a Merge Sort in LSL, however this code is 300(ish) times slower than [[llListSort]]. Don&#039;t use this in a script!&lt;br /&gt;
|-&lt;br /&gt;
||[[Minesweeper]]&lt;br /&gt;
||[[User:Xaviar Czervik|Xaviar Czervik]]&lt;br /&gt;
||A simple minesweeper game.&lt;br /&gt;
|-&lt;br /&gt;
||[[Multirezzer|Multirezzer (on collision)]]&lt;br /&gt;
||[[User:Beet Streeter|Beet Streeter]]&lt;br /&gt;
||Spawns up to 10 objects when the object containing the script collides with a user.&lt;br /&gt;
|-&lt;br /&gt;
||[[Name2Key in LSL]]&lt;br /&gt;
||[[User:Maeva Anatine|Maeva Anatine]]&lt;br /&gt;
||Get the Name2Key feature inside your scripts. Works even on lastly subscribed avatars.&lt;br /&gt;
|-&lt;br /&gt;
||[[Object to Data v1.2|Object to Data]]&lt;br /&gt;
||[[User:Xaviar Czervik|Xaviar Czervik]]&lt;br /&gt;
||Turns an object into text (and back). Allows people to transfer objects through notecards.&lt;br /&gt;
|-&lt;br /&gt;
||[[Open Group Join]]&lt;br /&gt;
||[[User:Alicia Stella|Alicia Stella]]&lt;br /&gt;
||User Touches Object to Join Group from Group Info window, (no bot.)&lt;br /&gt;
|-&lt;br /&gt;
||[[ParseString2List]]&lt;br /&gt;
||[[User:Strife Onizuka|Strife Onizuka]]&lt;br /&gt;
||Same as [[llParseString2List]] and [[llParseStringKeepNulls]], but not limited to 8 spacers or separators. Thus substitute a call to the [[llParseString2List]] and [[llParseStringKeepNulls]] functions by a call to [[Parse_String_To_List|ParseString2List]] whenever you have more than 8 separators or more than 8 spacers.&lt;br /&gt;
|-&lt;br /&gt;
||[[Pathfinder]]&lt;br /&gt;
||[[User:Babbage Linden|Babbage Linden]]&lt;br /&gt;
||A potential field based pathfinding library.&lt;br /&gt;
|-&lt;br /&gt;
||[[Phantom Child]]&lt;br /&gt;
||[[User:Aeron Kohime|Aeron Kohime]]&lt;br /&gt;
||Causes a child in a link set to become phantom without the entire object becoming phantom.&lt;br /&gt;
|-&lt;br /&gt;
||[[Phantom Maker]]&lt;br /&gt;
||[[User:Xaviar_Czervik|Xaviar Czervik]]&lt;br /&gt;
||An object that turns avatars into phantoms, without having to remain sitting.&lt;br /&gt;
|-&lt;br /&gt;
||[[Prefix Calculator]]&lt;br /&gt;
||[[User:Xaviar Czervik|Xaviar Czervik]]&lt;br /&gt;
|| A calculator that evaluates expressions in prefix notation. &lt;br /&gt;
&amp;lt;code&amp;gt;+ 3 4 = 5. * + 1 2 + 3 4 = 14.&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
||[[Pseudo-random Number Generator]]&lt;br /&gt;
||[[User:Xaviar Czervik|Xaviar Czervik]]&lt;br /&gt;
||Generates a Pseudo-random number between -0x7FFFFFFF and 0x7FFFFFFF&lt;br /&gt;
|-&lt;br /&gt;
||[[Random AV Profile Projector]]&lt;br /&gt;
||[[User:Debbie Trilling|Debbie Trilling]]&lt;br /&gt;
||Randomly selects an AV from a crowd &amp;amp; then projects their profile picture as a &#039;holographic&#039; image &lt;br /&gt;
|-&lt;br /&gt;
||[[Say Region Frames Per Second|Region Frames Per Second]]&lt;br /&gt;
||[[User:Heymeriou Mystakidou|Heymariou Mystakidou]]&lt;br /&gt;
|| Says the region name and frames per second out loud on command.&lt;br /&gt;
|-&lt;br /&gt;
||[[sbDialog]]&lt;br /&gt;
||[[User:Siann_Beck|Siann Beck]]&lt;br /&gt;
||A simple replacement function for [[llDialog]]. It re-orders the button list so that the button values, as passed to it, display left-to-right, top-to-bottom. It also opens a [[llListen|listen]] on the specified channel, and returns the handle.&lt;br /&gt;
|-&lt;br /&gt;
||[[Scheduler]]&lt;br /&gt;
||[[User:Haravikk Mistral|Haravikk Mistral]]&lt;br /&gt;
||Schedule multiple events using a single script timer&lt;br /&gt;
|-&lt;br /&gt;
||[[Script Override Functions]]&lt;br /&gt;
||[[User:Revolution Perenti|Revolution Perenti]]&lt;br /&gt;
||bypass default strings, integer etc in chat channel.&lt;br /&gt;
|-&lt;br /&gt;
||[[Self Upgrading Script Enhanced]]&lt;br /&gt;
||[[User:Cron Stardust|Cron Stardust]]&lt;br /&gt;
||Keeps only latest version of the script on prim (even with multiple adds of the same script!)&lt;br /&gt;
|-&lt;br /&gt;
||[[SHA1|SHA1 Hash]]&lt;br /&gt;
||[[User:Xaviar Czervik|Xaviar Czervik]]&lt;br /&gt;
||Preforms a SHA1 Hash on an input text. Similar to MD5 only (slightly) more secure.&lt;br /&gt;
|-&lt;br /&gt;
||[[SLateIt]]&lt;br /&gt;
||[[User:Babbage Linden|Babbage Linden]]&lt;br /&gt;
||An augmented virtual reality HUD.&lt;br /&gt;
|-&lt;br /&gt;
||[[SLetanque]]&lt;br /&gt;
||[[User:Babbage Linden|Babbage Linden]]&lt;br /&gt;
||An LSL petanque game.&lt;br /&gt;
|-&lt;br /&gt;
||[[SL Mail V1.2]]&lt;br /&gt;
||[[User:Flennan Roffo|Flennan Roffo]]&lt;br /&gt;
||Second Life mail client V1.2 (released sept&#039;07). Send and receive mail from within Second Life from and to any address. With Address Book function and many chat commands. V1.3 is upcoming soon! &lt;br /&gt;
|-&lt;br /&gt;
||[[SL_NTPoHTTP_v1.1_client|SL NTPoHTTP client]]&lt;br /&gt;
|[[User:SignpostMarv Martin|SignpostMarv Martin]]&lt;br /&gt;
||Second Life Needs Time Parsing over Hyper Text Transfer Protocol&lt;br /&gt;
Emulates the function of [[llGetWallclock]] for any timezone by using SLOpenID&#039;s SLNTPoHTTP service. Also supports ISO 8601 and RFC 2822 timestamps. Script is dependent upon an external service operated by the author!&lt;br /&gt;
|-&lt;br /&gt;
||[[Spiral Staircase Generator]]&lt;br /&gt;
|[[User:Meyermagic Salome|Meyermagic Salome]]&lt;br /&gt;
||Generates nice looking spiral staircases without much hassle.&lt;br /&gt;
|-&lt;br /&gt;
||[[String Compare]]&lt;br /&gt;
||[[User:Xaviar Czervik|Xaviar Czervik]]&lt;br /&gt;
||Compares two strings and reliably returns either 1, -1, or 0 if they are the same.&lt;br /&gt;
|-&lt;br /&gt;
||[[Teleport HUD]]&lt;br /&gt;
||[[User:Jesse Barnett|Jesse Barnett]]&lt;br /&gt;
||WORKS TO 4096 METERS!! Very user friendly teleport HUD. Add destinations by touching &amp;quot;Add&amp;quot; &amp;amp; naming destination in chat. Automatically gets sim name and coordinates. Will only display the destinations in the sim you are currently in. Demonstrates more advanced list manipulation and stride functions.&lt;br /&gt;
|-&lt;br /&gt;
||[[Texture Menu Management|Texture Management]]&lt;br /&gt;
||[[User:Revolution Perenti|Revolution Perenti]]&lt;br /&gt;
||Dialog Menu based Texture Selection.&lt;br /&gt;
|-&lt;br /&gt;
||[[Tic Tac Toe]]&lt;br /&gt;
||[[User:CG Linden|CG Linden]]&lt;br /&gt;
||Step by step demo on how to implement a larger scripting project&lt;br /&gt;
|-&lt;br /&gt;
||[[TightList]]&lt;br /&gt;
||[[User:Strife Onizuka|Revolution Perenti]]&lt;br /&gt;
||Tight List is a family of functions for encoding lists as strings and then decoding them back into lists. &lt;br /&gt;
&lt;br /&gt;
There are two flavors: TightList and TightListType. TightListType preserves types and uses a 6 char header, while TightList uses a 1 char header that doesn&#039;t preserve type. &lt;br /&gt;
|-&lt;br /&gt;
||[[Timer Module]]&lt;br /&gt;
||[[User:Isabelle Aquitaine|Isabelle Aquitaine]]&lt;br /&gt;
||Manage multiple timers via linked messages.&lt;br /&gt;
|-&lt;br /&gt;
||[[Unix2DateTime]]&lt;br /&gt;
|[[User:Flennan Roffo|Flennan Roffo]]&lt;br /&gt;
||Conversion from Unix time (llGetUnixTime()) to date and time string and vice versa.&lt;br /&gt;
|-&lt;br /&gt;
||[[Under Age Boot]]&lt;br /&gt;
|[[User:Chance Unknown|Chance Unknown]]&lt;br /&gt;
||Security device example to teleport home accounts below a minimum age limit; can be useful in combating free griefer accounts.&lt;br /&gt;
|-&lt;br /&gt;
||[[Unmutable Descript Nagger]]&lt;br /&gt;
|[[User:Bobbyb30 Zohari|Bobbyb30 Zohari]]&lt;br /&gt;
||To nag avatars to take off their scripted attatchments.&lt;br /&gt;
|-&lt;br /&gt;
||[[Visitor Logger (Web/Basic) ]]&lt;br /&gt;
|[[User:Buddy Sprocket|Buddy Sprocket]]&lt;br /&gt;
||A very basic visitor logger - log visitors in SL to a text file on your web-site.&lt;br /&gt;
|-&lt;br /&gt;
||[[Vote Simple]]&lt;br /&gt;
|[[User:JB_Kraft|JB Kraft]]&lt;br /&gt;
||Simple vote collector. One avi, one vote.&lt;br /&gt;
|-&lt;br /&gt;
||[[WarpPos]]&lt;br /&gt;
|[[User:Keknehv Psaltery|Keknehv Psaltery]]&lt;br /&gt;
||Non-physical movement without the 10m limit.&lt;br /&gt;
|-&lt;br /&gt;
||[[XTEA Strong Encryption Implementation]]&lt;br /&gt;
||[[User:Morse Dillon|Morse Dillon]]&lt;br /&gt;
||An LSL implementation of XTEA (eXtended Tiny Encryption Algorithm).  This is the first known public release of a &#039;real&#039; strong encryption implementation in LSL and is released under the GNU General Public License (GPL).&lt;br /&gt;
|-&lt;br /&gt;
||[[XyText 1.5|XyText]]&lt;br /&gt;
||[[User:Xylor Baysklef|Xylor Baysklef]]&lt;br /&gt;
|| Display text (up to 10 characters) on a prim. Use as many prims as desired.&lt;br /&gt;
|-&lt;br /&gt;
||[[XyyyyzText|XyyyyzText]]&lt;br /&gt;
||[[User:Criz Collins|Criz Collins]]&lt;br /&gt;
|| Display text (up to 10 characters) on a prim. Displays different text for each line instead of one single text, that will be broken into the next lines. Watch here for what that means: http://screencast.com/t/1wMLujLcEO&lt;br /&gt;
|-&lt;br /&gt;
||[[XyzzyText|XyzzyText]]&lt;br /&gt;
||[[User:Thraxis Epsilon|Thraxis Epsilon]] and [[User:Gigs Taggart|Gigs Taggart]]&lt;br /&gt;
|| Display text (up to 10 characters) on a prim. Way more efficient than XyText.&lt;br /&gt;
|-&lt;br /&gt;
||[[Zero Lag Poseball]]&lt;br /&gt;
||[[User:Jippen Faddoul|Jippen Faddoul]]&lt;br /&gt;
||A simple poseball with no lag&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Support Script Library==&lt;br /&gt;
These are scripts in other languages, intended to be run on other systems that support scripts written in LSL&lt;br /&gt;
&lt;br /&gt;
{| {{Prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
|{{Hl2}}| &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|{{Hl2}}| &#039;&#039;&#039;Creator&#039;&#039;&#039;&lt;br /&gt;
|{{Hl2}}| &#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
||[[HTTP Post request to a PHP server]]&lt;br /&gt;
||[[User:Corto Maltese|Corto Maltese]]&lt;br /&gt;
|| This small library allows you to make simple POST requests to your website. The libraries allow you to get your request through the variable $_POST on the server. It also include a basic security mechanism aimed to stop hacking. Comprises of LSL client script and PHP server script.&lt;br /&gt;
|-&lt;br /&gt;
|| Silo&lt;br /&gt;
|| [[User:Zero_Linden|Zero Linden]]&lt;br /&gt;
|| General purpose data store in PHP.  Use this to persist arbitrary data from LSL via [[llHTTPRequest]].  See:&lt;br /&gt;
* [http://www.notabene-sl.com/misc/silo-README.txt README] file&lt;br /&gt;
* [http://www.notabene-sl.com/misc/silo.tgz silo.tgz] tarball&lt;br /&gt;
* forum post [http://forums.secondlife.com/showthread.php?t=119570 Announcement].&lt;br /&gt;
|-&lt;br /&gt;
|| [[User:SignpostMarv Martin/PHP/llXorBase64StringsCorrect|llXorBase64StringsCorrect]]&lt;br /&gt;
|| [[User:SignpostMarv Martin|SignpostMarv Martin]]&lt;br /&gt;
|| An implementation of [[llXorBase64StringsCorrect]] in PHP- should be useful if you&#039;re using llXorBase64StringsCorrect to do cryptography work in LSL2 and posting it out to the web via [[llHTTPRequest]].&lt;br /&gt;
|-&lt;br /&gt;
|| [[User:SignpostMarv Martin/PHP/lsl fu.php|lsl_fu.php]]&lt;br /&gt;
|| [[User:SignpostMarv Martin|SignpostMarv Martin]]&lt;br /&gt;
|| A basic OOP&#039;d PHP Class containing VeloxSeverine&#039;s $_POST fixer and Marv&#039;s own eccentric ideas for &amp;quot;fixing&amp;quot; things.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Articles&#039;&#039;&#039;&lt;br /&gt;
*[[:Category:LSL Examples| Examples]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Aeron Kohime</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Phantom_Child&amp;diff=88837</id>
		<title>Phantom Child</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Phantom_Child&amp;diff=88837"/>
		<updated>2008-08-29T20:05:30Z</updated>

		<summary type="html">&lt;p&gt;Aeron Kohime: Adding a new library script&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header}}&lt;br /&gt;
=== Phantom Child ===&lt;br /&gt;
This easy to use code when put into a child prim of a linkset will make it phantom, even when taken into inventory and re-rezzed.&lt;br /&gt;
This code relies on a bug in Secondlife and may not function in later versions (currently server version 1.24). This script was created in part by [[User:Aeron Kohime|Aeron Kohime]] and documents this useful bug (which like invis-prims, has countless applications).&lt;br /&gt;
&lt;br /&gt;
You may use the follow script in any manner you like, excluding claiming you made it (unless your Strife Onizuka, in which case you made the hard part) and individually reselling it without change in function (its on the wiki silly). Otherwise you can sell it as part of a product, modify it, remove my comments, etc etc.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
//Phantom Child Script by Aeron Kohime&lt;br /&gt;
//WARNING: When used on the root prim it makes the entire object phantom, it&lt;br /&gt;
//         also does not function correctly on tortured prims. (Sorry.)&lt;br /&gt;
//GetPrimitiveParams function contributed by Strife Onizuka&lt;br /&gt;
list GetPrimitiveParams(list input)&lt;br /&gt;
{//Returns a list that can be fed to llSetPrimitiveParams&lt;br /&gt;
    list output;&lt;br /&gt;
    integer c = ~llGetListLength(input);&lt;br /&gt;
    while(0x80000000 &amp;amp; (c = - ~c))&lt;br /&gt;
    {&lt;br /&gt;
        list flag = (list)llList2Integer(input, c);&lt;br /&gt;
        if(~llListFindList([PRIM_BUMP_SHINY, PRIM_COLOR, PRIM_TEXTURE, PRIM_FULLBRIGHT, PRIM_TEXGEN, PRIM_GLOW], flag ))&lt;br /&gt;
        {&lt;br /&gt;
            integer side = llList2Integer(input, (c = - ~c));&lt;br /&gt;
            if(~side)//pop the stack&lt;br /&gt;
                output += flag + side + llGetPrimitiveParams( flag + side );&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                side = llGetNumberOfSides();&lt;br /&gt;
                do //we return the sides in reverse order, easier to code; runs faster.&lt;br /&gt;
                    output += flag + side + llGetPrimitiveParams( flag + (side = ~ -side) );&lt;br /&gt;
                while(side);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
            output += flag + llGetPrimitiveParams( flag );&lt;br /&gt;
    }&lt;br /&gt;
    return output;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
default {&lt;br /&gt;
    state_entry() {&lt;br /&gt;
        list prim = GetPrimitiveParams([PRIM_TYPE]);&lt;br /&gt;
        llSetPrimitiveParams([PRIM_TYPE, PRIM_TYPE_BOX,&lt;br /&gt;
            0, &amp;lt;0,1,0&amp;gt;, 0, &amp;lt;0,0,0&amp;gt;, &amp;lt;1,1,0&amp;gt;, &amp;lt;0,0,0&amp;gt;,&lt;br /&gt;
            PRIM_FLEXIBLE, TRUE, 0, 0, 0, 0, 0, &amp;lt;0,0,0&amp;gt;] + prim);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    on_rez(integer s) {&lt;br /&gt;
        llResetScript();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{LSLC|Library}}&lt;br /&gt;
{{LSLC|Examples}}&lt;/div&gt;</summary>
		<author><name>Aeron Kohime</name></author>
	</entry>
</feed>