<?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=Aria+Twig</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=Aria+Twig"/>
	<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/wiki/Special:Contributions/Aria_Twig"/>
	<updated>2026-07-27T03:20:39Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Category:LSL_Alpha&amp;diff=1086022</id>
		<title>Category:LSL Alpha</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Category:LSL_Alpha&amp;diff=1086022"/>
		<updated>2010-10-30T08:00:13Z</updated>

		<summary type="html">&lt;p&gt;Aria Twig: same.. terminology&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header|ml=*}}&lt;br /&gt;
The term &amp;quot;Alpha&amp;quot; refers to how translucent an object (or, in this case, a prim) is. In Second Life, the alpha property is set by the scripting functions [[llSetAlpha]], [[llSetLinkAlpha]], [[llSetPrimitiveParams]], and [[llSetLinkPrimitiveParams]]. These functions use a [[float]] value. When set to &#039;&#039;&#039;0.0&#039;&#039;&#039;, the object/prim is fully invisible. When set to &#039;&#039;&#039;1.0&#039;&#039;&#039;, the object is opaque.&lt;br /&gt;
Sometimes, [[Resident]]s refer to a transparent [[texture]] as &#039;&#039;alpha texture&#039;&#039;. This is a texture with an alpha map, not to be confused with this prim property. See [[llSetTexture]] and [[TEXTURE_TRANSPARENT]] instead.&lt;br /&gt;
&lt;br /&gt;
==Build Mode== &lt;br /&gt;
In Build Mode, the alpha is represented by a percentage, ranging from &#039;&#039;&#039;0%&#039;&#039;&#039; to &#039;&#039;&#039;90%&#039;&#039;&#039;. &lt;br /&gt;
(&#039;&#039;&#039;Note&#039;&#039;&#039;: The &#039;&#039;&#039;90%&#039;&#039;&#039; cap is for viewers that have been officially released by Linden Labs)&lt;br /&gt;
==Examples==&lt;br /&gt;
Below are examples on how one may set the alpha of an object. &lt;br /&gt;
{|cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;6&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #aaaaaa; margin: 1em 1em 1em 0pt; background-color: #F8F8FF; border-collapse: collapse&amp;quot;&lt;br /&gt;
!style=&amp;quot;background-color: #D2D3FF&amp;quot; | Function&lt;br /&gt;
!style=&amp;quot;background-color: #D2D3FF&amp;quot; | LSL Example&lt;br /&gt;
!style=&amp;quot;background-color: #D2D3FF&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| [[llSetAlpha]]&lt;br /&gt;
| &amp;lt;lsl&amp;gt;llSetAlpha(1.0, ALL_SIDES);&amp;lt;/lsl&amp;gt;&lt;br /&gt;
| This will set the object&#039;s sides&#039; alpha to opaque, or &#039;&#039;&#039;0%&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| [[llSetLinkAlpha]]&lt;br /&gt;
| &amp;lt;lsl&amp;gt;llSetLinkAlpha(LINK_SET, 0.0, ALL_SIDES);&amp;lt;/lsl&amp;gt;&lt;br /&gt;
| This will set link-set&#039;s alpha to transparent, or &#039;&#039;&#039;100%&#039;&#039;&#039;. (&#039;&#039;&#039;Note&#039;&#039;&#039;: The Viewers released by Linden Labs are unable to set the alpha of an object to fully transparent without a script; the limit is caped at &#039;&#039;&#039;90%&#039;&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
| [[llSetPrimitiveParams]]&lt;br /&gt;
| &amp;lt;lsl&amp;gt;llSetPrimitiveParams([PRIM_COLOR, ALL_SIDES, llGetColor(ALL_SIDES), 0.5]);&amp;lt;/lsl&amp;gt;&lt;br /&gt;
| This will set the object&#039;s alpha to translucent, or &#039;&#039;&#039;50%&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| [[llSetLinkPrimitiveParams]]&lt;br /&gt;
| &amp;lt;lsl&amp;gt;llSetLinkPrimitiveParams(LINK_SET, [PRIM_COLOR, ALL_SIDES, llGetColor(ALL_SIDES), 0.5]);&amp;lt;/lsl&amp;gt;&lt;br /&gt;
| This will set the link-set&#039;s alpha to translucent, or &#039;&#039;&#039;50%&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{LSLC|}}{{LSLC|Face|*Alpha}}&lt;/div&gt;</summary>
		<author><name>Aria Twig</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Category:LSL_Alpha&amp;diff=1086012</id>
		<title>Category:LSL Alpha</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Category:LSL_Alpha&amp;diff=1086012"/>
		<updated>2010-10-30T07:55:45Z</updated>

		<summary type="html">&lt;p&gt;Aria Twig: same, opaque fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header|ml=*}}&lt;br /&gt;
