<?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=Ayamo+Nozaki</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=Ayamo+Nozaki"/>
	<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/wiki/Special:Contributions/Ayamo_Nozaki"/>
	<updated>2026-06-08T14:37:15Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LSL_Alternate_Editors&amp;diff=1192115</id>
		<title>LSL Alternate Editors</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LSL_Alternate_Editors&amp;diff=1192115"/>
		<updated>2014-07-13T19:39:24Z</updated>

		<summary type="html">&lt;p&gt;Ayamo Nozaki: Used colspan=2 for Atom&amp;#039;s two yes things! ;)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header|ml=*}}&lt;br /&gt;
&lt;br /&gt;
There are several off-world editors available for free or to purchase.  Some have syntax highlighting for LSL that will make your code easier to follow.  At least two will compile and execute a large subset of LSL. Below are some of the more popular editors for use with LSL.  &lt;br /&gt;
&lt;br /&gt;
If you have a favorite that is missing from the list, &#039;&#039;&#039;please&#039;&#039;&#039; feel free to add it.&lt;br /&gt;
&lt;br /&gt;
==Opening scripts in another editor directly from the viewer:==&lt;br /&gt;
&lt;br /&gt;
* Enable: Preferences &amp;gt; Advanced &amp;gt; Show [[Advanced_menu]].&lt;br /&gt;
* Go to: Advanced &amp;gt; Show [[Debug_Settings]].&lt;br /&gt;
* Edit: &amp;quot;ExternalEditor&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
As the description tells you, enter 3 params:&lt;br /&gt;
* Path to editor (enclose in quotes, if path has spaces).&lt;br /&gt;
* Optional command line params (you can ignore these if you like).&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;quot;%s&amp;quot;&amp;lt;/code&amp;gt; will paste script path automatically (dont change this).&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
* Linux (opens script in new window if already open): &amp;lt;code&amp;gt;/usr/bin/gedit --new-window &amp;quot;%s&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Windows (path has spaces &amp;gt; enclosed in quotes): &amp;lt;code&amp;gt;&amp;quot;C:\Users\FirstName LastName\Notepad\notepad++.exe&amp;quot; &amp;quot;%s&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then click the &amp;lt;code&amp;gt;&amp;quot;Edit...&amp;quot;&amp;lt;/code&amp;gt; button in the script edit window. Save and close editor when done.&lt;br /&gt;
&lt;br /&gt;
==Making your own files for syntax highlighting and autocompletion:==&lt;br /&gt;
&lt;br /&gt;
Please refer to the page [[Making_your_own_LSL_syntax_and_autocompletion_files]] for a list of colors used by Linden Labs for the editor in their viewer as well as a list with current keywords.&lt;br /&gt;
&lt;br /&gt;
== Online LSL Generators ==&lt;br /&gt;
Online LSL generators create and edit LSL scripts via a website, some may have syntax highlighting for better reading.&lt;br /&gt;
Sites are multi-platform editors without downloads:&lt;br /&gt;
*[http://conwylie.co.uk/ScriptGenerator/ Con Wylie&#039;s LSL Script Generator]&lt;br /&gt;
&lt;br /&gt;
== Syntax Highlighting Files ==&lt;br /&gt;
These projects may have more current LSL highlighting files:&lt;br /&gt;
*[http://adammarker.org/shill Shill project]&lt;br /&gt;
*[http://hilitelsl.googlecode.com HiLiteLSL.GoogleCode.com]&lt;br /&gt;
&lt;br /&gt;
== Syntax highlighting, autocompletion and snippet files by the [http://www.buildersbrewery.com Builder&#039;s Brewery]: ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font-size: 85%; text-align: center; width: auto; border=1px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Software:&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;URL for download:&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Issue tracker:&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Commercial:&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Windows:&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Mac:&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Linux:&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Browser&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Syntax:&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Autocompletion:&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Snippets:&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| [http://ace.c9.io Ace]&lt;br /&gt;
| [https://github.com/ajaxorg/ace/ Ace]&lt;br /&gt;
| [https://github.com/ajaxorg/ace/issues/ Issue tracker]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{maybe|requires a browser}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|LL viewer theme not included}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.contexteditor.org/ ConTEXT]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-context/ Files for ConTEXT]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-context/issues/ Issue tracker]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.gnu.org/software/emacs/ Emacs]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-emacs/ Files for Emacs]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-emacs/issues/ Issue tracker]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{maybe|Work in progress}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{maybe|included for [https://github.com/capitaomorte/yasnippet YASnippet]}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://projects.gnome.org/gedit/ gedit]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-gedit/ Files for gedit]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-gedit/issues/ Issue tracker]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{yes}}&lt;br /&gt;
| {{maybe|for GNOME}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.mediawiki.org/wiki/Extension:SyntaxHighlight_GeSHi GeSHi - wikimedia extension]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-geshi/ Files for GeSHi]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-geshi/issues/ Issue tracker]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{maybe|requires a browser}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.atom.io/ Github - AtomEditor]&lt;br /&gt;
| [https://github.com/buildersbrewery/language-lsl/ Files for Atom]&lt;br /&gt;
| [https://github.com/buildersbrewery/language-lsl/issues/ Issue tracker]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{yes}}&lt;br /&gt;
| {{maybe|Hasn&#039;t been publicly released, yet.}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{maybe|Work in progress}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.jedit.org/ jEdit]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-jedit/ Files for jEdit]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-jedit/issues/ Issue tracker]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{maybe|requires JavaVM}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{maybe|LL viewer theme not included}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.kate-editor.org/ Kate]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-kate-editor/ Files for Kate]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-kate-editor/issues/ Issue tracker]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{maybe|via KDE for Windows}}&lt;br /&gt;
| {{maybe|via KDE for Mac}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.nano-editor.org/ Nano]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-nano/ Files for Nano]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-nano/issues/ Issue tracker]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.notepad-plus-plus.org/ Notepad++]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-notepadplusplus/ Files for Notepad++]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-notepadplusplus/issues/ Issue tracker]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{yes}}&lt;br /&gt;
| {{maybe|included for [https://github.com/erinata/FingerText FingerText]}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.codingmonkeys.de/subethaedit/ SubEthaEdit]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-subethaedit/ Files for SubEthaEdit]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-subethaedit/issues/ Issue tracker]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.smilesoftware.com/TextExpander/ TextExpander] and [https://www.smilesoftware.com/TextExpander/touch/ TextExpander touch]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-textexpander/ Files for TextExpander and TextExpander touch]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-textexpander/issues/ Issue tracker]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.ultraedit.com/ UltraEdit]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-ultraedit/ Files for UltraEdit]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-ultraedit/issues/ Issue tracker]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.vim.org/ Vim]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-vim/ Files for Vim]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-vim/issues/ Issue tracker]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{maybe|LL viewer theme not included}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|included for [https://github.com/garbas/vim-snipmate Snipmate] and [https://github.com/SirVer/ultisnips Ultisnips]}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==LSL Integrated Development Environments (coding and testing environments) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===[[Con-Wylies-Script-Generator]]===&lt;br /&gt;
&lt;br /&gt;
*[http://conwylie.co.uk/ScriptGenerator/ Con Wylie&#039;s LSL Script Generator] has been ported from a website into a free downloadable program, anyone can use the program as it is very easy to use.&lt;br /&gt;
&lt;br /&gt;
Con Wylie&#039;s LSL program is multi-platform on Windows, Linux and Mac. The generator, editor and compiler have been built from the ground up to give the user ease of use.&lt;br /&gt;
&lt;br /&gt;
===[[LslPre]]===&lt;br /&gt;
* [http://lsl.dreamjammers.net http://lsl.dreamjammers.net]&lt;br /&gt;
LslPre is a full featured LSL script editor, preprocessor and optimiser for windows.&lt;br /&gt;
&lt;br /&gt;
===[[LSL Editor Community Edition]]===&lt;br /&gt;
&lt;br /&gt;
LSL Editor Community Edition &#039;&#039;&#039;for Windows&#039;&#039;&#039; is a standalone LSL script &#039;&#039;&#039;editor, compiler and debugger&#039;&#039;&#039;. Binary and Source as of 2013-03-14.&lt;br /&gt;
&lt;br /&gt;
Its compiler and debugger are already now reasonably accurate. Please blog any LSL-Editor bugs you find into such places as our [[LSLEditorBugs|LSL-Editor Bugs]] article or via the project&#039;s SourceForge bug tracker located at: [http://sourceforge.net/tracker/?group_id=319248 Bug Tracker].&lt;br /&gt;
&lt;br /&gt;
*  Alphons van der Heijden, author of LSLEditor, the great off-line editor and debugging tool for scripting in Second Life, has donated his opus magnum to the free and open source community where it can grow and keep pace with the SL platform!&lt;br /&gt;
&lt;br /&gt;
*Details, executable and source can be found at [http://sourceforge.net/projects/lsleditor/ http://sourceforge.net/projects/lsleditor/] &lt;br /&gt;
&lt;br /&gt;
Development of LSL-Editor was originally done by Alphons van der Heijden at [http://www.lsleditor.org/ http://www.lsleditor.org/].&lt;br /&gt;
&lt;br /&gt;
=== [[LSL-Plus]] ===&lt;br /&gt;
&lt;br /&gt;
[http://lslplus.sourceforge.net/ LSL PLus Eclipse Plugin]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;For Windows, Mac, and Linux&#039;&#039;&#039;, the LSL Plus Eclipse plugin is a Editor/Unit Test environment for LSL implemented in Eclipse. It is a FLOSS project (Free/Libre Open Source Software). The latest release (0.13.0 - 2010-01-06) features multi-script execution with &#039;&#039;&#039;source level debugging&#039;&#039;&#039; (setting breakpoints, single stepping through code, examining variables on the call stack, etc.), making it unique among LSL IDEs.  It now supports both multi-script execution in a simulated environment (with avatars, prims, inventory, (limited) physics, etc.) and &#039;&#039;&#039;unit&#039;&#039;&#039; testing - allowing you to test individual handlers and functions by precisely controlling the setup/teardown and interaction with the execution environment (including support for &#039;mocking&#039; the LL function call that interact with the script environment).  It also has some additional code management features that encourage code re-use without having to cut-and-paste, as well as code &#039;&#039;&#039;optimization&#039;&#039;&#039; (inlining, constant folding).&lt;br /&gt;
&lt;br /&gt;
By using the Eclipse IDE you get features such as integration with source code control systems like CVS or Subversion, task management, integration with 3rd party bug tracking software, and so on.  It supports development on Windows, Mac, and Linux platforms.&lt;br /&gt;
* Missing bracket matching and certain highlighting features.&lt;br /&gt;
&lt;br /&gt;
=== [[LSLForge]] ===&lt;br /&gt;
&lt;br /&gt;
[http://code.google.com/p/lslforge/ LSLForge Eclipse]&lt;br /&gt;
&#039;&#039;&#039;For Windows/Linux/OS X&#039;&#039;&#039;, LSLForge is a derivative of [[LSL-Plus]], forked in September 2011.  LSLForge aims to further advance and mature the LSL-Plus project and support the Eclipse LSL developer community.&lt;br /&gt;
&lt;br /&gt;
=== [[MiceOnABeam Visual Scripting Tool]] [{{HoverText|&#039;&#039;C&#039;&#039;|Commercial Software}}]===&lt;br /&gt;
&lt;br /&gt;
* [http://www.miceonabeam.com/ MiceOnABeam Visual Scripting Tool]&lt;br /&gt;
MiceOnABeam is a visual programming tool that generates LSL scripts for SL. You choose among graphical modelling components to specify the program flow of your script in terms of states and the events that transition between the states. You can then use the built-in LSL Action Wizard or insert your own LSL code to specify what happens when an event occurs. The program then generates the LSL code for the model to form a complete script for the SL environment. Check out the demo video &#039;&#039;&#039;[http://bit.ly/ihCqyf here]&#039;&#039;&#039; or on &#039;&#039;&#039;[http://www.youtube.com/watch?v=LBA8wvoA9EI YouTube]&#039;&#039;&#039;. A Free version can be downloaded from &#039;&#039;&#039;[http://www.miceonabeam.com here]&#039;&#039;&#039;.&lt;br /&gt;
==A build system that uses cpp and make==&lt;br /&gt;
&lt;br /&gt;
A build system for LSL scripts is described [[How_to_make_writing_LSL_scripts_easier|here.]]  Sources are available from [https://github.com/Ratany/lsl-repo here].&lt;br /&gt;
&lt;br /&gt;
[[User:Ratany Resident|Ratany Resident]] 09:38, 13 January 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
==Off-world syntax checker==&lt;br /&gt;
You can build a syntax checker yourself and hook it into whatever editor you fancy if you have the viewer source installed and compiled on your machine. The C++ source to build one yourself is [[User:JB_Kraft#Offline_LSL_Syntax_Checker|here (JB Kraft)]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Multi-platform Editors==&lt;br /&gt;
&lt;br /&gt;
===ByronStar SL===&lt;br /&gt;
Based on [http://eclipse.org Eclipse], the [http://byronstar-sl.sourceforge.net/ ByronStar SL IDE] includes most modern program editor features.  It also includes custom features for LSL, such as variable checking, error markers, and code formatting.  Eclipse is available for Macintosh, Linux, Windows, and many UNIX flavors.&lt;br /&gt;
* No longer maintained.&lt;br /&gt;
&lt;br /&gt;
===Emacs===&lt;br /&gt;
There is an [[Emacs LSL Mode]] available on this wiki, which provides syntax highlighting and indentation features.  For tips on writing LSL in emacs, read [http://xahlee.org/sl/ls-emacs.html Xah Lee&#039;s page].  Emacs is available for many Unix flavors, Macintosh and Windows.&lt;br /&gt;
&lt;br /&gt;
You may come across (and attempt to use) Gary Evan&#039;s &#039;&#039;&#039;LSL major mode&#039;&#039;&#039;. It won&#039;t work with the Linden Scripting Language, as Gary wrote it for the [http://www.cs.cmu.edu/afs/cs/usr/wing/www/publications/LarchBook.pdf Larch Shared Language].&lt;br /&gt;
&lt;br /&gt;
===vim===&lt;br /&gt;
[http://www.vim.org/ vim:] vi improved. A multi-platform evolution of the most classical of the editors: vi. GPL code.&lt;br /&gt;
&amp;lt;br&amp;gt;[http://www.secondlifelab.it/index.php?option=com_remository&amp;amp;Itemid=77&amp;amp;func=select&amp;amp;id=7 Plugins for VIM] for install the syntax, autocompletion, autoident for LSL script into vim&lt;br /&gt;
&lt;br /&gt;
===JOE===&lt;br /&gt;
[http://joe-editor.sourceforge.net/ Joe&#039;s Own Editor (a.k.a. Joe)] is a comand line editor for unixoid systems. See [[User:Zai Lynch/LSL highlighting in Joe]] for a manual and syntax file download.&lt;br /&gt;
&lt;br /&gt;
===SciTE===&lt;br /&gt;
Easy to use, features syntax highlighting, folding, auto complete, help that opens the appropriate wiki page, and is setup to use the c preprocessor, and lslint.&amp;lt;br&amp;gt;&lt;br /&gt;
Windows only [https://sdfjkl.org/hack/scite-ez/]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- old side ( http://sl.sdfjkl.org/secondlife/scite/ ) not longer possible --&amp;gt;&lt;br /&gt;
Files for Linux or Windows [http://forums.secondlife.com/showthread.php?t=209219 Forum thread] [http://dimension128.homelinux.net/scite_lsl.tar.gz scite_lsl.tar.gz]&lt;br /&gt;
&lt;br /&gt;
===jEdit===&lt;br /&gt;
Developed in Java, this mature, cross-platform editor runs on any operating system with a Java 2 version 1.3 or higher virtual machine. It has all the features you&#039;d expect from a full-GUI text editor. Syntax highlighting and tailored editing behavior is supported through &amp;quot;modes.&amp;quot; (You can get the LSL &#039;modes&#039; file [https://gist.github.com/GitSkunk/5327522 here] {{WFont|fstyle=italic|color=orange|text=updated 18-Apr-13}}.) The editor supports a rich plug-in API; many third-party plug-ins exist to facility editing, formatting, communications, etc.&amp;lt;br&amp;gt;&lt;br /&gt;
You can find jEdit [http://www.jedit.org/ here].&lt;br /&gt;
&lt;br /&gt;
===Shill - LSL syntax files for a variety of editors===&lt;br /&gt;
The [http://adammarker.org/shill Shill project] provides up-to-date syntax files for many LSL editors.  You might find files there that are more current than those here on the wiki.  Last update:  19Aug09 for Second Life 1.23.4.  New in this release:  lslint&lt;br /&gt;
&lt;br /&gt;
===Midnight Commander===&lt;br /&gt;
[http://www.midnight-commander.org/ GNU Midnight Commander (mc)] is a free cross-platform orthodox file manager and a clone of Norton Commander.&amp;lt;br&amp;gt;&lt;br /&gt;
Midnight Commander is a console application with a text user interface.&amp;lt;br&amp;gt;&lt;br /&gt;
OS: Unix-like, Microsoft Windows&amp;lt;br&amp;gt;&lt;br /&gt;
For Linux see [[User:Kuraiko_Yoshikawa/sandbox/LSL_Goodies/mc]] for a manual and syntax file download.&lt;br /&gt;
&lt;br /&gt;
===UltraEdit-32/UEStudio [{{HoverText|&#039;&#039;C&#039;&#039;|Commercial Software}}]===&lt;br /&gt;
[http://www.ultraedit.com/ UltraEdit-32/UEStudio] is a powerful text, HTML, and HEX editor.  This is a commercial editor with a 30 day trial version available at the website.  Important features:&lt;br /&gt;
* column/block mode editing&lt;br /&gt;
* brackets/braces matching&lt;br /&gt;
* code-folding&lt;br /&gt;
* configurable syntax highlighting via custom  [http://www.ultraedit.com/index.php?name=Content&amp;amp;pa=showpage&amp;amp;pid=40#wordfiles wordfiles]&lt;br /&gt;
* autocomplete (using keywords defined in the wordfile)&lt;br /&gt;
* bookmarks, incremental searching, CTAG support&lt;br /&gt;
* automatic conversion between Unix/Dos/MAC/UTF-8, etc&lt;br /&gt;
* built-in FTP/SFTP client&lt;br /&gt;
&lt;br /&gt;
OS: Linux, Mac and Windows. &lt;br /&gt;
&lt;br /&gt;
The following syntax files are available for UltraEdit&lt;br /&gt;
* [[User:Lum Pfohl/LSL Syntax Highlighting For UltraEdit]] Last updated November 28th, 2007.&lt;br /&gt;
&lt;br /&gt;
===Sublime Text [{{HoverText|&#039;&#039;C&#039;&#039;|Commercial Software}}]===&lt;br /&gt;
[http://www.sublimetext.com/ Sublime Text] is a sophisticated text editor for code, markup and prose.&lt;br /&gt;
You&#039;ll love the slick user interface, extraordinary features and amazing performance. Key Bindings, Menus, Snippets, Macros, Completions and more - just about everything in Sublime Text is customizable with simple JSON files. This system gives you flexibility as settings can be specified on a per-file type and per-project basis. Sublime Text uses a custom UI toolkit, optimized for speed and beauty, while taking advantage of native functionality on each platform. &lt;br /&gt;
&lt;br /&gt;
Sublime Text may be downloaded and evaluated for free, however a license must be purchased for continued use. There is no enforced time limit for the evaluation. &lt;br /&gt;
&lt;br /&gt;
The following syntax highlighting files are available for Sublime Text.&lt;br /&gt;
* [https://github.com/JKolya/sublime-text-2-lsl Sublime Text 2 LSL Syntex] Last updated October 28, 2012.&lt;br /&gt;
&lt;br /&gt;
What you will get via Package Control is the following. Simply go &amp;quot;Package Control: Install Package&amp;quot; and search for &amp;quot;LSL&amp;quot;.&amp;lt;br/&amp;gt;(including not only syntax highlighting, but also smooth LSL functions/events/constants completions, lslint as build system, and inworld editor look-and-feel theme)&lt;br /&gt;
* [https://github.com/Makopo/sublime-text-lsl LSL Bundle for Sublime Text 2] Active as of June 21, 2013.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sublime Text is available for OS X, Windows and Linux.&lt;br /&gt;
&lt;br /&gt;
==Windows Editors==&lt;br /&gt;
&amp;lt;!-- Add your text editors in the following format --&amp;gt;&lt;br /&gt;
===e===&lt;br /&gt;
The [http://www.e-texteditor.com/ e Editor] is a port of TextMate to Windows, and can use the TextMate LSL bundle listed below.&lt;br /&gt;
===Notepad++===&lt;br /&gt;
[http://notepad-plus.sourceforge.net/uk/site.htm Notepad++] is probably one of the best Windows editor around. Packed with features, extremely powerful and easy to use for beginners too. Best of all, it is GPL code.&lt;br /&gt;
&lt;br /&gt;
Shan Bright&#039;s Notepad++ LSL syntax file &#039;BrightLSL&#039; is at the Bright Corporation website: [http://www.brightcorporation.net/brightlsl BrightLSL] (Updated December 10, 2010)&lt;br /&gt;
&lt;br /&gt;
Nexii Malthus&#039;s Notepad++ LSL syntax file, includes latest functions and constants [http://c438644.r44.cf2.rackcdn.com/userDefineLang.xml] (3rd December, 2011)&lt;br /&gt;
&lt;br /&gt;
WhiteStar Magic&#039;s Notepad++ LSL syntax file is being updated regularly, and is available on Github: [https://github.com/WhiteStar-Magic/NotePad---userdef/archives/master NotePad---userdef] (Last Update: May.03.2012)&lt;br /&gt;
&lt;br /&gt;
Gwen Setzer&#039;s Notepad++ (6.3 and above) LSL Syntax Files: (Generated from Firestorm 4.4.0)&lt;br /&gt;
Language description: [http://pastebin.com/2AsRuKjh lslLanguage.xml] (Language-&amp;gt;Define your Language-&amp;gt;Import)&lt;br /&gt;
Autocompletion support: [http://pastebin.com/FcjNVDyb lsl.xml] (Copy the file lsl.xml in the API plugin directory of Notepad++. ex: C:\Program Files\Notepad++\plugins\APIs, I also recommend enabling Settings-&amp;gt;Preferences-&amp;gt;Autocompletion-&amp;gt;Function parameters hint on input)&lt;br /&gt;
&lt;br /&gt;
Dari&#039;s Better Highlighting for Notepad++ (6.3 and above): [http://home.comcast.net/~volfin/LSL.XML LSL.XML] (updated 11/22/2013) [[User:Darien Caldwell|Darien Caldwell]] 12:11, 9 July 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
Hint: to ensure code folding works properly, change line endings to Windows style if they are not already set as such. (Edit / EOL conversion / Windows format)&lt;br /&gt;
&lt;br /&gt;
===ConTEXT===&lt;br /&gt;
[http://www.context.cx/component/option,com_frontpage/Itemid,1/ ConTEXT] is a small, fast and powerful freeware text editor, developed mainly to serve as secondary tool for software developers.&lt;br /&gt;
&lt;br /&gt;
The following syntax files are available for ConTEXT.&lt;br /&gt;
* [http://blogic14.blogspot.com/ Last Activity] July 2012&lt;br /&gt;
* [http://archive.is/Wm3B Last Announcement by developer of ConTEXT] Friday, 07 September 2007&lt;br /&gt;
* [http://www.contexteditor.org/ Site and Newsletter Sign Up - &#039;&#039;&#039;DOWNLOAD&#039;&#039;&#039;] September 2007&lt;br /&gt;
* [http://forum.context.cx/index.php?action=dlattach;topic=1775.0;id=359 Shyan Graves] Last updated March 01, 2007.&lt;br /&gt;
* [http://adammarker.org/shill/context/lsl.chl Sir.Grelling] Last updated July 10, 2006.&lt;br /&gt;
&lt;br /&gt;
===Crimson Editor===&lt;br /&gt;
[http://www.crimsoneditor.com/ Crimson Editor] is a professional source code editor for Windows.&lt;br /&gt;
The following syntax files are available for Crimson Editor.&lt;br /&gt;
&amp;lt;!--* [http://www.crimsoneditor.com/english/board/CrazyWWWBoard.cgi?db=file3&amp;amp;mode=read&amp;amp;num=1791 Broken Link - Aakanaar] Last updated September 10, 2006 for Second Life version 1.10.0. --&amp;gt;&lt;br /&gt;
* Aakanaar - Last updated September 10, 2006 for Second Life version 1.10.0.&lt;br /&gt;
* [http://sourceforge.net/projects/emeraldeditor/files/crimsoneditor/ Emerald Editor] &#039;&#039;&#039;2011&#039;&#039;&#039; Open Source version of Crimson Editor&lt;br /&gt;
&lt;br /&gt;
===[[LSL-Editor]]===&lt;br /&gt;
&lt;br /&gt;
* [http://www.lsleditor.org/ http://www.lsleditor.org/]&lt;br /&gt;
&lt;br /&gt;
[[LSL-Editor]] is a standalone Windows LSL  &#039;&#039;&#039;editor, compiler and debugger&#039;&#039;&#039;.&lt;br /&gt;
All the usual editing, plus you can compile and execute.&lt;br /&gt;
* This project is no longer maintained at LSLEditor.org. See below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===LSL Editor Community Edition===&lt;br /&gt;
&lt;br /&gt;
* [http://sourceforge.net/projects/lsleditor/ Source Forge: LSL Editor]&lt;br /&gt;
&lt;br /&gt;
[[LSL-Editor]] is the &#039;&#039;&#039;frequently&#039;&#039;&#039; updated version of the LSL Editor with editing, compiling, and debugging abilities.&lt;br /&gt;
When the path to the editor is added to the viewer&#039;s Debug Setting: &#039;&#039;ExternalEditor&#039;&#039; one can have a nice round trip external editor. See the LSL-Editor entry just above, or see above in the Integrated section, or the wiki page [[LSL-Editor]] for more information.&lt;br /&gt;
&lt;br /&gt;
===TextPad [{{HoverText|&#039;&#039;C&#039;&#039;|Commercial Software}}]===&lt;br /&gt;
[http://www.textpad.com/products/textpad/index.html TextPad] is a powerful, but easy to use general purpose text editor.  It is a commercial product, but there is a 30 day trial version available for free on the website.&lt;br /&gt;
&lt;br /&gt;
The following syntax files are available for TextPad.&lt;br /&gt;
* [[LSL_Editor_TextPad_ClipBook_Events | Events ClipBook]] Last updated March 5, 2007.  Based on the LSL Portal event entries.&lt;br /&gt;
* [[LSL_Editor_TextPad_Syntax | Prodigal Maeterlinck &amp;amp; Patrick2 Chama]] Last updated February 20, 2007.  Extracted from the Second Life viewer source code.&lt;br /&gt;
* [http://www.textpad.com/add-ons/files/syntax/lsl_.zip Ben Gray] Last updated August 23, 2006. As of version 1.12.0, with the deprecated functions in a separate keyword list.&lt;br /&gt;
* [http://www.textpad.com/add-ons/files/syntax/lsl.zip Matthias Huber] Last updated September 23, 2004.&lt;br /&gt;
&lt;br /&gt;
===EditPad Pro [{{HoverText|&#039;&#039;C&#039;&#039;|Commercial Software}}]===&lt;br /&gt;
[http://www.editpadpro.com/ EditPad Pro] is a text editor with many great features for programming. It is a commercial program, with a demo version available. There is also a Lite version, but that has no syntax-highlighting support.&lt;br /&gt;
&lt;br /&gt;
There is an LSL syntax file available for download from inside the program. However, it is from October 2006 so some new features may not be available.&lt;br /&gt;
&lt;br /&gt;
==Macintosh Editors==&lt;br /&gt;
===TextMate [{{HoverText|&#039;&#039;C&#039;&#039;|Commercial Software}}]===&lt;br /&gt;
&lt;br /&gt;
TextMate is a commercial text/program editor from [http://macromates.com/ Macromates] (30 day trial available). You can find details about Piero Padar&#039;s well-maintained LSL bundle in the [http://forums-archive.secondlife.com/54/ae/89389/1.html Scripting Tips forum archive].&lt;br /&gt;
&lt;br /&gt;
===SubEthaEdit [{{HoverText|&#039;&#039;C&#039;&#039;|Commercial Software}}]===&lt;br /&gt;
This a great text editor with extensible language support.  It also happens to be an incredible collaborative editor. Info at: http://www.subethaedit.net/&lt;br /&gt;
&lt;br /&gt;
There is a contributed LSL mode by Zarf Vantongerloo.  The mode is a little out of date and could use some love.  But in general works great, doing syntax hilighting of LSL funcitons and adding a pop-up menu of all functions, states and event handlers to the top of the window.&lt;br /&gt;
&lt;br /&gt;
An updated LSL mode by Mark Lentczner is available now from the SubEthaEditor [http://www.subethaedit.net/modes.html User contributed modes Repository].&lt;br /&gt;
&lt;br /&gt;
An updated (but still out of date) version of Mark Lentczner&#039;s mode is available on Solo Mornington&#039;s Github: https://github.com/SoloMornington/LSL_mode Note that this mode was developed for Coda 1.&lt;br /&gt;
&lt;br /&gt;
===Coda [{{HoverText|&#039;&#039;C&#039;&#039;|Commercial Software}}]===&lt;br /&gt;
&lt;br /&gt;
Coda is &#039;one-window web development,&#039; but it&#039;s a very pleasing text editor for a wide variety of uses. You can set up &#039;sites&#039; which are web sites, but can represent any remote filesystem, which is echoed locally through ftp and/or subversion.&lt;br /&gt;
&lt;br /&gt;
Coda can use SubEthaEdit syntax coloring &#039;modes,&#039; so LSL is supported. Also available is a plug-in editor which lets you run arbitrary scripts on the selection or document.&lt;br /&gt;
&lt;br /&gt;
http://www.panic.com/coda/&lt;br /&gt;
&lt;br /&gt;
===BBEdit and TextWrangler ===&lt;br /&gt;
&lt;br /&gt;
You can get an LSL language plugin for all versions of BBEdit and TextWrangler at [http://blog.elitecoderz.net/lsl-linden-script-language-plugin-for-bbedit/2008/12/ Erik Scholtz&#039; Blog]&lt;br /&gt;
&lt;br /&gt;
For older versions of BBEdit (7.0 or less) and TextWrangler (1.0 only), there is a module available at [http://adammarker.org/bbedit http://adammarker.org/bbedit]&lt;br /&gt;
&lt;br /&gt;
==Linux Editors==&lt;br /&gt;
===Kate===&lt;br /&gt;
[http://kate-editor.org/ Kate] is an advanced text editor for KDE. Usually included in all KDE based distributions.&amp;lt;br&amp;gt;&lt;br /&gt;
A [[Kate LSL Mode]] is available on this wiki.&lt;br /&gt;
===Gedit===&lt;br /&gt;
[http://www.gnome.org/projects/gedit/ Gedit] is an advanced text editor for GNOME.&amp;lt;br&amp;gt;&lt;br /&gt;
See [[User:Kuraiko_Yoshikawa/sandbox/LSL_Goodies/gedit]] for a manual, syntax file and Color Theme download. &lt;br /&gt;
===Nano===&lt;br /&gt;
Nano is a curses-based text editor for Unix and Unix-like systems.&amp;lt;br&amp;gt;&lt;br /&gt;
Nano has been an official part of the GNU Project since February 2001.&amp;lt;br&amp;gt;&lt;br /&gt;
See [[User:Kuraiko_Yoshikawa/sandbox/LSL_Goodies/nano]] for a manual and syntax file download.&lt;br /&gt;
===Vim===&lt;br /&gt;
Based on the vi editor common to Unix-like systems, [http://vim.sourceforge.net/ Vim] is designed for use both from a command line interface and as a standalone application in a graphical user interface.&amp;lt;br&amp;gt;&lt;br /&gt;
Vim comes standard with LSL highlighting support.&lt;br /&gt;
&lt;br /&gt;
== Features Table ==&lt;br /&gt;
&amp;lt;!-- Needs to be in alpha order --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 85%; text-align: center; width: auto; border=1px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Integrated development environment&lt;br /&gt;
! Windows&lt;br /&gt;
! Mac OS&lt;br /&gt;
! Linux&lt;br /&gt;
! Code Completion&lt;br /&gt;
! Highlighting&lt;br /&gt;
! Actively Maintained&lt;br /&gt;
|-&lt;br /&gt;
! [[LSL_Alternate_Editors#Con-Wylies-Script-Generator|Con-Wylies-Script-Generator]]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
! [[LSL_Alternate_Editors#LSL-Plus|LSL-Plus]]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
! [[LSL_Alternate_Editors#LSLForge|LSLForge]]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
! [[LSL_Alternate_Editors#LSL Editor Community Edition|LSL Editor Community Edition]]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{no}}&lt;br /&gt;
| {{yes | Custom Vars and Functions also}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
! [[LSL_Alternate_Editors#LslPre|LslPre]]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|Windows (.NET)}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
! [[LSL_Alternate_Editors#MiceOnABeam Visual Scripting Tool|MiceOnABeam Visual Scripting Tool]]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|Windows (.NET)}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{no}}&lt;br /&gt;
| {{yes | Custom Vars and Functions also}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ayamo Nozaki</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LSL_Alternate_Editors&amp;diff=1192114</id>
		<title>LSL Alternate Editors</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LSL_Alternate_Editors&amp;diff=1192114"/>
		<updated>2014-07-13T19:38:13Z</updated>

		<summary type="html">&lt;p&gt;Ayamo Nozaki: Atom is now in alpha for Windows&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header|ml=*}}&lt;br /&gt;
&lt;br /&gt;
There are several off-world editors available for free or to purchase.  Some have syntax highlighting for LSL that will make your code easier to follow.  At least two will compile and execute a large subset of LSL. Below are some of the more popular editors for use with LSL.  &lt;br /&gt;
&lt;br /&gt;
If you have a favorite that is missing from the list, &#039;&#039;&#039;please&#039;&#039;&#039; feel free to add it.&lt;br /&gt;
&lt;br /&gt;
==Opening scripts in another editor directly from the viewer:==&lt;br /&gt;
&lt;br /&gt;
* Enable: Preferences &amp;gt; Advanced &amp;gt; Show [[Advanced_menu]].&lt;br /&gt;
* Go to: Advanced &amp;gt; Show [[Debug_Settings]].&lt;br /&gt;
* Edit: &amp;quot;ExternalEditor&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
As the description tells you, enter 3 params:&lt;br /&gt;
* Path to editor (enclose in quotes, if path has spaces).&lt;br /&gt;
* Optional command line params (you can ignore these if you like).&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;quot;%s&amp;quot;&amp;lt;/code&amp;gt; will paste script path automatically (dont change this).&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
* Linux (opens script in new window if already open): &amp;lt;code&amp;gt;/usr/bin/gedit --new-window &amp;quot;%s&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Windows (path has spaces &amp;gt; enclosed in quotes): &amp;lt;code&amp;gt;&amp;quot;C:\Users\FirstName LastName\Notepad\notepad++.exe&amp;quot; &amp;quot;%s&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then click the &amp;lt;code&amp;gt;&amp;quot;Edit...&amp;quot;&amp;lt;/code&amp;gt; button in the script edit window. Save and close editor when done.&lt;br /&gt;
&lt;br /&gt;
==Making your own files for syntax highlighting and autocompletion:==&lt;br /&gt;
&lt;br /&gt;
Please refer to the page [[Making_your_own_LSL_syntax_and_autocompletion_files]] for a list of colors used by Linden Labs for the editor in their viewer as well as a list with current keywords.&lt;br /&gt;
&lt;br /&gt;
== Online LSL Generators ==&lt;br /&gt;
Online LSL generators create and edit LSL scripts via a website, some may have syntax highlighting for better reading.&lt;br /&gt;
Sites are multi-platform editors without downloads:&lt;br /&gt;
*[http://conwylie.co.uk/ScriptGenerator/ Con Wylie&#039;s LSL Script Generator]&lt;br /&gt;
&lt;br /&gt;
== Syntax Highlighting Files ==&lt;br /&gt;
These projects may have more current LSL highlighting files:&lt;br /&gt;
*[http://adammarker.org/shill Shill project]&lt;br /&gt;
*[http://hilitelsl.googlecode.com HiLiteLSL.GoogleCode.com]&lt;br /&gt;
&lt;br /&gt;
== Syntax highlighting, autocompletion and snippet files by the [http://www.buildersbrewery.com Builder&#039;s Brewery]: ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font-size: 85%; text-align: center; width: auto; border=1px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Software:&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;URL for download:&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Issue tracker:&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Commercial:&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Windows:&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Mac:&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Linux:&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Browser&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Syntax:&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Autocompletion:&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Snippets:&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| [http://ace.c9.io Ace]&lt;br /&gt;
| [https://github.com/ajaxorg/ace/ Ace]&lt;br /&gt;
| [https://github.com/ajaxorg/ace/issues/ Issue tracker]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{maybe|requires a browser}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|LL viewer theme not included}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.contexteditor.org/ ConTEXT]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-context/ Files for ConTEXT]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-context/issues/ Issue tracker]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.gnu.org/software/emacs/ Emacs]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-emacs/ Files for Emacs]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-emacs/issues/ Issue tracker]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{maybe|Work in progress}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{maybe|included for [https://github.com/capitaomorte/yasnippet YASnippet]}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://projects.gnome.org/gedit/ gedit]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-gedit/ Files for gedit]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-gedit/issues/ Issue tracker]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{yes}}&lt;br /&gt;
| {{maybe|for GNOME}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.mediawiki.org/wiki/Extension:SyntaxHighlight_GeSHi GeSHi - wikimedia extension]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-geshi/ Files for GeSHi]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-geshi/issues/ Issue tracker]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{maybe|requires a browser}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.atom.io/ Github - AtomEditor]&lt;br /&gt;
| [https://github.com/buildersbrewery/language-lsl/ Files for Atom]&lt;br /&gt;
| [https://github.com/buildersbrewery/language-lsl/issues/ Issue tracker]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|Hasn&#039;t been publicly released, yet.}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{maybe|Work in progress}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.jedit.org/ jEdit]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-jedit/ Files for jEdit]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-jedit/issues/ Issue tracker]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{maybe|requires JavaVM}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{maybe|LL viewer theme not included}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.kate-editor.org/ Kate]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-kate-editor/ Files for Kate]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-kate-editor/issues/ Issue tracker]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{maybe|via KDE for Windows}}&lt;br /&gt;
| {{maybe|via KDE for Mac}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.nano-editor.org/ Nano]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-nano/ Files for Nano]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-nano/issues/ Issue tracker]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.notepad-plus-plus.org/ Notepad++]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-notepadplusplus/ Files for Notepad++]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-notepadplusplus/issues/ Issue tracker]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{yes}}&lt;br /&gt;
| {{maybe|included for [https://github.com/erinata/FingerText FingerText]}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.codingmonkeys.de/subethaedit/ SubEthaEdit]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-subethaedit/ Files for SubEthaEdit]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-subethaedit/issues/ Issue tracker]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.smilesoftware.com/TextExpander/ TextExpander] and [https://www.smilesoftware.com/TextExpander/touch/ TextExpander touch]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-textexpander/ Files for TextExpander and TextExpander touch]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-textexpander/issues/ Issue tracker]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.ultraedit.com/ UltraEdit]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-ultraedit/ Files for UltraEdit]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-ultraedit/issues/ Issue tracker]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.vim.org/ Vim]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-vim/ Files for Vim]&lt;br /&gt;
| [https://github.com/buildersbrewery/lsl-for-vim/issues/ Issue tracker]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{maybe|LL viewer theme not included}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|included for [https://github.com/garbas/vim-snipmate Snipmate] and [https://github.com/SirVer/ultisnips Ultisnips]}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==LSL Integrated Development Environments (coding and testing environments) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===[[Con-Wylies-Script-Generator]]===&lt;br /&gt;
&lt;br /&gt;
*[http://conwylie.co.uk/ScriptGenerator/ Con Wylie&#039;s LSL Script Generator] has been ported from a website into a free downloadable program, anyone can use the program as it is very easy to use.&lt;br /&gt;
&lt;br /&gt;
Con Wylie&#039;s LSL program is multi-platform on Windows, Linux and Mac. The generator, editor and compiler have been built from the ground up to give the user ease of use.&lt;br /&gt;
&lt;br /&gt;
===[[LslPre]]===&lt;br /&gt;
* [http://lsl.dreamjammers.net http://lsl.dreamjammers.net]&lt;br /&gt;
LslPre is a full featured LSL script editor, preprocessor and optimiser for windows.&lt;br /&gt;
&lt;br /&gt;
===[[LSL Editor Community Edition]]===&lt;br /&gt;
&lt;br /&gt;
LSL Editor Community Edition &#039;&#039;&#039;for Windows&#039;&#039;&#039; is a standalone LSL script &#039;&#039;&#039;editor, compiler and debugger&#039;&#039;&#039;. Binary and Source as of 2013-03-14.&lt;br /&gt;
&lt;br /&gt;
Its compiler and debugger are already now reasonably accurate. Please blog any LSL-Editor bugs you find into such places as our [[LSLEditorBugs|LSL-Editor Bugs]] article or via the project&#039;s SourceForge bug tracker located at: [http://sourceforge.net/tracker/?group_id=319248 Bug Tracker].&lt;br /&gt;
&lt;br /&gt;
*  Alphons van der Heijden, author of LSLEditor, the great off-line editor and debugging tool for scripting in Second Life, has donated his opus magnum to the free and open source community where it can grow and keep pace with the SL platform!&lt;br /&gt;
&lt;br /&gt;
*Details, executable and source can be found at [http://sourceforge.net/projects/lsleditor/ http://sourceforge.net/projects/lsleditor/] &lt;br /&gt;
&lt;br /&gt;
Development of LSL-Editor was originally done by Alphons van der Heijden at [http://www.lsleditor.org/ http://www.lsleditor.org/].&lt;br /&gt;
&lt;br /&gt;
=== [[LSL-Plus]] ===&lt;br /&gt;
&lt;br /&gt;
[http://lslplus.sourceforge.net/ LSL PLus Eclipse Plugin]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;For Windows, Mac, and Linux&#039;&#039;&#039;, the LSL Plus Eclipse plugin is a Editor/Unit Test environment for LSL implemented in Eclipse. It is a FLOSS project (Free/Libre Open Source Software). The latest release (0.13.0 - 2010-01-06) features multi-script execution with &#039;&#039;&#039;source level debugging&#039;&#039;&#039; (setting breakpoints, single stepping through code, examining variables on the call stack, etc.), making it unique among LSL IDEs.  It now supports both multi-script execution in a simulated environment (with avatars, prims, inventory, (limited) physics, etc.) and &#039;&#039;&#039;unit&#039;&#039;&#039; testing - allowing you to test individual handlers and functions by precisely controlling the setup/teardown and interaction with the execution environment (including support for &#039;mocking&#039; the LL function call that interact with the script environment).  It also has some additional code management features that encourage code re-use without having to cut-and-paste, as well as code &#039;&#039;&#039;optimization&#039;&#039;&#039; (inlining, constant folding).&lt;br /&gt;
&lt;br /&gt;
By using the Eclipse IDE you get features such as integration with source code control systems like CVS or Subversion, task management, integration with 3rd party bug tracking software, and so on.  It supports development on Windows, Mac, and Linux platforms.&lt;br /&gt;
* Missing bracket matching and certain highlighting features.&lt;br /&gt;
&lt;br /&gt;
=== [[LSLForge]] ===&lt;br /&gt;
&lt;br /&gt;
[http://code.google.com/p/lslforge/ LSLForge Eclipse]&lt;br /&gt;
&#039;&#039;&#039;For Windows/Linux/OS X&#039;&#039;&#039;, LSLForge is a derivative of [[LSL-Plus]], forked in September 2011.  LSLForge aims to further advance and mature the LSL-Plus project and support the Eclipse LSL developer community.&lt;br /&gt;
&lt;br /&gt;
=== [[MiceOnABeam Visual Scripting Tool]] [{{HoverText|&#039;&#039;C&#039;&#039;|Commercial Software}}]===&lt;br /&gt;
&lt;br /&gt;
* [http://www.miceonabeam.com/ MiceOnABeam Visual Scripting Tool]&lt;br /&gt;
MiceOnABeam is a visual programming tool that generates LSL scripts for SL. You choose among graphical modelling components to specify the program flow of your script in terms of states and the events that transition between the states. You can then use the built-in LSL Action Wizard or insert your own LSL code to specify what happens when an event occurs. The program then generates the LSL code for the model to form a complete script for the SL environment. Check out the demo video &#039;&#039;&#039;[http://bit.ly/ihCqyf here]&#039;&#039;&#039; or on &#039;&#039;&#039;[http://www.youtube.com/watch?v=LBA8wvoA9EI YouTube]&#039;&#039;&#039;. A Free version can be downloaded from &#039;&#039;&#039;[http://www.miceonabeam.com here]&#039;&#039;&#039;.&lt;br /&gt;
==A build system that uses cpp and make==&lt;br /&gt;
&lt;br /&gt;
A build system for LSL scripts is described [[How_to_make_writing_LSL_scripts_easier|here.]]  Sources are available from [https://github.com/Ratany/lsl-repo here].&lt;br /&gt;
&lt;br /&gt;
[[User:Ratany Resident|Ratany Resident]] 09:38, 13 January 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
==Off-world syntax checker==&lt;br /&gt;
You can build a syntax checker yourself and hook it into whatever editor you fancy if you have the viewer source installed and compiled on your machine. The C++ source to build one yourself is [[User:JB_Kraft#Offline_LSL_Syntax_Checker|here (JB Kraft)]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Multi-platform Editors==&lt;br /&gt;
&lt;br /&gt;
===ByronStar SL===&lt;br /&gt;
Based on [http://eclipse.org Eclipse], the [http://byronstar-sl.sourceforge.net/ ByronStar SL IDE] includes most modern program editor features.  It also includes custom features for LSL, such as variable checking, error markers, and code formatting.  Eclipse is available for Macintosh, Linux, Windows, and many UNIX flavors.&lt;br /&gt;
* No longer maintained.&lt;br /&gt;
&lt;br /&gt;
===Emacs===&lt;br /&gt;
There is an [[Emacs LSL Mode]] available on this wiki, which provides syntax highlighting and indentation features.  For tips on writing LSL in emacs, read [http://xahlee.org/sl/ls-emacs.html Xah Lee&#039;s page].  Emacs is available for many Unix flavors, Macintosh and Windows.&lt;br /&gt;
&lt;br /&gt;
You may come across (and attempt to use) Gary Evan&#039;s &#039;&#039;&#039;LSL major mode&#039;&#039;&#039;. It won&#039;t work with the Linden Scripting Language, as Gary wrote it for the [http://www.cs.cmu.edu/afs/cs/usr/wing/www/publications/LarchBook.pdf Larch Shared Language].&lt;br /&gt;
&lt;br /&gt;
===vim===&lt;br /&gt;
[http://www.vim.org/ vim:] vi improved. A multi-platform evolution of the most classical of the editors: vi. GPL code.&lt;br /&gt;
&amp;lt;br&amp;gt;[http://www.secondlifelab.it/index.php?option=com_remository&amp;amp;Itemid=77&amp;amp;func=select&amp;amp;id=7 Plugins for VIM] for install the syntax, autocompletion, autoident for LSL script into vim&lt;br /&gt;
&lt;br /&gt;
===JOE===&lt;br /&gt;
[http://joe-editor.sourceforge.net/ Joe&#039;s Own Editor (a.k.a. Joe)] is a comand line editor for unixoid systems. See [[User:Zai Lynch/LSL highlighting in Joe]] for a manual and syntax file download.&lt;br /&gt;
&lt;br /&gt;
===SciTE===&lt;br /&gt;
Easy to use, features syntax highlighting, folding, auto complete, help that opens the appropriate wiki page, and is setup to use the c preprocessor, and lslint.&amp;lt;br&amp;gt;&lt;br /&gt;
Windows only [https://sdfjkl.org/hack/scite-ez/]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!-- old side ( http://sl.sdfjkl.org/secondlife/scite/ ) not longer possible --&amp;gt;&lt;br /&gt;
Files for Linux or Windows [http://forums.secondlife.com/showthread.php?t=209219 Forum thread] [http://dimension128.homelinux.net/scite_lsl.tar.gz scite_lsl.tar.gz]&lt;br /&gt;
&lt;br /&gt;
===jEdit===&lt;br /&gt;
Developed in Java, this mature, cross-platform editor runs on any operating system with a Java 2 version 1.3 or higher virtual machine. It has all the features you&#039;d expect from a full-GUI text editor. Syntax highlighting and tailored editing behavior is supported through &amp;quot;modes.&amp;quot; (You can get the LSL &#039;modes&#039; file [https://gist.github.com/GitSkunk/5327522 here] {{WFont|fstyle=italic|color=orange|text=updated 18-Apr-13}}.) The editor supports a rich plug-in API; many third-party plug-ins exist to facility editing, formatting, communications, etc.&amp;lt;br&amp;gt;&lt;br /&gt;
You can find jEdit [http://www.jedit.org/ here].&lt;br /&gt;
&lt;br /&gt;
===Shill - LSL syntax files for a variety of editors===&lt;br /&gt;
The [http://adammarker.org/shill Shill project] provides up-to-date syntax files for many LSL editors.  You might find files there that are more current than those here on the wiki.  Last update:  19Aug09 for Second Life 1.23.4.  New in this release:  lslint&lt;br /&gt;
&lt;br /&gt;
===Midnight Commander===&lt;br /&gt;
[http://www.midnight-commander.org/ GNU Midnight Commander (mc)] is a free cross-platform orthodox file manager and a clone of Norton Commander.&amp;lt;br&amp;gt;&lt;br /&gt;
Midnight Commander is a console application with a text user interface.&amp;lt;br&amp;gt;&lt;br /&gt;
OS: Unix-like, Microsoft Windows&amp;lt;br&amp;gt;&lt;br /&gt;
For Linux see [[User:Kuraiko_Yoshikawa/sandbox/LSL_Goodies/mc]] for a manual and syntax file download.&lt;br /&gt;
&lt;br /&gt;
===UltraEdit-32/UEStudio [{{HoverText|&#039;&#039;C&#039;&#039;|Commercial Software}}]===&lt;br /&gt;
[http://www.ultraedit.com/ UltraEdit-32/UEStudio] is a powerful text, HTML, and HEX editor.  This is a commercial editor with a 30 day trial version available at the website.  Important features:&lt;br /&gt;
* column/block mode editing&lt;br /&gt;
* brackets/braces matching&lt;br /&gt;
* code-folding&lt;br /&gt;
* configurable syntax highlighting via custom  [http://www.ultraedit.com/index.php?name=Content&amp;amp;pa=showpage&amp;amp;pid=40#wordfiles wordfiles]&lt;br /&gt;
* autocomplete (using keywords defined in the wordfile)&lt;br /&gt;
* bookmarks, incremental searching, CTAG support&lt;br /&gt;
* automatic conversion between Unix/Dos/MAC/UTF-8, etc&lt;br /&gt;
* built-in FTP/SFTP client&lt;br /&gt;
&lt;br /&gt;
OS: Linux, Mac and Windows. &lt;br /&gt;
&lt;br /&gt;
The following syntax files are available for UltraEdit&lt;br /&gt;
* [[User:Lum Pfohl/LSL Syntax Highlighting For UltraEdit]] Last updated November 28th, 2007.&lt;br /&gt;
&lt;br /&gt;
===Sublime Text [{{HoverText|&#039;&#039;C&#039;&#039;|Commercial Software}}]===&lt;br /&gt;
[http://www.sublimetext.com/ Sublime Text] is a sophisticated text editor for code, markup and prose.&lt;br /&gt;
You&#039;ll love the slick user interface, extraordinary features and amazing performance. Key Bindings, Menus, Snippets, Macros, Completions and more - just about everything in Sublime Text is customizable with simple JSON files. This system gives you flexibility as settings can be specified on a per-file type and per-project basis. Sublime Text uses a custom UI toolkit, optimized for speed and beauty, while taking advantage of native functionality on each platform. &lt;br /&gt;
&lt;br /&gt;
Sublime Text may be downloaded and evaluated for free, however a license must be purchased for continued use. There is no enforced time limit for the evaluation. &lt;br /&gt;
&lt;br /&gt;
The following syntax highlighting files are available for Sublime Text.&lt;br /&gt;
* [https://github.com/JKolya/sublime-text-2-lsl Sublime Text 2 LSL Syntex] Last updated October 28, 2012.&lt;br /&gt;
&lt;br /&gt;
What you will get via Package Control is the following. Simply go &amp;quot;Package Control: Install Package&amp;quot; and search for &amp;quot;LSL&amp;quot;.&amp;lt;br/&amp;gt;(including not only syntax highlighting, but also smooth LSL functions/events/constants completions, lslint as build system, and inworld editor look-and-feel theme)&lt;br /&gt;
* [https://github.com/Makopo/sublime-text-lsl LSL Bundle for Sublime Text 2] Active as of June 21, 2013.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sublime Text is available for OS X, Windows and Linux.&lt;br /&gt;
&lt;br /&gt;
==Windows Editors==&lt;br /&gt;
&amp;lt;!-- Add your text editors in the following format --&amp;gt;&lt;br /&gt;
===e===&lt;br /&gt;
The [http://www.e-texteditor.com/ e Editor] is a port of TextMate to Windows, and can use the TextMate LSL bundle listed below.&lt;br /&gt;
===Notepad++===&lt;br /&gt;
[http://notepad-plus.sourceforge.net/uk/site.htm Notepad++] is probably one of the best Windows editor around. Packed with features, extremely powerful and easy to use for beginners too. Best of all, it is GPL code.&lt;br /&gt;
&lt;br /&gt;
Shan Bright&#039;s Notepad++ LSL syntax file &#039;BrightLSL&#039; is at the Bright Corporation website: [http://www.brightcorporation.net/brightlsl BrightLSL] (Updated December 10, 2010)&lt;br /&gt;
&lt;br /&gt;
Nexii Malthus&#039;s Notepad++ LSL syntax file, includes latest functions and constants [http://c438644.r44.cf2.rackcdn.com/userDefineLang.xml] (3rd December, 2011)&lt;br /&gt;
&lt;br /&gt;
WhiteStar Magic&#039;s Notepad++ LSL syntax file is being updated regularly, and is available on Github: [https://github.com/WhiteStar-Magic/NotePad---userdef/archives/master NotePad---userdef] (Last Update: May.03.2012)&lt;br /&gt;
&lt;br /&gt;
Gwen Setzer&#039;s Notepad++ (6.3 and above) LSL Syntax Files: (Generated from Firestorm 4.4.0)&lt;br /&gt;
Language description: [http://pastebin.com/2AsRuKjh lslLanguage.xml] (Language-&amp;gt;Define your Language-&amp;gt;Import)&lt;br /&gt;
Autocompletion support: [http://pastebin.com/FcjNVDyb lsl.xml] (Copy the file lsl.xml in the API plugin directory of Notepad++. ex: C:\Program Files\Notepad++\plugins\APIs, I also recommend enabling Settings-&amp;gt;Preferences-&amp;gt;Autocompletion-&amp;gt;Function parameters hint on input)&lt;br /&gt;
&lt;br /&gt;
Dari&#039;s Better Highlighting for Notepad++ (6.3 and above): [http://home.comcast.net/~volfin/LSL.XML LSL.XML] (updated 11/22/2013) [[User:Darien Caldwell|Darien Caldwell]] 12:11, 9 July 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
Hint: to ensure code folding works properly, change line endings to Windows style if they are not already set as such. (Edit / EOL conversion / Windows format)&lt;br /&gt;
&lt;br /&gt;
===ConTEXT===&lt;br /&gt;
[http://www.context.cx/component/option,com_frontpage/Itemid,1/ ConTEXT] is a small, fast and powerful freeware text editor, developed mainly to serve as secondary tool for software developers.&lt;br /&gt;
&lt;br /&gt;
The following syntax files are available for ConTEXT.&lt;br /&gt;
* [http://blogic14.blogspot.com/ Last Activity] July 2012&lt;br /&gt;
* [http://archive.is/Wm3B Last Announcement by developer of ConTEXT] Friday, 07 September 2007&lt;br /&gt;
* [http://www.contexteditor.org/ Site and Newsletter Sign Up - &#039;&#039;&#039;DOWNLOAD&#039;&#039;&#039;] September 2007&lt;br /&gt;
* [http://forum.context.cx/index.php?action=dlattach;topic=1775.0;id=359 Shyan Graves] Last updated March 01, 2007.&lt;br /&gt;
* [http://adammarker.org/shill/context/lsl.chl Sir.Grelling] Last updated July 10, 2006.&lt;br /&gt;
&lt;br /&gt;
===Crimson Editor===&lt;br /&gt;
[http://www.crimsoneditor.com/ Crimson Editor] is a professional source code editor for Windows.&lt;br /&gt;
The following syntax files are available for Crimson Editor.&lt;br /&gt;
&amp;lt;!--* [http://www.crimsoneditor.com/english/board/CrazyWWWBoard.cgi?db=file3&amp;amp;mode=read&amp;amp;num=1791 Broken Link - Aakanaar] Last updated September 10, 2006 for Second Life version 1.10.0. --&amp;gt;&lt;br /&gt;
* Aakanaar - Last updated September 10, 2006 for Second Life version 1.10.0.&lt;br /&gt;
* [http://sourceforge.net/projects/emeraldeditor/files/crimsoneditor/ Emerald Editor] &#039;&#039;&#039;2011&#039;&#039;&#039; Open Source version of Crimson Editor&lt;br /&gt;
&lt;br /&gt;
===[[LSL-Editor]]===&lt;br /&gt;
&lt;br /&gt;
* [http://www.lsleditor.org/ http://www.lsleditor.org/]&lt;br /&gt;
&lt;br /&gt;
[[LSL-Editor]] is a standalone Windows LSL  &#039;&#039;&#039;editor, compiler and debugger&#039;&#039;&#039;.&lt;br /&gt;
All the usual editing, plus you can compile and execute.&lt;br /&gt;
* This project is no longer maintained at LSLEditor.org. See below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===LSL Editor Community Edition===&lt;br /&gt;
&lt;br /&gt;
* [http://sourceforge.net/projects/lsleditor/ Source Forge: LSL Editor]&lt;br /&gt;
&lt;br /&gt;
[[LSL-Editor]] is the &#039;&#039;&#039;frequently&#039;&#039;&#039; updated version of the LSL Editor with editing, compiling, and debugging abilities.&lt;br /&gt;
When the path to the editor is added to the viewer&#039;s Debug Setting: &#039;&#039;ExternalEditor&#039;&#039; one can have a nice round trip external editor. See the LSL-Editor entry just above, or see above in the Integrated section, or the wiki page [[LSL-Editor]] for more information.&lt;br /&gt;
&lt;br /&gt;
===TextPad [{{HoverText|&#039;&#039;C&#039;&#039;|Commercial Software}}]===&lt;br /&gt;
[http://www.textpad.com/products/textpad/index.html TextPad] is a powerful, but easy to use general purpose text editor.  It is a commercial product, but there is a 30 day trial version available for free on the website.&lt;br /&gt;
&lt;br /&gt;
The following syntax files are available for TextPad.&lt;br /&gt;
* [[LSL_Editor_TextPad_ClipBook_Events | Events ClipBook]] Last updated March 5, 2007.  Based on the LSL Portal event entries.&lt;br /&gt;
* [[LSL_Editor_TextPad_Syntax | Prodigal Maeterlinck &amp;amp; Patrick2 Chama]] Last updated February 20, 2007.  Extracted from the Second Life viewer source code.&lt;br /&gt;
* [http://www.textpad.com/add-ons/files/syntax/lsl_.zip Ben Gray] Last updated August 23, 2006. As of version 1.12.0, with the deprecated functions in a separate keyword list.&lt;br /&gt;
* [http://www.textpad.com/add-ons/files/syntax/lsl.zip Matthias Huber] Last updated September 23, 2004.&lt;br /&gt;
&lt;br /&gt;
===EditPad Pro [{{HoverText|&#039;&#039;C&#039;&#039;|Commercial Software}}]===&lt;br /&gt;
[http://www.editpadpro.com/ EditPad Pro] is a text editor with many great features for programming. It is a commercial program, with a demo version available. There is also a Lite version, but that has no syntax-highlighting support.&lt;br /&gt;
&lt;br /&gt;
There is an LSL syntax file available for download from inside the program. However, it is from October 2006 so some new features may not be available.&lt;br /&gt;
&lt;br /&gt;
==Macintosh Editors==&lt;br /&gt;
===TextMate [{{HoverText|&#039;&#039;C&#039;&#039;|Commercial Software}}]===&lt;br /&gt;
&lt;br /&gt;
TextMate is a commercial text/program editor from [http://macromates.com/ Macromates] (30 day trial available). You can find details about Piero Padar&#039;s well-maintained LSL bundle in the [http://forums-archive.secondlife.com/54/ae/89389/1.html Scripting Tips forum archive].&lt;br /&gt;
&lt;br /&gt;
===SubEthaEdit [{{HoverText|&#039;&#039;C&#039;&#039;|Commercial Software}}]===&lt;br /&gt;
This a great text editor with extensible language support.  It also happens to be an incredible collaborative editor. Info at: http://www.subethaedit.net/&lt;br /&gt;
&lt;br /&gt;
There is a contributed LSL mode by Zarf Vantongerloo.  The mode is a little out of date and could use some love.  But in general works great, doing syntax hilighting of LSL funcitons and adding a pop-up menu of all functions, states and event handlers to the top of the window.&lt;br /&gt;
&lt;br /&gt;
An updated LSL mode by Mark Lentczner is available now from the SubEthaEditor [http://www.subethaedit.net/modes.html User contributed modes Repository].&lt;br /&gt;
&lt;br /&gt;
An updated (but still out of date) version of Mark Lentczner&#039;s mode is available on Solo Mornington&#039;s Github: https://github.com/SoloMornington/LSL_mode Note that this mode was developed for Coda 1.&lt;br /&gt;
&lt;br /&gt;
===Coda [{{HoverText|&#039;&#039;C&#039;&#039;|Commercial Software}}]===&lt;br /&gt;
&lt;br /&gt;
Coda is &#039;one-window web development,&#039; but it&#039;s a very pleasing text editor for a wide variety of uses. You can set up &#039;sites&#039; which are web sites, but can represent any remote filesystem, which is echoed locally through ftp and/or subversion.&lt;br /&gt;
&lt;br /&gt;
Coda can use SubEthaEdit syntax coloring &#039;modes,&#039; so LSL is supported. Also available is a plug-in editor which lets you run arbitrary scripts on the selection or document.&lt;br /&gt;
&lt;br /&gt;
http://www.panic.com/coda/&lt;br /&gt;
&lt;br /&gt;
===BBEdit and TextWrangler ===&lt;br /&gt;
&lt;br /&gt;
You can get an LSL language plugin for all versions of BBEdit and TextWrangler at [http://blog.elitecoderz.net/lsl-linden-script-language-plugin-for-bbedit/2008/12/ Erik Scholtz&#039; Blog]&lt;br /&gt;
&lt;br /&gt;
For older versions of BBEdit (7.0 or less) and TextWrangler (1.0 only), there is a module available at [http://adammarker.org/bbedit http://adammarker.org/bbedit]&lt;br /&gt;
&lt;br /&gt;
==Linux Editors==&lt;br /&gt;
===Kate===&lt;br /&gt;
[http://kate-editor.org/ Kate] is an advanced text editor for KDE. Usually included in all KDE based distributions.&amp;lt;br&amp;gt;&lt;br /&gt;
A [[Kate LSL Mode]] is available on this wiki.&lt;br /&gt;
===Gedit===&lt;br /&gt;
[http://www.gnome.org/projects/gedit/ Gedit] is an advanced text editor for GNOME.&amp;lt;br&amp;gt;&lt;br /&gt;
See [[User:Kuraiko_Yoshikawa/sandbox/LSL_Goodies/gedit]] for a manual, syntax file and Color Theme download. &lt;br /&gt;
===Nano===&lt;br /&gt;
Nano is a curses-based text editor for Unix and Unix-like systems.&amp;lt;br&amp;gt;&lt;br /&gt;
Nano has been an official part of the GNU Project since February 2001.&amp;lt;br&amp;gt;&lt;br /&gt;
See [[User:Kuraiko_Yoshikawa/sandbox/LSL_Goodies/nano]] for a manual and syntax file download.&lt;br /&gt;
===Vim===&lt;br /&gt;
Based on the vi editor common to Unix-like systems, [http://vim.sourceforge.net/ Vim] is designed for use both from a command line interface and as a standalone application in a graphical user interface.&amp;lt;br&amp;gt;&lt;br /&gt;
Vim comes standard with LSL highlighting support.&lt;br /&gt;
&lt;br /&gt;
== Features Table ==&lt;br /&gt;
&amp;lt;!-- Needs to be in alpha order --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;font-size: 85%; text-align: center; width: auto; border=1px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Integrated development environment&lt;br /&gt;
! Windows&lt;br /&gt;
! Mac OS&lt;br /&gt;
! Linux&lt;br /&gt;
! Code Completion&lt;br /&gt;
! Highlighting&lt;br /&gt;
! Actively Maintained&lt;br /&gt;
|-&lt;br /&gt;
! [[LSL_Alternate_Editors#Con-Wylies-Script-Generator|Con-Wylies-Script-Generator]]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
! [[LSL_Alternate_Editors#LSL-Plus|LSL-Plus]]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
! [[LSL_Alternate_Editors#LSLForge|LSLForge]]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
! [[LSL_Alternate_Editors#LSL Editor Community Edition|LSL Editor Community Edition]]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{no}}&lt;br /&gt;
| {{yes | Custom Vars and Functions also}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
! [[LSL_Alternate_Editors#LslPre|LslPre]]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|Windows (.NET)}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
! [[LSL_Alternate_Editors#MiceOnABeam Visual Scripting Tool|MiceOnABeam Visual Scripting Tool]]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|Windows (.NET)}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{no}}&lt;br /&gt;
| {{yes | Custom Vars and Functions also}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ayamo Nozaki</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlRemoteLoadScriptPin&amp;diff=1185637</id>
		<title>LlRemoteLoadScriptPin</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlRemoteLoadScriptPin&amp;diff=1185637"/>
		<updated>2013-12-24T21:54:02Z</updated>

		<summary type="html">&lt;p&gt;Ayamo Nozaki: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Function&lt;br /&gt;
|inject-2={{LSL_Function/give|target|name|sim=*|uuid=false|type=script|prim=*}}{{Issues/SVC-3321}}&lt;br /&gt;
|func_id=253|func_sleep=3.0|func_energy=10.0&lt;br /&gt;
|func=llRemoteLoadScriptPin&lt;br /&gt;
|func_desc=Copy script {{LSLP|name}} into {{LSLP|target}} and set to {{LSLP|running}} with a {{LSLP|start_param}} only if {{LSLP|target}}&#039;s [[llSetRemoteScriptAccessPin|pin]] matches {{LSLP|pin}}&lt;br /&gt;
|p1_type=key|p1_name=target|p1_desc&lt;br /&gt;
|p2_type=string|p2_name=name|p2_desc&lt;br /&gt;
|p3_type=integer|p3_name=pin|p3_desc=Must match pin set by [[llSetRemoteScriptAccessPin]]&lt;br /&gt;
|p4_type=integer|p4_name=running|p4_desc=boolean, if the script is to be set as running.&lt;br /&gt;
|p5_type=integer|p5_name=start_param|p5_desc=value returned by [[llGetStartParameter]] in the target script.&lt;br /&gt;
|func_footnote=Only works if the [[LSL Glossary#script owner|script owner]] can modify {{LSLP|target}}.&lt;br /&gt;
|return_text&lt;br /&gt;
|spec&lt;br /&gt;
|caveats=&lt;br /&gt;
* If {{LSLP|name}} is present in the {{LSLP|target}} prim&#039;s inventory then it is silently replaced.&lt;br /&gt;
* {{LSLP|start_param}} only lasts until the script is reset.&lt;br /&gt;
* Only the owner of an {{LSLGC|Attachment|attachment}} can modify it while it is being worn.&lt;br /&gt;
** If {{LSLP|target}} is an {{LSLGC|Attachment|attachment}} owned by a different user, regardless of object modify rights granted, this function will silently fail.&lt;br /&gt;
* If {{LSLP|pin}} fails to match, the error &amp;quot;Task ~Prim~ trying to illegally load script onto task ~Other_Prim~!&amp;quot; is shouted on [[DEBUG_CHANNEL]]. &amp;quot;~Prim~&amp;quot; and &amp;quot;~Other_Prim~&amp;quot; are substituted with the applicable prim names.&lt;br /&gt;
* If {{LSLP|target}} is the script&#039;s parent (&amp;lt;code&amp;gt;{{LSLPT|target}} == [[llGetKey]]()&amp;lt;/code&amp;gt;) then &amp;quot;Unable to add item!&amp;quot; is shouted on [[DEBUG_CHANNEL]].&lt;br /&gt;
* If the object containing this script is deeded to a group, than script {{LSLP|name}} needs transfer permissions; even if {{LSLP|target}} is deeded to the same group.&lt;br /&gt;
* When the script is set to run (with {{LSLP|running}}, the running checkbox or [[llSetScriptState]]) [[state_entry]] will be queued.&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&lt;br /&gt;
==== Basic Example ====&lt;br /&gt;
=====Script copier=====&lt;br /&gt;
&amp;lt;lsl&amp;gt;//Copy a script to the second prim&lt;br /&gt;
integer PIN=1341134;&lt;br /&gt;
&lt;br /&gt;
default {&lt;br /&gt;
    state_entry() {&lt;br /&gt;
        llRemoteLoadScriptPin( llGetLinkKey(2), &amp;quot;some script&amp;quot;, PIN, TRUE, 0xB00B1E5 );&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;&lt;br /&gt;
=====Pin setter=====&lt;br /&gt;
Simple script used for setting the pin for a prim, so you can later send scripts to it with llRemoteLoadScriptPin.&lt;br /&gt;
&amp;lt;lsl&amp;gt;//Child Prim PIN setter&lt;br /&gt;
integer PIN=1341134;&lt;br /&gt;
&lt;br /&gt;
default {&lt;br /&gt;
    state_entry() {&lt;br /&gt;
        llOwnerSay(llGetObjectName()+&amp;quot; : &amp;quot;+(string)llGetKey()+&amp;quot; is ready to accept a describer script using the agreed upon PIN.&amp;quot;);&lt;br /&gt;
        llSetRemoteScriptAccessPin(PIN);&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Rez and copy a file from a control object ==== &lt;br /&gt;
Notes: There is currently no signing on the starting messages only the owner is checked.&lt;br /&gt;
&lt;br /&gt;
this example rezs a prim from inventory that has a basic control file inside of it and does a basic handshake to setup the&lt;br /&gt;
pin and transfer the script. &lt;br /&gt;
&lt;br /&gt;
after the transfert the helper script in the rezzed prim deletes itself.&lt;br /&gt;
&lt;br /&gt;
===== Control prim =====&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
integer controlchan = 0;&lt;br /&gt;
integer controlid = -1;&lt;br /&gt;
start()&lt;br /&gt;
{&lt;br /&gt;
    llSetTimerEvent(0);&lt;br /&gt;
    talkingto = NULL_KEY;&lt;br /&gt;
    integer a = (integer)llFrand(43);&lt;br /&gt;
    controlchan = a * a;&lt;br /&gt;
    controlchan -= controlchan * 3;&lt;br /&gt;
    controlid = llListen(controlchan,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;set-connect&amp;quot;);&lt;br /&gt;
    llRezObject(&amp;quot;card&amp;quot;,llGetPos()+&amp;lt;0,0,0.1&amp;gt;,&amp;lt;0,0,0&amp;gt;,ZERO_ROTATION,a);&lt;br /&gt;
    llSetTimerEvent(60);&lt;br /&gt;
}&lt;br /&gt;
key talkingto = NULL_KEY;&lt;br /&gt;
integer busy = FALSE;&lt;br /&gt;
integer accesspin = 0;&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    timer()&lt;br /&gt;
    {&lt;br /&gt;
        llSetTimerEvent(0);&lt;br /&gt;
        llOwnerSay(&amp;quot;Lost connection!&amp;quot;);&lt;br /&gt;
        llListenRemove(controlid);&lt;br /&gt;
        busy = FALSE;&lt;br /&gt;
    }&lt;br /&gt;
    listen(integer chan,string name,key id,string message)&lt;br /&gt;
    {&lt;br /&gt;
        if(chan == controlchan)&lt;br /&gt;
        {&lt;br /&gt;
            if(llGetOwnerKey(id) == llGetOwner())&lt;br /&gt;
            {&lt;br /&gt;
                if(talkingto == NULL_KEY)&lt;br /&gt;
                {&lt;br /&gt;
                    if(message == &amp;quot;set-connect&amp;quot;)&lt;br /&gt;
                    {&lt;br /&gt;
                        llSetTimerEvent(0);&lt;br /&gt;
                        talkingto = id;&lt;br /&gt;
                        llListenRemove(controlid);&lt;br /&gt;
                        controlid = llListen(controlchan,&amp;quot;&amp;quot;,talkingto,&amp;quot;ready&amp;quot;);&lt;br /&gt;
                        llRegionSayTo(id,controlchan,&amp;quot;auto-connect&amp;quot;);&lt;br /&gt;
                        llSetTimerEvent(60);&lt;br /&gt;
                    }&lt;br /&gt;
                }   &lt;br /&gt;
                else if(id == talkingto)&lt;br /&gt;
                {&lt;br /&gt;
                    if(message == &amp;quot;ready&amp;quot;)&lt;br /&gt;
                    {&lt;br /&gt;
                        llSetTimerEvent(0);&lt;br /&gt;
                        accesspin = (integer)llFrand(2345)+213;&lt;br /&gt;
                        llListenRemove(controlid);&lt;br /&gt;
                        controlid = llListen(controlchan,&amp;quot;&amp;quot;,talkingto,&amp;quot;pinset&amp;quot;);&lt;br /&gt;
                        llSleep(1);&lt;br /&gt;
                        llRegionSayTo(talkingto,controlchan,(string)accesspin);&lt;br /&gt;
                        llSetTimerEvent(60);&lt;br /&gt;
                    }&lt;br /&gt;
                    else if(message == &amp;quot;pinset&amp;quot;)&lt;br /&gt;
                    {&lt;br /&gt;
                        llSetTimerEvent(0);&lt;br /&gt;
                        llListenRemove(controlid);&lt;br /&gt;
                        llRemoteLoadScriptPin(talkingto,&amp;quot;demo.lsl&amp;quot;,accesspin,1,0);&lt;br /&gt;
                        llSleep(3);&lt;br /&gt;
                        llRegionSayTo(talkingto,controlchan,&amp;quot;finished&amp;quot;);&lt;br /&gt;
                        llOwnerSay(&amp;quot;Transfer of file finished - control file should have auto deleted itself!&amp;quot;);&lt;br /&gt;
                        busy = FALSE;&lt;br /&gt;
                    }&lt;br /&gt;
                } &lt;br /&gt;
            }   &lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    touch_end(integer a)&lt;br /&gt;
    {&lt;br /&gt;
        if(busy == FALSE)&lt;br /&gt;
        {&lt;br /&gt;
            busy = TRUE;&lt;br /&gt;
            if(llGetOwner() == llDetectedKey(0))&lt;br /&gt;
            {&lt;br /&gt;
                start();&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== rezzed prim =====&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
integer listen_id = -1;&lt;br /&gt;
integer listen_chan = -1;&lt;br /&gt;
key details_from = NULL_KEY;&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    on_rez(integer a)&lt;br /&gt;
    {&lt;br /&gt;
        if(a == 0)&lt;br /&gt;
        {&lt;br /&gt;
            llOwnerSay(&amp;quot;- Direct rez -&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
            llOwnerSay(&amp;quot;- Awaiting config connection -&amp;quot;);&lt;br /&gt;
            listen_chan = a * a;&lt;br /&gt;
            listen_chan -= listen_chan * 3;&lt;br /&gt;
            listen_id = llListen(listen_chan,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;auto-connect&amp;quot;);&lt;br /&gt;
            llWhisper(listen_chan,&amp;quot;set-connect&amp;quot;);&lt;br /&gt;
            llSetTimerEvent(30);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    timer()&lt;br /&gt;
    {&lt;br /&gt;
        llOwnerSay(&amp;quot;Failed to connect to rezzer deleting myself!&amp;quot;);&lt;br /&gt;
        llSetTimerEvent(0);&lt;br /&gt;
        llDie();&lt;br /&gt;
    }&lt;br /&gt;
    listen(integer chan,string name,key id,string message)&lt;br /&gt;
    {&lt;br /&gt;
        if(llGetOwnerKey(id) == llGetOwner())&lt;br /&gt;
        {&lt;br /&gt;
            if(message == &amp;quot;auto-connect&amp;quot;)&lt;br /&gt;
            {&lt;br /&gt;
                llSetTimerEvent(0);&lt;br /&gt;
                llListenRemove(listen_id);&lt;br /&gt;
                listen_id = llListen(listen_chan,&amp;quot;&amp;quot;,id,&amp;quot;&amp;quot;);&lt;br /&gt;
                llRegionSayTo(id,listen_chan,&amp;quot;ready&amp;quot;);&lt;br /&gt;
                details_from = id;&lt;br /&gt;
                llSetTimerEvent(30);                 &lt;br /&gt;
            }&lt;br /&gt;
            else if(details_from != NULL_KEY)&lt;br /&gt;
            {&lt;br /&gt;
                llSetTimerEvent(0);  &lt;br /&gt;
                if(message == &amp;quot;finished&amp;quot;)&lt;br /&gt;
                {&lt;br /&gt;
                    llSetRemoteScriptAccessPin((integer)message);&lt;br /&gt;
                    llRemoveInventory(llGetScriptName());         &lt;br /&gt;
                }&lt;br /&gt;
                else&lt;br /&gt;
                {&lt;br /&gt;
                    llSetRemoteScriptAccessPin((integer)message);&lt;br /&gt;
                    llRegionSayTo(id,listen_chan,&amp;quot;pinset&amp;quot;);&lt;br /&gt;
                } &lt;br /&gt;
                llSetTimerEvent(30);  &lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions={{LSL DefineRow||[[llSetRemoteScriptAccessPin]]|Used to setup a prim for remote loading}}&lt;br /&gt;
{{LSL DefineRow||[[llSetScriptState]]|Set a scripts running state}}&lt;br /&gt;
{{LSL DefineRow||[[llResetOtherScript]]|Reset another script in the prim}}&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_events&lt;br /&gt;
|also_articles&lt;br /&gt;
|history=&lt;br /&gt;
* Added in 1.2.6&lt;br /&gt;
* In SL 1.25.4 this function will not copy/move any script into an attachment unless the script is full perm. ([https://jira.secondlife.com/browse/SVC-3725 SVC-3725])&lt;br /&gt;
* SL 1.25.5 will allow this function to copy/move a script into an attachment so long as the target has matching (or more restrictive) copy and transfer permissions. ([https://jira.secondlife.com/browse/SVC-3738 SVC-3738])&lt;br /&gt;
|notes&lt;br /&gt;
|cat1=Script&lt;br /&gt;
|cat2=Inventory&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Ayamo Nozaki</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Downloads&amp;diff=1160519</id>
		<title>Downloads</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Downloads&amp;diff=1160519"/>
		<updated>2012-01-03T23:50:31Z</updated>

		<summary type="html">&lt;p&gt;Ayamo Nozaki: /* Other Third Party Viewers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Help|Viewer=*}}{{RightToc}}&lt;br /&gt;
&lt;br /&gt;
= Linden Lab Viewers =&lt;br /&gt;
&lt;br /&gt;
The following viewers are available on the official &#039;&#039;&#039;[https://secondlife.com/support/downloads/index.php Downloads]&#039;&#039;&#039; page:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;Second Life Viewer&#039;&#039;&#039; (a.k.a. the official Viewer, regular Viewer etc.)&lt;br /&gt;
; &#039;&#039;&#039;Second Life Beta Viewer&#039;&#039;&#039;&lt;br /&gt;
: Available approximately weekly, possibly slightly less stable than the Second Life Viewer, but with the  features and fixes that will be in the next Second Life Viewer.&lt;br /&gt;
&lt;br /&gt;
== Development Releases ==&lt;br /&gt;
&lt;br /&gt;
These viewers are released from time to time by viewer development teams within Linden Lab; they contain features and fixes that are not yet even in the Beta version:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;[[Linden Lab Official:Alternate Viewers#Second Life Project Viewers|Project Viewers]]&#039;&#039;&#039;&lt;br /&gt;
: Provide an early look at new features under development before those are ready to get into the main development stream.&lt;br /&gt;
; &#039;&#039;&#039;[[Downloading test builds|Development Viewer]]&#039;&#039;&#039;&lt;br /&gt;
: Features and fixes that are still warm from the creative fires of development.&lt;br /&gt;
&lt;br /&gt;
== Old Releases ==&lt;br /&gt;
The [[Release Notes]] pages for many past versions contain links to the corresponding downloads.&lt;br /&gt;
{{KBwarning|width=600px|Past Viewer versions might have &#039;&#039;&#039;known security issues&#039;&#039;&#039;, can be partially or fully &#039;&#039;&#039;incompatible to current server versions&#039;&#039;&#039; and obviously will be &#039;&#039;&#039;lacking newer features&#039;&#039;&#039;. Use them at your own risk.}}&lt;br /&gt;
&lt;br /&gt;
{{anchor|non-linden}} &amp;lt;!-- target for [[Alternate viewers]] redirect --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Third Party Directory Viewers =&lt;br /&gt;
&lt;br /&gt;
{{:Third Party Viewer Directory}}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Other Third Party Viewers =&lt;br /&gt;
&lt;br /&gt;
{{KBcaution|The following viewers have either not applied for or have been denied listings in the Third Party Viewer Directory.}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Whether or not a viewer developer chooses to self-certify by applying for listing in the directory, all viewers connecting to Second Life must comply with the [https://secondlife.com/corporate/tpv.php Policy on Third-Party Viewers]; listing in the directory is not a requirement.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note to authors: If you make a viewer available make sure to include platform, version numbers and dates.&#039;&#039;&lt;br /&gt;
{{Anchor|Viewers}}&lt;br /&gt;
{|class=&amp;quot;wikitable sortable collapsible&amp;quot; {{prettytable}}&lt;br /&gt;
|+ &#039;&#039;click the boxed arrows to sort on columns&#039;&#039;&lt;br /&gt;
|- {{KBtablehead}}&lt;br /&gt;
! Name !! {{HoverText|Type|Graphic/Text}} !! {{HoverText|First release|Specified in YYYY-MM-DD}} !! {{HoverText|Latest Release|Specified in YYYY-MM-DD}} !! {{HoverText|Status|Active/Inactive/Discontinued}} !! {{HoverText|W|For Windows}} &amp;lt;ref name=&amp;quot;available&amp;quot;&amp;gt;&amp;quot;X&amp;quot;: Available with binary distribution&amp;lt;/ref&amp;gt;!! {{HoverText|M|For Macintosh}} &amp;lt;ref name=&amp;quot;available&amp;quot;/&amp;gt; !! {{HoverText|L|For Linux(Ubuntu, Debian or so)}} &amp;lt;ref name=&amp;quot;available&amp;quot;/&amp;gt; !! {{HoverText|i|For iPhone/iPod Touch}} &amp;lt;ref name=&amp;quot;available&amp;quot;/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[#AjaxLife]] || Text || || 2008-09-15 || Inactive ||X||X||X||X&lt;br /&gt;
|-&lt;br /&gt;
| [[#Cool VL Viewer]] || Graphic || 2007-11-16 || 2011-12-24 || Active ||X||X||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#Combat Cubed]] || Graphic || || 2010-06-16 || Active ||X|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#Exodus Viewer]] || Graphic || 2011-09-28 || 2012-01-03 || Active ||X||X||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#Hippo OpenSim Viewer]] || Graphic || || 2010-04-24 || Active ||X|| ||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#MetaPay for iPhone and iPod Touch]] || Text || ||  || || || || ||X&lt;br /&gt;
|-&lt;br /&gt;
| [[#Milk Release Client]] || Graphic || || 2010-01-20 || Inactive || ||X||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#omvviewer-light]] || Text || || 2009-08-25 || Active ||X|| ||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#Rainbow Viewer / Cool Viewer]] || Graphic || || 2011-07-10 || Active ||X||X||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#RealXtend Edition]] || Graphic || || 2008-07-28 || Active ||X|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#SLiteChat]] || Text || || || Active ||X||X||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#TEKSTUFF Viewers]] || Graphic || || 2010-04-20 || Active ||X|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#Whisper (SlXSLChat)]] || Text || || 2010-05-09 || Active ||X||X||X||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Graphical Viewers ==&lt;br /&gt;
&lt;br /&gt;
=== Cool VL Viewer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This viewer was created and is maintained by {{User|Henri Beauchamp}} (This viewer was formerly known as the &amp;quot;Cool SL Viewer&amp;quot; and its first public release was v1.18.4.3, released on 2007-11-16). It combines elements of several of the other viewers, as well as extra features, bug fixes and extra patches, all very carefully tested.&lt;br /&gt;
&lt;br /&gt;
It puts emphasis on high UI coherency from one version to the other (meaning no bad surprise for &amp;quot;old timers&amp;quot;) while staying in sync with Linden Lab&#039;s official viewer features, high stability and reliability, and a high reactivity to new patches and bug fixes provided by the Open Source community.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The Cool VL Viewer is TPV policy compliant.&#039;&#039;&#039; Please see [http://sldev.free.fr/CoolVLViewerReadme.html its TPV TOS].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Extra Features &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Reverses many of the unpopular interface changes, restoring separate friends and groups floaters and reinstating the packet loss and bandwidth indicators, the old toolbar and buttons layouts, the old/normal commands layout in the pie menus, the &amp;quot;All(old)&amp;quot; search tab, the old style (name-sortable) &amp;quot;Groups&amp;quot; search tab, the &amp;quot;Fly&amp;quot; button in the movement controls floater, and &#039;&#039;&#039;optionally&#039;&#039;&#039; reinstating the old, more visible, status bar icons and/or tracking dots in the mini-map, and the old chat history floater (without chat input line). Also fixes some UI regressions (missing buttons in some floaters, or visited landmarks tracking in inventory for example).&lt;br /&gt;
* Implements the &amp;quot;RestrainedLove&amp;quot; API (formerly known as &amp;quot;RestrainedLife&amp;quot;), based on Marine Kelley&#039;s reference patch (switchable and disabled by default).&lt;br /&gt;
* Allows to configure the date and time formats to match your locale or personal preferences (including with optional seconds for chat and IM timestamps).&lt;br /&gt;
* Allows to wear/remove attachments and clothing items on double-click in inventory.&lt;br /&gt;
* Allows to optionally prevent notifications to show and be logged in the main chat.&lt;br /&gt;
* Allows to disable typing sounds.&lt;br /&gt;
* MUD/MUSH/MUCK/MUX style &amp;quot;poses&amp;quot; (i.e. you can type &amp;quot;:&amp;quot; instead of &amp;quot;/me &amp;quot; to emote), and OOC double parenthesis auto-close (i.e. you can type: &amp;quot;((phone, BRB&amp;quot; and it will show as &amp;quot;((phone, BRB))&amp;quot;).&lt;br /&gt;
* Allows to hide the &amp;quot;Master volume&amp;quot; when not needed in the panel overlay.&lt;br /&gt;
* Allows to build large prims (up to 256m in any or all dimensions) on OpenSim (not on SL, because of server-side limitations).&lt;br /&gt;
* Improved friends list floater (with info about what your friends allow you to see: tehri online status and/or their position on the map).&lt;br /&gt;
* Improved build tools floater (smaller increments in several parameters, extra &amp;quot;slice&amp;quot; parameter for some prims, transparency up to 100%, check box toggle for drag distance limit, adjustable number of decimals in Object tab for the position/size/rotation parameters, &amp;quot;Align&amp;quot; tool). Also allows to set the &amp;quot;invisible&amp;quot; texture from the texture picker (for invisi-prims).&lt;br /&gt;
* Improved texture preview floater (with aspect ratio combo).&lt;br /&gt;
* Improved notecard floater (with Edit menu and Search/replace feature).&lt;br /&gt;
* Improved mini-map with panning, larger zooming range, specific symbol for avatars above 1024m (work around for a limitation of current server and viewer versions), etc...&lt;br /&gt;
* Improved beacons: can filter beacons based on owner (you, others or anyone), can highlight attachments, can dissociate non-object sound sources, can keep beacons &amp;quot;always on&amp;quot; even when the beacons floater is closed.&lt;br /&gt;
* Allows to export and import objects you own and created as XML files (for backup and restore purpose, or to transfer objects from one grid to another).&lt;br /&gt;
* Allows to connect to all existing grids (and not only LL&#039;s) from the login screen.&lt;br /&gt;
* Allows network bandwidth up to 10000Kbps.&lt;br /&gt;
* Allows to save/compile scripts present in the inventory as Mono scripts.&lt;br /&gt;
* Allows to teleport to double-clicked locations on screen.&lt;br /&gt;
* Allows to sit anywhere &amp;quot;on the ground&amp;quot;.&lt;br /&gt;
* Allows to adjust the Z offset (height above the floor) for playing animations.&lt;br /&gt;
* Allows to cache the inventory in the background after login (for faster inventory operations).&lt;br /&gt;
* Allows to preview animations on your avatar prior to uploading them.&lt;br /&gt;
* Implements a group titles floater.&lt;br /&gt;
* Implements a radar floater.&lt;br /&gt;
* Implements a teleports history floater.&lt;br /&gt;
* Implements a &amp;quot;Worn&amp;quot; tab in the inventory floater, and a search/filter by item name, description or creator.&lt;br /&gt;
* Implements &amp;quot;speed rezzing&amp;quot; on login and TPs.&lt;br /&gt;
* Implements an object &amp;quot;area search&amp;quot; floater.&lt;br /&gt;
* Implements the newest LSL functions, highlighting them properly (with tooltips) in the script editor and allowing to compile them. Also implements fully llTextBox() and the AGENT_AUTOPILOT flag with llGetAgentInfo().&lt;br /&gt;
* Allows to ignore (and not only decline) friendship and calling card offers.&lt;br /&gt;
* Allows to change how minimized floaters are stacked (top/bottom, bottom/top, left/right, right/left, fraction of the screen width to use for the stack).&lt;br /&gt;
* Shows avatar keys in profile (in &amp;quot;My notes&amp;quot; tab).&lt;br /&gt;
* Shows the avatar true height in the appearance floater.&lt;br /&gt;
* Renders properly objects worn on the illegal attachment points defined in some hacked third parties viewers.&lt;br /&gt;
* &#039;&#039;&#039;Provides Mesh rendering support ! NEW: Mesh upload support (Linux and MacOS-X releases only for now).&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Provides full support for the new Alpha and Tattoo wearables !&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Provides inventory item links support !&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Provides multiple attachments per point support !&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Provides display names support !&#039;&#039;&#039;&lt;br /&gt;
* Provides Avatar Physics support.&lt;br /&gt;
* Provides the new SL web search engine as an option.&lt;br /&gt;
* Provides access to web profiles.&lt;br /&gt;
* Provides support for setting the new parcel flags (avatar visibility, sounds playing restrictions).&lt;br /&gt;
* Allows to filter (Allow/Deny/BlackList/Whitelist) media and audio streams URLs to protect your privacy against IP snatchers.&lt;br /&gt;
* Many bugfixes by Henri Beauchamp, Nicholaz Beresford, Gigs Taggart, McCabe Maxsted and others.&lt;br /&gt;
* More minor features and improvements, to be discovered on the [http://sldev.free.fr/ website]...&lt;br /&gt;
* All switchable extra features easily configurable via a &amp;quot;Cool features&amp;quot; tab in the preferences floater.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://sldev.free.fr/ The Cool VL Viewer homepage]&lt;br /&gt;
* Message board: [http://sldev.free.fr/forum/ Cool VL Viewer forum]&lt;br /&gt;
* Linux viewer: see the [http://sldev.free.fr/index.php?page=download download section on the Cool VL Viewer homepage] for files and installation instructions.&lt;br /&gt;
* Windows viewer: see the [http://sldev.free.fr/index.php?page=download download section on the Cool VL Viewer homepage] for files and installation instructions.&lt;br /&gt;
* MacOS X viewer: see the [http://sldev.free.fr/forum/viewtopic.php?f=3&amp;amp;t=14 MacOS-X Announcement forum] for files and instructions.&lt;br /&gt;
* Source code: see the [http://sldev.free.fr/index.php?page=download download section on the Cool VL Viewer homepage].&lt;br /&gt;
* Screen shots: [http://sldev.free.fr/index.php?page=features Key features and screen shots]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Version: 1.26.2.11 Date: 24 December 2011&lt;br /&gt;
* Status: Active.&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Exodus Viewer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Exodus Viewer is a new flavour of the Second Life Viewer 3 series, packed with useful features to enhance the experience of competitive play in Second Life. Photographers, roleplayers, fighters and virtual sport stars will benefit from a viewer designed for maximum performance! Exodus Viewer also packs some cool visual effects that are perfect for photographers and machinema film makers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Major Features &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Based on Secondlife 3.2.6/3.2.7, keeping upto date with the latest features and fixes!&lt;br /&gt;
* Plenty of unique graphics features for photographers.&lt;br /&gt;
* Various built in HUDs, such as a range finder, and situational awareness HUD.&lt;br /&gt;
* A bunch of friend-foe identification features.&lt;br /&gt;
* Huge enhancements and changes made to the minimap.&lt;br /&gt;
* Allows you to adjust minimap colors, even in mass, by right-clicking a selection on the minimap.&lt;br /&gt;
* Various adjustments on how the minimap appears, to make it more useful for combat.&lt;br /&gt;
* Highly customizable settings related to minimap, default colors and even script windows.&lt;br /&gt;
* The usual, various chat commands seen in various TPV viewers.&lt;br /&gt;
* Options to automatically disable various rendering types such as clouds, water, foot shadows, etc.&lt;br /&gt;
* Request teleport feature, allowing your friends to request a teleport from you!&lt;br /&gt;
* And much more, go check out the feature page [http://exodusviewer.com/features.html here!]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Website: http://exodusviewer.com/&lt;br /&gt;
* Download page: http://exodusviewer.com/downloads.html&lt;br /&gt;
* Source code: http://hg.exodusviewer.com/viewer/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Version: 12.01.03.1&lt;br /&gt;
* Date: January 3, 2012&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Hippo OpenSim Viewer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The Hippo OpenSim Viewer is a modified Second Life viewer, targeted at OpenSim users. It allows building up to a height of 10,000 meters, scaling prims up to 256 x 256 x 256 meters and other exciting features. More specific OpenSim features are under development.&lt;br /&gt;
The last developer blog commented: Releasing Hippo OpenSim Viewer Version 0.6.3. This release adds a Windows uninstaller and small changes to comply to the Linden Lab Policy on Third-Party Viewers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Availability &#039;&#039;&#039;&lt;br /&gt;
Is currently available for Linux and Windows.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: http://mjm-labs.com/viewer/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Version: 0.6.3&lt;br /&gt;
* Platforms:&lt;br /&gt;
** Binary available for Windows and Linux&lt;br /&gt;
** Source available (unspecified)&lt;br /&gt;
* Date: April 24, 2010&lt;br /&gt;
* Status: Active + updated&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Meerkat ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Goals &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* To create a fully GPL viewer (no proprietary dependencies)&lt;br /&gt;
* To encourage a community of developers that will submit patches for prompt integration&lt;br /&gt;
* To have the freedom to make the sort of changes that Linden Lab has traditionally been unable to integrate (translation patches, refactoring, fixing intentionally crippled features, changes that touch many files)&lt;br /&gt;
* To retain compatibility with Linden Lab&#039;s grid and protocols, present and future&lt;br /&gt;
* To implement a loosely coupled cross-grid functionality that requires no central authentication authority.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Extra Features &#039;&#039;&#039;&lt;br /&gt;
* Log out and back in without quitting&lt;br /&gt;
* Loosely coupled intergrid teleport -- In Process&lt;br /&gt;
* Most of the other changes common to third party viewers&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;del&amp;gt;Website: [http://www.meerkatviewer.org/ Meerkat Viewer]&amp;lt;/del&amp;gt; (note: the Meerkat site is down)&lt;br /&gt;
* Direct download link: [http://code.google.com/p/meerkat-viewer/downloads/list Download versions of this viewer]&lt;br /&gt;
* Source code: svn checkout http://meerkat-viewer.googlecode.com/svn/trunk/ meerkat&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Version : 0.2.x&lt;br /&gt;
* Date : September 6, 2009&lt;br /&gt;
* Status : Discontinued, website offline. Source and binary downloads still available on google code (see above).&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Nicholaz Edition ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
These are Windows viewer based on SL builds with a focus on stability, usability and performance (see [http://www.blueflash.cc/users/nicholaz/EyeCandy/!!Installation.txt Installation.txt] for homebrew disclaimer). Mac and Linux variants are available through other open sourcers (links on the website).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Extra Features &#039;&#039;&#039;&lt;br /&gt;
* Improved stability.&lt;br /&gt;
* Lower memory footprint.&lt;br /&gt;
* GUI redesigns.&lt;br /&gt;
* Workarounds for common annoyances. (Group IM Filtering, &amp;quot;Release Key&amp;quot; button, etc.)&lt;br /&gt;
* see [http://nicholaz-beresford.blogspot.com/2008/05/version-overview.html this entry] for an overview of different versions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://nicholaz-beresford.blogspot.com/ Nicholaz Beresford on Blogspot]&lt;br /&gt;
* Direct download link: [http://www.blueflash.cc/users/nicholaz Download versions of this viewer]&lt;br /&gt;
* Source code: Look at the [http://www.blueflash.cc/users/nicholaz download site] for the source-xxx-zip files in the respective folders and see the readme.txt inside the archives&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Date: September 7, 2009&lt;br /&gt;
* Status: Discontinued&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Onrez Viewer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The Onrez viewer was made by the Onrez company in connection with a Second Life themed story on the high tech forensics based TV show &amp;quot;CSI: New York&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Extra Features &#039;&#039;&#039;&lt;br /&gt;
* A back and history button for teleports&lt;br /&gt;
* In-viewer web browsing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Comment &#039;&#039;&#039;&lt;br /&gt;
The source code for this viewer is closed source.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Status : Discontinued, download no longer available.&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Rainbow Viewer / Cool Viewer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Based on the offical SecondLife sourcecode licensed under GPL2, this speedy Metaverse Client can connect you to a huge variety of exciting Virtual Worlds! It incorporates a lot of improved, new, up- and backported features and fixes that make the fast and rock stable RV/CV the client of choice for many users.&lt;br /&gt;
&lt;br /&gt;
This viewer includes many patches and changes from a lot of different people and sources which I am very grateful to be able to use. Credits are given to everyone I know, in case I missed someone I sincerely apologize.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rainbow / Cool are TPV compliant.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Thanks to Henri Beauchamp who laid the foundation for this viewer with his Cool SL Viewer. Special thanks to Winter Ventura for the Cool Viewer logo and Jacek Antonelli and Peter Stindberg for the Rainbow Viewer logo :). And to all the others who helped and supported me, especially the people involved and behind Imprudence!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Some incomprehensive list of features &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A major improvement is an up-to-date OpenGL implementation that especially helps users plagued by ATI&#039;s Catalyst drivers but also leads to measurable improvements of overall graphics performance by 30...100% compared to the official viewer; depending on your system. Rainbow Viewer features the current user interface whereas Cool Viewer spots the leaner cleaner and more configurable legacy UI. It&#039;s all about choice :).&lt;br /&gt;
&lt;br /&gt;
* New 1.22.12.0 code baseline&lt;br /&gt;
* CV&#039;s legacy User interface with a clean, simple and userfriendly layout or Rainbow Viewers current official UI, you choose!&lt;br /&gt;
* Improved Graphics rendering, especially for ATI users (measured &amp;gt; 1/3 faster than the official viewer)&lt;br /&gt;
* Alpha and Tattoo Layer support from Second Life Viewer 2.x&lt;br /&gt;
* Updated tested list of Virtual World grids&lt;br /&gt;
* Marine Kelley&#039;s RestrainedLove (off per default)&lt;br /&gt;
* Full Adult Compliance&lt;br /&gt;
* Redesigned and &amp;quot;up-ported&amp;quot; search functionality, probably the best search in any viewer nowadays&lt;br /&gt;
* Enhanced Breast Physics&lt;br /&gt;
* Temporary texture and animation upload&lt;br /&gt;
* Better inventory search for content, description and creator&lt;br /&gt;
* Low lag radar and AV management tools&lt;br /&gt;
* Viewer skinning&lt;br /&gt;
* Object and Shape export/import, limited to creator&lt;br /&gt;
* Bulk permission editing&lt;br /&gt;
* Last owner display to track content theft&lt;br /&gt;
* &amp;quot;Worn&amp;quot; tab in inventory&lt;br /&gt;
* Double click to wear attachments&lt;br /&gt;
* Enhanced building tools&lt;br /&gt;
* Flexible Sculpties&lt;br /&gt;
* Large Prims (currently only for Opensim grids due to SL limitations)&lt;br /&gt;
* Maximized Network Bandwidth&lt;br /&gt;
* Flexible Grid selection at login for SL and all OpenSims&lt;br /&gt;
* Teleport History and speedy doubleclick teleport&lt;br /&gt;
* Avatar UUID in profiles&lt;br /&gt;
* Features tab in Preferences for easy switching of features&lt;br /&gt;
* Optimized latest OpenJPEG 1.3&lt;br /&gt;
* A large number of other goodies and stability fixes that improve your overall experience. Please check the [http://code.google.com/p/coolviewer/wiki/ReleaseNotes Release Notes] for details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://my.opera.com/boylane Rainbow Viewers for  Virtual Worlds]&lt;br /&gt;
* Direct download link: [http://coolviewer.googlecode.com Binary versions on Google Code]&lt;br /&gt;
* Source code: [http://github.com/boy Sources on Github]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Rainbow Viewer 1.22.12 R7&lt;br /&gt;
* Rainbow Viewer Cool Edition (Cool Viewer) 1.22.12 R13&lt;br /&gt;
* Rainbow Viewer Netbook Edition Version 1.2 (speedy pre-Windlight 1.19.0.5)&lt;br /&gt;
* Date: July 10, 2011&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== RealXtend Edition ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The realXtend viewer is a heavily modified version of the Linden Lab&#039;s Second Life client by a partnership of two Finnish companies, ADMINO technologies and LudoCraft.&lt;br /&gt;
&lt;br /&gt;
The successor to the realXtend viewer is Naali (release 0.4.0 on 21st January 2011, download from http://code.google.com/p/realxtend-naali/downloads/list).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Extra Features &#039;&#039;&#039;&lt;br /&gt;
    * Second life compatibility mode for use in SL and Opensim worlds&lt;br /&gt;
    * Teleports between realXtend and Secondlife&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: http://www.realxtend.org/&lt;br /&gt;
* Direct download link: http://www.realxtend.org/downloads.html&lt;br /&gt;
* Source code: http://sourceforge.net/projects/realxtendviewer/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Version: 0.4.2&lt;br /&gt;
* Date: September 24, 2009&lt;br /&gt;
* Status: Discontinued, replaced by Naali.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Combat Cubed ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This client is aimed mostly at the SL Military, but sports quite a few interesting improvements that make it worth taking a look at.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Originally known as Vertical Life.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Major Features &#039;&#039;&#039;&lt;br /&gt;
* Enhanced Look &amp;amp; Feel, for example flexible camera movement&lt;br /&gt;
* Prototype Script API, secure and parallel&lt;br /&gt;
* Slimmed down for FPS combat&lt;br /&gt;
* Identification, Friend versus Foe, mostly under the hood now but soon exposed&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Splash: http://bit.ly/cXOcDX&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Version: 1.0&lt;br /&gt;
* Date: June 16, 2010&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== TEKSTUFF Viewers ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The TEKSTUFF viewers are created to enable Youtube movies on TEKSTUFF media screens inside Second Life. The TEKSTUFF viewers are slight modifications of already available viewers like the regular SL 1.23.5 viewer and the Emerald 1634 viewer. Apart from that, the Emerald based viewer is fixed so it can be used in Opensim grids as well.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Web presence: http://www.tekstuff.net/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; TODO &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Make a Linux viewer&lt;br /&gt;
* Make a Mac OS viewer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Major Features &#039;&#039;&#039;&lt;br /&gt;
* All the functionality of the viewer it was based upon (Linden Lab 1.23.5 or Emerald 1634)&lt;br /&gt;
* Will allow you to view Youtube movies on TEKSTUFF media screens&lt;br /&gt;
* The Emerald based viewer can also be used in OpenSim grids (texture loading is fixed)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Version: 1.23.5 (Linden Lab &amp;amp; Emerald)&lt;br /&gt;
* Date: April 20, 2010&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Milk Release Client ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This client is aimed at development of all kinds, brought together by Project Neox. Focusing on advanced non-profit development of Second Life and various features which content creators would find suitable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; TODO &#039;&#039;&#039;&lt;br /&gt;
* XStreetSL shopping UI client-kiosk&lt;br /&gt;
* Compile Linux and Mac OS X builds&lt;br /&gt;
* Multiple link object texturing, via name&lt;br /&gt;
* Completion of 3-Dimensional Mini Map&lt;br /&gt;
* Region Statistics notifications before teleports&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Major Features &#039;&#039;&#039;&lt;br /&gt;
* Rendering options for individual avatars&lt;br /&gt;
* Secure Voice-chat usage&lt;br /&gt;
* Extensions in avatar editing&lt;br /&gt;
* Additional Attachment points&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Version: 1.23.5&lt;br /&gt;
* Date: January 20, 2010&lt;br /&gt;
* Status: Discontinued and will not be available for download.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
==Text-Only Viewers==&lt;br /&gt;
&lt;br /&gt;
===AjaxLife ===&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
Browser based Second Life client, created by Katharine Berry. The only web-browser client which made it a lifeline for residents who could not use a full graphical viewer, or who could not download other text-only clients because of limitations such as corporate firewalls.&lt;br /&gt;
&lt;br /&gt;
(No longer working)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: http://ajaxlife.net/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Version: 0.6.1.2&lt;br /&gt;
* Date: May 21, 2010&lt;br /&gt;
* Platform: Platform-Independant&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== omvviewer-light ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; A Text client for the 3D Metaverse &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
omvviewer-light is a text client for the 3D Metaverse including SecondLife, written from Scratch (but using the libomv library for protocol handling). It&#039;s GUI is created in Gtk# which is cross-platform making this the only current Text client that is still active and cross platform. Tested on Linux (32/64 bit) and Windows (not 64-bit windows).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Features &#039;&#039;&#039;&lt;br /&gt;
To many to list here in detail please see the project page below but in summary, Full inventory control, Full Chat/IM/Group IM&#039;s. Object search and interaction. Realtime local maps. Parcel displays. Read and Edit NoteCards and Scripts. View profiles. Friends Lists etc .....&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://omvviewer-light.byteme.org.uk/ Project page]&lt;br /&gt;
* Source code: [http://omvviewer-light.byteme.org.uk/source.shtml Source details]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Date: August 25, 2009&lt;br /&gt;
* Version: 0.48.0.6&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Whisper (SlXSLChat) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; A light-weight yet feature rich text-only Second Life client &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
Whisper is a text-only Second Life client that comes in two parts. The client is written in Java (so it can run on many platforms). The client connects to a &amp;quot;transport&amp;quot;, which is written in C# and uses LibOpenMetaVerse. The idea behind this architecture is that if you don&#039;t like the client, you can write your own and not have to worry about implementing the Second Life protocol yourself. The entire project is open source and published under the GPLv3 licence.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Features &#039;&#039;&#039;&lt;br /&gt;
* Public chat&lt;br /&gt;
* Instant messaging&lt;br /&gt;
* Group chat&lt;br /&gt;
* Search/join/leave groups&lt;br /&gt;
* Search for avatars&lt;br /&gt;
* Image retrieval&lt;br /&gt;
* Profile retrieval&lt;br /&gt;
* Notifications / popups as you would get in Second Life (e.g. group notices, balance changes, inventory offers)&lt;br /&gt;
* Teleportation (home, to area within current sim, to nearby avatar)&lt;br /&gt;
* Nearby avatar tracking on map of Sim&lt;br /&gt;
* Autopilot navigation to nearby avatars&lt;br /&gt;
* URL highlighting&lt;br /&gt;
* Encrypted traffic between client and transport&lt;br /&gt;
* Transport can be run anywhere, the client connects via TCP/IP&lt;br /&gt;
* Client only sends MD5 hashed password to transport&lt;br /&gt;
* On April 20, 2010, SlXSLChat has rebranded to “Whisper”.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://whisper.slx.cc/ Whisper]&lt;br /&gt;
* SourceForce Project Page: [https://sourceforge.net/projects/slxslchat/ Project Page]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Date: May 9, 2010&lt;br /&gt;
* Version: 1.3&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== SLeek ===&lt;br /&gt;
First text only viewer ever, mentioned for completeness, not actively maintained anymore. MetaBolt is based on SLeek.&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== SLiteChat ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; A Lite IM/Chat Text-only Client for Second Life &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
SLiteChat (pronounced &amp;quot;slight-chat&amp;quot;) is a completely open source text-only IM/chat client for use with Second Life. Use it to talk to your friends without having to load up all of those heavy graphic goodies. Useful for those at work times.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Features &#039;&#039;&#039;&lt;br /&gt;
* Communicate in-world with people on your friends list. Full adding/removing and search for Residents supported.&lt;br /&gt;
* Group chat is supported (however at this writing you cannot leave a group or search for to join).&lt;br /&gt;
* Local chat and IM history is supported.&lt;br /&gt;
* Can log into other grids.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://www.slitechat.org/ Project page]&lt;br /&gt;
* Source code: [http://www.slitechat.org/download/ Source details]&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== MetaPay for iPhone and iPod Touch ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Send L$ with a simple to use and free iPhone App. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
MetaPay is a simple and fun way to send Linden Dollars from your iPhone and iPod touch for FREE! Out with friends and want to pay your part of the tab but have no cash? Use MetaPay to send L$ to your friends in Second Life® instead. Or use it to send L$ for any in-world use without firing up the full Second Life® client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Free in the AppStore: [http://bit.ly/metapay Open in iTunes]&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;/div&gt;</summary>
		<author><name>Ayamo Nozaki</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Downloads&amp;diff=1160518</id>
		<title>Downloads</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Downloads&amp;diff=1160518"/>
		<updated>2012-01-03T23:49:48Z</updated>

		<summary type="html">&lt;p&gt;Ayamo Nozaki: /* Exodus Viewer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Help|Viewer=*}}{{RightToc}}&lt;br /&gt;
&lt;br /&gt;
= Linden Lab Viewers =&lt;br /&gt;
&lt;br /&gt;
The following viewers are available on the official &#039;&#039;&#039;[https://secondlife.com/support/downloads/index.php Downloads]&#039;&#039;&#039; page:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;Second Life Viewer&#039;&#039;&#039; (a.k.a. the official Viewer, regular Viewer etc.)&lt;br /&gt;
; &#039;&#039;&#039;Second Life Beta Viewer&#039;&#039;&#039;&lt;br /&gt;
: Available approximately weekly, possibly slightly less stable than the Second Life Viewer, but with the  features and fixes that will be in the next Second Life Viewer.&lt;br /&gt;
&lt;br /&gt;
== Development Releases ==&lt;br /&gt;
&lt;br /&gt;
These viewers are released from time to time by viewer development teams within Linden Lab; they contain features and fixes that are not yet even in the Beta version:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;[[Linden Lab Official:Alternate Viewers#Second Life Project Viewers|Project Viewers]]&#039;&#039;&#039;&lt;br /&gt;
: Provide an early look at new features under development before those are ready to get into the main development stream.&lt;br /&gt;
; &#039;&#039;&#039;[[Downloading test builds|Development Viewer]]&#039;&#039;&#039;&lt;br /&gt;
: Features and fixes that are still warm from the creative fires of development.&lt;br /&gt;
&lt;br /&gt;
== Old Releases ==&lt;br /&gt;
The [[Release Notes]] pages for many past versions contain links to the corresponding downloads.&lt;br /&gt;
{{KBwarning|width=600px|Past Viewer versions might have &#039;&#039;&#039;known security issues&#039;&#039;&#039;, can be partially or fully &#039;&#039;&#039;incompatible to current server versions&#039;&#039;&#039; and obviously will be &#039;&#039;&#039;lacking newer features&#039;&#039;&#039;. Use them at your own risk.}}&lt;br /&gt;
&lt;br /&gt;
{{anchor|non-linden}} &amp;lt;!-- target for [[Alternate viewers]] redirect --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Third Party Directory Viewers =&lt;br /&gt;
&lt;br /&gt;
{{:Third Party Viewer Directory}}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Other Third Party Viewers =&lt;br /&gt;
&lt;br /&gt;
{{KBcaution|The following viewers have either not applied for or have been denied listings in the Third Party Viewer Directory.}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Whether or not a viewer developer chooses to self-certify by applying for listing in the directory, all viewers connecting to Second Life must comply with the [https://secondlife.com/corporate/tpv.php Policy on Third-Party Viewers]; listing in the directory is not a requirement.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note to authors: If you make a viewer available make sure to include platform, version numbers and dates.&#039;&#039;&lt;br /&gt;
{{Anchor|Viewers}}&lt;br /&gt;
{|class=&amp;quot;wikitable sortable collapsible&amp;quot; {{prettytable}}&lt;br /&gt;
|+ &#039;&#039;click the boxed arrows to sort on columns&#039;&#039;&lt;br /&gt;
|- {{KBtablehead}}&lt;br /&gt;
! Name !! {{HoverText|Type|Graphic/Text}} !! {{HoverText|First release|Specified in YYYY-MM-DD}} !! {{HoverText|Latest Release|Specified in YYYY-MM-DD}} !! {{HoverText|Status|Active/Inactive/Discontinued}} !! {{HoverText|W|For Windows}} &amp;lt;ref name=&amp;quot;available&amp;quot;&amp;gt;&amp;quot;X&amp;quot;: Available with binary distribution&amp;lt;/ref&amp;gt;!! {{HoverText|M|For Macintosh}} &amp;lt;ref name=&amp;quot;available&amp;quot;/&amp;gt; !! {{HoverText|L|For Linux(Ubuntu, Debian or so)}} &amp;lt;ref name=&amp;quot;available&amp;quot;/&amp;gt; !! {{HoverText|i|For iPhone/iPod Touch}} &amp;lt;ref name=&amp;quot;available&amp;quot;/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[#AjaxLife]] || Text || || 2008-09-15 || Inactive ||X||X||X||X&lt;br /&gt;
|-&lt;br /&gt;
| [[#Cool VL Viewer]] || Graphic || 2007-11-16 || 2011-12-24 || Active ||X||X||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#Combat Cubed]] || Graphic || || 2010-06-16 || Active ||X|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#Exodus Viewer]] || Graphic || 2011-09-28 || 2012-01-02 || Active ||X||X||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#Hippo OpenSim Viewer]] || Graphic || || 2010-04-24 || Active ||X|| ||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#MetaPay for iPhone and iPod Touch]] || Text || ||  || || || || ||X&lt;br /&gt;
|-&lt;br /&gt;
| [[#Milk Release Client]] || Graphic || || 2010-01-20 || Inactive || ||X||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#omvviewer-light]] || Text || || 2009-08-25 || Active ||X|| ||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#Rainbow Viewer / Cool Viewer]] || Graphic || || 2011-07-10 || Active ||X||X||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#RealXtend Edition]] || Graphic || || 2008-07-28 || Active ||X|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#SLiteChat]] || Text || || || Active ||X||X||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#TEKSTUFF Viewers]] || Graphic || || 2010-04-20 || Active ||X|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#Whisper (SlXSLChat)]] || Text || || 2010-05-09 || Active ||X||X||X||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Graphical Viewers ==&lt;br /&gt;
&lt;br /&gt;
=== Cool VL Viewer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This viewer was created and is maintained by {{User|Henri Beauchamp}} (This viewer was formerly known as the &amp;quot;Cool SL Viewer&amp;quot; and its first public release was v1.18.4.3, released on 2007-11-16). It combines elements of several of the other viewers, as well as extra features, bug fixes and extra patches, all very carefully tested.&lt;br /&gt;
&lt;br /&gt;
It puts emphasis on high UI coherency from one version to the other (meaning no bad surprise for &amp;quot;old timers&amp;quot;) while staying in sync with Linden Lab&#039;s official viewer features, high stability and reliability, and a high reactivity to new patches and bug fixes provided by the Open Source community.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The Cool VL Viewer is TPV policy compliant.&#039;&#039;&#039; Please see [http://sldev.free.fr/CoolVLViewerReadme.html its TPV TOS].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Extra Features &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Reverses many of the unpopular interface changes, restoring separate friends and groups floaters and reinstating the packet loss and bandwidth indicators, the old toolbar and buttons layouts, the old/normal commands layout in the pie menus, the &amp;quot;All(old)&amp;quot; search tab, the old style (name-sortable) &amp;quot;Groups&amp;quot; search tab, the &amp;quot;Fly&amp;quot; button in the movement controls floater, and &#039;&#039;&#039;optionally&#039;&#039;&#039; reinstating the old, more visible, status bar icons and/or tracking dots in the mini-map, and the old chat history floater (without chat input line). Also fixes some UI regressions (missing buttons in some floaters, or visited landmarks tracking in inventory for example).&lt;br /&gt;
* Implements the &amp;quot;RestrainedLove&amp;quot; API (formerly known as &amp;quot;RestrainedLife&amp;quot;), based on Marine Kelley&#039;s reference patch (switchable and disabled by default).&lt;br /&gt;
* Allows to configure the date and time formats to match your locale or personal preferences (including with optional seconds for chat and IM timestamps).&lt;br /&gt;
* Allows to wear/remove attachments and clothing items on double-click in inventory.&lt;br /&gt;
* Allows to optionally prevent notifications to show and be logged in the main chat.&lt;br /&gt;
* Allows to disable typing sounds.&lt;br /&gt;
* MUD/MUSH/MUCK/MUX style &amp;quot;poses&amp;quot; (i.e. you can type &amp;quot;:&amp;quot; instead of &amp;quot;/me &amp;quot; to emote), and OOC double parenthesis auto-close (i.e. you can type: &amp;quot;((phone, BRB&amp;quot; and it will show as &amp;quot;((phone, BRB))&amp;quot;).&lt;br /&gt;
* Allows to hide the &amp;quot;Master volume&amp;quot; when not needed in the panel overlay.&lt;br /&gt;
* Allows to build large prims (up to 256m in any or all dimensions) on OpenSim (not on SL, because of server-side limitations).&lt;br /&gt;
* Improved friends list floater (with info about what your friends allow you to see: tehri online status and/or their position on the map).&lt;br /&gt;
* Improved build tools floater (smaller increments in several parameters, extra &amp;quot;slice&amp;quot; parameter for some prims, transparency up to 100%, check box toggle for drag distance limit, adjustable number of decimals in Object tab for the position/size/rotation parameters, &amp;quot;Align&amp;quot; tool). Also allows to set the &amp;quot;invisible&amp;quot; texture from the texture picker (for invisi-prims).&lt;br /&gt;
* Improved texture preview floater (with aspect ratio combo).&lt;br /&gt;
* Improved notecard floater (with Edit menu and Search/replace feature).&lt;br /&gt;
* Improved mini-map with panning, larger zooming range, specific symbol for avatars above 1024m (work around for a limitation of current server and viewer versions), etc...&lt;br /&gt;
* Improved beacons: can filter beacons based on owner (you, others or anyone), can highlight attachments, can dissociate non-object sound sources, can keep beacons &amp;quot;always on&amp;quot; even when the beacons floater is closed.&lt;br /&gt;
* Allows to export and import objects you own and created as XML files (for backup and restore purpose, or to transfer objects from one grid to another).&lt;br /&gt;
* Allows to connect to all existing grids (and not only LL&#039;s) from the login screen.&lt;br /&gt;
* Allows network bandwidth up to 10000Kbps.&lt;br /&gt;
* Allows to save/compile scripts present in the inventory as Mono scripts.&lt;br /&gt;
* Allows to teleport to double-clicked locations on screen.&lt;br /&gt;
* Allows to sit anywhere &amp;quot;on the ground&amp;quot;.&lt;br /&gt;
* Allows to adjust the Z offset (height above the floor) for playing animations.&lt;br /&gt;
* Allows to cache the inventory in the background after login (for faster inventory operations).&lt;br /&gt;
* Allows to preview animations on your avatar prior to uploading them.&lt;br /&gt;
* Implements a group titles floater.&lt;br /&gt;
* Implements a radar floater.&lt;br /&gt;
* Implements a teleports history floater.&lt;br /&gt;
* Implements a &amp;quot;Worn&amp;quot; tab in the inventory floater, and a search/filter by item name, description or creator.&lt;br /&gt;
* Implements &amp;quot;speed rezzing&amp;quot; on login and TPs.&lt;br /&gt;
* Implements an object &amp;quot;area search&amp;quot; floater.&lt;br /&gt;
* Implements the newest LSL functions, highlighting them properly (with tooltips) in the script editor and allowing to compile them. Also implements fully llTextBox() and the AGENT_AUTOPILOT flag with llGetAgentInfo().&lt;br /&gt;
* Allows to ignore (and not only decline) friendship and calling card offers.&lt;br /&gt;
* Allows to change how minimized floaters are stacked (top/bottom, bottom/top, left/right, right/left, fraction of the screen width to use for the stack).&lt;br /&gt;
* Shows avatar keys in profile (in &amp;quot;My notes&amp;quot; tab).&lt;br /&gt;
* Shows the avatar true height in the appearance floater.&lt;br /&gt;
* Renders properly objects worn on the illegal attachment points defined in some hacked third parties viewers.&lt;br /&gt;
* &#039;&#039;&#039;Provides Mesh rendering support ! NEW: Mesh upload support (Linux and MacOS-X releases only for now).&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Provides full support for the new Alpha and Tattoo wearables !&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Provides inventory item links support !&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Provides multiple attachments per point support !&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Provides display names support !&#039;&#039;&#039;&lt;br /&gt;
* Provides Avatar Physics support.&lt;br /&gt;
* Provides the new SL web search engine as an option.&lt;br /&gt;
* Provides access to web profiles.&lt;br /&gt;
* Provides support for setting the new parcel flags (avatar visibility, sounds playing restrictions).&lt;br /&gt;
* Allows to filter (Allow/Deny/BlackList/Whitelist) media and audio streams URLs to protect your privacy against IP snatchers.&lt;br /&gt;
* Many bugfixes by Henri Beauchamp, Nicholaz Beresford, Gigs Taggart, McCabe Maxsted and others.&lt;br /&gt;
* More minor features and improvements, to be discovered on the [http://sldev.free.fr/ website]...&lt;br /&gt;
* All switchable extra features easily configurable via a &amp;quot;Cool features&amp;quot; tab in the preferences floater.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://sldev.free.fr/ The Cool VL Viewer homepage]&lt;br /&gt;
* Message board: [http://sldev.free.fr/forum/ Cool VL Viewer forum]&lt;br /&gt;
* Linux viewer: see the [http://sldev.free.fr/index.php?page=download download section on the Cool VL Viewer homepage] for files and installation instructions.&lt;br /&gt;
* Windows viewer: see the [http://sldev.free.fr/index.php?page=download download section on the Cool VL Viewer homepage] for files and installation instructions.&lt;br /&gt;
* MacOS X viewer: see the [http://sldev.free.fr/forum/viewtopic.php?f=3&amp;amp;t=14 MacOS-X Announcement forum] for files and instructions.&lt;br /&gt;
* Source code: see the [http://sldev.free.fr/index.php?page=download download section on the Cool VL Viewer homepage].&lt;br /&gt;
* Screen shots: [http://sldev.free.fr/index.php?page=features Key features and screen shots]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Version: 1.26.2.11 Date: 24 December 2011&lt;br /&gt;
* Status: Active.&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Exodus Viewer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Exodus Viewer is a new flavour of the Second Life Viewer 3 series, packed with useful features to enhance the experience of competitive play in Second Life. Photographers, roleplayers, fighters and virtual sport stars will benefit from a viewer designed for maximum performance! Exodus Viewer also packs some cool visual effects that are perfect for photographers and machinema film makers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Major Features &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Based on Secondlife 3.2.6/3.2.7, keeping upto date with the latest features and fixes!&lt;br /&gt;
* Plenty of unique graphics features for photographers.&lt;br /&gt;
* Various built in HUDs, such as a range finder, and situational awareness HUD.&lt;br /&gt;
* A bunch of friend-foe identification features.&lt;br /&gt;
* Huge enhancements and changes made to the minimap.&lt;br /&gt;
* Allows you to adjust minimap colors, even in mass, by right-clicking a selection on the minimap.&lt;br /&gt;
* Various adjustments on how the minimap appears, to make it more useful for combat.&lt;br /&gt;
* Highly customizable settings related to minimap, default colors and even script windows.&lt;br /&gt;
* The usual, various chat commands seen in various TPV viewers.&lt;br /&gt;
* Options to automatically disable various rendering types such as clouds, water, foot shadows, etc.&lt;br /&gt;
* Request teleport feature, allowing your friends to request a teleport from you!&lt;br /&gt;
* And much more, go check out the feature page [http://exodusviewer.com/features.html here!]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Website: http://exodusviewer.com/&lt;br /&gt;
* Download page: http://exodusviewer.com/downloads.html&lt;br /&gt;
* Source code: http://hg.exodusviewer.com/viewer/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Version: 12.01.03.1&lt;br /&gt;
* Date: January 3, 2012&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Hippo OpenSim Viewer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The Hippo OpenSim Viewer is a modified Second Life viewer, targeted at OpenSim users. It allows building up to a height of 10,000 meters, scaling prims up to 256 x 256 x 256 meters and other exciting features. More specific OpenSim features are under development.&lt;br /&gt;
The last developer blog commented: Releasing Hippo OpenSim Viewer Version 0.6.3. This release adds a Windows uninstaller and small changes to comply to the Linden Lab Policy on Third-Party Viewers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Availability &#039;&#039;&#039;&lt;br /&gt;
Is currently available for Linux and Windows.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: http://mjm-labs.com/viewer/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Version: 0.6.3&lt;br /&gt;
* Platforms:&lt;br /&gt;
** Binary available for Windows and Linux&lt;br /&gt;
** Source available (unspecified)&lt;br /&gt;
* Date: April 24, 2010&lt;br /&gt;
* Status: Active + updated&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Meerkat ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Goals &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* To create a fully GPL viewer (no proprietary dependencies)&lt;br /&gt;
* To encourage a community of developers that will submit patches for prompt integration&lt;br /&gt;
* To have the freedom to make the sort of changes that Linden Lab has traditionally been unable to integrate (translation patches, refactoring, fixing intentionally crippled features, changes that touch many files)&lt;br /&gt;
* To retain compatibility with Linden Lab&#039;s grid and protocols, present and future&lt;br /&gt;
* To implement a loosely coupled cross-grid functionality that requires no central authentication authority.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Extra Features &#039;&#039;&#039;&lt;br /&gt;
* Log out and back in without quitting&lt;br /&gt;
* Loosely coupled intergrid teleport -- In Process&lt;br /&gt;
* Most of the other changes common to third party viewers&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;del&amp;gt;Website: [http://www.meerkatviewer.org/ Meerkat Viewer]&amp;lt;/del&amp;gt; (note: the Meerkat site is down)&lt;br /&gt;
* Direct download link: [http://code.google.com/p/meerkat-viewer/downloads/list Download versions of this viewer]&lt;br /&gt;
* Source code: svn checkout http://meerkat-viewer.googlecode.com/svn/trunk/ meerkat&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Version : 0.2.x&lt;br /&gt;
* Date : September 6, 2009&lt;br /&gt;
* Status : Discontinued, website offline. Source and binary downloads still available on google code (see above).&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Nicholaz Edition ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
These are Windows viewer based on SL builds with a focus on stability, usability and performance (see [http://www.blueflash.cc/users/nicholaz/EyeCandy/!!Installation.txt Installation.txt] for homebrew disclaimer). Mac and Linux variants are available through other open sourcers (links on the website).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Extra Features &#039;&#039;&#039;&lt;br /&gt;
* Improved stability.&lt;br /&gt;
* Lower memory footprint.&lt;br /&gt;
* GUI redesigns.&lt;br /&gt;
* Workarounds for common annoyances. (Group IM Filtering, &amp;quot;Release Key&amp;quot; button, etc.)&lt;br /&gt;
* see [http://nicholaz-beresford.blogspot.com/2008/05/version-overview.html this entry] for an overview of different versions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://nicholaz-beresford.blogspot.com/ Nicholaz Beresford on Blogspot]&lt;br /&gt;
* Direct download link: [http://www.blueflash.cc/users/nicholaz Download versions of this viewer]&lt;br /&gt;
* Source code: Look at the [http://www.blueflash.cc/users/nicholaz download site] for the source-xxx-zip files in the respective folders and see the readme.txt inside the archives&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Date: September 7, 2009&lt;br /&gt;
* Status: Discontinued&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Onrez Viewer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The Onrez viewer was made by the Onrez company in connection with a Second Life themed story on the high tech forensics based TV show &amp;quot;CSI: New York&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Extra Features &#039;&#039;&#039;&lt;br /&gt;
* A back and history button for teleports&lt;br /&gt;
* In-viewer web browsing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Comment &#039;&#039;&#039;&lt;br /&gt;
The source code for this viewer is closed source.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Status : Discontinued, download no longer available.&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Rainbow Viewer / Cool Viewer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Based on the offical SecondLife sourcecode licensed under GPL2, this speedy Metaverse Client can connect you to a huge variety of exciting Virtual Worlds! It incorporates a lot of improved, new, up- and backported features and fixes that make the fast and rock stable RV/CV the client of choice for many users.&lt;br /&gt;
&lt;br /&gt;
This viewer includes many patches and changes from a lot of different people and sources which I am very grateful to be able to use. Credits are given to everyone I know, in case I missed someone I sincerely apologize.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rainbow / Cool are TPV compliant.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Thanks to Henri Beauchamp who laid the foundation for this viewer with his Cool SL Viewer. Special thanks to Winter Ventura for the Cool Viewer logo and Jacek Antonelli and Peter Stindberg for the Rainbow Viewer logo :). And to all the others who helped and supported me, especially the people involved and behind Imprudence!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Some incomprehensive list of features &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A major improvement is an up-to-date OpenGL implementation that especially helps users plagued by ATI&#039;s Catalyst drivers but also leads to measurable improvements of overall graphics performance by 30...100% compared to the official viewer; depending on your system. Rainbow Viewer features the current user interface whereas Cool Viewer spots the leaner cleaner and more configurable legacy UI. It&#039;s all about choice :).&lt;br /&gt;
&lt;br /&gt;
* New 1.22.12.0 code baseline&lt;br /&gt;
* CV&#039;s legacy User interface with a clean, simple and userfriendly layout or Rainbow Viewers current official UI, you choose!&lt;br /&gt;
* Improved Graphics rendering, especially for ATI users (measured &amp;gt; 1/3 faster than the official viewer)&lt;br /&gt;
* Alpha and Tattoo Layer support from Second Life Viewer 2.x&lt;br /&gt;
* Updated tested list of Virtual World grids&lt;br /&gt;
* Marine Kelley&#039;s RestrainedLove (off per default)&lt;br /&gt;
* Full Adult Compliance&lt;br /&gt;
* Redesigned and &amp;quot;up-ported&amp;quot; search functionality, probably the best search in any viewer nowadays&lt;br /&gt;
* Enhanced Breast Physics&lt;br /&gt;
* Temporary texture and animation upload&lt;br /&gt;
* Better inventory search for content, description and creator&lt;br /&gt;
* Low lag radar and AV management tools&lt;br /&gt;
* Viewer skinning&lt;br /&gt;
* Object and Shape export/import, limited to creator&lt;br /&gt;
* Bulk permission editing&lt;br /&gt;
* Last owner display to track content theft&lt;br /&gt;
* &amp;quot;Worn&amp;quot; tab in inventory&lt;br /&gt;
* Double click to wear attachments&lt;br /&gt;
* Enhanced building tools&lt;br /&gt;
* Flexible Sculpties&lt;br /&gt;
* Large Prims (currently only for Opensim grids due to SL limitations)&lt;br /&gt;
* Maximized Network Bandwidth&lt;br /&gt;
* Flexible Grid selection at login for SL and all OpenSims&lt;br /&gt;
* Teleport History and speedy doubleclick teleport&lt;br /&gt;
* Avatar UUID in profiles&lt;br /&gt;
* Features tab in Preferences for easy switching of features&lt;br /&gt;
* Optimized latest OpenJPEG 1.3&lt;br /&gt;
* A large number of other goodies and stability fixes that improve your overall experience. Please check the [http://code.google.com/p/coolviewer/wiki/ReleaseNotes Release Notes] for details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://my.opera.com/boylane Rainbow Viewers for  Virtual Worlds]&lt;br /&gt;
* Direct download link: [http://coolviewer.googlecode.com Binary versions on Google Code]&lt;br /&gt;
* Source code: [http://github.com/boy Sources on Github]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Rainbow Viewer 1.22.12 R7&lt;br /&gt;
* Rainbow Viewer Cool Edition (Cool Viewer) 1.22.12 R13&lt;br /&gt;
* Rainbow Viewer Netbook Edition Version 1.2 (speedy pre-Windlight 1.19.0.5)&lt;br /&gt;
* Date: July 10, 2011&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== RealXtend Edition ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The realXtend viewer is a heavily modified version of the Linden Lab&#039;s Second Life client by a partnership of two Finnish companies, ADMINO technologies and LudoCraft.&lt;br /&gt;
&lt;br /&gt;
The successor to the realXtend viewer is Naali (release 0.4.0 on 21st January 2011, download from http://code.google.com/p/realxtend-naali/downloads/list).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Extra Features &#039;&#039;&#039;&lt;br /&gt;
    * Second life compatibility mode for use in SL and Opensim worlds&lt;br /&gt;
    * Teleports between realXtend and Secondlife&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: http://www.realxtend.org/&lt;br /&gt;
* Direct download link: http://www.realxtend.org/downloads.html&lt;br /&gt;
* Source code: http://sourceforge.net/projects/realxtendviewer/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Version: 0.4.2&lt;br /&gt;
* Date: September 24, 2009&lt;br /&gt;
* Status: Discontinued, replaced by Naali.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Combat Cubed ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This client is aimed mostly at the SL Military, but sports quite a few interesting improvements that make it worth taking a look at.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Originally known as Vertical Life.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Major Features &#039;&#039;&#039;&lt;br /&gt;
* Enhanced Look &amp;amp; Feel, for example flexible camera movement&lt;br /&gt;
* Prototype Script API, secure and parallel&lt;br /&gt;
* Slimmed down for FPS combat&lt;br /&gt;
* Identification, Friend versus Foe, mostly under the hood now but soon exposed&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Splash: http://bit.ly/cXOcDX&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Version: 1.0&lt;br /&gt;
* Date: June 16, 2010&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== TEKSTUFF Viewers ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The TEKSTUFF viewers are created to enable Youtube movies on TEKSTUFF media screens inside Second Life. The TEKSTUFF viewers are slight modifications of already available viewers like the regular SL 1.23.5 viewer and the Emerald 1634 viewer. Apart from that, the Emerald based viewer is fixed so it can be used in Opensim grids as well.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Web presence: http://www.tekstuff.net/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; TODO &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Make a Linux viewer&lt;br /&gt;
* Make a Mac OS viewer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Major Features &#039;&#039;&#039;&lt;br /&gt;
* All the functionality of the viewer it was based upon (Linden Lab 1.23.5 or Emerald 1634)&lt;br /&gt;
* Will allow you to view Youtube movies on TEKSTUFF media screens&lt;br /&gt;
* The Emerald based viewer can also be used in OpenSim grids (texture loading is fixed)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Version: 1.23.5 (Linden Lab &amp;amp; Emerald)&lt;br /&gt;
* Date: April 20, 2010&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Milk Release Client ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This client is aimed at development of all kinds, brought together by Project Neox. Focusing on advanced non-profit development of Second Life and various features which content creators would find suitable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; TODO &#039;&#039;&#039;&lt;br /&gt;
* XStreetSL shopping UI client-kiosk&lt;br /&gt;
* Compile Linux and Mac OS X builds&lt;br /&gt;
* Multiple link object texturing, via name&lt;br /&gt;
* Completion of 3-Dimensional Mini Map&lt;br /&gt;
* Region Statistics notifications before teleports&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Major Features &#039;&#039;&#039;&lt;br /&gt;
* Rendering options for individual avatars&lt;br /&gt;
* Secure Voice-chat usage&lt;br /&gt;
* Extensions in avatar editing&lt;br /&gt;
* Additional Attachment points&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Version: 1.23.5&lt;br /&gt;
* Date: January 20, 2010&lt;br /&gt;
* Status: Discontinued and will not be available for download.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
==Text-Only Viewers==&lt;br /&gt;
&lt;br /&gt;
===AjaxLife ===&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
Browser based Second Life client, created by Katharine Berry. The only web-browser client which made it a lifeline for residents who could not use a full graphical viewer, or who could not download other text-only clients because of limitations such as corporate firewalls.&lt;br /&gt;
&lt;br /&gt;
(No longer working)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: http://ajaxlife.net/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Version: 0.6.1.2&lt;br /&gt;
* Date: May 21, 2010&lt;br /&gt;
* Platform: Platform-Independant&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== omvviewer-light ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; A Text client for the 3D Metaverse &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
omvviewer-light is a text client for the 3D Metaverse including SecondLife, written from Scratch (but using the libomv library for protocol handling). It&#039;s GUI is created in Gtk# which is cross-platform making this the only current Text client that is still active and cross platform. Tested on Linux (32/64 bit) and Windows (not 64-bit windows).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Features &#039;&#039;&#039;&lt;br /&gt;
To many to list here in detail please see the project page below but in summary, Full inventory control, Full Chat/IM/Group IM&#039;s. Object search and interaction. Realtime local maps. Parcel displays. Read and Edit NoteCards and Scripts. View profiles. Friends Lists etc .....&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://omvviewer-light.byteme.org.uk/ Project page]&lt;br /&gt;
* Source code: [http://omvviewer-light.byteme.org.uk/source.shtml Source details]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Date: August 25, 2009&lt;br /&gt;
* Version: 0.48.0.6&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Whisper (SlXSLChat) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; A light-weight yet feature rich text-only Second Life client &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
Whisper is a text-only Second Life client that comes in two parts. The client is written in Java (so it can run on many platforms). The client connects to a &amp;quot;transport&amp;quot;, which is written in C# and uses LibOpenMetaVerse. The idea behind this architecture is that if you don&#039;t like the client, you can write your own and not have to worry about implementing the Second Life protocol yourself. The entire project is open source and published under the GPLv3 licence.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Features &#039;&#039;&#039;&lt;br /&gt;
* Public chat&lt;br /&gt;
* Instant messaging&lt;br /&gt;
* Group chat&lt;br /&gt;
* Search/join/leave groups&lt;br /&gt;
* Search for avatars&lt;br /&gt;
* Image retrieval&lt;br /&gt;
* Profile retrieval&lt;br /&gt;
* Notifications / popups as you would get in Second Life (e.g. group notices, balance changes, inventory offers)&lt;br /&gt;
* Teleportation (home, to area within current sim, to nearby avatar)&lt;br /&gt;
* Nearby avatar tracking on map of Sim&lt;br /&gt;
* Autopilot navigation to nearby avatars&lt;br /&gt;
* URL highlighting&lt;br /&gt;
* Encrypted traffic between client and transport&lt;br /&gt;
* Transport can be run anywhere, the client connects via TCP/IP&lt;br /&gt;
* Client only sends MD5 hashed password to transport&lt;br /&gt;
* On April 20, 2010, SlXSLChat has rebranded to “Whisper”.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://whisper.slx.cc/ Whisper]&lt;br /&gt;
* SourceForce Project Page: [https://sourceforge.net/projects/slxslchat/ Project Page]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Date: May 9, 2010&lt;br /&gt;
* Version: 1.3&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== SLeek ===&lt;br /&gt;
First text only viewer ever, mentioned for completeness, not actively maintained anymore. MetaBolt is based on SLeek.&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== SLiteChat ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; A Lite IM/Chat Text-only Client for Second Life &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
SLiteChat (pronounced &amp;quot;slight-chat&amp;quot;) is a completely open source text-only IM/chat client for use with Second Life. Use it to talk to your friends without having to load up all of those heavy graphic goodies. Useful for those at work times.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Features &#039;&#039;&#039;&lt;br /&gt;
* Communicate in-world with people on your friends list. Full adding/removing and search for Residents supported.&lt;br /&gt;
* Group chat is supported (however at this writing you cannot leave a group or search for to join).&lt;br /&gt;
* Local chat and IM history is supported.&lt;br /&gt;
* Can log into other grids.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://www.slitechat.org/ Project page]&lt;br /&gt;
* Source code: [http://www.slitechat.org/download/ Source details]&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== MetaPay for iPhone and iPod Touch ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Send L$ with a simple to use and free iPhone App. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
MetaPay is a simple and fun way to send Linden Dollars from your iPhone and iPod touch for FREE! Out with friends and want to pay your part of the tab but have no cash? Use MetaPay to send L$ to your friends in Second Life® instead. Or use it to send L$ for any in-world use without firing up the full Second Life® client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Free in the AppStore: [http://bit.ly/metapay Open in iTunes]&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;/div&gt;</summary>
		<author><name>Ayamo Nozaki</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Downloads&amp;diff=1160398</id>
		<title>Downloads</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Downloads&amp;diff=1160398"/>
		<updated>2012-01-02T17:19:22Z</updated>

		<summary type="html">&lt;p&gt;Ayamo Nozaki: /* Other Third Party Viewers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Help|Viewer=*}}{{RightToc}}&lt;br /&gt;
&lt;br /&gt;
= Linden Lab Viewers =&lt;br /&gt;
&lt;br /&gt;
The following viewers are available on the official &#039;&#039;&#039;[https://secondlife.com/support/downloads/index.php Downloads]&#039;&#039;&#039; page:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;Second Life Viewer&#039;&#039;&#039; (a.k.a. the official Viewer, regular Viewer etc.)&lt;br /&gt;
; &#039;&#039;&#039;Second Life Beta Viewer&#039;&#039;&#039;&lt;br /&gt;
: Available approximately weekly, possibly slightly less stable than the Second Life Viewer, but with the  features and fixes that will be in the next Second Life Viewer.&lt;br /&gt;
&lt;br /&gt;
== Development Releases ==&lt;br /&gt;
&lt;br /&gt;
These viewers are released from time to time by viewer development teams within Linden Lab; they contain features and fixes that are not yet even in the Beta version:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;[[Linden Lab Official:Alternate Viewers#Second Life Project Viewers|Project Viewers]]&#039;&#039;&#039;&lt;br /&gt;
: Provide an early look at new features under development before those are ready to get into the main development stream.&lt;br /&gt;
; &#039;&#039;&#039;[[Downloading test builds|Development Viewer]]&#039;&#039;&#039;&lt;br /&gt;
: Features and fixes that are still warm from the creative fires of development.&lt;br /&gt;
&lt;br /&gt;
== Old Releases ==&lt;br /&gt;
The [[Release Notes]] pages for many past versions contain links to the corresponding downloads.&lt;br /&gt;
{{KBwarning|width=600px|Past Viewer versions might have &#039;&#039;&#039;known security issues&#039;&#039;&#039;, can be partially or fully &#039;&#039;&#039;incompatible to current server versions&#039;&#039;&#039; and obviously will be &#039;&#039;&#039;lacking newer features&#039;&#039;&#039;. Use them at your own risk.}}&lt;br /&gt;
&lt;br /&gt;
{{anchor|non-linden}} &amp;lt;!-- target for [[Alternate viewers]] redirect --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Third Party Directory Viewers =&lt;br /&gt;
&lt;br /&gt;
{{:Third Party Viewer Directory}}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Other Third Party Viewers =&lt;br /&gt;
&lt;br /&gt;
{{KBcaution|The following viewers have either not applied for or have been denied listings in the Third Party Viewer Directory.}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Whether or not a viewer developer chooses to self-certify by applying for listing in the directory, all viewers connecting to Second Life must comply with the [https://secondlife.com/corporate/tpv.php Policy on Third-Party Viewers]; listing in the directory is not a requirement.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note to authors: If you make a viewer available make sure to include platform, version numbers and dates.&#039;&#039;&lt;br /&gt;
{{Anchor|Viewers}}&lt;br /&gt;
{|class=&amp;quot;wikitable sortable collapsible&amp;quot; {{prettytable}}&lt;br /&gt;
|+ &#039;&#039;click the boxed arrows to sort on columns&#039;&#039;&lt;br /&gt;
|- {{KBtablehead}}&lt;br /&gt;
! Name !! {{HoverText|Type|Graphic/Text}} !! {{HoverText|First release|Specified in YYYY-MM-DD}} !! {{HoverText|Latest Release|Specified in YYYY-MM-DD}} !! {{HoverText|Status|Active/Inactive/Discontinued}} !! {{HoverText|W|For Windows}} &amp;lt;ref name=&amp;quot;available&amp;quot;&amp;gt;&amp;quot;X&amp;quot;: Available with binary distribution&amp;lt;/ref&amp;gt;!! {{HoverText|M|For Macintosh}} &amp;lt;ref name=&amp;quot;available&amp;quot;/&amp;gt; !! {{HoverText|L|For Linux(Ubuntu, Debian or so)}} &amp;lt;ref name=&amp;quot;available&amp;quot;/&amp;gt; !! {{HoverText|i|For iPhone/iPod Touch}} &amp;lt;ref name=&amp;quot;available&amp;quot;/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[#AjaxLife]] || Text || || 2008-09-15 || Inactive ||X||X||X||X&lt;br /&gt;
|-&lt;br /&gt;
| [[#Cool VL Viewer]] || Graphic || 2007-11-16 || 2011-12-24 || Active ||X||X||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#Combat Cubed]] || Graphic || || 2010-06-16 || Active ||X|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#Exodus Viewer]] || Graphic || 2011-09-28 || 2012-01-02 || Active ||X||X||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#Hippo OpenSim Viewer]] || Graphic || || 2010-04-24 || Active ||X|| ||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#MetaPay for iPhone and iPod Touch]] || Text || ||  || || || || ||X&lt;br /&gt;
|-&lt;br /&gt;
| [[#Milk Release Client]] || Graphic || || 2010-01-20 || Inactive || ||X||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#omvviewer-light]] || Text || || 2009-08-25 || Active ||X|| ||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#Rainbow Viewer / Cool Viewer]] || Graphic || || 2011-07-10 || Active ||X||X||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#RealXtend Edition]] || Graphic || || 2008-07-28 || Active ||X|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#SLiteChat]] || Text || || || Active ||X||X||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#TEKSTUFF Viewers]] || Graphic || || 2010-04-20 || Active ||X|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#Whisper (SlXSLChat)]] || Text || || 2010-05-09 || Active ||X||X||X||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Graphical Viewers ==&lt;br /&gt;
&lt;br /&gt;
=== Cool VL Viewer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This viewer was created and is maintained by {{User|Henri Beauchamp}} (This viewer was formerly known as the &amp;quot;Cool SL Viewer&amp;quot; and its first public release was v1.18.4.3, released on 2007-11-16). It combines elements of several of the other viewers, as well as extra features, bug fixes and extra patches, all very carefully tested.&lt;br /&gt;
&lt;br /&gt;
It puts emphasis on high UI coherency from one version to the other (meaning no bad surprise for &amp;quot;old timers&amp;quot;) while staying in sync with Linden Lab&#039;s official viewer features, high stability and reliability, and a high reactivity to new patches and bug fixes provided by the Open Source community.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The Cool VL Viewer is TPV policy compliant.&#039;&#039;&#039; Please see [http://sldev.free.fr/CoolVLViewerReadme.html its TPV TOS].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Extra Features &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Reverses many of the unpopular interface changes, restoring separate friends and groups floaters and reinstating the packet loss and bandwidth indicators, the old toolbar and buttons layouts, the old/normal commands layout in the pie menus, the &amp;quot;All(old)&amp;quot; search tab, the old style (name-sortable) &amp;quot;Groups&amp;quot; search tab, the &amp;quot;Fly&amp;quot; button in the movement controls floater, and &#039;&#039;&#039;optionally&#039;&#039;&#039; reinstating the old, more visible, status bar icons and/or tracking dots in the mini-map, and the old chat history floater (without chat input line). Also fixes some UI regressions (missing buttons in some floaters, or visited landmarks tracking in inventory for example).&lt;br /&gt;
* Implements the &amp;quot;RestrainedLove&amp;quot; API (formerly known as &amp;quot;RestrainedLife&amp;quot;), based on Marine Kelley&#039;s reference patch (switchable and disabled by default).&lt;br /&gt;
* Allows to configure the date and time formats to match your locale or personal preferences (including with optional seconds for chat and IM timestamps).&lt;br /&gt;
* Allows to wear/remove attachments and clothing items on double-click in inventory.&lt;br /&gt;
* Allows to optionally prevent notifications to show and be logged in the main chat.&lt;br /&gt;
* Allows to disable typing sounds.&lt;br /&gt;
* MUD/MUSH/MUCK/MUX style &amp;quot;poses&amp;quot; (i.e. you can type &amp;quot;:&amp;quot; instead of &amp;quot;/me &amp;quot; to emote), and OOC double parenthesis auto-close (i.e. you can type: &amp;quot;((phone, BRB&amp;quot; and it will show as &amp;quot;((phone, BRB))&amp;quot;).&lt;br /&gt;
* Allows to hide the &amp;quot;Master volume&amp;quot; when not needed in the panel overlay.&lt;br /&gt;
* Allows to build large prims (up to 256m in any or all dimensions) on OpenSim (not on SL, because of server-side limitations).&lt;br /&gt;
* Improved friends list floater (with info about what your friends allow you to see: tehri online status and/or their position on the map).&lt;br /&gt;
* Improved build tools floater (smaller increments in several parameters, extra &amp;quot;slice&amp;quot; parameter for some prims, transparency up to 100%, check box toggle for drag distance limit, adjustable number of decimals in Object tab for the position/size/rotation parameters, &amp;quot;Align&amp;quot; tool). Also allows to set the &amp;quot;invisible&amp;quot; texture from the texture picker (for invisi-prims).&lt;br /&gt;
* Improved texture preview floater (with aspect ratio combo).&lt;br /&gt;
* Improved notecard floater (with Edit menu and Search/replace feature).&lt;br /&gt;
* Improved mini-map with panning, larger zooming range, specific symbol for avatars above 1024m (work around for a limitation of current server and viewer versions), etc...&lt;br /&gt;
* Improved beacons: can filter beacons based on owner (you, others or anyone), can highlight attachments, can dissociate non-object sound sources, can keep beacons &amp;quot;always on&amp;quot; even when the beacons floater is closed.&lt;br /&gt;
* Allows to export and import objects you own and created as XML files (for backup and restore purpose, or to transfer objects from one grid to another).&lt;br /&gt;
* Allows to connect to all existing grids (and not only LL&#039;s) from the login screen.&lt;br /&gt;
* Allows network bandwidth up to 10000Kbps.&lt;br /&gt;
* Allows to save/compile scripts present in the inventory as Mono scripts.&lt;br /&gt;
* Allows to teleport to double-clicked locations on screen.&lt;br /&gt;
* Allows to sit anywhere &amp;quot;on the ground&amp;quot;.&lt;br /&gt;
* Allows to adjust the Z offset (height above the floor) for playing animations.&lt;br /&gt;
* Allows to cache the inventory in the background after login (for faster inventory operations).&lt;br /&gt;
* Allows to preview animations on your avatar prior to uploading them.&lt;br /&gt;
* Implements a group titles floater.&lt;br /&gt;
* Implements a radar floater.&lt;br /&gt;
* Implements a teleports history floater.&lt;br /&gt;
* Implements a &amp;quot;Worn&amp;quot; tab in the inventory floater, and a search/filter by item name, description or creator.&lt;br /&gt;
* Implements &amp;quot;speed rezzing&amp;quot; on login and TPs.&lt;br /&gt;
* Implements an object &amp;quot;area search&amp;quot; floater.&lt;br /&gt;
* Implements the newest LSL functions, highlighting them properly (with tooltips) in the script editor and allowing to compile them. Also implements fully llTextBox() and the AGENT_AUTOPILOT flag with llGetAgentInfo().&lt;br /&gt;
* Allows to ignore (and not only decline) friendship and calling card offers.&lt;br /&gt;
* Allows to change how minimized floaters are stacked (top/bottom, bottom/top, left/right, right/left, fraction of the screen width to use for the stack).&lt;br /&gt;
* Shows avatar keys in profile (in &amp;quot;My notes&amp;quot; tab).&lt;br /&gt;
* Shows the avatar true height in the appearance floater.&lt;br /&gt;
* Renders properly objects worn on the illegal attachment points defined in some hacked third parties viewers.&lt;br /&gt;
* &#039;&#039;&#039;Provides Mesh rendering support ! NEW: Mesh upload support (Linux and MacOS-X releases only for now).&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Provides full support for the new Alpha and Tattoo wearables !&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Provides inventory item links support !&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Provides multiple attachments per point support !&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Provides display names support !&#039;&#039;&#039;&lt;br /&gt;
* Provides Avatar Physics support.&lt;br /&gt;
* Provides the new SL web search engine as an option.&lt;br /&gt;
* Provides access to web profiles.&lt;br /&gt;
* Provides support for setting the new parcel flags (avatar visibility, sounds playing restrictions).&lt;br /&gt;
* Allows to filter (Allow/Deny/BlackList/Whitelist) media and audio streams URLs to protect your privacy against IP snatchers.&lt;br /&gt;
* Many bugfixes by Henri Beauchamp, Nicholaz Beresford, Gigs Taggart, McCabe Maxsted and others.&lt;br /&gt;
* More minor features and improvements, to be discovered on the [http://sldev.free.fr/ website]...&lt;br /&gt;
* All switchable extra features easily configurable via a &amp;quot;Cool features&amp;quot; tab in the preferences floater.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://sldev.free.fr/ The Cool VL Viewer homepage]&lt;br /&gt;
* Message board: [http://sldev.free.fr/forum/ Cool VL Viewer forum]&lt;br /&gt;
* Linux viewer: see the [http://sldev.free.fr/index.php?page=download download section on the Cool VL Viewer homepage] for files and installation instructions.&lt;br /&gt;
* Windows viewer: see the [http://sldev.free.fr/index.php?page=download download section on the Cool VL Viewer homepage] for files and installation instructions.&lt;br /&gt;
* MacOS X viewer: see the [http://sldev.free.fr/forum/viewtopic.php?f=3&amp;amp;t=14 MacOS-X Announcement forum] for files and instructions.&lt;br /&gt;
* Source code: see the [http://sldev.free.fr/index.php?page=download download section on the Cool VL Viewer homepage].&lt;br /&gt;
* Screen shots: [http://sldev.free.fr/index.php?page=features Key features and screen shots]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Version: 1.26.2.11 Date: 24 December 2011&lt;br /&gt;
* Status: Active.&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Exodus Viewer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Exodus Viewer is a new flavour of the Second Life Viewer 3 series, packed with useful features to enhance the experience of competitive play in Second Life. Photographers, roleplayers, fighters and virtual sport stars will benefit from a viewer designed for maximum performance! Exodus Viewer also packs some cool visual effects that are perfect for photographers and machinema film makers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Major Features &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Based on Secondlife 3.2.6/3.2.7, keeping upto date with the latest features and fixes!&lt;br /&gt;
* Plenty of unique graphics features for photographers.&lt;br /&gt;
* Various built in HUDs, such as a range finder, and situational awareness HUD.&lt;br /&gt;
* A bunch of friend-foe identification features.&lt;br /&gt;
* Huge enhancements and changes made to the minimap.&lt;br /&gt;
* Allows you to adjust minimap colors, even in mass, by right-clicking a selection on the minimap.&lt;br /&gt;
* Various adjustments on how the minimap appears, to make it more useful for combat.&lt;br /&gt;
* Highly customizable settings related to minimap, default colors and even script windows.&lt;br /&gt;
* The usual, various chat commands seen in various TPV viewers.&lt;br /&gt;
* Options to automatically disable various rendering types such as clouds, water, foot shadows, etc.&lt;br /&gt;
* Request teleport feature, allowing your friends to request a teleport from you!&lt;br /&gt;
* And much more, go check out the feature page [http://exodusviewer.com/features.html here!]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Website: http://exodusviewer.com/&lt;br /&gt;
* Download page: http://exodusviewer.com/downloads.html&lt;br /&gt;
* Source code: http://hg.exodusviewer.com/viewer/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Version: 12.01.02.1&lt;br /&gt;
* Date: January 2, 2012&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Hippo OpenSim Viewer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The Hippo OpenSim Viewer is a modified Second Life viewer, targeted at OpenSim users. It allows building up to a height of 10,000 meters, scaling prims up to 256 x 256 x 256 meters and other exciting features. More specific OpenSim features are under development.&lt;br /&gt;
The last developer blog commented: Releasing Hippo OpenSim Viewer Version 0.6.3. This release adds a Windows uninstaller and small changes to comply to the Linden Lab Policy on Third-Party Viewers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Availability &#039;&#039;&#039;&lt;br /&gt;
Is currently available for Linux and Windows.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: http://mjm-labs.com/viewer/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Version: 0.6.3&lt;br /&gt;
* Platforms:&lt;br /&gt;
** Binary available for Windows and Linux&lt;br /&gt;
** Source available (unspecified)&lt;br /&gt;
* Date: April 24, 2010&lt;br /&gt;
* Status: Active + updated&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Meerkat ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Goals &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* To create a fully GPL viewer (no proprietary dependencies)&lt;br /&gt;
* To encourage a community of developers that will submit patches for prompt integration&lt;br /&gt;
* To have the freedom to make the sort of changes that Linden Lab has traditionally been unable to integrate (translation patches, refactoring, fixing intentionally crippled features, changes that touch many files)&lt;br /&gt;
* To retain compatibility with Linden Lab&#039;s grid and protocols, present and future&lt;br /&gt;
* To implement a loosely coupled cross-grid functionality that requires no central authentication authority.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Extra Features &#039;&#039;&#039;&lt;br /&gt;
* Log out and back in without quitting&lt;br /&gt;
* Loosely coupled intergrid teleport -- In Process&lt;br /&gt;
* Most of the other changes common to third party viewers&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;del&amp;gt;Website: [http://www.meerkatviewer.org/ Meerkat Viewer]&amp;lt;/del&amp;gt; (note: the Meerkat site is down)&lt;br /&gt;
* Direct download link: [http://code.google.com/p/meerkat-viewer/downloads/list Download versions of this viewer]&lt;br /&gt;
* Source code: svn checkout http://meerkat-viewer.googlecode.com/svn/trunk/ meerkat&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Version : 0.2.x&lt;br /&gt;
* Date : September 6, 2009&lt;br /&gt;
* Status : Discontinued, website offline. Source and binary downloads still available on google code (see above).&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Nicholaz Edition ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
These are Windows viewer based on SL builds with a focus on stability, usability and performance (see [http://www.blueflash.cc/users/nicholaz/EyeCandy/!!Installation.txt Installation.txt] for homebrew disclaimer). Mac and Linux variants are available through other open sourcers (links on the website).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Extra Features &#039;&#039;&#039;&lt;br /&gt;
* Improved stability.&lt;br /&gt;
* Lower memory footprint.&lt;br /&gt;
* GUI redesigns.&lt;br /&gt;
* Workarounds for common annoyances. (Group IM Filtering, &amp;quot;Release Key&amp;quot; button, etc.)&lt;br /&gt;
* see [http://nicholaz-beresford.blogspot.com/2008/05/version-overview.html this entry] for an overview of different versions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://nicholaz-beresford.blogspot.com/ Nicholaz Beresford on Blogspot]&lt;br /&gt;
* Direct download link: [http://www.blueflash.cc/users/nicholaz Download versions of this viewer]&lt;br /&gt;
* Source code: Look at the [http://www.blueflash.cc/users/nicholaz download site] for the source-xxx-zip files in the respective folders and see the readme.txt inside the archives&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Date: September 7, 2009&lt;br /&gt;
* Status: Discontinued&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Onrez Viewer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The Onrez viewer was made by the Onrez company in connection with a Second Life themed story on the high tech forensics based TV show &amp;quot;CSI: New York&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Extra Features &#039;&#039;&#039;&lt;br /&gt;
* A back and history button for teleports&lt;br /&gt;
* In-viewer web browsing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Comment &#039;&#039;&#039;&lt;br /&gt;
The source code for this viewer is closed source.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Status : Discontinued, download no longer available.&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Rainbow Viewer / Cool Viewer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Based on the offical SecondLife sourcecode licensed under GPL2, this speedy Metaverse Client can connect you to a huge variety of exciting Virtual Worlds! It incorporates a lot of improved, new, up- and backported features and fixes that make the fast and rock stable RV/CV the client of choice for many users.&lt;br /&gt;
&lt;br /&gt;
This viewer includes many patches and changes from a lot of different people and sources which I am very grateful to be able to use. Credits are given to everyone I know, in case I missed someone I sincerely apologize.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rainbow / Cool are TPV compliant.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Thanks to Henri Beauchamp who laid the foundation for this viewer with his Cool SL Viewer. Special thanks to Winter Ventura for the Cool Viewer logo and Jacek Antonelli and Peter Stindberg for the Rainbow Viewer logo :). And to all the others who helped and supported me, especially the people involved and behind Imprudence!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Some incomprehensive list of features &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A major improvement is an up-to-date OpenGL implementation that especially helps users plagued by ATI&#039;s Catalyst drivers but also leads to measurable improvements of overall graphics performance by 30...100% compared to the official viewer; depending on your system. Rainbow Viewer features the current user interface whereas Cool Viewer spots the leaner cleaner and more configurable legacy UI. It&#039;s all about choice :).&lt;br /&gt;
&lt;br /&gt;
* New 1.22.12.0 code baseline&lt;br /&gt;
* CV&#039;s legacy User interface with a clean, simple and userfriendly layout or Rainbow Viewers current official UI, you choose!&lt;br /&gt;
* Improved Graphics rendering, especially for ATI users (measured &amp;gt; 1/3 faster than the official viewer)&lt;br /&gt;
* Alpha and Tattoo Layer support from Second Life Viewer 2.x&lt;br /&gt;
* Updated tested list of Virtual World grids&lt;br /&gt;
* Marine Kelley&#039;s RestrainedLove (off per default)&lt;br /&gt;
* Full Adult Compliance&lt;br /&gt;
* Redesigned and &amp;quot;up-ported&amp;quot; search functionality, probably the best search in any viewer nowadays&lt;br /&gt;
* Enhanced Breast Physics&lt;br /&gt;
* Temporary texture and animation upload&lt;br /&gt;
* Better inventory search for content, description and creator&lt;br /&gt;
* Low lag radar and AV management tools&lt;br /&gt;
* Viewer skinning&lt;br /&gt;
* Object and Shape export/import, limited to creator&lt;br /&gt;
* Bulk permission editing&lt;br /&gt;
* Last owner display to track content theft&lt;br /&gt;
* &amp;quot;Worn&amp;quot; tab in inventory&lt;br /&gt;
* Double click to wear attachments&lt;br /&gt;
* Enhanced building tools&lt;br /&gt;
* Flexible Sculpties&lt;br /&gt;
* Large Prims (currently only for Opensim grids due to SL limitations)&lt;br /&gt;
* Maximized Network Bandwidth&lt;br /&gt;
* Flexible Grid selection at login for SL and all OpenSims&lt;br /&gt;
* Teleport History and speedy doubleclick teleport&lt;br /&gt;
* Avatar UUID in profiles&lt;br /&gt;
* Features tab in Preferences for easy switching of features&lt;br /&gt;
* Optimized latest OpenJPEG 1.3&lt;br /&gt;
* A large number of other goodies and stability fixes that improve your overall experience. Please check the [http://code.google.com/p/coolviewer/wiki/ReleaseNotes Release Notes] for details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://my.opera.com/boylane Rainbow Viewers for  Virtual Worlds]&lt;br /&gt;
* Direct download link: [http://coolviewer.googlecode.com Binary versions on Google Code]&lt;br /&gt;
* Source code: [http://github.com/boy Sources on Github]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Rainbow Viewer 1.22.12 R7&lt;br /&gt;
* Rainbow Viewer Cool Edition (Cool Viewer) 1.22.12 R13&lt;br /&gt;
* Rainbow Viewer Netbook Edition Version 1.2 (speedy pre-Windlight 1.19.0.5)&lt;br /&gt;
* Date: July 10, 2011&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== RealXtend Edition ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The realXtend viewer is a heavily modified version of the Linden Lab&#039;s Second Life client by a partnership of two Finnish companies, ADMINO technologies and LudoCraft.&lt;br /&gt;
&lt;br /&gt;
The successor to the realXtend viewer is Naali (release 0.4.0 on 21st January 2011, download from http://code.google.com/p/realxtend-naali/downloads/list).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Extra Features &#039;&#039;&#039;&lt;br /&gt;
    * Second life compatibility mode for use in SL and Opensim worlds&lt;br /&gt;
    * Teleports between realXtend and Secondlife&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: http://www.realxtend.org/&lt;br /&gt;
* Direct download link: http://www.realxtend.org/downloads.html&lt;br /&gt;
* Source code: http://sourceforge.net/projects/realxtendviewer/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Version: 0.4.2&lt;br /&gt;
* Date: September 24, 2009&lt;br /&gt;
* Status: Discontinued, replaced by Naali.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Combat Cubed ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This client is aimed mostly at the SL Military, but sports quite a few interesting improvements that make it worth taking a look at.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Originally known as Vertical Life.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Major Features &#039;&#039;&#039;&lt;br /&gt;
* Enhanced Look &amp;amp; Feel, for example flexible camera movement&lt;br /&gt;
* Prototype Script API, secure and parallel&lt;br /&gt;
* Slimmed down for FPS combat&lt;br /&gt;
* Identification, Friend versus Foe, mostly under the hood now but soon exposed&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Splash: http://bit.ly/cXOcDX&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Version: 1.0&lt;br /&gt;
* Date: June 16, 2010&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== TEKSTUFF Viewers ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The TEKSTUFF viewers are created to enable Youtube movies on TEKSTUFF media screens inside Second Life. The TEKSTUFF viewers are slight modifications of already available viewers like the regular SL 1.23.5 viewer and the Emerald 1634 viewer. Apart from that, the Emerald based viewer is fixed so it can be used in Opensim grids as well.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Web presence: http://www.tekstuff.net/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; TODO &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Make a Linux viewer&lt;br /&gt;
* Make a Mac OS viewer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Major Features &#039;&#039;&#039;&lt;br /&gt;
* All the functionality of the viewer it was based upon (Linden Lab 1.23.5 or Emerald 1634)&lt;br /&gt;
* Will allow you to view Youtube movies on TEKSTUFF media screens&lt;br /&gt;
* The Emerald based viewer can also be used in OpenSim grids (texture loading is fixed)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Version: 1.23.5 (Linden Lab &amp;amp; Emerald)&lt;br /&gt;
* Date: April 20, 2010&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Milk Release Client ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This client is aimed at development of all kinds, brought together by Project Neox. Focusing on advanced non-profit development of Second Life and various features which content creators would find suitable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; TODO &#039;&#039;&#039;&lt;br /&gt;
* XStreetSL shopping UI client-kiosk&lt;br /&gt;
* Compile Linux and Mac OS X builds&lt;br /&gt;
* Multiple link object texturing, via name&lt;br /&gt;
* Completion of 3-Dimensional Mini Map&lt;br /&gt;
* Region Statistics notifications before teleports&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Major Features &#039;&#039;&#039;&lt;br /&gt;
* Rendering options for individual avatars&lt;br /&gt;
* Secure Voice-chat usage&lt;br /&gt;
* Extensions in avatar editing&lt;br /&gt;
* Additional Attachment points&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Version: 1.23.5&lt;br /&gt;
* Date: January 20, 2010&lt;br /&gt;
* Status: Discontinued and will not be available for download.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
==Text-Only Viewers==&lt;br /&gt;
&lt;br /&gt;
===AjaxLife ===&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
Browser based Second Life client, created by Katharine Berry. The only web-browser client which made it a lifeline for residents who could not use a full graphical viewer, or who could not download other text-only clients because of limitations such as corporate firewalls.&lt;br /&gt;
&lt;br /&gt;
(No longer working)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: http://ajaxlife.net/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Version: 0.6.1.2&lt;br /&gt;
* Date: May 21, 2010&lt;br /&gt;
* Platform: Platform-Independant&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== omvviewer-light ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; A Text client for the 3D Metaverse &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
omvviewer-light is a text client for the 3D Metaverse including SecondLife, written from Scratch (but using the libomv library for protocol handling). It&#039;s GUI is created in Gtk# which is cross-platform making this the only current Text client that is still active and cross platform. Tested on Linux (32/64 bit) and Windows (not 64-bit windows).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Features &#039;&#039;&#039;&lt;br /&gt;
To many to list here in detail please see the project page below but in summary, Full inventory control, Full Chat/IM/Group IM&#039;s. Object search and interaction. Realtime local maps. Parcel displays. Read and Edit NoteCards and Scripts. View profiles. Friends Lists etc .....&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://omvviewer-light.byteme.org.uk/ Project page]&lt;br /&gt;
* Source code: [http://omvviewer-light.byteme.org.uk/source.shtml Source details]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Date: August 25, 2009&lt;br /&gt;
* Version: 0.48.0.6&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Whisper (SlXSLChat) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; A light-weight yet feature rich text-only Second Life client &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
Whisper is a text-only Second Life client that comes in two parts. The client is written in Java (so it can run on many platforms). The client connects to a &amp;quot;transport&amp;quot;, which is written in C# and uses LibOpenMetaVerse. The idea behind this architecture is that if you don&#039;t like the client, you can write your own and not have to worry about implementing the Second Life protocol yourself. The entire project is open source and published under the GPLv3 licence.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Features &#039;&#039;&#039;&lt;br /&gt;
* Public chat&lt;br /&gt;
* Instant messaging&lt;br /&gt;
* Group chat&lt;br /&gt;
* Search/join/leave groups&lt;br /&gt;
* Search for avatars&lt;br /&gt;
* Image retrieval&lt;br /&gt;
* Profile retrieval&lt;br /&gt;
* Notifications / popups as you would get in Second Life (e.g. group notices, balance changes, inventory offers)&lt;br /&gt;
* Teleportation (home, to area within current sim, to nearby avatar)&lt;br /&gt;
* Nearby avatar tracking on map of Sim&lt;br /&gt;
* Autopilot navigation to nearby avatars&lt;br /&gt;
* URL highlighting&lt;br /&gt;
* Encrypted traffic between client and transport&lt;br /&gt;
* Transport can be run anywhere, the client connects via TCP/IP&lt;br /&gt;
* Client only sends MD5 hashed password to transport&lt;br /&gt;
* On April 20, 2010, SlXSLChat has rebranded to “Whisper”.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://whisper.slx.cc/ Whisper]&lt;br /&gt;
* SourceForce Project Page: [https://sourceforge.net/projects/slxslchat/ Project Page]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Date: May 9, 2010&lt;br /&gt;
* Version: 1.3&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== SLeek ===&lt;br /&gt;
First text only viewer ever, mentioned for completeness, not actively maintained anymore. MetaBolt is based on SLeek.&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== SLiteChat ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; A Lite IM/Chat Text-only Client for Second Life &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
SLiteChat (pronounced &amp;quot;slight-chat&amp;quot;) is a completely open source text-only IM/chat client for use with Second Life. Use it to talk to your friends without having to load up all of those heavy graphic goodies. Useful for those at work times.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Features &#039;&#039;&#039;&lt;br /&gt;
* Communicate in-world with people on your friends list. Full adding/removing and search for Residents supported.&lt;br /&gt;
* Group chat is supported (however at this writing you cannot leave a group or search for to join).&lt;br /&gt;
* Local chat and IM history is supported.&lt;br /&gt;
* Can log into other grids.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://www.slitechat.org/ Project page]&lt;br /&gt;
* Source code: [http://www.slitechat.org/download/ Source details]&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== MetaPay for iPhone and iPod Touch ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Send L$ with a simple to use and free iPhone App. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
MetaPay is a simple and fun way to send Linden Dollars from your iPhone and iPod touch for FREE! Out with friends and want to pay your part of the tab but have no cash? Use MetaPay to send L$ to your friends in Second Life® instead. Or use it to send L$ for any in-world use without firing up the full Second Life® client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Free in the AppStore: [http://bit.ly/metapay Open in iTunes]&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;/div&gt;</summary>
		<author><name>Ayamo Nozaki</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Downloads&amp;diff=1160397</id>
		<title>Downloads</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Downloads&amp;diff=1160397"/>
		<updated>2012-01-02T17:18:06Z</updated>

		<summary type="html">&lt;p&gt;Ayamo Nozaki: /* Exodus Viewer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Help|Viewer=*}}{{RightToc}}&lt;br /&gt;
&lt;br /&gt;
= Linden Lab Viewers =&lt;br /&gt;
&lt;br /&gt;
The following viewers are available on the official &#039;&#039;&#039;[https://secondlife.com/support/downloads/index.php Downloads]&#039;&#039;&#039; page:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;Second Life Viewer&#039;&#039;&#039; (a.k.a. the official Viewer, regular Viewer etc.)&lt;br /&gt;
; &#039;&#039;&#039;Second Life Beta Viewer&#039;&#039;&#039;&lt;br /&gt;
: Available approximately weekly, possibly slightly less stable than the Second Life Viewer, but with the  features and fixes that will be in the next Second Life Viewer.&lt;br /&gt;
&lt;br /&gt;
== Development Releases ==&lt;br /&gt;
&lt;br /&gt;
These viewers are released from time to time by viewer development teams within Linden Lab; they contain features and fixes that are not yet even in the Beta version:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;[[Linden Lab Official:Alternate Viewers#Second Life Project Viewers|Project Viewers]]&#039;&#039;&#039;&lt;br /&gt;
: Provide an early look at new features under development before those are ready to get into the main development stream.&lt;br /&gt;
; &#039;&#039;&#039;[[Downloading test builds|Development Viewer]]&#039;&#039;&#039;&lt;br /&gt;
: Features and fixes that are still warm from the creative fires of development.&lt;br /&gt;
&lt;br /&gt;
== Old Releases ==&lt;br /&gt;
The [[Release Notes]] pages for many past versions contain links to the corresponding downloads.&lt;br /&gt;
{{KBwarning|width=600px|Past Viewer versions might have &#039;&#039;&#039;known security issues&#039;&#039;&#039;, can be partially or fully &#039;&#039;&#039;incompatible to current server versions&#039;&#039;&#039; and obviously will be &#039;&#039;&#039;lacking newer features&#039;&#039;&#039;. Use them at your own risk.}}&lt;br /&gt;
&lt;br /&gt;
{{anchor|non-linden}} &amp;lt;!-- target for [[Alternate viewers]] redirect --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Third Party Directory Viewers =&lt;br /&gt;
&lt;br /&gt;
{{:Third Party Viewer Directory}}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Other Third Party Viewers =&lt;br /&gt;
&lt;br /&gt;
{{KBcaution|The following viewers have either not applied for or have been denied listings in the Third Party Viewer Directory.}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Whether or not a viewer developer chooses to self-certify by applying for listing in the directory, all viewers connecting to Second Life must comply with the [https://secondlife.com/corporate/tpv.php Policy on Third-Party Viewers]; listing in the directory is not a requirement.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note to authors: If you make a viewer available make sure to include platform, version numbers and dates.&#039;&#039;&lt;br /&gt;
{{Anchor|Viewers}}&lt;br /&gt;
{|class=&amp;quot;wikitable sortable collapsible&amp;quot; {{prettytable}}&lt;br /&gt;
|+ &#039;&#039;click the boxed arrows to sort on columns&#039;&#039;&lt;br /&gt;
|- {{KBtablehead}}&lt;br /&gt;
! Name !! {{HoverText|Type|Graphic/Text}} !! {{HoverText|First release|Specified in YYYY-MM-DD}} !! {{HoverText|Latest Release|Specified in YYYY-MM-DD}} !! {{HoverText|Status|Active/Inactive/Discontinued}} !! {{HoverText|W|For Windows}} &amp;lt;ref name=&amp;quot;available&amp;quot;&amp;gt;&amp;quot;X&amp;quot;: Available with binary distribution&amp;lt;/ref&amp;gt;!! {{HoverText|M|For Macintosh}} &amp;lt;ref name=&amp;quot;available&amp;quot;/&amp;gt; !! {{HoverText|L|For Linux(Ubuntu, Debian or so)}} &amp;lt;ref name=&amp;quot;available&amp;quot;/&amp;gt; !! {{HoverText|i|For iPhone/iPod Touch}} &amp;lt;ref name=&amp;quot;available&amp;quot;/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[#AjaxLife]] || Text || || 2008-09-15 || Inactive ||X||X||X||X&lt;br /&gt;
|-&lt;br /&gt;
| [[#Cool VL Viewer]] || Graphic || 2007-11-16 || 2011-12-24 || Active ||X||X||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#Combat Cubed]] || Graphic || || 2010-06-16 || Active ||X|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#Exodus Viewer]] || Graphic || 2011-09-28 || 2011-10-31 || Active ||X||X||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#Hippo OpenSim Viewer]] || Graphic || || 2010-04-24 || Active ||X|| ||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#MetaPay for iPhone and iPod Touch]] || Text || ||  || || || || ||X&lt;br /&gt;
|-&lt;br /&gt;
| [[#Milk Release Client]] || Graphic || || 2010-01-20 || Inactive || ||X||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#omvviewer-light]] || Text || || 2009-08-25 || Active ||X|| ||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#Rainbow Viewer / Cool Viewer]] || Graphic || || 2011-07-10 || Active ||X||X||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#RealXtend Edition]] || Graphic || || 2008-07-28 || Active ||X|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#SLiteChat]] || Text || || || Active ||X||X||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#TEKSTUFF Viewers]] || Graphic || || 2010-04-20 || Active ||X|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#Whisper (SlXSLChat)]] || Text || || 2010-05-09 || Active ||X||X||X||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Graphical Viewers ==&lt;br /&gt;
&lt;br /&gt;
=== Cool VL Viewer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This viewer was created and is maintained by {{User|Henri Beauchamp}} (This viewer was formerly known as the &amp;quot;Cool SL Viewer&amp;quot; and its first public release was v1.18.4.3, released on 2007-11-16). It combines elements of several of the other viewers, as well as extra features, bug fixes and extra patches, all very carefully tested.&lt;br /&gt;
&lt;br /&gt;
It puts emphasis on high UI coherency from one version to the other (meaning no bad surprise for &amp;quot;old timers&amp;quot;) while staying in sync with Linden Lab&#039;s official viewer features, high stability and reliability, and a high reactivity to new patches and bug fixes provided by the Open Source community.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The Cool VL Viewer is TPV policy compliant.&#039;&#039;&#039; Please see [http://sldev.free.fr/CoolVLViewerReadme.html its TPV TOS].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Extra Features &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Reverses many of the unpopular interface changes, restoring separate friends and groups floaters and reinstating the packet loss and bandwidth indicators, the old toolbar and buttons layouts, the old/normal commands layout in the pie menus, the &amp;quot;All(old)&amp;quot; search tab, the old style (name-sortable) &amp;quot;Groups&amp;quot; search tab, the &amp;quot;Fly&amp;quot; button in the movement controls floater, and &#039;&#039;&#039;optionally&#039;&#039;&#039; reinstating the old, more visible, status bar icons and/or tracking dots in the mini-map, and the old chat history floater (without chat input line). Also fixes some UI regressions (missing buttons in some floaters, or visited landmarks tracking in inventory for example).&lt;br /&gt;
* Implements the &amp;quot;RestrainedLove&amp;quot; API (formerly known as &amp;quot;RestrainedLife&amp;quot;), based on Marine Kelley&#039;s reference patch (switchable and disabled by default).&lt;br /&gt;
* Allows to configure the date and time formats to match your locale or personal preferences (including with optional seconds for chat and IM timestamps).&lt;br /&gt;
* Allows to wear/remove attachments and clothing items on double-click in inventory.&lt;br /&gt;
* Allows to optionally prevent notifications to show and be logged in the main chat.&lt;br /&gt;
* Allows to disable typing sounds.&lt;br /&gt;
* MUD/MUSH/MUCK/MUX style &amp;quot;poses&amp;quot; (i.e. you can type &amp;quot;:&amp;quot; instead of &amp;quot;/me &amp;quot; to emote), and OOC double parenthesis auto-close (i.e. you can type: &amp;quot;((phone, BRB&amp;quot; and it will show as &amp;quot;((phone, BRB))&amp;quot;).&lt;br /&gt;
* Allows to hide the &amp;quot;Master volume&amp;quot; when not needed in the panel overlay.&lt;br /&gt;
* Allows to build large prims (up to 256m in any or all dimensions) on OpenSim (not on SL, because of server-side limitations).&lt;br /&gt;
* Improved friends list floater (with info about what your friends allow you to see: tehri online status and/or their position on the map).&lt;br /&gt;
* Improved build tools floater (smaller increments in several parameters, extra &amp;quot;slice&amp;quot; parameter for some prims, transparency up to 100%, check box toggle for drag distance limit, adjustable number of decimals in Object tab for the position/size/rotation parameters, &amp;quot;Align&amp;quot; tool). Also allows to set the &amp;quot;invisible&amp;quot; texture from the texture picker (for invisi-prims).&lt;br /&gt;
* Improved texture preview floater (with aspect ratio combo).&lt;br /&gt;
* Improved notecard floater (with Edit menu and Search/replace feature).&lt;br /&gt;
* Improved mini-map with panning, larger zooming range, specific symbol for avatars above 1024m (work around for a limitation of current server and viewer versions), etc...&lt;br /&gt;
* Improved beacons: can filter beacons based on owner (you, others or anyone), can highlight attachments, can dissociate non-object sound sources, can keep beacons &amp;quot;always on&amp;quot; even when the beacons floater is closed.&lt;br /&gt;
* Allows to export and import objects you own and created as XML files (for backup and restore purpose, or to transfer objects from one grid to another).&lt;br /&gt;
* Allows to connect to all existing grids (and not only LL&#039;s) from the login screen.&lt;br /&gt;
* Allows network bandwidth up to 10000Kbps.&lt;br /&gt;
* Allows to save/compile scripts present in the inventory as Mono scripts.&lt;br /&gt;
* Allows to teleport to double-clicked locations on screen.&lt;br /&gt;
* Allows to sit anywhere &amp;quot;on the ground&amp;quot;.&lt;br /&gt;
* Allows to adjust the Z offset (height above the floor) for playing animations.&lt;br /&gt;
* Allows to cache the inventory in the background after login (for faster inventory operations).&lt;br /&gt;
* Allows to preview animations on your avatar prior to uploading them.&lt;br /&gt;
* Implements a group titles floater.&lt;br /&gt;
* Implements a radar floater.&lt;br /&gt;
* Implements a teleports history floater.&lt;br /&gt;
* Implements a &amp;quot;Worn&amp;quot; tab in the inventory floater, and a search/filter by item name, description or creator.&lt;br /&gt;
* Implements &amp;quot;speed rezzing&amp;quot; on login and TPs.&lt;br /&gt;
* Implements an object &amp;quot;area search&amp;quot; floater.&lt;br /&gt;
* Implements the newest LSL functions, highlighting them properly (with tooltips) in the script editor and allowing to compile them. Also implements fully llTextBox() and the AGENT_AUTOPILOT flag with llGetAgentInfo().&lt;br /&gt;
* Allows to ignore (and not only decline) friendship and calling card offers.&lt;br /&gt;
* Allows to change how minimized floaters are stacked (top/bottom, bottom/top, left/right, right/left, fraction of the screen width to use for the stack).&lt;br /&gt;
* Shows avatar keys in profile (in &amp;quot;My notes&amp;quot; tab).&lt;br /&gt;
* Shows the avatar true height in the appearance floater.&lt;br /&gt;
* Renders properly objects worn on the illegal attachment points defined in some hacked third parties viewers.&lt;br /&gt;
* &#039;&#039;&#039;Provides Mesh rendering support ! NEW: Mesh upload support (Linux and MacOS-X releases only for now).&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Provides full support for the new Alpha and Tattoo wearables !&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Provides inventory item links support !&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Provides multiple attachments per point support !&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Provides display names support !&#039;&#039;&#039;&lt;br /&gt;
* Provides Avatar Physics support.&lt;br /&gt;
* Provides the new SL web search engine as an option.&lt;br /&gt;
* Provides access to web profiles.&lt;br /&gt;
* Provides support for setting the new parcel flags (avatar visibility, sounds playing restrictions).&lt;br /&gt;
* Allows to filter (Allow/Deny/BlackList/Whitelist) media and audio streams URLs to protect your privacy against IP snatchers.&lt;br /&gt;
* Many bugfixes by Henri Beauchamp, Nicholaz Beresford, Gigs Taggart, McCabe Maxsted and others.&lt;br /&gt;
* More minor features and improvements, to be discovered on the [http://sldev.free.fr/ website]...&lt;br /&gt;
* All switchable extra features easily configurable via a &amp;quot;Cool features&amp;quot; tab in the preferences floater.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://sldev.free.fr/ The Cool VL Viewer homepage]&lt;br /&gt;
* Message board: [http://sldev.free.fr/forum/ Cool VL Viewer forum]&lt;br /&gt;
* Linux viewer: see the [http://sldev.free.fr/index.php?page=download download section on the Cool VL Viewer homepage] for files and installation instructions.&lt;br /&gt;
* Windows viewer: see the [http://sldev.free.fr/index.php?page=download download section on the Cool VL Viewer homepage] for files and installation instructions.&lt;br /&gt;
* MacOS X viewer: see the [http://sldev.free.fr/forum/viewtopic.php?f=3&amp;amp;t=14 MacOS-X Announcement forum] for files and instructions.&lt;br /&gt;
* Source code: see the [http://sldev.free.fr/index.php?page=download download section on the Cool VL Viewer homepage].&lt;br /&gt;
* Screen shots: [http://sldev.free.fr/index.php?page=features Key features and screen shots]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Version: 1.26.2.11 Date: 24 December 2011&lt;br /&gt;
* Status: Active.&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Exodus Viewer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Exodus Viewer is a new flavour of the Second Life Viewer 3 series, packed with useful features to enhance the experience of competitive play in Second Life. Photographers, roleplayers, fighters and virtual sport stars will benefit from a viewer designed for maximum performance! Exodus Viewer also packs some cool visual effects that are perfect for photographers and machinema film makers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Major Features &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Based on Secondlife 3.2.6/3.2.7, keeping upto date with the latest features and fixes!&lt;br /&gt;
* Plenty of unique graphics features for photographers.&lt;br /&gt;
* Various built in HUDs, such as a range finder, and situational awareness HUD.&lt;br /&gt;
* A bunch of friend-foe identification features.&lt;br /&gt;
* Huge enhancements and changes made to the minimap.&lt;br /&gt;
* Allows you to adjust minimap colors, even in mass, by right-clicking a selection on the minimap.&lt;br /&gt;
* Various adjustments on how the minimap appears, to make it more useful for combat.&lt;br /&gt;
* Highly customizable settings related to minimap, default colors and even script windows.&lt;br /&gt;
* The usual, various chat commands seen in various TPV viewers.&lt;br /&gt;
* Options to automatically disable various rendering types such as clouds, water, foot shadows, etc.&lt;br /&gt;
* Request teleport feature, allowing your friends to request a teleport from you!&lt;br /&gt;
* And much more, go check out the feature page [http://exodusviewer.com/features.html here!]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Website: http://exodusviewer.com/&lt;br /&gt;
* Download page: http://exodusviewer.com/downloads.html&lt;br /&gt;
* Source code: http://hg.exodusviewer.com/viewer/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Version: 12.01.02.1&lt;br /&gt;
* Date: January 2, 2012&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Hippo OpenSim Viewer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The Hippo OpenSim Viewer is a modified Second Life viewer, targeted at OpenSim users. It allows building up to a height of 10,000 meters, scaling prims up to 256 x 256 x 256 meters and other exciting features. More specific OpenSim features are under development.&lt;br /&gt;
The last developer blog commented: Releasing Hippo OpenSim Viewer Version 0.6.3. This release adds a Windows uninstaller and small changes to comply to the Linden Lab Policy on Third-Party Viewers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Availability &#039;&#039;&#039;&lt;br /&gt;
Is currently available for Linux and Windows.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: http://mjm-labs.com/viewer/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Version: 0.6.3&lt;br /&gt;
* Platforms:&lt;br /&gt;
** Binary available for Windows and Linux&lt;br /&gt;
** Source available (unspecified)&lt;br /&gt;
* Date: April 24, 2010&lt;br /&gt;
* Status: Active + updated&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Meerkat ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Goals &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* To create a fully GPL viewer (no proprietary dependencies)&lt;br /&gt;
* To encourage a community of developers that will submit patches for prompt integration&lt;br /&gt;
* To have the freedom to make the sort of changes that Linden Lab has traditionally been unable to integrate (translation patches, refactoring, fixing intentionally crippled features, changes that touch many files)&lt;br /&gt;
* To retain compatibility with Linden Lab&#039;s grid and protocols, present and future&lt;br /&gt;
* To implement a loosely coupled cross-grid functionality that requires no central authentication authority.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Extra Features &#039;&#039;&#039;&lt;br /&gt;
* Log out and back in without quitting&lt;br /&gt;
* Loosely coupled intergrid teleport -- In Process&lt;br /&gt;
* Most of the other changes common to third party viewers&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;del&amp;gt;Website: [http://www.meerkatviewer.org/ Meerkat Viewer]&amp;lt;/del&amp;gt; (note: the Meerkat site is down)&lt;br /&gt;
* Direct download link: [http://code.google.com/p/meerkat-viewer/downloads/list Download versions of this viewer]&lt;br /&gt;
* Source code: svn checkout http://meerkat-viewer.googlecode.com/svn/trunk/ meerkat&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Version : 0.2.x&lt;br /&gt;
* Date : September 6, 2009&lt;br /&gt;
* Status : Discontinued, website offline. Source and binary downloads still available on google code (see above).&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Nicholaz Edition ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
These are Windows viewer based on SL builds with a focus on stability, usability and performance (see [http://www.blueflash.cc/users/nicholaz/EyeCandy/!!Installation.txt Installation.txt] for homebrew disclaimer). Mac and Linux variants are available through other open sourcers (links on the website).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Extra Features &#039;&#039;&#039;&lt;br /&gt;
* Improved stability.&lt;br /&gt;
* Lower memory footprint.&lt;br /&gt;
* GUI redesigns.&lt;br /&gt;
* Workarounds for common annoyances. (Group IM Filtering, &amp;quot;Release Key&amp;quot; button, etc.)&lt;br /&gt;
* see [http://nicholaz-beresford.blogspot.com/2008/05/version-overview.html this entry] for an overview of different versions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://nicholaz-beresford.blogspot.com/ Nicholaz Beresford on Blogspot]&lt;br /&gt;
* Direct download link: [http://www.blueflash.cc/users/nicholaz Download versions of this viewer]&lt;br /&gt;
* Source code: Look at the [http://www.blueflash.cc/users/nicholaz download site] for the source-xxx-zip files in the respective folders and see the readme.txt inside the archives&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Date: September 7, 2009&lt;br /&gt;
* Status: Discontinued&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Onrez Viewer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The Onrez viewer was made by the Onrez company in connection with a Second Life themed story on the high tech forensics based TV show &amp;quot;CSI: New York&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Extra Features &#039;&#039;&#039;&lt;br /&gt;
* A back and history button for teleports&lt;br /&gt;
* In-viewer web browsing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Comment &#039;&#039;&#039;&lt;br /&gt;
The source code for this viewer is closed source.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Status : Discontinued, download no longer available.&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Rainbow Viewer / Cool Viewer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Based on the offical SecondLife sourcecode licensed under GPL2, this speedy Metaverse Client can connect you to a huge variety of exciting Virtual Worlds! It incorporates a lot of improved, new, up- and backported features and fixes that make the fast and rock stable RV/CV the client of choice for many users.&lt;br /&gt;
&lt;br /&gt;
This viewer includes many patches and changes from a lot of different people and sources which I am very grateful to be able to use. Credits are given to everyone I know, in case I missed someone I sincerely apologize.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rainbow / Cool are TPV compliant.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Thanks to Henri Beauchamp who laid the foundation for this viewer with his Cool SL Viewer. Special thanks to Winter Ventura for the Cool Viewer logo and Jacek Antonelli and Peter Stindberg for the Rainbow Viewer logo :). And to all the others who helped and supported me, especially the people involved and behind Imprudence!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Some incomprehensive list of features &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A major improvement is an up-to-date OpenGL implementation that especially helps users plagued by ATI&#039;s Catalyst drivers but also leads to measurable improvements of overall graphics performance by 30...100% compared to the official viewer; depending on your system. Rainbow Viewer features the current user interface whereas Cool Viewer spots the leaner cleaner and more configurable legacy UI. It&#039;s all about choice :).&lt;br /&gt;
&lt;br /&gt;
* New 1.22.12.0 code baseline&lt;br /&gt;
* CV&#039;s legacy User interface with a clean, simple and userfriendly layout or Rainbow Viewers current official UI, you choose!&lt;br /&gt;
* Improved Graphics rendering, especially for ATI users (measured &amp;gt; 1/3 faster than the official viewer)&lt;br /&gt;
* Alpha and Tattoo Layer support from Second Life Viewer 2.x&lt;br /&gt;
* Updated tested list of Virtual World grids&lt;br /&gt;
* Marine Kelley&#039;s RestrainedLove (off per default)&lt;br /&gt;
* Full Adult Compliance&lt;br /&gt;
* Redesigned and &amp;quot;up-ported&amp;quot; search functionality, probably the best search in any viewer nowadays&lt;br /&gt;
* Enhanced Breast Physics&lt;br /&gt;
* Temporary texture and animation upload&lt;br /&gt;
* Better inventory search for content, description and creator&lt;br /&gt;
* Low lag radar and AV management tools&lt;br /&gt;
* Viewer skinning&lt;br /&gt;
* Object and Shape export/import, limited to creator&lt;br /&gt;
* Bulk permission editing&lt;br /&gt;
* Last owner display to track content theft&lt;br /&gt;
* &amp;quot;Worn&amp;quot; tab in inventory&lt;br /&gt;
* Double click to wear attachments&lt;br /&gt;
* Enhanced building tools&lt;br /&gt;
* Flexible Sculpties&lt;br /&gt;
* Large Prims (currently only for Opensim grids due to SL limitations)&lt;br /&gt;
* Maximized Network Bandwidth&lt;br /&gt;
* Flexible Grid selection at login for SL and all OpenSims&lt;br /&gt;
* Teleport History and speedy doubleclick teleport&lt;br /&gt;
* Avatar UUID in profiles&lt;br /&gt;
* Features tab in Preferences for easy switching of features&lt;br /&gt;
* Optimized latest OpenJPEG 1.3&lt;br /&gt;
* A large number of other goodies and stability fixes that improve your overall experience. Please check the [http://code.google.com/p/coolviewer/wiki/ReleaseNotes Release Notes] for details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://my.opera.com/boylane Rainbow Viewers for  Virtual Worlds]&lt;br /&gt;
* Direct download link: [http://coolviewer.googlecode.com Binary versions on Google Code]&lt;br /&gt;
* Source code: [http://github.com/boy Sources on Github]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Rainbow Viewer 1.22.12 R7&lt;br /&gt;
* Rainbow Viewer Cool Edition (Cool Viewer) 1.22.12 R13&lt;br /&gt;
* Rainbow Viewer Netbook Edition Version 1.2 (speedy pre-Windlight 1.19.0.5)&lt;br /&gt;
* Date: July 10, 2011&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== RealXtend Edition ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The realXtend viewer is a heavily modified version of the Linden Lab&#039;s Second Life client by a partnership of two Finnish companies, ADMINO technologies and LudoCraft.&lt;br /&gt;
&lt;br /&gt;
The successor to the realXtend viewer is Naali (release 0.4.0 on 21st January 2011, download from http://code.google.com/p/realxtend-naali/downloads/list).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Extra Features &#039;&#039;&#039;&lt;br /&gt;
    * Second life compatibility mode for use in SL and Opensim worlds&lt;br /&gt;
    * Teleports between realXtend and Secondlife&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: http://www.realxtend.org/&lt;br /&gt;
* Direct download link: http://www.realxtend.org/downloads.html&lt;br /&gt;
* Source code: http://sourceforge.net/projects/realxtendviewer/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Version: 0.4.2&lt;br /&gt;
* Date: September 24, 2009&lt;br /&gt;
* Status: Discontinued, replaced by Naali.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Combat Cubed ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This client is aimed mostly at the SL Military, but sports quite a few interesting improvements that make it worth taking a look at.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Originally known as Vertical Life.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Major Features &#039;&#039;&#039;&lt;br /&gt;
* Enhanced Look &amp;amp; Feel, for example flexible camera movement&lt;br /&gt;
* Prototype Script API, secure and parallel&lt;br /&gt;
* Slimmed down for FPS combat&lt;br /&gt;
* Identification, Friend versus Foe, mostly under the hood now but soon exposed&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Splash: http://bit.ly/cXOcDX&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Version: 1.0&lt;br /&gt;
* Date: June 16, 2010&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== TEKSTUFF Viewers ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The TEKSTUFF viewers are created to enable Youtube movies on TEKSTUFF media screens inside Second Life. The TEKSTUFF viewers are slight modifications of already available viewers like the regular SL 1.23.5 viewer and the Emerald 1634 viewer. Apart from that, the Emerald based viewer is fixed so it can be used in Opensim grids as well.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Web presence: http://www.tekstuff.net/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; TODO &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Make a Linux viewer&lt;br /&gt;
* Make a Mac OS viewer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Major Features &#039;&#039;&#039;&lt;br /&gt;
* All the functionality of the viewer it was based upon (Linden Lab 1.23.5 or Emerald 1634)&lt;br /&gt;
* Will allow you to view Youtube movies on TEKSTUFF media screens&lt;br /&gt;
* The Emerald based viewer can also be used in OpenSim grids (texture loading is fixed)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Version: 1.23.5 (Linden Lab &amp;amp; Emerald)&lt;br /&gt;
* Date: April 20, 2010&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Milk Release Client ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This client is aimed at development of all kinds, brought together by Project Neox. Focusing on advanced non-profit development of Second Life and various features which content creators would find suitable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; TODO &#039;&#039;&#039;&lt;br /&gt;
* XStreetSL shopping UI client-kiosk&lt;br /&gt;
* Compile Linux and Mac OS X builds&lt;br /&gt;
* Multiple link object texturing, via name&lt;br /&gt;
* Completion of 3-Dimensional Mini Map&lt;br /&gt;
* Region Statistics notifications before teleports&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Major Features &#039;&#039;&#039;&lt;br /&gt;
* Rendering options for individual avatars&lt;br /&gt;
* Secure Voice-chat usage&lt;br /&gt;
* Extensions in avatar editing&lt;br /&gt;
* Additional Attachment points&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Version: 1.23.5&lt;br /&gt;
* Date: January 20, 2010&lt;br /&gt;
* Status: Discontinued and will not be available for download.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
==Text-Only Viewers==&lt;br /&gt;
&lt;br /&gt;
===AjaxLife ===&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
Browser based Second Life client, created by Katharine Berry. The only web-browser client which made it a lifeline for residents who could not use a full graphical viewer, or who could not download other text-only clients because of limitations such as corporate firewalls.&lt;br /&gt;
&lt;br /&gt;
(No longer working)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: http://ajaxlife.net/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Version: 0.6.1.2&lt;br /&gt;
* Date: May 21, 2010&lt;br /&gt;
* Platform: Platform-Independant&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== omvviewer-light ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; A Text client for the 3D Metaverse &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
omvviewer-light is a text client for the 3D Metaverse including SecondLife, written from Scratch (but using the libomv library for protocol handling). It&#039;s GUI is created in Gtk# which is cross-platform making this the only current Text client that is still active and cross platform. Tested on Linux (32/64 bit) and Windows (not 64-bit windows).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Features &#039;&#039;&#039;&lt;br /&gt;
To many to list here in detail please see the project page below but in summary, Full inventory control, Full Chat/IM/Group IM&#039;s. Object search and interaction. Realtime local maps. Parcel displays. Read and Edit NoteCards and Scripts. View profiles. Friends Lists etc .....&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://omvviewer-light.byteme.org.uk/ Project page]&lt;br /&gt;
* Source code: [http://omvviewer-light.byteme.org.uk/source.shtml Source details]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Date: August 25, 2009&lt;br /&gt;
* Version: 0.48.0.6&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Whisper (SlXSLChat) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; A light-weight yet feature rich text-only Second Life client &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
Whisper is a text-only Second Life client that comes in two parts. The client is written in Java (so it can run on many platforms). The client connects to a &amp;quot;transport&amp;quot;, which is written in C# and uses LibOpenMetaVerse. The idea behind this architecture is that if you don&#039;t like the client, you can write your own and not have to worry about implementing the Second Life protocol yourself. The entire project is open source and published under the GPLv3 licence.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Features &#039;&#039;&#039;&lt;br /&gt;
* Public chat&lt;br /&gt;
* Instant messaging&lt;br /&gt;
* Group chat&lt;br /&gt;
* Search/join/leave groups&lt;br /&gt;
* Search for avatars&lt;br /&gt;
* Image retrieval&lt;br /&gt;
* Profile retrieval&lt;br /&gt;
* Notifications / popups as you would get in Second Life (e.g. group notices, balance changes, inventory offers)&lt;br /&gt;
* Teleportation (home, to area within current sim, to nearby avatar)&lt;br /&gt;
* Nearby avatar tracking on map of Sim&lt;br /&gt;
* Autopilot navigation to nearby avatars&lt;br /&gt;
* URL highlighting&lt;br /&gt;
* Encrypted traffic between client and transport&lt;br /&gt;
* Transport can be run anywhere, the client connects via TCP/IP&lt;br /&gt;
* Client only sends MD5 hashed password to transport&lt;br /&gt;
* On April 20, 2010, SlXSLChat has rebranded to “Whisper”.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://whisper.slx.cc/ Whisper]&lt;br /&gt;
* SourceForce Project Page: [https://sourceforge.net/projects/slxslchat/ Project Page]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Date: May 9, 2010&lt;br /&gt;
* Version: 1.3&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== SLeek ===&lt;br /&gt;
First text only viewer ever, mentioned for completeness, not actively maintained anymore. MetaBolt is based on SLeek.&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== SLiteChat ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; A Lite IM/Chat Text-only Client for Second Life &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
SLiteChat (pronounced &amp;quot;slight-chat&amp;quot;) is a completely open source text-only IM/chat client for use with Second Life. Use it to talk to your friends without having to load up all of those heavy graphic goodies. Useful for those at work times.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Features &#039;&#039;&#039;&lt;br /&gt;
* Communicate in-world with people on your friends list. Full adding/removing and search for Residents supported.&lt;br /&gt;
* Group chat is supported (however at this writing you cannot leave a group or search for to join).&lt;br /&gt;
* Local chat and IM history is supported.&lt;br /&gt;
* Can log into other grids.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://www.slitechat.org/ Project page]&lt;br /&gt;
* Source code: [http://www.slitechat.org/download/ Source details]&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== MetaPay for iPhone and iPod Touch ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Send L$ with a simple to use and free iPhone App. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
MetaPay is a simple and fun way to send Linden Dollars from your iPhone and iPod touch for FREE! Out with friends and want to pay your part of the tab but have no cash? Use MetaPay to send L$ to your friends in Second Life® instead. Or use it to send L$ for any in-world use without firing up the full Second Life® client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Free in the AppStore: [http://bit.ly/metapay Open in iTunes]&lt;br /&gt;
&lt;br /&gt;
[[#Other Third Party Viewers|[Back to the list]]]&lt;/div&gt;</summary>
		<author><name>Ayamo Nozaki</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Downloads&amp;diff=1156050</id>
		<title>Downloads</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Downloads&amp;diff=1156050"/>
		<updated>2011-10-23T14:54:21Z</updated>

		<summary type="html">&lt;p&gt;Ayamo Nozaki: /* Exodus Viewer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Help|Viewer=*}}{{RightToc}}&lt;br /&gt;
&lt;br /&gt;
= Linden Lab Viewers =&lt;br /&gt;
&lt;br /&gt;
The following viewers are available on the official &#039;&#039;&#039;[https://secondlife.com/support/downloads/index.php Downloads]&#039;&#039;&#039; page:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;Second Life Viewer&#039;&#039;&#039; (a.k.a. the official Viewer, regular Viewer etc.)&lt;br /&gt;
; &#039;&#039;&#039;Second Life Beta Viewer&#039;&#039;&#039;&lt;br /&gt;
: Available approximately weekly, possibly slightly less stable than the Second Life Viewer, but with the  features and fixes that will be in the next Second Life Viewer.&lt;br /&gt;
&lt;br /&gt;
== Development Releases ==&lt;br /&gt;
&lt;br /&gt;
These viewers are released from time to time by viewer development teams within Linden Lab; they contain features and fixes that are not yet even in the Beta version:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;[[Linden Lab Official:Alternate Viewers#Second Life Project Viewers|Project Viewers]]&#039;&#039;&#039;&lt;br /&gt;
: Provide an early look at new features under development before those are ready to get into the main development stream.&lt;br /&gt;
; &#039;&#039;&#039;[[Downloading test builds|Development Viewer]]&#039;&#039;&#039;&lt;br /&gt;
: Features and fixes that are still warm from the creative fires of development.&lt;br /&gt;
&lt;br /&gt;
== Old Releases ==&lt;br /&gt;
The [[Release Notes]] pages for many past versions contain links to the corresponding downloads.&lt;br /&gt;
{{KBwarning|Past Viewer versions might have &#039;&#039;&#039;known security issues&#039;&#039;&#039;, can be partially or fully &#039;&#039;&#039;incompatible to current server versions&#039;&#039;&#039; and obviously will be &#039;&#039;&#039;lacking newer features&#039;&#039;&#039;. Use them at your own risk.}}&lt;br /&gt;
&lt;br /&gt;
{{anchor|non-linden}} &amp;lt;!-- target for [[Alternate viewers]] redirect --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Third Party Directory Viewers =&lt;br /&gt;
&lt;br /&gt;
{{:Third Party Viewer Directory}}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Other Third Party Viewers =&lt;br /&gt;
&lt;br /&gt;
{{KBcaution|The following viewers have either not applied for or have been denied listings in the Third Party Viewer Directory.}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Whether or not a viewer developer chooses to self-certify by applying for listing in the directory, all viewers connecting to Second Life must comply with the [https://secondlife.com/corporate/tpv.php Policy on Third-Party Viewers]; listing in the directory is not a requirement.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note to authors: If you make a viewer available make sure to include platform, version numbers and dates.&#039;&#039;&lt;br /&gt;
{{Anchor|Viewers}}&lt;br /&gt;
{|class=&amp;quot;wikitable sortable collapsible&amp;quot; {{prettytable}}&lt;br /&gt;
|+ &#039;&#039;click the boxed arrows to sort on columns&#039;&#039;&lt;br /&gt;
|- {{KBtablehead}}&lt;br /&gt;
! Name !! {{HoverText|Type|Graphic/Text}} !! {{HoverText|First release|Specified in YYYY-MM-DD}} !! {{HoverText|Latest Release|Specified in YYYY-MM-DD}} !! {{HoverText|Status|Active/Inactive/Discontinued}} !! {{HoverText|W|For Windows}} &amp;lt;ref name=&amp;quot;available&amp;quot;&amp;gt;&amp;quot;X&amp;quot;: Available with binary distribution&amp;lt;/ref&amp;gt;!! {{HoverText|M|For Macintosh}} &amp;lt;ref name=&amp;quot;available&amp;quot;/&amp;gt; !! {{HoverText|L|For Linux(Ubuntu, Debian or so)}} &amp;lt;ref name=&amp;quot;available&amp;quot;/&amp;gt; !! {{HoverText|i|For iPhone/iPod Touch}} &amp;lt;ref name=&amp;quot;available&amp;quot;/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[#AjaxLife]] || Text || || 2008-09-15 || Active ||X||X||X||X&lt;br /&gt;
|-&lt;br /&gt;
| [[#Cool VL Viewer]] || Graphic || 2007-11-16 || 2011-10-22 || Active ||X||X||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#Combat Cubed]] || Graphic || || 2010-06-16 || Active ||X|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#Exodus Viewer]] || Graphic || 2011-09-28 || 2011-10-11 || Active ||X||X||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#Hippo OpenSim Viewer]] || Graphic || || 2010-04-24 || Active ||X|| ||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#MetaPay for iPhone and iPod Touch]] || Text || ||  || || || || ||X&lt;br /&gt;
|-&lt;br /&gt;
| [[#Milk Release Client]] || Graphic || || 2010-01-20 || Inactive || ||X||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#omvviewer-light]] || Text || || 2009-08-25 || Active ||X|| ||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#Rainbow Viewer / Cool Viewer]] || Graphic || || 2011-07-10 || Active ||X||X||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#RealXtend Edition]] || Graphic || || 2008-07-28 || Active ||X|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#SLiteChat]] || Text || || || Active ||X||X||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#TEKSTUFF Viewers]] || Graphic || || 2010-04-20 || Active ||X|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#Whisper (SlXSLChat)]] || Text || || 2010-05-09 || Active ||X||X||X||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Graphical Viewers ==&lt;br /&gt;
&lt;br /&gt;
=== Cool VL Viewer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This viewer was created and is maintained by {{User|Henri Beauchamp}} (This viewer was formerly known as the &amp;quot;Cool SL Viewer&amp;quot; and its first public release was v1.18.4.3, released on 2007-11-16). It combines elements of several of the other viewers, as well as extra features, bug fixes and extra patches, all very carefully tested.&lt;br /&gt;
&lt;br /&gt;
It puts emphasis on high UI coherency from one version to the other (meaning no bad surprise for &amp;quot;old timers&amp;quot;) while staying in sync with Linden Lab&#039;s official viewer features, high stability and reliability, and a high reactivity to new patches and bug fixes provided by the Open Source community.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The Cool VL Viewer is TPV policy compliant.&#039;&#039;&#039; Please see [http://sldev.free.fr/CoolVLViewerReadme.html its TPV TOS].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Extra Features &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Reverses many of the unpopular interface changes, restoring separate friends and groups floaters and reinstating the packet loss and bandwidth indicators, the old toolbar and buttons layouts, the old/normal commands layout in the pie menus, the &amp;quot;All(old)&amp;quot; search tab, the old style (name-sortable) &amp;quot;Groups&amp;quot; search tab, the &amp;quot;Fly&amp;quot; button in the movement controls floater, and &#039;&#039;&#039;optionally&#039;&#039;&#039; reinstating the old, more visible, status bar icons and/or tracking dots in the mini-map, and the old chat history floater (without chat input line). Also fixes some UI regressions (missing buttons in some floaters, or visited landmarks tracking in inventory for example).&lt;br /&gt;
* Implements the &amp;quot;RestrainedLove&amp;quot; API (formerly known as &amp;quot;RestrainedLife&amp;quot;), based on Marine Kelley&#039;s reference patch (switchable and disabled by default).&lt;br /&gt;
* Allows to configure the date and time formats to match your locale or personal preferences (including with optional seconds for chat and IM timestamps).&lt;br /&gt;
* Allows to wear/remove attachments and clothing items on double-click in inventory.&lt;br /&gt;
* Allows to optionally prevent notifications to show and be logged in the main chat.&lt;br /&gt;
* Allows to disable typing sounds.&lt;br /&gt;
* MUD/MUSH/MUCK/MUX style &amp;quot;poses&amp;quot; (i.e. you can type &amp;quot;:&amp;quot; instead of &amp;quot;/me &amp;quot; to emote), and OOC double parenthesis auto-close (i.e. you can type: &amp;quot;((phone, BRB&amp;quot; and it will show as &amp;quot;((phone, BRB))&amp;quot;).&lt;br /&gt;
* Allows to hide the &amp;quot;Master volume&amp;quot; when not needed in the panel overlay.&lt;br /&gt;
* Allows to build large prims (up to 256m in any or all dimensions) on OpenSim (not on SL, because of server-side limitations).&lt;br /&gt;
* Improved friends list floater (with info about what your friends allow you to see: tehri online status and/or their position on the map).&lt;br /&gt;
* Improved build tools floater (smaller increments in several parameters, extra &amp;quot;slice&amp;quot; parameter for some prims, transparency up to 100%, check box toggle for drag distance limit, adjustable number of decimals in Object tab for the position/size/rotation parameters, &amp;quot;Align&amp;quot; tool). Also allows to set the &amp;quot;invisible&amp;quot; texture from the texture picker (for invisi-prims).&lt;br /&gt;
* Improved texture preview floater (with aspect ratio combo).&lt;br /&gt;
* Improved notecard floater (with Edit menu and Search/replace feature).&lt;br /&gt;
* Improved mini-map with panning, larger zooming range, specific symbol for avatars above 1024m (work around for a limitation of current server and viewer versions), etc...&lt;br /&gt;
* Improved beacons: can filter beacons based on owner (you, others or anyone), can highlight attachments, can dissociate non-object sound sources, can keep beacons &amp;quot;always on&amp;quot; even when the beacons floater is closed.&lt;br /&gt;
* Allows to export and import objects you own and created as XML files (for backup and restore purpose, or to transfer objects from one grid to another).&lt;br /&gt;
* Allows to connect to all existing grids (and not only LL&#039;s) from the login screen.&lt;br /&gt;
* Allows network bandwidth up to 10000Kbps.&lt;br /&gt;
* Allows to save/compile scripts present in the inventory as Mono scripts.&lt;br /&gt;
* Allows to teleport to double-clicked locations on screen.&lt;br /&gt;
* Allows to sit anywhere &amp;quot;on the ground&amp;quot;.&lt;br /&gt;
* Allows to adjust the Z offset (height above the floor) for playing animations.&lt;br /&gt;
* Allows to cache the inventory in the background after login (for faster inventory operations).&lt;br /&gt;
* Allows to preview animations on your avatar prior to uploading them.&lt;br /&gt;
* Implements a group titles floater.&lt;br /&gt;
* Implements a radar floater.&lt;br /&gt;
* Implements a teleports history floater.&lt;br /&gt;
* Implements a &amp;quot;Worn&amp;quot; tab in the inventory floater, and a search/filter by item name, description or creator.&lt;br /&gt;
* Implements &amp;quot;speed rezzing&amp;quot; on login and TPs.&lt;br /&gt;
* Implements an object &amp;quot;area search&amp;quot; floater.&lt;br /&gt;
* Implements the newest LSL functions, highlighting them properly (with tooltips) in the script editor and allowing to compile them. Also implements fully llTextBox() and the AGENT_AUTOPILOT flag with llGetAgentInfo().&lt;br /&gt;
* Allows to ignore (and not only decline) friendship and calling card offers.&lt;br /&gt;
* Allows to change how minimized floaters are stacked (top/bottom, bottom/top, left/right, right/left, fraction of the screen width to use for the stack).&lt;br /&gt;
* Shows avatar keys in profile (in &amp;quot;My notes&amp;quot; tab).&lt;br /&gt;
* Shows the avatar true height in the appearance floater.&lt;br /&gt;
* Renders properly objects worn on the illegal attachment points defined in some hacked third parties viewers.&lt;br /&gt;
* &#039;&#039;&#039;NEW: Provides Mesh rendering support !&#039;&#039;&#039; (v1.26.2 branch only)&lt;br /&gt;
* &#039;&#039;&#039;Provides full support for the new Alpha and Tattoo wearables !&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Provides inventory item links support !&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Provides multiple attachments per point support !&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Provides display names support !&#039;&#039;&#039;&lt;br /&gt;
* Provides Avatar Physics support.&lt;br /&gt;
* Provides the new SL web search engine as an option.&lt;br /&gt;
* Provides access to web profiles.&lt;br /&gt;
* Provides support for setting the new parcel flags (avatar visibility, sounds playing restrictions).&lt;br /&gt;
* Allows to filter (Allow/Deny/BlackList/Whitelist) media and audio streams URLs to protect your privacy against IP snatchers.&lt;br /&gt;
* Many bugfixes by Henri Beauchamp, Nicholaz Beresford, Gigs Taggart, McCabe Maxsted and others.&lt;br /&gt;
* More minor features and improvements, to be discovered on the [http://sldev.free.fr/ website]...&lt;br /&gt;
* All switchable extra features easily configurable via a &amp;quot;Cool features&amp;quot; tab in the preferences floater.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://sldev.free.fr/ The Cool VL Viewer homepage]&lt;br /&gt;
* Message board: [http://sldev.free.fr/forum/ Cool VL Viewer forum]&lt;br /&gt;
* Linux viewer: see the [http://sldev.free.fr/ The Cool VL Viewer homepage] for files and installation instructions.&lt;br /&gt;
* Windows viewer: see the [http://sldev.free.fr/ The Cool VL Viewer homepage] for files and installation instructions.&lt;br /&gt;
* MacOS X viewer: see the [http://sldev.free.fr/forum/viewtopic.php?f=3&amp;amp;t=14 MacOS-X Announcement forum] for files and instructions.&lt;br /&gt;
* Source code: The standard Linden codebase is used, with the addition of the patches listed and linked to on the homepage.&lt;br /&gt;
* Screen shots: [http://sldev.free.fr/index.php?page=features Key features and screen shots]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Version (non-mesh, legacy Windlight renderer branch): 1.26.0.24 Date: 22 October 2011&lt;br /&gt;
* Version (mesh-enabled, Shadow renderer branch): 1.26.2.2 Date: 22 October 2011&lt;br /&gt;
* Status: Active.&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Exodus Viewer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Exodus Viewer is a new flavour of the Second Life Viewer 3 series, packed with useful features to enhance the experience of competitive play in Second Life. Roleplayers, fighters and virtual sport stars will benefit from a viewer designed for maximum performance! Exodus Viewer also packs some cool visual effects that are perfect for photographers and machinema film makers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Major Features &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Based on Secondlife 3.1.1, keeping upto date with the latest features and fixes!&lt;br /&gt;
* Various built in HUDs, such as a range finder, and situational awareness HUD.&lt;br /&gt;
* A bunch of friend-foe identification features.&lt;br /&gt;
* Huge enhancements and changes made to the minimap.&lt;br /&gt;
* Allows you to adjust minimap colors, even in mass, by right-clicking a selection on the minimap.&lt;br /&gt;
* Various adjustments on how the minimap appears, to make it more useful for combat.&lt;br /&gt;
* Highly customizable settings related to minimap, default colors and even script windows.&lt;br /&gt;
* The usual, various chat commands seen in various TPV viewers.&lt;br /&gt;
* Options to automatically disable various rendering types such as clouds, water, foot shadows, etc.&lt;br /&gt;
* Request teleport feature, allowing your friends to request a teleport from you!&lt;br /&gt;
* And much more, go check out the feature page [http://exodusviewer.com/features.html here!]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Website: http://exodusviewer.com/&lt;br /&gt;
* Download page: http://exodusviewer.com/downloads.html&lt;br /&gt;
* Source code: http://hg.exodusviewer.com/viewer/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Version: 11.10.11.1&lt;br /&gt;
* Date: October 11, 2011&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Hippo OpenSim Viewer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The Hippo OpenSim Viewer is a modified Second Life viewer, targeted at OpenSim users. It allows building up to a height of 10,000 meters, scaling prims up to 256 x 256 x 256 meters and other exciting features. More specific OpenSim features are under development.&lt;br /&gt;
The last developer blog commented: Releasing Hippo OpenSim Viewer Version 0.6.3. This release adds a Windows uninstaller and small changes to comply to the Linden Lab Policy on Third-Party Viewers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Availability &#039;&#039;&#039;&lt;br /&gt;
Is currently available for Linux and Windows.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: http://mjm-labs.com/viewer/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Version: 0.6.3&lt;br /&gt;
* Platforms:&lt;br /&gt;
** Binary available for Windows and Linux&lt;br /&gt;
** Source available (unspecified)&lt;br /&gt;
* Date: April 24, 2010&lt;br /&gt;
* Status: Active + updated&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Meerkat ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Goals &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* To create a fully GPL viewer (no proprietary dependencies)&lt;br /&gt;
* To encourage a community of developers that will submit patches for prompt integration&lt;br /&gt;
* To have the freedom to make the sort of changes that Linden Lab has traditionally been unable to integrate (translation patches, refactoring, fixing intentionally crippled features, changes that touch many files)&lt;br /&gt;
* To retain compatibility with Linden Lab&#039;s grid and protocols, present and future&lt;br /&gt;
* To implement a loosely coupled cross-grid functionality that requires no central authentication authority.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Extra Features &#039;&#039;&#039;&lt;br /&gt;
* Log out and back in without quitting&lt;br /&gt;
* Loosely coupled intergrid teleport -- In Process&lt;br /&gt;
* Most of the other changes common to third party viewers&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;del&amp;gt;Website: [http://www.meerkatviewer.org/ Meerkat Viewer]&amp;lt;/del&amp;gt; (note: the Meerkat site is down)&lt;br /&gt;
* Direct download link: [http://code.google.com/p/meerkat-viewer/downloads/list Download versions of this viewer]&lt;br /&gt;
* Source code: svn checkout http://meerkat-viewer.googlecode.com/svn/trunk/ meerkat&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Version : 0.2.x&lt;br /&gt;
* Date : September 6, 2009&lt;br /&gt;
* Status : Discontinued, website offline. Source and binary downloads still available on google code (see above).&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Nicholaz Edition ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
These are Windows viewer based on SL builds with a focus on stability, usability and performance (see [http://www.blueflash.cc/users/nicholaz/EyeCandy/!!Installation.txt Installation.txt] for homebrew disclaimer). Mac and Linux variants are available through other open sourcers (links on the website).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Extra Features &#039;&#039;&#039;&lt;br /&gt;
* Improved stability.&lt;br /&gt;
* Lower memory footprint.&lt;br /&gt;
* GUI redesigns.&lt;br /&gt;
* Workarounds for common annoyances. (Group IM Filtering, &amp;quot;Release Key&amp;quot; button, etc.)&lt;br /&gt;
* see [http://nicholaz-beresford.blogspot.com/2008/05/version-overview.html this entry] for an overview of different versions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://nicholaz-beresford.blogspot.com/ Nicholaz Beresford on Blogspot]&lt;br /&gt;
* Direct download link: [http://www.blueflash.cc/users/nicholaz Download versions of this viewer]&lt;br /&gt;
* Source code: Look at the [http://www.blueflash.cc/users/nicholaz download site] for the source-xxx-zip files in the respective folders and see the readme.txt inside the archives&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Date: September 7, 2009&lt;br /&gt;
* Status: Discontinued&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Onrez Viewer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The Onrez viewer was made by the Onrez company in connection with a Second Life themed story on the high tech forensics based TV show &amp;quot;CSI: New York&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Extra Features &#039;&#039;&#039;&lt;br /&gt;
* A back and history button for teleports&lt;br /&gt;
* In-viewer web browsing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Comment &#039;&#039;&#039;&lt;br /&gt;
The source code for this viewer is closed source.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Status : Discontinued, download no longer available.&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Rainbow Viewer / Cool Viewer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Based on the offical SecondLife sourcecode licensed under GPL2, this speedy Metaverse Client can connect you to a huge variety of exciting Virtual Worlds! It incorporates a lot of improved, new, up- and backported features and fixes that make the fast and rock stable RV/CV the client of choice for many users.&lt;br /&gt;
&lt;br /&gt;
This viewer includes many patches and changes from a lot of different people and sources which I am very grateful to be able to use. Credits are given to everyone I know, in case I missed someone I sincerely apologize.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rainbow / Cool are TPV compliant.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Thanks to Henri Beauchamp who laid the foundation for this viewer with his Cool SL Viewer. Special thanks to Winter Ventura for the Cool Viewer logo and Jacek Antonelli and Peter Stindberg for the Rainbow Viewer logo :). And to all the others who helped and supported me, especially the people involved and behind Imprudence!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Some incomprehensive list of features &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A major improvement is an up-to-date OpenGL implementation that especially helps users plagued by ATI&#039;s Catalyst drivers but also leads to measurable improvements of overall graphics performance by 30...100% compared to the official viewer; depending on your system. Rainbow Viewer features the current user interface whereas Cool Viewer spots the leaner cleaner and more configurable legacy UI. It&#039;s all about choice :).&lt;br /&gt;
&lt;br /&gt;
* New 1.22.12.0 code baseline&lt;br /&gt;
* CV&#039;s legacy User interface with a clean, simple and userfriendly layout or Rainbow Viewers current official UI, you choose!&lt;br /&gt;
* Improved Graphics rendering, especially for ATI users (measured &amp;gt; 1/3 faster than the official viewer)&lt;br /&gt;
* Alpha and Tattoo Layer support from Second Life Viewer 2.x&lt;br /&gt;
* Updated tested list of Virtual World grids&lt;br /&gt;
* Marine Kelley&#039;s RestrainedLove (off per default)&lt;br /&gt;
* Full Adult Compliance&lt;br /&gt;
* Redesigned and &amp;quot;up-ported&amp;quot; search functionality, probably the best search in any viewer nowadays&lt;br /&gt;
* Enhanced Breast Physics&lt;br /&gt;
* Temporary texture and animation upload&lt;br /&gt;
* Better inventory search for content, description and creator&lt;br /&gt;
* Low lag radar and AV management tools&lt;br /&gt;
* Viewer skinning&lt;br /&gt;
* Object and Shape export/import, limited to creator&lt;br /&gt;
* Bulk permission editing&lt;br /&gt;
* Last owner display to track content theft&lt;br /&gt;
* &amp;quot;Worn&amp;quot; tab in inventory&lt;br /&gt;
* Double click to wear attachments&lt;br /&gt;
* Enhanced building tools&lt;br /&gt;
* Flexible Sculpties&lt;br /&gt;
* Large Prims (currently only for Opensim grids due to SL limitations)&lt;br /&gt;
* Maximized Network Bandwidth&lt;br /&gt;
* Flexible Grid selection at login for SL and all OpenSims&lt;br /&gt;
* Teleport History and speedy doubleclick teleport&lt;br /&gt;
* Avatar UUID in profiles&lt;br /&gt;
* Features tab in Preferences for easy switching of features&lt;br /&gt;
* Optimized latest OpenJPEG 1.3&lt;br /&gt;
* A large number of other goodies and stability fixes that improve your overall experience. Please check the [http://code.google.com/p/coolviewer/wiki/ReleaseNotes Release Notes] for details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://my.opera.com/boylane Rainbow Viewers for  Virtual Worlds]&lt;br /&gt;
* Direct download link: [http://coolviewer.googlecode.com Binary versions on Google Code]&lt;br /&gt;
* Source code: [http://github.com/boy Sources on Github]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Rainbow Viewer 1.22.12 R7&lt;br /&gt;
* Rainbow Viewer Cool Edition (Cool Viewer) 1.22.12 R13&lt;br /&gt;
* Rainbow Viewer Netbook Edition Version 1.2 (speedy pre-Windlight 1.19.0.5)&lt;br /&gt;
* Date: July 10, 2011&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== RealXtend Edition ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The realXtend viewer is a heavily modified version of the Linden Lab&#039;s Second Life client by a partnership of two Finnish companies, ADMINO technologies and LudoCraft.&lt;br /&gt;
&lt;br /&gt;
The successor to the realXtend viewer is Naali (release 0.4.0 on 21st January 2011, download from http://code.google.com/p/realxtend-naali/downloads/list).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Extra Features &#039;&#039;&#039;&lt;br /&gt;
    * Second life compatibility mode for use in SL and Opensim worlds&lt;br /&gt;
    * Teleports between realXtend and Secondlife&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: http://www.realxtend.org/&lt;br /&gt;
* Direct download link: http://www.realxtend.org/downloads.html&lt;br /&gt;
* Source code: http://sourceforge.net/projects/realxtendviewer/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Version: 0.4.2&lt;br /&gt;
* Date: September 24, 2009&lt;br /&gt;
* Status: Discontinued, replaced by Naali.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Combat Cubed ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This client is aimed mostly at the SL Military, but sports quite a few interesting improvements that make it worth taking a look at.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Originally known as Vertical Life.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Major Features &#039;&#039;&#039;&lt;br /&gt;
* Enhanced Look &amp;amp; Feel, for example flexible camera movement&lt;br /&gt;
* Prototype Script API, secure and parallel&lt;br /&gt;
* Slimmed down for FPS combat&lt;br /&gt;
* Identification, Friend versus Foe, mostly under the hood now but soon exposed&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Splash: http://bit.ly/cXOcDX&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Version: 1.0&lt;br /&gt;
* Date: June 16, 2010&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== TEKSTUFF Viewers ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The TEKSTUFF viewers are created to enable Youtube movies on TEKSTUFF media screens inside Second Life. The TEKSTUFF viewers are slight modifications of already available viewers like the regular SL 1.23.5 viewer and the Emerald 1634 viewer. Apart from that, the Emerald based viewer is fixed so it can be used in Opensim grids as well.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Web presence: http://www.tekstuff.net/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; TODO &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Make a Linux viewer&lt;br /&gt;
* Make a Mac OS viewer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Major Features &#039;&#039;&#039;&lt;br /&gt;
* All the functionality of the viewer it was based upon (Linden Lab 1.23.5 or Emerald 1634)&lt;br /&gt;
* Will allow you to view Youtube movies on TEKSTUFF media screens&lt;br /&gt;
* The Emerald based viewer can also be used in OpenSim grids (texture loading is fixed)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Version: 1.23.5 (Linden Lab &amp;amp; Emerald)&lt;br /&gt;
* Date: April 20, 2010&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Milk Release Client ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This client is aimed at development of all kinds, brought together by Project Neox. Focusing on advanced non-profit development of Second Life and various features which content creators would find suitable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; TODO &#039;&#039;&#039;&lt;br /&gt;
* XStreetSL shopping UI client-kiosk&lt;br /&gt;
* Compile Linux and Mac OS X builds&lt;br /&gt;
* Multiple link object texturing, via name&lt;br /&gt;
* Completion of 3-Dimensional Mini Map&lt;br /&gt;
* Region Statistics notifications before teleports&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Major Features &#039;&#039;&#039;&lt;br /&gt;
* Rendering options for individual avatars&lt;br /&gt;
* Secure Voice-chat usage&lt;br /&gt;
* Extensions in avatar editing&lt;br /&gt;
* Additional Attachment points&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Version: 1.23.5&lt;br /&gt;
* Date: January 20, 2010&lt;br /&gt;
* Status: Discontinued and will not be available for download.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
==Text-Only Viewers==&lt;br /&gt;
&lt;br /&gt;
===AjaxLife ===&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
Browser based Second Life client, created by Katharine Berry. The only web-browser client which made it a lifeline for residents who could not use a full graphical viewer, or who could not download other text-only clients because of limitations such as corporate firewalls.&lt;br /&gt;
&lt;br /&gt;
(No longer working)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: http://ajaxlife.net/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Version: 0.6.1.2&lt;br /&gt;
* Date: May 21, 2010&lt;br /&gt;
* Platform: Platform-Independant&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== omvviewer-light ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; A Text client for the 3D Metaverse &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
omvviewer-light is a text client for the 3D Metaverse including SecondLife, written from Scratch (but using the libomv library for protocol handling). It&#039;s GUI is created in Gtk# which is cross-platform making this the only current Text client that is still active and cross platform. Tested on Linux (32/64 bit) and Windows (not 64-bit windows).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Features &#039;&#039;&#039;&lt;br /&gt;
To many to list here in detail please see the project page below but in summary, Full inventory control, Full Chat/IM/Group IM&#039;s. Object search and interaction. Realtime local maps. Parcel displays. Read and Edit NoteCards and Scripts. View profiles. Friends Lists etc .....&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://omvviewer-light.byteme.org.uk/ Project page]&lt;br /&gt;
* Source code: [http://omvviewer-light.byteme.org.uk/source.shtml Source details]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Date: August 25, 2009&lt;br /&gt;
* Version: 0.48.0.6&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Whisper (SlXSLChat) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; A light-weight yet feature rich text-only Second Life client &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
Whisper is a text-only Second Life client that comes in two parts. The client is written in Java (so it can run on many platforms). The client connects to a &amp;quot;transport&amp;quot;, which is written in C# and uses LibOpenMetaVerse. The idea behind this architecture is that if you don&#039;t like the client, you can write your own and not have to worry about implementing the Second Life protocol yourself. The entire project is open source and published under the GPLv3 licence.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Features &#039;&#039;&#039;&lt;br /&gt;
* Public chat&lt;br /&gt;
* Instant messaging&lt;br /&gt;
* Group chat&lt;br /&gt;
* Search/join/leave groups&lt;br /&gt;
* Search for avatars&lt;br /&gt;
* Image retrieval&lt;br /&gt;
* Profile retrieval&lt;br /&gt;
* Notifications / popups as you would get in Second Life (e.g. group notices, balance changes, inventory offers)&lt;br /&gt;
* Teleportation (home, to area within current sim, to nearby avatar)&lt;br /&gt;
* Nearby avatar tracking on map of Sim&lt;br /&gt;
* Autopilot navigation to nearby avatars&lt;br /&gt;
* URL highlighting&lt;br /&gt;
* Encrypted traffic between client and transport&lt;br /&gt;
* Transport can be run anywhere, the client connects via TCP/IP&lt;br /&gt;
* Client only sends MD5 hashed password to transport&lt;br /&gt;
* On April 20, 2010, SlXSLChat has rebranded to “Whisper”.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://whisper.slx.cc/ Whisper]&lt;br /&gt;
* SourceForce Project Page: [https://sourceforge.net/projects/slxslchat/ Project Page]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Date: May 9, 2010&lt;br /&gt;
* Version: 1.3&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== SLeek ===&lt;br /&gt;
First text only viewer ever, mentioned for completeness, not actively maintained anymore. MetaBolt is based on SLeek.&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== SLiteChat ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; A Lite IM/Chat Text-only Client for Second Life &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
SLiteChat (pronounced &amp;quot;slight-chat&amp;quot;) is a completely open source text-only IM/chat client for use with Second Life. Use it to talk to your friends without having to load up all of those heavy graphic goodies. Useful for those at work times.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Features &#039;&#039;&#039;&lt;br /&gt;
* Communicate in-world with people on your friends list. Full adding/removing and search for Residents supported.&lt;br /&gt;
* Group chat is supported (however at this writing you cannot leave a group or search for to join).&lt;br /&gt;
* Local chat and IM history is supported.&lt;br /&gt;
* Can log into other grids.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://www.slitechat.org/ Project page]&lt;br /&gt;
* Source code: [http://www.slitechat.org/download/ Source details]&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== MetaPay for iPhone and iPod Touch ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Send L$ with a simple to use and free iPhone App. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
MetaPay is a simple and fun way to send Linden Dollars from your iPhone and iPod touch for FREE! Out with friends and want to pay your part of the tab but have no cash? Use MetaPay to send L$ to your friends in Second Life® instead. Or use it to send L$ for any in-world use without firing up the full Second Life® client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Free in the AppStore: [http://bit.ly/metapay Open in iTunes]&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;/div&gt;</summary>
		<author><name>Ayamo Nozaki</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Downloads&amp;diff=1156048</id>
		<title>Downloads</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Downloads&amp;diff=1156048"/>
		<updated>2011-10-23T14:47:09Z</updated>

		<summary type="html">&lt;p&gt;Ayamo Nozaki: /* Exodus Viewer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Help|Viewer=*}}{{RightToc}}&lt;br /&gt;
&lt;br /&gt;
= Linden Lab Viewers =&lt;br /&gt;
&lt;br /&gt;
The following viewers are available on the official &#039;&#039;&#039;[https://secondlife.com/support/downloads/index.php Downloads]&#039;&#039;&#039; page:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;Second Life Viewer&#039;&#039;&#039; (a.k.a. the official Viewer, regular Viewer etc.)&lt;br /&gt;
; &#039;&#039;&#039;Second Life Beta Viewer&#039;&#039;&#039;&lt;br /&gt;
: Available approximately weekly, possibly slightly less stable than the Second Life Viewer, but with the  features and fixes that will be in the next Second Life Viewer.&lt;br /&gt;
&lt;br /&gt;
== Development Releases ==&lt;br /&gt;
&lt;br /&gt;
These viewers are released from time to time by viewer development teams within Linden Lab; they contain features and fixes that are not yet even in the Beta version:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;[[Linden Lab Official:Alternate Viewers#Second Life Project Viewers|Project Viewers]]&#039;&#039;&#039;&lt;br /&gt;
: Provide an early look at new features under development before those are ready to get into the main development stream.&lt;br /&gt;
; &#039;&#039;&#039;[[Downloading test builds|Development Viewer]]&#039;&#039;&#039;&lt;br /&gt;
: Features and fixes that are still warm from the creative fires of development.&lt;br /&gt;
&lt;br /&gt;
== Old Releases ==&lt;br /&gt;
The [[Release Notes]] pages for many past versions contain links to the corresponding downloads.&lt;br /&gt;
{{KBwarning|Past Viewer versions might have &#039;&#039;&#039;known security issues&#039;&#039;&#039;, can be partially or fully &#039;&#039;&#039;incompatible to current server versions&#039;&#039;&#039; and obviously will be &#039;&#039;&#039;lacking newer features&#039;&#039;&#039;. Use them at your own risk.}}&lt;br /&gt;
&lt;br /&gt;
{{anchor|non-linden}} &amp;lt;!-- target for [[Alternate viewers]] redirect --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Third Party Directory Viewers =&lt;br /&gt;
&lt;br /&gt;
{{:Third Party Viewer Directory}}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Other Third Party Viewers =&lt;br /&gt;
&lt;br /&gt;
{{KBcaution|The following viewers have either not applied for or have been denied listings in the Third Party Viewer Directory.}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Whether or not a viewer developer chooses to self-certify by applying for listing in the directory, all viewers connecting to Second Life must comply with the [https://secondlife.com/corporate/tpv.php Policy on Third-Party Viewers]; listing in the directory is not a requirement.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note to authors: If you make a viewer available make sure to include platform, version numbers and dates.&#039;&#039;&lt;br /&gt;
{{Anchor|Viewers}}&lt;br /&gt;
{|class=&amp;quot;wikitable sortable collapsible&amp;quot; {{prettytable}}&lt;br /&gt;
|+ &#039;&#039;click the boxed arrows to sort on columns&#039;&#039;&lt;br /&gt;
|- {{KBtablehead}}&lt;br /&gt;
! Name !! {{HoverText|Type|Graphic/Text}} !! {{HoverText|First release|Specified in YYYY-MM-DD}} !! {{HoverText|Latest Release|Specified in YYYY-MM-DD}} !! {{HoverText|Status|Active/Inactive/Discontinued}} !! {{HoverText|W|For Windows}} &amp;lt;ref name=&amp;quot;available&amp;quot;&amp;gt;&amp;quot;X&amp;quot;: Available with binary distribution&amp;lt;/ref&amp;gt;!! {{HoverText|M|For Macintosh}} &amp;lt;ref name=&amp;quot;available&amp;quot;/&amp;gt; !! {{HoverText|L|For Linux(Ubuntu, Debian or so)}} &amp;lt;ref name=&amp;quot;available&amp;quot;/&amp;gt; !! {{HoverText|i|For iPhone/iPod Touch}} &amp;lt;ref name=&amp;quot;available&amp;quot;/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[#AjaxLife]] || Text || || 2008-09-15 || Active ||X||X||X||X&lt;br /&gt;
|-&lt;br /&gt;
| [[#Cool VL Viewer]] || Graphic || 2007-11-16 || 2011-10-22 || Active ||X||X||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#Combat Cubed]] || Graphic || || 2010-06-16 || Active ||X|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#Exodus Viewer]] || Graphic || 2011-09-28 || 2011-10-11 || Active ||X||X||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#Hippo OpenSim Viewer]] || Graphic || || 2010-04-24 || Active ||X|| ||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#MetaPay for iPhone and iPod Touch]] || Text || ||  || || || || ||X&lt;br /&gt;
|-&lt;br /&gt;
| [[#Milk Release Client]] || Graphic || || 2010-01-20 || Inactive || ||X||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#omvviewer-light]] || Text || || 2009-08-25 || Active ||X|| ||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#Rainbow Viewer / Cool Viewer]] || Graphic || || 2011-07-10 || Active ||X||X||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#RealXtend Edition]] || Graphic || || 2008-07-28 || Active ||X|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#SLiteChat]] || Text || || || Active ||X||X||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#TEKSTUFF Viewers]] || Graphic || || 2010-04-20 || Active ||X|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#Whisper (SlXSLChat)]] || Text || || 2010-05-09 || Active ||X||X||X||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Graphical Viewers ==&lt;br /&gt;
&lt;br /&gt;
=== Cool VL Viewer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This viewer was created and is maintained by {{User|Henri Beauchamp}} (This viewer was formerly known as the &amp;quot;Cool SL Viewer&amp;quot; and its first public release was v1.18.4.3, released on 2007-11-16). It combines elements of several of the other viewers, as well as extra features, bug fixes and extra patches, all very carefully tested.&lt;br /&gt;
&lt;br /&gt;
It puts emphasis on high UI coherency from one version to the other (meaning no bad surprise for &amp;quot;old timers&amp;quot;) while staying in sync with Linden Lab&#039;s official viewer features, high stability and reliability, and a high reactivity to new patches and bug fixes provided by the Open Source community.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The Cool VL Viewer is TPV policy compliant.&#039;&#039;&#039; Please see [http://sldev.free.fr/CoolVLViewerReadme.html its TPV TOS].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Extra Features &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Reverses many of the unpopular interface changes, restoring separate friends and groups floaters and reinstating the packet loss and bandwidth indicators, the old toolbar and buttons layouts, the old/normal commands layout in the pie menus, the &amp;quot;All(old)&amp;quot; search tab, the old style (name-sortable) &amp;quot;Groups&amp;quot; search tab, the &amp;quot;Fly&amp;quot; button in the movement controls floater, and &#039;&#039;&#039;optionally&#039;&#039;&#039; reinstating the old, more visible, status bar icons and/or tracking dots in the mini-map, and the old chat history floater (without chat input line). Also fixes some UI regressions (missing buttons in some floaters, or visited landmarks tracking in inventory for example).&lt;br /&gt;
* Implements the &amp;quot;RestrainedLove&amp;quot; API (formerly known as &amp;quot;RestrainedLife&amp;quot;), based on Marine Kelley&#039;s reference patch (switchable and disabled by default).&lt;br /&gt;
* Allows to configure the date and time formats to match your locale or personal preferences (including with optional seconds for chat and IM timestamps).&lt;br /&gt;
* Allows to wear/remove attachments and clothing items on double-click in inventory.&lt;br /&gt;
* Allows to optionally prevent notifications to show and be logged in the main chat.&lt;br /&gt;
* Allows to disable typing sounds.&lt;br /&gt;
* MUD/MUSH/MUCK/MUX style &amp;quot;poses&amp;quot; (i.e. you can type &amp;quot;:&amp;quot; instead of &amp;quot;/me &amp;quot; to emote), and OOC double parenthesis auto-close (i.e. you can type: &amp;quot;((phone, BRB&amp;quot; and it will show as &amp;quot;((phone, BRB))&amp;quot;).&lt;br /&gt;
* Allows to hide the &amp;quot;Master volume&amp;quot; when not needed in the panel overlay.&lt;br /&gt;
* Allows to build large prims (up to 256m in any or all dimensions) on OpenSim (not on SL, because of server-side limitations).&lt;br /&gt;
* Improved friends list floater (with info about what your friends allow you to see: tehri online status and/or their position on the map).&lt;br /&gt;
* Improved build tools floater (smaller increments in several parameters, extra &amp;quot;slice&amp;quot; parameter for some prims, transparency up to 100%, check box toggle for drag distance limit, adjustable number of decimals in Object tab for the position/size/rotation parameters, &amp;quot;Align&amp;quot; tool). Also allows to set the &amp;quot;invisible&amp;quot; texture from the texture picker (for invisi-prims).&lt;br /&gt;
* Improved texture preview floater (with aspect ratio combo).&lt;br /&gt;
* Improved notecard floater (with Edit menu and Search/replace feature).&lt;br /&gt;
* Improved mini-map with panning, larger zooming range, specific symbol for avatars above 1024m (work around for a limitation of current server and viewer versions), etc...&lt;br /&gt;
* Improved beacons: can filter beacons based on owner (you, others or anyone), can highlight attachments, can dissociate non-object sound sources, can keep beacons &amp;quot;always on&amp;quot; even when the beacons floater is closed.&lt;br /&gt;
* Allows to export and import objects you own and created as XML files (for backup and restore purpose, or to transfer objects from one grid to another).&lt;br /&gt;
* Allows to connect to all existing grids (and not only LL&#039;s) from the login screen.&lt;br /&gt;
* Allows network bandwidth up to 10000Kbps.&lt;br /&gt;
* Allows to save/compile scripts present in the inventory as Mono scripts.&lt;br /&gt;
* Allows to teleport to double-clicked locations on screen.&lt;br /&gt;
* Allows to sit anywhere &amp;quot;on the ground&amp;quot;.&lt;br /&gt;
* Allows to adjust the Z offset (height above the floor) for playing animations.&lt;br /&gt;
* Allows to cache the inventory in the background after login (for faster inventory operations).&lt;br /&gt;
* Allows to preview animations on your avatar prior to uploading them.&lt;br /&gt;
* Implements a group titles floater.&lt;br /&gt;
* Implements a radar floater.&lt;br /&gt;
* Implements a teleports history floater.&lt;br /&gt;
* Implements a &amp;quot;Worn&amp;quot; tab in the inventory floater, and a search/filter by item name, description or creator.&lt;br /&gt;
* Implements &amp;quot;speed rezzing&amp;quot; on login and TPs.&lt;br /&gt;
* Implements an object &amp;quot;area search&amp;quot; floater.&lt;br /&gt;
* Implements the newest LSL functions, highlighting them properly (with tooltips) in the script editor and allowing to compile them. Also implements fully llTextBox() and the AGENT_AUTOPILOT flag with llGetAgentInfo().&lt;br /&gt;
* Allows to ignore (and not only decline) friendship and calling card offers.&lt;br /&gt;
* Allows to change how minimized floaters are stacked (top/bottom, bottom/top, left/right, right/left, fraction of the screen width to use for the stack).&lt;br /&gt;
* Shows avatar keys in profile (in &amp;quot;My notes&amp;quot; tab).&lt;br /&gt;
* Shows the avatar true height in the appearance floater.&lt;br /&gt;
* Renders properly objects worn on the illegal attachment points defined in some hacked third parties viewers.&lt;br /&gt;
* &#039;&#039;&#039;NEW: Provides Mesh rendering support !&#039;&#039;&#039; (v1.26.2 branch only)&lt;br /&gt;
* &#039;&#039;&#039;Provides full support for the new Alpha and Tattoo wearables !&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Provides inventory item links support !&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Provides multiple attachments per point support !&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Provides display names support !&#039;&#039;&#039;&lt;br /&gt;
* Provides Avatar Physics support.&lt;br /&gt;
* Provides the new SL web search engine as an option.&lt;br /&gt;
* Provides access to web profiles.&lt;br /&gt;
* Provides support for setting the new parcel flags (avatar visibility, sounds playing restrictions).&lt;br /&gt;
* Allows to filter (Allow/Deny/BlackList/Whitelist) media and audio streams URLs to protect your privacy against IP snatchers.&lt;br /&gt;
* Many bugfixes by Henri Beauchamp, Nicholaz Beresford, Gigs Taggart, McCabe Maxsted and others.&lt;br /&gt;
* More minor features and improvements, to be discovered on the [http://sldev.free.fr/ website]...&lt;br /&gt;
* All switchable extra features easily configurable via a &amp;quot;Cool features&amp;quot; tab in the preferences floater.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://sldev.free.fr/ The Cool VL Viewer homepage]&lt;br /&gt;
* Message board: [http://sldev.free.fr/forum/ Cool VL Viewer forum]&lt;br /&gt;
* Linux viewer: see the [http://sldev.free.fr/ The Cool VL Viewer homepage] for files and installation instructions.&lt;br /&gt;
* Windows viewer: see the [http://sldev.free.fr/ The Cool VL Viewer homepage] for files and installation instructions.&lt;br /&gt;
* MacOS X viewer: see the [http://sldev.free.fr/forum/viewtopic.php?f=3&amp;amp;t=14 MacOS-X Announcement forum] for files and instructions.&lt;br /&gt;
* Source code: The standard Linden codebase is used, with the addition of the patches listed and linked to on the homepage.&lt;br /&gt;
* Screen shots: [http://sldev.free.fr/index.php?page=features Key features and screen shots]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Version (non-mesh, legacy Windlight renderer branch): 1.26.0.24 Date: 22 October 2011&lt;br /&gt;
* Version (mesh-enabled, Shadow renderer branch): 1.26.2.2 Date: 22 October 2011&lt;br /&gt;
* Status: Active.&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Exodus Viewer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Exodus Viewer is a specialized third party combat viewer for Second Life.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Major Features &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Based on Secondlife 3.1.1, keeping upto date with the latest features and fixes!&lt;br /&gt;
* Various built in HUDs, such as a range finder, and situational awareness HUD.&lt;br /&gt;
* A bunch of friend-foe identification features.&lt;br /&gt;
* Huge enhancements and changes made to the minimap.&lt;br /&gt;
* Allows you to adjust minimap colors, even in mass, by right-clicking a selection on the minimap.&lt;br /&gt;
* Various adjustments on how the minimap appears, to make it more useful for combat.&lt;br /&gt;
* Highly customizable settings related to minimap, default colors and even script windows.&lt;br /&gt;
* The usual, various chat commands seen in various TPV viewers.&lt;br /&gt;
* Options to automatically disable various rendering types such as clouds, water, foot shadows, etc.&lt;br /&gt;
* Request teleport feature, allowing your friends to request a teleport from you!&lt;br /&gt;
* And much more, go check out the feature page [http://exodusviewer.com/features.html here!]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Website: http://exodusviewer.com/&lt;br /&gt;
* Download page: http://exodusviewer.com/downloads.html&lt;br /&gt;
* Source code: http://hg.exodusviewer.com/viewer/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Version: 11.10.11.1&lt;br /&gt;
* Date: October 11, 2011&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Hippo OpenSim Viewer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The Hippo OpenSim Viewer is a modified Second Life viewer, targeted at OpenSim users. It allows building up to a height of 10,000 meters, scaling prims up to 256 x 256 x 256 meters and other exciting features. More specific OpenSim features are under development.&lt;br /&gt;
The last developer blog commented: Releasing Hippo OpenSim Viewer Version 0.6.3. This release adds a Windows uninstaller and small changes to comply to the Linden Lab Policy on Third-Party Viewers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Availability &#039;&#039;&#039;&lt;br /&gt;
Is currently available for Linux and Windows.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: http://mjm-labs.com/viewer/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Version: 0.6.3&lt;br /&gt;
* Platforms:&lt;br /&gt;
** Binary available for Windows and Linux&lt;br /&gt;
** Source available (unspecified)&lt;br /&gt;
* Date: April 24, 2010&lt;br /&gt;
* Status: Active + updated&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Meerkat ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Goals &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* To create a fully GPL viewer (no proprietary dependencies)&lt;br /&gt;
* To encourage a community of developers that will submit patches for prompt integration&lt;br /&gt;
* To have the freedom to make the sort of changes that Linden Lab has traditionally been unable to integrate (translation patches, refactoring, fixing intentionally crippled features, changes that touch many files)&lt;br /&gt;
* To retain compatibility with Linden Lab&#039;s grid and protocols, present and future&lt;br /&gt;
* To implement a loosely coupled cross-grid functionality that requires no central authentication authority.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Extra Features &#039;&#039;&#039;&lt;br /&gt;
* Log out and back in without quitting&lt;br /&gt;
* Loosely coupled intergrid teleport -- In Process&lt;br /&gt;
* Most of the other changes common to third party viewers&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;del&amp;gt;Website: [http://www.meerkatviewer.org/ Meerkat Viewer]&amp;lt;/del&amp;gt; (note: the Meerkat site is down)&lt;br /&gt;
* Direct download link: [http://code.google.com/p/meerkat-viewer/downloads/list Download versions of this viewer]&lt;br /&gt;
* Source code: svn checkout http://meerkat-viewer.googlecode.com/svn/trunk/ meerkat&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Version : 0.2.x&lt;br /&gt;
* Date : September 6, 2009&lt;br /&gt;
* Status : Discontinued, website offline. Source and binary downloads still available on google code (see above).&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Nicholaz Edition ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
These are Windows viewer based on SL builds with a focus on stability, usability and performance (see [http://www.blueflash.cc/users/nicholaz/EyeCandy/!!Installation.txt Installation.txt] for homebrew disclaimer). Mac and Linux variants are available through other open sourcers (links on the website).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Extra Features &#039;&#039;&#039;&lt;br /&gt;
* Improved stability.&lt;br /&gt;
* Lower memory footprint.&lt;br /&gt;
* GUI redesigns.&lt;br /&gt;
* Workarounds for common annoyances. (Group IM Filtering, &amp;quot;Release Key&amp;quot; button, etc.)&lt;br /&gt;
* see [http://nicholaz-beresford.blogspot.com/2008/05/version-overview.html this entry] for an overview of different versions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://nicholaz-beresford.blogspot.com/ Nicholaz Beresford on Blogspot]&lt;br /&gt;
* Direct download link: [http://www.blueflash.cc/users/nicholaz Download versions of this viewer]&lt;br /&gt;
* Source code: Look at the [http://www.blueflash.cc/users/nicholaz download site] for the source-xxx-zip files in the respective folders and see the readme.txt inside the archives&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Date: September 7, 2009&lt;br /&gt;
* Status: Discontinued&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Onrez Viewer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The Onrez viewer was made by the Onrez company in connection with a Second Life themed story on the high tech forensics based TV show &amp;quot;CSI: New York&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Extra Features &#039;&#039;&#039;&lt;br /&gt;
* A back and history button for teleports&lt;br /&gt;
* In-viewer web browsing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Comment &#039;&#039;&#039;&lt;br /&gt;
The source code for this viewer is closed source.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Status : Discontinued, download no longer available.&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Rainbow Viewer / Cool Viewer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Based on the offical SecondLife sourcecode licensed under GPL2, this speedy Metaverse Client can connect you to a huge variety of exciting Virtual Worlds! It incorporates a lot of improved, new, up- and backported features and fixes that make the fast and rock stable RV/CV the client of choice for many users.&lt;br /&gt;
&lt;br /&gt;
This viewer includes many patches and changes from a lot of different people and sources which I am very grateful to be able to use. Credits are given to everyone I know, in case I missed someone I sincerely apologize.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rainbow / Cool are TPV compliant.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Thanks to Henri Beauchamp who laid the foundation for this viewer with his Cool SL Viewer. Special thanks to Winter Ventura for the Cool Viewer logo and Jacek Antonelli and Peter Stindberg for the Rainbow Viewer logo :). And to all the others who helped and supported me, especially the people involved and behind Imprudence!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Some incomprehensive list of features &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A major improvement is an up-to-date OpenGL implementation that especially helps users plagued by ATI&#039;s Catalyst drivers but also leads to measurable improvements of overall graphics performance by 30...100% compared to the official viewer; depending on your system. Rainbow Viewer features the current user interface whereas Cool Viewer spots the leaner cleaner and more configurable legacy UI. It&#039;s all about choice :).&lt;br /&gt;
&lt;br /&gt;
* New 1.22.12.0 code baseline&lt;br /&gt;
* CV&#039;s legacy User interface with a clean, simple and userfriendly layout or Rainbow Viewers current official UI, you choose!&lt;br /&gt;
* Improved Graphics rendering, especially for ATI users (measured &amp;gt; 1/3 faster than the official viewer)&lt;br /&gt;
* Alpha and Tattoo Layer support from Second Life Viewer 2.x&lt;br /&gt;
* Updated tested list of Virtual World grids&lt;br /&gt;
* Marine Kelley&#039;s RestrainedLove (off per default)&lt;br /&gt;
* Full Adult Compliance&lt;br /&gt;
* Redesigned and &amp;quot;up-ported&amp;quot; search functionality, probably the best search in any viewer nowadays&lt;br /&gt;
* Enhanced Breast Physics&lt;br /&gt;
* Temporary texture and animation upload&lt;br /&gt;
* Better inventory search for content, description and creator&lt;br /&gt;
* Low lag radar and AV management tools&lt;br /&gt;
* Viewer skinning&lt;br /&gt;
* Object and Shape export/import, limited to creator&lt;br /&gt;
* Bulk permission editing&lt;br /&gt;
* Last owner display to track content theft&lt;br /&gt;
* &amp;quot;Worn&amp;quot; tab in inventory&lt;br /&gt;
* Double click to wear attachments&lt;br /&gt;
* Enhanced building tools&lt;br /&gt;
* Flexible Sculpties&lt;br /&gt;
* Large Prims (currently only for Opensim grids due to SL limitations)&lt;br /&gt;
* Maximized Network Bandwidth&lt;br /&gt;
* Flexible Grid selection at login for SL and all OpenSims&lt;br /&gt;
* Teleport History and speedy doubleclick teleport&lt;br /&gt;
* Avatar UUID in profiles&lt;br /&gt;
* Features tab in Preferences for easy switching of features&lt;br /&gt;
* Optimized latest OpenJPEG 1.3&lt;br /&gt;
* A large number of other goodies and stability fixes that improve your overall experience. Please check the [http://code.google.com/p/coolviewer/wiki/ReleaseNotes Release Notes] for details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://my.opera.com/boylane Rainbow Viewers for  Virtual Worlds]&lt;br /&gt;
* Direct download link: [http://coolviewer.googlecode.com Binary versions on Google Code]&lt;br /&gt;
* Source code: [http://github.com/boy Sources on Github]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Rainbow Viewer 1.22.12 R7&lt;br /&gt;
* Rainbow Viewer Cool Edition (Cool Viewer) 1.22.12 R13&lt;br /&gt;
* Rainbow Viewer Netbook Edition Version 1.2 (speedy pre-Windlight 1.19.0.5)&lt;br /&gt;
* Date: July 10, 2011&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== RealXtend Edition ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The realXtend viewer is a heavily modified version of the Linden Lab&#039;s Second Life client by a partnership of two Finnish companies, ADMINO technologies and LudoCraft.&lt;br /&gt;
&lt;br /&gt;
The successor to the realXtend viewer is Naali (release 0.4.0 on 21st January 2011, download from http://code.google.com/p/realxtend-naali/downloads/list).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Extra Features &#039;&#039;&#039;&lt;br /&gt;
    * Second life compatibility mode for use in SL and Opensim worlds&lt;br /&gt;
    * Teleports between realXtend and Secondlife&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: http://www.realxtend.org/&lt;br /&gt;
* Direct download link: http://www.realxtend.org/downloads.html&lt;br /&gt;
* Source code: http://sourceforge.net/projects/realxtendviewer/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Version: 0.4.2&lt;br /&gt;
* Date: September 24, 2009&lt;br /&gt;
* Status: Discontinued, replaced by Naali.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Combat Cubed ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This client is aimed mostly at the SL Military, but sports quite a few interesting improvements that make it worth taking a look at.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Originally known as Vertical Life.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Major Features &#039;&#039;&#039;&lt;br /&gt;
* Enhanced Look &amp;amp; Feel, for example flexible camera movement&lt;br /&gt;
* Prototype Script API, secure and parallel&lt;br /&gt;
* Slimmed down for FPS combat&lt;br /&gt;
* Identification, Friend versus Foe, mostly under the hood now but soon exposed&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Splash: http://bit.ly/cXOcDX&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Version: 1.0&lt;br /&gt;
* Date: June 16, 2010&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== TEKSTUFF Viewers ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The TEKSTUFF viewers are created to enable Youtube movies on TEKSTUFF media screens inside Second Life. The TEKSTUFF viewers are slight modifications of already available viewers like the regular SL 1.23.5 viewer and the Emerald 1634 viewer. Apart from that, the Emerald based viewer is fixed so it can be used in Opensim grids as well.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Web presence: http://www.tekstuff.net/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; TODO &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Make a Linux viewer&lt;br /&gt;
* Make a Mac OS viewer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Major Features &#039;&#039;&#039;&lt;br /&gt;
* All the functionality of the viewer it was based upon (Linden Lab 1.23.5 or Emerald 1634)&lt;br /&gt;
* Will allow you to view Youtube movies on TEKSTUFF media screens&lt;br /&gt;
* The Emerald based viewer can also be used in OpenSim grids (texture loading is fixed)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Version: 1.23.5 (Linden Lab &amp;amp; Emerald)&lt;br /&gt;
* Date: April 20, 2010&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Milk Release Client ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This client is aimed at development of all kinds, brought together by Project Neox. Focusing on advanced non-profit development of Second Life and various features which content creators would find suitable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; TODO &#039;&#039;&#039;&lt;br /&gt;
* XStreetSL shopping UI client-kiosk&lt;br /&gt;
* Compile Linux and Mac OS X builds&lt;br /&gt;
* Multiple link object texturing, via name&lt;br /&gt;
* Completion of 3-Dimensional Mini Map&lt;br /&gt;
* Region Statistics notifications before teleports&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Major Features &#039;&#039;&#039;&lt;br /&gt;
* Rendering options for individual avatars&lt;br /&gt;
* Secure Voice-chat usage&lt;br /&gt;
* Extensions in avatar editing&lt;br /&gt;
* Additional Attachment points&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Version: 1.23.5&lt;br /&gt;
* Date: January 20, 2010&lt;br /&gt;
* Status: Discontinued and will not be available for download.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
==Text-Only Viewers==&lt;br /&gt;
&lt;br /&gt;
===AjaxLife ===&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
Browser based Second Life client, created by Katharine Berry. The only web-browser client which made it a lifeline for residents who could not use a full graphical viewer, or who could not download other text-only clients because of limitations such as corporate firewalls.&lt;br /&gt;
&lt;br /&gt;
(No longer working)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: http://ajaxlife.net/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Version: 0.6.1.2&lt;br /&gt;
* Date: May 21, 2010&lt;br /&gt;
* Platform: Platform-Independant&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== omvviewer-light ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; A Text client for the 3D Metaverse &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
omvviewer-light is a text client for the 3D Metaverse including SecondLife, written from Scratch (but using the libomv library for protocol handling). It&#039;s GUI is created in Gtk# which is cross-platform making this the only current Text client that is still active and cross platform. Tested on Linux (32/64 bit) and Windows (not 64-bit windows).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Features &#039;&#039;&#039;&lt;br /&gt;
To many to list here in detail please see the project page below but in summary, Full inventory control, Full Chat/IM/Group IM&#039;s. Object search and interaction. Realtime local maps. Parcel displays. Read and Edit NoteCards and Scripts. View profiles. Friends Lists etc .....&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://omvviewer-light.byteme.org.uk/ Project page]&lt;br /&gt;
* Source code: [http://omvviewer-light.byteme.org.uk/source.shtml Source details]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Date: August 25, 2009&lt;br /&gt;
* Version: 0.48.0.6&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Whisper (SlXSLChat) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; A light-weight yet feature rich text-only Second Life client &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
Whisper is a text-only Second Life client that comes in two parts. The client is written in Java (so it can run on many platforms). The client connects to a &amp;quot;transport&amp;quot;, which is written in C# and uses LibOpenMetaVerse. The idea behind this architecture is that if you don&#039;t like the client, you can write your own and not have to worry about implementing the Second Life protocol yourself. The entire project is open source and published under the GPLv3 licence.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Features &#039;&#039;&#039;&lt;br /&gt;
* Public chat&lt;br /&gt;
* Instant messaging&lt;br /&gt;
* Group chat&lt;br /&gt;
* Search/join/leave groups&lt;br /&gt;
* Search for avatars&lt;br /&gt;
* Image retrieval&lt;br /&gt;
* Profile retrieval&lt;br /&gt;
* Notifications / popups as you would get in Second Life (e.g. group notices, balance changes, inventory offers)&lt;br /&gt;
* Teleportation (home, to area within current sim, to nearby avatar)&lt;br /&gt;
* Nearby avatar tracking on map of Sim&lt;br /&gt;
* Autopilot navigation to nearby avatars&lt;br /&gt;
* URL highlighting&lt;br /&gt;
* Encrypted traffic between client and transport&lt;br /&gt;
* Transport can be run anywhere, the client connects via TCP/IP&lt;br /&gt;
* Client only sends MD5 hashed password to transport&lt;br /&gt;
* On April 20, 2010, SlXSLChat has rebranded to “Whisper”.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://whisper.slx.cc/ Whisper]&lt;br /&gt;
* SourceForce Project Page: [https://sourceforge.net/projects/slxslchat/ Project Page]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Date: May 9, 2010&lt;br /&gt;
* Version: 1.3&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== SLeek ===&lt;br /&gt;
First text only viewer ever, mentioned for completeness, not actively maintained anymore. MetaBolt is based on SLeek.&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== SLiteChat ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; A Lite IM/Chat Text-only Client for Second Life &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
SLiteChat (pronounced &amp;quot;slight-chat&amp;quot;) is a completely open source text-only IM/chat client for use with Second Life. Use it to talk to your friends without having to load up all of those heavy graphic goodies. Useful for those at work times.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Features &#039;&#039;&#039;&lt;br /&gt;
* Communicate in-world with people on your friends list. Full adding/removing and search for Residents supported.&lt;br /&gt;
* Group chat is supported (however at this writing you cannot leave a group or search for to join).&lt;br /&gt;
* Local chat and IM history is supported.&lt;br /&gt;
* Can log into other grids.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://www.slitechat.org/ Project page]&lt;br /&gt;
* Source code: [http://www.slitechat.org/download/ Source details]&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== MetaPay for iPhone and iPod Touch ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Send L$ with a simple to use and free iPhone App. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
MetaPay is a simple and fun way to send Linden Dollars from your iPhone and iPod touch for FREE! Out with friends and want to pay your part of the tab but have no cash? Use MetaPay to send L$ to your friends in Second Life® instead. Or use it to send L$ for any in-world use without firing up the full Second Life® client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Free in the AppStore: [http://bit.ly/metapay Open in iTunes]&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;/div&gt;</summary>
		<author><name>Ayamo Nozaki</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Downloads&amp;diff=1155325</id>
		<title>Downloads</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Downloads&amp;diff=1155325"/>
		<updated>2011-10-02T12:39:30Z</updated>

		<summary type="html">&lt;p&gt;Ayamo Nozaki: /* Other Third Party Viewers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Help|Viewer=*}}{{RightToc}}&lt;br /&gt;
&lt;br /&gt;
= Linden Lab Viewers =&lt;br /&gt;
&lt;br /&gt;
The following viewers are available on the official &#039;&#039;&#039;[https://secondlife.com/support/downloads/index.php Downloads]&#039;&#039;&#039; page:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;Second Life Viewer&#039;&#039;&#039; (a.k.a. the official Viewer, regular Viewer etc.)&lt;br /&gt;
; &#039;&#039;&#039;Second Life Beta Viewer&#039;&#039;&#039;&lt;br /&gt;
: Available approximately weekly, possibly slightly less stable than the Second Life Viewer, but with the  features and fixes that will be in the next Second Life Viewer.&lt;br /&gt;
&lt;br /&gt;
== Development Releases ==&lt;br /&gt;
&lt;br /&gt;
These viewers are released from time to time by viewer development teams within Linden Lab; they contain features and fixes that are not yet even in the Beta version:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;[[Linden Lab Official:Alternate Viewers#Second Life Project Viewers|Project Viewers]]&#039;&#039;&#039;&lt;br /&gt;
: Provide an early look at new features under development before those are ready to get into the main development stream.&lt;br /&gt;
; &#039;&#039;&#039;[[Downloading test builds|Development Viewer]]&#039;&#039;&#039;&lt;br /&gt;
: Features and fixes that are still warm from the creative fires of development.&lt;br /&gt;
&lt;br /&gt;
== Old Releases ==&lt;br /&gt;
The [[Release Notes]] pages for many past versions contain links to the corresponding downloads.&lt;br /&gt;
{{KBwarning|Past Viewer versions might have &#039;&#039;&#039;known security issues&#039;&#039;&#039;, can be partially or fully &#039;&#039;&#039;incompatible to current server versions&#039;&#039;&#039; and obviously will be &#039;&#039;&#039;lacking newer features&#039;&#039;&#039;. Use them at your own risk.}}&lt;br /&gt;
&lt;br /&gt;
{{anchor|non-linden}} &amp;lt;!-- target for [[Alternate viewers]] redirect --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Third Party Directory Viewers =&lt;br /&gt;
&lt;br /&gt;
{{:Third Party Viewer Directory}}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Other Third Party Viewers =&lt;br /&gt;
&lt;br /&gt;
{{KBcaution|The following viewers have either not applied for or have been denied listings in the Third Party Viewer Directory.}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Whether or not a viewer developer chooses to self-certify by applying for listing in the directory, all viewers connecting to Second Life must comply with the [https://secondlife.com/corporate/tpv.php Policy on Third-Party Viewers]; listing in the directory is not a requirement.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note to authors: If you make a viewer available make sure to include platform, version numbers and dates.&#039;&#039;&lt;br /&gt;
{{Anchor|Viewers}}&lt;br /&gt;
{|class=&amp;quot;wikitable sortable collapsible&amp;quot; {{prettytable}}&lt;br /&gt;
|+ &#039;&#039;click the boxed arrows to sort on columns&#039;&#039;&lt;br /&gt;
|- {{KBtablehead}}&lt;br /&gt;
! Name !! {{HoverText|Type|Graphic/Text}} !! {{HoverText|First release|Specified in YYYY-MM-DD}} !! {{HoverText|Latest Release|Specified in YYYY-MM-DD}} !! {{HoverText|Status|Active/Inactive/Discontinued}} !! {{HoverText|W|For Windows}} &amp;lt;ref name=&amp;quot;available&amp;quot;&amp;gt;&amp;quot;X&amp;quot;: Available with binary distribution&amp;lt;/ref&amp;gt;!! {{HoverText|M|For Macintosh}} &amp;lt;ref name=&amp;quot;available&amp;quot;/&amp;gt; !! {{HoverText|L|For Linux(Ubuntu, Debian or so)}} &amp;lt;ref name=&amp;quot;available&amp;quot;/&amp;gt; !! {{HoverText|i|For iPhone/iPod Touch}} &amp;lt;ref name=&amp;quot;available&amp;quot;/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[#AjaxLife]] || Text || || 2008-09-15 || Active ||X||X||X||X&lt;br /&gt;
|-&lt;br /&gt;
| [[#Cool VL Viewer]] || Graphic || 2007-11-16 || 2011-10-01 || Active ||X||X||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#Combat Cubed]] || Graphic || || 2010-06-16 || Active ||X|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#Exodus Viewer]] || Graphic || 2011-08-28 || 2011-08-28 || Active ||X||X||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#Hippo OpenSim Viewer]] || Graphic || || 2010-04-24 || Active ||X|| ||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#MetaPay for iPhone and iPod Touch]] || Text || ||  || || || || ||X&lt;br /&gt;
|-&lt;br /&gt;
| [[#Milk Release Client]] || Graphic || || 2010-01-20 || Inactive || ||X||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#omvviewer-light]] || Text || || 2009-08-25 || Active ||X|| ||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#Rainbow Viewer / Cool Viewer]] || Graphic || || 2011-07-10 || Active ||X||X||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#RealXtend Edition]] || Graphic || || 2008-07-28 || Active ||X|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#SLiteChat]] || Text || || || Active ||X||X||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#TEKSTUFF Viewers]] || Graphic || || 2010-04-20 || Active ||X|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#Whisper (SlXSLChat)]] || Text || || 2010-05-09 || Active ||X||X||X||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Graphical Viewers ==&lt;br /&gt;
&lt;br /&gt;
=== Cool VL Viewer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This viewer was created and is maintained by {{User|Henri Beauchamp}} (This viewer was formerly known as the &amp;quot;Cool SL Viewer&amp;quot; and its first public release was v1.18.4.3, released on 2007-11-16). It combines elements of several of the other viewers, as well as extra features, bug fixes and extra patches, all very carefully tested.&lt;br /&gt;
&lt;br /&gt;
It puts emphasis on high UI coherency from one version to the other (meaning no bad surprise for &amp;quot;old timers&amp;quot;) while staying in sync with Linden Lab&#039;s official viewer features, high stability and reliability, and a high reactivity to new patches and bug fixes provided by the Open Source community.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The Cool VL Viewer is TPV policy compliant.&#039;&#039;&#039; Please see [http://sldev.free.fr/CoolVLViewerReadme.html its TPV TOS].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Extra Features &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Reverses many of the unpopular interface changes, restoring separate friends and groups floaters and reinstating the packet loss and bandwidth indicators, the old toolbar and buttons layouts, the old/normal commands layout in the pie menus, the &amp;quot;All(old)&amp;quot; search tab, the old style (name-sortable) &amp;quot;Groups&amp;quot; search tab, the &amp;quot;Fly&amp;quot; button in the movement controls floater, and &#039;&#039;&#039;optionally&#039;&#039;&#039; reinstating the old, more visible, status bar icons and/or tracking dots in the mini-map, and the old chat history floater (without chat input line). Also fixes some UI regressions (missing buttons in some floaters, or visited landmarks tracking in inventory for example).&lt;br /&gt;
* Implements the &amp;quot;RestrainedLove&amp;quot; API (formerly known as &amp;quot;RestrainedLife&amp;quot;), based on Marine Kelley&#039;s reference patch (switchable and disabled by default).&lt;br /&gt;
* Allows to configure the date and time formats to match your locale or personal preferences (including with optional seconds for chat and IM timestamps).&lt;br /&gt;
* Allows to wear/remove attachments and clothing items on double-click in inventory.&lt;br /&gt;
* Allows to optionally prevent notifications to show and be logged in the main chat.&lt;br /&gt;
* Allows to disable typing sounds.&lt;br /&gt;
* MUD/MUSH/MUCK/MUX style &amp;quot;poses&amp;quot; (i.e. you can type &amp;quot;:&amp;quot; instead of &amp;quot;/me &amp;quot; to emote), and OOC double parenthesis auto-close (i.e. you can type: &amp;quot;((phone, BRB&amp;quot; and it will show as &amp;quot;((phone, BRB))&amp;quot;).&lt;br /&gt;
* Allows to hide the &amp;quot;Master volume&amp;quot; when not needed in the panel overlay.&lt;br /&gt;
* Allows to build large prims (up to 256m in any or all dimensions) on OpenSim (not on SL, because of server-side limitations).&lt;br /&gt;
* Improved friends list floater (with info about what your friends allow you to see: tehri online status and/or their position on the map).&lt;br /&gt;
* Improved build tools floater (smaller increments in several parameters, extra &amp;quot;slice&amp;quot; parameter for some prims, transparency up to 100%, check box toggle for drag distance limit, adjustable number of decimals in Object tab for the position/size/rotation parameters, &amp;quot;Align&amp;quot; tool). Also allows to set the &amp;quot;invisible&amp;quot; texture from the texture picker (for invisi-prims).&lt;br /&gt;
* Improved texture preview floater (with aspect ratio combo).&lt;br /&gt;
* Improved notecard floater (with Edit menu and Search/replace feature).&lt;br /&gt;
* Improved mini-map with panning, larger zooming range, specific symbol for avatars above 1024m (work around for a limitation of current server and viewer versions), etc...&lt;br /&gt;
* Improved beacons: can filter beacons based on owner (you, others or anyone), can highlight attachments, can dissociate non-object sound sources, can keep beacons &amp;quot;always on&amp;quot; even when the beacons floater is closed.&lt;br /&gt;
* Allows to export and import objects you own and created as XML files (for backup and restore purpose, or to transfer objects from one grid to another).&lt;br /&gt;
* Allows to connect to all existing grids (and not only LL&#039;s) from the login screen.&lt;br /&gt;
* Allows network bandwidth up to 10000Kbps.&lt;br /&gt;
* Allows to save/compile scripts present in the inventory as Mono scripts.&lt;br /&gt;
* Allows to teleport to double-clicked locations on screen.&lt;br /&gt;
* Allows to sit anywhere &amp;quot;on the ground&amp;quot;.&lt;br /&gt;
* Allows to adjust the Z offset (height above the floor) for playing animations.&lt;br /&gt;
* Allows to cache the inventory in the background after login (for faster inventory operations).&lt;br /&gt;
* Allows to preview animations on your avatar prior to uploading them.&lt;br /&gt;
* Implements a group titles floater.&lt;br /&gt;
* Implements a radar floater.&lt;br /&gt;
* Implements a teleports history floater.&lt;br /&gt;
* Implements a &amp;quot;Worn&amp;quot; tab in the inventory floater, and a search/filter by item name, description or creator.&lt;br /&gt;
* Implements &amp;quot;speed rezzing&amp;quot; on login and TPs.&lt;br /&gt;
* Implements an object &amp;quot;area search&amp;quot; floater.&lt;br /&gt;
* Implements the newest LSL functions, highlighting them properly (with tooltips) in the script editor and allowing to compile them. Also implements fully llTextBox() and the AGENT_AUTOPILOT flag with llGetAgentInfo().&lt;br /&gt;
* Allows to ignore (and not only decline) friendship and calling card offers.&lt;br /&gt;
* Allows to change how minimized floaters are stacked (top/bottom, bottom/top, left/right, right/left, fraction of the screen width to use for the stack).&lt;br /&gt;
* Shows avatar keys in profile (in &amp;quot;My notes&amp;quot; tab).&lt;br /&gt;
* Shows the avatar true height in the appearance floater.&lt;br /&gt;
* Renders properly objects worn on the illegal attachment points defined in some hacked third parties viewers.&lt;br /&gt;
* &#039;&#039;&#039;NEW: Provides Mesh rendering support !&#039;&#039;&#039; (v1.26.1 branch only)&lt;br /&gt;
* &#039;&#039;&#039;Provides full support for the new Alpha and Tattoo wearables !&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Provides inventory item links support !&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Provides multiple attachments per point support !&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Provides display names support !&#039;&#039;&#039;&lt;br /&gt;
* Provides Avatar Physics support.&lt;br /&gt;
* Provides the new SL web search engine as an option.&lt;br /&gt;
* Provides access to web profiles.&lt;br /&gt;
* Provides support for setting the new parcel flags (avatar visibility, sounds playing restrictions).&lt;br /&gt;
* Allows to filter (Allow/Deny/BlackList/Whitelist) media and audio streams URLs to protect your privacy against IP snatchers.&lt;br /&gt;
* Many bugfixes by Henri Beauchamp, Nicholaz Beresford, Gigs Taggart, McCabe Maxsted and others.&lt;br /&gt;
* More minor features and improvements, to be discovered on the [http://sldev.free.fr/ website]...&lt;br /&gt;
* All switchable extra features easily configurable via a &amp;quot;Cool features&amp;quot; tab in the preferences floater.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://sldev.free.fr/ The Cool VL Viewer homepage]&lt;br /&gt;
* Message board: [http://sldev.free.fr/forum/ Cool VL Viewer forum]&lt;br /&gt;
* Linux viewer: see the [http://sldev.free.fr/ The Cool VL Viewer homepage] for files and installation instructions.&lt;br /&gt;
* Windows viewer: see the [http://sldev.free.fr/ The Cool VL Viewer homepage] for files and installation instructions.&lt;br /&gt;
* MacOS X viewer: [http://hyangreflections.blogspot.com/ See Hyang Zhao&#039;s site] for files and instructions.&lt;br /&gt;
* Source code: The standard Linden codebase is used, with the addition of the patches listed and linked to on the homepage.&lt;br /&gt;
* Screen shots: [http://sldev.free.fr/index.php?page=features Key features and screen shots]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Version (stable branch): 1.26.0.21 Date: 1st October 2011&lt;br /&gt;
* Version (experimental branch): 1.26.1.9 Date: 1st October 2011&lt;br /&gt;
* Status: Active.&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Exodus Viewer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Exodus Viewer is a specialized third party combat viewer for Second Life.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Major Features &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Based on Secondlife 3.0.6, and keeps upto date with the latest features and fixes!&lt;br /&gt;
* Various built in HUDs, such as a range finder, and situational awareness HUD.&lt;br /&gt;
* A bunch of friend-foe identification features.&lt;br /&gt;
* Allows you to adjust minimap colors even in mass, by right-clicking a selection on the minimap.&lt;br /&gt;
* Various adjustments on how the minimap appears, to make it more useful for combat.&lt;br /&gt;
* Various chat commands.&lt;br /&gt;
* Highly customizable settings related to minimap, default colors and even script windows.&lt;br /&gt;
* Options to automatically disable various rendering types such as clouds, water, foot shadows, etc.&lt;br /&gt;
* Request teleport feature, allowing your friends to request a teleport from you!&lt;br /&gt;
* Uses the latest Kakadu.&lt;br /&gt;
* And much more, see the change logs that are posted each release on our [http://exodusviewer.com/ blog!]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Website: http://exodusviewer.com/&lt;br /&gt;
* Download page: http://exodusviewer.com/downloads.html&lt;br /&gt;
* Source code: http://hg.exodusviewer.com/viewer/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Version: 11.09.28.2&lt;br /&gt;
* Date: September 28, 2011&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Hippo OpenSim Viewer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The Hippo OpenSim Viewer is a modified Second Life viewer, targeted at OpenSim users. It allows building up to a height of 10,000 meters, scaling prims up to 256 x 256 x 256 meters and other exciting features. More specific OpenSim features are under development.&lt;br /&gt;
The last developer blog commented: Releasing Hippo OpenSim Viewer Version 0.6.3. This release adds a Windows uninstaller and small changes to comply to the Linden Lab Policy on Third-Party Viewers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Availability &#039;&#039;&#039;&lt;br /&gt;
Is currently available for Linux and Windows.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: http://mjm-labs.com/viewer/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Version: 0.6.3&lt;br /&gt;
* Platforms:&lt;br /&gt;
** Binary available for Windows and Linux&lt;br /&gt;
** Source available (unspecified)&lt;br /&gt;
* Date: April 24, 2010&lt;br /&gt;
* Status: Active + updated&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Meerkat ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Goals &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* To create a fully GPL viewer (no proprietary dependencies)&lt;br /&gt;
* To encourage a community of developers that will submit patches for prompt integration&lt;br /&gt;
* To have the freedom to make the sort of changes that Linden Lab has traditionally been unable to integrate (translation patches, refactoring, fixing intentionally crippled features, changes that touch many files)&lt;br /&gt;
* To retain compatibility with Linden Lab&#039;s grid and protocols, present and future&lt;br /&gt;
* To implement a loosely coupled cross-grid functionality that requires no central authentication authority.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Extra Features &#039;&#039;&#039;&lt;br /&gt;
* Log out and back in without quitting&lt;br /&gt;
* Loosely coupled intergrid teleport -- In Process&lt;br /&gt;
* Most of the other changes common to third party viewers&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;del&amp;gt;Website: [http://www.meerkatviewer.org/ Meerkat Viewer]&amp;lt;/del&amp;gt; (note: the Meerkat site is down)&lt;br /&gt;
* Direct download link: [http://code.google.com/p/meerkat-viewer/downloads/list Download versions of this viewer]&lt;br /&gt;
* Source code: svn checkout http://meerkat-viewer.googlecode.com/svn/trunk/ meerkat&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Version : 0.2.x&lt;br /&gt;
* Date : September 6, 2009&lt;br /&gt;
* Status : Discontinued, website offline. Source and binary downloads still available on google code (see above).&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Nicholaz Edition ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
These are Windows viewer based on SL builds with a focus on stability, usability and performance (see [http://www.blueflash.cc/users/nicholaz/EyeCandy/!!Installation.txt Installation.txt] for homebrew disclaimer). Mac and Linux variants are available through other open sourcers (links on the website).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Extra Features &#039;&#039;&#039;&lt;br /&gt;
* Improved stability.&lt;br /&gt;
* Lower memory footprint.&lt;br /&gt;
* GUI redesigns.&lt;br /&gt;
* Workarounds for common annoyances. (Group IM Filtering, &amp;quot;Release Key&amp;quot; button, etc.)&lt;br /&gt;
* see [http://nicholaz-beresford.blogspot.com/2008/05/version-overview.html this entry] for an overview of different versions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://nicholaz-beresford.blogspot.com/ Nicholaz Beresford on Blogspot]&lt;br /&gt;
* Direct download link: [http://www.blueflash.cc/users/nicholaz Download versions of this viewer]&lt;br /&gt;
* Source code: Look at the [http://www.blueflash.cc/users/nicholaz download site] for the source-xxx-zip files in the respective folders and see the readme.txt inside the archives&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Date: September 7, 2009&lt;br /&gt;
* Status: Discontinued&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Onrez Viewer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The Onrez viewer was made by the Onrez company in connection with a Second Life themed story on the high tech forensics based TV show &amp;quot;CSI: New York&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Extra Features &#039;&#039;&#039;&lt;br /&gt;
* A back and history button for teleports&lt;br /&gt;
* In-viewer web browsing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Comment &#039;&#039;&#039;&lt;br /&gt;
The source code for this viewer is closed source.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Status : Discontinued, download no longer available.&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Rainbow Viewer / Cool Viewer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Based on the offical SecondLife sourcecode licensed under GPL2, this speedy Metaverse Client can connect you to a huge variety of exciting Virtual Worlds! It incorporates a lot of improved, new, up- and backported features and fixes that make the fast and rock stable RV/CV the client of choice for many users.&lt;br /&gt;
&lt;br /&gt;
This viewer includes many patches and changes from a lot of different people and sources which I am very grateful to be able to use. Credits are given to everyone I know, in case I missed someone I sincerely apologize.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rainbow / Cool are TPV compliant.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Thanks to Henri Beauchamp who laid the foundation for this viewer with his Cool SL Viewer. Special thanks to Winter Ventura for the Cool Viewer logo and Jacek Antonelli and Peter Stindberg for the Rainbow Viewer logo :). And to all the others who helped and supported me, especially the people involved and behind Imprudence!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Some incomprehensive list of features &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A major improvement is an up-to-date OpenGL implementation that especially helps users plagued by ATI&#039;s Catalyst drivers but also leads to measurable improvements of overall graphics performance by 30...100% compared to the official viewer; depending on your system. Rainbow Viewer features the current user interface whereas Cool Viewer spots the leaner cleaner and more configurable legacy UI. It&#039;s all about choice :).&lt;br /&gt;
&lt;br /&gt;
* New 1.22.12.0 code baseline&lt;br /&gt;
* CV&#039;s legacy User interface with a clean, simple and userfriendly layout or Rainbow Viewers current official UI, you choose!&lt;br /&gt;
* Improved Graphics rendering, especially for ATI users (measured &amp;gt; 1/3 faster than the official viewer)&lt;br /&gt;
* Alpha and Tattoo Layer support from Second Life Viewer 2.x&lt;br /&gt;
* Updated tested list of Virtual World grids&lt;br /&gt;
* Marine Kelley&#039;s RestrainedLove (off per default)&lt;br /&gt;
* Full Adult Compliance&lt;br /&gt;
* Redesigned and &amp;quot;up-ported&amp;quot; search functionality, probably the best search in any viewer nowadays&lt;br /&gt;
* Enhanced Breast Physics&lt;br /&gt;
* Temporary texture and animation upload&lt;br /&gt;
* Better inventory search for content, description and creator&lt;br /&gt;
* Low lag radar and AV management tools&lt;br /&gt;
* Viewer skinning&lt;br /&gt;
* Object and Shape export/import, limited to creator&lt;br /&gt;
* Bulk permission editing&lt;br /&gt;
* Last owner display to track content theft&lt;br /&gt;
* &amp;quot;Worn&amp;quot; tab in inventory&lt;br /&gt;
* Double click to wear attachments&lt;br /&gt;
* Enhanced building tools&lt;br /&gt;
* Flexible Sculpties&lt;br /&gt;
* Large Prims (currently only for Opensim grids due to SL limitations)&lt;br /&gt;
* Maximized Network Bandwidth&lt;br /&gt;
* Flexible Grid selection at login for SL and all OpenSims&lt;br /&gt;
* Teleport History and speedy doubleclick teleport&lt;br /&gt;
* Avatar UUID in profiles&lt;br /&gt;
* Features tab in Preferences for easy switching of features&lt;br /&gt;
* Optimized latest OpenJPEG 1.3&lt;br /&gt;
* A large number of other goodies and stability fixes that improve your overall experience. Please check the [http://code.google.com/p/coolviewer/wiki/ReleaseNotes Release Notes] for details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://my.opera.com/boylane Rainbow Viewers for  Virtual Worlds]&lt;br /&gt;
* Direct download link: [http://coolviewer.googlecode.com Binary versions on Google Code]&lt;br /&gt;
* Source code: [http://github.com/boy Sources on Github]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Rainbow Viewer 1.22.12 R7&lt;br /&gt;
* Rainbow Viewer Cool Edition (Cool Viewer) 1.22.12 R13&lt;br /&gt;
* Rainbow Viewer Netbook Edition Version 1.2 (speedy pre-Windlight 1.19.0.5)&lt;br /&gt;
* Date: July 10, 2011&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== RealXtend Edition ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The realXtend viewer is a heavily modified version of the Linden Lab&#039;s Second Life client by a partnership of two Finnish companies, ADMINO technologies and LudoCraft.&lt;br /&gt;
&lt;br /&gt;
The successor to the realXtend viewer is Naali (release 0.3.1 on 21st September 2010, download from http://code.google.com/p/realxtend-naali/downloads/list).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Extra Features &#039;&#039;&#039;&lt;br /&gt;
    * Second life compatibility mode for use in SL and Opensim worlds&lt;br /&gt;
    * Teleports between realXtend and Secondlife&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: http://www.realxtend.org/&lt;br /&gt;
* Direct download link: http://www.realxtend.org/downloads.html&lt;br /&gt;
* Source code: http://sourceforge.net/projects/realxtendviewer/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Version: 0.4.2&lt;br /&gt;
* Date: September 24, 2009&lt;br /&gt;
* Status: Discontinued, replaced by Naali.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Combat Cubed ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This client is aimed mostly at the SL Military, but sports quite a few interesting improvements that make it worth taking a look at.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Originally known as Vertical Life.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Major Features &#039;&#039;&#039;&lt;br /&gt;
* Enhanced Look &amp;amp; Feel, for example flexible camera movement&lt;br /&gt;
* Prototype Script API, secure and parallel&lt;br /&gt;
* Slimmed down for FPS combat&lt;br /&gt;
* Identification, Friend versus Foe, mostly under the hood now but soon exposed&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Splash: http://bit.ly/cXOcDX&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Version: 1.0&lt;br /&gt;
* Date: June 16, 2010&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== TEKSTUFF Viewers ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The TEKSTUFF viewers are created to enable Youtube movies on TEKSTUFF media screens inside Second Life. The TEKSTUFF viewers are slight modifications of already available viewers like the regular SL 1.23.5 viewer and the Emerald 1634 viewer. Apart from that, the Emerald based viewer is fixed so it can be used in Opensim grids as well.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Web presence: http://www.tekstuff.net/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; TODO &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Make a Linux viewer&lt;br /&gt;
* Make a Mac OS viewer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Major Features &#039;&#039;&#039;&lt;br /&gt;
* All the functionality of the viewer it was based upon (Linden Lab 1.23.5 or Emerald 1634)&lt;br /&gt;
* Will allow you to view Youtube movies on TEKSTUFF media screens&lt;br /&gt;
* The Emerald based viewer can also be used in OpenSim grids (texture loading is fixed)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Version: 1.23.5 (Linden Lab &amp;amp; Emerald)&lt;br /&gt;
* Date: April 20, 2010&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Milk Release Client ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This client is aimed at development of all kinds, brought together by Project Neox. Focusing on advanced non-profit development of Second Life and various features which content creators would find suitable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; TODO &#039;&#039;&#039;&lt;br /&gt;
* XStreetSL shopping UI client-kiosk&lt;br /&gt;
* Compile Linux and Mac OS X builds&lt;br /&gt;
* Multiple link object texturing, via name&lt;br /&gt;
* Completion of 3-Dimensional Mini Map&lt;br /&gt;
* Region Statistics notifications before teleports&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Major Features &#039;&#039;&#039;&lt;br /&gt;
* Rendering options for individual avatars&lt;br /&gt;
* Secure Voice-chat usage&lt;br /&gt;
* Extensions in avatar editing&lt;br /&gt;
* Additional Attachment points&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Version: 1.23.5&lt;br /&gt;
* Date: January 20, 2010&lt;br /&gt;
* Status: Discontinued and will not be available for download.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
==Text-Only Viewers==&lt;br /&gt;
&lt;br /&gt;
===AjaxLife ===&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
Browser based Second Life client, created by Katharine Berry. The only web-browser client which made it a lifeline for residents who could not use a full graphical viewer, or who could not download other text-only clients because of limitations such as corporate firewalls.&lt;br /&gt;
&lt;br /&gt;
(No longer working)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: http://ajaxlife.net/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Version: 0.6.1.2&lt;br /&gt;
* Date: May 21, 2010&lt;br /&gt;
* Platform: Platform-Independant&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== omvviewer-light ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; A Text client for the 3D Metaverse &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
omvviewer-light is a text client for the 3D Metaverse including SecondLife, written from Scratch (but using the libomv library for protocol handling). It&#039;s GUI is created in Gtk# which is cross-platform making this the only current Text client that is still active and cross platform. Tested on Linux (32/64 bit) and Windows (not 64-bit windows).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Features &#039;&#039;&#039;&lt;br /&gt;
To many to list here in detail please see the project page below but in summary, Full inventory control, Full Chat/IM/Group IM&#039;s. Object search and interaction. Realtime local maps. Parcel displays. Read and Edit NoteCards and Scripts. View profiles. Friends Lists etc .....&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://omvviewer-light.byteme.org.uk/ Project page]&lt;br /&gt;
* Source code: [http://omvviewer-light.byteme.org.uk/source.shtml Source details]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Date: August 25, 2009&lt;br /&gt;
* Version: 0.48.0.6&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Whisper (SlXSLChat) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; A light-weight yet feature rich text-only Second Life client &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
Whisper is a text-only Second Life client that comes in two parts. The client is written in Java (so it can run on many platforms). The client connects to a &amp;quot;transport&amp;quot;, which is written in C# and uses LibOpenMetaVerse. The idea behind this architecture is that if you don&#039;t like the client, you can write your own and not have to worry about implementing the Second Life protocol yourself. The entire project is open source and published under the GPLv3 licence.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Features &#039;&#039;&#039;&lt;br /&gt;
* Public chat&lt;br /&gt;
* Instant messaging&lt;br /&gt;
* Group chat&lt;br /&gt;
* Search/join/leave groups&lt;br /&gt;
* Search for avatars&lt;br /&gt;
* Image retrieval&lt;br /&gt;
* Profile retrieval&lt;br /&gt;
* Notifications / popups as you would get in Second Life (e.g. group notices, balance changes, inventory offers)&lt;br /&gt;
* Teleportation (home, to area within current sim, to nearby avatar)&lt;br /&gt;
* Nearby avatar tracking on map of Sim&lt;br /&gt;
* Autopilot navigation to nearby avatars&lt;br /&gt;
* URL highlighting&lt;br /&gt;
* Encrypted traffic between client and transport&lt;br /&gt;
* Transport can be run anywhere, the client connects via TCP/IP&lt;br /&gt;
* Client only sends MD5 hashed password to transport&lt;br /&gt;
* On April 20, 2010, SlXSLChat has rebranded to “Whisper”.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://whisper.slx.cc/ Whisper]&lt;br /&gt;
* SourceForce Project Page: [https://sourceforge.net/projects/slxslchat/ Project Page]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Date: May 9, 2010&lt;br /&gt;
* Version: 1.3&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== SLeek ===&lt;br /&gt;
First text only viewer ever, mentioned for completeness, not actively maintained anymore. MetaBolt is based on SLeek.&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== SLiteChat ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; A Lite IM/Chat Text-only Client for Second Life &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
SLiteChat (pronounced &amp;quot;slight-chat&amp;quot;) is a completely open source text-only IM/chat client for use with Second Life. Use it to talk to your friends without having to load up all of those heavy graphic goodies. Useful for those at work times.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Features &#039;&#039;&#039;&lt;br /&gt;
* Communicate in-world with people on your friends list. Full adding/removing and search for Residents supported.&lt;br /&gt;
* Group chat is supported (however at this writing you cannot leave a group or search for to join).&lt;br /&gt;
* Local chat and IM history is supported.&lt;br /&gt;
* Can log into other grids.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://www.slitechat.org/ Project page]&lt;br /&gt;
* Source code: [http://www.slitechat.org/download/ Source details]&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== MetaPay for iPhone and iPod Touch ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Send L$ with a simple to use and free iPhone App. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
MetaPay is a simple and fun way to send Linden Dollars from your iPhone and iPod touch for FREE! Out with friends and want to pay your part of the tab but have no cash? Use MetaPay to send L$ to your friends in Second Life® instead. Or use it to send L$ for any in-world use without firing up the full Second Life® client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Free in the AppStore: [http://bit.ly/metapay Open in iTunes]&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;/div&gt;</summary>
		<author><name>Ayamo Nozaki</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Downloads&amp;diff=1155173</id>
		<title>Downloads</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Downloads&amp;diff=1155173"/>
		<updated>2011-09-29T13:08:41Z</updated>

		<summary type="html">&lt;p&gt;Ayamo Nozaki: /* Exodus Viewer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Help|Viewer=*}}{{RightToc}}&lt;br /&gt;
&lt;br /&gt;
= Linden Lab Viewers =&lt;br /&gt;
&lt;br /&gt;
The following viewers are available on the official &#039;&#039;&#039;[https://secondlife.com/support/downloads/index.php Downloads]&#039;&#039;&#039; page:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;Second Life Viewer&#039;&#039;&#039; (a.k.a. the official Viewer, regular Viewer etc.)&lt;br /&gt;
; &#039;&#039;&#039;Second Life Beta Viewer&#039;&#039;&#039;&lt;br /&gt;
: Available approximately weekly, possibly slightly less stable than the Second Life Viewer, but with the  features and fixes that will be in the next Second Life Viewer.&lt;br /&gt;
&lt;br /&gt;
== Development Releases ==&lt;br /&gt;
&lt;br /&gt;
These viewers are released from time to time by viewer development teams within Linden Lab; they contain features and fixes that are not yet even in the Beta version:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;[[Linden Lab Official:Alternate Viewers#Second Life Project Viewers|Project Viewers]]&#039;&#039;&#039;&lt;br /&gt;
: Provide an early look at new features under development before those are ready to get into the main development stream.&lt;br /&gt;
; &#039;&#039;&#039;[[Downloading test builds|Development Viewer]]&#039;&#039;&#039;&lt;br /&gt;
: Features and fixes that are still warm from the creative fires of development.&lt;br /&gt;
&lt;br /&gt;
== Old Releases ==&lt;br /&gt;
The [[Release Notes]] pages for many past versions contain links to the corresponding downloads.&lt;br /&gt;
{{KBwarning|Past Viewer versions might have &#039;&#039;&#039;known security issues&#039;&#039;&#039;, can be partially or fully &#039;&#039;&#039;incompatible to current server versions&#039;&#039;&#039; and obviously will be &#039;&#039;&#039;lacking newer features&#039;&#039;&#039;. Use them at your own risk.}}&lt;br /&gt;
&lt;br /&gt;
{{anchor|non-linden}} &amp;lt;!-- target for [[Alternate viewers]] redirect --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Third Party Directory Viewers =&lt;br /&gt;
&lt;br /&gt;
{{:Third Party Viewer Directory}}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Other Third Party Viewers =&lt;br /&gt;
&lt;br /&gt;
{{KBcaution|The following viewers have either not applied for or have been denied listings in the Third Party Viewer Directory.}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Whether or not a viewer developer chooses to self-certify by applying for listing in the directory, all viewers connecting to Second Life must comply with the [https://secondlife.com/corporate/tpv.php Policy on Third-Party Viewers]; listing in the directory is not a requirement.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note to authors: If you make a viewer available make sure to include platform, version numbers and dates.&#039;&#039;&lt;br /&gt;
{{Anchor|Viewers}}&lt;br /&gt;
{|class=&amp;quot;wikitable sortable collapsible&amp;quot; {{prettytable}}&lt;br /&gt;
|+ &#039;&#039;click the boxed arrows to sort on columns&#039;&#039;&lt;br /&gt;
|- {{KBtablehead}}&lt;br /&gt;
! Name !! {{HoverText|Type|Graphic/Text}} !! {{HoverText|First release|Specified in YYYY-MM-DD}} !! {{HoverText|Latest Release|Specified in YYYY-MM-DD}} !! {{HoverText|Status|Active/Inactive/Discontinued}} !! {{HoverText|W|For Windows}} &amp;lt;ref name=&amp;quot;available&amp;quot;&amp;gt;&amp;quot;X&amp;quot;: Available with binary distribution&amp;lt;/ref&amp;gt;!! {{HoverText|M|For Macintosh}} &amp;lt;ref name=&amp;quot;available&amp;quot;/&amp;gt; !! {{HoverText|L|For Linux(Ubuntu, Debian or so)}} &amp;lt;ref name=&amp;quot;available&amp;quot;/&amp;gt; !! {{HoverText|i|For iPhone/iPod Touch}} &amp;lt;ref name=&amp;quot;available&amp;quot;/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[#AjaxLife]] || Text || || 2008-09-15 || Active ||X||X||X||X&lt;br /&gt;
|-&lt;br /&gt;
| [[#Cool VL Viewer]] || Graphic || 2007-11-16 || 2011-09-23 || Active ||X||X||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#Combat Cubed]] || Graphic || || 2010-06-16 || Active ||X|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#Exodus Viewer]] || Graphic || 2010-08-28 || 2010-08-28 || Active ||X||X||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#Hippo OpenSim Viewer]] || Graphic || || 2010-04-24 || Active ||X|| ||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#MetaPay for iPhone and iPod Touch]] || Text || ||  || || || || ||X&lt;br /&gt;
|-&lt;br /&gt;
| [[#Milk Release Client]] || Graphic || || 2010-01-20 || Inactive || ||X||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#omvviewer-light]] || Text || || 2009-08-25 || Active ||X|| ||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#Rainbow Viewer / Cool Viewer]] || Graphic || || 2011-07-10 || Active ||X||X||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#RealXtend Edition]] || Graphic || || 2008-07-28 || Active ||X|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#SLiteChat]] || Text || || || Active ||X||X||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#TEKSTUFF Viewers]] || Graphic || || 2010-04-20 || Active ||X|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#Whisper (SlXSLChat)]] || Text || || 2010-05-09 || Active ||X||X||X||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Graphical Viewers ==&lt;br /&gt;
&lt;br /&gt;
=== Cool VL Viewer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This viewer was created and is maintained by {{User|Henri Beauchamp}} (This viewer was formerly known as the &amp;quot;Cool SL Viewer&amp;quot; and its first public release was v1.18.4.3, released on 2007-11-16). It combines elements of several of the other viewers, as well as extra features, bug fixes and extra patches, all very carefully tested.&lt;br /&gt;
&lt;br /&gt;
It puts emphasis on high UI coherency from one version to the other (meaning no bad surprise for &amp;quot;old timers&amp;quot;) while staying in sync with Linden Lab&#039;s official viewer features, high stability and reliability, and a high reactivity to new patches and bug fixes provided by the Open Source community.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The Cool VL Viewer is TPV policy compliant.&#039;&#039;&#039; Please see [http://sldev.free.fr/CoolVLViewerReadme.html its TPV TOS].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Extra Features &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Reverses many of the unpopular interface changes, restoring separate friends and groups floaters and reinstating the packet loss and bandwidth indicators, the old toolbar and buttons layouts, the old/normal commands layout in the pie menus, the &amp;quot;All(old)&amp;quot; search tab, the old style (name-sortable) &amp;quot;Groups&amp;quot; search tab, the &amp;quot;Fly&amp;quot; button in the movement controls floater, and &#039;&#039;&#039;optionally&#039;&#039;&#039; reinstating the old, more visible, status bar icons and/or tracking dots in the mini-map, and the old chat history floater (without chat input line). Also fixes some UI regressions (missing buttons in some floaters, or visited landmarks tracking in inventory for example).&lt;br /&gt;
* Implements the &amp;quot;RestrainedLove&amp;quot; API (formerly known as &amp;quot;RestrainedLife&amp;quot;), based on Marine Kelley&#039;s reference patch (switchable and disabled by default).&lt;br /&gt;
* Allows to configure the date and time formats to match your locale or personal preferences (including with optional seconds for chat and IM timestamps).&lt;br /&gt;
* Allows to wear/remove attachments and clothing items on double-click in inventory.&lt;br /&gt;
* Allows to optionally prevent notifications to show and be logged in the main chat.&lt;br /&gt;
* Allows to disable typing sounds.&lt;br /&gt;
* MUD/MUSH/MUCK/MUX style &amp;quot;poses&amp;quot; (i.e. you can type &amp;quot;:&amp;quot; instead of &amp;quot;/me &amp;quot; to emote), and OOC double parenthesis auto-close (i.e. you can type: &amp;quot;((phone, BRB&amp;quot; and it will show as &amp;quot;((phone, BRB))&amp;quot;).&lt;br /&gt;
* Allows to hide the &amp;quot;Master volume&amp;quot; when not needed in the panel overlay.&lt;br /&gt;
* Allows to build large prims (up to 256m in any or all dimensions) on OpenSim (not on SL, because of server-side limitations).&lt;br /&gt;
* Improved friends list floater (with info about what your friends allow you to see: tehri online status and/or their position on the map).&lt;br /&gt;
* Improved build tools floater (smaller increments in several parameters, extra &amp;quot;slice&amp;quot; parameter for some prims, transparency up to 100%, check box toggle for drag distance limit, adjustable number of decimals in Object tab for the position/size/rotation parameters, &amp;quot;Align&amp;quot; tool). Also allows to set the &amp;quot;invisible&amp;quot; texture from the texture picker (for invisi-prims).&lt;br /&gt;
* Improved texture preview floater (with aspect ratio combo).&lt;br /&gt;
* Improved notecard floater (with Edit menu and Search/replace feature).&lt;br /&gt;
* Improved mini-map with panning, larger zooming range, specific symbol for avatars above 1024m (work around for a limitation of current server and viewer versions), etc...&lt;br /&gt;
* Improved beacons: can filter beacons based on owner (you, others or anyone), can highlight attachments, can dissociate non-object sound sources, can keep beacons &amp;quot;always on&amp;quot; even when the beacons floater is closed.&lt;br /&gt;
* Allows to export and import objects you own and created as XML files (for backup and restore purpose, or to transfer objects from one grid to another).&lt;br /&gt;
* Allows to connect to all existing grids (and not only LL&#039;s) from the login screen.&lt;br /&gt;
* Allows network bandwidth up to 10000Kbps.&lt;br /&gt;
* Allows to save/compile scripts present in the inventory as Mono scripts.&lt;br /&gt;
* Allows to teleport to double-clicked locations on screen.&lt;br /&gt;
* Allows to sit anywhere &amp;quot;on the ground&amp;quot;.&lt;br /&gt;
* Allows to adjust the Z offset (height above the floor) for playing animations.&lt;br /&gt;
* Allows to cache the inventory in the background after login (for faster inventory operations).&lt;br /&gt;
* Allows to preview animations on your avatar prior to uploading them.&lt;br /&gt;
* Implements a group titles floater.&lt;br /&gt;
* Implements a radar floater.&lt;br /&gt;
* Implements a teleports history floater.&lt;br /&gt;
* Implements a &amp;quot;Worn&amp;quot; tab in the inventory floater, and a search/filter by item name, description or creator.&lt;br /&gt;
* Implements &amp;quot;speed rezzing&amp;quot; on login and TPs.&lt;br /&gt;
* Implements an object &amp;quot;area search&amp;quot; floater.&lt;br /&gt;
* Implements the newest LSL functions, highlighting them properly (with tooltips) in the script editor and allowing to compile them. Also implements fully llTextBox() and the AGENT_AUTOPILOT flag with llGetAgentInfo().&lt;br /&gt;
* Allows to ignore (and not only decline) friendship and calling card offers.&lt;br /&gt;
* Allows to change how minimized floaters are stacked (top/bottom, bottom/top, left/right, right/left, fraction of the screen width to use for the stack).&lt;br /&gt;
* Shows avatar keys in profile (in &amp;quot;My notes&amp;quot; tab).&lt;br /&gt;
* Shows the avatar true height in the appearance floater.&lt;br /&gt;
* Renders properly objects worn on the illegal attachment points defined in some hacked third parties viewers.&lt;br /&gt;
* &#039;&#039;&#039;NEW: Provides Mesh rendering support !&#039;&#039;&#039; (v1.26.1 branch only)&lt;br /&gt;
* &#039;&#039;&#039;Provides full support for the new Alpha and Tattoo wearables !&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Provides inventory item links support !&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Provides multiple attachments per point support !&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Provides display names support !&#039;&#039;&#039;&lt;br /&gt;
* Provides Avatar Physics support.&lt;br /&gt;
* Provides the new SL web search engine as an option.&lt;br /&gt;
* Provides access to web profiles.&lt;br /&gt;
* Provides support for setting the new parcel flags (avatar visibility, sounds playing restrictions).&lt;br /&gt;
* Allows to filter (Allow/Deny/BlackList/Whitelist) media and audio streams URLs to protect your privacy against IP snatchers.&lt;br /&gt;
* Many bugfixes by Henri Beauchamp, Nicholaz Beresford, Gigs Taggart, McCabe Maxsted and others.&lt;br /&gt;
* More minor features and improvements, to be discovered on the [http://sldev.free.fr/ website]...&lt;br /&gt;
* All switchable extra features easily configurable via a &amp;quot;Cool features&amp;quot; tab in the preferences floater.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://sldev.free.fr/ The Cool VL Viewer homepage]&lt;br /&gt;
* Message board: [http://sldev.free.fr/forum/ Cool VL Viewer forum]&lt;br /&gt;
* Linux viewer: see the [http://sldev.free.fr/ The Cool VL Viewer homepage] for files and installation instructions.&lt;br /&gt;
* Windows viewer: see the [http://sldev.free.fr/ The Cool VL Viewer homepage] for files and installation instructions.&lt;br /&gt;
* MacOS X viewer: [http://hyangreflections.blogspot.com/ See Hyang Zhao&#039;s site] for files and instructions.&lt;br /&gt;
* Source code: The standard Linden codebase is used, with the addition of the patches listed and linked to on the homepage.&lt;br /&gt;
* Screen shots: [http://sldev.free.fr/index.php?page=features Key features and screen shots]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Version (stable branch): 1.26.0.20 Date: 23 September 2011&lt;br /&gt;
* Version (experimental branch): 1.26.1.8 Date: 23 September 2011&lt;br /&gt;
* Status: Active.&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Exodus Viewer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Exodus Viewer is a specialized third party combat viewer for Second Life.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Major Features &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Based on Secondlife 3.0.6, and keeps upto date with the latest features and fixes!&lt;br /&gt;
* Various built in HUDs, such as a range finder, and situational awareness HUD.&lt;br /&gt;
* A bunch of friend-foe identification features.&lt;br /&gt;
* Allows you to adjust minimap colors even in mass, by right-clicking a selection on the minimap.&lt;br /&gt;
* Various adjustments on how the minimap appears, to make it more useful for combat.&lt;br /&gt;
* Various chat commands.&lt;br /&gt;
* Highly customizable settings related to minimap, default colors and even script windows.&lt;br /&gt;
* Options to automatically disable various rendering types such as clouds, water, foot shadows, etc.&lt;br /&gt;
* Request teleport feature, allowing your friends to request a teleport from you!&lt;br /&gt;
* Uses the latest Kakadu.&lt;br /&gt;
* And much more, see the change logs that are posted each release on our [http://exodusviewer.com/ blog!]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Website: http://exodusviewer.com/&lt;br /&gt;
* Download page: http://exodusviewer.com/downloads.html&lt;br /&gt;
* Source code: http://hg.exodusviewer.com/viewer/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Version: 11.09.28.2&lt;br /&gt;
* Date: September 28, 2011&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Hippo OpenSim Viewer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The Hippo OpenSim Viewer is a modified Second Life viewer, targeted at OpenSim users. It allows building up to a height of 10,000 meters, scaling prims up to 256 x 256 x 256 meters and other exciting features. More specific OpenSim features are under development.&lt;br /&gt;
The last developer blog commented: Releasing Hippo OpenSim Viewer Version 0.6.3. This release adds a Windows uninstaller and small changes to comply to the Linden Lab Policy on Third-Party Viewers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Availability &#039;&#039;&#039;&lt;br /&gt;
Is currently available for Linux and Windows.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: http://mjm-labs.com/viewer/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Version: 0.6.3&lt;br /&gt;
* Platforms:&lt;br /&gt;
** Binary available for Windows and Linux&lt;br /&gt;
** Source available (unspecified)&lt;br /&gt;
* Date: April 24, 2010&lt;br /&gt;
* Status: Active + updated&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Meerkat ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Goals &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* To create a fully GPL viewer (no proprietary dependencies)&lt;br /&gt;
* To encourage a community of developers that will submit patches for prompt integration&lt;br /&gt;
* To have the freedom to make the sort of changes that Linden Lab has traditionally been unable to integrate (translation patches, refactoring, fixing intentionally crippled features, changes that touch many files)&lt;br /&gt;
* To retain compatibility with Linden Lab&#039;s grid and protocols, present and future&lt;br /&gt;
* To implement a loosely coupled cross-grid functionality that requires no central authentication authority.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Extra Features &#039;&#039;&#039;&lt;br /&gt;
* Log out and back in without quitting&lt;br /&gt;
* Loosely coupled intergrid teleport -- In Process&lt;br /&gt;
* Most of the other changes common to third party viewers&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;del&amp;gt;Website: [http://www.meerkatviewer.org/ Meerkat Viewer]&amp;lt;/del&amp;gt; (note: the Meerkat site is down)&lt;br /&gt;
* Direct download link: [http://code.google.com/p/meerkat-viewer/downloads/list Download versions of this viewer]&lt;br /&gt;
* Source code: svn checkout http://meerkat-viewer.googlecode.com/svn/trunk/ meerkat&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Version : 0.2.x&lt;br /&gt;
* Date : September 6, 2009&lt;br /&gt;
* Status : Discontinued, website offline. Source and binary downloads still available on google code (see above).&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Nicholaz Edition ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
These are Windows viewer based on SL builds with a focus on stability, usability and performance (see [http://www.blueflash.cc/users/nicholaz/EyeCandy/!!Installation.txt Installation.txt] for homebrew disclaimer). Mac and Linux variants are available through other open sourcers (links on the website).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Extra Features &#039;&#039;&#039;&lt;br /&gt;
* Improved stability.&lt;br /&gt;
* Lower memory footprint.&lt;br /&gt;
* GUI redesigns.&lt;br /&gt;
* Workarounds for common annoyances. (Group IM Filtering, &amp;quot;Release Key&amp;quot; button, etc.)&lt;br /&gt;
* see [http://nicholaz-beresford.blogspot.com/2008/05/version-overview.html this entry] for an overview of different versions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://nicholaz-beresford.blogspot.com/ Nicholaz Beresford on Blogspot]&lt;br /&gt;
* Direct download link: [http://www.blueflash.cc/users/nicholaz Download versions of this viewer]&lt;br /&gt;
* Source code: Look at the [http://www.blueflash.cc/users/nicholaz download site] for the source-xxx-zip files in the respective folders and see the readme.txt inside the archives&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Date: September 7, 2009&lt;br /&gt;
* Status: Discontinued&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Onrez Viewer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The Onrez viewer was made by the Onrez company in connection with a Second Life themed story on the high tech forensics based TV show &amp;quot;CSI: New York&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Extra Features &#039;&#039;&#039;&lt;br /&gt;
* A back and history button for teleports&lt;br /&gt;
* In-viewer web browsing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Comment &#039;&#039;&#039;&lt;br /&gt;
The source code for this viewer is closed source.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Status : Discontinued, download no longer available.&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Rainbow Viewer / Cool Viewer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Based on the offical SecondLife sourcecode licensed under GPL2, this speedy Metaverse Client can connect you to a huge variety of exciting Virtual Worlds! It incorporates a lot of improved, new, up- and backported features and fixes that make the fast and rock stable RV/CV the client of choice for many users.&lt;br /&gt;
&lt;br /&gt;
This viewer includes many patches and changes from a lot of different people and sources which I am very grateful to be able to use. Credits are given to everyone I know, in case I missed someone I sincerely apologize.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rainbow / Cool are TPV compliant.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Thanks to Henri Beauchamp who laid the foundation for this viewer with his Cool SL Viewer. Special thanks to Winter Ventura for the Cool Viewer logo and Jacek Antonelli and Peter Stindberg for the Rainbow Viewer logo :). And to all the others who helped and supported me, especially the people involved and behind Imprudence!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Some incomprehensive list of features &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A major improvement is an up-to-date OpenGL implementation that especially helps users plagued by ATI&#039;s Catalyst drivers but also leads to measurable improvements of overall graphics performance by 30...100% compared to the official viewer; depending on your system. Rainbow Viewer features the current user interface whereas Cool Viewer spots the leaner cleaner and more configurable legacy UI. It&#039;s all about choice :).&lt;br /&gt;
&lt;br /&gt;
* New 1.22.12.0 code baseline&lt;br /&gt;
* CV&#039;s legacy User interface with a clean, simple and userfriendly layout or Rainbow Viewers current official UI, you choose!&lt;br /&gt;
* Improved Graphics rendering, especially for ATI users (measured &amp;gt; 1/3 faster than the official viewer)&lt;br /&gt;
* Alpha and Tattoo Layer support from Second Life Viewer 2.x&lt;br /&gt;
* Updated tested list of Virtual World grids&lt;br /&gt;
* Marine Kelley&#039;s RestrainedLove (off per default)&lt;br /&gt;
* Full Adult Compliance&lt;br /&gt;
* Redesigned and &amp;quot;up-ported&amp;quot; search functionality, probably the best search in any viewer nowadays&lt;br /&gt;
* Enhanced Breast Physics&lt;br /&gt;
* Temporary texture and animation upload&lt;br /&gt;
* Better inventory search for content, description and creator&lt;br /&gt;
* Low lag radar and AV management tools&lt;br /&gt;
* Viewer skinning&lt;br /&gt;
* Object and Shape export/import, limited to creator&lt;br /&gt;
* Bulk permission editing&lt;br /&gt;
* Last owner display to track content theft&lt;br /&gt;
* &amp;quot;Worn&amp;quot; tab in inventory&lt;br /&gt;
* Double click to wear attachments&lt;br /&gt;
* Enhanced building tools&lt;br /&gt;
* Flexible Sculpties&lt;br /&gt;
* Large Prims (currently only for Opensim grids due to SL limitations)&lt;br /&gt;
* Maximized Network Bandwidth&lt;br /&gt;
* Flexible Grid selection at login for SL and all OpenSims&lt;br /&gt;
* Teleport History and speedy doubleclick teleport&lt;br /&gt;
* Avatar UUID in profiles&lt;br /&gt;
* Features tab in Preferences for easy switching of features&lt;br /&gt;
* Optimized latest OpenJPEG 1.3&lt;br /&gt;
* A large number of other goodies and stability fixes that improve your overall experience. Please check the [http://code.google.com/p/coolviewer/wiki/ReleaseNotes Release Notes] for details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://my.opera.com/boylane Rainbow Viewers for  Virtual Worlds]&lt;br /&gt;
* Direct download link: [http://coolviewer.googlecode.com Binary versions on Google Code]&lt;br /&gt;
* Source code: [http://github.com/boy Sources on Github]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Rainbow Viewer 1.22.12 R7&lt;br /&gt;
* Rainbow Viewer Cool Edition (Cool Viewer) 1.22.12 R13&lt;br /&gt;
* Rainbow Viewer Netbook Edition Version 1.2 (speedy pre-Windlight 1.19.0.5)&lt;br /&gt;
* Date: July 10, 2011&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== RealXtend Edition ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The realXtend viewer is a heavily modified version of the Linden Lab&#039;s Second Life client by a partnership of two Finnish companies, ADMINO technologies and LudoCraft.&lt;br /&gt;
&lt;br /&gt;
The successor to the realXtend viewer is Naali (release 0.3.1 on 21st September 2010, download from http://code.google.com/p/realxtend-naali/downloads/list).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Extra Features &#039;&#039;&#039;&lt;br /&gt;
    * Second life compatibility mode for use in SL and Opensim worlds&lt;br /&gt;
    * Teleports between realXtend and Secondlife&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: http://www.realxtend.org/&lt;br /&gt;
* Direct download link: http://www.realxtend.org/downloads.html&lt;br /&gt;
* Source code: http://sourceforge.net/projects/realxtendviewer/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Version: 0.4.2&lt;br /&gt;
* Date: September 24, 2009&lt;br /&gt;
* Status: Discontinued, replaced by Naali.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Combat Cubed ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This client is aimed mostly at the SL Military, but sports quite a few interesting improvements that make it worth taking a look at.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Originally known as Vertical Life.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Major Features &#039;&#039;&#039;&lt;br /&gt;
* Enhanced Look &amp;amp; Feel, for example flexible camera movement&lt;br /&gt;
* Prototype Script API, secure and parallel&lt;br /&gt;
* Slimmed down for FPS combat&lt;br /&gt;
* Identification, Friend versus Foe, mostly under the hood now but soon exposed&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Splash: http://bit.ly/cXOcDX&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Version: 1.0&lt;br /&gt;
* Date: June 16, 2010&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== TEKSTUFF Viewers ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The TEKSTUFF viewers are created to enable Youtube movies on TEKSTUFF media screens inside Second Life. The TEKSTUFF viewers are slight modifications of already available viewers like the regular SL 1.23.5 viewer and the Emerald 1634 viewer. Apart from that, the Emerald based viewer is fixed so it can be used in Opensim grids as well.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Web presence: http://www.tekstuff.net/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; TODO &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Make a Linux viewer&lt;br /&gt;
* Make a Mac OS viewer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Major Features &#039;&#039;&#039;&lt;br /&gt;
* All the functionality of the viewer it was based upon (Linden Lab 1.23.5 or Emerald 1634)&lt;br /&gt;
* Will allow you to view Youtube movies on TEKSTUFF media screens&lt;br /&gt;
* The Emerald based viewer can also be used in OpenSim grids (texture loading is fixed)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Version: 1.23.5 (Linden Lab &amp;amp; Emerald)&lt;br /&gt;
* Date: April 20, 2010&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Milk Release Client ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This client is aimed at development of all kinds, brought together by Project Neox. Focusing on advanced non-profit development of Second Life and various features which content creators would find suitable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; TODO &#039;&#039;&#039;&lt;br /&gt;
* XStreetSL shopping UI client-kiosk&lt;br /&gt;
* Compile Linux and Mac OS X builds&lt;br /&gt;
* Multiple link object texturing, via name&lt;br /&gt;
* Completion of 3-Dimensional Mini Map&lt;br /&gt;
* Region Statistics notifications before teleports&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Major Features &#039;&#039;&#039;&lt;br /&gt;
* Rendering options for individual avatars&lt;br /&gt;
* Secure Voice-chat usage&lt;br /&gt;
* Extensions in avatar editing&lt;br /&gt;
* Additional Attachment points&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Version: 1.23.5&lt;br /&gt;
* Date: January 20, 2010&lt;br /&gt;
* Status: Discontinued and will not be available for download.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
==Text-Only Viewers==&lt;br /&gt;
&lt;br /&gt;
===AjaxLife ===&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
Browser based Second Life client, created by Katharine Berry. The only web-browser client which made it a lifeline for residents who could not use a full graphical viewer, or who could not download other text-only clients because of limitations such as corporate firewalls.&lt;br /&gt;
&lt;br /&gt;
(No longer working)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: http://ajaxlife.net/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Version: 0.6.1.2&lt;br /&gt;
* Date: May 21, 2010&lt;br /&gt;
* Platform: Platform-Independant&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== omvviewer-light ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; A Text client for the 3D Metaverse &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
omvviewer-light is a text client for the 3D Metaverse including SecondLife, written from Scratch (but using the libomv library for protocol handling). It&#039;s GUI is created in Gtk# which is cross-platform making this the only current Text client that is still active and cross platform. Tested on Linux (32/64 bit) and Windows (not 64-bit windows).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Features &#039;&#039;&#039;&lt;br /&gt;
To many to list here in detail please see the project page below but in summary, Full inventory control, Full Chat/IM/Group IM&#039;s. Object search and interaction. Realtime local maps. Parcel displays. Read and Edit NoteCards and Scripts. View profiles. Friends Lists etc .....&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://omvviewer-light.byteme.org.uk/ Project page]&lt;br /&gt;
* Source code: [http://omvviewer-light.byteme.org.uk/source.shtml Source details]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Date: August 25, 2009&lt;br /&gt;
* Version: 0.48.0.6&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Whisper (SlXSLChat) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; A light-weight yet feature rich text-only Second Life client &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
Whisper is a text-only Second Life client that comes in two parts. The client is written in Java (so it can run on many platforms). The client connects to a &amp;quot;transport&amp;quot;, which is written in C# and uses LibOpenMetaVerse. The idea behind this architecture is that if you don&#039;t like the client, you can write your own and not have to worry about implementing the Second Life protocol yourself. The entire project is open source and published under the GPLv3 licence.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Features &#039;&#039;&#039;&lt;br /&gt;
* Public chat&lt;br /&gt;
* Instant messaging&lt;br /&gt;
* Group chat&lt;br /&gt;
* Search/join/leave groups&lt;br /&gt;
* Search for avatars&lt;br /&gt;
* Image retrieval&lt;br /&gt;
* Profile retrieval&lt;br /&gt;
* Notifications / popups as you would get in Second Life (e.g. group notices, balance changes, inventory offers)&lt;br /&gt;
* Teleportation (home, to area within current sim, to nearby avatar)&lt;br /&gt;
* Nearby avatar tracking on map of Sim&lt;br /&gt;
* Autopilot navigation to nearby avatars&lt;br /&gt;
* URL highlighting&lt;br /&gt;
* Encrypted traffic between client and transport&lt;br /&gt;
* Transport can be run anywhere, the client connects via TCP/IP&lt;br /&gt;
* Client only sends MD5 hashed password to transport&lt;br /&gt;
* On April 20, 2010, SlXSLChat has rebranded to “Whisper”.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://whisper.slx.cc/ Whisper]&lt;br /&gt;
* SourceForce Project Page: [https://sourceforge.net/projects/slxslchat/ Project Page]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Date: May 9, 2010&lt;br /&gt;
* Version: 1.3&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== SLeek ===&lt;br /&gt;
First text only viewer ever, mentioned for completeness, not actively maintained anymore. MetaBolt is based on SLeek.&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== SLiteChat ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; A Lite IM/Chat Text-only Client for Second Life &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
SLiteChat (pronounced &amp;quot;slight-chat&amp;quot;) is a completely open source text-only IM/chat client for use with Second Life. Use it to talk to your friends without having to load up all of those heavy graphic goodies. Useful for those at work times.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Features &#039;&#039;&#039;&lt;br /&gt;
* Communicate in-world with people on your friends list. Full adding/removing and search for Residents supported.&lt;br /&gt;
* Group chat is supported (however at this writing you cannot leave a group or search for to join).&lt;br /&gt;
* Local chat and IM history is supported.&lt;br /&gt;
* Can log into other grids.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://www.slitechat.org/ Project page]&lt;br /&gt;
* Source code: [http://www.slitechat.org/download/ Source details]&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== MetaPay for iPhone and iPod Touch ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Send L$ with a simple to use and free iPhone App. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
MetaPay is a simple and fun way to send Linden Dollars from your iPhone and iPod touch for FREE! Out with friends and want to pay your part of the tab but have no cash? Use MetaPay to send L$ to your friends in Second Life® instead. Or use it to send L$ for any in-world use without firing up the full Second Life® client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Free in the AppStore: [http://bit.ly/metapay Open in iTunes]&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;/div&gt;</summary>
		<author><name>Ayamo Nozaki</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Downloads&amp;diff=1155172</id>
		<title>Downloads</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Downloads&amp;diff=1155172"/>
		<updated>2011-09-29T13:06:31Z</updated>

		<summary type="html">&lt;p&gt;Ayamo Nozaki: Exodus Viewer&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Help|Viewer=*}}{{RightToc}}&lt;br /&gt;
&lt;br /&gt;
= Linden Lab Viewers =&lt;br /&gt;
&lt;br /&gt;
The following viewers are available on the official &#039;&#039;&#039;[https://secondlife.com/support/downloads/index.php Downloads]&#039;&#039;&#039; page:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;Second Life Viewer&#039;&#039;&#039; (a.k.a. the official Viewer, regular Viewer etc.)&lt;br /&gt;
; &#039;&#039;&#039;Second Life Beta Viewer&#039;&#039;&#039;&lt;br /&gt;
: Available approximately weekly, possibly slightly less stable than the Second Life Viewer, but with the  features and fixes that will be in the next Second Life Viewer.&lt;br /&gt;
&lt;br /&gt;
== Development Releases ==&lt;br /&gt;
&lt;br /&gt;
These viewers are released from time to time by viewer development teams within Linden Lab; they contain features and fixes that are not yet even in the Beta version:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;[[Linden Lab Official:Alternate Viewers#Second Life Project Viewers|Project Viewers]]&#039;&#039;&#039;&lt;br /&gt;
: Provide an early look at new features under development before those are ready to get into the main development stream.&lt;br /&gt;
; &#039;&#039;&#039;[[Downloading test builds|Development Viewer]]&#039;&#039;&#039;&lt;br /&gt;
: Features and fixes that are still warm from the creative fires of development.&lt;br /&gt;
&lt;br /&gt;
== Old Releases ==&lt;br /&gt;
The [[Release Notes]] pages for many past versions contain links to the corresponding downloads.&lt;br /&gt;
{{KBwarning|Past Viewer versions might have &#039;&#039;&#039;known security issues&#039;&#039;&#039;, can be partially or fully &#039;&#039;&#039;incompatible to current server versions&#039;&#039;&#039; and obviously will be &#039;&#039;&#039;lacking newer features&#039;&#039;&#039;. Use them at your own risk.}}&lt;br /&gt;
&lt;br /&gt;
{{anchor|non-linden}} &amp;lt;!-- target for [[Alternate viewers]] redirect --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Third Party Directory Viewers =&lt;br /&gt;
&lt;br /&gt;
{{:Third Party Viewer Directory}}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Other Third Party Viewers =&lt;br /&gt;
&lt;br /&gt;
{{KBcaution|The following viewers have either not applied for or have been denied listings in the Third Party Viewer Directory.}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Whether or not a viewer developer chooses to self-certify by applying for listing in the directory, all viewers connecting to Second Life must comply with the [https://secondlife.com/corporate/tpv.php Policy on Third-Party Viewers]; listing in the directory is not a requirement.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note to authors: If you make a viewer available make sure to include platform, version numbers and dates.&#039;&#039;&lt;br /&gt;
{{Anchor|Viewers}}&lt;br /&gt;
{|class=&amp;quot;wikitable sortable collapsible&amp;quot; {{prettytable}}&lt;br /&gt;
|+ &#039;&#039;click the boxed arrows to sort on columns&#039;&#039;&lt;br /&gt;
|- {{KBtablehead}}&lt;br /&gt;
! Name !! {{HoverText|Type|Graphic/Text}} !! {{HoverText|First release|Specified in YYYY-MM-DD}} !! {{HoverText|Latest Release|Specified in YYYY-MM-DD}} !! {{HoverText|Status|Active/Inactive/Discontinued}} !! {{HoverText|W|For Windows}} &amp;lt;ref name=&amp;quot;available&amp;quot;&amp;gt;&amp;quot;X&amp;quot;: Available with binary distribution&amp;lt;/ref&amp;gt;!! {{HoverText|M|For Macintosh}} &amp;lt;ref name=&amp;quot;available&amp;quot;/&amp;gt; !! {{HoverText|L|For Linux(Ubuntu, Debian or so)}} &amp;lt;ref name=&amp;quot;available&amp;quot;/&amp;gt; !! {{HoverText|i|For iPhone/iPod Touch}} &amp;lt;ref name=&amp;quot;available&amp;quot;/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[#AjaxLife]] || Text || || 2008-09-15 || Active ||X||X||X||X&lt;br /&gt;
|-&lt;br /&gt;
| [[#Cool VL Viewer]] || Graphic || 2007-11-16 || 2011-09-23 || Active ||X||X||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#Combat Cubed]] || Graphic || || 2010-06-16 || Active ||X|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#Exodus Viewer]] || Graphic || 2010-08-28 || 2010-08-28 || Active ||X||X||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#Hippo OpenSim Viewer]] || Graphic || || 2010-04-24 || Active ||X|| ||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#MetaPay for iPhone and iPod Touch]] || Text || ||  || || || || ||X&lt;br /&gt;
|-&lt;br /&gt;
| [[#Milk Release Client]] || Graphic || || 2010-01-20 || Inactive || ||X||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#omvviewer-light]] || Text || || 2009-08-25 || Active ||X|| ||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#Rainbow Viewer / Cool Viewer]] || Graphic || || 2011-07-10 || Active ||X||X||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#RealXtend Edition]] || Graphic || || 2008-07-28 || Active ||X|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#SLiteChat]] || Text || || || Active ||X||X||X||&lt;br /&gt;
|-&lt;br /&gt;
| [[#TEKSTUFF Viewers]] || Graphic || || 2010-04-20 || Active ||X|| || ||&lt;br /&gt;
|-&lt;br /&gt;
| [[#Whisper (SlXSLChat)]] || Text || || 2010-05-09 || Active ||X||X||X||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Graphical Viewers ==&lt;br /&gt;
&lt;br /&gt;
=== Cool VL Viewer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This viewer was created and is maintained by {{User|Henri Beauchamp}} (This viewer was formerly known as the &amp;quot;Cool SL Viewer&amp;quot; and its first public release was v1.18.4.3, released on 2007-11-16). It combines elements of several of the other viewers, as well as extra features, bug fixes and extra patches, all very carefully tested.&lt;br /&gt;
&lt;br /&gt;
It puts emphasis on high UI coherency from one version to the other (meaning no bad surprise for &amp;quot;old timers&amp;quot;) while staying in sync with Linden Lab&#039;s official viewer features, high stability and reliability, and a high reactivity to new patches and bug fixes provided by the Open Source community.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The Cool VL Viewer is TPV policy compliant.&#039;&#039;&#039; Please see [http://sldev.free.fr/CoolVLViewerReadme.html its TPV TOS].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Extra Features &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Reverses many of the unpopular interface changes, restoring separate friends and groups floaters and reinstating the packet loss and bandwidth indicators, the old toolbar and buttons layouts, the old/normal commands layout in the pie menus, the &amp;quot;All(old)&amp;quot; search tab, the old style (name-sortable) &amp;quot;Groups&amp;quot; search tab, the &amp;quot;Fly&amp;quot; button in the movement controls floater, and &#039;&#039;&#039;optionally&#039;&#039;&#039; reinstating the old, more visible, status bar icons and/or tracking dots in the mini-map, and the old chat history floater (without chat input line). Also fixes some UI regressions (missing buttons in some floaters, or visited landmarks tracking in inventory for example).&lt;br /&gt;
* Implements the &amp;quot;RestrainedLove&amp;quot; API (formerly known as &amp;quot;RestrainedLife&amp;quot;), based on Marine Kelley&#039;s reference patch (switchable and disabled by default).&lt;br /&gt;
* Allows to configure the date and time formats to match your locale or personal preferences (including with optional seconds for chat and IM timestamps).&lt;br /&gt;
* Allows to wear/remove attachments and clothing items on double-click in inventory.&lt;br /&gt;
* Allows to optionally prevent notifications to show and be logged in the main chat.&lt;br /&gt;
* Allows to disable typing sounds.&lt;br /&gt;
* MUD/MUSH/MUCK/MUX style &amp;quot;poses&amp;quot; (i.e. you can type &amp;quot;:&amp;quot; instead of &amp;quot;/me &amp;quot; to emote), and OOC double parenthesis auto-close (i.e. you can type: &amp;quot;((phone, BRB&amp;quot; and it will show as &amp;quot;((phone, BRB))&amp;quot;).&lt;br /&gt;
* Allows to hide the &amp;quot;Master volume&amp;quot; when not needed in the panel overlay.&lt;br /&gt;
* Allows to build large prims (up to 256m in any or all dimensions) on OpenSim (not on SL, because of server-side limitations).&lt;br /&gt;
* Improved friends list floater (with info about what your friends allow you to see: tehri online status and/or their position on the map).&lt;br /&gt;
* Improved build tools floater (smaller increments in several parameters, extra &amp;quot;slice&amp;quot; parameter for some prims, transparency up to 100%, check box toggle for drag distance limit, adjustable number of decimals in Object tab for the position/size/rotation parameters, &amp;quot;Align&amp;quot; tool). Also allows to set the &amp;quot;invisible&amp;quot; texture from the texture picker (for invisi-prims).&lt;br /&gt;
* Improved texture preview floater (with aspect ratio combo).&lt;br /&gt;
* Improved notecard floater (with Edit menu and Search/replace feature).&lt;br /&gt;
* Improved mini-map with panning, larger zooming range, specific symbol for avatars above 1024m (work around for a limitation of current server and viewer versions), etc...&lt;br /&gt;
* Improved beacons: can filter beacons based on owner (you, others or anyone), can highlight attachments, can dissociate non-object sound sources, can keep beacons &amp;quot;always on&amp;quot; even when the beacons floater is closed.&lt;br /&gt;
* Allows to export and import objects you own and created as XML files (for backup and restore purpose, or to transfer objects from one grid to another).&lt;br /&gt;
* Allows to connect to all existing grids (and not only LL&#039;s) from the login screen.&lt;br /&gt;
* Allows network bandwidth up to 10000Kbps.&lt;br /&gt;
* Allows to save/compile scripts present in the inventory as Mono scripts.&lt;br /&gt;
* Allows to teleport to double-clicked locations on screen.&lt;br /&gt;
* Allows to sit anywhere &amp;quot;on the ground&amp;quot;.&lt;br /&gt;
* Allows to adjust the Z offset (height above the floor) for playing animations.&lt;br /&gt;
* Allows to cache the inventory in the background after login (for faster inventory operations).&lt;br /&gt;
* Allows to preview animations on your avatar prior to uploading them.&lt;br /&gt;
* Implements a group titles floater.&lt;br /&gt;
* Implements a radar floater.&lt;br /&gt;
* Implements a teleports history floater.&lt;br /&gt;
* Implements a &amp;quot;Worn&amp;quot; tab in the inventory floater, and a search/filter by item name, description or creator.&lt;br /&gt;
* Implements &amp;quot;speed rezzing&amp;quot; on login and TPs.&lt;br /&gt;
* Implements an object &amp;quot;area search&amp;quot; floater.&lt;br /&gt;
* Implements the newest LSL functions, highlighting them properly (with tooltips) in the script editor and allowing to compile them. Also implements fully llTextBox() and the AGENT_AUTOPILOT flag with llGetAgentInfo().&lt;br /&gt;
* Allows to ignore (and not only decline) friendship and calling card offers.&lt;br /&gt;
* Allows to change how minimized floaters are stacked (top/bottom, bottom/top, left/right, right/left, fraction of the screen width to use for the stack).&lt;br /&gt;
* Shows avatar keys in profile (in &amp;quot;My notes&amp;quot; tab).&lt;br /&gt;
* Shows the avatar true height in the appearance floater.&lt;br /&gt;
* Renders properly objects worn on the illegal attachment points defined in some hacked third parties viewers.&lt;br /&gt;
* &#039;&#039;&#039;NEW: Provides Mesh rendering support !&#039;&#039;&#039; (v1.26.1 branch only)&lt;br /&gt;
* &#039;&#039;&#039;Provides full support for the new Alpha and Tattoo wearables !&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Provides inventory item links support !&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Provides multiple attachments per point support !&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Provides display names support !&#039;&#039;&#039;&lt;br /&gt;
* Provides Avatar Physics support.&lt;br /&gt;
* Provides the new SL web search engine as an option.&lt;br /&gt;
* Provides access to web profiles.&lt;br /&gt;
* Provides support for setting the new parcel flags (avatar visibility, sounds playing restrictions).&lt;br /&gt;
* Allows to filter (Allow/Deny/BlackList/Whitelist) media and audio streams URLs to protect your privacy against IP snatchers.&lt;br /&gt;
* Many bugfixes by Henri Beauchamp, Nicholaz Beresford, Gigs Taggart, McCabe Maxsted and others.&lt;br /&gt;
* More minor features and improvements, to be discovered on the [http://sldev.free.fr/ website]...&lt;br /&gt;
* All switchable extra features easily configurable via a &amp;quot;Cool features&amp;quot; tab in the preferences floater.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://sldev.free.fr/ The Cool VL Viewer homepage]&lt;br /&gt;
* Message board: [http://sldev.free.fr/forum/ Cool VL Viewer forum]&lt;br /&gt;
* Linux viewer: see the [http://sldev.free.fr/ The Cool VL Viewer homepage] for files and installation instructions.&lt;br /&gt;
* Windows viewer: see the [http://sldev.free.fr/ The Cool VL Viewer homepage] for files and installation instructions.&lt;br /&gt;
* MacOS X viewer: [http://hyangreflections.blogspot.com/ See Hyang Zhao&#039;s site] for files and instructions.&lt;br /&gt;
* Source code: The standard Linden codebase is used, with the addition of the patches listed and linked to on the homepage.&lt;br /&gt;
* Screen shots: [http://sldev.free.fr/index.php?page=features Key features and screen shots]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Version (stable branch): 1.26.0.20 Date: 23 September 2011&lt;br /&gt;
* Version (experimental branch): 1.26.1.8 Date: 23 September 2011&lt;br /&gt;
* Status: Active.&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Exodus Viewer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Exodus Viewer is a specialized third party combat viewer for Second Life.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Major Features &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Based on Secondlife 3.0.6, and keeps upto date with the latest features and fixes!&lt;br /&gt;
* Various built in HUDs, such as a range finder, and situational awareness HUD.&lt;br /&gt;
* A bunch of friend-foe identification features.&lt;br /&gt;
* Allows you to adjust minimap colors even in mass, by right-clicking a selection on the minimap.&lt;br /&gt;
* Various adjustments on how the minimap appears, to make it more useful for combat.&lt;br /&gt;
* Various chat commands.&lt;br /&gt;
* Highly customizable settings related to minimap, default colors and even script windows.&lt;br /&gt;
* Options to automatically disable various rendering types such as clouds, water, foot shadows, etc.&lt;br /&gt;
* Request teleport feature, allowing your friends to request a teleport from you!&lt;br /&gt;
* Uses the latest Kakadu.&lt;br /&gt;
* And much more, see the change logs that are posted each release on our [http://exodusviewer.com/|blog!]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Website: http://exodusviewer.com/&lt;br /&gt;
* Download page: http://exodusviewer.com/downloads.html&lt;br /&gt;
* Source code: http://hg.exodusviewer.com/viewer/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Version: 11.09.28.2&lt;br /&gt;
* Date: September 28, 2011&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Hippo OpenSim Viewer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The Hippo OpenSim Viewer is a modified Second Life viewer, targeted at OpenSim users. It allows building up to a height of 10,000 meters, scaling prims up to 256 x 256 x 256 meters and other exciting features. More specific OpenSim features are under development.&lt;br /&gt;
The last developer blog commented: Releasing Hippo OpenSim Viewer Version 0.6.3. This release adds a Windows uninstaller and small changes to comply to the Linden Lab Policy on Third-Party Viewers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Availability &#039;&#039;&#039;&lt;br /&gt;
Is currently available for Linux and Windows.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: http://mjm-labs.com/viewer/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Version: 0.6.3&lt;br /&gt;
* Platforms:&lt;br /&gt;
** Binary available for Windows and Linux&lt;br /&gt;
** Source available (unspecified)&lt;br /&gt;
* Date: April 24, 2010&lt;br /&gt;
* Status: Active + updated&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Meerkat ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Goals &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* To create a fully GPL viewer (no proprietary dependencies)&lt;br /&gt;
* To encourage a community of developers that will submit patches for prompt integration&lt;br /&gt;
* To have the freedom to make the sort of changes that Linden Lab has traditionally been unable to integrate (translation patches, refactoring, fixing intentionally crippled features, changes that touch many files)&lt;br /&gt;
* To retain compatibility with Linden Lab&#039;s grid and protocols, present and future&lt;br /&gt;
* To implement a loosely coupled cross-grid functionality that requires no central authentication authority.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Extra Features &#039;&#039;&#039;&lt;br /&gt;
* Log out and back in without quitting&lt;br /&gt;
* Loosely coupled intergrid teleport -- In Process&lt;br /&gt;
* Most of the other changes common to third party viewers&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;del&amp;gt;Website: [http://www.meerkatviewer.org/ Meerkat Viewer]&amp;lt;/del&amp;gt; (note: the Meerkat site is down)&lt;br /&gt;
* Direct download link: [http://code.google.com/p/meerkat-viewer/downloads/list Download versions of this viewer]&lt;br /&gt;
* Source code: svn checkout http://meerkat-viewer.googlecode.com/svn/trunk/ meerkat&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Version : 0.2.x&lt;br /&gt;
* Date : September 6, 2009&lt;br /&gt;
* Status : Discontinued, website offline. Source and binary downloads still available on google code (see above).&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Nicholaz Edition ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
These are Windows viewer based on SL builds with a focus on stability, usability and performance (see [http://www.blueflash.cc/users/nicholaz/EyeCandy/!!Installation.txt Installation.txt] for homebrew disclaimer). Mac and Linux variants are available through other open sourcers (links on the website).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Extra Features &#039;&#039;&#039;&lt;br /&gt;
* Improved stability.&lt;br /&gt;
* Lower memory footprint.&lt;br /&gt;
* GUI redesigns.&lt;br /&gt;
* Workarounds for common annoyances. (Group IM Filtering, &amp;quot;Release Key&amp;quot; button, etc.)&lt;br /&gt;
* see [http://nicholaz-beresford.blogspot.com/2008/05/version-overview.html this entry] for an overview of different versions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://nicholaz-beresford.blogspot.com/ Nicholaz Beresford on Blogspot]&lt;br /&gt;
* Direct download link: [http://www.blueflash.cc/users/nicholaz Download versions of this viewer]&lt;br /&gt;
* Source code: Look at the [http://www.blueflash.cc/users/nicholaz download site] for the source-xxx-zip files in the respective folders and see the readme.txt inside the archives&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Date: September 7, 2009&lt;br /&gt;
* Status: Discontinued&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Onrez Viewer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The Onrez viewer was made by the Onrez company in connection with a Second Life themed story on the high tech forensics based TV show &amp;quot;CSI: New York&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Extra Features &#039;&#039;&#039;&lt;br /&gt;
* A back and history button for teleports&lt;br /&gt;
* In-viewer web browsing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Comment &#039;&#039;&#039;&lt;br /&gt;
The source code for this viewer is closed source.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Status : Discontinued, download no longer available.&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Rainbow Viewer / Cool Viewer ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Based on the offical SecondLife sourcecode licensed under GPL2, this speedy Metaverse Client can connect you to a huge variety of exciting Virtual Worlds! It incorporates a lot of improved, new, up- and backported features and fixes that make the fast and rock stable RV/CV the client of choice for many users.&lt;br /&gt;
&lt;br /&gt;
This viewer includes many patches and changes from a lot of different people and sources which I am very grateful to be able to use. Credits are given to everyone I know, in case I missed someone I sincerely apologize.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rainbow / Cool are TPV compliant.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Thanks to Henri Beauchamp who laid the foundation for this viewer with his Cool SL Viewer. Special thanks to Winter Ventura for the Cool Viewer logo and Jacek Antonelli and Peter Stindberg for the Rainbow Viewer logo :). And to all the others who helped and supported me, especially the people involved and behind Imprudence!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Some incomprehensive list of features &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A major improvement is an up-to-date OpenGL implementation that especially helps users plagued by ATI&#039;s Catalyst drivers but also leads to measurable improvements of overall graphics performance by 30...100% compared to the official viewer; depending on your system. Rainbow Viewer features the current user interface whereas Cool Viewer spots the leaner cleaner and more configurable legacy UI. It&#039;s all about choice :).&lt;br /&gt;
&lt;br /&gt;
* New 1.22.12.0 code baseline&lt;br /&gt;
* CV&#039;s legacy User interface with a clean, simple and userfriendly layout or Rainbow Viewers current official UI, you choose!&lt;br /&gt;
* Improved Graphics rendering, especially for ATI users (measured &amp;gt; 1/3 faster than the official viewer)&lt;br /&gt;
* Alpha and Tattoo Layer support from Second Life Viewer 2.x&lt;br /&gt;
* Updated tested list of Virtual World grids&lt;br /&gt;
* Marine Kelley&#039;s RestrainedLove (off per default)&lt;br /&gt;
* Full Adult Compliance&lt;br /&gt;
* Redesigned and &amp;quot;up-ported&amp;quot; search functionality, probably the best search in any viewer nowadays&lt;br /&gt;
* Enhanced Breast Physics&lt;br /&gt;
* Temporary texture and animation upload&lt;br /&gt;
* Better inventory search for content, description and creator&lt;br /&gt;
* Low lag radar and AV management tools&lt;br /&gt;
* Viewer skinning&lt;br /&gt;
* Object and Shape export/import, limited to creator&lt;br /&gt;
* Bulk permission editing&lt;br /&gt;
* Last owner display to track content theft&lt;br /&gt;
* &amp;quot;Worn&amp;quot; tab in inventory&lt;br /&gt;
* Double click to wear attachments&lt;br /&gt;
* Enhanced building tools&lt;br /&gt;
* Flexible Sculpties&lt;br /&gt;
* Large Prims (currently only for Opensim grids due to SL limitations)&lt;br /&gt;
* Maximized Network Bandwidth&lt;br /&gt;
* Flexible Grid selection at login for SL and all OpenSims&lt;br /&gt;
* Teleport History and speedy doubleclick teleport&lt;br /&gt;
* Avatar UUID in profiles&lt;br /&gt;
* Features tab in Preferences for easy switching of features&lt;br /&gt;
* Optimized latest OpenJPEG 1.3&lt;br /&gt;
* A large number of other goodies and stability fixes that improve your overall experience. Please check the [http://code.google.com/p/coolviewer/wiki/ReleaseNotes Release Notes] for details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://my.opera.com/boylane Rainbow Viewers for  Virtual Worlds]&lt;br /&gt;
* Direct download link: [http://coolviewer.googlecode.com Binary versions on Google Code]&lt;br /&gt;
* Source code: [http://github.com/boy Sources on Github]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Rainbow Viewer 1.22.12 R7&lt;br /&gt;
* Rainbow Viewer Cool Edition (Cool Viewer) 1.22.12 R13&lt;br /&gt;
* Rainbow Viewer Netbook Edition Version 1.2 (speedy pre-Windlight 1.19.0.5)&lt;br /&gt;
* Date: July 10, 2011&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== RealXtend Edition ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The realXtend viewer is a heavily modified version of the Linden Lab&#039;s Second Life client by a partnership of two Finnish companies, ADMINO technologies and LudoCraft.&lt;br /&gt;
&lt;br /&gt;
The successor to the realXtend viewer is Naali (release 0.3.1 on 21st September 2010, download from http://code.google.com/p/realxtend-naali/downloads/list).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Extra Features &#039;&#039;&#039;&lt;br /&gt;
    * Second life compatibility mode for use in SL and Opensim worlds&lt;br /&gt;
    * Teleports between realXtend and Secondlife&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: http://www.realxtend.org/&lt;br /&gt;
* Direct download link: http://www.realxtend.org/downloads.html&lt;br /&gt;
* Source code: http://sourceforge.net/projects/realxtendviewer/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Version: 0.4.2&lt;br /&gt;
* Date: September 24, 2009&lt;br /&gt;
* Status: Discontinued, replaced by Naali.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Combat Cubed ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This client is aimed mostly at the SL Military, but sports quite a few interesting improvements that make it worth taking a look at.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Originally known as Vertical Life.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Major Features &#039;&#039;&#039;&lt;br /&gt;
* Enhanced Look &amp;amp; Feel, for example flexible camera movement&lt;br /&gt;
* Prototype Script API, secure and parallel&lt;br /&gt;
* Slimmed down for FPS combat&lt;br /&gt;
* Identification, Friend versus Foe, mostly under the hood now but soon exposed&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Splash: http://bit.ly/cXOcDX&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Version: 1.0&lt;br /&gt;
* Date: June 16, 2010&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== TEKSTUFF Viewers ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The TEKSTUFF viewers are created to enable Youtube movies on TEKSTUFF media screens inside Second Life. The TEKSTUFF viewers are slight modifications of already available viewers like the regular SL 1.23.5 viewer and the Emerald 1634 viewer. Apart from that, the Emerald based viewer is fixed so it can be used in Opensim grids as well.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Web presence: http://www.tekstuff.net/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; TODO &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Make a Linux viewer&lt;br /&gt;
* Make a Mac OS viewer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Major Features &#039;&#039;&#039;&lt;br /&gt;
* All the functionality of the viewer it was based upon (Linden Lab 1.23.5 or Emerald 1634)&lt;br /&gt;
* Will allow you to view Youtube movies on TEKSTUFF media screens&lt;br /&gt;
* The Emerald based viewer can also be used in OpenSim grids (texture loading is fixed)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Version: 1.23.5 (Linden Lab &amp;amp; Emerald)&lt;br /&gt;
* Date: April 20, 2010&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Milk Release Client ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This client is aimed at development of all kinds, brought together by Project Neox. Focusing on advanced non-profit development of Second Life and various features which content creators would find suitable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; TODO &#039;&#039;&#039;&lt;br /&gt;
* XStreetSL shopping UI client-kiosk&lt;br /&gt;
* Compile Linux and Mac OS X builds&lt;br /&gt;
* Multiple link object texturing, via name&lt;br /&gt;
* Completion of 3-Dimensional Mini Map&lt;br /&gt;
* Region Statistics notifications before teleports&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Major Features &#039;&#039;&#039;&lt;br /&gt;
* Rendering options for individual avatars&lt;br /&gt;
* Secure Voice-chat usage&lt;br /&gt;
* Extensions in avatar editing&lt;br /&gt;
* Additional Attachment points&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Version: 1.23.5&lt;br /&gt;
* Date: January 20, 2010&lt;br /&gt;
* Status: Discontinued and will not be available for download.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
==Text-Only Viewers==&lt;br /&gt;
&lt;br /&gt;
===AjaxLife ===&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
Browser based Second Life client, created by Katharine Berry. The only web-browser client which made it a lifeline for residents who could not use a full graphical viewer, or who could not download other text-only clients because of limitations such as corporate firewalls.&lt;br /&gt;
&lt;br /&gt;
(No longer working)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: http://ajaxlife.net/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Version: 0.6.1.2&lt;br /&gt;
* Date: May 21, 2010&lt;br /&gt;
* Platform: Platform-Independant&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== omvviewer-light ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; A Text client for the 3D Metaverse &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
omvviewer-light is a text client for the 3D Metaverse including SecondLife, written from Scratch (but using the libomv library for protocol handling). It&#039;s GUI is created in Gtk# which is cross-platform making this the only current Text client that is still active and cross platform. Tested on Linux (32/64 bit) and Windows (not 64-bit windows).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Features &#039;&#039;&#039;&lt;br /&gt;
To many to list here in detail please see the project page below but in summary, Full inventory control, Full Chat/IM/Group IM&#039;s. Object search and interaction. Realtime local maps. Parcel displays. Read and Edit NoteCards and Scripts. View profiles. Friends Lists etc .....&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://omvviewer-light.byteme.org.uk/ Project page]&lt;br /&gt;
* Source code: [http://omvviewer-light.byteme.org.uk/source.shtml Source details]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Date: August 25, 2009&lt;br /&gt;
* Version: 0.48.0.6&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== Whisper (SlXSLChat) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; A light-weight yet feature rich text-only Second Life client &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
Whisper is a text-only Second Life client that comes in two parts. The client is written in Java (so it can run on many platforms). The client connects to a &amp;quot;transport&amp;quot;, which is written in C# and uses LibOpenMetaVerse. The idea behind this architecture is that if you don&#039;t like the client, you can write your own and not have to worry about implementing the Second Life protocol yourself. The entire project is open source and published under the GPLv3 licence.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Features &#039;&#039;&#039;&lt;br /&gt;
* Public chat&lt;br /&gt;
* Instant messaging&lt;br /&gt;
* Group chat&lt;br /&gt;
* Search/join/leave groups&lt;br /&gt;
* Search for avatars&lt;br /&gt;
* Image retrieval&lt;br /&gt;
* Profile retrieval&lt;br /&gt;
* Notifications / popups as you would get in Second Life (e.g. group notices, balance changes, inventory offers)&lt;br /&gt;
* Teleportation (home, to area within current sim, to nearby avatar)&lt;br /&gt;
* Nearby avatar tracking on map of Sim&lt;br /&gt;
* Autopilot navigation to nearby avatars&lt;br /&gt;
* URL highlighting&lt;br /&gt;
* Encrypted traffic between client and transport&lt;br /&gt;
* Transport can be run anywhere, the client connects via TCP/IP&lt;br /&gt;
* Client only sends MD5 hashed password to transport&lt;br /&gt;
* On April 20, 2010, SlXSLChat has rebranded to “Whisper”.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://whisper.slx.cc/ Whisper]&lt;br /&gt;
* SourceForce Project Page: [https://sourceforge.net/projects/slxslchat/ Project Page]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Version and timestamp &#039;&#039;&#039;&lt;br /&gt;
* Date: May 9, 2010&lt;br /&gt;
* Version: 1.3&lt;br /&gt;
* Status: Active&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== SLeek ===&lt;br /&gt;
First text only viewer ever, mentioned for completeness, not actively maintained anymore. MetaBolt is based on SLeek.&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== SLiteChat ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; A Lite IM/Chat Text-only Client for Second Life &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
SLiteChat (pronounced &amp;quot;slight-chat&amp;quot;) is a completely open source text-only IM/chat client for use with Second Life. Use it to talk to your friends without having to load up all of those heavy graphic goodies. Useful for those at work times.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Features &#039;&#039;&#039;&lt;br /&gt;
* Communicate in-world with people on your friends list. Full adding/removing and search for Residents supported.&lt;br /&gt;
* Group chat is supported (however at this writing you cannot leave a group or search for to join).&lt;br /&gt;
* Local chat and IM history is supported.&lt;br /&gt;
* Can log into other grids.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Website: [http://www.slitechat.org/ Project page]&lt;br /&gt;
* Source code: [http://www.slitechat.org/download/ Source details]&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;br /&gt;
&lt;br /&gt;
=== MetaPay for iPhone and iPod Touch ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Send L$ with a simple to use and free iPhone App. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
MetaPay is a simple and fun way to send Linden Dollars from your iPhone and iPod touch for FREE! Out with friends and want to pay your part of the tab but have no cash? Use MetaPay to send L$ to your friends in Second Life® instead. Or use it to send L$ for any in-world use without firing up the full Second Life® client.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Links &#039;&#039;&#039;&lt;br /&gt;
* Free in the AppStore: [http://bit.ly/metapay Open in iTunes]&lt;br /&gt;
&lt;br /&gt;
[[#Uncertified Third Party Viewers|[Back to the list]]]&lt;/div&gt;</summary>
		<author><name>Ayamo Nozaki</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:LlCastRay&amp;diff=1153186</id>
		<title>Talk:LlCastRay</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:LlCastRay&amp;diff=1153186"/>
		<updated>2011-09-07T19:21:09Z</updated>

		<summary type="html">&lt;p&gt;Ayamo Nozaki: /* Pre-Release? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Why isn&#039;t this using the sensor API? ==&lt;br /&gt;
&lt;br /&gt;
# The sensor API already exists and has well understood behavior.&lt;br /&gt;
# The sensor API resolves many of the problems people have brought up, such as list length and range.&lt;br /&gt;
# The sensor API is asynchronous.&lt;br /&gt;
# Creating new APIs when there are already viable existing ones leads to Mainframe-itis.&lt;br /&gt;
# This would be an opportunity to add a result filter variant to the llSensor() family...&lt;br /&gt;
&lt;br /&gt;
llCastRay(string name, key id, integer type, float range, vector path, integer request_mask);&lt;br /&gt;
&lt;br /&gt;
Eg:&lt;br /&gt;
&lt;br /&gt;
 llCastRay(&amp;quot;&amp;quot;, &amp;quot;&amp;quot;, AGENT|ACTIVE|PASSIVE, 32, &amp;lt;1, 0, 0&amp;gt;, SENSOR_POSITION);&lt;br /&gt;
  &lt;br /&gt;
 /...&lt;br /&gt;
 &lt;br /&gt;
 sensor(integer n)&lt;br /&gt;
 {&lt;br /&gt;
   integer i;&lt;br /&gt;
   for(i = 0; i &amp;lt; n; i++)&lt;br /&gt;
     llSay(0, &amp;quot;Ping at &amp;quot;+(string)llDetectedPos(i));&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
-- [[User:Argent Stonecutter|Argent Stonecutter]] 11:53, 7 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I think somewhere Falcon said not doing it like sensors was intentional in order to get the data the moment the command is run instead of having to wait for an event, i don&#039;t remember seeing an explanation why this was a better approach though.&lt;br /&gt;
:Btw, how would the normal of the hit(s) be reported? A new llDetected* function? Perhaps this would be an opportunity to introduce list llDetected(integer index, list what), this way future llDetected* functions can be easily prototyped without needing to actually implement a whole new command in the server (you know, like with the primitive params stuff)&lt;br /&gt;
:ps: talking about normals and llDetected* i would like to plug [http://jira.secondlife.com/browse/SVC-3369 SVC-3369] &amp;quot;llDetectedCollisions* (similar to llDetectedTouch*)&amp;quot; , mind taking a look Falcon?&lt;br /&gt;
--[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 12:46, 7 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:This was not done like the sensor API because it&#039;s not really all that similar to sensors. Unfortunately I don&#039;t have time to get into a discussion of why the API you&#039;re suggesting would be problematic, but if you read the history of this feature (SVC-5389), I hope you&#039;ll begin to see where I&#039;m coming from.&lt;br /&gt;
:Tigro, Sorry, I&#039;m backlogged for a month at this point, so I don&#039;t think I&#039;ll be able to look at that soon. :) In general, I&#039;m looking at this feature right now only because it affects a huge audience and is way, way overdue. Oh, and because I&#039;m a physics guy and it&#039;s a physics feature more than anything else. :P&lt;br /&gt;
&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 03:34, 8 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
::SVC-5389 is about download problems. Do you mean SVC-5381? There&#039;s a couple of notes about sensors being &amp;quot;heavy&amp;quot;, but not really any explanation of why they&#039;re &amp;quot;heavy&amp;quot;. The only heavy feature of sensors is that it calculates and returns more information than you&#039;re asking for, and the request_mask would take care of that... and would open up the possibility of adding the same kind of masking to existing sensor calls. In terms of scripting, sensors are in many ways lighter because you&#039;re not having to pass around (and copy) lists.&lt;br /&gt;
&lt;br /&gt;
:: There&#039;s some comments about speed of response, but also about having to throttle it to once per frame. I think the sensor API would make that less of an issue.  -- [[User:Argent Stonecutter|Argent Stonecutter]] 20:09, 11 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: I&#039;m undecided about use of the [[sensor]]() event. The main reason being that many of the cases where I see this function being used for simple AI behaviours you are almost certainly going to be calling [[llCastRay]]() from within the sensor() event, so having to then cache the original sensor data and wait for the second event is incredibly messy. On the other hand, I do agree that it does feel a lot like a special case of sensor so it would make sense to use the event, allowing with suitable &amp;lt;code&amp;gt;llDetected*()&amp;lt;/code&amp;gt; functions for the extra data such as [https://jira.secondlife.com/browse/SVC-1432 llDetectedNormal()] which is another long overdue function.&amp;lt;br/&amp;gt;-- &#039;&#039;&#039;[[User:Haravikk_Mistral|Haravikk]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User_talk:Haravikk_Mistral|talk]]|[[Special:Contributions/Haravikk_Mistral|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 11:15, 22 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== llSonar please? ==&lt;br /&gt;
&lt;br /&gt;
I would appreciate if you took in consideration my suggestions at http://jira.secondlife.com/browse/SVC-2486 please; any feedback is more than welcome. &lt;br /&gt;
&lt;br /&gt;
ps:llCastRay is already awesome, you rock! Please try the hardest you can to figure out how to get this to come to the maingrid with the least crippling as possible.&lt;br /&gt;
&lt;br /&gt;
--[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 03:01, 3 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Hi Tigro,&lt;br /&gt;
&lt;br /&gt;
If I understand your feature request, it sounds much like the shape cast described in SVC-5381 (http://jira.secondlife.com/browse/SVC-5381) for a sphere or a cylinder cast along its primary axis. Is that correct?&lt;br /&gt;
&lt;br /&gt;
Thanks,&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]]&lt;br /&gt;
&lt;br /&gt;
: I have just skimmed thru the comments there, do shape casting allow for somthing liek for example have a nonphys object recognize the geometry so it could rest against a jumbled pile of prims as if it was laying against them physicly? (in the ASCII art in SVC-2486 it would be having the object represented by the O&#039;s resting in the diagonal line as if it was solid) --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 05:44, 3 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:A practical example, imagine a giant mecha, with big flat feet, now imagine a landscape littered with prims of all sorts of shapes and sizes, to make it look realistic, on each step the foot should be rotated to rest against the highest points under it ; just raycasting you have the risk of shooting between prims, and with shapecast you don&#039;t get the rotation for the foot. --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 03:04, 4 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
While I realize that this has been &amp;quot;shelved until further notice&amp;quot;, I just wanted to pitch in and say I&#039;d definitely like a shapecast option. I am more interested in this for general &amp;quot;spatial awareness&amp;quot; than for combat purpose, so a shape would be very useful for things like finding the highest point in an area, or checking if openings are big enough to pass through.&lt;br /&gt;
&lt;br /&gt;
[[User:Tali Rosca|Tali Rosca]] 00:52, 27 September 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== What am I looking at? ==&lt;br /&gt;
&lt;br /&gt;
A function I just threw in to replace phantom bullets for quickly acquiring a point of interest -- whatever your camera&#039;s focused on (in this sim, within 20m) is returned, allowing quicker, more intuitive targeting of other objects.  PERMISSION_TRACK_CAMERA must be previously set.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;key camPing() {&lt;br /&gt;
    // End points at the camera and 20m in front of it&lt;br /&gt;
    vector camPos = llGetCameraPos();&lt;br /&gt;
 &lt;br /&gt;
    // Clamp the end position to within the sim&lt;br /&gt;
    // From an SLUniverse post by Chalice Yao&lt;br /&gt;
    // http://www.sluniverse.com/php/vb/scripting/46344-llcastray-available-testing-maybe-only.html#post969497&lt;br /&gt;
    float xSteps;&lt;br /&gt;
    float ySteps;&lt;br /&gt;
    vector camRot = llRot2Fwd(llGetCameraRot());&lt;br /&gt;
    fXSteps = llAbs( ( 256.0 * !!camRot.x ) - camPos.x ) / camRot.x;&lt;br /&gt;
    fYSteps = llAbs( ( 256.0 * !!camRot.y ) - camPos.y ) / camRot.y;&lt;br /&gt;
    if(xSteps &amp;gt; ySteps)&lt;br /&gt;
        xSteps = ySteps;&lt;br /&gt;
    if ( xSteps &amp;gt; 20.0 )&lt;br /&gt;
        xSteps = 20.0&lt;br /&gt;
&lt;br /&gt;
    // Cast the ray; ignore hits on land, otherwise get the root key&lt;br /&gt;
    list contacts = llCastRay( camPos, camPos + ( camRot * xSteps ), &lt;br /&gt;
        RC_REJECT_LAND,&lt;br /&gt;
        RC_GET_ROOT_KEY );&lt;br /&gt;
&lt;br /&gt;
    // Return values&lt;br /&gt;
    if ( llList2Integer( contacts, -1 ) &amp;gt; 0 ) { // Got a return&lt;br /&gt;
        return llList2Key( contacts, 0 );&lt;br /&gt;
    }&lt;br /&gt;
    return NULL_KEY;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[User:Jack Abraham|Jack Abraham]] 06:10, 7 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== RC_GET_LINK_NUM?  Not RC_GET_LINK_KEY? ==&lt;br /&gt;
&lt;br /&gt;
I can&#039;t think of a circumstance where knowing the link number of the return would be useful.  UUID of the prim hit would be far more useful; is that within the realm of possibility? [[User:Jack Abraham|Jack Abraham]] 04:47, 3 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Hi Jack,&lt;br /&gt;
&lt;br /&gt;
The default behavior is to return the UUID of the prim hit. If you want the root key instead, you have to use RC_GET_ROOT_KEY. The intended purpose of RC_GET_LINK_NUM was for scripts like your camera targeting system where it is expected that the camera will be pointed at a child of the linkset performing the cast. For example, suppose you make a minesweeper game where each tile is a prim in the linkset. And suppose you script it so that the use can select a tile by focusing on it and clicking. The script could cast a ray from the camera and determine the link number of the tile in the player&#039;s line of sight. Then it could use that link number in an llMessageLinked or some other LSL function to modify the appropriate child prim. Does that make sense? If it turns out no one has any use for RC_GET_LINK_NUM, I&#039;ll eliminate it for the sake of simplicity. But the behavior you&#039;re looking for is already there by default! Yay.&lt;br /&gt;
&lt;br /&gt;
Cheers,&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]]&lt;br /&gt;
&lt;br /&gt;
Makes perfect sense; I need to read better.  Thanks.  [[User:Jack Abraham|Jack Abraham]] 05:44, 3 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Memory concerns ==&lt;br /&gt;
&lt;br /&gt;
Dumping all possible avaible information into a list regardless of whether any of them will be used seems severely wasteful. If you really need to dump all the info as soon as the command is called straight into script memory, at least do somthing like adding a parameter to the command that is a list where each item identifies which pieces of information the scripter wants (like  with llGetPrimtiveParams ) --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 05:51, 3 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
I think we basically have that, Tigro; we only get UUID and hit position unless we set additional flags.  Falcon indicated that we will not get all hits in the final version; that&#039;ll further reduce the size of the list. [[User:Jack Abraham|Jack Abraham]] 07:50, 3 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Clamping ==&lt;br /&gt;
&lt;br /&gt;
It would be a waste of server resources if every script has to add clamping code to make sure&lt;br /&gt;
their begin and end are inside the region! Instead, do not return an error code but just stop&lt;br /&gt;
and return only the hits inside the region. That might mean you have to add the clamping code in the&lt;br /&gt;
server, but that would be a hell of a lot more efficient than doing that in the LSL scripts.&lt;br /&gt;
&lt;br /&gt;
Note that clamping is relatively easy, in C++ it shouldn&#039;t cost more than a few microseconds.&lt;br /&gt;
The algorithm would be something like:&lt;br /&gt;
&lt;br /&gt;
1) A bounding box can be given with two vectors: &#039;&#039;bbmin&#039;&#039; and &#039;&#039;bbmax&#039;&#039;, where &#039;&#039;bbmin&#039;&#039; is the bottom,&lt;br /&gt;
south/west corner of the sim (0,0,0), and &#039;&#039;bbmax&#039;&#039; the upper, north/east corner of the sim&lt;br /&gt;
(256,256,4096).&lt;br /&gt;
&lt;br /&gt;
2) Let the ray begin at vector &#039;&#039;begin&#039;&#039; and end at vector &#039;&#039;end&#039;&#039; (using the same coordinate system as the bounding box).&lt;br /&gt;
&lt;br /&gt;
3) Calculate bbmine = bbmin - end, and bbmaxe = bbmax - end. Check if end is outside the sim,&lt;br /&gt;
so clamping is needed at all, by checking that at least one coordinate in bbmine is positive&lt;br /&gt;
or one coordinate in bbmaxe is negative (set &#039;clamping_needed&#039;).&lt;br /&gt;
&lt;br /&gt;
4) Shift coordinates so that &#039;&#039;begin&#039;&#039; becomes the origin and &#039;&#039;end&#039;&#039; becomes the direction&lt;br /&gt;
(bbmin -= begin; bbmax -= begin; dir = end - begin). Lets call &#039;&#039;end&#039;&#039; &#039;&#039;dir&#039;&#039; from now on.&lt;br /&gt;
&lt;br /&gt;
5) Check that bbmin has three negative coordinates and &#039;&#039;bbmax&#039;&#039; has three positive coordinates.&lt;br /&gt;
If not then &#039;&#039;begin&#039;&#039; is outside the bounding box (if the signs are correct, except there are one or more zeroes, it&#039;s on the border&lt;br /&gt;
and you can just return &#039;&#039;begin&#039;&#039;). Not sure if you should return an error code or return just no results.&lt;br /&gt;
Finally, if begin is outside the bounding box, but end was inside, you might want to clamp begin&lt;br /&gt;
instead of end. Lets assume that begin is inside the bounding box for now. If end was also inside&lt;br /&gt;
it, then no clamping is needed and we stop here.&lt;br /&gt;
&lt;br /&gt;
6) Clamping is needed. Calculate dir.x / bbmin.x, dir.x / bbmax.x, dir.y / bbmin.y, dir.y / bbmax.y, dir.z / bbmin.z and dir.z / bbmax.z.&lt;br /&gt;
&lt;br /&gt;
7) Find the largest value &#039;max&#039; of those six and return &#039;&#039;begin&#039;&#039; + dir / max as the collision point of the ray in the direction dir.&lt;br /&gt;
&lt;br /&gt;
As you can see, this is a very fast routine. Still, I think it should be added to the server side.&lt;br /&gt;
I didn&#039;t add code in order to avoid any license problems ;)&lt;br /&gt;
&lt;br /&gt;
[[User:Aleric Inglewood|Aleric Inglewood]] 12:00, 3 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Actually, using SSE2, clamping would take just a few cpu instructions. It&#039;s not a question of efficiency for me, it&#039;s a question of future compatibility. Since we don&#039;t have script versioning for LSL, if we later add the ability to cast rays between sims or change the size of a region, existing scripts will break. I&#039;ve been thinking of adding a version parameter to this function in order to deal with that possibility, in which case I could clamp in native code.&lt;br /&gt;
&lt;br /&gt;
Cheers&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 17:20, 3 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:Definitely, clamping in native code rather than LSL is very desirable.  I&#039;m thinking a version parameter would be best done as a way of accessing old behaviors, similarly to how we have legacy prim types in llSetPrimitiveParams, and optional for the latest version.  What do y&#039;allz think?&lt;br /&gt;
::--[[User:Michelle Resistance|Michelle Resistance]] 15:37, 8 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== return also types casted ==&lt;br /&gt;
&lt;br /&gt;
since filters RC_REJECT_AGENTS, RC_REJECT_PHYSICAL, RC_REJECT_NONPHYSICAL, and RC_REJECT_LAND are used, and therefore detected, it would be handy if in the results returned, the status AGENT, NON_PHYSICAL, PHYSICAL and LAND  would also be returned. Is it douable ?&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I&#039;ve been thinking about that. Either I&#039;ll somehow include the type in the list of returned data (perhaps only if you add the flag RC_GET_TYPE or something) or else modify llGetObjectDetails to return the data. You&#039;ll definitely have access one way or the other. Regarding land, though, you can definitively identify that because it will return null UUID.&lt;br /&gt;
&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 17:20, 3 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Meep ==&lt;br /&gt;
&lt;br /&gt;
Heya Falcon, really would absolutely love to have an llCastRay function in production.&lt;br /&gt;
&lt;br /&gt;
I saw you had a concern of versioning issues. To overcome that, I heavily recommend using a list as an input, as that would be far more flexible on the kind of parameters and options you can push through rather than fooling yourself into using a hardcoded structure of llCastRay(vector start, vector end, other stuff) etc. A bit like how llSetPrimitiveParams works basically. For example in the past, LL upgraded the prim type interface from legacy to a more advanced and flexible set of input (torii, tubes and rings, yey), they could do this easily because a list was used as a parameter in the function, instead of having to expend resources on adding more functions, bloating LSL and causing legacy issues.&lt;br /&gt;
&lt;br /&gt;
I also have a question, when you cast a ray and it hits an avatar, that hits the avatars&#039; actual sphere-ish phys mesh, correct?&lt;br /&gt;
&lt;br /&gt;
I have actually experimented personally with LSL and my custom client with a prototype LSL Script API, I could offload raycast processing into nearby clients easily and even built a half-working hexapod spider that can walk on a prim landscape, as well as all the fun raycasting combat gun stuff :). So, I have some serious experience to share in this field and having the raycasts locally processed would be really useful in a more timely manner (rather than suffering the delays of network lag).&lt;br /&gt;
&lt;br /&gt;
What are your thoughts on the kind of filtering? Whitelist versus Blacklist? Whitelists are apparently more effective based on desire. (Would be good for consistency (which is hard enough to come by..): llSensors, llListen, ...)&lt;br /&gt;
&lt;br /&gt;
On a last note, you might be wondering about my achievement with my custom client, I couldn&#039;t get raycasting weapons taking off because there is a missing critical element to gameplay: Tracers. The user of a gun MUST be able to see WHERE their bullets went (guns use fire cone spread algorithms for added realism). This is one of the significant problems that keep raycasting usage in weaponry really taking off. Otherwise I could have seriously introduced raycasting and changed the face of SL combat with my custom client. If only particle systems could be spontaneously created midair (without requiring the particle system to be &#039;attached&#039; to the prim (it&#039;s possible code-wise in the client btw)) via scripts to simulate tracer effects, then raycasting would seriously be able to take off socially.&lt;br /&gt;
&lt;br /&gt;
--[[User:Nexii Malthus|&amp;lt;span style=&amp;quot;color: #bbb; text-shadow:-1px -1px #ddd, 1px 1px #888;&amp;quot;&amp;gt;Nexii Malthus&amp;lt;/span&amp;gt;]] 02:10, 4 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Hi Nexii,&lt;br /&gt;
&lt;br /&gt;
Let me take these one at a time. First, in regard to versioning, LSL lists are very inefficient on the C++ side. They&#039;re implemented as linked lists (yuck). I do see the advantage to using a list for parameters, but it would make parsing it slower and I&#039;d rather pull a Windows API (heh, also yuck) style move and (a) add a reserved version number parameter and (b) if necessary later, create an llCastRayEx function. Not the world&#039;s most extensible implementation, but c&#039;est la vie.&lt;br /&gt;
&lt;br /&gt;
Second, an avatar&#039;s shape isn&#039;t sphere shaped at all...and it&#039;s not a mesh, it&#039;s a convex hull. Its basic shape is kind of like a capsule. I&#039;ll leave the process of determining its exact shape via llCastRay calls with RC_GET_NORMAL as an exercise to the reader. :) (And if you do it, be sure to post pictures! That would rock.)&lt;br /&gt;
&lt;br /&gt;
Third, I&#039;m pushing hard for LL to provide client side prediction/client side physics. Although that wouldn&#039;t immediately lead to client side scripting, it eventually might. And in the meantime, although open source viewers would need to replace the physics module with an open source version (of which there are plenty), you would have a framework for doing physics-based raycasts locally.&lt;br /&gt;
&lt;br /&gt;
Fourth, regarding filtering, it just made the most sense to use blacklists as it&#039;s most common to want to know &amp;quot;What&#039;s the first thing I&#039;m hitting?&amp;quot; It&#039;s less common to want to know &amp;quot;what&#039;s the first avatar/prim/land triangle that I&#039;m hitting?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Finally, after seeing your comment about tracers I looked up the details of llParticleSystem and was astonished to see that, as far as I could tell, you&#039;re totally right. Here&#039;s one idea as a temporary workaround: rez a transparent, phantom, nonphysical sphere (perfect, solid spheres are the simplest physics shape available) at the location you need your particle effect, create it there, and then call llDie(). It sucks, I know, but I&#039;m not a graphics programmer and can&#039;t add an appropriate particle system function. Another idea, though much much less efficient, would be to rez a set of long, colored, phantom cylinders the length of the raycast. It&#039;s still much more efficient than prim bullets since it would be nonphysical and phantom, though.&lt;br /&gt;
&lt;br /&gt;
Hope that helps,&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 05:44, 4 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Avmeshforms.png|256px]]&lt;br /&gt;
Rendering of what the standing and ground sitting av shapes are!&lt;br /&gt;
--[[User:Moy Loon|Moy Loon]]&lt;br /&gt;
: Hahahahah, awesome! :D&lt;br /&gt;
: btw, can you repeat this but with a crouching av as well to confirm there is no change when an av crouches please? --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 18:35, 24 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
I already know that crouching avs have no change, The sitting on a prim is different than the ground sit though!&lt;br /&gt;
--Moy&lt;br /&gt;
&lt;br /&gt;
== Function to not fail, what do you think? ==&lt;br /&gt;
&lt;br /&gt;
I made this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;list JustRayIt(vector start, vector end, integer filter, integer flags)&lt;br /&gt;
{&lt;br /&gt;
    list temp;&lt;br /&gt;
   &lt;br /&gt;
   &lt;br /&gt;
    while((llList2Integer(temp, -1) &amp;lt; 0) || (llGetListLength(temp) == 0))&lt;br /&gt;
    {&lt;br /&gt;
        temp = llCastRay(start, end, filter, flags);&lt;br /&gt;
        &lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    return temp;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The idea being to halt the rest of the script until it can get a valid trace; does it work the way i intended it to? Is there any downside to using this? Is there a better way to get the same result? --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 04:14, 4 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Hi Tigro,&lt;br /&gt;
&lt;br /&gt;
The script you&#039;re suggesting would, sadly, be hugely inefficient. It would hog system resources until the script&#039;s time slice ran out. And, to make matters worse, once you fail you&#039;re guaranteed not succeed until at least the next frame anyway. I&#039;m not a huge lsl scripter, so I&#039;m not 100% sure, but I believe if you added an llSleep(0) call in the while loop, your script would be put to sleep until the next frame. Failing that, try llSleep(0.1) or some other small number.&lt;br /&gt;
&lt;br /&gt;
Good luck,&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 05:29, 4 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:The way it is on the Oatmeals, do tracing ever fail in the frame? --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 05:40, 4 July 2010 (UTC)&lt;br /&gt;
:Also, doesn&#039;t llSleep hog systems resources just the same? --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 05:44, 4 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
On Oatmeal, casts will fail if the overall physics FPS drops too low. It will never fail due to too many raycasts in the same frame, however. In production it will, but I wanted to see how people used it before determining appropriate limits.&lt;br /&gt;
&lt;br /&gt;
llSleep stops execution of your script and allows the simulator to move on to processing another script. It is not implemented as a busy-wait. (At least, I sure hope not. I haven&#039;t actually checked the code.)&lt;br /&gt;
&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 05:50, 4 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: How about this version?&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
list JustRayIt(vector start, vector end, integer filter, integer flags)&lt;br /&gt;
{&lt;br /&gt;
    list temp;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
    while((llList2Integer(temp, -1) &amp;lt; 0) || (llGetListLength(temp) == 0))&lt;br /&gt;
    {&lt;br /&gt;
        llSleep(0);&lt;br /&gt;
        temp = llCastRay(start, end, filter, flags);&lt;br /&gt;
 &lt;br /&gt;
    }&lt;br /&gt;
    if(llGetListLength(temp) == 1)&lt;br /&gt;
    temp = [NULL_KEY,end, llVecNorm(end-start), 0];&lt;br /&gt;
 &lt;br /&gt;
    return temp;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
: It got the sleep as you suggested, and if it doesn&#039;t hit anything in range it still returns a key, a hit position, a normal (so it kinda works like a telescopic feeler, when not reaching anythign it eventually stops at maximum extension with no deflection), while still keeping llList2Integer(theraylist, -1) == 0&lt;br /&gt;
--[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 19:43, 7 July 2010 (UTC)&lt;br /&gt;
:Ok, i finally managed to get it to wrok right, i think, but hsould i keep posting here clogging the talk page?&lt;br /&gt;
&lt;br /&gt;
== Partially offtopic: about SVC-4606 &amp;quot;Surface conveyour belt&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
Falcon, if it&#039;s not you, could you please bring [http://jira.secondlife.com/browse/SVC-4606 SVC-4606] to the attention of whatever Linden that would be able to evaluate it and get it in the plans if it&#039;s possible please? (If it&#039;s you, then please take a look and see what you can do) --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 04:43, 4 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
I have thought about adding a much, much simpler version of this (where you simply get to specify a velocity vector and a face of the prim), but it would be at least a little tricky to implement and there are a number of things of more general use that I&#039;d like to get to first. Some day, though, it would be a great feature.&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 05:51, 4 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:If the server already knows about which face collided and things like the normal of the collision point (and of course the texture parameters of the prim), wouldn&#039;t it be just a matter of basic vector math to get the resulting force and stuff? I imagine this could be a game changer close to the scale of flexies, people moving around a mall on flat conveyors like those on some airports, working escalators, more realistic wheeled and tracked vehicle behavior, people will find all sorts of uses for it. Is there somewhere i can see the stuff you got planned? --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 06:01, 4 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
I&#039;m about to head out (it IS a Saturday night here, haha), so this is probably my last post, at least for a few hours, probably until tomorrow. The problem is related to stability and details about determining which objects to apply the force to and how. In the physics engine, this would be done by modifying the contact points between the conveyor belt and the other bodies. Also, the server doesn&#039;t really know which face collided, which makes it trickier still, as that info would have to be derived dynamically any time a body came in contact with the conveyor belt object. Finally, it would almost certainly break avatar animations which rely on the avatar&#039;s velocity (not the requested motion of the user) to determine when to play a particular animation. Unfortunately, I don&#039;t have a publicly visible list of projects I&#039;d like to complete. But they do include llCastRay (yay progress!), llCastShape (see SVC-5389...I think...the raycast SVC, exposing the Havok vehicle kit, providing for alternative physics representation (so that the shape you see isn&#039;t tied to the shape the physics engine sees, allowing simpler collision geometry), providing control of friction, density, restitution, and gravity, ... the list goes on. Please bear in mind, however, that there is absolutely no guarantee any of these will be shipped as they are mostly unscheduled it isn&#039;t clear what LL&#039;s priorities will be in the coming months. Oh, and of course, given the opportunity, I&#039;d put all of these ideas aside to work on client side prediction which would have HUGE impact on lag, although it wouldn&#039;t provide much in the way of new resident-facing features.&lt;br /&gt;
&lt;br /&gt;
Have a good night,&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 06:24, 4 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
That partial list of projects is, like, my wishlist as an LSL scripter.  You&#039;re my new favorite Linden. ^_^;&lt;br /&gt;
--[[User:Michelle Resistance|Michelle Resistance]] 15:44, 8 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
::Some of those are among the feature suggestions i&#039;ve filled on pjira :)&lt;br /&gt;
::Falcon rocks indeed!! --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 16:10, 8 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== selfignoring? ==&lt;br /&gt;
&lt;br /&gt;
Is there a way to have the raytrace ignore prims in the same linkset? --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 05:42, 4 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
No, unfortunately this is not possible and would be hacky to implement (though it could be done if there were enough demand for it). It will, however, always ignore a shape that the ray begins inside of. So if you use llGetPos() from a convex prim, that prim will not be returned by the cast. You can always use the UUID of the prim to ignore the result as well.&lt;br /&gt;
&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 05:46, 4 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== On the topic of limiting it to not work past a distance ==&lt;br /&gt;
&lt;br /&gt;
It was done with llSensor, and what happened? People wasted server resources to overcome the limitation; you still think it&#039;s a good idea? --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 08:04, 4 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Nope. I don&#039;t. But llCastRay isn&#039;t artificially limited to a distance. It&#039;s simply limited to work within the region. But that isn&#039;t an artificial limit, it&#039;s a fundamental one: llCastRay uses the physics engine for raycasts. On a given simulator, nothing exists in the physics world outside the region boundaries.&lt;br /&gt;
&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 09:47, 4 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Hm, sorry, i&#039;m not finding it now, but i could swear i had read you saying somthing along the lines of &amp;quot;you wouldn&#039;t want people raycasting from the other side of the sim&amp;quot;, dunno... --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 09:56, 4 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Yes, I did say that. I then proceeded to change my mind. :)&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 18:59, 4 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
::Will llCastRay() at least return objects near the region boundaries, I know some script functions are aware of these but is the physics engine? It&#039;d be nice to have some margin of error for objects crossing region boundaries…&amp;lt;br/&amp;gt;-- &#039;&#039;&#039;[[User:Haravikk_Mistral|Haravikk]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User_talk:Haravikk_Mistral|talk]]|[[Special:Contributions/Haravikk_Mistral|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 13:21, 8 May 2011 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Is it a logical bug on my script or does it not update fast enough? ==&lt;br /&gt;
&lt;br /&gt;
Does the data llCastRay reads from gets update as often as the position and rotation of phys objects or does it get updated less often? I&#039;m mostly confident that the start position is inside the prim but somtimes the trace will hit the prim somehow, it happens more often when the prim is bouncing around fast. --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 11:23, 4 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
That depends on how you&#039;re updating the objects. If you&#039;re calling llSetPos() or similar in your script, those updates will not be processed until later, whereas the llCastRay call will be processed immediately. I suspect llGetPos() will return the value you set with llSetPos() even though the physics object isn&#039;t there yet.&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 19:01, 4 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;I&#039;m personally praying that llCastRay will make simulated projectile weapons essentially obsolete in SL. &amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
I&#039;ve spent a little time exploring the functionality of llCastRay today. From the perspective of a veteran LL damage combat scripter;&lt;br /&gt;
&lt;br /&gt;
In terms of raw utility, llCastRay effectively provides the ability to determine a bullet&#039;s target without the intervening physics. This is an advantage because it means that traditional region crawl caused by irresponsible people spamming physical objects is significantly reduced. It also means that the number of bullets required to send an individual home is reduced; in the case of the firer being able to aim, of course.&lt;br /&gt;
&lt;br /&gt;
The function seems more fitted to abstracted combat with meters and script awareness (determining distance to surfaces, etc) however, because it provides a very large volume of data back to the script calling it but does not impact what it is detecting in any way.&lt;br /&gt;
While it is possible to build a weapon that uses it for projectiles with traditional LL damage, the benefits do not necessarily outweigh the negatives; it effectively moves the majority of work from the source system to the projectiles instead. Using communications such as listens to transfer a target vector from a gun to a bullet on each rez is obviously absurdly inefficient considering the rates at which most people like to fire them and therefore the cast is better placed in the bullets themselves; this means that the bullets cannot be temporary prior to casting and therefore realistically on rez, although they can simply be set temporary subsequent to casting. Regardless of the method of acquiring the target position, the bullet must still travel to the location to inflict damage; a stacked primparams position is the obvious solution, as it also allows for temponrez and physics to be set in the same call.&lt;br /&gt;
&lt;br /&gt;
Would it be possible to implement a sister (if somewhat crippled) function to llCastRay that has the capability to inflict LL damage on agents? While I see a great deal of value in llCastRay it is not necessarily preferable to physics as a combat tool. Something along the lines of an llCastDamage which is restricted to cast from the root position of the object calling it along a fixed axis. In a similar manner to a sensor, except with a damage variable similar to the llDamage() prim param setter that affects only the first thing it intersects. Additional fluff could be a contact sound triggered at the point of intersection, contact particles and so forth.&lt;br /&gt;
&lt;br /&gt;
tested projectile, just for reference:&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
vector xyz(vector in)&lt;br /&gt;
{&lt;br /&gt;
    if (in.x &amp;gt; 255.9) in.x = 255.9;&lt;br /&gt;
    else if (in.x &amp;lt; 0.1) in.x = 0.1;&lt;br /&gt;
    if (in.y &amp;gt; 255.9) in.y = 255.9;&lt;br /&gt;
    else if (in.y &amp;lt; 0.1) in.y = 0.1;&lt;br /&gt;
    if (in.z &amp;gt; 4095.9) in.z = 4095.9;&lt;br /&gt;
    else if (in.z &amp;lt; 0.1) in.z = 0.1;&lt;br /&gt;
    return in;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llCollisionSound(&amp;quot;&amp;quot;,0.0);&lt;br /&gt;
        llCollisionSprite(&amp;quot;&amp;quot;);&lt;br /&gt;
        llSetDamage(100.0);&lt;br /&gt;
    }&lt;br /&gt;
    on_rez(integer s)&lt;br /&gt;
    {&lt;br /&gt;
        if (!s) return;&lt;br /&gt;
        vector p = llGetPos();&lt;br /&gt;
        vector d = &amp;lt;20.0,0.0,0.0&amp;gt;*llGetRot();&lt;br /&gt;
        list ray = llCastRay(p,xyz(p+d),0,0);&lt;br /&gt;
        list tgt = [PRIM_POSITION,llList2Vector(ray,1)];&lt;br /&gt;
        tgt += tgt += tgt += tgt += tgt += tgt;//1,2,4,8etc&lt;br /&gt;
        llSetLinkPrimitiveParamsFast(LINK_THIS,[PRIM_TEMP_ON_REZ,TRUE]+tgt+[PRIM_PHYSICS,TRUE]);&lt;br /&gt;
        llDie();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
[[User:Jeremy Duport|Jeremy Duport]] 19:51, 4 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== This is *not* a viable replacement for projectiles ==&lt;br /&gt;
&lt;br /&gt;
llCastRay is a great idea, and I&#039;ll make heavy use of it in a wide range of applications, but there&#039;s no way it&#039;s going to replace scripted bullets in any meaningful way.&lt;br /&gt;
&lt;br /&gt;
There&#039;s just no other way to get a decent visual effect for bullets.  Particles are an enormous performance drain on the client [and don&#039;t anyone tell me to just get a better machine, I&#039;m a poor student, damnit], and of course look the same from every direction.  Scripted bullets are also the only timely way to get a particle effect at unscripted impact locations.&lt;br /&gt;
&lt;br /&gt;
There&#039;s also the problem of communicating effectively between a gun and a scripted target.  With combat going on, something like a listen on targets and regionsay from guns is going to trigger zillions of unnecessary events.  Sure, *I* know how to properly hash UUIDs to integers, and there&#039;s reasonable code for that on this wiki, but have you actually seen the kind of shit most scripters in SL try to pull?  Note that people are *still* using resizer scripts in every prim of a linkset and controlling them with linked messages.&lt;br /&gt;
&lt;br /&gt;
Also, despite being sidetracked by https://jira.secondlife.com/browse/SVC-5953, I&#039;m a week or so of work away from releasing several weapons that trigger bullet rezzes via changed events, rather than by inked messages. Tyro Dreamscape has already successfully demonstrated this method as a near-zero-sim-impact way of squeezing high firing rates of scripted bullets out of as few rezzing scripts as possible.  Sure, you could bring up sim garbage collector woes, or my argument from above about the absurdly low coding standards among scripters, but the former has not been an issue in practice, at least with intentionally minimalist bullet scripts, and the latter is something I&#039;m expecting market forces to help with.  We *can* do scripted bullets the right way.&lt;br /&gt;
&lt;br /&gt;
I&#039;d really like someone to prove me wrong.  Thoughts?&lt;br /&gt;
&lt;br /&gt;
--[[User:Michelle Resistance|Michelle Resistance]] 15:55, 5 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ummm, you do realize that you&#039;re still just calling a function in one script, that triggers an event in another, right?  Except that where a linked message merely communicates between scripts, the changed() event requires triggering a function that changes some parameter of the other object, so you&#039;re asking the simulator to do a small bit of extra unnecessary work in between calling the function and triggering the event.&lt;br /&gt;
&lt;br /&gt;
You are right that scripted bullets can be done the right way.  But the right way doesn&#039;t mean reinventing the wheel or creating a Rube Goldberg machine, it requres understanding what the wrong way is, why certain things use extra processing resources, and finding the most effective ways to mitigate those problems.  Keep in mind that people have tried to use llResetOtherScript() and actually believed that it was more efficient.  It was the same sort of reasoning involved, where someone thought &amp;quot;method A is laggy, therefore method B will be better.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
It is quite possible to make efficient physical projectile weapons.  But just because many people are unable to do so does not mean that you need to find some supersekret new method for doing so.  It is simply a matter of using good coding practices like KISS.  Granted, it&#039;s oh so much easier to market something that&#039;s new and different, but that doesn&#039;t make it so.&lt;br /&gt;
&lt;br /&gt;
[[User:Jahar Aabye|Jahar Aabye]] 19:24, 5 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Passing data through a changed event, at least the way Tyro and I have been doing it, has far less impact on the sim than the string operations that most people do when communicating between scripts via link messages.  Try it, it&#039;s rather impressive.  And, to dispel concerns that it&#039;s just a gimmick, I&#039;ll explain exactly what I&#039;m doing and (probably) why it works better.&lt;br /&gt;
&lt;br /&gt;
I&#039;ve got a main script and several rezzer &amp;quot;thread&amp;quot; scripts, all in the same prim (they don&#039;t need to be, but that&#039;s how I&#039;m doing it), a hollow sphere.  When a user pulls the trigger (or an automated weapon decides to open fire), llSetColor(&amp;lt;AUTO, timer, aim&amp;gt;) is called [llSetLinkColor also works, though llSetLinkPrimitiveParams and the fast variant don&#039;t, as they don&#039;t trigger a changed event], where AUTO is a predefined floating-point number identifying that it&#039;s a firing order, timer is the argument we want the thread to past to llSetTimerEvent to control the firing rate, and aim is either 1.0 or 0.0, signifying if I&#039;m using the prim&#039;s other face to provide additional data about where to aim the bullets (which we can do without triggering a second changed event, if the llSetColor call for the other face is done immediately before or after the firing-order call).  This has been significantly more responsive (in LSO, anyhow) than a linked message in all my tests, and can easily support rather egregious firing rates [~25 bullets per second with five threads - well under the goo fence limit, though probably more than you&#039;d want] from many simultaneous users without affecting sim FPS.  My team&#039;s theory, that led us to try this in the firs place, was that the link_message dispatch code on the sim side is slowed by argument passing and filtering in a way that the changed event is not.  That we&#039;re only performing floating-point operations when using face color as an argument buffer seems to make the difference.  Certainly, one could use the link_message integer parameter to do filtering, and I write all my APIs that way, but it appears the extra overhead of passing string and key arguments, even when not used, is enough to upset the sim when performed at high speed.  As a side benefit, using the changed event keeps the rezzer threads from needing link_message handlers, reducing the number of scripts that need to filter out other communication happening in the linkset.&lt;br /&gt;
&lt;br /&gt;
Hope that allays your concerns.  If not, I&#039;ll be here all week. ~_^&lt;br /&gt;
&lt;br /&gt;
--[[User:Michelle Resistance|Michelle Resistance]] 23:06, 5 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::Well yes, you&#039;re simply shifting a portion of the load from the VM (which would handle the linked messages) to the Database and Simulator (which are handling the altering of the primitive&#039;s parameters and which then triggers the VM&#039;s changed() event).  This does not make it particularly more efficient, as I mentioned before you still have a function call and an event triggered, you&#039;re merely routing it through another method, in this case the simulator, which has to then alert every client within draw/LOD distance as to the nature of the change.  I am fully aware of what you are doing and how you are doing it, you are at least the third person in as many years who has mentioned it.&lt;br /&gt;
&lt;br /&gt;
::Rather than a lecture on how to script guns, I&#039;ll simply say that if it works for you, then that&#039;s all that matters.  There are efficient ways to use linked messages, and there are incredibly inefficient ways to use linked messages.  Similarly, I am certain that people will find right ways and wrong ways to handle llRayCast() if it is ever implemented.  Incorrect methods will undoubtedly spread through the grapevine with assurances that &amp;quot;this supersekrit way is teh best evar!!!11!!&amp;quot;  Market forces have as of yet had minimal effect on poor scripting with regards to guns in SL, I wouldn&#039;t expect that to change at any time in the future.  As you correctly note, many fashion designers still put resize scripts into every prim of hair.&lt;br /&gt;
&lt;br /&gt;
::In some respects, I doubt that many amateur gun scriptors will be much different after raycasting than before.  It may be less likely to be used by many amateur gun scripters simply because the default LL Damage system is built around physical collisions, and presumably that would remain the same.  Also, combat systems that use raycasting would likely require at least a decent understanding LSL or else might use prewritten no-mod scripts to do the raycasting.  To that extent, I do worry that raycasting may appear to be more efficient when it debuts on the grid, if only because of self-selection in terms of who is using it and how it is used.  This is probably something that should be considered if llCastRay() is ever implemented, as it does have an effect on how to interpret any sort of metrics gathered when trying to determine its relative efficiency compared to bullet-based guns.&lt;br /&gt;
&lt;br /&gt;
::In the end, it will be one more tool.  I would hope that the devs at LL do not really think that this will completely replace physical projectiles, but it is nice to have the option.  Similarly, I do hope that people understand that the relative efficiency of various guns on the grid varies wildly, and that the scriptor has a far greater impact on the relative efficiency of a gun than whether it uses physical bullets or llCastRay() when it is implemented.&lt;br /&gt;
&lt;br /&gt;
[[User:Jahar Aabye|Jahar Aabye]] 00:18, 6 July 2010 (UTC)&lt;br /&gt;
::: Latelly i&#039;ve been using llTarget and not_at_target to have stuff run as fast as the server allows without actually using somthing like while(true) --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 00:31, 6 July 2010 (UTC)&lt;br /&gt;
:::: In my tests, I&#039;ve found that LSO loops seem to end up *slower* than repeating events like timers and not_at_target.  &#039;Sweird. --[[User:Michelle Resistance|Michelle Resistance]] 00:47, 6 July 2010 (UTC)&lt;br /&gt;
:You could use llRayCast to verify if the aiming hits anyone,and then rez a &amp;quot;bullet&amp;quot;, posJump it to the target and make it phys to collide if you wanna use collisions to relay hits. --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 23:57, 5 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::Actually, that would probably be the worst of all worlds.  You&#039;re still rezzing a bullet, still moving it to the target, still making it physical, still colliding it.  All of the things that llCastRay() is attempting to prevent.  Also, most combat systems that involve collisions limit (or should limit) the minimum velocity of a collision.  To get around this, one would probably have to add a call to llApplyImpulse() or something similar.  At the end of the day, you wind up with a situation not much better off than just firing a bullet.&lt;br /&gt;
&lt;br /&gt;
:::llCastRay() is probably best implemented in a combat system in a manner similar to current sensor-based combat systems, which have been around for years.  I&#039;m not sure that sensor-based (or raycasting-based) combat is any better or worse than physical bullet-based combat.  Each has different tradeoffs, and at the end of the day it&#039;s going to come down to how these functions are worked into the system that gets set up.  Whether using sensors, raycasting, or bullets, it&#039;s all about understanding the strengths and weaknesses of each system, and working with that in mind.  Raycasting does have some significant strengths, but only if you take advantage of them.  Raycasting, if done correctly, will probably take some load off the physics engine at the possible cost of runtime efficiency and memory.  Physical bullet systems are simpler and may have an advantage in terms of runtime efficiency and memory use if done correctly, at the expense of offloading more of the work on the physics engine that has to deal with all of the active objects and the collisions generated.&lt;br /&gt;
&lt;br /&gt;
[[User:Jahar Aabye|Jahar Aabye]] 00:18, 6 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Ahoy folks!&lt;br /&gt;
&lt;br /&gt;
I don&#039;t know enough about the issues in LSL to comment on most of the topics brought up in this thread. But with regard to the issues around the appearance of raycasts vs rezzed bullets, once you use llCastRay, you&#039;ll at &amp;lt;i&amp;gt;least&amp;lt;/i&amp;gt; be able to set your bullets phantom. This prevents the physics engine from needing to check for collisions with anything but the land. Unfortunately, due to an old bug, collision checks against the ground are still very expensive. We expect to fix this by 1.44 at the latest. Once that&#039;s done, phantom bullets will be much more efficient.&lt;br /&gt;
&lt;br /&gt;
::Phantom bullets would give us the problem of having to inform them somehow of a hit so they can [promptly] self-destruct instead of continuing to pass through things… unless you&#039;re suggesting the bullets themselves do llCastRay and short circuit the physics system.  That sounds like a terrible hack, though.  Shouldn&#039;t it be more efficient to let the physics engine do its thing, rather than going through the twisty little passages of LSL VMs? --[[User:Michelle Resistance|Michelle Resistance]] 17:02, 6 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Regarding the matter of rezzing a bullet and then using the posjump trick (assuming that refers to the llSetPrimitiveParams hack where you repeatedly set the prim&#039;s position in a second call), that will actually be substantially less inefficient in 1.40 (when we finally get it right!). The reason is that in the past, each time you set the prim&#039;s position, the physics world would be updated, sometimes many many times in a frame. That is no longer the case (only the final position is actually used).&lt;br /&gt;
&lt;br /&gt;
::&amp;quot;[[PosJump]]&amp;quot; actually refers to a different &amp;gt;10m movement hack than what you&#039;re talking about, which is known as &amp;quot;[[WarpPos]]&amp;quot;.  PosJump is very much preferable, as the LSL script doesn&#039;t have to waste time and memory calculating a series of intermediate steps… but it doesn&#039;t work with llSetLinkPrimitiveParamsFast, just the slow variety. --[[User:Michelle Resistance|Michelle Resistance]] 17:02, 6 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::Last i tried it did work with llSetLinkPrimitiveParamsFast, did you test it yourself? --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 17:31, 6 July 2010 (UTC)&lt;br /&gt;
::::Yes, just a few weeks ago… though now that I think about it, I could have been confusing the issue with that posjump fails when the object is physical. --[[User:Michelle Resistance|Michelle Resistance]] 16:54, 7 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
And yes, an LSL busy loop (e.g., while(TRUE)) is very, very inefficient. It uses as much of the sim&#039;s resources as available until it is cut off for the frame. Even the most inefficient event scheme would probably be better than a busy loop.&lt;br /&gt;
&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 03:25, 6 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
::I&#039;ve found that even a bounded for loop is slower than a timer, in practice.  Any idea why this might be? --[[User:Michelle Resistance|Michelle Resistance]] 17:02, 6 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
In LSO it makes sense that using [[changed]] would be faster than the [[link_message]]. The changed event has one parameter, link_message has four; two of which are strings. It takes more computer time to push a link_message event onto a scripts event queue then it does to push a changed event. It takes more time to copy the values into script memory and trigger the event. Mind you, using [[llSetColor]] this way is going to cause a huge number of updates that the sim will try and send to all users in sight of the weapon. For a long time I thought we need a better comm event, no string, no key, just a list. Than I latched onto C# and the idea of building custom events. -- &#039;&#039;&#039;[[User:Strife_Onizuka|Strife]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Strife_Onizuka|talk]]|[[Special:Contributions/Strife_Onizuka|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 16:21, 8 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Possibility to limit list length? ==&lt;br /&gt;
&lt;br /&gt;
I am concerned about the memory issues posed by this function.  It was mentioned above, but not really fleshed out.  In order to be useful for a combat perspective, you can&#039;t really set any of the flags (that is, it must return all agents and objects) so that you know whether there is a wall or some other barrier between yourself and the target.  This means that you can get a potentially very long list with a UUID and vector position for each object hit.  This could easily eat up several kb of script memory.&lt;br /&gt;
&lt;br /&gt;
However, limiting the function to returning the first object hit (as has been mentioned as the possible final version) also removes some potentially interesting uses of this function.  For example, you could have a situation where you get one result if it reaches an avatar unimpeded, another if there is a single object between you and the other av, and then no result if there is more than one object.&lt;br /&gt;
&lt;br /&gt;
Would it be possible to compromise, and add another variable to input into the function to select the total number of objects to return?  So you could have: &lt;br /&gt;
&lt;br /&gt;
list llCastRay(vector start,vector end,integer filters,integer flags,integer num_returned)&lt;br /&gt;
&lt;br /&gt;
Where num_returned would be the total number of objects hit, starting with the closest.  It could be enumerated starting from 0 so as to match the values in the returned list, or from 1 if you would need to use 0 to set it to no limit.&lt;br /&gt;
&lt;br /&gt;
As for this function making physical projectile combat obsolete, I do not believe that this will happen.  I see this as akin to how sculpties have enhanced building: they give builders more options and allow for a greater variety of creative designs, but they have not obviated the use of regular prims.  Similarly, I think that this feature may increase the options available when developing combat systems and weapons.  However, I think that there are advantages to physical projectiles (such as the ability to code for ballistic trajectory).  I have used sensor-based combat systems before (although this has many advantages over those as well), and I have found that those feel a bit too much like playing &amp;quot;laser tag&amp;quot; especially when used over longer distances.&lt;br /&gt;
&lt;br /&gt;
I think that this will create more options for combat, it may allow for new types of combat, but there are always tradeoffs inherent in any system.  Raycasting methods will have advantages and disadvantages, they will be more efficient in some ways and less in others.  It will be nice to have this as a new option, but I worry about overselling this as a complete replacement.  After all, the Mono VM was marketed as being the wave of the future that would make LSL-compiled scripts obsolete.  While many scriptors knew to be cautious with a new VM, LL&#039;s overhyping of the system created a marketing environment where customers were asking if every product was Mono.  This resulted in Mono being used in a vast number of situations where it was not only unnecessary but entirely inappropriate.  &lt;br /&gt;
&lt;br /&gt;
I worry about a similar situation unfolding here, where marketing llCastRay as a complete replacement for physical projectiles will encourage non-technical people to demand &amp;quot;those new ray guns LL keeps telling us about, why haven&#039;t you been making those?&amp;quot;  Then these same people will inevitably come back a week later demanding why the RayCast &amp;quot;bullets&amp;quot; behave differently.  All that I am asking is that you please acknowledge that non-technical people will read these announcements without understanding the technical nuance and the inherent tradeoffs.  Overhyping something as a &amp;quot;complete replacement&amp;quot; when it is a new feature that allows for new options may only wind up creating new headaches.  A new feature that opens new doors and allows for new options for creators is great, it is wonderful.  No need to oversell a good thing.&lt;br /&gt;
&lt;br /&gt;
[[User:Jahar Aabye|Jahar Aabye]] 19:24, 5 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
In the final version of llCastRay, if more than 1 hit can be returned I&#039;ll be sure to give you the ability to select some kind of limit (even if it&#039;s only a binary &amp;quot;first hit or all N hits&amp;quot; choice--where N is definitely a finite number determined by the specification). &lt;br /&gt;
&lt;br /&gt;
Also, if using llCastRay feels too much like laser tag, try adding a small delay before the raycast executes or adding some randomness to the cast&#039;s direction. As for the ballistic trajectory, if that&#039;s really critical, there are ways to simulate it. For example, you could make 4 ray casts approximating the parabolic curve, but you&#039;d have the possibility of performing an early-out if one of the first casts hits something.&lt;br /&gt;
&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 03:33, 6 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
::Yes, randomness for the direction is easily doable by modifying existing code.  What I meant about ballistics isn&#039;t just the trajectory, drop, and inaccuracies like random variations in direction.  A delay before firing can be done, but one factor in the current projectile combat is that your aim is highly dependent upon the distance to your target and how this relates to the target&#039;s movement.  With projectiles, it is far easier to hit a close target than a far one, and if the target is moving, this has a disproportionate impact on difficulty with a farther target.  This is because of the time that it takes for the bullet to reach the target, because the bullet&#039;s travel is not instant.&lt;br /&gt;
&lt;br /&gt;
::Now, because SL physics limits bullet velocity to far less than in real life (our SL bullets are usually 115 m/s while a 5.56mm round from an M16 is well over 900 m/s), the result is that it greatly exaggerates the effects of distance and movement, but distance in SL is always a somewhat arbitrary measurement.  So I recognize that physical projectiles are far from perfect, and plenty of people have complained of difficulty when they first try SL combat after experience with other video and computer games that probably are using raytracing or similar technology.  But it does add a satisfactory level of difficulty and skill to competitions.&lt;br /&gt;
&lt;br /&gt;
::I know this is probably not feasible, and I certainly don&#039;t want it to wind up polluting the code and making everything more difficult, but is there any way to give the ray a specific velocity, rather than being nearly instant?  I&#039;m not just talking about a delay between the firing input and casting the ray, but having the ability to set the ray to move at a specified speed so that distance to target matters?  I mean, I suppose that I could fire multiple staggered rays to try to imitate this, and have the script read data from each successive ray only between certain distances....but that&#039;s gonna get really inefficient really fast, while the simulator is already calculating avatar distance and movement.&lt;br /&gt;
--[[User:Jahar Aabye|Jahar Aabye]] 05:47, 7 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::Hey Jahar, I see what you&#039;re saying, but no, there&#039;s no way to slow down the ray, it&#039;s a synchronous, instantaneous query into the physics world&#039;s current state. You&#039;ll just need to come up with a new clever way to inject difficulty into things :) (I&#039;m usually terrible at first person shooters and those have stupid AIs and instantaneous raycasts. I&#039;m sure a group of human enemies can find a way to make hitting them challenging while still being fun, even if the bullets travel faster now.) Also, given that the physics hitbox of a player is pretty narrow, I&#039;m guessing it may be harder than you expect to hit a moving target from the other side of the sim, even with a raycast. But then, I haven&#039;t tried.&lt;br /&gt;
:::[[User:Falcon Linden|Falcon Linden]] 03:46, 8 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Raycast Damage ==&lt;br /&gt;
&lt;br /&gt;
Hey folks,&lt;br /&gt;
&lt;br /&gt;
I&#039;ve been trying to coalesce some of the most significant suggestions for llCastRay, and one theme that seems consistent is that weapon system makers need a way to be notified when hit by a ray. I&#039;m thinking of two possible features:&lt;br /&gt;
&lt;br /&gt;
1) For integration with LL damage, it might be possible to create another parameter that takes a list of parameters (albeit with a bit more strict requirements than in primparams args due to inefficiencies in list processing). In the future, this could include a version number, but in the meantime, one possible parameter could be RC_DAMAGE which would apply a requested amount of damage to the first object hit if that object is an avatar and if the region is damage enabled, etc.&lt;br /&gt;
&lt;br /&gt;
2) An event, ray_impact, that the caster script could choose to trigger in impacted objects. This would, in principle, alleviate many of the security concerns around raycast-based weapons systems. In the interests of full disclosure, however, I should tell you that (a) I don&#039;t know how to create a new event (I&#039;ll have to speak to Kelly Linden) and therefore, (b), I don&#039;t know if implementing this feature would be prohibitive in terms of engineering time. But let&#039;s suppose I &amp;lt;i&amp;gt;could&amp;lt;/i&amp;gt; implement this. What information would you want the receiving object to be able to obtain in this event? The fewer the better, so my first instinct would be no information (it&#039;s enough to know you were hit). Beyond that, knowing the exact location of the hit could be nice, as would knowing the UUID of the casting object (maybe?) and perhaps receiving bit of user data provided in the llCastRay call. Would that be helpful? How might you use it?&lt;br /&gt;
&lt;br /&gt;
Cheers,&lt;br /&gt;
&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 03:47, 6 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: #1 sounds excellent, though it&#039;s been notoriously difficult to get people to play fair with LL damage.&lt;br /&gt;
&lt;br /&gt;
:: A ray_impact event would be a godsend.  The UUID of the casting object would be essential, and a hit location [and maybe hit normal] would be very useful.  Ideally, an appropriate set of llDetected* functions should work inside the ray_impact event similarly to how they&#039;re used in a touch event.  Might need a new one, like llDetectedRayNormal.  Still, just an event with a signature like ray_impact(key id, vector pos, vector norm) would be massively useful.  Let&#039;s see… I&#039;d be using llCastRay for collision avoidance on robots, and ray_impact would make it easier for the robots to exhibit schooling behaviors.  Similarly, such robots could interact with scripted objects in their environment (door controls, moveable boxes?) elegantly.  Other uses… target ranges for raycast-based weapons… missile lock detection in fighter combat… assuming we could use it in attachments for impacts to the avatar, combat meters for raycast-based guns… AR-like user interfaces implemented by raycasts from a HUD [though the math for generating such rays may be rather complicated]… line-of-sight communication between objects and avatars… I&#039;m sure there are more that I can&#039;t think of at the moment.  Bottom line, adding functionality to LSL is a Very Good Thing. --[[User:Michelle Resistance|Michelle Resistance]] 17:46, 6 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Falcon, I&#039;ve been silent on this point because I don&#039;t agree with the naysayers; &amp;lt;tt&amp;gt;llCastRay&amp;lt;/tt&amp;gt; is exactly what I&#039;ve been needing for the combat system I&#039;m building.  For those that want to use Linden Damage, I think &amp;lt;tt&amp;gt;llTakeDamage()&amp;lt;/tt&amp;gt; (perhaps accepting negative values to allow for healing) would be valuable, but beyond the scope of this project.  I don&#039;t personally hold with the logic that it&#039;s marginally hard to write non-laggy chat communications, so we should expect people to write non-laggy bullets and guns.  It&#039;ll require combat to be done differently, so it&#039;s not an evolutionary change, but I don&#039;t see that as a barrier.&lt;br /&gt;
&lt;br /&gt;
That said, if it can be done, RC_DAMAGE would be a nice thing to have.  I do build my weapons to fail down to Linden damage if no supported combat system is found, and if Linden damage is enabled.  &amp;lt;tt&amp;gt;ray_impact&amp;lt;/tt&amp;gt; would also be nice, especially if it&#039;s only explicitly triggered; UUID, impact point, and an arbitrary integer constant sent by the ray caster would be the values I&#039;d see as most useful.  Perhaps rather than go the whole list of parameters route for RC_DAMAGE, just add another integer parameter to &amp;lt;tt&amp;gt;llCastRay&amp;lt;/tt&amp;gt; that would be used differently with different flags?  In any event, not having either of these would in no way dampen my enthusiasm for this feature or impact my plans for using it, assuming it gets deployed. [[User:Jack Abraham|Jack Abraham]] 19:23, 6 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
::I think that suggestion #1, or some similar functionality, would be essential if you want this function to work with the current default LL Damage system.  The LL Damage system currently requires a physical collision between an avatar and an object scripted with llSetDamage().  This means that I can simply fire a bullet at an avatar and apply damage, but raycasting alone would not be able to perform any sort of damage without also requiring some sort of bullet unless you add this feature.&lt;br /&gt;
&lt;br /&gt;
::Suggestion #2 also sounds useful, if possible.  I suspect that many people will still utilize weapon-meter comms even if you include this function, because there is still greater security there in terms of being able to limit what can do damage within a system.  However, Michelle outlines many other excellent uses for including this feature.  In addition to making it far easier to construct non-avatar targets, it dramatically increases the potential usage for raycasting beyond just a replacement for projectiles.  I was just talking to a plane maker last night about how raycasting could make laser-guided bombs far more interesting, and while that example wouldn&#039;t require this extra feature, it does illustrate that raycasting can evolve into so many other things besides just a bullet, and so adding in the feature to detect a raycast may expand the use of raycasting into all sorts of applications beyond what any of us could envision.&lt;br /&gt;
&lt;br /&gt;
::As for what information might need to be passed?  Jack&#039;s suggestion of adding an all-purpose integer definitely sounds like the most important.  Obviously an integer would be required to set damage, and having the ability to send an integer with a raycast would also allow for expanded use outside of LL Damage.  It could allow a weapons system to differentiate between raycasts of different &amp;quot;caliber&amp;quot; or allow for raycasts to broadcast a &amp;quot;team&amp;quot; number, or to differentiate between raycasts being used as &amp;quot;projectiles&amp;quot; from those being used as &amp;quot;lasers&amp;quot; or in some other sensing capacity, or a million other situations where the ability to program an object with multiple responses to a raycast would dramatically expand its utility.  An integer is also the simplest piece of information that could be added, and you&#039;ll need to add it anyways if you add LL Damage functionality.&lt;br /&gt;
&lt;br /&gt;
::The UUID of the originating object would also be useful, as would the owner&#039;s UUID.  While it may sound redundant, I wonder about situations where the owner of the originating object might not be in the region, I believe that llGetOwnerKey() may not work in those situations, right?  So the owner UUID would be important.  It might also be useful for llCastRay() to send a UUID of its own choosing, and here I&#039;m thinking of how it is common in SL aviation for planes to be guest-flyable, so the owner of the object may not be the one using it.  However, workarounds already exist for this with bullet-based combat systems, so maybe it&#039;s not essential.  Of course, if it simply broadcast a UUID (or string) of the scriptor&#039;s choosing, that would allow whoever is scripting the object to decide whether to send the object UUID, the owner UUID, or the user&#039;s UUID, so it might be even better than automatically sending the object and owner UUIDs.&lt;br /&gt;
&lt;br /&gt;
::Finally, it might be useful to include the vector position of the originating point of the raycast.  Not where it hits you, but where it was sent from.  Granted, if the object/owner/user UUID is included, then llGetObjectDetails() might be used to get this information, but for some instinctive reason that I can&#039;t quite figure out at the moment, I feel like this might be a useful thing to add.  In the end, though, if you have to include one bit of information, make it all purpose integer that could be used to determine LL Damage or passed to an event.  If at the end of the day you can only pass on one piece of info, an integer would give you the most utility with the least overhead.&lt;br /&gt;
&lt;br /&gt;
::[[User:Jahar Aabye|Jahar Aabye]] 06:43, 7 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:::How about the shooter just sending the info about how the shot originated (also thigns like the gun used etc) via chat and then the potential target(s) calculate whether they were hit or not and adjust their owner health points as needed? (I just thought about that approach, haven&#039;t put much thought into it)&lt;br /&gt;
::: Btw, does everyone uses gravitiless bullets? I would expect people going for the more realistic stuff would use physical bullets that fly a ballistic trajectory... Can a ballistic arc be used instead of a straight line &amp;quot;ray&amp;quot;  with raycasting? --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 06:56, 7 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
::::Tigro, in real life, a 9mm round of typical self-defense ammunition has a muzzle velocity of 1120ft/s or 340m/s. As another commenter pointed out, a 5.56 NATO round (think M16) has a muzzle velocity of about 3000ft/s or 915m/s. Those two rounds would travel a sim diagonal (362m) in 1.06 and  0.4s, respectively. During that time period, if fired horizontally, they would fall about 5.5m and about 0.79m, respectively. Sounds like a lot, except that a pistol wouldn&#039;t have a range anywhere near that large in reality (you couldn&#039;t POSSIBLY aim a pistol accurately at a target nearly 4 football fields away, at least not by hand, and not without some kind of crazy scope...not to mention that wind would slow it down substantially over that distance) and for the M16, the drop is not significant given the 350m distance being traveled. So while no, you can&#039;t use a ballistic arc instead of a straight line, think about whether you really need to. And if you discover you really do, you could always approximate it with 4 line segments. &lt;br /&gt;
::::[[User:Falcon Linden|Falcon Linden]] 04:04, 8 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Get Alt-Zoom camera cursor position and surface orientation ==&lt;br /&gt;
&lt;br /&gt;
Here is an example I made, how to get the camera cursor position when you Alt-Zoom on any object surface with the &#039;&#039;&#039;llCastRay&#039;&#039;&#039; function.&lt;br /&gt;
&lt;br /&gt;
The script also calculates the surface orientation at the cursor position and rezes a prim on a top of surface. The Z-Axis of a rezed prim is aligned with the Normal vector of a surface at a given point and the X-Axis points in a way of your camera sight.&lt;br /&gt;
&lt;br /&gt;
To test the script make a new HUD object and put the script below into it. Also put one standard cube prim (named Object) into its inventory. Attach the HUD and Alt-Zoom to any curved surface in region, but not more than 10m far from you. Then click on the HUD and a new prim will be rezed on a top of surface where the Alt-Zoom cursor of your camera points.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
//                    &lt;br /&gt;
//      Scriptname:  Get Alt-Zoom position and Surface Orentation&lt;br /&gt;
//      Version:     1.0&lt;br /&gt;
//      Date:        06.07.2010&lt;br /&gt;
//&lt;br /&gt;
//      Description: Gets the position of the camera cursor&lt;br /&gt;
//                   when a user Alt-Zumes on a surface of any object and&lt;br /&gt;
//                   rezes a prim on this point and orients it with a surface&lt;br /&gt;
//&lt;br /&gt;
//      How To:      - Create a new HUD (cube), size = X=0.05 y=0.05 Z=0.05&lt;br /&gt;
//                   - Put this script on it and attach it as a HUD&lt;br /&gt;
//                   - Insert a standard prim (Cube 0.5m) into HUD inventory (named as Object)&lt;br /&gt;
//                   - Alt-Zoom with your mouse to any object surface in the region&lt;br /&gt;
//                   - Without moving your camera, click on this HUD&lt;br /&gt;
//                   - You will get the camera cursor position and surface orentation&lt;br /&gt;
//                   - An Object from HUD inventory will be rezed on a top of Alt-Zoomed surface&lt;br /&gt;
//                     perfectly aligned with surface and with X-axis pointed to your line of sight&lt;br /&gt;
//&lt;br /&gt;
//      Tips:        To see the camera cursor, enable: Advanced-&amp;gt;Character-&amp;gt;Show Look At in your Advaned Menu&lt;br /&gt;
//                   Rez a big sphere to make a curved surface in a region and Alt-Zoom on it.                 &lt;br /&gt;
//&lt;br /&gt;
//      Notes:       You must be at least 10m close to Alt-Zoom position (llRezObject() limitation)&lt;br /&gt;
//                   There&#039;s no &amp;quot;clamping code&amp;quot; included to cut the rays to be inside of a region&lt;br /&gt;
//&lt;br /&gt;
//      Creator:     Teleworm Gelber&lt;br /&gt;
//&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        if (llGetAttached() &amp;gt; 0)&lt;br /&gt;
        {&lt;br /&gt;
            llRequestPermissions(llGetOwner(), PERMISSION_TRACK_CAMERA);&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
            llOwnerSay(&amp;quot;Attach me as a HUD&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    run_time_permissions(integer permissions)&lt;br /&gt;
    {&lt;br /&gt;
        llOwnerSay(&amp;quot;Alt-Zoom on any curved surface in the region and then click me to get the Alt-Zoom cursor coordinates and an Object will be rezed there&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    touch_start(integer total_number)&lt;br /&gt;
    {&lt;br /&gt;
        vector   camPos;        // camera position&lt;br /&gt;
        rotation camRot;        // camera rotation&lt;br /&gt;
&lt;br /&gt;
        vector   rayEnd;        // ray end vector&lt;br /&gt;
&lt;br /&gt;
        vector   curPos;        // Alt-Zoom cursor position&lt;br /&gt;
        rotation curRot;        // Point on a surface rotation (Z-axis = SurfaceNormal, X-axis = line of sight)&lt;br /&gt;
&lt;br /&gt;
        vector   fwd;           // surface Forward vector&lt;br /&gt;
        vector   left;          // surface Left vector&lt;br /&gt;
        vector   normal;        // surface Normal vector&lt;br /&gt;
&lt;br /&gt;
        list     rayData;       // ray cast return data&lt;br /&gt;
&lt;br /&gt;
        if ((llGetPermissions() &amp;amp; PERMISSION_TRACK_CAMERA) != 0)&lt;br /&gt;
        {&lt;br /&gt;
            // getting camera location&lt;br /&gt;
            camPos = llGetCameraPos();&lt;br /&gt;
            camRot = llGetCameraRot();&lt;br /&gt;
&lt;br /&gt;
            // Cast a ray in a line of your sight (10.0 means llRezObject() limitation)&lt;br /&gt;
            rayEnd   = camPos + 10.0 * llRot2Fwd(camRot);&lt;br /&gt;
&lt;br /&gt;
            rayData = llCastRay(camPos, rayEnd, 0, RC_GET_NORMAL);&lt;br /&gt;
&lt;br /&gt;
            if (llList2Integer(rayData, -1) &amp;gt; 0)   // check status code&lt;br /&gt;
            {&lt;br /&gt;
                // get the Alt-Zoom cursor position and orentation&lt;br /&gt;
                curPos = llList2Vector(rayData, 1);&lt;br /&gt;
                normal = llList2Vector(rayData, 2);&lt;br /&gt;
&lt;br /&gt;
                // calculate axis for point oirentation&lt;br /&gt;
                left = llVecNorm(normal % llRot2Fwd(camRot));&lt;br /&gt;
                fwd  = left % normal;&lt;br /&gt;
                &lt;br /&gt;
                curRot = llAxes2Rot(fwd, left, normal);&lt;br /&gt;
&lt;br /&gt;
                llOwnerSay(&amp;quot;Alt-Zoom Position: &amp;quot; + (string) curPos);&lt;br /&gt;
                llOwnerSay(&amp;quot;Point Rotation: &amp;quot;    + (string) curRot);&lt;br /&gt;
&lt;br /&gt;
                // rez an Object on a top of hit surface, 0.25 means the prim center offset from surface (0.5m cube)&lt;br /&gt;
                llRezObject(&amp;quot;Object&amp;quot;, curPos + &amp;lt;0.0, 0.0, 0.25&amp;gt; * curRot, ZERO_VECTOR, curRot, 0);&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                llOwnerSay(&amp;quot;Nothing hit, try again&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
            llOwnerSay(&amp;quot;Attach me as a HUD first&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    on_rez(integer par)&lt;br /&gt;
    {&lt;br /&gt;
        llResetScript();&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--[[User:Teleworm Gelber|Teleworm Gelber]] 23:08, 6 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Inaccurate (buggy) position and normal ==&lt;br /&gt;
&lt;br /&gt;
I don&#039;t really have time for this, ... but I tried it out with a quick script (see below)&lt;br /&gt;
and my conclusion is that the place that is reported for the hit is very inaccurate at times.&lt;br /&gt;
It certainly isn&#039;t equal to the physical (collision) shape of objects, for example the place&lt;br /&gt;
another physical object would lay, or where you&#039;d stand if you stood on top of a prim with&lt;br /&gt;
your avatar, and often it&#039;s just near random (actually, this is clearly a bug).&lt;br /&gt;
&lt;br /&gt;
The script that I used in my objects is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
vector center;&lt;br /&gt;
float distance = 15.0;&lt;br /&gt;
&lt;br /&gt;
rez_marker(vector pos, vector normal)&lt;br /&gt;
{&lt;br /&gt;
    llRezObject(&amp;quot;Marker&amp;quot;, pos, ZERO_VECTOR, llRotBetween(&amp;lt;0,0,1&amp;gt;, normal), 0);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
probe(vector direction)&lt;br /&gt;
{&lt;br /&gt;
    //llSay(0, &amp;quot;direction = &amp;quot; + (string)direction);&lt;br /&gt;
    vector start = center + llVecNorm(direction) * distance;&lt;br /&gt;
    list results = llCastRay(start, center, RC_REJECT_AGENTS|RC_REJECT_PHYSICAL|RC_REJECT_LAND, RC_GET_NORMAL);&lt;br /&gt;
    if (llList2Integer(results, -1) &amp;gt; 0)&lt;br /&gt;
    {&lt;br /&gt;
        //llSay(0, &amp;quot;llCastRay returned &amp;quot; + (string)results);&lt;br /&gt;
        vector pos = llList2Vector(results, 1);&lt;br /&gt;
        vector normal = llList2Vector(results, 2);&lt;br /&gt;
        rez_marker(pos, normal);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        llSay(0, &amp;quot;llCastRay FAILED!&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    //rez_marker(start);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
init()&lt;br /&gt;
{&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        init();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    on_rez(integer param)&lt;br /&gt;
    {&lt;br /&gt;
        init();&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    touch_start(integer total_number)&lt;br /&gt;
    {&lt;br /&gt;
        if (llDetectedKey(0) != llGetOwner())&lt;br /&gt;
            return;&lt;br /&gt;
&lt;br /&gt;
        center = llGetPos();&lt;br /&gt;
        vector direction = &amp;lt;1,0,0&amp;gt;;&lt;br /&gt;
        float alpha;&lt;br /&gt;
        for (alpha = 0.0; alpha &amp;lt; 360.0; alpha += 10)&lt;br /&gt;
        {&lt;br /&gt;
            vector eul = &amp;lt;0, 0, alpha * DEG_TO_RAD&amp;gt;;&lt;br /&gt;
            rotation quad = llEuler2Rot(eul);&lt;br /&gt;
            probe(direction * quad);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Put it in an object together with an object named &amp;quot;Marker&amp;quot;.&lt;br /&gt;
The Marker object should be a (red) sphere of size 0.1 x 0.1 x 0.01.&lt;br /&gt;
&lt;br /&gt;
The script will rez the Marker object on the surface of the&lt;br /&gt;
object you put it in, with it&#039;s flat side outwards.  If you test&lt;br /&gt;
this with a cube of 10x10x10 you&#039;ll understand what is the idea :p.&lt;br /&gt;
&lt;br /&gt;
Next test it with a Cylinder of size 3.4 x 4 x 3.342&lt;br /&gt;
Taper X and Y both 1.00, Top Shear X = 0.30, and Y = 0.0&lt;br /&gt;
(the rest default)... and see the deviations.&lt;br /&gt;
&lt;br /&gt;
Try many more funny shaped objects to see loads and loads of&lt;br /&gt;
bugs and inaccuracies.&lt;br /&gt;
&lt;br /&gt;
--[[User:Aleric Inglewood|Aleric Inglewood]] 0:55, 7 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
You know, part of me hopes you&#039;re right--and that there&#039;s nothing I can do about it. Shapes like you&#039;re describing are terrible for the physics engine (tons of triangles, some of the degenerate, etc.). That said, I&#039;ll take a look at the physics debugger we have and see what&#039;s going on tomorrow. I suspect that the physics representation just isn&#039;t quite what you think it is. We&#039;ll see. Either way, thanks for bringing it to my attention.&lt;br /&gt;
&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 03:41, 7 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:As Teleworm points out below, the problem here is in your script, not in the llCastRay. You should check the hit list to find the hit with the UUID matching the scripted object&#039;s key and use that. You may still get more than one hit if you&#039;re near the edge of a triangle or if your shape is not convex, however.&lt;br /&gt;
:[[User:Falcon Linden|Falcon Linden]] 04:07, 8 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Simple Raytracer==&lt;br /&gt;
&lt;br /&gt;
[[File:Snapshot_2983.png|left|256px]]&lt;br /&gt;
I did this a few days ago, it&#039;s pretty nifty!&lt;br /&gt;
&lt;br /&gt;
--[[User:Moy Loon|Moy Loon]]&lt;br /&gt;
&lt;br /&gt;
Not just nifty, bloody awesome! Btw, notice the way the two thin cylinders show as boxes. We replace long, thin cylinders with boxes. Can you take a photo with an avatar? :)&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 04:09, 8 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
[[File:Avmeshforms.png|256px]]&lt;br /&gt;
&lt;br /&gt;
== Visualizing rays for debugging? ==&lt;br /&gt;
&lt;br /&gt;
Would it be possible to have the server send to the client the exact position of the begin and end points of the ray (so the client can render the ray itself) to help with debugging? (like trying to figure out ray positioning for a complex shaped linkset that needs close rays) I imagine it would be somthing like, the client tells the server it wants the rays, then the server will send the info for all rays owned by the avatar, and the client will render them as beacon like lines that fade gradually (the fading time would be a debug setting), perhaps add a bit of animation tot he beam like those pulses for the &amp;quot;cheesy beacon&amp;quot; for TP targets and tracking people on the map, to indicate the direction of the ray. To cope with packet loss, each time the client receives ray data it will tell the server whether to continue or stop, or perhaps just keep sending the request every N seconds and if the server don&#039;t get a request for a few N seconds it stops sending the info to that client. --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 16:59, 7 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I wish. Sorry, that&#039;s out of the scope of this project (which is intended to require a minimum amount of development time. So far, I think I&#039;ve spent &amp;lt;10hrs coding it, and I&#039;m trying to keep it under 20 total. &lt;br /&gt;
:[[User:Falcon Linden|Falcon Linden]] 04:20, 8 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You could also just rez an object to &#039;visualize&#039; it, learn about llRotBetween, and how to split things up into 10m chunks! --moyloon&lt;br /&gt;
&lt;br /&gt;
== Edge of sim returning usefull results ==&lt;br /&gt;
&lt;br /&gt;
How about if when the ray hits the edge of the sim, position will be the intersection of the ray with the edge (since it can&#039;t go past it), and the UUID will be one constant if there is another sim on the other side of the edge, and another constant if it leads into the void? --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 20:02, 7 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Sorry, that&#039;s just a little too hacky and out of scope for this one. :) Would be interesting, though! Feel free to submit a jira for interrogating the region as to its neighboring sims. That might be a useful function.&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 04:11, 8 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Phantom getting hit? ==&lt;br /&gt;
&lt;br /&gt;
Could anyone confirm if phantom objects are really not being ignored please? --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 23:18, 7 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Yes, this is a bug that I will fix when I have time. Shouldn&#039;t be too hard.&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 04:11, 8 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Even flexies are getting hit, but the the normals seem to be messed up (in my preliminary tests it seems the normals returned for flexies all point up regardless of where you hit them) --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 05:29, 8 July 2010 (UTC)&lt;br /&gt;
:: Flexies attached to phys linksets seem to be harder to hit (they also got a funky collision but just with the ground apparently, nothing but lucky rays and the ground seems to collide with them, i&#039;m not 100% sure, but i think in H4 not even the ground touches physical flexies) --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 05:44, 8 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Not hugely surprising, if phantom is getting picked up. Flexies don&#039;t have a flexible physics rep, I think it&#039;s just a box or something. I&#039;ll have to look into it, but probably not before next week. Curious, though, what about trees? (Note that a tree&#039;s physics shape is a very narrow box, so you&#039;d have to cast right in the middle of the tree.)&lt;br /&gt;
&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 05:36, 8 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Haha, whoops. I looked at my code and it&#039;s a one line bug. I could fix it now, but it&#039;s not critical and it wouldn&#039;t get updated on Aditi for a few days anyway. But rest assured, it should be a quick and easy one. :)&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 05:49, 8 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Would it be possible to add a checkbox or a setting that scripts can set to keep flexies colliding with the ground when desired? I&#039;ve jsut made a random toy that it&#039;s kinda fun to watch that without flexies colliding with ground but nothing else wouldn&#039;t work quite the same (i&#039;m asking for a somthign liek a checkbox/hidden switch because i can imagine that if this behavior isn&#039;t present in H4 some stuff might break if it&#039;s kept). No biggie if it has to be fixed though. --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 07:04, 8 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:::This reminds me of one existing (Agni) edge case that might be useful to clear up with this.  Currently if an avatar sits on an object, and that object then sets VolumeDetect to TRUE, the physics engine sets the avatar to phantom, and it does not register any hits on the avatar, even to the point of rendering the avatar invulnerable with regards to LL Damage.  I had not thought to test this with RayCasting, but I am wondering what the intended effect will be in terms of how rays will interact with these phantom avatars.  For additional information, see [http://jira.secondlife.com/browse/SVC-1253 SVC-1253] which has sort of lingered in limbo, probably because there are more important things to fix.  However, if the raycasting code is still being written, it&#039;d be nice to prevent this sort of unintended behavior before it even begins.&lt;br /&gt;
:::[[User:Jahar Aabye|Jahar Aabye]] 03:27, 9 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:::The sitting-phantom glitch with llVolumeDetect already has some odd behaviors, if you enable physics on the linkset.  When physical, the avatars behave something like tiny points of solid material, snagging on objects that the linkset passes through.  It&#039;s very odd.  I suppose I should bring some example code around and shoot rays at it, an&#039; see what happens?&lt;br /&gt;
:::--[[User:Michelle Resistance|Michelle Resistance]] 16:19, 13 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Some good news for llCastRay ==&lt;br /&gt;
&lt;br /&gt;
I was playing with the script from Aleric Inglewood and tried to figure out what causes this strange inaccurate positions and normals. And I figured out that the main reason is the Marker size and shape and not the physic engine. &lt;br /&gt;
&lt;br /&gt;
In the example of Cylinder of size 3.4 x 4 x 3.342, the ray hits a Marker which was previously rezed one step before and not the surface of the cylinder. That is the reason, why were Normals wrong oriented. I modify the script in such a way that I numbered all Markers with llSetText.&lt;br /&gt;
&lt;br /&gt;
The second problem is inaccurate position. A marker is always placed about 3-5 cm &#039;&#039;&#039;above&#039;&#039;&#039; a surface, and not exactly on it on a flat surface. This can be seen on a cube object. On a sphere, this error is smaller. And in a shape of this deformed cylinder sometimes markers appears below surface and becomes invisible, but never more than 5cm.&lt;br /&gt;
&lt;br /&gt;
To correct the Aleric experiment, just make a smaller marker. And when all markers are rezed, resize the cylinder to become little smaller to see all markers. If you zoom with your camera very close, you can see that all markers follow the orientation of polygones that define the object shape.&lt;br /&gt;
&lt;br /&gt;
--[[User:Teleworm Gelber|Teleworm Gelber]] 23:40, 7 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Good catch. I came to the same conclusion about Aleric&#039;s script, but I cheated (I have a way of visualizing the raycasts and the whole physics scene :). &lt;br /&gt;
&lt;br /&gt;
As for the inaccurate position, it&#039;s not inaccurate per se. It&#039;s just not what you expect. Most shapes in the physics engine (anything that isn&#039;t a perfect cylinder or perfect sphere, as I recall) has an additional radius of 5 or 10cm (I can never remember which). This is why if you stack physical boxes they&#039;ll have a gap between them. We use raycasts for sitting, but we specifically account for the radius in that code and in a few other places (like foot IK). There are a few other idiosyncracies around raycast results. For example, for most shape a ray parallel to its surface will not return a hit, nor will a ray terminating exactly at its surface or a ray originating inside the shape (unless it&#039;s a concave shape made of triangles, in which case the same holds true, but it&#039;s the individual triangle the ray begins inside that won&#039;t be hit). &lt;br /&gt;
&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 04:18, 8 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
The 10cm difference can be a problem for a system I have been working on for a long time now. With a lot of collision detection and Avatar Sensors, I have a system that causes the Avatar to behave differently physics-wise when stepping onto certain named surfaces. Currently, the problem is the collision detection system is unreliable when objects are real close together. It detects one or the other, and there is no way to determine which the avatar is standing on. I am hoping llCastRay is better, but it still leaves problems because of the invisible &amp;quot;extra height&amp;quot; of every prim. If a prim is underground, but only slightly, collision still detects the underground prim, despite the avatar only colliding with the actual ground. This occurs up to 1/4 a meter distance between the two vertically. If llCastRay has the same problem, there will still be too many workarounds to fix it. With that said, llCastRay is still something I wish to see completed. It&#039;s imperative for reducing sim lag, since llCastRay can take the place of 3 or 4 functions (one a repeating sensor event) in my script, and probably in many other scripter&#039;s scripts as well.&lt;br /&gt;
&lt;br /&gt;
[[User:Da Chrome|Da Chrome]] 16:47, 3 May 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Can we have this on the maingrid pretty please? ==&lt;br /&gt;
&lt;br /&gt;
I know this is experimental etc, but would it be possible to port the ray code to a sim version avaible on the maingrid and offer a sandbox sim with this hybrid version so we can play with ray with our main invs, live groups, chatting with friends inworld etc? --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 00:19, 8 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Sorry, no. We&#039;re not set up for doing that sort of thing. We can bring your agni inventory over to Aditi (contact Oskar), but you&#039;ll lose anything you currently have on Aditi.&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 04:21, 8 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I know, the beta grid inventory is one way copy of the main grid inv, everything gets overwritten when it&#039;s refreshed; i would rather not have to keep exporting the stuff i make there when i want to keep them though. --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 07:09, 8 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Just saying TY ==&lt;br /&gt;
&lt;br /&gt;
TY ;-) Will be cool. Keep it up Falcon.&lt;br /&gt;
&lt;br /&gt;
== just letting you know ==&lt;br /&gt;
&lt;br /&gt;
I&#039;ll be out of town this week, won&#039;t be able to read the stuff here nor log in to test stuff, cya. --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 20:57, 10 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Cast Ray vs. Ray Cast ==&lt;br /&gt;
&lt;br /&gt;
The function name proposed is &amp;quot;llCastRay&amp;quot; but the constants start &amp;quot;RC&amp;quot; as in &amp;quot;Ray Cast&amp;quot;. Would make sense to have them be consistent (as in &amp;quot;CR&amp;quot;). It&#039;s annoying keeping [[llMessageLinked]] and [[link_message]] straight. -- &#039;&#039;&#039;[[User:Strife_Onizuka|Strife]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Strife_Onizuka|talk]]|[[Special:Contributions/Strife_Onizuka|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 16:40, 15 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I second that motion. I&#039;m hoping this functionality is introduced and however it comes will be better than not coming at all but, while the opportunity exists to craft it to be as clean and user friendly as possible, that opportunity should be taken. Although this seems like a tiny issue (link_message vs llMessageLinked OR llSetLinkPrimitiveParamsFast *fingers gasp for breath* (although at least it wasn&#039;t llSetLinkPrimitiveParametersFast)) there is no good argument in favor of making function or event names insensible whereas there are good arguments in favor of them being simple and easy to write and remember. Now is the time to get that right. Still hugely in favor of the functionality though so if you MUST call it something complex and irritating, go right ahead ;-) -- &#039;&#039;&#039;[[User:Fred_Gandt|Fred Gandt]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Fred_Gandt|talk]]|[[Special:Contributions/Fred_Gandt|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 07:13, 17 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Hey guys,&lt;br /&gt;
&lt;br /&gt;
The logic is that the method, llCastRay, is a verb phrase (&amp;quot;cast a ray&amp;quot;), whereas the parameters are noun/adjective phrases (&amp;quot;Ray Cast Reject Agents&amp;quot;, &amp;quot;Ray Cast Reject Terrain&amp;quot;). Does that make sense to you?&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 06:39, 19 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
::Hey Falcon :-)&lt;br /&gt;
&lt;br /&gt;
:Grammatically correct it may be but, fiddly. Muscle memory etc. llCastRay(CR_summit_summit) just flows better. It&#039;s really only the _summit_summit that matters at the end of the day. If there were flags that were &#039;&#039;BOTH&#039;&#039; RC_ &#039;&#039;AND&#039;&#039; CR_ (depending on grammatical doobrywotsits) then cool; but, if there will only be &#039;&#039;EITHER&#039;&#039; CR_ &#039;&#039;OR&#039;&#039; RC_ I for one would prefer to go along with the CR_ simply so I don&#039;t need to think about my old English teachers in the middle of writing a statement. *not terribly concerned but, interested* -- &#039;&#039;&#039;[[User:Fred_Gandt|Fred Gandt]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Fred_Gandt|talk]]|[[Special:Contributions/Fred_Gandt|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 10:35, 19 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: I like the gramaticly correct approach, saves time when reading a script, and once you get used to it it flows as smoothly as anything else. It somtimes brings a smile to my face when i realise what i&#039;m writting makes sense even if i didn&#039;t understand what the words make happen under the hood. And the more consistent LSL is the better,  it already goes the gramaticly correct route elsewhere, so it would be expected it would also do it here. --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 20:48, 19 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::Tigro...An example of LSL being grammatically correct elsewhere would be, what? Perhaps the well known functions llGiveFolderOfInventoryListed or llSendMessageToLinkInSet?&lt;br /&gt;
::::Falcon (since I&#039;m already here)...I was thinking that since the world at large (when thinking about ray-casting) thinks of Ray-Casting rather than Casting-Rays it would prolly be even simpler to name the function llRayCast. *shrugs* TBH, whatever the parts end up being called it&#039;s how they work that matters most. Awesome of you to be trying to get this out. Hear&#039;s (now) quietly hoping. -- &#039;&#039;&#039;[[User:Fred_Gandt|Fred Gandt]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Fred_Gandt|talk]]|[[Special:Contributions/Fred_Gandt|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 04:02, 20 July 2010 (UTC)&lt;br /&gt;
::::: llMessageLinked isn&#039;t gramaticly correct?&lt;br /&gt;
&lt;br /&gt;
== ray_impact event vs. http ==&lt;br /&gt;
&lt;br /&gt;
I&#039;ve been thinking about the asserted need for a ray_impact event to determine if you&#039;ve been hit by a raycast. Babbage suggested that instead of creating a new ray_impact event (which is trickier than any of us might like), the same goals could be accomplished using the existing HTTP url system. The idea was that you&#039;d set up a system as follows for securely communicating the results of the ray cast:&lt;br /&gt;
&lt;br /&gt;
1) Users wear a hit detection script that acquires an HTTP-in URL and stores it in its description. &lt;br /&gt;
2) For weapons builders, you provide a copy, no-mod (and thus unreadable) script (call it a &amp;quot;firing script&amp;quot;) that has a link_message event that the weapon builders&#039; scripts can use to talk to it. This script also contains a secret key known to the hit detection scripts.&lt;br /&gt;
3) The weapon script sends a link message to the firing script with the requested start/end position of the ray. The firing script (which is secure because it was written by the system creator) then casts a ray (if the start/end points are allowed based on game rules). If it detects a hit, it gets the target&#039;s hit detection url from the target&#039;s description and sends an HTTP POST with the details, including a secret code to verify authenticity.&lt;br /&gt;
&lt;br /&gt;
What would prevent this from being a viable alternative to a ray_impact event? (Obviously, it generalizes to other uses equally well.)&lt;br /&gt;
If you think it will be too slow or have another fault, could you code up a simple, testable example?&lt;br /&gt;
&lt;br /&gt;
Thanks!&lt;br /&gt;
&lt;br /&gt;
:Something similar could be done using llRegionSay by sending the message on a frequently changing, random channel. The synchronization on channel would be performed by llRegionSay&#039;ing a new random channel number periodically, with the number encrypted using a key shared by all interested/authorized scripts. This would seem a lot simpler/faster than the HTTP idea.&lt;br /&gt;
&lt;br /&gt;
::I think a ray_impact would be a useful event, but by no means necessary.  There&#039;s any number of ways to securely communicate script to script using chat, http, reading one another&#039;s descriptions, carrier pigeon, etc., with llSHA1String or llMD5String and a password providing authentication.  If ray_impact is any trouble, drop the idea; don&#039;t let it stand in the way of getting us llCastRay.  It would be simpler to update existing combat meters using a new event, I think, but I don&#039;t think that should be a barrier.  [[User:Jack Abraham|Jack Abraham]] 07:23, 22 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Change Reject constants to be inclusive ==&lt;br /&gt;
Many, if not all other, LL calls use constants OR&#039;d together in a positive sense to change a scripts&#039; behavior.&lt;br /&gt;
This is the only function where I have seen constants used to reduce what the function does.&lt;br /&gt;
&lt;br /&gt;
I&#039;d suggest changing the RC_REJECT constants by eliminating the _REJECT_ portion and also adding a new constant, something along the lines of RC_ALL.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;normal&amp;quot; call would have the ALL constant unless you only wanted a subset of actions, in which case your OR together the constants you need.&lt;br /&gt;
&lt;br /&gt;
What do people think?  [[User:Jonathan Yap|Jonathan Yap]] 10:01am, 24 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Although unusual (this is just my opinion) rejection rather than inclusion seems like a perfectly reasonable way around things. I wonder if it might be more efficient too. Analogy: Compact discs: When a CD has bonus tracks that are often disruptive when listening to an otherwise complete listening experience, it is typical to avoid being disturbed after the album is finished that we need to &#039;&#039;include&#039;&#039; all the album tracks in a programmed playlist before starting the playback. I have often wished that I could &#039;&#039;exclude&#039;&#039; the few bonus tracks instead. I would go so far as suggesting that bonus tracks should be (in what seems an illogical fashion) the first tracks indexed on the CD so that no playlist programming is required at all; We simply start playback at track 4 to avoid playing the 3 bonus tracks. So although unusual and unexpected, an alternative way might be more efficient and simpler to use.&lt;br /&gt;
::This however is not a compact disc so, my greatest concern is with how well it works and how efficient it is as code. If there is NO difference in efficiency at all between rejection and inclusion, for the sake of continuity I would certainly agree with [[User:Jonathan Yap|Jonathan]] insofar that the &#039;&#039;normal&#039;&#039; way to construct a function by &#039;&#039;inclusive&#039;&#039; constants would be preferable. -- &#039;&#039;&#039;[[User:Fred_Gandt|Fred Gandt]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Fred_Gandt|talk]]|[[Special:Contributions/Fred_Gandt|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 08:26, 25 July 2010 (UTC)&lt;br /&gt;
:::I agree with Jonathan and Fred on this, as there is always the possibility that llCastRay may detect new types in future, and by building an exclusive filter you may suddenly start detecting objects you don&#039;t expect to as a result. It is much better for the function to simply return what you ask for, rather than returning everything you ask not to return, as it is a much more tightly controlled result that way.&amp;lt;br/&amp;gt;-- &#039;&#039;&#039;[[User:Haravikk_Mistral|Haravikk]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User_talk:Haravikk_Mistral|talk]]|[[Special:Contributions/Haravikk_Mistral|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 11:09, 22 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Optimizing Simulations ==&lt;br /&gt;
&lt;br /&gt;
Well, I got quite a few ideas that surround this issue, and I have tried to narrow it doesn&#039;t to a simple concept that describes a pattern how to use functionality, like llCastRay(), to optimization simulations. I blogged more details here: [http://icyspherical.blogspot.com/2010/07/optimizing-simulations-with-basic.html Icesphere Blog]. Let&#039;s not confuse this with a common ray-tracer. I want the client end to contact a prim on the simulator to demonstrate the basic pattern. The prim just needs to cast rays and send data back to the client. The client-side fills in the details. This first phase would only need to get a rough scene layout. Close objects probably can be gathered with a scanner and some further objects can be done with llCastRay() (can&#039;t cross sims yet, but someday maybe). Hopefully, use http client/server methods to communicate with detected objects.&lt;br /&gt;
&lt;br /&gt;
Now with that basics above, scripts added into detected objects could further describe details of the scene through client/server methods. I&#039;ve seen other LSL raytracers, that didn&#039;t use llCastRay(), that used scripts to store &amp;quot;material&amp;quot; data and thought... cool!&lt;br /&gt;
&lt;br /&gt;
Posted some vulgar code here: [[User:Dzonatas_Sol/HttpCastRayLLSD]] [[User:Dzonatas Sol|Dzonatas Sol]] 05:52, 28 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Possibility of a &amp;quot;Fast&amp;quot; trace ==&lt;br /&gt;
&lt;br /&gt;
Hi Falcon.&lt;br /&gt;
&lt;br /&gt;
ty ty ty ty ty ty :D (Now that I got that off my chest :p)&lt;br /&gt;
&lt;br /&gt;
I&#039;ve got a bit of a suggestion, is it possible to add a llCastRayFast which only determines if there is something within the filter that&#039;s in the way between point A and point B.&lt;br /&gt;
&lt;br /&gt;
E.g. xyz avatar wants to go to sleep but a requirement to goto sleep in a hud is that the avatar is sheltered from the elements, the script does a trace looking to see if the avatar has a clear shot at the sky or not, if not the avatar is under cover.&lt;br /&gt;
&lt;br /&gt;
I really hope the hands of god (LL) allow this to make it into the maingrid.&lt;br /&gt;
&lt;br /&gt;
Look forward to catching you on the test grid :)&lt;br /&gt;
&lt;br /&gt;
Cheers,&lt;br /&gt;
Lastro&lt;br /&gt;
&lt;br /&gt;
edit: Also see my user page for some code I&#039;ve done, which works how I would expect it to (appart from it detecting the target object)&lt;br /&gt;
&lt;br /&gt;
Another idea would be the ability to do a ray trace between two object/agent/etc UUIDs. --[[User:Lastro Greenwood|Lastro Greenwood]] 00:54, 7 August 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Any updates? ==&lt;br /&gt;
&lt;br /&gt;
I haven&#039;t been around much, any news regarding this? Falcon hasn&#039;t been sacked too, has he? o.o --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 20:26, 26 September 2010 (UTC)&lt;br /&gt;
:Hi, Falcon is still among the living Lindens but he is working on other projects like mesh.  llCastRay is &amp;quot;[[User:Andrew Linden/Office_Hours/2010 09 10#msg_200|shelved until further notice, unfortunately]].&amp;quot; --[[User:Cerise Sorbet|Cerise Sorbet]] 23:17, 26 September 2010 (UTC)&lt;br /&gt;
::IMO this should be given more priority than mesh import. --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 00:12, 27 September 2010 (UTC)&lt;br /&gt;
:::Well Mesh import is a big important project so I wouldn&#039;t say that. But it&#039;s odd that the scripting team can&#039;t be working on it, as efficient scripts and script limits are their domain, and that seems to be the main hold-up on the function right now. Given the huge, complex workarounds to create scripted AI without this function it certainly comes under script efficiency, as I have pathing objects that use four or five scripts to give some semblance of accuracy, when this single function would eliminate all of them.&amp;lt;br/&amp;gt;-- &#039;&#039;&#039;[[User:Haravikk_Mistral|Haravikk]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User_talk:Haravikk_Mistral|talk]]|[[Special:Contributions/Haravikk_Mistral|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 11:23, 22 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Redesign of llCastRay()? ==&lt;br /&gt;
&lt;br /&gt;
I&#039;m curious as to why this function requires a start and end point rather than describing a true ray like so:&lt;br /&gt;
&amp;lt;lsl&amp;gt;list llCastRay(vector origin, vector direction, float range, list options);&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quite simply the two vectors should describe the origin point (start) and direction of the ray, it&#039;s then up to the function to decide whether to process until &amp;lt;code&amp;gt;range&amp;lt;/code&amp;gt; is reached, or if a region boundary is hit (whichever occurs first). A range of 0.0 would describe an infinite ray, in which case it will only stop upon hitting the maximum number of unfiltered objects, or a region boundary. Preferably the ray should continue a short-distance into the next region rather than halting immediately upon a boundary, the standard overlap is around 20m I believe?&amp;lt;br/&amp;gt;-- &#039;&#039;&#039;[[User:Haravikk_Mistral|Haravikk]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User_talk:Haravikk_Mistral|talk]]|[[Special:Contributions/Haravikk_Mistral|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 11:06, 22 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    list castray(vector origin, vector normal, float distance, list options){&lt;br /&gt;
        return llCastRay(origin,origin+normal*distance,list options);&lt;br /&gt;
    }&lt;br /&gt;
It&#039;s easier in my opinion, to have a start and stop, instead of start, normal, and distance, aswell as I&#039;m sure most other people would think the same way, But, that&#039;s a wrapper for how you&#039;d want it.&lt;br /&gt;
&lt;br /&gt;
--[[User:Moy Loon|Moy Loon]] 17:50, 22 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Problem is that it lacks a way to properly describe infinity. I suppose if we know that the ray can&#039;t go beyond the region then a range of 16536.0 or some other large value is fine, but it seems a lot simpler to be able to use the normal/direction vector. I mean you could even simplify it further by removing the origin point and assuming the ray is always cast from the scripted prim&#039;s centre, though an origin may be especially useful. It&#039;s just that with the normal you could do the following:&lt;br /&gt;
&amp;lt;lsl&amp;gt;// What can I see?&lt;br /&gt;
llCastRay(llGetPos(), llRot2Fwd(llGetRot()), 50.0, []);&amp;lt;/lsl&amp;gt;&lt;br /&gt;
This seems a simple, and likely very common use-case of the function. Likewise it may be desirable to have the filter as a formal part of the function, rather than under options, and just use the same constants, so that I could more specifically do:&lt;br /&gt;
&amp;lt;lsl&amp;gt;// Who can I see?&lt;br /&gt;
llCastRay(llGetPos(), llRot2Fwd(llGetRot()), 50.0, AGENT, []);&amp;lt;/lsl&amp;gt;&lt;br /&gt;
Or possibly even do the same with the maximum number of values returned, as the filter and the maximum are the two that are needed most, list-based options should be restricted to things that are additional, rather than fundamental to typical usage of the function. But in any event, to me this seems a lot simpler, as other you have to do:&lt;br /&gt;
&amp;lt;lsl&amp;gt;// Who can I see?&lt;br /&gt;
vector pos = llGetPos();&lt;br /&gt;
llCastRay(pos, pos + (llRot2Fwd(llGetRot()) * 50.0), [RC_REJECT_TYPES, RC_REJECT_PHYSICAL | RC_REJECT_NONPHYSICAL | RC_REJECT_LAND]);&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hell, the whole set-up of the function is a bit bewildering, I&#039;ve posted a function that I believe would be a lot cleaner/more-usable and consistent, and you can find it [[User:Haravikk Mistral/LlCastRay|here]].&amp;lt;br/&amp;gt;-- &#039;&#039;&#039;[[User:Haravikk_Mistral|Haravikk]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User_talk:Haravikk_Mistral|talk]]|[[Special:Contributions/Haravikk_Mistral|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 12:17, 23 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:What I really love is how the Lindens working on this function seem to just love ignoring all the issues I&#039;ve been trying to raise with the design of it. Now we&#039;re just rushing towards releasing a function that barely resembles an LSL call, and does just about everything it needs to backwards. With no true control over the output this function is pretty much useless for any of the cases I&#039;d want to use it for, as I&#039;ll need to do complex list manipulation in order to sort the results. Does no-one but me care that this function seems like a bad joke? It has all the functionality we need, and have wanted since day one of scripting in SL, and yet delivered in a package that makes no sense in the slightest.&amp;lt;br/&amp;gt;-- &#039;&#039;&#039;[[User:Haravikk_Mistral|Haravikk]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User_talk:Haravikk_Mistral|talk]]|[[Special:Contributions/Haravikk_Mistral|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 04:54, 6 July 2011 (PDT)&lt;br /&gt;
&lt;br /&gt;
== llCastRay for Vehicle&#039;s wheels suspension? ==&lt;br /&gt;
&lt;br /&gt;
I&#039;m still disturbed from the day you suggested it, Falcon. While llCastRay itself is a great idea, but it bear no good logical use for vehicle suspensions system. You know I didn&#039;t have to hesitate to say no, I knew right off the bat that it was a bad idea.&lt;br /&gt;
&lt;br /&gt;
There are ways to track height of on-coming prims and land slope to clench its wheels in a single frame before collision happens. This is requiring to scan the path at every physic frames and more. You also need to make calculation how deep the &amp;quot;bump&amp;quot; is and throw suspension&#039;s reaction force up the car as a jump or &amp;quot;damping&amp;quot; shock. However...  llCastRay can not help with physic collision when the wheels are trying to push outward to raise the car up. Moving wheels via llSetLinkPrimParam (or the fast version as well) would clip through solid object within the first few physic frames, later Havok engine try to resolve by pushing out the wheel, some times result in getting stuck into the ground or objects it drives on top of. It happens on a tiny smooth bump, causing a dramatic physic motion interruption, even come to a full stop without being fully stuck into the road. I&#039;ve had done this similar setup with collision event and sensor. I spent two years researching a better way to handle vehicle suspension with all the LSL code and complex physic algorithms I could use.&lt;br /&gt;
&lt;br /&gt;
Vehicle suspension system need much more to work with, but it would be pretty darn silly to let Havok&#039;s vehicle library go to waste without any script&#039;s delaying the collision event in frames between.&lt;br /&gt;
My bigger concern is having Linden Lab (or you, Falcon, for that matter) use llCastRay as a &amp;quot;work around&amp;quot; excuse not to provide better suspension/motorized system. I&#039;m not demanding to give us Havok&#039;s suspension system right at this minute, but be aware how poorly dealt it has been.&lt;br /&gt;
&lt;br /&gt;
Keep up the good work; I&#039;m sure I&#039;ll find more uses for llCastRay.  --[[Image:Nacon-tag.jpg]] &#039;&#039;&#039;[[User:Vincent_Nacon|₪]]&#039;&#039;&#039; 23:19, 11 February 2011 (PST)&lt;br /&gt;
&lt;br /&gt;
:I don&#039;t think he meant wheels with suspension, but solid wheels that work realisticly, only proving thrust when in contact with the ground (or anything else) --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 12:46, 6 May 2011 (PDT)&lt;br /&gt;
&lt;br /&gt;
::If the wheels were made flexible paths (so they&#039;re phantom within a non-phantom linked set) then you could still simulate the visual effect of suspension if you really wanted, while invisible guide prims control the actual physical motion.&amp;lt;br/&amp;gt;-- &#039;&#039;&#039;[[User:Haravikk_Mistral|Haravikk]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User_talk:Haravikk_Mistral|talk]]|[[Special:Contributions/Haravikk_Mistral|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 13:18, 8 May 2011 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Simplification function for use. ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
list ray(vector s, vector e)&lt;br /&gt;
{&lt;br /&gt;
    return llCastRay(s,e,&lt;br /&gt;
    [&lt;br /&gt;
        RC_REJECT_TYPES,&lt;br /&gt;
                        0&lt;br /&gt;
                        //RC_REJECT_AGENTS&lt;br /&gt;
                        //|RC_REJECT_PHYSICAL&lt;br /&gt;
                        //|RC_REJECT_NONPHYSICAL&lt;br /&gt;
                        //|RC_REJECT_LAND&lt;br /&gt;
                        ,&lt;br /&gt;
        RC_DATA_FLAGS,&lt;br /&gt;
                        0&lt;br /&gt;
                        //RC_GET_NORMAL&lt;br /&gt;
                        //|RC_GET_ROOT_KEY&lt;br /&gt;
                        //|RC_GET_LINK_NUM&lt;br /&gt;
                        ,&lt;br /&gt;
        RC_MAX_HITS, 1,&lt;br /&gt;
        RC_DETECT_PHANTOM,FALSE  &lt;br /&gt;
    ]);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
[[User:Draconis Neurocam|Draconis Neurocam]] 10:19, 8 April 2011 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Where can i find a list of sims currently aware of this command? ==&lt;br /&gt;
&lt;br /&gt;
I&#039;ve been away for some time, trying to come back now, but the Oatmeals that used to recognize the commands aren&#039;t doing it anymore, where can i find an updated list of sims where i can play with llCastRay right now? --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 12:43, 6 May 2011 (PDT)&lt;br /&gt;
&lt;br /&gt;
the mesh sims on betagrid seem to support it well&lt;br /&gt;
--[[User:Vagabond Carter|Vagabond Carter]] 16:47, 2 July 2011 (PDT)&lt;br /&gt;
&lt;br /&gt;
== making use of the normal ==&lt;br /&gt;
&lt;br /&gt;
after some experimentation on betagrid I&#039;ve found the following handy:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
to turn a normal into a rotation (for rezzing portals/decals etc)&lt;br /&gt;
vector norm = (the normal retunrd by llCastRay() );&lt;br /&gt;
rotation hitrot = llRotBetween(ZERO_ROTATION , norm);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--[[User:Vagabond Carter|Vagabond Carter]] 16:15, 2 July 2011 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Pre-Release? ==&lt;br /&gt;
&lt;br /&gt;
Shouldn&#039;t the document be tagged with &amp;quot;|mode=pre-release&amp;quot;? Considering the fact that it&#039;s not currently &amp;quot;activated&amp;quot;?&lt;br /&gt;
&lt;br /&gt;
--[[User:Ayamo Nozaki|Ayamo Nozaki]] 12:21, 7 September 2011 (PDT)&lt;/div&gt;</summary>
		<author><name>Ayamo Nozaki</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:LlCastRay&amp;diff=1153185</id>
		<title>Talk:LlCastRay</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:LlCastRay&amp;diff=1153185"/>
		<updated>2011-09-07T19:20:57Z</updated>

		<summary type="html">&lt;p&gt;Ayamo Nozaki: /* Pre-Release? */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Why isn&#039;t this using the sensor API? ==&lt;br /&gt;
&lt;br /&gt;
# The sensor API already exists and has well understood behavior.&lt;br /&gt;
# The sensor API resolves many of the problems people have brought up, such as list length and range.&lt;br /&gt;
# The sensor API is asynchronous.&lt;br /&gt;
# Creating new APIs when there are already viable existing ones leads to Mainframe-itis.&lt;br /&gt;
# This would be an opportunity to add a result filter variant to the llSensor() family...&lt;br /&gt;
&lt;br /&gt;
llCastRay(string name, key id, integer type, float range, vector path, integer request_mask);&lt;br /&gt;
&lt;br /&gt;
Eg:&lt;br /&gt;
&lt;br /&gt;
 llCastRay(&amp;quot;&amp;quot;, &amp;quot;&amp;quot;, AGENT|ACTIVE|PASSIVE, 32, &amp;lt;1, 0, 0&amp;gt;, SENSOR_POSITION);&lt;br /&gt;
  &lt;br /&gt;
 /...&lt;br /&gt;
 &lt;br /&gt;
 sensor(integer n)&lt;br /&gt;
 {&lt;br /&gt;
   integer i;&lt;br /&gt;
   for(i = 0; i &amp;lt; n; i++)&lt;br /&gt;
     llSay(0, &amp;quot;Ping at &amp;quot;+(string)llDetectedPos(i));&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
-- [[User:Argent Stonecutter|Argent Stonecutter]] 11:53, 7 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I think somewhere Falcon said not doing it like sensors was intentional in order to get the data the moment the command is run instead of having to wait for an event, i don&#039;t remember seeing an explanation why this was a better approach though.&lt;br /&gt;
:Btw, how would the normal of the hit(s) be reported? A new llDetected* function? Perhaps this would be an opportunity to introduce list llDetected(integer index, list what), this way future llDetected* functions can be easily prototyped without needing to actually implement a whole new command in the server (you know, like with the primitive params stuff)&lt;br /&gt;
:ps: talking about normals and llDetected* i would like to plug [http://jira.secondlife.com/browse/SVC-3369 SVC-3369] &amp;quot;llDetectedCollisions* (similar to llDetectedTouch*)&amp;quot; , mind taking a look Falcon?&lt;br /&gt;
--[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 12:46, 7 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:This was not done like the sensor API because it&#039;s not really all that similar to sensors. Unfortunately I don&#039;t have time to get into a discussion of why the API you&#039;re suggesting would be problematic, but if you read the history of this feature (SVC-5389), I hope you&#039;ll begin to see where I&#039;m coming from.&lt;br /&gt;
:Tigro, Sorry, I&#039;m backlogged for a month at this point, so I don&#039;t think I&#039;ll be able to look at that soon. :) In general, I&#039;m looking at this feature right now only because it affects a huge audience and is way, way overdue. Oh, and because I&#039;m a physics guy and it&#039;s a physics feature more than anything else. :P&lt;br /&gt;
&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 03:34, 8 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
::SVC-5389 is about download problems. Do you mean SVC-5381? There&#039;s a couple of notes about sensors being &amp;quot;heavy&amp;quot;, but not really any explanation of why they&#039;re &amp;quot;heavy&amp;quot;. The only heavy feature of sensors is that it calculates and returns more information than you&#039;re asking for, and the request_mask would take care of that... and would open up the possibility of adding the same kind of masking to existing sensor calls. In terms of scripting, sensors are in many ways lighter because you&#039;re not having to pass around (and copy) lists.&lt;br /&gt;
&lt;br /&gt;
:: There&#039;s some comments about speed of response, but also about having to throttle it to once per frame. I think the sensor API would make that less of an issue.  -- [[User:Argent Stonecutter|Argent Stonecutter]] 20:09, 11 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: I&#039;m undecided about use of the [[sensor]]() event. The main reason being that many of the cases where I see this function being used for simple AI behaviours you are almost certainly going to be calling [[llCastRay]]() from within the sensor() event, so having to then cache the original sensor data and wait for the second event is incredibly messy. On the other hand, I do agree that it does feel a lot like a special case of sensor so it would make sense to use the event, allowing with suitable &amp;lt;code&amp;gt;llDetected*()&amp;lt;/code&amp;gt; functions for the extra data such as [https://jira.secondlife.com/browse/SVC-1432 llDetectedNormal()] which is another long overdue function.&amp;lt;br/&amp;gt;-- &#039;&#039;&#039;[[User:Haravikk_Mistral|Haravikk]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User_talk:Haravikk_Mistral|talk]]|[[Special:Contributions/Haravikk_Mistral|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 11:15, 22 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== llSonar please? ==&lt;br /&gt;
&lt;br /&gt;
I would appreciate if you took in consideration my suggestions at http://jira.secondlife.com/browse/SVC-2486 please; any feedback is more than welcome. &lt;br /&gt;
&lt;br /&gt;
ps:llCastRay is already awesome, you rock! Please try the hardest you can to figure out how to get this to come to the maingrid with the least crippling as possible.&lt;br /&gt;
&lt;br /&gt;
--[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 03:01, 3 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Hi Tigro,&lt;br /&gt;
&lt;br /&gt;
If I understand your feature request, it sounds much like the shape cast described in SVC-5381 (http://jira.secondlife.com/browse/SVC-5381) for a sphere or a cylinder cast along its primary axis. Is that correct?&lt;br /&gt;
&lt;br /&gt;
Thanks,&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]]&lt;br /&gt;
&lt;br /&gt;
: I have just skimmed thru the comments there, do shape casting allow for somthing liek for example have a nonphys object recognize the geometry so it could rest against a jumbled pile of prims as if it was laying against them physicly? (in the ASCII art in SVC-2486 it would be having the object represented by the O&#039;s resting in the diagonal line as if it was solid) --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 05:44, 3 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:A practical example, imagine a giant mecha, with big flat feet, now imagine a landscape littered with prims of all sorts of shapes and sizes, to make it look realistic, on each step the foot should be rotated to rest against the highest points under it ; just raycasting you have the risk of shooting between prims, and with shapecast you don&#039;t get the rotation for the foot. --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 03:04, 4 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
While I realize that this has been &amp;quot;shelved until further notice&amp;quot;, I just wanted to pitch in and say I&#039;d definitely like a shapecast option. I am more interested in this for general &amp;quot;spatial awareness&amp;quot; than for combat purpose, so a shape would be very useful for things like finding the highest point in an area, or checking if openings are big enough to pass through.&lt;br /&gt;
&lt;br /&gt;
[[User:Tali Rosca|Tali Rosca]] 00:52, 27 September 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== What am I looking at? ==&lt;br /&gt;
&lt;br /&gt;
A function I just threw in to replace phantom bullets for quickly acquiring a point of interest -- whatever your camera&#039;s focused on (in this sim, within 20m) is returned, allowing quicker, more intuitive targeting of other objects.  PERMISSION_TRACK_CAMERA must be previously set.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;key camPing() {&lt;br /&gt;
    // End points at the camera and 20m in front of it&lt;br /&gt;
    vector camPos = llGetCameraPos();&lt;br /&gt;
 &lt;br /&gt;
    // Clamp the end position to within the sim&lt;br /&gt;
    // From an SLUniverse post by Chalice Yao&lt;br /&gt;
    // http://www.sluniverse.com/php/vb/scripting/46344-llcastray-available-testing-maybe-only.html#post969497&lt;br /&gt;
    float xSteps;&lt;br /&gt;
    float ySteps;&lt;br /&gt;
    vector camRot = llRot2Fwd(llGetCameraRot());&lt;br /&gt;
    fXSteps = llAbs( ( 256.0 * !!camRot.x ) - camPos.x ) / camRot.x;&lt;br /&gt;
    fYSteps = llAbs( ( 256.0 * !!camRot.y ) - camPos.y ) / camRot.y;&lt;br /&gt;
    if(xSteps &amp;gt; ySteps)&lt;br /&gt;
        xSteps = ySteps;&lt;br /&gt;
    if ( xSteps &amp;gt; 20.0 )&lt;br /&gt;
        xSteps = 20.0&lt;br /&gt;
&lt;br /&gt;
    // Cast the ray; ignore hits on land, otherwise get the root key&lt;br /&gt;
    list contacts = llCastRay( camPos, camPos + ( camRot * xSteps ), &lt;br /&gt;
        RC_REJECT_LAND,&lt;br /&gt;
        RC_GET_ROOT_KEY );&lt;br /&gt;
&lt;br /&gt;
    // Return values&lt;br /&gt;
    if ( llList2Integer( contacts, -1 ) &amp;gt; 0 ) { // Got a return&lt;br /&gt;
        return llList2Key( contacts, 0 );&lt;br /&gt;
    }&lt;br /&gt;
    return NULL_KEY;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[User:Jack Abraham|Jack Abraham]] 06:10, 7 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== RC_GET_LINK_NUM?  Not RC_GET_LINK_KEY? ==&lt;br /&gt;
&lt;br /&gt;
I can&#039;t think of a circumstance where knowing the link number of the return would be useful.  UUID of the prim hit would be far more useful; is that within the realm of possibility? [[User:Jack Abraham|Jack Abraham]] 04:47, 3 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Hi Jack,&lt;br /&gt;
&lt;br /&gt;
The default behavior is to return the UUID of the prim hit. If you want the root key instead, you have to use RC_GET_ROOT_KEY. The intended purpose of RC_GET_LINK_NUM was for scripts like your camera targeting system where it is expected that the camera will be pointed at a child of the linkset performing the cast. For example, suppose you make a minesweeper game where each tile is a prim in the linkset. And suppose you script it so that the use can select a tile by focusing on it and clicking. The script could cast a ray from the camera and determine the link number of the tile in the player&#039;s line of sight. Then it could use that link number in an llMessageLinked or some other LSL function to modify the appropriate child prim. Does that make sense? If it turns out no one has any use for RC_GET_LINK_NUM, I&#039;ll eliminate it for the sake of simplicity. But the behavior you&#039;re looking for is already there by default! Yay.&lt;br /&gt;
&lt;br /&gt;
Cheers,&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]]&lt;br /&gt;
&lt;br /&gt;
Makes perfect sense; I need to read better.  Thanks.  [[User:Jack Abraham|Jack Abraham]] 05:44, 3 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Memory concerns ==&lt;br /&gt;
&lt;br /&gt;
Dumping all possible avaible information into a list regardless of whether any of them will be used seems severely wasteful. If you really need to dump all the info as soon as the command is called straight into script memory, at least do somthing like adding a parameter to the command that is a list where each item identifies which pieces of information the scripter wants (like  with llGetPrimtiveParams ) --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 05:51, 3 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
I think we basically have that, Tigro; we only get UUID and hit position unless we set additional flags.  Falcon indicated that we will not get all hits in the final version; that&#039;ll further reduce the size of the list. [[User:Jack Abraham|Jack Abraham]] 07:50, 3 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Clamping ==&lt;br /&gt;
&lt;br /&gt;
It would be a waste of server resources if every script has to add clamping code to make sure&lt;br /&gt;
their begin and end are inside the region! Instead, do not return an error code but just stop&lt;br /&gt;
and return only the hits inside the region. That might mean you have to add the clamping code in the&lt;br /&gt;
server, but that would be a hell of a lot more efficient than doing that in the LSL scripts.&lt;br /&gt;
&lt;br /&gt;
Note that clamping is relatively easy, in C++ it shouldn&#039;t cost more than a few microseconds.&lt;br /&gt;
The algorithm would be something like:&lt;br /&gt;
&lt;br /&gt;
1) A bounding box can be given with two vectors: &#039;&#039;bbmin&#039;&#039; and &#039;&#039;bbmax&#039;&#039;, where &#039;&#039;bbmin&#039;&#039; is the bottom,&lt;br /&gt;
south/west corner of the sim (0,0,0), and &#039;&#039;bbmax&#039;&#039; the upper, north/east corner of the sim&lt;br /&gt;
(256,256,4096).&lt;br /&gt;
&lt;br /&gt;
2) Let the ray begin at vector &#039;&#039;begin&#039;&#039; and end at vector &#039;&#039;end&#039;&#039; (using the same coordinate system as the bounding box).&lt;br /&gt;
&lt;br /&gt;
3) Calculate bbmine = bbmin - end, and bbmaxe = bbmax - end. Check if end is outside the sim,&lt;br /&gt;
so clamping is needed at all, by checking that at least one coordinate in bbmine is positive&lt;br /&gt;
or one coordinate in bbmaxe is negative (set &#039;clamping_needed&#039;).&lt;br /&gt;
&lt;br /&gt;
4) Shift coordinates so that &#039;&#039;begin&#039;&#039; becomes the origin and &#039;&#039;end&#039;&#039; becomes the direction&lt;br /&gt;
(bbmin -= begin; bbmax -= begin; dir = end - begin). Lets call &#039;&#039;end&#039;&#039; &#039;&#039;dir&#039;&#039; from now on.&lt;br /&gt;
&lt;br /&gt;
5) Check that bbmin has three negative coordinates and &#039;&#039;bbmax&#039;&#039; has three positive coordinates.&lt;br /&gt;
If not then &#039;&#039;begin&#039;&#039; is outside the bounding box (if the signs are correct, except there are one or more zeroes, it&#039;s on the border&lt;br /&gt;
and you can just return &#039;&#039;begin&#039;&#039;). Not sure if you should return an error code or return just no results.&lt;br /&gt;
Finally, if begin is outside the bounding box, but end was inside, you might want to clamp begin&lt;br /&gt;
instead of end. Lets assume that begin is inside the bounding box for now. If end was also inside&lt;br /&gt;
it, then no clamping is needed and we stop here.&lt;br /&gt;
&lt;br /&gt;
6) Clamping is needed. Calculate dir.x / bbmin.x, dir.x / bbmax.x, dir.y / bbmin.y, dir.y / bbmax.y, dir.z / bbmin.z and dir.z / bbmax.z.&lt;br /&gt;
&lt;br /&gt;
7) Find the largest value &#039;max&#039; of those six and return &#039;&#039;begin&#039;&#039; + dir / max as the collision point of the ray in the direction dir.&lt;br /&gt;
&lt;br /&gt;
As you can see, this is a very fast routine. Still, I think it should be added to the server side.&lt;br /&gt;
I didn&#039;t add code in order to avoid any license problems ;)&lt;br /&gt;
&lt;br /&gt;
[[User:Aleric Inglewood|Aleric Inglewood]] 12:00, 3 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Actually, using SSE2, clamping would take just a few cpu instructions. It&#039;s not a question of efficiency for me, it&#039;s a question of future compatibility. Since we don&#039;t have script versioning for LSL, if we later add the ability to cast rays between sims or change the size of a region, existing scripts will break. I&#039;ve been thinking of adding a version parameter to this function in order to deal with that possibility, in which case I could clamp in native code.&lt;br /&gt;
&lt;br /&gt;
Cheers&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 17:20, 3 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:Definitely, clamping in native code rather than LSL is very desirable.  I&#039;m thinking a version parameter would be best done as a way of accessing old behaviors, similarly to how we have legacy prim types in llSetPrimitiveParams, and optional for the latest version.  What do y&#039;allz think?&lt;br /&gt;
::--[[User:Michelle Resistance|Michelle Resistance]] 15:37, 8 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== return also types casted ==&lt;br /&gt;
&lt;br /&gt;
since filters RC_REJECT_AGENTS, RC_REJECT_PHYSICAL, RC_REJECT_NONPHYSICAL, and RC_REJECT_LAND are used, and therefore detected, it would be handy if in the results returned, the status AGENT, NON_PHYSICAL, PHYSICAL and LAND  would also be returned. Is it douable ?&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I&#039;ve been thinking about that. Either I&#039;ll somehow include the type in the list of returned data (perhaps only if you add the flag RC_GET_TYPE or something) or else modify llGetObjectDetails to return the data. You&#039;ll definitely have access one way or the other. Regarding land, though, you can definitively identify that because it will return null UUID.&lt;br /&gt;
&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 17:20, 3 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Meep ==&lt;br /&gt;
&lt;br /&gt;
Heya Falcon, really would absolutely love to have an llCastRay function in production.&lt;br /&gt;
&lt;br /&gt;
I saw you had a concern of versioning issues. To overcome that, I heavily recommend using a list as an input, as that would be far more flexible on the kind of parameters and options you can push through rather than fooling yourself into using a hardcoded structure of llCastRay(vector start, vector end, other stuff) etc. A bit like how llSetPrimitiveParams works basically. For example in the past, LL upgraded the prim type interface from legacy to a more advanced and flexible set of input (torii, tubes and rings, yey), they could do this easily because a list was used as a parameter in the function, instead of having to expend resources on adding more functions, bloating LSL and causing legacy issues.&lt;br /&gt;
&lt;br /&gt;
I also have a question, when you cast a ray and it hits an avatar, that hits the avatars&#039; actual sphere-ish phys mesh, correct?&lt;br /&gt;
&lt;br /&gt;
I have actually experimented personally with LSL and my custom client with a prototype LSL Script API, I could offload raycast processing into nearby clients easily and even built a half-working hexapod spider that can walk on a prim landscape, as well as all the fun raycasting combat gun stuff :). So, I have some serious experience to share in this field and having the raycasts locally processed would be really useful in a more timely manner (rather than suffering the delays of network lag).&lt;br /&gt;
&lt;br /&gt;
What are your thoughts on the kind of filtering? Whitelist versus Blacklist? Whitelists are apparently more effective based on desire. (Would be good for consistency (which is hard enough to come by..): llSensors, llListen, ...)&lt;br /&gt;
&lt;br /&gt;
On a last note, you might be wondering about my achievement with my custom client, I couldn&#039;t get raycasting weapons taking off because there is a missing critical element to gameplay: Tracers. The user of a gun MUST be able to see WHERE their bullets went (guns use fire cone spread algorithms for added realism). This is one of the significant problems that keep raycasting usage in weaponry really taking off. Otherwise I could have seriously introduced raycasting and changed the face of SL combat with my custom client. If only particle systems could be spontaneously created midair (without requiring the particle system to be &#039;attached&#039; to the prim (it&#039;s possible code-wise in the client btw)) via scripts to simulate tracer effects, then raycasting would seriously be able to take off socially.&lt;br /&gt;
&lt;br /&gt;
--[[User:Nexii Malthus|&amp;lt;span style=&amp;quot;color: #bbb; text-shadow:-1px -1px #ddd, 1px 1px #888;&amp;quot;&amp;gt;Nexii Malthus&amp;lt;/span&amp;gt;]] 02:10, 4 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Hi Nexii,&lt;br /&gt;
&lt;br /&gt;
Let me take these one at a time. First, in regard to versioning, LSL lists are very inefficient on the C++ side. They&#039;re implemented as linked lists (yuck). I do see the advantage to using a list for parameters, but it would make parsing it slower and I&#039;d rather pull a Windows API (heh, also yuck) style move and (a) add a reserved version number parameter and (b) if necessary later, create an llCastRayEx function. Not the world&#039;s most extensible implementation, but c&#039;est la vie.&lt;br /&gt;
&lt;br /&gt;
Second, an avatar&#039;s shape isn&#039;t sphere shaped at all...and it&#039;s not a mesh, it&#039;s a convex hull. Its basic shape is kind of like a capsule. I&#039;ll leave the process of determining its exact shape via llCastRay calls with RC_GET_NORMAL as an exercise to the reader. :) (And if you do it, be sure to post pictures! That would rock.)&lt;br /&gt;
&lt;br /&gt;
Third, I&#039;m pushing hard for LL to provide client side prediction/client side physics. Although that wouldn&#039;t immediately lead to client side scripting, it eventually might. And in the meantime, although open source viewers would need to replace the physics module with an open source version (of which there are plenty), you would have a framework for doing physics-based raycasts locally.&lt;br /&gt;
&lt;br /&gt;
Fourth, regarding filtering, it just made the most sense to use blacklists as it&#039;s most common to want to know &amp;quot;What&#039;s the first thing I&#039;m hitting?&amp;quot; It&#039;s less common to want to know &amp;quot;what&#039;s the first avatar/prim/land triangle that I&#039;m hitting?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Finally, after seeing your comment about tracers I looked up the details of llParticleSystem and was astonished to see that, as far as I could tell, you&#039;re totally right. Here&#039;s one idea as a temporary workaround: rez a transparent, phantom, nonphysical sphere (perfect, solid spheres are the simplest physics shape available) at the location you need your particle effect, create it there, and then call llDie(). It sucks, I know, but I&#039;m not a graphics programmer and can&#039;t add an appropriate particle system function. Another idea, though much much less efficient, would be to rez a set of long, colored, phantom cylinders the length of the raycast. It&#039;s still much more efficient than prim bullets since it would be nonphysical and phantom, though.&lt;br /&gt;
&lt;br /&gt;
Hope that helps,&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 05:44, 4 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Avmeshforms.png|256px]]&lt;br /&gt;
Rendering of what the standing and ground sitting av shapes are!&lt;br /&gt;
--[[User:Moy Loon|Moy Loon]]&lt;br /&gt;
: Hahahahah, awesome! :D&lt;br /&gt;
: btw, can you repeat this but with a crouching av as well to confirm there is no change when an av crouches please? --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 18:35, 24 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
I already know that crouching avs have no change, The sitting on a prim is different than the ground sit though!&lt;br /&gt;
--Moy&lt;br /&gt;
&lt;br /&gt;
== Function to not fail, what do you think? ==&lt;br /&gt;
&lt;br /&gt;
I made this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;list JustRayIt(vector start, vector end, integer filter, integer flags)&lt;br /&gt;
{&lt;br /&gt;
    list temp;&lt;br /&gt;
   &lt;br /&gt;
   &lt;br /&gt;
    while((llList2Integer(temp, -1) &amp;lt; 0) || (llGetListLength(temp) == 0))&lt;br /&gt;
    {&lt;br /&gt;
        temp = llCastRay(start, end, filter, flags);&lt;br /&gt;
        &lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    return temp;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The idea being to halt the rest of the script until it can get a valid trace; does it work the way i intended it to? Is there any downside to using this? Is there a better way to get the same result? --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 04:14, 4 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Hi Tigro,&lt;br /&gt;
&lt;br /&gt;
The script you&#039;re suggesting would, sadly, be hugely inefficient. It would hog system resources until the script&#039;s time slice ran out. And, to make matters worse, once you fail you&#039;re guaranteed not succeed until at least the next frame anyway. I&#039;m not a huge lsl scripter, so I&#039;m not 100% sure, but I believe if you added an llSleep(0) call in the while loop, your script would be put to sleep until the next frame. Failing that, try llSleep(0.1) or some other small number.&lt;br /&gt;
&lt;br /&gt;
Good luck,&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 05:29, 4 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:The way it is on the Oatmeals, do tracing ever fail in the frame? --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 05:40, 4 July 2010 (UTC)&lt;br /&gt;
:Also, doesn&#039;t llSleep hog systems resources just the same? --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 05:44, 4 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
On Oatmeal, casts will fail if the overall physics FPS drops too low. It will never fail due to too many raycasts in the same frame, however. In production it will, but I wanted to see how people used it before determining appropriate limits.&lt;br /&gt;
&lt;br /&gt;
llSleep stops execution of your script and allows the simulator to move on to processing another script. It is not implemented as a busy-wait. (At least, I sure hope not. I haven&#039;t actually checked the code.)&lt;br /&gt;
&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 05:50, 4 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: How about this version?&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
list JustRayIt(vector start, vector end, integer filter, integer flags)&lt;br /&gt;
{&lt;br /&gt;
    list temp;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
    while((llList2Integer(temp, -1) &amp;lt; 0) || (llGetListLength(temp) == 0))&lt;br /&gt;
    {&lt;br /&gt;
        llSleep(0);&lt;br /&gt;
        temp = llCastRay(start, end, filter, flags);&lt;br /&gt;
 &lt;br /&gt;
    }&lt;br /&gt;
    if(llGetListLength(temp) == 1)&lt;br /&gt;
    temp = [NULL_KEY,end, llVecNorm(end-start), 0];&lt;br /&gt;
 &lt;br /&gt;
    return temp;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
: It got the sleep as you suggested, and if it doesn&#039;t hit anything in range it still returns a key, a hit position, a normal (so it kinda works like a telescopic feeler, when not reaching anythign it eventually stops at maximum extension with no deflection), while still keeping llList2Integer(theraylist, -1) == 0&lt;br /&gt;
--[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 19:43, 7 July 2010 (UTC)&lt;br /&gt;
:Ok, i finally managed to get it to wrok right, i think, but hsould i keep posting here clogging the talk page?&lt;br /&gt;
&lt;br /&gt;
== Partially offtopic: about SVC-4606 &amp;quot;Surface conveyour belt&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
Falcon, if it&#039;s not you, could you please bring [http://jira.secondlife.com/browse/SVC-4606 SVC-4606] to the attention of whatever Linden that would be able to evaluate it and get it in the plans if it&#039;s possible please? (If it&#039;s you, then please take a look and see what you can do) --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 04:43, 4 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
I have thought about adding a much, much simpler version of this (where you simply get to specify a velocity vector and a face of the prim), but it would be at least a little tricky to implement and there are a number of things of more general use that I&#039;d like to get to first. Some day, though, it would be a great feature.&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 05:51, 4 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:If the server already knows about which face collided and things like the normal of the collision point (and of course the texture parameters of the prim), wouldn&#039;t it be just a matter of basic vector math to get the resulting force and stuff? I imagine this could be a game changer close to the scale of flexies, people moving around a mall on flat conveyors like those on some airports, working escalators, more realistic wheeled and tracked vehicle behavior, people will find all sorts of uses for it. Is there somewhere i can see the stuff you got planned? --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 06:01, 4 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
I&#039;m about to head out (it IS a Saturday night here, haha), so this is probably my last post, at least for a few hours, probably until tomorrow. The problem is related to stability and details about determining which objects to apply the force to and how. In the physics engine, this would be done by modifying the contact points between the conveyor belt and the other bodies. Also, the server doesn&#039;t really know which face collided, which makes it trickier still, as that info would have to be derived dynamically any time a body came in contact with the conveyor belt object. Finally, it would almost certainly break avatar animations which rely on the avatar&#039;s velocity (not the requested motion of the user) to determine when to play a particular animation. Unfortunately, I don&#039;t have a publicly visible list of projects I&#039;d like to complete. But they do include llCastRay (yay progress!), llCastShape (see SVC-5389...I think...the raycast SVC, exposing the Havok vehicle kit, providing for alternative physics representation (so that the shape you see isn&#039;t tied to the shape the physics engine sees, allowing simpler collision geometry), providing control of friction, density, restitution, and gravity, ... the list goes on. Please bear in mind, however, that there is absolutely no guarantee any of these will be shipped as they are mostly unscheduled it isn&#039;t clear what LL&#039;s priorities will be in the coming months. Oh, and of course, given the opportunity, I&#039;d put all of these ideas aside to work on client side prediction which would have HUGE impact on lag, although it wouldn&#039;t provide much in the way of new resident-facing features.&lt;br /&gt;
&lt;br /&gt;
Have a good night,&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 06:24, 4 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
That partial list of projects is, like, my wishlist as an LSL scripter.  You&#039;re my new favorite Linden. ^_^;&lt;br /&gt;
--[[User:Michelle Resistance|Michelle Resistance]] 15:44, 8 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
::Some of those are among the feature suggestions i&#039;ve filled on pjira :)&lt;br /&gt;
::Falcon rocks indeed!! --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 16:10, 8 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== selfignoring? ==&lt;br /&gt;
&lt;br /&gt;
Is there a way to have the raytrace ignore prims in the same linkset? --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 05:42, 4 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
No, unfortunately this is not possible and would be hacky to implement (though it could be done if there were enough demand for it). It will, however, always ignore a shape that the ray begins inside of. So if you use llGetPos() from a convex prim, that prim will not be returned by the cast. You can always use the UUID of the prim to ignore the result as well.&lt;br /&gt;
&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 05:46, 4 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== On the topic of limiting it to not work past a distance ==&lt;br /&gt;
&lt;br /&gt;
It was done with llSensor, and what happened? People wasted server resources to overcome the limitation; you still think it&#039;s a good idea? --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 08:04, 4 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Nope. I don&#039;t. But llCastRay isn&#039;t artificially limited to a distance. It&#039;s simply limited to work within the region. But that isn&#039;t an artificial limit, it&#039;s a fundamental one: llCastRay uses the physics engine for raycasts. On a given simulator, nothing exists in the physics world outside the region boundaries.&lt;br /&gt;
&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 09:47, 4 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Hm, sorry, i&#039;m not finding it now, but i could swear i had read you saying somthing along the lines of &amp;quot;you wouldn&#039;t want people raycasting from the other side of the sim&amp;quot;, dunno... --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 09:56, 4 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Yes, I did say that. I then proceeded to change my mind. :)&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 18:59, 4 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
::Will llCastRay() at least return objects near the region boundaries, I know some script functions are aware of these but is the physics engine? It&#039;d be nice to have some margin of error for objects crossing region boundaries…&amp;lt;br/&amp;gt;-- &#039;&#039;&#039;[[User:Haravikk_Mistral|Haravikk]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User_talk:Haravikk_Mistral|talk]]|[[Special:Contributions/Haravikk_Mistral|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 13:21, 8 May 2011 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Is it a logical bug on my script or does it not update fast enough? ==&lt;br /&gt;
&lt;br /&gt;
Does the data llCastRay reads from gets update as often as the position and rotation of phys objects or does it get updated less often? I&#039;m mostly confident that the start position is inside the prim but somtimes the trace will hit the prim somehow, it happens more often when the prim is bouncing around fast. --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 11:23, 4 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
That depends on how you&#039;re updating the objects. If you&#039;re calling llSetPos() or similar in your script, those updates will not be processed until later, whereas the llCastRay call will be processed immediately. I suspect llGetPos() will return the value you set with llSetPos() even though the physics object isn&#039;t there yet.&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 19:01, 4 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;I&#039;m personally praying that llCastRay will make simulated projectile weapons essentially obsolete in SL. &amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
I&#039;ve spent a little time exploring the functionality of llCastRay today. From the perspective of a veteran LL damage combat scripter;&lt;br /&gt;
&lt;br /&gt;
In terms of raw utility, llCastRay effectively provides the ability to determine a bullet&#039;s target without the intervening physics. This is an advantage because it means that traditional region crawl caused by irresponsible people spamming physical objects is significantly reduced. It also means that the number of bullets required to send an individual home is reduced; in the case of the firer being able to aim, of course.&lt;br /&gt;
&lt;br /&gt;
The function seems more fitted to abstracted combat with meters and script awareness (determining distance to surfaces, etc) however, because it provides a very large volume of data back to the script calling it but does not impact what it is detecting in any way.&lt;br /&gt;
While it is possible to build a weapon that uses it for projectiles with traditional LL damage, the benefits do not necessarily outweigh the negatives; it effectively moves the majority of work from the source system to the projectiles instead. Using communications such as listens to transfer a target vector from a gun to a bullet on each rez is obviously absurdly inefficient considering the rates at which most people like to fire them and therefore the cast is better placed in the bullets themselves; this means that the bullets cannot be temporary prior to casting and therefore realistically on rez, although they can simply be set temporary subsequent to casting. Regardless of the method of acquiring the target position, the bullet must still travel to the location to inflict damage; a stacked primparams position is the obvious solution, as it also allows for temponrez and physics to be set in the same call.&lt;br /&gt;
&lt;br /&gt;
Would it be possible to implement a sister (if somewhat crippled) function to llCastRay that has the capability to inflict LL damage on agents? While I see a great deal of value in llCastRay it is not necessarily preferable to physics as a combat tool. Something along the lines of an llCastDamage which is restricted to cast from the root position of the object calling it along a fixed axis. In a similar manner to a sensor, except with a damage variable similar to the llDamage() prim param setter that affects only the first thing it intersects. Additional fluff could be a contact sound triggered at the point of intersection, contact particles and so forth.&lt;br /&gt;
&lt;br /&gt;
tested projectile, just for reference:&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
vector xyz(vector in)&lt;br /&gt;
{&lt;br /&gt;
    if (in.x &amp;gt; 255.9) in.x = 255.9;&lt;br /&gt;
    else if (in.x &amp;lt; 0.1) in.x = 0.1;&lt;br /&gt;
    if (in.y &amp;gt; 255.9) in.y = 255.9;&lt;br /&gt;
    else if (in.y &amp;lt; 0.1) in.y = 0.1;&lt;br /&gt;
    if (in.z &amp;gt; 4095.9) in.z = 4095.9;&lt;br /&gt;
    else if (in.z &amp;lt; 0.1) in.z = 0.1;&lt;br /&gt;
    return in;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llCollisionSound(&amp;quot;&amp;quot;,0.0);&lt;br /&gt;
        llCollisionSprite(&amp;quot;&amp;quot;);&lt;br /&gt;
        llSetDamage(100.0);&lt;br /&gt;
    }&lt;br /&gt;
    on_rez(integer s)&lt;br /&gt;
    {&lt;br /&gt;
        if (!s) return;&lt;br /&gt;
        vector p = llGetPos();&lt;br /&gt;
        vector d = &amp;lt;20.0,0.0,0.0&amp;gt;*llGetRot();&lt;br /&gt;
        list ray = llCastRay(p,xyz(p+d),0,0);&lt;br /&gt;
        list tgt = [PRIM_POSITION,llList2Vector(ray,1)];&lt;br /&gt;
        tgt += tgt += tgt += tgt += tgt += tgt;//1,2,4,8etc&lt;br /&gt;
        llSetLinkPrimitiveParamsFast(LINK_THIS,[PRIM_TEMP_ON_REZ,TRUE]+tgt+[PRIM_PHYSICS,TRUE]);&lt;br /&gt;
        llDie();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
[[User:Jeremy Duport|Jeremy Duport]] 19:51, 4 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== This is *not* a viable replacement for projectiles ==&lt;br /&gt;
&lt;br /&gt;
llCastRay is a great idea, and I&#039;ll make heavy use of it in a wide range of applications, but there&#039;s no way it&#039;s going to replace scripted bullets in any meaningful way.&lt;br /&gt;
&lt;br /&gt;
There&#039;s just no other way to get a decent visual effect for bullets.  Particles are an enormous performance drain on the client [and don&#039;t anyone tell me to just get a better machine, I&#039;m a poor student, damnit], and of course look the same from every direction.  Scripted bullets are also the only timely way to get a particle effect at unscripted impact locations.&lt;br /&gt;
&lt;br /&gt;
There&#039;s also the problem of communicating effectively between a gun and a scripted target.  With combat going on, something like a listen on targets and regionsay from guns is going to trigger zillions of unnecessary events.  Sure, *I* know how to properly hash UUIDs to integers, and there&#039;s reasonable code for that on this wiki, but have you actually seen the kind of shit most scripters in SL try to pull?  Note that people are *still* using resizer scripts in every prim of a linkset and controlling them with linked messages.&lt;br /&gt;
&lt;br /&gt;
Also, despite being sidetracked by https://jira.secondlife.com/browse/SVC-5953, I&#039;m a week or so of work away from releasing several weapons that trigger bullet rezzes via changed events, rather than by inked messages. Tyro Dreamscape has already successfully demonstrated this method as a near-zero-sim-impact way of squeezing high firing rates of scripted bullets out of as few rezzing scripts as possible.  Sure, you could bring up sim garbage collector woes, or my argument from above about the absurdly low coding standards among scripters, but the former has not been an issue in practice, at least with intentionally minimalist bullet scripts, and the latter is something I&#039;m expecting market forces to help with.  We *can* do scripted bullets the right way.&lt;br /&gt;
&lt;br /&gt;
I&#039;d really like someone to prove me wrong.  Thoughts?&lt;br /&gt;
&lt;br /&gt;
--[[User:Michelle Resistance|Michelle Resistance]] 15:55, 5 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ummm, you do realize that you&#039;re still just calling a function in one script, that triggers an event in another, right?  Except that where a linked message merely communicates between scripts, the changed() event requires triggering a function that changes some parameter of the other object, so you&#039;re asking the simulator to do a small bit of extra unnecessary work in between calling the function and triggering the event.&lt;br /&gt;
&lt;br /&gt;
You are right that scripted bullets can be done the right way.  But the right way doesn&#039;t mean reinventing the wheel or creating a Rube Goldberg machine, it requres understanding what the wrong way is, why certain things use extra processing resources, and finding the most effective ways to mitigate those problems.  Keep in mind that people have tried to use llResetOtherScript() and actually believed that it was more efficient.  It was the same sort of reasoning involved, where someone thought &amp;quot;method A is laggy, therefore method B will be better.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
It is quite possible to make efficient physical projectile weapons.  But just because many people are unable to do so does not mean that you need to find some supersekret new method for doing so.  It is simply a matter of using good coding practices like KISS.  Granted, it&#039;s oh so much easier to market something that&#039;s new and different, but that doesn&#039;t make it so.&lt;br /&gt;
&lt;br /&gt;
[[User:Jahar Aabye|Jahar Aabye]] 19:24, 5 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Passing data through a changed event, at least the way Tyro and I have been doing it, has far less impact on the sim than the string operations that most people do when communicating between scripts via link messages.  Try it, it&#039;s rather impressive.  And, to dispel concerns that it&#039;s just a gimmick, I&#039;ll explain exactly what I&#039;m doing and (probably) why it works better.&lt;br /&gt;
&lt;br /&gt;
I&#039;ve got a main script and several rezzer &amp;quot;thread&amp;quot; scripts, all in the same prim (they don&#039;t need to be, but that&#039;s how I&#039;m doing it), a hollow sphere.  When a user pulls the trigger (or an automated weapon decides to open fire), llSetColor(&amp;lt;AUTO, timer, aim&amp;gt;) is called [llSetLinkColor also works, though llSetLinkPrimitiveParams and the fast variant don&#039;t, as they don&#039;t trigger a changed event], where AUTO is a predefined floating-point number identifying that it&#039;s a firing order, timer is the argument we want the thread to past to llSetTimerEvent to control the firing rate, and aim is either 1.0 or 0.0, signifying if I&#039;m using the prim&#039;s other face to provide additional data about where to aim the bullets (which we can do without triggering a second changed event, if the llSetColor call for the other face is done immediately before or after the firing-order call).  This has been significantly more responsive (in LSO, anyhow) than a linked message in all my tests, and can easily support rather egregious firing rates [~25 bullets per second with five threads - well under the goo fence limit, though probably more than you&#039;d want] from many simultaneous users without affecting sim FPS.  My team&#039;s theory, that led us to try this in the firs place, was that the link_message dispatch code on the sim side is slowed by argument passing and filtering in a way that the changed event is not.  That we&#039;re only performing floating-point operations when using face color as an argument buffer seems to make the difference.  Certainly, one could use the link_message integer parameter to do filtering, and I write all my APIs that way, but it appears the extra overhead of passing string and key arguments, even when not used, is enough to upset the sim when performed at high speed.  As a side benefit, using the changed event keeps the rezzer threads from needing link_message handlers, reducing the number of scripts that need to filter out other communication happening in the linkset.&lt;br /&gt;
&lt;br /&gt;
Hope that allays your concerns.  If not, I&#039;ll be here all week. ~_^&lt;br /&gt;
&lt;br /&gt;
--[[User:Michelle Resistance|Michelle Resistance]] 23:06, 5 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::Well yes, you&#039;re simply shifting a portion of the load from the VM (which would handle the linked messages) to the Database and Simulator (which are handling the altering of the primitive&#039;s parameters and which then triggers the VM&#039;s changed() event).  This does not make it particularly more efficient, as I mentioned before you still have a function call and an event triggered, you&#039;re merely routing it through another method, in this case the simulator, which has to then alert every client within draw/LOD distance as to the nature of the change.  I am fully aware of what you are doing and how you are doing it, you are at least the third person in as many years who has mentioned it.&lt;br /&gt;
&lt;br /&gt;
::Rather than a lecture on how to script guns, I&#039;ll simply say that if it works for you, then that&#039;s all that matters.  There are efficient ways to use linked messages, and there are incredibly inefficient ways to use linked messages.  Similarly, I am certain that people will find right ways and wrong ways to handle llRayCast() if it is ever implemented.  Incorrect methods will undoubtedly spread through the grapevine with assurances that &amp;quot;this supersekrit way is teh best evar!!!11!!&amp;quot;  Market forces have as of yet had minimal effect on poor scripting with regards to guns in SL, I wouldn&#039;t expect that to change at any time in the future.  As you correctly note, many fashion designers still put resize scripts into every prim of hair.&lt;br /&gt;
&lt;br /&gt;
::In some respects, I doubt that many amateur gun scriptors will be much different after raycasting than before.  It may be less likely to be used by many amateur gun scripters simply because the default LL Damage system is built around physical collisions, and presumably that would remain the same.  Also, combat systems that use raycasting would likely require at least a decent understanding LSL or else might use prewritten no-mod scripts to do the raycasting.  To that extent, I do worry that raycasting may appear to be more efficient when it debuts on the grid, if only because of self-selection in terms of who is using it and how it is used.  This is probably something that should be considered if llCastRay() is ever implemented, as it does have an effect on how to interpret any sort of metrics gathered when trying to determine its relative efficiency compared to bullet-based guns.&lt;br /&gt;
&lt;br /&gt;
::In the end, it will be one more tool.  I would hope that the devs at LL do not really think that this will completely replace physical projectiles, but it is nice to have the option.  Similarly, I do hope that people understand that the relative efficiency of various guns on the grid varies wildly, and that the scriptor has a far greater impact on the relative efficiency of a gun than whether it uses physical bullets or llCastRay() when it is implemented.&lt;br /&gt;
&lt;br /&gt;
[[User:Jahar Aabye|Jahar Aabye]] 00:18, 6 July 2010 (UTC)&lt;br /&gt;
::: Latelly i&#039;ve been using llTarget and not_at_target to have stuff run as fast as the server allows without actually using somthing like while(true) --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 00:31, 6 July 2010 (UTC)&lt;br /&gt;
:::: In my tests, I&#039;ve found that LSO loops seem to end up *slower* than repeating events like timers and not_at_target.  &#039;Sweird. --[[User:Michelle Resistance|Michelle Resistance]] 00:47, 6 July 2010 (UTC)&lt;br /&gt;
:You could use llRayCast to verify if the aiming hits anyone,and then rez a &amp;quot;bullet&amp;quot;, posJump it to the target and make it phys to collide if you wanna use collisions to relay hits. --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 23:57, 5 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::Actually, that would probably be the worst of all worlds.  You&#039;re still rezzing a bullet, still moving it to the target, still making it physical, still colliding it.  All of the things that llCastRay() is attempting to prevent.  Also, most combat systems that involve collisions limit (or should limit) the minimum velocity of a collision.  To get around this, one would probably have to add a call to llApplyImpulse() or something similar.  At the end of the day, you wind up with a situation not much better off than just firing a bullet.&lt;br /&gt;
&lt;br /&gt;
:::llCastRay() is probably best implemented in a combat system in a manner similar to current sensor-based combat systems, which have been around for years.  I&#039;m not sure that sensor-based (or raycasting-based) combat is any better or worse than physical bullet-based combat.  Each has different tradeoffs, and at the end of the day it&#039;s going to come down to how these functions are worked into the system that gets set up.  Whether using sensors, raycasting, or bullets, it&#039;s all about understanding the strengths and weaknesses of each system, and working with that in mind.  Raycasting does have some significant strengths, but only if you take advantage of them.  Raycasting, if done correctly, will probably take some load off the physics engine at the possible cost of runtime efficiency and memory.  Physical bullet systems are simpler and may have an advantage in terms of runtime efficiency and memory use if done correctly, at the expense of offloading more of the work on the physics engine that has to deal with all of the active objects and the collisions generated.&lt;br /&gt;
&lt;br /&gt;
[[User:Jahar Aabye|Jahar Aabye]] 00:18, 6 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Ahoy folks!&lt;br /&gt;
&lt;br /&gt;
I don&#039;t know enough about the issues in LSL to comment on most of the topics brought up in this thread. But with regard to the issues around the appearance of raycasts vs rezzed bullets, once you use llCastRay, you&#039;ll at &amp;lt;i&amp;gt;least&amp;lt;/i&amp;gt; be able to set your bullets phantom. This prevents the physics engine from needing to check for collisions with anything but the land. Unfortunately, due to an old bug, collision checks against the ground are still very expensive. We expect to fix this by 1.44 at the latest. Once that&#039;s done, phantom bullets will be much more efficient.&lt;br /&gt;
&lt;br /&gt;
::Phantom bullets would give us the problem of having to inform them somehow of a hit so they can [promptly] self-destruct instead of continuing to pass through things… unless you&#039;re suggesting the bullets themselves do llCastRay and short circuit the physics system.  That sounds like a terrible hack, though.  Shouldn&#039;t it be more efficient to let the physics engine do its thing, rather than going through the twisty little passages of LSL VMs? --[[User:Michelle Resistance|Michelle Resistance]] 17:02, 6 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Regarding the matter of rezzing a bullet and then using the posjump trick (assuming that refers to the llSetPrimitiveParams hack where you repeatedly set the prim&#039;s position in a second call), that will actually be substantially less inefficient in 1.40 (when we finally get it right!). The reason is that in the past, each time you set the prim&#039;s position, the physics world would be updated, sometimes many many times in a frame. That is no longer the case (only the final position is actually used).&lt;br /&gt;
&lt;br /&gt;
::&amp;quot;[[PosJump]]&amp;quot; actually refers to a different &amp;gt;10m movement hack than what you&#039;re talking about, which is known as &amp;quot;[[WarpPos]]&amp;quot;.  PosJump is very much preferable, as the LSL script doesn&#039;t have to waste time and memory calculating a series of intermediate steps… but it doesn&#039;t work with llSetLinkPrimitiveParamsFast, just the slow variety. --[[User:Michelle Resistance|Michelle Resistance]] 17:02, 6 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::Last i tried it did work with llSetLinkPrimitiveParamsFast, did you test it yourself? --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 17:31, 6 July 2010 (UTC)&lt;br /&gt;
::::Yes, just a few weeks ago… though now that I think about it, I could have been confusing the issue with that posjump fails when the object is physical. --[[User:Michelle Resistance|Michelle Resistance]] 16:54, 7 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
And yes, an LSL busy loop (e.g., while(TRUE)) is very, very inefficient. It uses as much of the sim&#039;s resources as available until it is cut off for the frame. Even the most inefficient event scheme would probably be better than a busy loop.&lt;br /&gt;
&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 03:25, 6 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
::I&#039;ve found that even a bounded for loop is slower than a timer, in practice.  Any idea why this might be? --[[User:Michelle Resistance|Michelle Resistance]] 17:02, 6 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
In LSO it makes sense that using [[changed]] would be faster than the [[link_message]]. The changed event has one parameter, link_message has four; two of which are strings. It takes more computer time to push a link_message event onto a scripts event queue then it does to push a changed event. It takes more time to copy the values into script memory and trigger the event. Mind you, using [[llSetColor]] this way is going to cause a huge number of updates that the sim will try and send to all users in sight of the weapon. For a long time I thought we need a better comm event, no string, no key, just a list. Than I latched onto C# and the idea of building custom events. -- &#039;&#039;&#039;[[User:Strife_Onizuka|Strife]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Strife_Onizuka|talk]]|[[Special:Contributions/Strife_Onizuka|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 16:21, 8 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Possibility to limit list length? ==&lt;br /&gt;
&lt;br /&gt;
I am concerned about the memory issues posed by this function.  It was mentioned above, but not really fleshed out.  In order to be useful for a combat perspective, you can&#039;t really set any of the flags (that is, it must return all agents and objects) so that you know whether there is a wall or some other barrier between yourself and the target.  This means that you can get a potentially very long list with a UUID and vector position for each object hit.  This could easily eat up several kb of script memory.&lt;br /&gt;
&lt;br /&gt;
However, limiting the function to returning the first object hit (as has been mentioned as the possible final version) also removes some potentially interesting uses of this function.  For example, you could have a situation where you get one result if it reaches an avatar unimpeded, another if there is a single object between you and the other av, and then no result if there is more than one object.&lt;br /&gt;
&lt;br /&gt;
Would it be possible to compromise, and add another variable to input into the function to select the total number of objects to return?  So you could have: &lt;br /&gt;
&lt;br /&gt;
list llCastRay(vector start,vector end,integer filters,integer flags,integer num_returned)&lt;br /&gt;
&lt;br /&gt;
Where num_returned would be the total number of objects hit, starting with the closest.  It could be enumerated starting from 0 so as to match the values in the returned list, or from 1 if you would need to use 0 to set it to no limit.&lt;br /&gt;
&lt;br /&gt;
As for this function making physical projectile combat obsolete, I do not believe that this will happen.  I see this as akin to how sculpties have enhanced building: they give builders more options and allow for a greater variety of creative designs, but they have not obviated the use of regular prims.  Similarly, I think that this feature may increase the options available when developing combat systems and weapons.  However, I think that there are advantages to physical projectiles (such as the ability to code for ballistic trajectory).  I have used sensor-based combat systems before (although this has many advantages over those as well), and I have found that those feel a bit too much like playing &amp;quot;laser tag&amp;quot; especially when used over longer distances.&lt;br /&gt;
&lt;br /&gt;
I think that this will create more options for combat, it may allow for new types of combat, but there are always tradeoffs inherent in any system.  Raycasting methods will have advantages and disadvantages, they will be more efficient in some ways and less in others.  It will be nice to have this as a new option, but I worry about overselling this as a complete replacement.  After all, the Mono VM was marketed as being the wave of the future that would make LSL-compiled scripts obsolete.  While many scriptors knew to be cautious with a new VM, LL&#039;s overhyping of the system created a marketing environment where customers were asking if every product was Mono.  This resulted in Mono being used in a vast number of situations where it was not only unnecessary but entirely inappropriate.  &lt;br /&gt;
&lt;br /&gt;
I worry about a similar situation unfolding here, where marketing llCastRay as a complete replacement for physical projectiles will encourage non-technical people to demand &amp;quot;those new ray guns LL keeps telling us about, why haven&#039;t you been making those?&amp;quot;  Then these same people will inevitably come back a week later demanding why the RayCast &amp;quot;bullets&amp;quot; behave differently.  All that I am asking is that you please acknowledge that non-technical people will read these announcements without understanding the technical nuance and the inherent tradeoffs.  Overhyping something as a &amp;quot;complete replacement&amp;quot; when it is a new feature that allows for new options may only wind up creating new headaches.  A new feature that opens new doors and allows for new options for creators is great, it is wonderful.  No need to oversell a good thing.&lt;br /&gt;
&lt;br /&gt;
[[User:Jahar Aabye|Jahar Aabye]] 19:24, 5 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
In the final version of llCastRay, if more than 1 hit can be returned I&#039;ll be sure to give you the ability to select some kind of limit (even if it&#039;s only a binary &amp;quot;first hit or all N hits&amp;quot; choice--where N is definitely a finite number determined by the specification). &lt;br /&gt;
&lt;br /&gt;
Also, if using llCastRay feels too much like laser tag, try adding a small delay before the raycast executes or adding some randomness to the cast&#039;s direction. As for the ballistic trajectory, if that&#039;s really critical, there are ways to simulate it. For example, you could make 4 ray casts approximating the parabolic curve, but you&#039;d have the possibility of performing an early-out if one of the first casts hits something.&lt;br /&gt;
&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 03:33, 6 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
::Yes, randomness for the direction is easily doable by modifying existing code.  What I meant about ballistics isn&#039;t just the trajectory, drop, and inaccuracies like random variations in direction.  A delay before firing can be done, but one factor in the current projectile combat is that your aim is highly dependent upon the distance to your target and how this relates to the target&#039;s movement.  With projectiles, it is far easier to hit a close target than a far one, and if the target is moving, this has a disproportionate impact on difficulty with a farther target.  This is because of the time that it takes for the bullet to reach the target, because the bullet&#039;s travel is not instant.&lt;br /&gt;
&lt;br /&gt;
::Now, because SL physics limits bullet velocity to far less than in real life (our SL bullets are usually 115 m/s while a 5.56mm round from an M16 is well over 900 m/s), the result is that it greatly exaggerates the effects of distance and movement, but distance in SL is always a somewhat arbitrary measurement.  So I recognize that physical projectiles are far from perfect, and plenty of people have complained of difficulty when they first try SL combat after experience with other video and computer games that probably are using raytracing or similar technology.  But it does add a satisfactory level of difficulty and skill to competitions.&lt;br /&gt;
&lt;br /&gt;
::I know this is probably not feasible, and I certainly don&#039;t want it to wind up polluting the code and making everything more difficult, but is there any way to give the ray a specific velocity, rather than being nearly instant?  I&#039;m not just talking about a delay between the firing input and casting the ray, but having the ability to set the ray to move at a specified speed so that distance to target matters?  I mean, I suppose that I could fire multiple staggered rays to try to imitate this, and have the script read data from each successive ray only between certain distances....but that&#039;s gonna get really inefficient really fast, while the simulator is already calculating avatar distance and movement.&lt;br /&gt;
--[[User:Jahar Aabye|Jahar Aabye]] 05:47, 7 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::Hey Jahar, I see what you&#039;re saying, but no, there&#039;s no way to slow down the ray, it&#039;s a synchronous, instantaneous query into the physics world&#039;s current state. You&#039;ll just need to come up with a new clever way to inject difficulty into things :) (I&#039;m usually terrible at first person shooters and those have stupid AIs and instantaneous raycasts. I&#039;m sure a group of human enemies can find a way to make hitting them challenging while still being fun, even if the bullets travel faster now.) Also, given that the physics hitbox of a player is pretty narrow, I&#039;m guessing it may be harder than you expect to hit a moving target from the other side of the sim, even with a raycast. But then, I haven&#039;t tried.&lt;br /&gt;
:::[[User:Falcon Linden|Falcon Linden]] 03:46, 8 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Raycast Damage ==&lt;br /&gt;
&lt;br /&gt;
Hey folks,&lt;br /&gt;
&lt;br /&gt;
I&#039;ve been trying to coalesce some of the most significant suggestions for llCastRay, and one theme that seems consistent is that weapon system makers need a way to be notified when hit by a ray. I&#039;m thinking of two possible features:&lt;br /&gt;
&lt;br /&gt;
1) For integration with LL damage, it might be possible to create another parameter that takes a list of parameters (albeit with a bit more strict requirements than in primparams args due to inefficiencies in list processing). In the future, this could include a version number, but in the meantime, one possible parameter could be RC_DAMAGE which would apply a requested amount of damage to the first object hit if that object is an avatar and if the region is damage enabled, etc.&lt;br /&gt;
&lt;br /&gt;
2) An event, ray_impact, that the caster script could choose to trigger in impacted objects. This would, in principle, alleviate many of the security concerns around raycast-based weapons systems. In the interests of full disclosure, however, I should tell you that (a) I don&#039;t know how to create a new event (I&#039;ll have to speak to Kelly Linden) and therefore, (b), I don&#039;t know if implementing this feature would be prohibitive in terms of engineering time. But let&#039;s suppose I &amp;lt;i&amp;gt;could&amp;lt;/i&amp;gt; implement this. What information would you want the receiving object to be able to obtain in this event? The fewer the better, so my first instinct would be no information (it&#039;s enough to know you were hit). Beyond that, knowing the exact location of the hit could be nice, as would knowing the UUID of the casting object (maybe?) and perhaps receiving bit of user data provided in the llCastRay call. Would that be helpful? How might you use it?&lt;br /&gt;
&lt;br /&gt;
Cheers,&lt;br /&gt;
&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 03:47, 6 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: #1 sounds excellent, though it&#039;s been notoriously difficult to get people to play fair with LL damage.&lt;br /&gt;
&lt;br /&gt;
:: A ray_impact event would be a godsend.  The UUID of the casting object would be essential, and a hit location [and maybe hit normal] would be very useful.  Ideally, an appropriate set of llDetected* functions should work inside the ray_impact event similarly to how they&#039;re used in a touch event.  Might need a new one, like llDetectedRayNormal.  Still, just an event with a signature like ray_impact(key id, vector pos, vector norm) would be massively useful.  Let&#039;s see… I&#039;d be using llCastRay for collision avoidance on robots, and ray_impact would make it easier for the robots to exhibit schooling behaviors.  Similarly, such robots could interact with scripted objects in their environment (door controls, moveable boxes?) elegantly.  Other uses… target ranges for raycast-based weapons… missile lock detection in fighter combat… assuming we could use it in attachments for impacts to the avatar, combat meters for raycast-based guns… AR-like user interfaces implemented by raycasts from a HUD [though the math for generating such rays may be rather complicated]… line-of-sight communication between objects and avatars… I&#039;m sure there are more that I can&#039;t think of at the moment.  Bottom line, adding functionality to LSL is a Very Good Thing. --[[User:Michelle Resistance|Michelle Resistance]] 17:46, 6 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Falcon, I&#039;ve been silent on this point because I don&#039;t agree with the naysayers; &amp;lt;tt&amp;gt;llCastRay&amp;lt;/tt&amp;gt; is exactly what I&#039;ve been needing for the combat system I&#039;m building.  For those that want to use Linden Damage, I think &amp;lt;tt&amp;gt;llTakeDamage()&amp;lt;/tt&amp;gt; (perhaps accepting negative values to allow for healing) would be valuable, but beyond the scope of this project.  I don&#039;t personally hold with the logic that it&#039;s marginally hard to write non-laggy chat communications, so we should expect people to write non-laggy bullets and guns.  It&#039;ll require combat to be done differently, so it&#039;s not an evolutionary change, but I don&#039;t see that as a barrier.&lt;br /&gt;
&lt;br /&gt;
That said, if it can be done, RC_DAMAGE would be a nice thing to have.  I do build my weapons to fail down to Linden damage if no supported combat system is found, and if Linden damage is enabled.  &amp;lt;tt&amp;gt;ray_impact&amp;lt;/tt&amp;gt; would also be nice, especially if it&#039;s only explicitly triggered; UUID, impact point, and an arbitrary integer constant sent by the ray caster would be the values I&#039;d see as most useful.  Perhaps rather than go the whole list of parameters route for RC_DAMAGE, just add another integer parameter to &amp;lt;tt&amp;gt;llCastRay&amp;lt;/tt&amp;gt; that would be used differently with different flags?  In any event, not having either of these would in no way dampen my enthusiasm for this feature or impact my plans for using it, assuming it gets deployed. [[User:Jack Abraham|Jack Abraham]] 19:23, 6 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
::I think that suggestion #1, or some similar functionality, would be essential if you want this function to work with the current default LL Damage system.  The LL Damage system currently requires a physical collision between an avatar and an object scripted with llSetDamage().  This means that I can simply fire a bullet at an avatar and apply damage, but raycasting alone would not be able to perform any sort of damage without also requiring some sort of bullet unless you add this feature.&lt;br /&gt;
&lt;br /&gt;
::Suggestion #2 also sounds useful, if possible.  I suspect that many people will still utilize weapon-meter comms even if you include this function, because there is still greater security there in terms of being able to limit what can do damage within a system.  However, Michelle outlines many other excellent uses for including this feature.  In addition to making it far easier to construct non-avatar targets, it dramatically increases the potential usage for raycasting beyond just a replacement for projectiles.  I was just talking to a plane maker last night about how raycasting could make laser-guided bombs far more interesting, and while that example wouldn&#039;t require this extra feature, it does illustrate that raycasting can evolve into so many other things besides just a bullet, and so adding in the feature to detect a raycast may expand the use of raycasting into all sorts of applications beyond what any of us could envision.&lt;br /&gt;
&lt;br /&gt;
::As for what information might need to be passed?  Jack&#039;s suggestion of adding an all-purpose integer definitely sounds like the most important.  Obviously an integer would be required to set damage, and having the ability to send an integer with a raycast would also allow for expanded use outside of LL Damage.  It could allow a weapons system to differentiate between raycasts of different &amp;quot;caliber&amp;quot; or allow for raycasts to broadcast a &amp;quot;team&amp;quot; number, or to differentiate between raycasts being used as &amp;quot;projectiles&amp;quot; from those being used as &amp;quot;lasers&amp;quot; or in some other sensing capacity, or a million other situations where the ability to program an object with multiple responses to a raycast would dramatically expand its utility.  An integer is also the simplest piece of information that could be added, and you&#039;ll need to add it anyways if you add LL Damage functionality.&lt;br /&gt;
&lt;br /&gt;
::The UUID of the originating object would also be useful, as would the owner&#039;s UUID.  While it may sound redundant, I wonder about situations where the owner of the originating object might not be in the region, I believe that llGetOwnerKey() may not work in those situations, right?  So the owner UUID would be important.  It might also be useful for llCastRay() to send a UUID of its own choosing, and here I&#039;m thinking of how it is common in SL aviation for planes to be guest-flyable, so the owner of the object may not be the one using it.  However, workarounds already exist for this with bullet-based combat systems, so maybe it&#039;s not essential.  Of course, if it simply broadcast a UUID (or string) of the scriptor&#039;s choosing, that would allow whoever is scripting the object to decide whether to send the object UUID, the owner UUID, or the user&#039;s UUID, so it might be even better than automatically sending the object and owner UUIDs.&lt;br /&gt;
&lt;br /&gt;
::Finally, it might be useful to include the vector position of the originating point of the raycast.  Not where it hits you, but where it was sent from.  Granted, if the object/owner/user UUID is included, then llGetObjectDetails() might be used to get this information, but for some instinctive reason that I can&#039;t quite figure out at the moment, I feel like this might be a useful thing to add.  In the end, though, if you have to include one bit of information, make it all purpose integer that could be used to determine LL Damage or passed to an event.  If at the end of the day you can only pass on one piece of info, an integer would give you the most utility with the least overhead.&lt;br /&gt;
&lt;br /&gt;
::[[User:Jahar Aabye|Jahar Aabye]] 06:43, 7 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:::How about the shooter just sending the info about how the shot originated (also thigns like the gun used etc) via chat and then the potential target(s) calculate whether they were hit or not and adjust their owner health points as needed? (I just thought about that approach, haven&#039;t put much thought into it)&lt;br /&gt;
::: Btw, does everyone uses gravitiless bullets? I would expect people going for the more realistic stuff would use physical bullets that fly a ballistic trajectory... Can a ballistic arc be used instead of a straight line &amp;quot;ray&amp;quot;  with raycasting? --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 06:56, 7 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
::::Tigro, in real life, a 9mm round of typical self-defense ammunition has a muzzle velocity of 1120ft/s or 340m/s. As another commenter pointed out, a 5.56 NATO round (think M16) has a muzzle velocity of about 3000ft/s or 915m/s. Those two rounds would travel a sim diagonal (362m) in 1.06 and  0.4s, respectively. During that time period, if fired horizontally, they would fall about 5.5m and about 0.79m, respectively. Sounds like a lot, except that a pistol wouldn&#039;t have a range anywhere near that large in reality (you couldn&#039;t POSSIBLY aim a pistol accurately at a target nearly 4 football fields away, at least not by hand, and not without some kind of crazy scope...not to mention that wind would slow it down substantially over that distance) and for the M16, the drop is not significant given the 350m distance being traveled. So while no, you can&#039;t use a ballistic arc instead of a straight line, think about whether you really need to. And if you discover you really do, you could always approximate it with 4 line segments. &lt;br /&gt;
::::[[User:Falcon Linden|Falcon Linden]] 04:04, 8 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Get Alt-Zoom camera cursor position and surface orientation ==&lt;br /&gt;
&lt;br /&gt;
Here is an example I made, how to get the camera cursor position when you Alt-Zoom on any object surface with the &#039;&#039;&#039;llCastRay&#039;&#039;&#039; function.&lt;br /&gt;
&lt;br /&gt;
The script also calculates the surface orientation at the cursor position and rezes a prim on a top of surface. The Z-Axis of a rezed prim is aligned with the Normal vector of a surface at a given point and the X-Axis points in a way of your camera sight.&lt;br /&gt;
&lt;br /&gt;
To test the script make a new HUD object and put the script below into it. Also put one standard cube prim (named Object) into its inventory. Attach the HUD and Alt-Zoom to any curved surface in region, but not more than 10m far from you. Then click on the HUD and a new prim will be rezed on a top of surface where the Alt-Zoom cursor of your camera points.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
//                    &lt;br /&gt;
//      Scriptname:  Get Alt-Zoom position and Surface Orentation&lt;br /&gt;
//      Version:     1.0&lt;br /&gt;
//      Date:        06.07.2010&lt;br /&gt;
//&lt;br /&gt;
//      Description: Gets the position of the camera cursor&lt;br /&gt;
//                   when a user Alt-Zumes on a surface of any object and&lt;br /&gt;
//                   rezes a prim on this point and orients it with a surface&lt;br /&gt;
//&lt;br /&gt;
//      How To:      - Create a new HUD (cube), size = X=0.05 y=0.05 Z=0.05&lt;br /&gt;
//                   - Put this script on it and attach it as a HUD&lt;br /&gt;
//                   - Insert a standard prim (Cube 0.5m) into HUD inventory (named as Object)&lt;br /&gt;
//                   - Alt-Zoom with your mouse to any object surface in the region&lt;br /&gt;
//                   - Without moving your camera, click on this HUD&lt;br /&gt;
//                   - You will get the camera cursor position and surface orentation&lt;br /&gt;
//                   - An Object from HUD inventory will be rezed on a top of Alt-Zoomed surface&lt;br /&gt;
//                     perfectly aligned with surface and with X-axis pointed to your line of sight&lt;br /&gt;
//&lt;br /&gt;
//      Tips:        To see the camera cursor, enable: Advanced-&amp;gt;Character-&amp;gt;Show Look At in your Advaned Menu&lt;br /&gt;
//                   Rez a big sphere to make a curved surface in a region and Alt-Zoom on it.                 &lt;br /&gt;
//&lt;br /&gt;
//      Notes:       You must be at least 10m close to Alt-Zoom position (llRezObject() limitation)&lt;br /&gt;
//                   There&#039;s no &amp;quot;clamping code&amp;quot; included to cut the rays to be inside of a region&lt;br /&gt;
//&lt;br /&gt;
//      Creator:     Teleworm Gelber&lt;br /&gt;
//&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        if (llGetAttached() &amp;gt; 0)&lt;br /&gt;
        {&lt;br /&gt;
            llRequestPermissions(llGetOwner(), PERMISSION_TRACK_CAMERA);&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
            llOwnerSay(&amp;quot;Attach me as a HUD&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    run_time_permissions(integer permissions)&lt;br /&gt;
    {&lt;br /&gt;
        llOwnerSay(&amp;quot;Alt-Zoom on any curved surface in the region and then click me to get the Alt-Zoom cursor coordinates and an Object will be rezed there&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    touch_start(integer total_number)&lt;br /&gt;
    {&lt;br /&gt;
        vector   camPos;        // camera position&lt;br /&gt;
        rotation camRot;        // camera rotation&lt;br /&gt;
&lt;br /&gt;
        vector   rayEnd;        // ray end vector&lt;br /&gt;
&lt;br /&gt;
        vector   curPos;        // Alt-Zoom cursor position&lt;br /&gt;
        rotation curRot;        // Point on a surface rotation (Z-axis = SurfaceNormal, X-axis = line of sight)&lt;br /&gt;
&lt;br /&gt;
        vector   fwd;           // surface Forward vector&lt;br /&gt;
        vector   left;          // surface Left vector&lt;br /&gt;
        vector   normal;        // surface Normal vector&lt;br /&gt;
&lt;br /&gt;
        list     rayData;       // ray cast return data&lt;br /&gt;
&lt;br /&gt;
        if ((llGetPermissions() &amp;amp; PERMISSION_TRACK_CAMERA) != 0)&lt;br /&gt;
        {&lt;br /&gt;
            // getting camera location&lt;br /&gt;
            camPos = llGetCameraPos();&lt;br /&gt;
            camRot = llGetCameraRot();&lt;br /&gt;
&lt;br /&gt;
            // Cast a ray in a line of your sight (10.0 means llRezObject() limitation)&lt;br /&gt;
            rayEnd   = camPos + 10.0 * llRot2Fwd(camRot);&lt;br /&gt;
&lt;br /&gt;
            rayData = llCastRay(camPos, rayEnd, 0, RC_GET_NORMAL);&lt;br /&gt;
&lt;br /&gt;
            if (llList2Integer(rayData, -1) &amp;gt; 0)   // check status code&lt;br /&gt;
            {&lt;br /&gt;
                // get the Alt-Zoom cursor position and orentation&lt;br /&gt;
                curPos = llList2Vector(rayData, 1);&lt;br /&gt;
                normal = llList2Vector(rayData, 2);&lt;br /&gt;
&lt;br /&gt;
                // calculate axis for point oirentation&lt;br /&gt;
                left = llVecNorm(normal % llRot2Fwd(camRot));&lt;br /&gt;
                fwd  = left % normal;&lt;br /&gt;
                &lt;br /&gt;
                curRot = llAxes2Rot(fwd, left, normal);&lt;br /&gt;
&lt;br /&gt;
                llOwnerSay(&amp;quot;Alt-Zoom Position: &amp;quot; + (string) curPos);&lt;br /&gt;
                llOwnerSay(&amp;quot;Point Rotation: &amp;quot;    + (string) curRot);&lt;br /&gt;
&lt;br /&gt;
                // rez an Object on a top of hit surface, 0.25 means the prim center offset from surface (0.5m cube)&lt;br /&gt;
                llRezObject(&amp;quot;Object&amp;quot;, curPos + &amp;lt;0.0, 0.0, 0.25&amp;gt; * curRot, ZERO_VECTOR, curRot, 0);&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                llOwnerSay(&amp;quot;Nothing hit, try again&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
            llOwnerSay(&amp;quot;Attach me as a HUD first&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    on_rez(integer par)&lt;br /&gt;
    {&lt;br /&gt;
        llResetScript();&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--[[User:Teleworm Gelber|Teleworm Gelber]] 23:08, 6 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Inaccurate (buggy) position and normal ==&lt;br /&gt;
&lt;br /&gt;
I don&#039;t really have time for this, ... but I tried it out with a quick script (see below)&lt;br /&gt;
and my conclusion is that the place that is reported for the hit is very inaccurate at times.&lt;br /&gt;
It certainly isn&#039;t equal to the physical (collision) shape of objects, for example the place&lt;br /&gt;
another physical object would lay, or where you&#039;d stand if you stood on top of a prim with&lt;br /&gt;
your avatar, and often it&#039;s just near random (actually, this is clearly a bug).&lt;br /&gt;
&lt;br /&gt;
The script that I used in my objects is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
vector center;&lt;br /&gt;
float distance = 15.0;&lt;br /&gt;
&lt;br /&gt;
rez_marker(vector pos, vector normal)&lt;br /&gt;
{&lt;br /&gt;
    llRezObject(&amp;quot;Marker&amp;quot;, pos, ZERO_VECTOR, llRotBetween(&amp;lt;0,0,1&amp;gt;, normal), 0);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
probe(vector direction)&lt;br /&gt;
{&lt;br /&gt;
    //llSay(0, &amp;quot;direction = &amp;quot; + (string)direction);&lt;br /&gt;
    vector start = center + llVecNorm(direction) * distance;&lt;br /&gt;
    list results = llCastRay(start, center, RC_REJECT_AGENTS|RC_REJECT_PHYSICAL|RC_REJECT_LAND, RC_GET_NORMAL);&lt;br /&gt;
    if (llList2Integer(results, -1) &amp;gt; 0)&lt;br /&gt;
    {&lt;br /&gt;
        //llSay(0, &amp;quot;llCastRay returned &amp;quot; + (string)results);&lt;br /&gt;
        vector pos = llList2Vector(results, 1);&lt;br /&gt;
        vector normal = llList2Vector(results, 2);&lt;br /&gt;
        rez_marker(pos, normal);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        llSay(0, &amp;quot;llCastRay FAILED!&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    //rez_marker(start);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
init()&lt;br /&gt;
{&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        init();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    on_rez(integer param)&lt;br /&gt;
    {&lt;br /&gt;
        init();&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    touch_start(integer total_number)&lt;br /&gt;
    {&lt;br /&gt;
        if (llDetectedKey(0) != llGetOwner())&lt;br /&gt;
            return;&lt;br /&gt;
&lt;br /&gt;
        center = llGetPos();&lt;br /&gt;
        vector direction = &amp;lt;1,0,0&amp;gt;;&lt;br /&gt;
        float alpha;&lt;br /&gt;
        for (alpha = 0.0; alpha &amp;lt; 360.0; alpha += 10)&lt;br /&gt;
        {&lt;br /&gt;
            vector eul = &amp;lt;0, 0, alpha * DEG_TO_RAD&amp;gt;;&lt;br /&gt;
            rotation quad = llEuler2Rot(eul);&lt;br /&gt;
            probe(direction * quad);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Put it in an object together with an object named &amp;quot;Marker&amp;quot;.&lt;br /&gt;
The Marker object should be a (red) sphere of size 0.1 x 0.1 x 0.01.&lt;br /&gt;
&lt;br /&gt;
The script will rez the Marker object on the surface of the&lt;br /&gt;
object you put it in, with it&#039;s flat side outwards.  If you test&lt;br /&gt;
this with a cube of 10x10x10 you&#039;ll understand what is the idea :p.&lt;br /&gt;
&lt;br /&gt;
Next test it with a Cylinder of size 3.4 x 4 x 3.342&lt;br /&gt;
Taper X and Y both 1.00, Top Shear X = 0.30, and Y = 0.0&lt;br /&gt;
(the rest default)... and see the deviations.&lt;br /&gt;
&lt;br /&gt;
Try many more funny shaped objects to see loads and loads of&lt;br /&gt;
bugs and inaccuracies.&lt;br /&gt;
&lt;br /&gt;
--[[User:Aleric Inglewood|Aleric Inglewood]] 0:55, 7 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
You know, part of me hopes you&#039;re right--and that there&#039;s nothing I can do about it. Shapes like you&#039;re describing are terrible for the physics engine (tons of triangles, some of the degenerate, etc.). That said, I&#039;ll take a look at the physics debugger we have and see what&#039;s going on tomorrow. I suspect that the physics representation just isn&#039;t quite what you think it is. We&#039;ll see. Either way, thanks for bringing it to my attention.&lt;br /&gt;
&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 03:41, 7 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:As Teleworm points out below, the problem here is in your script, not in the llCastRay. You should check the hit list to find the hit with the UUID matching the scripted object&#039;s key and use that. You may still get more than one hit if you&#039;re near the edge of a triangle or if your shape is not convex, however.&lt;br /&gt;
:[[User:Falcon Linden|Falcon Linden]] 04:07, 8 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Simple Raytracer==&lt;br /&gt;
&lt;br /&gt;
[[File:Snapshot_2983.png|left|256px]]&lt;br /&gt;
I did this a few days ago, it&#039;s pretty nifty!&lt;br /&gt;
&lt;br /&gt;
--[[User:Moy Loon|Moy Loon]]&lt;br /&gt;
&lt;br /&gt;
Not just nifty, bloody awesome! Btw, notice the way the two thin cylinders show as boxes. We replace long, thin cylinders with boxes. Can you take a photo with an avatar? :)&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 04:09, 8 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
[[File:Avmeshforms.png|256px]]&lt;br /&gt;
&lt;br /&gt;
== Visualizing rays for debugging? ==&lt;br /&gt;
&lt;br /&gt;
Would it be possible to have the server send to the client the exact position of the begin and end points of the ray (so the client can render the ray itself) to help with debugging? (like trying to figure out ray positioning for a complex shaped linkset that needs close rays) I imagine it would be somthing like, the client tells the server it wants the rays, then the server will send the info for all rays owned by the avatar, and the client will render them as beacon like lines that fade gradually (the fading time would be a debug setting), perhaps add a bit of animation tot he beam like those pulses for the &amp;quot;cheesy beacon&amp;quot; for TP targets and tracking people on the map, to indicate the direction of the ray. To cope with packet loss, each time the client receives ray data it will tell the server whether to continue or stop, or perhaps just keep sending the request every N seconds and if the server don&#039;t get a request for a few N seconds it stops sending the info to that client. --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 16:59, 7 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I wish. Sorry, that&#039;s out of the scope of this project (which is intended to require a minimum amount of development time. So far, I think I&#039;ve spent &amp;lt;10hrs coding it, and I&#039;m trying to keep it under 20 total. &lt;br /&gt;
:[[User:Falcon Linden|Falcon Linden]] 04:20, 8 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You could also just rez an object to &#039;visualize&#039; it, learn about llRotBetween, and how to split things up into 10m chunks! --moyloon&lt;br /&gt;
&lt;br /&gt;
== Edge of sim returning usefull results ==&lt;br /&gt;
&lt;br /&gt;
How about if when the ray hits the edge of the sim, position will be the intersection of the ray with the edge (since it can&#039;t go past it), and the UUID will be one constant if there is another sim on the other side of the edge, and another constant if it leads into the void? --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 20:02, 7 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Sorry, that&#039;s just a little too hacky and out of scope for this one. :) Would be interesting, though! Feel free to submit a jira for interrogating the region as to its neighboring sims. That might be a useful function.&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 04:11, 8 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Phantom getting hit? ==&lt;br /&gt;
&lt;br /&gt;
Could anyone confirm if phantom objects are really not being ignored please? --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 23:18, 7 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Yes, this is a bug that I will fix when I have time. Shouldn&#039;t be too hard.&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 04:11, 8 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Even flexies are getting hit, but the the normals seem to be messed up (in my preliminary tests it seems the normals returned for flexies all point up regardless of where you hit them) --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 05:29, 8 July 2010 (UTC)&lt;br /&gt;
:: Flexies attached to phys linksets seem to be harder to hit (they also got a funky collision but just with the ground apparently, nothing but lucky rays and the ground seems to collide with them, i&#039;m not 100% sure, but i think in H4 not even the ground touches physical flexies) --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 05:44, 8 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Not hugely surprising, if phantom is getting picked up. Flexies don&#039;t have a flexible physics rep, I think it&#039;s just a box or something. I&#039;ll have to look into it, but probably not before next week. Curious, though, what about trees? (Note that a tree&#039;s physics shape is a very narrow box, so you&#039;d have to cast right in the middle of the tree.)&lt;br /&gt;
&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 05:36, 8 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Haha, whoops. I looked at my code and it&#039;s a one line bug. I could fix it now, but it&#039;s not critical and it wouldn&#039;t get updated on Aditi for a few days anyway. But rest assured, it should be a quick and easy one. :)&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 05:49, 8 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Would it be possible to add a checkbox or a setting that scripts can set to keep flexies colliding with the ground when desired? I&#039;ve jsut made a random toy that it&#039;s kinda fun to watch that without flexies colliding with ground but nothing else wouldn&#039;t work quite the same (i&#039;m asking for a somthign liek a checkbox/hidden switch because i can imagine that if this behavior isn&#039;t present in H4 some stuff might break if it&#039;s kept). No biggie if it has to be fixed though. --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 07:04, 8 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:::This reminds me of one existing (Agni) edge case that might be useful to clear up with this.  Currently if an avatar sits on an object, and that object then sets VolumeDetect to TRUE, the physics engine sets the avatar to phantom, and it does not register any hits on the avatar, even to the point of rendering the avatar invulnerable with regards to LL Damage.  I had not thought to test this with RayCasting, but I am wondering what the intended effect will be in terms of how rays will interact with these phantom avatars.  For additional information, see [http://jira.secondlife.com/browse/SVC-1253 SVC-1253] which has sort of lingered in limbo, probably because there are more important things to fix.  However, if the raycasting code is still being written, it&#039;d be nice to prevent this sort of unintended behavior before it even begins.&lt;br /&gt;
:::[[User:Jahar Aabye|Jahar Aabye]] 03:27, 9 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:::The sitting-phantom glitch with llVolumeDetect already has some odd behaviors, if you enable physics on the linkset.  When physical, the avatars behave something like tiny points of solid material, snagging on objects that the linkset passes through.  It&#039;s very odd.  I suppose I should bring some example code around and shoot rays at it, an&#039; see what happens?&lt;br /&gt;
:::--[[User:Michelle Resistance|Michelle Resistance]] 16:19, 13 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Some good news for llCastRay ==&lt;br /&gt;
&lt;br /&gt;
I was playing with the script from Aleric Inglewood and tried to figure out what causes this strange inaccurate positions and normals. And I figured out that the main reason is the Marker size and shape and not the physic engine. &lt;br /&gt;
&lt;br /&gt;
In the example of Cylinder of size 3.4 x 4 x 3.342, the ray hits a Marker which was previously rezed one step before and not the surface of the cylinder. That is the reason, why were Normals wrong oriented. I modify the script in such a way that I numbered all Markers with llSetText.&lt;br /&gt;
&lt;br /&gt;
The second problem is inaccurate position. A marker is always placed about 3-5 cm &#039;&#039;&#039;above&#039;&#039;&#039; a surface, and not exactly on it on a flat surface. This can be seen on a cube object. On a sphere, this error is smaller. And in a shape of this deformed cylinder sometimes markers appears below surface and becomes invisible, but never more than 5cm.&lt;br /&gt;
&lt;br /&gt;
To correct the Aleric experiment, just make a smaller marker. And when all markers are rezed, resize the cylinder to become little smaller to see all markers. If you zoom with your camera very close, you can see that all markers follow the orientation of polygones that define the object shape.&lt;br /&gt;
&lt;br /&gt;
--[[User:Teleworm Gelber|Teleworm Gelber]] 23:40, 7 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Good catch. I came to the same conclusion about Aleric&#039;s script, but I cheated (I have a way of visualizing the raycasts and the whole physics scene :). &lt;br /&gt;
&lt;br /&gt;
As for the inaccurate position, it&#039;s not inaccurate per se. It&#039;s just not what you expect. Most shapes in the physics engine (anything that isn&#039;t a perfect cylinder or perfect sphere, as I recall) has an additional radius of 5 or 10cm (I can never remember which). This is why if you stack physical boxes they&#039;ll have a gap between them. We use raycasts for sitting, but we specifically account for the radius in that code and in a few other places (like foot IK). There are a few other idiosyncracies around raycast results. For example, for most shape a ray parallel to its surface will not return a hit, nor will a ray terminating exactly at its surface or a ray originating inside the shape (unless it&#039;s a concave shape made of triangles, in which case the same holds true, but it&#039;s the individual triangle the ray begins inside that won&#039;t be hit). &lt;br /&gt;
&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 04:18, 8 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
The 10cm difference can be a problem for a system I have been working on for a long time now. With a lot of collision detection and Avatar Sensors, I have a system that causes the Avatar to behave differently physics-wise when stepping onto certain named surfaces. Currently, the problem is the collision detection system is unreliable when objects are real close together. It detects one or the other, and there is no way to determine which the avatar is standing on. I am hoping llCastRay is better, but it still leaves problems because of the invisible &amp;quot;extra height&amp;quot; of every prim. If a prim is underground, but only slightly, collision still detects the underground prim, despite the avatar only colliding with the actual ground. This occurs up to 1/4 a meter distance between the two vertically. If llCastRay has the same problem, there will still be too many workarounds to fix it. With that said, llCastRay is still something I wish to see completed. It&#039;s imperative for reducing sim lag, since llCastRay can take the place of 3 or 4 functions (one a repeating sensor event) in my script, and probably in many other scripter&#039;s scripts as well.&lt;br /&gt;
&lt;br /&gt;
[[User:Da Chrome|Da Chrome]] 16:47, 3 May 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Can we have this on the maingrid pretty please? ==&lt;br /&gt;
&lt;br /&gt;
I know this is experimental etc, but would it be possible to port the ray code to a sim version avaible on the maingrid and offer a sandbox sim with this hybrid version so we can play with ray with our main invs, live groups, chatting with friends inworld etc? --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 00:19, 8 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Sorry, no. We&#039;re not set up for doing that sort of thing. We can bring your agni inventory over to Aditi (contact Oskar), but you&#039;ll lose anything you currently have on Aditi.&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 04:21, 8 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I know, the beta grid inventory is one way copy of the main grid inv, everything gets overwritten when it&#039;s refreshed; i would rather not have to keep exporting the stuff i make there when i want to keep them though. --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 07:09, 8 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Just saying TY ==&lt;br /&gt;
&lt;br /&gt;
TY ;-) Will be cool. Keep it up Falcon.&lt;br /&gt;
&lt;br /&gt;
== just letting you know ==&lt;br /&gt;
&lt;br /&gt;
I&#039;ll be out of town this week, won&#039;t be able to read the stuff here nor log in to test stuff, cya. --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 20:57, 10 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Cast Ray vs. Ray Cast ==&lt;br /&gt;
&lt;br /&gt;
The function name proposed is &amp;quot;llCastRay&amp;quot; but the constants start &amp;quot;RC&amp;quot; as in &amp;quot;Ray Cast&amp;quot;. Would make sense to have them be consistent (as in &amp;quot;CR&amp;quot;). It&#039;s annoying keeping [[llMessageLinked]] and [[link_message]] straight. -- &#039;&#039;&#039;[[User:Strife_Onizuka|Strife]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Strife_Onizuka|talk]]|[[Special:Contributions/Strife_Onizuka|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 16:40, 15 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I second that motion. I&#039;m hoping this functionality is introduced and however it comes will be better than not coming at all but, while the opportunity exists to craft it to be as clean and user friendly as possible, that opportunity should be taken. Although this seems like a tiny issue (link_message vs llMessageLinked OR llSetLinkPrimitiveParamsFast *fingers gasp for breath* (although at least it wasn&#039;t llSetLinkPrimitiveParametersFast)) there is no good argument in favor of making function or event names insensible whereas there are good arguments in favor of them being simple and easy to write and remember. Now is the time to get that right. Still hugely in favor of the functionality though so if you MUST call it something complex and irritating, go right ahead ;-) -- &#039;&#039;&#039;[[User:Fred_Gandt|Fred Gandt]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Fred_Gandt|talk]]|[[Special:Contributions/Fred_Gandt|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 07:13, 17 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Hey guys,&lt;br /&gt;
&lt;br /&gt;
The logic is that the method, llCastRay, is a verb phrase (&amp;quot;cast a ray&amp;quot;), whereas the parameters are noun/adjective phrases (&amp;quot;Ray Cast Reject Agents&amp;quot;, &amp;quot;Ray Cast Reject Terrain&amp;quot;). Does that make sense to you?&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 06:39, 19 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
::Hey Falcon :-)&lt;br /&gt;
&lt;br /&gt;
:Grammatically correct it may be but, fiddly. Muscle memory etc. llCastRay(CR_summit_summit) just flows better. It&#039;s really only the _summit_summit that matters at the end of the day. If there were flags that were &#039;&#039;BOTH&#039;&#039; RC_ &#039;&#039;AND&#039;&#039; CR_ (depending on grammatical doobrywotsits) then cool; but, if there will only be &#039;&#039;EITHER&#039;&#039; CR_ &#039;&#039;OR&#039;&#039; RC_ I for one would prefer to go along with the CR_ simply so I don&#039;t need to think about my old English teachers in the middle of writing a statement. *not terribly concerned but, interested* -- &#039;&#039;&#039;[[User:Fred_Gandt|Fred Gandt]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Fred_Gandt|talk]]|[[Special:Contributions/Fred_Gandt|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 10:35, 19 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: I like the gramaticly correct approach, saves time when reading a script, and once you get used to it it flows as smoothly as anything else. It somtimes brings a smile to my face when i realise what i&#039;m writting makes sense even if i didn&#039;t understand what the words make happen under the hood. And the more consistent LSL is the better,  it already goes the gramaticly correct route elsewhere, so it would be expected it would also do it here. --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 20:48, 19 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::Tigro...An example of LSL being grammatically correct elsewhere would be, what? Perhaps the well known functions llGiveFolderOfInventoryListed or llSendMessageToLinkInSet?&lt;br /&gt;
::::Falcon (since I&#039;m already here)...I was thinking that since the world at large (when thinking about ray-casting) thinks of Ray-Casting rather than Casting-Rays it would prolly be even simpler to name the function llRayCast. *shrugs* TBH, whatever the parts end up being called it&#039;s how they work that matters most. Awesome of you to be trying to get this out. Hear&#039;s (now) quietly hoping. -- &#039;&#039;&#039;[[User:Fred_Gandt|Fred Gandt]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Fred_Gandt|talk]]|[[Special:Contributions/Fred_Gandt|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 04:02, 20 July 2010 (UTC)&lt;br /&gt;
::::: llMessageLinked isn&#039;t gramaticly correct?&lt;br /&gt;
&lt;br /&gt;
== ray_impact event vs. http ==&lt;br /&gt;
&lt;br /&gt;
I&#039;ve been thinking about the asserted need for a ray_impact event to determine if you&#039;ve been hit by a raycast. Babbage suggested that instead of creating a new ray_impact event (which is trickier than any of us might like), the same goals could be accomplished using the existing HTTP url system. The idea was that you&#039;d set up a system as follows for securely communicating the results of the ray cast:&lt;br /&gt;
&lt;br /&gt;
1) Users wear a hit detection script that acquires an HTTP-in URL and stores it in its description. &lt;br /&gt;
2) For weapons builders, you provide a copy, no-mod (and thus unreadable) script (call it a &amp;quot;firing script&amp;quot;) that has a link_message event that the weapon builders&#039; scripts can use to talk to it. This script also contains a secret key known to the hit detection scripts.&lt;br /&gt;
3) The weapon script sends a link message to the firing script with the requested start/end position of the ray. The firing script (which is secure because it was written by the system creator) then casts a ray (if the start/end points are allowed based on game rules). If it detects a hit, it gets the target&#039;s hit detection url from the target&#039;s description and sends an HTTP POST with the details, including a secret code to verify authenticity.&lt;br /&gt;
&lt;br /&gt;
What would prevent this from being a viable alternative to a ray_impact event? (Obviously, it generalizes to other uses equally well.)&lt;br /&gt;
If you think it will be too slow or have another fault, could you code up a simple, testable example?&lt;br /&gt;
&lt;br /&gt;
Thanks!&lt;br /&gt;
&lt;br /&gt;
:Something similar could be done using llRegionSay by sending the message on a frequently changing, random channel. The synchronization on channel would be performed by llRegionSay&#039;ing a new random channel number periodically, with the number encrypted using a key shared by all interested/authorized scripts. This would seem a lot simpler/faster than the HTTP idea.&lt;br /&gt;
&lt;br /&gt;
::I think a ray_impact would be a useful event, but by no means necessary.  There&#039;s any number of ways to securely communicate script to script using chat, http, reading one another&#039;s descriptions, carrier pigeon, etc., with llSHA1String or llMD5String and a password providing authentication.  If ray_impact is any trouble, drop the idea; don&#039;t let it stand in the way of getting us llCastRay.  It would be simpler to update existing combat meters using a new event, I think, but I don&#039;t think that should be a barrier.  [[User:Jack Abraham|Jack Abraham]] 07:23, 22 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Change Reject constants to be inclusive ==&lt;br /&gt;
Many, if not all other, LL calls use constants OR&#039;d together in a positive sense to change a scripts&#039; behavior.&lt;br /&gt;
This is the only function where I have seen constants used to reduce what the function does.&lt;br /&gt;
&lt;br /&gt;
I&#039;d suggest changing the RC_REJECT constants by eliminating the _REJECT_ portion and also adding a new constant, something along the lines of RC_ALL.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;normal&amp;quot; call would have the ALL constant unless you only wanted a subset of actions, in which case your OR together the constants you need.&lt;br /&gt;
&lt;br /&gt;
What do people think?  [[User:Jonathan Yap|Jonathan Yap]] 10:01am, 24 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Although unusual (this is just my opinion) rejection rather than inclusion seems like a perfectly reasonable way around things. I wonder if it might be more efficient too. Analogy: Compact discs: When a CD has bonus tracks that are often disruptive when listening to an otherwise complete listening experience, it is typical to avoid being disturbed after the album is finished that we need to &#039;&#039;include&#039;&#039; all the album tracks in a programmed playlist before starting the playback. I have often wished that I could &#039;&#039;exclude&#039;&#039; the few bonus tracks instead. I would go so far as suggesting that bonus tracks should be (in what seems an illogical fashion) the first tracks indexed on the CD so that no playlist programming is required at all; We simply start playback at track 4 to avoid playing the 3 bonus tracks. So although unusual and unexpected, an alternative way might be more efficient and simpler to use.&lt;br /&gt;
::This however is not a compact disc so, my greatest concern is with how well it works and how efficient it is as code. If there is NO difference in efficiency at all between rejection and inclusion, for the sake of continuity I would certainly agree with [[User:Jonathan Yap|Jonathan]] insofar that the &#039;&#039;normal&#039;&#039; way to construct a function by &#039;&#039;inclusive&#039;&#039; constants would be preferable. -- &#039;&#039;&#039;[[User:Fred_Gandt|Fred Gandt]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Fred_Gandt|talk]]|[[Special:Contributions/Fred_Gandt|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 08:26, 25 July 2010 (UTC)&lt;br /&gt;
:::I agree with Jonathan and Fred on this, as there is always the possibility that llCastRay may detect new types in future, and by building an exclusive filter you may suddenly start detecting objects you don&#039;t expect to as a result. It is much better for the function to simply return what you ask for, rather than returning everything you ask not to return, as it is a much more tightly controlled result that way.&amp;lt;br/&amp;gt;-- &#039;&#039;&#039;[[User:Haravikk_Mistral|Haravikk]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User_talk:Haravikk_Mistral|talk]]|[[Special:Contributions/Haravikk_Mistral|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 11:09, 22 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Optimizing Simulations ==&lt;br /&gt;
&lt;br /&gt;
Well, I got quite a few ideas that surround this issue, and I have tried to narrow it doesn&#039;t to a simple concept that describes a pattern how to use functionality, like llCastRay(), to optimization simulations. I blogged more details here: [http://icyspherical.blogspot.com/2010/07/optimizing-simulations-with-basic.html Icesphere Blog]. Let&#039;s not confuse this with a common ray-tracer. I want the client end to contact a prim on the simulator to demonstrate the basic pattern. The prim just needs to cast rays and send data back to the client. The client-side fills in the details. This first phase would only need to get a rough scene layout. Close objects probably can be gathered with a scanner and some further objects can be done with llCastRay() (can&#039;t cross sims yet, but someday maybe). Hopefully, use http client/server methods to communicate with detected objects.&lt;br /&gt;
&lt;br /&gt;
Now with that basics above, scripts added into detected objects could further describe details of the scene through client/server methods. I&#039;ve seen other LSL raytracers, that didn&#039;t use llCastRay(), that used scripts to store &amp;quot;material&amp;quot; data and thought... cool!&lt;br /&gt;
&lt;br /&gt;
Posted some vulgar code here: [[User:Dzonatas_Sol/HttpCastRayLLSD]] [[User:Dzonatas Sol|Dzonatas Sol]] 05:52, 28 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Possibility of a &amp;quot;Fast&amp;quot; trace ==&lt;br /&gt;
&lt;br /&gt;
Hi Falcon.&lt;br /&gt;
&lt;br /&gt;
ty ty ty ty ty ty :D (Now that I got that off my chest :p)&lt;br /&gt;
&lt;br /&gt;
I&#039;ve got a bit of a suggestion, is it possible to add a llCastRayFast which only determines if there is something within the filter that&#039;s in the way between point A and point B.&lt;br /&gt;
&lt;br /&gt;
E.g. xyz avatar wants to go to sleep but a requirement to goto sleep in a hud is that the avatar is sheltered from the elements, the script does a trace looking to see if the avatar has a clear shot at the sky or not, if not the avatar is under cover.&lt;br /&gt;
&lt;br /&gt;
I really hope the hands of god (LL) allow this to make it into the maingrid.&lt;br /&gt;
&lt;br /&gt;
Look forward to catching you on the test grid :)&lt;br /&gt;
&lt;br /&gt;
Cheers,&lt;br /&gt;
Lastro&lt;br /&gt;
&lt;br /&gt;
edit: Also see my user page for some code I&#039;ve done, which works how I would expect it to (appart from it detecting the target object)&lt;br /&gt;
&lt;br /&gt;
Another idea would be the ability to do a ray trace between two object/agent/etc UUIDs. --[[User:Lastro Greenwood|Lastro Greenwood]] 00:54, 7 August 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Any updates? ==&lt;br /&gt;
&lt;br /&gt;
I haven&#039;t been around much, any news regarding this? Falcon hasn&#039;t been sacked too, has he? o.o --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 20:26, 26 September 2010 (UTC)&lt;br /&gt;
:Hi, Falcon is still among the living Lindens but he is working on other projects like mesh.  llCastRay is &amp;quot;[[User:Andrew Linden/Office_Hours/2010 09 10#msg_200|shelved until further notice, unfortunately]].&amp;quot; --[[User:Cerise Sorbet|Cerise Sorbet]] 23:17, 26 September 2010 (UTC)&lt;br /&gt;
::IMO this should be given more priority than mesh import. --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 00:12, 27 September 2010 (UTC)&lt;br /&gt;
:::Well Mesh import is a big important project so I wouldn&#039;t say that. But it&#039;s odd that the scripting team can&#039;t be working on it, as efficient scripts and script limits are their domain, and that seems to be the main hold-up on the function right now. Given the huge, complex workarounds to create scripted AI without this function it certainly comes under script efficiency, as I have pathing objects that use four or five scripts to give some semblance of accuracy, when this single function would eliminate all of them.&amp;lt;br/&amp;gt;-- &#039;&#039;&#039;[[User:Haravikk_Mistral|Haravikk]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User_talk:Haravikk_Mistral|talk]]|[[Special:Contributions/Haravikk_Mistral|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 11:23, 22 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Redesign of llCastRay()? ==&lt;br /&gt;
&lt;br /&gt;
I&#039;m curious as to why this function requires a start and end point rather than describing a true ray like so:&lt;br /&gt;
&amp;lt;lsl&amp;gt;list llCastRay(vector origin, vector direction, float range, list options);&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quite simply the two vectors should describe the origin point (start) and direction of the ray, it&#039;s then up to the function to decide whether to process until &amp;lt;code&amp;gt;range&amp;lt;/code&amp;gt; is reached, or if a region boundary is hit (whichever occurs first). A range of 0.0 would describe an infinite ray, in which case it will only stop upon hitting the maximum number of unfiltered objects, or a region boundary. Preferably the ray should continue a short-distance into the next region rather than halting immediately upon a boundary, the standard overlap is around 20m I believe?&amp;lt;br/&amp;gt;-- &#039;&#039;&#039;[[User:Haravikk_Mistral|Haravikk]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User_talk:Haravikk_Mistral|talk]]|[[Special:Contributions/Haravikk_Mistral|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 11:06, 22 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    list castray(vector origin, vector normal, float distance, list options){&lt;br /&gt;
        return llCastRay(origin,origin+normal*distance,list options);&lt;br /&gt;
    }&lt;br /&gt;
It&#039;s easier in my opinion, to have a start and stop, instead of start, normal, and distance, aswell as I&#039;m sure most other people would think the same way, But, that&#039;s a wrapper for how you&#039;d want it.&lt;br /&gt;
&lt;br /&gt;
--[[User:Moy Loon|Moy Loon]] 17:50, 22 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Problem is that it lacks a way to properly describe infinity. I suppose if we know that the ray can&#039;t go beyond the region then a range of 16536.0 or some other large value is fine, but it seems a lot simpler to be able to use the normal/direction vector. I mean you could even simplify it further by removing the origin point and assuming the ray is always cast from the scripted prim&#039;s centre, though an origin may be especially useful. It&#039;s just that with the normal you could do the following:&lt;br /&gt;
&amp;lt;lsl&amp;gt;// What can I see?&lt;br /&gt;
llCastRay(llGetPos(), llRot2Fwd(llGetRot()), 50.0, []);&amp;lt;/lsl&amp;gt;&lt;br /&gt;
This seems a simple, and likely very common use-case of the function. Likewise it may be desirable to have the filter as a formal part of the function, rather than under options, and just use the same constants, so that I could more specifically do:&lt;br /&gt;
&amp;lt;lsl&amp;gt;// Who can I see?&lt;br /&gt;
llCastRay(llGetPos(), llRot2Fwd(llGetRot()), 50.0, AGENT, []);&amp;lt;/lsl&amp;gt;&lt;br /&gt;
Or possibly even do the same with the maximum number of values returned, as the filter and the maximum are the two that are needed most, list-based options should be restricted to things that are additional, rather than fundamental to typical usage of the function. But in any event, to me this seems a lot simpler, as other you have to do:&lt;br /&gt;
&amp;lt;lsl&amp;gt;// Who can I see?&lt;br /&gt;
vector pos = llGetPos();&lt;br /&gt;
llCastRay(pos, pos + (llRot2Fwd(llGetRot()) * 50.0), [RC_REJECT_TYPES, RC_REJECT_PHYSICAL | RC_REJECT_NONPHYSICAL | RC_REJECT_LAND]);&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hell, the whole set-up of the function is a bit bewildering, I&#039;ve posted a function that I believe would be a lot cleaner/more-usable and consistent, and you can find it [[User:Haravikk Mistral/LlCastRay|here]].&amp;lt;br/&amp;gt;-- &#039;&#039;&#039;[[User:Haravikk_Mistral|Haravikk]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User_talk:Haravikk_Mistral|talk]]|[[Special:Contributions/Haravikk_Mistral|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 12:17, 23 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:What I really love is how the Lindens working on this function seem to just love ignoring all the issues I&#039;ve been trying to raise with the design of it. Now we&#039;re just rushing towards releasing a function that barely resembles an LSL call, and does just about everything it needs to backwards. With no true control over the output this function is pretty much useless for any of the cases I&#039;d want to use it for, as I&#039;ll need to do complex list manipulation in order to sort the results. Does no-one but me care that this function seems like a bad joke? It has all the functionality we need, and have wanted since day one of scripting in SL, and yet delivered in a package that makes no sense in the slightest.&amp;lt;br/&amp;gt;-- &#039;&#039;&#039;[[User:Haravikk_Mistral|Haravikk]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User_talk:Haravikk_Mistral|talk]]|[[Special:Contributions/Haravikk_Mistral|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 04:54, 6 July 2011 (PDT)&lt;br /&gt;
&lt;br /&gt;
== llCastRay for Vehicle&#039;s wheels suspension? ==&lt;br /&gt;
&lt;br /&gt;
I&#039;m still disturbed from the day you suggested it, Falcon. While llCastRay itself is a great idea, but it bear no good logical use for vehicle suspensions system. You know I didn&#039;t have to hesitate to say no, I knew right off the bat that it was a bad idea.&lt;br /&gt;
&lt;br /&gt;
There are ways to track height of on-coming prims and land slope to clench its wheels in a single frame before collision happens. This is requiring to scan the path at every physic frames and more. You also need to make calculation how deep the &amp;quot;bump&amp;quot; is and throw suspension&#039;s reaction force up the car as a jump or &amp;quot;damping&amp;quot; shock. However...  llCastRay can not help with physic collision when the wheels are trying to push outward to raise the car up. Moving wheels via llSetLinkPrimParam (or the fast version as well) would clip through solid object within the first few physic frames, later Havok engine try to resolve by pushing out the wheel, some times result in getting stuck into the ground or objects it drives on top of. It happens on a tiny smooth bump, causing a dramatic physic motion interruption, even come to a full stop without being fully stuck into the road. I&#039;ve had done this similar setup with collision event and sensor. I spent two years researching a better way to handle vehicle suspension with all the LSL code and complex physic algorithms I could use.&lt;br /&gt;
&lt;br /&gt;
Vehicle suspension system need much more to work with, but it would be pretty darn silly to let Havok&#039;s vehicle library go to waste without any script&#039;s delaying the collision event in frames between.&lt;br /&gt;
My bigger concern is having Linden Lab (or you, Falcon, for that matter) use llCastRay as a &amp;quot;work around&amp;quot; excuse not to provide better suspension/motorized system. I&#039;m not demanding to give us Havok&#039;s suspension system right at this minute, but be aware how poorly dealt it has been.&lt;br /&gt;
&lt;br /&gt;
Keep up the good work; I&#039;m sure I&#039;ll find more uses for llCastRay.  --[[Image:Nacon-tag.jpg]] &#039;&#039;&#039;[[User:Vincent_Nacon|₪]]&#039;&#039;&#039; 23:19, 11 February 2011 (PST)&lt;br /&gt;
&lt;br /&gt;
:I don&#039;t think he meant wheels with suspension, but solid wheels that work realisticly, only proving thrust when in contact with the ground (or anything else) --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 12:46, 6 May 2011 (PDT)&lt;br /&gt;
&lt;br /&gt;
::If the wheels were made flexible paths (so they&#039;re phantom within a non-phantom linked set) then you could still simulate the visual effect of suspension if you really wanted, while invisible guide prims control the actual physical motion.&amp;lt;br/&amp;gt;-- &#039;&#039;&#039;[[User:Haravikk_Mistral|Haravikk]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User_talk:Haravikk_Mistral|talk]]|[[Special:Contributions/Haravikk_Mistral|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 13:18, 8 May 2011 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Simplification function for use. ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
list ray(vector s, vector e)&lt;br /&gt;
{&lt;br /&gt;
    return llCastRay(s,e,&lt;br /&gt;
    [&lt;br /&gt;
        RC_REJECT_TYPES,&lt;br /&gt;
                        0&lt;br /&gt;
                        //RC_REJECT_AGENTS&lt;br /&gt;
                        //|RC_REJECT_PHYSICAL&lt;br /&gt;
                        //|RC_REJECT_NONPHYSICAL&lt;br /&gt;
                        //|RC_REJECT_LAND&lt;br /&gt;
                        ,&lt;br /&gt;
        RC_DATA_FLAGS,&lt;br /&gt;
                        0&lt;br /&gt;
                        //RC_GET_NORMAL&lt;br /&gt;
                        //|RC_GET_ROOT_KEY&lt;br /&gt;
                        //|RC_GET_LINK_NUM&lt;br /&gt;
                        ,&lt;br /&gt;
        RC_MAX_HITS, 1,&lt;br /&gt;
        RC_DETECT_PHANTOM,FALSE  &lt;br /&gt;
    ]);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
[[User:Draconis Neurocam|Draconis Neurocam]] 10:19, 8 April 2011 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Where can i find a list of sims currently aware of this command? ==&lt;br /&gt;
&lt;br /&gt;
I&#039;ve been away for some time, trying to come back now, but the Oatmeals that used to recognize the commands aren&#039;t doing it anymore, where can i find an updated list of sims where i can play with llCastRay right now? --[[User:TigroSpottystripes Katsu|TigroSpottystripes Katsu]] 12:43, 6 May 2011 (PDT)&lt;br /&gt;
&lt;br /&gt;
the mesh sims on betagrid seem to support it well&lt;br /&gt;
--[[User:Vagabond Carter|Vagabond Carter]] 16:47, 2 July 2011 (PDT)&lt;br /&gt;
&lt;br /&gt;
== making use of the normal ==&lt;br /&gt;
&lt;br /&gt;
after some experimentation on betagrid I&#039;ve found the following handy:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
to turn a normal into a rotation (for rezzing portals/decals etc)&lt;br /&gt;
vector norm = (the normal retunrd by llCastRay() );&lt;br /&gt;
rotation hitrot = llRotBetween(ZERO_ROTATION , norm);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--[[User:Vagabond Carter|Vagabond Carter]] 16:15, 2 July 2011 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Pre-Release? ==&lt;br /&gt;
&lt;br /&gt;
Shouldn&#039;t the document be tagged with &amp;quot;|mode=pre-release&amp;quot;? Considering the fact that it&#039;s not currently &amp;quot;activated&amp;quot;?&lt;/div&gt;</summary>
		<author><name>Ayamo Nozaki</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Source_downloads&amp;diff=385713</id>
		<title>Source downloads</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Source_downloads&amp;diff=385713"/>
		<updated>2009-06-08T16:36:55Z</updated>

		<summary type="html">&lt;p&gt;Ayamo Nozaki: fixed date on RC-1.23.3 (bad copy paste?)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__&lt;br /&gt;
&lt;br /&gt;
Below is a list of recent releases of the Second Life viewer source code, in reverse chronological order.  Be sure to pay attention to the {{OSWebsite|licenses|alt=applicable licenses}}.  For build instructions, see [[Get source and compile]].  For older versions, [[Obsolete Source downloads]].&lt;br /&gt;
&lt;br /&gt;
{{CompileNav}}&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
= Releases and Release Candidates =&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;Date&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;Branch&#039;&#039;&#039;&lt;br /&gt;
(see [[#Branching process|Branching process]] below)&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;Source&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;Artwork&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;Libs&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;Build&amp;amp;nbsp;Notes&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
{{SourceDownloadRowSnapshotRCFrozen|2009-May-30|viewer-rc-frozen-1.23.3 (r122255)|RC-1.23.3|viewer-rc-frozen-1.23.3.122255|}}&lt;br /&gt;
{{SourceDownloadRowSnapshot|2009-May-20|viewer-1.23.2 (r120719)|RC-1.23.2|viewer-1.23.2-r120719|}}&lt;br /&gt;
{{SourceDownloadRowSnapshot|2009-May-07|viewer-1.23.1 (r119104)|RC-1.23.1|viewer-1.23.1-r119104|}}&lt;br /&gt;
{{SourceDownloadRowSnapshot|2009-Apr-29|viewer-1.23.0 (r118378)|RC-1.23.0|viewer-1.23.0-r118378|}}&lt;br /&gt;
{{SourceDownloadRowSnapshot|2009-Mar-11|viewer-1.22.11 (r113941)|1.22.11|viewer-1.22.11-r113941|1.22 Release version}}&lt;br /&gt;
{{SourceDownloadRowSnapshot|2008-Oct-17|viewer_1-21 (r99587)|1.21.6|viewer_1-21-r99587|1.21 Release version}}&lt;br /&gt;
{{SourceDownloadRowSnapshot|2008-Oct-07|Branch_1-20-Viewer-2 (r98669)|1.20.17|Branch_1-20-Viewer-2-r98669|1.20 Release version (security update)}}&lt;br /&gt;
{{SourceDownloadRowSnapshot|2008-Apr-07|Branch_1-19-1-Viewer (r84244)|1.19.1.4|Branch_1-19-1-Viewer-r84244|Commit revision bumped for DLL update}}&lt;br /&gt;
{{SourceDownloadRowSnapshot|2008-Feb-29|Branch_1-19-0-Viewer (r81066)|1.19.0.5|Branch_1-19-0-Viewer-r81066|}}&lt;br /&gt;
{{SourceDownloadRowRelease|2008-Jan-15|Branch_1-18-6-Viewer (r77355)|RC-1.18.6.4|}}&lt;br /&gt;
{{SourceDownloadRowRelease|2007-Nov-29|Branch_1-18-5-Viewer (r74731)|1.18.5.3|Win VS2005: Use llmozlib-vc80.lib from RC-1.18.6.0 (above) }}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Betas and First Look =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;Date&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;Branch&#039;&#039;&#039;&lt;br /&gt;
(see [[#Branching process|Branching process]] below)&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;Source&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;Artwork&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;Libs&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;Build&amp;amp;nbsp;Notes&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
{{SourceDownloadRowSnapshot|2008-Feb-24|firstlook_windlight14_fl11 (r80044)|FL-1.19.0.80044|firstlook_windlight14_fl11-r80044|According to Soft Linden this really is r80044 even though the code says r79809}}&lt;br /&gt;
{{SourceDownloadRowSnapshot|2008-Feb-19|dazzle-firstlook (r80283)|FL-1.19.0.80283|dazzle-firstlook-r80283|}}&lt;br /&gt;
{{SourceDownloadRowSnapshot|2008-Feb-15|windlight14_fl8 (r80079)|FL-1.19.0.80079|windlight14-r80079|}}&lt;br /&gt;
{{SourceDownloadRowSnapshot|2008-Feb-08|dazzle-firstlook (r79625)|FL-1.19.0.79625|dazzle-firstlook-r79456|}}&lt;br /&gt;
{{SourceDownloadRowRelease|2008-Jan-23|windlight13_fl8 (r77495)|FL-1.18.6.77495|}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Dated snapshots =&lt;br /&gt;
&lt;br /&gt;
This section is largely obsolete. Instead, subscribe to the [https://lists.secondlife.com/cgi-bin/mailman/listinfo/sldev-commits sldev-commits mailing list] or look at the [https://lists.secondlife.com/pipermail/sldev-commits/ list archives]. Library and source tarball URLs appear at the bottom of each viewer branch&#039;s commit messages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;Date&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;Branch&#039;&#039;&#039;&lt;br /&gt;
(see [[#Branching process|Branching process]] below)&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;Source&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;Libs&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;Build&amp;amp;nbsp;Notes&#039;&#039;&#039;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
{{SourceArchiveRow|2007-Dec-21|release (int svn rev 76408)|20071221a|}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Branching process =&lt;br /&gt;
The &amp;quot;branch&amp;quot; column indicates what branch the source was pulled from in Linden Lab&#039;s internal source repository, as well as the version number.  This is helpful in determining how and when to do merges.  See [[source branches]] page for more information about this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that the dated releases (e.g. 20070117a) are sourced from the working trunk (the &amp;quot;release&amp;quot; branch), and the numbered releases (e.g. 1.13.2.xx) are to sync with the official viewer releases.&lt;br /&gt;
&lt;br /&gt;
[[Image:Branching model.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Support library source =&lt;br /&gt;
* [[LogitechLCD]]&lt;br /&gt;
** Current Version of the windows only project required to generate the lib that the viewer uses [http://secondlife.com/developers/opensource/downloads/2007/11/logitech-lcd-lib-gen-1.18.5.0.zip logitech_lib_project / 2007-11-15]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[llMozLib]]&lt;br /&gt;
** Current version&lt;br /&gt;
*** Windows (CRLF/Zip) [http://secondlife.com/developers/opensource/downloads/2007/12/llmozlib-src-20071221.zip llMozLib / 2007-12-21]&lt;br /&gt;
*** Mac/Linux (LF/tar.gz) [http://secondlife.com/developers/opensource/downloads/2007/12/llmozlib-src-20071221.tar.gz llMozLib / 2007-12-21]&lt;br /&gt;
** Older versions&lt;br /&gt;
*** Windows (CRLF/Zip) [http://secondlife.com/developers/opensource/downloads/2007/11/llmozlib-src-20071121.zip llMozLib / 2007-11-21]&lt;br /&gt;
*** Mac/Linux (LF/tar.gz) [http://secondlife.com/developers/opensource/downloads/2007/11/llmozlib-src-20071121.tar.gz llMozLib / 2007-11-21]&lt;br /&gt;
*** Windows (CRLF/Zip) [http://secondlife.com/developers/opensource/downloads/2007/11/llmozlib-src-20071101.zip llMozLib / 2007-11-01]&lt;br /&gt;
*** Mac/Linux (LF/tar.gz) [http://secondlife.com/developers/opensource/downloads/2007/11/llmozlib-src-20071101.tar.gz llMozLib / 2007-11-01]&lt;br /&gt;
*** Mac/Linux (LF/tar.gz) [http://secondlife.com/developers/opensource/downloads/2007/01/llmozlib-src-20070112a.tar.gz llMozLib / 2007-01-12]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Compiling viewer]]&lt;/div&gt;</summary>
		<author><name>Ayamo Nozaki</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Ayamo_Nozaki&amp;diff=384893</id>
		<title>User:Ayamo Nozaki</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Ayamo_Nozaki&amp;diff=384893"/>
		<updated>2009-06-07T11:01:40Z</updated>

		<summary type="html">&lt;p&gt;Ayamo Nozaki: New page: Lerking the tubes.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Lerking the tubes.&lt;/div&gt;</summary>
		<author><name>Ayamo Nozaki</name></author>
	</entry>
</feed>