<?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=Sally+LaSalle</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=Sally+LaSalle"/>
	<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/wiki/Special:Contributions/Sally_LaSalle"/>
	<updated>2026-05-10T13:22:34Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Private_Estate_Management_Companies&amp;diff=1153795</id>
		<title>Private Estate Management Companies</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Private_Estate_Management_Companies&amp;diff=1153795"/>
		<updated>2011-09-18T20:54:30Z</updated>

		<summary type="html">&lt;p&gt;Sally LaSalle: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are many companies, large and small, that rent/sell private estate land in Second Life.  They range from individual residents who rent single parcels to major holding companies with dozens of privately owned sims.  &lt;br /&gt;
There are pros and cons between renting land from Linden Labs and private owners, and then even between renting from single parcel owners and large companies.&lt;br /&gt;
&lt;br /&gt;
Below is a list of some of the many privately owned companies that offer Private Estate sales and rentals.  &lt;br /&gt;
It should be noted that none of these companies represent Linden Labs directly or are officially endorsed by them in any way.  &lt;br /&gt;
It is in fact recommended that one should always review and research any company before engaging in any financial transaction; hence, these companies are listed here for the convenience of visitors to this page to begin their own research. &lt;br /&gt;
&lt;br /&gt;
[http://slurl.com/secondlife/Tai/226/23/64/?title=Tai%20Rentals&amp;amp;msgBeautiful%20Tropical%20Parcels Tai Rentals] Probably the Best value and most beautiful Tropical parcels available&lt;br /&gt;
&lt;br /&gt;
[http://bit.ly/f3d-wiki FRANCE3D] - European estate. Web-based land listings. Customer Care in English, French, German and Italian.&lt;br /&gt;
&lt;br /&gt;
[http://www.costaricasims.com Costa Rica Sims] - 400 residents from more that 50 countries around the world&lt;br /&gt;
&lt;br /&gt;
[http://www.virtualczechoslovakia.com/en/bohemia-rentals Bohemia Rentals] - Parcels from 1024 sqm, fullsims/homestead&lt;br /&gt;
&lt;br /&gt;
[http://slurl.com/secondlife/Turtle%20Falls/102/85/26/ Turtle Falls] - Realistic community with public infrastructure.&lt;br /&gt;
&lt;br /&gt;
[http://Landstore.virtuateq.com Virtuateq Estates]&lt;br /&gt;
&lt;br /&gt;
[http://www.visiwa.com/ Visiwa Estate] - Ultra-realistic with 70% shared resident open spaces for privacy&lt;br /&gt;
&lt;br /&gt;
[http://rockhopper.sl/ Rockhopper Estates]&lt;br /&gt;
&lt;br /&gt;
[http://www.exoticislandinc.com/ Exotic Islands Real Estate]&lt;br /&gt;
&lt;br /&gt;
[http://slurl.com/secondlife/MLCC/57/37/23/ Regent Estates]&lt;br /&gt;
&lt;br /&gt;
[http://slurl.com/secondlife/Island%20Depot/146/243/21/ OT Rentals Land Office] - All Residential &amp;amp; Commercial parcels include 25% Bonus Prims. Parcels ranging from 512m to a full private sim.&lt;br /&gt;
&lt;br /&gt;
[http://www.dalliez.com/ dAlliez Estates] &lt;br /&gt;
&lt;br /&gt;
[http://www.vianaislands.net/ Viana Islands Estates] &lt;br /&gt;
&lt;br /&gt;
[http://slurl.com/secondlife/Spice%20Bay/94/132/672/ Spice Islands]&lt;br /&gt;
&lt;br /&gt;
[http://GSEstates.org/ GS Estates]&lt;br /&gt;
&lt;br /&gt;
[http://www.lionheartsl.com/ Lionheart Virtual Estate] - A realistic, contiguous [http://slurl.com/secondlife/Lionheart%20Pumbaa/174/147/29 multi-sim continental landmass] with protected land, public transportation, infrastructure and a community.&lt;br /&gt;
&lt;br /&gt;
[http://www.fruit-islands.com/land-estate.html Fruit Islands Estate] - We offer homestead, full sims and islands in a 100 sim connected sailing area&lt;br /&gt;
&lt;br /&gt;
[http://www.solacebeach.com/ Solace Beach Estates]&lt;br /&gt;
&lt;br /&gt;
[http://www.countburks.com/ Count Burks Estates]&lt;br /&gt;
&lt;br /&gt;
[http://www.bell-estate.com/ Bell Estate]&lt;br /&gt;
&lt;br /&gt;
[http://www.dreamseekerestates.com/ Dream Seeker Estates]&lt;br /&gt;
&lt;br /&gt;
[http://www.mainlandsl.com/ MainlandSL]&lt;br /&gt;
&lt;br /&gt;
[http://azureislands.com/ Azure Islands]&lt;br /&gt;
&lt;br /&gt;
[http://maps.secondlife.com/secondlife/Radio/116/141/22/ RGF Estates Inc.]&lt;br /&gt;
&lt;br /&gt;
[http://maps.secondlife.com/secondlife/Careers/238/148/794/ West Indies Resorts&amp;amp;Lands Inc.]&lt;br /&gt;
&lt;br /&gt;
[http://conchcove.blogs.metashop.me  Conch Cove Community]&lt;br /&gt;
&lt;br /&gt;
[http://www.asrux.com/ AsRux]&lt;br /&gt;
&lt;br /&gt;
[http://dreamland.anshechung.com/ Dreamland]&lt;br /&gt;
&lt;br /&gt;
[http://maps.secondlife.com/secondlife/Wild%20Islands%20Estates/110/198/27/ Wild Islands Estates]&lt;br /&gt;
&lt;br /&gt;
[https://www.xstreetsl.com/modules.php?name=Real_Estate XStreetSL]&lt;br /&gt;
&lt;br /&gt;
[http://www.fairchang.com/ FairChang Islands]&lt;br /&gt;
&lt;br /&gt;
[http://www.innovatiapark.com/ Innovatia Park]&lt;br /&gt;
&lt;br /&gt;
[http://www.rentmainland.com/ RentMainland]&lt;br /&gt;
&lt;br /&gt;
[http://www.coral-estates.com/ Coral Estates Land Rentals]&lt;br /&gt;
&lt;br /&gt;
[http://ozlandre.blogspot.com/ OZLAND Estate]&lt;br /&gt;
&lt;br /&gt;
[http://slurl.com/secondlife/State%20of%20Mind/14/79/22 Mindless Islands Rentals]&lt;br /&gt;
&lt;br /&gt;
[http://maps.secondlife.com/secondlife/Insula%20Inferi/13/209/27 Insula Inferi Rentals]&lt;br /&gt;
&lt;br /&gt;
[http://www.sf-estates.de/ SF Estates] - Contact Shoya Fellini, owner of Virtual Real Estate since 2007&lt;br /&gt;
&lt;br /&gt;
[http://slurl.com/secondlife/Tanglewood%20Views/114/143/22 Faith Homes]&lt;br /&gt;
&lt;br /&gt;
[http://slurl.com/secondlife/Family%20Isle/144/44/27 Nouvelle Homes], Small family run private estate, ask for a reference from any of our tenants. contact Taff Nouvelle&lt;br /&gt;
&lt;br /&gt;
Back to [[Land]]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;[[Land choices]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;[[Land Buying FAQ]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Private Estates]]&lt;/div&gt;</summary>
		<author><name>Sally LaSalle</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Color_conversion_scripts&amp;diff=29188</id>
		<title>Color conversion scripts</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Color_conversion_scripts&amp;diff=29188"/>
		<updated>2007-08-24T16:14:45Z</updated>

		<summary type="html">&lt;p&gt;Sally LaSalle: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header&lt;br /&gt;
}}{{#vardefine:header_title|Color conversion scripts&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The following functions convert between LSL [[color]] in Red Green Blue (RGB) format and color in Hue Saturation Value (HSV) format.&lt;br /&gt;
The functions are based on &amp;quot;c&amp;quot; algorithms from [http://www.cs.rit.edu/~ncs/color/t_convert.html c color conversion] but required some debugging and extensive re-working to fit them in to LSL.   For a discussion of HSV color format please see the wikipedia entry at  [http://en.wikipedia.org/wiki/HSV_color_space HSV Color]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
RGB to HSV follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// by [[Sally LaSalle]], code released to the public domain under GNU GPL version 3.0 license.&lt;br /&gt;
// you are free to use, and you are free to donate to me if you wish!! :P&lt;br /&gt;
&lt;br /&gt;
// takes an RGB color as a vector, with range &amp;lt;float R[0,1], float G[0,1], float B[0,1]&amp;gt;&lt;br /&gt;
// returns a vector with HSV ranged from &amp;lt;float H[0,360], float S[0,1],  float V[0,1]&amp;gt;&lt;br /&gt;
// H ranges smoothly from Red=0, Yellow=60, Green=120, Cyan=180, Blue=240, Violet=300 and back to Red&lt;br /&gt;
&lt;br /&gt;
vector RGBtoHSV( vector rgb )&lt;br /&gt;
{&lt;br /&gt;
     float R = rgb.x;&lt;br /&gt;
     if (R&amp;lt;0)		// catch malformed input&lt;br /&gt;
	R=0;&lt;br /&gt;
     else if (R&amp;gt;1)&lt;br /&gt;
	R=1;&lt;br /&gt;
     float G = rgb.y;&lt;br /&gt;
     if (G&amp;lt;0)		// catch malformed input&lt;br /&gt;
	G=0;&lt;br /&gt;
     else if (G&amp;gt;1)&lt;br /&gt;
	G=1;&lt;br /&gt;
     float B = rgb.z;&lt;br /&gt;
     if (B&amp;lt;0)		// catch malformed input&lt;br /&gt;
	B=0;&lt;br /&gt;
     else if (B&amp;gt;1)&lt;br /&gt;
	B=1;&lt;br /&gt;
    &lt;br /&gt;
    float H;&lt;br /&gt;
    float S;&lt;br /&gt;
    float V;&lt;br /&gt;
    &lt;br /&gt;
    list rgbList = [R, G, B]; // list used to get min and max&lt;br /&gt;
        &lt;br /&gt;
    float min;&lt;br /&gt;
    float max;&lt;br /&gt;
    float achromatic;  // =1 if R=G=B&lt;br /&gt;
    float delta;&lt;br /&gt;
    &lt;br /&gt;
    vector hsv;  // the return HSV vector&lt;br /&gt;
&lt;br /&gt;
    min = llListStatistics(LIST_STAT_MIN, rgbList); //MIN of ( R, G, B );&lt;br /&gt;
    max = llListStatistics(LIST_STAT_MAX, rgbList); //MAX of ( R, G, B );&lt;br /&gt;
    if (R==G &amp;amp;&amp;amp; G==B)&lt;br /&gt;
		achromatic = 1;  // it is a shade of grey, white or black&lt;br /&gt;
	else&lt;br /&gt;
		achromatic = 0;&lt;br /&gt;
&lt;br /&gt;
    V = max;                    // V = brightness Value form 0 to 1&lt;br /&gt;
    delta = max - min;&lt;br /&gt;
&lt;br /&gt;
    if( max != 0 )&lt;br /&gt;
        S = delta / max;        // S = saturation from 0 to 1&lt;br /&gt;
    else {&lt;br /&gt;
        // R = G = B = 0        // S = 0, V = 0, H = 0&lt;br /&gt;
        S = 0;                  &lt;br /&gt;
        V = 0;                  &lt;br /&gt;
        H = 0;&lt;br /&gt;
        &lt;br /&gt;
        hsv.x = H;&lt;br /&gt;
        hsv.y = S;&lt;br /&gt;
        hsv.z = V;&lt;br /&gt;
        return hsv;             //H = S = V = 0&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (achromatic == 1)&lt;br /&gt;
        H = 0;&lt;br /&gt;
    else if( R == max )&lt;br /&gt;
        H = 0 + ( G - B ) / delta;    // between red &amp;amp; yellow&lt;br /&gt;
    else if( G == max )&lt;br /&gt;
        H = 2 + ( B - R ) / delta;    // between yellow &amp;amp; cyan&lt;br /&gt;
    else&lt;br /&gt;
        H = 4 + ( R - G ) / delta;    // between cyan &amp;amp; red&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    H *= 60;                	      // H is traditionally a figure between 0 and 360 degrees&lt;br /&gt;
    if( H &amp;lt; 0 )&lt;br /&gt;
        H += 360;&lt;br /&gt;
&lt;br /&gt;
    hsv.x = H;&lt;br /&gt;
    hsv.y = S;&lt;br /&gt;
    hsv.z = V;&lt;br /&gt;
    return hsv;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
HSV to RGB follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// by Sally LaSalle, code released to the public domain under GNU GPL version 3.0 license.&lt;br /&gt;
// you are free to use, and you are free to donate to me if you wish!! :P&lt;br /&gt;
&lt;br /&gt;
// takes a vector encoded Hue Saturation Value (HSV) triplet&lt;br /&gt;
// HSV should be entered with floats the ranges: &amp;lt;float H(0 to 360), float S(0 to 1),float V(0 to 1)&amp;gt;&lt;br /&gt;
// And Returns a vector encode Red Green Blue (RGB) color triplet&lt;br /&gt;
// RGB will be returned with floats in ranges &amp;lt;float R(0 to 1),float G(0 to 1),float B(0 to 1)&amp;gt;&lt;br /&gt;
&lt;br /&gt;
vector HSVtoRGB( vector hsv )&lt;br /&gt;
{&lt;br /&gt;
    integer i;&lt;br /&gt;
	&lt;br /&gt;
     float H = hsv.x;&lt;br /&gt;
     if (H&amp;lt;0)		// catch malformed H input&lt;br /&gt;
	H=0;&lt;br /&gt;
     else if (H&amp;gt;360)&lt;br /&gt;
	H=360;&lt;br /&gt;
     float S = hsv.y;&lt;br /&gt;
     if (S&amp;lt;0)		// catch malformed S input&lt;br /&gt;
	S=0;&lt;br /&gt;
     else if (S&amp;gt;1)&lt;br /&gt;
	S=1;&lt;br /&gt;
     float V = hsv.z;&lt;br /&gt;
     if (V&amp;lt;0)		// catch malformed V input&lt;br /&gt;
	V=0;&lt;br /&gt;
     else if (V&amp;gt;1)&lt;br /&gt;
	V=1;&lt;br /&gt;
&lt;br /&gt;
    float R;&lt;br /&gt;
    float G;&lt;br /&gt;
    float B;&lt;br /&gt;
    &lt;br /&gt;
    float f; 	    // variables for calculating base color mixing around the &amp;quot;spectrum circle&amp;quot;&lt;br /&gt;
    float p;&lt;br /&gt;
    float q;&lt;br /&gt;
    float t;&lt;br /&gt;
  &lt;br /&gt;
    vector rgb;&lt;br /&gt;
    &lt;br /&gt;
    if( S == 0 ) {  // achromatic (grey) simply set R,G, &amp;amp; B = Value&lt;br /&gt;
        R = V;&lt;br /&gt;
        G = V;&lt;br /&gt;
        B = V;&lt;br /&gt;
&lt;br /&gt;
        rgb.x = R;&lt;br /&gt;
        rgb.y = G;&lt;br /&gt;
        rgb.z = B;&lt;br /&gt;
        return rgb;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    H /= 60;              // Hue factored into range 0 to 5&lt;br /&gt;
    i = llFloor( H );	  // integer floor of Hue&lt;br /&gt;
    f = H - i;            // factorial part of H&lt;br /&gt;
&lt;br /&gt;
    p = V * ( 1 - S );&lt;br /&gt;
    q = V * ( 1 - S * f );&lt;br /&gt;
    t = V * ( 1 - S * ( 1 - f ) );&lt;br /&gt;
&lt;br /&gt;
    if 		(i==0){&lt;br /&gt;
	            R = V;&lt;br /&gt;
	            G = t;&lt;br /&gt;
	            B = p;}&lt;br /&gt;
    else if (i==1){&lt;br /&gt;
            	R = q;&lt;br /&gt;
	            G = V;&lt;br /&gt;
	            B = p;}&lt;br /&gt;
    else if (i==2){&lt;br /&gt;
            	R = p;&lt;br /&gt;
	            G = V;&lt;br /&gt;
	            B = t;}&lt;br /&gt;
    else if (i==3){&lt;br /&gt;
            	R = p;&lt;br /&gt;
	            G = q;&lt;br /&gt;
	            B = V;}&lt;br /&gt;
    else if (i==4){&lt;br /&gt;
            	R = t;&lt;br /&gt;
	            G = p;&lt;br /&gt;
	            B = V;}&lt;br /&gt;
    else {       &lt;br /&gt;
           		R = V;&lt;br /&gt;
	            G = p;&lt;br /&gt;
	            B = q;&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    rgb.x = R;&lt;br /&gt;
    rgb.y = G;&lt;br /&gt;
    rgb.z = B;&lt;br /&gt;
    &lt;br /&gt;
    return rgb;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sally LaSalle</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Sally_LaSalle&amp;diff=29187</id>
		<title>User:Sally LaSalle</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Sally_LaSalle&amp;diff=29187"/>
		<updated>2007-08-24T16:14:23Z</updated>

		<summary type="html">&lt;p&gt;Sally LaSalle: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About Me ==&lt;br /&gt;
&lt;br /&gt;
I have benefited greatly from the contributors to this forum and to the code in the forum script library.  So, here is a contribution, which hopefully will be useful for someone.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Scripts ==&lt;br /&gt;
&lt;br /&gt;
[[Color conversion scripts]] convert from RGBtoHSV and HSVtoRGB. Use these freely to convert between Red Green Blue (RGB) into Hue Saturation Value (HSV).&lt;/div&gt;</summary>
		<author><name>Sally LaSalle</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Category:LSL_Library&amp;diff=29074</id>
		<title>Category:LSL Library</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Category:LSL_Library&amp;diff=29074"/>
		<updated>2007-08-22T23:17:35Z</updated>

		<summary type="html">&lt;p&gt;Sally LaSalle: added color RGB to HSV script link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header}}&lt;br /&gt;
==Script Library==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em 0.5em 1.5em&amp;quot;&amp;gt;&lt;br /&gt;
There are many [[script|scripts]] that have become buried in the [http://forums.secondlife.com/forumdisplay.php?f=15 Scripting Library forum], were lost with the death of the scripting forums, or sit idle in [[inventory|inventories]] that could be useful and should be more accessible.&lt;br /&gt;
&lt;br /&gt;
Other scripters may be in the same situation. This wiki is a well-suited medium for a script library. Feel free to add your scripts to the script library by creating new pages for them and linking to those pages here.&lt;br /&gt;
&lt;br /&gt;
Note that there are many more scripts in the LSL Library here, but you can&#039;t get to them if you don&#039;t know they exist, because they are subpages now, instead of an automatically updated category.  Good luck searching.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rules for posting: ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
#Your script must be tested and working. If it&#039;s not, stick it in your user-space until it is. This is a list of working, usable scripts.&lt;br /&gt;
#Add a link to your script&#039;s page here. Link back to this page from your script&#039;s page. Start your page with &amp;lt;nowiki&amp;gt;{{LSL Header}}&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
#Do not add scripts that duplicate the same functionality as an existing script or built in {{LSLGC|Functions|function}}. If yours does, explain why.&lt;br /&gt;
#Do not post simple scripts to the library. Simple scripts should be posted to the [[:Category:LSL Examples| Examples list]].&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| {{Prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
|{{Hl2}}| &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|{{Hl2}}| &#039;&#039;&#039;Creator&#039;&#039;&#039;&lt;br /&gt;
|{{Hl2}}| &#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
||[[Hello Avatar]]&lt;br /&gt;
||Linden Lab&lt;br /&gt;
||SL&#039;s default script&lt;br /&gt;
|-&lt;br /&gt;
||[[Basic Encryption Modules]]&lt;br /&gt;
||[[User:Beverly Larkin|Beverly Larkin]]&lt;br /&gt;
||Basic encryption scripts, allows you to encrypt a float, and shout it to another prim on a randomly chosen channel.&lt;br /&gt;
|-&lt;br /&gt;
||[[Builders Buddy|Builder&#039;s Buddy]]&lt;br /&gt;
||[[User:Newfie Pendragon|Newfie Pendragon]]&lt;br /&gt;
||Script to easily move/rotate large builds that exceed the linkable size limit (30 meters)&lt;br /&gt;
|-&lt;br /&gt;
||[[Bullet (script)|Bullet]]&lt;br /&gt;
||[[User:Davida Gallant|Davida Gallant]]&lt;br /&gt;
||Self-explanatory. Works well with [[Self-Destruction|self-destruction]] script.&lt;br /&gt;
|-&lt;br /&gt;
||[[Camera Sync]]&lt;br /&gt;
||[[User:Meyermagic Salome|Meyermagic Salome]] and [[User:Nomad Padar|Nomad Padar]]&lt;br /&gt;
||A system to synchronize the cameras of two avatars&lt;br /&gt;
|-&lt;br /&gt;
||[[Chat Logger (GPL)]]&lt;br /&gt;
||[[User:Nobody Fugazi|Nobody Fugazi]]&lt;br /&gt;
||Chat logger which requests permission from participants before recording them.&lt;br /&gt;
|-&lt;br /&gt;
||[[Chat_Relay|Chat Relay]]&lt;br /&gt;
||[[User:grumble Loudon|grumble Loudon]]&lt;br /&gt;
||A Chat relay which can be routed using a path header and won&#039;t echo.&lt;br /&gt;
|-&lt;br /&gt;
||[[Color conversion scripts|Color Conversion ]]&lt;br /&gt;
||[[User:Sally LaSalle|Sally LaSalle]]&lt;br /&gt;
||Convert between Red Green Blue (RGB) and Hue Saturation Value (HSV)&lt;br /&gt;
|-&lt;br /&gt;
||[[Library Combined Library|Combined Library]]&lt;br /&gt;
||[[User:Strife Onizuka|Strife Onizuka]]&lt;br /&gt;
||Library of mostly encoding and decoding functions, some more useful then others.&lt;br /&gt;
|-&lt;br /&gt;
||[[Library_Chat_Relay|Conversation Relay]]&lt;br /&gt;
||[[User:Jippen Faddoul|Jippen Faddoul]]&lt;br /&gt;
||Chat relay which requests permission from participants before relaying their messages. Also includes there attachments. (ToS compliant)&lt;br /&gt;
|-&lt;br /&gt;
||[[Date Library]]&lt;br /&gt;
||[[User:Corto Maltese|Corto Maltese]]&lt;br /&gt;
|| Date library, based on number of day since march 3rd 1600, can be used to calculate weekday, date differences, and date offset, and date formating.&lt;br /&gt;
|-&lt;br /&gt;
||[[Day of the Week]]&lt;br /&gt;
||[[User:DoteDote Edison|DoteDote Edison]]&lt;br /&gt;
||Function to get day of the week from [[llGetUnixTime]].&lt;br /&gt;
|-&lt;br /&gt;
||[[Dialog NumberPad|Dialog Number Pad]]&lt;br /&gt;
||[[User:DoteDote Edison|DoteDote Edison]]&lt;br /&gt;
||Use a dialog to accept positive integer input from users.&lt;br /&gt;
|-&lt;br /&gt;
||[[Email-to-IM]]&lt;br /&gt;
||[[User:DoteDote Edison|DoteDote Edison]]&lt;br /&gt;
||Send IMs to SL friends via email (translate emails from friends into IMs).&lt;br /&gt;
|-&lt;br /&gt;
||[[Efficiency Tester]]&lt;br /&gt;
||[[User:Xaviar Czervik|Xaviar Czervik]]&lt;br /&gt;
||Tests the speed of a function.&lt;br /&gt;
|-&lt;br /&gt;
||[[Float2Hex]]&lt;br /&gt;
||[[User:Strife Onizuka|Strife Onizuka]]&lt;br /&gt;
||Very useful for transporting [[float|floats]].&lt;br /&gt;
|-&lt;br /&gt;
||[[Follower (script)|Follower]]&lt;br /&gt;
||Unknown, uploaded by [[User:Slik Swindlehurst|Slik Swindlehurst]]&lt;br /&gt;
||Makes an object follow the nearest person. Do not use for [[grief|griefing]].&lt;br /&gt;
|-&lt;br /&gt;
||[[Intra-Region Update Server]]&lt;br /&gt;
||[[User:Emma_Nowhere|Emma Nowhere]]&lt;br /&gt;
||Centrally update objects such as Freeview screens or teleport pads within a region that are configured by notecards or contain modifiable objects or media assets.&lt;br /&gt;
|-&lt;br /&gt;
||[[Multirezzer|Multirezzer (on collision)]]&lt;br /&gt;
||[[User:Beet Streeter|Beet Streeter]]&lt;br /&gt;
||Spawns up to 10 objects when the object containing the script collides with a user.&lt;br /&gt;
|-&lt;br /&gt;
||[[Nargus Dialog Control 1.5]]&lt;br /&gt;
||[[User:Nargus Asturias|Nargus Asturias]]&lt;br /&gt;
|| A (not-so) simple dialog control script. Call dialog and receive selected value via link_message(), with built-in timer and link_message() notification on time out. Support multi-pages dialog and numerical property dialog. Button text and dialog&#039;s returned value can be difference.&lt;br /&gt;
|-&lt;br /&gt;
|| [[Object to Data v1.1]]&lt;br /&gt;
|| [[User:Xaviar Czervik|Xaviar Czervik]]&lt;br /&gt;
|| Turns an object into text. Allows people to transfer objects through notecards.&lt;br /&gt;
|-&lt;br /&gt;
||[[Prefix Calculator]]&lt;br /&gt;
||[[User:Xaviar Czervik|Xaviar Czervik]]&lt;br /&gt;
|| A calculator that evaluates expressions in prefix notation. + 3 4 = 5. * + 1 2 + 3 4 = 14.&lt;br /&gt;
|-&lt;br /&gt;
||[[Say Region Frames Per Second]]&lt;br /&gt;
||[[User:Heymeriou Mystakidou|Heymariou Mystakidou]]&lt;br /&gt;
|| Says the region name and frames per second out loud on command.&lt;br /&gt;
|-&lt;br /&gt;
||[[Secure HTTP Post]]&lt;br /&gt;
||[[User:Corto Maltese|Corto Maltese]]&lt;br /&gt;
|| This small library allow you to send Secure requests to your website with a security mechanism aimed to stop hacking.&lt;br /&gt;
|-&lt;br /&gt;
|| [[Self-Destruction]]&lt;br /&gt;
|| [[User:Davada Gallant|Davada Gallant]]&lt;br /&gt;
|| Makes an object disappear after a certain amount of time.&lt;br /&gt;
|-&lt;br /&gt;
||[[Self Upgrading Script Enhanced]]&lt;br /&gt;
||[[User:Cron Stardust|Cron Stardust]]&lt;br /&gt;
|| Keeps only latest version of the script on prim (Even with multiple adds of the same script!)&lt;br /&gt;
|-&lt;br /&gt;
||[[User:SignpostMarv_Martin/LSL/SLNTPoHTTP_v1.1_client|SLNTPoHTTP v1.1 client]]&lt;br /&gt;
|[[User:SignpostMarv Martin|SignpostMarv Martin]]&lt;br /&gt;
||Emulates the function of [[llGetWallclock]] for any timezone by using SLOpenID&#039;s SLNTPoHTTP service. Also supports ISO 8601 and RFC 2822 timestamps.&lt;br /&gt;
|-&lt;br /&gt;
|| [[String Compare]]&lt;br /&gt;
|| [[User:Xaviar Czervik|Xaviar Czervik]]&lt;br /&gt;
|| Compares two strings and reliably returns either 1, -1, or 0 if they are the same.&lt;br /&gt;
|-&lt;br /&gt;
||[[Key Pad Door|Tdub&#039;s Keypad Door]]&lt;br /&gt;
||[[User:Tdub Dowler|Tdub Dowler]]&lt;br /&gt;
|| Door and keypad with changeable code. Follow instructions carefully!&lt;br /&gt;
|-&lt;br /&gt;
||[[Timer Module]]&lt;br /&gt;
||[[User:Isabelle Aquitaine|Isabelle Aquitaine]]&lt;br /&gt;
||Manage multiple timers via linked messages.&lt;br /&gt;
|-&lt;br /&gt;
||[[WarpPos]]&lt;br /&gt;
|[[User:Keknehv Psaltery|Keknehv Psaltery]]&lt;br /&gt;
||Non-physical movement without the 10m limit.&lt;br /&gt;
|-&lt;br /&gt;
||[[XTEA Strong Encryption Implementation]]&lt;br /&gt;
||[[User:Morse Dillon|Morse Dillon]]&lt;br /&gt;
||An LSL implementation of XTEA (eXtended Tiny Encryption Algorithm).  This is the first known public release of a &#039;real&#039; strong encryption implementation in LSL and is released under the GNU General Public License (GPL).&lt;br /&gt;
|-&lt;br /&gt;
||[[XyText 1.5]]&lt;br /&gt;
||[[User:Xylor Baysklef|Xylor Baysklef]]&lt;br /&gt;
|| Display text (up to 10 characters) on a prim. Use as many prims as desired.&lt;br /&gt;
|-&lt;br /&gt;
||[[Computer:jaycoonlanguage]]&lt;br /&gt;
||[[User:jayco121 Bing|jayco121 Bing]]&lt;br /&gt;
|| A language written in LSL that is meant for my computer (available at the shop).&lt;br /&gt;
|-&lt;br /&gt;
||[[Open Source Holodeck]]&lt;br /&gt;
||[[User:Revolution Perenti|Revolution Perenti]]&lt;br /&gt;
||Open Source Home Rezzing System.&lt;br /&gt;
|-&lt;br /&gt;
||[[Dialog Message]]&lt;br /&gt;
||[[User:Revolution Perenti|Revolution Perenti]]&lt;br /&gt;
||Shout messages over a dialog.&lt;br /&gt;
|-&lt;br /&gt;
||[[Inventory Menu]]&lt;br /&gt;
||[[User:Revolution Perenti|Revolution Perenti]]&lt;br /&gt;
||Inventory Based Menu System.&lt;br /&gt;
|-&lt;br /&gt;
||[[Script Overide Functions]]&lt;br /&gt;
||[[User:Revolution Perenti|Revolution Perenti]]&lt;br /&gt;
||bypass default strings, integer etc in chat channel.&lt;br /&gt;
|-}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Support Script Library==&lt;br /&gt;
These are scripts in other languages, intended to be run on other systems that support scripts written in LSL&lt;br /&gt;
&lt;br /&gt;
{| {{Prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
|{{Hl2}}| &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|{{Hl2}}| &#039;&#039;&#039;Creator&#039;&#039;&#039;&lt;br /&gt;
|{{Hl2}}| &#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|| Silo&lt;br /&gt;
|| [[User:Zero_Linden|Zero Linden]]&lt;br /&gt;
|| General purpose data store in PHP.  Use this to persist arbitrary data from LSL via [[llHTTPRequest]].  See:&lt;br /&gt;
* [http://www.notabene-sl.com/misc/silo-README.txt README] file&lt;br /&gt;
* [http://www.notabene-sl.com/misc/silo.tgz silo.tgz] tarball&lt;br /&gt;
* forum post [http://forums.secondlife.com/showthread.php?t=119570 Announcement].&lt;br /&gt;
|-&lt;br /&gt;
|| [[User:SignpostMarv Martin/PHP/llXorBase64StringsCorrect|llXorBase64StringsCorrect]]&lt;br /&gt;
|| [[User:SignpostMarv Martin|SignpostMarv Martin]]&lt;br /&gt;
|| An implementation of [[llXorBase64StringsCorrect]] in PHP- should be useful if you&#039;re using llXorBase64StringsCorrect to do cryptography work in LSL2 and posting it out to the web via [[llHTTPRequest]].&lt;br /&gt;
|-&lt;br /&gt;
|| [[User:SignpostMarv Martin/PHP/lsl fu.php|lsl_fu.php]]&lt;br /&gt;
|| [[User:SignpostMarv Martin|SignpostMarv Martin]]&lt;br /&gt;
|| A basic OOP&#039;d PHP Class containing VeloxSeverine&#039;s $_POST fixer and Marv&#039;s own eccentric ideas for &amp;quot;fixing&amp;quot; things.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Sally LaSalle</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Color_conversion_scripts&amp;diff=29073</id>
		<title>Color conversion scripts</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Color_conversion_scripts&amp;diff=29073"/>
		<updated>2007-08-22T22:28:55Z</updated>

		<summary type="html">&lt;p&gt;Sally LaSalle: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header&lt;br /&gt;
}}{{#vardefine:header_title|Color conversion scripts&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The following functions convert between LSL [[color]] in Red Green Blue (RGB) format and color in Hue Saturation Value (HSV) format.&lt;br /&gt;
The functions are based on &amp;quot;c&amp;quot; algorithms from [http://www.cs.rit.edu/~ncs/color/t_convert.html c color conversion] but required some debugging and extensive re-working to fit them in to LSL.   For a discussion of HSV color format please see the wikipedia entry at  [http://en.wikipedia.org/wiki/HSV_color_space HSV Color]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
RGB to HSV follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// by Sally LaSalle, code released to the public domain under GNU GPL version 3.0 license.&lt;br /&gt;
// you are free to use, and you are free to donate to me if you wish!! :P&lt;br /&gt;
&lt;br /&gt;
// takes an RGB color as a vector, with range &amp;lt;float R[0,1], float G[0,1], float B[0,1]&amp;gt;&lt;br /&gt;
// returns a vector with HSV ranged from &amp;lt;float H[0,360], float S[0,1],  float V[0,1]&amp;gt;&lt;br /&gt;
// H ranges smoothly from Red=0, Yellow=60, Green=120, Cyan=180, Blue=240, Violet=300 and back to Red&lt;br /&gt;
&lt;br /&gt;
vector RGBtoHSV( vector rgb )&lt;br /&gt;
{&lt;br /&gt;
     float R = rgb.x;&lt;br /&gt;
     if (R&amp;lt;0)		// catch malformed input&lt;br /&gt;
	R=0;&lt;br /&gt;
     else if (R&amp;gt;1)&lt;br /&gt;
	R=1;&lt;br /&gt;
     float G = rgb.y;&lt;br /&gt;
     if (G&amp;lt;0)		// catch malformed input&lt;br /&gt;
	G=0;&lt;br /&gt;
     else if (G&amp;gt;1)&lt;br /&gt;
	G=1;&lt;br /&gt;
     float B = rgb.z;&lt;br /&gt;
     if (B&amp;lt;0)		// catch malformed input&lt;br /&gt;
	B=0;&lt;br /&gt;
     else if (B&amp;gt;1)&lt;br /&gt;
	B=1;&lt;br /&gt;
    &lt;br /&gt;
    float H;&lt;br /&gt;
    float S;&lt;br /&gt;
    float V;&lt;br /&gt;
    &lt;br /&gt;
    list rgbList = [R, G, B]; // list used to get min and max&lt;br /&gt;
        &lt;br /&gt;
    float min;&lt;br /&gt;
    float max;&lt;br /&gt;
    float achromatic;  // =1 if R=G=B&lt;br /&gt;
    float delta;&lt;br /&gt;
    &lt;br /&gt;
    vector hsv;  // the return HSV vector&lt;br /&gt;
&lt;br /&gt;
    min = llListStatistics(LIST_STAT_MIN, rgbList); //MIN of ( R, G, B );&lt;br /&gt;
    max = llListStatistics(LIST_STAT_MAX, rgbList); //MAX of ( R, G, B );&lt;br /&gt;
    if (R==G &amp;amp;&amp;amp; G==B)&lt;br /&gt;
		achromatic = 1;  // it is a shade of grey, white or black&lt;br /&gt;
	else&lt;br /&gt;
		achromatic = 0;&lt;br /&gt;
&lt;br /&gt;
    V = max;                    // V = brightness Value form 0 to 1&lt;br /&gt;
    delta = max - min;&lt;br /&gt;
&lt;br /&gt;
    if( max != 0 )&lt;br /&gt;
        S = delta / max;        // S = saturation from 0 to 1&lt;br /&gt;
    else {&lt;br /&gt;
        // R = G = B = 0        // S = 0, V = 0, H = 0&lt;br /&gt;
        S = 0;                  &lt;br /&gt;
        V = 0;                  &lt;br /&gt;
        H = 0;&lt;br /&gt;
        &lt;br /&gt;
        hsv.x = H;&lt;br /&gt;
        hsv.y = S;&lt;br /&gt;
        hsv.z = V;&lt;br /&gt;
        return hsv;             //H = S = V = 0&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (achromatic == 1)&lt;br /&gt;
        H = 0;&lt;br /&gt;
    else if( R == max )&lt;br /&gt;
        H = 0 + ( G - B ) / delta;    // between red &amp;amp; yellow&lt;br /&gt;
    else if( G == max )&lt;br /&gt;
        H = 2 + ( B - R ) / delta;    // between yellow &amp;amp; cyan&lt;br /&gt;
    else&lt;br /&gt;
        H = 4 + ( R - G ) / delta;    // between cyan &amp;amp; red&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    H *= 60;                	      // H is traditionally a figure between 0 and 360 degrees&lt;br /&gt;
    if( H &amp;lt; 0 )&lt;br /&gt;
        H += 360;&lt;br /&gt;
&lt;br /&gt;
    hsv.x = H;&lt;br /&gt;
    hsv.y = S;&lt;br /&gt;
    hsv.z = V;&lt;br /&gt;
    return hsv;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
HSV to RGB follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// by Sally LaSalle, code released to the public domain under GNU GPL version 3.0 license.&lt;br /&gt;
// you are free to use, and you are free to donate to me if you wish!! :P&lt;br /&gt;
&lt;br /&gt;
// takes a vector encoded Hue Saturation Value (HSV) triplet&lt;br /&gt;
// HSV should be entered with floats the ranges: &amp;lt;float H(0 to 360), float S(0 to 1),float V(0 to 1)&amp;gt;&lt;br /&gt;
// And Returns a vector encode Red Green Blue (RGB) color triplet&lt;br /&gt;
// RGB will be returned with floats in ranges &amp;lt;float R(0 to 1),float G(0 to 1),float B(0 to 1)&amp;gt;&lt;br /&gt;
&lt;br /&gt;
vector HSVtoRGB( vector hsv )&lt;br /&gt;
{&lt;br /&gt;
    integer i;&lt;br /&gt;
	&lt;br /&gt;
     float H = hsv.x;&lt;br /&gt;
     if (H&amp;lt;0)		// catch malformed H input&lt;br /&gt;
	H=0;&lt;br /&gt;
     else if (H&amp;gt;360)&lt;br /&gt;
	H=360;&lt;br /&gt;
     float S = hsv.y;&lt;br /&gt;
     if (S&amp;lt;0)		// catch malformed S input&lt;br /&gt;
	S=0;&lt;br /&gt;
     else if (S&amp;gt;1)&lt;br /&gt;
	S=1;&lt;br /&gt;
     float V = hsv.z;&lt;br /&gt;
     if (V&amp;lt;0)		// catch malformed V input&lt;br /&gt;
	V=0;&lt;br /&gt;
     else if (V&amp;gt;1)&lt;br /&gt;
	V=1;&lt;br /&gt;
&lt;br /&gt;
    float R;&lt;br /&gt;
    float G;&lt;br /&gt;
    float B;&lt;br /&gt;
    &lt;br /&gt;
    float f; 	    // variables for calculating base color mixing around the &amp;quot;spectrum circle&amp;quot;&lt;br /&gt;
    float p;&lt;br /&gt;
    float q;&lt;br /&gt;
    float t;&lt;br /&gt;
  &lt;br /&gt;
    vector rgb;&lt;br /&gt;
    &lt;br /&gt;
    if( S == 0 ) {  // achromatic (grey) simply set R,G, &amp;amp; B = Value&lt;br /&gt;
        R = V;&lt;br /&gt;
        G = V;&lt;br /&gt;
        B = V;&lt;br /&gt;
&lt;br /&gt;
        rgb.x = R;&lt;br /&gt;
        rgb.y = G;&lt;br /&gt;
        rgb.z = B;&lt;br /&gt;
        return rgb;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    H /= 60;              // Hue factored into range 0 to 5&lt;br /&gt;
    i = llFloor( H );	  // integer floor of Hue&lt;br /&gt;
    f = H - i;            // factorial part of H&lt;br /&gt;
&lt;br /&gt;
    p = V * ( 1 - S );&lt;br /&gt;
    q = V * ( 1 - S * f );&lt;br /&gt;
    t = V * ( 1 - S * ( 1 - f ) );&lt;br /&gt;
&lt;br /&gt;
    if 		(i==0){&lt;br /&gt;
	            R = V;&lt;br /&gt;
	            G = t;&lt;br /&gt;
	            B = p;}&lt;br /&gt;
    else if (i==1){&lt;br /&gt;
            	R = q;&lt;br /&gt;
	            G = V;&lt;br /&gt;
	            B = p;}&lt;br /&gt;
    else if (i==2){&lt;br /&gt;
            	R = p;&lt;br /&gt;
	            G = V;&lt;br /&gt;
	            B = t;}&lt;br /&gt;
    else if (i==3){&lt;br /&gt;
            	R = p;&lt;br /&gt;
	            G = q;&lt;br /&gt;
	            B = V;}&lt;br /&gt;
    else if (i==4){&lt;br /&gt;
            	R = t;&lt;br /&gt;
	            G = p;&lt;br /&gt;
	            B = V;}&lt;br /&gt;
    else {       &lt;br /&gt;
           		R = V;&lt;br /&gt;
	            G = p;&lt;br /&gt;
	            B = q;&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    rgb.x = R;&lt;br /&gt;
    rgb.y = G;&lt;br /&gt;
    rgb.z = B;&lt;br /&gt;
    &lt;br /&gt;
    return rgb;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sally LaSalle</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Color_conversion_scripts&amp;diff=29060</id>
		<title>Color conversion scripts</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Color_conversion_scripts&amp;diff=29060"/>
		<updated>2007-08-22T15:48:34Z</updated>

		<summary type="html">&lt;p&gt;Sally LaSalle: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header&lt;br /&gt;
}}{{#vardefine:header_title|Color conversion scripts&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The following functions convert between LSL [[color]] in Red Green Blue (RGB) format and color in Hue Saturation Value (HSV) format.&lt;br /&gt;
The functions are based on &amp;quot;c&amp;quot; algorithms from [http://www.cs.rit.edu/~ncs/color/t_convert.html c color conversion] but required some debugging and extensive re-working to fit them in to LSL.   For a discussion of HSV color format please see the wikipedia entry at  [http://en.wikipedia.org/wiki/HSV_color_space HSV Color]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
RGB to HSV follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// by Sally LaSalle, code released to the public domain under GNU license.&lt;br /&gt;
&lt;br /&gt;
// takes an RGB color as a vector, with range &amp;lt;float R[0,1], float G[0,1], float B[0,1]&amp;gt;&lt;br /&gt;
// returns a vector with HSV ranged from &amp;lt;float H[0,360], float S[0,1],  float V[0,1]&amp;gt;&lt;br /&gt;
// H ranges smoothly from Red=0, Yellow=60, Green=120, Cyan=180, Blue=240, Violet=300 and back to Red&lt;br /&gt;
&lt;br /&gt;
vector RGBtoHSV( vector rgb )&lt;br /&gt;
{&lt;br /&gt;
     float R = rgb.x;&lt;br /&gt;
     if (R&amp;lt;0)		// catch malformed input&lt;br /&gt;
	R=0;&lt;br /&gt;
     else if (R&amp;gt;1)&lt;br /&gt;
	R=1;&lt;br /&gt;
     float G = rgb.y;&lt;br /&gt;
     if (G&amp;lt;0)		// catch malformed input&lt;br /&gt;
	G=0;&lt;br /&gt;
     else if (G&amp;gt;1)&lt;br /&gt;
	G=1;&lt;br /&gt;
     float B = rgb.z;&lt;br /&gt;
     if (B&amp;lt;0)		// catch malformed input&lt;br /&gt;
	B=0;&lt;br /&gt;
     else if (B&amp;gt;1)&lt;br /&gt;
	B=1;&lt;br /&gt;
    &lt;br /&gt;
    float H;&lt;br /&gt;
    float S;&lt;br /&gt;
    float V;&lt;br /&gt;
    &lt;br /&gt;
    list rgbList = [R, G, B]; // list used to get min and max&lt;br /&gt;
        &lt;br /&gt;
    float min;&lt;br /&gt;
    float max;&lt;br /&gt;
    float achromatic;  // =1 if R=G=B&lt;br /&gt;
    float delta;&lt;br /&gt;
    &lt;br /&gt;
    vector hsv;  // the return HSV vector&lt;br /&gt;
&lt;br /&gt;
    min = llListStatistics(LIST_STAT_MIN, rgbList); //MIN of ( R, G, B );&lt;br /&gt;
    max = llListStatistics(LIST_STAT_MAX, rgbList); //MAX of ( R, G, B );&lt;br /&gt;
    if (R==G &amp;amp;&amp;amp; G==B)&lt;br /&gt;
		achromatic = 1;  // it is a shade of grey, white or black&lt;br /&gt;
	else&lt;br /&gt;
		achromatic = 0;&lt;br /&gt;
&lt;br /&gt;
    V = max;                    // V = brightness Value form 0 to 1&lt;br /&gt;
    delta = max - min;&lt;br /&gt;
&lt;br /&gt;
    if( max != 0 )&lt;br /&gt;
        S = delta / max;        // S = saturation from 0 to 1&lt;br /&gt;
    else {&lt;br /&gt;
        // R = G = B = 0        // S = 0, V = 0, H = 0&lt;br /&gt;
        S = 0;                  &lt;br /&gt;
        V = 0;                  &lt;br /&gt;
        H = 0;&lt;br /&gt;
        &lt;br /&gt;
        hsv.x = H;&lt;br /&gt;
        hsv.y = S;&lt;br /&gt;
        hsv.z = V;&lt;br /&gt;
        return hsv;             //H = S = V = 0&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (achromatic == 1)&lt;br /&gt;
        H = 0;&lt;br /&gt;
    else if( R == max )&lt;br /&gt;
        H = 0 + ( G - B ) / delta;    // between red &amp;amp; yellow&lt;br /&gt;
    else if( G == max )&lt;br /&gt;
        H = 2 + ( B - R ) / delta;    // between yellow &amp;amp; cyan&lt;br /&gt;
    else&lt;br /&gt;
        H = 4 + ( R - G ) / delta;    // between cyan &amp;amp; red&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    H *= 60;                	      // H is traditionally a figure between 0 and 360 degrees&lt;br /&gt;
    if( H &amp;lt; 0 )&lt;br /&gt;
        H += 360;&lt;br /&gt;
&lt;br /&gt;
    hsv.x = H;&lt;br /&gt;
    hsv.y = S;&lt;br /&gt;
    hsv.z = V;&lt;br /&gt;
    return hsv;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
HSV to RGB follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// takes a vector encoded Hue Saturation Value (HSV) triplet&lt;br /&gt;
// HSV should be entered with floats the ranges: &amp;lt;float H(0 to 360), float S(0 to 1),float V(0 to 1)&amp;gt;&lt;br /&gt;
// And Returns a vector encode Red Green Blue (RGB) color triplet&lt;br /&gt;
// RGB will be returned with floats in ranges &amp;lt;float R(0 to 1),float G(0 to 1),float B(0 to 1)&amp;gt;&lt;br /&gt;
&lt;br /&gt;
vector HSVtoRGB( vector hsv )&lt;br /&gt;
{&lt;br /&gt;
    integer i;&lt;br /&gt;
	&lt;br /&gt;
     float H = hsv.x;&lt;br /&gt;
     if (H&amp;lt;0)		// catch malformed H input&lt;br /&gt;
	H=0;&lt;br /&gt;
     else if (H&amp;gt;360)&lt;br /&gt;
	H=360;&lt;br /&gt;
     float S = hsv.y;&lt;br /&gt;
     if (S&amp;lt;0)		// catch malformed S input&lt;br /&gt;
	S=0;&lt;br /&gt;
     else if (S&amp;gt;1)&lt;br /&gt;
	S=1;&lt;br /&gt;
     float V = hsv.z;&lt;br /&gt;
     if (V&amp;lt;0)		// catch malformed V input&lt;br /&gt;
	V=0;&lt;br /&gt;
     else if (V&amp;gt;1)&lt;br /&gt;
	V=1;&lt;br /&gt;
&lt;br /&gt;
    float R;&lt;br /&gt;
    float G;&lt;br /&gt;
    float B;&lt;br /&gt;
    &lt;br /&gt;
    float f; 	    // variables for calculating base color mixing around the &amp;quot;spectrum circle&amp;quot;&lt;br /&gt;
    float p;&lt;br /&gt;
    float q;&lt;br /&gt;
    float t;&lt;br /&gt;
  &lt;br /&gt;
    vector rgb;&lt;br /&gt;
    &lt;br /&gt;
    if( S == 0 ) {  // achromatic (grey) simply set R,G, &amp;amp; B = Value&lt;br /&gt;
        R = V;&lt;br /&gt;
        G = V;&lt;br /&gt;
        B = V;&lt;br /&gt;
&lt;br /&gt;
        rgb.x = R;&lt;br /&gt;
        rgb.y = G;&lt;br /&gt;
        rgb.z = B;&lt;br /&gt;
        return rgb;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    H /= 60;              // Hue factored into range 0 to 5&lt;br /&gt;
    i = llFloor( H );	  // integer floor of Hue&lt;br /&gt;
    f = H - i;            // factorial part of H&lt;br /&gt;
&lt;br /&gt;
    p = V * ( 1 - S );&lt;br /&gt;
    q = V * ( 1 - S * f );&lt;br /&gt;
    t = V * ( 1 - S * ( 1 - f ) );&lt;br /&gt;
&lt;br /&gt;
    if 		(i==0){&lt;br /&gt;
	            R = V;&lt;br /&gt;
	            G = t;&lt;br /&gt;
	            B = p;}&lt;br /&gt;
    else if (i==1){&lt;br /&gt;
            	R = q;&lt;br /&gt;
	            G = V;&lt;br /&gt;
	            B = p;}&lt;br /&gt;
    else if (i==2){&lt;br /&gt;
            	R = p;&lt;br /&gt;
	            G = V;&lt;br /&gt;
	            B = t;}&lt;br /&gt;
    else if (i==3){&lt;br /&gt;
            	R = p;&lt;br /&gt;
	            G = q;&lt;br /&gt;
	            B = V;}&lt;br /&gt;
    else if (i==4){&lt;br /&gt;
            	R = t;&lt;br /&gt;
	            G = p;&lt;br /&gt;
	            B = V;}&lt;br /&gt;
    else {       &lt;br /&gt;
           		R = V;&lt;br /&gt;
	            G = p;&lt;br /&gt;
	            B = q;&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    rgb.x = R;&lt;br /&gt;
    rgb.y = G;&lt;br /&gt;
    rgb.z = B;&lt;br /&gt;
    &lt;br /&gt;
    return rgb;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sally LaSalle</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Color_conversion_scripts&amp;diff=29030</id>
		<title>Color conversion scripts</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Color_conversion_scripts&amp;diff=29030"/>
		<updated>2007-08-21T23:03:17Z</updated>

		<summary type="html">&lt;p&gt;Sally LaSalle: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header&lt;br /&gt;
}}{{#vardefine:header_title|Color conversion scripts&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The following functions convert between LSL [[color]] in Red Green Blue (RGB) format and color in Hue Saturation Value (HSV) format.&lt;br /&gt;
The functions are based on &amp;quot;c&amp;quot; algorithms from [http://www.cs.rit.edu/~ncs/color/t_convert.html c color conversion] but required some debugging and extensive re-working to fit them in to LSL.   For a discussion of HSV color format please see the wikipedia entry at  [http://en.wikipedia.org/wiki/HSV_color_space HSV Color]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
RGB to HSV follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// by Sally LaSalle, code released to the public domain under GNU license.&lt;br /&gt;
&lt;br /&gt;
// takes an RGB color as a vector, with range &amp;lt;float R[0,1], float G[0,1], float B[0,1]&amp;gt;&lt;br /&gt;
// returns a vector with HSV ranged from &amp;lt;float H[0,360], float S[0,1],  float V[0,1]&amp;gt;&lt;br /&gt;
// H ranges smoothly from Red=0, Yellow=60, Green=120, Cyan=180, Blue=240, Violet=300 and back to Red&lt;br /&gt;
&lt;br /&gt;
vector RGBtoHSV( vector rgb )&lt;br /&gt;
{&lt;br /&gt;
    float R = rgb.x;&lt;br /&gt;
    float G = rgb.y;&lt;br /&gt;
    float B = rgb.z;&lt;br /&gt;
    &lt;br /&gt;
    float H;&lt;br /&gt;
    float S;&lt;br /&gt;
    float V;&lt;br /&gt;
    &lt;br /&gt;
    list rgbList = [R, G, B]; // list used to get min and max&lt;br /&gt;
        &lt;br /&gt;
    float min;&lt;br /&gt;
    float max;&lt;br /&gt;
    float achromatic;  // =1 if R=G=B&lt;br /&gt;
    float delta;&lt;br /&gt;
    &lt;br /&gt;
    vector hsv;  // the return HSV vector&lt;br /&gt;
&lt;br /&gt;
    min = llListStatistics(LIST_STAT_MIN, rgbList); //MIN of ( R, G, B );&lt;br /&gt;
    max = llListStatistics(LIST_STAT_MAX, rgbList); //MAX of ( R, G, B );&lt;br /&gt;
    if (R==G &amp;amp;&amp;amp; G==B)&lt;br /&gt;
		achromatic= 1;  // it is a shade of grey, white or black&lt;br /&gt;
	else&lt;br /&gt;
		achromatic= 0;&lt;br /&gt;
&lt;br /&gt;
    V = max;                    // V = brightness Value form 0 to 1&lt;br /&gt;
    delta = max - min;&lt;br /&gt;
&lt;br /&gt;
    if( max != 0 )&lt;br /&gt;
        S = delta / max;        // S = saturation from 0 to 1&lt;br /&gt;
    else {&lt;br /&gt;
        // R = G = B = 0        // S = 0, V = 0, H = 0&lt;br /&gt;
        S = 0;                  &lt;br /&gt;
        V = 0;                  &lt;br /&gt;
        H = 0;&lt;br /&gt;
        &lt;br /&gt;
        hsv.x = H;&lt;br /&gt;
        hsv.y = S;&lt;br /&gt;
        hsv.z = V;&lt;br /&gt;
        return hsv;             //H = S = V = 0&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (achromatic == 1)&lt;br /&gt;
        H = 0;&lt;br /&gt;
    else if( R == max )&lt;br /&gt;
        H = 0 + ( G - B ) / delta;    // between red &amp;amp; yellow&lt;br /&gt;
    else if( G == max )&lt;br /&gt;
        H = 2 + ( B - R ) / delta;    // between yellow &amp;amp; cyan&lt;br /&gt;
    else&lt;br /&gt;
        H = 4 + ( R - G ) / delta;    // between cyan &amp;amp; red&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    H *= 60;                	      // H is traditionally a figure between 0 and 360 degrees&lt;br /&gt;
    if( H &amp;lt; 0 )&lt;br /&gt;
        H += 360;&lt;br /&gt;
&lt;br /&gt;
    hsv.x = H;&lt;br /&gt;
    hsv.y = S;&lt;br /&gt;
    hsv.z = V;&lt;br /&gt;
    return hsv;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
HSV to RGB follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// takes a vector encoded Hue Saturation Value (HSV) triplet&lt;br /&gt;
// HSV should be entered with floats the ranges: &amp;lt;float H(0 to 360), float S(0 to 1),float V(0 to 1)&amp;gt;&lt;br /&gt;
// And Returns a vector encode Red Green Blue (RGB) color triplet&lt;br /&gt;
// RGB will be returned with floats in ranges &amp;lt;float R(0 to 1),float G(0 to 1),float B(0 to 1)&amp;gt;&lt;br /&gt;
&lt;br /&gt;
vector HSVtoRGB( vector hsv )&lt;br /&gt;
{&lt;br /&gt;
    integer i;&lt;br /&gt;
	&lt;br /&gt;
    float H = hsv.x;&lt;br /&gt;
    float S = hsv.y;&lt;br /&gt;
    float V = hsv.z;&lt;br /&gt;
&lt;br /&gt;
    float R;&lt;br /&gt;
    float G;&lt;br /&gt;
    float B;&lt;br /&gt;
    &lt;br /&gt;
    float f; 	    // variables for calculating base color mixing around the &amp;quot;spectrum circle&amp;quot;&lt;br /&gt;
    float p;&lt;br /&gt;
    float q;&lt;br /&gt;
    float t;&lt;br /&gt;
  &lt;br /&gt;
    vector rgb;&lt;br /&gt;
    &lt;br /&gt;
    if( S == 0 ) {  // achromatic (grey) simply set R,G, &amp;amp; B = Value&lt;br /&gt;
        R = V;&lt;br /&gt;
        G = V;&lt;br /&gt;
        B = V;&lt;br /&gt;
&lt;br /&gt;
        rgb.x = R;&lt;br /&gt;
        rgb.y = G;&lt;br /&gt;
        rgb.z = B;&lt;br /&gt;
        return rgb;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    H /= 60;              // Hue factored into range 0 to 5&lt;br /&gt;
    i = llFloor( H );	  // integer floor of Hue&lt;br /&gt;
    f = H - i;            // factorial part of H&lt;br /&gt;
&lt;br /&gt;
    p = V * ( 1 - S );&lt;br /&gt;
    q = V * ( 1 - S * f );&lt;br /&gt;
    t = V * ( 1 - S * ( 1 - f ) );&lt;br /&gt;
&lt;br /&gt;
    if 		(i==0){&lt;br /&gt;
	            R = V;&lt;br /&gt;
	            G = t;&lt;br /&gt;
	            B = p;}&lt;br /&gt;
    else if (i==1){&lt;br /&gt;
            	R = q;&lt;br /&gt;
	            G = V;&lt;br /&gt;
	            B = p;}&lt;br /&gt;
    else if (i==2){&lt;br /&gt;
            	R = p;&lt;br /&gt;
	            G = V;&lt;br /&gt;
	            B = t;}&lt;br /&gt;
    else if (i==3){&lt;br /&gt;
            	R = p;&lt;br /&gt;
	            G = q;&lt;br /&gt;
	            B = V;}&lt;br /&gt;
    else if (i==4){&lt;br /&gt;
            	R = t;&lt;br /&gt;
	            G = p;&lt;br /&gt;
	            B = V;}&lt;br /&gt;
    else {       &lt;br /&gt;
           		R = V;&lt;br /&gt;
	            G = p;&lt;br /&gt;
	            B = q;&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    rgb.x = R;&lt;br /&gt;
    rgb.y = G;&lt;br /&gt;
    rgb.z = B;&lt;br /&gt;
    &lt;br /&gt;
    return rgb;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sally LaSalle</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Color_conversion_scripts&amp;diff=29005</id>
		<title>Color conversion scripts</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Color_conversion_scripts&amp;diff=29005"/>
		<updated>2007-08-21T19:43:48Z</updated>

		<summary type="html">&lt;p&gt;Sally LaSalle: Color conversion script for conversion to and from RGB to HSV&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header&lt;br /&gt;
}}{{#vardefine:header_title|Color conversion scripts&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The following functions convert between LSL [[color]] in Red Green Blue (RGB) format and color in Hue Saturation Value (HSV) format.&lt;br /&gt;
The functions are based on &amp;quot;c&amp;quot; algorithms from [http://www.cs.rit.edu/~ncs/color/t_convert.html c color conversion] but required some debugging and extensive re-working to fit them in to LSL.   For a discussion of HSV color format please see the wikipedia entry at  [http://en.wikipedia.org/wiki/HSV_color_space HSV Color]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// by Sally LaSalle, code released to the public domain under GNU license.&lt;br /&gt;
&lt;br /&gt;
// takes an RGB color as a vector, with range &amp;lt;float R[0,1], float G[0,1], float B[0,1]&amp;gt;&lt;br /&gt;
// returns a vector with HSV ranged from &amp;lt;float H[0,360], float S[0,1],  float V[0,1]&amp;gt;&lt;br /&gt;
// H ranges smoothly from Red=0, Yellow=60, Green=120, Cyan=180, Blue=240, Violet=300 and back to Red&lt;br /&gt;
&lt;br /&gt;
vector RGBtoHSV( vector rgb )&lt;br /&gt;
{&lt;br /&gt;
    float R = rgb.x;&lt;br /&gt;
    float G = rgb.y;&lt;br /&gt;
    float B = rgb.z;&lt;br /&gt;
    &lt;br /&gt;
    float H;&lt;br /&gt;
    float S;&lt;br /&gt;
    float V;&lt;br /&gt;
    &lt;br /&gt;
    list rgbList = [R, G, B]; // list used to get min and max&lt;br /&gt;
        &lt;br /&gt;
    float min;&lt;br /&gt;
    float max;&lt;br /&gt;
    float achromatic;  // =1 if R=G=B&lt;br /&gt;
    float delta;&lt;br /&gt;
    &lt;br /&gt;
    vector hsv;  // the return HSV vector&lt;br /&gt;
&lt;br /&gt;
    min = llListStatistics(LIST_STAT_MIN, rgbList); //MIN of ( R, G, B );&lt;br /&gt;
    max = llListStatistics(LIST_STAT_MAX, rgbList); //MAX of ( R, G, B );&lt;br /&gt;
    if (R==G &amp;amp;&amp;amp; G==B)&lt;br /&gt;
		achromatic= 1;  // it is a shade of grey, white or black&lt;br /&gt;
	else&lt;br /&gt;
		achromatic= 0;&lt;br /&gt;
&lt;br /&gt;
    V = max;                    // V = brightness Value form 0 to 1&lt;br /&gt;
    delta = max - min;&lt;br /&gt;
&lt;br /&gt;
    if( max != 0 )&lt;br /&gt;
        S = delta / max;        // S = saturation from 0 to 1&lt;br /&gt;
    else {&lt;br /&gt;
        // R = G = B = 0        // S = 0, V = 0, H = 0&lt;br /&gt;
        S = 0;                  &lt;br /&gt;
        V = 0;                  &lt;br /&gt;
        H = 0;&lt;br /&gt;
        &lt;br /&gt;
        hsv.x = H;&lt;br /&gt;
        hsv.y = S;&lt;br /&gt;
        hsv.z = V;&lt;br /&gt;
        return hsv;             //H = S = V = 0&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (achromatic == 1)&lt;br /&gt;
        H = 0;&lt;br /&gt;
    else if( R == max )&lt;br /&gt;
        H = 0 + ( G - B ) / delta;    // between red &amp;amp; yellow&lt;br /&gt;
    else if( G == max )&lt;br /&gt;
        H = 2 + ( B - R ) / delta;    // between yellow &amp;amp; cyan&lt;br /&gt;
    else&lt;br /&gt;
        H = 4 + ( R - G ) / delta;    // between cyan &amp;amp; red&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    H *= 60;                	      // H is traditionally a figure between 0 and 360 degrees&lt;br /&gt;
    if( H &amp;lt; 0 )&lt;br /&gt;
        H += 360;&lt;br /&gt;
&lt;br /&gt;
    hsv.x = H;&lt;br /&gt;
    hsv.y = S;&lt;br /&gt;
    hsv.z = V;&lt;br /&gt;
    return hsv;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sally LaSalle</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Color_conversion_scripts&amp;diff=29002</id>
		<title>Color conversion scripts</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Color_conversion_scripts&amp;diff=29002"/>
		<updated>2007-08-21T19:19:26Z</updated>

		<summary type="html">&lt;p&gt;Sally LaSalle: New page: The following functions convert between color in Red Green Blue (RGB) format and color in Hue Saturation Value (HSV)format. The functions are based on c algorithms from [http://www.cs....&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following functions convert between [[color]] in Red Green Blue (RGB) format and color in Hue Saturation Value (HSV)format.&lt;br /&gt;
The functions are based on c algorithms from [http://www.cs.rit.edu/~ncs/color/t_convert.html C color conversion] but required some debugging as the functions there are no particularly robust.   For a discussion of HSV color format please see the wikipedia entry at  [http://en.wikipedia.org/wiki/HSV_color_space HSV Color]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sally LaSalle</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Sally_LaSalle&amp;diff=29001</id>
		<title>User:Sally LaSalle</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Sally_LaSalle&amp;diff=29001"/>
		<updated>2007-08-21T18:54:16Z</updated>

		<summary type="html">&lt;p&gt;Sally LaSalle: New page: == About Me ==  I have benefited greatly from the contributors to this forum and to the code in the forum script library.  So, here is my contribution, which will hopefully be found useful...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About Me ==&lt;br /&gt;
&lt;br /&gt;
I have benefited greatly from the contributors to this forum and to the code in the forum script library.  So, here is my contribution, which will hopefully be found useful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Scripts ==&lt;br /&gt;
&lt;br /&gt;
[[Color conversion scripts]]  RGBtoHSV and HSVtoRGB  Use these freely to convert between Red Green Blue (RGB) into Hue Saturation Value (HSV).&lt;/div&gt;</summary>
		<author><name>Sally LaSalle</name></author>
	</entry>
</feed>