The term &amp;quot;Alpha&amp;quot; refers to how opaque or transparent an object (or, in this case, a prim) is. In Second Life, the alpha property is set by the scripting functions [[llSetAlpha]], [[llSetLinkAlpha]], [[llSetPrimitiveParams]], and [[llSetLinkPrimitiveParams]]. These functions use a [[float]] value. When set to &#039;&#039;&#039;0.0&#039;&#039;&#039;, the object/prim is fully invisible. When set to &#039;&#039;&#039;1.0&#039;&#039;&#039;, the object is opaque.&lt;br /&gt;
Sometimes, [[Resident]]s refer to a transparent [[texture]] as &#039;&#039;alpha texture&#039;&#039;. This is not to be confused with this prim property. See [[llSetTexture]] and [[TEXTURE_TRANSPARENT]] instead.&lt;br /&gt;
&lt;br /&gt;
==Build Mode== &lt;br /&gt;
In Build Mode, the alpha is represented by a percentage, ranging from &#039;&#039;&#039;0%&#039;&#039;&#039; to &#039;&#039;&#039;90%&#039;&#039;&#039;. &lt;br /&gt;
(&#039;&#039;&#039;Note&#039;&#039;&#039;: The &#039;&#039;&#039;90%&#039;&#039;&#039; cap is for viewers that have been officially released by Linden Labs)&lt;br /&gt;
==Examples==&lt;br /&gt;
Below are examples on how one may set the alpha of an object. &lt;br /&gt;
{|cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;6&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #aaaaaa; margin: 1em 1em 1em 0pt; background-color: #F8F8FF; border-collapse: collapse&amp;quot;&lt;br /&gt;
!style=&amp;quot;background-color: #D2D3FF&amp;quot; | Function&lt;br /&gt;
!style=&amp;quot;background-color: #D2D3FF&amp;quot; | LSL Example&lt;br /&gt;
!style=&amp;quot;background-color: #D2D3FF&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| [[llSetAlpha]]&lt;br /&gt;
| &amp;lt;lsl&amp;gt;llSetAlpha(1.0, ALL_SIDES);&amp;lt;/lsl&amp;gt;&lt;br /&gt;
| This will set the object&#039;s sides&#039; alpha to opaque, or &#039;&#039;&#039;0%&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| [[llSetLinkAlpha]]&lt;br /&gt;
| &amp;lt;lsl&amp;gt;llSetLinkAlpha(LINK_SET, 0.0, ALL_SIDES);&amp;lt;/lsl&amp;gt;&lt;br /&gt;
| This will set link-set&#039;s alpha to fully transparent, or &#039;&#039;&#039;100%&#039;&#039;&#039;. (&#039;&#039;&#039;Note&#039;&#039;&#039;: The Viewers released by Linden Labs are unable to set the alpha of an object to fully transparent without a script; the limit is caped at &#039;&#039;&#039;90%&#039;&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
| [[llSetPrimitiveParams]]&lt;br /&gt;
| &amp;lt;lsl&amp;gt;llSetPrimitiveParams([PRIM_COLOR, ALL_SIDES, llGetColor(ALL_SIDES), 0.5]);&amp;lt;/lsl&amp;gt;&lt;br /&gt;
| This will set the object&#039;s alpha to translucent, or &#039;&#039;&#039;50%&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| [[llSetLinkPrimitiveParams]]&lt;br /&gt;
| &amp;lt;lsl&amp;gt;llSetLinkPrimitiveParams(LINK_SET, [PRIM_COLOR, ALL_SIDES, llGetColor(ALL_SIDES), 0.5]);&amp;lt;/lsl&amp;gt;&lt;br /&gt;
| This will set the link-set&#039;s alpha to translucent, or &#039;&#039;&#039;50%&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{LSLC|}}{{LSLC|Face|*Alpha}}&lt;/div&gt;</summary>
		<author><name>Aria Twig</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Category:LSL_Alpha&amp;diff=1086002</id>
		<title>Category:LSL Alpha</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Category:LSL_Alpha&amp;diff=1086002"/>
		<updated>2010-10-30T07:45:00Z</updated>

		<summary type="html">&lt;p&gt;Aria Twig: /* Examples */ misuse of &amp;#039;opaque&amp;#039; and percentages&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header|ml=*}}&lt;br /&gt;
The term &amp;quot;Alpha&amp;quot; refers to how opaque or transparent an object (or, in this case, a prim) is. In Second Life, the alpha property is set by the scripting functions [[llSetAlpha]], [[llSetLinkAlpha]], [[llSetPrimitiveParams]], and [[llSetLinkPrimitiveParams]]. These functions use a [[float]] value. When set to &#039;&#039;&#039;0.0&#039;&#039;&#039;, the object/prim is fully invisible. When set to &#039;&#039;&#039;1.0&#039;&#039;&#039;, the object is non-transparent.&lt;br /&gt;
Sometimes, [[Resident]]s refer to a transparent [[texture]] as &#039;&#039;alpha texture&#039;&#039;. This is not to be confused with this prim property. See [[llSetTexture]] and [[TEXTURE_TRANSPARENT]] instead.&lt;br /&gt;
&lt;br /&gt;
==Build Mode== &lt;br /&gt;
In Build Mode, the alpha is represented by a percentage, ranging from &#039;&#039;&#039;0%&#039;&#039;&#039; to &#039;&#039;&#039;90%&#039;&#039;&#039;. &lt;br /&gt;
(&#039;&#039;&#039;Note&#039;&#039;&#039;: The &#039;&#039;&#039;90%&#039;&#039;&#039; cap is for viewers that have been officially released by Linden Labs)&lt;br /&gt;
==Examples==&lt;br /&gt;
Below are examples on how one may set the alpha of an object. &lt;br /&gt;
{|cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;6&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border: 1px solid #aaaaaa; margin: 1em 1em 1em 0pt; background-color: #F8F8FF; border-collapse: collapse&amp;quot;&lt;br /&gt;
!style=&amp;quot;background-color: #D2D3FF&amp;quot; | Function&lt;br /&gt;
!style=&amp;quot;background-color: #D2D3FF&amp;quot; | LSL Example&lt;br /&gt;
!style=&amp;quot;background-color: #D2D3FF&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| [[llSetAlpha]]&lt;br /&gt;
| &amp;lt;lsl&amp;gt;llSetAlpha(1.0, ALL_SIDES);&amp;lt;/lsl&amp;gt;&lt;br /&gt;
| This will set the object&#039;s sides&#039; alpha to opaque, or &#039;&#039;&#039;0%&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| [[llSetLinkAlpha]]&lt;br /&gt;
| &amp;lt;lsl&amp;gt;llSetLinkAlpha(LINK_SET, 0.0, ALL_SIDES);&amp;lt;/lsl&amp;gt;&lt;br /&gt;
| This will set link-set&#039;s alpha to fully transparent, or &#039;&#039;&#039;100%&#039;&#039;&#039;. (&#039;&#039;&#039;Note&#039;&#039;&#039;: The Viewers released by Linden Labs are unable to set the alpha of an object to fully transparent without a script; the limit is caped at &#039;&#039;&#039;90%&#039;&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
| [[llSetPrimitiveParams]]&lt;br /&gt;
| &amp;lt;lsl&amp;gt;llSetPrimitiveParams([PRIM_COLOR, ALL_SIDES, llGetColor(ALL_SIDES), 0.5]);&amp;lt;/lsl&amp;gt;&lt;br /&gt;
| This will set the object&#039;s alpha to translucent, or &#039;&#039;&#039;50%&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| [[llSetLinkPrimitiveParams]]&lt;br /&gt;
| &amp;lt;lsl&amp;gt;llSetLinkPrimitiveParams(LINK_SET, [PRIM_COLOR, ALL_SIDES, llGetColor(ALL_SIDES), 0.5]);&amp;lt;/lsl&amp;gt;&lt;br /&gt;
| This will set the link-set&#039;s alpha to translucent, or &#039;&#039;&#039;50%&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{LSLC|}}{{LSLC|Face|*Alpha}}&lt;/div&gt;</summary>
		<author><name>Aria Twig</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlList2CSV&amp;diff=1085842</id>
		<title>LlList2CSV</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlList2CSV&amp;diff=1085842"/>
		<updated>2010-10-29T19:45:53Z</updated>

		<summary type="html">&lt;p&gt;Aria Twig: fixed a wikipedia link to disambiguation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Function&lt;br /&gt;
|func_id=195|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|func=llList2CSV|return_type=string|p1_type=list|p1_name=src&lt;br /&gt;
|func_footnote=More precisely the values are separated with a comma and a space (&amp;quot;, &amp;quot;).&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
This function&#039;s functionality is equivalent to &amp;lt;code style=&amp;quot;white-space: nowrap;&amp;quot;&amp;gt;[[llDumpList2String]](&#039;&#039;&#039;src&#039;&#039;&#039;, &amp;quot;, &amp;quot;);&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The result of this function is more or less the {{Wikipedia|Comma-separated_values|CSV}} format, but it does not conform in all its details.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
To reverse the process use [[llCSV2List]].  But see the Caveat.&lt;br /&gt;
|func_desc&lt;br /&gt;
|return_text=of comma separated values taken in order from &#039;&#039;&#039;src&#039;&#039;&#039;.&lt;br /&gt;
|spec&lt;br /&gt;
|caveats=*[[llCSV2List]] will not reverse the process if there are commas in any of the original strings.  One way around this is to first use [[llEscapeURL]] on any user-supplied strings before adding them to the list.  [[llUnescapeURL]] will reverse [[llEscapeURL]].&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&amp;lt;lsl&amp;gt;default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        list my_list = [1, 2.0, &amp;quot;a string&amp;quot;, llGetPos(), llGetRot(), llGetOwner()];&lt;br /&gt;
        llOwnerSay(llList2CSV(my_list));        &lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions={{LSL DefineRow||[[llCSV2List]]}}&lt;br /&gt;
{{LSL DefineRow||[[llDumpList2String]]}}&lt;br /&gt;
{{LSL DefineRow||[[llParseString2List]]}}&lt;br /&gt;
{{LSL DefineRow||[[llParseStringKeepNulls]]}}&lt;br /&gt;
|also_events&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_articles={{LSL DefineRow||[[Typecast]]}}&lt;br /&gt;
|notes&lt;br /&gt;
|permission&lt;br /&gt;
|negative_index&lt;br /&gt;
|sort=List2CSV&lt;br /&gt;
|cat1=List&lt;br /&gt;
|cat2=String&lt;br /&gt;
|cat3=Data Conversion&lt;br /&gt;
|cat4=CSV&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Aria Twig</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlCSV2List&amp;diff=1085832</id>
		<title>LlCSV2List</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlCSV2List&amp;diff=1085832"/>
		<updated>2010-10-29T19:45:02Z</updated>

		<summary type="html">&lt;p&gt;Aria Twig: fixed a wikipedia link to disambiguation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Function&lt;br /&gt;
|func_id=196|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|func=llCSV2List|return_type=list|p1_type=string|p1_name=src&lt;br /&gt;
|func_footnote=&lt;br /&gt;
To convert a list into a comma-separated string use [[llList2CSV]].&amp;lt;br/&amp;gt;&lt;br /&gt;
Do not confuse this function with the {{Wikipedia|Comma-separated_values|CSV}} format, it is &#039;&#039;not&#039;&#039; the CSV format.&lt;br /&gt;
|func_desc=This function takes a string of values separated by commas, and turns it into a list.&lt;br /&gt;
|return_text=made by parsing &#039;&#039;&#039;src&#039;&#039;&#039;, a string of comma separated values.&lt;br /&gt;
|spec=&lt;br /&gt;
=== Vectors &amp;amp; Rotations ===&lt;br /&gt;
Anything between &amp;quot;&amp;lt;&amp;quot; and &amp;quot;&amp;gt;&amp;quot; is considered a single value regardless of the existence of a comma between. &lt;br /&gt;
&lt;br /&gt;
This ensures that [[vector]]s and [[rotation]]s get treated as a single value, with no additional cleanup needed afterward.&lt;br /&gt;
&lt;br /&gt;
Note, though, that for every &amp;quot;&amp;lt;&amp;quot; there needs to be a corresponding &amp;quot;&amp;gt;&amp;quot; or it will consume the rest of the string. For example,&lt;br /&gt;
{{{!}}&lt;br /&gt;
{{LSL DefineRow||&amp;amp;#32;&amp;lt;code&amp;gt;llCSV2List(&amp;quot;&amp;lt;&amp;gt;,&amp;gt;,a&amp;quot;)&amp;lt;/code&amp;gt;|returns &amp;lt;code&amp;gt;[&amp;quot;&amp;lt;&amp;gt;&amp;quot;, &amp;quot;&amp;gt;&amp;quot;, &amp;quot;a&amp;quot;]&amp;lt;/code&amp;gt;|(Second &amp;quot;&amp;gt;&amp;quot; is isolated)}}&lt;br /&gt;
{{LSL DefineRow||&amp;amp;#32;&amp;lt;code&amp;gt;llCSV2List(&amp;quot;&amp;lt;&amp;lt;&amp;gt;,&amp;gt;,a&amp;quot;)&amp;lt;/code&amp;gt;|returns &amp;lt;code&amp;gt;[&amp;quot;&amp;lt;&amp;lt;&amp;gt;,&amp;gt;&amp;quot;, &amp;quot;a&amp;quot;]&amp;lt;/code&amp;gt;|(Regularly paired)}}&lt;br /&gt;
{{LSL DefineRow||&amp;amp;#32;&amp;lt;code&amp;gt;llCSV2List(&amp;quot;&amp;lt;&amp;lt;&amp;lt;&amp;gt;,&amp;gt;,a&amp;quot;)&amp;lt;/code&amp;gt;|returns &amp;lt;code&amp;gt;[&amp;quot;&amp;lt;&amp;lt;&amp;lt;&amp;gt;,&amp;gt;,a&amp;quot;]&amp;lt;/code&amp;gt;|(Third &amp;quot;&amp;lt;&amp;quot; lost its opposite one)}}&lt;br /&gt;
{{!}}}&lt;br /&gt;
&lt;br /&gt;
=== Types ===&lt;br /&gt;
&lt;br /&gt;
The function makes no assumptions about what the list entry types should be, all elements in the resulting list will be strings. It is important to know that the llList2* functions implicit typecasts do not work the same as explicit typecast. The following table gives code examples for each type that will yield the best results.&lt;br /&gt;
&lt;br /&gt;
{{{!}} {{Prettytable|style=margin-top:0;}}&lt;br /&gt;
{{!}}- {{Hl2}}&lt;br /&gt;
! Target&lt;br /&gt;
! Code&lt;br /&gt;
! Description&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}[[integer]]&lt;br /&gt;
{{!}}&amp;lt;code&amp;gt;(integer)[[llList2String]](mlist, mint)&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}}[[llList2Integer]] does not support the hex format&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}[[float]]&lt;br /&gt;
{{!}}&amp;lt;code&amp;gt;(float)[[llList2String]](mlist, mint)&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}}[[llList2Float]] does not support the scientific or hexadecimal notations&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}[[string]]&lt;br /&gt;
{{!}}&amp;lt;code&amp;gt;[[llList2String]](mlist, mint)&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}}Always Safe&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}[[key]]&lt;br /&gt;
{{!}}&amp;lt;code&amp;gt;[[llList2Key]](mlist, mint)&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}}Always Safe&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}[[vector]]&lt;br /&gt;
{{!}}&amp;lt;code&amp;gt;(vector)[[llList2String]](mlist, mint)&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}}[[llList2Vector]] will return a zero vector&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}[[rotation]]&lt;br /&gt;
{{!}}&amp;lt;code&amp;gt;(rotation)[[llList2String]](mlist, mint)&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}}[[llList2Rot]] will return a zero rotation&lt;br /&gt;
{{!}}}&lt;br /&gt;
&lt;br /&gt;
=== Whitespace ===&lt;br /&gt;
&lt;br /&gt;
llCSV2List consumes the first leading space from all values :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;list tmp = llCSV2List(&amp;quot;first , second , third&amp;quot;);&lt;br /&gt;
//returns [&amp;quot;first &amp;quot;,&amp;quot;second &amp;quot;,&amp;quot;third&amp;quot;]&lt;br /&gt;
//not [&amp;quot;first &amp;quot;,&amp;quot; second &amp;quot;,&amp;quot; third&amp;quot;]&amp;lt;/lsl&amp;gt;&lt;br /&gt;
|caveats=&lt;br /&gt;
* If a &amp;quot;&amp;lt;&amp;quot; does not have a matching &amp;quot;&amp;gt;&amp;quot;, the remainder of the string will be a single value, even if the &amp;quot;&amp;lt;&amp;quot; is in the middle of the value, see [[#Vectors_.26_Rotations|Vectors &amp;amp; Rotations]] for further details.&lt;br /&gt;
* All items in the returned list are strings.&lt;br /&gt;
* If an empty string is parsed, the result will a list containing an empty string: [&amp;quot;&amp;quot;] (not an empty list).&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&lt;br /&gt;
&amp;lt;lsl&amp;gt;default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        string csv = &amp;quot;first,second,third&amp;quot;;&lt;br /&gt;
        list my_list = llCSV2List(csv);&lt;br /&gt;
        llOwnerSay(&amp;quot;CSV: &amp;quot; + csv);&lt;br /&gt;
        integer i;&lt;br /&gt;
        integer num_list=llGetListLength(my_list);&lt;br /&gt;
        for (i=0; i&amp;lt;num_list; ++i)&lt;br /&gt;
        {&lt;br /&gt;
            llOwnerSay(&amp;quot;my_list[&amp;quot; + (string)i + &amp;quot;]: &amp;quot; + llList2String(my_list,i));&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions={{LSL DefineRow||[[llList2CSV]]|}}&lt;br /&gt;
{{LSL DefineRow||[[llDumpList2String]]|}}&lt;br /&gt;
{{LSL DefineRow||[[llParseString2List]]|}}&lt;br /&gt;
{{LSL DefineRow||[[llParseStringKeepNulls]]|}}&lt;br /&gt;
|also_events&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_articles={{LSL DefineRow||[[Typecast]]|}}&lt;br /&gt;
|notes=To use separators other than commas (especially if you can&#039;t predict when a user might have sneaked a comma into data they supply the script), use [[llParseString2List]] instead, which allows you to specify separators other than commas. [[llParseString2List]] unfortunately does not support the special parsing required for handling rotations and vectors, nor does it consume leading and trailing whitespace.&lt;br /&gt;
|permission&lt;br /&gt;
|negative_index&lt;br /&gt;
|sort=CSV2List&lt;br /&gt;
|cat1=List&lt;br /&gt;
|cat2=String&lt;br /&gt;
|cat3=Data Conversion&lt;br /&gt;
|cat4=CSV&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Aria Twig</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Category:LSL_Key&amp;diff=1082632</id>
		<title>Category:LSL Key</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Category:LSL_Key&amp;diff=1082632"/>
		<updated>2010-10-27T18:26:09Z</updated>

		<summary type="html">&lt;p&gt;Aria Twig: linkified llGetKey&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header|ml=*}}{{LSLC|}}{{LSLC|Types}}&lt;br /&gt;
&lt;br /&gt;
A key is a unique identifier in Second Life for anything mostly, be it a prim, avatar, texture, etc.&lt;br /&gt;
&lt;br /&gt;
You may see key referred to as [[UUID]], UID, &amp;quot;Asset UUID&amp;quot;, or &amp;quot;asset-ID.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The key itself is formed of hexidecimal characters (a-f and 0-9) and each section of the key is broken up by dashes.&lt;br /&gt;
&lt;br /&gt;
An example key:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;quot;a822ff2b-ff02-461d-b45d-dcd10a2de0c2&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Getting a Key&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
There are several ways to acquire the key of something:&amp;lt;br /&amp;gt;&lt;br /&gt;
1) Having someone supply it to you;&amp;lt;br /&amp;gt;&lt;br /&gt;
2) Using a native LSL function such as [[llGetKey]], etc.&amp;lt;br /&amp;gt;&lt;br /&gt;
3) In your inventory, right-clicking over something and choosing &amp;quot;Copy Asset UUID.&amp;quot; Note this will only work on items that you have full permissions to.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Converting Keys&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When a key is supplied to you as a text string, you convert it to the key data type like this:&lt;br /&gt;
&lt;br /&gt;
(key)&amp;quot;a822ff2b-ff02-461d-b45d-dcd10a2de0c2&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Testing for a valid key&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To test for a valid key, just do this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;if(uuid){&lt;br /&gt;
      //do something&lt;br /&gt;
      }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
