<?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=Dyna+Mole</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=Dyna+Mole"/>
	<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/wiki/Special:Contributions/Dyna_Mole"/>
	<updated>2026-07-27T15:14:24Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlsRGB2Linear&amp;diff=1217966</id>
		<title>LlsRGB2Linear</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlsRGB2Linear&amp;diff=1217966"/>
		<updated>2025-02-07T01:23:14Z</updated>

		<summary type="html">&lt;p&gt;Dyna Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:LSL_Functions]]&lt;br /&gt;
{{LSL_Function&lt;br /&gt;
|func=llsRGB2Linear&lt;br /&gt;
|sort=sRGBToLinear&lt;br /&gt;
|return_type=vector&lt;br /&gt;
|p1_type=vector|p1_name=srgb|p1_desc=Color in the sRGB color space.&lt;br /&gt;
|return_text=Transforms a color specified in the sRGB colorspace to the linear RGB colorspace.&lt;br /&gt;
|spec=Lights in Second Life are specified in LSL as linear red, green blue values in the range (0.0, 1.0). Internally light calculations are performed in the sRGB colorspace.  &lt;br /&gt;
&lt;br /&gt;
The sRGB (Standard Red Green Blue) colorspace is defined in [https://www.color.org/srgb04.xalter IEC 61966-2-1:1999] and was developed as a joint project between Microsoft and HP.&lt;br /&gt;
&lt;br /&gt;
This calculation is known as an Electro-Optical Transfer Function (EOTF).&lt;br /&gt;
&lt;br /&gt;
|caveats=&lt;br /&gt;
*The name of this function is actually a misnomer as LSL color is actually in [https://www.color.org/chardata/rgb/BT709.xalter Rec.709] space, not [https://www.color.org/chardata/rgb/srgb.xalter sRGB] space. While they are very similar, the gamma value for sRGB is approx. 2.2, whereas the gamma value for Rec.709 is approx. 2.4.&lt;br /&gt;
*Scripting for PBR-enabled viewers: If you enter color vectors manually, using the viewer&#039;s color picker, enter them as sRGB values. The color picker automatically converts them internally to Linear RGB, so someone using a PBR-enabled viewer will see them correctly. When you apply color vectors directly with a script, however, you must apply sRGB to Blinn-Phong textured faces and Linear RGB to PBR materials.&lt;br /&gt;
|examples&lt;br /&gt;
|helpers&lt;br /&gt;
|related&lt;br /&gt;
|also&lt;br /&gt;
|also_functions=&lt;br /&gt;
{{LSL DefineRow||[[llLinear2sRGB]]}} To convert from the Linear colorspace to sRGB. (Inverse EOTF)&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Dyna Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlLinear2sRGB&amp;diff=1217965</id>
		<title>LlLinear2sRGB</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlLinear2sRGB&amp;diff=1217965"/>
		<updated>2025-02-07T01:21:36Z</updated>

		<summary type="html">&lt;p&gt;Dyna Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:LSL_Functions]]&lt;br /&gt;
{{LSL_Function&lt;br /&gt;
|func=llLinear2sRGB&lt;br /&gt;
|sort=LinearTosRGB&lt;br /&gt;
|return_type=vector&lt;br /&gt;
|p1_type=vector|p1_name=color|p1_desc=Color in the linear color space.&lt;br /&gt;
|return_text=Transforms a color specified in linear RGB colorspace into the sRGB colorspace.&lt;br /&gt;
|spec=Lights in Second Life are specified in LSL as linear red, green blue values in the range (0.0, 1.0). Internally light calculations are performed in the sRGB colorspace.  &lt;br /&gt;
&lt;br /&gt;
The sRGB (Standard Red Green Blue) colorspace is defined in [https://www.color.org/srgb04.xalter IEC 61966-2-1:1999] and was developed as a joint project between Microsoft and HP.&lt;br /&gt;
&lt;br /&gt;
This calculation is known as an Inverse Electro-Optical Transfer Function (IEOTF).&lt;br /&gt;
&lt;br /&gt;
|caveats=&lt;br /&gt;
*The name of this function is actually a misnomer as LSL color is actually in [https://www.color.org/chardata/rgb/BT709.xalter Rec.709] space, not [https://www.color.org/chardata/rgb/srgb.xalter sRGB] space. While they are very similar, the gamma value for sRGB is approx. 2.2, whereas the gamma value for Rec.709 is approx. 2.4.&lt;br /&gt;
*Scripting for PBR-enabled viewers: If you enter color vectors manually, using the viewer&#039;s color picker, enter them as sRGB values. The color picker automatically converts them internally to Linear RGB, so someone using a PBR-enabled viewer will see them correctly. When you apply color vectors directly with a script, however, you must apply sRGB to Blinn-Phong textured faces and Linear RGB to PBR materials.&lt;br /&gt;
|examples&lt;br /&gt;
|helpers&lt;br /&gt;
|related&lt;br /&gt;
|also&lt;br /&gt;
|also_functions=&lt;br /&gt;
{{LSL DefineRow||[[llsRGB2Linear]]}} To convert from sRGB to the Linear colorspace. (EOTF)&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Dyna Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlLinear2sRGB&amp;diff=1217823</id>
		<title>LlLinear2sRGB</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlLinear2sRGB&amp;diff=1217823"/>
		<updated>2024-12-12T20:07:24Z</updated>

		<summary type="html">&lt;p&gt;Dyna Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:LSL_Functions]]&lt;br /&gt;
{{LSL_Function&lt;br /&gt;
|func=llLinear2sRGB&lt;br /&gt;
|sort=LinearTosRGB&lt;br /&gt;
|return_type=vector&lt;br /&gt;
|p1_type=vector|p1_name=color|p1_desc=Color in the linear color space.&lt;br /&gt;
|return_text=Transforms a color specified in linear RGB colorspace into the sRGB colorspace.&lt;br /&gt;
|spec=Lights in Second Life are specified in LSL as linear red, green blue values in the range (0.0, 1.0). Internally light calculations are performed in the sRGB colorspace.  &lt;br /&gt;
&lt;br /&gt;
The sRGB (Standard Red Green Blue) colorspace is defined in [https://www.color.org/srgb04.xalter IEC 61966-2-1:1999] and was developed as a joint project between Microsoft and HP.&lt;br /&gt;
&lt;br /&gt;
This calculation is known as an Inverse Electro-Optical Transfer Function (IEOTF).&lt;br /&gt;
&lt;br /&gt;
|caveats=&lt;br /&gt;
*The name of this function is actually a misnomer as LSL color is actually in [https://www.color.org/chardata/rgb/BT709.xalter Rec.709] space, not [https://www.color.org/chardata/rgb/srgb.xalter sRGB] space. While they are very similar, the gamma value for sRGB is approx. 2.2, whereas the gamma value for Rec.709 is approx. 2.4.&lt;br /&gt;
*Scripting for PBR-enabled viewers: If you enter color vectors manually, using the viewer&#039;s color picker, enter them as Linear RGB values. The color picker automatically converts them internally to sRGB, so someone using a PBR-enabled viewer will see them correctly. This means that if you are defining colors with a script, the same is true. You do not need to use llLinear2sRBG to convert your color vectors and apply them separately for PBR.&lt;br /&gt;
|examples&lt;br /&gt;
|helpers&lt;br /&gt;
|related&lt;br /&gt;
|also&lt;br /&gt;
|also_functions=&lt;br /&gt;
{{LSL DefineRow||[[llsRGB2Linear]]}} To convert from sRGB to the Linear colorspace. (EOTF)&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Dyna Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlLinear2sRGB&amp;diff=1217798</id>
		<title>LlLinear2sRGB</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlLinear2sRGB&amp;diff=1217798"/>
		<updated>2024-12-09T02:36:59Z</updated>

		<summary type="html">&lt;p&gt;Dyna Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:LSL_Functions]]&lt;br /&gt;
{{LSL_Function&lt;br /&gt;
|func=llLinear2sRGB&lt;br /&gt;
|sort=LinearTosRGB&lt;br /&gt;
|return_type=vector&lt;br /&gt;
|p1_type=vector|p1_name=color|p1_desc=Color in the linear color space.&lt;br /&gt;
|return_text=Transforms a color specified in linear RGB colorspace into the sRGB colorspace.&lt;br /&gt;
|spec=Lights in Second Life are specified in LSL as linear red, green blue values in the range (0.0, 1.0). Internally light calculations are performed in the sRGB colorspace.  &lt;br /&gt;
&lt;br /&gt;
The sRGB (Standard Red Green Blue) colorspace is defined in [https://www.color.org/srgb04.xalter IEC 61966-2-1:1999] and was developed as a joint project between Microsoft and HP.&lt;br /&gt;
&lt;br /&gt;
This calculation is known as an Inverse Electro-Optical Transfer Function (IEOTF).&lt;br /&gt;
&lt;br /&gt;
|caveats=&lt;br /&gt;
*The name of this function is actually a misnomer as LSL color is actually in [https://www.color.org/chardata/rgb/BT709.xalter Rec.709] space, not [https://www.color.org/chardata/rgb/srgb.xalter sRGB] space. While they are very similar, the gamma value for sRGB is approx. 2.2, whereas the gamma value for Rec.709 is approx. 2.4.&lt;br /&gt;
*If you enter color vectors manually, using the viewer&#039;s color picker, enter them as Linear RGB values. The color picker automatically converts them internally to sRGB, so someone using a PBR-enabled viewer will see them correctly. This means that if you are defining colors with a script, the same is true. You do not need to use llLinear2sRBG to convert your color vectors and apply them separately for PBR.&lt;br /&gt;
|examples&lt;br /&gt;
|helpers&lt;br /&gt;
|related&lt;br /&gt;
|also&lt;br /&gt;
|also_functions=&lt;br /&gt;
{{LSL DefineRow||[[llsRGB2Linear]]}} To convert from sRGB to the Linear colorspace. (EOTF)&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Dyna Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlTeleportAgent&amp;diff=1213764</id>
		<title>LlTeleportAgent</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlTeleportAgent&amp;diff=1213764"/>
		<updated>2023-03-23T18:45:56Z</updated>

		<summary type="html">&lt;p&gt;Dyna Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Function&lt;br /&gt;
|inject-2={{LSL Function/avatar|agent|region=*}}{{LSL Function/inventory|landmark|type=landmark|uuid=false|empty=(for teleporting within the same region)}}{{Issues/BUG-4062}}{{Issues/SVC-7987}}&lt;br /&gt;
|inject-3={{LSL_Function/permission|PERMISSION_TELEPORT|grant={{LSLP|agent}}}}&lt;br /&gt;
|func=llTeleportAgent&lt;br /&gt;
|sort=TeleportAgent&lt;br /&gt;
|p1_type=key|p1_name=agent|p1_desc=&amp;amp;#32;(the avatar to teleport, must be the [[llGetOwner|owner]])|p1_hover=&amp;amp;#32;(the avatar to teleport, must be the owner)&lt;br /&gt;
|p2_type=string|p2_name=landmark|p2_desc&lt;br /&gt;
|p3_type=vector|p3_name=position|p3_desc=The position within the local region to teleport the avatar to if no landmark was provided.&lt;br /&gt;
|p4_type=vector|p4_name=look_at|p4_desc=The position within the region that the avatar should be turned to face upon arrival.&lt;br /&gt;
|func_desc=Teleports an {{LSLP|agent}} to a {{LSLP|landmark}} stored in the object&#039;s inventory.&lt;br /&gt;
&lt;br /&gt;
If {{LSLP|landmark}} is an empty string, the avatar is teleported to the location {{LSLP|position}} in the current region.&lt;br /&gt;
&lt;br /&gt;
If the destination is in the current region, the avatar will land facing {{LSLP|look_at}} as a position within that region. Otherwise, {{LSLP|look_at}} is treated as a unit direction.&lt;br /&gt;
|func_footnote&lt;br /&gt;
|caveats=&lt;br /&gt;
* &#039;&#039;&#039;This function can only teleport the owner of the object&#039;&#039;&#039; (unless part of an [[:Category:Experience Tools|Experience]]).&lt;br /&gt;
* Teleports are throttled (no more than 10 teleports within 15 seconds)&lt;br /&gt;
* Sitting avatars cannot be teleported using this function. You must [[llUnSit]] them first.&lt;br /&gt;
* This function does not override a parcel&#039;s teleport settings, i.e. if the parcel has a landing zone enabled the avatar will be teleported there.&lt;br /&gt;
* If the script is part of an experience that the avatar has granted permission, then this function may teleport them without being the owner and it will override parcel teleport routing. See the example below.&lt;br /&gt;
* When {{LSLPT|look_at}} is treated as a direction, a valid input should be &amp;lt;code&amp;gt;&amp;lt;llCos(angle), llSin(angle), 0.0&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
** In other words, it should be a &#039;&#039;&#039;unit vector&#039;&#039;&#039; corresponding to the avatar turning &#039;&#039;&#039;angle&#039;&#039;&#039; radians from north.&lt;br /&gt;
|examples=&lt;br /&gt;
Basic example with a landmark called &#039;&#039;&#039;Destination&#039;&#039;&#039; in the object&#039;s inventory:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lsl2&amp;quot;&amp;gt;&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    touch_start(integer num_detected)&lt;br /&gt;
    {&lt;br /&gt;
        llRequestPermissions(llGetOwner(), PERMISSION_TELEPORT);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    run_time_permissions(integer perm)&lt;br /&gt;
    {&lt;br /&gt;
        if (PERMISSION_TELEPORT &amp;amp; perm)&lt;br /&gt;
        {&lt;br /&gt;
            llTeleportAgent(llGetPermissionsKey(), &amp;quot;Destination&amp;quot;, ZERO_VECTOR, ZERO_VECTOR);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Basic example without a landmark in the object&#039;s inventory, while facing the avatar towards the center of the region:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lsl2&amp;quot;&amp;gt;&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    touch_start(integer num_detected)&lt;br /&gt;
    {&lt;br /&gt;
        llRequestPermissions(llGetOwner(), PERMISSION_TELEPORT);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    run_time_permissions(integer perm)&lt;br /&gt;
    {&lt;br /&gt;
        if (PERMISSION_TELEPORT &amp;amp; perm)&lt;br /&gt;
        {&lt;br /&gt;
            vector region_pos = &amp;lt;100, 130, 40&amp;gt;;&lt;br /&gt;
            vector look_at = &amp;lt;128,128,40&amp;gt;;&lt;br /&gt;
            llTeleportAgent(llGetPermissionsKey(), &amp;quot;&amp;quot;, region_pos, look_at);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;How to use this function in an Experience&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lsl2&amp;quot;&amp;gt;&lt;br /&gt;
// A SIMPLE SCRIPT that implements an Experience based teleport.&lt;br /&gt;
// Compile with the &amp;quot;Use Experience&amp;quot; box cnecked and an experience key you own selected.&lt;br /&gt;
// The prim containing this script must contain a landmark named &amp;quot;Landmark&amp;quot; in its contents&lt;br /&gt;
//&lt;br /&gt;
// If the person touching this box has not previously accepted an invitation to your experience,&lt;br /&gt;
// that person will be offered that opportunity when this prim is touched, and if the invitations&lt;br /&gt;
// is accepted, will be immediately teleported to the target of the landmark.&lt;br /&gt;
//&lt;br /&gt;
// If the toucher has previously accepted an invitation, the person will be immediately teleported&lt;br /&gt;
// with no interruption.&lt;br /&gt;
//&lt;br /&gt;
// The script has no safety features, e.g., will simply fail if the prim contains no landmark.&lt;br /&gt;
//&lt;br /&gt;
// Thanks to Rolig Loon for her help in figuring out how to do this&lt;br /&gt;
// See https://community.secondlife.com/t5/English-Knowledge-Base/Experiences-in-Second-Life/ta-p/2744686&lt;br /&gt;
// to read what the Lindens think is an adequate explanation of all this.&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    touch_start(integer n)&lt;br /&gt;
    {&lt;br /&gt;
        llRequestExperiencePermissions(llDetectedKey(0), &amp;quot;&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    experience_permissions(key agent)&lt;br /&gt;
    {&lt;br /&gt;
        llTeleportAgent(agent, &amp;quot;Landmark&amp;quot;, ZERO_VECTOR, ZERO_VECTOR);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is an example of properly handling the &#039;&#039;&#039;look_at&#039;&#039;&#039; value based on whether the destination is the current region or a different one. This ensures that the avatar will always be facing the same &#039;&#039;direction&#039;&#039; regardless of whether they&#039;re teleporting within the region or to another one.&lt;br /&gt;
&lt;br /&gt;
The script keeps track of the landmark&#039;s destination coordinate in the &#039;&#039;&#039;state_entry&#039;&#039;&#039; and &#039;&#039;&#039;changed&#039;&#039;&#039; events, which is later used to calculate the total distance of the teleport.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lsl2&amp;quot;&amp;gt;&lt;br /&gt;
string landmark;&lt;br /&gt;
vector destination;&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        // Get data about the first landmark in object inventory when script starts.&lt;br /&gt;
        if (llGetInventoryNumber(INVENTORY_LANDMARK) &amp;gt; 0) {&lt;br /&gt;
            landmark = llGetInventoryName(INVENTORY_LANDMARK, 0);&lt;br /&gt;
            llRequestInventoryData(landmark);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    changed(integer change)&lt;br /&gt;
    {&lt;br /&gt;
        if (!(change &amp;amp; (CHANGED_INVENTORY|CHANGED_REGION))) return;&lt;br /&gt;
&lt;br /&gt;
        // Get data about the first landmark in object inventory when inventory changes.&lt;br /&gt;
        if (llGetInventoryNumber(INVENTORY_LANDMARK) &amp;gt; 0) {&lt;br /&gt;
            landmark = llGetInventoryName(INVENTORY_LANDMARK, 0);&lt;br /&gt;
            llRequestInventoryData(landmark);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    dataserver(key query, string data)&lt;br /&gt;
    {&lt;br /&gt;
        // Save llRequestInventoryData response.&lt;br /&gt;
        destination = (vector)data;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    touch_start(integer num_detected)&lt;br /&gt;
    {&lt;br /&gt;
        llRequestPermissions(llGetOwner(), PERMISSION_TELEPORT);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    run_time_permissions(integer perm)&lt;br /&gt;
    {&lt;br /&gt;
        if (!(PERMISSION_TELEPORT &amp;amp; perm)) return;&lt;br /&gt;
&lt;br /&gt;
        float angle = 45 * DEG_TO_RAD;&lt;br /&gt;
&lt;br /&gt;
        // When teleporting to another region, we need a direction vector.&lt;br /&gt;
        vector look_at = &amp;lt;llCos(angle), llSin(angle), 0&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
        float sim_size = llVecMag(&amp;lt;1,1,1&amp;gt;);&lt;br /&gt;
        float distance = llVecDist(&amp;lt;1,1,1&amp;gt;, destination / 256);&lt;br /&gt;
&lt;br /&gt;
        if (distance &amp;lt; sim_size) {&lt;br /&gt;
            // When teleporting within the current region, we should use a position within the region instead.&lt;br /&gt;
            look_at = destination + look AT;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        llTeleportAgent(llGetPermissionsKey(), landmark, ZERO_VECTOR, look_at);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another example, submitted by [[User:Jesse_Barnett|Jesse Barnett]], shows how to use a list of landmarks inside a HUD to allow teleporting, even inside a no-script area: [[Teleport HUD]].&lt;br /&gt;
|also_functions=&lt;br /&gt;
{{LSL DefineRow||[[llTeleportAgentGlobalCoords]]|Teleports an agent to a global position.}}&lt;br /&gt;
|notes=&lt;br /&gt;
|cat1=Teleport&lt;br /&gt;
|cat2&lt;br /&gt;
|cat3&lt;br /&gt;
|history = Date of Release  [[ Release_Notes/Second_Life_Server/12#12.07.24.262437 | 24/07/2012 ]]&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Dyna Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlUpdateKeyValue&amp;diff=1209089</id>
		<title>LlUpdateKeyValue</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlUpdateKeyValue&amp;diff=1209089"/>
		<updated>2020-01-27T21:03:47Z</updated>

		<summary type="html">&lt;p&gt;Dyna Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Experience Tools]]&lt;br /&gt;
{{LSL_Function&lt;br /&gt;
|inject-2=&lt;br /&gt;
{{LSL Function/KeyValue|k|v|value=value|d2_type=string|d2_name=value}}&lt;br /&gt;
{{LSL Function/Experience|true}}&lt;br /&gt;
|func=llUpdateKeyValue&lt;br /&gt;
|func_desc=Start an asynchronous transaction to update a key-value pair associated with the script&#039;s {{LSLGC|Experience}} with the given key ({{LSLPT|k}}) and value ({{LSLPT|v}}).&lt;br /&gt;
|return_type=key|return_subtype=handle&lt;br /&gt;
|return_text=that can be used to identify the corresponding [[dataserver]] event to determine if this command succeeded or failed and the results.&lt;br /&gt;
|p1_type=string|p1_name=k&lt;br /&gt;
|p2_type=string|p2_name=v&lt;br /&gt;
|p3_type=integer|p3_subtype=boolean|p3_name=checked|p3_desc=If [[TRUE]] the update will only happen if {{LSLPT|original_value}} matches the value in the key-value store.&lt;br /&gt;
|p3_hover=If TRUE the update will only happen if &amp;quot;original_value&amp;quot; matches the value in the key-value store.&lt;br /&gt;
|p4_type=string|p4_name=original_value|p4_desc=The value to compare with the current value in the key-value store.&lt;br /&gt;
|p4_hover=The value to compare with the current value in the key-value store.&lt;br /&gt;
|func_footnote=If {{LSLPT|checked}} is set to [[TRUE]] then the update will only happen if {{LSLPT|original_value}} matches the current value in key-value store, otherwise the [[dataserver]] will return a failure along with the error [[XP_ERROR_RETRY_UPDATE]]. This can be used to create an in-use flag so that {{Wikipedia|Atomicity_(database_systems)|Atomicity}} can be achieved.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
As of Jan 1, 2016 maximum bytes is 1011 for key and 4095 for value for both LSO and Mono scripts.&amp;lt;br/&amp;gt;&lt;br /&gt;
Using llUpdateKeyValue to update a key that does not exist will not generate [[XP_ERROR_KEY_NOT_FOUND]]. Instead, it will generate a new key with the specified value, as if you had used [[llCreateKeyValue]]. &lt;br /&gt;
|also_functions=&lt;br /&gt;
*[[llGetExperienceErrorMessage]]&lt;br /&gt;
*[[llCreateKeyValue]]&lt;br /&gt;
*[[llReadKeyValue]]&lt;br /&gt;
*[[llUpdateKeyValue]]&lt;br /&gt;
*[[llDeleteKeyValue]]&lt;br /&gt;
*[[llDataSizeKeyValue]]&lt;br /&gt;
*[[llKeyCountKeyValue]]&lt;br /&gt;
*[[llKeysKeyValue]]&lt;br /&gt;
|examples=&amp;lt;source lang=&amp;quot;lsl2&amp;quot;&amp;gt;key trans;&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        trans = llUpdateKeyValue(&amp;quot;FOO&amp;quot;, &amp;quot;BLAH&amp;quot;, TRUE, &amp;quot;BAR&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    dataserver(key t, string value)&lt;br /&gt;
    {&lt;br /&gt;
        if (t == trans)&lt;br /&gt;
        {&lt;br /&gt;
            // our llUpdateKeyValue transaction is done&lt;br /&gt;
            list result = llCSV2List(value);&lt;br /&gt;
            if (llList2Integer(result, 0) == 1)&lt;br /&gt;
            {&lt;br /&gt;
                // the key-value pair was successfully updated&lt;br /&gt;
                llSay(0, &amp;quot;New key-value pair was successfully updated&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                integer error = llList2Integer(result, 1);&lt;br /&gt;
                if(error == XP_ERROR_RETRY_UPDATE)&lt;br /&gt;
                    llSay(0, &amp;quot;Key-value update failed, checked value is out of date&amp;quot;);&lt;br /&gt;
                else&lt;br /&gt;
                    llSay(0, &amp;quot;Key-value update failed: &amp;quot; + llGetExperienceErrorMessage(error) );&lt;br /&gt;
            }  &lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This script demonstrates how to avoid update conflicts (two scripts updating the store at the same time), performing fully atomic updates is more complicated. If all scripts writing to the key-value store abide by the virtual lock ($DB_Lock), and only do updates in update_db state, then all writes will be atomic. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;lsl2&amp;quot;&amp;gt;key tid;&lt;br /&gt;
list tids;&lt;br /&gt;
&lt;br /&gt;
default {&lt;br /&gt;
    state_entry() {&lt;br /&gt;
        state lock_db;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
state lock_db {&lt;br /&gt;
    state_entry() {&lt;br /&gt;
        tid = llUpdateKeyValue(&amp;quot;$DB_Lock&amp;quot;, &amp;quot;LOCK&amp;quot;, TRUE, &amp;quot;unlock&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    dataserver(key did, string value) {&lt;br /&gt;
        if(did == tid) {&lt;br /&gt;
            string payload = llDeleteSubString(value, 0, 1);&lt;br /&gt;
            if(llGetSubString(value+&amp;quot;,&amp;quot;, 0, 1) == &amp;quot;1,&amp;quot;){&lt;br /&gt;
                llUpdateKeyValue(&amp;quot;$DB_LockedBy&amp;quot;, llDumpList2String([llGetOwner(),llGetKey(),llGetLinkKey(!!llGetLinkNumber()),llGetRegionName(),llGetPos(),llGetAttached()],&amp;quot;:&amp;quot;), FALSE, &amp;quot;&amp;quot;);&lt;br /&gt;
                state update_db;&lt;br /&gt;
            } else {&lt;br /&gt;
                integer err = (integer)payload;&lt;br /&gt;
                if(err == XP_ERROR_RETRY_UPDATE) {&lt;br /&gt;
                    llSay(0, &amp;quot;Database is already locked!&amp;quot;);&lt;br /&gt;
                } else {&lt;br /&gt;
                    llSay(0, &amp;quot;Key-value update failed: &amp;quot; + llGetExperienceErrorMessage(err) );&lt;br /&gt;
                }&lt;br /&gt;
                state error;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
state update_db {&lt;br /&gt;
    state_entry() {&lt;br /&gt;
        tids = [&lt;br /&gt;
            llUpdateKeyValue(&amp;quot;CatsPermissable&amp;quot;, &amp;quot;5&amp;quot;, FALSE, &amp;quot;&amp;quot;),&lt;br /&gt;
            llUpdateKeyValue(&amp;quot;MonkeyMutations&amp;quot;, &amp;quot;3&amp;quot;, FALSE, &amp;quot;&amp;quot;),&lt;br /&gt;
            llUpdateKeyValue(&amp;quot;CodFlavorSupport&amp;quot;, &amp;quot;NEVER&amp;quot;, FALSE, &amp;quot;&amp;quot;)&lt;br /&gt;
        ];&lt;br /&gt;
    }&lt;br /&gt;
    dataserver(key did, string value) {&lt;br /&gt;
        integer i = llListFindList(tid, [did]);&lt;br /&gt;
        if(~i) {&lt;br /&gt;
            string payload = llDeleteSubString(value, 0, 1);&lt;br /&gt;
            if(llGetSubString(value+&amp;quot;,&amp;quot;, 0, 1) == &amp;quot;1,&amp;quot;){&lt;br /&gt;
                tids = llDeleteSubList(tids, i, i);&lt;br /&gt;
                if(tids == []) {&lt;br /&gt;
                    state unlock_db;&lt;br /&gt;
                }&lt;br /&gt;
            } else {&lt;br /&gt;
                llSay(0, &amp;quot;Key-value update failed: &amp;quot; + llGetExperienceErrorMessage((integer)payload) );&lt;br /&gt;
                state error;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
state unlock_db {&lt;br /&gt;
    state_entry() {&lt;br /&gt;
        tid = llUpdateKeyValue(&amp;quot;$DB_Lock&amp;quot;, &amp;quot;unlock&amp;quot;, TRUE, &amp;quot;LOCK&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    dataserver(key did, string value) {&lt;br /&gt;
        if(did == tid) {&lt;br /&gt;
            string payload = llDeleteSubString(value, 0, 1);&lt;br /&gt;
            if(llGetSubString(value+&amp;quot;,&amp;quot;, 0, 1) == &amp;quot;1,&amp;quot;){&lt;br /&gt;
                state done;&lt;br /&gt;
            } else {&lt;br /&gt;
                integer err = (integer)payload;&lt;br /&gt;
                if(err == XP_ERROR_RETRY_UPDATE) {&lt;br /&gt;
                    llSay(0, &amp;quot;Someone has violated the database lock!&amp;quot;);&lt;br /&gt;
                } else {&lt;br /&gt;
                    llSay(0, &amp;quot;Key-value update failed: &amp;quot; + llGetExperienceErrorMessage(err) );&lt;br /&gt;
                }&lt;br /&gt;
                state error;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
state done {&lt;br /&gt;
    state_entry(){;}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
state error {&lt;br /&gt;
    state_entry(){;}&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
|cat1=Experience&lt;br /&gt;
|cat2=Experience/Data&lt;br /&gt;
|cat3=Dataserver&lt;br /&gt;
|caveats=* It is recommended that keys do not contain commas due to [[llKeysKeyValue]] returning keys in CSV format.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Dyna Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlCreateKeyValue&amp;diff=1209088</id>
		<title>LlCreateKeyValue</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlCreateKeyValue&amp;diff=1209088"/>
		<updated>2020-01-27T21:01:09Z</updated>

		<summary type="html">&lt;p&gt;Dyna Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Experience Tools]]&lt;br /&gt;
{{LSL_Function&lt;br /&gt;
|inject-2={{LSL Function/KeyValue|k|v|dataserver|value=value|d2_type=string|d2_name=value}}{{LSL Function/Experience|true}}&lt;br /&gt;
|func=llCreateKeyValue&lt;br /&gt;
|func_desc=Start an asynchronous transaction to create a key-value pair associated with the script&#039;s {{LSLGC|Experience}} using the given key ({{LSLPT|k}}) and value ({{LSLPT|v}}).&lt;br /&gt;
|func_footnote=If the key already exists the [[dataserver]] will return a failure along with the error [[XP_ERROR_STORAGE_EXCEPTION]].&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
As of Jan 1, 2016 maximum bytes is 1011 for key and 4095 for value for both LSO and Mono scripts.&lt;br /&gt;
|return_type=key|return_subtype=handle&lt;br /&gt;
|return_text=that can be used to identify the corresponding [[dataserver]] event to determine if this command succeeded or failed.&lt;br /&gt;
|p1_type=string|p1_name=k&lt;br /&gt;
|p2_type=string|p2_name=v&lt;br /&gt;
|also_functions=&lt;br /&gt;
*[[llGetExperienceErrorMessage]]&lt;br /&gt;
*[[llReadKeyValue]]&lt;br /&gt;
*[[llUpdateKeyValue]]&lt;br /&gt;
*[[llDeleteKeyValue]]&lt;br /&gt;
*[[llDataSizeKeyValue]]&lt;br /&gt;
*[[llKeyCountKeyValue]]&lt;br /&gt;
*[[llKeysKeyValue]]&lt;br /&gt;
|examples=&amp;lt;source lang=&amp;quot;lsl2&amp;quot;&amp;gt;key trans;&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    touch_start(integer total_number)&lt;br /&gt;
    {&lt;br /&gt;
        trans = llCreateKeyValue(&amp;quot;FOO&amp;quot;, &amp;quot;BAR&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    dataserver(key t, string value)&lt;br /&gt;
    {&lt;br /&gt;
        if (t == trans)&lt;br /&gt;
        {&lt;br /&gt;
            // our llCreateKeyValue transaction is done&lt;br /&gt;
            integer result = (integer)llGetSubString(value, 0, 0);&lt;br /&gt;
            if (result == 1)&lt;br /&gt;
            {&lt;br /&gt;
                // the key-value pair was successfully created&lt;br /&gt;
                llSay(0, &amp;quot;New key-value pair was created&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                // the key-value pair was not created&lt;br /&gt;
                integer error = (integer)(llGetSubString(value, 2, -1));&lt;br /&gt;
                llSay(0, &amp;quot;Key-value failed to create: &amp;quot; + llGetExperienceErrorMessage(error));&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    } &lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
|cat1=Experience&lt;br /&gt;
|cat2=Experience/Data&lt;br /&gt;
|cat3=Dataserver&lt;br /&gt;
|caveats=* It is recommended that keys do not contain commas due to [[llKeysKeyValue]] returning keys in CSV format.&lt;br /&gt;
|caveats=* If this function returns an [[XP_ERROR_STORAGE_EXCEPTION]], subsequent attempts to create the same KVP key may also fail, even if it appears that no key has been created. For that reason, it may be preferable to use [[llUpdateKeyValue]], which will overwrite any existing value or will create a new KVP key if none exists with that name.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Dyna Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=How_to_Earn_Linden_Dollars_in_Second_Life&amp;diff=1198020</id>
		<title>How to Earn Linden Dollars in Second Life</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=How_to_Earn_Linden_Dollars_in_Second_Life&amp;diff=1198020"/>
		<updated>2015-11-19T20:42:26Z</updated>

		<summary type="html">&lt;p&gt;Dyna Mole: /* Sites */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{KBcaution|The majority of this wiki&#039;s content (like SL itself) is Resident-created and while it may be helpful, Linden Labs won&#039;t vouch for its accuracy. For official documentation, see the &#039;&#039;&#039;[http://community.secondlife.com/t5/English-Knowledge-Base/tkb-p/English_KB%40tkb Second Life Knowledge Base]&#039;&#039;&#039;.}}&lt;br /&gt;
&lt;br /&gt;
[[File:lindenrealms.png|frame|alt=linden realms|The [http://secondlife.com/destinations/realms Linden Realms] are a great way to earn linden while having fun exploring some beautiful fantasy sims.]]&lt;br /&gt;
&lt;br /&gt;
[[File:goldhunt.png|frame|alt=gold hunt|The [http://www.goldtokens.net/games/gold-hunt Gold Hunt] game allows you to earn linden by searching for coins around the grid. It&#039;s a great way to explore the grid and take you to new places.]]&lt;br /&gt;
[[File:fishhunt.png|frame|alt=fish hunt|The [http://www.goldtokens.net/games/fish-hunt Fish Hunt] game is a great way to meet other players and compete. It&#039;s also really popular with players with disabilities as its very easy to play.]]&lt;br /&gt;
[[File:moneytrees.png|frame|alt=money trees|[http://moneytree.wolfhavenproductions.com Money Trees] are a great way for new players to earn linden by picking linden from trees around the grid. Older players aren&#039;t allowed to use Money Trees.]]&lt;br /&gt;
&lt;br /&gt;
[[File:Gold Piggy 400x300.png|frame|alt=Gold Piggy Hunters|[http://www.goldpiggyhunters.co.uk/goldpiggyhunters/locations.aspx Gold Piggy Hunters] Earn Free Lindens by clicking the gold piggy and teleporting around visiting locations.]]&lt;br /&gt;
&lt;br /&gt;
[[File:fishing_bikini.png|399px|frame|alt=Fish Hunt| [http://www.goldtokens.net/games/fish-hunt Fish Hunt] game is by far the biggest and most successful fishing game with thousands of active players that earn L$ by fishing.]]&lt;br /&gt;
&lt;br /&gt;
[[File:capexhq.png|frame|alt=capital exchange|The [http://www.slcapex.com/ Capital Exchange] allows you to invest and speculate on virtual companies in Second Life.]]&lt;br /&gt;
[[File:sploders.png|frame|alt=sploders|Sploders are a way of earning small amounts of linden when out at a club or party. They are a good way to meet other players and get chatting.]]&lt;br /&gt;
&lt;br /&gt;
Second Life is full of opportunities to earn Linden Dollars, but it is also important to [https://wiki.secondlife.com/wiki/How_to_Have_Fun_in_Second_Life have fun] while earning. Some players make the mistake of thinking that they have to do something they don&#039;t enjoy to make money in Second Life. That&#039;s simply is not the case.&lt;br /&gt;
&lt;br /&gt;
Sometimes it can feel overwhelmingly challenging to earn linden in Second Life, but with the right information to hand and some ample determination you can make money. &lt;br /&gt;
&lt;br /&gt;
= Get Paid a Weekly Stipend =&lt;br /&gt;
&lt;br /&gt;
Players who upgrade their account to be a [http://secondlife.com/premium/ Premium Account] are paid a stipend to their account on a weekly basis.&lt;br /&gt;
&lt;br /&gt;
= Buy Linden on the LindeX =&lt;br /&gt;
&lt;br /&gt;
You can buy linden whenever you want on the [https://secondlife.com/my/lindex/market.php LindeX] exchange. However, there are [https://secondlife.com/my/lindex/describe-limits.php billing and trading] limits.&lt;br /&gt;
&lt;br /&gt;
= Earn Linden Playing Fun Games =&lt;br /&gt;
&lt;br /&gt;
== ADS Goldtokens Gaming Network ==&lt;br /&gt;
&lt;br /&gt;
The following games are run by ADS, the leader in earning linden games. The [http://www.goldtokens.net Goldtokens.net] Gaming Network was a community created by [http://www.secondads.com/ SecondAds] company with the goal of helping new players earn their first linden dollars. It&#039;s not just for new players though. Thousands of experienced players enjoy competing for leaderboard positions and earning large sums of linden in the process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gold Hunt&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The [http://www.goldtokens.net/games/gold-hunt Gold Hunt] allows players to earn linden and win random gifts by hunting for coins and gems that are hidden by landowners. There are literally 1,000s of lands with coins available right across the grid, which can be discovered by using the player HUD. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fish Hunt&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The [http://www.goldtokens.net/games/fish-hunt Fish Hunt] allows players to earn Linden and win Random Gifts by fishing. There are literally 1,000s of lands with fish buoys available right across the grid, which can be discovered by using the player HUD. You&#039;ll also need to get a free beginner fishing rod too.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Farm Frenzy&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://www.goldtokens.net/games/farm-frenzy Farm Frenzy] gives land owners the opportunity to earn linden by farming worms for use in the [http://www.goldtokens.net/games/fish-hunt Fish Hunt]. It takes time to develop your Farming Experience, but eventually you&#039;ll be able to dominate the farming industry and sell your produce to the masses. Fortunes have been made in the farming industry!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Kingdoms&amp;amp;Empires&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The [http://www.kingdomsandempires.com KingdomsAndEmpires.com] is a new web browser strategy and trading game developed by ADS. Its theme is medieval. Players can grow wheat and mine for iron ore to produce wheat and iron ore that they can trade and use to build a stronghold out of their settlement. Players can get free materials every day by logging into K&amp;amp;E site and collecting their taxes. While playing players gain K&amp;amp;E points which are converted to L$ earnings daily.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Noob Hunt&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The [http://www.goldtokens.net Noob Hunt] is an affiliate recruitment scheme for the Goldtokens.net gaming network which allows players to become masters and recruit apprentices for the various games hosted on the network. In return they earn a percentage of each of their apprentices&#039; winnings. You can also sell your apprentices to other masters on the exchange.&lt;br /&gt;
&lt;br /&gt;
== Bletaverse ==&lt;br /&gt;
&lt;br /&gt;
[http://bletaverse.com/ Bletaverse] company have a number of ways of earning linden such as waiting at traffic cones and they also run a social network that players can get involved in.&lt;br /&gt;
&lt;br /&gt;
== Dragons &amp;amp; Princesses ==&lt;br /&gt;
&lt;br /&gt;
The [http://www.dragons.sl/docs/Index Dragons &amp;amp; Princesses] is a cool game developed by [http://www.e2l-net.com/ Earn2Life] company that allows you to earn linden by hunting for voids on different lands around Second Life.&lt;br /&gt;
&lt;br /&gt;
== PaleoQuest ==&lt;br /&gt;
&lt;br /&gt;
[http://maps.secondlife.com/secondlife/Portal%20Park%201/205/207/26 PaleoQuest] is a massive game created by Linden Lab and its busy team of Moles.  Spanning six regions, it gives you a chance to explore the ancient tombs of Egypt, dodge the Loch Ness monster, search for pirate treasure, repair a damaged communication satellite, and get a DNA sample from a sleeping Tyrannosaurus Rex in the Caves of Talpa. There are perils and treasures along the way and prizes to win if you survive.&lt;br /&gt;
&lt;br /&gt;
== Linden Realms ==&lt;br /&gt;
&lt;br /&gt;
The [http://secondlife.com/destinations/realms Linden Realms] were created by Linden Lab and are designed with a beautiful environment that has trees, cliffs, and lots of fun places to explore. You can use a teleporter to visit different areas of the Linden Realms. Each place has different quests and other activities that are fun and exciting to do. There are rock monsters that you will have to run away from and pools of toxic water to avoid.&lt;br /&gt;
&lt;br /&gt;
== Money Trees ==&lt;br /&gt;
&lt;br /&gt;
[http://moneytree.wolfhavenproductions.com Money Trees] were created by [http://wolfhavenproductions.com Wolfhaven Productions] and allow players to earn linden by plucking dollar bills and other game items from trees that are planted in sims all around the grid. There is a HUD you can wear to tell you where to find new trees. However, many trees are age-limited, so only very new players can use them.&lt;br /&gt;
&lt;br /&gt;
== Gold Piggy Hunters ==&lt;br /&gt;
&lt;br /&gt;
[http://www.goldpiggyhunters.co.uk/goldpiggyhunters/locations.aspx Gold Piggy Hunters] was created by Kaitlin Rayna.  Earn Free Lindens by clicking the gold piggy and teleporting around visiting locations.  Click the gold piggy and wait 5 minutes then get paid 1 L$.  Owners pay a total of 2 L$ one to the visitor and one to the creator per person per click.  Owners increase their traffic by getting visitors to visit their lands and visitors get paid 1 L$ just for visiting.&lt;br /&gt;
&lt;br /&gt;
= Earn Linden Working a Job =&lt;br /&gt;
&lt;br /&gt;
A large proportion of players have some form of [https://wiki.secondlife.com/wiki/Guide_to_Jobs_in_Second_Life Second Life Job] as a means to earn linden. This can be a rewarding way to earn linden and if you have the right ideas you can even become an entrepreneur and start your own business.&lt;br /&gt;
&lt;br /&gt;
= Activity Devices =&lt;br /&gt;
&lt;br /&gt;
There are a wide range of devices that allow you to make money via certain activities. In the order of decreasing interactivity these are:&lt;br /&gt;
&lt;br /&gt;
== Skill Games ==&lt;br /&gt;
&lt;br /&gt;
There are a wide range of skill game machines where Linden can be earned. While these games may resemble real-world casino game machines, they should all comply with {{LLOlink|Policy Regarding Wagering in Second Life|Wagering policy}} and {{LLOlink|Skill Game Compliance}}.&lt;br /&gt;
&lt;br /&gt;
== Chatting ==&lt;br /&gt;
&lt;br /&gt;
There are a wide range of Chat Sploders such as the ever popular [http://www.secondads.com/chatsploder.php Chatsploder Network] available in various clubs and other areas. These allow you to earn linden by waiting for the &#039;explosion&#039; which may take quite some time. In the mean time you can chat and make new friends.&lt;br /&gt;
&lt;br /&gt;
== Lotteries ==&lt;br /&gt;
&lt;br /&gt;
These are devices where players first make contributions to an aggregated pot. Once the pot exceeds a threshold, a countdown to an &#039;explosion&#039; begins (such as 3 mins) during which further contributions are typically still accepted. At the &#039;explosion&#039; the pot is randomly distributed between contributors. &lt;br /&gt;
UPDATE: Be aware of LL&#039;s wagering policies as paying to win on a game of chance such as a sploder or lottery can be interpreted as a violation. &lt;br /&gt;
There are free sploders which are used to generate traffic that cost nothing to play which are legal. {{LLOlink|Policy Regarding Wagering in Second Life|Wagering policy}} and {{LLOlink|Skill Game Compliance}}.&lt;br /&gt;
&lt;br /&gt;
== Camping  ==&lt;br /&gt;
&lt;br /&gt;
These allow you to earn Linden or prizes for camping, e.g. sitting chairs or touch Sploders, which you have to touch to begin a countdown to an &#039;explosion&#039; at the end of which a landowner&#039;s pot of money is randomly distributed between touchers. Some of these devices have you earn Linden, others have you earning other things such as new skins, clothes or other virtual game items. All you have to do touch them or sit on them, then continue camping on them (or reasonably close to some others) for the required amount of time to earn your prize. While some opine it is the least fun way to earn Linden ever invented due to lack of interaction with these devices during the camping time, others argue that it is just as much fun as any other activity, because while camping you are still free to chat and make new friends. A further advantage is that it is a relatively simpler way that does not require much time or physical input, and is therefore quite suitable for people with disabilities.&lt;br /&gt;
&lt;br /&gt;
== Area Camping ==&lt;br /&gt;
&lt;br /&gt;
These are similar to camping devices above, except that you simply need to be present on the land within a certain proximity of the device for the required amount of time to earn your prize, which is typically awarded to a resident chosen at random. These include Random Money Givers, and sometimes require that you become a member of the group owning the land, or add the land to the list of your SL Picks in order to be considered for an award.&lt;br /&gt;
&lt;br /&gt;
= Completing Surveys, Surfing Sites &amp;amp; Web Offers =&lt;br /&gt;
&lt;br /&gt;
It is possible to earn linden by completing surveys, surfing websites or filling web offers. Unfortunately this can be very haphazard and you may not receive payment if you don&#039;t fit the demographic that the company is looking for.&lt;br /&gt;
&lt;br /&gt;
= Investing =&lt;br /&gt;
&lt;br /&gt;
If you have some capital to invest you can simply invest in one of the companies listed on the [http://www.slcapex.com/ Capital Exchange] and then hope to earn dividends over time. You can either try to earn Linden by making a long term investment, or you can speculate on daily market movements.&lt;br /&gt;
&lt;br /&gt;
= External Articles &amp;amp; Sites=&lt;br /&gt;
&lt;br /&gt;
Please share your external sites and articles here with information on how to earn linden dollars in Second Life here:&lt;br /&gt;
&lt;br /&gt;
== Sites ==&lt;br /&gt;
* [http://bletaverse.com/ Bletaverse] - Earn linden while exploring SL without having to make an investment.&lt;br /&gt;
* [http://www.e2l-net.com/ Earn2life] - Earn linden on earning programs.&lt;br /&gt;
* [https://wiki.secondlife.com/wiki/Linden_Lab_Official:PaleoQuest PaleoQuest] - Earn linden and special prizes by completing quests and collecting artifacts.&lt;br /&gt;
* [http://www.goldtokens.net/games/gold-hunt Gold Hunt] - Earn linden hunting for coins&lt;br /&gt;
* [http://www.goldtokens.net/games/fish-hunt Fish Hunt] - Earn linden by fishing&lt;br /&gt;
* [http://www.goldtokens.net Goldtokens] - Earn linden playing fun games&lt;br /&gt;
* [http://www.kingdomsandempires.com/ Kingdoms&amp;amp;Empires] - Earn linden with strategy and trading.&lt;br /&gt;
* [http://www.thesecondfar.com/ The Second Farm] - Earn linden Hunting Magic Crystals.&lt;br /&gt;
* [http://wolfhavenproductions.com Wolfhaven Productions] - The creators of money trees&lt;br /&gt;
* [http://www.goldpiggyhunters.co.uk/goldpiggyhunters/locations.aspx Gold Piggy Hunters] - Earn Free Lindens by clicking the Gold Piggy and teleporting around visiting locations&lt;br /&gt;
&lt;br /&gt;
== Articles ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.goldtokens.net/blogs/110/10-ways-to-earn-linden-in-second-life 10 Ways to Earn Linden in Second Life] - 10 ways to Earn Linden in Second Life&lt;br /&gt;
* [http://www.chickjunk.com/make-money-in-second-life/ How to Make Money In Second Life] - How to get started and earn linden in Second Life&lt;br /&gt;
* [https://www.youtube.com/playlist?list=PLyICARNoME3-P0dVwgb7W7Y-_cozsywNy How To Earn Linden Dollars?] - A playlist of YouTube videos showing newbies how to earn Linden Dollars in Second Life&lt;br /&gt;
* [http://personalweb.about.com/od/virtualworlds/a/sl_makemoney.htm Make Money in Second Life] - A good list of methods to earn money&lt;/div&gt;</summary>
		<author><name>Dyna Mole</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=How_to_Earn_Linden_Dollars_in_Second_Life&amp;diff=1198019</id>
		<title>How to Earn Linden Dollars in Second Life</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=How_to_Earn_Linden_Dollars_in_Second_Life&amp;diff=1198019"/>
		<updated>2015-11-19T20:31:02Z</updated>

		<summary type="html">&lt;p&gt;Dyna Mole: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{KBcaution|The majority of this wiki&#039;s content (like SL itself) is Resident-created and while it may be helpful, Linden Labs won&#039;t vouch for its accuracy. For official documentation, see the &#039;&#039;&#039;[http://community.secondlife.com/t5/English-Knowledge-Base/tkb-p/English_KB%40tkb Second Life Knowledge Base]&#039;&#039;&#039;.}}&lt;br /&gt;
&lt;br /&gt;
[[File:lindenrealms.png|frame|alt=linden realms|The [http://secondlife.com/destinations/realms Linden Realms] are a great way to earn linden while having fun exploring some beautiful fantasy sims.]]&lt;br /&gt;
&lt;br /&gt;
[[File:goldhunt.png|frame|alt=gold hunt|The [http://www.goldtokens.net/games/gold-hunt Gold Hunt] game allows you to earn linden by searching for coins around the grid. It&#039;s a great way to explore the grid and take you to new places.]]&lt;br /&gt;
[[File:fishhunt.png|frame|alt=fish hunt|The [http://www.goldtokens.net/games/fish-hunt Fish Hunt] game is a great way to meet other players and compete. It&#039;s also really popular with players with disabilities as its very easy to play.]]&lt;br /&gt;
[[File:moneytrees.png|frame|alt=money trees|[http://moneytree.wolfhavenproductions.com Money Trees] are a great way for new players to earn linden by picking linden from trees around the grid. Older players aren&#039;t allowed to use Money Trees.]]&lt;br /&gt;
&lt;br /&gt;
[[File:Gold Piggy 400x300.png|frame|alt=Gold Piggy Hunters|[http://www.goldpiggyhunters.co.uk/goldpiggyhunters/locations.aspx Gold Piggy Hunters] Earn Free Lindens by clicking the gold piggy and teleporting around visiting locations.]]&lt;br /&gt;
&lt;br /&gt;
[[File:fishing_bikini.png|399px|frame|alt=Fish Hunt| [http://www.goldtokens.net/games/fish-hunt Fish Hunt] game is by far the biggest and most successful fishing game with thousands of active players that earn L$ by fishing.]]&lt;br /&gt;
&lt;br /&gt;
[[File:capexhq.png|frame|alt=capital exchange|The [http://www.slcapex.com/ Capital Exchange] allows you to invest and speculate on virtual companies in Second Life.]]&lt;br /&gt;
[[File:sploders.png|frame|alt=sploders|Sploders are a way of earning small amounts of linden when out at a club or party. They are a good way to meet other players and get chatting.]]&lt;br /&gt;
&lt;br /&gt;
Second Life is full of opportunities to earn Linden Dollars, but it is also important to [https://wiki.secondlife.com/wiki/How_to_Have_Fun_in_Second_Life have fun] while earning. Some players make the mistake of thinking that they have to do something they don&#039;t enjoy to make money in Second Life. That&#039;s simply is not the case.&lt;br /&gt;
&lt;br /&gt;
Sometimes it can feel overwhelmingly challenging to earn linden in Second Life, but with the right information to hand and some ample determination you can make money. &lt;br /&gt;
&lt;br /&gt;
= Get Paid a Weekly Stipend =&lt;br /&gt;
&lt;br /&gt;
Players who upgrade their account to be a [http://secondlife.com/premium/ Premium Account] are paid a stipend to their account on a weekly basis.&lt;br /&gt;
&lt;br /&gt;
= Buy Linden on the LindeX =&lt;br /&gt;
&lt;br /&gt;
You can buy linden whenever you want on the [https://secondlife.com/my/lindex/market.php LindeX] exchange. However, there are [https://secondlife.com/my/lindex/describe-limits.php billing and trading] limits.&lt;br /&gt;
&lt;br /&gt;
= Earn Linden Playing Fun Games =&lt;br /&gt;
&lt;br /&gt;
== ADS Goldtokens Gaming Network ==&lt;br /&gt;
&lt;br /&gt;
The following games are run by ADS, the leader in earning linden games. The [http://www.goldtokens.net Goldtokens.net] Gaming Network was a community created by [http://www.secondads.com/ SecondAds] company with the goal of helping new players earn their first linden dollars. It&#039;s not just for new players though. Thousands of experienced players enjoy competing for leaderboard positions and earning large sums of linden in the process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gold Hunt&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The [http://www.goldtokens.net/games/gold-hunt Gold Hunt] allows players to earn linden and win random gifts by hunting for coins and gems that are hidden by landowners. There are literally 1,000s of lands with coins available right across the grid, which can be discovered by using the player HUD. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fish Hunt&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The [http://www.goldtokens.net/games/fish-hunt Fish Hunt] allows players to earn Linden and win Random Gifts by fishing. There are literally 1,000s of lands with fish buoys available right across the grid, which can be discovered by using the player HUD. You&#039;ll also need to get a free beginner fishing rod too.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Farm Frenzy&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://www.goldtokens.net/games/farm-frenzy Farm Frenzy] gives land owners the opportunity to earn linden by farming worms for use in the [http://www.goldtokens.net/games/fish-hunt Fish Hunt]. It takes time to develop your Farming Experience, but eventually you&#039;ll be able to dominate the farming industry and sell your produce to the masses. Fortunes have been made in the farming industry!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Kingdoms&amp;amp;Empires&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The [http://www.kingdomsandempires.com KingdomsAndEmpires.com] is a new web browser strategy and trading game developed by ADS. Its theme is medieval. Players can grow wheat and mine for iron ore to produce wheat and iron ore that they can trade and use to build a stronghold out of their settlement. Players can get free materials every day by logging into K&amp;amp;E site and collecting their taxes. While playing players gain K&amp;amp;E points which are converted to L$ earnings daily.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Noob Hunt&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The [http://www.goldtokens.net Noob Hunt] is an affiliate recruitment scheme for the Goldtokens.net gaming network which allows players to become masters and recruit apprentices for the various games hosted on the network. In return they earn a percentage of each of their apprentices&#039; winnings. You can also sell your apprentices to other masters on the exchange.&lt;br /&gt;
&lt;br /&gt;
== Bletaverse ==&lt;br /&gt;
&lt;br /&gt;
[http://bletaverse.com/ Bletaverse] company have a number of ways of earning linden such as waiting at traffic cones and they also run a social network that players can get involved in.&lt;br /&gt;
&lt;br /&gt;
== Dragons &amp;amp; Princesses ==&lt;br /&gt;
&lt;br /&gt;
The [http://www.dragons.sl/docs/Index Dragons &amp;amp; Princesses] is a cool game developed by [http://www.e2l-net.com/ Earn2Life] company that allows you to earn linden by hunting for voids on different lands around Second Life.&lt;br /&gt;
&lt;br /&gt;
== PaleoQuest ==&lt;br /&gt;
&lt;br /&gt;
[http://maps.secondlife.com/secondlife/Portal%20Park%201/205/207/26 PaleoQuest] is a massive game created by Linden Lab and its busy team of Moles.  Spanning six regions, it gives you a chance to explore the ancient tombs of Egypt, dodge the Loch Ness monster, search for pirate treasure, repair a damaged communication satellite, and get a DNA sample from a sleeping Tyrannosaurus Rex in the Caves of Talpa. There are perils and treasures along the way and prizes to win if you survive.&lt;br /&gt;
&lt;br /&gt;
== Linden Realms ==&lt;br /&gt;
&lt;br /&gt;
The [http://secondlife.com/destinations/realms Linden Realms] were created by Linden Lab and are designed with a beautiful environment that has trees, cliffs, and lots of fun places to explore. You can use a teleporter to visit different areas of the Linden Realms. Each place has different quests and other activities that are fun and exciting to do. There are rock monsters that you will have to run away from and pools of toxic water to avoid.&lt;br /&gt;
&lt;br /&gt;
== Money Trees ==&lt;br /&gt;
&lt;br /&gt;
[http://moneytree.wolfhavenproductions.com Money Trees] were created by [http://wolfhavenproductions.com Wolfhaven Productions] and allow players to earn linden by plucking dollar bills and other game items from trees that are planted in sims all around the grid. There is a HUD you can wear to tell you where to find new trees. However, many trees are age-limited, so only very new players can use them.&lt;br /&gt;
&lt;br /&gt;
== Gold Piggy Hunters ==&lt;br /&gt;
&lt;br /&gt;
[http://www.goldpiggyhunters.co.uk/goldpiggyhunters/locations.aspx Gold Piggy Hunters] was created by Kaitlin Rayna.  Earn Free Lindens by clicking the gold piggy and teleporting around visiting locations.  Click the gold piggy and wait 5 minutes then get paid 1 L$.  Owners pay a total of 2 L$ one to the visitor and one to the creator per person per click.  Owners increase their traffic by getting visitors to visit their lands and visitors get paid 1 L$ just for visiting.&lt;br /&gt;
&lt;br /&gt;
= Earn Linden Working a Job =&lt;br /&gt;
&lt;br /&gt;
A large proportion of players have some form of [https://wiki.secondlife.com/wiki/Guide_to_Jobs_in_Second_Life Second Life Job] as a means to earn linden. This can be a rewarding way to earn linden and if you have the right ideas you can even become an entrepreneur and start your own business.&lt;br /&gt;
&lt;br /&gt;
= Activity Devices =&lt;br /&gt;
&lt;br /&gt;
There are a wide range of devices that allow you to make money via certain activities. In the order of decreasing interactivity these are:&lt;br /&gt;
&lt;br /&gt;
== Skill Games ==&lt;br /&gt;
&lt;br /&gt;
There are a wide range of skill game machines where Linden can be earned. While these games may resemble real-world casino game machines, they should all comply with {{LLOlink|Policy Regarding Wagering in Second Life|Wagering policy}} and {{LLOlink|Skill Game Compliance}}.&lt;br /&gt;
&lt;br /&gt;
== Chatting ==&lt;br /&gt;
&lt;br /&gt;
There are a wide range of Chat Sploders such as the ever popular [http://www.secondads.com/chatsploder.php Chatsploder Network] available in various clubs and other areas. These allow you to earn linden by waiting for the &#039;explosion&#039; which may take quite some time. In the mean time you can chat and make new friends.&lt;br /&gt;
&lt;br /&gt;
== Lotteries ==&lt;br /&gt;
&lt;br /&gt;
These are devices where players first make contributions to an aggregated pot. Once the pot exceeds a threshold, a countdown to an &#039;explosion&#039; begins (such as 3 mins) during which further contributions are typically still accepted. At the &#039;explosion&#039; the pot is randomly distributed between contributors. &lt;br /&gt;
UPDATE: Be aware of LL&#039;s wagering policies as paying to win on a game of chance such as a sploder or lottery can be interpreted as a violation. &lt;br /&gt;
There are free sploders which are used to generate traffic that cost nothing to play which are legal. {{LLOlink|Policy Regarding Wagering in Second Life|Wagering policy}} and {{LLOlink|Skill Game Compliance}}.&lt;br /&gt;
&lt;br /&gt;
== Camping  ==&lt;br /&gt;
&lt;br /&gt;
These allow you to earn Linden or prizes for camping, e.g. sitting chairs or touch Sploders, which you have to touch to begin a countdown to an &#039;explosion&#039; at the end of which a landowner&#039;s pot of money is randomly distributed between touchers. Some of these devices have you earn Linden, others have you earning other things such as new skins, clothes or other virtual game items. All you have to do touch them or sit on them, then continue camping on them (or reasonably close to some others) for the required amount of time to earn your prize. While some opine it is the least fun way to earn Linden ever invented due to lack of interaction with these devices during the camping time, others argue that it is just as much fun as any other activity, because while camping you are still free to chat and make new friends. A further advantage is that it is a relatively simpler way that does not require much time or physical input, and is therefore quite suitable for people with disabilities.&lt;br /&gt;
&lt;br /&gt;
== Area Camping ==&lt;br /&gt;
&lt;br /&gt;
These are similar to camping devices above, except that you simply need to be present on the land within a certain proximity of the device for the required amount of time to earn your prize, which is typically awarded to a resident chosen at random. These include Random Money Givers, and sometimes require that you become a member of the group owning the land, or add the land to the list of your SL Picks in order to be considered for an award.&lt;br /&gt;
&lt;br /&gt;
= Completing Surveys, Surfing Sites &amp;amp; Web Offers =&lt;br /&gt;
&lt;br /&gt;
It is possible to earn linden by completing surveys, surfing websites or filling web offers. Unfortunately this can be very haphazard and you may not receive payment if you don&#039;t fit the demographic that the company is looking for.&lt;br /&gt;
&lt;br /&gt;
= Investing =&lt;br /&gt;
&lt;br /&gt;
If you have some capital to invest you can simply invest in one of the companies listed on the [http://www.slcapex.com/ Capital Exchange] and then hope to earn dividends over time. You can either try to earn Linden by making a long term investment, or you can speculate on daily market movements.&lt;br /&gt;
&lt;br /&gt;
= External Articles &amp;amp; Sites=&lt;br /&gt;
&lt;br /&gt;
Please share your external sites and articles here with information on how to earn linden dollars in Second Life here:&lt;br /&gt;
&lt;br /&gt;
== Sites ==&lt;br /&gt;
* [http://bletaverse.com/ Bletaverse] - Earn linden while exploring SL without having to make an investment.&lt;br /&gt;
* [http://www.e2l-net.com/ Earn2life] - Earn linden on earning programs.&lt;br /&gt;
* [http://www.goldtokens.net/games/gold-hunt Gold Hunt] - Earn linden hunting for coins&lt;br /&gt;
* [http://www.goldtokens.net/games/fish-hunt Fish Hunt] - Earn linden by fishing&lt;br /&gt;
* [http://www.goldtokens.net Goldtokens] - Earn linden playing fun games&lt;br /&gt;
* [http://www.kingdomsandempires.com/ Kingdoms&amp;amp;Empires] - Earn linden with strategy and trading.&lt;br /&gt;
* [http://www.thesecondfar.com/ The Second Farm] - Earn linden Hunting Magic Crystals.&lt;br /&gt;
* [http://wolfhavenproductions.com Wolfhaven Productions] - The creators of money trees&lt;br /&gt;
* [http://www.goldpiggyhunters.co.uk/goldpiggyhunters/locations.aspx Gold Piggy Hunters] - Earn Free Lindens by clicking the Gold Piggy and teleporting around visiting locations&lt;br /&gt;
&lt;br /&gt;
== Articles ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.goldtokens.net/blogs/110/10-ways-to-earn-linden-in-second-life 10 Ways to Earn Linden in Second Life] - 10 ways to Earn Linden in Second Life&lt;br /&gt;
* [http://www.chickjunk.com/make-money-in-second-life/ How to Make Money In Second Life] - How to get started and earn linden in Second Life&lt;br /&gt;
* [https://www.youtube.com/playlist?list=PLyICARNoME3-P0dVwgb7W7Y-_cozsywNy How To Earn Linden Dollars?] - A playlist of YouTube videos showing newbies how to earn Linden Dollars in Second Life&lt;br /&gt;
* [http://personalweb.about.com/od/virtualworlds/a/sl_makemoney.htm Make Money in Second Life] - A good list of methods to earn money&lt;/div&gt;</summary>
		<author><name>Dyna Mole</name></author>
	</entry>
</feed>