<?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=Dale+Innis</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=Dale+Innis"/>
	<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/wiki/Special:Contributions/Dale_Innis"/>
	<updated>2026-07-27T14:15:47Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:LlSensor&amp;diff=1197230</id>
		<title>Talk:LlSensor</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:LlSensor&amp;diff=1197230"/>
		<updated>2015-08-16T03:14:38Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{talk}}&lt;br /&gt;
If PI/4 is a 45 degree cone: if the cone&#039;s axis is 1, does the base have a diameter of 2, or a diameter of ~0.82? --[[User:Asha Vultee|Asha Vultee]] 12:53, 19 November 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
:Strictly speaking, it&#039;s not a cone. If you want an idea of what the shape will look like run the following script. -- [[User:Strife Onizuka|Strife Onizuka]] 13:20, 19 November 2007 (PST)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
float arc;&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llSetPrimitiveParams([PRIM_TYPE, PRIM_TYPE_SPHERE, 0, &amp;lt;0.,1.,0.&amp;gt;, 0.0, &amp;lt;0.,0.,0.&amp;gt;, &amp;lt;0.,arc/PI,0.&amp;gt;]);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Agent? ==&lt;br /&gt;
&lt;br /&gt;
Hey everyone, don&#039;t you think the &amp;quot;AGENT&amp;quot; flag should have a description along the lines of &amp;quot;This is used to find avatars only&amp;quot;. rather than a blank description? I tried to add it myself, but I&#039;m afraid I&#039;m too newbie to understand the formatting... I couldn&#039;t find that particular table.{{unsigned|Hikaru Dreadlow|17:31, 23 June 2008}}&lt;br /&gt;
&lt;br /&gt;
:Will do, the table is in a template ([[Template:LSL_Constants_Sensor]]) so that it can be included on llSensorRepeat too. -- [[User:Strife Onizuka|Strife Onizuka]] 15:02, 23 June 2008 (PDT)&lt;br /&gt;
&lt;br /&gt;
== All Object Sensor? ==&lt;br /&gt;
&lt;br /&gt;
Hey, can anyone tell me how to make an llSensor() that will scan for ANY object? For example, both physical and nonphysical, scripted and nonscripted, any combination. I tried combining all the flags (besides AGENT) with bitwise |, but it didn&#039;t seem to pick up all objects in range.{{unsigned|Crystals Galicia|16:45, 22 September 2008}}&lt;br /&gt;
&lt;br /&gt;
BloodyRain Rang: seems like LL screwed the sensors up cause 0 as type should find all things, even avatars but it doesnt work. And without that it seems impossible to detect any objects without going through all combinations of ACTIVE PASSIVE and SCRIPTED (7 combinations btw). Hope this get fixed someday. (2008-12-08){{unsigned|BloodyRain Rang|18:02, 8 December 2008}}&lt;br /&gt;
&lt;br /&gt;
:My apologies for not catching this sooner (or seeing these comments). The documentation was in error about zero being an acceptable value for &#039;&#039;&#039;type&#039;&#039;&#039;. The error stemmed from the documentation being based initially on the tooltips from the client script editor. Most such errors were caught during the initial import but not all. -- &#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:21, 8 December 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
== The return of NULL_KEY caveats are a little lacking ==&lt;br /&gt;
&lt;br /&gt;
The sensor will not trigger if an invalid key (NULL_KEY) is &amp;quot;found&amp;quot; but if the structure of the script allows it the empty NULL_KEY can be returned. As with the simple following.&amp;lt;lsl&amp;gt;default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llSensorRepeat(&amp;quot;&amp;quot;, &amp;quot;&amp;quot;, 3, 20.0, PI, 1.0);&lt;br /&gt;
    }&lt;br /&gt;
    sensor(integer detected)&lt;br /&gt;
    {&lt;br /&gt;
        llSay(0, (string)llDetectedName(0));&lt;br /&gt;
        llSay(0, (string)llDetectedName(1));&lt;br /&gt;
        llSay(0, (string)llDetectedName(2));&lt;br /&gt;
        llSay(0, (string)llDetectedName(3));&lt;br /&gt;
        llSay(0, (string)llDetectedName(4));&lt;br /&gt;
        llSay(0, (string)llDetectedName(5));&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;I&#039;m not saying this is good scripting but since it returns 5 null keys and 1 avatar (if it only finds one etc.) not being fully aware of the facts while compiling lists for eg. could get messy. Fact: If the event is not structured well to exclude NULL_KEYs they can be returned. -- &#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; 21:21, 8 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Agent&#039;s sit target no longer shows up? ==&lt;br /&gt;
This statement:&lt;br /&gt;
&amp;quot;If the agent is sitting on an object, the root prim of the sat upon object becomes a second sensor target for the agent (but not if the avatar is outside the sensor arc, see SVC-5145[c]).&amp;quot;&lt;br /&gt;
no longer seems to be true - if you search for an agent, you only get the agent, and not the object it&#039;s sitting on. (No clue when this changed, I only tried it for the first time tonight).&lt;br /&gt;
[[User:Redwood Rhiadra|Redwood Rhiadra]] 01:22, 2 October 2010 (UTC)&lt;br /&gt;
: Hi, this feature is definitely confusing, that is what {{Jira|SVC-5145}} is, a request to make the behavior sensible and consistent. I will repeat the tests this weekend and see if it is broken in the same old way or if there are new ways too. --[[User:Cerise Sorbet|Cerise Sorbet]] 03:30, 2 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
__________________________________&lt;br /&gt;
&lt;br /&gt;
== examples on this page are inadequate. == &lt;br /&gt;
&lt;br /&gt;
And no, I don&#039;t dare try to add any more, because Strife the Control Queen doesn&#039;t need examples for himself, so he just deletes them all.&lt;br /&gt;
&lt;br /&gt;
[[User:Chaz Longstaff|Chaz Longstaff]] 18:20, 19 September 2011 (PDT)&lt;br /&gt;
:The ad homimem attack is unnecessary. Taking a look at llListen which is another function that is paired with an event, I added an example script to showcase llSensor with the sensor event. Will that do? --[[User:Nexii Malthus|&amp;lt;span style=&amp;quot;color: #111; text-shadow:-1px -1px #ddd, 1px 1px #888;&amp;quot;&amp;gt;Nexii Malthus&amp;lt;/span&amp;gt;]] 19:45, 19 September 2011 (PDT)&lt;br /&gt;
&lt;br /&gt;
I don&#039;t recall deleting any content recently, let alone an example. I remember once in the last year(or two?) deleting an entirely duplicate example (had been double pasted into the article?) but nothing more recent. So I&#039;m at a bit of a loss for words.&lt;br /&gt;
&lt;br /&gt;
I honestly wish people would post more examples, there is even a category for articles in need of examples: [[:Category:LSL_Needs_Example]] and general improvement [[:Category:LSL FixMe]]. I generally leave writing examples to others, not because I don&#039;t find them useful, I often can&#039;t think of a simple useful example, my examples tend to bury the usage in a script that is better placed in the Script Library (which no one ever sees or uses). I don&#039;t spend much time here and less time in SL, so I&#039;m pretty cautious with my edits and unlikely to edit an example or script.&lt;br /&gt;
&lt;br /&gt;
So I&#039;m Currently working my way through the new functions and features from [[Release_Notes/Second_Life_RC_LeTigre/11#11.09.09.240509]] but I don&#039;t have a lot of time to devote to it. -- &#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; 13:21, 20 September 2011 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Error with sensor page ==&lt;br /&gt;
&lt;br /&gt;
has anybody noticed that the sensor page shows up odd when not loged into the wiki?[[User:Tmzasz Luminos|Tmzasz Luminos]] 20:15, 14 February 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
:What browser are you using? -- &#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; 12:21, 15 February 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
:Never mind, it&#039;s definitely a wiki engine issue. -- &#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; 12:31, 15 February 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
:{{Jira|WEB-4489}} -- &#039;&#039;&#039;[[User:Strife_Onizuka|Strife]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Strife_Onizuka|talk]]|[[Special:Contributions/Strife_Onizuka|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 10:34, 17 February 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
== AGENT vs AGENT_BY_LEGACY_NAME - No ambiguity if there&#039;s no name to filter by ==&lt;br /&gt;
&lt;br /&gt;
The docs say: &amp;quot;If name, id, and/or type are empty or 0, they are ignored.&amp;quot; In that case, the name is empty, it&#039;s ignored and not to be interpreted in any meaningful way. There is no possible ambiguity on how the name should be interpreted because there is no name to filter by. And please explain the removal of the text about how adding a name affects the result. It was a good example of how to use AGENT_BY_LEGACY_NAME to resolve the ambiguity. Maybe a fictitious name should be used instead of an existing one to prevent self-promotion. I&#039;d agree with that, but that name wasn&#039;t even touched. I don&#039;t understand the reversal. -- [[User:Sei Lisa|Sei Lisa]] 10:00, 22 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
: I think the example text rollback was an oversight. I shall put it back. I agree, we should choose someone else, for kicks we could make it the last person who edits the page. Thoughts?&lt;br /&gt;
: I&#039;m going to split hairs a bit, the ambiguity does not go away, it just becomes meaningless. However when you edit the code to add a name, that is when the ambiguity matters and where AGENT bite you in the butt. I&#039;d really would like to kill [[AGENT]] off to rid us of this problem. With AGENT we save in letters typed but we get burned by creating a lovely little &amp;quot;Gotcha&amp;quot;: For the new users they would see the three flags and expect [[AGENT]] to be the generic form that allows you to search by either and most likely to be the one that searches by display name. No [[AGENT]], no misunderstanding in the mind of the reader. Hopefully when they encounter [[AGENT]] it will be on the documentation. Regardless, I find using the longer name with the null case distasteful but something I think is worth inflicting on new users. Like using [[run_time_permissions]].&lt;br /&gt;
: Your gallery solution is the most practical of them all. I not happy with how gallery breaks things but recreating gallery with templates is something I&#039;m going to avoid.  -- &#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:39, 22 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:: On names: using either a famous Linden name or a fictitious name feels better than a variable one. Governor Linden is one I&#039;m considering, and John Doe is another. I&#039;d lean towards the latter.&lt;br /&gt;
:: On the gallery: What I miss with the gallery is a reference in the text that says where to find it (&amp;quot;look at the bottom of this page...&amp;quot;)&lt;br /&gt;
:: On the edit: Given that I have yet to see one use case for AGENT_BY_USERNAME, I would aim for readability, and AGENT is preferable not because it&#039;s shorter, but because it doesn&#039;t confuse with something that is very rarely if at all there (the username or the legacy name). Once you put a name, if that ever happens, which I doubt, especially for a new user, you can change it to the correct type of name. And of course, you can not &amp;quot;kill&amp;quot; AGENT, because AGENT_BY_USERNAME does simply not work at all with llDetectedType, and AGENT_BY_LEGACY_NAME is very clearly a misname for that case. The flags are shared with llDetectedType and there&#039;s even no indication in that page that AGENT_BY_USERNAME won&#039;t work at all with it. That is a separate issue, but the logic that leads to preferring AGENT there also applies to prefer AGENT when no name is specified in llSensor. -- [[User:Sei Lisa|Sei Lisa]] 01:16, 23 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:: &amp;lt;rant&amp;gt; I consider the introduction of AGENT_BY_LEGACY_NAME a mistake. The whole display name system has been a hack on top of the existing, now &amp;quot;legacy&amp;quot; name system, including the LSL additions. The same logic that led to the introduction of AGENT_BY_LEGACY_NAME should for example have led to deprecating llKey2Name and introducing llGetLegacyName as a synonym, yet that didn&#039;t happen. People are expected to know that llKey2Name returns a legacy name and not a display name or username. It shouldn&#039;t be any different with AGENT; just adding AGENT_BY_USERNAME to provide access to the new functionality should have been enough. The mere presence of AGENT_BY_LEGACY_NAME has proven to introduce more confusion than the one caused by forgetting to change it to AGENT_BY_USERNAME when using a username in the name (again, if that ever happens). The problem is that it references a name where it isn&#039;t applicable, leaving the reader of the code wondering: &amp;quot;Name? What name?&amp;quot; It&#039;s akin to giving instructions to someone having a step that is not applicable at all. Imagine telling someone &amp;quot;Go straight through this street; turn right when you see a sign that says &#039;X&#039;, and turn left when you see a sign that says &#039;Y&#039;&amp;quot; but there is only an &#039;Y&#039; sign and all that is needed to reach the destination is to turn left when reaching it. The instructions are logically impeccable, and anyone following them literally will reach the destination, but the receiver will wonder where is that &#039;X&#039; sign. That&#039;s what I feel every time I see a llSensor call using &amp;quot;&amp;quot; as name and AGENT_BY_LEGACY_NAME as constant. If one is to be killed, it&#039;s AGENT_BY_LEGACY_NAME, not AGENT. &amp;lt;/rant&amp;gt;&lt;br /&gt;
:: There, I said it. To elaborate on shortness, being shorter is not at all a reason to prefer it. I really wish that it at least had a namespace prefix like SENSOR_ or OBJECT_TYPE_ or the like, to reduce the chance of name collisions and clarify the scope of its applicability. It doesn&#039;t, sadly. -- [[User:Sei Lisa|Sei Lisa]] 02:00, 23 October 2013 (PDT)&lt;br /&gt;
:::Good point about directions.&lt;br /&gt;
:::llDetectedType: I&#039;ll poke the template so it does not show the AGENT_* constants there, only AGENT. I really wish they had prefixed them, also the texture animation constants, who would guess [[PING_PONG]] was a texture animation constant without looking it up? LSL was built before it was designed. Personally it all have been better if LSL was object oriented, you wouldn&#039;t have had so many silly lookup functions.&lt;br /&gt;
:::Governor Linden was actually who I was thinking of, that or Philip Linden. -- &#039;&#039;&#039;[[User:Strife_Onizuka|Strife]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Strife_Onizuka|talk]]|[[Special:Contributions/Strife_Onizuka|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 10:59, 23 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
::::I have to agree with Sei on this one. It is clearly silly to say you are searching by a name when that is exactly what you are not doing. Like it or not, AGENT exists, and we should demonstrate it. I will continue to use AGENT where appropriate for as long as it compiles. I also belong to the school that feels that the whole display name idea was a stupid mistake. [[User:Omei Qunhua|Omei Qunhua]] 12:52, 23 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:::: @ Strife:&lt;br /&gt;
:::: On names: While I still would lean towards John Doe, I have no strong opinion; Governor Linden is fine with me. Philip Linden could potentially have political issues in future, I hope not.&lt;br /&gt;
:::: On prefixes: Sad thing is they made the same mistake recently when they introduced HORIZONTAL and VERTICAL for pathfinding. Talk about namespace pollution. Oh, well.&lt;br /&gt;
:::: On the change: would you consider re-applying my changes then?&lt;br /&gt;
:::: @ Omei: Thanks for the support :) I wouldn&#039;t go as far as calling it a stupid mistake, but it&#039;s a hack no matter how good or bad idea it is. -- [[User:Sei Lisa|Sei Lisa]] 13:20, 23 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:::: Thanks for the change, very appreciated! -- [[User:Sei Lisa|Sei Lisa]] 10:05, 24 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
::::: You are welcome. I would be ok with causing a little political uproar. Streisand effect, would be good for the wiki. -- &#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; 22:01, 25 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Can it look the other way? ==&lt;br /&gt;
&lt;br /&gt;
I&#039;m trying to make a single prim see 30 things that are scattered symmetrically around it.  A single sensor() call can&#039;t see them all, as there are too many.  I thought I could look at the 15 in front, and then the 15 in back, but the arc is always in the forward direction.  Is there any way (a negative arc?) to look just behind and not in front?  I will do the experiment :) but if anyone knows...   [[User:Dale Innis|Dale Innis]] ([[User talk:Dale Innis|talk]]) 20:08, 15 August 2015 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Diameter or Radius? ==&lt;br /&gt;
&lt;br /&gt;
Why does this functions wiki page not explicitly state weather the float RANGE, is a Diameter, or a Radius?&lt;br /&gt;
&lt;br /&gt;
Just calling it a Range, seems kinda ambiguous. Sure many of us can just assume, or experiment to be sure. But it seems like info that belongs on the upper most definition of the function. &lt;br /&gt;
&lt;br /&gt;
Maybe I&#039;m just missing it due to sleep deprivation. [[User:ThumpieBunnyEve Hax|ThumpieBunnyEve Hax]] ([[User talk:ThumpieBunnyEve Hax|talk]]) 15:23, 18 March 2015 (PDT)&lt;br /&gt;
&lt;br /&gt;
:&amp;quot;Range&amp;quot; means distance from the prim&#039;s or the wearer&#039;s center. That forms a sphere around said center, with the range&#039;s radius, within which everything is &amp;quot;in range&amp;quot; and everything outside is &amp;quot;out of range&amp;quot;. Therefore it is the radius. --[[User:Pedro Oval|Pedro Oval]] ([[User talk:Pedro Oval|talk]]) 04:44, 19 March 2015 (PDT)&lt;br /&gt;
&lt;br /&gt;
::I submit my edit to the page for clarity. I was confident my mention of radius, and &amp;quot;distance from center&amp;quot; was sufficient, valid, and helpful. If it doesn&#039;t get changed back, then yay for a positive contribution! [[User:ThumpieBunnyEve Hax|ThumpieBunnyEve Hax]] ([[User talk:ThumpieBunnyEve Hax|talk]]) 07:33, 19 March 2015 (PDT)&lt;br /&gt;
&lt;br /&gt;
::: I personally find it more confusing when put that way. It doesn&#039;t state the center of what, or the radius or what geometric figure or why it matters, while &amp;quot;range&amp;quot; is clearly implicitly referring to a distance, which logically must be from the script that has the sensor to the detected object. I don&#039;t know where did your confusion between radius and diameter come from, as not many people will realize immediately that the range volume forms a sphere. My vote is for that change to be reverted. --[[User:Pedro Oval|Pedro Oval]] ([[User talk:Pedro Oval|talk]]) 08:57, 19 March 2015 (PDT)&lt;br /&gt;
&lt;br /&gt;
:::: I fail to see where saying &amp;quot;Range&amp;quot; by itself is any more descriptive or accurate. It leaves more to the imagination then saying Radius, which by definition indicates from center point, inclusively to an end. Range, in fact can be easily misconstrued as a diameter, a square field, or a point at a variable distance forming a ring. Semantics are important and layman&#039;s terms such as &amp;quot;Range&amp;quot; when referring to a Radius, do not provide enough info for an accurate visualization of the procedure.  I prefer to call a dog &amp;quot;a dog&amp;quot;, rather then &amp;quot;the thing&amp;quot;. One I know not to store in the attic for a few years, the other, not so much. If you don&#039;t understand what the word Radius means, you can easily look it up in a dictionary, but looking up &amp;quot;Range&amp;quot; in a dictionary wont provide you any insight as to weather this process uses a diameter or a radius. In fact many people who I&#039;ve taught scripting to have asked me if &amp;quot;Range&amp;quot; was halved, when the Arc, was PI / 4. Implying they presumed &amp;quot;Range&amp;quot; to be a diameter.  I wonder where they got that notion?? Perhaps it was from the lack of clarity in this functions description. I suppose Ray-Length could be another plausible word. but it&#039;s 2 words. and &amp;quot;Length&amp;quot;, by itself would also not distinguish between diameter and radius as both are a measure of length. [[User:ThumpieBunnyEve Hax|ThumpieBunnyEve Hax]] ([[User talk:ThumpieBunnyEve Hax|talk]]) 09:56, 19 March 2015 (PDT)&lt;br /&gt;
&lt;br /&gt;
::::: {{quote|radius:&lt;br /&gt;
&lt;br /&gt;
1. a straight line from the center to the circumference of a circle or sphere.&lt;br /&gt;
2. the thicker and shorter of the two bones in the human forearm.}}&lt;br /&gt;
There&#039;s no sphere here. There&#039;s a vector that goes from the sensor to the potentially sensed object, whose length can be in-range or out-of-range. And there&#039;s another vector, the X axis of the prim, whose angle with the first vector determines whether the arc is in-range or out-of-range. No idea where your pupils got the concept of radius from, but I&#039;d bet that it&#039;s either from their own imagination or because you introduced it as a sphere in the first place. --[[User:Pedro Oval|Pedro Oval]] ([[User talk:Pedro Oval|talk]]) 11:04, 19 March 2015 (PDT)&lt;br /&gt;
&lt;br /&gt;
:::::: Quote: [ it&#039;s either from their own imagination or because you introduced it as a sphere in the first place. ] ~ Pedro Oval &lt;br /&gt;
:::::: Response: I&#039;d say it&#039;s more probable they infer it from this image, which is part of the wiki for this function itself.  http://wiki.secondlife.com/wiki/File:Sensor_pi.png [[User:ThumpieBunnyEve Hax|ThumpieBunnyEve Hax]] ([[User talk:ThumpieBunnyEve Hax|talk]]) 13:10, 19 March 2015 (PDT)&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:LlSensor&amp;diff=1197229</id>
		<title>Talk:LlSensor</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:LlSensor&amp;diff=1197229"/>
		<updated>2015-08-16T03:12:39Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: /* Diameter or Radius? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{talk}}&lt;br /&gt;
If PI/4 is a 45 degree cone: if the cone&#039;s axis is 1, does the base have a diameter of 2, or a diameter of ~0.82? --[[User:Asha Vultee|Asha Vultee]] 12:53, 19 November 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
:Strictly speaking, it&#039;s not a cone. If you want an idea of what the shape will look like run the following script. -- [[User:Strife Onizuka|Strife Onizuka]] 13:20, 19 November 2007 (PST)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
float arc;&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llSetPrimitiveParams([PRIM_TYPE, PRIM_TYPE_SPHERE, 0, &amp;lt;0.,1.,0.&amp;gt;, 0.0, &amp;lt;0.,0.,0.&amp;gt;, &amp;lt;0.,arc/PI,0.&amp;gt;]);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Agent? ==&lt;br /&gt;
&lt;br /&gt;
Hey everyone, don&#039;t you think the &amp;quot;AGENT&amp;quot; flag should have a description along the lines of &amp;quot;This is used to find avatars only&amp;quot;. rather than a blank description? I tried to add it myself, but I&#039;m afraid I&#039;m too newbie to understand the formatting... I couldn&#039;t find that particular table.{{unsigned|Hikaru Dreadlow|17:31, 23 June 2008}}&lt;br /&gt;
&lt;br /&gt;
:Will do, the table is in a template ([[Template:LSL_Constants_Sensor]]) so that it can be included on llSensorRepeat too. -- [[User:Strife Onizuka|Strife Onizuka]] 15:02, 23 June 2008 (PDT)&lt;br /&gt;
&lt;br /&gt;
== All Object Sensor? ==&lt;br /&gt;
&lt;br /&gt;
Hey, can anyone tell me how to make an llSensor() that will scan for ANY object? For example, both physical and nonphysical, scripted and nonscripted, any combination. I tried combining all the flags (besides AGENT) with bitwise |, but it didn&#039;t seem to pick up all objects in range.{{unsigned|Crystals Galicia|16:45, 22 September 2008}}&lt;br /&gt;
&lt;br /&gt;
BloodyRain Rang: seems like LL screwed the sensors up cause 0 as type should find all things, even avatars but it doesnt work. And without that it seems impossible to detect any objects without going through all combinations of ACTIVE PASSIVE and SCRIPTED (7 combinations btw). Hope this get fixed someday. (2008-12-08){{unsigned|BloodyRain Rang|18:02, 8 December 2008}}&lt;br /&gt;
&lt;br /&gt;
:My apologies for not catching this sooner (or seeing these comments). The documentation was in error about zero being an acceptable value for &#039;&#039;&#039;type&#039;&#039;&#039;. The error stemmed from the documentation being based initially on the tooltips from the client script editor. Most such errors were caught during the initial import but not all. -- &#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:21, 8 December 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
== The return of NULL_KEY caveats are a little lacking ==&lt;br /&gt;
&lt;br /&gt;
The sensor will not trigger if an invalid key (NULL_KEY) is &amp;quot;found&amp;quot; but if the structure of the script allows it the empty NULL_KEY can be returned. As with the simple following.&amp;lt;lsl&amp;gt;default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llSensorRepeat(&amp;quot;&amp;quot;, &amp;quot;&amp;quot;, 3, 20.0, PI, 1.0);&lt;br /&gt;
    }&lt;br /&gt;
    sensor(integer detected)&lt;br /&gt;
    {&lt;br /&gt;
        llSay(0, (string)llDetectedName(0));&lt;br /&gt;
        llSay(0, (string)llDetectedName(1));&lt;br /&gt;
        llSay(0, (string)llDetectedName(2));&lt;br /&gt;
        llSay(0, (string)llDetectedName(3));&lt;br /&gt;
        llSay(0, (string)llDetectedName(4));&lt;br /&gt;
        llSay(0, (string)llDetectedName(5));&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;I&#039;m not saying this is good scripting but since it returns 5 null keys and 1 avatar (if it only finds one etc.) not being fully aware of the facts while compiling lists for eg. could get messy. Fact: If the event is not structured well to exclude NULL_KEYs they can be returned. -- &#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; 21:21, 8 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Agent&#039;s sit target no longer shows up? ==&lt;br /&gt;
This statement:&lt;br /&gt;
&amp;quot;If the agent is sitting on an object, the root prim of the sat upon object becomes a second sensor target for the agent (but not if the avatar is outside the sensor arc, see SVC-5145[c]).&amp;quot;&lt;br /&gt;
no longer seems to be true - if you search for an agent, you only get the agent, and not the object it&#039;s sitting on. (No clue when this changed, I only tried it for the first time tonight).&lt;br /&gt;
[[User:Redwood Rhiadra|Redwood Rhiadra]] 01:22, 2 October 2010 (UTC)&lt;br /&gt;
: Hi, this feature is definitely confusing, that is what {{Jira|SVC-5145}} is, a request to make the behavior sensible and consistent. I will repeat the tests this weekend and see if it is broken in the same old way or if there are new ways too. --[[User:Cerise Sorbet|Cerise Sorbet]] 03:30, 2 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
__________________________________&lt;br /&gt;
&lt;br /&gt;
== examples on this page are inadequate. == &lt;br /&gt;
&lt;br /&gt;
And no, I don&#039;t dare try to add any more, because Strife the Control Queen doesn&#039;t need examples for himself, so he just deletes them all.&lt;br /&gt;
&lt;br /&gt;
[[User:Chaz Longstaff|Chaz Longstaff]] 18:20, 19 September 2011 (PDT)&lt;br /&gt;
:The ad homimem attack is unnecessary. Taking a look at llListen which is another function that is paired with an event, I added an example script to showcase llSensor with the sensor event. Will that do? --[[User:Nexii Malthus|&amp;lt;span style=&amp;quot;color: #111; text-shadow:-1px -1px #ddd, 1px 1px #888;&amp;quot;&amp;gt;Nexii Malthus&amp;lt;/span&amp;gt;]] 19:45, 19 September 2011 (PDT)&lt;br /&gt;
&lt;br /&gt;
I don&#039;t recall deleting any content recently, let alone an example. I remember once in the last year(or two?) deleting an entirely duplicate example (had been double pasted into the article?) but nothing more recent. So I&#039;m at a bit of a loss for words.&lt;br /&gt;
&lt;br /&gt;
I honestly wish people would post more examples, there is even a category for articles in need of examples: [[:Category:LSL_Needs_Example]] and general improvement [[:Category:LSL FixMe]]. I generally leave writing examples to others, not because I don&#039;t find them useful, I often can&#039;t think of a simple useful example, my examples tend to bury the usage in a script that is better placed in the Script Library (which no one ever sees or uses). I don&#039;t spend much time here and less time in SL, so I&#039;m pretty cautious with my edits and unlikely to edit an example or script.&lt;br /&gt;
&lt;br /&gt;
So I&#039;m Currently working my way through the new functions and features from [[Release_Notes/Second_Life_RC_LeTigre/11#11.09.09.240509]] but I don&#039;t have a lot of time to devote to it. -- &#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; 13:21, 20 September 2011 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Error with sensor page ==&lt;br /&gt;
&lt;br /&gt;
has anybody noticed that the sensor page shows up odd when not loged into the wiki?[[User:Tmzasz Luminos|Tmzasz Luminos]] 20:15, 14 February 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
:What browser are you using? -- &#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; 12:21, 15 February 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
:Never mind, it&#039;s definitely a wiki engine issue. -- &#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; 12:31, 15 February 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
:{{Jira|WEB-4489}} -- &#039;&#039;&#039;[[User:Strife_Onizuka|Strife]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Strife_Onizuka|talk]]|[[Special:Contributions/Strife_Onizuka|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 10:34, 17 February 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
== AGENT vs AGENT_BY_LEGACY_NAME - No ambiguity if there&#039;s no name to filter by ==&lt;br /&gt;
&lt;br /&gt;
The docs say: &amp;quot;If name, id, and/or type are empty or 0, they are ignored.&amp;quot; In that case, the name is empty, it&#039;s ignored and not to be interpreted in any meaningful way. There is no possible ambiguity on how the name should be interpreted because there is no name to filter by. And please explain the removal of the text about how adding a name affects the result. It was a good example of how to use AGENT_BY_LEGACY_NAME to resolve the ambiguity. Maybe a fictitious name should be used instead of an existing one to prevent self-promotion. I&#039;d agree with that, but that name wasn&#039;t even touched. I don&#039;t understand the reversal. -- [[User:Sei Lisa|Sei Lisa]] 10:00, 22 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
: I think the example text rollback was an oversight. I shall put it back. I agree, we should choose someone else, for kicks we could make it the last person who edits the page. Thoughts?&lt;br /&gt;
: I&#039;m going to split hairs a bit, the ambiguity does not go away, it just becomes meaningless. However when you edit the code to add a name, that is when the ambiguity matters and where AGENT bite you in the butt. I&#039;d really would like to kill [[AGENT]] off to rid us of this problem. With AGENT we save in letters typed but we get burned by creating a lovely little &amp;quot;Gotcha&amp;quot;: For the new users they would see the three flags and expect [[AGENT]] to be the generic form that allows you to search by either and most likely to be the one that searches by display name. No [[AGENT]], no misunderstanding in the mind of the reader. Hopefully when they encounter [[AGENT]] it will be on the documentation. Regardless, I find using the longer name with the null case distasteful but something I think is worth inflicting on new users. Like using [[run_time_permissions]].&lt;br /&gt;
: Your gallery solution is the most practical of them all. I not happy with how gallery breaks things but recreating gallery with templates is something I&#039;m going to avoid.  -- &#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:39, 22 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:: On names: using either a famous Linden name or a fictitious name feels better than a variable one. Governor Linden is one I&#039;m considering, and John Doe is another. I&#039;d lean towards the latter.&lt;br /&gt;
:: On the gallery: What I miss with the gallery is a reference in the text that says where to find it (&amp;quot;look at the bottom of this page...&amp;quot;)&lt;br /&gt;
:: On the edit: Given that I have yet to see one use case for AGENT_BY_USERNAME, I would aim for readability, and AGENT is preferable not because it&#039;s shorter, but because it doesn&#039;t confuse with something that is very rarely if at all there (the username or the legacy name). Once you put a name, if that ever happens, which I doubt, especially for a new user, you can change it to the correct type of name. And of course, you can not &amp;quot;kill&amp;quot; AGENT, because AGENT_BY_USERNAME does simply not work at all with llDetectedType, and AGENT_BY_LEGACY_NAME is very clearly a misname for that case. The flags are shared with llDetectedType and there&#039;s even no indication in that page that AGENT_BY_USERNAME won&#039;t work at all with it. That is a separate issue, but the logic that leads to preferring AGENT there also applies to prefer AGENT when no name is specified in llSensor. -- [[User:Sei Lisa|Sei Lisa]] 01:16, 23 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:: &amp;lt;rant&amp;gt; I consider the introduction of AGENT_BY_LEGACY_NAME a mistake. The whole display name system has been a hack on top of the existing, now &amp;quot;legacy&amp;quot; name system, including the LSL additions. The same logic that led to the introduction of AGENT_BY_LEGACY_NAME should for example have led to deprecating llKey2Name and introducing llGetLegacyName as a synonym, yet that didn&#039;t happen. People are expected to know that llKey2Name returns a legacy name and not a display name or username. It shouldn&#039;t be any different with AGENT; just adding AGENT_BY_USERNAME to provide access to the new functionality should have been enough. The mere presence of AGENT_BY_LEGACY_NAME has proven to introduce more confusion than the one caused by forgetting to change it to AGENT_BY_USERNAME when using a username in the name (again, if that ever happens). The problem is that it references a name where it isn&#039;t applicable, leaving the reader of the code wondering: &amp;quot;Name? What name?&amp;quot; It&#039;s akin to giving instructions to someone having a step that is not applicable at all. Imagine telling someone &amp;quot;Go straight through this street; turn right when you see a sign that says &#039;X&#039;, and turn left when you see a sign that says &#039;Y&#039;&amp;quot; but there is only an &#039;Y&#039; sign and all that is needed to reach the destination is to turn left when reaching it. The instructions are logically impeccable, and anyone following them literally will reach the destination, but the receiver will wonder where is that &#039;X&#039; sign. That&#039;s what I feel every time I see a llSensor call using &amp;quot;&amp;quot; as name and AGENT_BY_LEGACY_NAME as constant. If one is to be killed, it&#039;s AGENT_BY_LEGACY_NAME, not AGENT. &amp;lt;/rant&amp;gt;&lt;br /&gt;
:: There, I said it. To elaborate on shortness, being shorter is not at all a reason to prefer it. I really wish that it at least had a namespace prefix like SENSOR_ or OBJECT_TYPE_ or the like, to reduce the chance of name collisions and clarify the scope of its applicability. It doesn&#039;t, sadly. -- [[User:Sei Lisa|Sei Lisa]] 02:00, 23 October 2013 (PDT)&lt;br /&gt;
:::Good point about directions.&lt;br /&gt;
:::llDetectedType: I&#039;ll poke the template so it does not show the AGENT_* constants there, only AGENT. I really wish they had prefixed them, also the texture animation constants, who would guess [[PING_PONG]] was a texture animation constant without looking it up? LSL was built before it was designed. Personally it all have been better if LSL was object oriented, you wouldn&#039;t have had so many silly lookup functions.&lt;br /&gt;
:::Governor Linden was actually who I was thinking of, that or Philip Linden. -- &#039;&#039;&#039;[[User:Strife_Onizuka|Strife]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Strife_Onizuka|talk]]|[[Special:Contributions/Strife_Onizuka|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 10:59, 23 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
::::I have to agree with Sei on this one. It is clearly silly to say you are searching by a name when that is exactly what you are not doing. Like it or not, AGENT exists, and we should demonstrate it. I will continue to use AGENT where appropriate for as long as it compiles. I also belong to the school that feels that the whole display name idea was a stupid mistake. [[User:Omei Qunhua|Omei Qunhua]] 12:52, 23 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:::: @ Strife:&lt;br /&gt;
:::: On names: While I still would lean towards John Doe, I have no strong opinion; Governor Linden is fine with me. Philip Linden could potentially have political issues in future, I hope not.&lt;br /&gt;
:::: On prefixes: Sad thing is they made the same mistake recently when they introduced HORIZONTAL and VERTICAL for pathfinding. Talk about namespace pollution. Oh, well.&lt;br /&gt;
:::: On the change: would you consider re-applying my changes then?&lt;br /&gt;
:::: @ Omei: Thanks for the support :) I wouldn&#039;t go as far as calling it a stupid mistake, but it&#039;s a hack no matter how good or bad idea it is. -- [[User:Sei Lisa|Sei Lisa]] 13:20, 23 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:::: Thanks for the change, very appreciated! -- [[User:Sei Lisa|Sei Lisa]] 10:05, 24 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
::::: You are welcome. I would be ok with causing a little political uproar. Streisand effect, would be good for the wiki. -- &#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; 22:01, 25 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Diameter or Radius? ==&lt;br /&gt;
&lt;br /&gt;
Why does this functions wiki page not explicitly state weather the float RANGE, is a Diameter, or a Radius?&lt;br /&gt;
&lt;br /&gt;
Just calling it a Range, seems kinda ambiguous. Sure many of us can just assume, or experiment to be sure. But it seems like info that belongs on the upper most definition of the function. &lt;br /&gt;
&lt;br /&gt;
Maybe I&#039;m just missing it due to sleep deprivation. [[User:ThumpieBunnyEve Hax|ThumpieBunnyEve Hax]] ([[User talk:ThumpieBunnyEve Hax|talk]]) 15:23, 18 March 2015 (PDT)&lt;br /&gt;
&lt;br /&gt;
:&amp;quot;Range&amp;quot; means distance from the prim&#039;s or the wearer&#039;s center. That forms a sphere around said center, with the range&#039;s radius, within which everything is &amp;quot;in range&amp;quot; and everything outside is &amp;quot;out of range&amp;quot;. Therefore it is the radius. --[[User:Pedro Oval|Pedro Oval]] ([[User talk:Pedro Oval|talk]]) 04:44, 19 March 2015 (PDT)&lt;br /&gt;
&lt;br /&gt;
::I submit my edit to the page for clarity. I was confident my mention of radius, and &amp;quot;distance from center&amp;quot; was sufficient, valid, and helpful. If it doesn&#039;t get changed back, then yay for a positive contribution! [[User:ThumpieBunnyEve Hax|ThumpieBunnyEve Hax]] ([[User talk:ThumpieBunnyEve Hax|talk]]) 07:33, 19 March 2015 (PDT)&lt;br /&gt;
&lt;br /&gt;
::: I personally find it more confusing when put that way. It doesn&#039;t state the center of what, or the radius or what geometric figure or why it matters, while &amp;quot;range&amp;quot; is clearly implicitly referring to a distance, which logically must be from the script that has the sensor to the detected object. I don&#039;t know where did your confusion between radius and diameter come from, as not many people will realize immediately that the range volume forms a sphere. My vote is for that change to be reverted. --[[User:Pedro Oval|Pedro Oval]] ([[User talk:Pedro Oval|talk]]) 08:57, 19 March 2015 (PDT)&lt;br /&gt;
&lt;br /&gt;
:::: I fail to see where saying &amp;quot;Range&amp;quot; by itself is any more descriptive or accurate. It leaves more to the imagination then saying Radius, which by definition indicates from center point, inclusively to an end. Range, in fact can be easily misconstrued as a diameter, a square field, or a point at a variable distance forming a ring. Semantics are important and layman&#039;s terms such as &amp;quot;Range&amp;quot; when referring to a Radius, do not provide enough info for an accurate visualization of the procedure.  I prefer to call a dog &amp;quot;a dog&amp;quot;, rather then &amp;quot;the thing&amp;quot;. One I know not to store in the attic for a few years, the other, not so much. If you don&#039;t understand what the word Radius means, you can easily look it up in a dictionary, but looking up &amp;quot;Range&amp;quot; in a dictionary wont provide you any insight as to weather this process uses a diameter or a radius. In fact many people who I&#039;ve taught scripting to have asked me if &amp;quot;Range&amp;quot; was halved, when the Arc, was PI / 4. Implying they presumed &amp;quot;Range&amp;quot; to be a diameter.  I wonder where they got that notion?? Perhaps it was from the lack of clarity in this functions description. I suppose Ray-Length could be another plausible word. but it&#039;s 2 words. and &amp;quot;Length&amp;quot;, by itself would also not distinguish between diameter and radius as both are a measure of length. [[User:ThumpieBunnyEve Hax|ThumpieBunnyEve Hax]] ([[User talk:ThumpieBunnyEve Hax|talk]]) 09:56, 19 March 2015 (PDT)&lt;br /&gt;
&lt;br /&gt;
::::: {{quote|radius:&lt;br /&gt;
&lt;br /&gt;
1. a straight line from the center to the circumference of a circle or sphere.&lt;br /&gt;
2. the thicker and shorter of the two bones in the human forearm.}}&lt;br /&gt;
There&#039;s no sphere here. There&#039;s a vector that goes from the sensor to the potentially sensed object, whose length can be in-range or out-of-range. And there&#039;s another vector, the X axis of the prim, whose angle with the first vector determines whether the arc is in-range or out-of-range. No idea where your pupils got the concept of radius from, but I&#039;d bet that it&#039;s either from their own imagination or because you introduced it as a sphere in the first place. --[[User:Pedro Oval|Pedro Oval]] ([[User talk:Pedro Oval|talk]]) 11:04, 19 March 2015 (PDT)&lt;br /&gt;
&lt;br /&gt;
:::::: Quote: [ it&#039;s either from their own imagination or because you introduced it as a sphere in the first place. ] ~ Pedro Oval &lt;br /&gt;
:::::: Response: I&#039;d say it&#039;s more probable they infer it from this image, which is part of the wiki for this function itself.  http://wiki.secondlife.com/wiki/File:Sensor_pi.png [[User:ThumpieBunnyEve Hax|ThumpieBunnyEve Hax]] ([[User talk:ThumpieBunnyEve Hax|talk]]) 13:10, 19 March 2015 (PDT)&lt;br /&gt;
&lt;br /&gt;
(Why does this cause the rest of the page to be indented wildly?)&lt;br /&gt;
&lt;br /&gt;
== Can it look the other way? ==&lt;br /&gt;
&lt;br /&gt;
I&#039;m trying to make a single prim see 30 things that are scattered symmetrically around it.  A single sensor() call can&#039;t see them all, as there are too many.  I thought I could look at the 15 in front, and then the 15 in back, but the arc is always in the forward direction.  Is there any way (a negative arc?) to look just behind and not in front?  I will do the experiment :) but if anyone knows...   [[User:Dale Innis|Dale Innis]] ([[User talk:Dale Innis|talk]]) 20:08, 15 August 2015 (PDT)&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:LlSensor&amp;diff=1197228</id>
		<title>Talk:LlSensor</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:LlSensor&amp;diff=1197228"/>
		<updated>2015-08-16T03:11:45Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: /* Diameter or Radius? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{talk}}&lt;br /&gt;
If PI/4 is a 45 degree cone: if the cone&#039;s axis is 1, does the base have a diameter of 2, or a diameter of ~0.82? --[[User:Asha Vultee|Asha Vultee]] 12:53, 19 November 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
:Strictly speaking, it&#039;s not a cone. If you want an idea of what the shape will look like run the following script. -- [[User:Strife Onizuka|Strife Onizuka]] 13:20, 19 November 2007 (PST)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
float arc;&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llSetPrimitiveParams([PRIM_TYPE, PRIM_TYPE_SPHERE, 0, &amp;lt;0.,1.,0.&amp;gt;, 0.0, &amp;lt;0.,0.,0.&amp;gt;, &amp;lt;0.,arc/PI,0.&amp;gt;]);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Agent? ==&lt;br /&gt;
&lt;br /&gt;
Hey everyone, don&#039;t you think the &amp;quot;AGENT&amp;quot; flag should have a description along the lines of &amp;quot;This is used to find avatars only&amp;quot;. rather than a blank description? I tried to add it myself, but I&#039;m afraid I&#039;m too newbie to understand the formatting... I couldn&#039;t find that particular table.{{unsigned|Hikaru Dreadlow|17:31, 23 June 2008}}&lt;br /&gt;
&lt;br /&gt;
:Will do, the table is in a template ([[Template:LSL_Constants_Sensor]]) so that it can be included on llSensorRepeat too. -- [[User:Strife Onizuka|Strife Onizuka]] 15:02, 23 June 2008 (PDT)&lt;br /&gt;
&lt;br /&gt;
== All Object Sensor? ==&lt;br /&gt;
&lt;br /&gt;
Hey, can anyone tell me how to make an llSensor() that will scan for ANY object? For example, both physical and nonphysical, scripted and nonscripted, any combination. I tried combining all the flags (besides AGENT) with bitwise |, but it didn&#039;t seem to pick up all objects in range.{{unsigned|Crystals Galicia|16:45, 22 September 2008}}&lt;br /&gt;
&lt;br /&gt;
BloodyRain Rang: seems like LL screwed the sensors up cause 0 as type should find all things, even avatars but it doesnt work. And without that it seems impossible to detect any objects without going through all combinations of ACTIVE PASSIVE and SCRIPTED (7 combinations btw). Hope this get fixed someday. (2008-12-08){{unsigned|BloodyRain Rang|18:02, 8 December 2008}}&lt;br /&gt;
&lt;br /&gt;
:My apologies for not catching this sooner (or seeing these comments). The documentation was in error about zero being an acceptable value for &#039;&#039;&#039;type&#039;&#039;&#039;. The error stemmed from the documentation being based initially on the tooltips from the client script editor. Most such errors were caught during the initial import but not all. -- &#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:21, 8 December 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
== The return of NULL_KEY caveats are a little lacking ==&lt;br /&gt;
&lt;br /&gt;
The sensor will not trigger if an invalid key (NULL_KEY) is &amp;quot;found&amp;quot; but if the structure of the script allows it the empty NULL_KEY can be returned. As with the simple following.&amp;lt;lsl&amp;gt;default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llSensorRepeat(&amp;quot;&amp;quot;, &amp;quot;&amp;quot;, 3, 20.0, PI, 1.0);&lt;br /&gt;
    }&lt;br /&gt;
    sensor(integer detected)&lt;br /&gt;
    {&lt;br /&gt;
        llSay(0, (string)llDetectedName(0));&lt;br /&gt;
        llSay(0, (string)llDetectedName(1));&lt;br /&gt;
        llSay(0, (string)llDetectedName(2));&lt;br /&gt;
        llSay(0, (string)llDetectedName(3));&lt;br /&gt;
        llSay(0, (string)llDetectedName(4));&lt;br /&gt;
        llSay(0, (string)llDetectedName(5));&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;I&#039;m not saying this is good scripting but since it returns 5 null keys and 1 avatar (if it only finds one etc.) not being fully aware of the facts while compiling lists for eg. could get messy. Fact: If the event is not structured well to exclude NULL_KEYs they can be returned. -- &#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; 21:21, 8 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Agent&#039;s sit target no longer shows up? ==&lt;br /&gt;
This statement:&lt;br /&gt;
&amp;quot;If the agent is sitting on an object, the root prim of the sat upon object becomes a second sensor target for the agent (but not if the avatar is outside the sensor arc, see SVC-5145[c]).&amp;quot;&lt;br /&gt;
no longer seems to be true - if you search for an agent, you only get the agent, and not the object it&#039;s sitting on. (No clue when this changed, I only tried it for the first time tonight).&lt;br /&gt;
[[User:Redwood Rhiadra|Redwood Rhiadra]] 01:22, 2 October 2010 (UTC)&lt;br /&gt;
: Hi, this feature is definitely confusing, that is what {{Jira|SVC-5145}} is, a request to make the behavior sensible and consistent. I will repeat the tests this weekend and see if it is broken in the same old way or if there are new ways too. --[[User:Cerise Sorbet|Cerise Sorbet]] 03:30, 2 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
__________________________________&lt;br /&gt;
&lt;br /&gt;
== examples on this page are inadequate. == &lt;br /&gt;
&lt;br /&gt;
And no, I don&#039;t dare try to add any more, because Strife the Control Queen doesn&#039;t need examples for himself, so he just deletes them all.&lt;br /&gt;
&lt;br /&gt;
[[User:Chaz Longstaff|Chaz Longstaff]] 18:20, 19 September 2011 (PDT)&lt;br /&gt;
:The ad homimem attack is unnecessary. Taking a look at llListen which is another function that is paired with an event, I added an example script to showcase llSensor with the sensor event. Will that do? --[[User:Nexii Malthus|&amp;lt;span style=&amp;quot;color: #111; text-shadow:-1px -1px #ddd, 1px 1px #888;&amp;quot;&amp;gt;Nexii Malthus&amp;lt;/span&amp;gt;]] 19:45, 19 September 2011 (PDT)&lt;br /&gt;
&lt;br /&gt;
I don&#039;t recall deleting any content recently, let alone an example. I remember once in the last year(or two?) deleting an entirely duplicate example (had been double pasted into the article?) but nothing more recent. So I&#039;m at a bit of a loss for words.&lt;br /&gt;
&lt;br /&gt;
I honestly wish people would post more examples, there is even a category for articles in need of examples: [[:Category:LSL_Needs_Example]] and general improvement [[:Category:LSL FixMe]]. I generally leave writing examples to others, not because I don&#039;t find them useful, I often can&#039;t think of a simple useful example, my examples tend to bury the usage in a script that is better placed in the Script Library (which no one ever sees or uses). I don&#039;t spend much time here and less time in SL, so I&#039;m pretty cautious with my edits and unlikely to edit an example or script.&lt;br /&gt;
&lt;br /&gt;
So I&#039;m Currently working my way through the new functions and features from [[Release_Notes/Second_Life_RC_LeTigre/11#11.09.09.240509]] but I don&#039;t have a lot of time to devote to it. -- &#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; 13:21, 20 September 2011 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Error with sensor page ==&lt;br /&gt;
&lt;br /&gt;
has anybody noticed that the sensor page shows up odd when not loged into the wiki?[[User:Tmzasz Luminos|Tmzasz Luminos]] 20:15, 14 February 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
:What browser are you using? -- &#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; 12:21, 15 February 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
:Never mind, it&#039;s definitely a wiki engine issue. -- &#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; 12:31, 15 February 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
:{{Jira|WEB-4489}} -- &#039;&#039;&#039;[[User:Strife_Onizuka|Strife]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Strife_Onizuka|talk]]|[[Special:Contributions/Strife_Onizuka|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 10:34, 17 February 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
== AGENT vs AGENT_BY_LEGACY_NAME - No ambiguity if there&#039;s no name to filter by ==&lt;br /&gt;
&lt;br /&gt;
The docs say: &amp;quot;If name, id, and/or type are empty or 0, they are ignored.&amp;quot; In that case, the name is empty, it&#039;s ignored and not to be interpreted in any meaningful way. There is no possible ambiguity on how the name should be interpreted because there is no name to filter by. And please explain the removal of the text about how adding a name affects the result. It was a good example of how to use AGENT_BY_LEGACY_NAME to resolve the ambiguity. Maybe a fictitious name should be used instead of an existing one to prevent self-promotion. I&#039;d agree with that, but that name wasn&#039;t even touched. I don&#039;t understand the reversal. -- [[User:Sei Lisa|Sei Lisa]] 10:00, 22 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
: I think the example text rollback was an oversight. I shall put it back. I agree, we should choose someone else, for kicks we could make it the last person who edits the page. Thoughts?&lt;br /&gt;
: I&#039;m going to split hairs a bit, the ambiguity does not go away, it just becomes meaningless. However when you edit the code to add a name, that is when the ambiguity matters and where AGENT bite you in the butt. I&#039;d really would like to kill [[AGENT]] off to rid us of this problem. With AGENT we save in letters typed but we get burned by creating a lovely little &amp;quot;Gotcha&amp;quot;: For the new users they would see the three flags and expect [[AGENT]] to be the generic form that allows you to search by either and most likely to be the one that searches by display name. No [[AGENT]], no misunderstanding in the mind of the reader. Hopefully when they encounter [[AGENT]] it will be on the documentation. Regardless, I find using the longer name with the null case distasteful but something I think is worth inflicting on new users. Like using [[run_time_permissions]].&lt;br /&gt;
: Your gallery solution is the most practical of them all. I not happy with how gallery breaks things but recreating gallery with templates is something I&#039;m going to avoid.  -- &#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:39, 22 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:: On names: using either a famous Linden name or a fictitious name feels better than a variable one. Governor Linden is one I&#039;m considering, and John Doe is another. I&#039;d lean towards the latter.&lt;br /&gt;
:: On the gallery: What I miss with the gallery is a reference in the text that says where to find it (&amp;quot;look at the bottom of this page...&amp;quot;)&lt;br /&gt;
:: On the edit: Given that I have yet to see one use case for AGENT_BY_USERNAME, I would aim for readability, and AGENT is preferable not because it&#039;s shorter, but because it doesn&#039;t confuse with something that is very rarely if at all there (the username or the legacy name). Once you put a name, if that ever happens, which I doubt, especially for a new user, you can change it to the correct type of name. And of course, you can not &amp;quot;kill&amp;quot; AGENT, because AGENT_BY_USERNAME does simply not work at all with llDetectedType, and AGENT_BY_LEGACY_NAME is very clearly a misname for that case. The flags are shared with llDetectedType and there&#039;s even no indication in that page that AGENT_BY_USERNAME won&#039;t work at all with it. That is a separate issue, but the logic that leads to preferring AGENT there also applies to prefer AGENT when no name is specified in llSensor. -- [[User:Sei Lisa|Sei Lisa]] 01:16, 23 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:: &amp;lt;rant&amp;gt; I consider the introduction of AGENT_BY_LEGACY_NAME a mistake. The whole display name system has been a hack on top of the existing, now &amp;quot;legacy&amp;quot; name system, including the LSL additions. The same logic that led to the introduction of AGENT_BY_LEGACY_NAME should for example have led to deprecating llKey2Name and introducing llGetLegacyName as a synonym, yet that didn&#039;t happen. People are expected to know that llKey2Name returns a legacy name and not a display name or username. It shouldn&#039;t be any different with AGENT; just adding AGENT_BY_USERNAME to provide access to the new functionality should have been enough. The mere presence of AGENT_BY_LEGACY_NAME has proven to introduce more confusion than the one caused by forgetting to change it to AGENT_BY_USERNAME when using a username in the name (again, if that ever happens). The problem is that it references a name where it isn&#039;t applicable, leaving the reader of the code wondering: &amp;quot;Name? What name?&amp;quot; It&#039;s akin to giving instructions to someone having a step that is not applicable at all. Imagine telling someone &amp;quot;Go straight through this street; turn right when you see a sign that says &#039;X&#039;, and turn left when you see a sign that says &#039;Y&#039;&amp;quot; but there is only an &#039;Y&#039; sign and all that is needed to reach the destination is to turn left when reaching it. The instructions are logically impeccable, and anyone following them literally will reach the destination, but the receiver will wonder where is that &#039;X&#039; sign. That&#039;s what I feel every time I see a llSensor call using &amp;quot;&amp;quot; as name and AGENT_BY_LEGACY_NAME as constant. If one is to be killed, it&#039;s AGENT_BY_LEGACY_NAME, not AGENT. &amp;lt;/rant&amp;gt;&lt;br /&gt;
:: There, I said it. To elaborate on shortness, being shorter is not at all a reason to prefer it. I really wish that it at least had a namespace prefix like SENSOR_ or OBJECT_TYPE_ or the like, to reduce the chance of name collisions and clarify the scope of its applicability. It doesn&#039;t, sadly. -- [[User:Sei Lisa|Sei Lisa]] 02:00, 23 October 2013 (PDT)&lt;br /&gt;
:::Good point about directions.&lt;br /&gt;
:::llDetectedType: I&#039;ll poke the template so it does not show the AGENT_* constants there, only AGENT. I really wish they had prefixed them, also the texture animation constants, who would guess [[PING_PONG]] was a texture animation constant without looking it up? LSL was built before it was designed. Personally it all have been better if LSL was object oriented, you wouldn&#039;t have had so many silly lookup functions.&lt;br /&gt;
:::Governor Linden was actually who I was thinking of, that or Philip Linden. -- &#039;&#039;&#039;[[User:Strife_Onizuka|Strife]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Strife_Onizuka|talk]]|[[Special:Contributions/Strife_Onizuka|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 10:59, 23 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
::::I have to agree with Sei on this one. It is clearly silly to say you are searching by a name when that is exactly what you are not doing. Like it or not, AGENT exists, and we should demonstrate it. I will continue to use AGENT where appropriate for as long as it compiles. I also belong to the school that feels that the whole display name idea was a stupid mistake. [[User:Omei Qunhua|Omei Qunhua]] 12:52, 23 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:::: @ Strife:&lt;br /&gt;
:::: On names: While I still would lean towards John Doe, I have no strong opinion; Governor Linden is fine with me. Philip Linden could potentially have political issues in future, I hope not.&lt;br /&gt;
:::: On prefixes: Sad thing is they made the same mistake recently when they introduced HORIZONTAL and VERTICAL for pathfinding. Talk about namespace pollution. Oh, well.&lt;br /&gt;
:::: On the change: would you consider re-applying my changes then?&lt;br /&gt;
:::: @ Omei: Thanks for the support :) I wouldn&#039;t go as far as calling it a stupid mistake, but it&#039;s a hack no matter how good or bad idea it is. -- [[User:Sei Lisa|Sei Lisa]] 13:20, 23 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:::: Thanks for the change, very appreciated! -- [[User:Sei Lisa|Sei Lisa]] 10:05, 24 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
::::: You are welcome. I would be ok with causing a little political uproar. Streisand effect, would be good for the wiki. -- &#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; 22:01, 25 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Diameter or Radius? ==&lt;br /&gt;
&lt;br /&gt;
Why does this functions wiki page not explicitly state weather the float RANGE, is a Diameter, or a Radius?&lt;br /&gt;
&lt;br /&gt;
Just calling it a Range, seems kinda ambiguous. Sure many of us can just assume, or experiment to be sure. But it seems like info that belongs on the upper most definition of the function. &lt;br /&gt;
&lt;br /&gt;
Maybe I&#039;m just missing it due to sleep deprivation. [[User:ThumpieBunnyEve Hax|ThumpieBunnyEve Hax]] ([[User talk:ThumpieBunnyEve Hax|talk]]) 15:23, 18 March 2015 (PDT)&lt;br /&gt;
&lt;br /&gt;
:&amp;quot;Range&amp;quot; means distance from the prim&#039;s or the wearer&#039;s center. That forms a sphere around said center, with the range&#039;s radius, within which everything is &amp;quot;in range&amp;quot; and everything outside is &amp;quot;out of range&amp;quot;. Therefore it is the radius. --[[User:Pedro Oval|Pedro Oval]] ([[User talk:Pedro Oval|talk]]) 04:44, 19 March 2015 (PDT)&lt;br /&gt;
&lt;br /&gt;
::I submit my edit to the page for clarity. I was confident my mention of radius, and &amp;quot;distance from center&amp;quot; was sufficient, valid, and helpful. If it doesn&#039;t get changed back, then yay for a positive contribution! [[User:ThumpieBunnyEve Hax|ThumpieBunnyEve Hax]] ([[User talk:ThumpieBunnyEve Hax|talk]]) 07:33, 19 March 2015 (PDT)&lt;br /&gt;
&lt;br /&gt;
::: I personally find it more confusing when put that way. It doesn&#039;t state the center of what, or the radius or what geometric figure or why it matters, while &amp;quot;range&amp;quot; is clearly implicitly referring to a distance, which logically must be from the script that has the sensor to the detected object. I don&#039;t know where did your confusion between radius and diameter come from, as not many people will realize immediately that the range volume forms a sphere. My vote is for that change to be reverted. --[[User:Pedro Oval|Pedro Oval]] ([[User talk:Pedro Oval|talk]]) 08:57, 19 March 2015 (PDT)&lt;br /&gt;
&lt;br /&gt;
:::: I fail to see where saying &amp;quot;Range&amp;quot; by itself is any more descriptive or accurate. It leaves more to the imagination then saying Radius, which by definition indicates from center point, inclusively to an end. Range, in fact can be easily misconstrued as a diameter, a square field, or a point at a variable distance forming a ring. Semantics are important and layman&#039;s terms such as &amp;quot;Range&amp;quot; when referring to a Radius, do not provide enough info for an accurate visualization of the procedure.  I prefer to call a dog &amp;quot;a dog&amp;quot;, rather then &amp;quot;the thing&amp;quot;. One I know not to store in the attic for a few years, the other, not so much. If you don&#039;t understand what the word Radius means, you can easily look it up in a dictionary, but looking up &amp;quot;Range&amp;quot; in a dictionary wont provide you any insight as to weather this process uses a diameter or a radius. In fact many people who I&#039;ve taught scripting to have asked me if &amp;quot;Range&amp;quot; was halved, when the Arc, was PI / 4. Implying they presumed &amp;quot;Range&amp;quot; to be a diameter.  I wonder where they got that notion?? Perhaps it was from the lack of clarity in this functions description. I suppose Ray-Length could be another plausible word. but it&#039;s 2 words. and &amp;quot;Length&amp;quot;, by itself would also not distinguish between diameter and radius as both are a measure of length. [[User:ThumpieBunnyEve Hax|ThumpieBunnyEve Hax]] ([[User talk:ThumpieBunnyEve Hax|talk]]) 09:56, 19 March 2015 (PDT)&lt;br /&gt;
&lt;br /&gt;
::::: {{quote|radius:&lt;br /&gt;
&lt;br /&gt;
1. a straight line from the center to the circumference of a circle or sphere.&lt;br /&gt;
2. the thicker and shorter of the two bones in the human forearm.}}&lt;br /&gt;
There&#039;s no sphere here. There&#039;s a vector that goes from the sensor to the potentially sensed object, whose length can be in-range or out-of-range. And there&#039;s another vector, the X axis of the prim, whose angle with the first vector determines whether the arc is in-range or out-of-range. No idea where your pupils got the concept of radius from, but I&#039;d bet that it&#039;s either from their own imagination or because you introduced it as a sphere in the first place. --[[User:Pedro Oval|Pedro Oval]] ([[User talk:Pedro Oval|talk]]) 11:04, 19 March 2015 (PDT)&lt;br /&gt;
&lt;br /&gt;
:::::: Quote: [ it&#039;s either from their own imagination or because you introduced it as a sphere in the first place. ] ~ Pedro Oval &lt;br /&gt;
:::::: Response: I&#039;d say it&#039;s more probable they infer it from this image, which is part of the wiki for this function itself.  http://wiki.secondlife.com/wiki/File:Sensor_pi.png [[User:ThumpieBunnyEve Hax|ThumpieBunnyEve Hax]] ([[User talk:ThumpieBunnyEve Hax|talk]]) 13:10, 19 March 2015 (PDT)&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
== Can it look the other way? ==&lt;br /&gt;
&lt;br /&gt;
I&#039;m trying to make a single prim see 30 things that are scattered symmetrically around it.  A single sensor() call can&#039;t see them all, as there are too many.  I thought I could look at the 15 in front, and then the 15 in back, but the arc is always in the forward direction.  Is there any way (a negative arc?) to look just behind and not in front?  I will do the experiment :) but if anyone knows...   [[User:Dale Innis|Dale Innis]] ([[User talk:Dale Innis|talk]]) 20:08, 15 August 2015 (PDT)&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:LlSensor&amp;diff=1197227</id>
		<title>Talk:LlSensor</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:LlSensor&amp;diff=1197227"/>
		<updated>2015-08-16T03:08:37Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: /* Can it look the other way? */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{talk}}&lt;br /&gt;
If PI/4 is a 45 degree cone: if the cone&#039;s axis is 1, does the base have a diameter of 2, or a diameter of ~0.82? --[[User:Asha Vultee|Asha Vultee]] 12:53, 19 November 2007 (PST)&lt;br /&gt;
&lt;br /&gt;
:Strictly speaking, it&#039;s not a cone. If you want an idea of what the shape will look like run the following script. -- [[User:Strife Onizuka|Strife Onizuka]] 13:20, 19 November 2007 (PST)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
float arc;&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llSetPrimitiveParams([PRIM_TYPE, PRIM_TYPE_SPHERE, 0, &amp;lt;0.,1.,0.&amp;gt;, 0.0, &amp;lt;0.,0.,0.&amp;gt;, &amp;lt;0.,arc/PI,0.&amp;gt;]);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Agent? ==&lt;br /&gt;
&lt;br /&gt;
Hey everyone, don&#039;t you think the &amp;quot;AGENT&amp;quot; flag should have a description along the lines of &amp;quot;This is used to find avatars only&amp;quot;. rather than a blank description? I tried to add it myself, but I&#039;m afraid I&#039;m too newbie to understand the formatting... I couldn&#039;t find that particular table.{{unsigned|Hikaru Dreadlow|17:31, 23 June 2008}}&lt;br /&gt;
&lt;br /&gt;
:Will do, the table is in a template ([[Template:LSL_Constants_Sensor]]) so that it can be included on llSensorRepeat too. -- [[User:Strife Onizuka|Strife Onizuka]] 15:02, 23 June 2008 (PDT)&lt;br /&gt;
&lt;br /&gt;
== All Object Sensor? ==&lt;br /&gt;
&lt;br /&gt;
Hey, can anyone tell me how to make an llSensor() that will scan for ANY object? For example, both physical and nonphysical, scripted and nonscripted, any combination. I tried combining all the flags (besides AGENT) with bitwise |, but it didn&#039;t seem to pick up all objects in range.{{unsigned|Crystals Galicia|16:45, 22 September 2008}}&lt;br /&gt;
&lt;br /&gt;
BloodyRain Rang: seems like LL screwed the sensors up cause 0 as type should find all things, even avatars but it doesnt work. And without that it seems impossible to detect any objects without going through all combinations of ACTIVE PASSIVE and SCRIPTED (7 combinations btw). Hope this get fixed someday. (2008-12-08){{unsigned|BloodyRain Rang|18:02, 8 December 2008}}&lt;br /&gt;
&lt;br /&gt;
:My apologies for not catching this sooner (or seeing these comments). The documentation was in error about zero being an acceptable value for &#039;&#039;&#039;type&#039;&#039;&#039;. The error stemmed from the documentation being based initially on the tooltips from the client script editor. Most such errors were caught during the initial import but not all. -- &#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:21, 8 December 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
== The return of NULL_KEY caveats are a little lacking ==&lt;br /&gt;
&lt;br /&gt;
The sensor will not trigger if an invalid key (NULL_KEY) is &amp;quot;found&amp;quot; but if the structure of the script allows it the empty NULL_KEY can be returned. As with the simple following.&amp;lt;lsl&amp;gt;default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llSensorRepeat(&amp;quot;&amp;quot;, &amp;quot;&amp;quot;, 3, 20.0, PI, 1.0);&lt;br /&gt;
    }&lt;br /&gt;
    sensor(integer detected)&lt;br /&gt;
    {&lt;br /&gt;
        llSay(0, (string)llDetectedName(0));&lt;br /&gt;
        llSay(0, (string)llDetectedName(1));&lt;br /&gt;
        llSay(0, (string)llDetectedName(2));&lt;br /&gt;
        llSay(0, (string)llDetectedName(3));&lt;br /&gt;
        llSay(0, (string)llDetectedName(4));&lt;br /&gt;
        llSay(0, (string)llDetectedName(5));&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;I&#039;m not saying this is good scripting but since it returns 5 null keys and 1 avatar (if it only finds one etc.) not being fully aware of the facts while compiling lists for eg. could get messy. Fact: If the event is not structured well to exclude NULL_KEYs they can be returned. -- &#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; 21:21, 8 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Agent&#039;s sit target no longer shows up? ==&lt;br /&gt;
This statement:&lt;br /&gt;
&amp;quot;If the agent is sitting on an object, the root prim of the sat upon object becomes a second sensor target for the agent (but not if the avatar is outside the sensor arc, see SVC-5145[c]).&amp;quot;&lt;br /&gt;
no longer seems to be true - if you search for an agent, you only get the agent, and not the object it&#039;s sitting on. (No clue when this changed, I only tried it for the first time tonight).&lt;br /&gt;
[[User:Redwood Rhiadra|Redwood Rhiadra]] 01:22, 2 October 2010 (UTC)&lt;br /&gt;
: Hi, this feature is definitely confusing, that is what {{Jira|SVC-5145}} is, a request to make the behavior sensible and consistent. I will repeat the tests this weekend and see if it is broken in the same old way or if there are new ways too. --[[User:Cerise Sorbet|Cerise Sorbet]] 03:30, 2 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
__________________________________&lt;br /&gt;
&lt;br /&gt;
== examples on this page are inadequate. == &lt;br /&gt;
&lt;br /&gt;
And no, I don&#039;t dare try to add any more, because Strife the Control Queen doesn&#039;t need examples for himself, so he just deletes them all.&lt;br /&gt;
&lt;br /&gt;
[[User:Chaz Longstaff|Chaz Longstaff]] 18:20, 19 September 2011 (PDT)&lt;br /&gt;
:The ad homimem attack is unnecessary. Taking a look at llListen which is another function that is paired with an event, I added an example script to showcase llSensor with the sensor event. Will that do? --[[User:Nexii Malthus|&amp;lt;span style=&amp;quot;color: #111; text-shadow:-1px -1px #ddd, 1px 1px #888;&amp;quot;&amp;gt;Nexii Malthus&amp;lt;/span&amp;gt;]] 19:45, 19 September 2011 (PDT)&lt;br /&gt;
&lt;br /&gt;
I don&#039;t recall deleting any content recently, let alone an example. I remember once in the last year(or two?) deleting an entirely duplicate example (had been double pasted into the article?) but nothing more recent. So I&#039;m at a bit of a loss for words.&lt;br /&gt;
&lt;br /&gt;
I honestly wish people would post more examples, there is even a category for articles in need of examples: [[:Category:LSL_Needs_Example]] and general improvement [[:Category:LSL FixMe]]. I generally leave writing examples to others, not because I don&#039;t find them useful, I often can&#039;t think of a simple useful example, my examples tend to bury the usage in a script that is better placed in the Script Library (which no one ever sees or uses). I don&#039;t spend much time here and less time in SL, so I&#039;m pretty cautious with my edits and unlikely to edit an example or script.&lt;br /&gt;
&lt;br /&gt;
So I&#039;m Currently working my way through the new functions and features from [[Release_Notes/Second_Life_RC_LeTigre/11#11.09.09.240509]] but I don&#039;t have a lot of time to devote to it. -- &#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; 13:21, 20 September 2011 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Error with sensor page ==&lt;br /&gt;
&lt;br /&gt;
has anybody noticed that the sensor page shows up odd when not loged into the wiki?[[User:Tmzasz Luminos|Tmzasz Luminos]] 20:15, 14 February 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
:What browser are you using? -- &#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; 12:21, 15 February 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
:Never mind, it&#039;s definitely a wiki engine issue. -- &#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; 12:31, 15 February 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
:{{Jira|WEB-4489}} -- &#039;&#039;&#039;[[User:Strife_Onizuka|Strife]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Strife_Onizuka|talk]]|[[Special:Contributions/Strife_Onizuka|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 10:34, 17 February 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
== AGENT vs AGENT_BY_LEGACY_NAME - No ambiguity if there&#039;s no name to filter by ==&lt;br /&gt;
&lt;br /&gt;
The docs say: &amp;quot;If name, id, and/or type are empty or 0, they are ignored.&amp;quot; In that case, the name is empty, it&#039;s ignored and not to be interpreted in any meaningful way. There is no possible ambiguity on how the name should be interpreted because there is no name to filter by. And please explain the removal of the text about how adding a name affects the result. It was a good example of how to use AGENT_BY_LEGACY_NAME to resolve the ambiguity. Maybe a fictitious name should be used instead of an existing one to prevent self-promotion. I&#039;d agree with that, but that name wasn&#039;t even touched. I don&#039;t understand the reversal. -- [[User:Sei Lisa|Sei Lisa]] 10:00, 22 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
: I think the example text rollback was an oversight. I shall put it back. I agree, we should choose someone else, for kicks we could make it the last person who edits the page. Thoughts?&lt;br /&gt;
: I&#039;m going to split hairs a bit, the ambiguity does not go away, it just becomes meaningless. However when you edit the code to add a name, that is when the ambiguity matters and where AGENT bite you in the butt. I&#039;d really would like to kill [[AGENT]] off to rid us of this problem. With AGENT we save in letters typed but we get burned by creating a lovely little &amp;quot;Gotcha&amp;quot;: For the new users they would see the three flags and expect [[AGENT]] to be the generic form that allows you to search by either and most likely to be the one that searches by display name. No [[AGENT]], no misunderstanding in the mind of the reader. Hopefully when they encounter [[AGENT]] it will be on the documentation. Regardless, I find using the longer name with the null case distasteful but something I think is worth inflicting on new users. Like using [[run_time_permissions]].&lt;br /&gt;
: Your gallery solution is the most practical of them all. I not happy with how gallery breaks things but recreating gallery with templates is something I&#039;m going to avoid.  -- &#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:39, 22 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:: On names: using either a famous Linden name or a fictitious name feels better than a variable one. Governor Linden is one I&#039;m considering, and John Doe is another. I&#039;d lean towards the latter.&lt;br /&gt;
:: On the gallery: What I miss with the gallery is a reference in the text that says where to find it (&amp;quot;look at the bottom of this page...&amp;quot;)&lt;br /&gt;
:: On the edit: Given that I have yet to see one use case for AGENT_BY_USERNAME, I would aim for readability, and AGENT is preferable not because it&#039;s shorter, but because it doesn&#039;t confuse with something that is very rarely if at all there (the username or the legacy name). Once you put a name, if that ever happens, which I doubt, especially for a new user, you can change it to the correct type of name. And of course, you can not &amp;quot;kill&amp;quot; AGENT, because AGENT_BY_USERNAME does simply not work at all with llDetectedType, and AGENT_BY_LEGACY_NAME is very clearly a misname for that case. The flags are shared with llDetectedType and there&#039;s even no indication in that page that AGENT_BY_USERNAME won&#039;t work at all with it. That is a separate issue, but the logic that leads to preferring AGENT there also applies to prefer AGENT when no name is specified in llSensor. -- [[User:Sei Lisa|Sei Lisa]] 01:16, 23 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:: &amp;lt;rant&amp;gt; I consider the introduction of AGENT_BY_LEGACY_NAME a mistake. The whole display name system has been a hack on top of the existing, now &amp;quot;legacy&amp;quot; name system, including the LSL additions. The same logic that led to the introduction of AGENT_BY_LEGACY_NAME should for example have led to deprecating llKey2Name and introducing llGetLegacyName as a synonym, yet that didn&#039;t happen. People are expected to know that llKey2Name returns a legacy name and not a display name or username. It shouldn&#039;t be any different with AGENT; just adding AGENT_BY_USERNAME to provide access to the new functionality should have been enough. The mere presence of AGENT_BY_LEGACY_NAME has proven to introduce more confusion than the one caused by forgetting to change it to AGENT_BY_USERNAME when using a username in the name (again, if that ever happens). The problem is that it references a name where it isn&#039;t applicable, leaving the reader of the code wondering: &amp;quot;Name? What name?&amp;quot; It&#039;s akin to giving instructions to someone having a step that is not applicable at all. Imagine telling someone &amp;quot;Go straight through this street; turn right when you see a sign that says &#039;X&#039;, and turn left when you see a sign that says &#039;Y&#039;&amp;quot; but there is only an &#039;Y&#039; sign and all that is needed to reach the destination is to turn left when reaching it. The instructions are logically impeccable, and anyone following them literally will reach the destination, but the receiver will wonder where is that &#039;X&#039; sign. That&#039;s what I feel every time I see a llSensor call using &amp;quot;&amp;quot; as name and AGENT_BY_LEGACY_NAME as constant. If one is to be killed, it&#039;s AGENT_BY_LEGACY_NAME, not AGENT. &amp;lt;/rant&amp;gt;&lt;br /&gt;
:: There, I said it. To elaborate on shortness, being shorter is not at all a reason to prefer it. I really wish that it at least had a namespace prefix like SENSOR_ or OBJECT_TYPE_ or the like, to reduce the chance of name collisions and clarify the scope of its applicability. It doesn&#039;t, sadly. -- [[User:Sei Lisa|Sei Lisa]] 02:00, 23 October 2013 (PDT)&lt;br /&gt;
:::Good point about directions.&lt;br /&gt;
:::llDetectedType: I&#039;ll poke the template so it does not show the AGENT_* constants there, only AGENT. I really wish they had prefixed them, also the texture animation constants, who would guess [[PING_PONG]] was a texture animation constant without looking it up? LSL was built before it was designed. Personally it all have been better if LSL was object oriented, you wouldn&#039;t have had so many silly lookup functions.&lt;br /&gt;
:::Governor Linden was actually who I was thinking of, that or Philip Linden. -- &#039;&#039;&#039;[[User:Strife_Onizuka|Strife]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Strife_Onizuka|talk]]|[[Special:Contributions/Strife_Onizuka|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 10:59, 23 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
::::I have to agree with Sei on this one. It is clearly silly to say you are searching by a name when that is exactly what you are not doing. Like it or not, AGENT exists, and we should demonstrate it. I will continue to use AGENT where appropriate for as long as it compiles. I also belong to the school that feels that the whole display name idea was a stupid mistake. [[User:Omei Qunhua|Omei Qunhua]] 12:52, 23 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:::: @ Strife:&lt;br /&gt;
:::: On names: While I still would lean towards John Doe, I have no strong opinion; Governor Linden is fine with me. Philip Linden could potentially have political issues in future, I hope not.&lt;br /&gt;
:::: On prefixes: Sad thing is they made the same mistake recently when they introduced HORIZONTAL and VERTICAL for pathfinding. Talk about namespace pollution. Oh, well.&lt;br /&gt;
:::: On the change: would you consider re-applying my changes then?&lt;br /&gt;
:::: @ Omei: Thanks for the support :) I wouldn&#039;t go as far as calling it a stupid mistake, but it&#039;s a hack no matter how good or bad idea it is. -- [[User:Sei Lisa|Sei Lisa]] 13:20, 23 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:::: Thanks for the change, very appreciated! -- [[User:Sei Lisa|Sei Lisa]] 10:05, 24 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
::::: You are welcome. I would be ok with causing a little political uproar. Streisand effect, would be good for the wiki. -- &#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; 22:01, 25 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Diameter or Radius? ==&lt;br /&gt;
&lt;br /&gt;
Why does this functions wiki page not explicitly state weather the float RANGE, is a Diameter, or a Radius?&lt;br /&gt;
&lt;br /&gt;
Just calling it a Range, seems kinda ambiguous. Sure many of us can just assume, or experiment to be sure. But it seems like info that belongs on the upper most definition of the function. &lt;br /&gt;
&lt;br /&gt;
Maybe I&#039;m just missing it due to sleep deprivation. [[User:ThumpieBunnyEve Hax|ThumpieBunnyEve Hax]] ([[User talk:ThumpieBunnyEve Hax|talk]]) 15:23, 18 March 2015 (PDT)&lt;br /&gt;
&lt;br /&gt;
:&amp;quot;Range&amp;quot; means distance from the prim&#039;s or the wearer&#039;s center. That forms a sphere around said center, with the range&#039;s radius, within which everything is &amp;quot;in range&amp;quot; and everything outside is &amp;quot;out of range&amp;quot;. Therefore it is the radius. --[[User:Pedro Oval|Pedro Oval]] ([[User talk:Pedro Oval|talk]]) 04:44, 19 March 2015 (PDT)&lt;br /&gt;
&lt;br /&gt;
::I submit my edit to the page for clarity. I was confident my mention of radius, and &amp;quot;distance from center&amp;quot; was sufficient, valid, and helpful. If it doesn&#039;t get changed back, then yay for a positive contribution! [[User:ThumpieBunnyEve Hax|ThumpieBunnyEve Hax]] ([[User talk:ThumpieBunnyEve Hax|talk]]) 07:33, 19 March 2015 (PDT)&lt;br /&gt;
&lt;br /&gt;
::: I personally find it more confusing when put that way. It doesn&#039;t state the center of what, or the radius or what geometric figure or why it matters, while &amp;quot;range&amp;quot; is clearly implicitly referring to a distance, which logically must be from the script that has the sensor to the detected object. I don&#039;t know where did your confusion between radius and diameter come from, as not many people will realize immediately that the range volume forms a sphere. My vote is for that change to be reverted. --[[User:Pedro Oval|Pedro Oval]] ([[User talk:Pedro Oval|talk]]) 08:57, 19 March 2015 (PDT)&lt;br /&gt;
&lt;br /&gt;
:::: I fail to see where saying &amp;quot;Range&amp;quot; by itself is any more descriptive or accurate. It leaves more to the imagination then saying Radius, which by definition indicates from center point, inclusively to an end. Range, in fact can be easily misconstrued as a diameter, a square field, or a point at a variable distance forming a ring. Semantics are important and layman&#039;s terms such as &amp;quot;Range&amp;quot; when referring to a Radius, do not provide enough info for an accurate visualization of the procedure.  I prefer to call a dog &amp;quot;a dog&amp;quot;, rather then &amp;quot;the thing&amp;quot;. One I know not to store in the attic for a few years, the other, not so much. If you don&#039;t understand what the word Radius means, you can easily look it up in a dictionary, but looking up &amp;quot;Range&amp;quot; in a dictionary wont provide you any insight as to weather this process uses a diameter or a radius. In fact many people who I&#039;ve taught scripting to have asked me if &amp;quot;Range&amp;quot; was halved, when the Arc, was PI / 4. Implying they presumed &amp;quot;Range&amp;quot; to be a diameter.  I wonder where they got that notion?? Perhaps it was from the lack of clarity in this functions description. I suppose Ray-Length could be another plausible word. but it&#039;s 2 words. and &amp;quot;Length&amp;quot;, by itself would also not distinguish between diameter and radius as both are a measure of length. [[User:ThumpieBunnyEve Hax|ThumpieBunnyEve Hax]] ([[User talk:ThumpieBunnyEve Hax|talk]]) 09:56, 19 March 2015 (PDT)&lt;br /&gt;
&lt;br /&gt;
::::: {{quote|radius:&lt;br /&gt;
&lt;br /&gt;
1. a straight line from the center to the circumference of a circle or sphere.&lt;br /&gt;
2. the thicker and shorter of the two bones in the human forearm.}}&lt;br /&gt;
There&#039;s no sphere here. There&#039;s a vector that goes from the sensor to the potentially sensed object, whose length can be in-range or out-of-range. And there&#039;s another vector, the X axis of the prim, whose angle with the first vector determines whether the arc is in-range or out-of-range. No idea where your pupils got the concept of radius from, but I&#039;d bet that it&#039;s either from their own imagination or because you introduced it as a sphere in the first place. --[[User:Pedro Oval|Pedro Oval]] ([[User talk:Pedro Oval|talk]]) 11:04, 19 March 2015 (PDT)&lt;br /&gt;
&lt;br /&gt;
:::::: Quote: [ it&#039;s either from their own imagination or because you introduced it as a sphere in the first place. ] ~ Pedro Oval &lt;br /&gt;
:::::: Response: I&#039;d say it&#039;s more probable they infer it from this image, which is part of the wiki for this function itself.  http://wiki.secondlife.com/wiki/File:Sensor_pi.png [[User:ThumpieBunnyEve Hax|ThumpieBunnyEve Hax]] ([[User talk:ThumpieBunnyEve Hax|talk]]) 13:10, 19 March 2015 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Can it look the other way? ==&lt;br /&gt;
&lt;br /&gt;
I&#039;m trying to make a single prim see 30 things that are scattered symmetrically around it.  A single sensor() call can&#039;t see them all, as there are too many.  I thought I could look at the 15 in front, and then the 15 in back, but the arc is always in the forward direction.  Is there any way (a negative arc?) to look just behind and not in front?  I will do the experiment :) but if anyone knows...   [[User:Dale Innis|Dale Innis]] ([[User talk:Dale Innis|talk]]) 20:08, 15 August 2015 (PDT)&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:AvatarFollower&amp;diff=1195474</id>
		<title>Talk:AvatarFollower</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:AvatarFollower&amp;diff=1195474"/>
		<updated>2015-02-05T14:19:47Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: yes, well&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi&lt;br /&gt;
&lt;br /&gt;
Can I get a full detail of how can I use this script and where should I add this  script and the fundamentals .&lt;br /&gt;
Thank you.&lt;br /&gt;
&lt;br /&gt;
Well, the &amp;quot;Usage&amp;quot; section is supposed to be that.  If you have questions that it doesn&#039;t answer, feel free to ask! [[User:Dale Innis|Dale Innis]] ([[User talk:Dale Innis|talk]]) 06:19, 5 February 2015 (PST)&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:LlRequestAgentData&amp;diff=1193725</id>
		<title>Talk:LlRequestAgentData</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:LlRequestAgentData&amp;diff=1193725"/>
		<updated>2014-10-04T17:56:36Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: /* What happens with an invalid key? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Is this function reporting properly? Specifically, I seem to get more &amp;quot;2&amp;quot;s than I should. My status is on file and use and it returns a 2 for me. Yet, I do see threes returned for some people. In fact, I see 0 (No info), 2 (No Info but Used(Weird)) and 3 (Info and used), but never 1 (Info filed). Were the bits repurposed and the docs not updated? --[[User:Clang Bailey|Clang Bailey]] 16:34, 29 January 2008 (PST)&lt;br /&gt;
:It is possible to remove the payment information from the file after it has been used. -- [[User:Strife Onizuka|Strife Onizuka]] 20:24, 29 January 2008 (PST)&lt;br /&gt;
&lt;br /&gt;
== taking a byte out of the integer ==&lt;br /&gt;
&lt;br /&gt;
The integer parameter, seems to actually be just the first 8 bits of the the 32bits signed integer, add or subtract 256 (or any power of 256) from any of the constants and the result should be the same, even when going to negative values. --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 13:00, 12 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:This doesn&#039;t surprise me. The underlying dataserver [[Message]] I&#039;d bet uses a single byte. The number of frames supported by texture animations are similarly limited. I&#039;ll work this into the documentation later (caveat? notes?... notes definately). -- &#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; 22:22, 12 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Displaying Avatar Name information? ==&lt;br /&gt;
&lt;br /&gt;
I&#039;m not sure what the 3rd caveat intended. It just puts a clickable link in chat to open the avatar&#039;s profile. It&#039;s not useful to a script that wants to access the name. [[User:Omei Qunhua|Omei Qunhua]] 07:16, 12 January 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
:True, not useful for a script but might be useful for a human who just wants to a quick Key2Name... but then why not just type that string? Hmmm. Lets move that to notes or something. -- &#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:18, 12 January 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
== What happens with an invalid key? ==&lt;br /&gt;
&lt;br /&gt;
In my limited experiments, dataserver() never gets called at all.  Which seems sort of suboptimal!  In that you can&#039;t tell &amp;quot;key was wrong&amp;quot; from &amp;quot;it&#039;s taking a really long time to fill the request&amp;quot;.  Is that correct?  Should it be documented here?  (Or is it and I just overlooked it?) &lt;br /&gt;
 &lt;br /&gt;
It would seem more useful to call dataserver back with &amp;quot;&amp;quot; or something, but at this point that would probably be a breaking change... &lt;br /&gt;
&lt;br /&gt;
[[User:Dale Innis|Dale Innis]] 10:55, 4 October 2014 (PDT)&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:LlRequestAgentData&amp;diff=1193724</id>
		<title>Talk:LlRequestAgentData</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:LlRequestAgentData&amp;diff=1193724"/>
		<updated>2014-10-04T17:55:46Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: /* What happens with an invalid key? */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Is this function reporting properly? Specifically, I seem to get more &amp;quot;2&amp;quot;s than I should. My status is on file and use and it returns a 2 for me. Yet, I do see threes returned for some people. In fact, I see 0 (No info), 2 (No Info but Used(Weird)) and 3 (Info and used), but never 1 (Info filed). Were the bits repurposed and the docs not updated? --[[User:Clang Bailey|Clang Bailey]] 16:34, 29 January 2008 (PST)&lt;br /&gt;
:It is possible to remove the payment information from the file after it has been used. -- [[User:Strife Onizuka|Strife Onizuka]] 20:24, 29 January 2008 (PST)&lt;br /&gt;
&lt;br /&gt;
== taking a byte out of the integer ==&lt;br /&gt;
&lt;br /&gt;
The integer parameter, seems to actually be just the first 8 bits of the the 32bits signed integer, add or subtract 256 (or any power of 256) from any of the constants and the result should be the same, even when going to negative values. --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 13:00, 12 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:This doesn&#039;t surprise me. The underlying dataserver [[Message]] I&#039;d bet uses a single byte. The number of frames supported by texture animations are similarly limited. I&#039;ll work this into the documentation later (caveat? notes?... notes definately). -- &#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; 22:22, 12 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Displaying Avatar Name information? ==&lt;br /&gt;
&lt;br /&gt;
I&#039;m not sure what the 3rd caveat intended. It just puts a clickable link in chat to open the avatar&#039;s profile. It&#039;s not useful to a script that wants to access the name. [[User:Omei Qunhua|Omei Qunhua]] 07:16, 12 January 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
:True, not useful for a script but might be useful for a human who just wants to a quick Key2Name... but then why not just type that string? Hmmm. Lets move that to notes or something. -- &#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:18, 12 January 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
== What happens with an invalid key? ==&lt;br /&gt;
&lt;br /&gt;
In my limited experiments, dataserver() never gets called at all.  Which seems sort of suboptimal!  In that you can&#039;t tell &amp;quot;key was wrong&amp;quot; from &amp;quot;it&#039;s taking a really long time to fill the request&amp;quot;.  Is that correct?  Should it be documented here?  (Or is it and I just overlooked it?)  It would seem more useful to call dataserver back with &amp;quot;&amp;quot; or something, but at this point that would probably be a breaking change... [[User:Dale Innis|Dale Innis]] 10:55, 4 October 2014 (PDT)&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:LlSetPrimitiveParams&amp;diff=1191566</id>
		<title>Talk:LlSetPrimitiveParams</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:LlSetPrimitiveParams&amp;diff=1191566"/>
		<updated>2014-06-23T02:09:40Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: /* Three rogue &amp;quot;PRIM_SPECULAR&amp;quot;s */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Glow support in LSL ==&lt;br /&gt;
In Windlight there is support for a new parameter called &amp;quot;Glow.&amp;quot;  Is this in LSL yet?  I want! ;D -- [[User:Cron Stardust|Cron Stardust]] 16:09, 1 January 2008 (PST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Weird Happenings ==&lt;br /&gt;
For some reason this doesnt work&lt;br /&gt;
&lt;br /&gt;
llSetPrimitiveParams([&lt;br /&gt;
PRIM_TYPE,PRIM_TYPE_BOX,00,&amp;lt;0.0, 1.0, 0.0&amp;gt;, 0.0, &amp;lt;0.0, 0.0, 0.0&amp;gt;, &amp;lt;1.0, 1.0, 0.0&amp;gt;, &amp;lt;0.0, 0.0, 0.0&amp;gt;,PRIM_MATERIAL, PRIM_MATERIAL_STONE, PRIM_SIZE, &amp;lt;1.0,1.0,1.0&amp;gt;, PRIM_PHYSICS, TRUE]);&lt;br /&gt;
&lt;br /&gt;
the prim doesnt change&lt;br /&gt;
Is this a bug, or did I miss something ?&lt;br /&gt;
Anylyn Hax 01:33, 8 August 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
Was it a 1x1x1 box to start with? If so you might not notice the change and if it were a smaller shape sitting on the ground, making it larger would have it penetrate whats under it, and not be able to enable physics. Try changing PRIM_TYPE_BOX to PRIM_TYPE_CYLINDER. On style concerns, you could change 00 in the third position to PRIM_HOLE_DEFAULT but thats pure style and up to your conscience. -- [[User:Strife Onizuka|Strife Onizuka]] 12:41, 8 August 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
no, it was a virgin prim 0.5,0.5,0.5 a BOX, ... just make a small script and drop the code in.&lt;br /&gt;
its wired, if I remove the PRIM_PHYSICS, TRUE, it works.&lt;br /&gt;
Anylyn Hax 04:58, 9 August 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
== It changes prim properties - but the prim isn&#039;t affected ==&lt;br /&gt;
&lt;br /&gt;
Running a script to change a prim to flexi whilst running, and then back again at the end fails:-&lt;br /&gt;
&lt;br /&gt;
llSetPrimitiveParams([PRIM_FLEXIBLE,FALSE, etc])&lt;br /&gt;
&lt;br /&gt;
Turns flexible off, but leaves it as phantom.&lt;br /&gt;
&lt;br /&gt;
Adding:&lt;br /&gt;
&lt;br /&gt;
llSetPrimitiveParams([PRIM_PHANTOM,FALSE])&lt;br /&gt;
&lt;br /&gt;
Turns phantom off according to the object edit window, but I can still happily walk through it. Toggling flexible in the edit window restores a solid object, but that isn&#039;t much use.&lt;br /&gt;
{{Unsigned|Roken Price}}&lt;br /&gt;
&lt;br /&gt;
:Please submit a bug report on [https://jira.secondlife.com/ Jira]. -- &#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:39, 15 October 2008 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Shadow parameter ==&lt;br /&gt;
&lt;br /&gt;
Since there&#039;s a lot of work being done on the shadow code buried in the viewer (and turned off by default), is it likely that the PRIM_CAST_SHADOWS value might once more become useful? [[User:TaraLi Jie|TaraLi Jie]] 02:01, 28 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Slang Can Be Hard to Translate ==&lt;br /&gt;
&lt;br /&gt;
What is a &#039;sharp function&#039;?&lt;br /&gt;
&lt;br /&gt;
I see we say [[llSetPrimitiveParams]] is a &#039;sharp function&#039;.&lt;br /&gt;
&lt;br /&gt;
Could we improve the text by saying just &#039;powerful function&#039; rather than &#039;powerful &amp;amp; sharp function&#039;?&lt;br /&gt;
&lt;br /&gt;
-- [[User:Ppaatt Lynagh|Ppaatt Lynagh]] 17:39, 24 December 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
: It&#039;s a subtle warning. &amp;quot;sharp&amp;quot; in this context builds on the metaphor of a knife. It means that the function needs to be used carefully, that if you make a mistake it will not be forgiven (you will cut yourself). The user must be careful. -- &#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:55, 25 December 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Clear now, thank you, for me a completely new usage of the word &#039;sharp&#039;. -- [[User:Ppaatt Lynagh|Ppaatt Lynagh]] 03:51, 1 January 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: The first time I read this it did strike me as awkward. Perhaps &#039;finicky&#039; or &#039;nit-picky&#039; would be a better adjective. Unless misuse of the function could cause serious damage, I don&#039;t think it deserves &amp;quot;sharp&amp;quot;. --[[User:Christopher Omega|Christopher Omega]] 02:05, 30 March 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: It is conceivable that if the user were to make a mistake, an integer value could be interpreted as a PRIM_* instruction. While unlikely it is possible that the malformed instructions could parse without an error message, resulting in something the user didn&#039;t and no warning. I&#039;ve been thinking that a footnote or tooltip would be appropriate to describe what is meant by &amp;quot;sharp&amp;quot;. I would opt for &#039;bites-the-hand-that-feeds-it&#039;. -- &#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:22, 30 March 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Sharp can mean and basically &#039;&#039;&#039;does&#039;&#039;&#039; mean incisive. Take for example to &amp;quot;Have a sharp mind&amp;quot; or to be &amp;quot;sharp witted&amp;quot;. Both are common terms that describe an instinctive or highly defined attention to detail that results in an accurate return. The function does exactly that and it does it very well too. I think sharp is a very appropriate word. -- &#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; 07:18, 17 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Whitespace? ==&lt;br /&gt;
&lt;br /&gt;
I noted the comment about whitespace and the params listing shape is changed and wondered if it was for more than aesthetics? The simplification for the equation is great (lol(you should really see my scripts. I gotta feeling you would cringe)). Can you give a little explanation about the whitespace please Strife? Always eager to learn (sorry bout all the edits) -- &#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; 02:10, 16 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:The whitespace is so that people don&#039;t have to scroll horizontally; it&#039;s a real problem when using the client&#039;s built in browser. It&#039;s better to avoid long lines when possible. I used [[PRIM_SIZE]] because of the script delay. [[llSetScale]] and [[llSetPrimitiveParams]] both cause a 0.1 script delay; by combining them, we keep it down to 0.1 seconds instead of 0.2 seconds. Now, the LSL compiler is stupid, when it sees an integer constant being used where a float is expected, instead of doing the conversion at compile time, it inlines an implicit typecast instead; which costs more bytecode and is slower to execute. -- &#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:40, 17 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Wow, cool, wow and cool. I have adopted the method you showed me for the list of params (I didn&#039;t think of the delay (I stupid) but the list can cover a lot in one hit!!). So with the maths... even if it is plain maths inside brackets if there is an integer there the compiler gets upset? eek... I need to review all my scripts now :( I get you about the whitespace now. I try to keep them short where I can but didn&#039;t think about the inworld (rubbish) browser and forget that not everybody is widescreen etc. I will be more compact in future. Hi btw and thanx again. -- &#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; 03:48, 17 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Zai told me off (lolz kinda) for editing comments. But I am hoping this time you don&#039;t mind Strife. I strikes me as ridiculous to ask you to do it. -- &#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; 05:46, 17 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Editing comments is tough. Writing comments is just as tough. You have to consider your audience... and I mean really consider it... and probably justify it in the edit summary. It&#039;s something we don&#039;t do often enough (consider the audience). Commenting code is a balance between explaining what the code does, and letting the code explain what it does. I think a good way to comment code is:&lt;br /&gt;
:# You make the code as expressive as you can, with good variable names, functions and breaks.&lt;br /&gt;
:# Then you have the comments explain what the code is having trouble expressing. Don&#039;t worry if there is overlap, but you really don&#039;t want to be writing your program twice (the second time as comments).&lt;br /&gt;
: -- &#039;&#039;&#039;[[User:Strife_Onizuka|Strife]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Strife_Onizuka|talk]]|[[Special:Contributions/Strife_Onizuka|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 06:43, 17 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Ooops sry Strife. I was referring to the addition of the letter &amp;quot;a&amp;quot; in &amp;quot;llSetPrimitiveParams&amp;quot; in your comment above last. Typos happen (lots of &#039;em in my case) and the link was thus unfortunately broken. Zai is of course right to point out that editing talk page comments is bad behavior but I thought (correct me if I am wrong) that on this sort of occasion the fixing of a spelling would be ok. As for the orange comments I am on board with your instruction 100% (eagerly waiting to see what you make of my addition to [[llSubStringIndex]]). BTW... Other than something like ((5/100)*90) to get 90% how do I get the result more efficiently? Sorry for being a pain it just crossed my mind. -- &#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; 06:54, 17 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: F*#$, I had this great response I was just about to post and my browser went berserk on me and ate it (&amp;lt;.&amp;lt; maybe using a Nightly build wasn&#039;t such a good idea). I shall try to recreate.&lt;br /&gt;
: I had just found the referenced comment from Zai and came back here to find your comment. Oops.&lt;br /&gt;
: I should have checked the link, I wasn&#039;t awake. Thanks for fixing it.&lt;br /&gt;
: As to efficiency...&lt;br /&gt;
: Imagine your audience could understand anything you wrote no matter how complicated the vocabulary or grammar as long as it was properly constructed. You would be free to write it any way you wanted. To describe the paths of logic to the finest detail or cover them with broad brush strokes. You would be empowered.&lt;br /&gt;
: Now imagine that same audience having having to slave away at dictionaries, taking notes to work out the meaning of your magna opus. You would try to make it easier for them, you wouldn&#039;t use the complicated vocabulary, you would shun the complex grammer. You would turn your back on the empowerment that set you free. You would be enslaved to their ignorance and mental limitations.&lt;br /&gt;
: It is for this reason LSL is a dead language, it doesn&#039;t empower. If you want to do anything remotely interesting you have to dive into it&#039;s guts and learn how it works. You have to waste your time and mental faculties to dodge it&#039;s limitations. You can learn how to write faster code, less wasteful code, but it won&#039;t set you free.&lt;br /&gt;
: As to your addition to [[llSubStringIndex]], it&#039;s a bit too complex. If you are going to make an interactive example, you need to supply some explanatory text about how to use it. When dealing with multi-line comments, they should be above the code they reference. -- &#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; 08:34, 17 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:As to editing comments, on the wiki there isn&#039;t much in the way of personal space. Sure there are user pages but even they aren&#039;t entirely off limits. Comments are really the only personal space there is. -- &#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; 08:44, 17 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Wow. I feel like a soldier being given that final pep talk...&amp;quot;once more into the breach dear friends&amp;quot;... If by &amp;quot;guts&amp;quot; you mean the code under the code, eek. I still dunno all the functions (http gives me chills) but where are the guts? I am fascinated by the logic of programing. &amp;quot;Take 8 switches and put them into groups ...&amp;quot; I mean somewhere inside all this there is a system supporting a system supporting a system. I can&#039;t help but lol at the idea that my example is &#039;&#039;&#039;too&#039;&#039;&#039; complex. That&#039;s ironic. I started out trying to figure a relevant way to describe the method I developed for searching the string from the end (going backwards) but realized that (not only could I not find a way to give it a use without including loads of extra scripting) it would be so complex that it would be the very sort of script example I was afraid of when I started out. I&#039;ll add some more oranges. I do like the basic idea cause it uses [[llSubStringIndex]] in a few different ways and describes a way to get around one of the limitations.&lt;br /&gt;
&lt;br /&gt;
As for writing loads of words and browser crashing. That sucks. I feel for you there. I have experienced that myself and lost hours of work (in world scripts (painful) and typed out comments here in fact (but not through crashes, through network problems)). I hope that you realize how grateful I am for your advice and comments. &#039;&#039;&#039;Queue violins&#039;&#039;&#039; I haven&#039;t felt this driven and worthy for too long. Having a cause and a goal (in world and here) have turned my life around. Having a friend here watching and guiding is awesome. Thanx Strife. -- &#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; 16:56, 17 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Set just color, or just alpha, using params ==&lt;br /&gt;
&lt;br /&gt;
I know there&#039;s llSetColor and llSetAlpha, but it would be nice to also be able to set just the color, or just the alpha, using the params-style functions, without having to read the one you don&#039;t want to change in order to not change it.  (PRIM_COLOR needs both color and alpha; maybe a PRIM_ALPHA and a PRIM_JUST_COLOR? :) ) [[User:Dale Innis|Dale Innis]] 20:12, 5 August 2011 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Reference to link parameter ==&lt;br /&gt;
&lt;br /&gt;
llSetPrimitiveParams has no link parameter but this article has references to LINK_ROOT and LINK_THIS&amp;lt;br&amp;gt;&lt;br /&gt;
The references should be removed but I dare not do it. I fear to ruin the other PrimitiveParams articles if I try&amp;lt;br&amp;gt;[[User:Dora Gustafson|Dora Gustafson]] 10:09, 7 August 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:llSetPrimitiveParams has no link parameter but [[PRIM_LINK_TARGET]] does. What you have picked up on is that the emphasis and layout is wrong. The link information should be wrapped in the context of [[PRIM_LINK_TARGET]] for this article. I&#039;ll see what I can hack together but I fear this may be impossible without the PrimitiveParams documentation redesign, which is still in the planning phase. -- &#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; 13:46, 7 August 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:P.S. Why aren&#039;t you using [[llSetLinkPrimitiveParamsFast]]? -- &#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; 13:50, 7 August 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:P.S.S. Maybe we should merge the llSet*PrimitiveParams* articles. There really is no different between them except the delay and the link parameter. -- &#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; 13:50, 7 August 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
Your last suggestion is very sensible, the three articles should be merged. [[User:Dora Gustafson|Dora Gustafson]] 14:28, 7 August 2013 (PDT)&amp;lt;br&amp;gt;&lt;br /&gt;
I use llSetPrimitiveParams when I can&lt;br /&gt;
* For nostalgic reasons&lt;br /&gt;
* It&#039;s simplicity when I need no link&lt;br /&gt;
* The delay is often convenient&amp;lt;br&amp;gt;&lt;br /&gt;
[[User:Dora Gustafson|Dora Gustafson]] 14:28, 7 August 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Caveat in connection with llSetKeyframedMotion ==&lt;br /&gt;
&lt;br /&gt;
Sometimes llSetLinkPrimitiveParamsFast is too fast for for the server&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
llSetLinkPrimitiveParamsFast( LINK_THIS, [PRIM_POSITION, basePos, PRIM_ROTATION, baseRot]);&lt;br /&gt;
llSetKeyframedMotion( KFMlist, []);&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
In this example the prim is not in place before the key framed motion starts, so the initial conditions are bad resulting in an unwanted motion&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
llSetPrimitiveParams([PRIM_POSITION, basePos, PRIM_ROTATION, baseRot]);&lt;br /&gt;
llSetKeyframedMotion( KFMlist, []);&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
This code with the included delay, works smoothly. [[User:Dora Gustafson|Dora Gustafson]] 10:29, 18 August 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:I&#039;ve put in the llSetLinkPrimitiveParamsFast caveat and tried to explain why it happens. It&#039;s a great opportunity to introduce people to &amp;quot;asynchronous&amp;quot; and &amp;quot;synchronous&amp;quot; terminology (because they are a pain to learn and you have to start somewhere). If I had to guess, it&#039;s probably executing them between script timeslices. -- &#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; 09:16, 20 August 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
::I&#039;ve done some playing around with this lately because I was having issues with llSetLinkPrimitiveParamsFast() being asynchronous as well, and I discovered that you can make it much more reliable by emulating a forced delay, using &amp;quot;llSleep(0.022);&amp;quot; between each function call. 0.022 is one server frame, if memory serves, so this may force the function to synchronize. I&#039;ve tested it with 100 loops of subsequent colour changing, fullbright &amp;amp; glow changing on linksets with 100+ prims, using llSetLinkPrimitiveParamsFast() and so far I haven&#039;t experienced it desynchronizing. If anyone could help me confirm this, &amp;amp; it indeed makes the function more reliable, it will still be much faster in execution than the llSetLinkPrimitiveParams()&#039;s forced delay. -- [[User:Tenaar Feiri|Tenaar Feiri]] 04:21, 17 September 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
== TWIST ==&lt;br /&gt;
I can&#039;t see where to insert this:-  The figures required by the vector TWIST differ from those shown in the client view. The conversion seems to be:-  script twist value = client value divided by 360. e.g. client twist of 11 requires 0.03055 in llSPP. [[User:Omei Qunhua|Omei Qunhua]] 07:43, 5 January 2014 (PST)&lt;br /&gt;
: It&#039;s degrees. Used to be a decimal value though, afaik. Not sure when that changed. -- [[User:Kireji Haiku|Kireji Haiku]] 07:47, 5 January 2014 (PST)&lt;br /&gt;
:: Eh? The client value may be degrees, the script value is the proportion of a circle. (apparently). [[User:Omei Qunhua|Omei Qunhua]] 08:16, 5 January 2014 (PST)&lt;br /&gt;
:It is in the tooltips in the &amp;quot;Flag PArameters&amp;quot; column, and on the pages for each constant. Maybe the flag parameters header needs a subtitle to point out that there are important tooltips in there? --[[User:ObviousAltIsObvious Resident|ObviousAltIsObvious Resident]] 08:49, 5 January 2014 (PST)&lt;br /&gt;
:Well client range is now apparently &amp;lt;code&amp;gt;-180° ~ +180°&amp;lt;/code&amp;gt; and script should still be &amp;lt;code&amp;gt;-1.0 ~ +1.0&amp;lt;/code&amp;gt; as before. -- [[User:Kireji Haiku|Kireji Haiku]] 08:56, 5 January 2014 (PST)&lt;br /&gt;
:: Inworld testing is good. The client and LSL range depends on the prim type. +/-180 and +/-0.5 for box, cylinder, prism, but +/-180 and +/-1 for the rest of the twistable types. --[[User:ObviousAltIsObvious Resident|ObviousAltIsObvious Resident]] 09:04, 5 January 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
:Well it&#039;s got me stumped. I see nothing called &amp;quot;tooltips&amp;quot; on that page. And I&#039;ve looked at every occurrence of &amp;quot;twist&amp;quot; and nowhere does it tell me the range of scriptable values. There is a caveat explaining the conversion required for &#039;top_size&#039; (although that&#039;s buried somewhere in the intricacies of wiki-speak) but no caveat for twist. [[User:Omei Qunhua|Omei Qunhua]] 09:18, 5 January 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
:: OK, inworld testing done, actual LSL range is +/-1 for all prim types, while the +/-180 or 360 is still dependent on the prim type. The tooltips are the text that appears when the mouse hovers over the keywords with dotted underlining. I think it is too obscure, but the alternative that come to mind would make that wall of text even more intimidating. --[[User:ObviousAltIsObvious Resident|ObviousAltIsObvious Resident]] 09:27, 5 January 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
:Thanks. I investigated because a friend was trying to script twist, and only arrived at the desired effect by trial and error. She had studied the Wiki page, but like me was totally unaware of the existence of hover text. I&#039;ve never &#039;hovered&#039; - only gone to obvious links. :) [[User:Omei Qunhua|Omei Qunhua]] 09:51, 5 January 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
::You have been missing out. Any time you see the dotted underline indicates there is some extra information that is just a hover away. I have planned to use expandable sections to make the table better (eg give explanations etc for each param) but it hasn&#039;t happened yet (it&#039;s a huge project). -- &#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; 11:37, 5 January 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
== for your own sake? ==&lt;br /&gt;
&lt;br /&gt;
{{Quote|Although it might not seem obvious you actually can set [[link]] {{LSLP|rules}} using this function in combination with [[PRIM_LINK_TARGET]], however &#039;&#039;&#039;for your own sake&#039;&#039;&#039; please use [[#llSetLinkPrimitiveParams|llSetLinkPrimitiveParams]] or [[#llSetLinkPrimitiveParamsFast|llSetLinkPrimitiveParamsFast]] instead.}}&lt;br /&gt;
:I&#039;d like the logic explained. A footnotes at the least but a note explaining this would be handy. -- &#039;&#039;&#039;[[User:Strife_Onizuka|Strife]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Strife_Onizuka|talk]]|[[Special:Contributions/Strife_Onizuka|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 19:43, 9 January 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
== calls to linknumber 0 in a set giving odd reaction ==&lt;br /&gt;
&lt;br /&gt;
I accidentally ran into a bug calling linknumber 0 in a linkset.&lt;br /&gt;
Call it from a script in the root properly discards the call.&lt;br /&gt;
Call it from a script in a child prim though, and the call gets bounced to linknumber 1.&lt;br /&gt;
I would a note stating that effect (might be useful someday, for someone), but I can&#039;t seem to find out how to edit the notes; The edit page doesn&#039;t go that far for me.&lt;br /&gt;
[[User:Will Webb|Will Webb]] 15:11, 3 February 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
== Three rogue &amp;quot;PRIM_SPECULAR&amp;quot;s ==&lt;br /&gt;
&lt;br /&gt;
Three different tags (besides PRIM_SPECULAR) show &amp;quot;PRIM_SPECULAR&amp;quot; in the right most column of the table, instead of the correct tag: PRIM_TEXTURE, PRIM_NORMAL, and PRIM_ALPHA_MODE.  I would have fixed it myself, but it seems to be buried down in one or more layers of macros, and I couldn&#039;t find it...  :) [[User:Dale Innis|Dale Innis]] 19:09, 22 June 2014 (PDT)&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:Land_collision&amp;diff=1180705</id>
		<title>Talk:Land collision</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:Land_collision&amp;diff=1180705"/>
		<updated>2013-08-12T01:05:43Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: Water collision?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Water collision? ==&lt;br /&gt;
&lt;br /&gt;
I don&#039;t suppose there&#039;s any way to get this?  Outside of polling constantly to see if we&#039;ve gone from above water-level to below?  [[User:Dale Innis|Dale Innis]] 18:05, 11 August 2013 (PDT)&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:LlSetRegionPos&amp;diff=1180143</id>
		<title>Talk:LlSetRegionPos</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:LlSetRegionPos&amp;diff=1180143"/>
		<updated>2013-07-20T03:14:53Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: /* Going (just) off-sim? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Woot! ==&lt;br /&gt;
&lt;br /&gt;
Woot!  :)  [[User:Dale Innis|Dale Innis]] 10:33, 8 February 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
Does the &amp;quot;success tolerance&amp;quot; of 0.1m hint that the function is for some reason prone to hitting with that wide an error, or is it just a very, very, very safe margin for a floating point roundoff of the requested location?&lt;br /&gt;
[[User:Tali Rosca|Tali Rosca]] 10:10, 3 March 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The comment about warpPos is wrong&lt;br /&gt;
The error is &amp;lt;= 1e-6 .&lt;br /&gt;
( except of course if you try to go under the ground )&lt;br /&gt;
Tested on Linden Sandbox Magnum RC :&lt;br /&gt;
5000 llSetregionpos with random values ;&lt;br /&gt;
for z values &amp;lt; ground , we raise z;&lt;br /&gt;
Result : the 5000 llsetregionpos go to a correct position&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
    touch_start(integer total_number)&lt;br /&gt;
    {&lt;br /&gt;
&lt;br /&gt;
        integer numberTests = 5000 ;&lt;br /&gt;
        integer n = 1;&lt;br /&gt;
        vector d;&lt;br /&gt;
        float h;&lt;br /&gt;
        vector posTouched = llGetPos();&lt;br /&gt;
        do&lt;br /&gt;
        { &lt;br /&gt;
            d = &amp;lt;llFrand(256.0), llFrand(256.0), llFrand(4096.0)&amp;gt;;&lt;br /&gt;
            h = llGround(d-llGetPos());&lt;br /&gt;
            if ( d.z &amp;lt;= h )&lt;br /&gt;
                d.z = h + 1.0;&lt;br /&gt;
            llSetRegionPos(d);&lt;br /&gt;
            llOwnerSay(llList2CSV([ &amp;quot;test #&amp;quot;, n, &amp;quot;error&amp;quot;, llGetPos()-d, &amp;quot;pos&amp;quot;,llGetPos(), &amp;quot;dest&amp;quot;, d ]));&lt;br /&gt;
            n++;&lt;br /&gt;
        } while ( ((llGetPos()-d) == ZERO_VECTOR ) &amp;amp;&amp;amp; ( n &amp;lt;= numberTests) ) ;&lt;br /&gt;
        llSetRegionPos(posTouched);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/lsl&amp;gt; [[User:Miranda Umino|Miranda Umino]] 08:02, 6 March 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
In fact , i guess the function doeesn t try to move an object with 0.1 meters :&lt;br /&gt;
it moves an object EXACTLY to the position . But it can t move an object under the ground . And the function returns a value to inform succes or failure , it exists a test  &amp;quot;if within 0.1 meters&amp;quot; to know if the object was high and has been capped by the ground , or if the object was already near the ground before the call of the function&lt;br /&gt;
[[User:Miranda Umino|Miranda Umino]] 08:30, 6 March 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
== Going (just) off-sim? ==&lt;br /&gt;
&lt;br /&gt;
The writeup says that the target can be up to ten meters off-sim (basically), but when I try to do that terrible things happen, at least when it&#039;s an object I am sitting on.  The usual terrible things associated with a failed sim-handoff: standing in mid-air, unable to move, unable to interact with visible objects if any, minimap and location-bar having different opinions about where you are, etc.&lt;br /&gt;
&lt;br /&gt;
Has anyone been using the just-off-sim abilities of llSetRegionPos successfully at all?&lt;br /&gt;
&lt;br /&gt;
(Where, just to be clear, I mean just-off-sim into another adjacent sim, not into a place where no sim exists.)&lt;br /&gt;
&lt;br /&gt;
[[User:Dale Innis|Dale Innis]] 20:13, 19 July 2013 (PDT)&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:LlSetRegionPos&amp;diff=1180142</id>
		<title>Talk:LlSetRegionPos</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:LlSetRegionPos&amp;diff=1180142"/>
		<updated>2013-07-20T03:13:06Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: /* Going (just) off-sim? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Woot! ==&lt;br /&gt;
&lt;br /&gt;
Woot!  :)  [[User:Dale Innis|Dale Innis]] 10:33, 8 February 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
Does the &amp;quot;success tolerance&amp;quot; of 0.1m hint that the function is for some reason prone to hitting with that wide an error, or is it just a very, very, very safe margin for a floating point roundoff of the requested location?&lt;br /&gt;
[[User:Tali Rosca|Tali Rosca]] 10:10, 3 March 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The comment about warpPos is wrong&lt;br /&gt;
The error is &amp;lt;= 1e-6 .&lt;br /&gt;
( except of course if you try to go under the ground )&lt;br /&gt;
Tested on Linden Sandbox Magnum RC :&lt;br /&gt;
5000 llSetregionpos with random values ;&lt;br /&gt;
for z values &amp;lt; ground , we raise z;&lt;br /&gt;
Result : the 5000 llsetregionpos go to a correct position&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
    touch_start(integer total_number)&lt;br /&gt;
    {&lt;br /&gt;
&lt;br /&gt;
        integer numberTests = 5000 ;&lt;br /&gt;
        integer n = 1;&lt;br /&gt;
        vector d;&lt;br /&gt;
        float h;&lt;br /&gt;
        vector posTouched = llGetPos();&lt;br /&gt;
        do&lt;br /&gt;
        { &lt;br /&gt;
            d = &amp;lt;llFrand(256.0), llFrand(256.0), llFrand(4096.0)&amp;gt;;&lt;br /&gt;
            h = llGround(d-llGetPos());&lt;br /&gt;
            if ( d.z &amp;lt;= h )&lt;br /&gt;
                d.z = h + 1.0;&lt;br /&gt;
            llSetRegionPos(d);&lt;br /&gt;
            llOwnerSay(llList2CSV([ &amp;quot;test #&amp;quot;, n, &amp;quot;error&amp;quot;, llGetPos()-d, &amp;quot;pos&amp;quot;,llGetPos(), &amp;quot;dest&amp;quot;, d ]));&lt;br /&gt;
            n++;&lt;br /&gt;
        } while ( ((llGetPos()-d) == ZERO_VECTOR ) &amp;amp;&amp;amp; ( n &amp;lt;= numberTests) ) ;&lt;br /&gt;
        llSetRegionPos(posTouched);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/lsl&amp;gt; [[User:Miranda Umino|Miranda Umino]] 08:02, 6 March 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
In fact , i guess the function doeesn t try to move an object with 0.1 meters :&lt;br /&gt;
it moves an object EXACTLY to the position . But it can t move an object under the ground . And the function returns a value to inform succes or failure , it exists a test  &amp;quot;if within 0.1 meters&amp;quot; to know if the object was high and has been capped by the ground , or if the object was already near the ground before the call of the function&lt;br /&gt;
[[User:Miranda Umino|Miranda Umino]] 08:30, 6 March 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
== Going (just) off-sim? ==&lt;br /&gt;
&lt;br /&gt;
The writeup says that the target can be up to ten meters off-sim (basically), but when I try to do that terrible things happen, at least when it&#039;s an object I am sitting on.  The usual terrible things associated with a failed sim-handoff: standing in mid-air, unable to move, unable to interact with visible objects if any, minimap and location-bar having different opinions about where you are, etc.&lt;br /&gt;
&lt;br /&gt;
Has anyone been using the just-off-sim abilities of llSetRegionPos successfully at all?&lt;br /&gt;
&lt;br /&gt;
[[User:Dale Innis|Dale Innis]] 20:13, 19 July 2013 (PDT)&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:LlSetRegionPos&amp;diff=1180141</id>
		<title>Talk:LlSetRegionPos</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:LlSetRegionPos&amp;diff=1180141"/>
		<updated>2013-07-20T03:12:51Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: /* Going (just) off-sim? */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Woot! ==&lt;br /&gt;
&lt;br /&gt;
Woot!  :)  [[User:Dale Innis|Dale Innis]] 10:33, 8 February 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
Does the &amp;quot;success tolerance&amp;quot; of 0.1m hint that the function is for some reason prone to hitting with that wide an error, or is it just a very, very, very safe margin for a floating point roundoff of the requested location?&lt;br /&gt;
[[User:Tali Rosca|Tali Rosca]] 10:10, 3 March 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The comment about warpPos is wrong&lt;br /&gt;
The error is &amp;lt;= 1e-6 .&lt;br /&gt;
( except of course if you try to go under the ground )&lt;br /&gt;
Tested on Linden Sandbox Magnum RC :&lt;br /&gt;
5000 llSetregionpos with random values ;&lt;br /&gt;
for z values &amp;lt; ground , we raise z;&lt;br /&gt;
Result : the 5000 llsetregionpos go to a correct position&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
    touch_start(integer total_number)&lt;br /&gt;
    {&lt;br /&gt;
&lt;br /&gt;
        integer numberTests = 5000 ;&lt;br /&gt;
        integer n = 1;&lt;br /&gt;
        vector d;&lt;br /&gt;
        float h;&lt;br /&gt;
        vector posTouched = llGetPos();&lt;br /&gt;
        do&lt;br /&gt;
        { &lt;br /&gt;
            d = &amp;lt;llFrand(256.0), llFrand(256.0), llFrand(4096.0)&amp;gt;;&lt;br /&gt;
            h = llGround(d-llGetPos());&lt;br /&gt;
            if ( d.z &amp;lt;= h )&lt;br /&gt;
                d.z = h + 1.0;&lt;br /&gt;
            llSetRegionPos(d);&lt;br /&gt;
            llOwnerSay(llList2CSV([ &amp;quot;test #&amp;quot;, n, &amp;quot;error&amp;quot;, llGetPos()-d, &amp;quot;pos&amp;quot;,llGetPos(), &amp;quot;dest&amp;quot;, d ]));&lt;br /&gt;
            n++;&lt;br /&gt;
        } while ( ((llGetPos()-d) == ZERO_VECTOR ) &amp;amp;&amp;amp; ( n &amp;lt;= numberTests) ) ;&lt;br /&gt;
        llSetRegionPos(posTouched);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/lsl&amp;gt; [[User:Miranda Umino|Miranda Umino]] 08:02, 6 March 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
In fact , i guess the function doeesn t try to move an object with 0.1 meters :&lt;br /&gt;
it moves an object EXACTLY to the position . But it can t move an object under the ground . And the function returns a value to inform succes or failure , it exists a test  &amp;quot;if within 0.1 meters&amp;quot; to know if the object was high and has been capped by the ground , or if the object was already near the ground before the call of the function&lt;br /&gt;
[[User:Miranda Umino|Miranda Umino]] 08:30, 6 March 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
== Going (just) off-sim? ==&lt;br /&gt;
&lt;br /&gt;
The writeup says that the target can be up to ten meters off-sim (basically), but when I try to do that terrible things happen, at least when it&#039;s an object I am sitting on.  The usual terrible things associated with a failed sim-handoff: standing in mid-air, unable to move, unable to interact with visible objects if any, minimap and location-bar having different opinions about where you are, etc.&lt;br /&gt;
&lt;br /&gt;
Has anyone been using the just-off-sim abilities of llSetRegionPos successfully at all?&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dale_Innis/AutomaticWalking&amp;diff=1174563</id>
		<title>User:Dale Innis/AutomaticWalking</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dale_Innis/AutomaticWalking&amp;diff=1174563"/>
		<updated>2012-11-18T17:28:07Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header}}&lt;br /&gt;
&lt;br /&gt;
= Intro =&lt;br /&gt;
&lt;br /&gt;
So I have my [[AvatarFollower]] script, which lets you automatically follow someone without having to keep track of them and push arrow keys and stuff.&lt;br /&gt;
&lt;br /&gt;
And one of the nice side-benefits of that is that while you&#039;re following someone, you don&#039;t have to hold down any arrow keys, so you can type in chatboxes and stuff (and for that matter like sort inventory) while you&#039;re walking along.  Not to mention camming about so as to get good pictures of the two of you walking.&lt;br /&gt;
&lt;br /&gt;
(Getting pictures of yourself walking is a hard thing to do in SL!)&lt;br /&gt;
&lt;br /&gt;
So I thought it would also be good to have something similar where instead of following someone, you could just walk forward without having to hold down an arrow key, so you could also type and cam and take pictures and stuff while still walking.&lt;br /&gt;
&lt;br /&gt;
= Code =&lt;br /&gt;
&lt;br /&gt;
Here&#039;s the current draft, more or less:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
// Tap fwd to walk forward, again or tap back to stop.&lt;br /&gt;
// Side-arrows still turn you while walking forward&lt;br /&gt;
//  by Dale Innis&lt;br /&gt;
&lt;br /&gt;
float RANGE = 2.0;   // Meters away that we put the target&lt;br /&gt;
float TAU = 1.0;     // Make smaller for more rushed walking&lt;br /&gt;
&lt;br /&gt;
integer tid = 0;&lt;br /&gt;
integer walking = FALSE;&lt;br /&gt;
&lt;br /&gt;
stopWalking() {&lt;br /&gt;
  walking = FALSE;&lt;br /&gt;
  llTargetRemove(tid);  &lt;br /&gt;
  llStopMoveToTarget();&lt;br /&gt;
  llOwnerSay(&amp;quot;No longer autowalking.&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
startWalking() {&lt;br /&gt;
  walking = TRUE;&lt;br /&gt;
  keepWalking();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
keepWalking() {&lt;br /&gt;
  if (llGetAgentInfo(llGetOwner()) &amp;amp; AGENT_FLYING) {&lt;br /&gt;
      stopWalking();&lt;br /&gt;
      return;&lt;br /&gt;
  }    &lt;br /&gt;
  llTargetRemove(tid);  &lt;br /&gt;
  llStopMoveToTarget();&lt;br /&gt;
  vector offset = &amp;lt;2*RANGE,0,0&amp;gt;*llGetRootRotation();&lt;br /&gt;
  vector targetPos = llGetPos() + offset;&lt;br /&gt;
  targetPos.z += llGround(offset) - llGround(ZERO_VECTOR); // helps only on ground&lt;br /&gt;
  llMoveToTarget(targetPos,TAU);&lt;br /&gt;
  tid = llTarget(targetPos,RANGE/2.0);  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
default {&lt;br /&gt;
&lt;br /&gt;
  state_entry() {&lt;br /&gt;
    if (llGetAttached()!=0)&lt;br /&gt;
        llRequestPermissions(llGetOwner(),PERMISSION_TAKE_CONTROLS);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  attach(key id) {&lt;br /&gt;
      if (id==NULL_KEY) return;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  run_time_permissions(integer perm) {&lt;br /&gt;
      llTakeControls(CONTROL_FWD|CONTROL_BACK|CONTROL_ROT_LEFT|CONTROL_ROT_RIGHT|CONTROL_UP,TRUE,TRUE);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  control(key id,integer level,integer edge) {&lt;br /&gt;
      if (llGetAgentInfo(llGetOwner()) &amp;amp; AGENT_FLYING) {&lt;br /&gt;
          stopWalking();&lt;br /&gt;
          return;&lt;br /&gt;
      }&lt;br /&gt;
      integer tap = edge &amp;amp; level;&lt;br /&gt;
      if (tap &amp;amp; CONTROL_FWD) {&lt;br /&gt;
          if (walking) {&lt;br /&gt;
              stopWalking();&lt;br /&gt;
          } else {&lt;br /&gt;
              startWalking();&lt;br /&gt;
          }&lt;br /&gt;
      }&lt;br /&gt;
      if (tap &amp;amp; CONTROL_BACK) {&lt;br /&gt;
          if (walking) stopWalking();&lt;br /&gt;
      }&lt;br /&gt;
      if (level &amp;amp; CONTROL_ROT_LEFT) {&lt;br /&gt;
          if (walking) keepWalking();&lt;br /&gt;
      }&lt;br /&gt;
      if (level &amp;amp; CONTROL_ROT_RIGHT) {&lt;br /&gt;
          if (walking) keepWalking();&lt;br /&gt;
      } &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  on_rez(integer x) {&lt;br /&gt;
    llResetScript();   // Why not?&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  at_target(integer tnum,vector tpos,vector ourpos) {&lt;br /&gt;
    if (walking) keepWalking();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Notes =&lt;br /&gt;
&lt;br /&gt;
It&#039;s basically just like the avatar follower, except that what you are &amp;quot;following&amp;quot; is a spot a few meters in front of you, and every time you get too close to it, it pops out another few meters ahead.&lt;br /&gt;
&lt;br /&gt;
This actually works!  It&#039;s a little wonky, in that you turn rather slowly while autowalking (i.e. when you press left or right arrow, the camera moves at once, but your AV turns rather slowly, so you have a biggish turning radius), and it doesn&#039;t get along at all well with jumping (it basically prevents jumping, more or less).&lt;br /&gt;
&lt;br /&gt;
The main problem is that it can&#039;t tell where the floor is, unless you&#039;re walking on the actual SL ground.  If you are, say, walking on the deck of an airship or the floor of a skybox 2000m in the sky, the script will still see the official SL ground far beneath you, and (with the current code) try to make you follow the vertical contour of that ground as you walk.&lt;br /&gt;
&lt;br /&gt;
The other way to approach this would be to ignore the vertical entirely, and have you always move toward a position that&#039;s in front of you and at the same z-height.  The problem there is that when facing down a steepish hill (and sometimes up a shallowish one, for reasons I don&#039;t understand), you end up in a sort of flying-falling pose for a bit.  And when facing up a too-steep hill (or toward an obstacle) sometimes you just stop.&lt;br /&gt;
&lt;br /&gt;
I&#039;m not sure what if anything can be done about those oddnesses.  I may try using llApplyImpulse or llSetForce instead of llMoveToTarget; that might make a difference.  And I may see if any of the new Pathfinding stuff would be useful here (in those places where it&#039;s active).  If I don&#039;t get too lazy.  :)&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dale_Innis/AutomaticWalking&amp;diff=1174562</id>
		<title>User:Dale Innis/AutomaticWalking</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dale_Innis/AutomaticWalking&amp;diff=1174562"/>
		<updated>2012-11-18T17:20:29Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: Created page with &amp;quot;So I have my AvatarFollower script, which lets you automatically follow someone without having to keep track of them and push arrow keys and stuff.  And one of the nice side-…&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;So I have my [[AvatarFollower]] script, which lets you automatically follow someone without having to keep track of them and push arrow keys and stuff.&lt;br /&gt;
&lt;br /&gt;
And one of the nice side-benefits of that is that while you&#039;re following someone, you don&#039;t have to hold down any arrow keys, so you can type in chatboxes and stuff (and for that matter like sort inventory) while you&#039;re walking along.  Not to mention camming about so as to get good pictures of the two of you walking.&lt;br /&gt;
&lt;br /&gt;
(Getting pictures of yourself walking is a hard thing to do in SL!)&lt;br /&gt;
&lt;br /&gt;
So I thought it would also be good to have something similar where instead of following someone, you could just walk forward without having to hold down an arrow key, so you could also type and cam and take pictures and stuff while still walking.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s the current draft, more or less:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
// Tap fwd to walk forward, again or tap back to stop.&lt;br /&gt;
// Side-arrows still turn you while walking forward&lt;br /&gt;
//  by Dale Innis&lt;br /&gt;
&lt;br /&gt;
float RANGE = 2.0;   // Meters away that we put the target&lt;br /&gt;
float TAU = 1.0;     // Make smaller for more rushed walking&lt;br /&gt;
&lt;br /&gt;
integer tid = 0;&lt;br /&gt;
integer walking = FALSE;&lt;br /&gt;
&lt;br /&gt;
stopWalking() {&lt;br /&gt;
  walking = FALSE;&lt;br /&gt;
  llTargetRemove(tid);  &lt;br /&gt;
  llStopMoveToTarget();&lt;br /&gt;
  llOwnerSay(&amp;quot;No longer autowalking.&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
startWalking() {&lt;br /&gt;
  walking = TRUE;&lt;br /&gt;
  keepWalking();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
keepWalking() {&lt;br /&gt;
  if (llGetAgentInfo(llGetOwner()) &amp;amp; AGENT_FLYING) {&lt;br /&gt;
      stopWalking();&lt;br /&gt;
      return;&lt;br /&gt;
  }    &lt;br /&gt;
  llTargetRemove(tid);  &lt;br /&gt;
  llStopMoveToTarget();&lt;br /&gt;
  vector offset = &amp;lt;2*RANGE,0,0&amp;gt;*llGetRootRotation();&lt;br /&gt;
  vector targetPos = llGetPos() + offset;&lt;br /&gt;
  targetPos.z += llGround(offset) - llGround(ZERO_VECTOR); // helps only on ground&lt;br /&gt;
  llMoveToTarget(targetPos,TAU);&lt;br /&gt;
  tid = llTarget(targetPos,RANGE/2.0);  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
default {&lt;br /&gt;
&lt;br /&gt;
  state_entry() {&lt;br /&gt;
    if (llGetAttached()!=0)&lt;br /&gt;
        llRequestPermissions(llGetOwner(),PERMISSION_TAKE_CONTROLS);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  attach(key id) {&lt;br /&gt;
      if (id==NULL_KEY) return;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  run_time_permissions(integer perm) {&lt;br /&gt;
      llTakeControls(CONTROL_FWD|CONTROL_BACK|CONTROL_ROT_LEFT|CONTROL_ROT_RIGHT|CONTROL_UP,TRUE,TRUE);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  control(key id,integer level,integer edge) {&lt;br /&gt;
      if (llGetAgentInfo(llGetOwner()) &amp;amp; AGENT_FLYING) {&lt;br /&gt;
          stopWalking();&lt;br /&gt;
          return;&lt;br /&gt;
      }&lt;br /&gt;
      integer tap = edge &amp;amp; level;&lt;br /&gt;
      if (tap &amp;amp; CONTROL_FWD) {&lt;br /&gt;
          if (walking) {&lt;br /&gt;
              stopWalking();&lt;br /&gt;
          } else {&lt;br /&gt;
              startWalking();&lt;br /&gt;
          }&lt;br /&gt;
      }&lt;br /&gt;
      if (tap &amp;amp; CONTROL_BACK) {&lt;br /&gt;
          if (walking) stopWalking();&lt;br /&gt;
      }&lt;br /&gt;
      if (level &amp;amp; CONTROL_ROT_LEFT) {&lt;br /&gt;
          if (walking) keepWalking();&lt;br /&gt;
      }&lt;br /&gt;
      if (level &amp;amp; CONTROL_ROT_RIGHT) {&lt;br /&gt;
          if (walking) keepWalking();&lt;br /&gt;
      } &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  on_rez(integer x) {&lt;br /&gt;
    llResetScript();   // Why not?&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  at_target(integer tnum,vector tpos,vector ourpos) {&lt;br /&gt;
    if (walking) keepWalking();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlGetBoundingBox&amp;diff=1170581</id>
		<title>LlGetBoundingBox</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlGetBoundingBox&amp;diff=1170581"/>
		<updated>2012-07-13T22:15:38Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: fix example (need to add target position)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Function&lt;br /&gt;
|inject-2={{LSL_Function/uuid|object|sim=*}}&lt;br /&gt;
|func_id=277|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|func=llGetBoundingBox|return_type=list&lt;br /&gt;
|p1_type=key|p1_name=object&lt;br /&gt;
|func_footnote=The bounding box is for the entire link set, not just the requested prim.&amp;lt;br/&amp;gt;Returns an empty list (&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt;) if &#039;&#039;&#039;object&#039;&#039;&#039; is not found.&lt;br /&gt;
|func_desc&lt;br /&gt;
|return_text=that is the bounding box of &#039;&#039;&#039;object&#039;&#039;&#039; relative to its root prim, in [[Viewer_coordinate_frames#local|local coordinates]].&amp;lt;br/&amp;gt;Format: &amp;lt;code&amp;gt;[ (vector) {{HoverText|min_corner|vector min_corner;}}, (vector) {{HoverText|max_corner|vector max_corner;}} ]&amp;lt;/code&amp;gt;&lt;br /&gt;
|spec=&lt;br /&gt;
The physical representation of an object is made up of the shape of the prims and avatars seated upon it. The bounding box is the smallest possible cuboid which can contain the physical representation of the object and have it&#039;s faces aligned to the region axises.&lt;br /&gt;
|caveats=&lt;br /&gt;
* Regardless if &#039;&#039;&#039;object&#039;&#039;&#039; is a non-root prim, the bounding box of the object is returned.&lt;br /&gt;
* Attachments have no bounding boxes of their own (as they have no physical interaction{{Footnote|[[Phantom]] and [[VolumeDetect]] do have physics interactions, which is why they still have bounding boxes.|Phantom and VolumeDetect do have physics interactions, which is why they still have bounding boxes.}}), instead the bounding box of the avatar is returned.&lt;br /&gt;
&lt;br /&gt;
==== Server 1.36 and Beyond ====&lt;br /&gt;
* When an avatar sits on an object, the reported bounding box for the avatar is unchanged.&lt;br /&gt;
&lt;br /&gt;
==== Before Server 1.36 ====&lt;br /&gt;
* The reported box for objects and avatars is too small by 0.1 meter in all three dimensions, missing the physics tolerance buffer. This error is retained for backward script compatibility. Subtract &amp;lt;0.05, 0.05, 0.05&amp;gt; from min_corner and add &amp;lt;0.05, 0.05, 0.05&amp;gt; to max_corner for a corrected box.&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&amp;lt;lsl&amp;gt;default//An avatar bounding box ruler thingy&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llSetStatus(STATUS_PHANTOM, TRUE);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    touch_start(integer total_number)&lt;br /&gt;
    {&lt;br /&gt;
        key target = llDetectedKey(0);&lt;br /&gt;
        list box = llGetBoundingBox(target);&lt;br /&gt;
        vector center = llDetectedPos(0) + (llList2Vector(box, 0) + llList2Vector(box, 1)) * 0.5;&lt;br /&gt;
        vector size = llList2Vector(box, 1) - llList2Vector(box, 0);&lt;br /&gt;
        llSetPrimitiveParams([PRIM_POSITION, center, PRIM_SIZE, size]);&lt;br /&gt;
        llSetText(&amp;quot;Name: &amp;quot; + llDetectedName(0) + &amp;quot;, UUID: &amp;quot; + (string)target + &lt;br /&gt;
                &amp;quot;\nBounding Box Size: &amp;quot; + (string)size, &amp;lt;1.0, 1.0, 1.0&amp;gt;, 1.0);&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions={{LSL DefineRow||[[llGetAgentSize]]|}}&lt;br /&gt;
|also_events&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_articles&lt;br /&gt;
|notes&lt;br /&gt;
|history=&lt;br /&gt;
===== Sitting in 1.36 =====&lt;br /&gt;
Avatars historically when they sit upon an object have been treated as part of the object, like a prim, even being assigned a link number (which can be used to detect and manipulate them to some extent). Unrelated to this, requesting the bounding box for a child prim of an object would return the bounding box for the entire object (unless it was an attachment, which point it would return the bounding box for the avatar). The first is something of a misfeature, the latter is an honest to goodness feature; the combination of these two lead to something interesting: Prior to 1.36 requesting the bounding box of an attachment while seated returned the bounding box for the object sat upon. It got reported as a bug {{JIRA|SVC-1174}}, and the behavior was changed in 1.36. The bounding box for the object sat upon is unchanged by 1.36, the avatar still counts. However when the bounding box for the seated avatar is requested it does not fall through to the object being sat upon.&lt;br /&gt;
|cat1=Physics&lt;br /&gt;
|cat2&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Category_talk:LSL_Types&amp;diff=1166382</id>
		<title>Category talk:LSL Types</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Category_talk:LSL_Types&amp;diff=1166382"/>
		<updated>2012-04-27T15:31:01Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: /* Mutability */  oops, lists aren&amp;#039;t mutable!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Mutability ==&lt;br /&gt;
&lt;br /&gt;
The section on mutability seems wrong, or at least needs more explanation if it isn&#039;t.  Vectors and Rotations clearly appear to be mutable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vector v = &amp;lt;1,3,3&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
v.x = 0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Obviously, the following sequence has the same result:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vector v = &amp;lt;1,2,3&amp;gt;;&lt;br /&gt;
v = &amp;lt;0,v.y,v.z&amp;gt;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These &#039;&#039;might&#039;&#039; be operationally equivalent.  But it is less than clear that they are operationally the same (at least naively, one would expect the two versions to have a different machine implementation, with the first perhaps more efficient).&lt;br /&gt;
&lt;br /&gt;
Yeah, even more obviously, lists are mutable.  The person must have meant &amp;quot;basic types&amp;quot; or something... [[User:Dale Innis|Dale Innis]] 20:46, 26 April 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
:You bring up a good point. The section is talking about a different type of mutability. What it is trying to say is that when a function is called the parameters are copies. You can manipulate and overwrite the parameters all you want and those changes will not be conveyed to the calling scope. So in that sense all variables are immutable. LSL may have pass by reference under the hood, but it does not enable mutability. In many languages you pass a list by reference to a sort function and that function sorts the list. The value of the list has changed as a result of calling the function. LSL does not have that capacity. In LSL anything you pass to a function will be unchanged by the function. Vectors &amp;amp; rotations are only sort of mutable (lists are not mutable at all), you can change their components. Coaching this in terms of mutability was a bad choice. Is there a better word for this? -- &#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:33, 26 April 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
::Ah, okay!  That&#039;s not really what &amp;quot;mutable&amp;quot; means in programming languages.  :)  The best way to say this is that all function parameters in LSL are passed by value rather than by reference.  (To stress the fact that LSL has no pointer types, it would also be good to say that all parameters are passed by copy.)  The fact that you can say for instance &amp;quot;myVector.z = 7&amp;quot; or &amp;quot;myList += [1,2,3]&amp;quot; means that vectors and lists are are mutable; but in some sense the fact that all function parameters are passed by copy makes that fact not matter nearly as much! [[User:Dale Innis|Dale Innis]] 07:21, 27 April 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
::P.S. I&#039;ve now convinced myself that, in this bizarre language of ours, lists are in fact *not* mutable.  You can&#039;t say l[4] = 0, instead you have to say l = llListReplaceList(l,[0],4,4) or whatever it is.  So you can&#039;t change an existing list, you can just calculate a new list and stick in in the existing variable.  Craziness.  :)  But vectors and rotations are still mutable, since you can access the .x etc elements to change an existing one. [[User:Dale Innis|Dale Innis]] 08:31, 27 April 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
== LSL Wiki links needed ==&lt;br /&gt;
&lt;br /&gt;
[[Template:LSL Unhelpful]] should be added to the LSL data-type pages. &amp;amp;mdash; [[User:Albert Zerundi|Albert Zerundi]] 02:34, 21 May 2010 (UTC)&lt;br /&gt;
:Good 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:35, 26 April 2012 (PDT)&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Category_talk:LSL_Types&amp;diff=1166381</id>
		<title>Category talk:LSL Types</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Category_talk:LSL_Types&amp;diff=1166381"/>
		<updated>2012-04-27T14:21:35Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: /* Mutability */ pass-by-value (or by copy) is the right word I think&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Mutability ==&lt;br /&gt;
&lt;br /&gt;
The section on mutability seems wrong, or at least needs more explanation if it isn&#039;t.  Vectors and Rotations clearly appear to be mutable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vector v = &amp;lt;1,3,3&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
v.x = 0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Obviously, the following sequence has the same result:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vector v = &amp;lt;1,2,3&amp;gt;;&lt;br /&gt;
v = &amp;lt;0,v.y,v.z&amp;gt;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These &#039;&#039;might&#039;&#039; be operationally equivalent.  But it is less than clear that they are operationally the same (at least naively, one would expect the two versions to have a different machine implementation, with the first perhaps more efficient).&lt;br /&gt;
&lt;br /&gt;
Yeah, even more obviously, lists are mutable.  The person must have meant &amp;quot;basic types&amp;quot; or something... [[User:Dale Innis|Dale Innis]] 20:46, 26 April 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
:You bring up a good point. The section is talking about a different type of mutability. What it is trying to say is that when a function is called the parameters are copies. You can manipulate and overwrite the parameters all you want and those changes will not be conveyed to the calling scope. So in that sense all variables are immutable. LSL may have pass by reference under the hood, but it does not enable mutability. In many languages you pass a list by reference to a sort function and that function sorts the list. The value of the list has changed as a result of calling the function. LSL does not have that capacity. In LSL anything you pass to a function will be unchanged by the function. Vectors &amp;amp; rotations are only sort of mutable (lists are not mutable at all), you can change their components. Coaching this in terms of mutability was a bad choice. Is there a better word for this? -- &#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:33, 26 April 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
::Ah, okay!  That&#039;s not really what &amp;quot;mutable&amp;quot; means in programming languages.  :)  The best way to say this is that all function parameters in LSL are passed by value rather than by reference.  (To stress the fact that LSL has no pointer types, it would also be good to say that all parameters are passed by copy.)  The fact that you can say for instance &amp;quot;myVector.z = 7&amp;quot; or &amp;quot;myList += [1,2,3]&amp;quot; means that vectors and lists are are mutable; but in some sense the fact that all function parameters are passed by copy makes that fact not matter nearly as much! [[User:Dale Innis|Dale Innis]] 07:21, 27 April 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
== LSL Wiki links needed ==&lt;br /&gt;
&lt;br /&gt;
[[Template:LSL Unhelpful]] should be added to the LSL data-type pages. &amp;amp;mdash; [[User:Albert Zerundi|Albert Zerundi]] 02:34, 21 May 2010 (UTC)&lt;br /&gt;
:Good 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:35, 26 April 2012 (PDT)&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Category_talk:LSL_Types&amp;diff=1166372</id>
		<title>Category talk:LSL Types</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Category_talk:LSL_Types&amp;diff=1166372"/>
		<updated>2012-04-27T03:46:02Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: /* Mutability */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Mutability ==&lt;br /&gt;
&lt;br /&gt;
The section on mutability seems wrong, or at least needs more explanation if it isn&#039;t.  Vectors and Rotations clearly appear to be mutable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vector v = &amp;lt;1,3,3&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
v.x = 0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Obviously, the following sequence has the same result:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vector v = &amp;lt;1,2,3&amp;gt;;&lt;br /&gt;
v = &amp;lt;0,v.y,v.z&amp;gt;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These &#039;&#039;might&#039;&#039; be operationally equivalent.  But it is less than clear that they are operationally the same (at least naively, one would expect the two versions to have a different machine implementation, with the first perhaps more efficient).&lt;br /&gt;
&lt;br /&gt;
Yeah, even more obviously, lists are mutable.  The person must have meant &amp;quot;basic types&amp;quot; or something... [[User:Dale Innis|Dale Innis]] 20:46, 26 April 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
== LSL Wiki links needed ==&lt;br /&gt;
&lt;br /&gt;
[[Template:LSL Unhelpful]] should be added to the LSL data-type pages. &amp;amp;mdash; [[User:Albert Zerundi|Albert Zerundi]] 02:34, 21 May 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:Transaction_result&amp;diff=1165795</id>
		<title>Talk:Transaction result</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:Transaction_result&amp;diff=1165795"/>
		<updated>2012-04-19T05:09:11Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: /* LINDENDOLLAR_BADCLOCKSKEW? */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Would it have been wiser to return negative integers as error tag constants in order to save a few bytes of precious LSL? [[User:NeoBokrug Elytis|NeoBokrug Elytis]] 12:55, 5 January 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
== LINDENDOLLAR_BADCLOCKSKEW? ==&lt;br /&gt;
&lt;br /&gt;
Apparently this can also return &amp;quot;LINDENDOLLAR_BADCLOCKSKEW&amp;quot;.  Information about what that means would be valuable!  I suspect it just means &amp;quot;transaction failed due to something messing up in the internal LL network, and it might work if you try again later&amp;quot;, but it ought to be listed...   [[User:Dale Innis|Dale Innis]] 22:09, 18 April 2012 (PDT)&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:LlSetRegionPos&amp;diff=1162599</id>
		<title>Talk:LlSetRegionPos</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:LlSetRegionPos&amp;diff=1162599"/>
		<updated>2012-02-08T18:33:52Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: Woot!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Woot! ==&lt;br /&gt;
&lt;br /&gt;
Woot!  :)  [[User:Dale Innis|Dale Innis]] 10:33, 8 February 2012 (PST)&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:LlRequestPermissions&amp;diff=1162217</id>
		<title>Talk:LlRequestPermissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:LlRequestPermissions&amp;diff=1162217"/>
		<updated>2012-01-29T01:55:26Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: /* Revoking permissions? */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* There seems to be a formula regarding how many requests can be made from an object in a timeframe. I believe this to be 5 requests per 20 seconds (allows for bursts I think) from a small test, I need someone to get comfirmation on the real formula from more extensive testing or off a linden. --[[User:Nexii Malthus|Nexii Malthus]] 08:27, 6 April 2008 (PDT)&lt;br /&gt;
**This caveat: &amp;quot;The viewer limits permission requests from any agent to any other agent to 5 dialogs in 10 seconds&amp;quot; can&#039;t be correct.  Permission requests are from objects, not agents.  Is the limit actually on dialogs, or on permission requests?  (That is, is the limit different for automatically granted requests?) [[User:Lear Cale|Lear Cale]] 18:58, 30 January 2009 (UTC)&lt;br /&gt;
*** The limit is based on dialogs. The throttle is keyed to the agent who owns the objects. This prevents someone from spamming dialogs with swarms of objects. In a later viewer (1.22? 1.23? I&#039;m not sure if it&#039;s been merged yet), the throttle is keyed to objects if dealing with one&#039;s own objects. Others&#039; objects are throttled against their owner. This helps with resetting masses of one&#039;s own tier boxes, etc. --[[User:Soft Linden|Soft Linden]] 19:11, 30 January 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* How do permission checks/grants work for group deeded objects? Which avatar ID do you send to since you can&#039;t llGetOwner()? Who should get the drop-down? [[User:Allen Kerensky|Allen Kerensky]] 16:39, 7 January 2011 (UTC)&lt;br /&gt;
:Only avatars can grant permissions. Permissions with owner only restrictions, like PERMISSION_DEBIT, are not available for deeded objects. --[[User:Cerise Resident|Cerise]] 20:49, 7 January 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Revoking permissions? ==&lt;br /&gt;
&lt;br /&gt;
Does anyone know under what circumstances permissions are revoked?  llResetScript() or asking for different permissions in the script will do it.  Does using &amp;quot;Stop Animating My Avatar&amp;quot; in the viewer also revoke whatever permissions are in place?  What about logging out?  There&#039;s at least one device in the Marketplace that claims you can &amp;quot;control&amp;quot; people &amp;quot;permanently&amp;quot; by basically tricking them into granting permission once, but I vaguely recall that some mechanism was added to make the grants less permanent, to prevent just that kind of griefing... [[User:Dale Innis|Dale Innis]] 17:55, 28 January 2012 (PST)&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:LlSetPrimitiveParams&amp;diff=1150765</id>
		<title>Talk:LlSetPrimitiveParams</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:LlSetPrimitiveParams&amp;diff=1150765"/>
		<updated>2011-08-06T03:12:13Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: /* Set just color, or just alpha, using params */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Glow support in LSL ==&lt;br /&gt;
In Windlight there is support for a new parameter called &amp;quot;Glow.&amp;quot;  Is this in LSL yet?  I want! ;D -- [[User:Cron Stardust|Cron Stardust]] 16:09, 1 January 2008 (PST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Weird Happenings ==&lt;br /&gt;
For some reason this doesnt work&lt;br /&gt;
&lt;br /&gt;
llSetPrimitiveParams([&lt;br /&gt;
PRIM_TYPE,PRIM_TYPE_BOX,00,&amp;lt;0.0, 1.0, 0.0&amp;gt;, 0.0, &amp;lt;0.0, 0.0, 0.0&amp;gt;, &amp;lt;1.0, 1.0, 0.0&amp;gt;, &amp;lt;0.0, 0.0, 0.0&amp;gt;,PRIM_MATERIAL, PRIM_MATERIAL_STONE, PRIM_SIZE, &amp;lt;1.0,1.0,1.0&amp;gt;, PRIM_PHYSICS, TRUE]);&lt;br /&gt;
&lt;br /&gt;
the prim doesnt change&lt;br /&gt;
Is this a bug, or did I miss something ?&lt;br /&gt;
Anylyn Hax 01:33, 8 August 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
Was it a 1x1x1 box to start with? If so you might not notice the change and if it were a smaller shape sitting on the ground, making it larger would have it penetrate whats under it, and not be able to enable physics. Try changing PRIM_TYPE_BOX to PRIM_TYPE_CYLINDER. On style concerns, you could change 00 in the third position to PRIM_HOLE_DEFAULT but thats pure style and up to your conscience. -- [[User:Strife Onizuka|Strife Onizuka]] 12:41, 8 August 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
no, it was a virgin prim 0.5,0.5,0.5 a BOX, ... just make a small script and drop the code in.&lt;br /&gt;
its wired, if I remove the PRIM_PHYSICS, TRUE, it works.&lt;br /&gt;
Anylyn Hax 04:58, 9 August 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
== It changes prim properties - but the prim isn&#039;t affected ==&lt;br /&gt;
&lt;br /&gt;
Running a script to change a prim to flexi whilst running, and then back again at the end fails:-&lt;br /&gt;
&lt;br /&gt;
llSetPrimitiveParams([PRIM_FLEXIBLE,FALSE, etc])&lt;br /&gt;
&lt;br /&gt;
Turns flexible off, but leaves it as phantom.&lt;br /&gt;
&lt;br /&gt;
Adding:&lt;br /&gt;
&lt;br /&gt;
llSetPrimitiveParams([PRIM_PHANTOM,FALSE])&lt;br /&gt;
&lt;br /&gt;
Turns phantom off according to the object edit window, but I can still happily walk through it. Toggling flexible in the edit window restores a solid object, but that isn&#039;t much use.&lt;br /&gt;
{{Unsigned|Roken Price}}&lt;br /&gt;
&lt;br /&gt;
:Please submit a bug report on [https://jira.secondlife.com/ Jira]. -- &#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:39, 15 October 2008 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Shadow parameter ==&lt;br /&gt;
&lt;br /&gt;
Since there&#039;s a lot of work being done on the shadow code buried in the viewer (and turned off by default), is it likely that the PRIM_CAST_SHADOWS value might once more become useful? [[User:TaraLi Jie|TaraLi Jie]] 02:01, 28 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Slang Can Be Hard to Translate ==&lt;br /&gt;
&lt;br /&gt;
What is a &#039;sharp function&#039;?&lt;br /&gt;
&lt;br /&gt;
I see we say [[llSetPrimitiveParams]] is a &#039;sharp function&#039;.&lt;br /&gt;
&lt;br /&gt;
Could we improve the text by saying just &#039;powerful function&#039; rather than &#039;powerful &amp;amp; sharp function&#039;?&lt;br /&gt;
&lt;br /&gt;
-- [[User:Ppaatt Lynagh|Ppaatt Lynagh]] 17:39, 24 December 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
: It&#039;s a subtle warning. &amp;quot;sharp&amp;quot; in this context builds on the metaphor of a knife. It means that the function needs to be used carefully, that if you make a mistake it will not be forgiven (you will cut yourself). The user must be careful. -- &#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:55, 25 December 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Clear now, thank you, for me a completely new usage of the word &#039;sharp&#039;. -- [[User:Ppaatt Lynagh|Ppaatt Lynagh]] 03:51, 1 January 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: The first time I read this it did strike me as awkward. Perhaps &#039;finicky&#039; or &#039;nit-picky&#039; would be a better adjective. Unless misuse of the function could cause serious damage, I don&#039;t think it deserves &amp;quot;sharp&amp;quot;. --[[User:Christopher Omega|Christopher Omega]] 02:05, 30 March 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: It is conceivable that if the user were to make a mistake, an integer value could be interpreted as a PRIM_* instruction. While unlikely it is possible that the malformed instructions could parse without an error message, resulting in something the user didn&#039;t and no warning. I&#039;ve been thinking that a footnote or tooltip would be appropriate to describe what is meant by &amp;quot;sharp&amp;quot;. I would opt for &#039;bites-the-hand-that-feeds-it&#039;. -- &#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:22, 30 March 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Sharp can mean and basically &#039;&#039;&#039;does&#039;&#039;&#039; mean incisive. Take for example to &amp;quot;Have a sharp mind&amp;quot; or to be &amp;quot;sharp witted&amp;quot;. Both are common terms that describe an instinctive or highly defined attention to detail that results in an accurate return. The function does exactly that and it does it very well too. I think sharp is a very appropriate word. -- &#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; 07:18, 17 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Whitespace? ==&lt;br /&gt;
&lt;br /&gt;
I noted the comment about whitespace and the params listing shape is changed and wondered if it was for more than aesthetics? The simplification for the equation is great (lol(you should really see my scripts. I gotta feeling you would cringe)). Can you give a little explanation about the whitespace please Strife? Always eager to learn (sorry bout all the edits) -- &#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; 02:10, 16 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:The whitespace is so that people don&#039;t have to scroll horizontally; it&#039;s a real problem when using the client&#039;s built in browser. It&#039;s better to avoid long lines when possible. I used [[PRIM_SIZE]] because of the script delay. [[llSetScale]] and [[llSetPrimitiveParams]] both cause a 0.1 script delay; by combining them, we keep it down to 0.1 seconds instead of 0.2 seconds. Now, the LSL compiler is stupid, when it sees an integer constant being used where a float is expected, instead of doing the conversion at compile time, it inlines an implicit typecast instead; which costs more bytecode and is slower to execute. -- &#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:40, 17 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Wow, cool, wow and cool. I have adopted the method you showed me for the list of params (I didn&#039;t think of the delay (I stupid) but the list can cover a lot in one hit!!). So with the maths... even if it is plain maths inside brackets if there is an integer there the compiler gets upset? eek... I need to review all my scripts now :( I get you about the whitespace now. I try to keep them short where I can but didn&#039;t think about the inworld (rubbish) browser and forget that not everybody is widescreen etc. I will be more compact in future. Hi btw and thanx again. -- &#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; 03:48, 17 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Zai told me off (lolz kinda) for editing comments. But I am hoping this time you don&#039;t mind Strife. I strikes me as ridiculous to ask you to do it. -- &#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; 05:46, 17 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Editing comments is tough. Writing comments is just as tough. You have to consider your audience... and I mean really consider it... and probably justify it in the edit summary. It&#039;s something we don&#039;t do often enough (consider the audience). Commenting code is a balance between explaining what the code does, and letting the code explain what it does. I think a good way to comment code is:&lt;br /&gt;
:# You make the code as expressive as you can, with good variable names, functions and breaks.&lt;br /&gt;
:# Then you have the comments explain what the code is having trouble expressing. Don&#039;t worry if there is overlap, but you really don&#039;t want to be writing your program twice (the second time as comments).&lt;br /&gt;
: -- &#039;&#039;&#039;[[User:Strife_Onizuka|Strife]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Strife_Onizuka|talk]]|[[Special:Contributions/Strife_Onizuka|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 06:43, 17 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Ooops sry Strife. I was referring to the addition of the letter &amp;quot;a&amp;quot; in &amp;quot;llSetPrimitiveParams&amp;quot; in your comment above last. Typos happen (lots of &#039;em in my case) and the link was thus unfortunately broken. Zai is of course right to point out that editing talk page comments is bad behavior but I thought (correct me if I am wrong) that on this sort of occasion the fixing of a spelling would be ok. As for the orange comments I am on board with your instruction 100% (eagerly waiting to see what you make of my addition to [[llSubStringIndex]]). BTW... Other than something like ((5/100)*90) to get 90% how do I get the result more efficiently? Sorry for being a pain it just crossed my mind. -- &#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; 06:54, 17 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: F*#$, I had this great response I was just about to post and my browser went berserk on me and ate it (&amp;lt;.&amp;lt; maybe using a Nightly build wasn&#039;t such a good idea). I shall try to recreate.&lt;br /&gt;
: I had just found the referenced comment from Zai and came back here to find your comment. Oops.&lt;br /&gt;
: I should have checked the link, I wasn&#039;t awake. Thanks for fixing it.&lt;br /&gt;
: As to efficiency...&lt;br /&gt;
: Imagine your audience could understand anything you wrote no matter how complicated the vocabulary or grammar as long as it was properly constructed. You would be free to write it any way you wanted. To describe the paths of logic to the finest detail or cover them with broad brush strokes. You would be empowered.&lt;br /&gt;
: Now imagine that same audience having having to slave away at dictionaries, taking notes to work out the meaning of your magna opus. You would try to make it easier for them, you wouldn&#039;t use the complicated vocabulary, you would shun the complex grammer. You would turn your back on the empowerment that set you free. You would be enslaved to their ignorance and mental limitations.&lt;br /&gt;
: It is for this reason LSL is a dead language, it doesn&#039;t empower. If you want to do anything remotely interesting you have to dive into it&#039;s guts and learn how it works. You have to waste your time and mental faculties to dodge it&#039;s limitations. You can learn how to write faster code, less wasteful code, but it won&#039;t set you free.&lt;br /&gt;
: As to your addition to [[llSubStringIndex]], it&#039;s a bit too complex. If you are going to make an interactive example, you need to supply some explanatory text about how to use it. When dealing with multi-line comments, they should be above the code they reference. -- &#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; 08:34, 17 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:As to editing comments, on the wiki there isn&#039;t much in the way of personal space. Sure there are user pages but even they aren&#039;t entirely off limits. Comments are really the only personal space there is. -- &#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; 08:44, 17 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Wow. I feel like a soldier being given that final pep talk...&amp;quot;once more into the breach dear friends&amp;quot;... If by &amp;quot;guts&amp;quot; you mean the code under the code, eek. I still dunno all the functions (http gives me chills) but where are the guts? I am fascinated by the logic of programing. &amp;quot;Take 8 switches and put them into groups ...&amp;quot; I mean somewhere inside all this there is a system supporting a system supporting a system. I can&#039;t help but lol at the idea that my example is &#039;&#039;&#039;too&#039;&#039;&#039; complex. That&#039;s ironic. I started out trying to figure a relevant way to describe the method I developed for searching the string from the end (going backwards) but realized that (not only could I not find a way to give it a use without including loads of extra scripting) it would be so complex that it would be the very sort of script example I was afraid of when I started out. I&#039;ll add some more oranges. I do like the basic idea cause it uses [[llSubStringIndex]] in a few different ways and describes a way to get around one of the limitations.&lt;br /&gt;
&lt;br /&gt;
As for writing loads of words and browser crashing. That sucks. I feel for you there. I have experienced that myself and lost hours of work (in world scripts (painful) and typed out comments here in fact (but not through crashes, through network problems)). I hope that you realize how grateful I am for your advice and comments. &#039;&#039;&#039;Queue violins&#039;&#039;&#039; I haven&#039;t felt this driven and worthy for too long. Having a cause and a goal (in world and here) have turned my life around. Having a friend here watching and guiding is awesome. Thanx Strife. -- &#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; 16:56, 17 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Set just color, or just alpha, using params ==&lt;br /&gt;
&lt;br /&gt;
I know there&#039;s llSetColor and llSetAlpha, but it would be nice to also be able to set just the color, or just the alpha, using the params-style functions, without having to read the one you don&#039;t want to change in order to not change it.  (PRIM_COLOR needs both color and alpha; maybe a PRIM_ALPHA and a PRIM_JUST_COLOR? :) ) [[User:Dale Innis|Dale Innis]] 20:12, 5 August 2011 (PDT)&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:Lighting_and_shadows&amp;diff=1146496</id>
		<title>Talk:Lighting and shadows</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:Lighting_and_shadows&amp;diff=1146496"/>
		<updated>2011-06-15T14:00:14Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: LSL support for projectors!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== LSL support for projectors! ==&lt;br /&gt;
&lt;br /&gt;
We need scripting support for the neat projector light sources!  Neeeeeeeeeed!    :) [[User:Dale Innis|Dale Innis]] 07:00, 15 June 2011 (PDT)&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:LlRotLookAt&amp;diff=1138147</id>
		<title>Talk:LlRotLookAt</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:LlRotLookAt&amp;diff=1138147"/>
		<updated>2011-03-22T02:00:40Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: /* Description is wrong and/or unhelpful */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An LSL example that shows how to look at some (vector) position would be nice. Every time I&#039;ve looked at this call, it&#039;s been because I had an object that I wanted to look at (face) some other object or avatar. Usually, I hack at it until it works or run away and start drinking instead.&lt;br /&gt;
&lt;br /&gt;
[[User:Meade Paravane|Meade Paravane]] 21:06, 18 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Description is wrong and/or unhelpful ==&lt;br /&gt;
&lt;br /&gt;
The description of the actual function is &amp;quot;Cause object to point its forward axis towards target&amp;quot;.  This makes no sense, since &amp;quot;target&amp;quot; is a rotation.  What would it mean for an object to point its forward axis &amp;quot;towards&amp;quot; a rotation?&lt;br /&gt;
&lt;br /&gt;
I would love to see a nice clear English description of what this function actually does.  :)  Every time I&#039;ve started out trying to use it, I&#039;ve ended up using something else (llLookAt(), or llSetRot(), or something else).  Is this just the equivalent of llSetRot() for physical objects?  (In which case it&#039;s odd that it works for nonphysical ones as well.)  Or does it do something different / more complicated?  Does the &amp;quot;forward&amp;quot; (i.e. increasing-x) axis actually play any sort of part in its function?  Inquiring scripters want to know!&lt;br /&gt;
&lt;br /&gt;
[[User:Dale Innis|Dale Innis]] 19:00, 21 March 2011 (PDT)&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:LlPlaySound&amp;diff=1137892</id>
		<title>Talk:LlPlaySound</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:LlPlaySound&amp;diff=1137892"/>
		<updated>2011-03-18T00:20:00Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: Subsequent Calls&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Subsequent Calls ==&lt;br /&gt;
&lt;br /&gt;
The old wiki said &amp;quot;A script can only have one sound playing using llPlaySound; subsequent calls will be ignored until the first sound has stopped playing&amp;quot;.  But as far as I can tell that is just wrong; the second part, that is.  Subsequent calls aren&#039;t ignored; they cause the existing sound to be replaced by the new one (or if the new call uses the same sound, they cause the existing sound to start over again from the start).  Would it be a good idea to explicitly mention that in this article? [[User:Dale Innis|Dale Innis]] 17:20, 17 March 2011 (PDT)&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=ContinentDetector&amp;diff=1132142</id>
		<title>ContinentDetector</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=ContinentDetector&amp;diff=1132142"/>
		<updated>2011-01-15T20:26:09Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: /* The Code */ put in authorship and copyleft&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header}}&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Second Life grid, especially the mainland parts, is organized into interesting and aesthetically-pleasing continents, with a variety of landforms and connectivities and geographies.  The continents have their own histories, their own interesting places.  But because so many people just teleport everywhere (kids these days, I tell ya), all too many people aren&#039;t aware of which continent they&#039;re on, or where they are relative to the continents, much of the time.  This script is a simple example of how one might determine this, and thereby become more Geographically Aware, and therefore more fun at parties.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
&lt;br /&gt;
To use this script, stick it into the root prim of pretty much any object, and wear that object somewhere on your person.  Whenever you teleport, or touch the object, it will tell you your global coordinates, and also what continent or other area of the grid you are on.&lt;br /&gt;
&lt;br /&gt;
= Limitations and Notes =&lt;br /&gt;
&lt;br /&gt;
In fact this script is mostly just a demonstration of [[llGetRegionCorner]]().  The division of the world into continents and other sections is strictly unofficial and approximate, the result of using the map to zip around the grid and see roughly where things seemed to start and stop.  It&#039;s relatively easy to change what&#039;s there, or to add your own areas and divisions.  (Is the old Teen Grid still around somewhere?  If anyone knows the coordinates, it&#039;d be fun to add them also.)&lt;br /&gt;
&lt;br /&gt;
The reason the script should be put into the root prim of an object is that only root prims get the [[CHANGED_TELEPORT]] event.&lt;br /&gt;
&lt;br /&gt;
= The Code =&lt;br /&gt;
&lt;br /&gt;
You may do anything you like with this code, without limitation.  Well, without limitation in the sense of me suing you, that is.  If you do illegal things with it, you might get in trouble, for instance.  And you can&#039;t do impossible things with it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
// Script by Dale Innis, January 2011.  You may do whatever you like with this script, without limitation.&lt;br /&gt;
&lt;br /&gt;
// Each set of five list elements represents a grid-aligned rectangle, in the form xmin,xmax,ymin,ymax,name.&lt;br /&gt;
// The code returns the FIRST one that it finds, so its okay if the rectangles overlap, as long as you put&lt;br /&gt;
// the right one first.&lt;br /&gt;
&lt;br /&gt;
list map = [&lt;br /&gt;
 257024.0,265984.0,229888.0,240384.0,&amp;quot;Jeogeot&amp;quot;,&lt;br /&gt;
 252928.0,254464.0,256000.0,257280.0,&amp;quot;Bay City&amp;quot;,&lt;br /&gt;
 254720.0,265728.0,250368.0,259072.0,&amp;quot;Sansara&amp;quot;,&lt;br /&gt;
 253696.0,259584.0,259328.0,265216.0,&amp;quot;Heterocera&amp;quot;,&lt;br /&gt;
 281600.0,290304.0,257280.0,268032.0,&amp;quot;Satori&amp;quot;,&lt;br /&gt;
 283136.0,291072.0,270848.0,276736.0,&amp;quot;Nautilus&amp;quot;,&lt;br /&gt;
 281600.0,296448.0,276992.0,281600.0,&amp;quot;Corsica&amp;quot;,&lt;br /&gt;
 290048.0,290816.0,268288.0,269824.0,&amp;quot;Western Blake Sea&amp;quot;,&lt;br /&gt;
 291072.0,294400.0,266496.0,272128.0,&amp;quot;Blake Sea&amp;quot;,&lt;br /&gt;
 291840.0,294144.0,284672.0,289280.0,&amp;quot;Gaeta I&amp;quot;,&lt;br /&gt;
 296960.0,304384.0,276736.0,281344.0,&amp;quot;Gaeta V&amp;quot;,&lt;br /&gt;
 460032.0,466176.0,301824.0,307200.0,&amp;quot;Zindra&amp;quot;,&lt;br /&gt;
// and then for places outside the bounds of mainland continents, some random names...&lt;br /&gt;
      0.0,250000.0,     0.0,999999.0,&amp;quot;the Western Ocean&amp;quot;,  &lt;br /&gt;
 250000.0,265000.0,     0.0,999999.0,&amp;quot;the West&amp;quot;,        &lt;br /&gt;
 265000.0,280000.0,     0.0,999999.0,&amp;quot;the Center Longitudes&amp;quot;,         &lt;br /&gt;
 280000.0,310000.0,     0.0,999999.0,&amp;quot;the East&amp;quot;,          &lt;br /&gt;
 310000.0,450000.0,     0.0,999999.0,&amp;quot;the Gap Longitudes&amp;quot;,           &lt;br /&gt;
 450000.0,500000.0,     0.0,999999.0,&amp;quot;the Zindra Longitudes&amp;quot;,            &lt;br /&gt;
 500000.0,999999.0,     0.0,999999.0,&amp;quot;the Far East&amp;quot;&lt;br /&gt;
];&lt;br /&gt;
&lt;br /&gt;
string get_continent_name(vector gc) {&lt;br /&gt;
    integer count = llGetListLength(map);&lt;br /&gt;
    integer i;&lt;br /&gt;
    for (i=0;i&amp;lt;count;i+=5) {&lt;br /&gt;
        if ((gc.x&amp;gt;=llList2Float( map,i )) &amp;amp;&amp;amp;&lt;br /&gt;
            (gc.x&amp;lt;=llList2Float( map,i+1 )) &amp;amp;&amp;amp;        &lt;br /&gt;
            (gc.y&amp;gt;=llList2Float( map,i+2 )) &amp;amp;&amp;amp;                                &lt;br /&gt;
            (gc.y&amp;lt;=llList2Float( map,i+3 )) ) return llList2String( map,i+4 );&lt;br /&gt;
    }&lt;br /&gt;
    return &amp;quot;&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
say_location() {&lt;br /&gt;
    vector gc = llGetRegionCorner()+llGetPos();&lt;br /&gt;
    llOwnerSay(&amp;quot;Coordinates: &amp;quot;+(string)gc.x+&amp;quot;,&amp;quot;+(string)gc.y);&lt;br /&gt;
    string s = get_continent_name(gc);&lt;br /&gt;
    if (s!=&amp;quot;&amp;quot;) {&lt;br /&gt;
        llOwnerSay(&amp;quot;You are in &amp;quot;+s);&lt;br /&gt;
    } else {&lt;br /&gt;
        llOwnerSay(&amp;quot;You are not in any known area.&amp;quot;);&lt;br /&gt;
    }  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
    changed(integer change) {&lt;br /&gt;
        if (change &amp;amp; CHANGED_TELEPORT) say_location();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    touch_start(integer total_number) {&lt;br /&gt;
         say_location();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= See Also =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Functions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[llGetRegionCorner]] - to find out the global coordinates of the southwest corner of this sim&lt;br /&gt;
&lt;br /&gt;
[[llOwnerSay]] - to tell you about it&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Constants&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[CHANGED_TELEPORT]] - to see if we&#039;ve teleported&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;General&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Linden Department of Public Works Roads]] - shows the major continents and their Linden roads&lt;br /&gt;
&lt;br /&gt;
[[History of Second Life]] - includes some discussion of the geography&lt;br /&gt;
&lt;br /&gt;
[http://lalotelling.blogspot.com/p/sl-history.html Lalo Telling&#039;s history page] - has his very nice geohistory of the early grid&lt;br /&gt;
&lt;br /&gt;
{{LSLC|Library}}{{LSLC|Examples}}&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Dale_Innis&amp;diff=1132137</id>
		<title>User:Dale Innis</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Dale_Innis&amp;diff=1132137"/>
		<updated>2011-01-15T07:16:46Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: add continent detector&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== About Me ===&lt;br /&gt;
* Rezdate 2006-11-22.&lt;br /&gt;
* Am bit of a shapeshifter: [http://www.flickr.com/photos/ceoln/2118487770/ What I might look like]&lt;br /&gt;
* Professional programmer in RL, casual scripter in SL, even more casual builder in SL, but with some modest skill&lt;br /&gt;
* Active member of [http://world.secondlife.com/group/65f9ba7a-fb47-c807-f495-ad446cc0bc45 Scripters of Second Life]&lt;br /&gt;
* Somewhat active member of [[AW Groupies]]&lt;br /&gt;
* Occasional [http://virtualartpedia.a.wiki-site.com/index.php/Dale_Innis SL artist]&lt;br /&gt;
* Devoted dance-clubber an&#039; shopper an&#039; sitter-about-talking&lt;br /&gt;
* [http://world.secondlife.com/resident/8a123731-b0cb-47e7-90c0-6ed49aeaff58 My Web Profile]&lt;br /&gt;
* [http://daleinnis.wordpress.com/ My SL weblog]&lt;br /&gt;
* [http://www.davidchess.com/words/log.html My RL weblog]&lt;br /&gt;
* [http://www.research.ibm.com/people/c/chess Work]&lt;br /&gt;
* [https://wiki.secondlife.com/wiki/Special:Contributions/Dale_Innis My contributions to the greater good, such as they are]&lt;br /&gt;
* [[User:Dale_Innis/SandBox/|My SandBox]]&lt;br /&gt;
* Collecting some thoughts on [[User:Dale_Innis/Asset_handling_in_OGP|Asset handling in the Open Grid Protocol]]&lt;br /&gt;
* And similarly some thoughts on [[User:Dale_Innis/Group_IM_in_OGP|Group IM in the Open Grid Protocol]]&lt;br /&gt;
* Some random little LSL Library scripts: [[AvatarFollower]], [[ExplodingObjects]], [[ContinentDetector]]&lt;br /&gt;
&lt;br /&gt;
I do some architecture / design / scripting / building for work, but I also do casual scripting projects for random friends and acquaintances, if they&#039;re interesting an&#039; not a conflict of interest.  Generally work is free, tips are welcome.  *8)  I also fiddle casually about with the content of interesting Wikis, and hang out on the Scripters of Second Life group IM channel pretty much all the time I&#039;m on, asking and answering questions and being sociable.&lt;br /&gt;
&lt;br /&gt;
{{Jira Reporter}}&lt;br /&gt;
{{skills&lt;br /&gt;
|Builder=*&lt;br /&gt;
|Scripter=*&lt;br /&gt;
|Terraformer=&lt;br /&gt;
|Architect=*&lt;br /&gt;
|Scenographer=&lt;br /&gt;
|SLogistician=&lt;br /&gt;
|}}&lt;br /&gt;
[[Category:LSL Teachers]]&lt;br /&gt;
[[Category:AW Groupies]]&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=ContinentDetector&amp;diff=1132136</id>
		<title>ContinentDetector</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=ContinentDetector&amp;diff=1132136"/>
		<updated>2011-01-15T07:01:01Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: add llgetpos back in&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header}}&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Second Life grid, especially the mainland parts, is organized into interesting and aesthetically-pleasing continents, with a variety of landforms and connectivities and geographies.  The continents have their own histories, their own interesting places.  But because so many people just teleport everywhere (kids these days, I tell ya), all too many people aren&#039;t aware of which continent they&#039;re on, or where they are relative to the continents, much of the time.  This script is a simple example of how one might determine this, and thereby become more Geographically Aware, and therefore more fun at parties.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
&lt;br /&gt;
To use this script, stick it into the root prim of pretty much any object, and wear that object somewhere on your person.  Whenever you teleport, or touch the object, it will tell you your global coordinates, and also what continent or other area of the grid you are on.&lt;br /&gt;
&lt;br /&gt;
= Limitations and Notes =&lt;br /&gt;
&lt;br /&gt;
In fact this script is mostly just a demonstration of [[llGetRegionCorner]]().  The division of the world into continents and other sections is strictly unofficial and approximate, the result of using the map to zip around the grid and see roughly where things seemed to start and stop.  It&#039;s relatively easy to change what&#039;s there, or to add your own areas and divisions.  (Is the old Teen Grid still around somewhere?  If anyone knows the coordinates, it&#039;d be fun to add them also.)&lt;br /&gt;
&lt;br /&gt;
The reason the script should be put into the root prim of an object is that only root prims get the [[CHANGED_TELEPORT]] event.&lt;br /&gt;
&lt;br /&gt;
= The Code =&lt;br /&gt;
&lt;br /&gt;
You may do anything you like with this code, without limitation.  Well, without limitation in the sense of me suing you, that is.  If you do illegal things with it, you might get in trouble, for instance.  And you can&#039;t do impossible things with it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
// Each set of five list elements represents a grid-aligned rectangle, in the form xmin,xmax,ymin,ymax,name.&lt;br /&gt;
// The code returns the FIRST one that it finds, so its okay if the rectangles overlap, as long as you put&lt;br /&gt;
// the right one first.&lt;br /&gt;
&lt;br /&gt;
list map = [&lt;br /&gt;
 257024.0,265984.0,229888.0,240384.0,&amp;quot;Jeogeot&amp;quot;,&lt;br /&gt;
 252928.0,254464.0,256000.0,257280.0,&amp;quot;Bay City&amp;quot;,&lt;br /&gt;
 254720.0,265728.0,250368.0,259072.0,&amp;quot;Sansara&amp;quot;,&lt;br /&gt;
 253696.0,259584.0,259328.0,265216.0,&amp;quot;Heterocera&amp;quot;,&lt;br /&gt;
 281600.0,290304.0,257280.0,268032.0,&amp;quot;Satori&amp;quot;,&lt;br /&gt;
 283136.0,291072.0,270848.0,276736.0,&amp;quot;Nautilus&amp;quot;,&lt;br /&gt;
 281600.0,296448.0,276992.0,281600.0,&amp;quot;Corsica&amp;quot;,&lt;br /&gt;
 290048.0,290816.0,268288.0,269824.0,&amp;quot;Western Blake Sea&amp;quot;,&lt;br /&gt;
 291072.0,294400.0,266496.0,272128.0,&amp;quot;Blake Sea&amp;quot;,&lt;br /&gt;
 291840.0,294144.0,284672.0,289280.0,&amp;quot;Gaeta I&amp;quot;,&lt;br /&gt;
 296960.0,304384.0,276736.0,281344.0,&amp;quot;Gaeta V&amp;quot;,&lt;br /&gt;
 460032.0,466176.0,301824.0,307200.0,&amp;quot;Zindra&amp;quot;,&lt;br /&gt;
// and then for places outside the bounds of mainland continents, some random names...&lt;br /&gt;
      0.0,250000.0,     0.0,999999.0,&amp;quot;the Western Ocean&amp;quot;,  &lt;br /&gt;
 250000.0,265000.0,     0.0,999999.0,&amp;quot;the West&amp;quot;,        &lt;br /&gt;
 265000.0,280000.0,     0.0,999999.0,&amp;quot;the Center Longitudes&amp;quot;,         &lt;br /&gt;
 280000.0,310000.0,     0.0,999999.0,&amp;quot;the East&amp;quot;,          &lt;br /&gt;
 310000.0,450000.0,     0.0,999999.0,&amp;quot;the Gap Longitudes&amp;quot;,           &lt;br /&gt;
 450000.0,500000.0,     0.0,999999.0,&amp;quot;the Zindra Longitudes&amp;quot;,            &lt;br /&gt;
 500000.0,999999.0,     0.0,999999.0,&amp;quot;the Far East&amp;quot;&lt;br /&gt;
];&lt;br /&gt;
&lt;br /&gt;
string get_continent_name(vector gc) {&lt;br /&gt;
    integer count = llGetListLength(map);&lt;br /&gt;
    integer i;&lt;br /&gt;
    for (i=0;i&amp;lt;count;i+=5) {&lt;br /&gt;
        if ((gc.x&amp;gt;=llList2Float( map,i )) &amp;amp;&amp;amp;&lt;br /&gt;
            (gc.x&amp;lt;=llList2Float( map,i+1 )) &amp;amp;&amp;amp;        &lt;br /&gt;
            (gc.y&amp;gt;=llList2Float( map,i+2 )) &amp;amp;&amp;amp;                                &lt;br /&gt;
            (gc.y&amp;lt;=llList2Float( map,i+3 )) ) return llList2String( map,i+4 );&lt;br /&gt;
    }&lt;br /&gt;
    return &amp;quot;&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
say_location() {&lt;br /&gt;
    vector gc = llGetRegionCorner()+llGetPos();&lt;br /&gt;
    llOwnerSay(&amp;quot;Coordinates: &amp;quot;+(string)gc.x+&amp;quot;,&amp;quot;+(string)gc.y);&lt;br /&gt;
    string s = get_continent_name(gc);&lt;br /&gt;
    if (s!=&amp;quot;&amp;quot;) {&lt;br /&gt;
        llOwnerSay(&amp;quot;You are in &amp;quot;+s);&lt;br /&gt;
    } else {&lt;br /&gt;
        llOwnerSay(&amp;quot;You are not in any known area.&amp;quot;);&lt;br /&gt;
    }  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
    changed(integer change) {&lt;br /&gt;
        if (change &amp;amp; CHANGED_TELEPORT) say_location();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    touch_start(integer total_number) {&lt;br /&gt;
         say_location();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= See Also =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Functions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[llGetRegionCorner]] - to find out the global coordinates of the southwest corner of this sim&lt;br /&gt;
&lt;br /&gt;
[[llOwnerSay]] - to tell you about it&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Constants&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[CHANGED_TELEPORT]] - to see if we&#039;ve teleported&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;General&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Linden Department of Public Works Roads]] - shows the major continents and their Linden roads&lt;br /&gt;
&lt;br /&gt;
[[History of Second Life]] - includes some discussion of the geography&lt;br /&gt;
&lt;br /&gt;
[http://lalotelling.blogspot.com/p/sl-history.html Lalo Telling&#039;s history page] - has his very nice geohistory of the early grid&lt;br /&gt;
&lt;br /&gt;
{{LSLC|Library}}{{LSLC|Examples}}&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=ContinentDetector&amp;diff=1132135</id>
		<title>ContinentDetector</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=ContinentDetector&amp;diff=1132135"/>
		<updated>2011-01-15T06:59:30Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: more general stuffs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header}}&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Second Life grid, especially the mainland parts, is organized into interesting and aesthetically-pleasing continents, with a variety of landforms and connectivities and geographies.  The continents have their own histories, their own interesting places.  But because so many people just teleport everywhere (kids these days, I tell ya), all too many people aren&#039;t aware of which continent they&#039;re on, or where they are relative to the continents, much of the time.  This script is a simple example of how one might determine this, and thereby become more Geographically Aware, and therefore more fun at parties.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
&lt;br /&gt;
To use this script, stick it into the root prim of pretty much any object, and wear that object somewhere on your person.  Whenever you teleport, or touch the object, it will tell you your global coordinates, and also what continent or other area of the grid you are on.&lt;br /&gt;
&lt;br /&gt;
= Limitations and Notes =&lt;br /&gt;
&lt;br /&gt;
In fact this script is mostly just a demonstration of [[llGetRegionCorner]]().  The division of the world into continents and other sections is strictly unofficial and approximate, the result of using the map to zip around the grid and see roughly where things seemed to start and stop.  It&#039;s relatively easy to change what&#039;s there, or to add your own areas and divisions.  (Is the old Teen Grid still around somewhere?  If anyone knows the coordinates, it&#039;d be fun to add them also.)&lt;br /&gt;
&lt;br /&gt;
The reason the script should be put into the root prim of an object is that only root prims get the [[CHANGED_TELEPORT]] event.&lt;br /&gt;
&lt;br /&gt;
= The Code =&lt;br /&gt;
&lt;br /&gt;
You may do anything you like with this code, without limitation.  Well, without limitation in the sense of me suing you, that is.  If you do illegal things with it, you might get in trouble, for instance.  And you can&#039;t do impossible things with it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
// Each set of five list elements represents a grid-aligned rectangle, in the form xmin,xmax,ymin,ymax,name.&lt;br /&gt;
// The code returns the FIRST one that it finds, so its okay if the rectangles overlap, as long as you put&lt;br /&gt;
// the right one first.&lt;br /&gt;
&lt;br /&gt;
list map = [&lt;br /&gt;
 257024.0,265984.0,229888.0,240384.0,&amp;quot;Jeogeot&amp;quot;,&lt;br /&gt;
 252928.0,254464.0,256000.0,257280.0,&amp;quot;Bay City&amp;quot;,&lt;br /&gt;
 254720.0,265728.0,250368.0,259072.0,&amp;quot;Sansara&amp;quot;,&lt;br /&gt;
 253696.0,259584.0,259328.0,265216.0,&amp;quot;Heterocera&amp;quot;,&lt;br /&gt;
 281600.0,290304.0,257280.0,268032.0,&amp;quot;Satori&amp;quot;,&lt;br /&gt;
 283136.0,291072.0,270848.0,276736.0,&amp;quot;Nautilus&amp;quot;,&lt;br /&gt;
 281600.0,296448.0,276992.0,281600.0,&amp;quot;Corsica&amp;quot;,&lt;br /&gt;
 290048.0,290816.0,268288.0,269824.0,&amp;quot;Western Blake Sea&amp;quot;,&lt;br /&gt;
 291072.0,294400.0,266496.0,272128.0,&amp;quot;Blake Sea&amp;quot;,&lt;br /&gt;
 291840.0,294144.0,284672.0,289280.0,&amp;quot;Gaeta I&amp;quot;,&lt;br /&gt;
 296960.0,304384.0,276736.0,281344.0,&amp;quot;Gaeta V&amp;quot;,&lt;br /&gt;
 460032.0,466176.0,301824.0,307200.0,&amp;quot;Zindra&amp;quot;,&lt;br /&gt;
// and then for places outside the bounds of mainland continents, some random names...&lt;br /&gt;
      0.0,250000.0,     0.0,999999.0,&amp;quot;the Western Ocean&amp;quot;,  &lt;br /&gt;
 250000.0,265000.0,     0.0,999999.0,&amp;quot;the West&amp;quot;,        &lt;br /&gt;
 265000.0,280000.0,     0.0,999999.0,&amp;quot;the Center Longitudes&amp;quot;,         &lt;br /&gt;
 280000.0,310000.0,     0.0,999999.0,&amp;quot;the East&amp;quot;,          &lt;br /&gt;
 310000.0,450000.0,     0.0,999999.0,&amp;quot;the Gap Longitudes&amp;quot;,           &lt;br /&gt;
 450000.0,500000.0,     0.0,999999.0,&amp;quot;the Zindra Longitudes&amp;quot;,            &lt;br /&gt;
 500000.0,999999.0,     0.0,999999.0,&amp;quot;the Far East&amp;quot;&lt;br /&gt;
];&lt;br /&gt;
&lt;br /&gt;
string get_continent_name(vector gc) {&lt;br /&gt;
    integer count = llGetListLength(map);&lt;br /&gt;
    integer i;&lt;br /&gt;
    for (i=0;i&amp;lt;count;i+=5) {&lt;br /&gt;
        if ((gc.x&amp;gt;=llList2Float( map,i )) &amp;amp;&amp;amp;&lt;br /&gt;
            (gc.x&amp;lt;=llList2Float( map,i+1 )) &amp;amp;&amp;amp;        &lt;br /&gt;
            (gc.y&amp;gt;=llList2Float( map,i+2 )) &amp;amp;&amp;amp;                                &lt;br /&gt;
            (gc.y&amp;lt;=llList2Float( map,i+3 )) ) return llList2String( map,i+4 );&lt;br /&gt;
    }&lt;br /&gt;
    return &amp;quot;&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
say_location() {&lt;br /&gt;
    vector gc = llGetRegionCorner();&lt;br /&gt;
    llOwnerSay(&amp;quot;Coordinates: &amp;quot;+(string)gc.x+&amp;quot;,&amp;quot;+(string)gc.y);&lt;br /&gt;
    string s = get_continent_name(gc);&lt;br /&gt;
    if (s!=&amp;quot;&amp;quot;) {&lt;br /&gt;
        llOwnerSay(&amp;quot;You are in &amp;quot;+s);&lt;br /&gt;
    } else {&lt;br /&gt;
        llOwnerSay(&amp;quot;You are not in any known area.&amp;quot;);&lt;br /&gt;
    }  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
    changed(integer change) {&lt;br /&gt;
        if (change &amp;amp; CHANGED_TELEPORT) say_location();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    touch_start(integer total_number) {&lt;br /&gt;
         say_location();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= See Also =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Functions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[llGetRegionCorner]] - to find out the global coordinates of the southwest corner of this sim&lt;br /&gt;
&lt;br /&gt;
[[llOwnerSay]] - to tell you about it&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Constants&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[CHANGED_TELEPORT]] - to see if we&#039;ve teleported&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;General&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Linden Department of Public Works Roads]] - shows the major continents and their Linden roads&lt;br /&gt;
&lt;br /&gt;
[[History of Second Life]] - includes some discussion of the geography&lt;br /&gt;
&lt;br /&gt;
[http://lalotelling.blogspot.com/p/sl-history.html Lalo Telling&#039;s history page] - has his very nice geohistory of the early grid&lt;br /&gt;
&lt;br /&gt;
{{LSLC|Library}}{{LSLC|Examples}}&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=ContinentDetector&amp;diff=1132134</id>
		<title>ContinentDetector</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=ContinentDetector&amp;diff=1132134"/>
		<updated>2011-01-15T06:53:23Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: some general links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header}}&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Second Life grid, especially the mainland parts, is organized into interesting and aesthetically-pleasing continents, with a variety of landforms and connectivities and geographies.  The continents have their own histories, their own interesting places.  But because so many people just teleport everywhere (kids these days, I tell ya), all too many people aren&#039;t aware of which continent they&#039;re on, or where they are relative to the continents, much of the time.  This script is a simple example of how one might determine this, and thereby become more Geographically Aware, and therefore more fun at parties.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
&lt;br /&gt;
To use this script, stick it into the root prim of pretty much any object, and wear that object somewhere on your person.  Whenever you teleport, or touch the object, it will tell you your global coordinates, and also what continent or other area of the grid you are on.&lt;br /&gt;
&lt;br /&gt;
= Limitations and Notes =&lt;br /&gt;
&lt;br /&gt;
In fact this script is mostly just a demonstration of [[llGetRegionCorner]]().  The division of the world into continents and other sections is strictly unofficial and approximate, the result of using the map to zip around the grid and see roughly where things seemed to start and stop.  It&#039;s relatively easy to change what&#039;s there, or to add your own areas and divisions.  (Is the old Teen Grid still around somewhere?  If anyone knows the coordinates, it&#039;d be fun to add them also.)&lt;br /&gt;
&lt;br /&gt;
The reason the script should be put into the root prim of an object is that only root prims get the [[CHANGED_TELEPORT]] event.&lt;br /&gt;
&lt;br /&gt;
= The Code =&lt;br /&gt;
&lt;br /&gt;
You may do anything you like with this code, without limitation.  Well, without limitation in the sense of me suing you, that is.  If you do illegal things with it, you might get in trouble, for instance.  And you can&#039;t do impossible things with it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
// Each set of five list elements represents a grid-aligned rectangle, in the form xmin,xmax,ymin,ymax,name.&lt;br /&gt;
// The code returns the FIRST one that it finds, so its okay if the rectangles overlap, as long as you put&lt;br /&gt;
// the right one first.&lt;br /&gt;
&lt;br /&gt;
list map = [&lt;br /&gt;
 257024.0,265984.0,229888.0,240384.0,&amp;quot;Jeogeot&amp;quot;,&lt;br /&gt;
 252928.0,254464.0,256000.0,257280.0,&amp;quot;Bay City&amp;quot;,&lt;br /&gt;
 254720.0,265728.0,250368.0,259072.0,&amp;quot;Sansara&amp;quot;,&lt;br /&gt;
 253696.0,259584.0,259328.0,265216.0,&amp;quot;Heterocera&amp;quot;,&lt;br /&gt;
 281600.0,290304.0,257280.0,268032.0,&amp;quot;Satori&amp;quot;,&lt;br /&gt;
 283136.0,291072.0,270848.0,276736.0,&amp;quot;Nautilus&amp;quot;,&lt;br /&gt;
 281600.0,296448.0,276992.0,281600.0,&amp;quot;Corsica&amp;quot;,&lt;br /&gt;
 290048.0,290816.0,268288.0,269824.0,&amp;quot;Western Blake Sea&amp;quot;,&lt;br /&gt;
 291072.0,294400.0,266496.0,272128.0,&amp;quot;Blake Sea&amp;quot;,&lt;br /&gt;
 291840.0,294144.0,284672.0,289280.0,&amp;quot;Gaeta I&amp;quot;,&lt;br /&gt;
 296960.0,304384.0,276736.0,281344.0,&amp;quot;Gaeta V&amp;quot;,&lt;br /&gt;
 460032.0,466176.0,301824.0,307200.0,&amp;quot;Zindra&amp;quot;,&lt;br /&gt;
// and then for places outside the bounds of mainland continents, some random names...&lt;br /&gt;
      0.0,250000.0,     0.0,999999.0,&amp;quot;the Western Ocean&amp;quot;,  &lt;br /&gt;
 250000.0,265000.0,     0.0,999999.0,&amp;quot;the West&amp;quot;,        &lt;br /&gt;
 265000.0,280000.0,     0.0,999999.0,&amp;quot;the Center Longitudes&amp;quot;,         &lt;br /&gt;
 280000.0,310000.0,     0.0,999999.0,&amp;quot;the East&amp;quot;,          &lt;br /&gt;
 310000.0,450000.0,     0.0,999999.0,&amp;quot;the Gap Longitudes&amp;quot;,           &lt;br /&gt;
 450000.0,500000.0,     0.0,999999.0,&amp;quot;the Zindra Longitudes&amp;quot;,            &lt;br /&gt;
 500000.0,999999.0,     0.0,999999.0,&amp;quot;the Far East&amp;quot;&lt;br /&gt;
];&lt;br /&gt;
&lt;br /&gt;
string get_continent_name(vector gc) {&lt;br /&gt;
    integer count = llGetListLength(map);&lt;br /&gt;
    integer i;&lt;br /&gt;
    for (i=0;i&amp;lt;count;i+=5) {&lt;br /&gt;
        if ((gc.x&amp;gt;=llList2Float( map,i )) &amp;amp;&amp;amp;&lt;br /&gt;
            (gc.x&amp;lt;=llList2Float( map,i+1 )) &amp;amp;&amp;amp;        &lt;br /&gt;
            (gc.y&amp;gt;=llList2Float( map,i+2 )) &amp;amp;&amp;amp;                                &lt;br /&gt;
            (gc.y&amp;lt;=llList2Float( map,i+3 )) ) return llList2String( map,i+4 );&lt;br /&gt;
    }&lt;br /&gt;
    return &amp;quot;&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
say_location() {&lt;br /&gt;
    vector gc = llGetRegionCorner();&lt;br /&gt;
    llOwnerSay(&amp;quot;Coordinates: &amp;quot;+(string)gc.x+&amp;quot;,&amp;quot;+(string)gc.y);&lt;br /&gt;
    string s = get_continent_name(gc);&lt;br /&gt;
    if (s!=&amp;quot;&amp;quot;) {&lt;br /&gt;
        llOwnerSay(&amp;quot;You are in &amp;quot;+s);&lt;br /&gt;
    } else {&lt;br /&gt;
        llOwnerSay(&amp;quot;You are not in any known area.&amp;quot;);&lt;br /&gt;
    }  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
    changed(integer change) {&lt;br /&gt;
        if (change &amp;amp; CHANGED_TELEPORT) say_location();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    touch_start(integer total_number) {&lt;br /&gt;
         say_location();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= See Also =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Functions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[llGetRegionCorner]] - to find out the global coordinates of the southwest corner of this sim&lt;br /&gt;
&lt;br /&gt;
[[llOwnerSay]] - to tell you about it&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Constants&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[CHANGED_TELEPORT]] - to see if we&#039;ve teleported&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;General&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Linden Department of Public Works Roads]] - shows the major continents and their Linden roads&lt;br /&gt;
&lt;br /&gt;
[[Physical]] - a page that should talk about physics stuff in general&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{LSLC|Library}}{{LSLC|Examples}}&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=ContinentDetector&amp;diff=1132133</id>
		<title>ContinentDetector</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=ContinentDetector&amp;diff=1132133"/>
		<updated>2011-01-15T06:50:18Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: first draft&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header}}&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Second Life grid, especially the mainland parts, is organized into interesting and aesthetically-pleasing continents, with a variety of landforms and connectivities and geographies.  The continents have their own histories, their own interesting places.  But because so many people just teleport everywhere (kids these days, I tell ya), all too many people aren&#039;t aware of which continent they&#039;re on, or where they are relative to the continents, much of the time.  This script is a simple example of how one might determine this, and thereby become more Geographically Aware, and therefore more fun at parties.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
&lt;br /&gt;
To use this script, stick it into the root prim of pretty much any object, and wear that object somewhere on your person.  Whenever you teleport, or touch the object, it will tell you your global coordinates, and also what continent or other area of the grid you are on.&lt;br /&gt;
&lt;br /&gt;
= Limitations and Notes =&lt;br /&gt;
&lt;br /&gt;
In fact this script is mostly just a demonstration of [[llGetRegionCorner]]().  The division of the world into continents and other sections is strictly unofficial and approximate, the result of using the map to zip around the grid and see roughly where things seemed to start and stop.  It&#039;s relatively easy to change what&#039;s there, or to add your own areas and divisions.  (Is the old Teen Grid still around somewhere?  If anyone knows the coordinates, it&#039;d be fun to add them also.)&lt;br /&gt;
&lt;br /&gt;
The reason the script should be put into the root prim of an object is that only root prims get the [[CHANGED_TELEPORT]] event.&lt;br /&gt;
&lt;br /&gt;
= The Code =&lt;br /&gt;
&lt;br /&gt;
You may do anything you like with this code, without limitation.  Well, without limitation in the sense of me suing you, that is.  If you do illegal things with it, you might get in trouble, for instance.  And you can&#039;t do impossible things with it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
// Each set of five list elements represents a grid-aligned rectangle, in the form xmin,xmax,ymin,ymax,name.&lt;br /&gt;
// The code returns the FIRST one that it finds, so its okay if the rectangles overlap, as long as you put&lt;br /&gt;
// the right one first.&lt;br /&gt;
&lt;br /&gt;
list map = [&lt;br /&gt;
 257024.0,265984.0,229888.0,240384.0,&amp;quot;Jeogeot&amp;quot;,&lt;br /&gt;
 252928.0,254464.0,256000.0,257280.0,&amp;quot;Bay City&amp;quot;,&lt;br /&gt;
 254720.0,265728.0,250368.0,259072.0,&amp;quot;Sansara&amp;quot;,&lt;br /&gt;
 253696.0,259584.0,259328.0,265216.0,&amp;quot;Heterocera&amp;quot;,&lt;br /&gt;
 281600.0,290304.0,257280.0,268032.0,&amp;quot;Satori&amp;quot;,&lt;br /&gt;
 283136.0,291072.0,270848.0,276736.0,&amp;quot;Nautilus&amp;quot;,&lt;br /&gt;
 281600.0,296448.0,276992.0,281600.0,&amp;quot;Corsica&amp;quot;,&lt;br /&gt;
 290048.0,290816.0,268288.0,269824.0,&amp;quot;Western Blake Sea&amp;quot;,&lt;br /&gt;
 291072.0,294400.0,266496.0,272128.0,&amp;quot;Blake Sea&amp;quot;,&lt;br /&gt;
 291840.0,294144.0,284672.0,289280.0,&amp;quot;Gaeta I&amp;quot;,&lt;br /&gt;
 296960.0,304384.0,276736.0,281344.0,&amp;quot;Gaeta V&amp;quot;,&lt;br /&gt;
 460032.0,466176.0,301824.0,307200.0,&amp;quot;Zindra&amp;quot;,&lt;br /&gt;
// and then for places outside the bounds of mainland continents, some random names...&lt;br /&gt;
      0.0,250000.0,     0.0,999999.0,&amp;quot;the Western Ocean&amp;quot;,  &lt;br /&gt;
 250000.0,265000.0,     0.0,999999.0,&amp;quot;the West&amp;quot;,        &lt;br /&gt;
 265000.0,280000.0,     0.0,999999.0,&amp;quot;the Center Longitudes&amp;quot;,         &lt;br /&gt;
 280000.0,310000.0,     0.0,999999.0,&amp;quot;the East&amp;quot;,          &lt;br /&gt;
 310000.0,450000.0,     0.0,999999.0,&amp;quot;the Gap Longitudes&amp;quot;,           &lt;br /&gt;
 450000.0,500000.0,     0.0,999999.0,&amp;quot;the Zindra Longitudes&amp;quot;,            &lt;br /&gt;
 500000.0,999999.0,     0.0,999999.0,&amp;quot;the Far East&amp;quot;&lt;br /&gt;
];&lt;br /&gt;
&lt;br /&gt;
string get_continent_name(vector gc) {&lt;br /&gt;
    integer count = llGetListLength(map);&lt;br /&gt;
    integer i;&lt;br /&gt;
    for (i=0;i&amp;lt;count;i+=5) {&lt;br /&gt;
        if ((gc.x&amp;gt;=llList2Float( map,i )) &amp;amp;&amp;amp;&lt;br /&gt;
            (gc.x&amp;lt;=llList2Float( map,i+1 )) &amp;amp;&amp;amp;        &lt;br /&gt;
            (gc.y&amp;gt;=llList2Float( map,i+2 )) &amp;amp;&amp;amp;                                &lt;br /&gt;
            (gc.y&amp;lt;=llList2Float( map,i+3 )) ) return llList2String( map,i+4 );&lt;br /&gt;
    }&lt;br /&gt;
    return &amp;quot;&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
say_location() {&lt;br /&gt;
    vector gc = llGetRegionCorner();&lt;br /&gt;
    llOwnerSay(&amp;quot;Coordinates: &amp;quot;+(string)gc.x+&amp;quot;,&amp;quot;+(string)gc.y);&lt;br /&gt;
    string s = get_continent_name(gc);&lt;br /&gt;
    if (s!=&amp;quot;&amp;quot;) {&lt;br /&gt;
        llOwnerSay(&amp;quot;You are in &amp;quot;+s);&lt;br /&gt;
    } else {&lt;br /&gt;
        llOwnerSay(&amp;quot;You are not in any known area.&amp;quot;);&lt;br /&gt;
    }  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
    changed(integer change) {&lt;br /&gt;
        if (change &amp;amp; CHANGED_TELEPORT) say_location();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    touch_start(integer total_number) {&lt;br /&gt;
         say_location();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= See Also =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Functions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[llGetRegionCorner]] - to find out the global coordinates of the southwest corner of this sim&lt;br /&gt;
&lt;br /&gt;
[[llOwnerSay]] - to tell you about it&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Constants&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[CHANGED_TELEPORT]] - to see if we&#039;ve teleported&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;General&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Havok4]] - the code that actually implements the physics that makes things blow up&lt;br /&gt;
&lt;br /&gt;
[[Physical]] - a page that should talk about physics stuff in general&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{LSLC|Library}}{{LSLC|Examples}}&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:Channel_and_Version_Requirements&amp;diff=1024673</id>
		<title>Talk:Channel and Version Requirements</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:Channel_and_Version_Requirements&amp;diff=1024673"/>
		<updated>2010-09-03T22:53:36Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: /* Is this the thing that the --channel switch on most viewers changes for testing purposes?  Or is that some other &amp;quot;channel&amp;quot;? */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Talk}}&lt;br /&gt;
&lt;br /&gt;
== Adding a fifth number to versions ==&lt;br /&gt;
&lt;br /&gt;
I think this all makes sense except for this part:&lt;br /&gt;
&lt;br /&gt;
 Choose a version number&lt;br /&gt;
    * The version number is in the form Major.Minor.Patch.Build&lt;br /&gt;
    * The version number can be any four numbers&lt;br /&gt;
    * We recommend using the Major, Minor, and Patch numbers from the most recently merged Linden Lab source code.&lt;br /&gt;
    * We recommend using a Build number &amp;gt;= 100 to indicate a non Linden Lab version.&lt;br /&gt;
&lt;br /&gt;
I think that the versions should be 5 numbers, since there have been occasions where multiple versions of Major.Minor.Patch have been released by Linden Lab.  For example (from [[Source_downloads]]):&lt;br /&gt;
&lt;br /&gt;
* ver 1.18.2.1&lt;br /&gt;
* ver 1.18.2.0&lt;br /&gt;
&lt;br /&gt;
* ver 1.14.0.1&lt;br /&gt;
* ver 1.14.0.0&lt;br /&gt;
&lt;br /&gt;
So, my proposal would be that the number be in the form Major.Minor.Patch.Build.3rdPartyNumber. [[User:Gibson Willis|Gibson Willis]] 12:12, 28 September 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Steve Linden:&#039;&#039; That would be fine. The version is just a string so any convention would work and if you would like to be that specific we have no problem with that. Builds only represent bug fixes which is why we only think it is important to include the first three numbers since a build will not represent new features / functionality, but more information is not a bad thing.&lt;br /&gt;
&lt;br /&gt;
== Add Snowglobe ==&lt;br /&gt;
We need to add references to Snowglobe throughout to be complete. Channel strings used for Snowglobe:&lt;br /&gt;
* Snowglobe Release : used for binaries built off release branches&lt;br /&gt;
* Snowglobe Test Build : used for binaries built of the live development trunk&lt;br /&gt;
* CommnityDeveloper : used for binaries you built on your own machine and use for testing.&lt;br /&gt;
&lt;br /&gt;
Note: we &#039;&#039;should&#039;&#039; change that generic unclear &#039;&#039;&#039;CommunityDeveloper&#039;&#039;&#039; channel and use something like &#039;&#039;&#039;Snowglobe Community Developer&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[User:Merov Linden|Merov Linden]] 20:51, 12 February 2010 (UTC) Merov Linden&lt;br /&gt;
&lt;br /&gt;
== Instructions for from-scratch viewers? ==&lt;br /&gt;
&lt;br /&gt;
Should(n&#039;t) this page also contain (or link to, if it exists elsewhere) instructions for how to correctly transmit the viewer channel/version string in viewers that aren&#039;t based on the LL OS code?    Telling those ppl to edit particular files in the OS tree doesn&#039;t help them much...  :) [[User:Dale Innis|Dale Innis]] 16:38, 29 April 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Other article about the topic ==&lt;br /&gt;
&lt;br /&gt;
I just saw that there&#039;s already a page named [[Channel]]. Although it doesn&#039;t have a lot of content, yet, this page here should probably link to it.&lt;br /&gt;
--[[User:Boroondas Gupte|Boroondas Gupte]] 10:22, 8 August 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Is this the thing that the --channel switch on most viewers changes for testing purposes?  Or is that some other &amp;quot;channel&amp;quot;? ==&lt;br /&gt;
&lt;br /&gt;
Is this the thing that the --channel switch on most viewers changes for testing purposes?  Or is that some other &amp;quot;channel&amp;quot;? :) [[User:Dale Innis|Dale Innis]] 22:53, 3 September 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:LlSetCameraEyeOffset&amp;diff=1020083</id>
		<title>Talk:LlSetCameraEyeOffset</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:LlSetCameraEyeOffset&amp;diff=1020083"/>
		<updated>2010-08-30T04:14:37Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: /* What are the vectors relative to, in child prims? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What are the vectors relative to, in child prims? ==&lt;br /&gt;
&lt;br /&gt;
Are the vectors in this and llSetCameraAtOffset relative to the object (the root prim), or the prim that the script is in?  Experiments suggest the latter (that it&#039;s relative to the prim), but I&#039;m not entirely sure...  [[User:Dale Innis|Dale Innis]] 02:45, 30 August 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Update: the situation seems to be very confusing!  Both of these functions set the relevant feature in the co-ordinate system of, and relative to, the prim that they are called from (I think).  But on the other hand the setting applies to every prim in the object!  So if I do llSetCameraEyeOffset(v) in prim A, and someone sits on a different prim B, their camera eye goes to v relative to A (not to B).  So it&#039;s like v is computed relative to A, and then the resulting absolute position applies for anyone who sits on any prim.  Or something... [[User:Dale Innis|Dale Innis]] 04:14, 30 August 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:LlSetCameraEyeOffset&amp;diff=1020043</id>
		<title>Talk:LlSetCameraEyeOffset</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:LlSetCameraEyeOffset&amp;diff=1020043"/>
		<updated>2010-08-30T02:45:15Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: What are the vectors relative to, in child prims?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What are the vectors relative to, in child prims? ==&lt;br /&gt;
&lt;br /&gt;
Are the vectors in this and llSetCameraAtOffset relative to the object (the root prim), or the prim that the script is in?  Experiments suggest the latter (that it&#039;s relative to the prim), but I&#039;m not entirely sure...  [[User:Dale Innis|Dale Innis]] 02:45, 30 August 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Category:LSL_Library&amp;diff=1017643</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=1017643"/>
		<updated>2010-08-25T22:24:31Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: add Update distributor&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header|ml=*}}{{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-archive.secondlife.com/15/1.html Scripting Library archive] or the newer [https://blogs.secondlife.com/community/forums/scripting_library?view=discussions Scripting Library forum], were lost with the death of the early 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;
{| class=&amp;quot;sortable&amp;quot; {{Prettytable}}&lt;br /&gt;
|- {{Hl2}}&lt;br /&gt;
! &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Creator&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
||[[1st necessity of SL]]&lt;br /&gt;
||[[User:Beer Dailey|Beer Dailey]]&lt;br /&gt;
||Monitors for avatars and (de)activates scripts states to control script performance/lag.&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;
||[[Access (NewAge)]]&lt;br /&gt;
||[[User:Asia Snowfall|Asia Snowfall]]&lt;br /&gt;
||An easy to use script for permissions on who can use the script, Public/Group/Owner&lt;br /&gt;
|-&lt;br /&gt;
||[[Aim Detection]]&lt;br /&gt;
||[[User:Han Shuffle|Han Shuffle]]&lt;br /&gt;
||Monitors for avatars and reports back to owner about who is aiming at them.&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;
||[[Associative Array Emulator|Associative Array (Dictionary) Emulator]]&lt;br /&gt;
||[[User:Alynna Vixen|Alynna Vixen]]&lt;br /&gt;
||This library provides a set of functions for using a list as an associative array where string based keys can refer to one or more variant elements.&lt;br /&gt;
|-&lt;br /&gt;
||[[AvatarFollower]]&lt;br /&gt;
||[[User:Dale Innis|Dale Innis]]&lt;br /&gt;
||Allows one avatar to automatically follow another.&lt;br /&gt;
|-&lt;br /&gt;
||[[Avatar Radar (NewAge)]]&lt;br /&gt;
||[[User:Asia Snowfall|Asia Snowfall]]&lt;br /&gt;
||Version 1.2; A nice new avatar radar script i just finish that you can place in your hud, Also features avatar locator&lt;br /&gt;
|-&lt;br /&gt;
||[[Base2Dec]]&lt;br /&gt;
||[[User:Siann Beck|Siann Beck]]&lt;br /&gt;
||Convert a number to decimal from any base.&lt;br /&gt;
|-&lt;br /&gt;
||[[BaseN]]&lt;br /&gt;
||[[User:Nexii Malthus|Nexii Malthus]]&lt;br /&gt;
||Variable base compression, dynamically maps to usable UTF code points.&lt;br /&gt;
|-&lt;br /&gt;
||[[Basic A-Star Pathfinder]]&lt;br /&gt;
||[[User:Nexii Malthus|Nexii Malthus]]&lt;br /&gt;
|| My own interpretation of A Star into a highly efficient algorithmn&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;
||[[Be happy]]&lt;br /&gt;
||[[User:Emmas Seetan|Emmas Seetan]]&lt;br /&gt;
||Basic smile attachment script, makes your avatar smile.&lt;br /&gt;
|-&lt;br /&gt;
||[[Best Neighbor Ad Hiding Script|Best Neighbor]]&lt;br /&gt;
||[[User:Doran Zemlja|Doran Zemlja]]&lt;br /&gt;
||Reduce ad clutter by hiding ads when users are on their own land nearby.&lt;br /&gt;
|-&lt;br /&gt;
||[[BigNum|BigNum Library (RSA Encryption)]]&lt;br /&gt;
||[[User:Xaviar Czervik|Xaviar Czervik]]&lt;br /&gt;
||A BigNum Library for dealing with big numbers! Specialized for modular multiplication, and RSA encryption.&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;
||[[BinaryDecimalConverter]]&lt;br /&gt;
||[[User:Soundless Smalls|Soundless Smalls]]&lt;br /&gt;
||Converts a binary value to a decimal value and vice versa.&lt;br /&gt;
|-&lt;br /&gt;
||[[Blacklist and Remote Kill|Blacklist and Remote Kill]]&lt;br /&gt;
||[[User:Chase Quinnell|Chase Quinnell]]&lt;br /&gt;
||Blacklist(denial of use) or a creator kill script(can delete someone&#039;s item by command on private channel)&lt;br /&gt;
|-&lt;br /&gt;
||[[User_talk:Rolig_Loon/Bookmark_URLs|Bookmark URLs]]&lt;br /&gt;
||[[User:Rolig Loon|Rolig Loon]]&lt;br /&gt;
||Dialog driven HUD reads bookmarked URLs from notecards and navigates directly to them with user&#039;s in-world browser.&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;
||[[Button Click Detector]]&lt;br /&gt;
||{{User|Sendao Goodman}}&lt;br /&gt;
||Use [[llDetectedTouchUV]] to determine which button was pressed on a texture.&lt;br /&gt;
|-&lt;br /&gt;
||[[Camera following prim]]&lt;br /&gt;
||[[User:Dale Innis|Dale Innis]]&lt;br /&gt;
||Pair of scripts to make a prim follow your camera position around (for lights etc).&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;
||[[ClickAndDrag]]&lt;br /&gt;
||[[User:Nexii Malthus|Nexii Malthus]]&lt;br /&gt;
|| Click and Drag user interface elements using dynamic feedback&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;
||[[User:Void_Singer/Programs#v7-D_Enh._Color_Picker|Color Changer]]&lt;br /&gt;
||[[User:Void_Singer|Void_Singer]]&lt;br /&gt;
||Dialog driven color changer. Supports 16million+ colors, web color codes, multiple targeted prims, with save and recall.&lt;br /&gt;
|-&lt;br /&gt;
||[[Color Changer|Color Changer Plus]]&lt;br /&gt;
||[[User:Neo Calcutt|Neo Calcutt]]&lt;br /&gt;
||A color changer with 14 colors, a random function, and a custom vector function.&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;
||[[ColorConvert]]&lt;br /&gt;
||[[User:Siann Beck|Siann Beck]]&lt;br /&gt;
||Convert color values to vector from RGB, hex or HTML color name.&lt;br /&gt;
|-&lt;br /&gt;
||[[Color script]]&lt;br /&gt;
||[[User:Masakazu Kojima|Masakazu Kojima]]&lt;br /&gt;
||Script for changing colors trough a listener with pre-defined colors.&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;
||[[Read Note Card Configuration|Configuration Notecard Reader]]&lt;br /&gt;
||{{User|Dedric Mauriac}}&lt;br /&gt;
||A script to read configuration information from a notecard. Parses notecard to extract key words and their assigned values. Allows for comment lines and many more useful features.&lt;br /&gt;
|-&lt;br /&gt;
||[[AdvancedNotecardReader|Configuration Notecard Reader (advanced)]]&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;
||[[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;
||[[Days in Month]]&lt;br /&gt;
||[[User:IntLibber Brautigan begin_of_the_skype_highlighting     end_of_the_skype_highlighting begin_of_the_skype_highlighting     end_of_the_skype_highlighting|IntLibber Brautigan]]&lt;br /&gt;
||Clicking on it returns the number of days in the present month. Useful for scripting calendars and tier systems that need to know the number of days in the month at hand or to calculate for any month. Even adjusts for leap years.&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 &amp;amp; menu 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;
Latest version also has [[Dialog Menus Control]] built-in; which allow multi-level menus through SL dialog system.&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;
||[[Displayer Script]]&lt;br /&gt;
||[[User:Akinori Kimagawa|Akinori Kimagawa]]&lt;br /&gt;
||[[Display Words On Top Of An Object]]&lt;br /&gt;
|-&lt;br /&gt;
||[[Drink script]]&lt;br /&gt;
||[[User:Emmas Seetan|Emmas Seetan]]&lt;br /&gt;
||Used mainly for food and drink in Second Life.&lt;br /&gt;
|-&lt;br /&gt;
||[[TOXDropBox|DropBox]]&lt;br /&gt;
||[[User:Dimentox Travanti|Dimentox Travanti]]&lt;br /&gt;
|| This is a Drop box which allows people to drop certain items in a object &amp;amp; has many config options.&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;
|-&lt;br /&gt;
||[[User:Kireji_Haiku/SIMchat_headset|Encrypted Region-wide chat]]&lt;br /&gt;
||&#039;&#039;&#039;[[User:Kireji Haiku|Kireji Haiku]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Kireji Haiku|talk]]|[[Special:Contributions/Kireji Haiku|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt;&lt;br /&gt;
||Encrypted Region-wide chat&lt;br /&gt;
|-&lt;br /&gt;
||[[ExplodingObjects]]&lt;br /&gt;
||[[User:Dale Innis|Dale Innis]]&lt;br /&gt;
||Causes an object (of the appropriate type) to explode on command.&lt;br /&gt;
|-&lt;br /&gt;
||[[FadeEasy]]&lt;br /&gt;
||[[User:Nika Rugani|Nika Rugani]]&lt;br /&gt;
||The easy way of fading objects in or out (Using llSetLinkAlpha)&lt;br /&gt;
|-&lt;br /&gt;
||[[FastConeSpread]]&lt;br /&gt;
||[[User:Nexii Malthus|Nexii Malthus]]&lt;br /&gt;
|| Fast Algorithmn to achieve cone spread, main use in weaponry systems.&lt;br /&gt;
|-&lt;br /&gt;
||[[User:PixelProphet Lane/Scripts#Fast List Prim Contents|Fast List Prim Contents]]&lt;br /&gt;
||[[User:PixelProphet Lane|PixelProphet Lane]]&lt;br /&gt;
||Fast and efficient method to print Object Inventory (Name, Type and next Owner permissions)&lt;br /&gt;
|-&lt;br /&gt;
||[[Find Avatar Key|Find Avatar Key]]&lt;br /&gt;
||[[User:Huney Jewell|Huney Jewell]]&lt;br /&gt;
||Explores [[UUID]] of avatar whose name is said in local chat or who touches the prim.&lt;br /&gt;
|-&lt;br /&gt;
||[[First Name Letter Prize]]&lt;br /&gt;
||[[User:RaithSphere Whybrow|RaithSphere Whybrow]]&lt;br /&gt;
||Gives a prize if the person who sits on it&#039;s first letter of first name matches the random letter!&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;
||[[Float Box Contents]]&lt;br /&gt;
||[[User:Rolig Loon|Rolig Loon]]&lt;br /&gt;
||Displays object inventory in hover text, identified by type and updated marquee-style.&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;
||[[GA Event Notifier]]&lt;br /&gt;
||[[User:Victor Hua|Victor Hua]]&lt;br /&gt;
||Gathers seven days event data from a Google calendar and display it through a simple interface. The lsl script can access several calendars at once through seperate php files. One file per calendar. Host the included php on your own web server.&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;
||[[Get Profile Picture]]&lt;br /&gt;
||[[User:Valentine Foxdale|Valentine Foxdale]]&lt;br /&gt;
||Sets the texture of the object to profile picture of the person that touches ot&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;
||[[Give random object]]&lt;br /&gt;
||[[User:Emmas Seetan|Emmas Seetan]]&lt;br /&gt;
||Touch to receive a random object in the prim&#039;s inventory&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;
||[[Google_Translator]]&lt;br /&gt;
||[[User:Ugleh Ulrik|Ugleh Ulrik]]&lt;br /&gt;
||Translates spanish to english, and its simple to make it any other way.&lt;br /&gt;
|-&lt;br /&gt;
||[[Go transparent when walking]]&lt;br /&gt;
||[[User:Emmas Seetan|Emmas Seetan]]&lt;br /&gt;
||An attachment that goes invisible when you walk and visible when you don&#039;t walk.&lt;br /&gt;
|-&lt;br /&gt;
||[[Group Authorization]]&lt;br /&gt;
||[[User:Chase Quinnell|Chase Quinnell]]&lt;br /&gt;
||Checks to see if object is set to appropriate group (checks by [[Group key finder|group key]])&lt;br /&gt;
|-&lt;br /&gt;
||[[Group Information v1.0]]&lt;br /&gt;
||[[User:Tyrennic Rivera|Tyrennic Rivera]]&lt;br /&gt;
||When clicked the prim will show group information (set on the prim) from the official Second Life Search page.&lt;br /&gt;
|-&lt;br /&gt;
||[[Group key finder]]&lt;br /&gt;
||[[User:Emmas Seetan|Emmas Seetan]]&lt;br /&gt;
||Touch to find the key of the group&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;
||[[Hello Avatar Companion]]&lt;br /&gt;
||[[Chase Quinnell]]&lt;br /&gt;
||Companion to the original [[Hello Avatar]] script&lt;br /&gt;
|-&lt;br /&gt;
||[[Hierarchics]]&lt;br /&gt;
||[[User:Nexii Malthus|Nexii Malthus]]&lt;br /&gt;
|| Advanced script to create an efficient self-aware hierarchic structure.&lt;br /&gt;
|-&lt;br /&gt;
||[[User:Rolig_Loon/High-Capacity_Greeter-Counter|High-Capacity Greeter-Counter]]&lt;br /&gt;
||[[User:Rolig Loon|Rolig Loon]]&lt;br /&gt;
||Uses a memory compression algorithm to store hashed visitor UUID&#039;s in a string instead of using a list. &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;
||[[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;
||[[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;
||[[Inventory_Based_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;
||[[Kilt Editor|Kilt / Skirt Editor]]&lt;br /&gt;
||[[User:Brangus Weir|Brangus Weir]]&lt;br /&gt;
|| This changes all the parameters of all the flexis in the link set in one swell foop!&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;
||[[Last Sound System]]&lt;br /&gt;
||[[User:Babbage Linden|Babbage Linden]]&lt;br /&gt;
||An LSL [http://Last.fm Last.fm] client.&lt;br /&gt;
|-&lt;br /&gt;
||[[LibraryDisplayLandScreenshot]]&lt;br /&gt;
||[[User:Jon Desmoulins|Jon Desmoulins]]&lt;br /&gt;
||A modified version of LibraryDisplayProfilePic using the new [[PARCEL_DETAILS_ID]] Implemented in Server v1.36&lt;br /&gt;
|-&lt;br /&gt;
||[[User:Daemonika_Nightfire/Scripts/LinkNumber-List_in_llSetLinkPrimitiveParamsFast|LinkNumber-List_in_llSetLinkPrimitiveParamsFast]]&lt;br /&gt;
||[[User:Daemonika Nightfire|Daemonika Nightfire]]&lt;br /&gt;
||Changed several prims in linkset with the same parameters, with a list. Without separate llSetLinkPrimitiveParams for each prim. (ideal for show/hide effects)&lt;br /&gt;
|-&lt;br /&gt;
||[[Linkset resizer]]&lt;br /&gt;
||[[User:Maestro Linden|Maestro Linden]]&lt;br /&gt;
||Systematically rescales a linkset by moving and resizing each prim (by using [[llGetLinkPrimitiveParams]] and [[llSetLinkPrimitiveParamsFast]])&lt;br /&gt;
|-&lt;br /&gt;
||[[Linkset resizer with menu]]&lt;br /&gt;
||[[User:Brilliant Scientist|Brilliant Scientist]]&lt;br /&gt;
||A menu-driven script that rescales a linkset by moving and resizing the prims using [[llGetLinkPrimitiveParams]] and [[llSetLinkPrimitiveParamsFast]] functions. Based on [[Linkset resizer]].&lt;br /&gt;
|-&lt;br /&gt;
||[[Linkset Resizer 2]]&lt;br /&gt;
||[[User:Emma Nowhere|Emma Nowhere]]&lt;br /&gt;
||A more user-friendly resizer script designed for either drop-in use by the end-user or builder or for use in products. Based on [[Fix Small Prims]].&lt;br /&gt;
|-&lt;br /&gt;
||[[List2CSV]]&lt;br /&gt;
||[[User:Kunnis Basiat|Kunnis Basiat]]&lt;br /&gt;
||List2CSV &amp;amp; CSV2List that include preserving type and escaping characters.&lt;br /&gt;
|-&lt;br /&gt;
||[[list_cast]]&lt;br /&gt;
||[[User:Fractured Crystal|Fractured Crystal]]&lt;br /&gt;
||Casts a list of strings into the type they appear to be. Designed for preprocessing user input for feeding into [[llSetPrimitiveParams]]&lt;br /&gt;
|-&lt;br /&gt;
||[[Listener Script]]&lt;br /&gt;
||[[User:Emmas Seetan|Emmas Seetan]]&lt;br /&gt;
||Use to [[listen]] to other people&#039;s conversations (Like spying)&lt;br /&gt;
|-&lt;br /&gt;
||[[User:Void_Singer/Functions#List:_Find_Last_Index|List: Find Last Index]]&lt;br /&gt;
||[[User:Void Singer|Void Singer]]&lt;br /&gt;
||Returns the last index of searched item in a source list. (backwards version of [[llListFindList]])&lt;br /&gt;
|-&lt;br /&gt;
||[[User:Void_Singer/Functions#List:_Multi-Find_Index_.28First_or_Last.29|List: Multi Find]]&lt;br /&gt;
||[[User:Void Singer|Void Singer]]&lt;br /&gt;
||Returns the first found index of multiple search items in a list. (Multi-item version of [[llListFindList]]. Fwd and Rev versions included)&lt;br /&gt;
|-&lt;br /&gt;
||[[User:Void_Singer/Functions#List:_Get_Reverse_Order|List: Reverse]]&lt;br /&gt;
||[[User:Void Singer|Void Singer]]&lt;br /&gt;
||Returns an input List in reverse order&lt;br /&gt;
|-&lt;br /&gt;
||[[Load URL]]&lt;br /&gt;
||[[User:Emmas Seetan|Emmas Seetan]]&lt;br /&gt;
||Touch to get a dialog to visit the URL inside the script.&lt;br /&gt;
|-&lt;br /&gt;
||[[User:Kephra_Nurmi/lsDancemachine|lsDancemachine]]&lt;br /&gt;
||[[User:Kephra_Nurmi|Kephra Nurmi]]&lt;br /&gt;
|| Low lag client server dancemachine.&lt;br /&gt;
|-&lt;br /&gt;
||[[User:Kephra_Nurmi/lsDeejay|lsDeejay Home Edition]] &lt;br /&gt;
||[[User:Kephra_Nurmi|Kephra Nurmi]]&lt;br /&gt;
|| Client server media control for music, video, youtube, pictures, and texture animations.&lt;br /&gt;
|-&lt;br /&gt;
||[[User:Kephra_Nurmi/lsDialog|lsDialog]]&lt;br /&gt;
||[[User:Kephra_Nurmi|Kephra Nurmi]]&lt;br /&gt;
|| Universal notecard driven menu dialog system.&lt;br /&gt;
|-&lt;br /&gt;
||[[User:Kephra_Nurmi/lsDisplay|lsDisplay]]&lt;br /&gt;
||[[User:Kephra_Nurmi|Kephra Nurmi]]&lt;br /&gt;
|| Picture cycler with preloader.&lt;br /&gt;
|-&lt;br /&gt;
||[[User:Kephra_Nurmi/lsDistributor|lsDistributor]]&lt;br /&gt;
||[[User:Kephra_Nurmi|Kephra Nurmi]]&lt;br /&gt;
|| Simple &#039;try&#039; and &#039;buy&#039; vendor system.&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;
||[[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;
||[[Morse Code]]&lt;br /&gt;
||{{User|Bobbyb30 Swashbuckler}}&lt;br /&gt;
||A script that allows for the conversion to and from morse code and can &amp;quot;play&amp;quot; morse code.&lt;br /&gt;
|-&lt;br /&gt;
||[[Multi Item Rezzer|Multi Item Rezzer]]&lt;br /&gt;
||[[User:Jesse Barnett|Jesse Barnett]]&lt;br /&gt;
||A rework of my old High Altitude Rezzer. Place the objects that you wish to choose from to be rezzed inside. Sit on the rezzer and pick the item and the height. It will go to target height and rez the object.&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;
||[[No Auto-Return]]&lt;br /&gt;
||[[User:Bellla Clarity|Bella Clarity]]&lt;br /&gt;
||To stop your long and hard builds from getting returned in sandboxes (&#039;&#039;only single prims, though!&#039;&#039;).&lt;br /&gt;
|-&lt;br /&gt;
||[[No Auto-Return NR]]&lt;br /&gt;
||[[User:Jor3l Boa|Jor3l Boa]]&lt;br /&gt;
||This really works (29-05-09), needs a nearby region to do the trick and avoid auto return. (Tested on Blue and Rausch)&lt;br /&gt;
|-&lt;br /&gt;
||[[No Auto-Return (Multi)]]&lt;br /&gt;
||[[User:Xaviar Czervik|Xaviar Czervik]]&lt;br /&gt;
||A revision of Bella&#039;s that works for multi-prim objects.&lt;br /&gt;
|-&lt;br /&gt;
||[[No Limit Teleporter]]&lt;br /&gt;
||[[User:Morgam Biedermann|Morgam Biedermann]]&lt;br /&gt;
||Teleport to infinite altitudes (up to 4096m)&lt;br /&gt;
|-&lt;br /&gt;
||[[Object Size]]&lt;br /&gt;
||[[User:Chase Quinnell|Chase Quinnell]]&lt;br /&gt;
||Gets the dimensions and footprint of a linkset&lt;br /&gt;
|-&lt;br /&gt;
||[[Object to Data v1.3|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 (or otherwise).&lt;br /&gt;
|-&lt;br /&gt;
||[[Online Indicator|Online Indicator]]&lt;br /&gt;
||[[User:Kristy Fanshaw|Kristy Fanshaw]]&lt;br /&gt;
||Will show if the user is online or not. Displays users profile picture and allows to send IM&#039;s to user. Also gives a link to open the users profile&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;
||[[Open Zyngo Skin Installer]]&lt;br /&gt;
||[[User:Tmzasz Luminos|Tmzasz Luminos]]&lt;br /&gt;
||A Simple Script designed to install skins on the popular Skill machines.&lt;br /&gt;
|-&lt;br /&gt;
||[[One Script, many doors]]&lt;br /&gt;
||[[User:Kyrah Abattoir|Kyrah Abattoir]]&lt;br /&gt;
||Door script able to manage more than 50 linked doors from a single script instance.&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;
||[[Password Generator]]&lt;br /&gt;
||[[User:Syntrax Canucci|Syntrax Canucci]]&lt;br /&gt;
||This is an over-complicated, semi-complex password generator, which goes through multiple steps.&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;
||[[PhysicsLib]]&lt;br /&gt;
||[[User:Nexii Malthus|Nexii Malthus]]&lt;br /&gt;
|| Interesting set of fun physics functions.&lt;br /&gt;
|-&lt;br /&gt;
||[[Play and Loop Sound]]&lt;br /&gt;
||[[User:Bellla Clarity|Bella Clarity]]&lt;br /&gt;
||Very short and simple script; plays and loops a sound in an object.&lt;br /&gt;
|-&lt;br /&gt;
||[[Posing stand|Posing Stand]]&lt;br /&gt;
||[[User:Bellla Clarity|Bella Clarity]]&lt;br /&gt;
||Just a pose script to edit [[attachments]] more easily.&lt;br /&gt;
|-&lt;br /&gt;
||[[PosJump]]&lt;br /&gt;
||[[User:Uchi Desmoulins|Uchi Desmoulins]]&lt;br /&gt;
||A much more efficient alternative to the popular [[warpPos]] function for bypassing 10m distance-moved limitations.&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;
||[[Progress Bar]]&lt;br /&gt;
||[[User:Nexii Malthus|Nexii Malthus]]&lt;br /&gt;
|| Flexible and powerful little function for creating progress bars useful in hovertext.&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;
||[[User:Rolig_Loon/Quiz_From_Notecard|Quiz From Notecard]]&lt;br /&gt;
||[[User:Rolig Loon|Rolig Loon]]&lt;br /&gt;
||A multiple-choice testing script that reads questions and answer choices from a notecard and presents them in dialog boxes.&lt;br /&gt;
|-&lt;br /&gt;
||[[Rainbow_palette]]&lt;br /&gt;
||[[User:Rui Clary|Rui Clary]]&lt;br /&gt;
||Build a color picker, using only one prim, and a few lines of code.&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;
||[[Random Object Vendor]]&lt;br /&gt;
||[[User:CodeBastard Redgrave|CodeBastard Redgrave]]&lt;br /&gt;
||Simple vendor that gives out random objects when paid the right amount &lt;br /&gt;
|-&lt;br /&gt;
||[[Random Password Generator]]&lt;br /&gt;
||[[User:Jor3l Boa|Jor3l Boa]]&lt;br /&gt;
||Generate Random passwords based on String Length.&lt;br /&gt;
|-&lt;br /&gt;
||[[RavText]]&lt;br /&gt;
||[[User:Ravenous Dingo|Ravenous Dingo]]&lt;br /&gt;
||An alternate to XyText.  This is a lightweight, multiple font 10 character text display system.  It only supports uppercase alphanumeric text and a few special characters, but it is very fast, renders quickly and supports multiple fonts. It is meant for specialized use when all that is desired is basic, fast text display and the extra &amp;quot;bells and whistles&amp;quot; are not needed.&lt;br /&gt;
|-&lt;br /&gt;
||[[User:PixelProphet Lane/Scripts#Real Object Inventory To Dialog|Real Object Inventory To Dialog]]&lt;br /&gt;
||[[User:PixelProphet Lane|PixelProphet Lane]]&lt;br /&gt;
||Display any amount of items contained in an Object in a Dialog, regardless of item name length.&lt;br /&gt;
|-&lt;br /&gt;
||[[RentalBoxv1|Rental Box, Simply]]&lt;br /&gt;
||[[User:Sendao Goodman|Sendao Goodman]]&lt;br /&gt;
||Simple explanation of how to make rental boxes.&lt;br /&gt;
|-&lt;br /&gt;
||[[Rental Cube]]&lt;br /&gt;
||[[User:Hank Ramos|Hank Ramos]]&lt;br /&gt;
||Simple cube for renting out a space.&lt;br /&gt;
|-&lt;br /&gt;
||[[Remote Texture Loader]]&lt;br /&gt;
||{{User|Bobbyb30 Swashbuckler}}&lt;br /&gt;
||A set of scripts for remotely loading textures within a sim. This means that a single &amp;quot;texture server&amp;quot; can manage multiple changing billboards within a sim.&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;
||[[Scheme_Interpreter|Scheme Interpreter]]&lt;br /&gt;
||[[User:Xaviar Czervik|Xaviar Czervik]]&lt;br /&gt;
||A scheme interpreter capable of handling most scheme expressions, including lambda and lists.&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;
||[[Scripted Attachment Detector.lsl|Scripted Attachment Detector]]&lt;br /&gt;
||{{User|Bobbyb30 Swashbuckler}}&lt;br /&gt;
||A script that will display avatars wearing scripted attatchments in hovertext. This may be worn as an hud or rezzed. &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;
||[[Sensor Visualizer]]&lt;br /&gt;
||[[User:Cerise Sorbet|Cerise Sorbet]]&lt;br /&gt;
||Shows the size and shape you get with [[llSensor]] range and arc parameters&lt;br /&gt;
|-&lt;br /&gt;
||[[Serverless Key Exchange]]&lt;br /&gt;
||[[User:Sendao Goodman|Sendao Goodman]]&lt;br /&gt;
||Maintains a network of object keys without using an external server.&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;
||[[Sim Map Particle Projector]]&lt;br /&gt;
||[[User:Jesse Barnett|Jesse Barnett]]&lt;br /&gt;
||Displays a floating map of the sim the script is in.&lt;br /&gt;
|-&lt;br /&gt;
||[[Sim Restart Logger]]&lt;br /&gt;
||[[User:Kyrah Abattoir|Kyrah Abattoir]]&lt;br /&gt;
||Counts region restarts and displays log of last 9 restarts together with region FPS and dilation. &lt;br /&gt;
|-&lt;br /&gt;
||[[Simple Elevator in a Box]]&lt;br /&gt;
||[[User:Hank Ramos|Hank Ramos]]&lt;br /&gt;
||Simple elevator example.&lt;br /&gt;
|-&lt;br /&gt;
||[[Skillingo AntiHack Script]]&lt;br /&gt;
||[[User:Tmzasz Luminos|Tmzasz Luminos]]&lt;br /&gt;
||A simple Protection script for skillingo thats modifyable to work with other machines.&lt;br /&gt;
|-&lt;br /&gt;
||[[Skunk Money]]&lt;br /&gt;
||[[User:Hank Ramos|Hank Ramos]]&lt;br /&gt;
||Fun gambling machine of yesteryear, which only supports freeplay now due to SL regulations against gambling. &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;
||[[SLURL HUD]]&lt;br /&gt;
||[[User:CodeBastard Redgrave|CodeBastard Redgrave]]&lt;br /&gt;
||Touch this HUD to get a SLURL through IM, email and floating text.&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;
||[[Smooth Rotating Door]]&lt;br /&gt;
|[[User:Toy Wylie|Toy Wylie]]&lt;br /&gt;
||A script for doors that open and close smoothly using llTargetOmega&lt;br /&gt;
|-&lt;br /&gt;
||[[Smooth Sliding Door]]&lt;br /&gt;
|[[User:SimonT Quinnell|SimonT Quinnell]]&lt;br /&gt;
||A script for sliding doors that open and close smoothly using [[llMoveToTarget]]. Asjusts for prim orientation.&lt;br /&gt;
|-&lt;br /&gt;
||[[Speed Tester]]&lt;br /&gt;
||{{User|Bobbyb30 Swashbuckler}}&lt;br /&gt;
||Similar to the [[Efficiency Tester]], this script allows you to test the speed of a particular function or snippet with multiple trials giving min/max/avg/median and the standard deviation.&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;
||[[Static URL&#039;s for HTTP-In Service|Static_URLs]]&lt;br /&gt;
||[[User:Jor3l Boa|Jor3l Boa]]&lt;br /&gt;
||How to generate a static url for HTTP-In temporal limitations.&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;
||[[User:Void_Singer/Functions#String:_Find_Last_Index|String: Reverse]]&lt;br /&gt;
||[[User:Void Singer|Void Singer]]&lt;br /&gt;
||Returns an input string in reverse order&lt;br /&gt;
|-&lt;br /&gt;
||[[User:Void_Singer/Functions#String:_Get_Reverse_Order|String: Last Index]]&lt;br /&gt;
||[[User:Void Singer|Void Singer]]&lt;br /&gt;
||Returns the last index of search found in string (the backward equivalent of [[llSubStringIndex]])&lt;br /&gt;
|-&lt;br /&gt;
||[[Tail Messages (NewAge)]]&lt;br /&gt;
||[[User:Asia Snowfall|Asia Snowfall]]&lt;br /&gt;
||A super nice easy to use script for those non-scripters out there! NewAge coding has done it again where you no longer need to scroll up and down adding buttons and adding messages, Features a tag system (you&#039;ll see what i mean :P)&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;
||[[User:Void_Singer/Programs#v7-D_Enh._Landmark-2-Map|Teleporter (landmark based)]]&lt;br /&gt;
||[[User:Void_Singer|Void_Singer]]&lt;br /&gt;
||Uses Landmarks to offer map teleports. Works as Hud or inworld objects, just drop in landmarks and go.&lt;br /&gt;
|-&lt;br /&gt;
||[[Text_Scroller|Text Scroller]]&lt;br /&gt;
||[[User:Fred_Gandt|Fred Gandt]]&lt;br /&gt;
||A simple text display object that scrolls text (applied as a texture) from right to left (like &#039;&#039;those&#039;&#039; LED signs) in a continuous loop.&lt;br /&gt;
|-&lt;br /&gt;
||[[Bobbyb&#039;s texture changer|Texture Changers]]&lt;br /&gt;
||{{User|Bobbyb30 Swashbuckler}}&lt;br /&gt;
||A collection of texture changing scripts.&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;
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;
||[[User:Void_Singer/Functions#Unix_time_code_to_list_format|Timestamp:&amp;lt;br&amp;gt;Unix time code to list format]]&lt;br /&gt;
||[[User:Void Singer|Void Singer]]&lt;br /&gt;
||converts Unix timestamps to their [Y, M, D, h, m, s] equivalents (ex: 1234567890 to [2009, 2, 13, 3, 31, 30])&lt;br /&gt;
|-&lt;br /&gt;
||[[User:Void_Singer/Functions#List_format_to_Unix_time_code.|Timestamp:&amp;lt;br&amp;gt;List format to Unix time code]]&lt;br /&gt;
||[[User:Void Singer|Void Singer]]&lt;br /&gt;
||converts [Y, M, D, h, m, s] timestamps to their Unix equivalents (ex: [2009, 2, 13, 3, 31, 30] to 1234567890)&lt;br /&gt;
|-&lt;br /&gt;
||[[User:Void_Singer/Functions#Weekday_from_Unix_timestamp|Timestamp:&amp;lt;br&amp;gt;Weekday from Unix timestamp]]&lt;br /&gt;
||[[User:Void Singer|Void Singer]]&lt;br /&gt;
||Gets weekday from Unix timestamps (ex: &amp;quot;Friday&amp;quot; from 1234567890)&lt;br /&gt;
|-&lt;br /&gt;
||[[User:Void_Singer/Functions#Weekday_from_.28_Y.2C_M.2C_D_.29_format|Timestamp:&amp;lt;br&amp;gt;Weekday from (Y, M, D) format]]&lt;br /&gt;
||[[User:Void Singer|Void Singer]]&lt;br /&gt;
||Gets weekday from (Y, M, D) timestamps (ex: &amp;quot;Friday&amp;quot; from (2009, 2, 13))&lt;br /&gt;
|-&lt;br /&gt;
||[[Touch A Quote]]&lt;br /&gt;
||[[User:CodeBastard Redgrave|CodeBastard Redgrave]]&lt;br /&gt;
||Touch an object to read quotes sequentially from a notecard&lt;br /&gt;
|-&lt;br /&gt;
||[[Touring Balloon]]&lt;br /&gt;
||[[User:Hank Ramos|Hank Ramos]]&lt;br /&gt;
||Automated touring balloon with many options from long ago.  Always seems to work on one SL release, and not the other.&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;
||[[User:Rolig_Loon/UNDO_PosRot|UNDO_PosRot]]&lt;br /&gt;
||[[User:Rolig Loon|Rolig Loon]]&lt;br /&gt;
||Allows user to undo position and rotation changes that have been made &amp;quot;manually&amp;quot; to any or all prims in a linkset.&lt;br /&gt;
|-&lt;br /&gt;
||[[Universal Translator]]&lt;br /&gt;
|[[User:Hank Ramos|Hank Ramos]]&lt;br /&gt;
||Chat listener that handles seamless translation of public chat between 50+ written languages without the need for configuration.  Handles numerous avatars, auto-detects languages, and works together with multiple copies of translators to spread-workload using a sophisticated back-end communications sub-system.&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;
||[[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;
||[[Unpacker On Rez (NewAge)]]&lt;br /&gt;
|[[User:Asia Snowfall|Asia Snowfall]]&lt;br /&gt;
||A very simple to use script for all you creators out there, This script will enable you to send out boxed items and make it easier for users to unpack, Also features auto die on completion. Very simple to configure!&lt;br /&gt;
|-&lt;br /&gt;
||[[Unpacker On Touch (NewAge)]]&lt;br /&gt;
|[[User:Asia Snowfall|Asia Snowfall]]&lt;br /&gt;
||Exactly like Unpacker On Rez, But changed some things about to make it Unpack On Touch&lt;br /&gt;
|-&lt;br /&gt;
||[[Update distributor]]&lt;br /&gt;
|[[User:Dale Innis|Dale Innis]]&lt;br /&gt;
||Distribute an object (like a project update) to a list of people named in a notecard.&lt;br /&gt;
|-&lt;br /&gt;
||[[UUID2Channel]]&lt;br /&gt;
||[[User:Project Neox|Project Neox]]&lt;br /&gt;
||Optimised version of the original key2channel generators.&lt;br /&gt;
|-&lt;br /&gt;
||[[UUID Song Generator]]&lt;br /&gt;
||{{User|Sendao Goodman}}&lt;br /&gt;
||Translates a UUID into a simple song and plays it.&lt;br /&gt;
|-&lt;br /&gt;
||[[VirtualID_URLMap|VirtualID URL Mapper for HTTP-in]]&lt;br /&gt;
|[[User:Cenji Neutra|Cenji Neutra]]&lt;br /&gt;
||A script showing how to setup a static URL of the form &amp;lt;your-alias&amp;gt;.obj.virtualid.info which maps to the dynamic HTTP-in URL LSL generates and keeps it up-to-date.&lt;br /&gt;
|-&lt;br /&gt;
||[[User:Void_Singer/Programs#v7-D_Advanced_Visitor_Greeter|Visitor Greeter]]&lt;br /&gt;
|[[User:Void_Singer|Void_Singer]]&lt;br /&gt;
||Reduced spam visitor greeter, highly configurable, easy to modify.&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;
||[[Walking Sound (NewAge)]]&lt;br /&gt;
|[[User:Asia Snowfall|Asia Snowfall]]&lt;br /&gt;
||Very powerful walking sound script, Featuring customer ability to add their own sounds with the API Sound Feature!&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;
||[[Wiki3DBuilder]] [[Wiki3DBuilder1.0]]&lt;br /&gt;
||[[User:Salahzar Stenvaag|Salahzar Stenvaag]] &lt;br /&gt;
||Allows a group of people to collectively build up complex 3D mindmaps with connected concepts. Uses particles for connections and low prim usage. Nodes can be textured, colored, changed form size moved collectively by everybody and can distribute notecards, landmarks, URL, objects, textures. I provide two version 0.1 and 1.0 and probably next version will communicate with moodle and sloodle external websites.&lt;br /&gt;
|-&lt;br /&gt;
||[[Window Control]]&lt;br /&gt;
||[[User:Emmas Seetan|Emmas Seetan]]&lt;br /&gt;
||For window opacity, helpful for buildings.&lt;br /&gt;
|-&lt;br /&gt;
||[[WHMcs SecondLife plugin]]&lt;br /&gt;
|[[User:Alicia Sautereau|Alicia Sautereau]]&lt;br /&gt;
||Linden Dollar payment plugin for the WHMcs hosting portal.&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;
||[[Youtube TV]]&lt;br /&gt;
||[[User:Morgam Biedermann|Morgam Biedermann]]&lt;br /&gt;
||Watch your favorite Youtube videos / auto set the texture to the parcel media texture.&lt;br /&gt;
|-&lt;br /&gt;
||[[Zero Lag Poseball]]&lt;br /&gt;
||[[User:Jippen Faddoul|Jippen Faddoul]] and [[User:Daemonika Nightfire|Daemonika Nightfire]]&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;
{| class=&amp;quot;sortable&amp;quot; {{Prettytable}}&lt;br /&gt;
|- {{Hl2}}&lt;br /&gt;
! &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Creator&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|| [[User:Ina Centaur/UUID/calimg.api|Calendar Image UUID API]]&lt;br /&gt;
|| [[User:Ina Centaur|Ina Centaur]]&lt;br /&gt;
|| API that gives the UUID of an image of a calendar image give month and year arguments.&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;
|| [[User:Ina Centaur/PHP/k2n.php|Key2Name.php]]&lt;br /&gt;
|| [[User:Ina Centaur|Ina Centaur]]&lt;br /&gt;
|| Get Avatar&#039;s Name using Second Life search service. (like in LSL Key2Name)&lt;br /&gt;
|-&lt;br /&gt;
|| [[Lame_Object_DNS_and_Cross_Sim_Messaging|Lame Object DNS and Cross Sim Messaging]]&lt;br /&gt;
|| [[User:Liandra Ceawlin|Liandra Ceawlin]]&lt;br /&gt;
|| Simple, cheeseball method of doing cross-sim communications with http-in and an external object DNS service.&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;
|| [[User:Jor3l Boa/PHP/n2k.php|Name2Key.php]]&lt;br /&gt;
|| [[User:Jor3l Boa|Jor3l Boa]]&lt;br /&gt;
|| Get Avatar&#039;s UUID using Second Life search service. (like in LSL Name2Key)&lt;br /&gt;
|-&lt;br /&gt;
|| [[Public_Object_DNS|Public Object DNS]]&lt;br /&gt;
|| [[User:Liandra Ceawlin|Liandra Ceawlin]]&lt;br /&gt;
|| Public object DNS-like system running on GAE, for http-in. Hopefully scalable enough for wide-spread usage.&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-archive.secondlife.com/54/69/119570/1.html Announcement].&lt;br /&gt;
|-&lt;br /&gt;
||[[Silverday ObjectDNS]]&lt;br /&gt;
||[[User:Till Stirling|Till Stirling]]&lt;br /&gt;
||Dynamic Object-DNS-System to provide dynamic mapping of LSL-URLs to persistent domains. Features include redirect service, password protected domains, write protected domains, LSL-API for all necessary functions, optional web-interface.&lt;br /&gt;
|-&lt;br /&gt;
|| [http://aubretec.com/products/sldb SLDB]&lt;br /&gt;
|| [[User:Luc Aubret|Luc Aubret]]&lt;br /&gt;
|| Flexible web database storage using PHP/MySQL.  Used to store per-user field/value pairs from in-world objects using [[llHTTPRequest]]. &lt;br /&gt;
* [http://aubretec.com/support/manuals/sldbkit/ Implementation Guide]&lt;br /&gt;
* [http://aubretec.com/wp-content/uploads/2009/05/sldb.zip Download] (.zip, 12kb)&lt;br /&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;br /&gt;
&lt;br /&gt;
{{LSLC|}}&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Update_distributor&amp;diff=1017633</id>
		<title>Update distributor</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Update_distributor&amp;diff=1017633"/>
		<updated>2010-08-25T22:20:28Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: Create page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header}}&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
A simple device for distributing an updated version of a product to a list of existing customers, or in general for sending a thing to a bunch of people whose names you know.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
&lt;br /&gt;
To use this script, put it into a prim, along with a notecard containing a list of names of residents (one per line), and the object to be distributed.  Then touch the prim, and it will read the notecard, determine the key of each resident, and tell you that it is not actually sending the object to each of them in turn.  Once you are satisfied that that&#039;s right, edit the script and change ACTUALLY_SEND to TRUE, save the script, and touch the object again.  This time it will actually send the thing to the people!  (Then edit it and change ACTUALLY_SEND back to FALSE, so you don&#039;t forget next time and send duplicates or something.)&lt;br /&gt;
&lt;br /&gt;
= Limitations and Notes =&lt;br /&gt;
&lt;br /&gt;
There should be exactly one notecard, and exactly one object, in the prim when you touch it.  Otherwise it will complain and not do anything.  To use it to send a texture or a script or a notecard or something, rather than an object, you&#039;ll have to modify the script.&lt;br /&gt;
&lt;br /&gt;
The script uses the w-hat name2key server to get the keys of the people to send the thing to.  If that server stops working, so will this script.&lt;br /&gt;
&lt;br /&gt;
The script pauses for one second after each HTTP call to the name2key server; this makes it take awhile (over a minute for a 60-name list, for instance), but also avoids HTTP throttling.  Another approach would be to explicitly check for HTTP throttling, and only slow down if it happens, but that would be more work.&lt;br /&gt;
&lt;br /&gt;
= The Code =&lt;br /&gt;
&lt;br /&gt;
You may do anything you like with this code, without limitation, subject only to the ToS, law, morality, etc.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Send the thing to the people listed in the notecard!&lt;br /&gt;
// Script by Dale Innis&lt;br /&gt;
// Do with this what you will, no rights reserved&lt;br /&gt;
// See https://wiki.secondlife.com/wiki/Update_distributor for instructions and notes&lt;br /&gt;
&lt;br /&gt;
integer ACTUALLY_SEND = FALSE;   // Set to true to actually send the update to people&lt;br /&gt;
&lt;br /&gt;
string URL   = &amp;quot;http://w-hat.com/name2key&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
string ncname;&lt;br /&gt;
integer nextline;&lt;br /&gt;
string name;&lt;br /&gt;
&lt;br /&gt;
key dsqkey;&lt;br /&gt;
key httpqkey;&lt;br /&gt;
&lt;br /&gt;
order_notecard_line() {  // Request the next notecard line from the data server&lt;br /&gt;
    dsqkey = llGetNotecardLine(ncname,nextline);&lt;br /&gt;
    nextline++;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
send_product(string name,key id) {  // Send, or pretend to, the object to the given key&lt;br /&gt;
    if (ACTUALLY_SEND) {&lt;br /&gt;
        llOwnerSay(&amp;quot;Sending &amp;quot;+llGetInventoryName(INVENTORY_OBJECT,0)+&amp;quot; to &amp;quot;+name+&amp;quot; (&amp;quot;+(string)id+&amp;quot;)&amp;quot;);        &lt;br /&gt;
        llGiveInventory( id, llGetInventoryName(INVENTORY_OBJECT,0) );&lt;br /&gt;
    } else {&lt;br /&gt;
        llOwnerSay(&amp;quot;Not actually sending &amp;quot;+llGetInventoryName(INVENTORY_OBJECT,0)+&amp;quot; to &amp;quot;+name+&amp;quot; (&amp;quot;+(string)id+&amp;quot;)&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        // Not really anything to do here        &lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    touch_start(integer total_number)&lt;br /&gt;
    {&lt;br /&gt;
        if (llDetectedKey(0)!=llGetOwner()) return;  // Ignore non-owner touches&lt;br /&gt;
        if (llGetInventoryNumber(INVENTORY_NOTECARD)!=1) {&lt;br /&gt;
            llOwnerSay(&amp;quot;There needs to be exactly one notecard!&amp;quot;);&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        if (llGetInventoryNumber(INVENTORY_OBJECT)!=1) {&lt;br /&gt;
            llOwnerSay(&amp;quot;There needs to be exactly one object!&amp;quot;);&lt;br /&gt;
            return;&lt;br /&gt;
        }  &lt;br /&gt;
        ncname = llGetInventoryName(INVENTORY_NOTECARD,0);&lt;br /&gt;
        nextline = 0;&lt;br /&gt;
        order_notecard_line();  // Request the first notecard line&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    dataserver(key id, string data) {  // A notecard line has arrived&lt;br /&gt;
        if (id != dsqkey) return;&lt;br /&gt;
        if (data==EOF) {&lt;br /&gt;
            llOwnerSay(&amp;quot;Done!&amp;quot;);&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        name = llStringTrim(data,STRING_TRIM);  // Strip blanks&lt;br /&gt;
        integer sent = FALSE;&lt;br /&gt;
        if (llStringLength(name)&amp;gt;2) {                // Ignore blanks lines&lt;br /&gt;
            if (llGetSubString(name,0,1)!=&amp;quot;//&amp;quot;) {    // Ignore lines starting with //&lt;br /&gt;
                httpqkey = llHTTPRequest( URL + &amp;quot;?terse=1&amp;amp;name=&amp;quot; + llEscapeURL(name), [], &amp;quot;&amp;quot; );&lt;br /&gt;
                sent = TRUE;&lt;br /&gt;
                llSleep(1.0);   // Avoid HTTP throttling&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        if (sent==FALSE) {&lt;br /&gt;
            order_notecard_line();  // If we didn&#039;t just send for a key, send for next name.&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    http_response(key id, integer status, list meta, string body) {  // A key has arrived&lt;br /&gt;
        if ( id != httpqkey )&lt;br /&gt;
            return;&lt;br /&gt;
        if ( status == 499 )&lt;br /&gt;
            llOwnerSay(&amp;quot;name2key request timed out for &amp;quot;+name);&lt;br /&gt;
        else if ( status != 200 )&lt;br /&gt;
            llOwnerSay(&amp;quot;the internet exploded!!  Blame &amp;quot;+name);&lt;br /&gt;
        else if ( (key)body == NULL_KEY )&lt;br /&gt;
            llOwnerSay(&amp;quot;No key found for &amp;quot; + name);&lt;br /&gt;
        else&lt;br /&gt;
            send_product(name,(key)body);      // Send, or not, the product to the key&lt;br /&gt;
        order_notecard_line();                 // Then order the next name to process&lt;br /&gt;
    }    &lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{LSLC|Library}}{{LSLC|Examples}}&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Category:LSL_Library&amp;diff=1015162</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=1015162"/>
		<updated>2010-08-22T20:25:13Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: /* LSL Script Library */ add camera following prim&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header|ml=*}}{{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-archive.secondlife.com/15/1.html Scripting Library archive] or the newer [https://blogs.secondlife.com/community/forums/scripting_library?view=discussions Scripting Library forum], were lost with the death of the early 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;
{| class=&amp;quot;sortable&amp;quot; {{Prettytable}}&lt;br /&gt;
|- {{Hl2}}&lt;br /&gt;
! &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Creator&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
||[[1st necessity of SL]]&lt;br /&gt;
||[[User:Beer Dailey|Beer Dailey]]&lt;br /&gt;
||Monitors for avatars and (de)activates scripts states to control script performance/lag.&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;
||[[Access (NewAge)]]&lt;br /&gt;
||[[User:Asia Snowfall|Asia Snowfall]]&lt;br /&gt;
||An easy to use script for permissions on who can use the script, Public/Group/Owner&lt;br /&gt;
|-&lt;br /&gt;
||[[Aim Detection]]&lt;br /&gt;
||[[User:Han Shuffle|Han Shuffle]]&lt;br /&gt;
||Monitors for avatars and reports back to owner about who is aiming at them.&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;
||[[Associative Array Emulator|Associative Array (Dictionary) Emulator]]&lt;br /&gt;
||[[User:Alynna Vixen|Alynna Vixen]]&lt;br /&gt;
||This library provides a set of functions for using a list as an associative array where string based keys can refer to one or more variant elements.&lt;br /&gt;
|-&lt;br /&gt;
||[[AvatarFollower]]&lt;br /&gt;
||[[User:Dale Innis|Dale Innis]]&lt;br /&gt;
||Allows one avatar to automatically follow another.&lt;br /&gt;
|-&lt;br /&gt;
||[[Avatar Radar (NewAge)]]&lt;br /&gt;
||[[User:Asia Snowfall|Asia Snowfall]]&lt;br /&gt;
||Version 1.2; A nice new avatar radar script i just finish that you can place in your hud, Also features avatar locator&lt;br /&gt;
|-&lt;br /&gt;
||[[Base2Dec]]&lt;br /&gt;
||[[User:Siann Beck|Siann Beck]]&lt;br /&gt;
||Convert a number to decimal from any base.&lt;br /&gt;
|-&lt;br /&gt;
||[[BaseN]]&lt;br /&gt;
||[[User:Nexii Malthus|Nexii Malthus]]&lt;br /&gt;
||Variable base compression, dynamically maps to usable UTF code points.&lt;br /&gt;
|-&lt;br /&gt;
||[[Basic A-Star Pathfinder]]&lt;br /&gt;
||[[User:Nexii Malthus|Nexii Malthus]]&lt;br /&gt;
|| My own interpretation of A Star into a highly efficient algorithmn&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;
||[[Be happy]]&lt;br /&gt;
||[[User:Emmas Seetan|Emmas Seetan]]&lt;br /&gt;
||Basic smile attachment script, makes your avatar smile.&lt;br /&gt;
|-&lt;br /&gt;
||[[Best Neighbor Ad Hiding Script|Best Neighbor]]&lt;br /&gt;
||[[User:Doran Zemlja|Doran Zemlja]]&lt;br /&gt;
||Reduce ad clutter by hiding ads when users are on their own land nearby.&lt;br /&gt;
|-&lt;br /&gt;
||[[BigNum|BigNum Library (RSA Encryption)]]&lt;br /&gt;
||[[User:Xaviar Czervik|Xaviar Czervik]]&lt;br /&gt;
||A BigNum Library for dealing with big numbers! Specialized for modular multiplication, and RSA encryption.&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;
||[[BinaryDecimalConverter]]&lt;br /&gt;
||[[User:Soundless Smalls|Soundless Smalls]]&lt;br /&gt;
||Converts a binary value to a decimal value and vice versa.&lt;br /&gt;
|-&lt;br /&gt;
||[[Blacklist and Remote Kill|Blacklist and Remote Kill]]&lt;br /&gt;
||[[User:Chase Quinnell|Chase Quinnell]]&lt;br /&gt;
||Blacklist(denial of use) or a creator kill script(can delete someone&#039;s item by command on private channel)&lt;br /&gt;
|-&lt;br /&gt;
||[[User_talk:Rolig_Loon/Bookmark_URLs|Bookmark URLs]]&lt;br /&gt;
||[[User:Rolig Loon|Rolig Loon]]&lt;br /&gt;
||Dialog driven HUD reads bookmarked URLs from notecards and navigates directly to them with user&#039;s in-world browser.&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;
||[[Button Click Detector]]&lt;br /&gt;
||{{User|Sendao Goodman}}&lt;br /&gt;
||Use [[llDetectedTouchUV]] to determine which button was pressed on a texture.&lt;br /&gt;
|-&lt;br /&gt;
||[[Camera following prim]]&lt;br /&gt;
||[[User:Dale Innis|Dale Innis]]&lt;br /&gt;
||Pair of scripts to make a prim follow your camera position around (for lights etc).&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;
||[[ClickAndDrag]]&lt;br /&gt;
||[[User:Nexii Malthus|Nexii Malthus]]&lt;br /&gt;
|| Click and Drag user interface elements using dynamic feedback&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;
||[[User:Void_Singer/Programs#v7-D_Enh._Color_Picker|Color Changer]]&lt;br /&gt;
||[[User:Void_Singer|Void_Singer]]&lt;br /&gt;
||Dialog driven color changer. Supports 16million+ colors, web color codes, multiple targeted prims, with save and recall.&lt;br /&gt;
|-&lt;br /&gt;
||[[Color Changer|Color Changer Plus]]&lt;br /&gt;
||[[User:Neo Calcutt|Neo Calcutt]]&lt;br /&gt;
||A color changer with 14 colors, a random function, and a custom vector function.&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;
||[[ColorConvert]]&lt;br /&gt;
||[[User:Siann Beck|Siann Beck]]&lt;br /&gt;
||Convert color values to vector from RGB, hex or HTML color name.&lt;br /&gt;
|-&lt;br /&gt;
||[[Color script]]&lt;br /&gt;
||[[User:Masakazu Kojima|Masakazu Kojima]]&lt;br /&gt;
||Script for changing colors trough a listener with pre-defined colors.&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;
||[[Read Note Card Configuration|Configuration Notecard Reader]]&lt;br /&gt;
||{{User|Dedric Mauriac}}&lt;br /&gt;
||A script to read configuration information from a notecard. Parses notecard to extract key words and their assigned values. Allows for comment lines and many more useful features.&lt;br /&gt;
|-&lt;br /&gt;
||[[AdvancedNotecardReader|Configuration Notecard Reader (advanced)]]&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;
||[[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;
||[[Days in Month]]&lt;br /&gt;
||[[User:IntLibber Brautigan begin_of_the_skype_highlighting     end_of_the_skype_highlighting begin_of_the_skype_highlighting     end_of_the_skype_highlighting|IntLibber Brautigan]]&lt;br /&gt;
||Clicking on it returns the number of days in the present month. Useful for scripting calendars and tier systems that need to know the number of days in the month at hand or to calculate for any month. Even adjusts for leap years.&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 &amp;amp; menu 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;
Latest version also has [[Dialog Menus Control]] built-in; which allow multi-level menus through SL dialog system.&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;
||[[Displayer Script]]&lt;br /&gt;
||[[User:Akinori Kimagawa|Akinori Kimagawa]]&lt;br /&gt;
||[[Display Words On Top Of An Object]]&lt;br /&gt;
|-&lt;br /&gt;
||[[Drink script]]&lt;br /&gt;
||[[User:Emmas Seetan|Emmas Seetan]]&lt;br /&gt;
||Used mainly for food and drink in Second Life.&lt;br /&gt;
|-&lt;br /&gt;
||[[TOXDropBox|DropBox]]&lt;br /&gt;
||[[User:Dimentox Travanti|Dimentox Travanti]]&lt;br /&gt;
|| This is a Drop box which allows people to drop certain items in a object &amp;amp; has many config options.&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;
|-&lt;br /&gt;
||[[User:Kireji_Haiku/SIMchat_headset|Encrypted Region-wide chat]]&lt;br /&gt;
||&#039;&#039;&#039;[[User:Kireji Haiku|Kireji Haiku]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Kireji Haiku|talk]]|[[Special:Contributions/Kireji Haiku|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt;&lt;br /&gt;
||Encrypted Region-wide chat&lt;br /&gt;
|-&lt;br /&gt;
||[[ExplodingObjects]]&lt;br /&gt;
||[[User:Dale Innis|Dale Innis]]&lt;br /&gt;
||Causes an object (of the appropriate type) to explode on command.&lt;br /&gt;
|-&lt;br /&gt;
||[[FadeEasy]]&lt;br /&gt;
||[[User:Nika Rugani|Nika Rugani]]&lt;br /&gt;
||The easy way of fading objects in or out (Using llSetLinkAlpha)&lt;br /&gt;
|-&lt;br /&gt;
||[[FastConeSpread]]&lt;br /&gt;
||[[User:Nexii Malthus|Nexii Malthus]]&lt;br /&gt;
|| Fast Algorithmn to achieve cone spread, main use in weaponry systems.&lt;br /&gt;
|-&lt;br /&gt;
||[[User:PixelProphet Lane/Scripts#Fast List Prim Contents|Fast List Prim Contents]]&lt;br /&gt;
||[[User:PixelProphet Lane|PixelProphet Lane]]&lt;br /&gt;
||Fast and efficient method to print Object Inventory (Name, Type and next Owner permissions)&lt;br /&gt;
|-&lt;br /&gt;
||[[Find Avatar Key|Find Avatar Key]]&lt;br /&gt;
||[[User:Huney Jewell|Huney Jewell]]&lt;br /&gt;
||Explores [[UUID]] of avatar whose name is said in local chat or who touches the prim.&lt;br /&gt;
|-&lt;br /&gt;
||[[First Name Letter Prize]]&lt;br /&gt;
||[[User:RaithSphere Whybrow|RaithSphere Whybrow]]&lt;br /&gt;
||Gives a prize if the person who sits on it&#039;s first letter of first name matches the random letter!&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;
||[[Float Box Contents]]&lt;br /&gt;
||[[User:Rolig Loon|Rolig Loon]]&lt;br /&gt;
||Displays object inventory in hover text, identified by type and updated marquee-style.&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;
||[[GA Event Notifier]]&lt;br /&gt;
||[[User:Victor Hua|Victor Hua]]&lt;br /&gt;
||Gathers seven days event data from a Google calendar and display it through a simple interface. The lsl script can access several calendars at once through seperate php files. One file per calendar. Host the included php on your own web server.&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;
||[[Get Profile Picture]]&lt;br /&gt;
||[[User:Valentine Foxdale|Valentine Foxdale]]&lt;br /&gt;
||Sets the texture of the object to profile picture of the person that touches ot&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;
||[[Give random object]]&lt;br /&gt;
||[[User:Emmas Seetan|Emmas Seetan]]&lt;br /&gt;
||Touch to receive a random object in the prim&#039;s inventory&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;
||[[Google_Translator]]&lt;br /&gt;
||[[User:Ugleh Ulrik|Ugleh Ulrik]]&lt;br /&gt;
||Translates spanish to english, and its simple to make it any other way.&lt;br /&gt;
|-&lt;br /&gt;
||[[Go transparent when walking]]&lt;br /&gt;
||[[User:Emmas Seetan|Emmas Seetan]]&lt;br /&gt;
||An attachment that goes invisible when you walk and visible when you don&#039;t walk.&lt;br /&gt;
|-&lt;br /&gt;
||[[Group Authorization]]&lt;br /&gt;
||[[User:Chase Quinnell|Chase Quinnell]]&lt;br /&gt;
||Checks to see if object is set to appropriate group (checks by [[Group key finder|group key]])&lt;br /&gt;
|-&lt;br /&gt;
||[[Group Information v1.0]]&lt;br /&gt;
||[[User:Tyrennic Rivera|Tyrennic Rivera]]&lt;br /&gt;
||When clicked the prim will show group information (set on the prim) from the official Second Life Search page.&lt;br /&gt;
|-&lt;br /&gt;
||[[Group key finder]]&lt;br /&gt;
||[[User:Emmas Seetan|Emmas Seetan]]&lt;br /&gt;
||Touch to find the key of the group&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;
||[[Hello Avatar Companion]]&lt;br /&gt;
||[[Chase Quinnell]]&lt;br /&gt;
||Companion to the original [[Hello Avatar]] script&lt;br /&gt;
|-&lt;br /&gt;
||[[Hierarchics]]&lt;br /&gt;
||[[User:Nexii Malthus|Nexii Malthus]]&lt;br /&gt;
|| Advanced script to create an efficient self-aware hierarchic structure.&lt;br /&gt;
|-&lt;br /&gt;
||[[User:Rolig_Loon/High-Capacity_Greeter-Counter|High-Capacity Greeter-Counter]]&lt;br /&gt;
||[[User:Rolig Loon|Rolig Loon]]&lt;br /&gt;
||Uses a memory compression algorithm to store hashed visitor UUID&#039;s in a string instead of using a list. &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;
||[[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;
||[[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;
||[[Inventory_Based_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;
||[[Kilt Editor|Kilt / Skirt Editor]]&lt;br /&gt;
||[[User:Brangus Weir|Brangus Weir]]&lt;br /&gt;
|| This changes all the parameters of all the flexis in the link set in one swell foop!&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;
||[[Last Sound System]]&lt;br /&gt;
||[[User:Babbage Linden|Babbage Linden]]&lt;br /&gt;
||An LSL [http://Last.fm Last.fm] client.&lt;br /&gt;
|-&lt;br /&gt;
||[[LibraryDisplayLandScreenshot]]&lt;br /&gt;
||[[User:Jon Desmoulins|Jon Desmoulins]]&lt;br /&gt;
||A modified version of LibraryDisplayProfilePic using the new [[PARCEL_DETAILS_ID]] Implemented in Server v1.36&lt;br /&gt;
|-&lt;br /&gt;
||[[User:Daemonika_Nightfire/Scripts/LinkNumber-List_in_llSetLinkPrimitiveParamsFast|LinkNumber-List_in_llSetLinkPrimitiveParamsFast]]&lt;br /&gt;
||[[User:Daemonika Nightfire|Daemonika Nightfire]]&lt;br /&gt;
||Changed several prims in linkset with the same parameters, with a list. Without separate llSetLinkPrimitiveParams for each prim. (ideal for show/hide effects)&lt;br /&gt;
|-&lt;br /&gt;
||[[Linkset resizer]]&lt;br /&gt;
||[[User:Maestro Linden|Maestro Linden]]&lt;br /&gt;
||Systematically rescales a linkset by moving and resizing each prim (by using [[llGetLinkPrimitiveParams]] and [[llSetLinkPrimitiveParamsFast]])&lt;br /&gt;
|-&lt;br /&gt;
||[[Linkset resizer with menu]]&lt;br /&gt;
||[[User:Brilliant Scientist|Brilliant Scientist]]&lt;br /&gt;
||A menu-driven script that rescales a linkset by moving and resizing the prims using [[llGetLinkPrimitiveParams]] and [[llSetLinkPrimitiveParamsFast]] functions. Based on [[Linkset resizer]].&lt;br /&gt;
|-&lt;br /&gt;
||[[Linkset Resizer 2]]&lt;br /&gt;
||[[User:Emma Nowhere|Emma Nowhere]]&lt;br /&gt;
||A more user-friendly resizer script designed for either drop-in use by the end-user or builder or for use in products. Based on [[Fix Small Prims]].&lt;br /&gt;
|-&lt;br /&gt;
||[[List2CSV]]&lt;br /&gt;
||[[User:Kunnis Basiat|Kunnis Basiat]]&lt;br /&gt;
||List2CSV &amp;amp; CSV2List that include preserving type and escaping characters.&lt;br /&gt;
|-&lt;br /&gt;
||[[list_cast]]&lt;br /&gt;
||[[User:Fractured Crystal|Fractured Crystal]]&lt;br /&gt;
||Casts a list of strings into the type they appear to be. Designed for preprocessing user input for feeding into [[llSetPrimitiveParams]]&lt;br /&gt;
|-&lt;br /&gt;
||[[Listener Script]]&lt;br /&gt;
||[[User:Emmas Seetan|Emmas Seetan]]&lt;br /&gt;
||Use to [[listen]] to other people&#039;s conversations (Like spying)&lt;br /&gt;
|-&lt;br /&gt;
||[[User:Void_Singer/Functions#List:_Find_Last_Index|List: Find Last Index]]&lt;br /&gt;
||[[User:Void Singer|Void Singer]]&lt;br /&gt;
||Returns the last index of searched item in a source list. (backwards version of [[llListFindList]])&lt;br /&gt;
|-&lt;br /&gt;
||[[User:Void_Singer/Functions#List:_Multi-Find_Index_.28First_or_Last.29|List: Multi Find]]&lt;br /&gt;
||[[User:Void Singer|Void Singer]]&lt;br /&gt;
||Returns the first found index of multiple search items in a list. (Multi-item version of [[llListFindList]]. Fwd and Rev versions included)&lt;br /&gt;
|-&lt;br /&gt;
||[[User:Void_Singer/Functions#List:_Get_Reverse_Order|List: Reverse]]&lt;br /&gt;
||[[User:Void Singer|Void Singer]]&lt;br /&gt;
||Returns an input List in reverse order&lt;br /&gt;
|-&lt;br /&gt;
||[[Load URL]]&lt;br /&gt;
||[[User:Emmas Seetan|Emmas Seetan]]&lt;br /&gt;
||Touch to get a dialog to visit the URL inside the script.&lt;br /&gt;
|-&lt;br /&gt;
||[[User:Kephra_Nurmi/lsDancemachine|lsDancemachine]]&lt;br /&gt;
||[[User:Kephra_Nurmi|Kephra Nurmi]]&lt;br /&gt;
|| Low lag client server dancemachine.&lt;br /&gt;
|-&lt;br /&gt;
||[[User:Kephra_Nurmi/lsDeejay|lsDeejay Home Edition]] &lt;br /&gt;
||[[User:Kephra_Nurmi|Kephra Nurmi]]&lt;br /&gt;
|| Client server media control for music, video, youtube, pictures, and texture animations.&lt;br /&gt;
|-&lt;br /&gt;
||[[User:Kephra_Nurmi/lsDialog|lsDialog]]&lt;br /&gt;
||[[User:Kephra_Nurmi|Kephra Nurmi]]&lt;br /&gt;
|| Universal notecard driven menu dialog system.&lt;br /&gt;
|-&lt;br /&gt;
||[[User:Kephra_Nurmi/lsDisplay|lsDisplay]]&lt;br /&gt;
||[[User:Kephra_Nurmi|Kephra Nurmi]]&lt;br /&gt;
|| Picture cycler with preloader.&lt;br /&gt;
|-&lt;br /&gt;
||[[User:Kephra_Nurmi/lsDistributor|lsDistributor]]&lt;br /&gt;
||[[User:Kephra_Nurmi|Kephra Nurmi]]&lt;br /&gt;
|| Simple &#039;try&#039; and &#039;buy&#039; vendor system.&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;
||[[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;
||[[Morse Code]]&lt;br /&gt;
||{{User|Bobbyb30 Swashbuckler}}&lt;br /&gt;
||A script that allows for the conversion to and from morse code and can &amp;quot;play&amp;quot; morse code.&lt;br /&gt;
|-&lt;br /&gt;
||[[Multi Item Rezzer|Multi Item Rezzer]]&lt;br /&gt;
||[[User:Jesse Barnett|Jesse Barnett]]&lt;br /&gt;
||A rework of my old High Altitude Rezzer. Place the objects that you wish to choose from to be rezzed inside. Sit on the rezzer and pick the item and the height. It will go to target height and rez the object.&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;
||[[No Auto-Return]]&lt;br /&gt;
||[[User:Bellla Clarity|Bella Clarity]]&lt;br /&gt;
||To stop your long and hard builds from getting returned in sandboxes (&#039;&#039;only single prims, though!&#039;&#039;).&lt;br /&gt;
|-&lt;br /&gt;
||[[No Auto-Return NR]]&lt;br /&gt;
||[[User:Jor3l Boa|Jor3l Boa]]&lt;br /&gt;
||This really works (29-05-09), needs a nearby region to do the trick and avoid auto return. (Tested on Blue and Rausch)&lt;br /&gt;
|-&lt;br /&gt;
||[[No Auto-Return (Multi)]]&lt;br /&gt;
||[[User:Xaviar Czervik|Xaviar Czervik]]&lt;br /&gt;
||A revision of Bella&#039;s that works for multi-prim objects.&lt;br /&gt;
|-&lt;br /&gt;
||[[No Limit Teleporter]]&lt;br /&gt;
||[[User:Morgam Biedermann|Morgam Biedermann]]&lt;br /&gt;
||Teleport to infinite altitudes (up to 4096m)&lt;br /&gt;
|-&lt;br /&gt;
||[[Object Size]]&lt;br /&gt;
||[[User:Chase Quinnell|Chase Quinnell]]&lt;br /&gt;
||Gets the dimensions and footprint of a linkset&lt;br /&gt;
|-&lt;br /&gt;
||[[Object to Data v1.3|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 (or otherwise).&lt;br /&gt;
|-&lt;br /&gt;
||[[Online Indicator|Online Indicator]]&lt;br /&gt;
||[[User:Kristy Fanshaw|Kristy Fanshaw]]&lt;br /&gt;
||Will show if the user is online or not. Displays users profile picture and allows to send IM&#039;s to user. Also gives a link to open the users profile&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;
||[[Open Zyngo Skin Installer]]&lt;br /&gt;
||[[User:Tmzasz Luminos|Tmzasz Luminos]]&lt;br /&gt;
||A Simple Script designed to install skins on the popular Skill machines.&lt;br /&gt;
|-&lt;br /&gt;
||[[One Script, many doors]]&lt;br /&gt;
||[[User:Kyrah Abattoir|Kyrah Abattoir]]&lt;br /&gt;
||Door script able to manage more than 50 linked doors from a single script instance.&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;
||[[Password Generator]]&lt;br /&gt;
||[[User:Syntrax Canucci|Syntrax Canucci]]&lt;br /&gt;
||This is an over-complicated, semi-complex password generator, which goes through multiple steps.&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;
||[[PhysicsLib]]&lt;br /&gt;
||[[User:Nexii Malthus|Nexii Malthus]]&lt;br /&gt;
|| Interesting set of fun physics functions.&lt;br /&gt;
|-&lt;br /&gt;
||[[Play and Loop Sound]]&lt;br /&gt;
||[[User:Bellla Clarity|Bella Clarity]]&lt;br /&gt;
||Very short and simple script; plays and loops a sound in an object.&lt;br /&gt;
|-&lt;br /&gt;
||[[Posing stand|Posing Stand]]&lt;br /&gt;
||[[User:Bellla Clarity|Bella Clarity]]&lt;br /&gt;
||Just a pose script to edit [[attachments]] more easily.&lt;br /&gt;
|-&lt;br /&gt;
||[[PosJump]]&lt;br /&gt;
||[[User:Uchi Desmoulins|Uchi Desmoulins]]&lt;br /&gt;
||A much more efficient alternative to the popular [[warpPos]] function for bypassing 10m distance-moved limitations.&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;
||[[Progress Bar]]&lt;br /&gt;
||[[User:Nexii Malthus|Nexii Malthus]]&lt;br /&gt;
|| Flexible and powerful little function for creating progress bars useful in hovertext.&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;
||[[User:Rolig_Loon/Quiz_From_Notecard|Quiz From Notecard]]&lt;br /&gt;
||[[User:Rolig Loon|Rolig Loon]]&lt;br /&gt;
||A multiple-choice testing script that reads questions and answer choices from a notecard and presents them in dialog boxes.&lt;br /&gt;
|-&lt;br /&gt;
||[[Rainbow_palette]]&lt;br /&gt;
||[[User:Rui Clary|Rui Clary]]&lt;br /&gt;
||Build a color picker, using only one prim, and a few lines of code.&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;
||[[Random Object Vendor]]&lt;br /&gt;
||[[User:CodeBastard Redgrave|CodeBastard Redgrave]]&lt;br /&gt;
||Simple vendor that gives out random objects when paid the right amount &lt;br /&gt;
|-&lt;br /&gt;
||[[Random Password Generator]]&lt;br /&gt;
||[[User:Jor3l Boa|Jor3l Boa]]&lt;br /&gt;
||Generate Random passwords based on String Length.&lt;br /&gt;
|-&lt;br /&gt;
||[[RavText]]&lt;br /&gt;
||[[User:Ravenous Dingo|Ravenous Dingo]]&lt;br /&gt;
||An alternate to XyText.  This is a lightweight, multiple font 10 character text display system.  It only supports uppercase alphanumeric text and a few special characters, but it is very fast, renders quickly and supports multiple fonts. It is meant for specialized use when all that is desired is basic, fast text display and the extra &amp;quot;bells and whistles&amp;quot; are not needed.&lt;br /&gt;
|-&lt;br /&gt;
||[[User:PixelProphet Lane/Scripts#Real Object Inventory To Dialog|Real Object Inventory To Dialog]]&lt;br /&gt;
||[[User:PixelProphet Lane|PixelProphet Lane]]&lt;br /&gt;
||Display any amount of items contained in an Object in a Dialog, regardless of item name length.&lt;br /&gt;
|-&lt;br /&gt;
||[[RentalBoxv1|Rental Box, Simply]]&lt;br /&gt;
||[[User:Sendao Goodman|Sendao Goodman]]&lt;br /&gt;
||Simple explanation of how to make rental boxes.&lt;br /&gt;
|-&lt;br /&gt;
||[[Rental Cube]]&lt;br /&gt;
||[[User:Hank Ramos|Hank Ramos]]&lt;br /&gt;
||Simple cube for renting out a space.&lt;br /&gt;
|-&lt;br /&gt;
||[[Remote Texture Loader]]&lt;br /&gt;
||{{User|Bobbyb30 Swashbuckler}}&lt;br /&gt;
||A set of scripts for remotely loading textures within a sim. This means that a single &amp;quot;texture server&amp;quot; can manage multiple changing billboards within a sim.&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;
||[[Scheme_Interpreter|Scheme Interpreter]]&lt;br /&gt;
||[[User:Xaviar Czervik|Xaviar Czervik]]&lt;br /&gt;
||A scheme interpreter capable of handling most scheme expressions, including lambda and lists.&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;
||[[Scripted Attachment Detector.lsl|Scripted Attachment Detector]]&lt;br /&gt;
||{{User|Bobbyb30 Swashbuckler}}&lt;br /&gt;
||A script that will display avatars wearing scripted attatchments in hovertext. This may be worn as an hud or rezzed. &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;
||[[Sensor Visualizer]]&lt;br /&gt;
||[[User:Cerise Sorbet|Cerise Sorbet]]&lt;br /&gt;
||Shows the size and shape you get with [[llSensor]] range and arc parameters&lt;br /&gt;
|-&lt;br /&gt;
||[[Serverless Key Exchange]]&lt;br /&gt;
||[[User:Sendao Goodman|Sendao Goodman]]&lt;br /&gt;
||Maintains a network of object keys without using an external server.&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;
||[[Sim Map Particle Projector]]&lt;br /&gt;
||[[User:Jesse Barnett|Jesse Barnett]]&lt;br /&gt;
||Displays a floating map of the sim the script is in.&lt;br /&gt;
|-&lt;br /&gt;
||[[Sim Restart Logger]]&lt;br /&gt;
||[[User:Kyrah Abattoir|Kyrah Abattoir]]&lt;br /&gt;
||Counts region restarts and displays log of last 9 restarts together with region FPS and dilation. &lt;br /&gt;
|-&lt;br /&gt;
||[[Simple Elevator in a Box]]&lt;br /&gt;
||[[User:Hank Ramos|Hank Ramos]]&lt;br /&gt;
||Simple elevator example.&lt;br /&gt;
|-&lt;br /&gt;
||[[Skillingo AntiHack Script]]&lt;br /&gt;
||[[User:Tmzasz Luminos|Tmzasz Luminos]]&lt;br /&gt;
||A simple Protection script for skillingo thats modifyable to work with other machines.&lt;br /&gt;
|-&lt;br /&gt;
||[[Skunk Money]]&lt;br /&gt;
||[[User:Hank Ramos|Hank Ramos]]&lt;br /&gt;
||Fun gambling machine of yesteryear, which only supports freeplay now due to SL regulations against gambling. &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;
||[[SLURL HUD]]&lt;br /&gt;
||[[User:CodeBastard Redgrave|CodeBastard Redgrave]]&lt;br /&gt;
||Touch this HUD to get a SLURL through IM, email and floating text.&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;
||[[Smooth Rotating Door]]&lt;br /&gt;
|[[User:Toy Wylie|Toy Wylie]]&lt;br /&gt;
||A script for doors that open and close smoothly using llTargetOmega&lt;br /&gt;
|-&lt;br /&gt;
||[[Smooth Sliding Door]]&lt;br /&gt;
|[[User:SimonT Quinnell|SimonT Quinnell]]&lt;br /&gt;
||A script for sliding doors that open and close smoothly using [[llMoveToTarget]]. Asjusts for prim orientation.&lt;br /&gt;
|-&lt;br /&gt;
||[[Speed Tester]]&lt;br /&gt;
||{{User|Bobbyb30 Swashbuckler}}&lt;br /&gt;
||Similar to the [[Efficiency Tester]], this script allows you to test the speed of a particular function or snippet with multiple trials giving min/max/avg/median and the standard deviation.&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;
||[[Static URL&#039;s for HTTP-In Service|Static_URLs]]&lt;br /&gt;
||[[User:Jor3l Boa|Jor3l Boa]]&lt;br /&gt;
||How to generate a static url for HTTP-In temporal limitations.&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;
||[[User:Void_Singer/Functions#String:_Find_Last_Index|String: Reverse]]&lt;br /&gt;
||[[User:Void Singer|Void Singer]]&lt;br /&gt;
||Returns an input string in reverse order&lt;br /&gt;
|-&lt;br /&gt;
||[[User:Void_Singer/Functions#String:_Get_Reverse_Order|String: Last Index]]&lt;br /&gt;
||[[User:Void Singer|Void Singer]]&lt;br /&gt;
||Returns the last index of search found in string (the backward equivalent of [[llSubStringIndex]])&lt;br /&gt;
|-&lt;br /&gt;
||[[Tail Messages (NewAge)]]&lt;br /&gt;
||[[User:Asia Snowfall|Asia Snowfall]]&lt;br /&gt;
||A super nice easy to use script for those non-scripters out there! NewAge coding has done it again where you no longer need to scroll up and down adding buttons and adding messages, Features a tag system (you&#039;ll see what i mean :P)&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;
||[[User:Void_Singer/Programs#v7-D_Enh._Landmark-2-Map|Teleporter (landmark based)]]&lt;br /&gt;
||[[User:Void_Singer|Void_Singer]]&lt;br /&gt;
||Uses Landmarks to offer map teleports. Works as Hud or inworld objects, just drop in landmarks and go.&lt;br /&gt;
|-&lt;br /&gt;
||[[Text_Scroller|Text Scroller]]&lt;br /&gt;
||[[User:Fred_Gandt|Fred Gandt]]&lt;br /&gt;
||A simple text display object that scrolls text (applied as a texture) from right to left (like &#039;&#039;those&#039;&#039; LED signs) in a continuous loop.&lt;br /&gt;
|-&lt;br /&gt;
||[[Bobbyb&#039;s texture changer|Texture Changers]]&lt;br /&gt;
||{{User|Bobbyb30 Swashbuckler}}&lt;br /&gt;
||A collection of texture changing scripts.&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;
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;
||[[User:Void_Singer/Functions#Unix_time_code_to_list_format|Timestamp:&amp;lt;br&amp;gt;Unix time code to list format]]&lt;br /&gt;
||[[User:Void Singer|Void Singer]]&lt;br /&gt;
||converts Unix timestamps to their [Y, M, D, h, m, s] equivalents (ex: 1234567890 to [2009, 2, 13, 3, 31, 30])&lt;br /&gt;
|-&lt;br /&gt;
||[[User:Void_Singer/Functions#List_format_to_Unix_time_code.|Timestamp:&amp;lt;br&amp;gt;List format to Unix time code]]&lt;br /&gt;
||[[User:Void Singer|Void Singer]]&lt;br /&gt;
||converts [Y, M, D, h, m, s] timestamps to their Unix equivalents (ex: [2009, 2, 13, 3, 31, 30] to 1234567890)&lt;br /&gt;
|-&lt;br /&gt;
||[[User:Void_Singer/Functions#Weekday_from_Unix_timestamp|Timestamp:&amp;lt;br&amp;gt;Weekday from Unix timestamp]]&lt;br /&gt;
||[[User:Void Singer|Void Singer]]&lt;br /&gt;
||Gets weekday from Unix timestamps (ex: &amp;quot;Friday&amp;quot; from 1234567890)&lt;br /&gt;
|-&lt;br /&gt;
||[[User:Void_Singer/Functions#Weekday_from_.28_Y.2C_M.2C_D_.29_format|Timestamp:&amp;lt;br&amp;gt;Weekday from (Y, M, D) format]]&lt;br /&gt;
||[[User:Void Singer|Void Singer]]&lt;br /&gt;
||Gets weekday from (Y, M, D) timestamps (ex: &amp;quot;Friday&amp;quot; from (2009, 2, 13))&lt;br /&gt;
|-&lt;br /&gt;
||[[Touch A Quote]]&lt;br /&gt;
||[[User:CodeBastard Redgrave|CodeBastard Redgrave]]&lt;br /&gt;
||Touch an object to read quotes sequentially from a notecard&lt;br /&gt;
|-&lt;br /&gt;
||[[Touring Balloon]]&lt;br /&gt;
||[[User:Hank Ramos|Hank Ramos]]&lt;br /&gt;
||Automated touring balloon with many options from long ago.  Always seems to work on one SL release, and not the other.&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;
||[[User:Rolig_Loon/UNDO_PosRot|UNDO_PosRot]]&lt;br /&gt;
||[[User:Rolig Loon|Rolig Loon]]&lt;br /&gt;
||Allows user to undo position and rotation changes that have been made &amp;quot;manually&amp;quot; to any or all prims in a linkset.&lt;br /&gt;
|-&lt;br /&gt;
||[[Universal Translator]]&lt;br /&gt;
|[[User:Hank Ramos|Hank Ramos]]&lt;br /&gt;
||Chat listener that handles seamless translation of public chat between 50+ written languages without the need for configuration.  Handles numerous avatars, auto-detects languages, and works together with multiple copies of translators to spread-workload using a sophisticated back-end communications sub-system.&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;
||[[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;
||[[Unpacker On Rez (NewAge)]]&lt;br /&gt;
|[[User:Asia Snowfall|Asia Snowfall]]&lt;br /&gt;
||A very simple to use script for all you creators out there, This script will enable you to send out boxed items and make it easier for users to unpack, Also features auto die on completion. Very simple to configure!&lt;br /&gt;
|-&lt;br /&gt;
||[[Unpacker On Touch (NewAge)]]&lt;br /&gt;
|[[User:Asia Snowfall|Asia Snowfall]]&lt;br /&gt;
||Exactly like Unpacker On Rez, But changed some things about to make it Unpack On Touch&lt;br /&gt;
|-&lt;br /&gt;
||[[UUID2Channel]]&lt;br /&gt;
||[[User:Project Neox|Project Neox]]&lt;br /&gt;
||Optimised version of the original key2channel generators.&lt;br /&gt;
|-&lt;br /&gt;
||[[UUID Song Generator]]&lt;br /&gt;
||{{User|Sendao Goodman}}&lt;br /&gt;
||Translates a UUID into a simple song and plays it.&lt;br /&gt;
|-&lt;br /&gt;
||[[VirtualID_URLMap|VirtualID URL Mapper for HTTP-in]]&lt;br /&gt;
|[[User:Cenji Neutra|Cenji Neutra]]&lt;br /&gt;
||A script showing how to setup a static URL of the form &amp;lt;your-alias&amp;gt;.obj.virtualid.info which maps to the dynamic HTTP-in URL LSL generates and keeps it up-to-date.&lt;br /&gt;
|-&lt;br /&gt;
||[[User:Void_Singer/Programs#v7-D_Advanced_Visitor_Greeter|Visitor Greeter]]&lt;br /&gt;
|[[User:Void_Singer|Void_Singer]]&lt;br /&gt;
||Reduced spam visitor greeter, highly configurable, easy to modify.&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;
||[[Walking Sound (NewAge)]]&lt;br /&gt;
|[[User:Asia Snowfall|Asia Snowfall]]&lt;br /&gt;
||Very powerful walking sound script, Featuring customer ability to add their own sounds with the API Sound Feature!&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;
||[[Wiki3DBuilder]] [[Wiki3DBuilder1.0]]&lt;br /&gt;
||[[User:Salahzar Stenvaag|Salahzar Stenvaag]] &lt;br /&gt;
||Allows a group of people to collectively build up complex 3D mindmaps with connected concepts. Uses particles for connections and low prim usage. Nodes can be textured, colored, changed form size moved collectively by everybody and can distribute notecards, landmarks, URL, objects, textures. I provide two version 0.1 and 1.0 and probably next version will communicate with moodle and sloodle external websites.&lt;br /&gt;
|-&lt;br /&gt;
||[[Window Control]]&lt;br /&gt;
||[[User:Emmas Seetan|Emmas Seetan]]&lt;br /&gt;
||For window opacity, helpful for buildings.&lt;br /&gt;
|-&lt;br /&gt;
||[[WHMcs SecondLife plugin]]&lt;br /&gt;
|[[User:Alicia Sautereau|Alicia Sautereau]]&lt;br /&gt;
||Linden Dollar payment plugin for the WHMcs hosting portal.&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;
||[[Youtube TV]]&lt;br /&gt;
||[[User:Morgam Biedermann|Morgam Biedermann]]&lt;br /&gt;
||Watch your favorite Youtube videos / auto set the texture to the parcel media texture.&lt;br /&gt;
|-&lt;br /&gt;
||[[Zero Lag Poseball]]&lt;br /&gt;
||[[User:Jippen Faddoul|Jippen Faddoul]] and [[User:Daemonika Nightfire|Daemonika Nightfire]]&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;
{| class=&amp;quot;sortable&amp;quot; {{Prettytable}}&lt;br /&gt;
|- {{Hl2}}&lt;br /&gt;
! &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Creator&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|| [[User:Ina Centaur/UUID/calimg.api|Calendar Image UUID API]]&lt;br /&gt;
|| [[User:Ina Centaur|Ina Centaur]]&lt;br /&gt;
|| API that gives the UUID of an image of a calendar image give month and year arguments.&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;
|| [[User:Ina Centaur/PHP/k2n.php|Key2Name.php]]&lt;br /&gt;
|| [[User:Ina Centaur|Ina Centaur]]&lt;br /&gt;
|| Get Avatar&#039;s Name using Second Life search service. (like in LSL Key2Name)&lt;br /&gt;
|-&lt;br /&gt;
|| [[Lame_Object_DNS_and_Cross_Sim_Messaging|Lame Object DNS and Cross Sim Messaging]]&lt;br /&gt;
|| [[User:Liandra Ceawlin|Liandra Ceawlin]]&lt;br /&gt;
|| Simple, cheeseball method of doing cross-sim communications with http-in and an external object DNS service.&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;
|| [[User:Jor3l Boa/PHP/n2k.php|Name2Key.php]]&lt;br /&gt;
|| [[User:Jor3l Boa|Jor3l Boa]]&lt;br /&gt;
|| Get Avatar&#039;s UUID using Second Life search service. (like in LSL Name2Key)&lt;br /&gt;
|-&lt;br /&gt;
|| [[Public_Object_DNS|Public Object DNS]]&lt;br /&gt;
|| [[User:Liandra Ceawlin|Liandra Ceawlin]]&lt;br /&gt;
|| Public object DNS-like system running on GAE, for http-in. Hopefully scalable enough for wide-spread usage.&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-archive.secondlife.com/54/69/119570/1.html Announcement].&lt;br /&gt;
|-&lt;br /&gt;
||[[Silverday ObjectDNS]]&lt;br /&gt;
||[[User:Till Stirling|Till Stirling]]&lt;br /&gt;
||Dynamic Object-DNS-System to provide dynamic mapping of LSL-URLs to persistent domains. Features include redirect service, password protected domains, write protected domains, LSL-API for all necessary functions, optional web-interface.&lt;br /&gt;
|-&lt;br /&gt;
|| [http://aubretec.com/products/sldb SLDB]&lt;br /&gt;
|| [[User:Luc Aubret|Luc Aubret]]&lt;br /&gt;
|| Flexible web database storage using PHP/MySQL.  Used to store per-user field/value pairs from in-world objects using [[llHTTPRequest]]. &lt;br /&gt;
* [http://aubretec.com/support/manuals/sldbkit/ Implementation Guide]&lt;br /&gt;
* [http://aubretec.com/wp-content/uploads/2009/05/sldb.zip Download] (.zip, 12kb)&lt;br /&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;br /&gt;
&lt;br /&gt;
{{LSLC|}}&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Camera_following_prim&amp;diff=1015153</id>
		<title>Camera following prim</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Camera_following_prim&amp;diff=1015153"/>
		<updated>2010-08-22T20:01:39Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: Initial creation of page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header}}&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
A reasonably simple demo of a prim that follows your camera around (as long as you are wearing the special attachment that makes it work).  This was inspired by a request for a light that would follow the camera around, but can be used for all sorts of other things as well.  Presumably.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
&lt;br /&gt;
To use these scripts, stick the CameraMaster script into the root prim of an object, and wear that object.  (Anywhere on the body; wearing it as a HUD attachment hasn&#039;t been tested.)  Then stick the CameraFollowerPrim script into the prim that you want to follow your camera around (it should be a non-physical prim; phantom is probably also a good idea).  As you move your camera around (alt-click and so forth, you know), the prim will follow the camera-point around (which can, for obvious reasons, make it hard to see the prim!).&lt;br /&gt;
&lt;br /&gt;
= Limitations and Notes =&lt;br /&gt;
&lt;br /&gt;
The prim that moves will move rather jerkily, but very fast.  Smoother (but generally slower) motion could be gotten by making the moving prim physical, and using llMoveToTarget rather than llSetPos.  If you prefer smoother motion for some reason.  I haven&#039;t tried that variation, but it ought to be relatively simple.&lt;br /&gt;
&lt;br /&gt;
You can change the channel that the scripts use to communicate, and the frequency with which it updates the prim&#039;s position, by altering the obvious constants in the code.  You can also make the moving prim go to some offset from the camera position, rather than right on the camera position itself (a meter above it, say) by changing OFFSET in the follower script (to, say, &amp;lt;0,0,1&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
To make the prim stop following your camera, detach the attachment.&lt;br /&gt;
&lt;br /&gt;
= The Code =&lt;br /&gt;
&lt;br /&gt;
You may do anything you like with this code, without limitation.  As far as I&#039;m concerned.  As long as it&#039;s not anything mean.  You shouldn&#039;t be mean.&lt;br /&gt;
&lt;br /&gt;
The CameraMaster (for the attachment):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
// Put this in an attachment and it will continuously broadcast your camera position&lt;br /&gt;
&lt;br /&gt;
float DELAY = 0.5;&lt;br /&gt;
integer CHANNEL = -85847;&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry() {&lt;br /&gt;
        // Nothing to do here really.&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    on_rez(integer n) {&lt;br /&gt;
        // Nor here.  I just put these in out of habit.&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    attach(key id) {&lt;br /&gt;
        if (id != NULL_KEY) {&lt;br /&gt;
            llRequestPermissions(id,PERMISSION_TRACK_CAMERA);&lt;br /&gt;
        } else {&lt;br /&gt;
            llSetTimerEvent(0.0);  &lt;br /&gt;
        }       &lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    run_time_permissions(integer p) {&lt;br /&gt;
        llSetTimerEvent(DELAY);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    timer() {&lt;br /&gt;
        llShout(CHANNEL,(string)llGetCameraPos());&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The follower, for the moving prim:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
// Put this in a non-physical prim, and it will move to (an offset from) places that it hears about.&lt;br /&gt;
&lt;br /&gt;
integer CHANNEL = -85847;&lt;br /&gt;
vector OFFSET = ZERO_VECTOR;&lt;br /&gt;
&lt;br /&gt;
integer lh;&lt;br /&gt;
&lt;br /&gt;
init() {&lt;br /&gt;
    llListenRemove(lh);&lt;br /&gt;
    lh = llListen(channel,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
goto(vector dest) {&lt;br /&gt;
    /// One could use WarpPos or whatever here as well&lt;br /&gt;
    while ( llVecDist(llGetPos(),dest) &amp;gt; 0.1 ) {&lt;br /&gt;
        llSetPos(dest);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry() {&lt;br /&gt;
        init();&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    on_rez(integer n) {&lt;br /&gt;
        llResetScript();&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    changed(integer c) {&lt;br /&gt;
        if (c &amp;amp; CHANGED_OWNER) {&lt;br /&gt;
            llResetScript();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    listen(integer c, string n, key id, string msg) {&lt;br /&gt;
        if ( llGetOwner() != llGetOwnerKey(id) ) return;&lt;br /&gt;
        vector v = OFFSET + (vector)msg;&lt;br /&gt;
        goto(v);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{LSLC|Library}}{{LSLC|Examples}}&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:Display_names/FAQ&amp;diff=1012102</id>
		<title>Talk:Display names/FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:Display_names/FAQ&amp;diff=1012102"/>
		<updated>2010-08-18T19:20:09Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: /* &amp;quot;Their scripts&amp;quot; */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The part about existing scripts can&#039;t be right... ==&lt;br /&gt;
&lt;br /&gt;
This part can&#039;t be right:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Will Display Names affect scripts I have created or bought?&lt;br /&gt;
No. Your username in Second Life will automatically change to your current Second Life name, lowercase, with a period between your first and last name (for example, &amp;quot;John Smith&amp;quot;&#039;s username becomes &amp;quot;john.smith&amp;quot;). &amp;quot;&lt;br /&gt;
&lt;br /&gt;
If every existing call that returned &amp;quot;firstname lastname&amp;quot; now returns &amp;quot;firstname.lastname&amp;quot;, then thousands of scripts will break.  For instance, any script that reads a list of authorized users from a notecard, and compares the result of llDetectedName() to see if it&#039;s on the list.&lt;br /&gt;
&lt;br /&gt;
I assume that the actual story is that all of the existing LSL functions that deal with names will still deal with the &amp;quot;firstname lastname&amp;quot; form (even if, internally to the server, they&#039;re actually stored as &amp;quot;firstname.lastname&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
This section should be revised accordingly.    &lt;br /&gt;
&lt;br /&gt;
*update*: Kelly Linden has clarified the plan in a few posts on the opensource and/or scripters lists: as well as the &amp;quot;whatever you want&amp;quot; display name and the &amp;quot;first.last&amp;quot; user name, there is also a &amp;quot;First Last&amp;quot; form, which is apparently called the full name.  And existing LSL functions that deal with names will all deal with full names.  So nothing should break.  &lt;br /&gt;
&lt;br /&gt;
[[User:Dale Innis|Dale Innis]] 01:16, 18 August 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
I agree...I really hope what the FAQ actually says isn&#039;t what actually happens in regard to what existing avatar name calls will do.&lt;br /&gt;
&lt;br /&gt;
* I&#039;M GLAD YOU BROUGHT THIS UP. I&#039;ve edited the section and linked to Kelly&#039;s post. THANK YOU. {{TorSig}} &amp;lt;font size=&amp;quot;1&amp;quot;&amp;gt;on 2010-08-18 @ 5:59 AM Pacific&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Their scripts&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
While we&#039;re on the subject :) , the phrase &amp;quot;Any of their scripts&amp;quot; can&#039;t be right either.  It suggests that somehow the behavior differs based on who owns the script, and that&#039;s surely not the intent.  [[User:Dale Innis|Dale Innis]] 19:20, 18 August 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:Display_names/FAQ&amp;diff=1010652</id>
		<title>Talk:Display names/FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:Display_names/FAQ&amp;diff=1010652"/>
		<updated>2010-08-18T04:03:16Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: /* The part about existing scripts can&amp;#039;t be right... */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The part about existing scripts can&#039;t be right... ==&lt;br /&gt;
&lt;br /&gt;
This part can&#039;t be right:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Will Display Names affect scripts I have created or bought?&lt;br /&gt;
No. Your username in Second Life will automatically change to your current Second Life name, lowercase, with a period between your first and last name (for example, &amp;quot;John Smith&amp;quot;&#039;s username becomes &amp;quot;john.smith&amp;quot;). &amp;quot;&lt;br /&gt;
&lt;br /&gt;
If every existing call that returned &amp;quot;firstname lastname&amp;quot; now returns &amp;quot;firstname.lastname&amp;quot;, then thousands of scripts will break.  For instance, any script that reads a list of authorized users from a notecard, and compares the result of llDetectedName() to see if it&#039;s on the list.&lt;br /&gt;
&lt;br /&gt;
I assume that the actual story is that all of the existing LSL functions that deal with names will still deal with the &amp;quot;firstname lastname&amp;quot; form (even if, internally to the server, they&#039;re actually stored as &amp;quot;firstname.lastname&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
This section should be revised accordingly.    &lt;br /&gt;
&lt;br /&gt;
*update*: Kelly Linden has clarified the plan in a few posts on the opensource and/or scripters lists: as well as the &amp;quot;whatever you want&amp;quot; display name and the &amp;quot;first.last&amp;quot; user name, there is also a &amp;quot;First Last&amp;quot; form, which is apparently called the full name.  And existing LSL functions that deal with names will all deal with full names.  So nothing should break.  &lt;br /&gt;
&lt;br /&gt;
[[User:Dale Innis|Dale Innis]] 01:16, 18 August 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
I agree...I really hope what the FAQ actually says isn&#039;t what actually happens in regard to what existing avatar name calls will do.&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:Display_names/FAQ&amp;diff=1010382</id>
		<title>Talk:Display names/FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:Display_names/FAQ&amp;diff=1010382"/>
		<updated>2010-08-18T01:16:20Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: The part about existing scripts can&amp;#039;t be right...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The part about existing scripts can&#039;t be right... ==&lt;br /&gt;
&lt;br /&gt;
This part can&#039;t be right:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Will Display Names affect scripts I have created or bought?&lt;br /&gt;
No. Your username in Second Life will automatically change to your current Second Life name, lowercase, with a period between your first and last name (for example, &amp;quot;John Smith&amp;quot;&#039;s username becomes &amp;quot;john.smith&amp;quot;). &amp;quot;&lt;br /&gt;
&lt;br /&gt;
If every existing call that returned &amp;quot;firstname lastname&amp;quot; now returns &amp;quot;firstname.lastname&amp;quot;, then thousands of scripts will break.  For instance, any script that reads a list of authorized users from a notecard, and compares the result of llDetectedName() to see if it&#039;s on the list.&lt;br /&gt;
&lt;br /&gt;
I assume that the actual story is that all of the existing LSL functions that deal with names will still deal with the &amp;quot;firstname lastname&amp;quot; form (even if, internally to the server, they&#039;re actually stored as &amp;quot;firstname.lastname&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
This section should be revised accordingly.    [[User:Dale Innis|Dale Innis]] 01:16, 18 August 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:LlEmail&amp;diff=994892</id>
		<title>Talk:LlEmail</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:LlEmail&amp;diff=994892"/>
		<updated>2010-08-04T18:41:15Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: /* What if the target region is down? */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
I suggest removing the text at the end (starting with &amp;quot;Feature Design Document&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
-- Catherine Pfeffer (2008-05-03)&lt;br /&gt;
&lt;br /&gt;
It&#039;s note-worthy to add that the following line of code can be used in the email event to remove headers from the message.&lt;br /&gt;
&lt;br /&gt;
message = llDeleteSubString(message, 0, llSubStringIndex(message, &amp;quot;\n\n&amp;quot;) + 1);&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 default&lt;br /&gt;
 {&lt;br /&gt;
  state_entry()&lt;br /&gt;
   {&lt;br /&gt;
    email(string time, string address, string subj, string message, integer num_left)&lt;br /&gt;
     {&lt;br /&gt;
      message = llDeleteSubString(message, 0, llSubStringIndex(message, &amp;quot;\n\n&amp;quot;) + 1);&lt;br /&gt;
      llSay(0,message);&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Originally added by [http://www.lslwiki.org/index.php?title=PrioSerpentine&amp;amp;action=edit Prio] @ http://www.lslwiki.org/index.php/LlEmail&lt;br /&gt;
&lt;br /&gt;
--[[User:Lucius Obviate|Lucius Obviate]] 05:35, 20 May 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
== What if the target region is down? ==&lt;br /&gt;
&lt;br /&gt;
This page should probably say what happens if the target region is down.  &lt;br /&gt;
&lt;br /&gt;
If anyone knows, that is.  :)  [[User:Dale Innis|Dale Innis]] 18:41, 4 August 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:LlRezObject&amp;diff=890462</id>
		<title>Talk:LlRezObject</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:LlRezObject&amp;diff=890462"/>
		<updated>2010-05-03T15:33:36Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: /* How far away can an object be rezzed? */  agreed agreed :)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;can someone write some words about that integer param, the last parameter?&lt;br /&gt;
maybe the one who wrote the function!&lt;br /&gt;
:Yes, I&#039;m adding more to the function description now. Including an example. [[User:Xaviar Czervik|Xaviar Czervik]] 18:58, 28 October 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Delay? ==&lt;br /&gt;
&lt;br /&gt;
Is the delay actually mass-based, or is it 0.1 seconds?  The article currently says both... [[User:Dale Innis|Dale Innis]] 12:10, 1 November 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
:Both, the function has a default delay of 0.1 seconds (it&#039;s part of how the function is plugged into the VM), but there is an additional mass based delay. -- [[User:Strife Onizuka|Strife Onizuka]] 13:42, 1 November 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
== How far away can an object be rezzed? ==&lt;br /&gt;
&lt;br /&gt;
I could spend some time testing it, but was hoping someone already did that. :)  [[User:Lana Straulino|Lana Straulino]] 20:52, 29 April 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:This is just a guess plus a little experience with trying to rez at distance from the rezzer....I think the maximum distance &#039;&#039;&#039;may&#039;&#039;&#039; be variable and tied to the [[Linkability_Rules|linkability rules]]. It would make more sense than the maximum distance being (my memory fails me) &#039;&#039;about&#039;&#039; 18.5 meters, which was &#039;&#039;roughly&#039;&#039; the maximum I have managed in the past. Testing and posting the results would be of value if my guess doesn&#039;t help. -- &#039;&#039;&#039;[[User:Fred_Gandt|Fred Gandt]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Fred_Gandt|talk]]|[[Special:Contributions/Fred_Gandt|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 22:26, 29 April 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
::Actually: See [[LlRezObject#Caveats|llRezObject Caveats]]. Apparently a maximum distance of 10 meters from the rezzer (center of the prim containing the script calling this function) is the limit. I&#039;m sure I broke that though. I may end up testing it myself. -- &#039;&#039;&#039;[[User:Fred_Gandt|Fred Gandt]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Fred_Gandt|talk]]|[[Special:Contributions/Fred_Gandt|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 22:36, 29 April 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
As I thought. The caveat is wrong. It also turns out my memory isn&#039;t so bad as I thought. Also...A difference in maximum distance is seen depending on the size of the object doing the rezzing.&lt;br /&gt;
*A 10 meter cube can rez up to 18.660279 meters away.&lt;br /&gt;
*A 0.01 cube can rez up to 10.008666 meters away.&lt;br /&gt;
Tested using a cube as the rezzer and rezzee. The rezzee size seemed to make no difference (this was a simple test).&lt;br /&gt;
&amp;lt;lsl&amp;gt;vector pos;&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        pos = llGetPos();&lt;br /&gt;
    }&lt;br /&gt;
    touch_start(integer nd)&lt;br /&gt;
    {&lt;br /&gt;
        llRezObject(&amp;quot;Object&amp;quot;, (pos + &amp;lt;0.0,0.0,10.008666&amp;gt;), &amp;lt;0.0,0.0,0.0&amp;gt;, &amp;lt;0.0,0.0,0.0,1.0&amp;gt;, 0);&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;&lt;br /&gt;
Any testing beyond this would bore me to tears so, good luck! Hope it helps. -- &#039;&#039;&#039;[[User:Fred_Gandt|Fred Gandt]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Fred_Gandt|talk]]|[[Special:Contributions/Fred_Gandt|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 23:18, 29 April 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:omg! Thanks you Fred! And believe it or not, that sort of work changes entire designs. [[User:Lana Straulino|Lana Straulino]] 03:22, 30 April 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
I&#039;m a little concerned by the idea of just casually replacing the original 10m-limit statement with the results of some experiments.  My impression has been that what&#039;s officially supported is a 10m area, and anything beyond that that any particular version of the server software happens to support should be regarded with suspicion.  That&#039;s one of the problems with a Wiki :) in that it&#039;s hard to distinguish the Official Contract of the function from stuff that people have discovered and posted on the page.  Personally I wouldn&#039;t write any code (or at least no code that I was planning to support someone else&#039;s use of) that depended upon being able to rez an object more than 10m away; I can easily imagine the 10m limit becoming strict in some server update, and any bug reports against that being closed Working As Designed.  Of course ymmv... [[User:Dale Innis|Dale Innis]] 14:07, 3 May 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Agreed Dale. However, I first discovered the approx 18.5 meter range quite a few servers ago. 1.24? (I really can&#039;t say, about 18 months ago ish) The fact that I took the time to study the results on more than one occasion and on far removed server updates does lend my results some validity. You are of course right though. If 10.0 meters is what it &#039;&#039;should&#039;&#039; be, we should mention it. :-) -- &#039;&#039;&#039;[[User:Fred_Gandt|Fred Gandt]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Fred_Gandt|talk]]|[[Special:Contributions/Fred_Gandt|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 14:40, 3 May 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
::Yeah would probably be good to confirm with a Linden as to what the actual supported use is, and write that down.  I updated the text slightly to note 10m as the &amp;quot;official&amp;quot; limit, although I admit I can&#039;t point to specific proof of that!  :)  If you know which server versions your results apply to, that might be good to document as well, in case it ever becomes an issue...   [[User:Dale Innis|Dale Innis]] 15:33, 3 May 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlRezObject&amp;diff=890193</id>
		<title>LlRezObject</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlRezObject&amp;diff=890193"/>
		<updated>2010-05-03T14:09:49Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: Clarify official vs. observed distance limits&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Issues/SVC-3145}}{{LSL_Function/inventory|inventory|uuid=false|type=object}}&lt;br /&gt;
{{LSL_Function&lt;br /&gt;
|func_id=104|func_sleep=0.1|func_energy=200.0&lt;br /&gt;
|func=llRezObject|sort=RezObject&lt;br /&gt;
|p1_type=string|p1_name=inventory&lt;br /&gt;
|p2_type=vector|p2_name=pos|p2_desc=position (in [[Viewer coordinate frames#Region|region coordinates]])|p2_hover=position (in region coordinates)&lt;br /&gt;
|p3_type=vector|p3_name=vel|p3_desc=velocity (max [[llVecMag|magnitude]] is 250)&lt;br /&gt;
|p4_type=rotation|p4_name=rot|p4_desc=rotation&lt;br /&gt;
|p5_type=integer|p5_name=param|p5_desc=[[on_rez]] event parameter and value returned by [[llGetStartParameter]] in the rezzed object (or by each of the items in a coalesced object).|p5_hover=on_rez event parameter and value returned by llGetStartParameter in the rezzed object.&lt;br /&gt;
|func_footnote=The root of &#039;&#039;&#039;inventory&#039;&#039;&#039; is not at &#039;&#039;&#039;pos&#039;&#039;&#039; but the [[llGetGeometricCenter|center]] of &#039;&#039;&#039;inventory&#039;&#039;&#039; is.&amp;lt;br/&amp;gt;To have the root prim at &#039;&#039;&#039;pos&#039;&#039;&#039; use [[llRezAtRoot]] instead.&lt;br /&gt;
|func_desc=Instantiate &#039;&#039;&#039;inventory&#039;&#039;&#039; object at &#039;&#039;&#039;pos&#039;&#039;&#039; with velocity &#039;&#039;&#039;vel&#039;&#039;&#039; and rotation &#039;&#039;&#039;rot&#039;&#039;&#039; with start parameter &#039;&#039;&#039;param&#039;&#039;&#039;&lt;br /&gt;
|return_text&lt;br /&gt;
|spec&lt;br /&gt;
|caveats=&lt;br /&gt;
*In addition to the normal function delay, there is an additional delay based on the mass and velocity of the object rezzed.&lt;br /&gt;
**&amp;lt;code&amp;gt;rez_delay = mass * llVecMag(velocity) / 10;&amp;lt;/code&amp;gt; [http://forums.secondlife.com/showthread.php?t=82659]&lt;br /&gt;
*Silently fails to rez &#039;&#039;&#039;inventory&#039;&#039;&#039; if &#039;&#039;&#039;pos&#039;&#039;&#039; is too far from the prim trying to rez &#039;&#039;&#039;inventory&#039;&#039;&#039;.&lt;br /&gt;
**So if your script is mysteriously failing to rez things, make sure you haven&#039;t (say) written &amp;quot;&amp;lt;0.0,0.0,1.0&amp;gt;&amp;quot; for the &#039;&#039;&#039;pos&#039;&#039;&#039; parameter rather than (say) &amp;quot;llGetPos() + &amp;lt;0.0,0.0,1.0&amp;gt;&amp;quot;.&lt;br /&gt;
**The documented limit is 10 meters; however in at least some server versions experimentation reveals a larger limit that seems to be related to the size of the object doing the rezzing:&lt;br /&gt;
**A 10 meter cube can rez up to approx 18.6 meters away.&lt;br /&gt;
**A 0.01 cube can rez up to approx 10.0 meters away.&lt;br /&gt;
***Even if the attempted rez succeeds, the rezzed object may not be exactly at the position you ordered. Accuracy of the final position reduces the closer your ordered &#039;&#039;&#039;pos&#039;&#039;&#039; is to the maximum that would succeed.&lt;br /&gt;
* When scripting attachments meant to rez objects, remember that attachments move. You will need to use &amp;lt;code&amp;gt;llGetPos()&amp;lt;/code&amp;gt; and add it to &#039;&#039;&#039;pos&#039;&#039;&#039; to obtain a faithful position for your rezzed object. When used in the root of an (attached) attachment &amp;lt;code&amp;gt;llGetPos&amp;lt;/code&amp;gt; doesn&#039;t return the position of the attachment but instead returns the position of the avatar&#039;s bounding box geometric center. Read [[llGetPos]] and [[llParticleSystem#Caveats]] for more information.&lt;br /&gt;
* If the owner of the object does not have copy permission  on &#039;&#039;&#039;inventory&#039;&#039;&#039;, the object will no longer be present in inventory after it is rezzed (so another attempt to rez it is likely to fail); if the owner does have copy permission, then a copy is rezzed, and the original &#039;&#039;&#039;inventory&#039;&#039;&#039; remains in inventory.&lt;br /&gt;
*Silently fails if you don&#039;t have offline building rights on the land. &lt;br /&gt;
**Which means that you need to either: &lt;br /&gt;
**#Own the land yourself. &lt;br /&gt;
**#Be in the group that owns it, the allow group to build parcel flag has to be enabled and the object has to be set to group. &lt;br /&gt;
**#Or everyone should be allowed to build.&lt;br /&gt;
**#You can also deed the object to the group that owns the land, this will always work.&lt;br /&gt;
**The group role &amp;quot;Always allow &#039;Create Objects&#039;&amp;quot; will only work to override this when you are online. See [[#SVC-3145|SVC-3145]] in the Issues subsection of Deep Notes for more information.&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&amp;lt;lsl&amp;gt;default&lt;br /&gt;
{&lt;br /&gt;
     touch_start(integer param)&lt;br /&gt;
     {&lt;br /&gt;
          llRezObject(&amp;quot;Object&amp;quot;, llGetPos() + &amp;lt;0.0,0.0,1.0&amp;gt;, &amp;lt;0.0,0.0,0.0&amp;gt;, &amp;lt;0.0,0.0,0.0,1.0&amp;gt;, 0);&lt;br /&gt;
     }&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&amp;lt;lsl&amp;gt;// Rez an object on touch, with relative position, rotation, and velocity all described in the rezzing prim&#039;s coordinate system.&lt;br /&gt;
string object = &amp;quot;Object&amp;quot;; // Name of object in inventory&lt;br /&gt;
vector relativePosOffset = &amp;lt;2.0, 0.0, 1.0&amp;gt;; // &amp;quot;Forward&amp;quot; and a little &amp;quot;above&amp;quot; this prim&lt;br /&gt;
vector relativeVel = &amp;lt;1.0, 0.0, 0.0&amp;gt;; // Traveling in this prim&#039;s &amp;quot;forward&amp;quot; direction at 1m/s&lt;br /&gt;
rotation relativeRot = &amp;lt;0.707107, 0.0, 0.0, 0.707107&amp;gt;; // Rotated 90 degrees on the x-axis compared to this prim&lt;br /&gt;
integer startParam = 10;&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    touch_start(integer a)&lt;br /&gt;
    {&lt;br /&gt;
        vector myPos = llGetPos();&lt;br /&gt;
        rotation myRot = llGetRot();&lt;br /&gt;
&lt;br /&gt;
        vector rezPos = myPos+relativePosOffset*myRot;&lt;br /&gt;
        vector rezVel = relativeVel*myRot;&lt;br /&gt;
        rotation rezRot = relativeRot*myRot;&lt;br /&gt;
&lt;br /&gt;
        llRezObject(object, rezPos, rezVel, rezRot, startParam);&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_constants=&lt;br /&gt;
{{LSL DefineRow||[[PRIM_TEMP_ON_REZ]]|}}&lt;br /&gt;
|also_functions=&lt;br /&gt;
{{LSL DefineRow||[[llRezAtRoot]]|Rezzes the object at the requested position}}&lt;br /&gt;
{{LSL DefineRow||[[llGetStartParameter]]|}}&lt;br /&gt;
{{LSL DefineRow||[[llGodLikeRezObject]]|}}&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_events=&lt;br /&gt;
{{LSL DefineRow||[[object_rez]]|triggered when this object rezzes an object from inventory}}&lt;br /&gt;
|also_articles&lt;br /&gt;
|notes&lt;br /&gt;
|permission&lt;br /&gt;
|inventory&lt;br /&gt;
|negative_index&lt;br /&gt;
|cat1=Rez&lt;br /&gt;
|cat2=Object&lt;br /&gt;
|cat3=Inventory&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:LlRezObject&amp;diff=890183</id>
		<title>Talk:LlRezObject</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:LlRezObject&amp;diff=890183"/>
		<updated>2010-05-03T14:07:16Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: /* How far away can an object be rezzed? */  worries about &amp;gt; 10m&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;can someone write some words about that integer param, the last parameter?&lt;br /&gt;
maybe the one who wrote the function!&lt;br /&gt;
:Yes, I&#039;m adding more to the function description now. Including an example. [[User:Xaviar Czervik|Xaviar Czervik]] 18:58, 28 October 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Delay? ==&lt;br /&gt;
&lt;br /&gt;
Is the delay actually mass-based, or is it 0.1 seconds?  The article currently says both... [[User:Dale Innis|Dale Innis]] 12:10, 1 November 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
:Both, the function has a default delay of 0.1 seconds (it&#039;s part of how the function is plugged into the VM), but there is an additional mass based delay. -- [[User:Strife Onizuka|Strife Onizuka]] 13:42, 1 November 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
== How far away can an object be rezzed? ==&lt;br /&gt;
&lt;br /&gt;
I could spend some time testing it, but was hoping someone already did that. :)  [[User:Lana Straulino|Lana Straulino]] 20:52, 29 April 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:This is just a guess plus a little experience with trying to rez at distance from the rezzer....I think the maximum distance &#039;&#039;&#039;may&#039;&#039;&#039; be variable and tied to the [[Linkability_Rules|linkability rules]]. It would make more sense than the maximum distance being (my memory fails me) &#039;&#039;about&#039;&#039; 18.5 meters, which was &#039;&#039;roughly&#039;&#039; the maximum I have managed in the past. Testing and posting the results would be of value if my guess doesn&#039;t help. -- &#039;&#039;&#039;[[User:Fred_Gandt|Fred Gandt]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Fred_Gandt|talk]]|[[Special:Contributions/Fred_Gandt|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 22:26, 29 April 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
::Actually: See [[LlRezObject#Caveats|llRezObject Caveats]]. Apparently a maximum distance of 10 meters from the rezzer (center of the prim containing the script calling this function) is the limit. I&#039;m sure I broke that though. I may end up testing it myself. -- &#039;&#039;&#039;[[User:Fred_Gandt|Fred Gandt]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Fred_Gandt|talk]]|[[Special:Contributions/Fred_Gandt|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 22:36, 29 April 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
As I thought. The caveat is wrong. It also turns out my memory isn&#039;t so bad as I thought. Also...A difference in maximum distance is seen depending on the size of the object doing the rezzing.&lt;br /&gt;
*A 10 meter cube can rez up to 18.660279 meters away.&lt;br /&gt;
*A 0.01 cube can rez up to 10.008666 meters away.&lt;br /&gt;
Tested using a cube as the rezzer and rezzee. The rezzee size seemed to make no difference (this was a simple test).&lt;br /&gt;
&amp;lt;lsl&amp;gt;vector pos;&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        pos = llGetPos();&lt;br /&gt;
    }&lt;br /&gt;
    touch_start(integer nd)&lt;br /&gt;
    {&lt;br /&gt;
        llRezObject(&amp;quot;Object&amp;quot;, (pos + &amp;lt;0.0,0.0,10.008666&amp;gt;), &amp;lt;0.0,0.0,0.0&amp;gt;, &amp;lt;0.0,0.0,0.0,1.0&amp;gt;, 0);&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;&lt;br /&gt;
Any testing beyond this would bore me to tears so, good luck! Hope it helps. -- &#039;&#039;&#039;[[User:Fred_Gandt|Fred Gandt]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Fred_Gandt|talk]]|[[Special:Contributions/Fred_Gandt|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 23:18, 29 April 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:omg! Thanks you Fred! And believe it or not, that sort of work changes entire designs. [[User:Lana Straulino|Lana Straulino]] 03:22, 30 April 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
I&#039;m a little concerned by the idea of just casually replacing the original 10m-limit statement with the results of some experiments.  My impression has been that what&#039;s officially supported is a 10m area, and anything beyond that that any particular version of the server software happens to support should be regarded with suspicion.  That&#039;s one of the problems with a Wiki :) in that it&#039;s hard to distinguish the Official Contract of the function from stuff that people have discovered and posted on the page.  Personally I wouldn&#039;t write any code (or at least no code that I was planning to support someone else&#039;s use of) that depended upon being able to rez an object more than 10m away; I can easily imagine the 10m limit becoming strict in some server update, and any bug reports against that being closed Working As Designed.  Of course ymmv... [[User:Dale Innis|Dale Innis]] 14:07, 3 May 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:Channel_and_Version_Requirements&amp;diff=885232</id>
		<title>Talk:Channel and Version Requirements</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:Channel_and_Version_Requirements&amp;diff=885232"/>
		<updated>2010-04-29T16:38:19Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: /* Instructions for from-scratch viewers? */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Talk}}&lt;br /&gt;
&lt;br /&gt;
== Adding a fifth number to versions ==&lt;br /&gt;
&lt;br /&gt;
I think this all makes sense except for this part:&lt;br /&gt;
&lt;br /&gt;
 Choose a version number&lt;br /&gt;
    * The version number is in the form Major.Minor.Patch.Build&lt;br /&gt;
    * The version number can be any four numbers&lt;br /&gt;
    * We recommend using the Major, Minor, and Patch numbers from the most recently merged Linden Lab source code.&lt;br /&gt;
    * We recommend using a Build number &amp;gt;= 100 to indicate a non Linden Lab version.&lt;br /&gt;
&lt;br /&gt;
I think that the versions should be 5 numbers, since there have been occasions where multiple versions of Major.Minor.Patch have been released by Linden Lab.  For example (from [[Source_downloads]]):&lt;br /&gt;
&lt;br /&gt;
* ver 1.18.2.1&lt;br /&gt;
* ver 1.18.2.0&lt;br /&gt;
&lt;br /&gt;
* ver 1.14.0.1&lt;br /&gt;
* ver 1.14.0.0&lt;br /&gt;
&lt;br /&gt;
So, my proposal would be that the number be in the form Major.Minor.Patch.Build.3rdPartyNumber. [[User:Gibson Willis|Gibson Willis]] 12:12, 28 September 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Steve Linden:&#039;&#039; That would be fine. The version is just a string so any convention would work and if you would like to be that specific we have no problem with that. Builds only represent bug fixes which is why we only think it is important to include the first three numbers since a build will not represent new features / functionality, but more information is not a bad thing.&lt;br /&gt;
&lt;br /&gt;
== Add Snowglobe ==&lt;br /&gt;
We need to add references to Snowglobe throughout to be complete. Channel strings used for Snowglobe:&lt;br /&gt;
* Snowglobe Release : used for binaries built off release branches&lt;br /&gt;
* Snowglobe Test Build : used for binaries built of the live development trunk&lt;br /&gt;
* CommnityDeveloper : used for binaries you built on your own machine and use for testing.&lt;br /&gt;
&lt;br /&gt;
Note: we &#039;&#039;should&#039;&#039; change that generic unclear &#039;&#039;&#039;CommunityDeveloper&#039;&#039;&#039; channel and use something like &#039;&#039;&#039;Snowglobe Community Developer&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[User:Merov Linden|Merov Linden]] 20:51, 12 February 2010 (UTC) Merov Linden&lt;br /&gt;
&lt;br /&gt;
== Instructions for from-scratch viewers? ==&lt;br /&gt;
&lt;br /&gt;
Should(n&#039;t) this page also contain (or link to, if it exists elsewhere) instructions for how to correctly transmit the viewer channel/version string in viewers that aren&#039;t based on the LL OS code?    Telling those ppl to edit particular files in the OS tree doesn&#039;t help them much...  :) [[User:Dale Innis|Dale Innis]] 16:38, 29 April 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:Landmarks_and_Navigation_Project&amp;diff=649862</id>
		<title>Talk:Landmarks and Navigation Project</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:Landmarks_and_Navigation_Project&amp;diff=649862"/>
		<updated>2009-11-09T14:55:03Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: /* Landmarks Certainly Aren&amp;#039;t Perfect As They Stand */  True; maybe we need a suggestions page?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Del.icio.us for SL&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Why start with a outdated bookmark model that doesn&#039;t scale properly after many years of use. Most people that I know have so many bookmarks in their browser that they stopped using them. Wouldn&#039;t it be better to just start with a tagging model at the heart of this, instead of shoving that of as some future feature? &lt;br /&gt;
&lt;br /&gt;
Tags make searching for land/book marks much easier, specifically when you made them long ago and don&#039;t remember the exact name of the place, but do know it was a shop that sold red shoes and umbrellas. And lets remember bookmarks are used for storing place you wish to &#039;&#039;&#039;find&#039;&#039;&#039; on a later date, shouldn&#039;t you use the best system that helps people find things?&lt;br /&gt;
&lt;br /&gt;
I don&#039;t know (yet) if there is any opensource bookmark tagging software, but I really think that should be looked into. That way most of the development can be offloaded to web devs, and api&#039;s could be created for people to create plugins for social networking sites, blogs, etc.&lt;br /&gt;
&lt;br /&gt;
You could also opt to use del.icio.us as the place where landmarks are saved, but that would make us depended on their service, which doesn&#039;t have to be a bad thing. Or see if LL can buy a license of their software and neatly hook it up with Second Life. (Or any other bookmark tagging service can be used)&lt;br /&gt;
&lt;br /&gt;
[[User:Frans Charming|Frans]] 10:50, 23 April 2008 (PDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Move landmarks out of inventory? No! Landmarks as inventory items that can be passed around is a powerful metaphor.&lt;br /&gt;
&lt;br /&gt;
2. Deprecate picks? Picks are my &amp;quot;home page&amp;quot; (no, I&#039;m not going to put a web home page in my profile ... or use anyone else&#039;s ... not until LL provides hosting for it).&lt;br /&gt;
&lt;br /&gt;
3. Extend web search further into SL? Not to replace landmarks, see #1.&lt;br /&gt;
&lt;br /&gt;
4. The #1 thing I want is to be able to limit what landmarks show up in the map landmarks pulldown to the ones in my Landmarks folder, so it doesn&#039;t get cluttered up with dozens of duplicate &amp;quot;hi, you bought something at my shop, now I get to spam your map&amp;quot; landmarks.&lt;br /&gt;
&lt;br /&gt;
[[User:Argent Stonecutter|Argent Stonecutter]] 04:46, 20 May 2008 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Landmarks: &amp;quot;Tradeable assets&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
If landmarks are moved out of the inventory altogether (I&#039;m a bit undecided about it; in-world, I tend to pass SLURLs more frequently, since it&#039;s far easier to open the map, create a SLURL, and copy &amp;amp; paste it to someone who&#039;s waiting for it in IM — to do the same for landmarks would require me to drop everything I&#039;m doing, teleport to the destination, create a landmark, and come back), can we have a &#039;&#039;simple&#039;&#039; way of passing them as assets somehow?&lt;br /&gt;
&lt;br /&gt;
They might work like the del.icio.us suggestion above, of course: a way for residents to exchange SLURLs and have them stored &amp;quot;somewhere&amp;quot; (many of us use SL on different locations with different hardware and it&#039;s nice to know that landmarks are currently persistent — stored on the grid), and easily loaded back into the client when needed. Sort of like what .Mac does for Safari, Foxmarks for FireFox, or, well, del.icio.us for pretty much any browser.&lt;br /&gt;
&lt;br /&gt;
[[User:Gwyneth Llewelyn|Gwyneth Llewelyn]] 07:55, 30 May 2008 (PDT)&lt;br /&gt;
&lt;br /&gt;
Gwyn your own personal use case is never a reason to bork the entire world. There are 1.5 million people here, many of whom don&#039;t even know what a SLURL is or can&#039;t make or use them but who can handle landmarks. In my experience, people have trouble with the Google-like search much much more than landmarks, and rely on landmarks as a very easy means of travel. You&#039;re talking about real-time communications and forgetting how to handle asynchronous communications that are at the heart of the SL experience given the diversity of time zones and countries, enabling people to view sites and interact with each other and trade experience outside of real-time contact.&lt;br /&gt;
&lt;br /&gt;
The issue isn&#039;t the &amp;quot;how&amp;quot; of how they are passed as assets; it&#039;s assuring that they *will* remain discrete, concrete assets containable and sortable *in both prims and inventory and not just browser boxes*.&lt;br /&gt;
&lt;br /&gt;
[[User:Prokofy Neva|Prokofy]] 6 November 2009&lt;br /&gt;
&lt;br /&gt;
I agree that landmarks as a tradeble assests would be prefered, perhaps the inventory item could be a just a pointer to the landmark in the new landmark system.&lt;br /&gt;
&lt;br /&gt;
[[User:Frans Charming|Frans]] 11:56, 31 May 2008 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Landmarks &amp;amp; Navigation Project suggestion: Mozilla Weave ==&lt;br /&gt;
&lt;br /&gt;
Rather than duplicating the body of the message here, I&#039;m merely pasting the link to the mailing list post: https://lists.secondlife.com/pipermail/sldev/2008-August/011304.html&lt;br /&gt;
&amp;lt;br /&amp;gt;[[User:SignpostMarv Martin|SignpostMarv Martin]] 08:17, 10 August 2008 (PDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Removing Landmarks as Shareable Objects Destroys Socialability and Commerce ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This concept of removing landmarks as objects in the inventory -- and in fact removing them as objects in the world -- is all wrong.&lt;br /&gt;
&lt;br /&gt;
Would you *please* stop trying to make this interactive 3-D virtual world &amp;quot;like a web page browser&amp;quot;? It&#039;s *not a web page*. It&#039;s a *world*.&lt;br /&gt;
&lt;br /&gt;
You will really destroy commerce models already thriving inworld if you remove landmarks as an object that can be put in prims. Every single business in SL uses landmark giver objects onsite or in ads or gives people landmarks as part of their advertising. And that&#039;s all good. &lt;br /&gt;
&lt;br /&gt;
The idea that you &amp;quot;can&#039;t find or use&amp;quot; the landmarks in inventory is false. Of course you can find them. You use &amp;quot;search inventory&amp;quot; with the name of the store or sim and the landmark is found in the search.&lt;br /&gt;
&lt;br /&gt;
People constantly hand each other landmarks to interesting places precisely because there isn&#039;t enough space on the Picks. By putting these &amp;quot;bookmarking&amp;quot; functions into a browser, you remove the sharability. How will I share my landmarks if I can&#039;t push them as inventory to other people, individually?!&lt;br /&gt;
&lt;br /&gt;
Again, SL is *not a web page*. It&#039;s a 3-D interactive social world that has objects in it that people share and move. Landmarks are one of them. They are sharable sortable objects and inventory access them just fine now.&lt;br /&gt;
&lt;br /&gt;
It&#039;s noted in the design description that removing landmarks from the data base will be some kind of &amp;quot;save&amp;quot; for the dbase. Is that what this is all about? It doesn&#039;t seem warranted if it kills of interactivity and commerce, exchanging that robustness of socialibility and economic life for a static solo-user&#039;s experience of his own bookmarks.&lt;br /&gt;
&lt;br /&gt;
--[[User:Prokofy Neva|Prokofy Neva]] 21:20, 29 September 2008 (PDT)&lt;br /&gt;
&lt;br /&gt;
Uh-oh. The Lindens are back to removing landmarks again as inventoriable user-made shareable content. They want to have &amp;quot;the world like the web&amp;quot; and have instant browser-based transport with one-click travel, they appear to be getting rid of landmarks again. M Linden has indicated this in an interview today in massively.com and confirmed it with me when I asked him inworld, and said that browser-based travel would be happening but said there would still be tradeable links. How??? By cut and paste?! The landmark as an object for asynchronous travel outside of browsers but inworld in clickable objects are absolutely vital to commerce and socializing. There is absolutely no reason for this, and if they are fussing about database calls, the Lindens could police through the G-term more of the automatic spam landmark-givers all over now, that are causing clutter in inventories and accidental and excessive use of landmarks, if that is the issue.&lt;br /&gt;
&lt;br /&gt;
A SLURL is not something that can be manipulated with scripts in the same way -- it would mean pasting manually into notecards and I&#039;m not sure a randomizer or serialer script to deliver SLURLs exists or could be made. Currently such scripts have been made to deliver landmarks randomly or in serial fashion.&lt;br /&gt;
&lt;br /&gt;
I have three such objects that all function with a combination of the portal script that pulls up the map with a landmark, and serializer and randomizer scripts. I&#039;ll leave aside the hundreds of hours I&#039;ve spent for years creating and updating these links for travel and socializing in SL to help both newbies and oldbies, and the work that tens of thousands of merchants have done to put landmarks inside stores, rental offices, products, etc. etc. If all those landmarks in world are suddenly deprecated because of a browser solution, it leaves the world deaf, dumb, and blind utterly dependent only on closed friendship networks or groups to deliver links rather than open mechanisms of serendipity, free travel, asynchronous contacts at sites, etc. &lt;br /&gt;
&lt;br /&gt;
--[[User Prokofy Neva|Prokofy Neva]] 6 November 2009&lt;br /&gt;
&lt;br /&gt;
== Do Not Destroy User Generated Content ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
My mind absolutely boggles at the thought that you would want to get rid of User Picks.&lt;br /&gt;
&lt;br /&gt;
This is *resident content*. *You do not get to destroy resident content*.&lt;br /&gt;
&lt;br /&gt;
Deprecate picks? In favour of landmarks that will be shareable somehow? (when you&#039;re going to remove them out of the inventory? and have them shareable as...what exactly? how? off a browser? all of them at once?)&lt;br /&gt;
&lt;br /&gt;
Why? People go to enormous trouble to make their Picks. It&#039;s the heart of their identity. I know as a landlord in SL that people record all kinds of special moments as well as places they like on their picks. The picks are *not just places*. The picks are a *story*. The picks have things like descriptions of your best friends. Or your business policies. Or information about using your product.&lt;br /&gt;
&lt;br /&gt;
Could you people *look at how these things are actually used inworld* before you set about destroying them?!&lt;br /&gt;
&lt;br /&gt;
There&#039;s no objective need to remove a page off the avatar, used to put his best selection of picks/story pages he wants to tell about his Second Life, in favour of some giant grab bug of landmarks, that does not tell that narrative.&lt;br /&gt;
&lt;br /&gt;
Can you grasp that Picks are not just bookmarked spots, but *a story*? Can you please see this narrative on thousands of people and not tamper with it?!&lt;br /&gt;
&lt;br /&gt;
I fail to see why your need to tinker with the viewer involves destroying what is already established *as user-generated content*. Try to remember that&#039;s what it is: *user-generated content*. Linden Lab should not be in the business of &amp;quot;deprecating&amp;quot; *user-generated content* under the guise of &amp;quot;new easier-to-use features&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
--[[User:Prokofy Neva|Prokofy Neva]] 21:31, 29 September 2008 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Corrected some errors ==&lt;br /&gt;
&lt;br /&gt;
I&#039;ve corrected some errors in the (former) &amp;quot;Should we move Landmarks out of inventory?&amp;quot; section (including renaming it); it seems to have been originally written without an accurate knowledge of how landmarks currently work.  In particular, Landmarks are not all in one huge list in inventory (this is true only of Landmarks that the user has made himself, and has not moved into other folders), although they are on the currently-useless Map &amp;quot;Landmarks&amp;quot; pulldown, and the names of Landmarks are not useless (they contain the region and parcel name, which is often exactly the right thing).  The current inventory provides a powerful way (folders) to sort and organize landmarks, and this was not reflected in the existing &amp;quot;Food for Thought&amp;quot;.  This being a Wiki, I assume this sort of improvement is okay.  :)  -- [[User:Dale Innis|Dale Innis]] 06:54, 30 September 2008 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Restated idea about Picks ==&lt;br /&gt;
&lt;br /&gt;
Residents love Picks; talking about &amp;quot;deprecating&amp;quot; them will just anger people (with good reason).  What&#039;s really being talked about here is better linking Picks and Landmarks.  So I&#039;ve reworded (and renamed) that section to reflect that. -- [[User:Dale Innis|Dale Innis]] 07:27, 30 September 2008 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Fiddled with &amp;quot;Should we extend Web-type search further into SL? How, and how far?&amp;quot; some too ==&lt;br /&gt;
&lt;br /&gt;
Just to correct more errors (Landmarks aren&#039;t rezzable) and to add a few more obvious thoughts.  I&#039;m somewhat concerned that the ideas represented here are some Web-Browser-derived preconceived notions, not very well informed by SL history and Resi expectations.  I hope my edits have helped with this somewhat. -- [[User:Dale Innis|Dale Innis]] 07:27, 30 September 2008 (PDT)&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;To create a new navigation panel&amp;quot; should not be a project goal ==&lt;br /&gt;
&lt;br /&gt;
New navigation panels, as fun as I&#039;m sure they are to create, are not good in themselves.  A new navigation panel should be created only if it actually makes the user experience better.  -- [[User:Dale Innis|Dale Innis]] 07:34, 30 September 2008 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Relevant JIRA ==&lt;br /&gt;
&lt;br /&gt;
There doesn&#039;t seem to be any linkage in this wiki discussion (or article) to the very relevant [http://jira.secondlife.com/browse/VWR-7900 VWR-7900] issue in the public SL jira.  (This was formerly NAV-28.)  This shows the outside developer&#039;s user interface, though there doesn&#039;t seem to be a lot of information about implementation under the covers. :: [[User:Latransa Pera|Latransa Pera]] 11:14, 30 September 2008 (PDT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;I stuck in a link in the obvious place.&#039;&#039; -- [[User:Dale Innis|Dale Innis]] 11:46, 30 September 2008 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Regressed my change to &amp;quot;Food for Thought&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
Since someone in a comment on Prokofy&#039;s weblog pointed out that there&#039;s a June mailinglist posting that obsoletes the entire &amp;quot;Food for Thought&amp;quot; section, this page is apparently not intended as a working document, so I&#039;ve regressed it to how it used to look, and just added a note and pointers to that mailinglist posting.  I think it would be great if someone on the Vectorform team or in LL, or some Resident who&#039;s following the relevant mailinglist(s), would keep this page up to date so those of us not as centrally involved could keep up, but I&#039;m not signing up to do that myself!  --[[User:Dale Innis|Dale Innis]] 07:24, 1 October 2008 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Landmarks, affinities, suggestions, and been there done that ==&lt;br /&gt;
&lt;br /&gt;
A pointer to &lt;br /&gt;
[https://lists.secondlife.com/pipermail/sl-ux/2008-October/000127.html my post to SL-UX] that describes an idea for providing suggestions for places for residents to &lt;br /&gt;
visit similar to the &amp;quot;customers who bought this also bought...&amp;quot; systems &lt;br /&gt;
found on commercial web sites.&lt;br /&gt;
&lt;br /&gt;
--[[User:Mm Alder|Mm Alder]] 16:35, 9 October 2008 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Landmarks Certainly Aren&#039;t Perfect As They Stand ==&lt;br /&gt;
&lt;br /&gt;
Frankly, they&#039;re a pain in a lot of ways.&lt;br /&gt;
&lt;br /&gt;
Redundant landmarks accumulate--I wouldn&#039;t mind at all if the client told me &amp;quot;You already have a landmark with coordinates within X meters of there--do you REALLY want to clutter your inventory?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Landmarks become obsolete. You save a landmark because of what&#039;s there--if it moves, the landmark is useless. I&#039;d like something that isn&#039;t a landmark but a pointer to a landmark. Vendors could hand out these new landmarks and then take the responsibility of updating the underlying landmark if the store/night club/etc. moves, rather than having untold numbers of landmarks suddenly become useless clutter. I wish I had L$1 for every time I looked at someone&#039;s picks, thought &amp;quot;gee, that sounds neat--I think I&#039;ll go there&amp;quot;, clicked, and found myself falling into the sea, or at some store/building/etc. obviously _not_ the one described in the pick. (And if Picks are so darned important, why don&#039;t people update them?)&lt;br /&gt;
&lt;br /&gt;
[[User:Melissa Yeuxdoux|Melissa Yeuxdoux]] 13:23, 9 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Those are true, and I think good suggestions for improvement.  On the other hand I think it&#039;s important to avoid giving the impression that &amp;quot;Residents don&#039;t like landmarks&amp;quot;, which someone who doesn&#039;t really understand the world (like the author of the original &amp;quot;food for thought&amp;quot; at the time it was written) could cite as a reason for replacing them with something even worse.  &#039;cause that would be bad.  :)  Maybe someone could start (if there isn&#039;t one already) a &amp;quot;Improvement suggestions for landmarks&amp;quot; page in the Wiki.  This &amp;quot;Landmarks and Navigation Project&amp;quot; page looks moribund to me; I suspect the &amp;quot;Project&amp;quot; doesn&#039;t actually exist anymore, given the lack of Lab activity on this page over the last year.  &lt;br /&gt;
&lt;br /&gt;
Just a thought...  [[User:Dale Innis|Dale Innis]] 14:55, 9 November 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Protecting_content_in_an_open_grid&amp;diff=649193</id>
		<title>Protecting content in an open grid</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Protecting_content_in_an_open_grid&amp;diff=649193"/>
		<updated>2009-11-08T03:15:07Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: /* Thought on DRM */ put my words back where they belong&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:slarch.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Protecting content in an open grid==&lt;br /&gt;
&lt;br /&gt;
Starting in September of 2007, there has been discussion on the&lt;br /&gt;
[https://wiki.secondlife.com/w/index.php?title=DRM%2C_IP_and_permissions#Discussion_on_the_mailing_list sldev mailing list] about how to protect content (objects, textures, scripts) in a future open grid (that is, a large grid that is an interconnection of grids operated by different companies, organizations, and individuals). &lt;br /&gt;
&lt;br /&gt;
Basically we face the following challenges:&lt;br /&gt;
&lt;br /&gt;
* content creators want the ability to specify rules about how the content they make available can be used; for example,&lt;br /&gt;
** &amp;quot;you can modify and transfer (give away or sell) what you got from me, but you can&#039;t make copies of it&amp;quot;&lt;br /&gt;
** &amp;quot;you can modify and copy but not transfer what you got from me (for money or for free)&amp;quot;&lt;br /&gt;
** &amp;quot;you can modify, copy, and transfer but not sell what you got from me&amp;quot;&lt;br /&gt;
** &amp;quot;you can do whatever you want with what you got from me&amp;quot;&lt;br /&gt;
** &amp;quot;you can take what you got from me with you to all grids that are trusted by Linden Labs&amp;quot;&lt;br /&gt;
** &amp;quot;you can modify this object but only to repair it to work in future simulator software, or to create a derivative work for sale to citizens of Portugal&amp;quot; (this example serves to illustrate how complex real licenses can be)&lt;br /&gt;
* content is basically just a series of bits; that is, a sequence of 0s and 1s. as such it is copyable. any SL client will by necessity have a copy of the visual part of content (including sound) as it has to render the content to the user&lt;br /&gt;
** with an open source viewer/client you can always copy the visual part of content (absent hardware features that aren&#039;t currently in place and seem unlikely, such as a shared secret between the server and the video card)&lt;br /&gt;
** scripts are (currently at least) running on the grid servers and can be protected that way (i.e., the server does not hand over the script to the client if the permissions do not allow this): in an open grid we will have grid servers that are not under the control of LL (that is the whole purpose of the open grid) and thus a grid server could very well provide copies of scripts to anyone in control of it.&lt;br /&gt;
&lt;br /&gt;
So, basically the challenge is that content providers want to specify rules for the content they create and at the same time with an open grid and with open source SL clients we cannot &#039;&#039;guarantee&#039;&#039; those rules.  This is not necessarily fatal; an economy can work even when theft is possible.  But it is a fundamental limitation to what we can do with technical solutions.&lt;br /&gt;
&lt;br /&gt;
==Linden Lab statement on content protection in interop==&lt;br /&gt;
&lt;br /&gt;
On 8 July 2008, a [http://blog.secondlife.com/2008/07/08/ibm-linden-lab-interoperability-announcement/ posting in the Second Life weblog] entitled &amp;quot;IBM and Linden Lab Interoperability Announcement&amp;quot; included the following text:&lt;br /&gt;
&lt;br /&gt;
Q: How will Linden Lab prevent property from being copied into other virtual worlds?&lt;br /&gt;
&lt;br /&gt;
We’re paying extremely close attention to that question. We will be designing this with the Second Life community to ensure their needs are met. We want to stress that when it does become possible to move avatars between worlds, we will take the utmost care to protect the rights of Second Life property owners and creators. Linden Lab will not design a system that lets people openly violate the permissions of SL goods and take them to other worlds. We recognize that intellectual property is the engine that drives Second Life, and we are completely committed to preserving the qualities that make Second Life the unique, innovative and dynamic place that it is today.&lt;br /&gt;
&lt;br /&gt;
==DRM?==&lt;br /&gt;
&lt;br /&gt;
The challenge we face is the same as faced by digital content providers in the real world; for example, MP3 music outlets. The temptation is to try and go the same route that has been tried by those RL content providers: [http://en.wikipedia.org/wiki/Digital_rights_management DRM (digital rights management)]&lt;br /&gt;
&lt;br /&gt;
There are a couple of problems with DRM systems:&lt;br /&gt;
&lt;br /&gt;
* DRM systems in the past have almost always been cracked&lt;br /&gt;
* DRM systems tend to be rather complex and thus expensive to maintain&lt;br /&gt;
* in the end the content has to be displayed: couple that with an open source client and the DRM effort is nullified.&lt;br /&gt;
&lt;br /&gt;
The consensus on the mailing (and also one voiced by LL) is that DRM is not going to work in an open source, open grid environment.&lt;br /&gt;
&lt;br /&gt;
* I think we ought to be more specific about just what kind of DRM we&#039;re referring to here.  To the extent that the SL mod/copy/transfer bits are &amp;quot;DRM&amp;quot;, we have good evidence that they work well enough to support an economy, even with the client opensourced.  There&#039;s no reason to think that this kind of DRM can&#039;t work just as well in an open grid, or at least that subset of an open grid in which there are mutual and enforceable agreements in place about obeying the bits.  I assume this &amp;quot;is not going to work&amp;quot; refers to trying to make the system strong enough that even a skilled and determined attacker can&#039;t get around the protections?  The talk in the list didn&#039;t really call this out clearly I don&#039;t think... -- [[User:Dale Innis|Dale Innis]] 08:33, 18 July 2008 (PDT)&lt;br /&gt;
&lt;br /&gt;
==Do away with permissions?==&lt;br /&gt;
&lt;br /&gt;
The current permission system works --- kind of. Objects and textures &#039;&#039;can&#039;&#039; be copied (by a modified SL client offering &amp;quot;right click-&amp;gt;save as...&amp;quot;, or by libsecondlife based &amp;quot;copybots&amp;quot;), while scripts are protected by the grid servers.  &lt;br /&gt;
&lt;br /&gt;
So, we could make the argument that in an open grid environment we cannot guarantee that an attached foreign grid or an attached client cannot by-pass the permission system nor that they cannot make use of content that contradicts the intentions of the content creator --- thus, we could argue that we can just forget about permissions and not bother.&lt;br /&gt;
&lt;br /&gt;
But let&#039;s step back for a moment and look at the permission system from a different angle: we can also view the sets of permissions an object has as a &#039;&#039;license digest&#039;&#039;. This license digest communicates what rights the content creator wants to give the content consumer. Instead of having a 100 page EULA to go along with that super-duper flying broomstick you have a fairly compact set of permissions that tell you...&lt;br /&gt;
&lt;br /&gt;
* you can modify that super-duper broomstick&lt;br /&gt;
* you can make personal copies&lt;br /&gt;
* you can transfer copies&lt;br /&gt;
* you are not allowed to charge for it&lt;br /&gt;
&lt;br /&gt;
or alternately&lt;br /&gt;
&lt;br /&gt;
* you cannot modify that super-duper broomstick&lt;br /&gt;
* you can make personal copies&lt;br /&gt;
* you cannot transfer copies&lt;br /&gt;
&lt;br /&gt;
So, yes, permissions are not perfectly enforceable by technical means --- but they make sense as a license digest.  Technical means (code) can make it difficult or inconvenient to violate the license thus expressed, and can make it possible to detect violations so that other remedies can be employed when the technical protections fail.&lt;br /&gt;
&lt;br /&gt;
==Extending the current permission system==&lt;br /&gt;
&lt;br /&gt;
Two extensions have been suggested to the current permission system:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;transfer to trusted region&#039;&#039; --- that would allow the content creator either &lt;br /&gt;
** to allow transfer of the content to a list of trusted regions, or&lt;br /&gt;
** to allow transfer to all those regions that are trusted by a list of regions that she trusts&lt;br /&gt;
* &#039;&#039;sticky permissions&#039;&#039; --- permissions that cannot be changed down the food chain; for example,&lt;br /&gt;
** sticky transfer permission and sticky price tag: you can transfer the object, but you cannot take away the transfer permission, you should also not charge for the object.&lt;br /&gt;
&lt;br /&gt;
[[User:Dr Scofield|Dr Scofield]] 04:29, 26 September 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
* Other related extensions:&lt;br /&gt;
** allow transfer of the content to an indirectly-referenced list of trusted regions or domains (e.g. &amp;quot;the official list of Linden Lab Category A Partner Regions&amp;quot;, or &amp;quot;Jared Hu&#039;s List of Regions Run by Friends&amp;quot;, or whatever)&lt;br /&gt;
** allow transfer to some set of domains, but &#039;&#039;&#039;not&#039;&#039;&#039; some other set (exclusion as well as inclusion)&lt;br /&gt;
&lt;br /&gt;
==Discussion on the mailing list==&lt;br /&gt;
&lt;br /&gt;
Unfortunately the archive messed up and the permission thread is all over the place, but here are some link from which you might want to follow downwards the stream:&lt;br /&gt;
(probably also happens due to keyword juggling in the subject)&lt;br /&gt;
&lt;br /&gt;
* https://lists.secondlife.com/pipermail/sldev/2007-September/004637.html&lt;br /&gt;
* https://lists.secondlife.com/pipermail/sldev/2007-September/004652.html&lt;br /&gt;
* https://lists.secondlife.com/pipermail/sldev/2007-September/005065.html&lt;br /&gt;
* https://lists.secondlife.com/pipermail/sldev/2007-September/005086.html&lt;br /&gt;
* https://lists.secondlife.com/pipermail/sldev/2007-September/005104.html (a content creator&#039;s view)&lt;br /&gt;
* https://lists.secondlife.com/pipermail/sldev/2007-September/005128.html (cont&#039;d)&lt;br /&gt;
* https://lists.secondlife.com/pipermail/sldev/2007-September/005144.html (cont&#039;d)&lt;br /&gt;
&lt;br /&gt;
Basically it&#039;s the [https://lists.secondlife.com/pipermail/sldev/2007-September/subject.html September archive].&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
* I think all participants are more or less agreeing on the fact that a strong(er) DRM is not possible to be implemented. (We need to clarify this statement so it doesn&#039;t frighten people who read this without reading all the discussion. [[User:Dale Innis|Dale Innis]] 08:45, 18 July 2008 (PDT) )&lt;br /&gt;
* Permissions are here to stay, but these access constraints can hold &#039;&#039;only within the walls of specific managed grids&#039;&#039;.  One grid can only assume that another grid will respect the constraints if there is trust (backed where appropriate by enforceable agreements) between the grids.&lt;br /&gt;
* New permissions might be needed such as:&lt;br /&gt;
** allow an asset only to be used inside one region domain&lt;br /&gt;
** allow an asset only to be used inside one grid (= list of trusted region domains)&lt;br /&gt;
** allow an asset only to be used inside a set of region domains&lt;br /&gt;
*** For example, using signed certificates and revocation lists (possible implementation)&lt;br /&gt;
* It should also possible to create full-perm assets that stay full perm (such as a GPL-style license).&lt;br /&gt;
* It should be possible to make your intent more clear.&lt;br /&gt;
** Additional specific flags indicating certain permissions, even if they can&#039;t be enforced to serve as notice.&lt;br /&gt;
** An additional license field for license and copyright text, similar to land covenants (for e.g. CC licenses)&lt;br /&gt;
&lt;br /&gt;
== Thought on DRM ==&lt;br /&gt;
&lt;br /&gt;
This is a personal thought, but rooted in some fairly deep considerations. Given the real world nature of a distributed application and security, DRM becomes a perpetual arms race, and not one any standard is likely to win. We can, and should, however, try to make sure the system can aid in marking &#039;&#039;intent&#039;&#039; and in &#039;&#039;detecting &#039;&#039; theft and abuse, so that people can use other remedies when the theft hits levels where that matters. &lt;br /&gt;
&lt;br /&gt;
A second, related thought, is that, we can, and should ensure that what we build permits marking content such that a sub cluster with a trusted set of services and trusted clients and keep content within that space, while allowing public hosted content to be used. &lt;br /&gt;
&lt;br /&gt;
- [[user:Zha Ewry]] 9/25/2007&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Those are good thoughts.  I would add to them the suggestion that, as well as marking intent and detecting violations of intent, the system can make violation less convenient.  This is reasonably important; there may well be cases where an economy will work if intent-violation (e.g. copying contrary to the license digest) is possible but inconvenient, whereas it would be on the other side of the viability curve if intent violation is trivial (i.e. press &amp;quot;copy&amp;quot;).  We should not let the (impossible) perfect be the enemy of the (possible) good.  :)&lt;br /&gt;
&lt;br /&gt;
- [[User:Dale Innis|Dale Innis]] 08:49, 18 July 2008 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Arms Race Can Be Fought or Pretended to Be Fought ==&lt;br /&gt;
&lt;br /&gt;
The doctrine of the &amp;quot;arms race&amp;quot; in software needs to be challenged vigorously. In RL, countries engage in arms races out of necessity because there are other factors outside the immediate realm of the arms they are racing with that can contribute to a favourable outcome. For example, Reagan believed that by ordering Star Wars anti-missile defense to be built, he could trump the Soviets&#039; SS 20s threatening Europe&#039;s Pershing missiles, which were there in turn to counter conventional weapons. He could then bankrupt the Soviets and impoverish them as they struggled to build a system against Star Wars (note: I&#039;m describing a historical event, not endorsing a policy). Online, there&#039;s no reason to consider that arms races are endless by their nature merely because they are technical, and that other factors of attrition cannot enter in.&lt;br /&gt;
&lt;br /&gt;
In the SL setting, it is (still) a small world, and griefers&#039; groups wanting to bother with SL a small and known quantity. Arms-racing against some of them is a trivial matter; they are kids. So the pool of hackers becomes reduced, and sure, more try the next time and the process *may* invite opportunistic players in the arms race game, but generally each new effort to obfuscate or create dodges or feints or decoys or poison apples or red dye jets or whatever the methods are wins some, and reduces the ranks. It also begins to establish the concept of &amp;quot;we mean business and we will keep stopping you&amp;quot;. It doesn&#039;t even have to work every day. The DRM can, as indicated, merely mark intent; it can, as said here by Zha, merely mark the violation to trigger remedies. But it is good in its own right to stop casual thefts: the DRM of c/m/t works wonderfully in SL and should not be retired or dumped in the interoperability gambit. An arms race in cyberspace doesn&#039;t threaten the lives and property of real people; it impoverishes griefers only in time and ingenuity. It is worth fighting; it is worth *pretending* to fight. Digital rights management is not about digital; it&#039;s about rights and about management.&lt;br /&gt;
&lt;br /&gt;
- [[user:Prokofy Neva]] 7 November 2009&lt;br /&gt;
&lt;br /&gt;
== The fallacy of DRM ==&lt;br /&gt;
&lt;br /&gt;
It&#039;s worth pointing out somewhere, just in case it hasn&#039;t come across, that the failure of DRM doesn&#039;t hinge on arms races or cleverness of crackers or anything like that.  It stems from a failure to understand that encryption was designed to protect communications between Alice and Bob from the evil Eve, and not to handle the case where Bob and Eve are the same person.  DRM proponents are trying to give Bob access to an item without giving him access to the item ... which isn&#039;t logical, Captain, and is always doomed to eventual failure.  The Lindens do understand that, so all credit to them for not going down a path of self-delusion. --[[User:Morgaine Dinova|Morgaine Dinova]] 12:27, 2 October 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Related Jira Entry ==&lt;br /&gt;
&lt;br /&gt;
[https://jira.secondlife.com/browse/VWR-2571 VRW-2571 : Copyleft/share-alike permission for SL Items]&lt;br /&gt;
* The Jira discussion finally coalesced into some sort of general agreement that it would be A Good Thing for authors to be able to express their intentions with respect to downstream use of their work.  This is true even under the inevitable &amp;quot;fallacy of DRM&amp;quot; ... in other words, it is worthwhile for an author to be able to express her intentions even in the absence of any guarantees. --[[User:Morgaine Dinova|Morgaine Dinova]] 11:55, 3 October 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
== No, DRM is Not a Fallacy ==&lt;br /&gt;
&lt;br /&gt;
DRM is not a fallacy. That is an opinion of one extreme school of thought, and not a fact. As noted, arms races can be fought; can be pretended to be fought; can have partial or full valid outcomes. While submitting typical coder opinion to the wiki seems valid enough, no opinion of this nature should be portrayed as &amp;quot;fact&amp;quot; and enabled to shut off further discussion.&lt;br /&gt;
[[User:Prokofy Neva|Prokofy Neva]] 7 November 2009&lt;br /&gt;
&lt;br /&gt;
== Usecases ==&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.secondlife.com/wiki/Security_Usecases Security Related Usecases] (more needed!)&lt;br /&gt;
&lt;br /&gt;
[[Category: AW Groupies]]&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Protecting_content_in_an_open_grid&amp;diff=649183</id>
		<title>Protecting content in an open grid</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Protecting_content_in_an_open_grid&amp;diff=649183"/>
		<updated>2009-11-08T03:13:59Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: /* Arms Race Can Be Fought or Pretended to Be Fought */  move misplaced words back to the previous section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:slarch.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Protecting content in an open grid==&lt;br /&gt;
&lt;br /&gt;
Starting in September of 2007, there has been discussion on the&lt;br /&gt;
[https://wiki.secondlife.com/w/index.php?title=DRM%2C_IP_and_permissions#Discussion_on_the_mailing_list sldev mailing list] about how to protect content (objects, textures, scripts) in a future open grid (that is, a large grid that is an interconnection of grids operated by different companies, organizations, and individuals). &lt;br /&gt;
&lt;br /&gt;
Basically we face the following challenges:&lt;br /&gt;
&lt;br /&gt;
* content creators want the ability to specify rules about how the content they make available can be used; for example,&lt;br /&gt;
** &amp;quot;you can modify and transfer (give away or sell) what you got from me, but you can&#039;t make copies of it&amp;quot;&lt;br /&gt;
** &amp;quot;you can modify and copy but not transfer what you got from me (for money or for free)&amp;quot;&lt;br /&gt;
** &amp;quot;you can modify, copy, and transfer but not sell what you got from me&amp;quot;&lt;br /&gt;
** &amp;quot;you can do whatever you want with what you got from me&amp;quot;&lt;br /&gt;
** &amp;quot;you can take what you got from me with you to all grids that are trusted by Linden Labs&amp;quot;&lt;br /&gt;
** &amp;quot;you can modify this object but only to repair it to work in future simulator software, or to create a derivative work for sale to citizens of Portugal&amp;quot; (this example serves to illustrate how complex real licenses can be)&lt;br /&gt;
* content is basically just a series of bits; that is, a sequence of 0s and 1s. as such it is copyable. any SL client will by necessity have a copy of the visual part of content (including sound) as it has to render the content to the user&lt;br /&gt;
** with an open source viewer/client you can always copy the visual part of content (absent hardware features that aren&#039;t currently in place and seem unlikely, such as a shared secret between the server and the video card)&lt;br /&gt;
** scripts are (currently at least) running on the grid servers and can be protected that way (i.e., the server does not hand over the script to the client if the permissions do not allow this): in an open grid we will have grid servers that are not under the control of LL (that is the whole purpose of the open grid) and thus a grid server could very well provide copies of scripts to anyone in control of it.&lt;br /&gt;
&lt;br /&gt;
So, basically the challenge is that content providers want to specify rules for the content they create and at the same time with an open grid and with open source SL clients we cannot &#039;&#039;guarantee&#039;&#039; those rules.  This is not necessarily fatal; an economy can work even when theft is possible.  But it is a fundamental limitation to what we can do with technical solutions.&lt;br /&gt;
&lt;br /&gt;
==Linden Lab statement on content protection in interop==&lt;br /&gt;
&lt;br /&gt;
On 8 July 2008, a [http://blog.secondlife.com/2008/07/08/ibm-linden-lab-interoperability-announcement/ posting in the Second Life weblog] entitled &amp;quot;IBM and Linden Lab Interoperability Announcement&amp;quot; included the following text:&lt;br /&gt;
&lt;br /&gt;
Q: How will Linden Lab prevent property from being copied into other virtual worlds?&lt;br /&gt;
&lt;br /&gt;
We’re paying extremely close attention to that question. We will be designing this with the Second Life community to ensure their needs are met. We want to stress that when it does become possible to move avatars between worlds, we will take the utmost care to protect the rights of Second Life property owners and creators. Linden Lab will not design a system that lets people openly violate the permissions of SL goods and take them to other worlds. We recognize that intellectual property is the engine that drives Second Life, and we are completely committed to preserving the qualities that make Second Life the unique, innovative and dynamic place that it is today.&lt;br /&gt;
&lt;br /&gt;
==DRM?==&lt;br /&gt;
&lt;br /&gt;
The challenge we face is the same as faced by digital content providers in the real world; for example, MP3 music outlets. The temptation is to try and go the same route that has been tried by those RL content providers: [http://en.wikipedia.org/wiki/Digital_rights_management DRM (digital rights management)]&lt;br /&gt;
&lt;br /&gt;
There are a couple of problems with DRM systems:&lt;br /&gt;
&lt;br /&gt;
* DRM systems in the past have almost always been cracked&lt;br /&gt;
* DRM systems tend to be rather complex and thus expensive to maintain&lt;br /&gt;
* in the end the content has to be displayed: couple that with an open source client and the DRM effort is nullified.&lt;br /&gt;
&lt;br /&gt;
The consensus on the mailing (and also one voiced by LL) is that DRM is not going to work in an open source, open grid environment.&lt;br /&gt;
&lt;br /&gt;
* I think we ought to be more specific about just what kind of DRM we&#039;re referring to here.  To the extent that the SL mod/copy/transfer bits are &amp;quot;DRM&amp;quot;, we have good evidence that they work well enough to support an economy, even with the client opensourced.  There&#039;s no reason to think that this kind of DRM can&#039;t work just as well in an open grid, or at least that subset of an open grid in which there are mutual and enforceable agreements in place about obeying the bits.  I assume this &amp;quot;is not going to work&amp;quot; refers to trying to make the system strong enough that even a skilled and determined attacker can&#039;t get around the protections?  The talk in the list didn&#039;t really call this out clearly I don&#039;t think... -- [[User:Dale Innis|Dale Innis]] 08:33, 18 July 2008 (PDT)&lt;br /&gt;
&lt;br /&gt;
==Do away with permissions?==&lt;br /&gt;
&lt;br /&gt;
The current permission system works --- kind of. Objects and textures &#039;&#039;can&#039;&#039; be copied (by a modified SL client offering &amp;quot;right click-&amp;gt;save as...&amp;quot;, or by libsecondlife based &amp;quot;copybots&amp;quot;), while scripts are protected by the grid servers.  &lt;br /&gt;
&lt;br /&gt;
So, we could make the argument that in an open grid environment we cannot guarantee that an attached foreign grid or an attached client cannot by-pass the permission system nor that they cannot make use of content that contradicts the intentions of the content creator --- thus, we could argue that we can just forget about permissions and not bother.&lt;br /&gt;
&lt;br /&gt;
But let&#039;s step back for a moment and look at the permission system from a different angle: we can also view the sets of permissions an object has as a &#039;&#039;license digest&#039;&#039;. This license digest communicates what rights the content creator wants to give the content consumer. Instead of having a 100 page EULA to go along with that super-duper flying broomstick you have a fairly compact set of permissions that tell you...&lt;br /&gt;
&lt;br /&gt;
* you can modify that super-duper broomstick&lt;br /&gt;
* you can make personal copies&lt;br /&gt;
* you can transfer copies&lt;br /&gt;
* you are not allowed to charge for it&lt;br /&gt;
&lt;br /&gt;
or alternately&lt;br /&gt;
&lt;br /&gt;
* you cannot modify that super-duper broomstick&lt;br /&gt;
* you can make personal copies&lt;br /&gt;
* you cannot transfer copies&lt;br /&gt;
&lt;br /&gt;
So, yes, permissions are not perfectly enforceable by technical means --- but they make sense as a license digest.  Technical means (code) can make it difficult or inconvenient to violate the license thus expressed, and can make it possible to detect violations so that other remedies can be employed when the technical protections fail.&lt;br /&gt;
&lt;br /&gt;
==Extending the current permission system==&lt;br /&gt;
&lt;br /&gt;
Two extensions have been suggested to the current permission system:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;transfer to trusted region&#039;&#039; --- that would allow the content creator either &lt;br /&gt;
** to allow transfer of the content to a list of trusted regions, or&lt;br /&gt;
** to allow transfer to all those regions that are trusted by a list of regions that she trusts&lt;br /&gt;
* &#039;&#039;sticky permissions&#039;&#039; --- permissions that cannot be changed down the food chain; for example,&lt;br /&gt;
** sticky transfer permission and sticky price tag: you can transfer the object, but you cannot take away the transfer permission, you should also not charge for the object.&lt;br /&gt;
&lt;br /&gt;
[[User:Dr Scofield|Dr Scofield]] 04:29, 26 September 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
* Other related extensions:&lt;br /&gt;
** allow transfer of the content to an indirectly-referenced list of trusted regions or domains (e.g. &amp;quot;the official list of Linden Lab Category A Partner Regions&amp;quot;, or &amp;quot;Jared Hu&#039;s List of Regions Run by Friends&amp;quot;, or whatever)&lt;br /&gt;
** allow transfer to some set of domains, but &#039;&#039;&#039;not&#039;&#039;&#039; some other set (exclusion as well as inclusion)&lt;br /&gt;
&lt;br /&gt;
==Discussion on the mailing list==&lt;br /&gt;
&lt;br /&gt;
Unfortunately the archive messed up and the permission thread is all over the place, but here are some link from which you might want to follow downwards the stream:&lt;br /&gt;
(probably also happens due to keyword juggling in the subject)&lt;br /&gt;
&lt;br /&gt;
* https://lists.secondlife.com/pipermail/sldev/2007-September/004637.html&lt;br /&gt;
* https://lists.secondlife.com/pipermail/sldev/2007-September/004652.html&lt;br /&gt;
* https://lists.secondlife.com/pipermail/sldev/2007-September/005065.html&lt;br /&gt;
* https://lists.secondlife.com/pipermail/sldev/2007-September/005086.html&lt;br /&gt;
* https://lists.secondlife.com/pipermail/sldev/2007-September/005104.html (a content creator&#039;s view)&lt;br /&gt;
* https://lists.secondlife.com/pipermail/sldev/2007-September/005128.html (cont&#039;d)&lt;br /&gt;
* https://lists.secondlife.com/pipermail/sldev/2007-September/005144.html (cont&#039;d)&lt;br /&gt;
&lt;br /&gt;
Basically it&#039;s the [https://lists.secondlife.com/pipermail/sldev/2007-September/subject.html September archive].&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
* I think all participants are more or less agreeing on the fact that a strong(er) DRM is not possible to be implemented. (We need to clarify this statement so it doesn&#039;t frighten people who read this without reading all the discussion. [[User:Dale Innis|Dale Innis]] 08:45, 18 July 2008 (PDT) )&lt;br /&gt;
* Permissions are here to stay, but these access constraints can hold &#039;&#039;only within the walls of specific managed grids&#039;&#039;.  One grid can only assume that another grid will respect the constraints if there is trust (backed where appropriate by enforceable agreements) between the grids.&lt;br /&gt;
* New permissions might be needed such as:&lt;br /&gt;
** allow an asset only to be used inside one region domain&lt;br /&gt;
** allow an asset only to be used inside one grid (= list of trusted region domains)&lt;br /&gt;
** allow an asset only to be used inside a set of region domains&lt;br /&gt;
*** For example, using signed certificates and revocation lists (possible implementation)&lt;br /&gt;
* It should also possible to create full-perm assets that stay full perm (such as a GPL-style license).&lt;br /&gt;
* It should be possible to make your intent more clear.&lt;br /&gt;
** Additional specific flags indicating certain permissions, even if they can&#039;t be enforced to serve as notice.&lt;br /&gt;
** An additional license field for license and copyright text, similar to land covenants (for e.g. CC licenses)&lt;br /&gt;
&lt;br /&gt;
== Thought on DRM ==&lt;br /&gt;
&lt;br /&gt;
This is a personal thought, but rooted in some fairly deep considerations. Given the real world nature of a distributed application and security, DRM becomes a perpetual arms race, and not one any standard is likely to win. We can, and should, however, try to make sure the system can aid in marking &#039;&#039;intent&#039;&#039; and in &#039;&#039;detecting &#039;&#039; theft and abuse, so that people can use other remedies when the theft hits levels where that matters. &lt;br /&gt;
&lt;br /&gt;
A second, related thought, is that, we can, and should ensure that what we build permits marking content such that a sub cluster with a trusted set of services and trusted clients and keep content within that space, while allowing public hosted content to be used. &lt;br /&gt;
&lt;br /&gt;
- [[user:Zha Ewry]] 9/25/2007&lt;br /&gt;
&lt;br /&gt;
== Arms Race Can Be Fought or Pretended to Be Fought ==&lt;br /&gt;
&lt;br /&gt;
The doctrine of the &amp;quot;arms race&amp;quot; in software needs to be challenged vigorously. In RL, countries engage in arms races out of necessity because there are other factors outside the immediate realm of the arms they are racing with that can contribute to a favourable outcome. For example, Reagan believed that by ordering Star Wars anti-missile defense to be built, he could trump the Soviets&#039; SS 20s threatening Europe&#039;s Pershing missiles, which were there in turn to counter conventional weapons. He could then bankrupt the Soviets and impoverish them as they struggled to build a system against Star Wars (note: I&#039;m describing a historical event, not endorsing a policy). Online, there&#039;s no reason to consider that arms races are endless by their nature merely because they are technical, and that other factors of attrition cannot enter in.&lt;br /&gt;
&lt;br /&gt;
In the SL setting, it is (still) a small world, and griefers&#039; groups wanting to bother with SL a small and known quantity. Arms-racing against some of them is a trivial matter; they are kids. So the pool of hackers becomes reduced, and sure, more try the next time and the process *may* invite opportunistic players in the arms race game, but generally each new effort to obfuscate or create dodges or feints or decoys or poison apples or red dye jets or whatever the methods are wins some, and reduces the ranks. It also begins to establish the concept of &amp;quot;we mean business and we will keep stopping you&amp;quot;. It doesn&#039;t even have to work every day. The DRM can, as indicated, merely mark intent; it can, as said here by Zha, merely mark the violation to trigger remedies. But it is good in its own right to stop casual thefts: the DRM of c/m/t works wonderfully in SL and should not be retired or dumped in the interoperability gambit. An arms race in cyberspace doesn&#039;t threaten the lives and property of real people; it impoverishes griefers only in time and ingenuity. It is worth fighting; it is worth *pretending* to fight. Digital rights management is not about digital; it&#039;s about rights and about management.&lt;br /&gt;
&lt;br /&gt;
- [[user:Prokofy Neva]] 7 November 2009&lt;br /&gt;
&lt;br /&gt;
== The fallacy of DRM ==&lt;br /&gt;
&lt;br /&gt;
It&#039;s worth pointing out somewhere, just in case it hasn&#039;t come across, that the failure of DRM doesn&#039;t hinge on arms races or cleverness of crackers or anything like that.  It stems from a failure to understand that encryption was designed to protect communications between Alice and Bob from the evil Eve, and not to handle the case where Bob and Eve are the same person.  DRM proponents are trying to give Bob access to an item without giving him access to the item ... which isn&#039;t logical, Captain, and is always doomed to eventual failure.  The Lindens do understand that, so all credit to them for not going down a path of self-delusion. --[[User:Morgaine Dinova|Morgaine Dinova]] 12:27, 2 October 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Related Jira Entry ==&lt;br /&gt;
&lt;br /&gt;
[https://jira.secondlife.com/browse/VWR-2571 VRW-2571 : Copyleft/share-alike permission for SL Items]&lt;br /&gt;
* The Jira discussion finally coalesced into some sort of general agreement that it would be A Good Thing for authors to be able to express their intentions with respect to downstream use of their work.  This is true even under the inevitable &amp;quot;fallacy of DRM&amp;quot; ... in other words, it is worthwhile for an author to be able to express her intentions even in the absence of any guarantees. --[[User:Morgaine Dinova|Morgaine Dinova]] 11:55, 3 October 2007 (PDT)&lt;br /&gt;
&lt;br /&gt;
== No, DRM is Not a Fallacy ==&lt;br /&gt;
&lt;br /&gt;
DRM is not a fallacy. That is an opinion of one extreme school of thought, and not a fact. As noted, arms races can be fought; can be pretended to be fought; can have partial or full valid outcomes. While submitting typical coder opinion to the wiki seems valid enough, no opinion of this nature should be portrayed as &amp;quot;fact&amp;quot; and enabled to shut off further discussion.&lt;br /&gt;
[[User:Prokofy Neva|Prokofy Neva]] 7 November 2009&lt;br /&gt;
&lt;br /&gt;
== Usecases ==&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.secondlife.com/wiki/Security_Usecases Security Related Usecases] (more needed!)&lt;br /&gt;
&lt;br /&gt;
[[Category: AW Groupies]]&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:LlRequestURL&amp;diff=643472</id>
		<title>Talk:LlRequestURL</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:LlRequestURL&amp;diff=643472"/>
		<updated>2009-11-03T19:38:40Z</updated>

		<summary type="html">&lt;p&gt;Dale Innis: /* Are URLs automatically released when the script is reset? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;One thing I couldn&#039;t help but notice - The URL generates a UUID as a specific URL, but from what I can tell, it&#039;s not a correctly formatted one - The version digit is just as random as the others. Not really an issue, but I do find it odd that they didn&#039;t even use version 4, as they did with inworld IDs.&lt;br /&gt;
&lt;br /&gt;
[[User:Hg Beeks|Hg Beeks]] 09:41, 10 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Are URLs automatically released when the script is reset? ==&lt;br /&gt;
&lt;br /&gt;
I tend to assume so, since otherwise they&#039;ll be constantly leaking when one edits and tests scripts that request URLs.  But is that a good assumption? [[User:Dale Innis|Dale Innis]] 19:38, 3 November 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Dale Innis</name></author>
	</entry>
</feed>