if(uuid) will only return true if it is supplied a key that is both (A) valid, and (B) NOT a  NULL_KEY.&lt;br /&gt;
&lt;br /&gt;
Tip! In techy talk, this method is called &amp;quot;passing it as the parameter for a {{LSLGC|Conditional|conditional}}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Here is an example of how to build a function around this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
integer isKey(key in) {&lt;br /&gt;
    if(in) return 2;&lt;br /&gt;
    return (in == NULL_KEY);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Caveats&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;if (uuid)&amp;lt;/code&amp;gt; is a special case. Keys cannot be converted to integers, so logical operators such as &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;||&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;amp;&amp;amp;&amp;lt;/code&amp;gt; cannot be used with keys.&lt;br /&gt;
&lt;br /&gt;
If you wish to do &amp;lt;code&amp;gt;if (!uuid) // Some action&amp;lt;/code&amp;gt; then you can use a simple workaround like so: &amp;lt;code&amp;gt;if (uuid) {} else // Some action&amp;lt;/code&amp;gt;. This is particularly useful if we wish to discard invalid string content (i.e - ensure that a key is actually a key) like so:&amp;lt;lsl&amp;gt;if (uuid) {} else if (uuid != NULL_KEY) uuid = NULL_KEY;&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Extended Key Operations ==&lt;br /&gt;
These functions have been created and contributed by LSL users to perform operations not covered by built-in LSL functions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable}}&lt;br /&gt;
|+&lt;br /&gt;
|-{{Hl2}}&lt;br /&gt;
!function&lt;br /&gt;
!purpose&lt;br /&gt;
|-&lt;br /&gt;
|| [[GenerateKey]] || Generates an MD5-based (version 3) type UUID. Useful for identifying link-messages and for other purposes.&lt;br /&gt;
|-&lt;br /&gt;
|| [[GenUUID]] || Generates a UUID based on PHP com_create_guid.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Aria Twig</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Linden_Lab_Official_talk:Age_Verification_FAQ&amp;diff=1079982</id>
		<title>Linden Lab Official talk:Age Verification FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Linden_Lab_Official_talk:Age_Verification_FAQ&amp;diff=1079982"/>
		<updated>2010-10-26T19:13:59Z</updated>

		<summary type="html">&lt;p&gt;Aria Twig: Created page with &amp;#039;==Loophole==  &amp;quot;Absolutely no personal information that is supplied for the automated age verification process is stored or otherwise retained by Linden Lab or its verification pa...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Loophole==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Absolutely no personal information that is supplied for the automated age verification process is stored or otherwise retained by Linden Lab or its verification partner Aristotle-Integrity. We keep only an indicator that tells us whether there was a positive match for the information you have provided.&lt;br /&gt;
&lt;br /&gt;
Thus, this information will be used only for the purpose of verifying that a Resident is an adult, and will not be transferred or retained unless that is required by law, i.e., pursuant to a law enforcement investigation and proper legal process.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The way this is phrased, Linden can save personally identifying information from your verification, and use it to identify the same person verifying two avatars that are otherwise unconnected. It doesn&#039;t say that no personally identifying information is saved, just information you put directly into the form. And it doesn&#039;t say that the indicator/code can&#039;t tell them other things, just that it&#039;s all they save and one thing that it tells them. It could save a hash from the form or something else personally identifying in that code. It uses words like &#039;no personal information&#039; and &#039;only keep an indicator that tells us&#039; which is either a directly misleading loophole, or an accident. Either way it should be fixed. [[User:Aria Twig|Aria Twig]] 19:13, 26 October 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Aria Twig</name></author>
	</entry>
</feed>