<?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=Core+Taurog</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=Core+Taurog"/>
	<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/wiki/Special:Contributions/Core_Taurog"/>
	<updated>2026-07-23T13:53:50Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlGetLinkName&amp;diff=33149</id>
		<title>LlGetLinkName</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlGetLinkName&amp;diff=33149"/>
		<updated>2007-09-27T13:41:34Z</updated>

		<summary type="html">&lt;p&gt;Core Taurog: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Function/link|linknum|}}&lt;br /&gt;
{{LSL_Function&lt;br /&gt;
|func_id=145|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|func=llGetLinkName&lt;br /&gt;
|return_type=string|p1_type=integer|p1_name=linknum&lt;br /&gt;
|func_footnote&lt;br /&gt;
|func_desc&lt;br /&gt;
|return_text=that is the name of &#039;&#039;&#039;linknum&#039;&#039;&#039; in link set&lt;br /&gt;
|spec&lt;br /&gt;
|caveats=*The prim name attribute is limited to 255 bytes, any string longer then that will be truncated. This truncation does not always happen when the attribute is set or read.&lt;br /&gt;
|constants&lt;br /&gt;
|examples=Listen on channel 10 for a name; check if a prim with that name is part of this object&lt;br /&gt;
&amp;lt;Pre&amp;gt;&lt;br /&gt;
integer check_for_prim(string name)&lt;br /&gt;
{&lt;br /&gt;
    integer i = llGetNumberOfPrims();&lt;br /&gt;
    for (; i &amp;gt;= 0; --i)&lt;br /&gt;
    {&lt;br /&gt;
        if (llGetLinkName(i) == name)&lt;br /&gt;
        {&lt;br /&gt;
            return TRUE;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    return FALSE;&lt;br /&gt;
}&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llListen(10, &amp;quot;&amp;quot;, llGetOwner(), &amp;quot;&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    listen(integer chan, string obj, key id, string msg)&lt;br /&gt;
    {&lt;br /&gt;
        if (check_for_prim(msg))&lt;br /&gt;
        {&lt;br /&gt;
            llOwnerSay(&amp;quot;found a linked prim named \&amp;quot;&amp;quot; + msg + &amp;quot;\&amp;quot;&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
            llOwnerSay(&amp;quot;this object does not have any linked prims named \&amp;quot;&amp;quot; + msg + &amp;quot;\&amp;quot;&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/Pre&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions=&lt;br /&gt;
{{LSL DefineRow||[[llGetLinkKey]]|Gets the instance UUID of the link}}&lt;br /&gt;
{{LSL DefineRow||[[llGetObjectName]]|Get the prims name}}&lt;br /&gt;
{{LSL DefineRow||[[llSetObjectName]]|Set the prims name}}&lt;br /&gt;
{{LSL DefineRow||[[llGetObjectDesc]]|Get the prims description}}&lt;br /&gt;
{{LSL DefineRow||[[llSetObjectDesc]]|Get the prims description}}&lt;br /&gt;
{{LSL DefineRow||[[llGetObjectDetails]]}}&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_events&lt;br /&gt;
|also_articles=&lt;br /&gt;
{{LSL DefineRow||[[Prim Attribute Overloading]]}}&lt;br /&gt;
|notes&lt;br /&gt;
|cat1=Link&lt;br /&gt;
|cat2&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Core Taurog</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlGetListLength&amp;diff=33148</id>
		<title>LlGetListLength</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlGetListLength&amp;diff=33148"/>
		<updated>2007-09-27T13:33:31Z</updated>

		<summary type="html">&lt;p&gt;Core Taurog: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Function&lt;br /&gt;
|func_id=185|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|func=llGetListLength|return_type=integer|p1_type=list|p1_name=src&lt;br /&gt;
|func_footnote&lt;br /&gt;
|func_desc&lt;br /&gt;
|return_text=that is the number of elements in the list &#039;&#039;&#039;src&#039;&#039;&#039;.&lt;br /&gt;
|spec&lt;br /&gt;
|caveats&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&lt;br /&gt;
&amp;lt;Pre&amp;gt;&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        list l = [&amp;quot;one&amp;quot;, &amp;quot;two&amp;quot;, &amp;quot;three&amp;quot;];&lt;br /&gt;
        integer i = llGetListLength(l);&lt;br /&gt;
        llOwnerSay(&amp;quot;there are &amp;quot; + (string)i + &amp;quot; entries in the list&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/Pre&amp;gt;&lt;br /&gt;
|notes=A faster and lighter (in bytecode) way to determine the length of a script is to do a not-equals compare with a null list. This works because the list not-equals compare returns the difference between the lengths.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
list in;&lt;br /&gt;
integer len_in = llGetListLength(in);&lt;br /&gt;
integer flen_in = (in != []);&lt;br /&gt;
//flen_in and len_in will be the same&lt;br /&gt;
&lt;br /&gt;
integer neg_len_in = -llGetListLength(in);&lt;br /&gt;
integer fneg_len_in = ([] != in);&lt;br /&gt;
//fneg_len_in and neg_len_in will be the same&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions=&lt;br /&gt;
{{LSL DefineRow||[[llListStatistics]]|[[LIST_STAT_NUM_COUNT]] – Returns the number of [[integer]]s and [[float]]s in the list}}&lt;br /&gt;
{{LSL DefineRow||[[llStringLength]]|Returns the number of characters in a string.}}&lt;br /&gt;
|also_events&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_articles&lt;br /&gt;
|permission&lt;br /&gt;
|location=&lt;br /&gt;
&#039;linden\indra\lscript\lscript_library\lscript_alloc.cpp&#039; @ lsa_cmp_lists&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;linden\indra\lscript\lscript_execute\lscript_execute.cpp&#039; @ list_list_operation&lt;br /&gt;
|cat1=List&lt;br /&gt;
|cat2&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Core Taurog</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlGetNumberOfNotecardLines&amp;diff=33146</id>
		<title>LlGetNumberOfNotecardLines</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlGetNumberOfNotecardLines&amp;diff=33146"/>
		<updated>2007-09-27T13:33:19Z</updated>

		<summary type="html">&lt;p&gt;Core Taurog: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Function/inventory|name|uuid=false|type=notecard}}{{LSL_Function&lt;br /&gt;
|func_id=276|func_sleep=0.1|func_energy=10.0&lt;br /&gt;
|func=llGetNumberOfNotecardLines&lt;br /&gt;
|return_type=key&lt;br /&gt;
|p1_type=string|p1_name=name&lt;br /&gt;
|func_footnote&lt;br /&gt;
|func_desc=Requests number of lines in notecard &#039;&#039;&#039;name&#039;&#039;&#039; via the {{LSLG|dataserver}} event (cast dataserver value to integer)&lt;br /&gt;
|return_text=that is the handle for a {{LSLG|dataserver}} event response.&lt;br /&gt;
|spec&lt;br /&gt;
|caveats=* If notecard contains embedded inventory items (such as textures and landmarks), invalid data will be returned.&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&lt;br /&gt;
&amp;lt;Pre&amp;gt;&lt;br /&gt;
string NOTECARD_NAME = &amp;quot;config&amp;quot;; // name of the card we are going to read&lt;br /&gt;
integer notecard_line = 0;&lt;br /&gt;
integer num_notecard_lines = 0;&lt;br /&gt;
key notecard_request = NULL_KEY;&lt;br /&gt;
list card_data; // the data in the card&lt;br /&gt;
&lt;br /&gt;
integer&lt;br /&gt;
check_card(string name) // check that that the named inventory item is a notecard&lt;br /&gt;
{&lt;br /&gt;
    integer i = llGetInventoryType(name);&lt;br /&gt;
    return i == INVENTORY_NOTECARD;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        state init;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
state ready&lt;br /&gt;
{&lt;br /&gt;
    touch_start(integer detected)&lt;br /&gt;
    {&lt;br /&gt;
        llOwnerSay(&amp;quot;the notecard contained the following data:&amp;quot;);&lt;br /&gt;
        llOwnerSay(llDumpList2String(card_data, &amp;quot;\n&amp;quot;));&lt;br /&gt;
    }&lt;br /&gt;
    changed(integer change)&lt;br /&gt;
    {&lt;br /&gt;
        if (change &amp;amp; (CHANGED_INVENTORY)) // if someone edits the card, reset the script&lt;br /&gt;
        {&lt;br /&gt;
            llResetScript();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
state init&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        if (!check_card(NOTECARD_NAME)) // check the card exists&lt;br /&gt;
        {&lt;br /&gt;
            state error;&lt;br /&gt;
        }&lt;br /&gt;
        llSetText(&amp;quot;initialising...&amp;quot;, &amp;lt;1, 1, 1&amp;gt;, 0);&lt;br /&gt;
        notecard_request = NULL_KEY;&lt;br /&gt;
        notecard_line = 0;&lt;br /&gt;
        num_notecard_lines = 0;&lt;br /&gt;
        notecard_request = llGetNumberOfNotecardLines(NOTECARD_NAME); // ask for the number of lines in the card&lt;br /&gt;
        llSetTimerEvent(5.0); // if we don&#039;t hear back in 5 secs, then the card might have been empty&lt;br /&gt;
    }&lt;br /&gt;
    timer() // if we time out, it meant something went wrong - the notecard was probably empty&lt;br /&gt;
    {&lt;br /&gt;
        llSetTimerEvent(0.0);&lt;br /&gt;
        state error;&lt;br /&gt;
    }&lt;br /&gt;
    dataserver(key query_id, string data)&lt;br /&gt;
    {&lt;br /&gt;
        if (query_id == notecard_request) // make sure it&#039;s an answer to a question we asked - this should be an unnecessary check&lt;br /&gt;
        {&lt;br /&gt;
            llSetTimerEvent(0.0); // at least one line, so don&#039;t worry any more&lt;br /&gt;
            if (data == EOF) // end of the notecard, change to ready state&lt;br /&gt;
            {&lt;br /&gt;
                state ready;&lt;br /&gt;
            }&lt;br /&gt;
            else if (num_notecard_lines == 0) // first request is for the number of lines&lt;br /&gt;
            {&lt;br /&gt;
                num_notecard_lines = (integer)data;&lt;br /&gt;
                notecard_request = llGetNotecardLine(NOTECARD_NAME, notecard_line); // now get the first line&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                if (data != &amp;quot;&amp;quot; &amp;amp;&amp;amp; llGetSubString(data, 0, 0) != &amp;quot;#&amp;quot;) // ignore empty lines, or lines beginning with &amp;quot;#&amp;quot;&lt;br /&gt;
                {&lt;br /&gt;
                    card_data = (card_data = []) + card_data + data;&lt;br /&gt;
                }&lt;br /&gt;
                ++notecard_line;&lt;br /&gt;
                notecard_request = llGetNotecardLine(NOTECARD_NAME, notecard_line); // ask for the next line&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        // update the hover-text with the progress&lt;br /&gt;
        llSetText(&amp;quot;read &amp;quot; + (string)(notecard_line) + &amp;quot; of &amp;quot; + (string)num_notecard_lines + &amp;quot; lines&amp;quot;, &amp;lt;1, 1, 1&amp;gt;, 1);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    state_exit()&lt;br /&gt;
    {&lt;br /&gt;
        llSetText(&amp;quot;&amp;quot;, &amp;lt;0, 0, 0&amp;gt;, 0);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
state error&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llOwnerSay(&amp;quot;something went wrong; try checking that the notecard [ &amp;quot; + NOTECARD_NAME + &amp;quot; ] exists and contains data&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    changed(integer change)&lt;br /&gt;
    {&lt;br /&gt;
        if (change &amp;amp; CHANGED_INVENTORY)&lt;br /&gt;
        {&lt;br /&gt;
            llResetScript();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/Pre&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions={{LSL DefineRow||[[llGetNotecardLine]]|}}&lt;br /&gt;
|also_events={{LSL DefineRow||[[dataserver]]|}}&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_articles&lt;br /&gt;
|notes&lt;br /&gt;
|permission&lt;br /&gt;
|negative_index&lt;br /&gt;
|sort=GetNumberOfNotecardLines&lt;br /&gt;
|cat1=Notecard&lt;br /&gt;
|cat2=Dataserver&lt;br /&gt;
|cat3=&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Core Taurog</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlGetListLength&amp;diff=33147</id>
		<title>LlGetListLength</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlGetListLength&amp;diff=33147"/>
		<updated>2007-09-27T13:33:16Z</updated>

		<summary type="html">&lt;p&gt;Core Taurog: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Function&lt;br /&gt;
|func_id=185|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|func=llGetListLength|return_type=integer|p1_type=list|p1_name=src&lt;br /&gt;
|func_footnote&lt;br /&gt;
|func_desc&lt;br /&gt;
|return_text=that is the number of elements in the list &#039;&#039;&#039;src&#039;&#039;&#039;.&lt;br /&gt;
|spec&lt;br /&gt;
|caveats&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&lt;br /&gt;
&amp;lt;Pre&amp;gt;&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        list l = [&amp;quot;one&amp;quot;, &amp;quot;two&amp;quot;, &amp;quot;three&amp;quot;];&lt;br /&gt;
        integer i = llGetListLength(l);&lt;br /&gt;
        llOwnerSay(&amp;quot;there are &amp;quot; + (string)i + &amp;quot; entries in the list&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/Pre&amp;gt;&lt;br /&gt;
|notes=A faster and lighter (in bytecode) way to determine the length of a script is to do a not-equals compare with a null list. This works because the list not-equals compare returns the difference between the lengths.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
list in;&lt;br /&gt;
integer len_in = llGetListLength(in);&lt;br /&gt;
integer flen_in = (in != []);&lt;br /&gt;
//flen_in and len_in will be the same&lt;br /&gt;
&lt;br /&gt;
integer neg_len_in = -llGetListLength(in);&lt;br /&gt;
integer fneg_len_in = ([] != in);&lt;br /&gt;
//fneg_len_in and neg_len_in will be the same&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions=&lt;br /&gt;
{{LSL DefineRow||[[llListStatistics]]|[[LIST_STAT_NUM_COUNT]] – Returns the number of [[integer]]s and [[float]]s in the list}}&lt;br /&gt;
{{LSL DefineRow||[[llStringLength]]|Returns the number of characters in a string.}}&lt;br /&gt;
|also_events&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_articles&lt;br /&gt;
|permission&lt;br /&gt;
|location=&lt;br /&gt;
&#039;linden\indra\lscript\lscript_library\lscript_alloc.cpp&#039; @ lsa_cmp_lists&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;linden\indra\lscript\lscript_execute\lscript_execute.cpp&#039; @ list_list_operation&lt;br /&gt;
|cat1=List&lt;br /&gt;
|cat2&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Core Taurog</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlGetNumberOfPrims&amp;diff=33142</id>
		<title>LlGetNumberOfPrims</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlGetNumberOfPrims&amp;diff=33142"/>
		<updated>2007-09-27T13:02:27Z</updated>

		<summary type="html">&lt;p&gt;Core Taurog: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Function&lt;br /&gt;
|func_id=275|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|func=llGetNumberOfPrims|sort=GetNumberOfPrims&lt;br /&gt;
|return_type=integer&lt;br /&gt;
|func_footnote&lt;br /&gt;
|func_desc&lt;br /&gt;
|return_text=that is the number of prims in a link set the script is attached to.&lt;br /&gt;
|spec&lt;br /&gt;
|caveats&lt;br /&gt;
|constants&lt;br /&gt;
|examples=Returns the number of agents on the object&lt;br /&gt;
&amp;lt;Pre&amp;gt;&lt;br /&gt;
integer GetNumberOfAgents()&lt;br /&gt;
{//count avatars&lt;br /&gt;
    integer a = llGetNumberOfPrims();&lt;br /&gt;
    integer b = a;&lt;br /&gt;
    while(llGetAgentSize(llGetLinkKey(a)))&lt;br /&gt;
        --a;&lt;br /&gt;
    return b - a;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/Pre&amp;gt;&lt;br /&gt;
|helpers=&amp;lt;pre&amp;gt;&lt;br /&gt;
//Returns the number of agents on the object&lt;br /&gt;
integer GetNumberOfAgents()&lt;br /&gt;
{//count avatars&lt;br /&gt;
    integer a = llGetNumberOfPrims();&lt;br /&gt;
    integer b = a;&lt;br /&gt;
    while(llGetAgentSize(llGetLinkKey(a)))&lt;br /&gt;
        --a;&lt;br /&gt;
    return b - a;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//Returns the number of prims in the object&lt;br /&gt;
integer GetNumberOfPrims()&lt;br /&gt;
{//ignores avatars&lt;br /&gt;
    integer a = llGetNumberOfPrims();&lt;br /&gt;
    while(llGetAgentSize(llGetLinkKey(a)))&lt;br /&gt;
        --a;&lt;br /&gt;
    return a;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|also_functions=&lt;br /&gt;
{{LSL DefineRow||{{LSLG|llGetObjectPrimCount}}|Returns the number of prims in any object.}}&lt;br /&gt;
{{LSL DefineRow||{{LSLG|llGetLinkNumber}}|Returns the link number of the prim the script is in.}}&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_events&lt;br /&gt;
|also_articles&lt;br /&gt;
|notes&lt;br /&gt;
|cat1=Link&lt;br /&gt;
|cat2&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Core Taurog</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=At_target&amp;diff=33141</id>
		<title>At target</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=At_target&amp;diff=33141"/>
		<updated>2007-09-27T12:59:40Z</updated>

		<summary type="html">&lt;p&gt;Core Taurog: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Event|event_id=16|event_delay|event=at_target&lt;br /&gt;
|p1_type=integer|p1_name=tnum|p1_desc=[[llTarget]] return&lt;br /&gt;
|p2_type=vector|p2_name=targetpos|p2_desc=[[llTarget]] position parameter&lt;br /&gt;
|p3_type=vector|p3_name=ourpos|p3_desc=current position (similar to [[llGetPos]])&lt;br /&gt;
|event_desc=Result of {{LSLG|llTarget}} library function call&lt;br /&gt;
|constants&lt;br /&gt;
|spec&lt;br /&gt;
|caveats&lt;br /&gt;
|examples=&lt;br /&gt;
&amp;lt;Pre&amp;gt;&lt;br /&gt;
integer target_id;&lt;br /&gt;
vector target_pos;&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        target_pos = llGetPos() + &amp;lt;1.0, 0.0, 0.0&amp;gt;;&lt;br /&gt;
        target_id = llTarget(target_pos, 0.5);&lt;br /&gt;
    }&lt;br /&gt;
    at_target(integer tnum, vector targetpos, vector ourpos)&lt;br /&gt;
    {&lt;br /&gt;
        if (tnum == target_id)&lt;br /&gt;
        {&lt;br /&gt;
            llOwnerSay(&amp;quot;object is within range of target&amp;quot;);&lt;br /&gt;
            llOwnerSay(&amp;quot;target position: &amp;quot; + (string)targetpos + &amp;quot;, object is now at: &amp;quot; + (string)ourpos);&lt;br /&gt;
            llOwnerSay(&amp;quot;this is &amp;quot; + (string)llVecDist(targetpos, ourpos) + &amp;quot; meters from the target&amp;quot;);&lt;br /&gt;
            llTargetRemove(target_id);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    not_at_target()&lt;br /&gt;
    {&lt;br /&gt;
        llOwnerSay(&lt;br /&gt;
            &amp;quot;not there yet - object is at &amp;quot; + (string)llGetPos() + &lt;br /&gt;
            &amp;quot;, which is &amp;quot; + (string)llVecDist(target_pos, llGetPos()) + &lt;br /&gt;
            &amp;quot; meters from the target (&amp;quot; + (string)target_pos + &amp;quot;)&amp;quot;&lt;br /&gt;
        );&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/Pre&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_header&lt;br /&gt;
|also_events={{LSL DefineRow||[[not_at_target]]|}}&lt;br /&gt;
{{LSL DefineRow||[[at_rot_target]]|}}&lt;br /&gt;
{{LSL DefineRow||[[not_at_rot_target]]|}}&lt;br /&gt;
|also_functions={{LSL DefineRow||[[llTarget]]|Setup a target position}}&lt;br /&gt;
{{LSL DefineRow||[[llTargetRemove]]|Stop a target position}}&lt;br /&gt;
{{LSL DefineRow||[[llRotTarget]]|Setup a target rotation}}&lt;br /&gt;
{{LSL DefineRow||[[llRotTargetRemove]]|Stop a target rotation}}&lt;br /&gt;
|also_articles&lt;br /&gt;
|also_footer&lt;br /&gt;
|notes&lt;br /&gt;
|mode&lt;br /&gt;
|deprecated&lt;br /&gt;
|cat1=Target&lt;br /&gt;
|cat2&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Core Taurog</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlGetScriptName&amp;diff=33139</id>
		<title>LlGetScriptName</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlGetScriptName&amp;diff=33139"/>
		<updated>2007-09-27T12:54:46Z</updated>

		<summary type="html">&lt;p&gt;Core Taurog: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Function&lt;br /&gt;
|func_id=167|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|func=llGetScriptName&lt;br /&gt;
|func_footnote&lt;br /&gt;
|func_desc&lt;br /&gt;
|return_type=string&lt;br /&gt;
|return_text=that is the script name.&lt;br /&gt;
|spec&lt;br /&gt;
|caveats&lt;br /&gt;
|constants&lt;br /&gt;
|examples=Remove the current script from the object&lt;br /&gt;
&amp;lt;Pre&amp;gt;&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llRemoveInventory(llGetScriptName());&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/Pre&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions&lt;br /&gt;
|also_events&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_articles&lt;br /&gt;
|notes&lt;br /&gt;
|permission&lt;br /&gt;
|negative_index&lt;br /&gt;
|sort=GetScriptName&lt;br /&gt;
|cat1=Inventory&lt;br /&gt;
|cat2=Script&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Core Taurog</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlGetStartParameter&amp;diff=33138</id>
		<title>LlGetStartParameter</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlGetStartParameter&amp;diff=33138"/>
		<updated>2007-09-27T12:54:09Z</updated>

		<summary type="html">&lt;p&gt;Core Taurog: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Function&lt;br /&gt;
|func_id=134|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|sort=GetStartParameter&lt;br /&gt;
|func=llGetStartParameter|return_type=integer&lt;br /&gt;
|func_footnote=&lt;br /&gt;
*If the script was loaded with [[llRemoteLoadScriptPin]] then that start parameter is returned.&lt;br /&gt;
*If the containing object was rezzed by [[llRezObject]] or [[llRezAtRoot]] then the return is the [[on_rez]] parameter.&lt;br /&gt;
|func_desc&lt;br /&gt;
|return_text=that is the script start/rez parameter.&lt;br /&gt;
|spec&lt;br /&gt;
|caveats&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&lt;br /&gt;
&amp;lt;Pre&amp;gt;&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    on_rez(integer param)&lt;br /&gt;
    {&lt;br /&gt;
        llOwnerSay(&amp;quot;rezzed with the number &amp;quot; + (string)param);&lt;br /&gt;
    }&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        integer i = llGetStartParameter();&lt;br /&gt;
        if (i == 0)&lt;br /&gt;
        {&lt;br /&gt;
            llOwnerSay(&amp;quot;rezzed from inventory (or llRezObject with 0)&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
            llOwnerSay(&amp;quot;I was given the number &amp;quot; + (string)i + &amp;quot; when I was rezzed&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/Pre&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions=&lt;br /&gt;
{{LSL DefineRow||[[llRemoteLoadScriptPin]]|Used to load a script into a remote prim}}&lt;br /&gt;
{{LSL DefineRow||[[llRezObject]]|Used to rez an object at the center of mass}}&lt;br /&gt;
{{LSL DefineRow||[[llRezAtRoot]]|Used to rez an object at the root}}&lt;br /&gt;
|also_events=&lt;br /&gt;
{{LSL DefineRow||[[on_rez]]|}}&lt;br /&gt;
|also_articles&lt;br /&gt;
|notes&lt;br /&gt;
|cat1=Script&lt;br /&gt;
|cat2&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Core Taurog</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlGetSubString&amp;diff=33137</id>
		<title>LlGetSubString</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlGetSubString&amp;diff=33137"/>
		<updated>2007-09-27T12:52:04Z</updated>

		<summary type="html">&lt;p&gt;Core Taurog: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Function/negative index|true|start|end}}{{LSL_Function&lt;br /&gt;
|func_id=94|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|func=llGetSubString|return_type=string|p1_type=string|p1_name=src|p2_type=integer|p2_name=start|p3_type=integer|p3_name=end&lt;br /&gt;
|func_footnote&lt;br /&gt;
|func_desc&lt;br /&gt;
|return_text=that is the substring of &#039;&#039;&#039;src&#039;&#039;&#039; from &#039;&#039;&#039;start&#039;&#039;&#039; to &#039;&#039;&#039;end&#039;&#039;&#039;.&lt;br /&gt;
|spec&lt;br /&gt;
|caveats&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&lt;br /&gt;
&amp;lt;Pre&amp;gt;&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        string word = &amp;quot;Hello!&amp;quot;;&lt;br /&gt;
        llOwnerSay(llGetSubString(word, 0, 0));&lt;br /&gt;
        // Object: H&lt;br /&gt;
        llOwnerSay(llGetSubString(word, -1, -1));&lt;br /&gt;
        // Object: !&lt;br /&gt;
        llOwnerSay(llGetSubString(word, 2, 3));&lt;br /&gt;
        // Object: ll&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/Pre&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions=*{{LSLG|llDeleteSubString}}&lt;br /&gt;
*{{LSLG|llInsertString}}&lt;br /&gt;
*[[User:Anylyn_Hax#str_replace()|str_replace()]]&lt;br /&gt;
|also_events&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_articles&lt;br /&gt;
|notes&lt;br /&gt;
|sort=GetSubString&lt;br /&gt;
|cat1=String&lt;br /&gt;
|cat2&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Core Taurog</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlListFindList&amp;diff=33136</id>
		<title>LlListFindList</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlListFindList&amp;diff=33136"/>
		<updated>2007-09-27T12:49:01Z</updated>

		<summary type="html">&lt;p&gt;Core Taurog: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Function&lt;br /&gt;
|func=llListFindList&lt;br /&gt;
|sort=ListFindList&lt;br /&gt;
|func_id=201|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|return_type=integer|p1_type=list|p1_name=src|p2_type=list|p2_name=test&lt;br /&gt;
|func_footnote=If &#039;&#039;&#039;test&#039;&#039;&#039; is not found in &#039;&#039;&#039;src&#039;&#039;&#039;, {{HoverText|-1|negative one, 0x{{LSL_Hex/Write|-1}}}} is returned.&amp;lt;br/&amp;gt;&lt;br /&gt;
The index of the first entry in the list is {{HoverText|0|zero}}&lt;br /&gt;
|func_desc&lt;br /&gt;
|return_text=that is the index of the first instance of &#039;&#039;&#039;test&#039;&#039;&#039; in &#039;&#039;&#039;src&#039;&#039;&#039;.&lt;br /&gt;
|spec&lt;br /&gt;
|caveats=*Strict type matching is enforced.&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&lt;br /&gt;
&amp;lt;Pre&amp;gt;&lt;br /&gt;
list numbers = [1, 2, 3, 4, 5];&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        integer index = llListFindList(numbers, [3]);&lt;br /&gt;
        if (index != -1)&lt;br /&gt;
        {&lt;br /&gt;
            list three_four = llList2List(numbers, index, index + 1);&lt;br /&gt;
            llOwnerSay(llDumpList2String(three_four, &amp;quot;,&amp;quot;));&lt;br /&gt;
            // Object: 3,4&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/Pre&amp;gt;&lt;br /&gt;
|helpers=&lt;br /&gt;
An easy way to see if an item exists in a list...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if(~llListFindList(myList, (list)item))&lt;br /&gt;
{//it exists&lt;br /&gt;
    //This works because ~(-1) == 0&lt;br /&gt;
    //It saves bytecode and is faster then doing != -1&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|also_functions=&lt;br /&gt;
{{LSL DefineRow||[[llSubStringIndex]]|Find a string in another string}}&lt;br /&gt;
|also_events&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_articles&lt;br /&gt;
|notes&lt;br /&gt;
|permission&lt;br /&gt;
|negative_index&lt;br /&gt;
|sort=ListFindList&lt;br /&gt;
|cat1=List&lt;br /&gt;
|cat2&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Core Taurog</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlList2List&amp;diff=33135</id>
		<title>LlList2List</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlList2List&amp;diff=33135"/>
		<updated>2007-09-27T12:48:38Z</updated>

		<summary type="html">&lt;p&gt;Core Taurog: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Function/negative index|true|start|end}}&lt;br /&gt;
{{LSL_Function&lt;br /&gt;
|func_id=192|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|sort=List2List&lt;br /&gt;
|func=llList2List|return_type=list|p1_type=list|p1_name=src|p2_type=integer|p2_name=start|p3_type=integer|p3_name=end&lt;br /&gt;
|func_footnote&lt;br /&gt;
|func_desc&lt;br /&gt;
|return_text=that is a slice of &#039;&#039;&#039;src&#039;&#039;&#039; from &#039;&#039;&#039;start&#039;&#039;&#039; to &#039;&#039;&#039;end&#039;&#039;&#039;.&lt;br /&gt;
|spec&lt;br /&gt;
|caveats&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&lt;br /&gt;
&amp;lt;Pre&amp;gt;&lt;br /&gt;
list numbers = [1, 2, 3, 4, 5];&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        integer index = llListFindList(numbers, [3]);&lt;br /&gt;
        if (index != -1)&lt;br /&gt;
        {&lt;br /&gt;
            list three_four = llList2List(numbers, index, index + 1);&lt;br /&gt;
            llOwnerSay(llDumpList2String(three_four, &amp;quot;,&amp;quot;));&lt;br /&gt;
            // Object: 3,4&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/Pre&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions&lt;br /&gt;
|also_events&lt;br /&gt;
|also_articles&lt;br /&gt;
|notes&lt;br /&gt;
|permission&lt;br /&gt;
|cat1=List&lt;br /&gt;
|cat2&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Core Taurog</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlListInsertList&amp;diff=33134</id>
		<title>LlListInsertList</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlListInsertList&amp;diff=33134"/>
		<updated>2007-09-27T12:44:29Z</updated>

		<summary type="html">&lt;p&gt;Core Taurog: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#vardefine:spec_between|If &#039;&#039;&#039;start&#039;&#039;&#039; is past the end of &#039;&#039;&#039;dest&#039;&#039;&#039;, then &#039;&#039;&#039;src&#039;&#039;&#039; is appended to &#039;&#039;&#039;dest&#039;&#039;&#039;, it will not add null entries.  To avoid this, create empty elements in the list first. A similar outcome occurs when using {{LSLGC|Negative Index|negative indexes}}.}}&lt;br /&gt;
{{LSL_Function/negative index|true|start}}{{LSL_Function&lt;br /&gt;
|func_id=200|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|func=llListInsertList|return_type=list|p1_type=list|p1_name=dest|p2_type=list|p2_name=src|p3_type=integer|p3_name=start&lt;br /&gt;
|func_footnote&lt;br /&gt;
|func_desc&lt;br /&gt;
|return_text=that is &#039;&#039;&#039;src&#039;&#039;&#039; inserted into &#039;&#039;&#039;dest&#039;&#039;&#039; at position &#039;&#039;&#039;start&#039;&#039;&#039;.&lt;br /&gt;
|spec&lt;br /&gt;
|caveats&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&lt;br /&gt;
&amp;lt;Pre&amp;gt;&lt;br /&gt;
list numbers = [3, &amp;quot;three&amp;quot;, 2, &amp;quot;two&amp;quot;, 1, &amp;quot;one&amp;quot;];&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llOwnerSay(llDumpList2String(numbers, &amp;quot;,&amp;quot;));&lt;br /&gt;
        // Object: 3,three,2,two,1,one&lt;br /&gt;
        integer index = llListFindList(numbers, [2]);&lt;br /&gt;
        if (index != -1)&lt;br /&gt;
        {&lt;br /&gt;
            numbers = llListInsertList(numbers, [2.5, &amp;quot;two and a half&amp;quot;], index);&lt;br /&gt;
            llOwnerSay(llDumpList2String(numbers, &amp;quot;,&amp;quot;));&lt;br /&gt;
            // Object: 3,three,2.500000,two and a half,2,two,1,one&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/Pre&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions={{LSL DefineRow|[[llDeleteSubList]]}}&lt;br /&gt;
{{LSL DefineRow|[[llList2List]]}}&lt;br /&gt;
{{LSL DefineRow|[[llListReplaceList]]}}&lt;br /&gt;
|also_events&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_articles&lt;br /&gt;
|notes&lt;br /&gt;
|permission&lt;br /&gt;
|sort=ListInsertList&lt;br /&gt;
|cat1=List&lt;br /&gt;
|cat2&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Core Taurog</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlListInsertList&amp;diff=33133</id>
		<title>LlListInsertList</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlListInsertList&amp;diff=33133"/>
		<updated>2007-09-27T12:43:27Z</updated>

		<summary type="html">&lt;p&gt;Core Taurog: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#vardefine:spec_between|If &#039;&#039;&#039;start&#039;&#039;&#039; is past the end of &#039;&#039;&#039;dest&#039;&#039;&#039;, then &#039;&#039;&#039;src&#039;&#039;&#039; is appended to &#039;&#039;&#039;dest&#039;&#039;&#039;, it will not add null entries.  To avoid this, create empty elements in the list first. A similar outcome occurs when using {{LSLGC|Negative Index|negative indexes}}.}}&lt;br /&gt;
{{LSL_Function/negative index|true|start}}{{LSL_Function&lt;br /&gt;
|func_id=200|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|func=llListInsertList|return_type=list|p1_type=list|p1_name=dest|p2_type=list|p2_name=src|p3_type=integer|p3_name=start&lt;br /&gt;
|func_footnote&lt;br /&gt;
|func_desc&lt;br /&gt;
|return_text=that is &#039;&#039;&#039;src&#039;&#039;&#039; inserted into &#039;&#039;&#039;dest&#039;&#039;&#039; at position &#039;&#039;&#039;start&#039;&#039;&#039;.&lt;br /&gt;
|spec&lt;br /&gt;
|caveats&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&lt;br /&gt;
&amp;lt;Pre&amp;gt;&lt;br /&gt;
list numbers = [3, &amp;quot;three&amp;quot;, 2, &amp;quot;two&amp;quot;, 1, &amp;quot;one&amp;quot;];&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llOwnerSay(llDumpList2String(numbers, &amp;quot;,&amp;quot;));&lt;br /&gt;
        // Object: 3,three,2,two,1,one&lt;br /&gt;
        integer index = llListFindList(numbers, [2]);&lt;br /&gt;
        numbers = llListInsertList(numbers, [2.5, &amp;quot;two and a half&amp;quot;], index);&lt;br /&gt;
        llOwnerSay(llDumpList2String(numbers, &amp;quot;,&amp;quot;));&lt;br /&gt;
        // Object: 3,three,2.500000,two and a half,2,two,1,one&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/Pre&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions={{LSL DefineRow|[[llDeleteSubList]]}}&lt;br /&gt;
{{LSL DefineRow|[[llList2List]]}}&lt;br /&gt;
{{LSL DefineRow|[[llListReplaceList]]}}&lt;br /&gt;
|also_events&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_articles&lt;br /&gt;
|notes&lt;br /&gt;
|permission&lt;br /&gt;
|sort=ListInsertList&lt;br /&gt;
|cat1=List&lt;br /&gt;
|cat2&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Core Taurog</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlListSort&amp;diff=33132</id>
		<title>LlListSort</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlListSort&amp;diff=33132"/>
		<updated>2007-09-27T12:41:14Z</updated>

		<summary type="html">&lt;p&gt;Core Taurog: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Function&lt;br /&gt;
|func_id=184|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|func=llListSort|return_type=list&lt;br /&gt;
|p1_type=list|p1_name=src|p1_desc=List to be sorted.&lt;br /&gt;
|p2_type=integer|p2_name=stride|p2_desc=number of entries per stride, if less then 1 it is assumed to be 1.&lt;br /&gt;
|p3_type=integer|p3_name=ascending|p3_desc=if {{LSLG|FALSE}} then the sort order is desending, otherwise the order is assending.&lt;br /&gt;
|func_footnote&lt;br /&gt;
|func_desc&lt;br /&gt;
|return_text=that is &#039;&#039;&#039;src&#039;&#039;&#039; sorted by &#039;&#039;&#039;stride&#039;&#039;&#039;.&lt;br /&gt;
|spec=A bubble sort is employed to perform the sort.&amp;lt;br/&amp;gt;&lt;br /&gt;
The sort order is effected by type.&amp;lt;br/&amp;gt;&lt;br /&gt;
Each type is sorted individually and then feathered to have the same order of types.&lt;br /&gt;
&amp;lt;pre&amp;gt;llListSort([1, &amp;quot;C&amp;quot;, 3, &amp;quot;A&amp;quot;, 2, &amp;quot;B&amp;quot;], 1, TRUE) == [1, &amp;quot;A&amp;quot;, 2, &amp;quot;B&amp;quot;, 3, &amp;quot;C&amp;quot;]&lt;br /&gt;
llListSort([1, 3, 2, &amp;quot;C&amp;quot;, &amp;quot;A&amp;quot;, &amp;quot;B&amp;quot;], 1, TRUE) == [1, 2, 3, &amp;quot;A&amp;quot;, &amp;quot;B&amp;quot;, &amp;quot;C&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
llListSort([1, &amp;quot;C&amp;quot;, 3, &amp;quot;A&amp;quot;, 2, &amp;quot;B&amp;quot;], 2, TRUE) == [1, &amp;quot;C&amp;quot;, 2, &amp;quot;B&amp;quot;, 3, &amp;quot;A&amp;quot;]&amp;lt;/pre&amp;gt;&lt;br /&gt;
|caveats=A bubble sort is a sorting algorithm with a Big O of N*N. Why Linden Labs did not use a N*log(N) sorting algorithm such as [http://en.wikipedia.org/wiki/Heapsort Heap Sort] or [http://en.wikipedia.org/wiki/Mergesort Merge Sort] is unkown...&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&lt;br /&gt;
&amp;lt;Pre&amp;gt;&lt;br /&gt;
list numbers = [3, &amp;quot;three&amp;quot;, 2, &amp;quot;two&amp;quot;, 1, &amp;quot;one&amp;quot;];&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llOwnerSay(llDumpList2String(numbers, &amp;quot;,&amp;quot;));&lt;br /&gt;
        // Object: 3,three,2,two,1,one&lt;br /&gt;
        numbers = llListSort(numbers, 2, TRUE);&lt;br /&gt;
        llOwnerSay(llDumpList2String(numbers, &amp;quot;,&amp;quot;));&lt;br /&gt;
        // Object: 1,one,2,two,3,three&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/Pre&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions&lt;br /&gt;
|also_events&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_articles&lt;br /&gt;
|notes&lt;br /&gt;
|permission&lt;br /&gt;
|negative_index&lt;br /&gt;
|sort=ListSort&lt;br /&gt;
|cat1=List&lt;br /&gt;
|cat2&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
|location=lsa_bubble_sort(): &#039;linden\indra\lscript\lscript_alloc.h&#039;&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Core Taurog</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlList2ListStrided&amp;diff=33131</id>
		<title>LlList2ListStrided</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlList2ListStrided&amp;diff=33131"/>
		<updated>2007-09-27T12:37:18Z</updated>

		<summary type="html">&lt;p&gt;Core Taurog: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Function/negative index|true|start|end|stride}}{{LSL_Function&lt;br /&gt;
|func_id=198|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|func=llList2ListStrided|return_type=list|p1_type=list|p1_name=src|p2_type=integer|p2_name=start|p3_type=integer|p3_name=end|p4_type=integer|p4_name=stride&lt;br /&gt;
|func_footnote&lt;br /&gt;
|func_desc&lt;br /&gt;
|return_text=of all the entries whose index is a multiple of &#039;&#039;&#039;stride&#039;&#039;&#039; in the range &#039;&#039;&#039;start&#039;&#039;&#039; to &#039;&#039;&#039;end&#039;&#039;&#039;.&lt;br /&gt;
|spec&lt;br /&gt;
|caveats&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&lt;br /&gt;
&amp;lt;Pre&amp;gt;&lt;br /&gt;
list menu = [&amp;quot;1&amp;quot;, &amp;quot;one&amp;quot;, &amp;quot;2&amp;quot;, &amp;quot;two&amp;quot;, &amp;quot;3&amp;quot;, &amp;quot;three&amp;quot;];&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llListen(10, &amp;quot;&amp;quot;, llGetOwner(), &amp;quot;&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    touch_start(integer detected)&lt;br /&gt;
    {&lt;br /&gt;
        list buttons = llList2ListStrided(menu, 0, -1, 2);&lt;br /&gt;
        llDialog(llDetectedKey(0), &amp;quot;choose a number&amp;quot;, buttons, 10);&lt;br /&gt;
    }&lt;br /&gt;
    listen(integer channel, string obj, key id, string message)&lt;br /&gt;
    {&lt;br /&gt;
        integer index = llListFindList(menu, [message]);&lt;br /&gt;
        if (index != -1)&lt;br /&gt;
        {&lt;br /&gt;
            llOwnerSay(&amp;quot;you chose &amp;quot; + llList2String(menu, index + 1) + &amp;quot; (&amp;quot; + message + &amp;quot;)&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/Pre&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions&lt;br /&gt;
|also_events&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_articles&lt;br /&gt;
|notes&lt;br /&gt;
|permission&lt;br /&gt;
|negative_index&lt;br /&gt;
|sort=List2ListStrided&lt;br /&gt;
|cat1=List&lt;br /&gt;
|cat2&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Core Taurog</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlRequestPermissions&amp;diff=33130</id>
		<title>LlRequestPermissions</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlRequestPermissions&amp;diff=33130"/>
		<updated>2007-09-27T12:29:42Z</updated>

		<summary type="html">&lt;p&gt;Core Taurog: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Function&lt;br /&gt;
|func=llRequestPermissions|sort=RequestPermissions&lt;br /&gt;
|func_id=136|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|p1_type=key|p1_name=agent|p1_desc=Avatar key&lt;br /&gt;
|p2_type=integer|p2_name=perm|p2_desc=Permission mask (bitfield containing the permissions to request).&lt;br /&gt;
|func_desc=Ask agent for permission to run certain classes of functions.&lt;br /&gt;
|return_text&lt;br /&gt;
|spec&lt;br /&gt;
|caveats=&lt;br /&gt;
*Permissions do not accumulate.&lt;br /&gt;
**If a permission was requested with a previous call to this function and granted, then in subsequent call was not requested, that permission is released (lost).&lt;br /&gt;
*Scripts may hold permissions for only one agent at a time. To hold permissions for multiple agents you must use more then one script.&lt;br /&gt;
|examples=Request permission to animate an avatar&lt;br /&gt;
&amp;lt;Pre&amp;gt;&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    touch_start(integer detected)&lt;br /&gt;
    {&lt;br /&gt;
        llRequestPermissions(llDetectedKey(0), PERMISSION_TRIGGER_ANIMATION);&lt;br /&gt;
    }&lt;br /&gt;
    run_time_permissions(integer perm)&lt;br /&gt;
    {&lt;br /&gt;
        if (perm &amp;amp; PERMISSION_TRIGGER_ANIMATION)&lt;br /&gt;
        {&lt;br /&gt;
            llStartAnimation(&amp;quot;sit&amp;quot;);&lt;br /&gt;
            llOwnerSay(&amp;quot;animation will end in 5 seconds&amp;quot;);&lt;br /&gt;
            llSetTimerEvent(5.0);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    timer()&lt;br /&gt;
    {&lt;br /&gt;
        llSetTimerEvent(0.0);&lt;br /&gt;
        llStopAnimation(&amp;quot;sit&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/Pre&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_events={{LSL DefineRow||{{LSLG|run_time_permissions}}|Permission receiver event}}&lt;br /&gt;
|also_functions={{LSL DefineRow||{{LSLG|llGetPermissions}}|Get the permissions granted}}&lt;br /&gt;
{{LSL DefineRow||{{LSLG|llGetPermissionsKey}}|Get the avatar who granted permissions.}}&lt;br /&gt;
|also_articles={{LSL DefineRow||{{LSLGC|Permissions/Script|Script permissions}}|}}&lt;br /&gt;
|notes = A dialog is presented to the agent to grant these permissions except for a few cases:&lt;br /&gt;
* If agent is sitting on object - Control and Camera tracking permissions are granted without notification upon request.&lt;br /&gt;
* If object is attached to agent - Control and Attach permissions are granted without notification upon request.&lt;br /&gt;
Regardless if a dialog is displayed you should always use the {{LSLG|run_time_permissions}} event instead of depending upon this quirk.&lt;br /&gt;
|constants={{LSL Constants/Permissions}}&lt;br /&gt;
|cat1=Permissions/Script&lt;br /&gt;
|cat2=Dialog&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
|cat5&lt;br /&gt;
|cat6&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Core Taurog</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlRemoveInventory&amp;diff=33129</id>
		<title>LlRemoveInventory</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlRemoveInventory&amp;diff=33129"/>
		<updated>2007-09-27T12:27:30Z</updated>

		<summary type="html">&lt;p&gt;Core Taurog: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Function/inventory|item|uuid=false|type}}{{LSL_Function&lt;br /&gt;
|func_id=151|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|func=llRemoveInventory|p1_type=string|p1_name=item&lt;br /&gt;
|func_footnote&lt;br /&gt;
|func_desc=Remove the named inventory &#039;&#039;&#039;item&#039;&#039;&#039;&lt;br /&gt;
|return_text&lt;br /&gt;
|spec&lt;br /&gt;
|caveats&lt;br /&gt;
|constants&lt;br /&gt;
|examples=Remove the current script from the object&lt;br /&gt;
&amp;lt;Pre&amp;gt;&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llRemoveInventory(llGetScriptName());&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/Pre&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions&lt;br /&gt;
|also_events&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_articles&lt;br /&gt;
|notes&lt;br /&gt;
|permission&lt;br /&gt;
|negative_index&lt;br /&gt;
|sort=RemoveInventory&lt;br /&gt;
|cat1=Inventory&lt;br /&gt;
|cat2&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Core Taurog</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlSetLinkTexture&amp;diff=33128</id>
		<title>LlSetLinkTexture</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlSetLinkTexture&amp;diff=33128"/>
		<updated>2007-09-27T12:19:38Z</updated>

		<summary type="html">&lt;p&gt;Core Taurog: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Function/inventory|texture|uuid=true|type=texture}}{{LSL Function/face|face}}{{LSL Function/link|linknumber|}}{{LSL_Function&lt;br /&gt;
|func_id=329|func_sleep=0.2|func_energy=10.0&lt;br /&gt;
|func=llSetLinkTexture&lt;br /&gt;
|p1_type=integer|p1_name=linknumber&lt;br /&gt;
|p2_type=string|p2_name=texture&lt;br /&gt;
|p3_type=integer|p3_name=face&lt;br /&gt;
|func_footnote&lt;br /&gt;
|func_desc=If a task exists in the link chain at &#039;&#039;&#039;linknumber&#039;&#039;&#039;, set &#039;&#039;&#039;texture&#039;&#039;&#039; to &#039;&#039;&#039;face&#039;&#039;&#039;&lt;br /&gt;
|return_text&lt;br /&gt;
|spec&lt;br /&gt;
|sort=SetLinkTexture&lt;br /&gt;
|caveats&lt;br /&gt;
|constants&lt;br /&gt;
|examples=Cover a link set in bark (from the library)&lt;br /&gt;
&amp;lt;Pre&amp;gt;&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    touch_start(integer detected)&lt;br /&gt;
    {&lt;br /&gt;
        llSetLinkTexture(LINK_SET, &amp;quot;66bf4030-04f9-a808-43ab-b48b6aeb6456&amp;quot;, ALL_SIDES);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/Pre&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions=&lt;br /&gt;
{{LSL DefineRow||[[llSetLinkAlpha]]|}}&lt;br /&gt;
{{LSL DefineRow||[[llSetLinkColor]]|}}&lt;br /&gt;
{{LSL DefineRow||[[llSetLinkPrimitiveParams]]|}}&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_events&lt;br /&gt;
|also_articles&lt;br /&gt;
|notes&lt;br /&gt;
|deprecated&lt;br /&gt;
|cat1=Texture&lt;br /&gt;
|cat2&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Core Taurog</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlSetLinkColor&amp;diff=33127</id>
		<title>LlSetLinkColor</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlSetLinkColor&amp;diff=33127"/>
		<updated>2007-09-27T12:17:34Z</updated>

		<summary type="html">&lt;p&gt;Core Taurog: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Function/color|color}}{{LSL_Function/face|face|}}{{LSL Function/link|linknumber|}}{{LSL_Function&lt;br /&gt;
|func_id=140|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|func=llSetLinkColor&lt;br /&gt;
|p1_type=integer|p1_name=linknumber&lt;br /&gt;
|p2_type=vector|p2_name=color&lt;br /&gt;
|p3_type=integer|p3_name=face&lt;br /&gt;
|func_footnote&lt;br /&gt;
|func_desc=If a task exists in the link chain at &#039;&#039;&#039;linknumber&#039;&#039;&#039;, set &#039;&#039;&#039;face&#039;&#039;&#039; to &#039;&#039;&#039;color&#039;&#039;&#039;&lt;br /&gt;
|return_text&lt;br /&gt;
|spec&lt;br /&gt;
|caveats&lt;br /&gt;
|constants&lt;br /&gt;
|examples=Turn a link set green&lt;br /&gt;
&amp;lt;Pre&amp;gt;&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    touch_start(integer detected)&lt;br /&gt;
    {&lt;br /&gt;
        llSetLinkColor(LINK_SET, &amp;lt;0.0, 1.0, 0.0&amp;gt;, ALL_SIDES);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/Pre&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions=&lt;br /&gt;
{{LSL DefineRow||[[llGetAlpha]]|Gets the prim&#039;s alpha}}&lt;br /&gt;
{{LSL DefineRow||[[llSetAlpha]]|Sets the prim&#039;s alpha}}&lt;br /&gt;
{{LSL DefineRow||[[llGetColor]]|Gets the prim&#039;s color}}&lt;br /&gt;
{{LSL DefineRow||[[llSetColor]]|Sets the prim&#039;s color}}&lt;br /&gt;
{{LSL DefineRow||[[llSetLinkAlpha]]|}}&lt;br /&gt;
{{LSL DefineRow||[[llSetLinkTexture]]|}}&lt;br /&gt;
{{LSL DefineRow||[[llSetLinkPrimitiveParams]]|}}&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_events={{LSL DefineRow||[[changed]]|[[CHANGED_COLOR]]}}&lt;br /&gt;
|also_articles&lt;br /&gt;
|notes&lt;br /&gt;
|deprecated&lt;br /&gt;
|cat1&lt;br /&gt;
|cat2&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Core Taurog</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlSetLinkAlpha&amp;diff=33126</id>
		<title>LlSetLinkAlpha</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlSetLinkAlpha&amp;diff=33126"/>
		<updated>2007-09-27T12:14:51Z</updated>

		<summary type="html">&lt;p&gt;Core Taurog: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Function/face|face|}}{{LSL Function/link|linknumber|}}{{LSL_Function/alpha|alpha}}{{LSL_Function&lt;br /&gt;
|func_id=274|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|func=llSetLinkAlpha&lt;br /&gt;
|p1_type=integer|p1_name=linknumber&lt;br /&gt;
|p2_type=float|p2_name=alpha&lt;br /&gt;
|p3_type=integer|p3_name=face&lt;br /&gt;
|func_footnote&lt;br /&gt;
|func_desc=If a prim exists in the link chain at &#039;&#039;&#039;linknumber&#039;&#039;&#039;, set &#039;&#039;&#039;face&#039;&#039;&#039; to &#039;&#039;&#039;alpha&#039;&#039;&#039;&lt;br /&gt;
|return_text&lt;br /&gt;
|spec&lt;br /&gt;
|caveats&lt;br /&gt;
|constants&lt;br /&gt;
|examples=Make the entire object disappear for 5 seconds&lt;br /&gt;
&amp;lt;Pre&amp;gt;&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    touch_start(integer detected)&lt;br /&gt;
    {&lt;br /&gt;
        llSetLinkAlpha(LINK_SET, 0.0, ALL_SIDES);&lt;br /&gt;
        llSetTimerEvent(5.0);&lt;br /&gt;
    }&lt;br /&gt;
    timer()&lt;br /&gt;
    {&lt;br /&gt;
        llSetLinkAlpha(LINK_SET, 1.0, ALL_SIDES);&lt;br /&gt;
        llSetTimerEvent(0.0);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/Pre&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions=&lt;br /&gt;
{{LSL DefineRow||[[llGetAlpha]]|Gets the prim&#039;s alpha}}&lt;br /&gt;
{{LSL DefineRow||[[llSetAlpha]]|Sets the prim&#039;s alpha}}&lt;br /&gt;
{{LSL DefineRow||[[llGetColor]]|Gets the prim&#039;s color}}&lt;br /&gt;
{{LSL DefineRow||[[llSetColor]]|Sets the prim&#039;s color}}&lt;br /&gt;
{{LSL DefineRow||[[llSetLinkColor]]|}}&lt;br /&gt;
{{LSL DefineRow||[[llSetLinkTexture]]|}}&lt;br /&gt;
{{LSL DefineRow||[[llSetLinkPrimitiveParams]]|}}&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_events={{LSL DefineRow||[[changed]]|[[CHANGED_COLOR]]}}&lt;br /&gt;
|also_articles&lt;br /&gt;
|notes&lt;br /&gt;
|deprecated&lt;br /&gt;
|cat1&lt;br /&gt;
|cat2&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Core Taurog</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlSetLinkAlpha&amp;diff=33125</id>
		<title>LlSetLinkAlpha</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlSetLinkAlpha&amp;diff=33125"/>
		<updated>2007-09-27T12:12:15Z</updated>

		<summary type="html">&lt;p&gt;Core Taurog: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Function/face|face|}}{{LSL Function/link|linknumber|}}{{LSL_Function/alpha|alpha}}{{LSL_Function&lt;br /&gt;
|func_id=274|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|func=llSetLinkAlpha&lt;br /&gt;
|p1_type=integer|p1_name=linknumber&lt;br /&gt;
|p2_type=float|p2_name=alpha&lt;br /&gt;
|p3_type=integer|p3_name=face&lt;br /&gt;
|func_footnote&lt;br /&gt;
|func_desc=If a prim exists in the link chain at &#039;&#039;&#039;linknumber&#039;&#039;&#039;, set &#039;&#039;&#039;face&#039;&#039;&#039; to &#039;&#039;&#039;alpha&#039;&#039;&#039;&lt;br /&gt;
|return_text&lt;br /&gt;
|spec&lt;br /&gt;
|caveats&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&lt;br /&gt;
&amp;lt;Pre&amp;gt;&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    touch_start(integer detected)&lt;br /&gt;
    {&lt;br /&gt;
        llSetLinkAlpha(LINK_SET, 0.0, ALL_SIDES);&lt;br /&gt;
        llSetTimerEvent(5.0);&lt;br /&gt;
    }&lt;br /&gt;
    timer()&lt;br /&gt;
    {&lt;br /&gt;
        llSetLinkAlpha(LINK_SET, 1.0, ALL_SIDES);&lt;br /&gt;
        llSetTimerEvent(0.0);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/Pre&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions=&lt;br /&gt;
{{LSL DefineRow||[[llGetAlpha]]|Gets the prim&#039;s alpha}}&lt;br /&gt;
{{LSL DefineRow||[[llSetAlpha]]|Sets the prim&#039;s alpha}}&lt;br /&gt;
{{LSL DefineRow||[[llGetColor]]|Gets the prim&#039;s color}}&lt;br /&gt;
{{LSL DefineRow||[[llSetColor]]|Sets the prim&#039;s color}}&lt;br /&gt;
{{LSL DefineRow||[[llSetLinkColor]]|}}&lt;br /&gt;
{{LSL DefineRow||[[llSetLinkTexture]]|}}&lt;br /&gt;
{{LSL DefineRow||[[llSetLinkPrimitiveParams]]|}}&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_events={{LSL DefineRow||[[changed]]|[[CHANGED_COLOR]]}}&lt;br /&gt;
|also_articles&lt;br /&gt;
|notes&lt;br /&gt;
|deprecated&lt;br /&gt;
|cat1&lt;br /&gt;
|cat2&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Core Taurog</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlSetSitText&amp;diff=33124</id>
		<title>LlSetSitText</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlSetSitText&amp;diff=33124"/>
		<updated>2007-09-27T12:00:56Z</updated>

		<summary type="html">&lt;p&gt;Core Taurog: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Function&lt;br /&gt;
|func_id=242|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|func=llSetSitText|p1_type=string|p1_name=text&lt;br /&gt;
|func_footnote=&#039;&#039;&#039;text&#039;&#039;&#039; is limited to 9 characters.&lt;br /&gt;
|func_desc=Displays &#039;&#039;&#039;text&#039;&#039;&#039; rather than sit in pie menu&lt;br /&gt;
|return_text&lt;br /&gt;
|spec&lt;br /&gt;
|caveats&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&lt;br /&gt;
&amp;lt;Pre&amp;gt;&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llSetSitText(&amp;quot;Sit here&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/Pre&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions=&lt;br /&gt;
{{LSL DefineRow||[[llSitTarget]]|}}&lt;br /&gt;
{{LSL DefineRow||[[llSetTouchText]]|}}&lt;br /&gt;
|also_events&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_articles&lt;br /&gt;
|notes&lt;br /&gt;
|permission&lt;br /&gt;
|negative_index&lt;br /&gt;
|cat1=Pie Menu&lt;br /&gt;
|cat2=Prim&lt;br /&gt;
|cat3=Sit&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Core Taurog</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlSetTouchText&amp;diff=33123</id>
		<title>LlSetTouchText</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlSetTouchText&amp;diff=33123"/>
		<updated>2007-09-27T12:00:04Z</updated>

		<summary type="html">&lt;p&gt;Core Taurog: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Function&lt;br /&gt;
|func=llSetTouchText&lt;br /&gt;
|sort=SetTouchText&lt;br /&gt;
|func_id=241|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|p1_type=string|p1_name=text&lt;br /&gt;
|func_footnote=&#039;&#039;&#039;text&#039;&#039;&#039; is limited to 9 characters.&amp;lt;br/&amp;gt;Changing the text does not effect the behavior.&lt;br /&gt;
|func_desc=Displays &#039;&#039;&#039;text&#039;&#039;&#039; in pie menu rather then Touch&lt;br /&gt;
|return_text&lt;br /&gt;
|spec&lt;br /&gt;
|caveats&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&lt;br /&gt;
&amp;lt;Pre&amp;gt;&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llSetTouchText(&amp;quot;Touch me!&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    touch_start(integer detected)&lt;br /&gt;
    {&lt;br /&gt;
        llSay(0, &amp;quot;you touched me!&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/Pre&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions=*{{LSLG|llSetSitText}}&lt;br /&gt;
|also_events&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_articles=*{{LSLGC|Touch}}&lt;br /&gt;
|notes&lt;br /&gt;
|permission&lt;br /&gt;
|negative_index&lt;br /&gt;
|sort=SetTouchText&lt;br /&gt;
|cat1=Pie Menu&lt;br /&gt;
|cat2&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Core Taurog</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlStopAnimation&amp;diff=33120</id>
		<title>LlStopAnimation</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlStopAnimation&amp;diff=33120"/>
		<updated>2007-09-27T11:57:43Z</updated>

		<summary type="html">&lt;p&gt;Core Taurog: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Function/permission|PERMISSION_TRIGGER_ANIMATION}}{{LSL_Function/inventory|anim|uuid=true|type=animation}}{{LSL_Function&lt;br /&gt;
|func_id=130|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|func=llStopAnimation|sort=StopAnimation&lt;br /&gt;
|p1_type=string|p1_name=anim&lt;br /&gt;
|func_footnote&lt;br /&gt;
|func_desc=Stop animation &#039;&#039;&#039;anim&#039;&#039;&#039; for agent that granted [[PERMISSION_TRIGGER_ANIMATION]] if the permission has not been revoked.&lt;br /&gt;
|return_text&lt;br /&gt;
|spec&lt;br /&gt;
|caveats&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&lt;br /&gt;
&amp;lt;Pre&amp;gt;&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    touch_start(integer detected)&lt;br /&gt;
    {&lt;br /&gt;
        llRequestPermissions(llDetectedKey(0), PERMISSION_TRIGGER_ANIMATION);&lt;br /&gt;
    }&lt;br /&gt;
    run_time_permissions(integer perm)&lt;br /&gt;
    {&lt;br /&gt;
        if (perm &amp;amp; PERMISSION_TRIGGER_ANIMATION)&lt;br /&gt;
        {&lt;br /&gt;
            llStartAnimation(&amp;quot;sit&amp;quot;);&lt;br /&gt;
            llOwnerSay(&amp;quot;animation will end in 5 seconds&amp;quot;);&lt;br /&gt;
            llSetTimerEvent(5.0);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    timer()&lt;br /&gt;
    {&lt;br /&gt;
        llSetTimerEvent(0.0);&lt;br /&gt;
        llStopAnimation(&amp;quot;sit&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/Pre&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_events&lt;br /&gt;
|also_articles&lt;br /&gt;
|notes&lt;br /&gt;
|inventory&lt;br /&gt;
|negative_index&lt;br /&gt;
|cat1=Animation&lt;br /&gt;
|cat2&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Core Taurog</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlStartAnimation&amp;diff=33119</id>
		<title>LlStartAnimation</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlStartAnimation&amp;diff=33119"/>
		<updated>2007-09-27T11:56:43Z</updated>

		<summary type="html">&lt;p&gt;Core Taurog: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Function/permission|PERMISSION_TRIGGER_ANIMATION}}{{LSL_Function/inventory|anim|uuid=false|type}}{{LSL_Function&lt;br /&gt;
|func_id=129|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|func=llStartAnimation|sort=StartAnimation&lt;br /&gt;
|p1_type=string|p1_name=anim&lt;br /&gt;
|func_footnote&lt;br /&gt;
|func_desc=Start animation &#039;&#039;&#039;anim&#039;&#039;&#039; for agent that granted [[PERMISSION_TRIGGER_ANIMATION]] if the permission has not been revoked.&lt;br /&gt;
|return_text&lt;br /&gt;
|spec&lt;br /&gt;
|caveats&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&lt;br /&gt;
&amp;lt;Pre&amp;gt;&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    touch_start(integer detected)&lt;br /&gt;
    {&lt;br /&gt;
        llRequestPermissions(llDetectedKey(0), PERMISSION_TRIGGER_ANIMATION);&lt;br /&gt;
    }&lt;br /&gt;
    run_time_permissions(integer perm)&lt;br /&gt;
    {&lt;br /&gt;
        if (perm &amp;amp; PERMISSION_TRIGGER_ANIMATION)&lt;br /&gt;
        {&lt;br /&gt;
            llStartAnimation(&amp;quot;sit&amp;quot;);&lt;br /&gt;
            llOwnerSay(&amp;quot;animation will end in 5 seconds&amp;quot;);&lt;br /&gt;
            llSetTimerEvent(5.0);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    timer()&lt;br /&gt;
    {&lt;br /&gt;
        llSetTimerEvent(0.0);&lt;br /&gt;
        llStopAnimation(&amp;quot;sit&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/Pre&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions={{LSL DefineRow||[[llStopAnimation]]|}}&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_events&lt;br /&gt;
|also_articles={{LSL DefineRow||[[Internal_Animations]]|lists internal Animations always available}}&lt;br /&gt;
|notes&lt;br /&gt;
|cat1=Animation&lt;br /&gt;
|cat2&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Core Taurog</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=State_exit&amp;diff=33117</id>
		<title>State exit</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=State_exit&amp;diff=33117"/>
		<updated>2007-09-27T11:50:04Z</updated>

		<summary type="html">&lt;p&gt;Core Taurog: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Event&lt;br /&gt;
|event_id=1|event_delay|event=state_exit&lt;br /&gt;
|event_desc=Triggered on any state transition&lt;br /&gt;
|constants&lt;br /&gt;
|spec&lt;br /&gt;
|caveats&lt;br /&gt;
|examples=&lt;br /&gt;
&amp;lt;Pre&amp;gt;&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llOwnerSay(&amp;quot;in default state&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    touch_start(integer detected)&lt;br /&gt;
    {&lt;br /&gt;
        state other;&lt;br /&gt;
    }&lt;br /&gt;
    state_exit()&lt;br /&gt;
    {&lt;br /&gt;
        llOwnerSay(&amp;quot;leaving default state&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
state other&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llOwnerSay(&amp;quot;in state \&amp;quot;other\&amp;quot;&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    touch_start(integer detected)&lt;br /&gt;
    {&lt;br /&gt;
        state default;&lt;br /&gt;
    }&lt;br /&gt;
    state_exit()&lt;br /&gt;
    {&lt;br /&gt;
        llOwnerSay(&amp;quot;leaving state \&amp;quot;other\&amp;quot;&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/Pre&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_header&lt;br /&gt;
|also_events&lt;br /&gt;
|also_functions&lt;br /&gt;
|also_articles&lt;br /&gt;
|also_footer&lt;br /&gt;
|notes&lt;br /&gt;
|mode&lt;br /&gt;
|deprecated&lt;br /&gt;
|cat1=Script&lt;br /&gt;
|cat2&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Core Taurog</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlTarget&amp;diff=33114</id>
		<title>LlTarget</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlTarget&amp;diff=33114"/>
		<updated>2007-09-27T11:43:51Z</updated>

		<summary type="html">&lt;p&gt;Core Taurog: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Function&lt;br /&gt;
|func_id=66|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|func=llTarget|sort=Target&lt;br /&gt;
|return_type=integer&lt;br /&gt;
|p1_type=vector|p1_name=position&lt;br /&gt;
|p2_type=float|p2_name=range&lt;br /&gt;
|func_footnote=A similar function exists for rotations: {{LSLG|llRotTarget}}&amp;lt;br/&amp;gt;This function does not move the object, to do that use {{LSLG|llSetPos}} or {{LSLG|llMoveToTarget}}.&lt;br /&gt;
|func_desc=This function is to have the script know when it has reached a position.&amp;lt;br/&amp;gt;It registers a &#039;&#039;&#039;position&#039;&#039;&#039; with a &#039;&#039;&#039;range&#039;&#039;&#039; that triggers {{LSLG|at_target}} and {{LSLG|not_at_target}} events continuously until unregistered.&lt;br /&gt;
|return_text=that is the handle to unregister the target with {{LSLG|llTargetRemove}}.&lt;br /&gt;
|spec&lt;br /&gt;
|caveats&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&lt;br /&gt;
&amp;lt;Pre&amp;gt;&lt;br /&gt;
integer target_id;&lt;br /&gt;
vector target_pos;&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        target_pos = llGetPos() + &amp;lt;1.0, 0.0, 0.0&amp;gt;;&lt;br /&gt;
        target_id = llTarget(target_pos, 0.5);&lt;br /&gt;
    }&lt;br /&gt;
    at_target(integer tnum, vector targetpos, vector ourpos)&lt;br /&gt;
    {&lt;br /&gt;
        if (tnum == target_id)&lt;br /&gt;
        {&lt;br /&gt;
            llOwnerSay(&amp;quot;object is within range of target&amp;quot;);&lt;br /&gt;
            llOwnerSay(&amp;quot;target position: &amp;quot; + (string)targetpos + &amp;quot;, object is now at: &amp;quot; + (string)ourpos);&lt;br /&gt;
            llOwnerSay(&amp;quot;this is &amp;quot; + (string)llVecDist(targetpos, ourpos) + &amp;quot; meters from the target&amp;quot;);&lt;br /&gt;
            llTargetRemove(target_id);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    not_at_target()&lt;br /&gt;
    {&lt;br /&gt;
        llOwnerSay(&lt;br /&gt;
            &amp;quot;not there yet - object is at &amp;quot; + (string)llGetPos() + &lt;br /&gt;
            &amp;quot;, which is &amp;quot; + (string)llVecDist(target_pos, llGetPos()) + &lt;br /&gt;
            &amp;quot; meters from the target (&amp;quot; + (string)target_pos + &amp;quot;)&amp;quot;&lt;br /&gt;
        );&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/Pre&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions=&lt;br /&gt;
{{LSL DefineRow||[[llTargetRemove]]|Stop a target position}}&lt;br /&gt;
{{LSL DefineRow||[[llRotTarget]]|Setup a target rotation}}&lt;br /&gt;
{{LSL DefineRow||[[llRotTargetRemove]]|Stop a target rotation}}&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_events=&lt;br /&gt;
{{LSL DefineRow|[[at_target]]|[[not_at_target]]|positional target events}}&lt;br /&gt;
{{LSL DefineRow|[[at_rot_target]]|[[not_at_rot_target]]|rotational target events}}&lt;br /&gt;
|also_articles&lt;br /&gt;
|notes&lt;br /&gt;
|cat1=Target&lt;br /&gt;
|cat2=Physics&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Core Taurog</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=State_entry&amp;diff=33115</id>
		<title>State entry</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=State_entry&amp;diff=33115"/>
		<updated>2007-09-27T11:43:38Z</updated>

		<summary type="html">&lt;p&gt;Core Taurog: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Event&lt;br /&gt;
|event_id=0|event_delay|event=state_entry&lt;br /&gt;
|event_desc=Triggered on any state transition and startup&lt;br /&gt;
|constants&lt;br /&gt;
|spec=&lt;br /&gt;
=== Triggered ===&lt;br /&gt;
#Script save or adding to object&lt;br /&gt;
#State change&lt;br /&gt;
#*A [[state_exit]] is triggered in the old state and the [[state_entry]] is triggered in the new state. All other events in the queue are lost as result of the state change.&lt;br /&gt;
#On script reset, either by client or [[llResetScript]]/[[llResetOtherScript]]&lt;br /&gt;
#When the object is rezzed &#039;&#039;without&#039;&#039; a saved script status&lt;br /&gt;
#*If it was a copy taken from inworld&lt;br /&gt;
#*If the event had not been triggered due to no-script land.&lt;br /&gt;
&lt;br /&gt;
=== Not Triggered ===&lt;br /&gt;
#When the object is rezzed &#039;&#039;with&#039;&#039; saved script status&lt;br /&gt;
#*Use [[on_rez]] event in this situation&lt;br /&gt;
|caveats&lt;br /&gt;
|examples=&lt;br /&gt;
&amp;lt;Pre&amp;gt;&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llSay(0, &amp;quot;Hello, Avatar!&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/Pre&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_header&lt;br /&gt;
|also_events={{LSL DefineRow||[[on_rez]]|Triggered when the object is rezzed}}&lt;br /&gt;
{{LSL DefineRow||[[state_exit]]|Triggered when the state is exited at state change}}&lt;br /&gt;
|also_functions={{LSL DefineRow||[[llResetScript]]|Resets the script}}&lt;br /&gt;
{{LSL DefineRow||[[llResetOtherScript]]|Resets another script in the prim}}&lt;br /&gt;
{{LSL DefineRow||[[llGetStartParameter]]|The [[on_rez]] parameter (or [[llRemoteLoadScriptPin]] parameter)}}&lt;br /&gt;
|also_articles&lt;br /&gt;
|also_footer&lt;br /&gt;
|notes&lt;br /&gt;
|mode&lt;br /&gt;
|deprecated&lt;br /&gt;
|cat1=Script&lt;br /&gt;
|cat2&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Core Taurog</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlTargetRemove&amp;diff=33112</id>
		<title>LlTargetRemove</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlTargetRemove&amp;diff=33112"/>
		<updated>2007-09-27T11:42:22Z</updated>

		<summary type="html">&lt;p&gt;Core Taurog: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Function&lt;br /&gt;
|func_id=67|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|func=llTargetRemove&lt;br /&gt;
|p1_type=integer|p1_name=number&lt;br /&gt;
|func_footnote&lt;br /&gt;
|func_desc=Removes positional target &#039;&#039;&#039;number&#039;&#039;&#039; registered with {{LSLG|llTarget}}&lt;br /&gt;
|return_text&lt;br /&gt;
|spec&lt;br /&gt;
|caveats&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&lt;br /&gt;
&amp;lt;Pre&amp;gt;&lt;br /&gt;
integer target_id;&lt;br /&gt;
vector target_pos;&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        target_pos = llGetPos() + &amp;lt;1.0, 0.0, 0.0&amp;gt;;&lt;br /&gt;
        target_id = llTarget(target_pos, 0.5);&lt;br /&gt;
    }&lt;br /&gt;
    at_target(integer tnum, vector targetpos, vector ourpos)&lt;br /&gt;
    {&lt;br /&gt;
        if (tnum == target_id)&lt;br /&gt;
        {&lt;br /&gt;
            llOwnerSay(&amp;quot;object is within range of target&amp;quot;);&lt;br /&gt;
            llOwnerSay(&amp;quot;target position: &amp;quot; + (string)targetpos + &amp;quot;, object is now at: &amp;quot; + (string)ourpos);&lt;br /&gt;
            llOwnerSay(&amp;quot;this is &amp;quot; + (string)llVecDist(targetpos, ourpos) + &amp;quot; meters from the target&amp;quot;);&lt;br /&gt;
            llTargetRemove(target_id);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    not_at_target()&lt;br /&gt;
    {&lt;br /&gt;
        llOwnerSay(&lt;br /&gt;
            &amp;quot;not there yet - object is at &amp;quot; + (string)llGetPos() + &lt;br /&gt;
            &amp;quot;, which is &amp;quot; + (string)llVecDist(target_pos, llGetPos()) + &lt;br /&gt;
            &amp;quot; meters from the target (&amp;quot; + (string)target_pos + &amp;quot;)&amp;quot;&lt;br /&gt;
        );&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/Pre&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions=*{{LSLG|llTarget}}&lt;br /&gt;
*{{LSLG|llRotTarget}}&lt;br /&gt;
*{{LSLG|llRotTargetRemove}}&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_events=*{{LSLG|at_target}}&lt;br /&gt;
*{{LSLG|not_at_target}}&lt;br /&gt;
|also_articles&lt;br /&gt;
|notes&lt;br /&gt;
|cat1=Target&lt;br /&gt;
|cat2=Physics&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Core Taurog</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Not_at_target&amp;diff=33111</id>
		<title>Not at target</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Not_at_target&amp;diff=33111"/>
		<updated>2007-09-27T11:41:57Z</updated>

		<summary type="html">&lt;p&gt;Core Taurog: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Event&lt;br /&gt;
|event_id=17&lt;br /&gt;
|event_delay&lt;br /&gt;
|event=not_at_target&lt;br /&gt;
|event_desc=Triggered if an object has not yet reached the the target set by the call to [[llTarget]].&lt;br /&gt;
|event_footnote=This event may be triggered multiple times if the target has not been reached.&lt;br /&gt;
|constants&lt;br /&gt;
|spec&lt;br /&gt;
|caveats&lt;br /&gt;
|examples=&lt;br /&gt;
&amp;lt;Pre&amp;gt;&lt;br /&gt;
integer target_id;&lt;br /&gt;
vector target_pos;&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        target_pos = llGetPos() + &amp;lt;1.0, 0.0, 0.0&amp;gt;;&lt;br /&gt;
        target_id = llTarget(target_pos, 0.5);&lt;br /&gt;
    }&lt;br /&gt;
    at_target(integer tnum, vector targetpos, vector ourpos)&lt;br /&gt;
    {&lt;br /&gt;
        if (tnum == target_id)&lt;br /&gt;
        {&lt;br /&gt;
            llOwnerSay(&amp;quot;object is within range of target&amp;quot;);&lt;br /&gt;
            llOwnerSay(&amp;quot;target position: &amp;quot; + (string)targetpos + &amp;quot;, object is now at: &amp;quot; + (string)ourpos);&lt;br /&gt;
            llOwnerSay(&amp;quot;this is &amp;quot; + (string)llVecDist(targetpos, ourpos) + &amp;quot; meters from the target&amp;quot;);&lt;br /&gt;
            llTargetRemove(target_id);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    not_at_target()&lt;br /&gt;
    {&lt;br /&gt;
        llOwnerSay(&lt;br /&gt;
            &amp;quot;not there yet - object is at &amp;quot; + (string)llGetPos() + &lt;br /&gt;
            &amp;quot;, which is &amp;quot; + (string)llVecDist(target_pos, llGetPos()) + &lt;br /&gt;
            &amp;quot; meters from the target (&amp;quot; + (string)target_pos + &amp;quot;)&amp;quot;&lt;br /&gt;
        );&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/Pre&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_header&lt;br /&gt;
|also_events={{LSL DefineRow||[[at_target]]|}}&lt;br /&gt;
{{LSL DefineRow||[[at_rot_target]]|}}&lt;br /&gt;
{{LSL DefineRow||[[not_at_rot_target]]|}}&lt;br /&gt;
|also_functions={{LSL DefineRow||[[llTarget]]|Setup a target position}}&lt;br /&gt;
{{LSL DefineRow||[[llTargetRemove]]|Stop a target position}}&lt;br /&gt;
{{LSL DefineRow||[[llRotTarget]]|Setup a target rotation}}&lt;br /&gt;
{{LSL DefineRow||[[llRotTargetRemove]]|Stop a target rotation}}&lt;br /&gt;
|also_articles&lt;br /&gt;
|also_footer&lt;br /&gt;
|notes&lt;br /&gt;
|mode&lt;br /&gt;
|deprecated&lt;br /&gt;
|cat1=Target&lt;br /&gt;
|cat2&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Core Taurog</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlToLower&amp;diff=33109</id>
		<title>LlToLower</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlToLower&amp;diff=33109"/>
		<updated>2007-09-27T11:24:10Z</updated>

		<summary type="html">&lt;p&gt;Core Taurog: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Function&lt;br /&gt;
|func_id=98|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|func=llToLower&lt;br /&gt;
|return_type=string|p1_type=string|p1_name=src&lt;br /&gt;
|func_footnote&lt;br /&gt;
|func_desc&lt;br /&gt;
|return_text=that is &#039;&#039;&#039;src&#039;&#039;&#039; with all lower-case letters&lt;br /&gt;
|spec&lt;br /&gt;
|caveats&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&amp;lt;pre&amp;gt;&lt;br /&gt;
string msg = &amp;quot;I like CANDY!&amp;quot;;&lt;br /&gt;
string p = llToLower(msg);&lt;br /&gt;
llOwnerSay(p);//Will say &amp;quot;i like candy!&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions={{LSL DefineRow||[[llToUpper]]}}&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_events&lt;br /&gt;
|also_articles&lt;br /&gt;
|notes&lt;br /&gt;
|cat1=String&lt;br /&gt;
|cat2&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Core Taurog</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlToUpper&amp;diff=33108</id>
		<title>LlToUpper</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlToUpper&amp;diff=33108"/>
		<updated>2007-09-27T11:23:47Z</updated>

		<summary type="html">&lt;p&gt;Core Taurog: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Function&lt;br /&gt;
|func_id=97|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|func=llToUpper&lt;br /&gt;
|return_type=string|p1_type=string|p1_name=src&lt;br /&gt;
|func_footnote&lt;br /&gt;
|func_desc&lt;br /&gt;
|return_text=that is &#039;&#039;&#039;src&#039;&#039;&#039; with all upper-case characters.&lt;br /&gt;
|spec&lt;br /&gt;
|caveats&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&amp;lt;pre&amp;gt;&lt;br /&gt;
string msg = &amp;quot;I like candy!&amp;quot;;&lt;br /&gt;
string p = llToUpper(msg);&lt;br /&gt;
llOwnerSay(p);//Will say &amp;quot;I LIKE CANDY!&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions={{LSL DefineRow||[[llToLower]]}}&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_events&lt;br /&gt;
|also_articles&lt;br /&gt;
|notes=This may only work on characters in the ASCII7 range.&lt;br /&gt;
|cat1=String&lt;br /&gt;
|cat2&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Core Taurog</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Touch_end&amp;diff=33107</id>
		<title>Touch end</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Touch_end&amp;diff=33107"/>
		<updated>2007-09-27T11:23:26Z</updated>

		<summary type="html">&lt;p&gt;Core Taurog: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Event|event_id=4|event_delay|event=touch_end&lt;br /&gt;
|p1_type=integer|p1_name=num_detected|p1_desc&lt;br /&gt;
|event_desc=Triggered when agent stops clicking on task&lt;br /&gt;
|constants&lt;br /&gt;
|spec&lt;br /&gt;
|caveats&lt;br /&gt;
|examples=You can use numbers 0 through num_detected - 1 to get detected agent keys:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
float t;&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    touch_start(integer num_detected)&lt;br /&gt;
    {&lt;br /&gt;
        t = llGetTime();&lt;br /&gt;
    }&lt;br /&gt;
    touch_end(integer num_detected)&lt;br /&gt;
    {&lt;br /&gt;
        llOwnerSay((string)(llGetTime() - t) + &amp;quot; seconds between touch_start and touch_end&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_header&lt;br /&gt;
|also_events=&lt;br /&gt;
{{LSL DefineRow||[[touch_start]]|}}&lt;br /&gt;
{{LSL DefineRow||[[touch]]|}}&lt;br /&gt;
|also_functions=&lt;br /&gt;
{{LSL DefineRow||[[llPassTouches]]|}}&lt;br /&gt;
|also_articles&lt;br /&gt;
|also_footer&lt;br /&gt;
|notes&lt;br /&gt;
|mode&lt;br /&gt;
|deprecated&lt;br /&gt;
|cat1=Touch&lt;br /&gt;
|cat2=Detected&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4}}&lt;/div&gt;</summary>
		<author><name>Core Taurog</name></author>
	</entry>
</feed>