<?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=Niles+Argus</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=Niles+Argus"/>
	<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/wiki/Special:Contributions/Niles_Argus"/>
	<updated>2026-06-20T22:21:34Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Displayer_Script&amp;diff=1139792</id>
		<title>Displayer Script</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Displayer_Script&amp;diff=1139792"/>
		<updated>2011-04-09T04:50:16Z</updated>

		<summary type="html">&lt;p&gt;Niles Argus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overcomplicated C-c-c-c-ombo breaker. ==&lt;br /&gt;
I went ahead and way over complicated this script, but allows for a lot more functionality.&lt;br /&gt;
You can use way more than seven lines. &lt;br /&gt;
&lt;br /&gt;
[[llSetText]] is always limited to &#039;&#039;&#039;254 bytes&#039;&#039;&#039; and will be truncated as such. Be weary of this when using this script.&lt;br /&gt;
Essentially unlimited lines &#039;&#039;(until script memory runs out)&#039;&#039; is irrelevant due to SetText limits. &lt;br /&gt;
&lt;br /&gt;
Whatever, enjoy. -- [[User:Niles Argus]]&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
//Created by Niles Argus 2011. The safeParseToTokens(string String) function, is hella useful. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
string activationTrigger = &amp;quot;.&amp;quot;; //Used to activate the command line. Blank for none.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
string DEFAULT_SEPARATOR            =   &amp;quot; : &amp;quot;;&lt;br /&gt;
&lt;br /&gt;
integer ENC_PADDING                 =    0x0;&lt;br /&gt;
integer ENC_SQUARE_BRACKETS         =    0x1;&lt;br /&gt;
integer ENC_SQUIGLY_BRACKETS        =    0x4;&lt;br /&gt;
integer ENC_PARENTHESES             =    0x2;&lt;br /&gt;
integer ENC_ARROWS                  =    0x3;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
list encapsulatorReference = [&lt;br /&gt;
    0x0,    &amp;quot; &amp;quot;,    &amp;quot; &amp;quot;,&lt;br /&gt;
    0x1,    &amp;quot;[&amp;quot;,     &amp;quot;]&amp;quot;,&lt;br /&gt;
    0x2,    &amp;quot;(&amp;quot;,    &amp;quot;)&amp;quot;,&lt;br /&gt;
    0x3,    &amp;quot;&amp;lt;&amp;quot;,    &amp;quot;&amp;gt;&amp;quot;,&lt;br /&gt;
    0x4,    &amp;quot;{&amp;quot;,    &amp;quot;}&amp;quot;];&lt;br /&gt;
    &lt;br /&gt;
string buildEncapsulatorList(){&lt;br /&gt;
    string Title = &amp;quot;Encapsulators\n&amp;quot;;&lt;br /&gt;
    string Lines = &amp;quot;&amp;quot;;&lt;br /&gt;
    integer L = llGetListLength(encapsulatorReference)/3;&lt;br /&gt;
    while(~--L){&lt;br /&gt;
        Lines = &amp;quot;\t&amp;quot;+llList2String(encapsulatorReference, L*3)+&amp;quot;\t=&amp;gt;\t&amp;quot;+llList2CSV(llList2List(encapsulatorReference, L*3+1, L*3+2))+&amp;quot;\n&amp;quot;+Lines;&lt;br /&gt;
    }&lt;br /&gt;
    return Title+Lines;&lt;br /&gt;
}&lt;br /&gt;
    &lt;br /&gt;
integer registerNewEncapsulator(string Left, string Right){&lt;br /&gt;
    if(!~llListFindList(encapsulatorReference, [Left,Right])){&lt;br /&gt;
        integer nextInteger = (integer)llListStatistics(LIST_STAT_MAX, llList2ListStrided(encapsulatorReference, 0, -1, 3))+1;&lt;br /&gt;
        encapsulatorReference += [nextInteger, Left, Right];&lt;br /&gt;
        return nextInteger;&lt;br /&gt;
    }&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
string encapsulateString(integer Encapsulator, string String){&lt;br /&gt;
    integer    F;&lt;br /&gt;
    if(~(F=llListFindList(encapsulatorReference, [Encapsulator]))){&lt;br /&gt;
        return llList2String(encapsulatorReference, F+1)+String+llList2String(encapsulatorReference, F+2);&lt;br /&gt;
    }&lt;br /&gt;
    return String;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
list displayStrings = [&lt;br /&gt;
    //Title, String, Seperator, EncapsulatorId&lt;br /&gt;
];&lt;br /&gt;
integer displayStride = 4;&lt;br /&gt;
&lt;br /&gt;
editLine(integer Line, string Title, string String, string Sep, integer Enc){&lt;br /&gt;
    editLineTitle(Line, Title);&lt;br /&gt;
    editLineString(Line, String);&lt;br /&gt;
    editLineSeparator(Line, Sep);&lt;br /&gt;
    editLineEncapsulator(Line, Enc);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
addLine(string Title, string String, string Sep, integer Enc){&lt;br /&gt;
    displayStrings += [Title, String, Sep, Enc];&lt;br /&gt;
}&lt;br /&gt;
editLineTitle(integer Line, string Title){&lt;br /&gt;
    displayStrings = llListReplaceList(displayStrings, [Title], Line*displayStride, Line*displayStride);&lt;br /&gt;
}&lt;br /&gt;
editLineString(integer Line, string String){&lt;br /&gt;
    displayStrings = llListReplaceList(displayStrings, [String], Line*displayStride+1, Line*displayStride+1);&lt;br /&gt;
}&lt;br /&gt;
editLineSeparator(integer Line, string Sep){&lt;br /&gt;
    displayStrings = llListReplaceList(displayStrings, [Sep], Line*displayStride+2, Line*displayStride+2);&lt;br /&gt;
}&lt;br /&gt;
editLineEncapsulator(integer Line, integer Enc){&lt;br /&gt;
    displayStrings = llListReplaceList(displayStrings, [Enc], Line*displayStride+3, Line*displayStride+3);&lt;br /&gt;
}&lt;br /&gt;
deleteLine(integer Line){&lt;br /&gt;
    displayStrings = llDeleteSubList(displayStrings, Line*displayStride,Line*displayStride+displayStride-1);&lt;br /&gt;
}&lt;br /&gt;
integer validLine(integer Line){&lt;br /&gt;
    return (Line &amp;gt;= 0 &amp;amp;&amp;amp; Line &amp;lt; llGetListLength(displayStrings)/displayStride);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
string buildDisplay(){&lt;br /&gt;
    string builtDisplay = &amp;quot;&amp;quot;;&lt;br /&gt;
    integer Lines = llGetListLength(displayStrings)/displayStride;&lt;br /&gt;
    while(~--Lines){&lt;br /&gt;
        builtDisplay = encapsulateString(llList2Integer(displayStrings,Lines*displayStride+3), &lt;br /&gt;
            llDumpList2String(llList2List(displayStrings,Lines*displayStride,Lines*displayStride+1),llList2String(displayStrings,Lines*displayStride+2))) +&lt;br /&gt;
                &amp;quot;\n&amp;quot; + builtDisplay;&lt;br /&gt;
    }&lt;br /&gt;
    return builtDisplay;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
updateDisplay(){&lt;br /&gt;
    llSetLinkPrimitiveParamsFast(LINK_THIS, [PRIM_TEXT, buildDisplay(), &amp;lt;1,1,1&amp;gt;, 0.9]);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
list safeParseToTokens(string input){ // Used to parse a string that can handle string interpretation&lt;br /&gt;
    list tokens = llParseString2List(input, [&amp;quot; &amp;quot;], [&amp;quot;\&amp;quot;&amp;quot;,&amp;quot;;&amp;quot;]); // - Used to concatenate two strings&lt;br /&gt;
    integer nextQuote = llListFindList( tokens, [&amp;quot;\&amp;quot;&amp;quot;] );&lt;br /&gt;
    integer termChar = nextQuote + 1 + llListFindList( llList2List( tokens, nextQuote + 1, -1 ), [ &amp;quot;;&amp;quot; ] );&lt;br /&gt;
    integer endQuote = nextQuote + 1 + llListFindList( llList2List( tokens, nextQuote + 1, -1 ), [ &amp;quot;\&amp;quot;&amp;quot; ] );&lt;br /&gt;
    do{&lt;br /&gt;
        if(~nextQuote &amp;amp;&amp;amp; !~(endQuote-nextQuote-1)){ //Fault: Quotes don&#039;t match up.&lt;br /&gt;
            return [-1, &amp;quot;Fault: No end quote.&amp;quot;];&lt;br /&gt;
        } else if(~nextQuote &amp;amp;&amp;amp; ~(termChar-nextQuote-1) &amp;amp;&amp;amp; termChar &amp;lt; endQuote &amp;amp;&amp;amp; ~(endQuote-nextQuote-1) ){&lt;br /&gt;
            // Fault. Read error message.&lt;br /&gt;
            return [-1, &amp;quot;Fault: Terminator character before end of string.&amp;quot;];&lt;br /&gt;
        } else if(nextQuote &amp;lt; endQuote){&lt;br /&gt;
            string newString = llDumpList2String( llList2List( tokens, nextQuote+1, endQuote-1), &amp;quot; &amp;quot; );&lt;br /&gt;
            if( !(nextQuote+1 &amp;lt; endQuote) )&lt;br /&gt;
                newString = &amp;quot;&amp;quot;;&lt;br /&gt;
            tokens = llListReplaceList( tokens,  [newString], nextQuote, endQuote );&lt;br /&gt;
        } else {&lt;br /&gt;
            //Something broke.&lt;br /&gt;
        }&lt;br /&gt;
        nextQuote = llListFindList( tokens, [&amp;quot;\&amp;quot;&amp;quot;] );&lt;br /&gt;
        termChar = nextQuote + 1 + llListFindList( llList2List( tokens, nextQuote + 1, -1 ), [ &amp;quot;;&amp;quot; ] );&lt;br /&gt;
        endQuote = nextQuote + 1 + llListFindList( llList2List( tokens, nextQuote + 1, -1 ), [ &amp;quot;\&amp;quot;&amp;quot; ] );&lt;br /&gt;
    }&lt;br /&gt;
    while(~nextQuote);&lt;br /&gt;
    return tokens;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
    Commands&lt;br /&gt;
    &lt;br /&gt;
    .add &amp;quot;Title of line&amp;quot; &amp;quot;Line String&amp;quot; &amp;quot;Seperator&amp;quot; EncapsulatorId&lt;br /&gt;
    .add &amp;quot;Title&amp;quot; &amp;quot;String&amp;quot;&lt;br /&gt;
        -Adds a new line with the default seperator and square bracket encapsulators.&lt;br /&gt;
    &lt;br /&gt;
    .edit Line# title &amp;quot;New Title&amp;quot;&lt;br /&gt;
    .edit Line# string &amp;quot;New String&amp;quot;&lt;br /&gt;
    .edit Line# sep &amp;quot;New Seperator&amp;quot;&lt;br /&gt;
    .edit Line# enc newEncapsulatorId&lt;br /&gt;
    .edit Line# &amp;quot;New Title&amp;quot; &amp;quot;New String&amp;quot; &amp;quot;New Seperator&amp;quot; newEncapsulatorId&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    .clear&lt;br /&gt;
        -Clears the display&lt;br /&gt;
    &lt;br /&gt;
    .delete Line#&lt;br /&gt;
    &lt;br /&gt;
    .reg_enc &amp;quot;Left&amp;quot; &amp;quot;Right&amp;quot;&lt;br /&gt;
        -Registers a new encapsulator.&lt;br /&gt;
    &lt;br /&gt;
    .list_enc&lt;br /&gt;
        -List all registered encapsulators.&lt;br /&gt;
        &lt;br /&gt;
    .list_display&lt;br /&gt;
        -For debugging purposes.&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    You can change the activator at the top of the script. Or set it blank.&lt;br /&gt;
    In which case either exclude it from your queries entirely, or if it was changed, &lt;br /&gt;
    use the new activator in place of the period in the examples.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
*/&lt;br /&gt;
default{&lt;br /&gt;
    on_rez(integer Start){&lt;br /&gt;
        //Probably shouldn&#039;t reset to prevent data loss.&lt;br /&gt;
        //But your choice.&lt;br /&gt;
        //llResetScript();&lt;br /&gt;
    }&lt;br /&gt;
    state_entry(){&lt;br /&gt;
        llListen(0, &amp;quot;&amp;quot;, llGetOwner(), &amp;quot;&amp;quot;);//Will only listen to the owner on channel 0.&lt;br /&gt;
    }&lt;br /&gt;
    listen(integer Chanenl, string Name, key Uuid, string Data){&lt;br /&gt;
        if(activationTrigger == &amp;quot;&amp;quot; || llGetSubString(Data, 0, 0) == activationTrigger){&lt;br /&gt;
            list Tokens = safeParseToTokens(llDeleteSubString(Data,0,0));&lt;br /&gt;
            if(llList2Integer(Tokens, 0) == -1){&lt;br /&gt;
                llOwnerSay(&amp;quot;Parse Error: &amp;quot;+llList2String(Tokens, 1));&lt;br /&gt;
                return;&lt;br /&gt;
            }&lt;br /&gt;
            string Command = llToLower(llList2String(Tokens, 0));&lt;br /&gt;
            integer Line = (integer)llList2String(Tokens, 1);&lt;br /&gt;
            if(Command == &amp;quot;add&amp;quot;){&lt;br /&gt;
                if(llGetListLength(Tokens) == 5)&lt;br /&gt;
                    addLine(llList2String(Tokens, 1), llList2String(Tokens, 2), llList2String(Tokens, 3), (integer)llList2String(Tokens, 4));&lt;br /&gt;
                else&lt;br /&gt;
                    addLine(llList2String(Tokens, 1), llList2String(Tokens, 2), DEFAULT_SEPARATOR, ENC_SQUARE_BRACKETS);&lt;br /&gt;
            }&lt;br /&gt;
            else if(Command == &amp;quot;edit&amp;quot;){&lt;br /&gt;
                if(!validLine(Line))return;&lt;br /&gt;
                string subCmd = llToLower(llList2String(Tokens, 2));&lt;br /&gt;
                if(subCmd == &amp;quot;title&amp;quot;)&lt;br /&gt;
                    editLineTitle(Line, llList2String(Tokens, 3));&lt;br /&gt;
                else if(subCmd == &amp;quot;string&amp;quot;)&lt;br /&gt;
                    editLineString(Line, llList2String(Tokens, 3));&lt;br /&gt;
                else if(subCmd == &amp;quot;sep&amp;quot;)&lt;br /&gt;
                    editLineSeparator(Line, llList2String(Tokens, 3));&lt;br /&gt;
                else if(subCmd == &amp;quot;enc&amp;quot;)&lt;br /&gt;
                    editLineEncapsulator(Line, (integer)llList2String(Tokens, 3));&lt;br /&gt;
                else if(llGetListLength(Tokens) == 6)&lt;br /&gt;
                    editLine(Line, llList2String(Tokens, 2), llList2String(Tokens, 3), llList2String(Tokens, 4), (integer)llList2String(Tokens, 5));&lt;br /&gt;
                else&lt;br /&gt;
                    llOwnerSay(&amp;quot;Invalid edit query.&amp;quot;); &lt;br /&gt;
            }&lt;br /&gt;
            else if(Command == &amp;quot;delete&amp;quot;){&lt;br /&gt;
                if(!validLine(Line))return;&lt;br /&gt;
                deleteLine(Line);&lt;br /&gt;
                llOwnerSay(&amp;quot;Deleted line number &amp;quot;+(string)Line+&amp;quot;.&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else if(Command == &amp;quot;clear&amp;quot;){&lt;br /&gt;
                displayStrings = [];&lt;br /&gt;
            }&lt;br /&gt;
            else if(Command == &amp;quot;reg_enc&amp;quot;){&lt;br /&gt;
                integer Id = 0;&lt;br /&gt;
                if((Id=registerNewEncapsulator(llList2String(Tokens,1), llList2String(Tokens,2))) != 0){&lt;br /&gt;
                    llOwnerSay(&amp;quot;Encapsulator registered with ID &#039;&amp;quot;+(string)Id+&amp;quot;&#039;.&amp;quot;);&lt;br /&gt;
                }&lt;br /&gt;
                else{&lt;br /&gt;
                    llOwnerSay(&amp;quot;Encapsulator failed to register. Already exists in the reference.&amp;quot;);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            else if(Command == &amp;quot;list_display&amp;quot;){&lt;br /&gt;
                llOwnerSay(buildDisplay());&lt;br /&gt;
            }&lt;br /&gt;
            else if(Command == &amp;quot;list_enc&amp;quot;){&lt;br /&gt;
                llOwnerSay(buildEncapsulatorList());&lt;br /&gt;
            }&lt;br /&gt;
            &lt;br /&gt;
            updateDisplay();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a simple 7 line displayer script that is easy to use and if you ask me very useful&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
//Scripting By Akinori Kimagawa feel free to change the titles and commands...enjoy this script&lt;br /&gt;
 &lt;br /&gt;
string title;&lt;br /&gt;
string line1t;&lt;br /&gt;
string line2t;&lt;br /&gt;
string line3t;&lt;br /&gt;
string line4t;&lt;br /&gt;
string line5t;&lt;br /&gt;
string line6t;&lt;br /&gt;
string line1;&lt;br /&gt;
string line2;&lt;br /&gt;
string line3;&lt;br /&gt;
string line4;&lt;br /&gt;
string line5;&lt;br /&gt;
string line6;&lt;br /&gt;
update()&lt;br /&gt;
{&lt;br /&gt;
llSetText(&amp;quot;[&amp;quot;+title+&amp;quot;+]&lt;br /&gt;
&amp;quot;+&amp;quot;[&amp;quot;+line1t+&amp;quot;:&amp;quot;+line1+&amp;quot;]&lt;br /&gt;
&amp;quot;+&amp;quot;[&amp;quot;+line2t+&amp;quot;:&amp;quot;+line2+&amp;quot;]&lt;br /&gt;
&amp;quot;+&amp;quot;[&amp;quot;+line3t+&amp;quot;:&amp;quot;+line3+&amp;quot;]&lt;br /&gt;
&amp;quot;+&amp;quot;[&amp;quot;+line4t+&amp;quot;:&amp;quot;+line4+&amp;quot;]&lt;br /&gt;
&amp;quot;+&amp;quot;[&amp;quot;+line5t+&amp;quot;:&amp;quot;+line5+&amp;quot;]&lt;br /&gt;
&amp;quot;+&amp;quot;[&amp;quot;+line6t+&amp;quot;:&amp;quot;+line6+&amp;quot;]&amp;quot;&lt;br /&gt;
,&amp;lt;1,1,1&amp;gt;,50);&lt;br /&gt;
}&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llListen(0,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
        llListen(11,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
        llSetTimerEvent(-0.1);&lt;br /&gt;
    }&lt;br /&gt;
    timer()&lt;br /&gt;
    {&lt;br /&gt;
        update();&lt;br /&gt;
}&lt;br /&gt;
    listen(integer chnl,string name2,key id,string msg)&lt;br /&gt;
{&lt;br /&gt;
    if(chnl == 0)&lt;br /&gt;
    {&lt;br /&gt;
    if(id == llGetOwner())&lt;br /&gt;
    {&lt;br /&gt;
     list parse = llParseString2List(msg,[&amp;quot;.&amp;quot;],[]);&lt;br /&gt;
string cmnd = llList2String(parse,0);&lt;br /&gt;
string part = llList2String(parse,1);&lt;br /&gt;
 &lt;br /&gt;
if(cmnd == &amp;quot;stitle&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
    title = part;&lt;br /&gt;
}&lt;br /&gt;
if(cmnd == &amp;quot;sline1&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
    line1 = part;&lt;br /&gt;
    llSetObjectName(part);&lt;br /&gt;
}&lt;br /&gt;
if(cmnd == &amp;quot;sline2&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
    line2 = part;&lt;br /&gt;
}&lt;br /&gt;
if(cmnd == &amp;quot;sline3&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
    line3 = part;&lt;br /&gt;
}&lt;br /&gt;
if(cmnd == &amp;quot;sline4&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
    line4 = part;&lt;br /&gt;
}&lt;br /&gt;
if(cmnd == &amp;quot;sline5&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
    line5 = part;&lt;br /&gt;
}&lt;br /&gt;
if(cmnd == &amp;quot;sline6&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
    line6 = part;&lt;br /&gt;
}&lt;br /&gt;
if(cmnd == &amp;quot;sline1t&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
    line1t = part;&lt;br /&gt;
}&lt;br /&gt;
if(cmnd == &amp;quot;sline2t&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
    line2t = part;&lt;br /&gt;
}&lt;br /&gt;
if(cmnd == &amp;quot;sline3t&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
    line3t = part;&lt;br /&gt;
}&lt;br /&gt;
if(cmnd == &amp;quot;sline4t&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
    line4t = part;&lt;br /&gt;
}&lt;br /&gt;
if(cmnd == &amp;quot;sline5t&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
    line5t = part;&lt;br /&gt;
}&lt;br /&gt;
if(cmnd == &amp;quot;sline6t&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
    line6t = part;&lt;br /&gt;
    }&lt;br /&gt;
   }&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
state help&lt;br /&gt;
}&lt;br /&gt;
state help&lt;br /&gt;
{&lt;br /&gt;
    changed(integer change)&lt;br /&gt;
    {&lt;br /&gt;
        if(change&amp;amp;CHANGED_OWNER)&lt;br /&gt;
        {&lt;br /&gt;
            llGiveInventory(llGetOwner(),&amp;quot;HELP NOTE NAME&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Niles Argus</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Niles_Argus&amp;diff=1139790</id>
		<title>User:Niles Argus</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Niles_Argus&amp;diff=1139790"/>
		<updated>2011-04-09T04:49:55Z</updated>

		<summary type="html">&lt;p&gt;Niles Argus: Created page with &amp;quot;&amp;#039;&amp;#039;&amp;#039;Yup&amp;#039;&amp;#039;&amp;#039;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Yup&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Niles Argus</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Niles_Argus&amp;diff=1139789</id>
		<title>Niles Argus</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Niles_Argus&amp;diff=1139789"/>
		<updated>2011-04-09T04:49:44Z</updated>

		<summary type="html">&lt;p&gt;Niles Argus: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Niles Argus</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Niles_Argus&amp;diff=1139788</id>
		<title>Niles Argus</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Niles_Argus&amp;diff=1139788"/>
		<updated>2011-04-09T04:49:30Z</updated>

		<summary type="html">&lt;p&gt;Niles Argus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Yup&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Niles Argus</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Niles_Argus&amp;diff=1139787</id>
		<title>Niles Argus</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Niles_Argus&amp;diff=1139787"/>
		<updated>2011-04-09T04:49:15Z</updated>

		<summary type="html">&lt;p&gt;Niles Argus: Created page with &amp;quot;Yup.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Yup.&lt;/div&gt;</summary>
		<author><name>Niles Argus</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Displayer_Script&amp;diff=1139786</id>
		<title>Displayer Script</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Displayer_Script&amp;diff=1139786"/>
		<updated>2011-04-09T04:49:09Z</updated>

		<summary type="html">&lt;p&gt;Niles Argus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overcomplicated C-c-c-c-ombo breaker. ==&lt;br /&gt;
I went ahead and way over complicated this script, but allows for a lot more functionality.&lt;br /&gt;
You can use way more than seven lines. &lt;br /&gt;
&lt;br /&gt;
[[llSetText]] is always limited to &#039;&#039;&#039;254 bytes&#039;&#039;&#039; and will be truncated as such. Be weary of this when using this script.&lt;br /&gt;
Essentially unlimited lines &#039;&#039;(until script memory runs out)&#039;&#039; is irrelevant due to SetText limits. &lt;br /&gt;
&lt;br /&gt;
Whatever, enjoy. -- [[Niles Argus]]&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
//Created by Niles Argus 2011. The safeParseToTokens(string String) function, is hella useful. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
string activationTrigger = &amp;quot;.&amp;quot;; //Used to activate the command line. Blank for none.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
string DEFAULT_SEPARATOR            =   &amp;quot; : &amp;quot;;&lt;br /&gt;
&lt;br /&gt;
integer ENC_PADDING                 =    0x0;&lt;br /&gt;
integer ENC_SQUARE_BRACKETS         =    0x1;&lt;br /&gt;
integer ENC_SQUIGLY_BRACKETS        =    0x4;&lt;br /&gt;
integer ENC_PARENTHESES             =    0x2;&lt;br /&gt;
integer ENC_ARROWS                  =    0x3;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
list encapsulatorReference = [&lt;br /&gt;
    0x0,    &amp;quot; &amp;quot;,    &amp;quot; &amp;quot;,&lt;br /&gt;
    0x1,    &amp;quot;[&amp;quot;,     &amp;quot;]&amp;quot;,&lt;br /&gt;
    0x2,    &amp;quot;(&amp;quot;,    &amp;quot;)&amp;quot;,&lt;br /&gt;
    0x3,    &amp;quot;&amp;lt;&amp;quot;,    &amp;quot;&amp;gt;&amp;quot;,&lt;br /&gt;
    0x4,    &amp;quot;{&amp;quot;,    &amp;quot;}&amp;quot;];&lt;br /&gt;
    &lt;br /&gt;
string buildEncapsulatorList(){&lt;br /&gt;
    string Title = &amp;quot;Encapsulators\n&amp;quot;;&lt;br /&gt;
    string Lines = &amp;quot;&amp;quot;;&lt;br /&gt;
    integer L = llGetListLength(encapsulatorReference)/3;&lt;br /&gt;
    while(~--L){&lt;br /&gt;
        Lines = &amp;quot;\t&amp;quot;+llList2String(encapsulatorReference, L*3)+&amp;quot;\t=&amp;gt;\t&amp;quot;+llList2CSV(llList2List(encapsulatorReference, L*3+1, L*3+2))+&amp;quot;\n&amp;quot;+Lines;&lt;br /&gt;
    }&lt;br /&gt;
    return Title+Lines;&lt;br /&gt;
}&lt;br /&gt;
    &lt;br /&gt;
integer registerNewEncapsulator(string Left, string Right){&lt;br /&gt;
    if(!~llListFindList(encapsulatorReference, [Left,Right])){&lt;br /&gt;
        integer nextInteger = (integer)llListStatistics(LIST_STAT_MAX, llList2ListStrided(encapsulatorReference, 0, -1, 3))+1;&lt;br /&gt;
        encapsulatorReference += [nextInteger, Left, Right];&lt;br /&gt;
        return nextInteger;&lt;br /&gt;
    }&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
string encapsulateString(integer Encapsulator, string String){&lt;br /&gt;
    integer    F;&lt;br /&gt;
    if(~(F=llListFindList(encapsulatorReference, [Encapsulator]))){&lt;br /&gt;
        return llList2String(encapsulatorReference, F+1)+String+llList2String(encapsulatorReference, F+2);&lt;br /&gt;
    }&lt;br /&gt;
    return String;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
list displayStrings = [&lt;br /&gt;
    //Title, String, Seperator, EncapsulatorId&lt;br /&gt;
];&lt;br /&gt;
integer displayStride = 4;&lt;br /&gt;
&lt;br /&gt;
editLine(integer Line, string Title, string String, string Sep, integer Enc){&lt;br /&gt;
    editLineTitle(Line, Title);&lt;br /&gt;
    editLineString(Line, String);&lt;br /&gt;
    editLineSeparator(Line, Sep);&lt;br /&gt;
    editLineEncapsulator(Line, Enc);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
addLine(string Title, string String, string Sep, integer Enc){&lt;br /&gt;
    displayStrings += [Title, String, Sep, Enc];&lt;br /&gt;
}&lt;br /&gt;
editLineTitle(integer Line, string Title){&lt;br /&gt;
    displayStrings = llListReplaceList(displayStrings, [Title], Line*displayStride, Line*displayStride);&lt;br /&gt;
}&lt;br /&gt;
editLineString(integer Line, string String){&lt;br /&gt;
    displayStrings = llListReplaceList(displayStrings, [String], Line*displayStride+1, Line*displayStride+1);&lt;br /&gt;
}&lt;br /&gt;
editLineSeparator(integer Line, string Sep){&lt;br /&gt;
    displayStrings = llListReplaceList(displayStrings, [Sep], Line*displayStride+2, Line*displayStride+2);&lt;br /&gt;
}&lt;br /&gt;
editLineEncapsulator(integer Line, integer Enc){&lt;br /&gt;
    displayStrings = llListReplaceList(displayStrings, [Enc], Line*displayStride+3, Line*displayStride+3);&lt;br /&gt;
}&lt;br /&gt;
deleteLine(integer Line){&lt;br /&gt;
    displayStrings = llDeleteSubList(displayStrings, Line*displayStride,Line*displayStride+displayStride-1);&lt;br /&gt;
}&lt;br /&gt;
integer validLine(integer Line){&lt;br /&gt;
    return (Line &amp;gt;= 0 &amp;amp;&amp;amp; Line &amp;lt; llGetListLength(displayStrings)/displayStride);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
string buildDisplay(){&lt;br /&gt;
    string builtDisplay = &amp;quot;&amp;quot;;&lt;br /&gt;
    integer Lines = llGetListLength(displayStrings)/displayStride;&lt;br /&gt;
    while(~--Lines){&lt;br /&gt;
        builtDisplay = encapsulateString(llList2Integer(displayStrings,Lines*displayStride+3), &lt;br /&gt;
            llDumpList2String(llList2List(displayStrings,Lines*displayStride,Lines*displayStride+1),llList2String(displayStrings,Lines*displayStride+2))) +&lt;br /&gt;
                &amp;quot;\n&amp;quot; + builtDisplay;&lt;br /&gt;
    }&lt;br /&gt;
    return builtDisplay;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
updateDisplay(){&lt;br /&gt;
    llSetLinkPrimitiveParamsFast(LINK_THIS, [PRIM_TEXT, buildDisplay(), &amp;lt;1,1,1&amp;gt;, 0.9]);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
list safeParseToTokens(string input){ // Used to parse a string that can handle string interpretation&lt;br /&gt;
    list tokens = llParseString2List(input, [&amp;quot; &amp;quot;], [&amp;quot;\&amp;quot;&amp;quot;,&amp;quot;;&amp;quot;]); // - Used to concatenate two strings&lt;br /&gt;
    integer nextQuote = llListFindList( tokens, [&amp;quot;\&amp;quot;&amp;quot;] );&lt;br /&gt;
    integer termChar = nextQuote + 1 + llListFindList( llList2List( tokens, nextQuote + 1, -1 ), [ &amp;quot;;&amp;quot; ] );&lt;br /&gt;
    integer endQuote = nextQuote + 1 + llListFindList( llList2List( tokens, nextQuote + 1, -1 ), [ &amp;quot;\&amp;quot;&amp;quot; ] );&lt;br /&gt;
    do{&lt;br /&gt;
        if(~nextQuote &amp;amp;&amp;amp; !~(endQuote-nextQuote-1)){ //Fault: Quotes don&#039;t match up.&lt;br /&gt;
            return [-1, &amp;quot;Fault: No end quote.&amp;quot;];&lt;br /&gt;
        } else if(~nextQuote &amp;amp;&amp;amp; ~(termChar-nextQuote-1) &amp;amp;&amp;amp; termChar &amp;lt; endQuote &amp;amp;&amp;amp; ~(endQuote-nextQuote-1) ){&lt;br /&gt;
            // Fault. Read error message.&lt;br /&gt;
            return [-1, &amp;quot;Fault: Terminator character before end of string.&amp;quot;];&lt;br /&gt;
        } else if(nextQuote &amp;lt; endQuote){&lt;br /&gt;
            string newString = llDumpList2String( llList2List( tokens, nextQuote+1, endQuote-1), &amp;quot; &amp;quot; );&lt;br /&gt;
            if( !(nextQuote+1 &amp;lt; endQuote) )&lt;br /&gt;
                newString = &amp;quot;&amp;quot;;&lt;br /&gt;
            tokens = llListReplaceList( tokens,  [newString], nextQuote, endQuote );&lt;br /&gt;
        } else {&lt;br /&gt;
            //Something broke.&lt;br /&gt;
        }&lt;br /&gt;
        nextQuote = llListFindList( tokens, [&amp;quot;\&amp;quot;&amp;quot;] );&lt;br /&gt;
        termChar = nextQuote + 1 + llListFindList( llList2List( tokens, nextQuote + 1, -1 ), [ &amp;quot;;&amp;quot; ] );&lt;br /&gt;
        endQuote = nextQuote + 1 + llListFindList( llList2List( tokens, nextQuote + 1, -1 ), [ &amp;quot;\&amp;quot;&amp;quot; ] );&lt;br /&gt;
    }&lt;br /&gt;
    while(~nextQuote);&lt;br /&gt;
    return tokens;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
    Commands&lt;br /&gt;
    &lt;br /&gt;
    .add &amp;quot;Title of line&amp;quot; &amp;quot;Line String&amp;quot; &amp;quot;Seperator&amp;quot; EncapsulatorId&lt;br /&gt;
    .add &amp;quot;Title&amp;quot; &amp;quot;String&amp;quot;&lt;br /&gt;
        -Adds a new line with the default seperator and square bracket encapsulators.&lt;br /&gt;
    &lt;br /&gt;
    .edit Line# title &amp;quot;New Title&amp;quot;&lt;br /&gt;
    .edit Line# string &amp;quot;New String&amp;quot;&lt;br /&gt;
    .edit Line# sep &amp;quot;New Seperator&amp;quot;&lt;br /&gt;
    .edit Line# enc newEncapsulatorId&lt;br /&gt;
    .edit Line# &amp;quot;New Title&amp;quot; &amp;quot;New String&amp;quot; &amp;quot;New Seperator&amp;quot; newEncapsulatorId&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    .clear&lt;br /&gt;
        -Clears the display&lt;br /&gt;
    &lt;br /&gt;
    .delete Line#&lt;br /&gt;
    &lt;br /&gt;
    .reg_enc &amp;quot;Left&amp;quot; &amp;quot;Right&amp;quot;&lt;br /&gt;
        -Registers a new encapsulator.&lt;br /&gt;
    &lt;br /&gt;
    .list_enc&lt;br /&gt;
        -List all registered encapsulators.&lt;br /&gt;
        &lt;br /&gt;
    .list_display&lt;br /&gt;
        -For debugging purposes.&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    You can change the activator at the top of the script. Or set it blank.&lt;br /&gt;
    In which case either exclude it from your queries entirely, or if it was changed, &lt;br /&gt;
    use the new activator in place of the period in the examples.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
*/&lt;br /&gt;
default{&lt;br /&gt;
    on_rez(integer Start){&lt;br /&gt;
        //Probably shouldn&#039;t reset to prevent data loss.&lt;br /&gt;
        //But your choice.&lt;br /&gt;
        //llResetScript();&lt;br /&gt;
    }&lt;br /&gt;
    state_entry(){&lt;br /&gt;
        llListen(0, &amp;quot;&amp;quot;, llGetOwner(), &amp;quot;&amp;quot;);//Will only listen to the owner on channel 0.&lt;br /&gt;
    }&lt;br /&gt;
    listen(integer Chanenl, string Name, key Uuid, string Data){&lt;br /&gt;
        if(activationTrigger == &amp;quot;&amp;quot; || llGetSubString(Data, 0, 0) == activationTrigger){&lt;br /&gt;
            list Tokens = safeParseToTokens(llDeleteSubString(Data,0,0));&lt;br /&gt;
            if(llList2Integer(Tokens, 0) == -1){&lt;br /&gt;
                llOwnerSay(&amp;quot;Parse Error: &amp;quot;+llList2String(Tokens, 1));&lt;br /&gt;
                return;&lt;br /&gt;
            }&lt;br /&gt;
            string Command = llToLower(llList2String(Tokens, 0));&lt;br /&gt;
            integer Line = (integer)llList2String(Tokens, 1);&lt;br /&gt;
            if(Command == &amp;quot;add&amp;quot;){&lt;br /&gt;
                if(llGetListLength(Tokens) == 5)&lt;br /&gt;
                    addLine(llList2String(Tokens, 1), llList2String(Tokens, 2), llList2String(Tokens, 3), (integer)llList2String(Tokens, 4));&lt;br /&gt;
                else&lt;br /&gt;
                    addLine(llList2String(Tokens, 1), llList2String(Tokens, 2), DEFAULT_SEPARATOR, ENC_SQUARE_BRACKETS);&lt;br /&gt;
            }&lt;br /&gt;
            else if(Command == &amp;quot;edit&amp;quot;){&lt;br /&gt;
                if(!validLine(Line))return;&lt;br /&gt;
                string subCmd = llToLower(llList2String(Tokens, 2));&lt;br /&gt;
                if(subCmd == &amp;quot;title&amp;quot;)&lt;br /&gt;
                    editLineTitle(Line, llList2String(Tokens, 3));&lt;br /&gt;
                else if(subCmd == &amp;quot;string&amp;quot;)&lt;br /&gt;
                    editLineString(Line, llList2String(Tokens, 3));&lt;br /&gt;
                else if(subCmd == &amp;quot;sep&amp;quot;)&lt;br /&gt;
                    editLineSeparator(Line, llList2String(Tokens, 3));&lt;br /&gt;
                else if(subCmd == &amp;quot;enc&amp;quot;)&lt;br /&gt;
                    editLineEncapsulator(Line, (integer)llList2String(Tokens, 3));&lt;br /&gt;
                else if(llGetListLength(Tokens) == 6)&lt;br /&gt;
                    editLine(Line, llList2String(Tokens, 2), llList2String(Tokens, 3), llList2String(Tokens, 4), (integer)llList2String(Tokens, 5));&lt;br /&gt;
                else&lt;br /&gt;
                    llOwnerSay(&amp;quot;Invalid edit query.&amp;quot;); &lt;br /&gt;
            }&lt;br /&gt;
            else if(Command == &amp;quot;delete&amp;quot;){&lt;br /&gt;
                if(!validLine(Line))return;&lt;br /&gt;
                deleteLine(Line);&lt;br /&gt;
                llOwnerSay(&amp;quot;Deleted line number &amp;quot;+(string)Line+&amp;quot;.&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else if(Command == &amp;quot;clear&amp;quot;){&lt;br /&gt;
                displayStrings = [];&lt;br /&gt;
            }&lt;br /&gt;
            else if(Command == &amp;quot;reg_enc&amp;quot;){&lt;br /&gt;
                integer Id = 0;&lt;br /&gt;
                if((Id=registerNewEncapsulator(llList2String(Tokens,1), llList2String(Tokens,2))) != 0){&lt;br /&gt;
                    llOwnerSay(&amp;quot;Encapsulator registered with ID &#039;&amp;quot;+(string)Id+&amp;quot;&#039;.&amp;quot;);&lt;br /&gt;
                }&lt;br /&gt;
                else{&lt;br /&gt;
                    llOwnerSay(&amp;quot;Encapsulator failed to register. Already exists in the reference.&amp;quot;);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            else if(Command == &amp;quot;list_display&amp;quot;){&lt;br /&gt;
                llOwnerSay(buildDisplay());&lt;br /&gt;
            }&lt;br /&gt;
            else if(Command == &amp;quot;list_enc&amp;quot;){&lt;br /&gt;
                llOwnerSay(buildEncapsulatorList());&lt;br /&gt;
            }&lt;br /&gt;
            &lt;br /&gt;
            updateDisplay();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a simple 7 line displayer script that is easy to use and if you ask me very useful&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
//Scripting By Akinori Kimagawa feel free to change the titles and commands...enjoy this script&lt;br /&gt;
 &lt;br /&gt;
string title;&lt;br /&gt;
string line1t;&lt;br /&gt;
string line2t;&lt;br /&gt;
string line3t;&lt;br /&gt;
string line4t;&lt;br /&gt;
string line5t;&lt;br /&gt;
string line6t;&lt;br /&gt;
string line1;&lt;br /&gt;
string line2;&lt;br /&gt;
string line3;&lt;br /&gt;
string line4;&lt;br /&gt;
string line5;&lt;br /&gt;
string line6;&lt;br /&gt;
update()&lt;br /&gt;
{&lt;br /&gt;
llSetText(&amp;quot;[&amp;quot;+title+&amp;quot;+]&lt;br /&gt;
&amp;quot;+&amp;quot;[&amp;quot;+line1t+&amp;quot;:&amp;quot;+line1+&amp;quot;]&lt;br /&gt;
&amp;quot;+&amp;quot;[&amp;quot;+line2t+&amp;quot;:&amp;quot;+line2+&amp;quot;]&lt;br /&gt;
&amp;quot;+&amp;quot;[&amp;quot;+line3t+&amp;quot;:&amp;quot;+line3+&amp;quot;]&lt;br /&gt;
&amp;quot;+&amp;quot;[&amp;quot;+line4t+&amp;quot;:&amp;quot;+line4+&amp;quot;]&lt;br /&gt;
&amp;quot;+&amp;quot;[&amp;quot;+line5t+&amp;quot;:&amp;quot;+line5+&amp;quot;]&lt;br /&gt;
&amp;quot;+&amp;quot;[&amp;quot;+line6t+&amp;quot;:&amp;quot;+line6+&amp;quot;]&amp;quot;&lt;br /&gt;
,&amp;lt;1,1,1&amp;gt;,50);&lt;br /&gt;
}&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llListen(0,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
        llListen(11,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
        llSetTimerEvent(-0.1);&lt;br /&gt;
    }&lt;br /&gt;
    timer()&lt;br /&gt;
    {&lt;br /&gt;
        update();&lt;br /&gt;
}&lt;br /&gt;
    listen(integer chnl,string name2,key id,string msg)&lt;br /&gt;
{&lt;br /&gt;
    if(chnl == 0)&lt;br /&gt;
    {&lt;br /&gt;
    if(id == llGetOwner())&lt;br /&gt;
    {&lt;br /&gt;
     list parse = llParseString2List(msg,[&amp;quot;.&amp;quot;],[]);&lt;br /&gt;
string cmnd = llList2String(parse,0);&lt;br /&gt;
string part = llList2String(parse,1);&lt;br /&gt;
 &lt;br /&gt;
if(cmnd == &amp;quot;stitle&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
    title = part;&lt;br /&gt;
}&lt;br /&gt;
if(cmnd == &amp;quot;sline1&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
    line1 = part;&lt;br /&gt;
    llSetObjectName(part);&lt;br /&gt;
}&lt;br /&gt;
if(cmnd == &amp;quot;sline2&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
    line2 = part;&lt;br /&gt;
}&lt;br /&gt;
if(cmnd == &amp;quot;sline3&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
    line3 = part;&lt;br /&gt;
}&lt;br /&gt;
if(cmnd == &amp;quot;sline4&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
    line4 = part;&lt;br /&gt;
}&lt;br /&gt;
if(cmnd == &amp;quot;sline5&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
    line5 = part;&lt;br /&gt;
}&lt;br /&gt;
if(cmnd == &amp;quot;sline6&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
    line6 = part;&lt;br /&gt;
}&lt;br /&gt;
if(cmnd == &amp;quot;sline1t&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
    line1t = part;&lt;br /&gt;
}&lt;br /&gt;
if(cmnd == &amp;quot;sline2t&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
    line2t = part;&lt;br /&gt;
}&lt;br /&gt;
if(cmnd == &amp;quot;sline3t&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
    line3t = part;&lt;br /&gt;
}&lt;br /&gt;
if(cmnd == &amp;quot;sline4t&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
    line4t = part;&lt;br /&gt;
}&lt;br /&gt;
if(cmnd == &amp;quot;sline5t&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
    line5t = part;&lt;br /&gt;
}&lt;br /&gt;
if(cmnd == &amp;quot;sline6t&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
    line6t = part;&lt;br /&gt;
    }&lt;br /&gt;
   }&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
state help&lt;br /&gt;
}&lt;br /&gt;
state help&lt;br /&gt;
{&lt;br /&gt;
    changed(integer change)&lt;br /&gt;
    {&lt;br /&gt;
        if(change&amp;amp;CHANGED_OWNER)&lt;br /&gt;
        {&lt;br /&gt;
            llGiveInventory(llGetOwner(),&amp;quot;HELP NOTE NAME&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Niles Argus</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Displayer_Script&amp;diff=1139785</id>
		<title>Displayer Script</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Displayer_Script&amp;diff=1139785"/>
		<updated>2011-04-09T04:48:54Z</updated>

		<summary type="html">&lt;p&gt;Niles Argus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overcomplicated C-c-c-c-ombo breaker. ==&lt;br /&gt;
I went ahead and way over complicated this script, but allows for a lot more functionality.&lt;br /&gt;
You can use way more than seven lines. &lt;br /&gt;
&lt;br /&gt;
[[llSetText]] is always limited to &#039;&#039;&#039;254 bytes&#039;&#039;&#039; and will be truncated as such. Be weary of this when using this script.&lt;br /&gt;
Essentially unlimited lines &#039;&#039;(until script memory runs out)&#039;&#039; is irrelevant due to SetText limits. &lt;br /&gt;
&lt;br /&gt;
Whatever, enjoy.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
//Created by Niles Argus 2011. The safeParseToTokens(string String) function, is hella useful. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
string activationTrigger = &amp;quot;.&amp;quot;; //Used to activate the command line. Blank for none.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
string DEFAULT_SEPARATOR            =   &amp;quot; : &amp;quot;;&lt;br /&gt;
&lt;br /&gt;
integer ENC_PADDING                 =    0x0;&lt;br /&gt;
integer ENC_SQUARE_BRACKETS         =    0x1;&lt;br /&gt;
integer ENC_SQUIGLY_BRACKETS        =    0x4;&lt;br /&gt;
integer ENC_PARENTHESES             =    0x2;&lt;br /&gt;
integer ENC_ARROWS                  =    0x3;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
list encapsulatorReference = [&lt;br /&gt;
    0x0,    &amp;quot; &amp;quot;,    &amp;quot; &amp;quot;,&lt;br /&gt;
    0x1,    &amp;quot;[&amp;quot;,     &amp;quot;]&amp;quot;,&lt;br /&gt;
    0x2,    &amp;quot;(&amp;quot;,    &amp;quot;)&amp;quot;,&lt;br /&gt;
    0x3,    &amp;quot;&amp;lt;&amp;quot;,    &amp;quot;&amp;gt;&amp;quot;,&lt;br /&gt;
    0x4,    &amp;quot;{&amp;quot;,    &amp;quot;}&amp;quot;];&lt;br /&gt;
    &lt;br /&gt;
string buildEncapsulatorList(){&lt;br /&gt;
    string Title = &amp;quot;Encapsulators\n&amp;quot;;&lt;br /&gt;
    string Lines = &amp;quot;&amp;quot;;&lt;br /&gt;
    integer L = llGetListLength(encapsulatorReference)/3;&lt;br /&gt;
    while(~--L){&lt;br /&gt;
        Lines = &amp;quot;\t&amp;quot;+llList2String(encapsulatorReference, L*3)+&amp;quot;\t=&amp;gt;\t&amp;quot;+llList2CSV(llList2List(encapsulatorReference, L*3+1, L*3+2))+&amp;quot;\n&amp;quot;+Lines;&lt;br /&gt;
    }&lt;br /&gt;
    return Title+Lines;&lt;br /&gt;
}&lt;br /&gt;
    &lt;br /&gt;
integer registerNewEncapsulator(string Left, string Right){&lt;br /&gt;
    if(!~llListFindList(encapsulatorReference, [Left,Right])){&lt;br /&gt;
        integer nextInteger = (integer)llListStatistics(LIST_STAT_MAX, llList2ListStrided(encapsulatorReference, 0, -1, 3))+1;&lt;br /&gt;
        encapsulatorReference += [nextInteger, Left, Right];&lt;br /&gt;
        return nextInteger;&lt;br /&gt;
    }&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
string encapsulateString(integer Encapsulator, string String){&lt;br /&gt;
    integer    F;&lt;br /&gt;
    if(~(F=llListFindList(encapsulatorReference, [Encapsulator]))){&lt;br /&gt;
        return llList2String(encapsulatorReference, F+1)+String+llList2String(encapsulatorReference, F+2);&lt;br /&gt;
    }&lt;br /&gt;
    return String;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
list displayStrings = [&lt;br /&gt;
    //Title, String, Seperator, EncapsulatorId&lt;br /&gt;
];&lt;br /&gt;
integer displayStride = 4;&lt;br /&gt;
&lt;br /&gt;
editLine(integer Line, string Title, string String, string Sep, integer Enc){&lt;br /&gt;
    editLineTitle(Line, Title);&lt;br /&gt;
    editLineString(Line, String);&lt;br /&gt;
    editLineSeparator(Line, Sep);&lt;br /&gt;
    editLineEncapsulator(Line, Enc);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
addLine(string Title, string String, string Sep, integer Enc){&lt;br /&gt;
    displayStrings += [Title, String, Sep, Enc];&lt;br /&gt;
}&lt;br /&gt;
editLineTitle(integer Line, string Title){&lt;br /&gt;
    displayStrings = llListReplaceList(displayStrings, [Title], Line*displayStride, Line*displayStride);&lt;br /&gt;
}&lt;br /&gt;
editLineString(integer Line, string String){&lt;br /&gt;
    displayStrings = llListReplaceList(displayStrings, [String], Line*displayStride+1, Line*displayStride+1);&lt;br /&gt;
}&lt;br /&gt;
editLineSeparator(integer Line, string Sep){&lt;br /&gt;
    displayStrings = llListReplaceList(displayStrings, [Sep], Line*displayStride+2, Line*displayStride+2);&lt;br /&gt;
}&lt;br /&gt;
editLineEncapsulator(integer Line, integer Enc){&lt;br /&gt;
    displayStrings = llListReplaceList(displayStrings, [Enc], Line*displayStride+3, Line*displayStride+3);&lt;br /&gt;
}&lt;br /&gt;
deleteLine(integer Line){&lt;br /&gt;
    displayStrings = llDeleteSubList(displayStrings, Line*displayStride,Line*displayStride+displayStride-1);&lt;br /&gt;
}&lt;br /&gt;
integer validLine(integer Line){&lt;br /&gt;
    return (Line &amp;gt;= 0 &amp;amp;&amp;amp; Line &amp;lt; llGetListLength(displayStrings)/displayStride);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
string buildDisplay(){&lt;br /&gt;
    string builtDisplay = &amp;quot;&amp;quot;;&lt;br /&gt;
    integer Lines = llGetListLength(displayStrings)/displayStride;&lt;br /&gt;
    while(~--Lines){&lt;br /&gt;
        builtDisplay = encapsulateString(llList2Integer(displayStrings,Lines*displayStride+3), &lt;br /&gt;
            llDumpList2String(llList2List(displayStrings,Lines*displayStride,Lines*displayStride+1),llList2String(displayStrings,Lines*displayStride+2))) +&lt;br /&gt;
                &amp;quot;\n&amp;quot; + builtDisplay;&lt;br /&gt;
    }&lt;br /&gt;
    return builtDisplay;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
updateDisplay(){&lt;br /&gt;
    llSetLinkPrimitiveParamsFast(LINK_THIS, [PRIM_TEXT, buildDisplay(), &amp;lt;1,1,1&amp;gt;, 0.9]);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
list safeParseToTokens(string input){ // Used to parse a string that can handle string interpretation&lt;br /&gt;
    list tokens = llParseString2List(input, [&amp;quot; &amp;quot;], [&amp;quot;\&amp;quot;&amp;quot;,&amp;quot;;&amp;quot;]); // - Used to concatenate two strings&lt;br /&gt;
    integer nextQuote = llListFindList( tokens, [&amp;quot;\&amp;quot;&amp;quot;] );&lt;br /&gt;
    integer termChar = nextQuote + 1 + llListFindList( llList2List( tokens, nextQuote + 1, -1 ), [ &amp;quot;;&amp;quot; ] );&lt;br /&gt;
    integer endQuote = nextQuote + 1 + llListFindList( llList2List( tokens, nextQuote + 1, -1 ), [ &amp;quot;\&amp;quot;&amp;quot; ] );&lt;br /&gt;
    do{&lt;br /&gt;
        if(~nextQuote &amp;amp;&amp;amp; !~(endQuote-nextQuote-1)){ //Fault: Quotes don&#039;t match up.&lt;br /&gt;
            return [-1, &amp;quot;Fault: No end quote.&amp;quot;];&lt;br /&gt;
        } else if(~nextQuote &amp;amp;&amp;amp; ~(termChar-nextQuote-1) &amp;amp;&amp;amp; termChar &amp;lt; endQuote &amp;amp;&amp;amp; ~(endQuote-nextQuote-1) ){&lt;br /&gt;
            // Fault. Read error message.&lt;br /&gt;
            return [-1, &amp;quot;Fault: Terminator character before end of string.&amp;quot;];&lt;br /&gt;
        } else if(nextQuote &amp;lt; endQuote){&lt;br /&gt;
            string newString = llDumpList2String( llList2List( tokens, nextQuote+1, endQuote-1), &amp;quot; &amp;quot; );&lt;br /&gt;
            if( !(nextQuote+1 &amp;lt; endQuote) )&lt;br /&gt;
                newString = &amp;quot;&amp;quot;;&lt;br /&gt;
            tokens = llListReplaceList( tokens,  [newString], nextQuote, endQuote );&lt;br /&gt;
        } else {&lt;br /&gt;
            //Something broke.&lt;br /&gt;
        }&lt;br /&gt;
        nextQuote = llListFindList( tokens, [&amp;quot;\&amp;quot;&amp;quot;] );&lt;br /&gt;
        termChar = nextQuote + 1 + llListFindList( llList2List( tokens, nextQuote + 1, -1 ), [ &amp;quot;;&amp;quot; ] );&lt;br /&gt;
        endQuote = nextQuote + 1 + llListFindList( llList2List( tokens, nextQuote + 1, -1 ), [ &amp;quot;\&amp;quot;&amp;quot; ] );&lt;br /&gt;
    }&lt;br /&gt;
    while(~nextQuote);&lt;br /&gt;
    return tokens;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
    Commands&lt;br /&gt;
    &lt;br /&gt;
    .add &amp;quot;Title of line&amp;quot; &amp;quot;Line String&amp;quot; &amp;quot;Seperator&amp;quot; EncapsulatorId&lt;br /&gt;
    .add &amp;quot;Title&amp;quot; &amp;quot;String&amp;quot;&lt;br /&gt;
        -Adds a new line with the default seperator and square bracket encapsulators.&lt;br /&gt;
    &lt;br /&gt;
    .edit Line# title &amp;quot;New Title&amp;quot;&lt;br /&gt;
    .edit Line# string &amp;quot;New String&amp;quot;&lt;br /&gt;
    .edit Line# sep &amp;quot;New Seperator&amp;quot;&lt;br /&gt;
    .edit Line# enc newEncapsulatorId&lt;br /&gt;
    .edit Line# &amp;quot;New Title&amp;quot; &amp;quot;New String&amp;quot; &amp;quot;New Seperator&amp;quot; newEncapsulatorId&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    .clear&lt;br /&gt;
        -Clears the display&lt;br /&gt;
    &lt;br /&gt;
    .delete Line#&lt;br /&gt;
    &lt;br /&gt;
    .reg_enc &amp;quot;Left&amp;quot; &amp;quot;Right&amp;quot;&lt;br /&gt;
        -Registers a new encapsulator.&lt;br /&gt;
    &lt;br /&gt;
    .list_enc&lt;br /&gt;
        -List all registered encapsulators.&lt;br /&gt;
        &lt;br /&gt;
    .list_display&lt;br /&gt;
        -For debugging purposes.&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    You can change the activator at the top of the script. Or set it blank.&lt;br /&gt;
    In which case either exclude it from your queries entirely, or if it was changed, &lt;br /&gt;
    use the new activator in place of the period in the examples.&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
*/&lt;br /&gt;
default{&lt;br /&gt;
    on_rez(integer Start){&lt;br /&gt;
        //Probably shouldn&#039;t reset to prevent data loss.&lt;br /&gt;
        //But your choice.&lt;br /&gt;
        //llResetScript();&lt;br /&gt;
    }&lt;br /&gt;
    state_entry(){&lt;br /&gt;
        llListen(0, &amp;quot;&amp;quot;, llGetOwner(), &amp;quot;&amp;quot;);//Will only listen to the owner on channel 0.&lt;br /&gt;
    }&lt;br /&gt;
    listen(integer Chanenl, string Name, key Uuid, string Data){&lt;br /&gt;
        if(activationTrigger == &amp;quot;&amp;quot; || llGetSubString(Data, 0, 0) == activationTrigger){&lt;br /&gt;
            list Tokens = safeParseToTokens(llDeleteSubString(Data,0,0));&lt;br /&gt;
            if(llList2Integer(Tokens, 0) == -1){&lt;br /&gt;
                llOwnerSay(&amp;quot;Parse Error: &amp;quot;+llList2String(Tokens, 1));&lt;br /&gt;
                return;&lt;br /&gt;
            }&lt;br /&gt;
            string Command = llToLower(llList2String(Tokens, 0));&lt;br /&gt;
            integer Line = (integer)llList2String(Tokens, 1);&lt;br /&gt;
            if(Command == &amp;quot;add&amp;quot;){&lt;br /&gt;
                if(llGetListLength(Tokens) == 5)&lt;br /&gt;
                    addLine(llList2String(Tokens, 1), llList2String(Tokens, 2), llList2String(Tokens, 3), (integer)llList2String(Tokens, 4));&lt;br /&gt;
                else&lt;br /&gt;
                    addLine(llList2String(Tokens, 1), llList2String(Tokens, 2), DEFAULT_SEPARATOR, ENC_SQUARE_BRACKETS);&lt;br /&gt;
            }&lt;br /&gt;
            else if(Command == &amp;quot;edit&amp;quot;){&lt;br /&gt;
                if(!validLine(Line))return;&lt;br /&gt;
                string subCmd = llToLower(llList2String(Tokens, 2));&lt;br /&gt;
                if(subCmd == &amp;quot;title&amp;quot;)&lt;br /&gt;
                    editLineTitle(Line, llList2String(Tokens, 3));&lt;br /&gt;
                else if(subCmd == &amp;quot;string&amp;quot;)&lt;br /&gt;
                    editLineString(Line, llList2String(Tokens, 3));&lt;br /&gt;
                else if(subCmd == &amp;quot;sep&amp;quot;)&lt;br /&gt;
                    editLineSeparator(Line, llList2String(Tokens, 3));&lt;br /&gt;
                else if(subCmd == &amp;quot;enc&amp;quot;)&lt;br /&gt;
                    editLineEncapsulator(Line, (integer)llList2String(Tokens, 3));&lt;br /&gt;
                else if(llGetListLength(Tokens) == 6)&lt;br /&gt;
                    editLine(Line, llList2String(Tokens, 2), llList2String(Tokens, 3), llList2String(Tokens, 4), (integer)llList2String(Tokens, 5));&lt;br /&gt;
                else&lt;br /&gt;
                    llOwnerSay(&amp;quot;Invalid edit query.&amp;quot;); &lt;br /&gt;
            }&lt;br /&gt;
            else if(Command == &amp;quot;delete&amp;quot;){&lt;br /&gt;
                if(!validLine(Line))return;&lt;br /&gt;
                deleteLine(Line);&lt;br /&gt;
                llOwnerSay(&amp;quot;Deleted line number &amp;quot;+(string)Line+&amp;quot;.&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else if(Command == &amp;quot;clear&amp;quot;){&lt;br /&gt;
                displayStrings = [];&lt;br /&gt;
            }&lt;br /&gt;
            else if(Command == &amp;quot;reg_enc&amp;quot;){&lt;br /&gt;
                integer Id = 0;&lt;br /&gt;
                if((Id=registerNewEncapsulator(llList2String(Tokens,1), llList2String(Tokens,2))) != 0){&lt;br /&gt;
                    llOwnerSay(&amp;quot;Encapsulator registered with ID &#039;&amp;quot;+(string)Id+&amp;quot;&#039;.&amp;quot;);&lt;br /&gt;
                }&lt;br /&gt;
                else{&lt;br /&gt;
                    llOwnerSay(&amp;quot;Encapsulator failed to register. Already exists in the reference.&amp;quot;);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            else if(Command == &amp;quot;list_display&amp;quot;){&lt;br /&gt;
                llOwnerSay(buildDisplay());&lt;br /&gt;
            }&lt;br /&gt;
            else if(Command == &amp;quot;list_enc&amp;quot;){&lt;br /&gt;
                llOwnerSay(buildEncapsulatorList());&lt;br /&gt;
            }&lt;br /&gt;
            &lt;br /&gt;
            updateDisplay();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a simple 7 line displayer script that is easy to use and if you ask me very useful&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
//Scripting By Akinori Kimagawa feel free to change the titles and commands...enjoy this script&lt;br /&gt;
 &lt;br /&gt;
string title;&lt;br /&gt;
string line1t;&lt;br /&gt;
string line2t;&lt;br /&gt;
string line3t;&lt;br /&gt;
string line4t;&lt;br /&gt;
string line5t;&lt;br /&gt;
string line6t;&lt;br /&gt;
string line1;&lt;br /&gt;
string line2;&lt;br /&gt;
string line3;&lt;br /&gt;
string line4;&lt;br /&gt;
string line5;&lt;br /&gt;
string line6;&lt;br /&gt;
update()&lt;br /&gt;
{&lt;br /&gt;
llSetText(&amp;quot;[&amp;quot;+title+&amp;quot;+]&lt;br /&gt;
&amp;quot;+&amp;quot;[&amp;quot;+line1t+&amp;quot;:&amp;quot;+line1+&amp;quot;]&lt;br /&gt;
&amp;quot;+&amp;quot;[&amp;quot;+line2t+&amp;quot;:&amp;quot;+line2+&amp;quot;]&lt;br /&gt;
&amp;quot;+&amp;quot;[&amp;quot;+line3t+&amp;quot;:&amp;quot;+line3+&amp;quot;]&lt;br /&gt;
&amp;quot;+&amp;quot;[&amp;quot;+line4t+&amp;quot;:&amp;quot;+line4+&amp;quot;]&lt;br /&gt;
&amp;quot;+&amp;quot;[&amp;quot;+line5t+&amp;quot;:&amp;quot;+line5+&amp;quot;]&lt;br /&gt;
&amp;quot;+&amp;quot;[&amp;quot;+line6t+&amp;quot;:&amp;quot;+line6+&amp;quot;]&amp;quot;&lt;br /&gt;
,&amp;lt;1,1,1&amp;gt;,50);&lt;br /&gt;
}&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llListen(0,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
        llListen(11,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
        llSetTimerEvent(-0.1);&lt;br /&gt;
    }&lt;br /&gt;
    timer()&lt;br /&gt;
    {&lt;br /&gt;
        update();&lt;br /&gt;
}&lt;br /&gt;
    listen(integer chnl,string name2,key id,string msg)&lt;br /&gt;
{&lt;br /&gt;
    if(chnl == 0)&lt;br /&gt;
    {&lt;br /&gt;
    if(id == llGetOwner())&lt;br /&gt;
    {&lt;br /&gt;
     list parse = llParseString2List(msg,[&amp;quot;.&amp;quot;],[]);&lt;br /&gt;
string cmnd = llList2String(parse,0);&lt;br /&gt;
string part = llList2String(parse,1);&lt;br /&gt;
 &lt;br /&gt;
if(cmnd == &amp;quot;stitle&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
    title = part;&lt;br /&gt;
}&lt;br /&gt;
if(cmnd == &amp;quot;sline1&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
    line1 = part;&lt;br /&gt;
    llSetObjectName(part);&lt;br /&gt;
}&lt;br /&gt;
if(cmnd == &amp;quot;sline2&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
    line2 = part;&lt;br /&gt;
}&lt;br /&gt;
if(cmnd == &amp;quot;sline3&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
    line3 = part;&lt;br /&gt;
}&lt;br /&gt;
if(cmnd == &amp;quot;sline4&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
    line4 = part;&lt;br /&gt;
}&lt;br /&gt;
if(cmnd == &amp;quot;sline5&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
    line5 = part;&lt;br /&gt;
}&lt;br /&gt;
if(cmnd == &amp;quot;sline6&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
    line6 = part;&lt;br /&gt;
}&lt;br /&gt;
if(cmnd == &amp;quot;sline1t&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
    line1t = part;&lt;br /&gt;
}&lt;br /&gt;
if(cmnd == &amp;quot;sline2t&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
    line2t = part;&lt;br /&gt;
}&lt;br /&gt;
if(cmnd == &amp;quot;sline3t&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
    line3t = part;&lt;br /&gt;
}&lt;br /&gt;
if(cmnd == &amp;quot;sline4t&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
    line4t = part;&lt;br /&gt;
}&lt;br /&gt;
if(cmnd == &amp;quot;sline5t&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
    line5t = part;&lt;br /&gt;
}&lt;br /&gt;
if(cmnd == &amp;quot;sline6t&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
    line6t = part;&lt;br /&gt;
    }&lt;br /&gt;
   }&lt;br /&gt;
  }&lt;br /&gt;
 }&lt;br /&gt;
state help&lt;br /&gt;
}&lt;br /&gt;
state help&lt;br /&gt;
{&lt;br /&gt;
    changed(integer change)&lt;br /&gt;
    {&lt;br /&gt;
        if(change&amp;amp;CHANGED_OWNER)&lt;br /&gt;
        {&lt;br /&gt;
            llGiveInventory(llGetOwner(),&amp;quot;HELP NOTE NAME&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Niles Argus</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Group_key_finder&amp;diff=353073</id>
		<title>Group key finder</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Group_key_finder&amp;diff=353073"/>
		<updated>2009-05-11T22:41:16Z</updated>

		<summary type="html">&lt;p&gt;Niles Argus: /* The Group Key Finder */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The Group Key Finder ==&lt;br /&gt;
&lt;br /&gt;
Place this script in a prim and touch it to find out the set group&#039;s key.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;lsl&amp;gt;//Emmas Seetan&lt;br /&gt;
 //21 September, 16:41&lt;br /&gt;
 &lt;br /&gt;
 default&lt;br /&gt;
 {&lt;br /&gt;
     state_entry()&lt;br /&gt;
     {&lt;br /&gt;
        llSetText(&amp;quot;Touch to learn\nGroup Key&amp;quot;, &amp;lt;1,1,1&amp;gt;, 1); //Like it says&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     touch_start(integer total_number)&lt;br /&gt;
     {&lt;br /&gt;
         list a = llGetObjectDetails(llGetKey(), [OBJECT_GROUP]);&lt;br /&gt;
         string b = llList2String(a,0);&lt;br /&gt;
         if (b == &amp;quot;00000000-0000-0000-0000-000000000000&amp;quot;) //Black UUID, group key will fill this in&lt;br /&gt;
         {&lt;br /&gt;
             llWhisper(0, &amp;quot;Please set the Group for this object in EDIT under the GENERAL tab first.&amp;quot;); //Set the group you  want&lt;br /&gt;
         }&lt;br /&gt;
         else&lt;br /&gt;
         {&lt;br /&gt;
             llWhisper(0, &amp;quot;This object&#039;s Group Key is: &amp;quot; + b); //Blank gets replaced by the group&#039;s UUID&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 }&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Slightly Optimized Version ==&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
// Niles Argus [May 11, 2009]&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llSetText(&amp;quot;Touch me to find my group&#039;s key...&amp;quot;, &amp;lt;1,1,1&amp;gt;, 1.0);&lt;br /&gt;
    }&lt;br /&gt;
    touch_start(integer total_number)&lt;br /&gt;
    {&lt;br /&gt;
        key group = llList2Key(llGetObjectDetails(llGetKey(), [OBJECT_GROUP]),0);&lt;br /&gt;
        string result = &amp;quot;This object is not set to a group.&amp;quot;;&lt;br /&gt;
        if(group != NULL_KEY)&lt;br /&gt;
            result = &amp;quot;This object&#039;s group&#039;s key is &amp;quot; + (string)group;&lt;br /&gt;
        llWhisper(0, result);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;/div&gt;</summary>
		<author><name>Niles Argus</name></author>
	</entry>
</feed>