<?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=Kireji+Haiku</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=Kireji+Haiku"/>
	<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/wiki/Special:Contributions/Kireji_Haiku"/>
	<updated>2026-05-21T21:14:30Z</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=1200389</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=1200389"/>
		<updated>2016-06-06T21:54:10Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: /* Syntax highlighting, autocompletion and snippet files by the Builder&amp;#039;s Brewery: */ now with support for tooltips for SublimeText&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;
! &#039;&#039;&#039;Tooltips:&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| [http://ace.c9.io Ace]&lt;br /&gt;
| rowspan=&amp;quot;19&amp;quot; | [https://github.com/buildersbrewery/linden-scripting-language/ Download files]&lt;br /&gt;
| rowspan=&amp;quot;19&amp;quot; | [https://github.com/buildersbrewery/linden-scripting-language/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;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.atom.io/ AtomEditor]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{yes}}&lt;br /&gt;
| {{yes|Atom is built upon Chrome}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.contexteditor.org/ ConTEXT]&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;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.gnu.org/software/emacs/ Emacs]&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;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://projects.gnome.org/gedit/ gedit]&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;
| colspan=&amp;quot;2&amp;quot; {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.mediawiki.org/wiki/Extension:SyntaxHighlight_GeSHi GeSHi - wikimedia extension]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{maybe|requires a browser}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{yes}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.highlightjs.org/ Highlight.js]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{maybe|requires a browser}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{yes}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.jedit.org/ jEdit]&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;
| colspan=&amp;quot;2&amp;quot; {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.kate-editor.org/ Kate]&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;
| colspan=&amp;quot;2&amp;quot; {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.nano-editor.org/ Nano]&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;3&amp;quot; {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.notepad-plus-plus.org/ Notepad++]&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;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.pygments.org/ Pygments]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{maybe|requires a browser}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{yes}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.codingmonkeys.de/subethaedit/ SubEthaEdit]&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;
| colspan=&amp;quot;2&amp;quot; {{yes}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| Sublime Text [http://www.sublimetext.com/2 ST 2 stable], [http://www.sublimetext.com/dev ST 2 dev], [http://www.sublimetext.com/3 ST 3 stable], [http://www.sublimetext.com/3dev ST 3 dev]&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;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.textasticapp.com/ Textastic]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|Supports Mac OS and iOS versions of Textastic}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{no}}&lt;br /&gt;
| colspan=&amp;quot;3&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;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{no}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.ultraedit.com/ UltraEdit]&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;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.vim.org/ Vim]&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;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| [https://code.visualstudio.com/ Visual Studio Code]&lt;br /&gt;
| {{no}}&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;
| {{no}}&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;
This project is most recently maintained [https://github.com/elnewfie/lslforge here] (and its forks on github). Some information also remains at the original [https://code.google.com/p/lslforge/ google code repository]. There are several notable bugs, including lack of JSON support for which there are patches and no new versions.&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;
* Last updated 5 January 2014&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;
* Plugin link is dead&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;
* LSL file links are dead&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] .) 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;
*LSL Files last updated june 2013&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] .  Very outdated&lt;br /&gt;
*Last update:  19 August 2009&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;
*LSL files last updated in 2009&lt;br /&gt;
&lt;br /&gt;
===UltraEdit-32/UEStudio [{{HoverText|&#039;&#039;C&#039;&#039;|Commercial Software}}]===&lt;br /&gt;
Very outdated&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]] &lt;br /&gt;
* Last updated 28 November 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 is available for OS X, Windows and Linux.&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] &lt;br /&gt;
*Active as of 27 September 2015&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 [https://github.com/etexteditor/e e Editor] is a port of TextMate to Windows, and can use the TextMate LSL bundle listed below.&lt;br /&gt;
&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;
| {{yes}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{no|No since 2.x}}&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;
| {{no}}&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>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LSL_Alternate_Editors&amp;diff=1199846</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=1199846"/>
		<updated>2016-04-08T23:10:51Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: fix links&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;
| rowspan=&amp;quot;19&amp;quot; | [https://github.com/buildersbrewery/linden-scripting-language/ Download files]&lt;br /&gt;
| rowspan=&amp;quot;19&amp;quot; | [https://github.com/buildersbrewery/linden-scripting-language/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.atom.io/ AtomEditor]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{yes}}&lt;br /&gt;
| {{yes|Atom is built upon Chrome}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.contexteditor.org/ ConTEXT]&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;
| {{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;
| {{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;
| {{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.highlightjs.org/ Highlight.js]&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.jedit.org/ jEdit]&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;
| {{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;
| {{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;
| {{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.pygments.org/ Pygments]&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.codingmonkeys.de/subethaedit/ SubEthaEdit]&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;
| Sublime Text [http://www.sublimetext.com/2 ST 2 stable], [http://www.sublimetext.com/dev ST 2 dev], [http://www.sublimetext.com/3 ST 3 stable], [http://www.sublimetext.com/3dev ST 3 dev]&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.textasticapp.com/ Textastic]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|Supports Mac OS and iOS versions of Textastic}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.smilesoftware.com/TextExpander/ TextExpander] and [https://www.smilesoftware.com/TextExpander/touch/ TextExpander touch]&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;
| {{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;
| {{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;
| [https://code.visualstudio.com/ Visual Studio Code]&lt;br /&gt;
| {{no}}&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;
&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;
This project is most recently maintained [https://github.com/elnewfie/lslforge here] (and its forks on github). Some information also remains at the original [https://code.google.com/p/lslforge/ google code repository]. There are several notable bugs, including lack of JSON support for which there are patches and no new versions.&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;
* Last updated 5 January 2014&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;
* Plugin link is dead&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;
* LSL file links are dead&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] .) 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;
*LSL Files last updated june 2013&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] .  Very outdated&lt;br /&gt;
*Last update:  19 August 2009&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;
*LSL files last updated in 2009&lt;br /&gt;
&lt;br /&gt;
===UltraEdit-32/UEStudio [{{HoverText|&#039;&#039;C&#039;&#039;|Commercial Software}}]===&lt;br /&gt;
Very outdated&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]] &lt;br /&gt;
* Last updated 28 November 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 is available for OS X, Windows and Linux.&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] &lt;br /&gt;
*Active as of 27 September 2015&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 [https://github.com/etexteditor/e e Editor] is a port of TextMate to Windows, and can use the TextMate LSL bundle listed below.&lt;br /&gt;
&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;
| {{yes}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{no|No since 2.x}}&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;
| {{no}}&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>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LSL_Alternate_Editors&amp;diff=1198728</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=1198728"/>
		<updated>2016-01-04T18:11:46Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: /* Syntax highlighting, autocompletion and snippet files by the Builder&amp;#039;s Brewery: */ damn wiki syntax&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;
| rowspan=&amp;quot;19&amp;quot; | [https://github.com/buildersbrewery/linden-scripting-language/ Download files]&lt;br /&gt;
| rowspan=&amp;quot;19&amp;quot; | [https://github.com/buildersbrewery/linden-scripting-language/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.atom.io/ AtomEditor]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{yes}}&lt;br /&gt;
| {{yes|Atom is built upon Chrome}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.contexteditor.org/ ConTEXT]&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;
| {{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;
| {{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;
| {{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.highlightjs.org/ Highlight.js]&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.jedit.org/ jEdit]&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;
| {{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;
| {{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;
| {{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.pygments.org/ Pygments]&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.codingmonkeys.de/subethaedit/ SubEthaEdit]&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;
| Sublime Text [http://www.sublimetext.com/2/ ST 2 stable], [http://www.sublimetext.com/dev/ ST 2 dev], [http://www.sublimetext.com/3/ ST 3 stable], [http://www.sublimetext.com/3dev/ ST 3 dev]&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.textasticapp.com/ Textastic]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|Supports Mac OS and iOS versions of Textastic}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.smilesoftware.com/TextExpander/ TextExpander] and [https://www.smilesoftware.com/TextExpander/touch/ TextExpander touch]&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;
| {{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;
| {{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;
| [https://code.visualstudio.com/ Visual Studio Code]&lt;br /&gt;
| {{no}}&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;
&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;
This project is most recently maintained [https://github.com/elnewfie/lslforge here] (and its forks on github). Some information also remains at the original [https://code.google.com/p/lslforge/ google code repository]. There are several notable bugs, including lack of JSON support for which there are patches and no new versions.&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;
* Last updated 5 January 2014&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;
* Plugin link is dead&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;
* LSL file links are dead&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] .) 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;
*LSL Files last updated june 2013&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] .  Very outdated&lt;br /&gt;
*Last update:  19 August 2009&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;
*LSL files last updated in 2009&lt;br /&gt;
&lt;br /&gt;
===UltraEdit-32/UEStudio [{{HoverText|&#039;&#039;C&#039;&#039;|Commercial Software}}]===&lt;br /&gt;
Very outdated&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]] &lt;br /&gt;
* Last updated 28 November 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 is available for OS X, Windows and Linux.&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] &lt;br /&gt;
*Active as of 27 September 2015&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 [https://github.com/etexteditor/e e Editor] is a port of TextMate to Windows, and can use the TextMate LSL bundle listed below.&lt;br /&gt;
&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;
| {{yes}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{no|No since 2.x}}&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;
| {{no}}&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>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LSL_Alternate_Editors&amp;diff=1198727</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=1198727"/>
		<updated>2016-01-04T18:05:32Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: /* Syntax highlighting, autocompletion and snippet files by the Builder&amp;#039;s Brewery: */ changed some values displayed in table to show current state&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;
| rowspan=&amp;quot;19&amp;quot; | [https://github.com/buildersbrewery/linden-scripting-language/ Download files]&lt;br /&gt;
| rowspan=&amp;quot;19&amp;quot; | [https://github.com/buildersbrewery/linden-scripting-language/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.atom.io/ AtomEditor]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{yes}}&lt;br /&gt;
| {{yes, Atom is built on Chrome}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.contexteditor.org/ ConTEXT]&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;
| {{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;
| {{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;
| {{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.highlightjs.org/ Highlight.js]&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.jedit.org/ jEdit]&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;
| {{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;
| {{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;
| {{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.pygments.org/ Pygments]&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.codingmonkeys.de/subethaedit/ SubEthaEdit]&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;
| Sublime Text [http://www.sublimetext.com/2/ ST 2 stable], [http://www.sublimetext.com/dev/ ST 2 dev], [http://www.sublimetext.com/3/ ST 3 stable], [http://www.sublimetext.com/3dev/ ST 3 dev]&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.textasticapp.com/ Textastic]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|Yes (Mac OS and iOS)}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.smilesoftware.com/TextExpander/ TextExpander] and [https://www.smilesoftware.com/TextExpander/touch/ TextExpander touch]&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;
| {{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;
| {{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;
| [https://code.visualstudio.com/ Visual Studio Code]&lt;br /&gt;
| {{no}}&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;
&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;
This project is most recently maintained [https://github.com/elnewfie/lslforge here] (and its forks on github). Some information also remains at the original [https://code.google.com/p/lslforge/ google code repository]. There are several notable bugs, including lack of JSON support for which there are patches and no new versions.&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;
* Last updated 5 January 2014&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;
* Plugin link is dead&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;
* LSL file links are dead&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] .) 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;
*LSL Files last updated june 2013&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] .  Very outdated&lt;br /&gt;
*Last update:  19 August 2009&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;
*LSL files last updated in 2009&lt;br /&gt;
&lt;br /&gt;
===UltraEdit-32/UEStudio [{{HoverText|&#039;&#039;C&#039;&#039;|Commercial Software}}]===&lt;br /&gt;
Very outdated&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]] &lt;br /&gt;
* Last updated 28 November 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 is available for OS X, Windows and Linux.&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] &lt;br /&gt;
*Active as of 27 September 2015&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 [https://github.com/etexteditor/e e Editor] is a port of TextMate to Windows, and can use the TextMate LSL bundle listed below.&lt;br /&gt;
&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;
| {{yes}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{no|No since 2.x}}&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;
| {{no}}&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>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LSL_Alternate_Editors&amp;diff=1196810</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=1196810"/>
		<updated>2015-06-25T20:53:10Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: fix available platforms for atom editor&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;
| rowspan=&amp;quot;19&amp;quot; | [https://github.com/buildersbrewery/linden-scripting-language/ Download files]&lt;br /&gt;
| rowspan=&amp;quot;19&amp;quot; | [https://github.com/buildersbrewery/linden-scripting-language/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.atom.io/ AtomEditor]&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;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.contexteditor.org/ ConTEXT]&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;
| {{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;
| {{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;
| {{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.highlightjs.org/ Highlight.js]&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.jedit.org/ jEdit]&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;
| {{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;
| {{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;
| {{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.pygments.org/ Pygments]&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.codingmonkeys.de/subethaedit/ SubEthaEdit]&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;
| [http://www.sublimetext.com/3dev/ SublimeText 3 dev]&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.textasticapp.com/ Textastic]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|Yes (MacOs and iOS)}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.smilesoftware.com/TextExpander/ TextExpander] and [https://www.smilesoftware.com/TextExpander/touch/ TextExpander touch]&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;
| {{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;
| {{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;
| [https://code.visualstudio.com/ Visual Studio Code]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|Work in progress}}&lt;br /&gt;
| {{yes|Work in progress}}&lt;br /&gt;
| {{yes|Work in progress}}&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;
This project appears abandon at this time. There are several notable bugs, including lack of JSON support for which there are patches and no new versions.&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 [https://github.com/etexteditor/e e Editor] is a port of TextMate to Windows, and can use the TextMate LSL bundle listed below.&lt;br /&gt;
&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;
| {{yes}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{no|No since 2.x}}&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;
| {{no}}&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>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LSL_Alternate_Editors&amp;diff=1196808</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=1196808"/>
		<updated>2015-06-25T06:01:41Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: &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;
| rowspan=&amp;quot;19&amp;quot; | [https://github.com/buildersbrewery/linden-scripting-language/ Download files]&lt;br /&gt;
| rowspan=&amp;quot;19&amp;quot; | [https://github.com/buildersbrewery/linden-scripting-language/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.atom.io/ AtomEditor]&lt;br /&gt;
| {{no}}&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.contexteditor.org/ ConTEXT]&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;
| {{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;
| {{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;
| {{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.highlightjs.org/ Highlight.js]&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.jedit.org/ jEdit]&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;
| {{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;
| {{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;
| {{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.pygments.org/ Pygments]&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.codingmonkeys.de/subethaedit/ SubEthaEdit]&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;
| [http://www.sublimetext.com/3dev/ SublimeText 3 dev]&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.textasticapp.com/ Textastic]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|Yes (MacOs and iOS)}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.smilesoftware.com/TextExpander/ TextExpander] and [https://www.smilesoftware.com/TextExpander/touch/ TextExpander touch]&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;
| {{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;
| {{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;
| [https://code.visualstudio.com/ Visual Studio Code]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|Work in progress}}&lt;br /&gt;
| {{yes|Work in progress}}&lt;br /&gt;
| {{yes|Work in progress}}&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;
This project appears abandon at this time. There are several notable bugs, including lack of JSON support for which there are patches and no new versions.&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 [https://github.com/etexteditor/e e Editor] is a port of TextMate to Windows, and can use the TextMate LSL bundle listed below.&lt;br /&gt;
&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;
| {{yes}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{no|No since 2.x}}&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;
| {{no}}&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>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LSL_Alternate_Editors&amp;diff=1196637</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=1196637"/>
		<updated>2015-05-26T22:44:35Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: /* Syntax highlighting, autocompletion and snippet files by the Builder&amp;#039;s Brewery: */ prepare table for updated list of editors&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;
| rowspan=&amp;quot;14&amp;quot; | [https://github.com/buildersbrewery/linden-scripting-language/ Download files]&lt;br /&gt;
| rowspan=&amp;quot;14&amp;quot; | [https://github.com/buildersbrewery/linden-scripting-language/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;
| {{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;
| {{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;
| {{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;
| {{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;
| {{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;
| {{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;
| {{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;
| {{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;
| {{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;
| {{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;
| {{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;
| {{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;
| {{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;
This project appears abandon at this time. There are several notable bugs, including lack of JSON support for which there are patches and no new versions.&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 [https://github.com/etexteditor/e e Editor] is a port of TextMate to Windows, and can use the TextMate LSL bundle listed below.&lt;br /&gt;
&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;
| {{yes}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{no|No since 2.x}}&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;
| {{no}}&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>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Category_talk:LSL_Broken&amp;diff=1196546</id>
		<title>Category talk:LSL Broken</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Category_talk:LSL_Broken&amp;diff=1196546"/>
		<updated>2015-05-18T19:57:39Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: Created page with &amp;quot;== Should have these, too?! ==  &amp;lt;source lang=&amp;quot;lsl2&amp;quot;&amp;gt; LAND_LARGE_BRUSH LAND_MEDIUM_BRUSH LAND_SMALL_BRUSH &amp;lt;/source&amp;gt;  -- ~~~~&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Should have these, too?! ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lsl2&amp;quot;&amp;gt;&lt;br /&gt;
LAND_LARGE_BRUSH&lt;br /&gt;
LAND_MEDIUM_BRUSH&lt;br /&gt;
LAND_SMALL_BRUSH&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-- &#039;&#039;&#039;[[User:Kireji_Haiku|Kireji Haiku]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Kireji_Haiku|talk]]|[[Special:Contributions/Kireji_Haiku|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 12:57, 18 May 2015 (PDT)&lt;/div&gt;</summary>
		<author><name>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User_talk:Boa_Chau&amp;diff=1196260</id>
		<title>User talk:Boa Chau</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User_talk:Boa_Chau&amp;diff=1196260"/>
		<updated>2015-04-24T13:41:44Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: Added reply&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Tattoo ON/OFF&#039;&#039;&#039;&lt;br /&gt;
Hello, I want to control a tattoo by a HUD, making on/off. Does anyone know a lsl-function doing this? Thank you. Boa&lt;br /&gt;
&lt;br /&gt;
== Tattoo HUD ==&lt;br /&gt;
&lt;br /&gt;
Hi Boa, currently this isn&#039;t possible with the default LL functions. The only way I know of doing this would be by using a modified viewer that has an API to attach and detach clothing via scripts. Ask some people who are familiar with the restrained love viewer how to do this (or whatever that slave toy was called). If you&#039;re planning to sell the HUD, I&#039;d suggest coming up with another solution. Good luck. -- &#039;&#039;&#039;[[User:Kireji_Haiku|Kireji Haiku]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Kireji_Haiku|talk]]|[[Special:Contributions/Kireji_Haiku|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 06:41, 24 April 2015 (PDT)&lt;/div&gt;</summary>
		<author><name>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LSL_Alternate_Editors&amp;diff=1196232</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=1196232"/>
		<updated>2015-04-22T13:52:45Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: /* Syntax highlighting, autocompletion and snippet files by the Builder&amp;#039;s Brewery: */ fixed links&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/linden-scripting-language/ Files for ConTEXT]&lt;br /&gt;
| [https://github.com/buildersbrewery/linden-scripting-language/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/linden-scripting-language/ Files for Emacs]&lt;br /&gt;
| [https://github.com/buildersbrewery/linden-scripting-language/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/linden-scripting-language/ Files for gedit]&lt;br /&gt;
| [https://github.com/buildersbrewery/linden-scripting-language/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/linden-scripting-language/ Files for GeSHi]&lt;br /&gt;
| [https://github.com/buildersbrewery/linden-scripting-language/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/linden-scripting-language/ Files for Atom]&lt;br /&gt;
| [https://github.com/buildersbrewery/linden-scripting-language/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/linden-scripting-language/ Files for jEdit]&lt;br /&gt;
| [https://github.com/buildersbrewery/linden-scripting-language/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/linden-scripting-language/ Files for Kate]&lt;br /&gt;
| [https://github.com/buildersbrewery/linden-scripting-language/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/linden-scripting-language/ Files for Nano]&lt;br /&gt;
| [https://github.com/buildersbrewery/linden-scripting-language/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/linden-scripting-language/ Files for Notepad++]&lt;br /&gt;
| [https://github.com/buildersbrewery/linden-scripting-language/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/linden-scripting-language/ Files for SubEthaEdit]&lt;br /&gt;
| [https://github.com/buildersbrewery/linden-scripting-language/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/linden-scripting-language/ Files for TextExpander and TextExpander touch]&lt;br /&gt;
| [https://github.com/buildersbrewery/linden-scripting-language/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/linden-scripting-language/ Files for UltraEdit]&lt;br /&gt;
| [https://github.com/buildersbrewery/linden-scripting-language/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/linden-scripting-language/ Files for Vim]&lt;br /&gt;
| [https://github.com/buildersbrewery/linden-scripting-language/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 [https://github.com/etexteditor/e e Editor] is a port of TextMate to Windows, and can use the TextMate LSL bundle listed below.&lt;br /&gt;
&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>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User_talk:Omei_Qunhua&amp;diff=1193260</id>
		<title>User talk:Omei Qunhua</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User_talk:Omei_Qunhua&amp;diff=1193260"/>
		<updated>2014-09-10T07:32:45Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An appeal:&lt;br /&gt;
&lt;br /&gt;
When submitting sample scripts (or editing existing samples) PLEASE  ensure you&#039;ve tested the resulting script.&lt;br /&gt;
There can be no excuse for blindly editing and not testing, and certainly no excuse for submitting scripts that won&#039;t even compile!&lt;br /&gt;
[[User:Omei Qunhua|Omei Qunhua]] 09:02, 9 December 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
:I wholeheartedly agree. I have been guilty of the sin but I agree. lslint and lsleditor are our friends. I noticed you mentioned that some edits have been breaking examples. If that happens, please make a note of it somewhere, we need to keep track of this so we can halt any negative trends. -- &#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; 08:34, 14 December 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
::Well if you want to observe a negative trend, the following Wiki pages / examples were all corrupted by the same person :)&lt;br /&gt;
 &amp;lt;pre&amp;gt;&lt;br /&gt;
Wiki Page                 Date Corrupted         Nature of Error&lt;br /&gt;
&lt;br /&gt;
Gun Script                  18-Oct-12            Compile error&lt;br /&gt;
&lt;br /&gt;
llGetAgentList               8-Dec-12            Compile error  &lt;br /&gt;
&lt;br /&gt;
llGetAgentList               9-Dec-12            Run-time bad results &lt;br /&gt;
&lt;br /&gt;
llDialog                    24-Sept-12           Compile error&lt;br /&gt;
&lt;br /&gt;
11SetLinkAlpha              30-Sept-12           Compile error&lt;br /&gt;
&lt;br /&gt;
llGetLinkInventoryPermMask  25-Nov-12            Compile error&lt;br /&gt;
&lt;br /&gt;
llResetOtherScript          24-Sept-12           Run-time error&lt;br /&gt;
&lt;br /&gt;
llGetSimStats                8-Dec-12            Compile error&lt;br /&gt;
&lt;br /&gt;
llRequestURL                24-Sep-12            Compile error&lt;br /&gt;
&lt;br /&gt;
llSetKeyframedMotion        24-Sep-12            Run-time error&lt;br /&gt;
&lt;br /&gt;
llEvade                      4-Dec-12            Compile error&lt;br /&gt;
&lt;br /&gt;
llGetClosestNavPoint         4-Dec-12            Compile error&lt;br /&gt;
&lt;br /&gt;
llGetNotecardLine           23-Sept-12           Run-time bad results&lt;br /&gt;
&lt;br /&gt;
StringIsNum                  7-Oct-12            Compile error&lt;br /&gt;
&lt;br /&gt;
Sensor                      28-Oct-12            Compile error and Run time wrong results&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(I&#039;ve also corrected 4 other non-compilable or faulty example scripts by other editors, where the errors have existed since July 2012, March 2008, and Sept 2007)&lt;br /&gt;
&lt;br /&gt;
[[User:Omei Qunhua|Omei Qunhua]] 15:26, 18 December 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
:I have take a look at all his changeings in the example scripts and do not agree with the most, Everywhere he remove inside the sub-if&#039;s the clamps and resort the events. The most of the experienced scripters do not realy read it, but for beginners i think its bad when they not see where are the clamps necessary and where not. [[User:Daemonika Nightfire|Daemonika Nightfire]] 10:19, 20 December 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
:I disagree with the way you say a script is &amp;quot;faulty&amp;quot;   You do not clearly state your reasoning which is debatable because it&#039;s based on your own personal preference. --[[User:Ackley Bing|Ackley Bing]] 10:12, 14 February 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
::It&#039;s not a matter of &amp;quot;personal preference&amp;quot;. If a script doesn&#039;t compile, or gives wrong results at run-time, then it&#039;s faulty. [[User:Omei Qunhua|Omei Qunhua]] 03:22, 15 February 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
== More size constructs ==&lt;br /&gt;
&lt;br /&gt;
I&#039;ve confirmed your results and made a few more tests of size optimization constructs.&lt;br /&gt;
&lt;br /&gt;
 x=-~x;               6 bytes (equivalent to ++x)&lt;br /&gt;
 x=~-x;               6 bytes (equivalent to --x)&lt;br /&gt;
 y=-~x;               6 bytes (equivalent to y=x+1)&lt;br /&gt;
 if(~x);              7 bytes (equivalent to if(x!=-1))&lt;br /&gt;
 x*2;                 8 bytes (equivalent to x&amp;lt;&amp;lt;1)&lt;br /&gt;
 x=-~-~x;             8 bytes (equivalent to x+=2)&lt;br /&gt;
 x=~-~-x;             8 bytes (equivalent to x-=2)&lt;br /&gt;
 y=x+1;              10 bytes&lt;br /&gt;
 x=x*2;              10 bytes (equivalent to x=x&amp;lt;&amp;lt;1)&lt;br /&gt;
 x*=2;               10 bytes&lt;br /&gt;
 if (!~x);           10 bytes (equivalent to if(x==-1))&lt;br /&gt;
 if(x&amp;amp;0x80000000)    12 bytes (equivalent to if(x&amp;lt;0) for integers)&lt;br /&gt;
 if(x&amp;lt;0);            13 bytes&lt;br /&gt;
 x=x&amp;lt;&amp;lt;1;             14 bytes&lt;br /&gt;
 if(x!=-1);          17 bytes&lt;br /&gt;
&lt;br /&gt;
For float x:&lt;br /&gt;
&lt;br /&gt;
 x=0;                 9 bytes&lt;br /&gt;
 x=0.0;              12 bytes&lt;br /&gt;
&lt;br /&gt;
For vector x:&lt;br /&gt;
&lt;br /&gt;
 x=&amp;lt;0, 0, 0&amp;gt;;        27 bytes&lt;br /&gt;
 x=&amp;lt;0.0, 0.0, 0.0&amp;gt;;  36 bytes&lt;br /&gt;
 x=ZERO_VECTOR;      36 bytes&lt;br /&gt;
&lt;br /&gt;
for list x:&lt;br /&gt;
&lt;br /&gt;
 llGetListLength(x); 40 bytes&lt;br /&gt;
 x!=[];              13 bytes (note: only list LENGTH is compared - actually subtracted. That returns 0 for empty list.)&lt;br /&gt;
 x==[];              13 bytes&lt;br /&gt;
 if(x==[]);          17 bytes&lt;br /&gt;
 if(x!=[]);          17 bytes&lt;br /&gt;
 x!=[&amp;quot;&amp;quot;];            23 bytes (note: only list LENGTH is compared - actually subtracted. That returns -1 for empty list.)&lt;br /&gt;
 x==[&amp;quot;&amp;quot;];            23 bytes (true if x has 1 element)&lt;br /&gt;
 x!=[[]];            23 bytes (list may not contain lists but this is allowed?!?!)&lt;br /&gt;
 x==[[]];            23 bytes&lt;br /&gt;
 if(x==[&amp;quot;&amp;quot;]);        27 bytes&lt;br /&gt;
 x!=[1];             28 bytes (true if x has 1 element)&lt;br /&gt;
 if(x==[&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;]);  47 bytes&lt;br /&gt;
 if(x!=[&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;]);  47 bytes&lt;br /&gt;
 if(llGetListLengt(x)==1);  53 bytes&lt;br /&gt;
 if(llGetListLengt(x)!=1);  56 bytes&lt;br /&gt;
 if(x==[&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;]);      57 bytes&lt;br /&gt;
&lt;br /&gt;
Some of those may be worth being included in [[LSL Hacks]], which I&#039;d say is the place for code size optimization. Your list results are run time size related and thus worth being included as an update to [[LSL Script Memory]]. --[[User:Pedro Oval|Pedro Oval]] 09:35, 29 December 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
:Wow some of those are really interesting. I would venture the reason float zero is so expensive is how it&#039;s being encoded (there are several ways to encode floats in IL). They haven&#039;t optimized the zero case. I&#039;m very surprised that x * 2 is less than x &amp;lt;&amp;lt; 2. -- &#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; 13:28, 29 December 2012 (PST)&lt;br /&gt;
::Well try these for size ...   x+x; 4 bytes,  x=x+x; 6 bytes,  x=x^x; 6 bytes. Food for thought!  [[User:Omei Qunhua|Omei Qunhua]] 06:05, 30 December 2012 (PST)&lt;br /&gt;
:::VERY interesting, thank you!!! --[[User:Pedro Oval|Pedro Oval]] 12:11, 30 December 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some more interesting results (all for LOCAL variables) [WITHDRAWN - SEE BELOW]&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;strike&amp;gt;integer a;           49 bytes&lt;br /&gt;
 integer a=0;         53 bytes&lt;br /&gt;
 string a=&amp;quot;&amp;quot;;         53? 55? bytes (I&#039;m unsure if there&#039;s a preexisting instance of &amp;quot;&amp;quot; or not - my measuring method can&#039;t tell)&lt;br /&gt;
 string a;            53? 55? bytes&lt;br /&gt;
 string a=&amp;quot;a&amp;quot;;        53 bytes plus 2*(num characters+1) per each different string (equal strings are referenced just once)&lt;br /&gt;
 float a=0;           54 bytes&lt;br /&gt;
 list a;              55 bytes&lt;br /&gt;
 list a=[];           55 bytes&lt;br /&gt;
 float a;             57 bytes&lt;br /&gt;
 float a=0.0;         57 bytes&lt;br /&gt;
 key a=&amp;quot;&amp;quot;;            60? 61? 62? bytes (same problem as string)&lt;br /&gt;
 key a=&amp;quot;string&amp;quot;;      60? bytes + 2*(num_characters+1) per each different string&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Braces don&#039;t seem to add anything: &amp;lt;code&amp;gt;{integer a;}&amp;lt;/code&amp;gt; occupies the same size as &amp;lt;code&amp;gt;integer a;&amp;lt;/code&amp;gt; and so on. Since the string case is complex, let me put an example. &amp;lt;code&amp;gt;string a=&amp;quot;aaa&amp;quot;; string b=&amp;quot;aaa&amp;quot;;&amp;lt;/code&amp;gt; will use 53+53+2*(3+1)=114 bytes, because the string is the same in both cases and it&#039;s reused, but &amp;lt;code&amp;gt;string a=&amp;quot;aaa&amp;quot;; string b=&amp;quot;bbb&amp;quot;;&amp;lt;/code&amp;gt; will use 53+53+2*(3+1)+2*(3+1)=122 bytes because the strings are different.&lt;br /&gt;
&lt;br /&gt;
I&#039;m getting inconsistent results with the keys. Something else seems to be going on. I get 61 bytes sometimes and 60 others. Wonder if there&#039;s a byte alignment problem. If so, that could make some of the previous measurements incorrect, even if they looked consistent. --[[User:Pedro Oval|Pedro Oval]] 13:40, 29 December 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
:Using the measurement method you suggested (or perhaps a variation), I have determined that an empty string uses 6 bytes always, while a 1 or 2 character string uses 10 bytes for the first appearance and 6 for the rest, and a 3 or 4 character string uses 14 bytes for the first appearance and 6 for the rest. Further testing suggests that string constants in code are allocated 4 bytes at a time.&lt;br /&gt;
&lt;br /&gt;
:The previous results for local variable declarations can&#039;t be considered reliable. With this measurement method I get many variations for keys and strings: 132 bytes for the first appearance of &amp;lt;code&amp;gt;key x=&amp;quot;&amp;quot;&amp;lt;/code&amp;gt;, 56 for the second, 66 for the third... and also crazy for strings. I just withdraw the results. With integer I also got inconsistencies.: 43 bytes when measured with this method. What seems clear is that there&#039;s one implicit assumption wrong and I don&#039;t know which one or why. I guess a better understanding of CIL would help me interpret those results. Not sure if I&#039;m willing to dive into that though. --[[User:Pedro Oval|Pedro Oval]] 14:44, 1 January 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
== llGetSubString ==&lt;br /&gt;
&lt;br /&gt;
I obviously did not review that edit! wtf were they thinking? Thank you. -- &#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; 23:08, 3 January 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
== UTF-8 ==&lt;br /&gt;
&lt;br /&gt;
UTF-8 characters can be more than 2 bytes, by the original standard, used by LSO, they can by 5 bytes. UTF-8 supported by Mono supports up to 4 bytes per character. -- &#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; 20:31, 14 January 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
::Yes I know. That&#039;s why I quoted an example of a 2-byte UTF-8 when giving 512 as a UTF-8 limit. I didn&#039;t want to go into a full explanation on every page. Just wanted to give some clue that 1024 bytes doesn&#039;t necessarily give 1024 characters (and an opportunity to correct the 1023 to 1024). Maybe a link to a page on UTF-8 would be appropriate. But I think the current UTF-8 page needs overhauling. It starts by saying &amp;quot;SL uses UTF-8 for storing and transmitting strings&amp;quot;  which I think is no longer always true (i.e. storage in Mono) then the UTF-8 page gets hijacked with complex code examples concerning Unicode which maybe appeal to 0.1% of Wiki&#039;s users.  We need to sort the basics out on SO MANY Wiki pages, before leaping into hyperspace. And that&#039;s been the impetus behind my sudden burst of editing activity over 5 weeks. (IMHO, LOL) [[User:Omei Qunhua|Omei Qunhua]] 00:26, 15 January 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
== Wiki editing ==&lt;br /&gt;
&lt;br /&gt;
I&#039;m not sure why you feel the need to insult other editors with every other edit summary but I wish you all the best and merry christmas. Hopefully you can find some time to loosen up during the holidays. Best regards -- [[User:Kireji Haiku|Kireji Haiku]] 14:29, 19 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
::I just stated a fact. If you find that insulting, well ....  &lt;br /&gt;
&lt;br /&gt;
::I don&#039;t understand why you are intent on driving the Wiki further and further from reality. You&#039;re just making it an academic non-practical source of your own personal preferences, at odds with what 99.9% of coders do and I&#039;m sure will continue to do. [[User:Omei Qunhua|Omei Qunhua]] 16:00, 21 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
I personally don&#039;t care either way with PUBLIC_CHANNEL and I didn&#039;t view the edit comments as insulting (the field encourages brevity, which can be mistaken as insult). I don&#039;t use it myself and I doubt many people do but many people don&#039;t use &amp;lt;code&amp;gt;~llSubStringIndex()&amp;lt;/code&amp;gt;, they use &amp;lt;code&amp;gt;llSubStringIndex() != -1&amp;lt;/code&amp;gt; or the new fangled &amp;lt;code&amp;gt;llSubStringIndex() != [[ERR_GENERIC]]&amp;lt;/code&amp;gt;. Just because it&#039;s &amp;quot;ugly&amp;quot; doesn&#039;t make it wrong. So that we don&#039;t fight over these trivialities we should take the viewpoint that if they are already existing in articles we should not change them unless we are replacing the entire line. I&#039;m ok with grammar and punctuation getting corrected but do keep in mind that grammar and punctuation are artificial rules created by man, and these rules can be redefined at anytime as well. What is grammatically incorrect today may be grammatically correct tomorrow, so grammatical correctness isn&#039;t the most important thing. There are however about 600 unloved articles in {{LSLGC|Needs Example}} (I&#039;m amazed it&#039;s only 600 btw). So if you get bored and feel the desire to correct something minor, consider writing an example and spread a little joy to the unloved. -- &#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; 15:15, 19 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
::I feel passionately that PUBLIC_CHANNEL should NOT be promoted in the Wiki - and this is NOT because that is my own personal preference, but it is the established preference of thousands of scripters as demonstrated in millions of scripts in-world and on script libraries. Kireji I am sure feels passionately that PUBLIC_CHANNEL should be promoted - but I venture to suggest that that IS due to his own individual and personal preference. I&#039;ve noticed ERR_GENERIC creeping in, and that again is at odds with practically all actual scripts, although I&#039;m less unhappy about it, in some situations. Sure I love mnemonics like CHANGED_REGION_START as most scripters would. As I say, the Wiki is in danger of becoming an academic tome, divorced from reality. :(  Also, as pointed out before, we tend to have to explain that PUBLIC_CHANNEL means 0, whereas for example one would need to explain that 0x400 means CHANGED_REGION_START. That difference highlights the problem in a nutshell. Oh, and following on from your comments, Strife, the same logic dictates that where llSay(0, ....  etc. exist in Wiki articles, they shouldn&#039;t be routinely changed to PUBLIC_CHANNEL. [[User:Omei Qunhua|Omei Qunhua]] 16:04, 19 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
:::Yes, the logic does, my condemnation is not aimed at any one party. But we have bigger problems. Dryness is one of those problems. The small number of editors is another. I&#039;d say that Examples should be a top priority but I&#039;ve never been able to make it one of mine. I don&#039;t have solutions to these problems. At some point we should have a meeting. My current projects include: parameter/subtype categories and haiku. -- &#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; 21:04, 19 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
::::&amp;quot;unless we are replacing the whole line&amp;quot; - and please, only replace that line if it&#039;s faulty, not just to propagate a personal style. Unfortunately that propagation has been going on for 15 months without anyone commenting until I started squirming a bit and seemed to become the target for criticism (the current condemnatory remarks appear in my own talk page). You say you have no preference, Strife, but your consistent use of llSay(0,  in your own examples  does suggest a preference. There are so many other unnecessary edits that have taken place over the same period, where there has been no corrective aspect.  (float) FALSE is horrid, as are  inserted lines of // { or  // } ... or just adding the //. Awful. By all means, let&#039;s use our favoured styles on our own pages, or in examples that we originate ourselves. Enough. I&#039;ll go look at your list of the 600 unloved ... LOL. (But perhaps all those corrupted examples should be returned to their pristine states ^^). [[User:Omei Qunhua|Omei Qunhua]] 09:19, 20 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
:::::Yeah the (float)FALSE thing... I have trouble seeing a good reason to use it. Oh I can understand that it might uses less bytecode but for the love of monkeys put it in the optimization article. That said, I am guilty of using (integer)&amp;quot;&amp;quot; in the past in code that was highly optimized (for LSO, yes I really did need every byte). Not really keen on whitespace changes either but I don&#039;t have a strong feeling. I wonder if we should considering protecting the diversity of programming styles in the articles. This way it gives the wiki a feel that real people actually wrote the examples and that they weren&#039;t extruded from some hideous creature&#039;s bum. It will be dangerous as it will be hard to define what is good diversity and what is bad content but it should be interesting. -- &#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; 11:30, 20 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
::&amp;quot;What is grammatically incorrect today may be grammatically correct tomorrow&amp;quot; - LOL. So that&#039;s an excuse to write appallingly? No thanks!  But I do think there could be a lot of merit in preserving the programming styles exhibited by example originators, as you suggest. [[User:Omei Qunhua|Omei Qunhua]] 16:00, 21 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
:::Fixed a bug in Constants, fewer articles should be showing up now in {{LSLGC|Needs Example}}. {{LSLGC|FixMe}} if you are wondering is where all the broken articles go. Most are constants in need of descriptions (others are constants in need of syntax examples like you would see on the like [[PRIM_NAME]]). -- &#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; 20:28, 23 December 2013 (PST)&lt;br /&gt;
:::P.S. Yeah it&#039;s a slippery slope and I don&#039;t buy it entirely either.&lt;br /&gt;
&lt;br /&gt;
Further to suggesting that editors try to stick with the coding style used by an article originator, I was going to say that first of all the original writers should abide by an overall style guide agreed for the Wiki, such as [[https://wiki.secondlife.com/w/index.php?title=LSL_Style_Guide&amp;amp;oldid=1181778 StyleGuide]]. Unfortunately I see that that page has been &#039;hijacked&#039; to promote one person&#039;s eccentric views. Proposed changes to the main style guide should FIRST be discussed in the corresponding discussion page. We can&#039;t have one person unilaterally declaring a style without discussion. So ... first we seriously need a &#039;committee&#039; approach to defining an overall style guide. It&#039;s been said elsewhere that contributors are not going to want to rewrite their programs to comply with a Wiki style different to their usual practice. Personally I don&#039;t find that onerous, and I favour a more rigorous insistence on a unified style throughout. [[User:Omei Qunhua|Omei Qunhua]] 04:04, 24 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
: I do not know how I overlooked this but It appears I forgot to codify any syntax guidelines into the [[LSL Portal Guidelines]]. For now I&#039;ll just shove something onto [[LSL_Style_Guide#LSL_Portal_Style]]. Thoughts? -- &#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; 02:19, 25 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
I started tackling some of the &amp;quot;need examples&amp;quot; pages, but quickly felt that adding an example for each individual mnemonic constant was not necessary. Indeed having a separate page for each seems seriously OTT. [[User:Omei Qunhua|Omei Qunhua]] 06:01, 27 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
:Do what you think is best, if it doesn&#039;t really need an example, skip it. I will not deny it was OCD to mandate that every constant have an article, nor that it might be a tiny bit excessive but I will argue with it being Over The Top.&lt;br /&gt;
&lt;br /&gt;
:For some constants there is no benefit to having individual articles. If we were to deny all constant articles, we would end up with all function articles being at best [[llParticleSystem]] and at worst double what [[llSetPrimitiveParams]] (because llSetPrimitiveParams would become even worse). In the beginning I pushed for articles for constants because on the LSL Wiki it was hard to find information about constants. Not only was the information buried in function articles (which had no unifying layout so it could by literally be anywhere in the article), if the constant was used by multiple overlapping functions the information might be out of sync. It made maintaining the content very annoying. Personally I&#039;d rather fill the wiki with stubs and let people flesh them out into articles if they want, than leave them digging and wishing for more. While we could come up with rules o how to decide which constants get articles and which don&#039;t, I don&#039;t think we gain anything by doing so ([[llParticleSystem]] is not one of my articles and I view it as grandfathered).&lt;br /&gt;
&lt;br /&gt;
:Trying to shoe horn information about constants into articles has always been hard and it was especially hard on the LSL Wiki. You might want to add a single sentence of information but to do so might require refactoring a significant amount of the article. Here you can just post the sentence to the dedicated article and not have to worry so much about squeezing it in. -- &#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; 22:08, 27 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
:Again, not sure why you feel the need to undo wiki contributions. Replacing channel 0 with [[PUBLIC_CHANNEL]] does not change the code style. If you strongly believe such edits shouldn&#039;t be done by others, same would go for your edits ... which go the other way around. The reason using constants is to enhance readability, making it easier for beginners. It&#039;s a lot easier to do a find and replace to get rid of [[PUBLIC_CHANNEL]] and to save byte-code than to look up what channel 0 is. Just my two cents. -- [[User:Kireji Haiku|Kireji Haiku]] 06:54, 31 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
::Kireji, YOU are the one undoing Wiki contributions. I am merely agreeing that the original style (I use the word loosely) chosen by contributors should be preserved unless there is a very good reason (basically an error) that needs correction. Your use of PUBLIC_CHANNEL is nothing more than a personal fad, and the Wiki is not the place for such indulgences. [[User:Omei Qunhua|Omei Qunhua]] 07:28, 31 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
:::I understand the point that in certain usage cases where using values instead of constant would have an advantage like when there&#039;s an [[integer]] [[Bit_field]]. However constants were created for reasons. And if you&#039;d know nothing about LSL (but you&#039;ve experienced Second Life and how scripts work) and had &amp;lt;code&amp;gt;llSay(PUBLIC_CHANNEL, &amp;quot;Hello!&amp;quot;);&amp;lt;/code&amp;gt; versus &amp;lt;code&amp;gt;llSay(0, &amp;quot;Hello!&amp;quot;);&amp;lt;/code&amp;gt;, I guess we can both agree that the first is easier to understand effect-wise. Now is there any non-personal arguement you&#039;d want to bring up against this? Or can we move on and keep the use of [[PUBLIC_CHANNEL]] for the simpler example scripts? -- &#039;&#039;&#039;[[User:Kireji_Haiku|Kireji Haiku]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Kireji_Haiku|talk]]|[[Special:Contributions/Kireji_Haiku|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 09:53, 2 May 2014 (PDT)&lt;br /&gt;
&lt;br /&gt;
== PUBLIC_CHANNEL vs Zero ==&lt;br /&gt;
Seeing as this topic hasn&#039;t settled down, it&#039;s time for the larger community to choose. I view their decision (even if it&#039;s Pie) as binding.&lt;br /&gt;
http://www.sluniverse.com/php/vb/scripting/91061-wiki-public_channel-vs-zero.html&lt;br /&gt;
-- &#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; 00:15, 1 January 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
:It isn&#039;t just about PUBLIC_CHANNEL. It is about one individual tampering with hundreds of perfectly valid existing scripts, purely to impose exceptional ideas they originated, regardless of the demonstrated preferences of hundreds of contributors, many of whom are probably no longer here to defend themselves. I thought you and I had agreed, Strife, that edits should not unnecessarily change script examples unless to correct definite errors. So, if I vote in your survey, it will be for zero, but the survey misses the important point. The survey should be &amp;quot;Should one individual be allowed to edit script examples purely to impose personal preferences, and not in order to fix problems?&amp;quot; A Wiki is supposed to be a collaborative project. When one person rampages through it, insisting on their own views on every conceivable page, it ceases to be collaborative. [[User:Omei Qunhua|Omei Qunhua]] 02:19, 1 January 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
::My goal is to start small and work our way up. If this gets things moving in a positive direction, good. If things degrade, the stage is set for the next act. Look at what Void said, we&#039;ve got the community thinking. -- &#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; 23:50, 1 January 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
== llRezAtRoot ==&lt;br /&gt;
&lt;br /&gt;
I think you missed the context, which is &amp;quot;offline building rights&amp;quot;, you can&#039;t be offline and on the land at the same time. -- &#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; 01:42, 4 January 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
:hummm. Well then, what is the correct wording for the note that effectively says &amp;quot;To have offline building rights, you need to allow everyone to build&amp;quot; ? And &amp;quot;Be&amp;quot; doesn&#039;t necessarily have to apply to an avatar, it can apply to the script doing the rezzing. No? [[User:Omei Qunhua|Omei Qunhua]] 03:46, 4 January 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
::Ahhh. I see my issue. I focused on the wrong part. It&#039;s still screwed up. I&#039;ll fix it. -- &#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; 21:07, 4 January 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
:That does look better. But i still don&#039;t fully understand (excuse me for being a bit thick). Why do I need OFFLINE building rights to run a script with llRezAtRoot?  Only if I&#039;m actually offline surely. Not while I&#039;m scripting and testing while online? [[User:Omei Qunhua|Omei Qunhua]] 08:27, 5 January 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
::I can&#039;t think of a situation where you would have build rights online and not offline but there may be one. There may be a gray goo restriction. -- &#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; 11:16, 5 January 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
:Oh dear :(  Then what is the significance of calling it &amp;quot;offline&amp;quot;? I had started to think this related to the observed situation where a script of mine can&#039;t rezz a prim unless I&#039;m online. If there&#039;s no difference between online and offline building rights, then just call it building rights, as it is usually known. No? [[User:Omei Qunhua|Omei Qunhua]] 11:54, 5 January 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
Thank you. Yes, English is not my native language. I know about my ortographic problems, but I don&#039;t know how to activate a corrector or something similar. How do I make errors to be highlighted? Please tell me, that will be a great help.&lt;br /&gt;
&lt;br /&gt;
--[[User:Anaimfinity Resident|Rays of green light. Bright and proud to be a Circassian]] 10:44, 3 February 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
== Memory Module ==&lt;br /&gt;
I&#039;m afraid your characterization of sim and viewer events as &#039;rare&#039; is inaccurate. It happens to thousands on a daily basis. Not to mention, the statement &amp;quot;such an event is likely to be more catastrophic than just the loss of variables would imply, it may not be worth trying guard against it.&amp;quot; is extremely misleading, bad practice, and really amounts to nothing more than an opinion. Script state rollbacks are not catastrophic. They only result in a lack of data.  Data which could be safeguarded against with the techniques described on the page. They certainly aren&#039;t the *only* way such safeguards can be implemented, but they are a valid way. If you think you know a better way, it would be more constructive to make a page about that, instead of vandalizing someone else&#039;s page.&lt;br /&gt;
&lt;br /&gt;
I had many problems with your original statements, but I had enough respect for you that I did not change any of your wording. I only added on balance. I expect the same respect from you. But if you touch it again, Gloves off.&lt;br /&gt;
&lt;br /&gt;
{{Unsigned|Darien Caldwell|2014-02-05 13:30:31 SLT}}&lt;br /&gt;
&lt;br /&gt;
::Please yourself. Care to sign your remarks here? And I certainly have problems with your wild assertions. You cannot possibly say categorically that &amp;quot;Script state rollbacks are not catastrophic.&amp;quot; That&#039;s just ridiculous. &amp;quot;vandalizing someone else&#039;s page.&amp;quot; A trifle over emotive? If you look at the page before I added the &amp;quot;tip&amp;quot; you&#039;ll see that seriously wrong impressions were given, i.e. that globals would always get reset on rezzing / logout-in. That needed addressing.  &amp;quot;It happens to thousands on a daily basis. &amp;quot;  That again sounds rather wild. Care to substantiate that? Fortunately never to me, nor to my clients that they have queried with me. [[User:Omei Qunhua|Omei Qunhua]] 15:54, 5 February 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
== re my script you corrected ==&lt;br /&gt;
&lt;br /&gt;
I use scripts in that user space for teaching purposes.  Thank you for posting the answers to what I expect the students to do to it in  my user space, however I am taking that down so when I teach next week the page is waiting for them to fix it.  Sorry if you misunderstood the use of teaching scripts in personal user space.  [[User:Toady Nakamura|Toady Nakamura]] 14:14, 11 March 2014 (PDT)&lt;br /&gt;
&lt;br /&gt;
::Could you point me to what you mean by &amp;quot;that user space&amp;quot;, Toady? I would be most most surprised if I&#039;ve edited any example within personal user space, as I&#039;ve always taken great care not to do that on the Wiki. Your recent edits don&#039;t seem to be involved in undoing any edit of mine. Thanks. [[User:Omei Qunhua|Omei Qunhua]] 08:30, 12 March 2014 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Checking that a Notecard exists in object inventory  ==&lt;br /&gt;
&lt;br /&gt;
What if the notecard isn&#039;t full perms, will llGetInventoryKey return a non-null value? -- &#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; 20:19, 1 May 2014 (PDT)&lt;br /&gt;
&lt;br /&gt;
::Hummm, no, a no-mod NC returns a null key. So what is the best way of guarding against a never-saved nc? [[User:Omei Qunhua|Omei Qunhua]] 02:29, 2 May 2014 (PDT)&lt;br /&gt;
&lt;br /&gt;
:::An asset is not created until a notecard is saved. -- &#039;&#039;&#039;[[User:Kireji_Haiku|Kireji Haiku]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Kireji_Haiku|talk]]|[[Special:Contributions/Kireji_Haiku|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 09:53, 2 May 2014 (PDT)&lt;br /&gt;
&lt;br /&gt;
::LOL [[User:Omei Qunhua|Omei Qunhua]] 10:12, 2 May 2014 (PDT)&lt;br /&gt;
&lt;br /&gt;
== ERR_GENERIC ==&lt;br /&gt;
&lt;br /&gt;
Thanks for going through and cleaning that up. It fell off my todo list. -- &#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; 17:38, 9 September 2014 (PDT)&lt;br /&gt;
&lt;br /&gt;
:Applying the same kind of logic to channel &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; having to be explained as being [[PUBLIC_CHANNEL]] would make sense, too. But of course, you can&#039;t acknowledge that and I&#039;m not going to edit stuff again to fix your rage. Cheers. -- &#039;&#039;&#039;[[User:Kireji_Haiku|Kireji Haiku]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Kireji_Haiku|talk]]|[[Special:Contributions/Kireji_Haiku|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 00:32, 10 September 2014 (PDT)&lt;/div&gt;</summary>
		<author><name>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User_talk:Oz_Linden&amp;diff=1193173</id>
		<title>User talk:Oz Linden</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User_talk:Oz_Linden&amp;diff=1193173"/>
		<updated>2014-09-03T19:17:31Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: /* Twitter widget */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==[[Project:Contribution Agreement]]==&lt;br /&gt;
Hello Oz,&amp;lt;br&amp;gt;&lt;br /&gt;
I noticed that you moved [[Project:Contribution Agreement]] to [[LLO:Contribution Agreement]] and that you [https://wiki.secondlife.com/w/index.php?title=Linden_Lab_Official%3AContribution_Agreement&amp;amp;diff=1104282&amp;amp;oldid=413443 changed the wording to fit the SL Viewer project]. I think that you&#039;re mistaken about the original intention of the page, as it isn&#039;t (or wasn&#039;t) related to the SL Viewer, but to the SL Wiki. The &amp;quot;Project&amp;quot; namespace is a meta namespace that&#039;s supposed to contain Wiki-rules / guidelines. When you edit any page in the Wiki, the following text is displayed by default above the &#039;&#039;summary&#039;&#039; field and the save/preview buttons:&lt;br /&gt;
{{Quotation|All content submitted to Second Life Wiki is contributed to Linden Lab under the Second Life Wiki Contribution Agreement (see [[Project:Contribution Agreement]] for details). Linden Lab will make your contribution available under the Creative Commons Creative Commons Attribution-Share Alike 3.0 license (see [[Project:Copyrights]] for details). If you don&#039;t want your writing to be edited mercilessly and redistributed at will, then don&#039;t submit it here.&lt;br /&gt;
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. &#039;&#039;&#039;DO NOT SUBMIT COPYRIGHTED WORK WITHOUT PERMISSION!&#039;&#039;&#039;}}&lt;br /&gt;
With your change, this message isn&#039;t correct anymore. I think you should either revert your change, or adjust the text shown above. You can access it at [[MediaWiki:Copyrightwarning]]. You&#039;d also have to change it at other spots, like [[Project:Terms of Use]], [[Project:Editing Guidelines]], etc.&amp;lt;br&amp;gt;&lt;br /&gt;
See [[Special:WhatLinksHere/Project:Contribution Agreement]] for a list of potentially affected pages.&amp;lt;br&amp;gt;&lt;br /&gt;
Cheers,&amp;lt;br&amp;gt; --[[File:Zai_signature.png|45px|link=User:Zai Lynch]] &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Zai Lynch|talk]]|[[Special:Contributions/Zai Lynch|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 02:00, 12 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
There is more on the wiki then just viewer documentation. Several SL communities use it to help organize, coordinate and document themselves; not just the viewer. This feels a bit like a rescoping of the wiki; that it isn&#039;t to be used for anything that doesn&#039;t pertain directly to the viewer. It makes me uncomfortable. -- &#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; 06:32, 12 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Thank you both for your comments... what you saw was a transitional condition.  As you&#039;ll see now, we&#039;ve replaced that page with one that is more appropriate.&lt;br /&gt;
- Oz&lt;br /&gt;
&lt;br /&gt;
:Hi Oz,&lt;br /&gt;
:I&#039;m not sure if you realize that, by replacing the CA with the [[Project:Terms of Use|Terms of Use]], you just changed the licensing for all upcoming contributions to this Wiki... Rob created the Contribution Agreement in order to do the same as with the Viewer: To allow LL to gain shared ownership in the contributions so they can re-license and re-use them at will. As of today (in case the changes stick), all upcoming contributions to this Wiki are just CC BY-SA 3.0. No shared ownership anymore. I welcome that change, as the shared ownership made it hard to import most other content without violating copyright... In case it was intentional, then I applaud it. :)&lt;br /&gt;
:OK, enough smart-alecing. Going back under my rock now.&lt;br /&gt;
:Cheers, --[[File:Zai_signature.png|45px|link=User:Zai Lynch]] &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Zai Lynch|talk]]|[[Special:Contributions/Zai Lynch|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 18:49, 12 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Third Party Icons ==&lt;br /&gt;
&lt;br /&gt;
Since LL doesn&#039;t own the icons, should they really be Protecting them? Can LL even legally upload them, is the CC compatible with the GPL or does the Contributer Agreement cover this? Just thinking aloud. -- &#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; 06:29, 21 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Those icons are provided to us by the authors for this express purpose.  They are protected so that ordinary wiki users cannot change them and so change the Third Party Viewer Directory.  There is a process for the viewer author to provide an updated icon should they wish to use them. &#039;&#039;&#039;- Oz&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
::I probably could have found that out if I hadn&#039;t flow off the handle and instead done some research. I assumed ill and I&#039;m sorry. I&#039;m glad that this was all well thought out. Thank you for taking the time to answer. -- &#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; 23:38, 21 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== llemployee, email, tweeter templates ==&lt;br /&gt;
&lt;br /&gt;
Hi Oz, I added an (empty) llemployee template to the bottom of your user page. Hope that&#039;s fine. &lt;br /&gt;
&lt;br /&gt;
You may also want to consider this template for inclusion:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; {{#widget:Email|email=&amp;quot;oz@lindenlab.com&amp;quot;}} &amp;lt;/nowiki&amp;gt; &lt;br /&gt;
which produces:&lt;br /&gt;
&amp;lt;BR&amp;gt; {{#widget:Email|email=&amp;quot;oz@lindenlab.com&amp;quot;}}&lt;br /&gt;
&lt;br /&gt;
With regard to Twitter, some LL employees added themselves to [[Linden_Lab_Official:Twitter]], while other just used the &amp;lt;nowiki&amp;gt; {{tweeter}} &amp;lt;/nowiki&amp;gt;template, and others manually added something like this:&lt;br /&gt;
 Can be found [http://twitter.com/OzLinden on twitter].&lt;br /&gt;
--[[User:Opensource Obscure|oobscure]] 01:59, 29 April 2011 (PDT)&lt;br /&gt;
&lt;br /&gt;
:Then the spammers just need to glean the [https://wiki.secondlife.com/w/index.php?title=User_talk:Oz_Linden&amp;amp;action=raw raw&#039;s] to get the email address. -- &#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; 11:31, 22 July 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Beta/* articles need update ==&lt;br /&gt;
&lt;br /&gt;
The [[Beta/BlueSteel]], [[Beta/LeTigre]], [[Beta/Magnum]] all need to be updated so they include 2012 release notes. It&#039;s a 10 sec fix for each but they are all protected ~_~ so I have to poke someone else to do it. -- &#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; 11:21, 20 January 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
== [[Havok_Viewer_Sublicense|HVsL]] ==&lt;br /&gt;
&lt;br /&gt;
Maybe move the HVsL into the &amp;quot;Linden Lab Official&amp;quot; namespace? &amp;lt;span style=&amp;quot;font-size:50%;&amp;quot;&amp;gt;6 months seems a bit long for a first offense -_-&#039;&amp;lt;/span&amp;gt; -- &#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; 11:24, 22 July 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
There should not be any need to put something like that in a protected namespace; it is completely clear that page is a communication regarding our programs and policies, and the change contributed absolutely nothing to anyones understanding (especially since it was absolutely false).  As for the duration... those who want to tear down what we are trying to build here in the open source community will find that I am going to be increasingly intolerant of incivility and destructiveness. [[User:Oz Linden|Oz Linden]]&lt;br /&gt;
&lt;br /&gt;
== Thank You ==&lt;br /&gt;
&lt;br /&gt;
=)&amp;lt;br/&amp;gt;-- &#039;&#039;&#039;[[User:Void_Singer|Void]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User_talk:Void_Singer|talk]]|[[Special:Contributions/Void_Singer|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 23:21, 25 July 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
Thank you. -- &#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; 23:43, 25 July 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
== {{JIRA|BUG-2708}}: ==&lt;br /&gt;
Hi, I&#039;ve been trying to [[User_talk:Torley_Linden|talk to Torley ages ago]] and to [[User_talk:Jeremy_Linden|talk to Jeremy for a very, very long time]] about {{Jira|BUG-2708|BUG-2708: Issues with the syntax-highlighting}} on the wiki and in the viewer. I&#039;ve got a [https://github.com/buildersbrewery/lsl-for-geshi file on github] updating it for the wiki. Could you do me and anybody else looking up LSL code on the wiki a huge favor and upload the file I linked to the wiki for us? I got your name from [[:Project:About]] where it says Jeremy and you are in charge here for the wiki. -- [[User:Kireji Haiku|Kireji Haiku]] 10:31, 8 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Twitter widget ==&lt;br /&gt;
&lt;br /&gt;
Hello Oz,&lt;br /&gt;
this wiki supports [[Widget:Twitter]], but the template doesn&#039;t work ([http://www.mediawikiwidgets.org/Twitter instructions]). Since we have an old version here, is it possible to upgrade? Thank you!--[[User:Joseph MacAlpine|Joseph MacAlpine]] 03:08, 29 August 2014 (PDT)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;We are working on an upgrade of the mediawiki software; once that is done, I&#039;ll ask about this. -- Oz&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:DID SOMEONE SAY UPGRADE?! *breaks out the champagne* -- &#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; 11:37, 3 September 2014 (PDT)&lt;br /&gt;
&lt;br /&gt;
::Oh, nice! &#039;&#039;&#039;[[User:Kireji_Haiku|Kireji Haiku]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Kireji_Haiku|talk]]|[[Special:Contributions/Kireji_Haiku|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 12:17, 3 September 2014 (PDT)&lt;/div&gt;</summary>
		<author><name>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User_talk:Toady_Nakamura&amp;diff=1193166</id>
		<title>User talk:Toady Nakamura</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User_talk:Toady_Nakamura&amp;diff=1193166"/>
		<updated>2014-09-02T08:02:26Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Leave me a message !!! [[User:Toady Nakamura|Toady Nakamura]] 23:44, 5 July 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
//Counts down from 5 to 1, then can do something else&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        integer count = 5;&lt;br /&gt;
        do&lt;br /&gt;
        {&lt;br /&gt;
&lt;br /&gt;
            llSay(0, (string)count);&lt;br /&gt;
&lt;br /&gt;
        //  wait a sec&lt;br /&gt;
            llSleep(1.0);&lt;br /&gt;
        }&lt;br /&gt;
        while (--index);&lt;br /&gt;
 &lt;br /&gt;
        llWhisper(0, &amp;quot;I am done counting now.&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Debug error ==&lt;br /&gt;
&lt;br /&gt;
Um I am sorry if I am going about this the wrong way but from what I can tell this was the only way to talk on the wiki and I had a question about the LSL 101 Logic page, the example script in particular, I copied it(sort of, I actually typed it out because of the note at the bottom) in the LSLEditor community edition and ran the debug... thing, and got the error &amp;quot;Field &#039;n&#039; is never assigned to, and will always have its default value&amp;quot; &lt;br /&gt;
&lt;br /&gt;
I was wondering if this was an actual issue, and I wonder this because I have no actual coding knowledge. I apologize profusely if I have the wrong person or posted this where I shouldn&#039;t have. If you would like to see how it came out exactly I will of course provide what was written.&lt;br /&gt;
&lt;br /&gt;
--[[User:Rohise Resident|Rohise Resident]] 22:56, 9 October 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Variable names ==&lt;br /&gt;
Greetings, I rewrote your example script on [[User:Toady_Nakamura/Simple_Recording_Tipjar]]. For sake of readability, please use variable names that actually mean something amd not i, m, n and what not. Your doing yourself a favor by doing so! -- [[User:Kireji Haiku|Kireji Haiku]] 11:18, 19 October 2012 (PDT)&lt;br /&gt;
:I replied on your talk page, as is customary. You did not reply and you wiped out my reply to you. [[User:Toady Nakamura|Toady Nakamura]] 10:07, 4 November 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
== Regarding your question about lists in LSL on [[User_talk:Strife Onizuka]] &#039;s page: ==&lt;br /&gt;
&lt;br /&gt;
Please read [[User:Kireji_Haiku/How_to_deal_with_lists_in_LSL|this intro of how to iterate over a list in LSL]]. Hope it helps, kind regards. -- [[User:Kireji Haiku|Kireji Haiku]] 12:40, 5 November 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
== Your simple listen script ==&lt;br /&gt;
&lt;br /&gt;
You do say at the top of your talk page &amp;quot;Leave me a message !!!&amp;quot; ... so I am :)&lt;br /&gt;
&lt;br /&gt;
I couldn&#039;t resist commenting on your recently posted script. Easiest is if I post the script here with my comments inserted (enclosed within **   **)&lt;br /&gt;
&lt;br /&gt;
(content omitted)&lt;br /&gt;
[[User:Omei Qunhua|Omei Qunhua]] 01:38, 29 January 2014 (PST)&lt;br /&gt;
:Thank you for your comments, you corrected a script I expect my students to correct in class so I have removed your corrections here so they don&#039;t cheat and just use yours.  [[User:Toady Nakamura|Toady Nakamura]] 14:16, 11 March 2014 (PDT)&lt;br /&gt;
&lt;br /&gt;
== [[User:Toady_Nakamura/Give_Anything]]: ==&lt;br /&gt;
&lt;br /&gt;
Try this instead?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
vector floattext_color = &amp;lt; 1.0, 1.0, 1.0&amp;gt;;&lt;br /&gt;
string floattext_text  = &amp;quot;Put your floating message here.&amp;quot;;&lt;br /&gt;
string foldername      = &amp;quot;Put the name of the folder they will get here.&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
list contents;&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    changed(integer change)&lt;br /&gt;
    {&lt;br /&gt;
        if (change &amp;amp; (CHANGED_OWNER | CHANGED_INVENTORY))&lt;br /&gt;
            llResetScript();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llSetText(floattext_text, floattext_color, 1.0);&lt;br /&gt;
&lt;br /&gt;
        integer c = llGetInventoryNumber(INVENTORY_ALL);&lt;br /&gt;
        integer i = 0;&lt;br /&gt;
&lt;br /&gt;
//      for-loops below have the same effect in this particular example&lt;br /&gt;
&lt;br /&gt;
//      for (; i &amp;lt; c; i += 1) ...;&lt;br /&gt;
//      for (; i &amp;lt; c; i++)    ...;&lt;br /&gt;
//      for (; i &amp;lt; c; ++i)    ...;&lt;br /&gt;
&lt;br /&gt;
        for (i = 0; i &amp;lt; c; i = i + 1)&lt;br /&gt;
        {&lt;br /&gt;
            string  n = llGetInventoryName(INVENTORY_ALL, i);&lt;br /&gt;
            integer t = llGetInventoryType(n);&lt;br /&gt;
&lt;br /&gt;
//          if you include INVENTORY_SCRIPT below, you need to&lt;br /&gt;
//          check against if (n != llGetScriptName()) as well to not give away this script&lt;br /&gt;
&lt;br /&gt;
            if (t &amp;amp; (INVENTORY_LANDMARK | INVENTORY_NOTECARD | INVENTORY_OBJECT))&lt;br /&gt;
                contents += n;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    touch_start(integer num_detected)&lt;br /&gt;
    {&lt;br /&gt;
        key    avatarKey   = llDetectedKey(0);&lt;br /&gt;
        string avatarName = llDetectedName(0);&lt;br /&gt;
&lt;br /&gt;
        if (llGetListLength(contents))&lt;br /&gt;
            llGiveInventoryList(avatarKey, foldername, contents);&lt;br /&gt;
&lt;br /&gt;
        llOwnerSay(avatarName + &amp;quot; got supplies.&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cheers! &#039;&#039;&#039;[[User:Kireji_Haiku|Kireji Haiku]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Kireji_Haiku|talk]]|[[Special:Contributions/Kireji_Haiku|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 01:02, 2 September 2014 (PDT)&lt;/div&gt;</summary>
		<author><name>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Kireji_Haiku/How_to_deal_with_lists_in_LSL&amp;diff=1192502</id>
		<title>User:Kireji Haiku/How to deal with lists in LSL</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Kireji_Haiku/How_to_deal_with_lists_in_LSL&amp;diff=1192502"/>
		<updated>2014-08-04T12:23:11Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;NOTE: Firstly look to see if there is a [[:Category:LSL_Functions|built-in function]] available to process your list the way you wish. This will always be faster than coding your own loops.&lt;br /&gt;
e.g. [[llListFindList]](), [[llListStatistics]]()&lt;br /&gt;
&lt;br /&gt;
This page is more about different ways to code loops, rather than about processing lists.&lt;br /&gt;
&lt;br /&gt;
==How to deal with lists in the Linden Scripting Language:==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==the basics==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
Usual [[List]] with 10 items:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
list listOfTenItems = [&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;c&amp;quot;, &amp;quot;d&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;f&amp;quot;, &amp;quot;g&amp;quot;, &amp;quot;h&amp;quot;, &amp;quot;i&amp;quot;, &amp;quot;j&amp;quot;];&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then start with a [[for]]-loop:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
list listOfTenItems = [&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;c&amp;quot;, &amp;quot;d&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;f&amp;quot;, &amp;quot;g&amp;quot;, &amp;quot;h&amp;quot;, &amp;quot;i&amp;quot;, &amp;quot;j&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
integer index = 0;&lt;br /&gt;
for (index = 0;index &amp;lt; llGetListLength(listOfTenItems);index++)&lt;br /&gt;
{&lt;br /&gt;
    //do something&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resetting the value to 0 for index was redundant so we can skip that:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
list listOfTenItems = [&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;c&amp;quot;, &amp;quot;d&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;f&amp;quot;, &amp;quot;g&amp;quot;, &amp;quot;h&amp;quot;, &amp;quot;i&amp;quot;, &amp;quot;j&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
integer index = 0;&lt;br /&gt;
for (;index &amp;lt; llGetListLength(listOfTenItems);index++)&lt;br /&gt;
{&lt;br /&gt;
    //do something&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Setting the default value to 0 is redundant, too, since LSL initializes [[Integer|integers]] as 0. Keep in mind that other languages may not do this.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
list listOfTenItems = [&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;c&amp;quot;, &amp;quot;d&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;f&amp;quot;, &amp;quot;g&amp;quot;, &amp;quot;h&amp;quot;, &amp;quot;i&amp;quot;, &amp;quot;j&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
integer index;&lt;br /&gt;
for (;index &amp;lt; llGetListLength(listOfTenItems);index++)&lt;br /&gt;
{&lt;br /&gt;
    //do something&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Calculating the list length every step is redundant too because the length doesn&#039;t change - at least in the example demonstrated here.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
list listOfTenItems = [&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;c&amp;quot;, &amp;quot;d&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;f&amp;quot;, &amp;quot;g&amp;quot;, &amp;quot;h&amp;quot;, &amp;quot;i&amp;quot;, &amp;quot;j&amp;quot;];&lt;br /&gt;
integer lengthOfList = llGetListLength(listOfTenItems);&lt;br /&gt;
&lt;br /&gt;
integer index;&lt;br /&gt;
for (;index &amp;lt; lengthOfList;index++)&lt;br /&gt;
{&lt;br /&gt;
    //do something&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==slightly more advanced now==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
Now the index for items in a list of ten is either:&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; {{Prettytable}}&lt;br /&gt;
|- {{Hl2}}&lt;br /&gt;
! &#039;&#039;&#039;plain English&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;using positive indices&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;using negative indices&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
||first item of a list of ten&lt;br /&gt;
||0&lt;br /&gt;
||-10&lt;br /&gt;
|-&lt;br /&gt;
||second item of a list of ten&lt;br /&gt;
||1&lt;br /&gt;
||-9&lt;br /&gt;
|-&lt;br /&gt;
||third item of a list of ten&lt;br /&gt;
||2&lt;br /&gt;
||-8&lt;br /&gt;
|-&lt;br /&gt;
||fourth item of a list of ten&lt;br /&gt;
||3&lt;br /&gt;
||-7&lt;br /&gt;
|-&lt;br /&gt;
||fifth item of a list of ten&lt;br /&gt;
||4&lt;br /&gt;
||-6&lt;br /&gt;
|-&lt;br /&gt;
||sixth item of a list of ten&lt;br /&gt;
||5&lt;br /&gt;
||-5&lt;br /&gt;
|-&lt;br /&gt;
||seventh item of a list of ten&lt;br /&gt;
||6&lt;br /&gt;
||-4&lt;br /&gt;
|-&lt;br /&gt;
||eight item of a list of ten&lt;br /&gt;
||7&lt;br /&gt;
||-3&lt;br /&gt;
|-&lt;br /&gt;
||ninth item of a list of ten&lt;br /&gt;
||8&lt;br /&gt;
||-2&lt;br /&gt;
|-&lt;br /&gt;
||tenth item of a list of ten&lt;br /&gt;
||9&lt;br /&gt;
||-1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
While ++index is fractionally faster than index++ in LSO, using the preferred Mono VM, there is no timing difference. See [[LSL_Hacks]] for more details.&lt;br /&gt;
&lt;br /&gt;
We could start with -11 and increment first before doing something, instead of the other way around before... as long as the index stays negative. We can write:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; width=&amp;quot;100%&amp;quot; {{Prettytable}}&lt;br /&gt;
|- {{Hl2}}&lt;br /&gt;
! &#039;&#039;&#039;if indexes can be negative&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;if indexes can NOT be negative&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
||&amp;lt;lsl&amp;gt;&lt;br /&gt;
list listOfTenItems = [&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;c&amp;quot;, &amp;quot;d&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;f&amp;quot;, &amp;quot;g&amp;quot;, &amp;quot;h&amp;quot;, &amp;quot;i&amp;quot;, &amp;quot;j&amp;quot;];&lt;br /&gt;
integer lengthOfList = llGetListLength(listOfTenItems);&lt;br /&gt;
&lt;br /&gt;
integer index = -lengthOfList - 1;&lt;br /&gt;
for (;index &amp;lt; 0;++index)&lt;br /&gt;
{&lt;br /&gt;
    //do something&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
list listOfTenItems = [&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;c&amp;quot;, &amp;quot;d&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;f&amp;quot;, &amp;quot;g&amp;quot;, &amp;quot;h&amp;quot;, &amp;quot;i&amp;quot;, &amp;quot;j&amp;quot;];&lt;br /&gt;
integer lengthOfList = llGetListLength(listOfTenItems);&lt;br /&gt;
&lt;br /&gt;
integer index;                      //  pay attention here! index is 0 before loop starts and&lt;br /&gt;
for (;index &amp;lt; lengthOfList;++index) //  doesn&#039;t get incremented until JUST before the second round&lt;br /&gt;
{&lt;br /&gt;
    //do something&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Now trying to simplify the math for calculating the index default value we can make use of the [[LSL_Operators]] and initialize with &#039;&#039;&#039;bitwise-NOT of the length&#039;&#039;&#039; which is the same as &amp;lt;code&amp;gt;-1*length - 1&amp;lt;/code&amp;gt; or the negative length minus one:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; width=&amp;quot;100%&amp;quot; {{Prettytable}}&lt;br /&gt;
|- {{Hl2}}&lt;br /&gt;
! &#039;&#039;&#039;if indexes can be negative&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;if indexes can NOT be negative&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
||&amp;lt;lsl&amp;gt;&lt;br /&gt;
list listOfTenItems = [&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;c&amp;quot;, &amp;quot;d&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;f&amp;quot;, &amp;quot;g&amp;quot;, &amp;quot;h&amp;quot;, &amp;quot;i&amp;quot;, &amp;quot;j&amp;quot;];&lt;br /&gt;
integer lengthOfList = llGetListLength(listOfTenItems);&lt;br /&gt;
&lt;br /&gt;
//  it&#039;s bitwise-NOT (~) instead of minus (-)&lt;br /&gt;
integer index = ~lengthOfList;&lt;br /&gt;
for (;index &amp;lt; 0;++index)&lt;br /&gt;
{&lt;br /&gt;
    //do something&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
list listOfTenItems = [&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;c&amp;quot;, &amp;quot;d&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;f&amp;quot;, &amp;quot;g&amp;quot;, &amp;quot;h&amp;quot;, &amp;quot;i&amp;quot;, &amp;quot;j&amp;quot;];&lt;br /&gt;
integer lengthOfList = llGetListLength(listOfTenItems);&lt;br /&gt;
&lt;br /&gt;
integer index;                      //  pay attention here! index is 0 before loop starts and&lt;br /&gt;
for (;index &amp;lt; lengthOfList;++index) //  doesn&#039;t get incremented until JUST before the second round&lt;br /&gt;
{&lt;br /&gt;
    //do something&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
as you might have seen by now, we can merge two lines in the middle:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; width=&amp;quot;100%&amp;quot; {{Prettytable}}&lt;br /&gt;
|- {{Hl2}}&lt;br /&gt;
! &#039;&#039;&#039;if indexes can be negative&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;if indexes can NOT be negative&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
||&amp;lt;lsl&amp;gt;&lt;br /&gt;
list listOfTenItems = [&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;c&amp;quot;, &amp;quot;d&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;f&amp;quot;, &amp;quot;g&amp;quot;, &amp;quot;h&amp;quot;, &amp;quot;i&amp;quot;, &amp;quot;j&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
//  it&#039;s bitwise-NOT (~) instead of minus (-)&lt;br /&gt;
integer index = ~llGetListLength(listOfTenItems);&lt;br /&gt;
for (;index &amp;lt; 0;++index)&lt;br /&gt;
{&lt;br /&gt;
    //do something&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
list listOfTenItems = [&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;c&amp;quot;, &amp;quot;d&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;f&amp;quot;, &amp;quot;g&amp;quot;, &amp;quot;h&amp;quot;, &amp;quot;i&amp;quot;, &amp;quot;j&amp;quot;];&lt;br /&gt;
integer lengthOfList = llGetListLength(listOfTenItems);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
integer index;                      //  pay attention here! index is 0 before loop starts and&lt;br /&gt;
for (;index &amp;lt; lengthOfList;++index) //  doesn&#039;t get incremented until JUST before the second round&lt;br /&gt;
{&lt;br /&gt;
    //do something&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
and because index should have a negative value while looping and the loop stops when index reaches zero, we can change the code to:&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; width=&amp;quot;100%&amp;quot; {{Prettytable}}&lt;br /&gt;
|- {{Hl2}}&lt;br /&gt;
! &#039;&#039;&#039;if indexes can be negative&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;if indexes can NOT be negative&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
||&amp;lt;lsl&amp;gt;&lt;br /&gt;
list listOfTenItems = [&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;c&amp;quot;, &amp;quot;d&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;f&amp;quot;, &amp;quot;g&amp;quot;, &amp;quot;h&amp;quot;, &amp;quot;i&amp;quot;, &amp;quot;j&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
//  it&#039;s bitwise-NOT (~) instead of minus (-)&lt;br /&gt;
integer index = ~llGetListLength(listOfTenItems);&lt;br /&gt;
for (;index;++index)&lt;br /&gt;
{&lt;br /&gt;
    //do something&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
list listOfTenItems = [&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;c&amp;quot;, &amp;quot;d&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;f&amp;quot;, &amp;quot;g&amp;quot;, &amp;quot;h&amp;quot;, &amp;quot;i&amp;quot;, &amp;quot;j&amp;quot;];&lt;br /&gt;
integer lengthOfList = llGetListLength(listOfTenItems);&lt;br /&gt;
&lt;br /&gt;
integer index;                      //  pay attention here! index is 0 before loop starts and&lt;br /&gt;
for (;index &amp;lt; lengthOfList;++index) //  doesn&#039;t get incremented until JUST before the second round&lt;br /&gt;
{&lt;br /&gt;
    //do something&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
and improve readability by using a [[while]]-loop:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; width=&amp;quot;100%&amp;quot; {{Prettytable}}&lt;br /&gt;
|- {{Hl2}}&lt;br /&gt;
! &#039;&#039;&#039;if indexes can be negative&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;if indexes can NOT be negative&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
||&amp;lt;lsl&amp;gt;&lt;br /&gt;
list listOfTenItems = [&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;c&amp;quot;, &amp;quot;d&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;f&amp;quot;, &amp;quot;g&amp;quot;, &amp;quot;h&amp;quot;, &amp;quot;i&amp;quot;, &amp;quot;j&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
//  it&#039;s bitwise-NOT (~) instead of minus (-)&lt;br /&gt;
integer index = ~llGetListLength(listOfTenItems);&lt;br /&gt;
while (++index)&lt;br /&gt;
{&lt;br /&gt;
    //do something&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
list listOfTenItems = [&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;c&amp;quot;, &amp;quot;d&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;f&amp;quot;, &amp;quot;g&amp;quot;, &amp;quot;h&amp;quot;, &amp;quot;i&amp;quot;, &amp;quot;j&amp;quot;];&lt;br /&gt;
integer lengthOfList = llGetListLength(listOfTenItems);&lt;br /&gt;
&lt;br /&gt;
integer index = -1;// attention again! index is -1 before the first round&lt;br /&gt;
// each round index is incremented FIRST before being compared to lengthOfList and then used within the loop&lt;br /&gt;
while (++index &amp;lt; lengthOfList)&lt;br /&gt;
{&lt;br /&gt;
    //do something&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==finally clean code==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and try to get rid of the bitwise-NOT because some people find it hard to read. The positive side effect of the next step is that you need to increment one step less in total and the loop runs the first step directly without checking first for a conditional statement:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; width=&amp;quot;100%&amp;quot; {{Prettytable}}&lt;br /&gt;
|- {{Hl2}}&lt;br /&gt;
! &#039;&#039;&#039;if indexes can be negative&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;if indexes can NOT be negative&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
||&amp;lt;lsl&amp;gt;&lt;br /&gt;
list listOfTenItems = [&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;c&amp;quot;, &amp;quot;d&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;f&amp;quot;, &amp;quot;g&amp;quot;, &amp;quot;h&amp;quot;, &amp;quot;i&amp;quot;, &amp;quot;j&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
// negative length now!&lt;br /&gt;
integer index = -llGetListLength(listOfTenItems);&lt;br /&gt;
&lt;br /&gt;
do&lt;br /&gt;
{&lt;br /&gt;
    //do something&lt;br /&gt;
}&lt;br /&gt;
while (++index);&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
list listOfTenItems = [&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;c&amp;quot;, &amp;quot;d&amp;quot;, &amp;quot;e&amp;quot;, &amp;quot;f&amp;quot;, &amp;quot;g&amp;quot;, &amp;quot;h&amp;quot;, &amp;quot;i&amp;quot;, &amp;quot;j&amp;quot;];&lt;br /&gt;
integer lengthOfList = llGetListLength(listOfTenItems);&lt;br /&gt;
&lt;br /&gt;
integer index;&lt;br /&gt;
do&lt;br /&gt;
{&lt;br /&gt;
    //do something&lt;br /&gt;
}&lt;br /&gt;
while (++index &amp;lt; lengthOfList);&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Release_Notes/Second_Life_Server/14&amp;diff=1192427</id>
		<title>Release Notes/Second Life Server/14</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Release_Notes/Second_Life_Server/14&amp;diff=1192427"/>
		<updated>2014-07-30T06:58:30Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: fix typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}&lt;br /&gt;
&lt;br /&gt;
=== 14.07.18.292162 ===&lt;br /&gt;
&lt;br /&gt;
* This is a server maintenance project&lt;br /&gt;
* Scheduled 2014-07-29 for Main Channel&lt;br /&gt;
* Bug fixes&lt;br /&gt;
** Fix for “Temp Attachments are sometimes not removed on the viewer when detached from a region [[changed]] event.”&lt;br /&gt;
* New Features&lt;br /&gt;
** L$ transactions from [[llTransferLindenDollars]] or [[llGiveMoney]] now include a “Description” field with the object’s name in the [https://accounts.secondlife.com/transaction_history/ L$ transaction history] section of the website.&lt;br /&gt;
* [[Release_Notes/Second_Life_RC_BlueSteel/14#14.07.18.292162|History]]&lt;br /&gt;
&lt;br /&gt;
=== 14.07.11.291889 ===&lt;br /&gt;
* This is preparatory work for the Skill Gaming project&lt;br /&gt;
* Scheduled 2014-07-16 for Main Channel&lt;br /&gt;
* New Features&lt;br /&gt;
** Infrastructure changes for the Skill Gaming project&lt;br /&gt;
*** [http://community.secondlife.com/t5/Featured-News/Coming-Soon-Skill-Gaming-in-Second-Life/ba-p/2771080 This post] and its linked articles describe the design of Skill Gaming&lt;br /&gt;
** L$ transactions from [[llTransferLindenDollars]] or [[llGiveMoney]] now include a “Description” field with the object’s name in the [https://accounts.secondlife.com/transaction_history/ L$ transaction history] section of the website.&lt;br /&gt;
* [[Release_Notes/Second_Life_RC_Magnum/14#14.07.11.291889|History]]&lt;br /&gt;
&lt;br /&gt;
=== 14.07.07.291745 ===&lt;br /&gt;
* This is preparatory work for the Experience Tools project&lt;br /&gt;
* Scheduled 2014-07-15 for Second Life Server&lt;br /&gt;
* New Features&lt;br /&gt;
** Infrastructure changes for the Experience Tools project&lt;br /&gt;
*** [http://community.secondlife.com/t5/Tools-and-Technology/Seeking-Creators-for-the-Experience-Keys-Beta/ba-p/2764864 This post] describes some of the features of experience tools&lt;br /&gt;
* [[Release_Notes/Second_Life_RC_Magnum#14.07.07.291745|History]]&lt;br /&gt;
&lt;br /&gt;
=== 14.06.20.291351 ===&lt;br /&gt;
* This is a server maintenance project&lt;br /&gt;
* Scheduled 2014-07-08 for Second Life Server&lt;br /&gt;
* Bug fixes&lt;br /&gt;
** Fix for “Land impact shown in build tool is not immediately recalculated when first material is added to the child prim of a linkset” ({{Jira|BUG-3414}}) &lt;br /&gt;
* New Features&lt;br /&gt;
** LSL support for applying render materials to objects&lt;br /&gt;
*** Materials properties can now be changed and read via [[llSetLinkPrimitiveParams]], [[llGetLinkPrimitiveParams]], and related functions.&lt;br /&gt;
**** The new prim parameters are [[PRIM_NORMAL]], [[PRIM_SPECULAR]], and [[PRIM_ALPHA_MODE]]&lt;br /&gt;
**** See the respective wiki links above for more details&lt;br /&gt;
* [[Release_Notes/Second_Life_RC_BlueSteel/14#14.06.20.291351|History]]&lt;br /&gt;
&lt;br /&gt;
=== 14.06.13.291023 ===&lt;br /&gt;
* This is an inventory loading improvement project&lt;br /&gt;
* Scheduled 2014-06-24 for Second Life Server&lt;br /&gt;
* New Features&lt;br /&gt;
** Adds support for AISv3 ([[Linden_Lab_Official:Inventory_API_v3|Inventory API v3]])&lt;br /&gt;
*** Improves performance and reliability when changing outfits&lt;br /&gt;
*** To enjoy this new feature, use the [[Release_Notes/Second_Life_Release/3.7.9.290582|current release viewer]]&lt;br /&gt;
** Includes a new anti-griefing measure&lt;br /&gt;
* [[Release_Notes/Second_Life_RC_BlueSteel/14#14.06.13.291023|History]]&lt;br /&gt;
&lt;br /&gt;
=== 14.06.06.290709 ===&lt;br /&gt;
* This is the group ban project&lt;br /&gt;
* Scheduled 2014-06-17 for Second Life Server&lt;br /&gt;
* New Features&lt;br /&gt;
** Added a new group ability, “Manage ban list”&lt;br /&gt;
*** By default, only the Owners role has this ability&lt;br /&gt;
*** Roles which are granted this ability are also granted the “Eject Members from this Group” and “Remove Members from Roles” abilities&lt;br /&gt;
** Added ability to ban users from groups&lt;br /&gt;
*** Group members with the “Manage ban list” ability will be able to add or remove other users to and from the group ban list&lt;br /&gt;
*** A user who is banned from a group cannot join it either directly or through an invitation&lt;br /&gt;
*** When a group member is banned from the group, they are automatically ejected&lt;br /&gt;
*** Group Owners cannot be banned&lt;br /&gt;
*** The ban list for a group can store a maximum of 500 entries&lt;br /&gt;
* Usage notes&lt;br /&gt;
** Use the [[Linden_Lab_Official:Alternate_Viewers#Second_Life_Project_GroupBan_Channel|GroupBan project viewer]] for the following operations:&lt;br /&gt;
*** Managing the “Manage ban list” ability for various group roles&lt;br /&gt;
*** Viewing the group ban list&lt;br /&gt;
*** Adding or removing avatars from the group ban list&lt;br /&gt;
** Prior the group ban project&#039;s deployment to all server channels, group bans will only be enforced by simulators which support the feature.&lt;br /&gt;
*** For example, when group ban is only supported on LeTigre RC and Second Life Server channels, a user who was banned from a group may still be able to join a group while in a region on the ‘Second Life RC Magnum’ channel&lt;br /&gt;
** When a user is banned from a group, their viewer version does not matter; they will be unable to join the group while in a simulator that supports group ban.&lt;br /&gt;
** Other details about using the group ban feature can be found [[Server_Beta_User_Group#Group_Ban_FAQ|here]].&lt;br /&gt;
* [[Release_Notes/Second_Life_RC_LeTigre/14#14.06.06.290709|History]]&lt;br /&gt;
&lt;br /&gt;
=== 14.06.04.290645 ===&lt;br /&gt;
* Deployed 2014-06-04 for Second Life Server, Second Life RC BlueSteel, Second Life RC LeTigre, and Second Life RC Magnum &lt;br /&gt;
* Bug Fixes&lt;br /&gt;
** Preventative fix for gnutls security vulnerability [http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3466 CVE-2014-3466]&lt;br /&gt;
** Our unscheduled update was a preventative measure to fix this vulnerability before exploit tools could be developed and circulated. General abuse of the vulnerability is not yet known to exist on the Internet, but we wanted to proactively protect Second Life users against the potential threat.&lt;br /&gt;
&lt;br /&gt;
=== 14.05.09.289913 ===&lt;br /&gt;
* Scheduled 2014-05-20, 2014-05-21 for Second Life Server&lt;br /&gt;
* Bug Fixes&lt;br /&gt;
** Fixed an issue in which certain busy regions would hit multiple network-related errors&lt;br /&gt;
* [[Release_Notes/Second_Life_RC_Magnum#14.05.09.289913|History]]&lt;br /&gt;
&lt;br /&gt;
=== 14.04.16.289178 ===&lt;br /&gt;
* This is a server maintenance project&lt;br /&gt;
* Scheduled 2014-04-29 for Second Life Server&lt;br /&gt;
* Bug fixes&lt;br /&gt;
** Fix for &amp;quot;[[llTeleportAgent]]() and [[llTeleportAgentGlobalCoords]]() can break any script in any attached object that contains a change event.&amp;quot; ({{Jira|BUG-5533}})&lt;br /&gt;
** Fixed a crash mode&lt;br /&gt;
* [[Release_Notes/Second_Life_RC_Magnum#14.04.16.289178|History]]&lt;br /&gt;
&lt;br /&gt;
=== 14.03.12.288004 ===&lt;br /&gt;
* This is a server maintenance project&lt;br /&gt;
* Scheduled 2014-04–01 for Second Life Server &lt;br /&gt;
* Bug fixes&lt;br /&gt;
** Fixed a rare case in which certain users were unable to log in ({{Jira|BUG-5130}})&lt;br /&gt;
** Fix for a case in which multiple scripts in the same prim calling [[LlTakeControls|llTakeControls()]] with heterogenous ‘accept’ and ‘pass_on’ parameters would not receive a [[Control|control()]] event correctly in some cases ({{Jira|BUG-5281}})&lt;br /&gt;
** Updated LSL syntax file to use a new schema (fixes {{Jira|STORM-2000}})&lt;br /&gt;
*** This change is for a viewer in testing; see {{Jira|STORM-1831}} for more information&lt;br /&gt;
** Fixed a crash mode&lt;br /&gt;
* [[Release_Notes/Second_Life_RC_Magnum/14#14.03.12.288004|History]]&lt;br /&gt;
&lt;br /&gt;
=== 14.02.28.287383 ===&lt;br /&gt;
* This is a server maintenance project&lt;br /&gt;
* Scheduled 2014-03-11 for Second Life Server&lt;br /&gt;
* Bug Fixes&lt;br /&gt;
** Fixed a bug in which the server release notes link in “About Second Life” would sometimes fail to appear&lt;br /&gt;
** Fixed a bug in which certain objects had incorrect status when crossing between regions&lt;br /&gt;
** Fixed a crash mode&lt;br /&gt;
* [[Release_Notes/Second_Life_RC_BlueSteel/14#14.02.28.287383|History]]&lt;br /&gt;
&lt;br /&gt;
=== 14.02.24.287086 ===&lt;br /&gt;
* This is a server maintenance project&lt;br /&gt;
* Scheduled 2014-03-04 for Second Life Server&lt;br /&gt;
* Changes&lt;br /&gt;
** Infrastructure update&lt;br /&gt;
* [[Release_Notes/Second_Life_RC_BlueSteel/14#14.02.24.287086|History]]&lt;br /&gt;
&lt;br /&gt;
=== 14.02.07.286464 ===&lt;br /&gt;
* This is a server maintenance project&lt;br /&gt;
* Scheduled 2014-02-25 for Second Life Server&lt;br /&gt;
* Bug Fixes&lt;br /&gt;
** Fix for BUG-5034 “If an EM restarts a region and then teleports out immediately, the EM will disconnect just after teleport” ({{jira|BUG-5034}})&lt;br /&gt;
** Fixed a rare case in which emails read by LSL scripts immediately after rez or region change would sometimes be missing the message body&lt;br /&gt;
** Fixed some crash modes&lt;br /&gt;
&lt;br /&gt;
=== 14.02.03.286121 ===&lt;br /&gt;
* This is a server maintenance project&lt;br /&gt;
* Scheduled 2014-02-11 for Second Life Server&lt;br /&gt;
* Bug Fixes&lt;br /&gt;
** Fixed a crash mode&lt;br /&gt;
&lt;br /&gt;
=== 14.01.22.285517 ===&lt;br /&gt;
* This is a server maintenance project&lt;br /&gt;
* Scheduled 2014-02-04 for Second Life Server&lt;br /&gt;
* Bug Fixes&lt;br /&gt;
** Fixed a crash mode&lt;br /&gt;
** Fixed &amp;quot;[[llModifyLand]]() modifies wrong location in region, when called in a child prim&amp;quot; ({{jira|BUG-4929}})&lt;br /&gt;
* [[Release_Notes/Second_Life_RC_Magnum/14#14.01.22.285517|History]]&lt;br /&gt;
&lt;br /&gt;
=== 14.01.15.285344 ===&lt;br /&gt;
* This is a server maintenance project&lt;br /&gt;
* Scheduled 2014-01-28 for Second Life Server&lt;br /&gt;
* Bug Fixes&lt;br /&gt;
** Fixed a crash mode&lt;br /&gt;
* [[Release_Notes/Second_Life_RC_BlueSteel/14#14.01.15.285344|History]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Server Release Notes]]&lt;/div&gt;</summary>
		<author><name>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Template:LSL_Constants/Experience_Tools_Errors&amp;diff=1192183</id>
		<title>Template:LSL Constants/Experience Tools Errors</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Template:LSL_Constants/Experience_Tools_Errors&amp;diff=1192183"/>
		<updated>2014-07-17T15:12:26Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: add intra-wiki link to make clear where the message comes from&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{{!}} {{prettytable}}&lt;br /&gt;
{{!}}- {{hl2}}&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; ! {{!}} LSL Constant&lt;br /&gt;
! {{!}} Message returned via [[llGetExperienceErrorMessage]]&lt;br /&gt;
! {{!}} Description&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} [[XP_ERROR_NONE]]&lt;br /&gt;
{{!}} 2&lt;br /&gt;
{{!}} no error&lt;br /&gt;
{{!}} No error was detected.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} [[XP_ERROR_THROTTLED]]&lt;br /&gt;
{{!}} 8&lt;br /&gt;
{{!}} exceeded throttle&lt;br /&gt;
{{!}} The call failed due to too many recent calls.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} [[XP_ERROR_EXPERIENCES_DISABLED]]&lt;br /&gt;
{{!}} 9&lt;br /&gt;
{{!}} experiences are disabled&lt;br /&gt;
{{!}} The region currently has experiences disabled.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} [[XP_ERROR_INVALID_PARAMETERS]]&lt;br /&gt;
{{!}} 7&lt;br /&gt;
{{!}} invalid parameters&lt;br /&gt;
{{!}} One of the string arguments was too big to fit in the key-value store.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} [[XP_ERROR_NOT_PERMITTED]]&lt;br /&gt;
{{!}} 3&lt;br /&gt;
{{!}} operation not permitted&lt;br /&gt;
{{!}} This experience is not allowed to run on the current region.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} [[XP_ERROR_NO_EXPERIENCE]]&lt;br /&gt;
{{!}} 14&lt;br /&gt;
{{!}} script not associated with an experience&lt;br /&gt;
{{!}} This script is not associated with an experience.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} [[XP_ERROR_NOT_FOUND]]&lt;br /&gt;
{{!}} 16&lt;br /&gt;
{{!}} not found&lt;br /&gt;
{{!}} The sim was unable to verify the validity of the experience.  Retrying after a short wait is advised.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} [[XP_ERROR_INVALID_EXPERIENCE]]&lt;br /&gt;
{{!}} 0&lt;br /&gt;
{{!}} invalid experience&lt;br /&gt;
{{!}} The script is associated with an experience that no longer exists.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} [[XP_ERROR_EXPERIENCE_DISABLED]]&lt;br /&gt;
{{!}} 6&lt;br /&gt;
{{!}} experience is disabled&lt;br /&gt;
{{!}} The experience owner has temporarily disabled the experience.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} [[XP_ERROR_EXPERIENCE_SUSPENDED]]&lt;br /&gt;
{{!}} 4&lt;br /&gt;
{{!}} experience is suspended&lt;br /&gt;
{{!}} The experience has been suspended by Linden Lab customer support.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} [[XP_ERROR_QUOTA_EXCEEDED]]&lt;br /&gt;
{{!}} 5&lt;br /&gt;
{{!}} experience data quota exceeded&lt;br /&gt;
{{!}} An attempt to write data to the key-value store failed due to the data quota being met.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} [[XP_ERROR_STORE_DISABLED]]&lt;br /&gt;
{{!}} 11&lt;br /&gt;
{{!}} key-value store is disabled&lt;br /&gt;
{{!}} They key-value store is currently disabled on this region.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} [[XP_ERROR_STORAGE_EXCEPTION]]&lt;br /&gt;
{{!}} 15&lt;br /&gt;
{{!}} key-value store communication failed&lt;br /&gt;
{{!}} Unable to communicate with the key-value store.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} [[XP_ERROR_KEY_NOT_FOUND]]&lt;br /&gt;
{{!}} 13&lt;br /&gt;
{{!}} key doesn&#039;t exist&lt;br /&gt;
{{!}} They requested key does not exist.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} [[XP_ERROR_RETRY_UPDATE]]&lt;br /&gt;
{{!}} 12&lt;br /&gt;
{{!}} retry update&lt;br /&gt;
{{!}} A checked update failed due to an out of date request.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} [[XP_ERROR_UNKNOWN_ERROR]]&lt;br /&gt;
{{!}} 1&lt;br /&gt;
{{!}} unknown error&lt;br /&gt;
{{!}} An unknown error not covered by any of the other predetermined error states.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} [[XP_ERROR_MATURITY_EXCEEDED]]&lt;br /&gt;
{{!}} 10&lt;br /&gt;
{{!}} experience content rating too high&lt;br /&gt;
{{!}} The content rating of the experience exceeds that of the region.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}}&lt;/div&gt;</summary>
		<author><name>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Template:LSL_Constants/Experience_Tools_Errors&amp;diff=1192182</id>
		<title>Template:LSL Constants/Experience Tools Errors</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Template:LSL_Constants/Experience_Tools_Errors&amp;diff=1192182"/>
		<updated>2014-07-17T15:01:50Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: added constant integer values for reference&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{{!}} {{prettytable}}&lt;br /&gt;
{{!}}- {{hl2}}&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; ! {{!}} LSL Constant&lt;br /&gt;
! {{!}} Message&lt;br /&gt;
! {{!}} Description&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} [[XP_ERROR_NONE]]&lt;br /&gt;
{{!}} 2&lt;br /&gt;
{{!}} no error&lt;br /&gt;
{{!}} No error was detected.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} [[XP_ERROR_THROTTLED]]&lt;br /&gt;
{{!}} 8&lt;br /&gt;
{{!}} exceeded throttle&lt;br /&gt;
{{!}} The call failed due to too many recent calls.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} [[XP_ERROR_EXPERIENCES_DISABLED]]&lt;br /&gt;
{{!}} 9&lt;br /&gt;
{{!}} experiences are disabled&lt;br /&gt;
{{!}} The region currently has experiences disabled.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} [[XP_ERROR_INVALID_PARAMETERS]]&lt;br /&gt;
{{!}} 7&lt;br /&gt;
{{!}} invalid parameters&lt;br /&gt;
{{!}} One of the string arguments was too big to fit in the key-value store.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} [[XP_ERROR_NOT_PERMITTED]]&lt;br /&gt;
{{!}} 3&lt;br /&gt;
{{!}} operation not permitted&lt;br /&gt;
{{!}} This experience is not allowed to run on the current region.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} [[XP_ERROR_NO_EXPERIENCE]]&lt;br /&gt;
{{!}} 14&lt;br /&gt;
{{!}} script not associated with an experience&lt;br /&gt;
{{!}} This script is not associated with an experience.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} [[XP_ERROR_NOT_FOUND]]&lt;br /&gt;
{{!}} 16&lt;br /&gt;
{{!}} not found&lt;br /&gt;
{{!}} The sim was unable to verify the validity of the experience.  Retrying after a short wait is advised.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} [[XP_ERROR_INVALID_EXPERIENCE]]&lt;br /&gt;
{{!}} 0&lt;br /&gt;
{{!}} invalid experience&lt;br /&gt;
{{!}} The script is associated with an experience that no longer exists.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} [[XP_ERROR_EXPERIENCE_DISABLED]]&lt;br /&gt;
{{!}} 6&lt;br /&gt;
{{!}} experience is disabled&lt;br /&gt;
{{!}} The experience owner has temporarily disabled the experience.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} [[XP_ERROR_EXPERIENCE_SUSPENDED]]&lt;br /&gt;
{{!}} 4&lt;br /&gt;
{{!}} experience is suspended&lt;br /&gt;
{{!}} The experience has been suspended by Linden Lab customer support.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} [[XP_ERROR_QUOTA_EXCEEDED]]&lt;br /&gt;
{{!}} 5&lt;br /&gt;
{{!}} experience data quota exceeded&lt;br /&gt;
{{!}} An attempt to write data to the key-value store failed due to the data quota being met.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} [[XP_ERROR_STORE_DISABLED]]&lt;br /&gt;
{{!}} 11&lt;br /&gt;
{{!}} key-value store is disabled&lt;br /&gt;
{{!}} They key-value store is currently disabled on this region.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} [[XP_ERROR_STORAGE_EXCEPTION]]&lt;br /&gt;
{{!}} 15&lt;br /&gt;
{{!}} key-value store communication failed&lt;br /&gt;
{{!}} Unable to communicate with the key-value store.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} [[XP_ERROR_KEY_NOT_FOUND]]&lt;br /&gt;
{{!}} 13&lt;br /&gt;
{{!}} key doesn&#039;t exist&lt;br /&gt;
{{!}} They requested key does not exist.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} [[XP_ERROR_RETRY_UPDATE]]&lt;br /&gt;
{{!}} 12&lt;br /&gt;
{{!}} retry update&lt;br /&gt;
{{!}} A checked update failed due to an out of date request.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} [[XP_ERROR_UNKNOWN_ERROR]]&lt;br /&gt;
{{!}} 1&lt;br /&gt;
{{!}} unknown error&lt;br /&gt;
{{!}} An unknown error not covered by any of the other predetermined error states.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} [[XP_ERROR_MATURITY_EXCEEDED]]&lt;br /&gt;
{{!}} 10&lt;br /&gt;
{{!}} experience content rating too high&lt;br /&gt;
{{!}} The content rating of the experience exceeds that of the region.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}}&lt;/div&gt;</summary>
		<author><name>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User_talk:Jeremy_Linden&amp;diff=1191625</id>
		<title>User talk:Jeremy Linden</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User_talk:Jeremy_Linden&amp;diff=1191625"/>
		<updated>2014-06-25T10:04:36Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: /* LSL syntax highlighting on the wiki: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==OH Transcripts==&lt;br /&gt;
Hi Jeremy =)&amp;lt;br&amp;gt;&lt;br /&gt;
After your Q&amp;amp;A session today, I expanded the [[Knowledge Base]] article a little and stumbled upon your office hour transcripts. I wanted to let you know that SL Resident [[User:Kuraiko Yoshikawa|Kuraiko Yoshikawa]] programmed a chatlog wikifier. So you can copy and paste a chatlog and easily turn it in a Wiki compatible format. You can find the wikifier [http://kuraiko.zeitenwerk.de/wikify.php over here], with an explanation and example at [[User:Kuraiko Yoshikawa/wikify|this page]]. Just wanted to let you know and maybe you find it useful =)&amp;lt;br&amp;gt;&lt;br /&gt;
I&#039;m really sad that wasn&#039;t able to stay till the end of the Q&amp;amp;A session (due to RL interruption) and therefor missed the chatty part.&amp;lt;br&amp;gt;&lt;br /&gt;
Cyas &amp;amp; greetz! [[Image:Zai_signature.png|45px]] &#039;&#039;&#039;[[User:Zai Lynch|Lynch]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Zai Lynch|talk]]|[[Special:Contributions/Zai Lynch|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 17:19, 16 October 2008 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Edits on [[Mesh]]: ==&lt;br /&gt;
&lt;br /&gt;
Are you sure that it is effective that you divided the overview (I think the page was not more than that) into so many small pieces?&lt;br /&gt;
I find it harder to read and to collect all informations as if all were on one page.&lt;br /&gt;
--[[User:Kuraiko Yoshikawa|Kuraiko Yoshikawa]] 19:40, 6 May 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Thanks for the comment!  I have been asked to created a &amp;quot;Getting Started&amp;quot; guide for Mesh, and will be filling out the new topics with more complete information.  Much of the info that was there is now obsolete or will not apply to the First Look. [[User:Jeremy Linden|Jeremy Linden]] 19:45, 6 May 2010 (UTC)&lt;br /&gt;
::Oh, I see! Thanks for the fast reply. --[[User:Kuraiko Yoshikawa|Kuraiko Yoshikawa]] 19:54, 6 May 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== KB2 ==&lt;br /&gt;
&lt;br /&gt;
Very clever. I&#039;ve done something similar in the LSL documentation with regards to {{LSLGC|PrimitiveParams}} constants. It can be very powerful but at the same time can be quite a hassle. One thing to keep in mind is category inclusion, there is no easy way to see which transclusion results in which inclusion. However when it comes to the design of the wiki engine, I feel there is much to be desired in how it is edited and organized. I&#039;m rambling, sorry. -- &#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; 20:32, 26 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Thanks Strife.  KB2, cool as it is, is actually an intermediate holding area for a big import to a new third-party tool.  More information as we&#039;re allowed to give it. [[User:Jeremy Linden|Jeremy Linden]] 21:10, 27 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== new llGetRegionTimeDilation caveat ==&lt;br /&gt;
&lt;br /&gt;
Is this a response to a specific Jira and if so, which one? I want to add a link to it to the documentation. -- &#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; 11:08, 15 May 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
* [[User:Jeremy Linden|Jeremy Linden]] 11:51, 16 May 2012 (PDT): I am not aware of a specific Jira, but I was asked to update the LSL documentation to cover the region idling feature, which is intended to be transparent to Residents with the exception of the stated caveat.  More information is available on the forums:&lt;br /&gt;
** http://community.secondlife.com/t5/Second-Life-Server/Region-Idling-coming-to-Second-Life/m-p/1535485&lt;br /&gt;
** http://community.secondlife.com/t5/Second-Life-Server/Region-Idling-FAQ/m-p/1535497&lt;br /&gt;
&lt;br /&gt;
:Thanks! -- &#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; 21:14, 16 May 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
== LSL syntax highlighting on the wiki: ==&lt;br /&gt;
&lt;br /&gt;
I&#039;ve provided an up-to-date GeSHi file for LSL syntax highlighting on the wiki which can be found [https://github.com/buildersbrewery/lsl-for-geshi on github] regarding [https://jira.secondlife.com/browse/BUG-2708 BUG-2708].&lt;br /&gt;
&lt;br /&gt;
Any news on this? I&#039;ve been requesting an update for almost three years now. -- &#039;&#039;&#039;[[User:Kireji_Haiku|Kireji Haiku]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Kireji_Haiku|talk]]|[[Special:Contributions/Kireji_Haiku|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 03:04, 25 June 2014 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Education/Resource Page edits ==&lt;br /&gt;
Howdy. Several links to pages describing listservs and non-profit education groups have been removed from the [[https://wiki.secondlife.com/wiki/Second_Life_Education/Resources Education/Resources]] page. The archives for two of these show recent activity; did not check the third, as it is described as &amp;quot;...only available to the list members.&amp;quot; If a list in still active, why remove it?&lt;br /&gt;
* Healthcare Educators&lt;br /&gt;
* Non-Profit Educators&lt;br /&gt;
* Second Life for Academic Researchers&lt;br /&gt;
&lt;br /&gt;
The following groups still have an active community in world. If a non-profit organization is still active, why not include it in list? &lt;br /&gt;
* International Society for Technology in Education (ISTE) in Second Life&lt;br /&gt;
* Nonprofit Commons (SLURL)&lt;br /&gt;
&lt;br /&gt;
Arguably, the page needs work (see my recent edits); but, removal of active communities is...&#039;&#039;puzzling&#039;&#039;. [[User:Azwaldo Villota|azwaldo]] 01:44, 25 July 2013 (PDT)&lt;br /&gt;
== TOS updates not mirrored in the Wiki ==&lt;br /&gt;
Yesterday (130815) we were offered a new TOS to accept. &lt;br /&gt;
&lt;br /&gt;
There was no notification on the Blog and I discovered that the TOS information on the Wiki is very outdated. Also the archive appears to be missing a few. &lt;br /&gt;
&lt;br /&gt;
In my opinion LL should provide complete and accurate info in explaining the TOS and TOS changes. The KB or the Wiki is the place for that. LL should avoid a scroll through and click. &lt;br /&gt;
&lt;br /&gt;
Any change in the TOS is a capital change as it is a legal agreement. If you find the time, please (let someone) update the TOS info&#039;s, FAQ and archive. Thank you.&lt;br /&gt;
&lt;br /&gt;
[[User:Vick Forcella|Vick Forcella]] 01:14, 16 August 2013 (PDT)&lt;/div&gt;</summary>
		<author><name>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User_talk:Omei_Qunhua&amp;diff=1190272</id>
		<title>User talk:Omei Qunhua</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User_talk:Omei_Qunhua&amp;diff=1190272"/>
		<updated>2014-05-02T16:53:45Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An appeal:&lt;br /&gt;
&lt;br /&gt;
When submitting sample scripts (or editing existing samples) PLEASE  ensure you&#039;ve tested the resulting script.&lt;br /&gt;
There can be no excuse for blindly editing and not testing, and certainly no excuse for submitting scripts that won&#039;t even compile!&lt;br /&gt;
[[User:Omei Qunhua|Omei Qunhua]] 09:02, 9 December 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
:I wholeheartedly agree. I have been guilty of the sin but I agree. lslint and lsleditor are our friends. I noticed you mentioned that some edits have been breaking examples. If that happens, please make a note of it somewhere, we need to keep track of this so we can halt any negative trends. -- &#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; 08:34, 14 December 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
::Well if you want to observe a negative trend, the following Wiki pages / examples were all corrupted by the same person :)&lt;br /&gt;
 &amp;lt;pre&amp;gt;&lt;br /&gt;
Wiki Page                 Date Corrupted         Nature of Error&lt;br /&gt;
&lt;br /&gt;
Gun Script                  18-Oct-12            Compile error&lt;br /&gt;
&lt;br /&gt;
llGetAgentList               8-Dec-12            Compile error  &lt;br /&gt;
&lt;br /&gt;
llGetAgentList               9-Dec-12            Run-time bad results &lt;br /&gt;
&lt;br /&gt;
llDialog                    24-Sept-12           Compile error&lt;br /&gt;
&lt;br /&gt;
11SetLinkAlpha              30-Sept-12           Compile error&lt;br /&gt;
&lt;br /&gt;
llGetLinkInventoryPermMask  25-Nov-12            Compile error&lt;br /&gt;
&lt;br /&gt;
llResetOtherScript          24-Sept-12           Run-time error&lt;br /&gt;
&lt;br /&gt;
llGetSimStats                8-Dec-12            Compile error&lt;br /&gt;
&lt;br /&gt;
llRequestURL                24-Sep-12            Compile error&lt;br /&gt;
&lt;br /&gt;
llSetKeyframedMotion        24-Sep-12            Run-time error&lt;br /&gt;
&lt;br /&gt;
llEvade                      4-Dec-12            Compile error&lt;br /&gt;
&lt;br /&gt;
llGetClosestNavPoint         4-Dec-12            Compile error&lt;br /&gt;
&lt;br /&gt;
llGetNotecardLine           23-Sept-12           Run-time bad results&lt;br /&gt;
&lt;br /&gt;
StringIsNum                  7-Oct-12            Compile error&lt;br /&gt;
&lt;br /&gt;
Sensor                      28-Oct-12            Compile error and Run time wrong results&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(I&#039;ve also corrected 4 other non-compilable or faulty example scripts by other editors, where the errors have existed since July 2012, March 2008, and Sept 2007)&lt;br /&gt;
&lt;br /&gt;
[[User:Omei Qunhua|Omei Qunhua]] 15:26, 18 December 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
:I have take a look at all his changeings in the example scripts and do not agree with the most, Everywhere he remove inside the sub-if&#039;s the clamps and resort the events. The most of the experienced scripters do not realy read it, but for beginners i think its bad when they not see where are the clamps necessary and where not. [[User:Daemonika Nightfire|Daemonika Nightfire]] 10:19, 20 December 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
:I disagree with the way you say a script is &amp;quot;faulty&amp;quot;   You do not clearly state your reasoning which is debatable because it&#039;s based on your own personal preference. --[[User:Ackley Bing|Ackley Bing]] 10:12, 14 February 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
::It&#039;s not a matter of &amp;quot;personal preference&amp;quot;. If a script doesn&#039;t compile, or gives wrong results at run-time, then it&#039;s faulty. [[User:Omei Qunhua|Omei Qunhua]] 03:22, 15 February 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
== More size constructs ==&lt;br /&gt;
&lt;br /&gt;
I&#039;ve confirmed your results and made a few more tests of size optimization constructs.&lt;br /&gt;
&lt;br /&gt;
 x=-~x;               6 bytes (equivalent to ++x)&lt;br /&gt;
 x=~-x;               6 bytes (equivalent to --x)&lt;br /&gt;
 y=-~x;               6 bytes (equivalent to y=x+1)&lt;br /&gt;
 if(~x);              7 bytes (equivalent to if(x!=-1))&lt;br /&gt;
 x*2;                 8 bytes (equivalent to x&amp;lt;&amp;lt;1)&lt;br /&gt;
 x=-~-~x;             8 bytes (equivalent to x+=2)&lt;br /&gt;
 x=~-~-x;             8 bytes (equivalent to x-=2)&lt;br /&gt;
 y=x+1;              10 bytes&lt;br /&gt;
 x=x*2;              10 bytes (equivalent to x=x&amp;lt;&amp;lt;1)&lt;br /&gt;
 x*=2;               10 bytes&lt;br /&gt;
 if (!~x);           10 bytes (equivalent to if(x==-1))&lt;br /&gt;
 if(x&amp;amp;0x80000000)    12 bytes (equivalent to if(x&amp;lt;0) for integers)&lt;br /&gt;
 if(x&amp;lt;0);            13 bytes&lt;br /&gt;
 x=x&amp;lt;&amp;lt;1;             14 bytes&lt;br /&gt;
 if(x!=-1);          17 bytes&lt;br /&gt;
&lt;br /&gt;
For float x:&lt;br /&gt;
&lt;br /&gt;
 x=0;                 9 bytes&lt;br /&gt;
 x=0.0;              12 bytes&lt;br /&gt;
&lt;br /&gt;
For vector x:&lt;br /&gt;
&lt;br /&gt;
 x=&amp;lt;0, 0, 0&amp;gt;;        27 bytes&lt;br /&gt;
 x=&amp;lt;0.0, 0.0, 0.0&amp;gt;;  36 bytes&lt;br /&gt;
 x=ZERO_VECTOR;      36 bytes&lt;br /&gt;
&lt;br /&gt;
for list x:&lt;br /&gt;
&lt;br /&gt;
 llGetListLength(x); 40 bytes&lt;br /&gt;
 x!=[];              13 bytes (note: only list LENGTH is compared - actually subtracted. That returns 0 for empty list.)&lt;br /&gt;
 x==[];              13 bytes&lt;br /&gt;
 if(x==[]);          17 bytes&lt;br /&gt;
 if(x!=[]);          17 bytes&lt;br /&gt;
 x!=[&amp;quot;&amp;quot;];            23 bytes (note: only list LENGTH is compared - actually subtracted. That returns -1 for empty list.)&lt;br /&gt;
 x==[&amp;quot;&amp;quot;];            23 bytes (true if x has 1 element)&lt;br /&gt;
 x!=[[]];            23 bytes (list may not contain lists but this is allowed?!?!)&lt;br /&gt;
 x==[[]];            23 bytes&lt;br /&gt;
 if(x==[&amp;quot;&amp;quot;]);        27 bytes&lt;br /&gt;
 x!=[1];             28 bytes (true if x has 1 element)&lt;br /&gt;
 if(x==[&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;]);  47 bytes&lt;br /&gt;
 if(x!=[&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;]);  47 bytes&lt;br /&gt;
 if(llGetListLengt(x)==1);  53 bytes&lt;br /&gt;
 if(llGetListLengt(x)!=1);  56 bytes&lt;br /&gt;
 if(x==[&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;]);      57 bytes&lt;br /&gt;
&lt;br /&gt;
Some of those may be worth being included in [[LSL Hacks]], which I&#039;d say is the place for code size optimization. Your list results are run time size related and thus worth being included as an update to [[LSL Script Memory]]. --[[User:Pedro Oval|Pedro Oval]] 09:35, 29 December 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
:Wow some of those are really interesting. I would venture the reason float zero is so expensive is how it&#039;s being encoded (there are several ways to encode floats in IL). They haven&#039;t optimized the zero case. I&#039;m very surprised that x * 2 is less than x &amp;lt;&amp;lt; 2. -- &#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; 13:28, 29 December 2012 (PST)&lt;br /&gt;
::Well try these for size ...   x+x; 4 bytes,  x=x+x; 6 bytes,  x=x^x; 6 bytes. Food for thought!  [[User:Omei Qunhua|Omei Qunhua]] 06:05, 30 December 2012 (PST)&lt;br /&gt;
:::VERY interesting, thank you!!! --[[User:Pedro Oval|Pedro Oval]] 12:11, 30 December 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some more interesting results (all for LOCAL variables) [WITHDRAWN - SEE BELOW]&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;strike&amp;gt;integer a;           49 bytes&lt;br /&gt;
 integer a=0;         53 bytes&lt;br /&gt;
 string a=&amp;quot;&amp;quot;;         53? 55? bytes (I&#039;m unsure if there&#039;s a preexisting instance of &amp;quot;&amp;quot; or not - my measuring method can&#039;t tell)&lt;br /&gt;
 string a;            53? 55? bytes&lt;br /&gt;
 string a=&amp;quot;a&amp;quot;;        53 bytes plus 2*(num characters+1) per each different string (equal strings are referenced just once)&lt;br /&gt;
 float a=0;           54 bytes&lt;br /&gt;
 list a;              55 bytes&lt;br /&gt;
 list a=[];           55 bytes&lt;br /&gt;
 float a;             57 bytes&lt;br /&gt;
 float a=0.0;         57 bytes&lt;br /&gt;
 key a=&amp;quot;&amp;quot;;            60? 61? 62? bytes (same problem as string)&lt;br /&gt;
 key a=&amp;quot;string&amp;quot;;      60? bytes + 2*(num_characters+1) per each different string&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Braces don&#039;t seem to add anything: &amp;lt;code&amp;gt;{integer a;}&amp;lt;/code&amp;gt; occupies the same size as &amp;lt;code&amp;gt;integer a;&amp;lt;/code&amp;gt; and so on. Since the string case is complex, let me put an example. &amp;lt;code&amp;gt;string a=&amp;quot;aaa&amp;quot;; string b=&amp;quot;aaa&amp;quot;;&amp;lt;/code&amp;gt; will use 53+53+2*(3+1)=114 bytes, because the string is the same in both cases and it&#039;s reused, but &amp;lt;code&amp;gt;string a=&amp;quot;aaa&amp;quot;; string b=&amp;quot;bbb&amp;quot;;&amp;lt;/code&amp;gt; will use 53+53+2*(3+1)+2*(3+1)=122 bytes because the strings are different.&lt;br /&gt;
&lt;br /&gt;
I&#039;m getting inconsistent results with the keys. Something else seems to be going on. I get 61 bytes sometimes and 60 others. Wonder if there&#039;s a byte alignment problem. If so, that could make some of the previous measurements incorrect, even if they looked consistent. --[[User:Pedro Oval|Pedro Oval]] 13:40, 29 December 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
:Using the measurement method you suggested (or perhaps a variation), I have determined that an empty string uses 6 bytes always, while a 1 or 2 character string uses 10 bytes for the first appearance and 6 for the rest, and a 3 or 4 character string uses 14 bytes for the first appearance and 6 for the rest. Further testing suggests that string constants in code are allocated 4 bytes at a time.&lt;br /&gt;
&lt;br /&gt;
:The previous results for local variable declarations can&#039;t be considered reliable. With this measurement method I get many variations for keys and strings: 132 bytes for the first appearance of &amp;lt;code&amp;gt;key x=&amp;quot;&amp;quot;&amp;lt;/code&amp;gt;, 56 for the second, 66 for the third... and also crazy for strings. I just withdraw the results. With integer I also got inconsistencies.: 43 bytes when measured with this method. What seems clear is that there&#039;s one implicit assumption wrong and I don&#039;t know which one or why. I guess a better understanding of CIL would help me interpret those results. Not sure if I&#039;m willing to dive into that though. --[[User:Pedro Oval|Pedro Oval]] 14:44, 1 January 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
== llGetSubString ==&lt;br /&gt;
&lt;br /&gt;
I obviously did not review that edit! wtf were they thinking? Thank you. -- &#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; 23:08, 3 January 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
== UTF-8 ==&lt;br /&gt;
&lt;br /&gt;
UTF-8 characters can be more than 2 bytes, by the original standard, used by LSO, they can by 5 bytes. UTF-8 supported by Mono supports up to 4 bytes per character. -- &#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; 20:31, 14 January 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
::Yes I know. That&#039;s why I quoted an example of a 2-byte UTF-8 when giving 512 as a UTF-8 limit. I didn&#039;t want to go into a full explanation on every page. Just wanted to give some clue that 1024 bytes doesn&#039;t necessarily give 1024 characters (and an opportunity to correct the 1023 to 1024). Maybe a link to a page on UTF-8 would be appropriate. But I think the current UTF-8 page needs overhauling. It starts by saying &amp;quot;SL uses UTF-8 for storing and transmitting strings&amp;quot;  which I think is no longer always true (i.e. storage in Mono) then the UTF-8 page gets hijacked with complex code examples concerning Unicode which maybe appeal to 0.1% of Wiki&#039;s users.  We need to sort the basics out on SO MANY Wiki pages, before leaping into hyperspace. And that&#039;s been the impetus behind my sudden burst of editing activity over 5 weeks. (IMHO, LOL) [[User:Omei Qunhua|Omei Qunhua]] 00:26, 15 January 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
== Wiki editing ==&lt;br /&gt;
&lt;br /&gt;
I&#039;m not sure why you feel the need to insult other editors with every other edit summary but I wish you all the best and merry christmas. Hopefully you can find some time to loosen up during the holidays. Best regards -- [[User:Kireji Haiku|Kireji Haiku]] 14:29, 19 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
::I just stated a fact. If you find that insulting, well ....  &lt;br /&gt;
&lt;br /&gt;
::I don&#039;t understand why you are intent on driving the Wiki further and further from reality. You&#039;re just making it an academic non-practical source of your own personal preferences, at odds with what 99.9% of coders do and I&#039;m sure will continue to do. [[User:Omei Qunhua|Omei Qunhua]] 16:00, 21 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
I personally don&#039;t care either way with PUBLIC_CHANNEL and I didn&#039;t view the edit comments as insulting (the field encourages brevity, which can be mistaken as insult). I don&#039;t use it myself and I doubt many people do but many people don&#039;t use &amp;lt;code&amp;gt;~llSubStringIndex()&amp;lt;/code&amp;gt;, they use &amp;lt;code&amp;gt;llSubStringIndex() != -1&amp;lt;/code&amp;gt; or the new fangled &amp;lt;code&amp;gt;llSubStringIndex() != [[ERR_GENERIC]]&amp;lt;/code&amp;gt;. Just because it&#039;s &amp;quot;ugly&amp;quot; doesn&#039;t make it wrong. So that we don&#039;t fight over these trivialities we should take the viewpoint that if they are already existing in articles we should not change them unless we are replacing the entire line. I&#039;m ok with grammar and punctuation getting corrected but do keep in mind that grammar and punctuation are artificial rules created by man, and these rules can be redefined at anytime as well. What is grammatically incorrect today may be grammatically correct tomorrow, so grammatical correctness isn&#039;t the most important thing. There are however about 600 unloved articles in {{LSLGC|Needs Example}} (I&#039;m amazed it&#039;s only 600 btw). So if you get bored and feel the desire to correct something minor, consider writing an example and spread a little joy to the unloved. -- &#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; 15:15, 19 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
::I feel passionately that PUBLIC_CHANNEL should NOT be promoted in the Wiki - and this is NOT because that is my own personal preference, but it is the established preference of thousands of scripters as demonstrated in millions of scripts in-world and on script libraries. Kireji I am sure feels passionately that PUBLIC_CHANNEL should be promoted - but I venture to suggest that that IS due to his own individual and personal preference. I&#039;ve noticed ERR_GENERIC creeping in, and that again is at odds with practically all actual scripts, although I&#039;m less unhappy about it, in some situations. Sure I love mnemonics like CHANGED_REGION_START as most scripters would. As I say, the Wiki is in danger of becoming an academic tome, divorced from reality. :(  Also, as pointed out before, we tend to have to explain that PUBLIC_CHANNEL means 0, whereas for example one would need to explain that 0x400 means CHANGED_REGION_START. That difference highlights the problem in a nutshell. Oh, and following on from your comments, Strife, the same logic dictates that where llSay(0, ....  etc. exist in Wiki articles, they shouldn&#039;t be routinely changed to PUBLIC_CHANNEL. [[User:Omei Qunhua|Omei Qunhua]] 16:04, 19 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
:::Yes, the logic does, my condemnation is not aimed at any one party. But we have bigger problems. Dryness is one of those problems. The small number of editors is another. I&#039;d say that Examples should be a top priority but I&#039;ve never been able to make it one of mine. I don&#039;t have solutions to these problems. At some point we should have a meeting. My current projects include: parameter/subtype categories and haiku. -- &#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; 21:04, 19 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
::::&amp;quot;unless we are replacing the whole line&amp;quot; - and please, only replace that line if it&#039;s faulty, not just to propagate a personal style. Unfortunately that propagation has been going on for 15 months without anyone commenting until I started squirming a bit and seemed to become the target for criticism (the current condemnatory remarks appear in my own talk page). You say you have no preference, Strife, but your consistent use of llSay(0,  in your own examples  does suggest a preference. There are so many other unnecessary edits that have taken place over the same period, where there has been no corrective aspect.  (float) FALSE is horrid, as are  inserted lines of // { or  // } ... or just adding the //. Awful. By all means, let&#039;s use our favoured styles on our own pages, or in examples that we originate ourselves. Enough. I&#039;ll go look at your list of the 600 unloved ... LOL. (But perhaps all those corrupted examples should be returned to their pristine states ^^). [[User:Omei Qunhua|Omei Qunhua]] 09:19, 20 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
:::::Yeah the (float)FALSE thing... I have trouble seeing a good reason to use it. Oh I can understand that it might uses less bytecode but for the love of monkeys put it in the optimization article. That said, I am guilty of using (integer)&amp;quot;&amp;quot; in the past in code that was highly optimized (for LSO, yes I really did need every byte). Not really keen on whitespace changes either but I don&#039;t have a strong feeling. I wonder if we should considering protecting the diversity of programming styles in the articles. This way it gives the wiki a feel that real people actually wrote the examples and that they weren&#039;t extruded from some hideous creature&#039;s bum. It will be dangerous as it will be hard to define what is good diversity and what is bad content but it should be interesting. -- &#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; 11:30, 20 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
::&amp;quot;What is grammatically incorrect today may be grammatically correct tomorrow&amp;quot; - LOL. So that&#039;s an excuse to write appallingly? No thanks!  But I do think there could be a lot of merit in preserving the programming styles exhibited by example originators, as you suggest. [[User:Omei Qunhua|Omei Qunhua]] 16:00, 21 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
:::Fixed a bug in Constants, fewer articles should be showing up now in {{LSLGC|Needs Example}}. {{LSLGC|FixMe}} if you are wondering is where all the broken articles go. Most are constants in need of descriptions (others are constants in need of syntax examples like you would see on the like [[PRIM_NAME]]). -- &#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; 20:28, 23 December 2013 (PST)&lt;br /&gt;
:::P.S. Yeah it&#039;s a slippery slope and I don&#039;t buy it entirely either.&lt;br /&gt;
&lt;br /&gt;
Further to suggesting that editors try to stick with the coding style used by an article originator, I was going to say that first of all the original writers should abide by an overall style guide agreed for the Wiki, such as [[https://wiki.secondlife.com/w/index.php?title=LSL_Style_Guide&amp;amp;oldid=1181778 StyleGuide]]. Unfortunately I see that that page has been &#039;hijacked&#039; to promote one person&#039;s eccentric views. Proposed changes to the main style guide should FIRST be discussed in the corresponding discussion page. We can&#039;t have one person unilaterally declaring a style without discussion. So ... first we seriously need a &#039;committee&#039; approach to defining an overall style guide. It&#039;s been said elsewhere that contributors are not going to want to rewrite their programs to comply with a Wiki style different to their usual practice. Personally I don&#039;t find that onerous, and I favour a more rigorous insistence on a unified style throughout. [[User:Omei Qunhua|Omei Qunhua]] 04:04, 24 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
: I do not know how I overlooked this but It appears I forgot to codify any syntax guidelines into the [[LSL Portal Guidelines]]. For now I&#039;ll just shove something onto [[LSL_Style_Guide#LSL_Portal_Style]]. Thoughts? -- &#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; 02:19, 25 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
I started tackling some of the &amp;quot;need examples&amp;quot; pages, but quickly felt that adding an example for each individual mnemonic constant was not necessary. Indeed having a separate page for each seems seriously OTT. [[User:Omei Qunhua|Omei Qunhua]] 06:01, 27 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
:Do what you think is best, if it doesn&#039;t really need an example, skip it. I will not deny it was OCD to mandate that every constant have an article, nor that it might be a tiny bit excessive but I will argue with it being Over The Top.&lt;br /&gt;
&lt;br /&gt;
:For some constants there is no benefit to having individual articles. If we were to deny all constant articles, we would end up with all function articles being at best [[llParticleSystem]] and at worst double what [[llSetPrimitiveParams]] (because llSetPrimitiveParams would become even worse). In the beginning I pushed for articles for constants because on the LSL Wiki it was hard to find information about constants. Not only was the information buried in function articles (which had no unifying layout so it could by literally be anywhere in the article), if the constant was used by multiple overlapping functions the information might be out of sync. It made maintaining the content very annoying. Personally I&#039;d rather fill the wiki with stubs and let people flesh them out into articles if they want, than leave them digging and wishing for more. While we could come up with rules o how to decide which constants get articles and which don&#039;t, I don&#039;t think we gain anything by doing so ([[llParticleSystem]] is not one of my articles and I view it as grandfathered).&lt;br /&gt;
&lt;br /&gt;
:Trying to shoe horn information about constants into articles has always been hard and it was especially hard on the LSL Wiki. You might want to add a single sentence of information but to do so might require refactoring a significant amount of the article. Here you can just post the sentence to the dedicated article and not have to worry so much about squeezing it in. -- &#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; 22:08, 27 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
:Again, not sure why you feel the need to undo wiki contributions. Replacing channel 0 with [[PUBLIC_CHANNEL]] does not change the code style. If you strongly believe such edits shouldn&#039;t be done by others, same would go for your edits ... which go the other way around. The reason using constants is to enhance readability, making it easier for beginners. It&#039;s a lot easier to do a find and replace to get rid of [[PUBLIC_CHANNEL]] and to save byte-code than to look up what channel 0 is. Just my two cents. -- [[User:Kireji Haiku|Kireji Haiku]] 06:54, 31 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
::Kireji, YOU are the one undoing Wiki contributions. I am merely agreeing that the original style (I use the word loosely) chosen by contributors should be preserved unless there is a very good reason (basically an error) that needs correction. Your use of PUBLIC_CHANNEL is nothing more than a personal fad, and the Wiki is not the place for such indulgences. [[User:Omei Qunhua|Omei Qunhua]] 07:28, 31 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
:::I understand the point that in certain usage cases where using values instead of constant would have an advantage like when there&#039;s an [[integer]] [[Bit_field]]. However constants were created for reasons. And if you&#039;d know nothing about LSL (but you&#039;ve experienced Second Life and how scripts work) and had &amp;lt;code&amp;gt;llSay(PUBLIC_CHANNEL, &amp;quot;Hello!&amp;quot;);&amp;lt;/code&amp;gt; versus &amp;lt;code&amp;gt;llSay(0, &amp;quot;Hello!&amp;quot;);&amp;lt;/code&amp;gt;, I guess we can both agree that the first is easier to understand effect-wise. Now is there any non-personal arguement you&#039;d want to bring up against this? Or can we move on and keep the use of [[PUBLIC_CHANNEL]] for the simpler example scripts? -- &#039;&#039;&#039;[[User:Kireji_Haiku|Kireji Haiku]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Kireji_Haiku|talk]]|[[Special:Contributions/Kireji_Haiku|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 09:53, 2 May 2014 (PDT)&lt;br /&gt;
&lt;br /&gt;
== PUBLIC_CHANNEL vs Zero ==&lt;br /&gt;
Seeing as this topic hasn&#039;t settled down, it&#039;s time for the larger community to choose. I view their decision (even if it&#039;s Pie) as binding.&lt;br /&gt;
http://www.sluniverse.com/php/vb/scripting/91061-wiki-public_channel-vs-zero.html&lt;br /&gt;
-- &#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; 00:15, 1 January 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
:It isn&#039;t just about PUBLIC_CHANNEL. It is about one individual tampering with hundreds of perfectly valid existing scripts, purely to impose exceptional ideas they originated, regardless of the demonstrated preferences of hundreds of contributors, many of whom are probably no longer here to defend themselves. I thought you and I had agreed, Strife, that edits should not unnecessarily change script examples unless to correct definite errors. So, if I vote in your survey, it will be for zero, but the survey misses the important point. The survey should be &amp;quot;Should one individual be allowed to edit script examples purely to impose personal preferences, and not in order to fix problems?&amp;quot; A Wiki is supposed to be a collaborative project. When one person rampages through it, insisting on their own views on every conceivable page, it ceases to be collaborative. [[User:Omei Qunhua|Omei Qunhua]] 02:19, 1 January 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
::My goal is to start small and work our way up. If this gets things moving in a positive direction, good. If things degrade, the stage is set for the next act. Look at what Void said, we&#039;ve got the community thinking. -- &#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; 23:50, 1 January 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
== llRezAtRoot ==&lt;br /&gt;
&lt;br /&gt;
I think you missed the context, which is &amp;quot;offline building rights&amp;quot;, you can&#039;t be offline and on the land at the same time. -- &#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; 01:42, 4 January 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
:hummm. Well then, what is the correct wording for the note that effectively says &amp;quot;To have offline building rights, you need to allow everyone to build&amp;quot; ? And &amp;quot;Be&amp;quot; doesn&#039;t necessarily have to apply to an avatar, it can apply to the script doing the rezzing. No? [[User:Omei Qunhua|Omei Qunhua]] 03:46, 4 January 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
::Ahhh. I see my issue. I focused on the wrong part. It&#039;s still screwed up. I&#039;ll fix it. -- &#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; 21:07, 4 January 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
:That does look better. But i still don&#039;t fully understand (excuse me for being a bit thick). Why do I need OFFLINE building rights to run a script with llRezAtRoot?  Only if I&#039;m actually offline surely. Not while I&#039;m scripting and testing while online? [[User:Omei Qunhua|Omei Qunhua]] 08:27, 5 January 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
::I can&#039;t think of a situation where you would have build rights online and not offline but there may be one. There may be a gray goo restriction. -- &#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; 11:16, 5 January 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
:Oh dear :(  Then what is the significance of calling it &amp;quot;offline&amp;quot;? I had started to think this related to the observed situation where a script of mine can&#039;t rezz a prim unless I&#039;m online. If there&#039;s no difference between online and offline building rights, then just call it building rights, as it is usually known. No? [[User:Omei Qunhua|Omei Qunhua]] 11:54, 5 January 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
Thank you. Yes, English is not my native language. I know about my ortographic problems, but I don&#039;t know how to activate a corrector or something similar. How do I make errors to be highlighted? Please tell me, that will be a great help.&lt;br /&gt;
&lt;br /&gt;
--[[User:Anaimfinity Resident|Rays of green light. Bright and proud to be a Circassian]] 10:44, 3 February 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
== Memory Module ==&lt;br /&gt;
I&#039;m afraid your characterization of sim and viewer events as &#039;rare&#039; is inaccurate. It happens to thousands on a daily basis. Not to mention, the statement &amp;quot;such an event is likely to be more catastrophic than just the loss of variables would imply, it may not be worth trying guard against it.&amp;quot; is extremely misleading, bad practice, and really amounts to nothing more than an opinion. Script state rollbacks are not catastrophic. They only result in a lack of data.  Data which could be safeguarded against with the techniques described on the page. They certainly aren&#039;t the *only* way such safeguards can be implemented, but they are a valid way. If you think you know a better way, it would be more constructive to make a page about that, instead of vandalizing someone else&#039;s page.&lt;br /&gt;
&lt;br /&gt;
I had many problems with your original statements, but I had enough respect for you that I did not change any of your wording. I only added on balance. I expect the same respect from you. But if you touch it again, Gloves off.&lt;br /&gt;
&lt;br /&gt;
{{Unsigned|Darien Caldwell|2014-02-05 13:30:31 SLT}}&lt;br /&gt;
&lt;br /&gt;
::Please yourself. Care to sign your remarks here? And I certainly have problems with your wild assertions. You cannot possibly say categorically that &amp;quot;Script state rollbacks are not catastrophic.&amp;quot; That&#039;s just ridiculous. &amp;quot;vandalizing someone else&#039;s page.&amp;quot; A trifle over emotive? If you look at the page before I added the &amp;quot;tip&amp;quot; you&#039;ll see that seriously wrong impressions were given, i.e. that globals would always get reset on rezzing / logout-in. That needed addressing.  &amp;quot;It happens to thousands on a daily basis. &amp;quot;  That again sounds rather wild. Care to substantiate that? Fortunately never to me, nor to my clients that they have queried with me. [[User:Omei Qunhua|Omei Qunhua]] 15:54, 5 February 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
== re my script you corrected ==&lt;br /&gt;
&lt;br /&gt;
I use scripts in that user space for teaching purposes.  Thank you for posting the answers to what I expect the students to do to it in  my user space, however I am taking that down so when I teach next week the page is waiting for them to fix it.  Sorry if you misunderstood the use of teaching scripts in personal user space.  [[User:Toady Nakamura|Toady Nakamura]] 14:14, 11 March 2014 (PDT)&lt;br /&gt;
&lt;br /&gt;
::Could you point me to what you mean by &amp;quot;that user space&amp;quot;, Toady? I would be most most surprised if I&#039;ve edited any example within personal user space, as I&#039;ve always taken great care not to do that on the Wiki. Your recent edits don&#039;t seem to be involved in undoing any edit of mine. Thanks. [[User:Omei Qunhua|Omei Qunhua]] 08:30, 12 March 2014 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Checking that a Notecard exists in object inventory  ==&lt;br /&gt;
&lt;br /&gt;
What if the notecard isn&#039;t full perms, will llGetInventoryKey return a non-null value? -- &#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; 20:19, 1 May 2014 (PDT)&lt;br /&gt;
&lt;br /&gt;
::Hummm, no, a no-mod NC returns a null key. So what is the best way of guarding against a never-saved nc? [[User:Omei Qunhua|Omei Qunhua]] 02:29, 2 May 2014 (PDT)&lt;br /&gt;
&lt;br /&gt;
:::An asset is not created until a notecard is saved. -- &#039;&#039;&#039;[[User:Kireji_Haiku|Kireji Haiku]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Kireji_Haiku|talk]]|[[Special:Contributions/Kireji_Haiku|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 09:53, 2 May 2014 (PDT)&lt;/div&gt;</summary>
		<author><name>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:SimpleDialogMenuSystem&amp;diff=1189388</id>
		<title>Talk:SimpleDialogMenuSystem</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:SimpleDialogMenuSystem&amp;diff=1189388"/>
		<updated>2014-04-12T13:13:56Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== List of Changes Made ==&lt;br /&gt;
List of line changes from top to bottom:&lt;br /&gt;
* float Timeout= 60; &#039;&#039;&#039;&#039;&#039;TO&#039;&#039;&#039;&#039;&#039; float Timeout = 60.0;&lt;br /&gt;
** To make it a true float value.&lt;br /&gt;
* giveDialog(key ID, integer pageNum) { &#039;&#039;&#039;&#039;&#039;TO&#039;&#039;&#039;&#039;&#039; giveDialog(key ID) {&lt;br /&gt;
** pageNum was declared as a global variable and is not needed as a local in the function.&lt;br /&gt;
* llDialog(ID, &amp;quot;Page &amp;quot;+(string)pageNum+&amp;quot;\nChoose one:&amp;quot;, buttons, channel_dialog); &#039;&#039;&#039;&#039;&#039;TO&#039;&#039;&#039;&#039;&#039; llDialog(ID, &amp;quot;Page &amp;quot;+(string)pageNum+&amp;quot;\n&amp;quot;+msg, buttons, channel_dialog);&lt;br /&gt;
** What is the point in having string msg declared at the top if not using it?&lt;br /&gt;
* llSetTimerEvent(0); &#039;&#039;&#039;&#039;&#039;TO&#039;&#039;&#039;&#039;&#039; llSetTimerEvent(0.0);&lt;br /&gt;
** To make it a true float value.&lt;br /&gt;
* giveDialog(ToucherID, pageNum); &#039;&#039;&#039;&#039;&#039;TO&#039;&#039;&#039;&#039;&#039; giveDialog(ToucherID);&lt;br /&gt;
** This refers to the ones in the listen section. As stated above, pageNum was declared as a global variable.&lt;br /&gt;
* llListenRemove(listen_id) &#039;&#039;&#039;&#039;&#039;TO&#039;&#039;&#039;&#039;&#039; CancelListen();&lt;br /&gt;
** In the timer section. Might as well.&lt;br /&gt;
&lt;br /&gt;
I also moved one line:&lt;br /&gt;
* llSetTimerEvent(Timeout);&lt;br /&gt;
From touch_start to giveDialog. Reason being, if someone chose the &amp;quot;Next&amp;quot; or &amp;quot;Prev&amp;quot; page, it would give them the dialog again, but would not reset the timer. In other words, if it took someone 50 seconds to decide to push the &amp;quot;Next&amp;quot; page button, they would then only have 10 seconds to choose a button. If they decided to go to the next page again, or go to the previous page, that would leave them even less time. I thought about doing the same for:&lt;br /&gt;
* listen_id = llListen( channel_dialog, &amp;quot;&amp;quot;, ToucherID, &amp;quot;&amp;quot;);&lt;br /&gt;
As if someone were to push the &amp;quot;Back&amp;quot; button, it would remove the listen and would have to be declared again if they were redirected to another menu. However, I realized the creator/user of the script may not use the giveDialog function to give them the previous menu, and decided not to change this.&lt;br /&gt;
&lt;br /&gt;
[[User:L1ghtsh0wz3n Resident|L1ghtsh0wz3n Resident]] 10:44, 9 November 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
:It&#039;s got other bugs, if you spam click it, triggering multiple touch_start events, it will leak listens to the point you crash the script. pageNum shouldn&#039;t have been made a global, it should have remained a local but the entire design leaves much to be desired and your solution is valid. The script needs to be rewritten. Keep up the good work. -- &#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; 11:28, 9 November 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
::Thank you for the reply. Though the script has since be rewritten, I am glad that the changes I made were valid. [[User:L1ghtsh0wz3n Resident|L1ghtsh0wz3n Resident]] 09:34, 15 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
== Suggested Rewrite ==&lt;br /&gt;
&lt;br /&gt;
What would people think of this possible version? It uses state changes to preclude other users triggering touches while one user is accessing the dialogs, and the state change is also used to kill any/all open listeners. [[User:Omei Qunhua|Omei Qunhua]] 14:25, 12 December 2013 (PST)&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Multi-Page Dialog Menu System&lt;br /&gt;
&lt;br /&gt;
// Omei Qunhua December 2013&lt;br /&gt;
&lt;br /&gt;
integer    gActionsPerPage = 9;           // Number of action choice buttons per menu page (must be 1 to 10, or 12)&lt;br /&gt;
list       gListActions = [&amp;quot;A&amp;quot;,&amp;quot;B&amp;quot;,&amp;quot;C&amp;quot;,&amp;quot;D&amp;quot;,&amp;quot;E&amp;quot;,&amp;quot;F&amp;quot;,&amp;quot;G&amp;quot;,&amp;quot;H&amp;quot;,&amp;quot;I&amp;quot;,&amp;quot;J&amp;quot;,&amp;quot;K&amp;quot;,&amp;quot;L&amp;quot;,&amp;quot;M&amp;quot;,&amp;quot;N&amp;quot;,&amp;quot;O&amp;quot;,&amp;quot;P&amp;quot;,&amp;quot;Q&amp;quot;,&amp;quot;R&amp;quot;,&amp;quot;S&amp;quot;,&amp;quot;T&amp;quot;,&amp;quot;U&amp;quot;,&amp;quot;V&amp;quot;,&amp;quot;W&amp;quot;,&amp;quot;Y&amp;quot;,&amp;quot;Z&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
// ========================================================================================================&lt;br /&gt;
&lt;br /&gt;
integer    gTotalActions;             &lt;br /&gt;
integer    gPage;                     // Current dialog page number (counting from zero)&lt;br /&gt;
integer    gMaxPage;                  // Highest page number (counting from zero)&lt;br /&gt;
integer    gChan;                     // Channel used for dialog communications. &lt;br /&gt;
key        gUser;                     // Current user accessing the dialogs &lt;br /&gt;
&lt;br /&gt;
BuildDialogPage(key user)&lt;br /&gt;
{&lt;br /&gt;
    // Build a dialog menu for current page for given user&lt;br /&gt;
    integer start = gActionsPerPage * gPage;       // starting offset into action list for current page&lt;br /&gt;
    // set up scrolling buttons as needed&lt;br /&gt;
    list buttons = [ &amp;quot;&amp;lt;&amp;lt;&amp;quot;, &amp;quot; &amp;quot;, &amp;quot;&amp;gt;&amp;gt;&amp;quot; ];&lt;br /&gt;
    if (gActionsPerPage == 10)           buttons = [ &amp;quot;&amp;lt;&amp;lt;&amp;quot;, &amp;quot;&amp;gt;&amp;gt;&amp;quot; ];&lt;br /&gt;
    else if (gActionsPerPage &amp;gt; 10)       buttons = [];          // No room for paging buttons&lt;br /&gt;
&lt;br /&gt;
    // &#039;start + gActionsPerPage -1&#039; might point beyond the end of the list -&lt;br /&gt;
    // - but LSL stops at the list end, without throwing a wobbly&lt;br /&gt;
    buttons += llList2List(gListActions, start, start + gActionsPerPage - 1);&lt;br /&gt;
    llDialog(user, &amp;quot;\nPage &amp;quot; + (string) (gPage+1) + &amp;quot; of &amp;quot; + (string) (gMaxPage + 1) + &amp;quot;\n\nChoose an action&amp;quot;, buttons, gChan);&lt;br /&gt;
    llSetTimerEvent(60);              // If no response in time, return to &#039;ready&#039; state&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        gTotalActions = (gListActions != [] );        // get length of action list&lt;br /&gt;
&lt;br /&gt;
        // Validate &#039;ActionsPerPage&#039; value&lt;br /&gt;
        if (gActionsPerPage &amp;lt; 1 || gActionsPerPage &amp;gt; 12)&lt;br /&gt;
        {&lt;br /&gt;
            llOwnerSay(&amp;quot;Invalid &#039;gActionsPerPage&#039; - must be 1 to 12&amp;quot;);&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // Compute number of menu pages that will be available&lt;br /&gt;
        gMaxPage = (gTotalActions - 1) / gActionsPerPage;&lt;br /&gt;
        if (gActionsPerPage &amp;gt; 10)&lt;br /&gt;
        {&lt;br /&gt;
            gMaxPage = 0;&lt;br /&gt;
            if (gTotalActions &amp;gt; gActionsPerPage)&lt;br /&gt;
            {&lt;br /&gt;
                llOwnerSay(&amp;quot;Too many actions in total for this ActionsPerPage setting&amp;quot;);&lt;br /&gt;
                return;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // Compute a negative communications channel based on prim UUID&lt;br /&gt;
        gChan = 0x80000000 | (integer) ( &amp;quot;0x&amp;quot; + (string) llGetKey() );&lt;br /&gt;
        state ready;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
state ready&lt;br /&gt;
{&lt;br /&gt;
    touch_end(integer total_number)&lt;br /&gt;
    {&lt;br /&gt;
        gUser = llDetectedKey(0);&lt;br /&gt;
        state busy;                                    &lt;br /&gt;
        // Changing state sets the application to a busy condition while one user is selecting from the dialogs&lt;br /&gt;
        // In the event of multiple &#039;simultaneous&#039; touches, only one user will get a dialog&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
state busy&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llListen(gChan, &amp;quot;&amp;quot;, gUser, &amp;quot;&amp;quot;);                // This listener will be used throughout this state&lt;br /&gt;
        gPage = 0;&lt;br /&gt;
        BuildDialogPage(gUser);                        // Show  Page 0 dialog to current user&lt;br /&gt;
    }&lt;br /&gt;
    listen (integer chan, string name, key id, string msg)&lt;br /&gt;
    {&lt;br /&gt;
        if (msg == &amp;quot;&amp;lt;&amp;lt;&amp;quot; || msg == &amp;quot;&amp;gt;&amp;gt;&amp;quot;)                   // Page change ...&lt;br /&gt;
        {&lt;br /&gt;
            if (msg == &amp;quot;&amp;lt;&amp;lt;&amp;quot;)        --gPage;              // Page back&lt;br /&gt;
            if (msg == &amp;quot;&amp;gt;&amp;gt;&amp;quot;)        ++gPage;              // Page forward&lt;br /&gt;
            if (gPage &amp;lt; 0)          gPage = gMaxPage;     // cycle around pages&lt;br /&gt;
            if (gPage &amp;gt; gMaxPage)   gPage = 0;&lt;br /&gt;
            BuildDialogPage(id);&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        if (msg != &amp;quot; &amp;quot;)                                  // no action on blank menu button&lt;br /&gt;
        {&lt;br /&gt;
            // User has selected an action from the menu&lt;br /&gt;
            llRegionSayTo(id, 0, &amp;quot;You chose action &amp;lt;&amp;quot; + msg + &amp;quot;&amp;gt;&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        state ready;         // changing state will release ANY and ALL open listeners&lt;br /&gt;
    }&lt;br /&gt;
    timer()&lt;br /&gt;
    {&lt;br /&gt;
        llRegionSayTo(gUser, 0, &amp;quot;Too slow, menu cancelled&amp;quot;);&lt;br /&gt;
        state ready;&lt;br /&gt;
    }&lt;br /&gt;
    state_exit()&lt;br /&gt;
    {&lt;br /&gt;
        llSetTimerEvent(0);          // would be dangerous to leave a dormant timer&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Looks good. I&#039;ve made one small change: I know 11 isn&#039;t supported but I think it would be better to not explode if the user is dumb enough to enable it.&lt;br /&gt;
:Is the reason for the loop instead of llList2List to force the buttons to be strings? -- &#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; 15:43, 12 December 2013 (PST)&lt;br /&gt;
::Oh you&#039;re right! Of course I should have used llList2List(). TY. Fair enough on 11. [[User:Omei Qunhua|Omei Qunhua]] 15:53, 12 December 2013 (PST)&lt;br /&gt;
:What a stunt with all that undo action! Anyhow, instead of getting carried away try implementing this next time. &amp;lt;lsl&amp;gt;if (message == &amp;quot;&amp;lt;&amp;lt;&amp;quot;) pageIndex = --pageIndex % numberOfPages;&amp;lt;/lsl&amp;gt; and &amp;lt;lsl&amp;gt;if (message == &amp;quot;&amp;gt;&amp;gt;&amp;quot;) pageIndex = ++pageIndex % numberOfPages;&amp;lt;/lsl&amp;gt; -- &#039;&#039;&#039;[[User:Kireji_Haiku|Kireji Haiku]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Kireji_Haiku|talk]]|[[Special:Contributions/Kireji_Haiku|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 13:36, 8 April 2014 (PDT)&lt;br /&gt;
&lt;br /&gt;
:::No thank you. I prefer code that works. Neither of your above snippets do. There isn&#039;t a page -1 (try cycling backwards), and it might be kinder to page 0 not to skip it when cycling forward. [[User:Omei Qunhua|Omei Qunhua]] 04:30, 10 April 2014 (PDT)&lt;br /&gt;
&lt;br /&gt;
::::Yep, the code doesn&#039;t work with your assuptions because of the offset of the example code. Though, if you take a zero-based index and the items total count from a list it works just fine. -- &#039;&#039;&#039;[[User:Kireji_Haiku|Kireji Haiku]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Kireji_Haiku|talk]]|[[Special:Contributions/Kireji_Haiku|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 10:15, 10 April 2014 (PDT)&lt;br /&gt;
&lt;br /&gt;
:Kireji, we are NOT cycling around a list. We are computing a page number. I like the way you say &amp;quot;your assumptions&amp;quot; ... whose code was it? LOL. [[User:Omei Qunhua|Omei Qunhua]] 13:57, 10 April 2014 (PDT)&lt;br /&gt;
&lt;br /&gt;
::It&#039;s your code here we are talking about. Actually you are cycling a list. You are cycling through pages in a list of pages. If you&#039;d compute the index off a zero-index, the total number of pages and the incrementing/decrementing as described above, code works just fine. See example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
list    pages = [&amp;quot;one&amp;quot;, &amp;quot;two&amp;quot;, &amp;quot;three&amp;quot;, &amp;quot;four&amp;quot;, &amp;quot;five&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
integer count = 5;// for simplicity&#039;s sake of the example&lt;br /&gt;
integer index;&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    touch_end(integer num_detected)&lt;br /&gt;
    {&lt;br /&gt;
        index = ++index % count;&lt;br /&gt;
&lt;br /&gt;
        llSay(PUBLIC_CHANNEL, &amp;quot;We are on page &amp;quot; + llList2String(pages, index) + &amp;quot;.&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-- &#039;&#039;&#039;[[User:Kireji_Haiku|Kireji Haiku]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Kireji_Haiku|talk]]|[[Special:Contributions/Kireji_Haiku|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 14:33, 10 April 2014 (PDT)&lt;br /&gt;
&lt;br /&gt;
Exactly, it&#039;s my code, so you are the one making assumptions. I pointed out that your snippets don&#039;t work in MY code. End of story.  [[User:Omei Qunhua|Omei Qunhua]] 15:18, 10 April 2014 (PDT)&lt;br /&gt;
&lt;br /&gt;
Ok, you&#039;re not even trying to understand. If you had tried, you&#039;d see that you can drop a conditional check here and there. Cheers! -- &#039;&#039;&#039;[[User:Kireji_Haiku|Kireji Haiku]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Kireji_Haiku|talk]]|[[Special:Contributions/Kireji_Haiku|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 06:13, 12 April 2014 (PDT)&lt;/div&gt;</summary>
		<author><name>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:SimpleDialogMenuSystem&amp;diff=1189354</id>
		<title>Talk:SimpleDialogMenuSystem</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:SimpleDialogMenuSystem&amp;diff=1189354"/>
		<updated>2014-04-10T21:33:32Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== List of Changes Made ==&lt;br /&gt;
List of line changes from top to bottom:&lt;br /&gt;
* float Timeout= 60; &#039;&#039;&#039;&#039;&#039;TO&#039;&#039;&#039;&#039;&#039; float Timeout = 60.0;&lt;br /&gt;
** To make it a true float value.&lt;br /&gt;
* giveDialog(key ID, integer pageNum) { &#039;&#039;&#039;&#039;&#039;TO&#039;&#039;&#039;&#039;&#039; giveDialog(key ID) {&lt;br /&gt;
** pageNum was declared as a global variable and is not needed as a local in the function.&lt;br /&gt;
* llDialog(ID, &amp;quot;Page &amp;quot;+(string)pageNum+&amp;quot;\nChoose one:&amp;quot;, buttons, channel_dialog); &#039;&#039;&#039;&#039;&#039;TO&#039;&#039;&#039;&#039;&#039; llDialog(ID, &amp;quot;Page &amp;quot;+(string)pageNum+&amp;quot;\n&amp;quot;+msg, buttons, channel_dialog);&lt;br /&gt;
** What is the point in having string msg declared at the top if not using it?&lt;br /&gt;
* llSetTimerEvent(0); &#039;&#039;&#039;&#039;&#039;TO&#039;&#039;&#039;&#039;&#039; llSetTimerEvent(0.0);&lt;br /&gt;
** To make it a true float value.&lt;br /&gt;
* giveDialog(ToucherID, pageNum); &#039;&#039;&#039;&#039;&#039;TO&#039;&#039;&#039;&#039;&#039; giveDialog(ToucherID);&lt;br /&gt;
** This refers to the ones in the listen section. As stated above, pageNum was declared as a global variable.&lt;br /&gt;
* llListenRemove(listen_id) &#039;&#039;&#039;&#039;&#039;TO&#039;&#039;&#039;&#039;&#039; CancelListen();&lt;br /&gt;
** In the timer section. Might as well.&lt;br /&gt;
&lt;br /&gt;
I also moved one line:&lt;br /&gt;
* llSetTimerEvent(Timeout);&lt;br /&gt;
From touch_start to giveDialog. Reason being, if someone chose the &amp;quot;Next&amp;quot; or &amp;quot;Prev&amp;quot; page, it would give them the dialog again, but would not reset the timer. In other words, if it took someone 50 seconds to decide to push the &amp;quot;Next&amp;quot; page button, they would then only have 10 seconds to choose a button. If they decided to go to the next page again, or go to the previous page, that would leave them even less time. I thought about doing the same for:&lt;br /&gt;
* listen_id = llListen( channel_dialog, &amp;quot;&amp;quot;, ToucherID, &amp;quot;&amp;quot;);&lt;br /&gt;
As if someone were to push the &amp;quot;Back&amp;quot; button, it would remove the listen and would have to be declared again if they were redirected to another menu. However, I realized the creator/user of the script may not use the giveDialog function to give them the previous menu, and decided not to change this.&lt;br /&gt;
&lt;br /&gt;
[[User:L1ghtsh0wz3n Resident|L1ghtsh0wz3n Resident]] 10:44, 9 November 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
:It&#039;s got other bugs, if you spam click it, triggering multiple touch_start events, it will leak listens to the point you crash the script. pageNum shouldn&#039;t have been made a global, it should have remained a local but the entire design leaves much to be desired and your solution is valid. The script needs to be rewritten. Keep up the good work. -- &#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; 11:28, 9 November 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
::Thank you for the reply. Though the script has since be rewritten, I am glad that the changes I made were valid. [[User:L1ghtsh0wz3n Resident|L1ghtsh0wz3n Resident]] 09:34, 15 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
== Suggested Rewrite ==&lt;br /&gt;
&lt;br /&gt;
What would people think of this possible version? It uses state changes to preclude other users triggering touches while one user is accessing the dialogs, and the state change is also used to kill any/all open listeners. [[User:Omei Qunhua|Omei Qunhua]] 14:25, 12 December 2013 (PST)&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Multi-Page Dialog Menu System&lt;br /&gt;
&lt;br /&gt;
// Omei Qunhua December 2013&lt;br /&gt;
&lt;br /&gt;
integer    gActionsPerPage = 9;           // Number of action choice buttons per menu page (must be 1 to 10, or 12)&lt;br /&gt;
list       gListActions = [&amp;quot;A&amp;quot;,&amp;quot;B&amp;quot;,&amp;quot;C&amp;quot;,&amp;quot;D&amp;quot;,&amp;quot;E&amp;quot;,&amp;quot;F&amp;quot;,&amp;quot;G&amp;quot;,&amp;quot;H&amp;quot;,&amp;quot;I&amp;quot;,&amp;quot;J&amp;quot;,&amp;quot;K&amp;quot;,&amp;quot;L&amp;quot;,&amp;quot;M&amp;quot;,&amp;quot;N&amp;quot;,&amp;quot;O&amp;quot;,&amp;quot;P&amp;quot;,&amp;quot;Q&amp;quot;,&amp;quot;R&amp;quot;,&amp;quot;S&amp;quot;,&amp;quot;T&amp;quot;,&amp;quot;U&amp;quot;,&amp;quot;V&amp;quot;,&amp;quot;W&amp;quot;,&amp;quot;Y&amp;quot;,&amp;quot;Z&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
// ========================================================================================================&lt;br /&gt;
&lt;br /&gt;
integer    gTotalActions;             &lt;br /&gt;
integer    gPage;                     // Current dialog page number (counting from zero)&lt;br /&gt;
integer    gMaxPage;                  // Highest page number (counting from zero)&lt;br /&gt;
integer    gChan;                     // Channel used for dialog communications. &lt;br /&gt;
key        gUser;                     // Current user accessing the dialogs &lt;br /&gt;
&lt;br /&gt;
BuildDialogPage(key user)&lt;br /&gt;
{&lt;br /&gt;
    // Build a dialog menu for current page for given user&lt;br /&gt;
    integer start = gActionsPerPage * gPage;       // starting offset into action list for current page&lt;br /&gt;
    // set up scrolling buttons as needed&lt;br /&gt;
    list buttons = [ &amp;quot;&amp;lt;&amp;lt;&amp;quot;, &amp;quot; &amp;quot;, &amp;quot;&amp;gt;&amp;gt;&amp;quot; ];&lt;br /&gt;
    if (gActionsPerPage == 10)           buttons = [ &amp;quot;&amp;lt;&amp;lt;&amp;quot;, &amp;quot;&amp;gt;&amp;gt;&amp;quot; ];&lt;br /&gt;
    else if (gActionsPerPage &amp;gt; 10)       buttons = [];          // No room for paging buttons&lt;br /&gt;
&lt;br /&gt;
    // &#039;start + gActionsPerPage -1&#039; might point beyond the end of the list -&lt;br /&gt;
    // - but LSL stops at the list end, without throwing a wobbly&lt;br /&gt;
    buttons += llList2List(gListActions, start, start + gActionsPerPage - 1);&lt;br /&gt;
    llDialog(user, &amp;quot;\nPage &amp;quot; + (string) (gPage+1) + &amp;quot; of &amp;quot; + (string) (gMaxPage + 1) + &amp;quot;\n\nChoose an action&amp;quot;, buttons, gChan);&lt;br /&gt;
    llSetTimerEvent(60);              // If no response in time, return to &#039;ready&#039; state&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        gTotalActions = (gListActions != [] );        // get length of action list&lt;br /&gt;
&lt;br /&gt;
        // Validate &#039;ActionsPerPage&#039; value&lt;br /&gt;
        if (gActionsPerPage &amp;lt; 1 || gActionsPerPage &amp;gt; 12)&lt;br /&gt;
        {&lt;br /&gt;
            llOwnerSay(&amp;quot;Invalid &#039;gActionsPerPage&#039; - must be 1 to 12&amp;quot;);&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // Compute number of menu pages that will be available&lt;br /&gt;
        gMaxPage = (gTotalActions - 1) / gActionsPerPage;&lt;br /&gt;
        if (gActionsPerPage &amp;gt; 10)&lt;br /&gt;
        {&lt;br /&gt;
            gMaxPage = 0;&lt;br /&gt;
            if (gTotalActions &amp;gt; gActionsPerPage)&lt;br /&gt;
            {&lt;br /&gt;
                llOwnerSay(&amp;quot;Too many actions in total for this ActionsPerPage setting&amp;quot;);&lt;br /&gt;
                return;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // Compute a negative communications channel based on prim UUID&lt;br /&gt;
        gChan = 0x80000000 | (integer) ( &amp;quot;0x&amp;quot; + (string) llGetKey() );&lt;br /&gt;
        state ready;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
state ready&lt;br /&gt;
{&lt;br /&gt;
    touch_end(integer total_number)&lt;br /&gt;
    {&lt;br /&gt;
        gUser = llDetectedKey(0);&lt;br /&gt;
        state busy;                                    &lt;br /&gt;
        // Changing state sets the application to a busy condition while one user is selecting from the dialogs&lt;br /&gt;
        // In the event of multiple &#039;simultaneous&#039; touches, only one user will get a dialog&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
state busy&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llListen(gChan, &amp;quot;&amp;quot;, gUser, &amp;quot;&amp;quot;);                // This listener will be used throughout this state&lt;br /&gt;
        gPage = 0;&lt;br /&gt;
        BuildDialogPage(gUser);                        // Show  Page 0 dialog to current user&lt;br /&gt;
    }&lt;br /&gt;
    listen (integer chan, string name, key id, string msg)&lt;br /&gt;
    {&lt;br /&gt;
        if (msg == &amp;quot;&amp;lt;&amp;lt;&amp;quot; || msg == &amp;quot;&amp;gt;&amp;gt;&amp;quot;)                   // Page change ...&lt;br /&gt;
        {&lt;br /&gt;
            if (msg == &amp;quot;&amp;lt;&amp;lt;&amp;quot;)        --gPage;              // Page back&lt;br /&gt;
            if (msg == &amp;quot;&amp;gt;&amp;gt;&amp;quot;)        ++gPage;              // Page forward&lt;br /&gt;
            if (gPage &amp;lt; 0)          gPage = gMaxPage;     // cycle around pages&lt;br /&gt;
            if (gPage &amp;gt; gMaxPage)   gPage = 0;&lt;br /&gt;
            BuildDialogPage(id);&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        if (msg != &amp;quot; &amp;quot;)                                  // no action on blank menu button&lt;br /&gt;
        {&lt;br /&gt;
            // User has selected an action from the menu&lt;br /&gt;
            llRegionSayTo(id, 0, &amp;quot;You chose action &amp;lt;&amp;quot; + msg + &amp;quot;&amp;gt;&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        state ready;         // changing state will release ANY and ALL open listeners&lt;br /&gt;
    }&lt;br /&gt;
    timer()&lt;br /&gt;
    {&lt;br /&gt;
        llRegionSayTo(gUser, 0, &amp;quot;Too slow, menu cancelled&amp;quot;);&lt;br /&gt;
        state ready;&lt;br /&gt;
    }&lt;br /&gt;
    state_exit()&lt;br /&gt;
    {&lt;br /&gt;
        llSetTimerEvent(0);          // would be dangerous to leave a dormant timer&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Looks good. I&#039;ve made one small change: I know 11 isn&#039;t supported but I think it would be better to not explode if the user is dumb enough to enable it.&lt;br /&gt;
:Is the reason for the loop instead of llList2List to force the buttons to be strings? -- &#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; 15:43, 12 December 2013 (PST)&lt;br /&gt;
::Oh you&#039;re right! Of course I should have used llList2List(). TY. Fair enough on 11. [[User:Omei Qunhua|Omei Qunhua]] 15:53, 12 December 2013 (PST)&lt;br /&gt;
:What a stunt with all that undo action! Anyhow, instead of getting carried away try implementing this next time. &amp;lt;lsl&amp;gt;if (message == &amp;quot;&amp;lt;&amp;lt;&amp;quot;) pageIndex = --pageIndex % numberOfPages;&amp;lt;/lsl&amp;gt; and &amp;lt;lsl&amp;gt;if (message == &amp;quot;&amp;gt;&amp;gt;&amp;quot;) pageIndex = ++pageIndex % numberOfPages;&amp;lt;/lsl&amp;gt; -- &#039;&#039;&#039;[[User:Kireji_Haiku|Kireji Haiku]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Kireji_Haiku|talk]]|[[Special:Contributions/Kireji_Haiku|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 13:36, 8 April 2014 (PDT)&lt;br /&gt;
&lt;br /&gt;
:::No thank you. I prefer code that works. Neither of your above snippets do. There isn&#039;t a page -1 (try cycling backwards), and it might be kinder to page 0 not to skip it when cycling forward. [[User:Omei Qunhua|Omei Qunhua]] 04:30, 10 April 2014 (PDT)&lt;br /&gt;
&lt;br /&gt;
::::Yep, the code doesn&#039;t work with your assuptions because of the offset of the example code. Though, if you take a zero-based index and the items total count from a list it works just fine. -- &#039;&#039;&#039;[[User:Kireji_Haiku|Kireji Haiku]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Kireji_Haiku|talk]]|[[Special:Contributions/Kireji_Haiku|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 10:15, 10 April 2014 (PDT)&lt;br /&gt;
&lt;br /&gt;
:Kireji, we are NOT cycling around a list. We are computing a page number. I like the way you say &amp;quot;your assumptions&amp;quot; ... whose code was it? LOL. [[User:Omei Qunhua|Omei Qunhua]] 13:57, 10 April 2014 (PDT)&lt;br /&gt;
&lt;br /&gt;
::It&#039;s your code here we are talking about. Actually you are cycling a list. You are cycling through pages in a list of pages. If you&#039;d compute the index off a zero-index, the total number of pages and the incrementing/decrementing as described above, code works just fine. See example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
list    pages = [&amp;quot;one&amp;quot;, &amp;quot;two&amp;quot;, &amp;quot;three&amp;quot;, &amp;quot;four&amp;quot;, &amp;quot;five&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
integer count = 5;// for simplicity&#039;s sake of the example&lt;br /&gt;
integer index;&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    touch_end(integer num_detected)&lt;br /&gt;
    {&lt;br /&gt;
        index = ++index % count;&lt;br /&gt;
&lt;br /&gt;
        llSay(PUBLIC_CHANNEL, &amp;quot;We are on page &amp;quot; + llList2String(pages, index) + &amp;quot;.&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-- &#039;&#039;&#039;[[User:Kireji_Haiku|Kireji Haiku]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Kireji_Haiku|talk]]|[[Special:Contributions/Kireji_Haiku|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 14:33, 10 April 2014 (PDT)&lt;/div&gt;</summary>
		<author><name>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:SimpleDialogMenuSystem&amp;diff=1189339</id>
		<title>Talk:SimpleDialogMenuSystem</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:SimpleDialogMenuSystem&amp;diff=1189339"/>
		<updated>2014-04-10T17:15:24Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: /* Suggested Rewrite */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== List of Changes Made ==&lt;br /&gt;
List of line changes from top to bottom:&lt;br /&gt;
* float Timeout= 60; &#039;&#039;&#039;&#039;&#039;TO&#039;&#039;&#039;&#039;&#039; float Timeout = 60.0;&lt;br /&gt;
** To make it a true float value.&lt;br /&gt;
* giveDialog(key ID, integer pageNum) { &#039;&#039;&#039;&#039;&#039;TO&#039;&#039;&#039;&#039;&#039; giveDialog(key ID) {&lt;br /&gt;
** pageNum was declared as a global variable and is not needed as a local in the function.&lt;br /&gt;
* llDialog(ID, &amp;quot;Page &amp;quot;+(string)pageNum+&amp;quot;\nChoose one:&amp;quot;, buttons, channel_dialog); &#039;&#039;&#039;&#039;&#039;TO&#039;&#039;&#039;&#039;&#039; llDialog(ID, &amp;quot;Page &amp;quot;+(string)pageNum+&amp;quot;\n&amp;quot;+msg, buttons, channel_dialog);&lt;br /&gt;
** What is the point in having string msg declared at the top if not using it?&lt;br /&gt;
* llSetTimerEvent(0); &#039;&#039;&#039;&#039;&#039;TO&#039;&#039;&#039;&#039;&#039; llSetTimerEvent(0.0);&lt;br /&gt;
** To make it a true float value.&lt;br /&gt;
* giveDialog(ToucherID, pageNum); &#039;&#039;&#039;&#039;&#039;TO&#039;&#039;&#039;&#039;&#039; giveDialog(ToucherID);&lt;br /&gt;
** This refers to the ones in the listen section. As stated above, pageNum was declared as a global variable.&lt;br /&gt;
* llListenRemove(listen_id) &#039;&#039;&#039;&#039;&#039;TO&#039;&#039;&#039;&#039;&#039; CancelListen();&lt;br /&gt;
** In the timer section. Might as well.&lt;br /&gt;
&lt;br /&gt;
I also moved one line:&lt;br /&gt;
* llSetTimerEvent(Timeout);&lt;br /&gt;
From touch_start to giveDialog. Reason being, if someone chose the &amp;quot;Next&amp;quot; or &amp;quot;Prev&amp;quot; page, it would give them the dialog again, but would not reset the timer. In other words, if it took someone 50 seconds to decide to push the &amp;quot;Next&amp;quot; page button, they would then only have 10 seconds to choose a button. If they decided to go to the next page again, or go to the previous page, that would leave them even less time. I thought about doing the same for:&lt;br /&gt;
* listen_id = llListen( channel_dialog, &amp;quot;&amp;quot;, ToucherID, &amp;quot;&amp;quot;);&lt;br /&gt;
As if someone were to push the &amp;quot;Back&amp;quot; button, it would remove the listen and would have to be declared again if they were redirected to another menu. However, I realized the creator/user of the script may not use the giveDialog function to give them the previous menu, and decided not to change this.&lt;br /&gt;
&lt;br /&gt;
[[User:L1ghtsh0wz3n Resident|L1ghtsh0wz3n Resident]] 10:44, 9 November 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
:It&#039;s got other bugs, if you spam click it, triggering multiple touch_start events, it will leak listens to the point you crash the script. pageNum shouldn&#039;t have been made a global, it should have remained a local but the entire design leaves much to be desired and your solution is valid. The script needs to be rewritten. Keep up the good work. -- &#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; 11:28, 9 November 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
::Thank you for the reply. Though the script has since be rewritten, I am glad that the changes I made were valid. [[User:L1ghtsh0wz3n Resident|L1ghtsh0wz3n Resident]] 09:34, 15 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
== Suggested Rewrite ==&lt;br /&gt;
&lt;br /&gt;
What would people think of this possible version? It uses state changes to preclude other users triggering touches while one user is accessing the dialogs, and the state change is also used to kill any/all open listeners. [[User:Omei Qunhua|Omei Qunhua]] 14:25, 12 December 2013 (PST)&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Multi-Page Dialog Menu System&lt;br /&gt;
&lt;br /&gt;
// Omei Qunhua December 2013&lt;br /&gt;
&lt;br /&gt;
integer    gActionsPerPage = 9;           // Number of action choice buttons per menu page (must be 1 to 10, or 12)&lt;br /&gt;
list       gListActions = [&amp;quot;A&amp;quot;,&amp;quot;B&amp;quot;,&amp;quot;C&amp;quot;,&amp;quot;D&amp;quot;,&amp;quot;E&amp;quot;,&amp;quot;F&amp;quot;,&amp;quot;G&amp;quot;,&amp;quot;H&amp;quot;,&amp;quot;I&amp;quot;,&amp;quot;J&amp;quot;,&amp;quot;K&amp;quot;,&amp;quot;L&amp;quot;,&amp;quot;M&amp;quot;,&amp;quot;N&amp;quot;,&amp;quot;O&amp;quot;,&amp;quot;P&amp;quot;,&amp;quot;Q&amp;quot;,&amp;quot;R&amp;quot;,&amp;quot;S&amp;quot;,&amp;quot;T&amp;quot;,&amp;quot;U&amp;quot;,&amp;quot;V&amp;quot;,&amp;quot;W&amp;quot;,&amp;quot;Y&amp;quot;,&amp;quot;Z&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
// ========================================================================================================&lt;br /&gt;
&lt;br /&gt;
integer    gTotalActions;             &lt;br /&gt;
integer    gPage;                     // Current dialog page number (counting from zero)&lt;br /&gt;
integer    gMaxPage;                  // Highest page number (counting from zero)&lt;br /&gt;
integer    gChan;                     // Channel used for dialog communications. &lt;br /&gt;
key        gUser;                     // Current user accessing the dialogs &lt;br /&gt;
&lt;br /&gt;
BuildDialogPage(key user)&lt;br /&gt;
{&lt;br /&gt;
    // Build a dialog menu for current page for given user&lt;br /&gt;
    integer start = gActionsPerPage * gPage;       // starting offset into action list for current page&lt;br /&gt;
    // set up scrolling buttons as needed&lt;br /&gt;
    list buttons = [ &amp;quot;&amp;lt;&amp;lt;&amp;quot;, &amp;quot; &amp;quot;, &amp;quot;&amp;gt;&amp;gt;&amp;quot; ];&lt;br /&gt;
    if (gActionsPerPage == 10)           buttons = [ &amp;quot;&amp;lt;&amp;lt;&amp;quot;, &amp;quot;&amp;gt;&amp;gt;&amp;quot; ];&lt;br /&gt;
    else if (gActionsPerPage &amp;gt; 10)       buttons = [];          // No room for paging buttons&lt;br /&gt;
&lt;br /&gt;
    // &#039;start + gActionsPerPage -1&#039; might point beyond the end of the list -&lt;br /&gt;
    // - but LSL stops at the list end, without throwing a wobbly&lt;br /&gt;
    buttons += llList2List(gListActions, start, start + gActionsPerPage - 1);&lt;br /&gt;
    llDialog(user, &amp;quot;\nPage &amp;quot; + (string) (gPage+1) + &amp;quot; of &amp;quot; + (string) (gMaxPage + 1) + &amp;quot;\n\nChoose an action&amp;quot;, buttons, gChan);&lt;br /&gt;
    llSetTimerEvent(60);              // If no response in time, return to &#039;ready&#039; state&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        gTotalActions = (gListActions != [] );        // get length of action list&lt;br /&gt;
&lt;br /&gt;
        // Validate &#039;ActionsPerPage&#039; value&lt;br /&gt;
        if (gActionsPerPage &amp;lt; 1 || gActionsPerPage &amp;gt; 12)&lt;br /&gt;
        {&lt;br /&gt;
            llOwnerSay(&amp;quot;Invalid &#039;gActionsPerPage&#039; - must be 1 to 12&amp;quot;);&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // Compute number of menu pages that will be available&lt;br /&gt;
        gMaxPage = (gTotalActions - 1) / gActionsPerPage;&lt;br /&gt;
        if (gActionsPerPage &amp;gt; 10)&lt;br /&gt;
        {&lt;br /&gt;
            gMaxPage = 0;&lt;br /&gt;
            if (gTotalActions &amp;gt; gActionsPerPage)&lt;br /&gt;
            {&lt;br /&gt;
                llOwnerSay(&amp;quot;Too many actions in total for this ActionsPerPage setting&amp;quot;);&lt;br /&gt;
                return;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // Compute a negative communications channel based on prim UUID&lt;br /&gt;
        gChan = 0x80000000 | (integer) ( &amp;quot;0x&amp;quot; + (string) llGetKey() );&lt;br /&gt;
        state ready;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
state ready&lt;br /&gt;
{&lt;br /&gt;
    touch_end(integer total_number)&lt;br /&gt;
    {&lt;br /&gt;
        gUser = llDetectedKey(0);&lt;br /&gt;
        state busy;                                    &lt;br /&gt;
        // Changing state sets the application to a busy condition while one user is selecting from the dialogs&lt;br /&gt;
        // In the event of multiple &#039;simultaneous&#039; touches, only one user will get a dialog&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
state busy&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llListen(gChan, &amp;quot;&amp;quot;, gUser, &amp;quot;&amp;quot;);                // This listener will be used throughout this state&lt;br /&gt;
        gPage = 0;&lt;br /&gt;
        BuildDialogPage(gUser);                        // Show  Page 0 dialog to current user&lt;br /&gt;
    }&lt;br /&gt;
    listen (integer chan, string name, key id, string msg)&lt;br /&gt;
    {&lt;br /&gt;
        if (msg == &amp;quot;&amp;lt;&amp;lt;&amp;quot; || msg == &amp;quot;&amp;gt;&amp;gt;&amp;quot;)                   // Page change ...&lt;br /&gt;
        {&lt;br /&gt;
            if (msg == &amp;quot;&amp;lt;&amp;lt;&amp;quot;)        --gPage;              // Page back&lt;br /&gt;
            if (msg == &amp;quot;&amp;gt;&amp;gt;&amp;quot;)        ++gPage;              // Page forward&lt;br /&gt;
            if (gPage &amp;lt; 0)          gPage = gMaxPage;     // cycle around pages&lt;br /&gt;
            if (gPage &amp;gt; gMaxPage)   gPage = 0;&lt;br /&gt;
            BuildDialogPage(id);&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        if (msg != &amp;quot; &amp;quot;)                                  // no action on blank menu button&lt;br /&gt;
        {&lt;br /&gt;
            // User has selected an action from the menu&lt;br /&gt;
            llRegionSayTo(id, 0, &amp;quot;You chose action &amp;lt;&amp;quot; + msg + &amp;quot;&amp;gt;&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        state ready;         // changing state will release ANY and ALL open listeners&lt;br /&gt;
    }&lt;br /&gt;
    timer()&lt;br /&gt;
    {&lt;br /&gt;
        llRegionSayTo(gUser, 0, &amp;quot;Too slow, menu cancelled&amp;quot;);&lt;br /&gt;
        state ready;&lt;br /&gt;
    }&lt;br /&gt;
    state_exit()&lt;br /&gt;
    {&lt;br /&gt;
        llSetTimerEvent(0);          // would be dangerous to leave a dormant timer&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Looks good. I&#039;ve made one small change: I know 11 isn&#039;t supported but I think it would be better to not explode if the user is dumb enough to enable it.&lt;br /&gt;
:Is the reason for the loop instead of llList2List to force the buttons to be strings? -- &#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; 15:43, 12 December 2013 (PST)&lt;br /&gt;
::Oh you&#039;re right! Of course I should have used llList2List(). TY. Fair enough on 11. [[User:Omei Qunhua|Omei Qunhua]] 15:53, 12 December 2013 (PST)&lt;br /&gt;
:What a stunt with all that undo action! Anyhow, instead of getting carried away try implementing this next time. &amp;lt;lsl&amp;gt;if (message == &amp;quot;&amp;lt;&amp;lt;&amp;quot;) pageIndex = --pageIndex % numberOfPages;&amp;lt;/lsl&amp;gt; and &amp;lt;lsl&amp;gt;if (message == &amp;quot;&amp;gt;&amp;gt;&amp;quot;) pageIndex = ++pageIndex % numberOfPages;&amp;lt;/lsl&amp;gt; -- &#039;&#039;&#039;[[User:Kireji_Haiku|Kireji Haiku]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Kireji_Haiku|talk]]|[[Special:Contributions/Kireji_Haiku|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 13:36, 8 April 2014 (PDT)&lt;br /&gt;
&lt;br /&gt;
:::No thank you. I prefer code that works. Neither of your above snippets do. There isn&#039;t a page -1 (try cycling backwards), and it might be kinder to page 0 not to skip it when cycling forward. [[User:Omei Qunhua|Omei Qunhua]] 04:30, 10 April 2014 (PDT)&lt;br /&gt;
&lt;br /&gt;
::::Yep, the code doesn&#039;t work with your assuptions because of the offset of the example code. Though, if you take a zero-based index and the items total count from a list it works just fine. -- &#039;&#039;&#039;[[User:Kireji_Haiku|Kireji Haiku]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Kireji_Haiku|talk]]|[[Special:Contributions/Kireji_Haiku|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 10:15, 10 April 2014 (PDT)&lt;/div&gt;</summary>
		<author><name>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlOwnerSay&amp;diff=1189308</id>
		<title>LlOwnerSay</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlOwnerSay&amp;diff=1189308"/>
		<updated>2014-04-08T20:59:23Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: Undo revision 1188753 by Omei Qunhua (Talk). Making use of the constant PUBLIC_CHANNEL is perfectly fine here.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Function&lt;br /&gt;
|inject-2={{LSL_Function/limits}}{{LSL_Function/chat||msg}}&lt;br /&gt;
|func_id=292|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|func=llOwnerSay|p1_type=string|p1_name=msg&lt;br /&gt;
|func_desc=Says {{LSLP|msg}} to the object&#039;s owner only, if the owner is currently in the same [[region]].&lt;br /&gt;
|return_text&lt;br /&gt;
|spec&lt;br /&gt;
|caveats=&lt;br /&gt;
* If {{LSLP|msg}} is longer than 1024 bytes, it will be truncated to 1024 bytes. This can convey 1024 ASCII characters, or less if non-ASCII are present.&lt;br /&gt;
* Silently fails ~45 seconds after the owner leaves the region the object is in.&lt;br /&gt;
* Silently fails when the object to which the script is attached is [[deed]]ed to a group.&lt;br /&gt;
* Some viewers do not display llOwnerSay text when {{LSLP|msg}} is empty ({{String}}).&lt;br /&gt;
* Produces swirly particle effects for the owner (who sees the message) but these effects do not appear to be visible to other avatars (who don&#039;t).&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    touch_start(integer num_detected)&lt;br /&gt;
    {&lt;br /&gt;
        llOwnerSay(&amp;quot;Ouch!&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
|helpers=&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
// llOwnerSay extension for preventing silent failures&lt;br /&gt;
// paste this code at the top of the script and replace&lt;br /&gt;
// any calls to llOwnerSay with uOwnerSayPlus&lt;br /&gt;
&lt;br /&gt;
uOwnerSayPlus(string inputString)&lt;br /&gt;
{&lt;br /&gt;
    key owner = llGetOwner();&lt;br /&gt;
&lt;br /&gt;
    // single owner that the region still has a handle for&lt;br /&gt;
    if (llKey2Name(owner))&lt;br /&gt;
    {&lt;br /&gt;
        llOwnerSay(inputString);&lt;br /&gt;
    }&lt;br /&gt;
    // group owned, must send the message publicly&lt;br /&gt;
    else if (llList2Key(llGetObjectDetails(llGetKey(), [OBJECT_GROUP]), 0) == owner)&lt;br /&gt;
    {&lt;br /&gt;
        llWhisper(PUBLIC_CHANNEL, &amp;quot;/me : &amp;quot; + inputString);&lt;br /&gt;
    }&lt;br /&gt;
    // single owner, not present, send them an IM&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        llInstantMessage(owner, inputString);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
|also_functions=&lt;br /&gt;
{{LSL DefineRow||[[llRegionSay]]|Sends chat region wide}}&lt;br /&gt;
{{LSL DefineRow||[[llWhisper]]|Sends chat limited to 10 meters}}&lt;br /&gt;
{{LSL DefineRow||[[llSay]]|Sends chat limited to 20 meters}}&lt;br /&gt;
{{LSL DefineRow||[[llShout]]|Sends chat limited to 100 meters}}&lt;br /&gt;
{{LSL DefineRow||[[llRegionSayTo]]|Sends private chat region wide}}&lt;br /&gt;
{{LSL DefineRow||[[llInstantMessage]]|Sends private chat anywhere on the grid}}&lt;br /&gt;
|also_events&lt;br /&gt;
|also_tests=&lt;br /&gt;
{{LSL DefineRow|[[llOwnerSay Test]]|}}&lt;br /&gt;
|also_articles&lt;br /&gt;
|notes&lt;br /&gt;
|permission&lt;br /&gt;
|negative_index&lt;br /&gt;
|cat1=Communications&lt;br /&gt;
|haiku={{Haiku|Speak to me only.|Murmur secrets in my ear:|Clandestine whispers.}}&lt;br /&gt;
|cat2&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=DialogPlus&amp;diff=1189307</id>
		<title>DialogPlus</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=DialogPlus&amp;diff=1189307"/>
		<updated>2014-04-08T20:51:47Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: There&amp;#039;s a section for that, why not use it?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Function&lt;br /&gt;
|func=DialogPlus&lt;br /&gt;
|mode=user&lt;br /&gt;
|p1_type=key|p1_name=avatar|p1_desc&lt;br /&gt;
|p2_type=string|p2_name=message|p2_desc=message to be displayed&lt;br /&gt;
|p3_type=list|p3_name=buttons|p3_desc=button labels&lt;br /&gt;
|p4_type=integer|p4_name=channel|p4_desc&lt;br /&gt;
|p5_type=integer|p5_name=CurMenu|p5_desc=Parsed menu index.&lt;br /&gt;
|func_desc=Creates a dialog menu for &#039;&#039;&#039;storing more then 12 buttons&#039;&#039;&#039;, very useful for Inventory items, Scanners, and just huge lists.&lt;br /&gt;
|func_footnote=&#039;&#039;&#039;&#039;CurMenu&#039;&#039;&#039;&#039; will take place of an integer menuindex.&amp;lt;br /&amp;gt;This requires a Listen Event when using DialogPlus to allow the Back and Next button to work.&lt;br /&gt;
|spec=&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
//Created by Ugleh Ulrik&lt;br /&gt;
//This sort of script should cost, but for you free :)&lt;br /&gt;
//Edited by Taff Nouvelle to put the buttons in correct order.&lt;br /&gt;
&lt;br /&gt;
list order_buttons(list buttons)&lt;br /&gt;
{&lt;br /&gt;
    return llList2List(buttons, -3, -1) + llList2List(buttons, -6, -4) +&lt;br /&gt;
        llList2List(buttons, -9, -7) + llList2List(buttons, -12, -10);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
integer menuindex;&lt;br /&gt;
&lt;br /&gt;
DialogPlus(key avatar, string message, list buttons, integer channel, integer CurMenu)&lt;br /&gt;
{&lt;br /&gt;
    if (12 &amp;lt; llGetListLength(buttons))&lt;br /&gt;
    {&lt;br /&gt;
        list lbut = buttons;&lt;br /&gt;
        list Nbuttons = [];&lt;br /&gt;
        if(CurMenu == -1)&lt;br /&gt;
        {&lt;br /&gt;
            CurMenu = 0;&lt;br /&gt;
            menuindex = 0;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if((Nbuttons = (llList2List(buttons, (CurMenu * 10), ((CurMenu * 10) + 9)) + [&amp;quot;Back&amp;quot;, &amp;quot;Next&amp;quot;])) == [&amp;quot;Back&amp;quot;, &amp;quot;Next&amp;quot;])&lt;br /&gt;
            DialogPlus(avatar, message, lbut, channel, menuindex = 0);&lt;br /&gt;
        else&lt;br /&gt;
            llDialog(avatar, message,  order_buttons(Nbuttons), channel);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
        llDialog(avatar, message,  order_buttons(buttons), channel);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
|examples=&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
// Created by Ugleh Ulrik&lt;br /&gt;
// List2DialogPlus Example&lt;br /&gt;
&lt;br /&gt;
// Here we set the Dialog Channel&lt;br /&gt;
integer channel = -900;&lt;br /&gt;
&lt;br /&gt;
integer listen_handle;&lt;br /&gt;
&lt;br /&gt;
// Here we make a huge list for an example&lt;br /&gt;
list The_List = [&lt;br /&gt;
    &amp;quot;Option 1&amp;quot;, &amp;quot;Option 2&amp;quot;, &amp;quot;Option 3&amp;quot;,&lt;br /&gt;
    &amp;quot;Option 4&amp;quot;, &amp;quot;Option 5&amp;quot;, &amp;quot;Option 6&amp;quot;,&lt;br /&gt;
    &amp;quot;Option 7&amp;quot;, &amp;quot;Option 8&amp;quot;, &amp;quot;Option 9&amp;quot;,&lt;br /&gt;
    &amp;quot;Option 10&amp;quot;, &amp;quot;Option 11&amp;quot;, &amp;quot;Option 12&amp;quot;,&lt;br /&gt;
    &amp;quot;Option 13&amp;quot;, &amp;quot;Option 14&amp;quot;, &amp;quot;Option 15&amp;quot;,&lt;br /&gt;
    &amp;quot;Option 16&amp;quot;, &amp;quot;Option 17&amp;quot;, &amp;quot;Option 18&amp;quot;,&lt;br /&gt;
    &amp;quot;Option 19&amp;quot;, &amp;quot;Option 20&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    touch_start(integer total_number)&lt;br /&gt;
    {&lt;br /&gt;
        key owner = llGetOwner();&lt;br /&gt;
        &lt;br /&gt;
        // We set a listen for only the owner&lt;br /&gt;
        // So this script assumes the object will only be touched by the owner&lt;br /&gt;
        listen_handle = llListen(channel, &amp;quot;&amp;quot;, owner, &amp;quot;&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
        // Touch_Start we issue menuindex as 0 inside of the function itself&lt;br /&gt;
        DialogPlus(owner, &amp;quot;Select an Option&amp;quot;, The_List, channel, menuindex = 0);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // We need a listen for the dialog itself, but as well as the Back/Next button.&lt;br /&gt;
    listen(integer chan, string name, key id, string msg)&lt;br /&gt;
    {&lt;br /&gt;
        key owner = llGetOwner();&lt;br /&gt;
&lt;br /&gt;
        // If they clicked Next it will go to the next dialog window&lt;br /&gt;
        if(msg == &amp;quot;Next&amp;quot;)&lt;br /&gt;
        {&lt;br /&gt;
            // ++menuindex will turn menuindex plus 1, making it give the next page.&lt;br /&gt;
            DialogPlus(owner, &amp;quot;Select an Option&amp;quot;, The_List, channel, ++menuindex);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // if they clicked back it will go to the last dialog window.&lt;br /&gt;
        else if(msg == &amp;quot;Back&amp;quot;)&lt;br /&gt;
            DialogPlus(owner, &amp;quot;Select an Option&amp;quot;, The_List, channel, --menuindex);&lt;br /&gt;
            // --menuindex will turn menuindex minus 1, making it give the previous page.&lt;br /&gt;
&lt;br /&gt;
        // If they choose anything besides Back/Next it will be in this section&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
            // Be Safe&lt;br /&gt;
            llListenRemove(listen_handle);&lt;br /&gt;
            //Example used, change to whatever you wish.&lt;br /&gt;
            llSay(0, &amp;quot;Your choice was &amp;quot; + msg);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
//Created by Ugleh Ulrik&lt;br /&gt;
//Inventory2DialogPlus Example&lt;br /&gt;
&lt;br /&gt;
//Here we set the Dialog Channel&lt;br /&gt;
integer channel = -900;&lt;br /&gt;
&lt;br /&gt;
integer listen_handle;&lt;br /&gt;
&lt;br /&gt;
list InventoryList;&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    touch_start(integer total_number)&lt;br /&gt;
    {&lt;br /&gt;
        InventoryList = [];&lt;br /&gt;
        integer i;&lt;br /&gt;
        integer a = llGetInventoryNumber(INVENTORY_ALL);&lt;br /&gt;
&lt;br /&gt;
        do&lt;br /&gt;
        {&lt;br /&gt;
            InventoryList += [TrimStringToLength(llGetInventoryName(INVENTORY_ALL, i),23)];&lt;br /&gt;
        }&lt;br /&gt;
        while (++i &amp;lt; a);&lt;br /&gt;
&lt;br /&gt;
        key owner = llGetOwner(); &lt;br /&gt;
      &lt;br /&gt;
        // We set a listen for only the owner&lt;br /&gt;
        // So this script assumes the object will only be touched by the owner&lt;br /&gt;
        listen_handle = llListen(channel, &amp;quot;&amp;quot;, owner,&amp;quot;&amp;quot;);&lt;br /&gt;
        // touch_start we issue menuindex as 0 inside of the function itself&lt;br /&gt;
        DialogPlus(owner, &amp;quot;Select an Option&amp;quot;, InventoryList, channel, menuindex = 0);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // We need a listen for the dialog itself, but as well as the Back/Next button.&lt;br /&gt;
    listen(integer chan, string name, key id, string msg)&lt;br /&gt;
    {&lt;br /&gt;
        key owner = llGetOwner();&lt;br /&gt;
&lt;br /&gt;
        // If they clicked Next it will go to the next dialog window&lt;br /&gt;
        if(msg == &amp;quot;Next&amp;quot;)&lt;br /&gt;
        {&lt;br /&gt;
            // ++menuindex will turn menuindex plus 1, making it give the next page.&lt;br /&gt;
            DialogPlus(owner, &amp;quot;Select an Option&amp;quot;, InventoryList, channel, ++menuindex);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        //if they clicked back it will go to the last dialog window.&lt;br /&gt;
        else if(msg == &amp;quot;Back&amp;quot;)&lt;br /&gt;
        {&lt;br /&gt;
            // --menuindex will turn menuindex minus 1, making it give the previous page.&lt;br /&gt;
            DialogPlus(owner, &amp;quot;Select an Option&amp;quot;, InventoryList, channel, --menuindex);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // If they choose anything besides Back/Next it will be in this section&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
            //Be Safe&lt;br /&gt;
            llListenRemove(listen_handle);&lt;br /&gt;
            //Example used, change to whatever you wish.&lt;br /&gt;
            llSay(0, &amp;quot;Your choice was &amp;quot;+ msg);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|notes&lt;br /&gt;
|also&lt;br /&gt;
|also_functions&lt;br /&gt;
|also_articles=&lt;br /&gt;
For a more flexible multi-page solution, without the owner-only restriction, see [[SimpleDialogMenuSystem]].&lt;br /&gt;
|cat1=Examples&lt;br /&gt;
|cat2=User-Defined_Functions&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Talk:SimpleDialogMenuSystem&amp;diff=1189305</id>
		<title>Talk:SimpleDialogMenuSystem</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Talk:SimpleDialogMenuSystem&amp;diff=1189305"/>
		<updated>2014-04-08T20:36:51Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: /* Suggested Rewrite */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== List of Changes Made ==&lt;br /&gt;
List of line changes from top to bottom:&lt;br /&gt;
* float Timeout= 60; &#039;&#039;&#039;&#039;&#039;TO&#039;&#039;&#039;&#039;&#039; float Timeout = 60.0;&lt;br /&gt;
** To make it a true float value.&lt;br /&gt;
* giveDialog(key ID, integer pageNum) { &#039;&#039;&#039;&#039;&#039;TO&#039;&#039;&#039;&#039;&#039; giveDialog(key ID) {&lt;br /&gt;
** pageNum was declared as a global variable and is not needed as a local in the function.&lt;br /&gt;
* llDialog(ID, &amp;quot;Page &amp;quot;+(string)pageNum+&amp;quot;\nChoose one:&amp;quot;, buttons, channel_dialog); &#039;&#039;&#039;&#039;&#039;TO&#039;&#039;&#039;&#039;&#039; llDialog(ID, &amp;quot;Page &amp;quot;+(string)pageNum+&amp;quot;\n&amp;quot;+msg, buttons, channel_dialog);&lt;br /&gt;
** What is the point in having string msg declared at the top if not using it?&lt;br /&gt;
* llSetTimerEvent(0); &#039;&#039;&#039;&#039;&#039;TO&#039;&#039;&#039;&#039;&#039; llSetTimerEvent(0.0);&lt;br /&gt;
** To make it a true float value.&lt;br /&gt;
* giveDialog(ToucherID, pageNum); &#039;&#039;&#039;&#039;&#039;TO&#039;&#039;&#039;&#039;&#039; giveDialog(ToucherID);&lt;br /&gt;
** This refers to the ones in the listen section. As stated above, pageNum was declared as a global variable.&lt;br /&gt;
* llListenRemove(listen_id) &#039;&#039;&#039;&#039;&#039;TO&#039;&#039;&#039;&#039;&#039; CancelListen();&lt;br /&gt;
** In the timer section. Might as well.&lt;br /&gt;
&lt;br /&gt;
I also moved one line:&lt;br /&gt;
* llSetTimerEvent(Timeout);&lt;br /&gt;
From touch_start to giveDialog. Reason being, if someone chose the &amp;quot;Next&amp;quot; or &amp;quot;Prev&amp;quot; page, it would give them the dialog again, but would not reset the timer. In other words, if it took someone 50 seconds to decide to push the &amp;quot;Next&amp;quot; page button, they would then only have 10 seconds to choose a button. If they decided to go to the next page again, or go to the previous page, that would leave them even less time. I thought about doing the same for:&lt;br /&gt;
* listen_id = llListen( channel_dialog, &amp;quot;&amp;quot;, ToucherID, &amp;quot;&amp;quot;);&lt;br /&gt;
As if someone were to push the &amp;quot;Back&amp;quot; button, it would remove the listen and would have to be declared again if they were redirected to another menu. However, I realized the creator/user of the script may not use the giveDialog function to give them the previous menu, and decided not to change this.&lt;br /&gt;
&lt;br /&gt;
[[User:L1ghtsh0wz3n Resident|L1ghtsh0wz3n Resident]] 10:44, 9 November 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
:It&#039;s got other bugs, if you spam click it, triggering multiple touch_start events, it will leak listens to the point you crash the script. pageNum shouldn&#039;t have been made a global, it should have remained a local but the entire design leaves much to be desired and your solution is valid. The script needs to be rewritten. Keep up the good work. -- &#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; 11:28, 9 November 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
::Thank you for the reply. Though the script has since be rewritten, I am glad that the changes I made were valid. [[User:L1ghtsh0wz3n Resident|L1ghtsh0wz3n Resident]] 09:34, 15 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
== Suggested Rewrite ==&lt;br /&gt;
&lt;br /&gt;
What would people think of this possible version? It uses state changes to preclude other users triggering touches while one user is accessing the dialogs, and the state change is also used to kill any/all open listeners. [[User:Omei Qunhua|Omei Qunhua]] 14:25, 12 December 2013 (PST)&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Multi-Page Dialog Menu System&lt;br /&gt;
&lt;br /&gt;
// Omei Qunhua December 2013&lt;br /&gt;
&lt;br /&gt;
integer    gActionsPerPage = 9;           // Number of action choice buttons per menu page (must be 1 to 10, or 12)&lt;br /&gt;
list       gListActions = [&amp;quot;A&amp;quot;,&amp;quot;B&amp;quot;,&amp;quot;C&amp;quot;,&amp;quot;D&amp;quot;,&amp;quot;E&amp;quot;,&amp;quot;F&amp;quot;,&amp;quot;G&amp;quot;,&amp;quot;H&amp;quot;,&amp;quot;I&amp;quot;,&amp;quot;J&amp;quot;,&amp;quot;K&amp;quot;,&amp;quot;L&amp;quot;,&amp;quot;M&amp;quot;,&amp;quot;N&amp;quot;,&amp;quot;O&amp;quot;,&amp;quot;P&amp;quot;,&amp;quot;Q&amp;quot;,&amp;quot;R&amp;quot;,&amp;quot;S&amp;quot;,&amp;quot;T&amp;quot;,&amp;quot;U&amp;quot;,&amp;quot;V&amp;quot;,&amp;quot;W&amp;quot;,&amp;quot;Y&amp;quot;,&amp;quot;Z&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
// ========================================================================================================&lt;br /&gt;
&lt;br /&gt;
integer    gTotalActions;             &lt;br /&gt;
integer    gPage;                     // Current dialog page number (counting from zero)&lt;br /&gt;
integer    gMaxPage;                  // Highest page number (counting from zero)&lt;br /&gt;
integer    gChan;                     // Channel used for dialog communications. &lt;br /&gt;
key        gUser;                     // Current user accessing the dialogs &lt;br /&gt;
&lt;br /&gt;
BuildDialogPage(key user)&lt;br /&gt;
{&lt;br /&gt;
    // Build a dialog menu for current page for given user&lt;br /&gt;
    integer start = gActionsPerPage * gPage;       // starting offset into action list for current page&lt;br /&gt;
    // set up scrolling buttons as needed&lt;br /&gt;
    list buttons = [ &amp;quot;&amp;lt;&amp;lt;&amp;quot;, &amp;quot; &amp;quot;, &amp;quot;&amp;gt;&amp;gt;&amp;quot; ];&lt;br /&gt;
    if (gActionsPerPage == 10)           buttons = [ &amp;quot;&amp;lt;&amp;lt;&amp;quot;, &amp;quot;&amp;gt;&amp;gt;&amp;quot; ];&lt;br /&gt;
    else if (gActionsPerPage &amp;gt; 10)       buttons = [];          // No room for paging buttons&lt;br /&gt;
&lt;br /&gt;
    // &#039;start + gActionsPerPage -1&#039; might point beyond the end of the list -&lt;br /&gt;
    // - but LSL stops at the list end, without throwing a wobbly&lt;br /&gt;
    buttons += llList2List(gListActions, start, start + gActionsPerPage - 1);&lt;br /&gt;
    llDialog(user, &amp;quot;\nPage &amp;quot; + (string) (gPage+1) + &amp;quot; of &amp;quot; + (string) (gMaxPage + 1) + &amp;quot;\n\nChoose an action&amp;quot;, buttons, gChan);&lt;br /&gt;
    llSetTimerEvent(60);              // If no response in time, return to &#039;ready&#039; state&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        gTotalActions = (gListActions != [] );        // get length of action list&lt;br /&gt;
&lt;br /&gt;
        // Validate &#039;ActionsPerPage&#039; value&lt;br /&gt;
        if (gActionsPerPage &amp;lt; 1 || gActionsPerPage &amp;gt; 12)&lt;br /&gt;
        {&lt;br /&gt;
            llOwnerSay(&amp;quot;Invalid &#039;gActionsPerPage&#039; - must be 1 to 12&amp;quot;);&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // Compute number of menu pages that will be available&lt;br /&gt;
        gMaxPage = (gTotalActions - 1) / gActionsPerPage;&lt;br /&gt;
        if (gActionsPerPage &amp;gt; 10)&lt;br /&gt;
        {&lt;br /&gt;
            gMaxPage = 0;&lt;br /&gt;
            if (gTotalActions &amp;gt; gActionsPerPage)&lt;br /&gt;
            {&lt;br /&gt;
                llOwnerSay(&amp;quot;Too many actions in total for this ActionsPerPage setting&amp;quot;);&lt;br /&gt;
                return;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // Compute a negative communications channel based on prim UUID&lt;br /&gt;
        gChan = 0x80000000 | (integer) ( &amp;quot;0x&amp;quot; + (string) llGetKey() );&lt;br /&gt;
        state ready;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
state ready&lt;br /&gt;
{&lt;br /&gt;
    touch_end(integer total_number)&lt;br /&gt;
    {&lt;br /&gt;
        gUser = llDetectedKey(0);&lt;br /&gt;
        state busy;                                    &lt;br /&gt;
        // Changing state sets the application to a busy condition while one user is selecting from the dialogs&lt;br /&gt;
        // In the event of multiple &#039;simultaneous&#039; touches, only one user will get a dialog&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
state busy&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llListen(gChan, &amp;quot;&amp;quot;, gUser, &amp;quot;&amp;quot;);                // This listener will be used throughout this state&lt;br /&gt;
        gPage = 0;&lt;br /&gt;
        BuildDialogPage(gUser);                        // Show  Page 0 dialog to current user&lt;br /&gt;
    }&lt;br /&gt;
    listen (integer chan, string name, key id, string msg)&lt;br /&gt;
    {&lt;br /&gt;
        if (msg == &amp;quot;&amp;lt;&amp;lt;&amp;quot; || msg == &amp;quot;&amp;gt;&amp;gt;&amp;quot;)                   // Page change ...&lt;br /&gt;
        {&lt;br /&gt;
            if (msg == &amp;quot;&amp;lt;&amp;lt;&amp;quot;)        --gPage;              // Page back&lt;br /&gt;
            if (msg == &amp;quot;&amp;gt;&amp;gt;&amp;quot;)        ++gPage;              // Page forward&lt;br /&gt;
            if (gPage &amp;lt; 0)          gPage = gMaxPage;     // cycle around pages&lt;br /&gt;
            if (gPage &amp;gt; gMaxPage)   gPage = 0;&lt;br /&gt;
            BuildDialogPage(id);&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        if (msg != &amp;quot; &amp;quot;)                                  // no action on blank menu button&lt;br /&gt;
        {&lt;br /&gt;
            // User has selected an action from the menu&lt;br /&gt;
            llRegionSayTo(id, 0, &amp;quot;You chose action &amp;lt;&amp;quot; + msg + &amp;quot;&amp;gt;&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        state ready;         // changing state will release ANY and ALL open listeners&lt;br /&gt;
    }&lt;br /&gt;
    timer()&lt;br /&gt;
    {&lt;br /&gt;
        llRegionSayTo(gUser, 0, &amp;quot;Too slow, menu cancelled&amp;quot;);&lt;br /&gt;
        state ready;&lt;br /&gt;
    }&lt;br /&gt;
    state_exit()&lt;br /&gt;
    {&lt;br /&gt;
        llSetTimerEvent(0);          // would be dangerous to leave a dormant timer&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Looks good. I&#039;ve made one small change: I know 11 isn&#039;t supported but I think it would be better to not explode if the user is dumb enough to enable it.&lt;br /&gt;
:Is the reason for the loop instead of llList2List to force the buttons to be strings? -- &#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; 15:43, 12 December 2013 (PST)&lt;br /&gt;
::Oh you&#039;re right! Of course I should have used llList2List(). TY. Fair enough on 11. [[User:Omei Qunhua|Omei Qunhua]] 15:53, 12 December 2013 (PST)&lt;br /&gt;
:What a stunt with all that undo action! Anyhow, instead of getting carried away try implementing this next time. &amp;lt;lsl&amp;gt;if (message == &amp;quot;&amp;lt;&amp;lt;&amp;quot;) pageIndex = --pageIndex % numberOfPages;&amp;lt;/lsl&amp;gt; and &amp;lt;lsl&amp;gt;if (message == &amp;quot;&amp;gt;&amp;gt;&amp;quot;) pageIndex = ++pageIndex % numberOfPages;&amp;lt;/lsl&amp;gt; -- &#039;&#039;&#039;[[User:Kireji_Haiku|Kireji Haiku]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Kireji_Haiku|talk]]|[[Special:Contributions/Kireji_Haiku|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 13:36, 8 April 2014 (PDT)&lt;/div&gt;</summary>
		<author><name>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=SimpleDialogMenuSystem&amp;diff=1189304</id>
		<title>SimpleDialogMenuSystem</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=SimpleDialogMenuSystem&amp;diff=1189304"/>
		<updated>2014-04-08T20:28:13Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: Undo revision 1189024 by Omei Qunhua (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header}} __NOTOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em;&amp;quot;&amp;gt;&lt;br /&gt;
A bare-bones multi-page dialog script, supporting next and previous page buttons. &lt;br /&gt;
&lt;br /&gt;
The variable &amp;lt;code&amp;gt;&#039;gActionsPerPage&#039;&amp;lt;/code&amp;gt; (initially set to 9) determines the number of useful buttons per page, apart from the page scroll buttons.&lt;br /&gt;
9 is a good value. You can set it to any value between 1 and 12. If set to 11 or 12, the paging buttons will not appear, but no more than 11 or 12 choices may then exist in the action list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&#039;gListActions&#039;&amp;lt;/code&amp;gt; is a very simplified example of menu choices available to the user. Replace the letters with action words appropriate to your application.&lt;br /&gt;
&lt;br /&gt;
In various places, this code uses an [[integer]] where you might expect a [[float]] value, e.g. [[llSetTimerEvent]](0).  This has been done in order to save space in the &#039;Byte Code&#039; version of the script that exists once a script has been compiled. Often space is a more critical consideration than speed in script design.&lt;br /&gt;
&lt;br /&gt;
The script uses [[state]] changes as a means of avoiding multi-user concurrency and multiple open listener issues. A [[state]] change ensures that any and all active listeners are released.&lt;br /&gt;
The first detected touch sends the script into a &#039;busy&#039; condition, and no more touches will be detected until that user has finished with the dialog(s), or the time for a response expires.&lt;br /&gt;
Then the script returns to the &#039;ready&#039; [[state]], and a subsequent touch will be detected.&lt;br /&gt;
&lt;br /&gt;
The &#039;ready&#039; [[state]] uses [[touch_end]]() rather than [[touch_start]]() as this avoids the &#039;missed touch&#039; problem, documented elsewhere, that occurs when changing [[state]] from within [[touch_start]]().&lt;br /&gt;
&lt;br /&gt;
It would be simple to add floating text via [[llSetText]] or maybe a colour change to indicate when the script is in a &#039;ready&#039; or &#039;busy&#039; [[state]].&lt;br /&gt;
&lt;br /&gt;
See also: [[DialogMenus|Building a dialog menu step by step]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
// Multi-Page Dialog Menu System&lt;br /&gt;
// Omei Qunhua December 2013&lt;br /&gt;
 &lt;br /&gt;
integer    gActionsPerPage = 9;           // Number of action choice buttons per menu page (must be 1 to 10, or 12)&lt;br /&gt;
list       gListActions = [&amp;quot;A&amp;quot;,&amp;quot;B&amp;quot;,&amp;quot;C&amp;quot;,&amp;quot;D&amp;quot;,&amp;quot;E&amp;quot;,&amp;quot;F&amp;quot;,&amp;quot;G&amp;quot;,&amp;quot;H&amp;quot;,&amp;quot;I&amp;quot;,&amp;quot;J&amp;quot;,&amp;quot;K&amp;quot;,&amp;quot;L&amp;quot;,&amp;quot;M&amp;quot;,&amp;quot;N&amp;quot;,&amp;quot;O&amp;quot;,&amp;quot;P&amp;quot;,&amp;quot;Q&amp;quot;,&amp;quot;R&amp;quot;,&amp;quot;S&amp;quot;,&amp;quot;T&amp;quot;,&amp;quot;U&amp;quot;,&amp;quot;V&amp;quot;,&amp;quot;W&amp;quot;,&amp;quot;Y&amp;quot;,&amp;quot;Z&amp;quot;];&lt;br /&gt;
 &lt;br /&gt;
// ========================================================================================================&lt;br /&gt;
 &lt;br /&gt;
integer    gTotalActions;             &lt;br /&gt;
integer    gPage;                     // Current dialog page number (counting from zero)&lt;br /&gt;
integer    gMaxPage;                  // Highest page number (counting from zero)&lt;br /&gt;
integer    gChan;                     // Channel used for dialog communications. &lt;br /&gt;
key        gUser;                     // Current user accessing the dialogs &lt;br /&gt;
 &lt;br /&gt;
BuildDialogPage(key user)&lt;br /&gt;
{&lt;br /&gt;
    // Build a dialog menu for current page for given user&lt;br /&gt;
    integer start = gActionsPerPage * gPage;       // starting offset into action list for current page&lt;br /&gt;
    // set up scrolling buttons as needed&lt;br /&gt;
    list buttons = [ &amp;quot;&amp;lt;&amp;lt;&amp;quot;, &amp;quot; &amp;quot;, &amp;quot;&amp;gt;&amp;gt;&amp;quot; ];&lt;br /&gt;
    if (gActionsPerPage == 10)           buttons = [ &amp;quot;&amp;lt;&amp;lt;&amp;quot;, &amp;quot;&amp;gt;&amp;gt;&amp;quot; ];&lt;br /&gt;
    else if (gActionsPerPage &amp;gt; 10)       buttons = [];          // No room for paging buttons&lt;br /&gt;
 &lt;br /&gt;
    // &#039;start + gActionsPerPage -1&#039; might point beyond the end of the list -&lt;br /&gt;
    // - but LSL stops at the list end, without throwing a wobbly&lt;br /&gt;
    buttons += llList2List(gListActions, start, start + gActionsPerPage - 1);&lt;br /&gt;
    llDialog(user, &amp;quot;\nPage &amp;quot; + (string) (gPage+1) + &amp;quot; of &amp;quot; + (string) (gMaxPage + 1) + &amp;quot;\n\nChoose an action&amp;quot;, buttons, gChan);&lt;br /&gt;
    llSetTimerEvent(60);              // If no response in time, return to &#039;ready&#039; state&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        gTotalActions = (gListActions != [] );        // get length of action list&lt;br /&gt;
 &lt;br /&gt;
        // Validate &#039;ActionsPerPage&#039; value&lt;br /&gt;
        if (gActionsPerPage &amp;lt; 1 || gActionsPerPage &amp;gt; 12)&lt;br /&gt;
        {&lt;br /&gt;
            llOwnerSay(&amp;quot;Invalid &#039;gActionsPerPage&#039; - must be 1 to 12&amp;quot;);&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        // Compute number of menu pages that will be available&lt;br /&gt;
        gMaxPage = (gTotalActions - 1) / gActionsPerPage;&lt;br /&gt;
        if (gActionsPerPage &amp;gt; 10)&lt;br /&gt;
        {&lt;br /&gt;
            gMaxPage = 0;&lt;br /&gt;
            if (gTotalActions &amp;gt; gActionsPerPage)&lt;br /&gt;
            {&lt;br /&gt;
                llOwnerSay(&amp;quot;Too many actions in total for this ActionsPerPage setting&amp;quot;);&lt;br /&gt;
                return;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        // Compute a negative communications channel based on prim UUID&lt;br /&gt;
        gChan = 0x80000000 | (integer) ( &amp;quot;0x&amp;quot; + (string) llGetKey() );&lt;br /&gt;
        state ready;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
state ready&lt;br /&gt;
{&lt;br /&gt;
    touch_end(integer total_number)&lt;br /&gt;
    {&lt;br /&gt;
        gUser = llDetectedKey(0);&lt;br /&gt;
        state busy;                                    &lt;br /&gt;
        // Changing state sets the application to a busy condition while one user is selecting from the dialogs&lt;br /&gt;
        // In the event of multiple &#039;simultaneous&#039; touches, only one user will get a dialog&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
state busy&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llListen(gChan, &amp;quot;&amp;quot;, gUser, &amp;quot;&amp;quot;);                // This listener will be used throughout this state&lt;br /&gt;
        gPage = 0;&lt;br /&gt;
        BuildDialogPage(gUser);                        // Show  Page 0 dialog to current user&lt;br /&gt;
    }&lt;br /&gt;
    listen (integer chan, string name, key id, string msg)&lt;br /&gt;
    {&lt;br /&gt;
        if (msg == &amp;quot;&amp;lt;&amp;lt;&amp;quot; || msg == &amp;quot;&amp;gt;&amp;gt;&amp;quot;)                   // Page change ...&lt;br /&gt;
        {&lt;br /&gt;
            if (msg == &amp;quot;&amp;lt;&amp;lt;&amp;quot;)        --gPage;              // Page back&lt;br /&gt;
            if (msg == &amp;quot;&amp;gt;&amp;gt;&amp;quot;)        ++gPage;              // Page forward&lt;br /&gt;
            if (gPage &amp;lt; 0)          gPage = gMaxPage;     // cycle around pages&lt;br /&gt;
            if (gPage &amp;gt; gMaxPage)   gPage = 0;&lt;br /&gt;
            BuildDialogPage(id);&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        if (msg != &amp;quot; &amp;quot;)                                  // no action on blank menu button&lt;br /&gt;
        {&lt;br /&gt;
            // User has selected an action from the menu&lt;br /&gt;
            llRegionSayTo(id, 0, &amp;quot;You chose action &amp;lt;&amp;quot; + msg + &amp;quot;&amp;gt;&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        state ready;         // changing state will release ANY and ALL open listeners&lt;br /&gt;
    }&lt;br /&gt;
    timer()&lt;br /&gt;
    {&lt;br /&gt;
        llRegionSayTo(gUser, 0, &amp;quot;Too slow, menu cancelled&amp;quot;);&lt;br /&gt;
        state ready;&lt;br /&gt;
    }&lt;br /&gt;
    state_exit()&lt;br /&gt;
    {&lt;br /&gt;
        llSetTimerEvent(0);          // would be dangerous to leave a dormant timer&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Texture Selector ==&lt;br /&gt;
Here is a variant of the above script, to allow a user to display a texture selected from a multi-page menu of available textures.&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
// Multi-Page Texture Selector &lt;br /&gt;
// Omei Qunhua  April 2014&lt;br /&gt;
&lt;br /&gt;
list       gListFullNames;            // List of inventory textures&lt;br /&gt;
list       gListBriefNames;           // List of abbreviated texture names for dialog buttons&lt;br /&gt;
&lt;br /&gt;
integer    gPage;                     // Current dialog page number (counting from zero)&lt;br /&gt;
integer    gMaxPage;                  // Highest page number (counting from zero)&lt;br /&gt;
integer    gChan;                     // Channel used for dialog communications.&lt;br /&gt;
key        gUser;                     // Current user accessing the dialogs&lt;br /&gt;
&lt;br /&gt;
BuildDialogPage(key user)&lt;br /&gt;
{&lt;br /&gt;
    integer TotalChoices = (gListBriefNames != [] );        // get length of texture list&lt;br /&gt;
&lt;br /&gt;
    // set up scrolling buttons if needed&lt;br /&gt;
    list buttons = [ &amp;quot;&amp;lt;&amp;lt;&amp;quot;, &amp;quot; &amp;quot;, &amp;quot;&amp;gt;&amp;gt;&amp;quot; ];&lt;br /&gt;
    &lt;br /&gt;
    integer ChoicesPerPage = 9;&lt;br /&gt;
    if (TotalChoices &amp;lt; 13)&lt;br /&gt;
    {&lt;br /&gt;
        buttons = [];&lt;br /&gt;
        ChoicesPerPage = 12;&lt;br /&gt;
    }&lt;br /&gt;
    // Compute number of menu pages that will be available&lt;br /&gt;
    gMaxPage = (TotalChoices - 1) / ChoicesPerPage;&lt;br /&gt;
    // Build a dialog menu for current page for given user&lt;br /&gt;
    integer start = ChoicesPerPage * gPage;       // starting offset into action list for current page&lt;br /&gt;
    // &#039;start + ChoicesPerPage -1&#039; might point beyond the end of the list -&lt;br /&gt;
    // - but LSL stops at the list end, without throwing a wobbly&lt;br /&gt;
    buttons += llList2List(gListBriefNames, start, start + ChoicesPerPage - 1);&lt;br /&gt;
    llDialog(user, &amp;quot;\nPage &amp;quot; + (string) (gPage+1) + &amp;quot; of &amp;quot; + (string) (gMaxPage + 1) + &amp;quot;\n\nChoose an item&amp;quot;, buttons, gChan);&lt;br /&gt;
    llSetTimerEvent(30);              // If no response in time, return to &#039;ready&#039; state&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    touch_end(integer total_number)&lt;br /&gt;
    {&lt;br /&gt;
        // Compute a negative communications channel based on prim UUID&lt;br /&gt;
        gChan = 0x80000000 | (integer) ( &amp;quot;0x&amp;quot; + (string) llGetKey() );&lt;br /&gt;
        gUser = llDetectedKey(0);&lt;br /&gt;
        integer count = llGetInventoryNumber(INVENTORY_TEXTURE);&lt;br /&gt;
        string name;&lt;br /&gt;
        while (count--)&lt;br /&gt;
        {&lt;br /&gt;
            name = llGetInventoryName(INVENTORY_TEXTURE, count);&lt;br /&gt;
            gListFullNames += name;&lt;br /&gt;
            gListBriefNames += llGetSubString(name, 0, 23);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        state busy;&lt;br /&gt;
        // Changing state sets the application to a busy condition while one user is selecting from the dialogs&lt;br /&gt;
        // In the event of multiple &#039;simultaneous&#039; touches, only one user will get a dialog&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
state busy&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llListen(gChan, &amp;quot;&amp;quot;, gUser, &amp;quot;&amp;quot;);                // This listener will be used throughout this state&lt;br /&gt;
        gPage = 0;&lt;br /&gt;
        BuildDialogPage(gUser);                        // Show  Page 0 dialog to current user&lt;br /&gt;
    }&lt;br /&gt;
    listen (integer chan, string name, key id, string msg)&lt;br /&gt;
    {&lt;br /&gt;
        integer index;&lt;br /&gt;
        string  name2;&lt;br /&gt;
        if (msg == &amp;quot;&amp;lt;&amp;lt;&amp;quot; || msg == &amp;quot;&amp;gt;&amp;gt;&amp;quot;)                   // Page change ...&lt;br /&gt;
        {&lt;br /&gt;
            if (msg == &amp;quot;&amp;lt;&amp;lt;&amp;quot;)        --gPage;              // Page back&lt;br /&gt;
            if (msg == &amp;quot;&amp;gt;&amp;gt;&amp;quot;)        ++gPage;              // Page forward&lt;br /&gt;
            if (gPage &amp;lt; 0)          gPage = gMaxPage;     // cycle around pages&lt;br /&gt;
            if (gPage &amp;gt; gMaxPage)   gPage = 0;&lt;br /&gt;
            BuildDialogPage(id);&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        if (msg != &amp;quot; &amp;quot;)                                  // no action on blank menu button&lt;br /&gt;
        {&lt;br /&gt;
            // User has selected a texture from the menu&lt;br /&gt;
            index = llListFindList(gListBriefNames, [msg]);&lt;br /&gt;
            name2 = llList2String(gListFullNames, index);&lt;br /&gt;
            llRegionSayTo(id, 0, &amp;quot;You chose texture &amp;lt;&amp;quot; + name2 + &amp;quot;&amp;gt;&amp;quot;);&lt;br /&gt;
            llSetTexture(name2, ALL_SIDES);&lt;br /&gt;
        }&lt;br /&gt;
        llResetScript();&lt;br /&gt;
    }&lt;br /&gt;
    timer()&lt;br /&gt;
    {&lt;br /&gt;
        llRegionSayTo(gUser, 0, &amp;quot;Too slow, menu cancelled&amp;quot;);&lt;br /&gt;
        llResetScript();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{LSLC|Examples|SimpleDialogMenuSystem}}&lt;/div&gt;</summary>
		<author><name>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Kireji_Haiku&amp;diff=1189035</id>
		<title>User:Kireji Haiku</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Kireji_Haiku&amp;diff=1189035"/>
		<updated>2014-04-01T16:15:28Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right;&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
=My projects:=&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[User:Kireji Haiku|Kireji Haiku]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Kireji Haiku|talk]]|[[Special:Contributions/Kireji Haiku|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Encrypted Region-wide Chat==&lt;br /&gt;
&lt;br /&gt;
*[[User:Kireji_Haiku/SIMchat_headset|Encrypted Region-wide Chat]]&lt;br /&gt;
&lt;br /&gt;
==Syntax highlighting files for LSL:==&lt;br /&gt;
&lt;br /&gt;
*[[User:Kireji_Haiku/Ultraedit_Syntax_Highlight|Ultraedit Syntax Highlighting]]&lt;br /&gt;
*[[User:Kireji_Haiku/Notepad++_Syntax_Highlight|Notepad++ Syntax Highlighting]]&lt;br /&gt;
&lt;br /&gt;
==How to iterate over a list:==&lt;br /&gt;
&lt;br /&gt;
*[[User:Kireji_Haiku/How_to_deal_with_lists_in_LSL]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Haiku:==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;{{Haiku|たのしみは|昼寝目ざむる枕べに|ことことと湯の煮えてある時。|author=橘 曙覧}}&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;{{Haiku|Fun is when|waking up from a nap on the pillow|because of boiling water&#039;s clickety-click noise.|author=TACHIBANA Akemi}}&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Kireji_Haiku&amp;diff=1189033</id>
		<title>User:Kireji Haiku</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Kireji_Haiku&amp;diff=1189033"/>
		<updated>2014-04-01T16:04:21Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: LP³&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right;&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
=My projects:=&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[User:Kireji Haiku|Kireji Haiku]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Kireji Haiku|talk]]|[[Special:Contributions/Kireji Haiku|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Encrypted Region-wide Chat==&lt;br /&gt;
&lt;br /&gt;
*[[User:Kireji_Haiku/SIMchat_headset|Encrypted Region-wide Chat]]&lt;br /&gt;
&lt;br /&gt;
==Syntax highlighting files for LSL:==&lt;br /&gt;
&lt;br /&gt;
*[[User:Kireji_Haiku/Ultraedit_Syntax_Highlight|Ultraedit Syntax Highlighting]]&lt;br /&gt;
*[[User:Kireji_Haiku/Notepad++_Syntax_Highlight|Notepad++ Syntax Highlighting]]&lt;br /&gt;
&lt;br /&gt;
==How to iterate over a list:==&lt;br /&gt;
&lt;br /&gt;
*[[User:Kireji_Haiku/How_to_deal_with_lists_in_LSL]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Haiku:==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
{{Haiku|たのしみは|昼寝目ざむる枕べに|ことことと湯の煮えてある時|author=橘 曙覧}}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
{{Haiku|Fun is when|waking up from a nap on the pillow|from the clickety-click noise of boiling water.|author=TACHIBANA Akemi}}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlUnSit&amp;diff=1188282</id>
		<title>LlUnSit</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlUnSit&amp;diff=1188282"/>
		<updated>2014-03-12T23:25:47Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Function&lt;br /&gt;
|inject-2={{Issues/SVC-924}}{{LSL_Function/avatar|id|sim=*}}&lt;br /&gt;
|func_id=220|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|sort=UnSit|func=llUnSit&lt;br /&gt;
|p1_type=key|p1_name=id&lt;br /&gt;
|func_footnote&lt;br /&gt;
|func_desc=If the agent identified by {{LSLP|id}} is sitting on the object the script is attached to or is over land owned by the object&#039;s {{LSLGC|Owner|owner}}, the agent is forced to stand up.&lt;br /&gt;
|return_text&lt;br /&gt;
|spec&lt;br /&gt;
|caveats&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&lt;br /&gt;
&amp;lt;lsl&amp;gt;// UnSit on Sit, Using a sit target&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llSitTarget(&amp;lt;0.0, 0.0, 0.1&amp;gt;, ZERO_ROTATION); // Needed for llAvatarOnSitTarget to work. The vectors components must not all be set to 0.0&lt;br /&gt;
    }&lt;br /&gt;
    changed(integer change) // Triggered when various changes are sensed.&lt;br /&gt;
    {&lt;br /&gt;
        if(change &amp;amp; CHANGED_LINK) // When an agent sits on an object they become a new link.&lt;br /&gt;
        {&lt;br /&gt;
            key user = llAvatarOnSitTarget(); // Store the UUID of any agent sitting on the sit target.&lt;br /&gt;
            if(user) // An avatar is on the sit target.&lt;br /&gt;
                llUnSit(user); // Un-Sit the avatar.&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&amp;lt;lsl&amp;gt;// UnSit on Sit, NOT using a sit target&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    changed(integer change) // Triggered when various changes are sensed.&lt;br /&gt;
    {&lt;br /&gt;
        if(change &amp;amp; CHANGED_LINK) // When an agent sits on an object they become a new link.&lt;br /&gt;
        {&lt;br /&gt;
            integer links = 0; // Create an integer type variable.&lt;br /&gt;
            if(llGetObjectPrimCount(llGetKey()) &amp;lt; (links = llGetNumberOfPrims())) // During the check store the number of links.&lt;br /&gt;
            // If the number of prims is fewer than the number of links, the last must be an avatar.&lt;br /&gt;
                llUnSit(llGetLinkKey(links)); // Use the key of the last link to be added (the avatar) to call llUnSit().&lt;br /&gt;
            else&lt;br /&gt;
                llOwnerSay(&amp;quot;Some kind of linking or unlinking has changed me but, I am not being sat on.&amp;quot;);&lt;br /&gt;
            // llUnSit() triggers the changed event too (the number of links is reduced by 1).&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
unsit_all_avatars()&lt;br /&gt;
{&lt;br /&gt;
    integer objectPrimCount = llGetObjectPrimCount(llGetKey());&lt;br /&gt;
    integer currentLinkNumber = llGetNumberOfPrims();&lt;br /&gt;
&lt;br /&gt;
    do llUnSit(llGetLinkKey(currentLinkNumber));&lt;br /&gt;
    while (objectPrimCount &amp;lt; --currentLinkNumber);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    touch_start(integer num_detected)&lt;br /&gt;
    {&lt;br /&gt;
        unsit_all_avatars();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions={{LSL DefineRow||[[llAvatarOnSitTarget]]|}}&lt;br /&gt;
{{LSL DefineRow||[[llSitTarget]]|}}&lt;br /&gt;
|also_events={{LSL DefineRow||[[changed]]|}}&lt;br /&gt;
|also_articles&lt;br /&gt;
|also_tests&lt;br /&gt;
|notes&lt;br /&gt;
|permission&lt;br /&gt;
|negative_index&lt;br /&gt;
|cat1=Parcel&lt;br /&gt;
|cat2=Sit&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
|haiku={{Haiku|Beauty at the bar|Not an empty seat in sight.|Owner clears me one.}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LSL_Alternate_Editors&amp;diff=1188262</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=1188262"/>
		<updated>2014-03-12T00:03:18Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: added reference to TextExpander LSL Snippets&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;
| {{maybe|Hasn&#039;t been publicly released, yet.}}&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>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Vendor_systems_comparison&amp;diff=1188063</id>
		<title>Vendor systems comparison</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Vendor_systems_comparison&amp;diff=1188063"/>
		<updated>2014-03-05T17:39:45Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: removed redundant pipes and redundant whitespace&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Vending systems in Second Life are used to sell items to customers. They range from the most basic level systems which only allow a &amp;quot;pay&amp;quot; option on a box, to large advanced and networked systems with many functions and capabilities. Each one has different benefits and drawbacks; each merchant will need to decide which one is best for them based on their needs.&lt;br /&gt;
&lt;br /&gt;
This page will compare the currently available (as of the last update) versions of some of the larger vending systems with their major features. All vending systems are sorted in alphabetical order, left to right.&lt;br /&gt;
&lt;br /&gt;
=Comparison table=&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; {{Prettytable}}&lt;br /&gt;
|- {{Hl2}}&lt;br /&gt;
! &#039;&#039;&#039;Configuration &amp;amp; Upgrades&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Alika&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;BSM&#039;&#039;&#039;&lt;br /&gt;
! title=&amp;quot;CasperVend² is the name of the product, &#039;²&#039; does not indicate a footnote&amp;quot; | &#039;&#039;&#039;CasperVend²&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Cheetah.Vend&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;E2V&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Hippovend&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;MoVe! / MoSystems&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Titan&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Configuration via notecard&#039;&#039;&#039;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Configuration via web&#039;&#039;&#039;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Free vending system upgrades&#039;&#039;&#039;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|Minor releases only}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Networked Delivery&#039;&#039;&#039;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Single script vendors&#039;&#039;&#039;&lt;br /&gt;
| {{maybe|1 script for minimal featureset}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|Separate purchase&amp;lt;br /&amp;gt;&amp;quot;Elite&amp;quot;}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Single script servers&#039;&#039;&#039;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Server holds unlimited products?&amp;lt;br /&amp;gt;&#039;&#039;(Subject to SL grid limitations)&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|Dependant upon version:&amp;lt;br /&amp;gt;&lt;br /&gt;
Standard vendors no&amp;lt;br /&amp;gt;&lt;br /&gt;
Elite yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Use of [[llTransferLindenDollars]]&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no|In development}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|&amp;quot;Not all transactions, yet&amp;quot;}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|- {{Hl2}}&lt;br /&gt;
! &#039;&#039;&#039;Affiliate Features&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Alika&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;BSM&#039;&#039;&#039;&lt;br /&gt;
! title=&amp;quot;CasperVend² is the name of the product, &#039;²&#039; does not indicate a footnote&amp;quot; | &#039;&#039;&#039;CasperVend²&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Cheetah.Vend&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;E2V&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Hippovend&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;MoVe! / MoSystems&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Titan&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Affiliate / Catalogue / Franchise vendors available&#039;&#039;&#039;&lt;br /&gt;
| {{maybe|Separate purchase}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no|Planned for future}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{No|Planned for future}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Affiliate / Catalogue / Franchise vendor fees&#039;&#039;&#039;&lt;br /&gt;
| {{no|2% commission}}&lt;br /&gt;
| {{no|2% commission}}&lt;br /&gt;
| {{no|2% commission}}&lt;br /&gt;
| {{yes|Not Applicable}}&lt;br /&gt;
| {{yes|Not Applicable}}&lt;br /&gt;
| {{no|2% commission}}&lt;br /&gt;
| {{yes|Not Applicable}}&lt;br /&gt;
| {{yes|Not Applicable}}&lt;br /&gt;
|- {{Hl2}}&lt;br /&gt;
! &#039;&#039;&#039;Gifting&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Alika&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;BSM&#039;&#039;&#039;&lt;br /&gt;
! title=&amp;quot;CasperVend² is the name of the product, &#039;²&#039; does not indicate a footnote&amp;quot; | &#039;&#039;&#039;CasperVend²&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Cheetah.Vend&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;E2V&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Hippovend&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;MoVe! / MoSystems&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Titan&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Gift cards available&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|Yes, in Fat Pack&lt;br /&gt;
-OR-&lt;br /&gt;
separate purchase}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|Separate purchase&amp;lt;br /&amp;gt;&amp;quot;HippoGIFT&amp;quot;}}&lt;br /&gt;
| {{maybe|Separate purchase&amp;lt;br /&amp;gt;&amp;quot;Gift Voucher&amp;quot;}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Buy as a gift&#039;&#039;&#039;&lt;br /&gt;
| {{maybe|Set additional script to &amp;quot;running&amp;quot; in vendor}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Gift wrapping&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|- {{Hl2}}&lt;br /&gt;
! &#039;&#039;&#039;Advanced Features&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Alika&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;BSM&#039;&#039;&#039;&lt;br /&gt;
! title=&amp;quot;CasperVend² is the name of the product, &#039;²&#039; does not indicate a footnote&amp;quot; | &#039;&#039;&#039;CasperVend²&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Cheetah.Vend&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;E2V&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Hippovend&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;MoVe! / MoSystems&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Titan&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;1-prim vendors&#039;&#039;&#039;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|Script provided; make your own vendor object}}&lt;br /&gt;
| {{maybe|Separate purchase&amp;lt;br /&amp;gt;&amp;quot;Elite&amp;quot;}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Built-in video playback&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Customer loyalty rewards program&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|4 levels}}&lt;br /&gt;
| {{yes|Unlimited levels}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Group-only rewards available}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Customize your vendors&#039;&#039;&#039;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Demos and Infocards&amp;lt;br /&amp;gt;&#039;&#039;(Give demos, give information notecards)&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| {{maybe|Infocards yes&amp;lt;br /&amp;gt;Demos no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|Infocards yes&amp;lt;br /&amp;gt;Demos unknown}}&lt;br /&gt;
| {{maybe|Infocards yes&amp;lt;br /&amp;gt;Demos unknown}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Group discounts&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no|Planned for future}}&lt;br /&gt;
| {{no|No}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Group products in categories&#039;&#039;&#039;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{Maybe|Yes, but for&amp;lt;br /&amp;gt;pricing only}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Holo Rezzing support&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{maybe|Yes, in FatPack&lt;br /&gt;
-OR- separate purchase}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Integration with other systems&amp;lt;br /&amp;gt;&#039;&#039;(No additional scripts required)&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|SL Marketplace ANS &amp;lt;br /&amp;gt;(MagicBox + Direct Delivery)}}&lt;br /&gt;
| {{yes|Smartbots, Pikkubots, MetaBOLT&amp;lt;br /&amp;gt;SL Marketplace ANS&amp;lt;br /&amp;gt;(MagicBox + Direct Delivery)}}&lt;br /&gt;
| {{maybe|Separate Purchase&amp;lt;br /&amp;gt;HippoVend, JEVN, XStreetSL ANS/MagicBox}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Multi-language support&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no|In development}}&lt;br /&gt;
| Unknown&lt;br /&gt;
| {{yes|vendor-messages in&amp;lt;br /&amp;gt;customers language}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| Unknown&lt;br /&gt;
| {{yes|vendor-messages in&amp;lt;br /&amp;gt;customers language}}&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Newsletter/subscriber mailer&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|Yes}}&lt;br /&gt;
| {{no|Planned for future}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{maybe|Separate purchase &amp;lt;br /&amp;gt;&#039;&#039;&#039;and&#039;&#039;&#039; subscription&amp;lt;br /&amp;gt;&amp;quot;HippoGROUPS&amp;quot;}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Product update sender&#039;&#039;&#039;&lt;br /&gt;
| {{maybe|Separate purchase&amp;lt;br /&amp;gt;&amp;quot;Update System&amp;quot;}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|Separate purchase&amp;lt;br /&amp;gt;&amp;quot;Messenger&amp;quot;}}&lt;br /&gt;
| {{maybe|Separate purchase&amp;lt;br /&amp;gt;&amp;quot;HippoUPDATE&amp;quot;}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Profit sharing&#039;&#039;&#039;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Redelivery option(s)&#039;&#039;&#039;&lt;br /&gt;
| {{yes|Vendor only}}&lt;br /&gt;
| {{yes|Terminal &amp;amp; Vendor}}&lt;br /&gt;
| {{yes|Terminal &amp;amp; Vendor}}&lt;br /&gt;
| {{maybe|Vendor only, for the &amp;lt;br /&amp;gt;product on that vendor}}&lt;br /&gt;
| {{yes|Terminal only}}&lt;br /&gt;
| {{maybe|Separate purchase&amp;lt;br /&amp;gt;&amp;quot;Redelivery Terminal Pro&amp;quot;}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Sell items that are &amp;quot;No Copy&amp;quot; to owner&amp;lt;br /&amp;gt;&#039;&#039;(such as breedable nests/bundles/etc.)&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;User Blacklist&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| Unknown&lt;br /&gt;
| {{no}}&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Wish List&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|Separate purchase}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|- {{Hl2}}&lt;br /&gt;
! &#039;&#039;&#039;Major Expansions&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Alika&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;BSM&#039;&#039;&#039;&lt;br /&gt;
! title=&amp;quot;CasperVend² is the name of the product, &#039;²&#039; does not indicate a footnote&amp;quot; | &#039;&#039;&#039;CasperVend²&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Cheetah.Vend&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;E2V&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Hippovend&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;MoVe! / MoSystems&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Titan&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Gacha / Gatcha&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{maybe|Yes, in FatPack&lt;br /&gt;
-OR-&lt;br /&gt;
separate purchase}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Lucky chair&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{maybe|Yes, in FatPack&lt;br /&gt;
-OR-&lt;br /&gt;
separate purchase}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;MM Board&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{maybe|Yes, in FatPack&lt;br /&gt;
-OR-&lt;br /&gt;
separate purchase}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|- {{Hl2}}&lt;br /&gt;
! &#039;&#039;&#039;Sales Transactions&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Alika&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;BSM&#039;&#039;&#039;&lt;br /&gt;
! title=&amp;quot;CasperVend² is the name of the product, &#039;²&#039; does not indicate a footnote&amp;quot; | &#039;&#039;&#039;CasperVend²&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Cheetah.Vend&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;E2V&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Hippovend&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;MoVe! / MoSystems&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Titan&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Inworld transaction tracking&#039;&#039;&#039;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|Configurable options via &amp;lt;br /&amp;gt;IM/Email &amp;amp; ANS}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Sale statistics via web&#039;&#039;&#039;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|Use SL transaction history&amp;lt;br /&amp;gt;-and/or-&amp;lt;br /&amp;gt;Send sales data via ANS to your ANS server}}&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Statistical graphs via web&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;SL Marketplace sales tracking&#039;&#039;&#039;&lt;br /&gt;
| {{maybe|XStreetSL ANS}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|Separate Purchase&amp;lt;br /&amp;gt;MagicBox only}}&lt;br /&gt;
| {{maybe|Separate Purchase&amp;lt;br /&amp;gt;&amp;quot;Marketplace Connection&amp;quot;}}&lt;br /&gt;
| {{maybe|HippoGROUPS subscription required&amp;lt;br /&amp;gt;MagicBox Only &amp;lt;br /&amp;gt;No Direct Delivery support}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|- {{Hl2}}&lt;br /&gt;
! &#039;&#039;&#039;Purchase Info&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Alika&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;BSM&#039;&#039;&#039;&lt;br /&gt;
! title=&amp;quot;CasperVend² is the name of the product, &#039;²&#039; does not indicate a footnote&amp;quot; | &#039;&#039;&#039;CasperVend²&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Cheetah.Vend&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;E2V&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Hippovend&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;MoVe! / MoSystems&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Titan&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Demo / Commission version available?&#039;&#039;&#039;&lt;br /&gt;
| {{yes|Yes&amp;lt;br /&amp;gt;L$1 cost&amp;lt;br /&amp;gt;5% Commission}}&lt;br /&gt;
| {{no|No demo version}}&lt;br /&gt;
| {{yes|Yes&amp;lt;br /&amp;gt;L$0 free&amp;lt;br /&amp;gt;5% Commission}}&lt;br /&gt;
| {{no|No demo version}}&lt;br /&gt;
| {{no|No demo version}}&lt;br /&gt;
| {{yes|Yes&amp;lt;br /&amp;gt;L$25 cost&amp;lt;br /&amp;gt;5% Commission &amp;lt;br /&amp;gt;L$2 minimum per sale}}&lt;br /&gt;
| {{yes|Yes&amp;lt;br /&amp;gt;L$0 free&amp;lt;br /&amp;gt;2.5% Commission}}&lt;br /&gt;
| {{no|No demo version}}&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Purchase price &amp;lt;br /&amp;gt;(non-demo versions)&#039;&#039;&#039;&lt;br /&gt;
| {{maybe|&#039;&#039;&#039;Full:&#039;&#039;&#039; L$3,500}}&lt;br /&gt;
| {{maybe|&#039;&#039;&#039;Full:&#039;&#039;&#039; L$2,999}}&lt;br /&gt;
| {{maybe|&#039;&#039;&#039;Premium:&#039;&#039;&#039; L$ 1,995&amp;lt;br /&amp;gt;&#039;&#039;&#039;Fat Pack:&#039;&#039;&#039; L$2,995}}&lt;br /&gt;
| {{maybe|&#039;&#039;&#039;Full:&#039;&#039;&#039; L$1,299}}&lt;br /&gt;
| {{maybe|&#039;&#039;&#039;Full:&#039;&#039;&#039; L$6,499}}&lt;br /&gt;
| {{maybe|&#039;&#039;&#039;Full:&#039;&#039;&#039; L$1,950&amp;lt;br /&amp;gt;&#039;&#039;&#039;Full + Elite:&#039;&#039;&#039; L$2,700}}&lt;br /&gt;
| {{maybe|&#039;&#039;&#039;Professional:&#039;&#039;&#039; L$ 500&amp;lt;br /&amp;gt;Plus commission: 0.5% per sale&amp;lt;br /&amp;gt;Max L$500 commission per month}}&lt;br /&gt;
| {{maybe| L$799 to L$1,999}}&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Inworld SLURL&#039;&#039;&#039;&lt;br /&gt;
| [http://maps.secondlife.com/secondlife/Poorlord/79/87/43/ Poorland]&lt;br /&gt;
| [http://maps.secondlife.com/secondlife/Virtualworx/128/243/24 VirtualWorx]&lt;br /&gt;
| [http://maps.secondlife.com/secondlife/Izanagi/184/85/134/ CasperTech]&lt;br /&gt;
| Not available inworld&lt;br /&gt;
| To buy inworld, talk to&amp;lt;br /&amp;gt;[https://my.secondlife.com/davidthomas.scorbal DavidThomas Scorbal].&lt;br /&gt;
| [http://maps.secondlife.com/secondlife/Hippo%20Technologies/123/122/44/ Hippo Technologies]&lt;br /&gt;
| [http://maps.secondlife.com/secondlife/Blacksilk%20Forrest/63/142/24 MoDesign/MoSystems]&lt;br /&gt;
| Not available inworld&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Website&#039;&#039;&#039;&lt;br /&gt;
| [http://www.alikasystems.com/ alikasystems.com]&lt;br /&gt;
| [https://www.bejamble.net/ bejamble.net]&lt;br /&gt;
| [https://wiki.casperdns.com/ CasperTech]&lt;br /&gt;
| [http://www.cheetah-sl.com/resources.php Cheetah Technologies]&lt;br /&gt;
| [http://www.e2-designs.com/e2v-3/ E2V]&lt;br /&gt;
| [http://www.hippo-technologies.co.uk/ hippo-technologies.co.uk]&lt;br /&gt;
| [http://mosystems-move.blogspot.de/ mosystems-move.blogspot.de]&lt;br /&gt;
| Unknown&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Available on Marketplace?&#039;&#039;&#039;&lt;br /&gt;
| [https://marketplace.secondlife.com/stores/22916 Alika Products Store]&lt;br /&gt;
| [https://marketplace.secondlife.com/stores/18108 VirtualWorx Store]&lt;br /&gt;
| [https://marketplace.secondlife.com/stores/49647 CasperTech Store]&lt;br /&gt;
| [https://marketplace.secondlife.com/stores/9909 Cheetah Technologies Store]&lt;br /&gt;
| Not on Marketplace&lt;br /&gt;
| [https://marketplace.secondlife.com/stores/2192 HippoTech Store]&lt;br /&gt;
| [https://marketplace.secondlife.com/stores/13954 MoDesign Store]&lt;br /&gt;
| Not on Marketplace&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Links=&lt;br /&gt;
&lt;br /&gt;
[[Category: Vendor Systems]]&lt;/div&gt;</summary>
		<author><name>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Vendor_systems_comparison&amp;diff=1188016</id>
		<title>Vendor systems comparison</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Vendor_systems_comparison&amp;diff=1188016"/>
		<updated>2014-03-03T20:34:55Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: removed trailing spaces&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Vending systems in Second Life are used to sell items to customers. They range from the most basic level systems which only allow a &amp;quot;pay&amp;quot; option on a box, to large advanced and networked systems with many functions and capabilities. Each one has different benefits and drawbacks; each merchant will need to decide which one is best for them based on their needs.&lt;br /&gt;
&lt;br /&gt;
This page will compare the currently available (as of the last update) versions of some of the larger vending systems with their major features. All vending systems are sorted in alphabetical order, left to right.&lt;br /&gt;
&lt;br /&gt;
=Comparison table=&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; {{Prettytable}}&lt;br /&gt;
|- {{Hl2}}&lt;br /&gt;
! &#039;&#039;&#039;Configuration &amp;amp; Upgrades&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Alika&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;BSM&#039;&#039;&#039;&lt;br /&gt;
! title=&amp;quot;CasperVend² is the name of the product, &#039;²&#039; does not indicate a footnote&amp;quot; | &#039;&#039;&#039;CasperVend²&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Cheetah.Vend&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;E2V&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Hippovend&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;MoVe! / MoSystems&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Titan&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Configuration via notecard&#039;&#039;&#039;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
||Unknown&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Configuration via web&#039;&#039;&#039;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
||Unknown&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Free vending system upgrades&#039;&#039;&#039;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|Minor releases only}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Networked Delivery&#039;&#039;&#039;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Single script vendors&#039;&#039;&#039;&lt;br /&gt;
| {{maybe|1 script for minimal featureset}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|Separate purchase&amp;lt;br /&amp;gt;&amp;quot;Elite&amp;quot;}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Single script servers&#039;&#039;&#039;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Server holds unlimited products?&amp;lt;br /&amp;gt;&#039;&#039;(Subject to SL grid limitations)&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|Dependant upon version:&amp;lt;br /&amp;gt;&lt;br /&gt;
Standard vendors no&amp;lt;br /&amp;gt;&lt;br /&gt;
Elite yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Use of [[llTransferLindenDollars]]&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
|| Unknown&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|&amp;quot;Not all transactions, yet&amp;quot;}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|- {{Hl2}}&lt;br /&gt;
! &#039;&#039;&#039;Affiliate Features&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Alika&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;BSM&#039;&#039;&#039;&lt;br /&gt;
! title=&amp;quot;CasperVend² is the name of the product, &#039;²&#039; does not indicate a footnote&amp;quot; | &#039;&#039;&#039;CasperVend²&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Cheetah.Vend&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;E2V&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Hippovend&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;MoVe! / MoSystems&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Titan&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Affiliate / Catalogue / Franchise vendors available&#039;&#039;&#039;&lt;br /&gt;
| {{maybe|Separate purchase}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no|Planned for future}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{No|Planned for future}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Affiliate / Catalogue / Franchise vendor fees&#039;&#039;&#039;&lt;br /&gt;
| {{no|2% commission}}&lt;br /&gt;
| {{no|2% commission}}&lt;br /&gt;
| {{no|2% commission}}&lt;br /&gt;
| {{yes|Not Applicable}}&lt;br /&gt;
| {{yes|Not Applicable}}&lt;br /&gt;
| {{no|2% commission}}&lt;br /&gt;
| {{yes|Not Applicable}}&lt;br /&gt;
| {{yes|Not Applicable}}&lt;br /&gt;
|- {{Hl2}}&lt;br /&gt;
! &#039;&#039;&#039;Gifting&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Alika&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;BSM&#039;&#039;&#039;&lt;br /&gt;
! title=&amp;quot;CasperVend² is the name of the product, &#039;²&#039; does not indicate a footnote&amp;quot; | &#039;&#039;&#039;CasperVend²&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Cheetah.Vend&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;E2V&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Hippovend&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;MoVe! / MoSystems&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Titan&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Gift cards available&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|Yes, in Fat Pack&lt;br /&gt;
-OR-&lt;br /&gt;
separate purchase}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|Separate purchase&amp;lt;br /&amp;gt;&amp;quot;HippoGIFT&amp;quot;}}&lt;br /&gt;
| {{maybe|Separate purchase&amp;lt;br /&amp;gt;&amp;quot;Gift Voucher&amp;quot;}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Buy as a gift&#039;&#039;&#039;&lt;br /&gt;
| {{maybe|Set additional script to &amp;quot;running&amp;quot; in vendor}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Gift wrapping&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|- {{Hl2}}&lt;br /&gt;
! &#039;&#039;&#039;Advanced Features&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Alika&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;BSM&#039;&#039;&#039;&lt;br /&gt;
! title=&amp;quot;CasperVend² is the name of the product, &#039;²&#039; does not indicate a footnote&amp;quot; | &#039;&#039;&#039;CasperVend²&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Cheetah.Vend&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;E2V&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Hippovend&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;MoVe! / MoSystems&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Titan&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;1-prim vendors&#039;&#039;&#039;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|Script provided; make your own vendor object}}&lt;br /&gt;
| {{maybe|Separate purchase&amp;lt;br /&amp;gt;&amp;quot;Elite&amp;quot;}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
||Unknown&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Built-in video playback&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Customer loyalty rewards program&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|4 levels}}&lt;br /&gt;
| {{yes|Unlimited levels}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Group-only rewards available}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
||Unknown&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Customize your vendors&#039;&#039;&#039;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
||Unknown&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Demos and Infocards&amp;lt;br /&amp;gt;&#039;&#039;(Give demos, give information notecards)&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| {{maybe|Infocards yes&amp;lt;br /&amp;gt;Demos no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|Infocards yes&amp;lt;br /&amp;gt;Demos unknown}}&lt;br /&gt;
| {{maybe|Infocards yes&amp;lt;br /&amp;gt;Demos unknown}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
||Unknown&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Group discounts&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no|Planned for future}}&lt;br /&gt;
| {{no|No}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
||Unknown&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Group products in categories&#039;&#039;&#039;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{Maybe|Yes, but for&amp;lt;br /&amp;gt;pricing only}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
||Unknown&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Holo Rezzing support&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{maybe|Yes, in FatPack&lt;br /&gt;
-OR- separate purchase}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Integration with other systems&amp;lt;br /&amp;gt;&#039;&#039;(No additional scripts required)&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|SL Marketplace ANS &amp;lt;br /&amp;gt;(MagicBox + Direct Delivery)}}&lt;br /&gt;
| {{yes|Smartbots, Pikkubots, MetaBOLT&amp;lt;br /&amp;gt;SL Marketplace ANS&amp;lt;br /&amp;gt;(MagicBox + Direct Delivery)}}&lt;br /&gt;
| {{maybe|Separate Purchase&amp;lt;br /&amp;gt;HippoVend, JEVN, XStreetSL ANS/MagicBox}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Multi-language support&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
||Unknown&lt;br /&gt;
||Unknown&lt;br /&gt;
| {{yes|vendor-messages in&amp;lt;br /&amp;gt;customers language}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
||Unknown&lt;br /&gt;
| {{yes|vendor-messages in&amp;lt;br /&amp;gt;customers language}}&lt;br /&gt;
||Unknown&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Newsletter/subscriber mailer&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|Yes}}&lt;br /&gt;
| {{no|Planned for future}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{maybe|Separate purchase &amp;lt;br /&amp;gt;&#039;&#039;&#039;and&#039;&#039;&#039; subscription&amp;lt;br /&amp;gt;&amp;quot;HippoGROUPS&amp;quot;}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
||Unknown&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Product update sender&#039;&#039;&#039;&lt;br /&gt;
| {{maybe|Separate purchase&amp;lt;br /&amp;gt;&amp;quot;Update System&amp;quot;}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|Separate purchase&amp;lt;br /&amp;gt;&amp;quot;Messenger&amp;quot;}}&lt;br /&gt;
| {{maybe|Separate purchase&amp;lt;br /&amp;gt;&amp;quot;HippoUPDATE&amp;quot;}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
||Unknown&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Profit sharing&#039;&#039;&#039;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
||Unknown&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Redelivery option(s)&#039;&#039;&#039;&lt;br /&gt;
| {{yes|Vendor only}}&lt;br /&gt;
| {{yes|Terminal &amp;amp; Vendor}}&lt;br /&gt;
| {{yes|Terminal &amp;amp; Vendor}}&lt;br /&gt;
| {{maybe|Vendor only, for the &amp;lt;br /&amp;gt;product on that vendor}}&lt;br /&gt;
| {{yes|Terminal only}}&lt;br /&gt;
| {{maybe|Separate purchase&amp;lt;br /&amp;gt;&amp;quot;Redelivery Terminal Pro&amp;quot;}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
||Unknown&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Sell items that are &amp;quot;No Copy&amp;quot; to owner&amp;lt;br /&amp;gt;&#039;&#039;(such as breedable nests/bundles/etc.)&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|| Unknown&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;User Blacklist&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
||Unknown&lt;br /&gt;
| {{no}}&lt;br /&gt;
||Unknown&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Wish List&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
||Unknown&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|Separate purchase}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|- {{Hl2}}&lt;br /&gt;
! &#039;&#039;&#039;Major Expansions&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Alika&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;BSM&#039;&#039;&#039;&lt;br /&gt;
! title=&amp;quot;CasperVend² is the name of the product, &#039;²&#039; does not indicate a footnote&amp;quot; | &#039;&#039;&#039;CasperVend²&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Cheetah.Vend&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;E2V&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Hippovend&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;MoVe! / MoSystems&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Titan&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Gacha / Gatcha&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{maybe|Yes, in FatPack&lt;br /&gt;
-OR-&lt;br /&gt;
separate purchase}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Lucky chair&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{maybe|Yes, in FatPack&lt;br /&gt;
-OR-&lt;br /&gt;
separate purchase}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;MM Board&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{maybe|Yes, in FatPack&lt;br /&gt;
-OR-&lt;br /&gt;
separate purchase}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|- {{Hl2}}&lt;br /&gt;
! &#039;&#039;&#039;Sales Transactions&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Alika&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;BSM&#039;&#039;&#039;&lt;br /&gt;
! title=&amp;quot;CasperVend² is the name of the product, &#039;²&#039; does not indicate a footnote&amp;quot; | &#039;&#039;&#039;CasperVend²&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Cheetah.Vend&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;E2V&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Hippovend&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;MoVe! / MoSystems&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Titan&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Inworld transaction tracking&#039;&#039;&#039;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|Configurable options via &amp;lt;br /&amp;gt;IM/Email &amp;amp; ANS}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Sale statistics via web&#039;&#039;&#039;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|Use SL transaction history&amp;lt;br /&amp;gt;-and/or-&amp;lt;br /&amp;gt;Send sales data via ANS to your ANS server}}&lt;br /&gt;
||Unknown&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Statistical graphs via web&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
||Unknown&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;SL Marketplace sales tracking&#039;&#039;&#039;&lt;br /&gt;
| {{maybe|XStreetSL ANS}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|Separate Purchase&amp;lt;br /&amp;gt;MagicBox only}}&lt;br /&gt;
| {{maybe|Separate Purchase&amp;lt;br /&amp;gt;&amp;quot;Marketplace Connection&amp;quot;}}&lt;br /&gt;
| {{maybe|HippoGROUPS subscription required&amp;lt;br /&amp;gt;MagicBox Only &amp;lt;br /&amp;gt;No Direct Delivery support}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|- {{Hl2}}&lt;br /&gt;
! &#039;&#039;&#039;Purchase Info&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Alika&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;BSM&#039;&#039;&#039;&lt;br /&gt;
! title=&amp;quot;CasperVend² is the name of the product, &#039;²&#039; does not indicate a footnote&amp;quot; | &#039;&#039;&#039;CasperVend²&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Cheetah.Vend&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;E2V&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Hippovend&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;MoVe! / MoSystems&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Titan&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Demo / Commission version available?&#039;&#039;&#039;&lt;br /&gt;
| {{yes|Yes&amp;lt;br /&amp;gt;L$1 cost&amp;lt;br /&amp;gt;5% Commission}}&lt;br /&gt;
| {{no|No demo version}}&lt;br /&gt;
| {{yes|Yes&amp;lt;br /&amp;gt;L$0 free&amp;lt;br /&amp;gt;5% Commission}}&lt;br /&gt;
| {{no|No demo version}}&lt;br /&gt;
| {{no|No demo version}}&lt;br /&gt;
| {{yes|Yes&amp;lt;br /&amp;gt;L$25 cost&amp;lt;br /&amp;gt;5% Commission &amp;lt;br /&amp;gt;L$2 minimum per sale}}&lt;br /&gt;
| {{yes|Yes&amp;lt;br /&amp;gt;L$0 free&amp;lt;br /&amp;gt;2.5% Commission}}&lt;br /&gt;
| {{no|No demo version}}&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Purchase price (non-demo versions)&#039;&#039;&#039;&lt;br /&gt;
| {{maybe|&#039;&#039;&#039;Full:&#039;&#039;&#039; L$3,500}}&lt;br /&gt;
| {{maybe|&#039;&#039;&#039;Full:&#039;&#039;&#039; L$2,999}}&lt;br /&gt;
| {{maybe|&#039;&#039;&#039;Premium:&#039;&#039;&#039; L$ 1,995&amp;lt;br /&amp;gt;&#039;&#039;&#039;Fat Pack:&#039;&#039;&#039; L$2,995}}&lt;br /&gt;
| {{maybe|&#039;&#039;&#039;Full:&#039;&#039;&#039; L$1,299}}&lt;br /&gt;
| {{maybe|&#039;&#039;&#039;Full:&#039;&#039;&#039; L$6,499}}&lt;br /&gt;
| {{maybe|&#039;&#039;&#039;Full:&#039;&#039;&#039; L$1,950&amp;lt;br /&amp;gt;&#039;&#039;&#039;Full + Elite:&#039;&#039;&#039; L$2,700}}&lt;br /&gt;
| {{maybe|&#039;&#039;&#039;Professional:&#039;&#039;&#039; L$ 500&amp;lt;br /&amp;gt;Plus commission: 0.5% per sale&amp;lt;br /&amp;gt;Max L$500 commission per month}}&lt;br /&gt;
| {{maybe| L$799 to L$1,999}}&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Inworld SLURL&#039;&#039;&#039;&lt;br /&gt;
||[http://maps.secondlife.com/secondlife/Poorlord/79/87/43/ Poorland]&lt;br /&gt;
||[http://maps.secondlife.com/secondlife/Virtualworx/128/243/24 VirtualWorx]&lt;br /&gt;
||[http://maps.secondlife.com/secondlife/Izanagi/184/85/134/ CasperTech]&lt;br /&gt;
| Not available inworld&lt;br /&gt;
|| To buy inworld, talk to&amp;lt;br /&amp;gt;[https://my.secondlife.com/davidthomas.scorbal DavidThomas Scorbal].&lt;br /&gt;
||[http://maps.secondlife.com/secondlife/Hippo%20Technologies/123/122/44/ Hippo Technologies]&lt;br /&gt;
||[http://maps.secondlife.com/secondlife/Blacksilk%20Forrest/63/142/24 MoDesign/MoSystems]&lt;br /&gt;
|| Not available inworld&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Website&#039;&#039;&#039;&lt;br /&gt;
||[http://www.alikasystems.com/ alikasystems.com]&lt;br /&gt;
||[https://www.bejamble.net/ bejamble.net]&lt;br /&gt;
||[https://wiki.casperdns.com/ CasperTech]&lt;br /&gt;
||[http://www.cheetah-sl.com/resources.php Cheetah Technologies]&lt;br /&gt;
||[http://www.e2-designs.com/e2v-3/ E2V ]&lt;br /&gt;
||[http://www.hippo-technologies.co.uk/ hippo-technologies.co.uk]&lt;br /&gt;
||[http://mosystems-move.blogspot.de/ mosystems-move.blogspot.de]&lt;br /&gt;
|| Unknown&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Available on Marketplace?&#039;&#039;&#039;&lt;br /&gt;
||[https://marketplace.secondlife.com/stores/22916 Alika Products Store]&lt;br /&gt;
||[https://marketplace.secondlife.com/stores/18108 VirtualWorx Store]&lt;br /&gt;
||[https://marketplace.secondlife.com/stores/49647 CasperTech Store]&lt;br /&gt;
||[https://marketplace.secondlife.com/stores/9909 Cheetah Technologies Store]&lt;br /&gt;
|| Not on Marketplace&lt;br /&gt;
||[https://marketplace.secondlife.com/stores/2192 HippoTech Store]&lt;br /&gt;
||[https://marketplace.secondlife.com/stores/13954 MoDesign Store]&lt;br /&gt;
|| Not on Marketplace&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Links=&lt;br /&gt;
&lt;br /&gt;
[[Category: Vendor Systems]]&lt;/div&gt;</summary>
		<author><name>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User_talk:Structura_Finesmith&amp;diff=1188015</id>
		<title>User talk:Structura Finesmith</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User_talk:Structura_Finesmith&amp;diff=1188015"/>
		<updated>2014-03-03T20:33:23Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: /* Yes / No / Maybe - Templates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi there! So. I guess this is a talk page. If you&#039;re looking to contact me, you can either leave a message here and I&#039;ll see it when I next check in to wiki, or send me an inworld IM. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[User:Structura Finesmith|Structura Finesmith]] 20:32, 2 March 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
== Yes / No / Maybe - Templates ==&lt;br /&gt;
&lt;br /&gt;
Say you have the &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{yes}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; template somewhere on a page. Instead of using it as is, you&#039;re using it with a &#039;&#039;custom text&#039;&#039; which is perfectly fine. The part I&#039;m not sure about is why you&#039;re using it with &#039;&#039;custom text&#039;&#039; which is exactly the &#039;&#039;default text&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
So why would you use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{yes|Yes}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{yes}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; if &#039;&#039;&#039;they both have the same effect&#039;&#039;&#039;? Everybody else uses the base template for displaying &amp;quot;Yes&amp;quot; and saves four characters source code per used template. -- &#039;&#039;&#039;[[User:Kireji_Haiku|Kireji Haiku]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Kireji_Haiku|talk]]|[[Special:Contributions/Kireji_Haiku|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 12:30, 3 March 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
:Well you figured it out, just leaving stuff here for reference. -- &#039;&#039;&#039;[[User:Kireji_Haiku|Kireji Haiku]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Kireji_Haiku|talk]]|[[Special:Contributions/Kireji_Haiku|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 12:33, 3 March 2014 (PST)&lt;/div&gt;</summary>
		<author><name>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User_talk:Structura_Finesmith&amp;diff=1188014</id>
		<title>User talk:Structura Finesmith</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User_talk:Structura_Finesmith&amp;diff=1188014"/>
		<updated>2014-03-03T20:30:23Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi there! So. I guess this is a talk page. If you&#039;re looking to contact me, you can either leave a message here and I&#039;ll see it when I next check in to wiki, or send me an inworld IM. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[User:Structura Finesmith|Structura Finesmith]] 20:32, 2 March 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
== Yes / No / Maybe - Templates ==&lt;br /&gt;
&lt;br /&gt;
Say you have the &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{yes}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; template somewhere on a page. Instead of using it as is, you&#039;re using it with a &#039;&#039;custom text&#039;&#039; which is perfectly fine. The part I&#039;m not sure about is why you&#039;re using it with &#039;&#039;custom text&#039;&#039; which is exactly the &#039;&#039;default text&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
So why would you use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{yes|Yes}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{yes}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; if &#039;&#039;&#039;they both have the same effect&#039;&#039;&#039;? Everybody else uses the base template for displaying &amp;quot;Yes&amp;quot; and saves four characters source code per used template. -- &#039;&#039;&#039;[[User:Kireji_Haiku|Kireji Haiku]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Kireji_Haiku|talk]]|[[Special:Contributions/Kireji_Haiku|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 12:30, 3 March 2014 (PST)&lt;/div&gt;</summary>
		<author><name>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Vendor_systems_comparison&amp;diff=1187996</id>
		<title>Vendor systems comparison</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Vendor_systems_comparison&amp;diff=1187996"/>
		<updated>2014-03-03T11:14:30Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: what was the point in adding the overhead source code to the page?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Vending systems in Second Life are used to sell items to customers. They range from the most basic level systems which only allow a &amp;quot;pay&amp;quot; option on a box, to large advanced and networked systems with many functions and capabilities. Each one has different benefits and drawbacks; each merchant will need to decide which one is best for them based on their needs.&lt;br /&gt;
&lt;br /&gt;
This page will compare the currently available (as of the last update) versions of some of the larger vending systems with their major features. All vending systems are sorted in alphabetical order, left to right.&lt;br /&gt;
&lt;br /&gt;
=Comparison table=&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; {{Prettytable}}&lt;br /&gt;
|- {{Hl2}}&lt;br /&gt;
! &#039;&#039;&#039;Configuration &amp;amp; Upgrades&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Alika&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;BSM&#039;&#039;&#039;&lt;br /&gt;
! title=&amp;quot;CasperVend² is the name of the product, &#039;²&#039; does not indicate a footnote&amp;quot; | &#039;&#039;&#039;CasperVend²&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Cheetah.Vend&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;E2V&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Hippovend&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;MoVe! / MoSystems&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Titan&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Configuration via notecard&#039;&#039;&#039;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
||Unknown&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Configuration via web&#039;&#039;&#039;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
||Unknown&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Free vending system upgrades&#039;&#039;&#039;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|Minor releases only}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Networked Delivery&#039;&#039;&#039;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Single script vendors&#039;&#039;&#039;&lt;br /&gt;
| {{maybe|1 script for minimal featureset}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|Separate purchase&amp;lt;br /&amp;gt;&amp;quot;Elite&amp;quot;}}&lt;br /&gt;
| {{yes|All vendors}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Single script servers&#039;&#039;&#039;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Server holds unlimited products?&amp;lt;br /&amp;gt;&#039;&#039;(Subject to SL grid limitations)&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|Dependant upon version:&amp;lt;br /&amp;gt;&lt;br /&gt;
Elite yes&amp;lt;br /&amp;gt;&lt;br /&gt;
Regular no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Use of [[llTransferLindenDollars]]&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
|| Unknown&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|&amp;quot;Not all transactions, yet&amp;quot;}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|- {{Hl2}}&lt;br /&gt;
! &#039;&#039;&#039;Affiliate Features&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Alika&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;BSM&#039;&#039;&#039;&lt;br /&gt;
! title=&amp;quot;CasperVend² is the name of the product, &#039;²&#039; does not indicate a footnote&amp;quot; | &#039;&#039;&#039;CasperVend²&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Cheetah.Vend&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;E2V&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Hippovend&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;MoVe! / MoSystems&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Titan&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Affiliate / Catalogue / Franchise vendors available&#039;&#039;&#039;&lt;br /&gt;
| {{maybe|Separate purchase}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no|Planned for future}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{No|Planned for future}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Affiliate / Catalogue / Franchise vendor fees&#039;&#039;&#039;&lt;br /&gt;
| {{no|2% commission}}&lt;br /&gt;
| {{no|2% commission}}&lt;br /&gt;
| {{no|2% commission}}&lt;br /&gt;
| {{yes|Not Applicable}}&lt;br /&gt;
| {{yes|Not Applicable}}&lt;br /&gt;
| {{no|2% commission}}&lt;br /&gt;
| {{yes|Not Applicable}}&lt;br /&gt;
| {{yes|Not Applicable}}&lt;br /&gt;
|- {{Hl2}}&lt;br /&gt;
! &#039;&#039;&#039;Gifting&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Alika&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;BSM&#039;&#039;&#039;&lt;br /&gt;
! title=&amp;quot;CasperVend² is the name of the product, &#039;²&#039; does not indicate a footnote&amp;quot; | &#039;&#039;&#039;CasperVend²&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Cheetah.Vend&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;E2V&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Hippovend&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;MoVe! / MoSystems&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Titan&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Gift cards available&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|Yes, in FatPack&lt;br /&gt;
-OR-&lt;br /&gt;
separate purchase}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|Separate purchase&amp;lt;br /&amp;gt;&amp;quot;HippoGIFT&amp;quot;}}&lt;br /&gt;
| {{maybe|Separate purchase&amp;lt;br /&amp;gt;&amp;quot;Gift Voucher&amp;quot;}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Buy as a gift&#039;&#039;&#039;&lt;br /&gt;
| {{maybe|Set additional script to &amp;quot;running&amp;quot; in vendor}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Gift wrapping&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|- {{Hl2}}&lt;br /&gt;
! &#039;&#039;&#039;Advanced Features&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Alika&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;BSM&#039;&#039;&#039;&lt;br /&gt;
! title=&amp;quot;CasperVend² is the name of the product, &#039;²&#039; does not indicate a footnote&amp;quot; | &#039;&#039;&#039;CasperVend²&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Cheetah.Vend&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;E2V&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Hippovend&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;MoVe! / MoSystems&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Titan&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;1-prim vendors&#039;&#039;&#039;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|Script provided; make your own vendor object}}&lt;br /&gt;
| {{maybe|Separate purchase&amp;lt;br /&amp;gt;&amp;quot;Elite&amp;quot;}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
||Unknown&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Built-in video playback&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Customer loyalty rewards program&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|4 levels}}&lt;br /&gt;
| {{yes|Unlimited levels}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes|Group-only rewards available}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
||Unknown&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Customize your vendors&#039;&#039;&#039;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
||Unknown&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Demos and Infocards&amp;lt;br /&amp;gt;&#039;&#039;(Give demos, give information notecards)&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| {{maybe|Infocards yes&amp;lt;br /&amp;gt;Demos no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|Infocards yes&amp;lt;br /&amp;gt;Demos unknown}}&lt;br /&gt;
| {{maybe|Infocards yes&amp;lt;br /&amp;gt;Demos unknown}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
||Unknown&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Group discounts&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no|Planned for future}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
||Unknown&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Group products in categories&#039;&#039;&#039;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{Maybe|Yes, but for&amp;lt;br /&amp;gt;pricing only}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
||Unknown&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Holo Rezzing support&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{maybe|Yes, in FatPack&lt;br /&gt;
-OR- separate purchase}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Integration with other systems&amp;lt;br /&amp;gt;&#039;&#039;(No additional scripts required)&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes|SL Marketplace ANS &amp;lt;br /&amp;gt;(MagicBox + Direct Delivery)}}&lt;br /&gt;
| {{yes|Smartbots, Pikkubots, MetaBOLT&amp;lt;br /&amp;gt;SL Marketplace ANS&amp;lt;br /&amp;gt;(MagicBox + Direct Delivery)}}&lt;br /&gt;
| {{maybe|Separate Purchase&amp;lt;br /&amp;gt;HippoVend, JEVN, XStreetSL ANS/MagicBox}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Multi-language support&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
||Unknown&lt;br /&gt;
||Unknown&lt;br /&gt;
| {{yes|vendor-messages in&amp;lt;br /&amp;gt;customers language}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
||Unknown&lt;br /&gt;
| {{yes|vendor-messages in&amp;lt;br /&amp;gt;customers language}}&lt;br /&gt;
||Unknown&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Newsletter/subscriber mailer&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no | Planned for future}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{maybe|Separate purchase &amp;lt;br /&amp;gt;&#039;&#039;&#039;and&#039;&#039;&#039; subscription&amp;lt;br /&amp;gt;&amp;quot;HippoGROUPS&amp;quot;}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
||Unknown&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Product update sender&#039;&#039;&#039;&lt;br /&gt;
| {{maybe|Separate purchase&amp;lt;br /&amp;gt;&amp;quot;Update System&amp;quot;}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|Separate purchase&amp;lt;br /&amp;gt;&amp;quot;Messenger&amp;quot;}}&lt;br /&gt;
| {{maybe|Separate purchase&amp;lt;br /&amp;gt;&amp;quot;HippoUPDATE&amp;quot;}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
||Unknown&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Profit sharing&#039;&#039;&#039;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
||Unknown&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Redelivery option(s)&#039;&#039;&#039;&lt;br /&gt;
| {{yes|Vendor only}}&lt;br /&gt;
| {{yes|Terminal &amp;amp; Vendor}}&lt;br /&gt;
| {{yes|Terminal &amp;amp; Vendor}}&lt;br /&gt;
| {{maybe|Vendor only, for the &amp;lt;br /&amp;gt;product on that vendor}}&lt;br /&gt;
| {{yes|Terminal only}}&lt;br /&gt;
| {{maybe|Separate purchase&amp;lt;br /&amp;gt;&amp;quot;Redelivery Terminal Pro&amp;quot;}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
||Unknown&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Sell items that are &amp;quot;No Copy&amp;quot; to owner&amp;lt;br /&amp;gt;&#039;&#039;(such as breedable nests/bundles/etc.)&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|| Unknown&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;User Blacklist&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
||Unknown&lt;br /&gt;
| {{no}}&lt;br /&gt;
||Unknown&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Wish List&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
||Unknown&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|Separate purchase}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|- {{Hl2}}&lt;br /&gt;
! &#039;&#039;&#039;Major Expansions&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Alika&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;BSM&#039;&#039;&#039;&lt;br /&gt;
! title=&amp;quot;CasperVend² is the name of the product, &#039;²&#039; does not indicate a footnote&amp;quot; | &#039;&#039;&#039;CasperVend²&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Cheetah.Vend&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;E2V&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Hippovend&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;MoVe! / MoSystems&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Titan&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Gacha / Gatcha&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{maybe|Yes, in FatPack&lt;br /&gt;
-OR-&lt;br /&gt;
separate purchase}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Lucky chair&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{maybe|Yes, in FatPack&lt;br /&gt;
-OR-&lt;br /&gt;
separate purchase}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;MM Board&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{maybe|Yes, in FatPack&lt;br /&gt;
-OR-&lt;br /&gt;
separate purchase}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|- {{Hl2}}&lt;br /&gt;
! &#039;&#039;&#039;Sales Transactions&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Alika&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;BSM&#039;&#039;&#039;&lt;br /&gt;
! title=&amp;quot;CasperVend² is the name of the product, &#039;²&#039; does not indicate a footnote&amp;quot; | &#039;&#039;&#039;CasperVend²&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Cheetah.Vend&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;E2V&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Hippovend&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;MoVe! / MoSystems&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Titan&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Inworld transaction tracking&#039;&#039;&#039;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|Configurable options via &amp;lt;br /&amp;gt;IM/Email &amp;amp; ANS}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Sale statistics via web&#039;&#039;&#039;&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|Use SL transaction history&amp;lt;br /&amp;gt;-and/or-&amp;lt;br /&amp;gt;Send sales data via ANS to your ANS server}}&lt;br /&gt;
||Unknown&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Statistical graphs via web&#039;&#039;&#039;&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
||Unknown&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;SL Marketplace sales tracking&#039;&#039;&#039;&lt;br /&gt;
| {{maybe|XStreetSL ANS}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|Separate Purchase&amp;lt;br /&amp;gt;MagicBox only}}&lt;br /&gt;
| {{maybe|Separate Purchase&amp;lt;br /&amp;gt;&amp;quot;Marketplace Connection&amp;quot;}}&lt;br /&gt;
| {{maybe|HippoGROUPS subscription required&amp;lt;br /&amp;gt;MagicBox Only &amp;lt;br /&amp;gt;No Direct Delivery support}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|- {{Hl2}}&lt;br /&gt;
! &#039;&#039;&#039;Purchase Info&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Alika&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;BSM&#039;&#039;&#039;&lt;br /&gt;
! title=&amp;quot;CasperVend² is the name of the product, &#039;²&#039; does not indicate a footnote&amp;quot; | &#039;&#039;&#039;CasperVend²&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Cheetah.Vend&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;E2V&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Hippovend&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;MoVe! / MoSystems&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Titan&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Purchase price&#039;&#039;&#039;&lt;br /&gt;
| {{maybe|Dependant upon version:&amp;lt;br /&amp;gt;&lt;br /&gt;
L$ 1 (Commission)&amp;lt;br /&amp;gt;&lt;br /&gt;
L$ 3500 (Full)}}&lt;br /&gt;
| {{no|L$ 2,999&amp;lt;br /&amp;gt;No demo version}}&lt;br /&gt;
| {{maybe|Dependant upon version:&amp;lt;br /&amp;gt;&lt;br /&gt;
FREE (Free)&amp;lt;br /&amp;gt;&lt;br /&gt;
L$ 1,995 (Premium)&amp;lt;br /&amp;gt;&lt;br /&gt;
L$ 2,695 (FatPack)}}&lt;br /&gt;
| {{no|L$ 1,299&amp;lt;br /&amp;gt;No demo version}}&lt;br /&gt;
| {{no|L$6,499&amp;lt;br /&amp;gt;No demo version}}&lt;br /&gt;
| {{no|Dependant upon version:&amp;lt;br /&amp;gt;&lt;br /&gt;
L$ 25 (Demo)&amp;lt;br /&amp;gt;&lt;br /&gt;
L$ 1950 (Regular)&amp;lt;br /&amp;gt;&lt;br /&gt;
L$ 2700 (Regular + Elite)}}&lt;br /&gt;
| {{maybe|Dependant upon version:&amp;lt;br /&amp;gt;&lt;br /&gt;
FREE (Free)&amp;lt;br /&amp;gt;&lt;br /&gt;
L$ 500 (Regular)}}&lt;br /&gt;
| {{no|L$ 799 - L$ 1999}}&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;System commission&#039;&#039;&#039;&lt;br /&gt;
| {{maybe|Dependant upon version:&amp;lt;br /&amp;gt;&lt;br /&gt;
5 % (L$ 1 version)&amp;lt;br /&amp;gt;&lt;br /&gt;
None (Full)}}&lt;br /&gt;
| {{yes|None &amp;lt;br /&amp;gt;(no free version)}}&lt;br /&gt;
| {{maybe|Dependant upon version:&amp;lt;br /&amp;gt;&lt;br /&gt;
5 % (Free)&amp;lt;br /&amp;gt;&lt;br /&gt;
None (Premium)&amp;lt;br /&amp;gt;&lt;br /&gt;
None (FatPack)}}&lt;br /&gt;
| {{yes|None &amp;lt;br /&amp;gt;(no free version)}}&lt;br /&gt;
| {{yes|None &amp;lt;br /&amp;gt;(no free version)}}&lt;br /&gt;
| {{maybe|Dependant upon version:&amp;lt;br /&amp;gt;&lt;br /&gt;
5 % (minimum L$2) (Demo)&amp;lt;br /&amp;gt;&lt;br /&gt;
None (Paid)}}&lt;br /&gt;
| {{maybe|Dependant upon version:&amp;lt;br /&amp;gt;&lt;br /&gt;
2.5 % (Free)&amp;lt;br /&amp;gt;&lt;br /&gt;
0.5%, max L$500 per 4 weeks (Paid)}}&lt;br /&gt;
| {{yes|None &amp;lt;br /&amp;gt;(no free version)}}&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;SLURL&#039;&#039;&#039;&lt;br /&gt;
||[http://maps.secondlife.com/secondlife/Poorlord/79/87/43/ Poorland]&lt;br /&gt;
||[http://maps.secondlife.com/secondlife/Virtualworx/128/243/24 VirtualWorx]&lt;br /&gt;
||[http://maps.secondlife.com/secondlife/Izanagi/184/85/134/ CasperTech]&lt;br /&gt;
| Not available inworld&lt;br /&gt;
|| To buy inworld, talk to&amp;lt;br /&amp;gt;[https://my.secondlife.com/davidthomas.scorbal DavidThomas Scorbal].&lt;br /&gt;
||[http://maps.secondlife.com/secondlife/Hippo%20Technologies/123/122/44/ Hippo Technologies]&lt;br /&gt;
||[http://maps.secondlife.com/secondlife/Blacksilk%20Forrest/63/142/24 MoDesign/MoSystems]&lt;br /&gt;
|| Not available inworld&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Website&#039;&#039;&#039;&lt;br /&gt;
||[http://www.alikasystems.com/ alikasystems.com]&lt;br /&gt;
||[https://www.bejamble.net/ bejamble.net]&lt;br /&gt;
||[https://wiki.casperdns.com/ CasperTech]&lt;br /&gt;
||[http://www.cheetah-sl.com/resources.php Cheetah Technologies]&lt;br /&gt;
||[http://www.e2-designs.com/e2v-3/ E2V ]&lt;br /&gt;
||[http://www.hippo-technologies.co.uk/ hippo-technologies.co.uk]&lt;br /&gt;
||[http://mosystems-move.blogspot.de/ mosystems-move.blogspot.de]&lt;br /&gt;
|| Unknown&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;Available on Marketplace?&#039;&#039;&#039;&lt;br /&gt;
||[https://marketplace.secondlife.com/stores/22916 Alika Products Store]&lt;br /&gt;
||[https://marketplace.secondlife.com/stores/18108 VirtualWorx Store]&lt;br /&gt;
||[https://marketplace.secondlife.com/stores/49647 CasperTech Store]&lt;br /&gt;
||[https://marketplace.secondlife.com/stores/9909 Cheetah Technologies Store]&lt;br /&gt;
|| Not on Marketplace&lt;br /&gt;
||[https://marketplace.secondlife.com/stores/2192 HippoTech Store]&lt;br /&gt;
||[https://marketplace.secondlife.com/stores/13954 MoDesign Store]&lt;br /&gt;
|| Not on Marketplace&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Links=&lt;br /&gt;
&lt;br /&gt;
[[Category: Vendor Systems]]&lt;/div&gt;</summary>
		<author><name>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LSL_Alternate_Editors&amp;diff=1187995</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=1187995"/>
		<updated>2014-03-03T11:12:27Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: /* Syntax highlighting, autocompletion and snippet files by the Builder&amp;#039;s Brewery: */ added Github AtomEditor&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;
| {{maybe|Hasn&#039;t been publicly released, yet.}}&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;
| [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>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Release_Notes/Second_Life_RC_Magnum/14&amp;diff=1187913</id>
		<title>Release Notes/Second Life RC Magnum/14</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Release_Notes/Second_Life_RC_Magnum/14&amp;diff=1187913"/>
		<updated>2014-02-26T09:36:42Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: /* 14.02.21.286985 */ added reference to inventory api v3 docs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}&lt;br /&gt;
&lt;br /&gt;
=== 14.02.21.286985 ===&lt;br /&gt;
* Scheduled 2014-02-26 for RC Magnum&lt;br /&gt;
* New Features&lt;br /&gt;
** Adds support for AISv3 ([[Linden_Lab_Official:Inventory_API_v3|Inventory API v3]])&lt;br /&gt;
*** Improves performance and reliability when changing outfits&lt;br /&gt;
*** To enjoy this new feature, use the [[Release_Notes/Second_Life_Project_Sunshine/3.7.1.286565|latest Sunshine project viewer]]&lt;br /&gt;
* Changes&lt;br /&gt;
** Infrastructure update&lt;br /&gt;
&lt;br /&gt;
=== 14.02.07.286464 ===&lt;br /&gt;
* This is a server maintenance project&lt;br /&gt;
* Scheduled 2014-02-19 for RC BlueSteel, RC LeTigre, and RC Magnum&lt;br /&gt;
* Bug Fixes&lt;br /&gt;
** Fix for BUG-5034 “If an EM restarts a region and then teleports out immediately, the EM will disconnect just after teleport” ({{jira|BUG-5034}})&lt;br /&gt;
** Fixed a rare case in which emails read by LSL scripts immediately after rez or region change would sometimes be missing the message body&lt;br /&gt;
** Fixed some crash modes&lt;br /&gt;
&lt;br /&gt;
=== 14.02.03.286121 ===&lt;br /&gt;
* This is a server maintenance project&lt;br /&gt;
* Scheduled 2014-02-05 for RC BlueSteel, RC LeTigre, and RC Magnum&lt;br /&gt;
* Bug Fixes&lt;br /&gt;
** Fixed a crash mode&lt;br /&gt;
&lt;br /&gt;
=== 14.01.22.285517 ===&lt;br /&gt;
* This is a server maintenance project&lt;br /&gt;
* Scheduled 2014-01-29 for RC BlueSteel, RC LeTigre, and RC Magnum&lt;br /&gt;
* Bug Fixes&lt;br /&gt;
** Fixed a crash mode&lt;br /&gt;
** Fixed &amp;quot;[[llModifyLand]]() modifies wrong location in region, when called in a child prim&amp;quot; ({{jira|BUG-4929}})&lt;br /&gt;
&lt;br /&gt;
=== 14.01.15.285344 ===&lt;br /&gt;
* This is a server maintenance project&lt;br /&gt;
* Scheduled 2014-01-22 for RC BlueSteel, RC LeTigre, and RC Magnum&lt;br /&gt;
* Bug Fixes&lt;br /&gt;
** Fixed a crash mode&lt;br /&gt;
&lt;br /&gt;
[[Category:Server Release Notes]]&lt;/div&gt;</summary>
		<author><name>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LSL_Alternate_Editors&amp;diff=1187912</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=1187912"/>
		<updated>2014-02-26T09:21:39Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: &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;
| {{no|No, work in progress though}}&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.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;
| [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>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LSL_Alternate_Editors&amp;diff=1187911</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=1187911"/>
		<updated>2014-02-26T09:16:14Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: /* Syntax highlighting and code completion files by the Builder&amp;#039;s Brewery: */ added snippets info&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 and code completion 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 highlighting:&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Autocomplete:&#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;
| {{no|No, work in progress though}}&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.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;
| [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>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlGetParcelPrimOwners&amp;diff=1187769</id>
		<title>LlGetParcelPrimOwners</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlGetParcelPrimOwners&amp;diff=1187769"/>
		<updated>2014-02-18T07:42:01Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: assumption incorrect, the order is as described in the function header&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Function&lt;br /&gt;
|inject-2={{LSL Function/position|pos|region=*}}&lt;br /&gt;
|func_id=324|func_sleep=2.0|func_energy=10.0&lt;br /&gt;
|func=llGetParcelPrimOwners|return_type=list|p1_type=vector|p1_name=pos&lt;br /&gt;
|func_desc&lt;br /&gt;
|return_text=of all residents who own objects on the parcel at {{LSLP|pos}} and with individual [http://community.secondlife.com/t5/English-Knowledge-Base/Calculating-land-impact/ta-p/974163 land impact] used. &amp;lt;br/&amp;gt;The list is formatted as &amp;lt;code&amp;gt;[ [[key]] agentKey1, [[integer]] agentImpact1, [[key]] agentKey2, [[integer]] agentImpact2, ... ]&amp;lt;/code&amp;gt;, and sorted by agent [[UUID|key]] with a maximum of 100 strides.&lt;br /&gt;
|func_footnote=Requires owner-like permissions for the parcel.&lt;br /&gt;
|spec=&lt;br /&gt;
====Ownership====&lt;br /&gt;
* If the parcel owner and object owner are the same (including if the object and parcel are both group owned):&lt;br /&gt;
** All object owners are returned.&lt;br /&gt;
* If the parcel is group owned but the object is owned by a member of the group, the function return depends upon what powers they have been granted:&lt;br /&gt;
** If resident has the &#039;{{HoverText|return group owned objects|One of the group member abilities which are set at &amp;amp;quot;Group information&amp;amp;quot; window -&amp;amp;gt; &amp;amp;quot;Members &amp;amp;amp; Roles&amp;amp;quot; tab -&amp;amp;gt; &amp;amp;quot;Abilities&amp;amp;quot; tab -&amp;amp;gt; &amp;amp;quot;Parcel Content&amp;amp;quot; folder.}}&#039; power:&lt;br /&gt;
*** The return list includes the group and the LI of objects it owns on the parcel.&lt;br /&gt;
** If the resident has the &#039;return group set objects&#039; power:&lt;br /&gt;
*** The return list includes all owners who have objects set to the group on the parcel&lt;br /&gt;
** If the resident has the &#039;return non-group objects&#039; power&lt;br /&gt;
*** The return list includes all owners of objects that don&#039;t fall into the above two categories.&lt;br /&gt;
*If none of the above cases match, an empty list will be returned.&lt;br /&gt;
{{Collapsible_Table|collapsed=*|table-style=width:100%;|title-style=text-align:left;|title=&amp;lt;h5 style=&amp;quot;margin-top:0;&amp;quot;&amp;gt;Pseudocode&amp;lt;/h5&amp;gt;|content={{!}} Pseudocode written in Javascript&lt;br /&gt;
&amp;lt;javascript&amp;gt;&lt;br /&gt;
if(parcel_owner == object_owner)&lt;br /&gt;
    return all;&lt;br /&gt;
var r = [];&lt;br /&gt;
if((parcel_owner is Group) &amp;amp;&amp;amp; (object_owner in parcel_owner.members))&lt;br /&gt;
{&lt;br /&gt;
  if(&amp;quot;return group owned objects&amp;quot; in parcel_owner.members[object_owner].powers)&lt;br /&gt;
    r = r.concat(group_owned_stride);&lt;br /&gt;
  if(&amp;quot;return group set objects&amp;quot; in parcel_owner.members[object_owner].powers)&lt;br /&gt;
    r = r.concat(group_set_strides);&lt;br /&gt;
  if(&amp;quot;return non-group objects&amp;quot; in parcel_owner.members[object_owner].powers)&lt;br /&gt;
    r = r.concat(non_group_strides);&lt;br /&gt;
}&lt;br /&gt;
return r;&lt;br /&gt;
&amp;lt;/javascript&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
|caveats=&lt;br /&gt;
* Function WILL NOT work on group owned land if the owner of the object where this function resides is not currently online and connected to the sim (although now seems to be working for land owner on privately owned land even when the owner is not around).&lt;br /&gt;
**These limitation can be overcome by [[deed]]ing the object to a group the object owner is one of the owners of.  &lt;br /&gt;
**Remember to take a copy before deeding because you cannot undeed something.&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&lt;br /&gt;
Show a comma separated list of user IDs and their prim counts.&lt;br /&gt;
key1, count1, key2, count2 .... etc.&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        list TempList = llGetParcelPrimOwners( llGetPos() );&lt;br /&gt;
        llSay(0, llList2CSV(TempList) );&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use floating text to show prim owner names and counts in count order&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
// Show a floating text list of prim owners on this parcel,&lt;br /&gt;
// Sorted by prim count per owner. Highest users first.&lt;br /&gt;
// Omei Qunhua&lt;br /&gt;
&lt;br /&gt;
// The object has the same permisions to view prim parcel owners&lt;br /&gt;
// as its owner (In About Land &amp;gt;&amp;gt; Objects &amp;gt;&amp;gt; Object Owners )&lt;br /&gt;
&lt;br /&gt;
// Example: If you can&#039;t return group object, you won&#039;t see group objects&lt;br /&gt;
// If you can&#039;t return any objects, an empty list will be returned.&lt;br /&gt;
// If the prim is deeded to the right group, it should always get a full list&lt;br /&gt;
&lt;br /&gt;
// Note: Only works on group owned land when the object owner is in the Sim&lt;br /&gt;
//       Deeded objects always work (group is always online?)&lt;br /&gt;
&lt;br /&gt;
list    gListCountsAndOwners;       // Sorted list count+owner pairs&lt;br /&gt;
list    gListNamesAndCounts;        // List of owner names + prim counts&lt;br /&gt;
integer gOffset;&lt;br /&gt;
integer gIndex;&lt;br /&gt;
key     gDataserverID;&lt;br /&gt;
integer gListLength;&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llSetText(&amp;quot;Parcel Prim Owner List\n&amp;quot;, &amp;lt;1,1,1&amp;gt;, 1);&lt;br /&gt;
        list TempList = llGetParcelPrimOwners( llGetPos() );&lt;br /&gt;
        gListLength= llGetListLength(TempList);      &lt;br /&gt;
        if (!gListLength)&lt;br /&gt;
        {&lt;br /&gt;
            llSetText(&amp;quot;[ERROR]\n Couldn&#039;t get Parcel Prim Owners&amp;quot;, &amp;lt;1,0,0&amp;gt;, 1);&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
            // Produce a copy of the list suitable for sorting by count, i.e. count then key &lt;br /&gt;
            integer x;&lt;br /&gt;
            for ( ; x &amp;lt; gListLength; x += 2)&lt;br /&gt;
            {&lt;br /&gt;
                gListCountsAndOwners += llList2Integer(TempList, x+1);&lt;br /&gt;
                gListCountsAndOwners += llList2String(TempList, x);&lt;br /&gt;
            }&lt;br /&gt;
            // Sort the list in descending order of prim count&lt;br /&gt;
            gListCountsAndOwners = llListSort(gListCountsAndOwners, 2, FALSE);&lt;br /&gt;
            // Lookup each owner&#039;s name. Start at the beginning of our sorted list&lt;br /&gt;
            gDataserverID = llRequestAgentData( llList2String(gListCountsAndOwners, 1), DATA_NAME );&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    dataserver( key request_id, string data)&lt;br /&gt;
    {&lt;br /&gt;
        string TempStr = &amp;quot;Parcel Prim Owner List\n&amp;quot;;&lt;br /&gt;
        if ( request_id == gDataserverID )&lt;br /&gt;
        {&lt;br /&gt;
            gListNamesAndCounts += data;&lt;br /&gt;
            gListNamesAndCounts += llList2String(gListCountsAndOwners, gIndex);  // process the count as a string&lt;br /&gt;
&lt;br /&gt;
            gIndex += 2;               // bump through the strided list&lt;br /&gt;
            if (gIndex &amp;lt; gListLength )&lt;br /&gt;
            {&lt;br /&gt;
                // lookup name of next owner in our list&lt;br /&gt;
                gDataserverID = llRequestAgentData( llList2String(gListCountsAndOwners, gIndex +1) , DATA_NAME );&lt;br /&gt;
            }&lt;br /&gt;
            integer x;&lt;br /&gt;
            for (; x &amp;lt; 16; x+=2)       // show an 8-name subset of the list, starting at &#039;gOffset&#039;&lt;br /&gt;
            {&lt;br /&gt;
                // If we run off the end of the list, we just pick up nulls, so no harm done&lt;br /&gt;
                TempStr += llList2String(gListNamesAndCounts, gOffset+x) + &amp;quot; : &amp;quot; + llList2String(gListNamesAndCounts, gOffset+x+1) + &amp;quot;\n&amp;quot;;&lt;br /&gt;
            }&lt;br /&gt;
            llSetText(TempStr, &amp;lt;1,1,1&amp;gt;, 1);&lt;br /&gt;
            if ( (gListNamesAndCounts != []) &amp;gt; 14)       // If list is longer than 14 (7 owners + counts) ...&lt;br /&gt;
            {&lt;br /&gt;
                gOffset += 2;   // scroll the list forwards&lt;br /&gt;
                llSleep(2);     // at 2 second intervals&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    touch_start(integer total_number)&lt;br /&gt;
    {&lt;br /&gt;
        llResetScript();        // On touch, start the whole process over again&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions&lt;br /&gt;
|also_events&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_articles&lt;br /&gt;
|notes&lt;br /&gt;
|permission&lt;br /&gt;
|cat1=Parcel&lt;br /&gt;
|cat2=Owner&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User_talk:Strife_Onizuka&amp;diff=1187749</id>
		<title>User talk:Strife Onizuka</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User_talk:Strife_Onizuka&amp;diff=1187749"/>
		<updated>2014-02-15T00:27:01Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: /* LSL syntax highlighting on Github */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{:User:Zai_Lynch/Award}}You found my talk page... Find old discussions take a look at the archives: [[User:Strife_Onizuka/Talkpage_Archive_01|1]] [[User:Strife_Onizuka/Talkpage_Archive_02|2]]&lt;br /&gt;
&lt;br /&gt;
== JIRA issues on LSL function pages ==&lt;br /&gt;
&lt;br /&gt;
Okay, as I&#039;ve made no headway deciphering your templates (not that I&#039;m familiar in the least with the more complex wiki functions in the first place...) I decided just to cut my losses and ask! Basically I was wondering if there&#039;s a reason why [[Template:LSL_Generic/Issues]] doesn&#039;t appear to list all issues, but instead seems to just list bugs only in the same way as [[Template:LSL_Generic/Caveats]]?&lt;br /&gt;
&lt;br /&gt;
I just think it&#039;d be nice if function pages would also summarise popular proposals relating to them in the deep notes section, which is what I believed was intended but it doesn&#039;t appear to do this right now.&lt;br /&gt;
&lt;br /&gt;
For example, if you go to the [[LlStartAnimation]] page, in the deep notes you&#039;ll notice that there are zero issues listed, however, clicking the &amp;quot;Search JIRA for related Issues&amp;quot; link returns quite a few. It might be nice to see the deep notes tweaked to display these, but perhaps with a limit on how many are shown (though llStartAnimation is a fairly popular one to see JIRA issues for and only has 17 issues listed). Anyway, just though I&#039;d ask/request, please poke my talk page if you respond to be sure I remember and look! --[[User:Haravikk Mistral|Haravikk Mistral]] 15:26, 12 September 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:The template is not automatic. Take for example [[llBreakLink]], it lists a single issue in the article, it does this by including the template [[Template:Issues/SVC-3510]]. There are many stub templates like [[Template:Issues/SVC-3510]] that work this way, they contain the information about the issue and pass it along to a template that does the heavy lifting. The value of this method is that a single template exists for the Issue and if the issue is sited on multiple pages, they can all be quickly updated by modifying the template. From an organizational standpoint, it also makes it possible to see what all pertains to a particular issue.&lt;br /&gt;
&lt;br /&gt;
:The thing is, if you want all the issues on the wiki, they need to be imported to the wiki, and regularly updated as changes are made... but that could all be done with a bot. Wonder if [[User:Gigs Taggart|Gigs]] could be enticed to incorporate it into [http://www.sljirastats.com SLJiraStats]?&lt;br /&gt;
&lt;br /&gt;
:The goal of the Deep Notes: Issues section was to contain dead bugs and interesting feature suggestions. I never intended it to contain all issues pertaining to a feature. We don&#039;t add any value by duplicated the JIRA search engine results; the value we can add is by filtering them. Some of the bugs aren&#039;t bugs, and some of the feature suggestions are unworkable; I don&#039;t think these should be given screen space. Considering the resources required to manually include and update the issues, triage has to happen.&lt;br /&gt;
&lt;br /&gt;
:Unfortunately I do not have the free time to work on this, work and other responsibilities eat all my time. *wonders just how true that is* -- &#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; 03:10, 16 September 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
::Ah yeah, seems I&#039;ve completely misunderstood what it was doing! I wasn&#039;t thinking to list everything, just an automatic, and hopefully useful summary of say...the top ten bugs and issues? It sounds like way more work than it&#039;s likely to be worth though so probably better just to forget about it, unless there&#039;s some way to just embed an iframe with a portion of a JIRA search or something similar? But that would probably cause an unacceptable increase in JIRA page requests from people just popping over to look something up. But now I know how it does work I can at least pop useful relevant issues on manually, thanks! -- [[User:Haravikk Mistral|Haravikk Mistral]] 12:36, 18 September 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:A related problem, I&#039;ve tried to add a few top issues of interest to me onto my user page under Key Issues, however, I&#039;ve tried to create two [[Template:IssueTable]] instances, but they both have the same content, despite the value of #issues being different for both. Is this some peculiarity in using this template more than once? If you could take a look at let me know it&#039;d be handy, as IssueTable doesn&#039;t have any documentation =( -- [[User:Haravikk Mistral|Haravikk Mistral]] 11:36, 22 September 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
::You are hitting one of the caveats/bugs of the new parser engine. I forget how to get around it. I beleive the issue is intermediate caching, and the way around it is to make the template call dynamic or something like that. Without spending a bunch of time debugging the problem, I just don&#039;t remember how to work around it. -- &#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; 14:37, 22 September 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
::It just struck me what the problem is, it&#039;s caching IssueTable. -- &#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; 18:27, 22 September 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::Aha! The &amp;quot;subst:&amp;quot; keyword seems to be for this (e.g - &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{subst:User:Haravikk_Mistral/JIRA/Issues/SVC}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;), as I believe it fetches the pre-processed contents of a page rather than the source. In any event, this works in my case as I created sub-pages for each category, I don&#039;t believe it would help for a page with multiple IssueTable instances though, as using subst: for any of them would just create a blank gap, but it solves my problem at least! -- [[User:Haravikk Mistral|Haravikk Mistral]] 11:29, 23 September 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== [[Ghost Detector]] ==&lt;br /&gt;
Thanks.  I discovered that property of [[llKey2Name]] by accident.  It&#039;s odd because, for instance, [[llDetectedName]] gives a non-empty string for ghosted avatars. -- [[User:Something Something|Something Something]] 05:21, 10 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Friendly greetings ==&lt;br /&gt;
You seem to have found a &amp;quot;fix&amp;quot; for my horrible script and....messed it up. Please compare my original to yours and do some testing. They are different in the result. I would appreciate you fixing your &amp;quot;fix&amp;quot;. Best regards --[[User:Kireji Haiku|Kireji Haiku]] 02:42, 14 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I&#039;m sorry you took the edit personally it was not intended that way. The example you contributed is valuable and nontrivial, however examples are held to high standards and it didn&#039;t meet them. I was faced with two options: rewriting it or deleting it, I felt it had merit so I rewrote it. My goal as always is to provide the most useful content to our users, and in this case down compatibility needed to be sacrificed. The script as it was designed required every prim to have at least one face have full glow, that didn&#039;t sound entirely useful, so I changed it to accept some glow (I notice that I also changed it to require every face have glow... which doesn&#039;t sound useful, so I&#039;m going to revert that).&lt;br /&gt;
:Examples have one major goal: Be educational, teach good coding practices and problem solving. Here is where the script went awry:&lt;br /&gt;
:# Names should be descriptive. The function names were a bit generic but single letter variables are definitely not descriptive, especially when they are globals, they really should describe the purpose they fulfill. &lt;br /&gt;
:# Using globals instead of locals &amp;amp; parameters may be efficient, but it degrades readability and adds a new vector for script bugs. This sort of optimization has no place in examples (except in an article on optimization techniques). The situation is made even worse by using non-descriptive variable names.&lt;br /&gt;
:# The script contained code that complicated it without aiding readability or improving functionality. Examples need to be streamline, having it meander requires the reader to needlessly keep track of more things.&lt;br /&gt;
:# I felt that the functionality provided had too narrow an audience, that by changing how it functioned that it would be more useful to more people. Down compatibility is a secondary consideration for examples, not a primary consideration.&lt;br /&gt;
&lt;br /&gt;
:P.S. I take it you didn&#039;t noticed there is a bug in your script: A single prim object with at least one avatar sitting on it could return the wrong result. IMO examples should not be attributed in the script text, it&#039;s what the history page is for after all, but I know the community and I don&#039;t always agree so I don&#039;t fight it. Personally I don&#039;t want my name associated with buggy code, so if you really want the script to be 100% compatible I&#039;ll have to remove my name and give you all the credit.&lt;br /&gt;
&lt;br /&gt;
:P.S.S. I think we may have different notions of wiki content ownership. When I post content on the wiki, I do so with the full expectation that it will be edited, that it will mutate into something I did not envision, into something I may not entirely agree with. We do not control the content after we have posted it. It&#039;s why there is the text below the edit box: &amp;quot;If you don&#039;t want your writing to be edited mercilessly and redistributed at will, then don&#039;t submit it here.&amp;quot; Wiki culture is different. I may own my contributions but I don&#039;t control their fate. They are my children, being changed and influenced by the people around them, being made stronger in the process. But I digress&lt;br /&gt;
&lt;br /&gt;
:P.S.S.S. In the future if you want to convince someone they should do something, don&#039;t insult them first, it&#039;s counter productive. A better way to approach this situation would have been to say: &amp;quot;I disagree with some of the changes you made, specifically blah blah blah, could you please look into it? I did not appreciate your tone and I am quite insulted.&amp;quot; It&#039;s a mistake to mix the two messages, people are prone to take offense and not do what you want out of spite. In a situation like this being snarky just isn&#039;t productive (though it does blow off a bit of steam which can feel good in the moment). Just FYI, nothing more. -- &#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; 07:43, 14 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
::I didn&#039;t take it personally and was just trying to make you aware of your rewrite not doing the same like my script. Maybe you don&#039;t read in-world messages, as I had sent you a message thanking you for your rewrite and trying to point out the differences between the two. The script I had provided would check a link-set on whether or not it has glow. And yes, that would return a false result if avatars sit on it, but I thought nobody would use the script to check if a link-set is glowing while sitting on it, but I might be wrong and should have pointed that out in the description. So I see your point there and support your critique on that. However my script would return &amp;quot;glowing&amp;quot; for a prim if ANY number of faces have SOME glow (not 1.0, as you said it would do). Maybe you now understand my view when I see your rewrite as being more streamlined and easier to read, however you limit the script down in its original ability of detecting glow by forcing it to return positive only with all faces of a prim glowing. Anyway, I&#039;m not up for a fight and to be quite frank just too lazy for it, a builder inside of SL asked me if it&#039;s possible to detect whether or not there&#039;s a bit of glow on all prims inside a link-set of his build and I just felt like sharing my approach of writing a script for that. If that script doesn&#039;t meet wiki standards in terms of streamlining it towards being absolutely foolproof and readable for just about anybody, I&#039;ll have to refrain from doing so in future.--[[User:Kireji Haiku|Kireji Haiku]] 18:13, 14 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::First I need to apologize, when I wrote my last comment I hadn&#039;t carefully reread your script, if I had I would have noticed your use of llCeil, which does as you point out return true for some glow. So my argument on that point is baseless. Between work and other obligations, I had forgotten about that aspect of the script and just went on my memory of what I thought the script was doing. As to fighting, I agree it&#039;s a waste of time and effort. However I hope you do continue to contribute to the wiki, every contribution is valuable as they grow the understanding and knowledge base of the community. Standards evolve and the content does as well, content has to be nurtured, given room to grow. Immature content just needs to mature is all; the only time stuff gets deleted is if it&#039;s factually inaccurate or needlessly repetitive. If I thought the contribution was trivial and obvious I would have stripped your name from it (attribution on one liners is blatant self ego boosting and makes the wiki look unprofessional).  The only reason I attached my name was so that you wouldn&#039;t be forced to shoulder the costs of supporting code that you did not write. Please don&#039;t take away from this that your contribution was without value, or that I had no respect for it or you.&lt;br /&gt;
&lt;br /&gt;
:::I should mention the reason for my terse comment in the edit was for a simple reason: I couldn&#039;t be verbose with the text limits of the field. &lt;br /&gt;
&lt;br /&gt;
:::As to messaging me, all my IMs get sent to an email account I rarely check, I only ever go inworld to keep my accounts active and go to meetings (pretty rare) because my internet connect is total suckage. I had no idea you IMed me; for all correspondence I use the wiki and email. &lt;br /&gt;
&lt;br /&gt;
:::You would be quite ticked at me if I were to describe my scripting habits with regards to code I post. I know I was when I saw people do what I do, but I don&#039;t really have the option. It&#039;s an ROI equation, should I make possibly buggy contributions or make no contributions at all? I wish I weren&#039;t forced to make the choice. If I weren&#039;t here doing this who would take up the mantel? Who would look after the templates? It would avoid problems like this maybe but would the community be better off? I honestly don&#039;t know but I suspect not.&lt;br /&gt;
&lt;br /&gt;
:::If you&#039;re still reading, what changes or improvements would you like to see made to the documentation? An upcoming project is to incorporate collapsible sections into the documentation, I&#039;m just not sure yet how to do so, I could do with some input. I haven&#039;t called for input from the community yet because I haven&#039;t rolled out the new Constants template yet (which will revolutionize the {{LSLGC|PrimitiveParams}} documentation). Given the potential of collapsible sections we are at a point in time where we should consider redesigning the documentation from the ground up. Maybe a contest? -- &#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; 22:33, 14 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::P.S. Does it work as it did before now? -- &#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; 23:48, 14 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
::::Hi, no it doesn&#039;t. The first problem is your thing with the double exclamation mark, that always returns 1 for me. And the second being you&#039;re still stuck with [PRIM_GLOW,ALL_SIDES], you don&#039;t do a loop through the sides. I will post a re-do of mine again, if you find a way to do what you wanted to do with the double exclamation mark thing, let me know.[[User:Kireji Haiku|Kireji Haiku]] 21:16, 17 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::::&amp;lt;code&amp;gt;!![[llGetLinkNumber]]()&amp;lt;/code&amp;gt; returns 1 for multiprim objects or 0 for single prim objects; It&#039;s logically equivalent to &amp;lt;code&amp;gt;llGetLinkNumber() != 0&amp;lt;/code&amp;gt; however it requires less bytecode to express (you would not be without base to berate me for perpetrating this optimization/shorthand in an example script). You shouldn&#039;t need to loop through the sides, by using [[ALL_SIDES]] it should return a list containing the glow values for every side of the prim (not a very useful feature, in most cases uses it&#039;s better to loop through the sides). We then feed that list to the list stat function to get the max. I&#039;ll see if I can log in later to test it but right now I really need to fix the LSL documentation templates (the wiki upgrade broke at least one template, which in turn broke a lot of the LSL documentation; I&#039;m trying to both find and fix the broken templates; and I don&#039;t know the precise cause). -- &#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; 21:37, 17 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
::::::Fixed it finally, thanks again for the ideas and the input. &amp;lt;code&amp;gt;!![[llGetLinkNumber]]()&amp;lt;/code&amp;gt; doesn&#039;t seem to work, I know exactly what you&#039;re trying to do by writing it that way, but that always returns 1. Have tested it. And your return was a bit too fast to return a result, wouldn&#039;t wait until the end. If you can simplify it even further, go ahead. That&#039;s as far as I could get.[[User:Kireji Haiku|Kireji Haiku]] 21:12, 23 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::::::Is &amp;lt;code&amp;gt;!![[llGetLinkNumber]]&amp;lt;/code&amp;gt; returning one for a single prim object with no avatars sitting on it? That is the only time it should return zero. A single prim object with a seated avatar should return one. As to the early exit, once we find a prim with no glow, we can exit without checking the other prims. Logically speaking, we do not need to know precisely what the minimum is, just if it is less than or equal to zero. So instead of calculating the minimum we can exit as soon as we know the minimum is going to be less than or equal to zero. We know it will be less than or equal to zero if we have a value that is zero or less. The code should exit as soon as it knows the answer so as to not waste simulator resources (after all we need to encourage responsible coding). -- &#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; 05:08, 25 December 2010 (UTC)&lt;br /&gt;
::::::::Personally, I would prefer that examples intended to educate and demonstrate functionality NOT have obfuscating optimizations in them, unless the purpose of the example is to demonstrate such. It makes it harder for non-gurus to understand what is going on in the script, thus limiting the &amp;quot;educational value&amp;quot; of the example and obviating the purpose which it was intended. That said, I do believe it is important for people to know about them as well as how/when to use them, but I also believe teaching good programming habits is also valuable. (I don&#039;t know if the script in question qualifies as such; just wanted to point this out since it came up as an ancillary issue) [[User:Talarus Luan|Talarus Luan]] 07:35, 15 January 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Help with template issue ==&lt;br /&gt;
&lt;br /&gt;
Hi Strife,&lt;br /&gt;
I&#039;m hoping you can help to shed some light on a problem we have just discovered that has started to occur since we redployed the wiki yesterday.  The symptom is that SOME pages, e.g. [[LlKey2Name]] display differently when you are not logged in versus logged in.  Compare&lt;br /&gt;
* Logged in: http://screencast.com/t/e3K85IGni&lt;br /&gt;
* Not logged in: http://screencast.com/t/4OwWfihvhi&lt;br /&gt;
I &#039;&#039;think&#039;&#039; that this may be happening due to issues around templates, which is why I am contacting you.  However, I don&#039;t really know the cause.   The strange thing is that most other LSL function pages appear to display just fine when you are logged out; so there must be something in that page causing an issue.  We would greatly appreciate any help!  P.S. Here is the whole list of known issues: [[Second Life Wiki Known Issues]].&lt;br /&gt;
&lt;br /&gt;
Thanks&lt;br /&gt;
--[[User:Rand Linden|Rand Linden]] 17:15, 16 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I think it was generated before the extensions were installed. I purged the page (?action=purge) and it now renders properly for me (though I did see it the way you described but only when i was not logged in). It&#039;s weird. -- &#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; 21:22, 16 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
::Maybe the cache just needs to be invalidated? -- &#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; 21:24, 16 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
::Some triangulation: &amp;lt;nowiki&amp;gt;|constants={{LSL Constants/PrimitiveParams|get}}&amp;lt;/nowiki&amp;gt; does &#039;&#039;not&#039;&#039; cause trouble on a test copy of llSetLinkPrimitiveParams, &amp;lt;nowiki&amp;gt;|constants={{LSL Constants/PrimitiveParams|set}}&amp;lt;/nowiki&amp;gt; triggers the bug. Off to try on simpler stuff to see if there is a consistent pattern of some kind ... --[[User:Cerise Sorbet|Cerise Sorbet]] 21:47, 16 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
::The cache is not invalidating or refreshing. Check the mod date at the bottom of [[http://wiki.secondlife.com/wiki/LlSetLinkPrimitiveParamsFast]] and [[https://wiki.secondlife.com/wiki/LlSetLinkPrimitiveParamsFast]]. They are different. If you go into the history page and look at a previous version it will displays properly because it doesn&#039;t have a cached version but if you look at the current version (even with the version number, it does not display properly). Not even action=purge can budge it. A possible explanation is that the PrimitiveParams article is causing it to time out during rebuild. The new version of the template I&#039;m hoping to get done by new year should be more sane and less time consuming (we hope). -- &#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; 22:00, 16 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: I thought it was only cache too but more appears to be going on. [[llKey2Name]] is displaying OK with a pair of Issue templates commented out. --[[User:Cerise Sorbet|Cerise Sorbet]] 22:22, 16 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::The time issue I was seeing was caused by me having my account report the times in GMT+5 (which is weird seeing as i&#039;m GMT-5) -- &#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; 22:31, 16 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I&#039;ve had a thought, I think it might have something to do with how bugs are duplicated (in both Issues and Important Issues). It looks to be the difference between the Get and Set primitive Params functions (Get are too new to have any flag bugs). -- &#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; 22:42, 16 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
::It&#039;s not [[Template:Issues]] that is doing it, it&#039;s something about [[Template:Issue]]. I have this terrible feeling it&#039;s a problem with how #switch is parsed. When are we getting the new parser function extension? -- &#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; 22:55, 16 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::Oh it&#039;s definitely [[Template:Issue]]. I can&#039;t access it when logged out. -- &#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; 22:55, 16 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
::::I&#039;ve disabled the code that detects if an issue is a bug, which appears to have fixed [[llKey2Name]]. -- &#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; 23:14, 16 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: #switch is not the cause, just the trigger. Maybe it&#039;s content duplication that is the problem? -- &#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; 22:28, 17 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Mediawiki 1.14 added a |link= option for Image: tags. This would let you skip the imagemap for most uses that don&#039;t really need coordinates. --[[User:Cerise Resident|Cerise]] 03:38, 18 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: There is a god ^_^ thanks for the tip. I&#039;ll deploy it post hast. -- &#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; 03:40, 18 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: Thanks so much for tracking this down, Strife and Cerise!  This move/upgrade has certainly been more problematic than we expected.... :-(&lt;br /&gt;
:::--[[User:Rand Linden|Rand Linden]] 19:05, 19 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::: They always are more problematic than anticipated. I&#039;m sorry I didn&#039;t pay more attention to it earlier, I did notice the blanking on the test wiki briefly but not the common factor (since I spend all my time logged in, the first thing I always do when I connect is log in). I spent my time looking at differences between the highlighting. Never thought to look for differences between HTTP &amp;amp; HTTPS. -- &#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; 19:30, 19 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Different versions of UTF-8 libraries ==&lt;br /&gt;
&lt;br /&gt;
Hi Strife, it seems that there are two different versions of both UTF8ToUnicodeInteger() and UnicodeIntegerToUTF8() at [[Combined_Library#Unicode_functions]] and [[UTF-8]]. Maybe those could be moved to a template - or just manually synced as you feel appropriate. --[[User:Opensource Obscure|oobscure]] 03:17, 2 May 2011 (PDT)&lt;br /&gt;
&lt;br /&gt;
There is a good point. Will do. -- &#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; 09:12, 12 May 2011 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Issues/SCR-137 ==&lt;br /&gt;
&lt;br /&gt;
Sorry for [[Template:Issues/SCR-137]], force of habit since most of the time I&#039;m suggesting new functions that aren&#039;t on the wiki, rather than changes to existing ones ;) -- &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; 01:43, 9 July 2011 (PDT)&lt;br /&gt;
&lt;br /&gt;
:No need to apologize. In my diminished capacity these days (being cut off from SL due to network restrictions for such a long time) there is little I can do besides act as editor, and theoretical scripting. So you gave me something to do. -- &#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; 09:10, 9 July 2011 (PDT)&lt;br /&gt;
&lt;br /&gt;
== llCastRay Docs ==&lt;br /&gt;
&lt;br /&gt;
Thanks, Strife. Your improvement to the llCastRay docs look great.&lt;br /&gt;
&lt;br /&gt;
[[User:Falcon Linden|Falcon Linden]] 11:57, 1 September 2011 (PDT)&lt;br /&gt;
&lt;br /&gt;
== User Functions ==&lt;br /&gt;
&lt;br /&gt;
Heya Strife,&lt;br /&gt;
Could you give me a headsup how the wiki format for Mode=User LSL Functions are meant to be used like?&lt;br /&gt;
&lt;br /&gt;
https://wiki.secondlife.com/wiki/Interpolation/Linear/Float&lt;br /&gt;
&lt;br /&gt;
I&#039;m not sure why I can&#039;t get rid off the &amp;quot;Deep Notes&amp;quot; section, which seems sorta empty and useless?&lt;br /&gt;
&lt;br /&gt;
[[User:Nexii Malthus|&amp;lt;span style=&amp;quot;color: #111; text-shadow:-1px -1px #ddd, 1px 1px #888;&amp;quot;&amp;gt;Nexii Malthus&amp;lt;/span&amp;gt;]] 11:48, 17 September 2011 (PDT)&lt;br /&gt;
&lt;br /&gt;
:Sure -- &#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; 13:36, 18 September 2011 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Video Documentations / Tutorials ==&lt;br /&gt;
forgot who the king of confirming stuff on this wiki is, I haven&#039;t been an editor for like a year or two if you remember me or not, but I thought I might add video documentations and tutorials on functions that could be confusing on the wikis page, so I guess the question is how should I add the videos, should I add a new category or just put it in the examples category, and if video documentation is a good idea toward you, since you are the #1 editor on this wiki haha, and I know nothing about style D:&lt;br /&gt;
--&amp;lt;b&amp;gt;--&amp;lt;/b&amp;gt;[[File:Uglehsig.png|53px|link=User:Ugleh_Ulrik]]([[User_talk:Ugleh_Ulrik|talk]]) 19:45, 11 October 2011 (PDT)&lt;br /&gt;
&lt;br /&gt;
:I&#039;m tickled that you would consult me but I really have no idea on this one. I think it&#039;s a great idea and until we get more of them to get a feel as to how they can be best incorporated into the documentation, they can be included any way you see fit. I might suggested posting the question to the script forums and mailing list (if you do, maybe post a link so I can follow along?). I can imagine putting them in See Also, Examples, Deep Notes, Helpers, Specification (maybe?), Newbie Notes, Notes. I have trouble seeing them in the Summary/Description, Caveats or Constants. Maybe float them on the right (like in [[PRIM_MATERIAL]])? Keep up the good work. ^_^ -- &#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; 12:21, 12 October 2011 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Hi ==&lt;br /&gt;
&lt;br /&gt;
Just caught the comment over on the blog and wanted to say hi. I haven&#039;t left, just withdrawn from the official forums. Actually I hopped over to SLU, although their scripting forums are dead as doornails, so I&#039;ve been amusing myself in their PRS section. Sent in an NDA for the latest inworld beta review project, no reply yet ::shrug:: hope all is good on your end, and was pleasantly surprised you stopped by. Cheers&amp;lt;br/&amp;gt;-- &#039;&#039;&#039;[[User:Void_Singer|Void]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User_talk:Void_Singer|talk]]|[[Special:Contributions/Void_Singer|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 07:52, 22 December 2011 (PST)&lt;br /&gt;
&lt;br /&gt;
: Things are going well here. beta? do they have a page describing it anywhere? I always loved betas. I stay mostly here on the wiki, wish I could get in world more, I hate writing documentation without being able to test the functionality. -- &#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; 23:22, 22 December 2011 (PST)&lt;br /&gt;
:P.S. You are a braver soul than I to go into PRS.&lt;br /&gt;
&lt;br /&gt;
No wiki page that I&#039;m aware of, e-mail invitation letters (which seem to have been dispersed to many forumites, and turned down by a few) describe it as pre-release feedback review, of what specifically, I couldn&#039;t say (even if I knew yet). I&#039;ll ask if they&#039;ll bounce you a late entry since you seem interested. and yeah PRS is madness, but I&#039;m largely word-proof so the invective is more like warm glow instead of singing flame for me, something to kill break time. happy new years and all that jazz&amp;lt;br/&amp;gt;-- &#039;&#039;&#039;[[User:Void_Singer|Void]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User_talk:Void_Singer|talk]]|[[Special:Contributions/Void_Singer|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 10:00, 26 December 2011 (PST)&lt;br /&gt;
&lt;br /&gt;
:Thank you for offering but It&#039;s better if you don&#039;t. I wish I could thou I have no time (nor the internet connection) for it. If they sent me an invitation I&#039;d feel obliged to accept and then not be able to do it justice. -- &#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; 21:55, 26 December 2011 (PST)&lt;br /&gt;
&lt;br /&gt;
Understood, I&#039;ll try to remember to ping ya when it goes live then, could be a bit, dunno quite how far they are out on it. &amp;lt;br/&amp;gt;-- &#039;&#039;&#039;[[User:Void_Singer|Void]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User_talk:Void_Singer|talk]]|[[Special:Contributions/Void_Singer|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 16:22, 27 December 2011 (PST)&lt;br /&gt;
&lt;br /&gt;
== http_response event only be triggered for the originating script or triggered for all scripts ==&lt;br /&gt;
&lt;br /&gt;
Hello Strife,&lt;br /&gt;
&lt;br /&gt;
I just read the [http://wiki.secondlife.com/w/index.php?title=LlHTTPRequest&amp;amp;diff=1157547&amp;amp;oldid=1157508 note] you added concerning [[llHTTPRequest]].&lt;br /&gt;
Although this is of course a sane behavior, I was a bit surprised when I read it because I knew it wasn&#039;t the case before, I also have some script that depends on the old behavior and I didn&#039;t received any complaints concerning them.&lt;br /&gt;
So, I&#039;ve just checked and I can confirm that, at least on my home sim which use the main server version, the event is still triggered on all scripts of the object which made the request.&lt;br /&gt;
&lt;br /&gt;
By pure curiosity, I wonder if you have any additional information about this change.&lt;br /&gt;
&lt;br /&gt;
Many thanks,&lt;br /&gt;
[[User:Elena Bouscario|Elena]] 11:45, 11 February 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
:I have no information on this unfortunately. My edit was a rewrite of the [https://wiki.secondlife.com/w/index.php?title=LlHTTPRequest&amp;amp;diff=1157508&amp;amp;oldid=1153608 previous edit] so that everything would read more clearly. Sounds like both edits should be reverted. -- &#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; 10:45, 12 February 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
== capturing caveats in constants pages? ==&lt;br /&gt;
&lt;br /&gt;
I&#039;m trying to figure out the proper way to include a caveat in the [[DEBUG_CHANNEL]] and [[PUBLIC_CHANNEL]] pages, so that it properly inserts into articles referencing those two pages. The caveat is as follows&lt;br /&gt;
* Messages on channel_name are throttled to a rate of &amp;lt;200/2sec, per region, per owner/user.&lt;br /&gt;
** Once the rate is exceeded, all messages on channel_name will be dropped until the send rate is again below 200/2sec for the previous 2 sec.&lt;br /&gt;
not quite sure how to go about it though?&amp;lt;br/&amp;gt;-- &#039;&#039;&#039;[[User:Void_Singer|Void]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User_talk:Void_Singer|talk]]|[[Special:Contributions/Void_Singer|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 23:27, 21 August 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
:I&#039;d be inclined to work it into [[Template:LSL_Function/chat]] as well. No time now (and likely won&#039;t be able to see later, going to the eye doctor). -- &#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; 08:30, 22 August 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
:Arrg it&#039;s a rats nest. I&#039;ll work on it later. -- &#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; 08:31, 22 August 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
:I&#039;ve put it in the template so now it&#039;s now everywhere... but still needs some tweaking. back later -- &#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;&lt;br /&gt;
&lt;br /&gt;
Thanks, didn&#039;t mean to give you headaches over it =( I&#039;ll take a look at how you did it so maybe next time I can sort it myself&amp;lt;br/&amp;gt;-- &#039;&#039;&#039;[[User:Void_Singer|Void]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User_talk:Void_Singer|talk]]|[[Special:Contributions/Void_Singer|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 21:47, 22 August 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
:It wasn&#039;t as bad as I thought it would be, no worries. -- &#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; 08:48, 23 August 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
== llGetTime/llResetTime ==&lt;br /&gt;
I saw you made a distinction between Mono and LSO for whether or not it&#039;s affected by dilation. However, empirical evidence doesn&#039;t seem to support this.  While this may have been true in the past, it doesn&#039;t seem to be anymore. [[User:Darien Caldwell|Darien Caldwell]] 11:08, 13 September 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
:That is great. :) I&#039;ll revert it. -- &#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; 21:20, 13 September 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Another world, another wiki ==&lt;br /&gt;
&lt;br /&gt;
I don&#039;t suppose you have any tips for a budding documentor? I&#039;m just learning mediawiki, and started function documentation over at Cloud Party (I didn&#039;t create the templates) http://wiki.cloudpartytime.com&lt;br /&gt;
BTW, do you use avisynth, or work on wiki docs for it? Still enjoy tinkering with avisyth scripts! [[User:Phate Shepherd|Phate Shepherd]] 16:43, 16 September 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
:I&#039;m sorry it&#039;s been taking me so long to respond, I&#039;m working on articulating the my thoughts. I haven&#039;t forgotten you. I want to do the questions justice. Watch this space for an update soon.  -- &#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; 20:29, 19 September 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
::No worries... So much to do and learn here! Thanks![[User:Phate Shepherd|Phate Shepherd]] 22:06, 21 September 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
:I had a partial response all ready written and then my computer crashed. Here is a reconstruction:&lt;br /&gt;
:# Find some documentation you really like, and copy it&#039;s good features. Find some bad documentation and figure out what you don&#039;t like.&lt;br /&gt;
:# Write a mission statement for you wiki based documentation project. It should be short and concise. Then write a longer description after it as to what it means. As a matter of course your project will attract people sooner or later who won&#039;t share your vision. Having something in writing you can beat them over the head with will help reduce the toll the drama will have upon you. I&#039;d give you more advise along these lines but it might be too specific and never crop up (it&#039;s the subtle difference between keeping a loaded gun and keeping a loaded cross bow that shoots wooden stakes). Be sure to have a well spelled out contribution policy, specifically content must be licensed under a wiki specified license but that doesn&#039;t mean the author cannot dual license it under another license if they so choose (they just can&#039;t choose to not license it under the wiki license).&lt;br /&gt;
:# Don&#039;t feel you need to do everything. You are a volunteer. You volunteer. You do it for free. You aren&#039;t obligated to do anything. It&#039;s not like they are paying you. So when you feel stressed, that it is going to hell, remember this, take a deep breath and relax, if they want to avert catastrophe they can spend money. If the catastrophe can&#039;t be averted with money then there is nothing you could do about it, so there is no reason for you to be stressed about it. It&#039;s not your problem.&lt;br /&gt;
:#* I have many wiki projects, in various states of completion. Some have been in the works for years, that is to say, I haven&#039;t really done anything with them for a considerable amount of time.&lt;br /&gt;
:# If you want something done, you will probably have to do it yourself. You won&#039;t be able to convince anyone else to do it. {{LSLGC|Needs_Example}} grows, it doesn&#039;t shrink.&lt;br /&gt;
:# Engage your community. Ask them what they want out of the documentation. Ask them how to make it better. This will encourage them to help you. Be prepared to hold their hands and show them how to edit the documentation. This is how you cultivate contributors. This is how you cultivate a contributor community.&lt;br /&gt;
:# The quality of documentation is determined by the audience. You should choose an audience to server and put that in your mission or goal statement. Serving a diverse audience is going to require negotiating some very complex tradeoffs.&lt;br /&gt;
:#* The LSL documentation have [[LSL_Portal_Guidelines|mission and goal statements]] that are at odds with each other. The type of help a beginner needs is not the same as that of an expert. A beginner needs it simple, an expert needs it precise. The solution is a layout that tries to divide the problem into manageable chunks. However getting that solution realized has been difficult.&lt;br /&gt;
:# If you have an issue tracker, add links in your documentation to pertinent issue in the tracker. Update them on a regular basis. If you can make it auto-update.&lt;br /&gt;
:P.S. Those templates are cool. I&#039;ve been trying to mimic some of those features for years (not impossible but I run the risk of killing the wiki).&lt;br /&gt;
:-- &#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; 21:10, 27 September 2012 (PDT)&lt;br /&gt;
::Thanks for taking to the time to write that out... I&#039;ll try and take it to heart. As for the &amp;quot;Find a wiki you like....&amp;quot; Well, that&#039;s why I came to you ;-) [[User:Phate Shepherd|Phate Shepherd]] 12:58, 28 September 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
== [[Hierarchics]] Reboot ==&lt;br /&gt;
Yeah, well, I had tested a modern slaveless version several times over. But each time I still hit significant performance issues.&lt;br /&gt;
I had instead started using newer techniques for achieving realtime high performance animated skeletons, see:&lt;br /&gt;
http://youtu.be/mZvV-1Ghxt0&lt;br /&gt;
http://youtu.be/KwFdahxZp7M&lt;br /&gt;
Unfortunately it is hard to document the scripting process, as it means using global variables for each part in the skeleton and using batched input-process-render stages. --[[User:Nexii Malthus|&amp;lt;span style=&amp;quot;color: #111; text-shadow:-1px -1px #ddd, 1px 1px #888;&amp;quot;&amp;gt;Nexii Malthus&amp;lt;/span&amp;gt;]] 08:05, 7 October 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
== LSL Tip ==&lt;br /&gt;
Hiya, so what about the [[Template:LSL Tip]] template? Are you gonna keep the warning text? We could use the [[Template:KBcaution]] or [[Template:KBtip]] templates instead. -- [[User:Kireji Haiku|Kireji Haiku]] 03:27, 18 October 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
:I like both of those. Lets go with [[Template:KBcaution]] for now. -- &#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; 22:14, 18 October 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
:P.S. Added bonus: those templates were internationalized already.&lt;br /&gt;
&lt;br /&gt;
== Any idea why embedded video (youtube or vimeo) is not showing? ==&lt;br /&gt;
&lt;br /&gt;
Hiya Strife. Hope this finds you well :-)&lt;br /&gt;
&lt;br /&gt;
On [[User:Fred_Gandt/Tuition|Fred_Gandt/Tuition]] and even [[Torley]]&#039;s pages, embedded videos are not showing up for me. Is it just me (using Chrome on Win7)? &amp;amp;nbsp;[[User:Fred_Gandt|&#039;&#039;&#039;&amp;lt;span style=&amp;quot;font-family:arial;color:#055;font-size:16px;&amp;quot;&amp;gt;f&amp;lt;i style=&amp;quot;color:#0dd;font-size:10px;&amp;quot;&amp;gt;red&amp;lt;/i&amp;gt;g&amp;lt;i style=&amp;quot;color:#0dd;font-size:10px;&amp;quot;&amp;gt;andt&amp;lt;/i&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;]] 00:54, 2 November 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
:Seems to  be working for me. Even the one on my user page. It&#039;s probably something to do with chrome. -- &#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; 01:58, 2 November 2012 (PDT)&lt;br /&gt;
&lt;br /&gt;
::Meh. I&#039;ll try clearing some cookies and stuff. Thanks for checking and confirming it&#039;s at my end. &amp;amp;nbsp;[[User:Fred_Gandt|&#039;&#039;&#039;&amp;lt;span style=&amp;quot;font-family:arial;color:#055;font-size:16px;&amp;quot;&amp;gt;f&amp;lt;i style=&amp;quot;color:#0dd;font-size:10px;&amp;quot;&amp;gt;red&amp;lt;/i&amp;gt;g&amp;lt;i style=&amp;quot;color:#0dd;font-size:10px;&amp;quot;&amp;gt;andt&amp;lt;/i&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;]] 02:31, 2 November 2012 (PDT)&lt;br /&gt;
::Chrome is flagging all youtube vids embedded using &amp;lt;nowiki&amp;gt;&amp;lt;videoflash&amp;gt;&amp;lt;/nowiki&amp;gt; tags as &amp;quot;insecure&amp;quot;. Can someone get at the parser and set it to use https instead of http? &amp;amp;nbsp;[[User:Fred_Gandt|&#039;&#039;&#039;&amp;lt;span style=&amp;quot;font-family:arial;color:#055;font-size:16px;&amp;quot;&amp;gt;f&amp;lt;i style=&amp;quot;color:#0dd;font-size:10px;&amp;quot;&amp;gt;red&amp;lt;/i&amp;gt;g&amp;lt;i style=&amp;quot;color:#0dd;font-size:10px;&amp;quot;&amp;gt;andt&amp;lt;/i&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
::I was about to ask Torley to take a look at the issue, but found he is off doing something else. I&#039;m assuming you can act as an admin around here. Shit! You pretty much run the place :-)&lt;br /&gt;
::So when viewing the wiki under https, all videoflash is regarded as insecure. The issue is in [http://www.mediawiki.org/wiki/Extension:VideoFlash the mediawiki extension]. All the protocols are hard wired to http, so on a secure page, they are poop. I&#039;d suggest (if possible) relative protocols or at least selective rewriting to allow https where available. YouTube is definitely available secure, and I think vimeo is too. Obviously hard wiring them (so to speak) as https would mean that https wiki pages would be happy and http wikipages wouldn&#039;t care one way or the other.&lt;br /&gt;
::Why does it matter? Videos are missing if a viewer&#039;s browser blocks the content. I took the time to find it, whilst others might not. Also: insecure content on a secure site is just poor practice.&amp;amp;nbsp;[[User:Fred_Gandt|&#039;&#039;&#039;&amp;lt;span style=&amp;quot;font-family:arial;color:#055;font-size:16px;&amp;quot;&amp;gt;f&amp;lt;i style=&amp;quot;color:#0dd;font-size:10px;&amp;quot;&amp;gt;red&amp;lt;/i&amp;gt;g&amp;lt;i style=&amp;quot;color:#0dd;font-size:10px;&amp;quot;&amp;gt;andt&amp;lt;/i&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;]] 10:32, 4 November 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
== Request from inworld teacher ==&lt;br /&gt;
&lt;br /&gt;
Would it be possible to encourage new users to append &amp;quot;better&amp;quot; versions at the bottom on users pages?   Recently many of the pages I use for teaching classes have been &amp;quot;improved&amp;quot; which results in material which doesn&#039;t match our class notes, and in one case totally wiped out homework we give to see if students understand the concepts just taught! I am not talking about the LSL-101 pages which are in the shared userspace of the wiki.  I am talking about my own user pages.  I can see that we have a new enthusiast who wishes to fix everything all at once, but can I beg for discussion instead of reversions to user pages?  Different people use their pages for different reasons.  I am sure that many if not all of these script changes are excellent, but without an explanation to student users it&#039;s like changing a telegraph to a cellphone.  It&#039;s &amp;quot;better,&amp;quot; but incomprehensible.&lt;br /&gt;
&lt;br /&gt;
In reviewing all my pages, I found a part where you changed things like &#039;&#039;for (i = 0; i &amp;lt; c; i = i + 1)&#039;&#039; to &#039;&#039;for (; i &amp;lt; c; ++i)&#039;&#039; which is fabulous, but without an explanation that the two are the same, most of the free scripts in SL just became incomprehensible to someone trying to teach themselves without a formal scripting background.  My classes are aimed at the non-scriptor.  Please when you make higher level changes on my user pages, please leave both versions and maybe explain why they are same/different?  We have avid learners, but most of this wiki is like trying to read ancient Greek with a Russian translator.&lt;br /&gt;
&lt;br /&gt;
I always thought in a wiki that &amp;quot;user&amp;quot; pages were allowed to the users to edit, with the &amp;quot;talk&amp;quot; or &amp;quot;discussion&amp;quot; pages being where to argue out the fine points.  Maybe I&#039;m wrong, but I would appreciate it if people would do what you do, make small changes at each edit, else append changes instead of wiping out whole scripts which match inworld classnotes, some of which date back to Eric Linden.  [[User:Toady Nakamura|Toady Nakamura]] 09:39, 4 November 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
:I and [[User:Daemonika Nightfire|Daemonika Nightfire]] had our user pages defiled too. I recommend reverting and asking Kireji to back the F**k off. But then I&#039;m not very political. &amp;amp;nbsp;[[User:Fred_Gandt|&#039;&#039;&#039;&amp;lt;span style=&amp;quot;font-family:arial;color:#055;font-size:16px;&amp;quot;&amp;gt;f&amp;lt;i style=&amp;quot;color:#0dd;font-size:10px;&amp;quot;&amp;gt;red&amp;lt;/i&amp;gt;g&amp;lt;i style=&amp;quot;color:#0dd;font-size:10px;&amp;quot;&amp;gt;andt&amp;lt;/i&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;]] 09:51, 4 November 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
::I&#039;m thinking a conversation about the semi-sanctity of userpages is in order. It&#039;s gone further then I would have gone with it. -- &#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; 10:10, 4 November 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
:I try to not mess with code unless I&#039;m fixing a (logical) bug in the code or a gross inefficiency. Programming style is something I view as a personal preference and I would only mess with if I were fixing something major. People are attached to their user pages and take particular interest in controlling them so I try to turn a blind eye to them.&lt;br /&gt;
&lt;br /&gt;
:As to the public tutorials, they are public and subject to change. Positive change is a good thing, negative change is not. The only thing I can offer is to use the permanent link button so you always get the same revision. As you say without an explanation somewhere that &#039;&#039;for (i = 0; i &amp;lt; c; i = i + 1)&#039;&#039; to &#039;&#039;for (; i &amp;lt; c; ++i)&#039;&#039; are often the same, how are people to know. This is precisely the sort of thing that needs to go in the tutorials. Or at least in the article on [[for]].&lt;br /&gt;
&lt;br /&gt;
:I do recognize that most of the language of the wiki is technical. There are places (entire sections) for less technical language but they aren&#039;t documented and the project lacks a champion. History has demonstrated that while I am open to the concept of having it in the documentation, I cannot write that aspect of the documentation. Find me someone who is driven to write readable documentation and I&#039;ll bend over backwards to find space for it in the documentation (You might want to look at [[llSetColor]]) -- &#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; 10:10, 4 November 2012 (PST).&lt;br /&gt;
&lt;br /&gt;
:P.S. Maybe we need a list of pages that are too opaque and in need of improvement.&lt;br /&gt;
:P.S.S. Remember this is a wiki, if we agree, we can change everything. Nothing is sacred. The only limits are our imagination (and what the wiki can handle before it implodes). -- &#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; 10:13, 4 November 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
::I am inclined to defer to Wikipedia etiquette for no lesser reason than Wikipedia is the daddy of wiki&#039;s and gets it done (however anal it may be). See [http://en.wikipedia.org/wiki/Wikipedia:User_pages#Ownership_and_editing_of_user_pages guidelines on ownership] and (same page)[http://en.wikipedia.org/wiki/Wikipedia:User_pages#Editing_of_other_editors.27_user_and_user_talk_pages common practices specific to editing userspace pages]. Clearly if &amp;quot;the project&amp;quot; is the SL wiki, userspace pages would therefore feature in much the same way as they do on Wikipedia. Where tuition (especially) is concerned, scripts and examples are difficult to regard in the normal sense. Scripts written to show poor or extremely simplified methods may be valid. Large amounts of comments would also be perfectly acceptable.&lt;br /&gt;
::More importantly; scripts on user pages here are copied and used by people inworld, and how well (or badly) they perform reflects on the writer. I (for example) state that I do my best to make sure the scripts function correctly (although I don&#039;t get inworld much anymore and there may have been significant changes that cause some of my scripts to go wronger than they used to). I can&#039;t claim to have made every effort to ensure the workingnessability of a script if someone has come along and changed it!!&lt;br /&gt;
::Moreover; It&#039;s a matter of common courtesy. Sure we don&#039;t own the pages, but seriously?!?&lt;br /&gt;
::If you visit a public building and another visitor comes along and pulls the rug out from under you, is that acceptable? It doesn&#039;t really matter who owns the pages. It&#039;s what they are that matters. They are predominantly used as a repository for user created content that is being given away or as examples.  As [[User:Daemonika Nightfire|Daemonika Nightfire]] said when discussing [[User:Kireji Haiku|Kireji Haiku]]&#039;s edits, she doesn&#039;t want to have to learn how her scripts work if someone asks her about them.&lt;br /&gt;
::I get emails now and then from people who want me to change features of some of my scripts for custom projects. If I came to grab a copy and found it wasn&#039;t what I wrote, but the other user though it was, I would have to either learn the new version or explain that someone else wrote it.&lt;br /&gt;
::If someone else wrote it, why the f**k is it on my user page with a heading exclaiming that I did?!&lt;br /&gt;
::&amp;lt;s&amp;gt;If it&#039;s decided that user pages (other than talk pages) can be freely edited by all and sundry, then I will ask that all my pages be deleted. Sounds precious? Try again.&amp;lt;/s&amp;gt;&amp;amp;nbsp;[[User:Fred_Gandt|&#039;&#039;&#039;&amp;lt;span style=&amp;quot;font-family:arial;color:#055;font-size:16px;&amp;quot;&amp;gt;f&amp;lt;i style=&amp;quot;color:#0dd;font-size:10px;&amp;quot;&amp;gt;red&amp;lt;/i&amp;gt;g&amp;lt;i style=&amp;quot;color:#0dd;font-size:10px;&amp;quot;&amp;gt;andt&amp;lt;/i&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;]] 10:58, 4 November 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
My two cents are on the topic are on [[User talk:Kireji Haiku|my user page]]. -- [[User:Kireji Haiku|Kireji Haiku]] 12:10, 5 November 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
== Table within table?! ==&lt;br /&gt;
&lt;br /&gt;
Hi, I wanted to put a side-by-side comparison table:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; width=&amp;quot;100%&amp;quot; {{Prettytable}}&lt;br /&gt;
|- {{Hl2}}&lt;br /&gt;
! &#039;&#039;&#039;Method one: returns float within (5.0, 10.0]&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Method two: returns float within (5.0, 10.0]&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
||&amp;lt;lsl&amp;gt;&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        float randomFloat = 10.0 + llFrand(-5.0);&lt;br /&gt;
&lt;br /&gt;
        llSay(PUBLIC_CHANNEL, randomFloat);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        float randomFloat = 10.0 - llFrand(5.0);&lt;br /&gt;
&lt;br /&gt;
        llSay(PUBLIC_CHANNEL, randomFloat);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
into the example section on the [[llFrand]] page. As far as I understand, that would be a table within a table, yes? Is it possible, if so how? -- [[User:Kireji Haiku|Kireji Haiku]] 10:19, 9 November 2012 (PST)&lt;br /&gt;
:Ok, I can rip the html code off the template. Any other way with the wiki markup? -- [[User:Kireji Haiku|Kireji Haiku]] 11:52, 9 November 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
::To do tables within tables I think you need to escape the pipes. Or that is how we use to do it when it was called for (they may have fixed that bug in mediawiki ages ago). Use &amp;lt;nowiki&amp;gt;{{!}}&amp;lt;/nowiki&amp;gt; it&#039;s a specalized template for this exact purpose. -- &#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; 20:27, 19 November 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
== Entry level information on LSL wiki pages ==&lt;br /&gt;
&lt;br /&gt;
Hello again. I spent time over the last month looking at the &amp;quot;newbie Notes&amp;quot; as the example you provided on llSetColor.  While I have the skill set to edit for this wiki at that level, I have found myself hesitating to start anymore &amp;quot;newbie Notes&amp;quot; because:&lt;br /&gt;
&lt;br /&gt;
*&amp;quot;Newbie&amp;quot; is not necessarily a nice word.  I feel that people seeking entry level material should not be categorized with a pejorative. &lt;br /&gt;
&lt;br /&gt;
*The extra set of pages eg: llSetColor Main Page and llSetColor Basic Notes would create a parallel and confusing architecture.&lt;br /&gt;
&lt;br /&gt;
I would like to suggest that instead of erecting a duplicate set of pages for all of the nearly 300 Linden Library functions and some dozens of events, that a section at the bottom of each function page be started for &amp;quot;entry level notes.&amp;quot;  After scrolling through the first page or two, any new user would rapidly find the &amp;quot;expert section&amp;quot; and the &amp;quot;entry level section&amp;quot; tucked at the bottom of the main page.  &lt;br /&gt;
&lt;br /&gt;
If that would be agreeable to you, I would be happy to undertake entry level editing of functions and events pages as time permits.  [[User:Toady Nakamura|Toady Nakamura]] 09:48, 7 December 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
:I&#039;m not exactly sure what notes are &amp;quot;newbie notes&amp;quot; (can&#039;t recall ever seeing any) but I partially agree with your apprehension about the pejorative.&lt;br /&gt;
:I personally don&#039;t find the word anything but honest, although I can imagine some feeling it derogatory or exclusive.&lt;br /&gt;
:Regarding &amp;quot;Entry level&amp;quot; notes: I feel that every page should start out (top to bottom) with entry level information, leading through examples to higher level notes.&lt;br /&gt;
:I don&#039;t think a generic technical description should be then followed by notes for people who (by implication) didn&#039;t understand it, then notes for people who understood it but need more.&lt;br /&gt;
:I&#039;d be all in favour of pages being custom built to suit the subject, utilizing an info-box for the technical break-down, whilst the rest of the page is lane out in a less uniformed, and more uniquely useful style.&lt;br /&gt;
:Consider the difference between e.g. [[llSay]] and [[llHTTPResponse]]. Anyone reading the wiki to learn about llSay, will almost certainly need the subject explained in simple non-technical terms, than someone reading the entry for llHTTPResponse. Both should contain all the same (relative) information, but the style and flow of how that information is presented should reflect the individual case at hand.&lt;br /&gt;
:The difficulty in deciding to make special notes for special people is, who decides who is special?&lt;br /&gt;
:An expert programmer in another language would need a completely different set of &amp;quot;newbie notes&amp;quot; to someone who knew jack shit about programming. The former would need the technical details about this weird language explained (such as arbitrary delays), whereas the later wouldn&#039;t know why that needs explaining (they&#039;d more likely just accept it). They would however need to know what comma separating function arguments is all about.&lt;br /&gt;
:What would probably work best, is something that is unlikely to be done. If every page was rewritten two more times, and supplied alongside the original, users could choose to read the &amp;quot;simple&amp;quot;, &amp;quot;standard&amp;quot;, or &amp;quot;advanced&amp;quot; page of each subject.&lt;br /&gt;
:*The &amp;quot;Simple&amp;quot; could be written as if talking to someone with little technical knowledge of programming. Lane out as a step by step tutorial.&lt;br /&gt;
:*The &amp;quot;Standard&amp;quot; would remain pretty much as they are now.&lt;br /&gt;
:*The &amp;quot;Advanced&amp;quot; could be written in a more terse tech heavy way, nailing the specifics and leaving out the fluff.&lt;br /&gt;
:Anyway; I&#039;m not really around so much these days, so my input isn&#039;t perhaps very suitable (but I was basically invited to comment).&amp;amp;nbsp;[[User:Fred_Gandt|&#039;&#039;&#039;&amp;lt;span style=&amp;quot;font-family:arial;color:#055;font-size:16px;&amp;quot;&amp;gt;f&amp;lt;i style=&amp;quot;color:#0dd;font-size:10px;&amp;quot;&amp;gt;red&amp;lt;/i&amp;gt;g&amp;lt;i style=&amp;quot;color:#0dd;font-size:10px;&amp;quot;&amp;gt;andt&amp;lt;/i&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;]] 18:31, 7 December 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
::As an aside: Newbie Notes was a compromises, we had an editor who wanted to write notes for new users, name the section after himself, and maintain strict editorial control over it. It didn&#039;t go anywhere after that.&lt;br /&gt;
::My issue with customized layouts is that it makes finding information within the articles more difficult. Instead of jumping to the content your interested in, you have to read all of it and it&#039;s not in the same place between articles.&lt;br /&gt;
::As you say, deciding which content goes where is difficult when you don&#039;t know where anything about your reader. A solution could be to query the user. You would go down a list of radioboxes self reporting your knowledge in a set of compatible disciplines and it would include the required prerequisites and choose the shortest route to understanding, if not attained you could tell the system to broaden it&#039;s scope and include more information from the parallel paths. It sounds like it would be really interesting to build. Not really doable with mediawiki :( &lt;br /&gt;
&lt;br /&gt;
::We are doomed to fail if we can&#039;t automate the problem, this solution just doesn&#039;t scale. We can&#039;t personalize the documentation enough. People are too unique. We risk bloating the documentation too much or making it too large to manage.&lt;br /&gt;
&lt;br /&gt;
::I don&#039;t consider it insulting but I&#039;m not attached to the name. Can&#039;t please everyone. Maybe name it something like &amp;quot;The Basics&amp;quot;?&lt;br /&gt;
&lt;br /&gt;
::As to [[User:Toady Nakamura|Toady Nakamura]]&#039;s suggestion I&#039;m all for it. If you want dedicated sections, give me an idea as to where and I&#039;ll put them in and add the variables to the template.&lt;br /&gt;
&lt;br /&gt;
::The wiki creates an environment for breeding ideas. We need to foster that, it&#039;s why &#039;&#039;&#039;I&#039;m in favor of giving [[User:Toady Nakamura|Toady Nakamura]] the go ahead&#039;&#039;&#039;. Without new ideas coming in, all we have is stagnation. Our audience is ever changing, if we don&#039;t change we will become more and more irrelevant to our target audience. -- &#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; 22:24, 7 December 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
:::I think it would be fine to put entry notes at the top, as that is the first place one would look - and newer users tend to only look at the top... on the other hand... telling new users to look at the bottom of each page for detailed information would have the additional benefit of not changing the top of page layout for users who are familiar with the pages as they are now.  So I vote for bottom of page, &amp;quot;Expert notes&amp;quot; and &amp;quot;Basic notes&amp;quot; on each page.  And it would be lovely to have it in the template, then I could just go around and fix each page as I get to it.  And yes, Fred, great idea to start with llSay and the easy ones!   I will have more time for this project starting after Christmas and would be delighted to get going on it then! [[User:Toady Nakamura|Toady Nakamura]] 11:22, 19 December 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
::::With the expert/basic modifier, this sounds like a forking of the Notes Section, that the notes section should be retired and born anew as these two sections. I&#039;ll work on the templates tonight. -- &#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; 13:00, 19 December 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
== llHTTPResponse: ==&lt;br /&gt;
&lt;br /&gt;
Hey Strife,&lt;br /&gt;
your last edit on [[LlHTTPResponse]] didn&#039;t turn out as expected. The hover text doesn&#039;t show. I&#039;d have changed it, but not sure how. -- [[User:Kireji Haiku|Kireji]] 08:11, 9 December 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
:It&#039;s working for me. What browser are you using? Are we talking about the hover in the description or for the wikipedia link? -- &#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; 08:24, 14 December 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
::I&#039;m on Firefox 17.0.1 on Windows 7 x64 Ultimate. -- &#039;&#039;&#039;[[User:Kireji Haiku|Kireji]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Kireji_Haiku|talk]]|[[Special:Contributions/Kireji_Haiku|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 08:20, 1 January 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
:::I&#039;ll take a look at it down stairs (I have the same setup down there) tomorrow if I have the time -- &#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; 23:17, 1 January 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
==IM via Wiki?==&lt;br /&gt;
Hello Strife. Is there any private Instant Messaging facility in SL Wiki?  [[User:Omei Qunhua|Omei Qunhua]] 03:13, 27 December 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
:Nope but you can always IM me on [http://www.sluniverse.com/php/vb/members/strife.html SL Universe] or email my gmail address blindwander. -- &#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; 20:42, 27 December 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
== Caveats in page LlGetAlpha are wrong. ==&lt;br /&gt;
&lt;br /&gt;
Hi,&lt;br /&gt;
can you maybe correct the Caveats in https://wiki.secondlife.com/wiki/LlGetAlpha&lt;br /&gt;
It says &amp;quot;If face indicates a face that does not exist the return is 0.0&amp;quot; which is incorrect, it always returns 1.0, see also https://jira.secondlife.com/browse/BUG-1256&lt;br /&gt;
I couldn&#039;t find out how to change it myself: )&lt;br /&gt;
&lt;br /&gt;
: I&#039;ve fixed it. I&#039;ll add it to the work queue to write some documentation for the [[Template:LSL Function/face]]. -- &#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; 22:39, 5 January 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
== New version of file not showing for me... ==&lt;br /&gt;
&lt;br /&gt;
Hiya, so I uploaded a new version of &amp;lt;code&amp;gt;File:Lsl_syntax_for_notepad_plus_plus.png&amp;lt;/code&amp;gt; and it doesn&#039;t show on [[User:Kireji Haiku/Notepad++_Syntax_Highlight|the page where I put it]]. What did I do wrong? -- [[User:Kireji Haiku|Kireji Haiku]] 09:59, 6 March 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
:Maybe it&#039;s your browser cache? The wiki likely isn&#039;t telling your browser that the image is stale. -- &#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; 11:34, 11 March 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
::I moved the content to Github. To answer your question, the old version stayed even after clearing cache. Not sure why, though. [[User:Kireji Haiku|Kireji Haiku]] 07:52, 2 May 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
== GeSHi for LSL on the wiki: ==&lt;br /&gt;
&lt;br /&gt;
Ok, I&#039;ll try to keep the story short. I tried contacting Torley, but he [http://wiki.secondlife.com/wiki/Project:About?diff=1173232&amp;amp;oldid=1146125 is not on the wiki team anymore], then I tried contacting Jeremy who seems to [[User_talk:Torley_Linden|have chosen to ignore the issue for more than half a year]]. I&#039;m talking about the LSL syntax highlight on this wiki. I&#039;ve found that this works over GeSHi and the mediawiki plugin. I contacted them there and provided a fix. Then was told I should provide the fix to GeSHi directly since it&#039;s third party software from their point of view. I provided the GeSHi team with a fix, too. Nobody really seems to be responsible for anything. So how do I get [https://github.com/buildersbrewery/lsl-for-geshi this up-to-date] file wherever so that syntax highlight is up-to-date on this particular wiki rather tomorrow than next year. [[User:Kireji Haiku|Kireji Haiku]] 07:53, 2 May 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:Yeah I don&#039;t have a good answer for you, years ago I decided to just use a greasemonkey script to add the missing coloring. -- &#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; 19:20, 7 May 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
::Ok, so...what do we do now? I&#039;ve got a couple of highlighting files for LSL on [https://github.com/buildersbrewery?tab=repositories this github project page], which should all be up-to-date AFAIK. Do you want to work on this, or should I? If you want me to do it, let me know what I need. Maybe a copy of that greasemonkey script? [[User:Kireji Haiku|Kireji Haiku]] 02:32, 8 May 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:::It&#039;s a client side thing. http://userscripts.org/scripts/review/28162 -- &#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; 21:54, 9 May 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
::::I&#039;ll take a look and see what I can do, thanks. [[User:Kireji Haiku|Kireji Haiku]] 00:13, 15 May 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:::::This is what I got now. I removed the lslwiki parts, though. Could you test this?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;javascript&amp;gt;// ==UserScript==&lt;br /&gt;
// @name        LSL Highlighter&lt;br /&gt;
// @namespace   http://home.comcast.net/~mailerdaemon&lt;br /&gt;
// @include     http://wiki.secondlife.com/*&lt;br /&gt;
// @include     https://wiki.secondlife.com/*&lt;br /&gt;
// @version     1&lt;br /&gt;
// ==/UserScript==&lt;br /&gt;
&lt;br /&gt;
(function(){&lt;br /&gt;
var GM_addStyle = function(css){&lt;br /&gt;
    style = document.createElement(&amp;quot;style&amp;quot;);&lt;br /&gt;
    style.type = &amp;quot;text/css&amp;quot;;&lt;br /&gt;
    style.innerHTML = css;&lt;br /&gt;
    document.getElementsByTagName(&#039;head&#039;)[0].appendChild(style);&lt;br /&gt;
    return style;//default GM_addStyle doesn&#039;t return the new style element&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
var search = &amp;quot;&amp;quot;;&lt;br /&gt;
var prefixed = false;&lt;br /&gt;
&lt;br /&gt;
if (($X(&amp;quot;//meta[@name=&#039;generator&#039; and starts-with(@content,&#039;MediaWiki &#039;)]&amp;quot;)))&lt;br /&gt;
{&lt;br /&gt;
    GM_addStyle(&amp;quot;table.diff td div {overflow:visible;} pre.code a{ text-decoration:none; }&amp;quot;);&lt;br /&gt;
    GM_addStyle(&amp;quot;.pBody { padding:0pt 0.8em 0.3em 0.5em; border:1px solid #AAAAAA; } .portlet h5 {background: transparent;}&amp;quot;);&lt;br /&gt;
    prefixs = [&amp;quot;&amp;quot;, &amp;quot;/wiki/Special:Search?search=&amp;quot;];&lt;br /&gt;
    search = &amp;quot;//pre[@class=&#039;code&#039; or @class=&#039;lsl&#039;]&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    if ((breadcrumbs = $X(&amp;quot;//div[@id=&#039;contentSub&#039;]&amp;quot;)))&lt;br /&gt;
    {&lt;br /&gt;
        if (!(title = unsafeWindow.realTitleText))&lt;br /&gt;
            if (title = $X(&amp;quot;//div[@id=&#039;ReatTitleBanner&#039;]/span[@id=&#039;RealTitle&#039;]&amp;quot;))&lt;br /&gt;
                title = title.textContent;&lt;br /&gt;
        if (title &amp;amp;&amp;amp; unsafeWindow.wgTitle)&lt;br /&gt;
            $Z(&amp;quot;.//text()[contains(.,&#039;&amp;quot;+unsafeWindow.wgTitle+&amp;quot;&#039;)]&amp;quot;,function(r,i,p){&lt;br /&gt;
                r.data = r.data.replace(unsafeWindow.wgTitle, title);&lt;br /&gt;
            }, breadcrumbs);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    GM_addStyle([&lt;br /&gt;
                    &amp;quot;.lsl a {font-weight: bold; text-decoration: none;}&amp;quot;,&lt;br /&gt;
                    &amp;quot;.lsl .imp {font-weight: bold; color: red;}&amp;quot;,&lt;br /&gt;
                    &amp;quot;.lsl .lsl_states {color: #801A4D;}&amp;quot;,&lt;br /&gt;
                    &amp;quot;.lsl .lsl_events {color: #004D80;}&amp;quot;,&lt;br /&gt;
                    &amp;quot;.lsl .lsl_builtin_functions {color: #820124;}&amp;quot;,&lt;br /&gt;
                    &amp;quot;.lsl .lsl_builtin_constants_integer {color: #1A1A80;}&amp;quot;,&lt;br /&gt;
                    &amp;quot;.lsl .lsl_builtin_constants_string {color: #1A4D80;}&amp;quot;,&lt;br /&gt;
                    &amp;quot;.lsl .lsl_builtin_constants_float {color: #4D1A80;}&amp;quot;,&lt;br /&gt;
                    &amp;quot;.lsl .lsl_builtin_constants_compound {color: #663366;}&amp;quot;,&lt;br /&gt;
                    &amp;quot;.lsl .lsl_illegal_invalid {font-weight: bold; color: #FFFFFF; background-color: #FF0000; text-decoration: line-through;}&amp;quot;,&lt;br /&gt;
                    &amp;quot;.lsl .lsl_illegal_deprecated {font-weight: bold; color: #FFFF00; background-color: #FF0000; text-decoration: line-through;}&amp;quot;,&lt;br /&gt;
                    &amp;quot;.lsl .lsl_control {color: #0000CD;}&amp;quot;,&lt;br /&gt;
                    &amp;quot;.lsl .lsl_types {color: #003300;}&amp;quot;,&lt;br /&gt;
                    &amp;quot;.lsl .co1 {color: #CD4D26;}&amp;quot;,&lt;br /&gt;
                    &amp;quot;.lsl .es0 {color: #CD4D26;}&amp;quot;,&lt;br /&gt;
                    &amp;quot;.lsl .br0 {color: #66CC66;}&amp;quot;,&lt;br /&gt;
                    &amp;quot;.lsl .st0 {color: #003300;}&amp;quot;,&lt;br /&gt;
                    &amp;quot;.lsl .nu0 {color: #cc66cc;}&amp;quot;,&lt;br /&gt;
                    &amp;quot;.lsl .me1 {color: #006600;}&amp;quot;,&lt;br /&gt;
                    &amp;quot;.lsl .me2 {color: #006600;}&amp;quot;,&lt;br /&gt;
                    &amp;quot;&amp;quot;].join(&amp;quot;\n&amp;quot;));&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
    return;&lt;br /&gt;
&lt;br /&gt;
function Group(className, prefix, expression, captures, processor){ this.c = className; this.v = prefix; this.r = expression; this.captures = captures || 0; this.processor = processor;}&lt;br /&gt;
Group.prototype = { toString: function(){ return &amp;quot;(&amp;quot;+this.r+&amp;quot;)&amp;quot;; }, };&lt;br /&gt;
&lt;br /&gt;
var groups = [ //{&lt;br /&gt;
    new Group(&amp;quot;nu0&amp;quot;, -1, &amp;quot;0[xX][0-9a-fA-F]+|\\.[0-9]*[Ee][+-]?[0-9]*|[0-9]+[Ee][+-]?[0-9]*&amp;quot;),&lt;br /&gt;
    new Group(&amp;quot;lsl_illegal_deprecated&amp;quot;, 0, &amp;quot;ll(?:Cloud|CollisionSprite|GodLikeRezObject|Make(?:Explosion|Fountain|Smoke|Fire)|(?:Stop)?PointAt|(?:(?:Refresh|Set)Prim)URL|(?:Take|Release)Camera|RemoteDataSetRegion|RemoteLoadScript|SetInventoryPermMask|SetObjectPermMask|Sound(?:Preload)?|XorBase64Strings)|AGENT|ATTACH_[LR]PEC|CHARACTER_MAX_ANGULAR_(?:ACCEL|SPEED)|OBJECT_ATTACHMENT_(?:GEOMETRY_BYTES|SURFACE_AREA)|DATA_RATING|LAND_(?:LARGE|MEDIUM|SMALL)_BRUSH|PERMISSION_(?:CHANGE_(?:JOINTS|PERMISSIONS)|RELEASE_OWNERSHIP|REMAP_CONTROLS)|PRIM_(?:CAST_SHADOWS|MATERIAL_LIGHT|PHYSICS_MATERIAL|TYPE_LEGACY)|PSYS_SRC_(?:(?:INNER|OUTER)ANGLE|OBJ_REL_MASK)|VEHICLE_FLAG_NO_FLY_UP&amp;quot;),&lt;br /&gt;
    new Group(&amp;quot;lsl_illegal_invalid&amp;quot;, 0, &amp;quot;event|print&amp;quot;),&lt;br /&gt;
    new Group(&amp;quot;lsl_states&amp;quot;, 0, &amp;quot;(?:state)\\s+\\w+|default&amp;quot;),&lt;br /&gt;
    new Group(&amp;quot;lsl_control&amp;quot;, 0, &amp;quot;@|do|else(?: if)?|for|if|jump|return|while&amp;quot;),&lt;br /&gt;
    new Group(&amp;quot;lsl_types&amp;quot;, 0, &amp;quot;float|integer|key|list|quaternion|rotation|string|vector&amp;quot;),&lt;br /&gt;
    new Group(&amp;quot;lsl_events&amp;quot;, 0, &amp;quot;(?:state_(?:entry|exit)|touch(?:_(?:start|end))?|(?:land_)?collision(?:_(?:start|end))?|timer|listen|(?:no_)?sensor|control|(?:not_)?at_(?:rot_)?target|money|email|run_time_permissions|changed|attach|dataserver|moving_(?:start|end)|link_message|(?:on|object)_rez|remote_data|http_re(?:sponse|quest)|path_update|transaction_result)&amp;quot;),&lt;br /&gt;
    new Group(&amp;quot;lsl_builtin_constants_integer&amp;quot;, 1, &amp;quot;FALSE|TRUE|(?:JSON_APPEND|STATUS_(?:PHYSICS|ROTATE_[XYZ]|PHANTOM|SANDBOX|BLOCK_GRAB(?:_OBJECT)?|(?:DIE|RETURN)_AT_EDGE|CAST_SHADOWS|OK|MALFORMED_PARAMS|TYPE_MISMATCH|BOUNDS_ERROR|NOT_(?:FOUND|SUPPORTED)|INTERNAL_ERROR|WHITELIST_FAILED)|AGENT(?:_(?:BY_(?:LEGACY_|USER)NAME|FLYING|ATTACHMENTS|SCRIPTED|MOUSELOOK|SITTING|ON_OBJECT|AWAY|WALKING|IN_AIR|TYPING|CROUCHING|BUSY|ALWAYS_RUN|AUTOPILOT|LIST_(?:PARCEL(?:_OWNER)?|REGION)))?|CAMERA_(?:PITCH|DISTANCE|BEHINDNESS_(?:ANGLE|LAG)|(?:FOCUS|POSITION)(?:_(?:THRESHOLD|LOCKED|LAG))?|FOCUS_OFFSET|ACTIVE)|ANIM_ON|LOOP|REVERSE|PING_PONG|SMOOTH|ROTATE|SCALE|ALL_SIDES|LINK_(?:ROOT|SET|ALL_(?:OTHERS|CHILDREN)|THIS)|ACTIVE|PASSIVE|SCRIPTED|CONTROL_(?:FWD|BACK|(?:ROT_)?(?:LEFT|RIGHT)|UP|DOWN|(?:ML_)?LBUTTON)|PERMISSION_(?:RETURN_OBJECTS|DEBIT|OVERRIDE_ANIMATIONS|SILENT_ESTATE_MANAGEMENT|TAKE_CONTROLS|TRIGGER_ANIMATION|ATTACH|CHANGE_LINKS|(?:CONTROL|TRACK)_CAMERA|TELEPORT)|INVENTORY_(?:TEXTURE|SOUND|OBJECT|SCRIPT|LANDMARK|CLOTHING|NOTECARD|BODYPART|ANIMATION|GESTURE|ALL|NONE)|CHANGED_(?:INVENTORY|COLOR|SHAPE|SCALE|TEXTURE|LINK|ALLOWED_DROP|OWNER|REGION(?:_START)?|TELEPORT|MEDIA)|OBJECT_(?:(?:PHYSICS|SERVER|STREAMING)_COST|UNKNOWN_DETAIL|CHARACTER_TIME|PHANTOM|PHYSICS|TEMP_ON_REZ|NAME|DESC|POS|PRIM_EQUIVALENCE|RETURN_(?:PARCEL(?:_OWNER)?|REGION)|ROO?T|VELOCITY|OWNER|GROUP|CREATOR|ATTACHED_POINT|RENDER_WEIGHT|PATHFINDING_TYPE|(?:RUNNING|TOTAL)_SCRIPT_COUNT|SCRIPT_(?:MEMORY|TIME))|TYPE_(?:INTEGER|FLOAT|STRING|KEY|VECTOR|ROTATION|INVALID)|(?:DEBUG|PUBLIC)_CHANNEL|ATTACH_(?:AVATAR_CENTER|CHEST|HEAD|BACK|PELVIS|MOUTH|CHIN|NECK|NOSE|BELLY|[LR](?:SHOULDER|HAND|FOOT|EAR|EYE|[UL](?:ARM|LEG)|HIP)|(?:LEFT|RIGHT)_PEC|HUD_(?:CENTER_[12]|TOP_(?:RIGHT|CENTER|LEFT)|BOTTOM(?:_(?:RIGHT|LEFT))?))|LAND_(?:LEVEL|RAISE|LOWER|SMOOTH|NOISE|REVERT)|DATA_(?:ONLINE|NAME|BORN|SIM_(?:POS|STATUS|RATING)|PAYINFO)|PAYMENT_INFO_(?:ON_FILE|USED)|REMOTE_DATA_(?:CHANNEL|REQUEST|REPLY)|PSYS_(?:PART_(?:BF_(?:ZERO|ONE(?:_MINUS_(?:DEST_COLOR|SOURCE_(ALPHA|COLOR)))?|DEST_COLOR|SOURCE_(ALPHA|COLOR))|BLEND_FUNC_(DEST|SOURCE)|FLAGS|(?:START|END)_(?:COLOR|ALPHA|SCALE|GLOW)|MAX_AGE|(?:RIBBON_|WIND|INTERP_(?:COLOR|SCALE)|BOUNCE|FOLLOW_(?:SRC|VELOCITY)|TARGET_(?:POS|LINEAR)|EMISSIVE)_MASK)|SRC_(?:MAX_AGE|PATTERN|ANGLE_(?:BEGIN|END)|BURST_(?:RATE|PART_COUNT|RADIUS|SPEED_(?:MIN|MAX))|ACCEL|TEXTURE|TARGET_KEY|OMEGA|PATTERN_(?:DROP|EXPLODE|ANGLE(?:_CONE(?:_EMPTY)?)?)))|VEHICLE_(?:REFERENCE_FRAME|TYPE_(?:NONE|SLED|CAR|BOAT|AIRPLANE|BALLOON)|(?:LINEAR|ANGULAR)_(?:FRICTION_TIMESCALE|MOTOR_DIRECTION)|LINEAR_MOTOR_OFFSET|HOVER_(?:HEIGHT|EFFICIENCY|TIMESCALE)|BUOYANCY|(?:LINEAR|ANGULAR)_(?:DEFLECTION_(?:EFFICIENCY|TIMESCALE)|MOTOR_(?:DECAY_)?TIMESCALE)|VERTICAL_ATTRACTION_(?:EFFICIENCY|TIMESCALE)|BANKING_(?:EFFICIENCY|MIX|TIMESCALE)|FLAG_(?:NO_DEFLECTION_UP|LIMIT_(?:ROLL_ONLY|MOTOR_UP)|HOVER_(?:(?:WATER|TERRAIN|UP)_ONLY|GLOBAL_HEIGHT)|MOUSELOOK_(?:STEER|BANK)|CAMERA_DECOUPLED))|PRIM_(?:TYPE(?:_(?:BOX|CYLINDER|PRISM|SPHERE|TORUS|TUBE|RING|SCULPT))?|HOLE_(?:DEFAULT|CIRCLE|SQUARE|TRIANGLE)|MATERIAL(?:_(?:STONE|METAL|GLASS|WOOD|FLESH|PLASTIC|RUBBER))?|SHINY_(?:NONE|LOW|MEDIUM|HIGH)|BUMP_(?:NONE|BRIGHT|DARK|WOOD|BARK|BRICKS|CHECKER|CONCRETE|TILE|STONE|DISKS|GRAVEL|BLOBS|SIDING|LARGETILE|STUCCO|SUCTION|WEAVE)|TEXGEN_(?:DEFAULT|PLANAR)|SCULPT_(?:TYPE_(?:SPHERE|TORUS|PLANE|CYLINDER|MASK)|FLAG_(?:MIRROR|INVERT))|PHYSICS(?:_(?:SHAPE_(?:CONVEX|NONE|PRIM|TYPE)))?|(?:POS|ROT)_LOCAL|SLICE|TEXT|FLEXIBLE|POINT_LIGHT|TEMP_ON_REZ|PHANTOM|POSITION|SIZE|ROTATION|TEXTURE|NAME|OMEGA|DESC|LINK_TARGET|COLOR|BUMP_SHINY|FULLBRIGHT|TEXGEN|GLOW|MEDIA_(?:ALT_IMAGE_ENABLE|CONTROLS|(?:CURRENT|HOME)_URL|AUTO_(?:LOOP|PLAY|SCALE|ZOOM)|FIRST_CLICK_INTERACT|(?:WIDTH|HEIGHT)_PIXELS|WHITELIST(?:_ENABLE)?|PERMS_(?:INTERACT|CONTROL)|PARAM_MAX|CONTROLS_(?:STANDARD|MINI)|PERM_(?:NONE|OWNER|GROUP|ANYONE)|MAX_(?:URL_LENGTH|WHITELIST_(?:SIZE|COUNT)|(?:WIDTH|HEIGHT)_PIXELS)))|MASK_(?:BASE|OWNER|GROUP|EVERYONE|NEXT)|PERM_(?:TRANSFER|MODIFY|COPY|MOVE|ALL)|PARCEL_(?:MEDIA_COMMAND_(?:STOP|PAUSE|PLAY|LOOP|TEXTURE|URL|TIME|AGENT|UNLOAD|AUTO_ALIGN|TYPE|SIZE|DESC|LOOP_SET)|FLAG_(?:ALLOW_(?:FLY|(?:GROUP_)?SCRIPTS|LANDMARK|TERRAFORM|DAMAGE|CREATE_(?:GROUP_)?OBJECTS)|USE_(?:ACCESS_(?:GROUP|LIST)|BAN_LIST|LAND_PASS_LIST)|LOCAL_SOUND_ONLY|RESTRICT_PUSHOBJECT|ALLOW_(?:GROUP|ALL)_OBJECT_ENTRY)|COUNT_(?:TOTAL|OWNER|GROUP|OTHER|SELECTED|TEMP)|DETAILS_(?:NAME|DESC|OWNER|GROUP|AREA|ID|SEE_AVATARS))|LIST_STAT_(?:MAX|MIN|MEAN|MEDIAN|STD_DEV|SUM(?:_SQUARES)?|NUM_COUNT|GEOMETRIC_MEAN|RANGE)|PAY_(?:HIDE|DEFAULT)|REGION_FLAG_(?:ALLOW_DAMAGE|FIXED_SUN|BLOCK_TERRAFORM|SANDBOX|DISABLE_(?:COLLISIONS|PHYSICS)|BLOCK_FLY|ALLOW_DIRECT_TELEPORT|RESTRICT_PUSHOBJECT)|HTTP_(?:METHOD|MIMETYPE|BODY_(?:MAXLENGTH|TRUNCATED)|CUSTOM_HEADER|PRAGMA_NO_CACHE|VERBOSE_THROTTLE|VERIFY_CERT)|STRING_(?:TRIM(?:_(?:HEAD|TAIL))?)|CLICK_ACTION_(?:NONE|TOUCH|SIT|BUY|PAY|OPEN(?:_MEDIA)?|PLAY|ZOOM)|TOUCH_INVALID_FACE|PROFILE_(?:NONE|SCRIPT_MEMORY)|RC_(?:DATA_FLAGS|DETECT_PHANTOM|GET_(?:LINK_NUM|NORMAL|ROOT_KEY)|MAX_HITS|REJECT_(?:TYPES|AGENTS|(?:NON)?PHYSICAL|LAND))|RCERR_(?:CAST_TIME_EXCEEDED|SIM_PERF_LOW|UNKNOWN)|ESTATE_ACCESS_(?:ALLOWED_(?:AGENT|GROUP)_(?:ADD|REMOVE)|BANNED_AGENT_(?:ADD|REMOVE))|DENSITY|FRICTION|RESTITUTION|GRAVITY_MULTIPLIER|KFM_(?:COMMAND|CMD_(?:PLAY|STOP|PAUSE|SET_MODE)|MODE|FORWARD|LOOP|PING_PONG|REVERSE|DATA|ROTATION|TRANSLATION)|ERR_(?:GENERIC|PARCEL_PERMISSIONS|MALFORMED_PARAMS|RUNTIME_PERMISSIONS|THROTTLED)|CHARACTER_(?:CMD_(?:(?:SMOOTH_)?STOP|JUMP)|DESIRED_(?:TURN_)?SPEED|RADIUS|STAY_WITHIN_PARCEL|LENGTH|ORIENTATION|ACCOUNT_FOR_SKIPPED_FRAMES|AVOIDANCE_MODE|TYPE(?:_(?:[ABCD]|NONE))?|MAX_(?:DECEL|TURN_RADIUS|(?:ACCEL|SPEED)))|PURSUIT_(?:OFFSET|FUZZ_FACTOR|GOAL_TOLERANCE|INTERCEPT)|REQUIRE_LINE_OF_SIGHT|FORCE_DIRECT_PATH|VERTICAL|HORIZONTAL|AVOID_(?:CHARACTERS|DYNAMIC_OBSTACLES|NONE)|PU_(?:EVADE_(?:HIDDEN|SPOTTED)|FAILURE_(?:DYNAMIC_PATHFINDING_DISABLED|INVALID_(?:GOAL|START)|NO_(?:NAVMESH|VALID_DESTINATION)|OTHER|TARGET_GONE|(?:PARCEL_)?UNREACHABLE)|(?:GOAL|SLOWDOWN_DISTANCE)_REACHED)|TRAVERSAL_TYPE(?:_(?:FAST|NONE|SLOW))?|CONTENT_TYPE_(?:ATOM|FORM|HTML|JSON|LLSD|RSS|TEXT|XHTML|XML)|GCNP_(?:RADIUS|STATIC)|(?:PATROL|WANDER)_PAUSE_AT_WAYPOINTS|OPT_(?:AVATAR|CHARACTER|EXCLUSION_VOLUME|LEGACY_LINKSET|MATERIAL_VOLUME|OTHER|STATIC_OBSTACLE|WALKABLE)|SIM_STAT_PCT_CHARS_STEPPED)&amp;quot;),&lt;br /&gt;
    new Group(&amp;quot;lsl_builtin_constants_string&amp;quot;, 1, &amp;quot;(?:EOF|JSON_(?:ARRAY|DELETE|FALSE|INVALID|NULL|NUMBER|OBJECT|STRING|TRUE)|NULL_KEY|TEXTURE_(?:BLANK|DEFAULT|MEDIA|PLYWOOD|TRANSPARENT)|URL_REQUEST_(?:GRANTED|DENIED))&amp;quot;),&lt;br /&gt;
    new Group(&amp;quot;lsl_builtin_constants_float&amp;quot;, 1, &amp;quot;DEG_TO_RAD|PI(?:_BY_TWO)?|RAD_TO_DEG|SQRT2|TWO_PI&amp;quot;),&lt;br /&gt;
    new Group(&amp;quot;lsl_builtin_constants_compound&amp;quot;, 1, &amp;quot;ZERO_(?:ROTATION|VECTOR)|TOUCH_INVALID_(?:TEXCOORD|VECTOR)&amp;quot;),&lt;br /&gt;
    new Group(&amp;quot;lsl_builtin_functions&amp;quot;, 0, &amp;quot;(?:ll(?:ReturnObjectsBy(?:ID|Owner)|Json(?:2List|[GS]etValue|ValueType)|Sin|Cos|Tan|Atan2|Sqrt|Pow|Abs|Fabs|Frand|Floor|Ceil|Round|Vec(?:Mag|Norm|Dist)|Rot(?:Between|2(?:Euler|Fwd|Left|Up))|(?:Euler|Axes)2Rot|Whisper|(?:Region|Owner)?Say|Shout|Listen(?:Control|Remove)?|Sensor(?:Repeat|Remove)?|Detected(?:Name|Key|Owner|Type|Pos|Vel|Grab|Rot|Group|LinkNumber)|Die|Ground|Wind|(?:[GS]et)(?:AnimationOverride|MemoryLimit|PrimMediaParams|ParcelMusicURL|Object(?:Desc|Name)|PhysicsMaterial|Status|Scale|Color|Alpha|Texture|Pos|Rot|Force|Torque)|ResetAnimationOverride|(?:Scale|Offset|Rotate)Texture|(?:Rot)?Target(?:Remove)?|(?:Stop)?MoveToTarget|Apply(?:Rotational)?Impulse|Set(?:KeyframedMotion|ContentType|RegionPos|(?:Angular)?Velocity|Buoyancy|HoverHeight|ForceAndTorque|TimerEvent|ScriptState|Damage|TextureAnim|Sound(?:Queueing|Radius)|Vehicle(?:Type|(?:Float|Vector|Rotation)Param)|(?:Touch|Sit)?Text|Camera(?:Eye|At)Offset|PrimitiveParams|ClickAction|Link(?:Alpha|Color|PrimitiveParams(?:Fast)?|Texture(?:Anim)?|Camera|Media)|RemoteScriptAccessPin|PayPrice|LocalRot)|Get(?:ClosestNavPoint|StaticPath|SimStats|Env|PrimitiveParams|Link(?:PrimitiveParams|Number(?:OfSides)?|Key|Name|Media)|HTTPHeader|FreeURLs|Object(?:Details|PermMask|PrimCount)|Parcel(?:MaxPrims|Details|Prim(?:Count|Owners))|Attached|(?:SPMax|Free|Used)Memory|Region(?:Name|TimeDilation|FPS|Corner|AgentCount)|Root(?:Position|Rotation)|UnixTime|(?:Parcel|Region)Flags|(?:Wall|GMT)clock|SimulatorHostname|BoundingBox|GeometricCenter|Creator|NumberOf(?:Prims|NotecardLines|Sides)|Animation(?:List)?|(?:Camera|Local)(?:Pos|Rot)|Vel|Accel|Omega|Time(?:stamp|OfDay)|(?:Object|CenterOf)?Mass|MassMKS|Energy|Owner|(?:Owner)?Key|SunDirection|Texture(?:Offset|Scale|Rot)|Inventory(?:Number|Name|Key|Type|Creator|PermMask)|Permissions(?:Key)?|StartParameter|List(?:Length|EntryType)|Date|Agent(?:Size|Info|Language|List)|LandOwnerAt|NotecardLine|Script(?:Name|State))|(?:Get|Reset|GetAndReset)Time|PlaySound(?:Slave)?|LoopSound(?:Master|Slave)?|(?:Trigger|Stop|Preload)Sound|(?:(?:Get|Delete)Sub|Insert)String|To(?:Upper|Lower)|Give(?:InventoryList|Money)|RezObject|(?:Stop)?LookAt|Sleep|CollisionFilter|(?:Take|Release)Controls|DetachFromAvatar|AttachToAvatar(?:Temp)?|InstantMessage|(?:GetNext)?Email|StopHover|MinEventDelay|RotLookAt|String(?:Length|Trim)|(?:Start|Stop)Animation|TargetOmega|RequestPermissions|(?:Create|Break)Link|BreakAllLinks|(?:Give|Remove)Inventory|Water|PassTouches|Request(?:Agent|Inventory)Data|TeleportAgent(?:Home|GlobalCoords)?|ModifyLand|CollisionSound|ResetScript|MessageLinked|PushObject|PassCollisions|AxisAngle2Rot|Rot2(?:Axis|Angle)|A(?:cos|sin)|AngleBetween|AllowInventoryDrop|SubStringIndex|List2(?:CSV|Integer|Json|Float|String|Key|Vector|Rot|List(?:Strided)?)|DeleteSubList|List(?:Statistics|Sort|Randomize|(?:Insert|Find|Replace)List)|EdgeOfWorld|AdjustSoundVolume|Key2Name|TriggerSoundLimited|EjectFromLand|(?:CSV|ParseString)2List|OverMyLand|SameGroup|UnSit|Ground(?:Slope|Normal|Contour)|GroundRepel|(?:Set|Remove)VehicleFlags|(?:AvatarOn)?(?:Link)?SitTarget|Script(?:Danger|Profiler)|Dialog|VolumeDetect|ResetOtherScript|RemoteLoadScriptPin|(?:Open|Close)RemoteDataChannel|SendRemoteData|RemoteDataReply|(?:Integer|String)ToBase64|XorBase64|Log(?:10)?|Base64To(?:String|Integer)|ParseStringKeepNulls|RezAtRoot|RequestSimulatorData|ForceMouselook|(?:Load|Release|(?:E|Une)scape)URL|ParcelMedia(?:CommandList|Query)|ModPow|MapDestination|(?:RemoveFrom|AddTo|Reset)Land(?:Pass|Ban)List|(?:Set|Clear)CameraParams|HTTP(?:Request|Response)|TextBox|DetectedTouch(?:UV|Face|Pos|(?:N|Bin)ormal|ST)|(?:MD5|SHA1|DumpList2)String|Request(?:Secure)?URL|Clear(?:Prim|Link)Media|(?:Link)?ParticleSystem|(?:Get|Request)(?:Username|DisplayName)|RegionSayTo|CastRay|GenerateKey|TransferLindenDollars|ManageEstateAccess|(?:Create|Delete)Character|ExecCharacterCmd|Evade|FleeFrom|NavigateTo|PatrolPoints|Pursue|UpdateCharacter|WanderWithin))&amp;quot;),&lt;br /&gt;
]; //}&lt;br /&gt;
const gl = groups.length;&lt;br /&gt;
var missed = new RegExp(&amp;quot;^(|[\\W\\w]*?\\W)(&amp;quot;+groups.join(&amp;quot;|&amp;quot;)+&amp;quot;)([\\W][\\W\\w]*|)$&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
var lang = $X(&amp;quot;//div[@id=&#039;PageLanguage&#039;]&amp;quot;);&lt;br /&gt;
lang = (lang &amp;amp;&amp;amp; lang.innerHTML) || &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
$Z(search, function(r,i){&lt;br /&gt;
    for (var a = 0; b = r.childNodes[a]; ++a)&lt;br /&gt;
        if (b.nodeName == &amp;quot;#text&amp;quot; &amp;amp;&amp;amp; (c = missed.exec(b.nodeValue)))&lt;br /&gt;
        {&lt;br /&gt;
            var s, v, p, q;&lt;br /&gt;
            if ((v = c[c.length - 1]) &amp;amp;&amp;amp; (v != &amp;quot;&amp;quot;))//whitespace after&lt;br /&gt;
                insertAfter(document.createTextNode(v), b);&lt;br /&gt;
            for (p=0, q = 3; p &amp;lt; gl; p++)&lt;br /&gt;
            {&lt;br /&gt;
                var n = groups[p];&lt;br /&gt;
                var y = 1 + n.captures;&lt;br /&gt;
                if ((v = c[q]) &amp;amp;&amp;amp; (v != &amp;quot;&amp;quot;))&lt;br /&gt;
                {&lt;br /&gt;
                    if (n.v &amp;gt;= 0)&lt;br /&gt;
                    {&lt;br /&gt;
                        s = document.createElement(&amp;quot;a&amp;quot;);&lt;br /&gt;
                        s.href = prefixs[n.v] + v + lang;&lt;br /&gt;
                    }&lt;br /&gt;
                    else&lt;br /&gt;
                        s = document.createElement(&amp;quot;span&amp;quot;);&lt;br /&gt;
                    if (n.c &amp;amp;&amp;amp; n.c != &amp;quot;&amp;quot;)&lt;br /&gt;
                        s.className = n.c;&lt;br /&gt;
                    s.appendChild(document.createTextNode(v));&lt;br /&gt;
                    insertAfter(s, b);&lt;br /&gt;
                    if (!(v = c[1]) || (v == &amp;quot;&amp;quot;))//whitespace before&lt;br /&gt;
                        b.parentNode.removeChild(b);&lt;br /&gt;
                    else&lt;br /&gt;
                        b.nodeValue = c[1];&lt;br /&gt;
                    if (n.processor)&lt;br /&gt;
                        n.processor(s, c.slice(q, q + y), c[1], c[c.length - 1]);&lt;br /&gt;
                    break;&lt;br /&gt;
                }&lt;br /&gt;
                q += y;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    if ((b = r.childNodes[0]) &amp;amp;&amp;amp; b.nodeName == &amp;quot;#text&amp;quot; &amp;amp;&amp;amp; b.nodeValue.substring(0,7) == &amp;quot;&amp;amp;nbsp;\n&amp;quot;)&lt;br /&gt;
        b.nodeValue = b.nodeValue.substring(7);&lt;br /&gt;
    if ((b = r.childNodes[r.childNodes.length - 1]) &amp;amp;&amp;amp; b.nodeName == &amp;quot;#text&amp;quot; &amp;amp;&amp;amp; b.nodeValue.substr(-2) == &amp;quot;\n &amp;quot;)&lt;br /&gt;
        b.nodeValue = b.nodeValue.substring(0, b.nodeValue.length - 2);&lt;br /&gt;
    if (lang)      $Z(&amp;quot;./a[span[starts-with(@class,&#039;kw&#039;)]]&amp;quot;, function(ir,ii){ir.attributes.getNamedItem(&amp;quot;href&amp;quot;).value += lang;}, r);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
$Z(&amp;quot;//a[starts-with(@title, &#039;Ll&#039;) and starts-with(@title, text())]&amp;quot;, function(r,i){&lt;br /&gt;
    var m = &amp;quot;l&amp;quot; + r.title.substring(1);&lt;br /&gt;
    if (r.title == r.innerHTML)&lt;br /&gt;
        r.innerHTML = m;&lt;br /&gt;
    r.title = m;&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
if (m = $X(&amp;quot;//li[@id=&#039;n-editingdiscussion&#039;]&amp;quot;)){&lt;br /&gt;
    n = document.createElement(&amp;quot;li&amp;quot;);&lt;br /&gt;
    n.id = &amp;quot;n-randompage&amp;quot;;&lt;br /&gt;
    n.innerHTML = &amp;quot;&amp;lt;a accesskey=&#039;x&#039; title=&#039;Load a random article [alt-shift-x]&#039; href=&#039;/wiki/Special:Random&#039;&amp;gt;Random Page&amp;lt;/a&amp;gt;&amp;quot;;&lt;br /&gt;
    insertAfter(n, m);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function $X(_xpath, node){&lt;br /&gt;
    var doc = (node)?(node.ownerDocument || node):(node = document);&lt;br /&gt;
    return doc.evaluate(_xpath, node, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null).snapshotItem(0);&lt;br /&gt;
}&lt;br /&gt;
function $Z(_xpath, func, node){&lt;br /&gt;
    var doc = (node)?(node.ownerDocument || node):(node = document);&lt;br /&gt;
    var res = doc.evaluate(_xpath, node, null,  XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);&lt;br /&gt;
    var args = Array.prototype.slice.call(arguments, 3);&lt;br /&gt;
    var i = 0;&lt;br /&gt;
    for (; i &amp;lt; res.snapshotLength; ++i)&lt;br /&gt;
        func.apply(func, [res.snapshotItem(i), i].concat(args));&lt;br /&gt;
    return i;&lt;br /&gt;
}&lt;br /&gt;
function insertAfter(insert, after){return after.parentNode.insertBefore(insert, after.nextSibling);}&lt;br /&gt;
function insertBefore(insert, before){return before.parentNode.insertBefore(insert, before);}&lt;br /&gt;
function log(){&lt;br /&gt;
    var arg;&lt;br /&gt;
    switch (arguments.length) {&lt;br /&gt;
        case 1:&lt;br /&gt;
            arg = arguments[0];&lt;br /&gt;
            break;&lt;br /&gt;
        case 0:&lt;br /&gt;
            arg = null;&lt;br /&gt;
            break;&lt;br /&gt;
        default:&lt;br /&gt;
            arg = arguments;&lt;br /&gt;
            break;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (typeof(unsafeWindow.console) != &amp;quot;undefined&amp;quot; &amp;amp;&amp;amp; typeof(unsafeWindow.console.log) != &amp;quot;undefined&amp;quot;)&lt;br /&gt;
        unsafeWindow.console.log(arg);&lt;br /&gt;
    else if (typeof(GM_log) != &amp;quot;undefined&amp;quot;)&lt;br /&gt;
        GM_log(arg);&lt;br /&gt;
    return arg;&lt;br /&gt;
}&lt;br /&gt;
})();&amp;lt;/javascript&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cheers! [[User:Kireji Haiku|Kireji Haiku]] 11:49, 22 May 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:I had to make all the sub-expressions use non-capture groups (which was how it was originally). I also made some minor tweaks that should do nothing but are for style correctness (I&#039;ve learned better JS habits since I wrote that). -- &#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; 14:44, 22 May 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:I&#039;ve added support for custom post-processing for groups and for them capture information from the expression. If we decide to merge bad numbers into a single node, that code would be a post-processor. -- &#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; 00:18, 23 May 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
::Whatever works I&#039;d say. Not sure why you chose purple for numbers, though. Did you test it? Where to put this now? [[User:Kireji Haiku|Kireji Haiku]] 13:27, 23 May 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:::Purple because that&#039;s the color they are now and it makes highlighting look right on pages like [[float]]. I usually post these to [UserScripts.org] (which I have just [http://userscripts.org/scripts/review/28162 done]) and let people find them on their own. Sometime I&#039;ll post a forum thread about them, but I haven&#039;t done that in ages. I&#039;m hoping that is what you meant. -- &#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; 22:52, 23 May 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
::::No, I meant are you going to upload it to the wiki here so the highlighting here is fixed. Or how does this work? Have a nice weekend [[User:Kireji Haiku|Kireji Haiku]] 08:17, 24 May 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:::::Oh dear, I was afraid of this at the last. It&#039;s a script for {{Wikipedia|Greasemonkey|w=n}}, it&#039;s not a server script. It probably will work in Chrome as well (not tested). -- &#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; 10:33, 24 May 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
::Ok, so this brings us back to GeSHi? How to update that? [[User:Kireji Haiku|Kireji Haiku]] 12:19, 27 May 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:::The only way to do so is likely to be pestering LL. At this point I don&#039;t know who you would start with. Couldn&#039;t hurt to open a new bug on Jira, something along the lines of &amp;quot;LSL Syntax highlighting on the wiki needs updating&amp;quot; and see which linden is foolish enough to update the jira. -- &#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; 19:22, 27 May 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
== kwdb ==&lt;br /&gt;
&lt;br /&gt;
By the way, there&#039;s a LSL keywords database that generates output for various syntax highlighters including GeSHi [http://code.google.com/p/kwdb/ here]. -- [[User:Sei Lisa|Sei Lisa]] 09:12, 4 June 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:Thanks for the info. It&#039;s not that I don&#039;t have a file, I don&#039;t know where to put it so the syntax highlighting works on this wiki. I&#039;ve got a copy I&#039;m working on myself on [https://github.com/buildersbrewery/lsl-for-geshi github.com/buildersbrewery/lsl-for-geshi]. -- [[User:Kireji Haiku|Kireji Haiku]] 09:40, 5 June 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
::LL has to install it in some directory on the server (they will know if they look for where the old one is), it&#039;s not something we can do. -- &#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; 11:14, 5 June 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:You may be interested in https://github.com/pclewis/lslint/commits/23c3fb11226249f633bed1f0b077435e58f80781/wiki_builtins.pl it&#039;s a script to walk the wiki to get functions, events and constants. -- &#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; 11:14, 5 June 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
::Thank you. That script generates some &amp;quot;false positives&amp;quot; and lacks some constants. Currently the generator provides also lslint output, by the way. Most other collections of keywords I&#039;ve evaluated are incomplete and sometimes incorrect, and I try to keep it up to date. For example, Kireji&#039;s list misses some OBJECT_* constants and has other problems. -- [[User:Sei Lisa|Sei Lisa]] 12:51, 7 June 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:::I know it lacks some constants, I don&#039;t always remember to add them to the signature section. False positives? That is surprising. Could you give me an example?  -- &#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; 21:23, 7 June 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
::::I wouldn&#039;t be surprised if it comes up with a few functions that it shouldn&#039;t. -- &#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; 21:48, 7 June 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:::::Sorry, false positive, singular. CLICK_ACTION_ZOOM doesn&#039;t exist. Some constants come out duplicated, some list wrong values. Here&#039;s a diff if interested. http://pastebin.ca/2393166 -- [[User:Sei Lisa|Sei Lisa]] 05:23, 8 June 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
::::::That diff really helps. It suggests we have several wrong values here on the wiki and gives us a good place to start fixing things. However I don&#039;t think it&#039;s a good idea for the wiki to move away from hex notation just so that we match the source code, not all of the LSL Portal&#039;s readers know their powers of two. -- &#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; 21:40, 8 June 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
::::::P.S. I consider the duplicates a bug in the script. Yes some constants appear in multiple articles signature section, it&#039;s a &amp;lt;strike&amp;gt;hack&amp;lt;/strike&amp;gt; feature.&lt;br /&gt;
&lt;br /&gt;
:::::::I&#039;m not going to login to test this are you sure there is no CLICK_ACTION_ZOOM? https://bitbucket.org/lindenlab/viewer-release/src/41898042294e4c48d9fc8bbc327f0926ed6b6712/indra/lscript/lscript_compile/indra.l#cl-644 If it&#039;s not valid than you have found a bug. -- &#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; 23:00, 8 June 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
::::::::I&#039;m completely sure. What do you mean about hex notation? In the database, my criterion is to write in hex the numbers that are supposed to be bitfields, as that&#039;s the closest to binary that LSL supports. Nothing to do with the source code. That generates some differences between wiki and kwdb that are not real differences, you can just ignore them. I processed the files in order to make them comparable, including removing the arg names and removing leading zeros from hex numbers, but not transforming them to a common base, thus differences in radix are expected. -- [[User:Sei Lisa|Sei Lisa]] 08:19, 9 June 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:::::::::I just meant some integer constants had values like 0x80 or 128. I hadn&#039;t considered parameter name changes but we do use different names for the parameters (some of the original parameter names are confusing or poorly chosen). As you say not real differences. I&#039;ll file a bug about CLICK_ACTION_ZOOM, they must have forgotten to put it in the server side compiler. -- &#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; 00:12, 10 June 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
::::::::::{{JIRA|BUG-2827}} -- &#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; 01:15, 10 June 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:::::::::::Thanks for the link, but it&#039;s useless for mortals. -- [[User:Sei Lisa|Sei Lisa]] 07:49, 10 June 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
::::::::::::Ah I forgot about that problem. It&#039;s basically a duplicate of {{Jira|SCR-236}}. -- &#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; 11:25, 10 June 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:::::::::I&#039;ll also start working on the real conflicts. Thanks for taking the time. -- &#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; 01:21, 10 June 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
::::::::::I figured you meant 0xNNN but I don&#039;t understand why you said it&#039;s not a good idea to move away from hex notation, as I didn&#039;t remotely suggest that. Some constants that are in decimal in the wiki are in hex in kwdb, like some RC_* ones, and vice versa, like CONTENT_TYPE_*. There are a few where it can be debatable whether they are flags, like ESTATE_ACCESS_* (which is not specified to support multiple flags, though the header says &amp;quot;action flag&amp;quot;) and PSYS_SRC_PATTERN_* of which you can&#039;t combine several, to my knowledge, so I considered they should not be regarded as flags. -- [[User:Sei Lisa|Sei Lisa]] 04:54, 10 June 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
::::::::::PSYS_SRC_PATTERN_* was probably built rather than designed (that is to say, they hadn&#039;t entirely decided what they were doing when they did it). It will require some testing but it makes sense to allow the combining of (ALLOWED_AGENT_ADD | BANNED_AGENT_REMOVE) or (ALLOWED_AGENT_REMOVE | BANNED_AGENT_ADD), LL may have laid out the constants with that in mind even if they never added support for it. Or the number correspond with internal constants the server uses, and the server combines them. -- &#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; 11:25, 10 June 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
::::What about the &amp;quot;other problems&amp;quot;? -- [[User:Kireji Haiku|Kireji Haiku]] 10:35, 8 June 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
I&#039;ve updated the float constants to use the values from https://bitbucket.org/lindenlab/viewer-release/src/41898042294e4c48d9fc8bbc327f0926ed6b6712/indra/llmath/llmath.h?at=default#cl-56 -- &#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; 12:09, 10 June 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:KFM_CMD_SET_MODE what is it used for? PSYS_SRC_OBJ_REL_MASK is a dead constant. Used for nothing.&lt;br /&gt;
:I can see why you would be confused, most of those where the radix differs is in the direction of more obscure. &lt;br /&gt;
:-- &#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; 13:52, 10 June 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
::I don&#039;t know what it&#039;s used for. I know it&#039;s defined, as it passed the constant values test. If it&#039;s unused, its status in the database should be marked as unimplemented. PSYS_SRC_OBJ_REL_MASK was already marked as such. Output modules for LSL2dfg/kwdb can choose to skip these or put them in a separate section of the generated output if they wish, based on the status field. I&#039;m pondering whether it would make sense to define a new status, &amp;quot;unknown&amp;quot;, for KFM_CMD_SET_MODE. -- [[User:Sei Lisa|Sei Lisa]] 15:57, 10 June 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:::I&#039;ll have to spend some time figuring out how I&#039;m going to document these (and those PRIM_MEDIA_* flags I never documented because I thought LL would remove them {{JIRA|VWR-24413}}). I think we need a category for useless and nearly useless constants constants. -- &#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; 21:31, 10 June 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:::P.S. [[Release_Notes/Second_Life_RC_BlueSteel/13]]&lt;br /&gt;
&lt;br /&gt;
== [edit][edit][edit] ==&lt;br /&gt;
&lt;br /&gt;
Hello strife,&lt;br /&gt;
I recently made changes on the Lag-page, and today I noticed that the &amp;quot;Cache&amp;quot; section (which I&#039;ve added) shows the [edit] link three times!&lt;br /&gt;
Could you please help me fixing this, I have no clue what I did wrong (again) https://wiki.secondlife.com/wiki/Lag :D Thanks!&lt;br /&gt;
&lt;br /&gt;
:You didn&#039;t do anything wrong per se. It&#039;s a design defect of how CSS &amp;quot;float&amp;quot; works (more preciesly the defect is with the scope of &amp;quot;clear&amp;quot;). -- &#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; 21:06, 14 June 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
::Just leaving a thank you! --[[User:MartinRJ Fayray|MartinRJ Fayray]] 10:29, 15 June 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Pathfinding categories ==&lt;br /&gt;
&lt;br /&gt;
I&#039;ve found that the pathfinding categories are somewhat messed up. There&#039;s [[:Category:Pathfinding]] and [[:Category:LSL Pathfinding]]. [[llGetSimStats]] is only in the latter, as is the case for some &amp;lt;code&amp;gt;CHARACTER_*&amp;lt;/code&amp;gt; constants. I think there should be a &amp;quot;single stop&amp;quot; page (category) for them. Do you agree? If so, which one do you think it should be? --[[User:Pedro Oval|Pedro Oval]] 12:47, 29 August 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:I do in deed agree but I also don&#039;t like to break the naming tradition or trash a Linden category. But since you suggested it, we should probably do away with one of the categories. Any thoughts as to which one? -- &#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; 14:37, 29 August 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
::The description in [[:Category:Pathfinding]] reads: &amp;quot;Articles related to new pathfinding feature and related LSL API.&amp;quot; Maybe the LSL API part should be moved to its own [[:Category:LSL_Pathfinding]] and leave &#039;&#039;&#039;Pathfinding&#039;&#039;&#039; for articles only (and include &#039;&#039;&#039;LSL_Pathfinding&#039;&#039;&#039; as a subcategory of it). I think that makes the most sense. People who linked to &#039;&#039;&#039;Pathfinding&#039;&#039;&#039; will find the link to the LSL one. --[[User:Pedro Oval|Pedro Oval]] 17:03, 29 August 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:::Works for me. -- &#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; 20:33, 29 August 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
::::Done. Please review what I&#039;ve done, I&#039;m not too confident to have gotten it right. I used the template name &amp;lt;nowiki&amp;gt;{{Pathfinding LSL alpha}}&amp;lt;/nowiki&amp;gt; to switch the template while respecting the original intention. The name has Pathfinding at the start (as opposed to LSL Pathfinding Alpha) for emphasis on Pathfinding. While on it, I also renamed Template:LSL_Constants/llWanderW&#039;&#039;&#039;I&#039;&#039;&#039;thin to the right case. --[[User:Pedro Oval|Pedro Oval]] 08:41, 30 August 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:::::Good catch. -- &#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; 09:50, 30 August 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
== [[Template:LSL_Header]] ==&lt;br /&gt;
I believe it could use a link to [[LSL_Alternate_Editors]]. Whatcha think? -- [[User:Kireji Haiku|Kireji Haiku]] 10:16, 8 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:See [[Template_talk:LSL_Header]] for my reply. -- &#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; 14:37, 8 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Broken links: ==&lt;br /&gt;
On [[User:Strife Onizuka|your user page]] in the Scite/ESL section all links to your comcast account are broken. Oh yeah and...it was C++. -- [[User:Kireji Haiku|Kireji Haiku]] 07:43, 16 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:yes they are. I&#039;ll look into finding a place to host them. I knew C had changed a lot since I learned it but I didn&#039;t think they added member functions. -- &#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; 11:15, 16 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
::I&#039;ve just updated my links and uploaded everything. I&#039;ve even published the most up to date and complete lsl.api (it&#039;s an an export of kwdb). -- &#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; 17:31, 16 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
== German translation of llList2Json ==&lt;br /&gt;
&lt;br /&gt;
Hiya Strife,&lt;br /&gt;
I just made an attempt to start translating the JSON functions to German,&lt;br /&gt;
but this page shows me a weird error message, could you please tell me what I did wrong :P&lt;br /&gt;
[[LlList2Json/de]] {{Unsigned|MartinRJ Fayray}}&lt;br /&gt;
&lt;br /&gt;
:&#039;n Abend, ich denke ich hab den Fehler behoben, Du hattest wohl einen senkrechten Strich ganz am Anfang zu viel. And yeah, Strife... I think I fixed it, there was a pipe too many. Not sure about the fix though, so if the fix needs a fix, have a go at it, LOL. Anyhow, enjoy the weekend you two. -- [[User:Kireji Haiku|Kireji Haiku]] 15:06, 18 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
::Oops, thanks Kireji : ) --[[User:MartinRJ Fayray|MartinRJ Fayray]] 15:32, 18 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:I&#039;ll work on updating the [[Template:LSL Function/de]] (I generally do not update the templates for other languages). My view on the entire thing has to do with knowing your audience, each language represents a group of distinct cultures, who each have different cultural norms rooted deep in history. I would not presume to force the same layout on everyone (only English speakers). Also some of the template features for example do not work for Japaense. But to get back on topic. I don&#039;t want people to feel that English is the only language. I really want the international community to come and own their part of the wiki, figure out what works and doesn&#039;t. My goal is only to provide a framework, give them something to start from. There is no reason the articles need to be literal translations, and we gain nothing by having them be so.&lt;br /&gt;
&lt;br /&gt;
:As to what is wrong with the template, it never got updated beyond the point where LL stopped adding functions to LSO. It assumes all functions have ids. -- &#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; 20:53, 18 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:I&#039;m going to update the template but someone will need to go through and translate it. It hasn&#039;t been updated in 5 years so it&#039;s going to be a bumpy ride but hey you get 5 years worth of template insanity all at once instead of gradually. -- &#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; 21:20, 18 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
::Thanks, that&#039;s great =) --[[User:MartinRJ Fayray|MartinRJ Fayray]] 22:31, 18 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:::There are a few templates that need translating, here is what i&#039;ve got so far (I&#039;ll add more as I find them): - &#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; 22:46, 18 October 2013 (PDT)&lt;br /&gt;
:::[[Template:LSL_Bug_Icon/en]] -&amp;amp;gt; [[Template:LSL_Bug_Icon/de]]&lt;br /&gt;
:::[[Template:LSL_Generic/Issues]] -&amp;amp;gt; [[Template:LSL_Generic/Issues/de]]&lt;br /&gt;
:::[[Template:LSL_Generic/Caveats]] -&amp;amp;gt; [[Template:LSL_Generic/Caveats/de]]&lt;br /&gt;
&lt;br /&gt;
:::Discovered the header template was broken. Was just easier to port. -- &#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; 23:21, 18 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:::There are likely other templates that need updating to work with the newer version of the template. Let me know if you encounter a broken template. -- &#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; 23:24, 18 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
::::I translated the 3 above templates, but on the article page [[LlList2Json/de]] the &amp;quot;Caveats&amp;quot; and &amp;quot;Jira Search&amp;quot; sections are still using the English template. Thanks so far, though : ) Also these headlines should also be translated: &amp;quot;Specification&amp;quot; = &amp;quot;Beschreibung&amp;quot;, &amp;quot;Caveats&amp;quot; = &amp;quot;Anmerkungen&amp;quot;, &amp;quot;Examples&amp;quot; = &amp;quot;Beispiele&amp;quot;, &amp;quot;See Also&amp;quot; = &amp;quot;Siehe auch&amp;quot;, &amp;quot;Deep Notes&amp;quot; = &amp;quot;Erweitert&amp;quot; --[[User:MartinRJ Fayray|MartinRJ Fayray]] 14:48, 19 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:::::That oddly had more to do with which template was being used. For whatever reason multilang wasn&#039;t working right and so you were getting the english version of the template (my new keyboard arrived, it&#039;s so nice to have a Z key again). -- &#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; 20:38, 19 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
:::One more thing, can you please point me to the &amp;quot;specifiers does not support negative indexes.&amp;quot; template - it&#039;s being used here: https://wiki.secondlife.com/wiki/LlJsonSetValue/de - Thanks! --[[User:MartinRJ Fayray|MartinRJ Fayray]] 14:36, 20 October 2013 (PDT)&lt;br /&gt;
:::Yet another thing: How do I translate the template that shows a &#039;Contents&#039; nav-box at the top right of each page, e.g. https://wiki.secondlife.com/wiki/JSON_APPEND/de - it should be translated from &amp;quot;Contents&amp;quot; to &amp;quot;Inhalt&amp;quot;. Thank you much! PS: found out how to use the multilang template. --[[User:MartinRJ Fayray|MartinRJ Fayray]] 18:19, 20 October 2013 (PDT)&lt;br /&gt;
:::I&#039;m done with the translation of LSL_JSON so far, if you find any errors, please let me know. --[[User:MartinRJ Fayray|MartinRJ Fayray]] 19:48, 20 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
::::Nothing I can do about &amp;quot;Contents&amp;quot;. That is Media Wiki. Unless we write our own. -- &#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; 21:16, 21 October 2013 (PDT)&lt;br /&gt;
:::I don&#039;t speak German but it all looks good. However don&#039;t use multilang directly unless you have to. There is secondary categorization that multilang does which doesn&#039;t get setup if you use it directly. The LSL templates all have it set so you don&#039;t need to do anything. And you don&#039;t need to worry multilang gets called before everything else in the lsl templates.&lt;br /&gt;
:::I&#039;ve updated the Constant template (bug fixes). -- &#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; 23:11, 22 October 2013 (PDT)&lt;br /&gt;
:::P.S. I&#039;m surprised you haven&#039;t asked me about the haiku. -- &#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; 23:11, 22 October 2013 (PDT)&lt;br /&gt;
::::What does it?--[[User:MartinRJ Fayray|MartinRJ Fayray]] 23:18, 22 October 2013 (PDT)&lt;br /&gt;
:::::Project to be revealed next April. -- &#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; 23:20, 22 October 2013 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Thanks ==&lt;br /&gt;
&lt;br /&gt;
Thank you for your apreciation. The [[Second Life Geography]] project is going on. Just hope the Lindens will not ban me for the high number of articles I created and I want to create. And best wishes for you. Your (and others&#039;) articles halped me learn to script and now I use scripted objects for my survey tasks.&lt;br /&gt;
&lt;br /&gt;
--[[User:Anaimfinity Resident|Rays of green light. Bright and proud to be a Circassian]] 05:26, 30 November 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
:LL may work in mysterious and counter intuitive ways, but they won&#039;t ban you for what you are doing (and you haven&#039;t created as many articles as I have... yet). What you are doing has obvious value and is interesting, and most importantly you aren&#039;t rocking anyones boat. I have some thoughts:&lt;br /&gt;
:* You need to categorize the articles. One general category like [[:Category:Second Life Geography]] or [[:Category:SL Geography]] then lots of subcategories like [[:Category:Continents]] then [[:Category:Linden Continents]] etc.&lt;br /&gt;
:* You need to figure out if you want this to be part of the another Portal or you want this to be it&#039;s own Portal. I&#039;m inclined to say it should be it&#039;s own portal. Something like [[Geography Portal]]. By doing so you could absorb some of the content left after the KB move (like [[Second Life Railroad]]).&lt;br /&gt;
:* You should probably have some header that helps identify your project pages from the average random wiki pages. Like [[Template:Help]] or [[Template:LSL Header]].&lt;br /&gt;
:I wish you luck and I hope you can find some folks to help you with it. Beyond template wrangling I can&#039;t do much to help. -- &#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; 21:41, 30 November 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
== Use of [[Template:LSL_Function/Head]] on [[LSL_HTTP_server]] ==&lt;br /&gt;
&lt;br /&gt;
Hiya,&lt;br /&gt;
I&#039;ve run into problems using [[Template:LSL_Function/Head]] on [[LSL_HTTP_server]]. The function description from the &#039;&#039;&#039;llHTTPResponse section&#039;&#039;&#039; is automatically copied to the &#039;&#039;&#039;llGetHTTPHeader section&#039;&#039;&#039; and the &#039;&#039;&#039;llGetFreeURLs section&#039;&#039;&#039; which both in turn don&#039;t actually have a description. Plus the p1_desc of the &#039;&#039;&#039;llGetHTTPHeader&#039;&#039;&#039; is there twice. Not sure if one&#039;s a copy of &#039;&#039;&#039;llHTTPResponse&#039;&#039;&#039;, but that&#039;d be my guess. Any idea how to fix this?&lt;br /&gt;
Cheers -- &#039;&#039;&#039;[[User:Kireji_Haiku|Kireji Haiku]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Kireji_Haiku|talk]]|[[Special:Contributions/Kireji_Haiku|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 12:00, 9 January 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
:I never thought of using the template this way. FYI: T:Head is not mature, so there may be other problems. My only concern of using it here is that it may not be the best layout for this and that we don&#039;t have a matching template for events. I liked the different style of information presentation, precisely because it was different. I don&#039;t have a strong opinion on this yet as the work isn&#039;t really done yet. -- &#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; 17:31, 9 January 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
::First of all, thansk for the fix. I changed it because the structure and formatting made it difficult to see where one sections started and ended in that wall of text. Any other idea regarding that page? I kinda liked that function header template though. -- &#039;&#039;&#039;[[User:Kireji_Haiku|Kireji Haiku]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Kireji_Haiku|talk]]|[[Special:Contributions/Kireji_Haiku|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 04:38, 11 January 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
:::I am someone who is self conscious about being resistant to change. It&#039;s growing on me. I don&#039;t have a big problem with it. My only concern is information duplication and desyncronization. I&#039;ve got an idea on how to fix this but I need to do some experiments etc (hopefully it won&#039;t bring the wiki to it&#039;s knees). This would be a low priority project. -- &#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:35, 11 January 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
== LSL syntax highlighting on Github ==&lt;br /&gt;
&lt;br /&gt;
Happy friday,&lt;br /&gt;
&lt;br /&gt;
I&#039;m working on an LSL lexer for [https://github.com/tmm1/pygments.rb Pygments] to get LSL syntax highlighting support on [https://github.com Github]. I&#039;d appreciate some feedback on this if you have some spare time:&lt;br /&gt;
&lt;br /&gt;
    https://github.com/buildersbrewery/lsl-for-pygments&lt;br /&gt;
&lt;br /&gt;
-- &#039;&#039;&#039;[[User:Kireji_Haiku|Kireji Haiku]]&#039;&#039;&#039; &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;([[User talk:Kireji_Haiku|talk]]|[[Special:Contributions/Kireji_Haiku|contribs]])&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt; 16:26, 14 February 2014 (PST)&lt;/div&gt;</summary>
		<author><name>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LSL_Alternate_Editors&amp;diff=1187683</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=1187683"/>
		<updated>2014-02-11T17:34:20Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: reorder table&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 and code completion 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 highlighting:&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Autocomplete:&#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;
| {{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;
| {{yes}}&lt;br /&gt;
| {{yes}}&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;
| {{maybe|files for YASnippet included}}&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;
| {{yes}}&lt;br /&gt;
| {{yes}}&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;
| {{no}}&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;
|-&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;
| {{yes}}&lt;br /&gt;
| {{yes}}&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;
| {{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;
| {{yes}}&lt;br /&gt;
| {{yes}}&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;
| {{yes}}&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;
| {{yes}}&lt;br /&gt;
| {{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;
|}&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>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LSL_Alternate_Editors&amp;diff=1187679</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=1187679"/>
		<updated>2014-02-11T15:29:04Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: added how-to for opening scripts in editors directly from the viewer&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.&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;
Windows example:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;quot;C:\Users\your_name\Notepad\notepad++.exe&amp;quot; --new-window &amp;quot;%s&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then click &amp;lt;code&amp;gt;&amp;quot;Edit...&amp;quot;&amp;lt;/code&amp;gt; button in the script edit window. 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 and code completion 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;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;Direct URL:&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Issue tracker:&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Autocomplete:&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Syntax highlight:&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| [http://ace.c9.io Ace]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{maybe|requires a browser}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| [https://github.com/ajaxorg/ace/ Ace]&lt;br /&gt;
| [https://github.com/ajaxorg/ace/issues/ Issue tracker]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{maybe|yes, but no included LL viewer theme}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.contexteditor.org/ ConTEXT]&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;
| [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;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.gnu.org/software/emacs/ Emacs]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{yes}}&lt;br /&gt;
| {{no}}&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;
| {{yes}}&lt;br /&gt;
| {{maybe|work in progress}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://projects.gnome.org/gedit/ gedit]&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;
| [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;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.mediawiki.org/wiki/Extension:SyntaxHighlight_GeSHi GeSHi - wikimedia extension]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{maybe|requires a browser}}&lt;br /&gt;
| {{yes}}&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;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.jedit.org/ jEdit]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{maybe|requires JavaVM}}&lt;br /&gt;
| {{no}}&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;
| {{yes}}&lt;br /&gt;
| {{maybe|yes, but no included LL viewer theme}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.kate-editor.org/ Kate]&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;
| [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;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.nano-editor.org/ Nano]&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;
| [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;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.notepad-plus-plus.org/ Notepad++]&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;
| [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;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.codingmonkeys.de/subethaedit/ SubEthaEdit]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{no}}&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;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.ultraedit.com/ UltraEdit]&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{yes}}&lt;br /&gt;
| {{no}}&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;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.vim.org/ Vim]&lt;br /&gt;
| {{no}}&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; {{yes}}&lt;br /&gt;
| {{no}}&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;
| {{yes}}&lt;br /&gt;
| {{maybe|yes, but no included LL viewer theme}}&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>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User_talk:Omei_Qunhua&amp;diff=1187581</id>
		<title>User talk:Omei Qunhua</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User_talk:Omei_Qunhua&amp;diff=1187581"/>
		<updated>2014-02-06T11:23:23Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An appeal:&lt;br /&gt;
&lt;br /&gt;
When submitting sample scripts (or editing existing samples) PLEASE  ensure you&#039;ve tested the resulting script.&lt;br /&gt;
There can be no excuse for blindly editing and not testing, and certainly no excuse for submitting scripts that won&#039;t even compile!&lt;br /&gt;
[[User:Omei Qunhua|Omei Qunhua]] 09:02, 9 December 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
:I wholeheartedly agree. I have been guilty of the sin but I agree. lslint and lsleditor are our friends. I noticed you mentioned that some edits have been breaking examples. If that happens, please make a note of it somewhere, we need to keep track of this so we can halt any negative trends. -- &#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; 08:34, 14 December 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
::Well if you want to observe a negative trend, the following Wiki pages / examples were all corrupted by the same person :)&lt;br /&gt;
 &amp;lt;pre&amp;gt;&lt;br /&gt;
Wiki Page                 Date Corrupted         Nature of Error&lt;br /&gt;
&lt;br /&gt;
Gun Script                  18-Oct-12            Compile error&lt;br /&gt;
&lt;br /&gt;
llGetAgentList               8-Dec-12            Compile error  &lt;br /&gt;
&lt;br /&gt;
llGetAgentList               9-Dec-12            Run-time bad results &lt;br /&gt;
&lt;br /&gt;
llDialog                    24-Sept-12           Compile error&lt;br /&gt;
&lt;br /&gt;
11SetLinkAlpha              30-Sept-12           Compile error&lt;br /&gt;
&lt;br /&gt;
llGetLinkInventoryPermMask  25-Nov-12            Compile error&lt;br /&gt;
&lt;br /&gt;
llResetOtherScript          24-Sept-12           Run-time error&lt;br /&gt;
&lt;br /&gt;
llGetSimStats                8-Dec-12            Compile error&lt;br /&gt;
&lt;br /&gt;
llRequestURL                24-Sep-12            Compile error&lt;br /&gt;
&lt;br /&gt;
llSetKeyframedMotion        24-Sep-12            Run-time error&lt;br /&gt;
&lt;br /&gt;
llEvade                      4-Dec-12            Compile error&lt;br /&gt;
&lt;br /&gt;
llGetClosestNavPoint         4-Dec-12            Compile error&lt;br /&gt;
&lt;br /&gt;
llGetNotecardLine           23-Sept-12           Run-time bad results&lt;br /&gt;
&lt;br /&gt;
StringIsNum                  7-Oct-12            Compile error&lt;br /&gt;
&lt;br /&gt;
Sensor                      28-Oct-12            Compile error and Run time wrong results&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(I&#039;ve also corrected 4 other non-compilable or faulty example scripts by other editors, where the errors have existed since July 2012, March 2008, and Sept 2007)&lt;br /&gt;
&lt;br /&gt;
[[User:Omei Qunhua|Omei Qunhua]] 15:26, 18 December 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
:I have take a look at all his changeings in the example scripts and do not agree with the most, Everywhere he remove inside the sub-if&#039;s the clamps and resort the events. The most of the experienced scripters do not realy read it, but for beginners i think its bad when they not see where are the clamps necessary and where not. [[User:Daemonika Nightfire|Daemonika Nightfire]] 10:19, 20 December 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
:I disagree with the way you say a script is &amp;quot;faulty&amp;quot;   You do not clearly state your reasoning which is debatable because it&#039;s based on your own personal preference. --[[User:Ackley Bing|Ackley Bing]] 10:12, 14 February 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
::It&#039;s not a matter of &amp;quot;personal preference&amp;quot;. If a script doesn&#039;t compile, or gives wrong results at run-time, then it&#039;s faulty. [[User:Omei Qunhua|Omei Qunhua]] 03:22, 15 February 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
== More size constructs ==&lt;br /&gt;
&lt;br /&gt;
I&#039;ve confirmed your results and made a few more tests of size optimization constructs.&lt;br /&gt;
&lt;br /&gt;
 x=-~x;               6 bytes (equivalent to ++x)&lt;br /&gt;
 x=~-x;               6 bytes (equivalent to --x)&lt;br /&gt;
 y=-~x;               6 bytes (equivalent to y=x+1)&lt;br /&gt;
 if(~x);              7 bytes (equivalent to if(x!=-1))&lt;br /&gt;
 x*2;                 8 bytes (equivalent to x&amp;lt;&amp;lt;1)&lt;br /&gt;
 x=-~-~x;             8 bytes (equivalent to x+=2)&lt;br /&gt;
 x=~-~-x;             8 bytes (equivalent to x-=2)&lt;br /&gt;
 y=x+1;              10 bytes&lt;br /&gt;
 x=x*2;              10 bytes (equivalent to x=x&amp;lt;&amp;lt;1)&lt;br /&gt;
 x*=2;               10 bytes&lt;br /&gt;
 if (!~x);           10 bytes (equivalent to if(x==-1))&lt;br /&gt;
 if(x&amp;amp;0x80000000)    12 bytes (equivalent to if(x&amp;lt;0) for integers)&lt;br /&gt;
 if(x&amp;lt;0);            13 bytes&lt;br /&gt;
 x=x&amp;lt;&amp;lt;1;             14 bytes&lt;br /&gt;
 if(x!=-1);          17 bytes&lt;br /&gt;
&lt;br /&gt;
For float x:&lt;br /&gt;
&lt;br /&gt;
 x=0;                 9 bytes&lt;br /&gt;
 x=0.0;              12 bytes&lt;br /&gt;
&lt;br /&gt;
For vector x:&lt;br /&gt;
&lt;br /&gt;
 x=&amp;lt;0, 0, 0&amp;gt;;        27 bytes&lt;br /&gt;
 x=&amp;lt;0.0, 0.0, 0.0&amp;gt;;  36 bytes&lt;br /&gt;
 x=ZERO_VECTOR;      36 bytes&lt;br /&gt;
&lt;br /&gt;
for list x:&lt;br /&gt;
&lt;br /&gt;
 llGetListLength(x); 40 bytes&lt;br /&gt;
 x!=[];              13 bytes (note: only list LENGTH is compared - actually subtracted. That returns 0 for empty list.)&lt;br /&gt;
 x==[];              13 bytes&lt;br /&gt;
 if(x==[]);          17 bytes&lt;br /&gt;
 if(x!=[]);          17 bytes&lt;br /&gt;
 x!=[&amp;quot;&amp;quot;];            23 bytes (note: only list LENGTH is compared - actually subtracted. That returns -1 for empty list.)&lt;br /&gt;
 x==[&amp;quot;&amp;quot;];            23 bytes (true if x has 1 element)&lt;br /&gt;
 x!=[[]];            23 bytes (list may not contain lists but this is allowed?!?!)&lt;br /&gt;
 x==[[]];            23 bytes&lt;br /&gt;
 if(x==[&amp;quot;&amp;quot;]);        27 bytes&lt;br /&gt;
 x!=[1];             28 bytes (true if x has 1 element)&lt;br /&gt;
 if(x==[&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;]);  47 bytes&lt;br /&gt;
 if(x!=[&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;]);  47 bytes&lt;br /&gt;
 if(llGetListLengt(x)==1);  53 bytes&lt;br /&gt;
 if(llGetListLengt(x)!=1);  56 bytes&lt;br /&gt;
 if(x==[&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;]);      57 bytes&lt;br /&gt;
&lt;br /&gt;
Some of those may be worth being included in [[LSL Hacks]], which I&#039;d say is the place for code size optimization. Your list results are run time size related and thus worth being included as an update to [[LSL Script Memory]]. --[[User:Pedro Oval|Pedro Oval]] 09:35, 29 December 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
:Wow some of those are really interesting. I would venture the reason float zero is so expensive is how it&#039;s being encoded (there are several ways to encode floats in IL). They haven&#039;t optimized the zero case. I&#039;m very surprised that x * 2 is less than x &amp;lt;&amp;lt; 2. -- &#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; 13:28, 29 December 2012 (PST)&lt;br /&gt;
::Well try these for size ...   x+x; 4 bytes,  x=x+x; 6 bytes,  x=x^x; 6 bytes. Food for thought!  [[User:Omei Qunhua|Omei Qunhua]] 06:05, 30 December 2012 (PST)&lt;br /&gt;
:::VERY interesting, thank you!!! --[[User:Pedro Oval|Pedro Oval]] 12:11, 30 December 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some more interesting results (all for LOCAL variables) [WITHDRAWN - SEE BELOW]&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;strike&amp;gt;integer a;           49 bytes&lt;br /&gt;
 integer a=0;         53 bytes&lt;br /&gt;
 string a=&amp;quot;&amp;quot;;         53? 55? bytes (I&#039;m unsure if there&#039;s a preexisting instance of &amp;quot;&amp;quot; or not - my measuring method can&#039;t tell)&lt;br /&gt;
 string a;            53? 55? bytes&lt;br /&gt;
 string a=&amp;quot;a&amp;quot;;        53 bytes plus 2*(num characters+1) per each different string (equal strings are referenced just once)&lt;br /&gt;
 float a=0;           54 bytes&lt;br /&gt;
 list a;              55 bytes&lt;br /&gt;
 list a=[];           55 bytes&lt;br /&gt;
 float a;             57 bytes&lt;br /&gt;
 float a=0.0;         57 bytes&lt;br /&gt;
 key a=&amp;quot;&amp;quot;;            60? 61? 62? bytes (same problem as string)&lt;br /&gt;
 key a=&amp;quot;string&amp;quot;;      60? bytes + 2*(num_characters+1) per each different string&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Braces don&#039;t seem to add anything: &amp;lt;code&amp;gt;{integer a;}&amp;lt;/code&amp;gt; occupies the same size as &amp;lt;code&amp;gt;integer a;&amp;lt;/code&amp;gt; and so on. Since the string case is complex, let me put an example. &amp;lt;code&amp;gt;string a=&amp;quot;aaa&amp;quot;; string b=&amp;quot;aaa&amp;quot;;&amp;lt;/code&amp;gt; will use 53+53+2*(3+1)=114 bytes, because the string is the same in both cases and it&#039;s reused, but &amp;lt;code&amp;gt;string a=&amp;quot;aaa&amp;quot;; string b=&amp;quot;bbb&amp;quot;;&amp;lt;/code&amp;gt; will use 53+53+2*(3+1)+2*(3+1)=122 bytes because the strings are different.&lt;br /&gt;
&lt;br /&gt;
I&#039;m getting inconsistent results with the keys. Something else seems to be going on. I get 61 bytes sometimes and 60 others. Wonder if there&#039;s a byte alignment problem. If so, that could make some of the previous measurements incorrect, even if they looked consistent. --[[User:Pedro Oval|Pedro Oval]] 13:40, 29 December 2012 (PST)&lt;br /&gt;
&lt;br /&gt;
:Using the measurement method you suggested (or perhaps a variation), I have determined that an empty string uses 6 bytes always, while a 1 or 2 character string uses 10 bytes for the first appearance and 6 for the rest, and a 3 or 4 character string uses 14 bytes for the first appearance and 6 for the rest. Further testing suggests that string constants in code are allocated 4 bytes at a time.&lt;br /&gt;
&lt;br /&gt;
:The previous results for local variable declarations can&#039;t be considered reliable. With this measurement method I get many variations for keys and strings: 132 bytes for the first appearance of &amp;lt;code&amp;gt;key x=&amp;quot;&amp;quot;&amp;lt;/code&amp;gt;, 56 for the second, 66 for the third... and also crazy for strings. I just withdraw the results. With integer I also got inconsistencies.: 43 bytes when measured with this method. What seems clear is that there&#039;s one implicit assumption wrong and I don&#039;t know which one or why. I guess a better understanding of CIL would help me interpret those results. Not sure if I&#039;m willing to dive into that though. --[[User:Pedro Oval|Pedro Oval]] 14:44, 1 January 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
== llGetSubString ==&lt;br /&gt;
&lt;br /&gt;
I obviously did not review that edit! wtf were they thinking? Thank you. -- &#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; 23:08, 3 January 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
== UTF-8 ==&lt;br /&gt;
&lt;br /&gt;
UTF-8 characters can be more than 2 bytes, by the original standard, used by LSO, they can by 5 bytes. UTF-8 supported by Mono supports up to 4 bytes per character. -- &#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; 20:31, 14 January 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
::Yes I know. That&#039;s why I quoted an example of a 2-byte UTF-8 when giving 512 as a UTF-8 limit. I didn&#039;t want to go into a full explanation on every page. Just wanted to give some clue that 1024 bytes doesn&#039;t necessarily give 1024 characters (and an opportunity to correct the 1023 to 1024). Maybe a link to a page on UTF-8 would be appropriate. But I think the current UTF-8 page needs overhauling. It starts by saying &amp;quot;SL uses UTF-8 for storing and transmitting strings&amp;quot;  which I think is no longer always true (i.e. storage in Mono) then the UTF-8 page gets hijacked with complex code examples concerning Unicode which maybe appeal to 0.1% of Wiki&#039;s users.  We need to sort the basics out on SO MANY Wiki pages, before leaping into hyperspace. And that&#039;s been the impetus behind my sudden burst of editing activity over 5 weeks. (IMHO, LOL) [[User:Omei Qunhua|Omei Qunhua]] 00:26, 15 January 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
== Wiki editing ==&lt;br /&gt;
&lt;br /&gt;
I&#039;m not sure why you feel the need to insult other editors with every other edit summary but I wish you all the best and merry christmas. Hopefully you can find some time to loosen up during the holidays. Best regards -- [[User:Kireji Haiku|Kireji Haiku]] 14:29, 19 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
::I just stated a fact. If you find that insulting, well ....  &lt;br /&gt;
&lt;br /&gt;
::I don&#039;t understand why you are intent on driving the Wiki further and further from reality. You&#039;re just making it an academic non-practical source of your own personal preferences, at odds with what 99.9% of coders do and I&#039;m sure will continue to do. [[User:Omei Qunhua|Omei Qunhua]] 16:00, 21 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
I personally don&#039;t care either way with PUBLIC_CHANNEL and I didn&#039;t view the edit comments as insulting (the field encourages brevity, which can be mistaken as insult). I don&#039;t use it myself and I doubt many people do but many people don&#039;t use &amp;lt;code&amp;gt;~llSubStringIndex()&amp;lt;/code&amp;gt;, they use &amp;lt;code&amp;gt;llSubStringIndex() != -1&amp;lt;/code&amp;gt; or the new fangled &amp;lt;code&amp;gt;llSubStringIndex() != [[ERR_GENERIC]]&amp;lt;/code&amp;gt;. Just because it&#039;s &amp;quot;ugly&amp;quot; doesn&#039;t make it wrong. So that we don&#039;t fight over these trivialities we should take the viewpoint that if they are already existing in articles we should not change them unless we are replacing the entire line. I&#039;m ok with grammar and punctuation getting corrected but do keep in mind that grammar and punctuation are artificial rules created by man, and these rules can be redefined at anytime as well. What is grammatically incorrect today may be grammatically correct tomorrow, so grammatical correctness isn&#039;t the most important thing. There are however about 600 unloved articles in {{LSLGC|Needs Example}} (I&#039;m amazed it&#039;s only 600 btw). So if you get bored and feel the desire to correct something minor, consider writing an example and spread a little joy to the unloved. -- &#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; 15:15, 19 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
::I feel passionately that PUBLIC_CHANNEL should NOT be promoted in the Wiki - and this is NOT because that is my own personal preference, but it is the established preference of thousands of scripters as demonstrated in millions of scripts in-world and on script libraries. Kireji I am sure feels passionately that PUBLIC_CHANNEL should be promoted - but I venture to suggest that that IS due to his own individual and personal preference. I&#039;ve noticed ERR_GENERIC creeping in, and that again is at odds with practically all actual scripts, although I&#039;m less unhappy about it, in some situations. Sure I love mnemonics like CHANGED_REGION_START as most scripters would. As I say, the Wiki is in danger of becoming an academic tome, divorced from reality. :(  Also, as pointed out before, we tend to have to explain that PUBLIC_CHANNEL means 0, whereas for example one would need to explain that 0x400 means CHANGED_REGION_START. That difference highlights the problem in a nutshell. Oh, and following on from your comments, Strife, the same logic dictates that where llSay(0, ....  etc. exist in Wiki articles, they shouldn&#039;t be routinely changed to PUBLIC_CHANNEL. [[User:Omei Qunhua|Omei Qunhua]] 16:04, 19 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
:::Yes, the logic does, my condemnation is not aimed at any one party. But we have bigger problems. Dryness is one of those problems. The small number of editors is another. I&#039;d say that Examples should be a top priority but I&#039;ve never been able to make it one of mine. I don&#039;t have solutions to these problems. At some point we should have a meeting. My current projects include: parameter/subtype categories and haiku. -- &#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; 21:04, 19 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
::::&amp;quot;unless we are replacing the whole line&amp;quot; - and please, only replace that line if it&#039;s faulty, not just to propagate a personal style. Unfortunately that propagation has been going on for 15 months without anyone commenting until I started squirming a bit and seemed to become the target for criticism (the current condemnatory remarks appear in my own talk page). You say you have no preference, Strife, but your consistent use of llSay(0,  in your own examples  does suggest a preference. There are so many other unnecessary edits that have taken place over the same period, where there has been no corrective aspect.  (float) FALSE is horrid, as are  inserted lines of // { or  // } ... or just adding the //. Awful. By all means, let&#039;s use our favoured styles on our own pages, or in examples that we originate ourselves. Enough. I&#039;ll go look at your list of the 600 unloved ... LOL. (But perhaps all those corrupted examples should be returned to their pristine states ^^). [[User:Omei Qunhua|Omei Qunhua]] 09:19, 20 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
:::::Yeah the (float)FALSE thing... I have trouble seeing a good reason to use it. Oh I can understand that it might uses less bytecode but for the love of monkeys put it in the optimization article. That said, I am guilty of using (integer)&amp;quot;&amp;quot; in the past in code that was highly optimized (for LSO, yes I really did need every byte). Not really keen on whitespace changes either but I don&#039;t have a strong feeling. I wonder if we should considering protecting the diversity of programming styles in the articles. This way it gives the wiki a feel that real people actually wrote the examples and that they weren&#039;t extruded from some hideous creature&#039;s bum. It will be dangerous as it will be hard to define what is good diversity and what is bad content but it should be interesting. -- &#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; 11:30, 20 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
::&amp;quot;What is grammatically incorrect today may be grammatically correct tomorrow&amp;quot; - LOL. So that&#039;s an excuse to write appallingly? No thanks!  But I do think there could be a lot of merit in preserving the programming styles exhibited by example originators, as you suggest. [[User:Omei Qunhua|Omei Qunhua]] 16:00, 21 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
:::Fixed a bug in Constants, fewer articles should be showing up now in {{LSLGC|Needs Example}}. {{LSLGC|FixMe}} if you are wondering is where all the broken articles go. Most are constants in need of descriptions (others are constants in need of syntax examples like you would see on the like [[PRIM_NAME]]). -- &#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; 20:28, 23 December 2013 (PST)&lt;br /&gt;
:::P.S. Yeah it&#039;s a slippery slope and I don&#039;t buy it entirely either.&lt;br /&gt;
&lt;br /&gt;
Further to suggesting that editors try to stick with the coding style used by an article originator, I was going to say that first of all the original writers should abide by an overall style guide agreed for the Wiki, such as [[https://wiki.secondlife.com/w/index.php?title=LSL_Style_Guide&amp;amp;oldid=1181778 StyleGuide]]. Unfortunately I see that that page has been &#039;hijacked&#039; to promote one person&#039;s eccentric views. Proposed changes to the main style guide should FIRST be discussed in the corresponding discussion page. We can&#039;t have one person unilaterally declaring a style without discussion. So ... first we seriously need a &#039;committee&#039; approach to defining an overall style guide. It&#039;s been said elsewhere that contributors are not going to want to rewrite their programs to comply with a Wiki style different to their usual practice. Personally I don&#039;t find that onerous, and I favour a more rigorous insistence on a unified style throughout. [[User:Omei Qunhua|Omei Qunhua]] 04:04, 24 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
: I do not know how I overlooked this but It appears I forgot to codify any syntax guidelines into the [[LSL Portal Guidelines]]. For now I&#039;ll just shove something onto [[LSL_Style_Guide#LSL_Portal_Style]]. Thoughts? -- &#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; 02:19, 25 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
I started tackling some of the &amp;quot;need examples&amp;quot; pages, but quickly felt that adding an example for each individual mnemonic constant was not necessary. Indeed having a separate page for each seems seriously OTT. [[User:Omei Qunhua|Omei Qunhua]] 06:01, 27 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
:Do what you think is best, if it doesn&#039;t really need an example, skip it. I will not deny it was OCD to mandate that every constant have an article, nor that it might be a tiny bit excessive but I will argue with it being Over The Top.&lt;br /&gt;
&lt;br /&gt;
:For some constants there is no benefit to having individual articles. If we were to deny all constant articles, we would end up with all function articles being at best [[llParticleSystem]] and at worst double what [[llSetPrimitiveParams]] (because llSetPrimitiveParams would become even worse). In the beginning I pushed for articles for constants because on the LSL Wiki it was hard to find information about constants. Not only was the information buried in function articles (which had no unifying layout so it could by literally be anywhere in the article), if the constant was used by multiple overlapping functions the information might be out of sync. It made maintaining the content very annoying. Personally I&#039;d rather fill the wiki with stubs and let people flesh them out into articles if they want, than leave them digging and wishing for more. While we could come up with rules o how to decide which constants get articles and which don&#039;t, I don&#039;t think we gain anything by doing so ([[llParticleSystem]] is not one of my articles and I view it as grandfathered).&lt;br /&gt;
&lt;br /&gt;
:Trying to shoe horn information about constants into articles has always been hard and it was especially hard on the LSL Wiki. You might want to add a single sentence of information but to do so might require refactoring a significant amount of the article. Here you can just post the sentence to the dedicated article and not have to worry so much about squeezing it in. -- &#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; 22:08, 27 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
:Again, not sure why you feel the need to undo wiki contributions. Replacing channel 0 with [[PUBLIC_CHANNEL]] does not change the code style. If you strongly believe such edits shouldn&#039;t be done by others, same would go for your edits ... which go the other way around. The reason using constants is to enhance readability, making it easier for beginners. It&#039;s a lot easier to do a find and replace to get rid of [[PUBLIC_CHANNEL]] and to save byte-code than to look up what channel 0 is. Just my two cents. -- [[User:Kireji Haiku|Kireji Haiku]] 06:54, 31 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
::Kireji, YOU are the one undoing Wiki contributions. I am merely agreeing that the original style (I use the word loosely) chosen by contributors should be preserved unless there is a very good reason (basically an error) that needs correction. Your use of PUBLIC_CHANNEL is nothing more than a personal fad, and the Wiki is not the place for such indulgences. [[User:Omei Qunhua|Omei Qunhua]] 07:28, 31 December 2013 (PST)&lt;br /&gt;
&lt;br /&gt;
== PUBLIC_CHANNEL vs Zero ==&lt;br /&gt;
Seeing as this topic hasn&#039;t settled down, it&#039;s time for the larger community to choose. I view their decision (even if it&#039;s Pie) as binding.&lt;br /&gt;
http://www.sluniverse.com/php/vb/scripting/91061-wiki-public_channel-vs-zero.html&lt;br /&gt;
-- &#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; 00:15, 1 January 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
:It isn&#039;t just about PUBLIC_CHANNEL. It is about one individual tampering with hundreds of perfectly valid existing scripts, purely to impose exceptional ideas they originated, regardless of the demonstrated preferences of hundreds of contributors, many of whom are probably no longer here to defend themselves. I thought you and I had agreed, Strife, that edits should not unnecessarily change script examples unless to correct definite errors. So, if I vote in your survey, it will be for zero, but the survey misses the important point. The survey should be &amp;quot;Should one individual be allowed to edit script examples purely to impose personal preferences, and not in order to fix problems?&amp;quot; A Wiki is supposed to be a collaborative project. When one person rampages through it, insisting on their own views on every conceivable page, it ceases to be collaborative. [[User:Omei Qunhua|Omei Qunhua]] 02:19, 1 January 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
::My goal is to start small and work our way up. If this gets things moving in a positive direction, good. If things degrade, the stage is set for the next act. Look at what Void said, we&#039;ve got the community thinking. -- &#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; 23:50, 1 January 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
== llRezAtRoot ==&lt;br /&gt;
&lt;br /&gt;
I think you missed the context, which is &amp;quot;offline building rights&amp;quot;, you can&#039;t be offline and on the land at the same time. -- &#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; 01:42, 4 January 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
:hummm. Well then, what is the correct wording for the note that effectively says &amp;quot;To have offline building rights, you need to allow everyone to build&amp;quot; ? And &amp;quot;Be&amp;quot; doesn&#039;t necessarily have to apply to an avatar, it can apply to the script doing the rezzing. No? [[User:Omei Qunhua|Omei Qunhua]] 03:46, 4 January 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
::Ahhh. I see my issue. I focused on the wrong part. It&#039;s still screwed up. I&#039;ll fix it. -- &#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; 21:07, 4 January 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
:That does look better. But i still don&#039;t fully understand (excuse me for being a bit thick). Why do I need OFFLINE building rights to run a script with llRezAtRoot?  Only if I&#039;m actually offline surely. Not while I&#039;m scripting and testing while online? [[User:Omei Qunhua|Omei Qunhua]] 08:27, 5 January 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
::I can&#039;t think of a situation where you would have build rights online and not offline but there may be one. There may be a gray goo restriction. -- &#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; 11:16, 5 January 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
:Oh dear :(  Then what is the significance of calling it &amp;quot;offline&amp;quot;? I had started to think this related to the observed situation where a script of mine can&#039;t rezz a prim unless I&#039;m online. If there&#039;s no difference between online and offline building rights, then just call it building rights, as it is usually known. No? [[User:Omei Qunhua|Omei Qunhua]] 11:54, 5 January 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
Thank you. Yes, English is not my native language. I know about my ortographic problems, but I don&#039;t know how to activate a corrector or something similar. How do I make errors to be highlighted? Please tell me, that will be a great help.&lt;br /&gt;
&lt;br /&gt;
--[[User:Anaimfinity Resident|Rays of green light. Bright and proud to be a Circassian]] 10:44, 3 February 2014 (PST)&lt;br /&gt;
&lt;br /&gt;
== Memory Module ==&lt;br /&gt;
I&#039;m afraid your characterization of sim and viewer events as &#039;rare&#039; is inaccurate. It happens to thousands on a daily basis. Not to mention, the statement &amp;quot;such an event is likely to be more catastrophic than just the loss of variables would imply, it may not be worth trying guard against it.&amp;quot; is extremely misleading, bad practice, and really amounts to nothing more than an opinion. Script state rollbacks are not catastrophic. They only result in a lack of data.  Data which could be safeguarded against with the techniques described on the page. They certainly aren&#039;t the *only* way such safeguards can be implemented, but they are a valid way. If you think you know a better way, it would be more constructive to make a page about that, instead of vandalizing someone else&#039;s page.&lt;br /&gt;
&lt;br /&gt;
I had many problems with your original statements, but I had enough respect for you that I did not change any of your wording. I only added on balance. I expect the same respect from you. But if you touch it again, Gloves off.&lt;br /&gt;
&lt;br /&gt;
{{Unsigned|Darien Caldwell|2014-02-05 13:30:31 SLT}}&lt;br /&gt;
&lt;br /&gt;
::Please yourself. Care to sign your remarks here? And I certainly have problems with your wild assertions. You cannot possibly say categorically that &amp;quot;Script state rollbacks are not catastrophic.&amp;quot; That&#039;s just ridiculous. &amp;quot;vandalizing someone else&#039;s page.&amp;quot; A trifle over emotive? If you look at the page before I added the &amp;quot;tip&amp;quot; you&#039;ll see that seriously wrong impressions were given, i.e. that globals would always get reset on rezzing / logout-in. That needed addressing.  &amp;quot;It happens to thousands on a daily basis. &amp;quot;  That again sounds rather wild. Care to substantiate that? Fortunately never to me, nor to my clients that they have queried with me. [[User:Omei Qunhua|Omei Qunhua]] 15:54, 5 February 2014 (PST)&lt;/div&gt;</summary>
		<author><name>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Category:LSL_Library&amp;diff=1187406</id>
		<title>Category:LSL Library</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Category:LSL_Library&amp;diff=1187406"/>
		<updated>2014-01-31T13:22:47Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: all content submitted to the SL wiki is!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header|ml=*}}{{RightToc}}&lt;br /&gt;
==Script Library==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em 0.5em 1.5em&amp;quot;&amp;gt;&lt;br /&gt;
NOTE: Please add your scripts to this page and then add them to a category on the [[:Category:LSL Categorized Library|Categorized Library]] page.&lt;br /&gt;
&lt;br /&gt;
Come to this page to see complex examples that show how to combine parts of LSL.&lt;br /&gt;
&lt;br /&gt;
Go to the [[:Category:LSL Examples|LSL Examples]] page to see brief examples of how to use parts of LSL.&lt;br /&gt;
&lt;br /&gt;
Why collect complex examples here? Well, ...&lt;br /&gt;
&lt;br /&gt;
There is a treasure trove of user developed scripts that have become hard to find over time throughout Second Life&#039;s web server revisions and redesigns. The [http://community.secondlife.com/t5/Community-General/Upgrading-the-Forums/bc-p/77385 Huge Leap] to the new [http://www.jivesoftware.com/ Jive software], while traumatic and disruptive, has failed to dispose of  what&#039;s come before at the moment of your reading. These valuable community generated resources do indeed still remain and can be browsed/retrieved from several disjointed and disparate locations. While some links may point to duplicated, revised, or downright ancient wisdom, you may derive some enlightened perspective researching their hard won, timely solutions we encounter day to day.&lt;br /&gt;
&lt;br /&gt;
# [[Old forum Scripting Library index| Old Forums -Scripting Library index (wiki)]],&lt;br /&gt;
# [http://community.secondlife.com/t5/Scripting/bd-p/2108 Old Forums -Scripting Forum Archive],&lt;br /&gt;
# [http://forums-archive.secondlife.com/15/1.html Old Forums -Scripting Library],&lt;br /&gt;
# [http://community.secondlife.com/t5/Scripting-Library/bd-p/2122 new Forums -Archives &amp;gt; Scripting Library],&lt;br /&gt;
# [http://community.secondlife.com/t5/LSL-Scripting-Library/bd-p/LSLScriptingLibrary new Forums -LSL Library].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The wiki medium is well-suited for a script library due to its revision based historical foundation. If you feel inclined to release your scripts to the entire community, there&#039;s no better place to preserve your work/love/energy/gift as a unified and cohesive repository. Feel free to add your script page links here as well as adding it to the [[:Category:LSL Categorized Library|Categorized Library]].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rules for posting: ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
#Your script must be tested and working. If it&#039;s not, stick it in your user-space until it is. This is a list of working, usable scripts.&lt;br /&gt;
#Add a link to your script&#039;s page here. Link back to this page from your script&#039;s page. Start your page with &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{LSL Header}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
#Do not add scripts that duplicate the same functionality as an existing script or built in {{LSLGC|Functions|function}}. If yours does, explain why.&lt;br /&gt;
#Do not list simple scripts here. Include those among the [[:Category:LSL Examples|LSL Examples]] instead.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==LSL Script Library==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; {{Prettytable}}&lt;br /&gt;
|- {{Hl2}}&lt;br /&gt;
! &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Creator&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Yumi Murakami/Addiction Moderator|Addiction Moderator and World Clock]]&lt;br /&gt;
|{{User|Yumi Murakami}}&lt;br /&gt;
|Keep tabs on usage of SL and easily share local times with other users.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Yumi Murakami/Weaver Spell Grid|Weaver Spell Grid]]&lt;br /&gt;
|{{User|Yumi Murakami}}&lt;br /&gt;
|Designs simple objects and creates them with magic words.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Yumi Murakami/Golden Vendor|Golden Vendor]]&lt;br /&gt;
|{{User|Yumi Murakami}}&lt;br /&gt;
|A cross between a vendor and a game.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Yumi Murakami/Bijocam And Other Camera Scripts|Bijocam and Other Camera Scripts]]&lt;br /&gt;
|{{User|Yumi Murakami}}&lt;br /&gt;
|Various camera control systems for machinima, security, and other effects.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Ackley Bing/Textbox2Hovertext|Textbox2Hovertext]]&lt;br /&gt;
|[[User:Ackley Bing|Ackley]]&lt;br /&gt;
|A simple script to allow hovertext to be set with a dialog text box.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Ackley Bing/Basic Sim Status Button Indicator HUD|Basic Sim Status Button Indicator HUD]]&lt;br /&gt;
|[[User:Ackley Bing|Ackley]]&lt;br /&gt;
|A single prim HUD. Color indicates sim status changes.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Ackley_Bing/Basic_Target_Scanner_HUD|Basic Target Scanner HUD]]&lt;br /&gt;
|[[User:Ackley Bing|Ackley]]&lt;br /&gt;
|A single prim HUD.  Scrolls through nearby players names, photos and user key.&lt;br /&gt;
|-&lt;br /&gt;
|[[StringIsNum|(Function) StringIsNum]]&lt;br /&gt;
|{{User|Zion Tristan}}&lt;br /&gt;
|A User Made Function to return TRUE if a string based input consists entirely of a whole number, and return FALSE otherwise.&lt;br /&gt;
|-&lt;br /&gt;
|[[Remove all scripts from a linkset]]&lt;br /&gt;
|{{User2|Dahlia Orfan}}&lt;br /&gt;
|Remove all scripts from a linkset.&lt;br /&gt;
|-&lt;br /&gt;
|[[RLV Viewer Titler]]&lt;br /&gt;
|{{User2|Jenna Felton}}&lt;br /&gt;
|Titler displaying viewer and it&#039;s version, revealed via RLV interface.&lt;br /&gt;
|-&lt;br /&gt;
|[[Sim Restart Notifyer]]&lt;br /&gt;
|{{User2|Jenna Felton}}&lt;br /&gt;
|On region restart, notifyes registered residents about the sim is online and the current sim version&lt;br /&gt;
|-&lt;br /&gt;
|[[Script Vitality plug-in]]&lt;br /&gt;
|{{User2|Jenna Felton}}&lt;br /&gt;
|Uses vehicle technology to allow scripts (in same prim) to run in &#039;dead&#039;, i.e. no-script areas.&lt;br /&gt;
|-&lt;br /&gt;
|[[Texture Repeater]]&lt;br /&gt;
|{{User2|Jenna Felton}}&lt;br /&gt;
|Observes textures and texture parameters on the prim. If changed, bulk-updates other prims in linkset.&lt;br /&gt;
|-&lt;br /&gt;
|[[1st necessity of SL]]&lt;br /&gt;
|{{User|Beer Dailey}}&lt;br /&gt;
|Monitors for avatars and (de)activates scripts states to control script performance/lag.&lt;br /&gt;
|-&lt;br /&gt;
|[[SetLinkText]]&lt;br /&gt;
|{{User2|Tacusin Memo}}&lt;br /&gt;
|Custom function like [[llSetText]] only applying to linked sets.&lt;br /&gt;
|-&lt;br /&gt;
|[[3D Radar]]&lt;br /&gt;
|{{User|Jesse Barnett}}&lt;br /&gt;
|Rezzes a ball for each avatar in range. Each ball tracks its own AV and displays distance.&lt;br /&gt;
|-&lt;br /&gt;
|[[RegionSitTeleport]]&lt;br /&gt;
|{{User|Vincent Nacon}}&lt;br /&gt;
|A very simple and clean sit/unsit teleporter.&lt;br /&gt;
|-&lt;br /&gt;
|[[AbcText]]&lt;br /&gt;
|{{User|Ange Capalini}}&lt;br /&gt;
|EXPERIMENTAL Hyper low prim Display. only 2 prims for 25char.&lt;br /&gt;
|-&lt;br /&gt;
|[[Access (NewAge)]]&lt;br /&gt;
|{{User|Asia Snowfall}}&lt;br /&gt;
|An easy to use script for permissions on who can use the script, Public/Group/Owner&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Daemonika_Nightfire/Scripts/Access_Tutorial_EN|Access Tutorial (EN)]]&lt;br /&gt;
|{{User|Daemonika Nightfire}}&lt;br /&gt;
|Short examples about permission to executable commands.&lt;br /&gt;
|-&lt;br /&gt;
|[[Aim Detection]]&lt;br /&gt;
|{{User2|Han Shuffle|Dugley Reanimator}}&lt;br /&gt;
|Monitors for avatars and reports back to owner about who is aiming at them.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Daemonika_Nightfire/Scripts/Anti_copy_trans|Anti (copy &amp;amp; transfer)]]&lt;br /&gt;
|{{User|Daemonika Nightfire}}&lt;br /&gt;
|This funktion allows you to give away scripts with copy &amp;amp; transfer permissions and force the reseller to change the permission.&lt;br /&gt;
|-&lt;br /&gt;
|[[AnkleLock]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|An ankle lock script and attached animation to fix your displaced shoes. This will help if your shoes look displaced when you sit in certain poses or when your animation overrider is active.&lt;br /&gt;
|-&lt;br /&gt;
|[[AntiDelay Node]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
|Uses [[llMessageLinked]] to stop those pesky delays.&lt;br /&gt;
|-&lt;br /&gt;
|[[Artillery]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|An artillery gun script, performing the necessary calculations based on a user-chosen velocity, in order to hit a designated target avatar.&lt;br /&gt;
|-&lt;br /&gt;
|[[AO Overriding Pose Ball]]&lt;br /&gt;
|{{User|Jesse Barnett}}&lt;br /&gt;
|No more turning your AO off and on when you sit down&lt;br /&gt;
|-&lt;br /&gt;
|[[ARCFOUR Strong Encryption Implementation]]&lt;br /&gt;
|{{User2|Nekow42 Zarf}}&lt;br /&gt;
|An LSL implementation of ARCFOUR, the most popular stream cipher still in use.&lt;br /&gt;
|-&lt;br /&gt;
|[[Assembly Programming Language|Assembly-Like Programming Language]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
|A compiler that runs assembly-like programs.&lt;br /&gt;
|-&lt;br /&gt;
|[[Associative Array Emulator|Associative Array (Dictionary) Emulator]]&lt;br /&gt;
|{{User2|Alynna Vixen}}&lt;br /&gt;
|This library provides a set of functions for using a list as an associative array where string based keys can refer to one or more variant elements.&lt;br /&gt;
|-&lt;br /&gt;
|[[AvatarFollower]]&lt;br /&gt;
|{{User|Dale Innis}}&lt;br /&gt;
|Allows one avatar to automatically follow another.&lt;br /&gt;
|-&lt;br /&gt;
|[[Avatar Radar (NewAge)]]&lt;br /&gt;
|{{User|Asia Snowfall}}&lt;br /&gt;
|Version 1.2; A nice new avatar radar script i just finish that you can place in your hud, Also features avatar locator&lt;br /&gt;
|-&lt;br /&gt;
|[[Base2Dec]]&lt;br /&gt;
|{{User|Siann Beck}}&lt;br /&gt;
|Convert a number to decimal from any base.&lt;br /&gt;
|-&lt;br /&gt;
|[[BaseN]]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
|Variable base compression, dynamically maps to usable UTF code points.&lt;br /&gt;
|-&lt;br /&gt;
|[[Basic Encryption Modules]]&lt;br /&gt;
|{{User|Beverly Larkin}}&lt;br /&gt;
|Basic encryption scripts, allows you to encrypt a float and shout it to another prim on a randomly chosen channel.&lt;br /&gt;
|-&lt;br /&gt;
|[[Be happy]]&lt;br /&gt;
|{{User|Emmas Seetan}}&lt;br /&gt;
|Basic smile attachment script, makes your avatar smile.&lt;br /&gt;
|-&lt;br /&gt;
|[[Beat The Average Vendor]]&lt;br /&gt;
|{{User2|Kristen Giano}}&lt;br /&gt;
|A vendor script based on humblebundle.com&lt;br /&gt;
|-&lt;br /&gt;
|[[Best Neighbor Ad Hiding Script|Best Neighbor]]&lt;br /&gt;
|{{User2|Doran Zemlja}}&lt;br /&gt;
|Reduce ad clutter by hiding ads when users are on their own land nearby.&lt;br /&gt;
|-&lt;br /&gt;
|[[BigNum|BigNum Library (RSA Encryption)]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
|A BigNum Library for dealing with big numbers! Specialized for modular multiplication, and RSA encryption.&lt;br /&gt;
|-&lt;br /&gt;
|[[Binary Clock v1.1|Binary Clock]]&lt;br /&gt;
|{{User|Fox Diller}}&lt;br /&gt;
|A Binary Clock.&lt;br /&gt;
|-&lt;br /&gt;
|[[BinaryDecimalConverter]]&lt;br /&gt;
|{{User2|Soundless Smalls}}&lt;br /&gt;
|Converts a binary value to a decimal value and vice versa.&lt;br /&gt;
|-&lt;br /&gt;
|[[Blacklist and Remote Kill|Blacklist and Remote Kill]]&lt;br /&gt;
|{{User|Chase Quinnell}}&lt;br /&gt;
|Blacklist(denial of use) or a creator kill script(can delete someone&#039;s item by command on private channel)&lt;br /&gt;
|-&lt;br /&gt;
|[[User_talk:Rolig_Loon/Bookmark_URLs|Bookmark URLs]]&lt;br /&gt;
|{{User|Rolig Loon}}&lt;br /&gt;
|Dialog driven HUD reads bookmarked URLs from notecards and navigates directly to them with user&#039;s in-world browser.&lt;br /&gt;
|-&lt;br /&gt;
|[[Bubble Gum]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A script to create a bubble gum effect with sounds and animations.&lt;br /&gt;
|-&lt;br /&gt;
|[[Bubble Trapper]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A script that rezzes a bubble and surrounds a dialog-chosen avatar, exploding 2 seconds after it has reached the avatar. The article also explains how to hash a name to a number or a key to a number and thereby avoiding to block the rezzer&#039;s [[timer]] [[event]] or using [[llRegionSay]].&lt;br /&gt;
|-&lt;br /&gt;
|[[Builders Buddy|Builder&#039;s Buddy Tool]]&lt;br /&gt;
|{{User|Newfie Pendragon}}&lt;br /&gt;
|Script to easily move/rotate large builds that exceed the linkable size [[limits]].&lt;br /&gt;
|-&lt;br /&gt;
|[[Button Click Detector]]&lt;br /&gt;
|{{User2|Sendao Goodman}}&lt;br /&gt;
|Use [[llDetectedTouchUV]] to determine which button was pressed on a texture.&lt;br /&gt;
|-&lt;br /&gt;
|[[Camera following prim]]&lt;br /&gt;
|{{User|Dale Innis}}&lt;br /&gt;
|Pair of scripts to make a prim follow your camera position around (for lights etc).&lt;br /&gt;
|-&lt;br /&gt;
|[[Camera Sync]]&lt;br /&gt;
|{{User|Meyermagic Salome}} and {{User2|Nomad Padar}}&lt;br /&gt;
|A system to synchronize the cameras of two avatars.&lt;br /&gt;
|-&lt;br /&gt;
|[[Chatbot]]&lt;br /&gt;
|Anonymous&lt;br /&gt;
|Compile and run the LSL you type on a channel, faster than you can thru the 2007-08 SL GUI.&lt;br /&gt;
|-&lt;br /&gt;
|[[Chat Logger (GPL)]]&lt;br /&gt;
|{{User|Nobody Fugazi}}&lt;br /&gt;
|Chat logger which requests permission from participants before recording them.&lt;br /&gt;
|-&lt;br /&gt;
|[[Chat_Relay|Chat Relay]]&lt;br /&gt;
|{{User|grumble Loudon}}&lt;br /&gt;
|A Chat relay which can be routed using a path header and won&#039;t echo.&lt;br /&gt;
|-&lt;br /&gt;
|[[ClickAndDrag]]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
| Click and Drag user interface elements using dynamic feedback&lt;br /&gt;
|-&lt;br /&gt;
|[[Code Racer]]&lt;br /&gt;
|Anonymous&lt;br /&gt;
|Race two versions of code forever, to see which runs faster.&lt;br /&gt;
|-&lt;br /&gt;
|[[Code Sizer]]&lt;br /&gt;
|Anonymous&lt;br /&gt;
|Count the bytes compiled from source code, to measure how to write small code.&lt;br /&gt;
|-&lt;br /&gt;
|[[Collision message sender]]&lt;br /&gt;
|{{User2|Taff Nouvelle}}&lt;br /&gt;
|Give a message to an avatar on collision if the message has not been sent in the last 10 minutes.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Programs#v7-D_Enh._Color_Picker|Color Changer]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|Dialog driven color changer. Supports 16million+ colors, web color codes, multiple targeted prims, with save and recall.&lt;br /&gt;
|-&lt;br /&gt;
|[[Color Changer|Color Changer Plus]]&lt;br /&gt;
|{{User2|Neo Calcutt}}&lt;br /&gt;
|A color changer with 14 colors, a random function, and a custom vector function.&lt;br /&gt;
|-&lt;br /&gt;
|[[Color conversion scripts|Color Conversion]]&lt;br /&gt;
|{{User|Sally LaSalle}}&lt;br /&gt;
|Convert between Red Green Blue (RGB) and Hue Saturation Value (HSV).&lt;br /&gt;
|-&lt;br /&gt;
|[[ColorConvert]]&lt;br /&gt;
|{{User|Siann Beck}}&lt;br /&gt;
|Convert color values to vector from RGB, hex or HTML color name.&lt;br /&gt;
|-&lt;br /&gt;
|[[Color script]]&lt;br /&gt;
|{{User2|Masakazu Kojima}}&lt;br /&gt;
|Script for changing colors trough a listener with pre-defined colors.&lt;br /&gt;
|-&lt;br /&gt;
|[[Library Combined Library|Combined Library]]&lt;br /&gt;
|{{User|Strife Onizuka}}&lt;br /&gt;
|Library of mostly encoding and decoding functions, some more useful then others.&lt;br /&gt;
* String functions: Replace / Trim right / Trim left / Trim both&lt;br /&gt;
* Unicode conversion: UTF8 to Unicode / Unicode to UTF8&lt;br /&gt;
* List functions: Replace / Compare&lt;br /&gt;
|-&lt;br /&gt;
|[[Computer:jaycoonlanguage]]&lt;br /&gt;
|{{User|jayco121 Bing}}&lt;br /&gt;
| A language written in LSL that is meant for my computer (available at the shop).&lt;br /&gt;
|-&lt;br /&gt;
|[[Read Note Card Configuration|Configuration Notecard Reader]]&lt;br /&gt;
|{{User|Dedric Mauriac}}&lt;br /&gt;
|A script to read configuration information from a notecard. Parses notecard to extract key words and their assigned values. Allows for comment lines and many more useful features.&lt;br /&gt;
|-&lt;br /&gt;
|[[AdvancedNotecardReader|Configuration Notecard Reader (advanced)]]&lt;br /&gt;
|[[Lear Cale|Lear Cale]]&lt;br /&gt;
|Robust configuration notecard reader; supports multiple notecards with same suffix, handles reconfig on inventory change, and does not usurp the default state.&lt;br /&gt;
|-&lt;br /&gt;
|[[Library_Chat_Relay|Conversation Relay]]&lt;br /&gt;
|{{User|Jippen Faddoul}}&lt;br /&gt;
|Chat relay which requests permission from participants before relaying their messages. Also includes their attachments. (ToS compliant).&lt;br /&gt;
|-&lt;br /&gt;
|[[Curtain script]]&lt;br /&gt;
|{{User|Zilla Larsson}}&lt;br /&gt;
|A simple script to retract/stretch curtains, blinds, bedcovers and more&lt;br /&gt;
|-&lt;br /&gt;
|[[Library_Cycle_Dialog_Items|Cycle Dialog Items w/ Callback]]&lt;br /&gt;
|{{User|Hawkster Westmoreland}}&lt;br /&gt;
|A customizable way to cycle dialog items with pagination&lt;br /&gt;
|-&lt;br /&gt;
|[[Dataserver API]]&lt;br /&gt;
|{{User|Revolution Perenti}}&lt;br /&gt;
|Dataserver Framework for Notecards.&lt;br /&gt;
|-&lt;br /&gt;
|[[Date Library]]&lt;br /&gt;
|{{User|Corto Maltese}}&lt;br /&gt;
| Date library, based on number of day since march 3rd 1600, can be used to calculate weekday, date differences, and date offset, and date formating.&lt;br /&gt;
|-&lt;br /&gt;
|[[Day of the Week]]&lt;br /&gt;
|{{User|DoteDote Edison}}&lt;br /&gt;
|Function to get day of the week from [[llGetUnixTime]].&lt;br /&gt;
|-&lt;br /&gt;
|[[Days in Month]]&lt;br /&gt;
|{{User|IntLibber Brautigan}}&lt;br /&gt;
|Clicking on it returns the number of days in the present month. Useful for scripting calendars and tier systems that need to know the number of days in the month at hand or to calculate for any month. Even adjusts for leap years.&lt;br /&gt;
|-&lt;br /&gt;
|[[Deed Tools]]&lt;br /&gt;
|{{User|Falados Kapuskas}}&lt;br /&gt;
|Tools that allow the creator to modify Group-Owned (Deeded) Objects via chat.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Daemonika_Nightfire/Scripts/DEMO_Shield|DEMO_Shield]]&lt;br /&gt;
|{{User|Daemonika Nightfire}}&lt;br /&gt;
|With this script, it is impossible to use these scripts in copied (Copybot) object.&lt;br /&gt;
|-&lt;br /&gt;
|[[Describe Chatter]]&lt;br /&gt;
|Anonymous&lt;br /&gt;
|Chat to see yourself as others do.&lt;br /&gt;
|-&lt;br /&gt;
|[[Dialog Control]]&lt;br /&gt;
|{{User|Nargus Asturias}}&lt;br /&gt;
| A (not-so) simple dialog &amp;amp; menu control script. Call dialog and receive selected value via [[link_message]], with built-in timer and [[link_message]] notification on time out. Supports multi-pages dialog and numeric property dialog. Button text and dialog&#039;s returned value can differ.&lt;br /&gt;
Latest version also has [[Dialog Menus Control]] built-in; which allow multi-level menus through SL dialog system.&lt;br /&gt;
|-&lt;br /&gt;
|[[Dispenser Vendor]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
| A twist on [[Vendor]] that dispenses one object and then removes it from the list of objects.&lt;br /&gt;
|-&lt;br /&gt;
|[[MultiUser_Dialog_Handler|Dialog Menus (multiuser)]]&lt;br /&gt;
|{{User|SimonT Quinnell}}&lt;br /&gt;
| Menu dialog handler that supports multiple menus open at once from the single script. Displays multi-page menus if necessary as well as allowing for fixed header and footer buttons.  Timeouts as well as Text and button size limits are handled.&lt;br /&gt;
|-&lt;br /&gt;
|[[Dialog NumberPad|Dialog Number Pad]]&lt;br /&gt;
|{{User|DoteDote Edison}}&lt;br /&gt;
|Use a dialog to accept positive integer input from users.&lt;br /&gt;
|-&lt;br /&gt;
|[[Display Names Radar]]&lt;br /&gt;
|{{User|Cerise Sorbet}}&lt;br /&gt;
|Simple HUD type avatar radar that can show [[display names]] and script memory usage&lt;br /&gt;
|-&lt;br /&gt;
|[[Display Names to Key]]&lt;br /&gt;
|{{User|Joran Yoshikawa}}&lt;br /&gt;
|Simple way to get UUIDs from displaynames&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Daemonika_Nightfire/Scripts/DS_Display-Username_Online_Indicator|Display-Username_Online_Indicator]]&lt;br /&gt;
|{{User|Daemonika Nightfire}}&lt;br /&gt;
|This simple hover text-based script is used to shop owners in Second Life, customers at the current display name and user name to display publicly. Additionally shows the status of the Userkey and online. Furthermore, there are click of a chat link that opens the profile owner.&lt;br /&gt;
|-&lt;br /&gt;
|[[Displayer Script]]&lt;br /&gt;
|{{User|Akinori Kimagawa}}&lt;br /&gt;
|Display Words On Top Of An Object&lt;br /&gt;
|-&lt;br /&gt;
|[[Distributed Primitive Database]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|The distributed primitive database (DPD) is a database which is meant to survive entirely in SL by using redundancy, replication and time synchronisation to maintain the consistency of the dataset contained in the DPD node/primitives spread out between regions and even grids. Similarly to the [[Intercom]], the robustness of the theory would allow users to maintain a cross-grid database; as of 30 of August 2011 I have managed to couple and replicate data between the two grids by using the methodology described in the script article.&lt;br /&gt;
|-&lt;br /&gt;
|[[Drink script]]&lt;br /&gt;
|{{User|Emmas Seetan}}&lt;br /&gt;
|Used mainly for food and drink in Second Life.&lt;br /&gt;
|-&lt;br /&gt;
|[[Donut Dance]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|Err, a script that makes you dance and say something on the local chat once you attach an object (good example for conditional re-entry flipping).&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Daemonika_Nightfire/Scripts/DS_Single_AO-Sit|Single_AO-Sit]]&lt;br /&gt;
|{{User|Daemonika Nightfire}}&lt;br /&gt;
|Posescript for use with or without AO and with or without Animation. With the menu it is possible the seated Avatar to move.&lt;br /&gt;
|-&lt;br /&gt;
|[[TOXDropBox|DropBox]]&lt;br /&gt;
|{{User|Dimentox Travanti}}&lt;br /&gt;
| This is a Drop box which allows people to drop certain items in a object &amp;amp; has many config options.&lt;br /&gt;
|-&lt;br /&gt;
|[[Efficiency Tester]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
|Tests the speed of a function.&lt;br /&gt;
|-&lt;br /&gt;
|[[Email-to-IM|Email2IM]]&lt;br /&gt;
|{{User|DoteDote Edison}}&lt;br /&gt;
|Send IMs to SL friends via [[email]].&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Kireji_Haiku/SIMchat_headset|Encrypted Region-wide chat]]&lt;br /&gt;
|{{User|Kireji Haiku}}&lt;br /&gt;
|Encrypted Region-wide chat&lt;br /&gt;
|-&lt;br /&gt;
|[[ExplodingObjects]]&lt;br /&gt;
|{{User|Dale Innis}}&lt;br /&gt;
|Causes an object (of the appropriate type) to explode on command.&lt;br /&gt;
|-&lt;br /&gt;
|[[FadeEasy]]&lt;br /&gt;
|{{User2|Nika Rugani}}&lt;br /&gt;
|The easy way of fading objects in or out (Using llSetLinkAlpha)&lt;br /&gt;
|-&lt;br /&gt;
|[[FastConeSpread]]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
| Fast Algorithmn to achieve cone spread, main use in weaponry systems.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:PixelProphet Lane/Scripts#Fast List Prim Contents|Fast List Prim Contents]]&lt;br /&gt;
|{{User|PixelProphet Lane}}&lt;br /&gt;
|Fast and efficient method to print Object Inventory (Name, Type and next Owner permissions)&lt;br /&gt;
|-&lt;br /&gt;
|[[User:PixelProphet_Lane/Scripts#Grid_Status_Feed|Grid Status Feed]]&lt;br /&gt;
|{{User|PixelProphet Lane}}&lt;br /&gt;
|Receive important Grid information in-world&lt;br /&gt;
|-&lt;br /&gt;
|[[Find Avatar Key|Find Avatar Key]]&lt;br /&gt;
|{{User2|Huney Jewell}}&lt;br /&gt;
|Explores [[UUID]] of avatar whose name is said in local chat or who touches the prim.&lt;br /&gt;
|-&lt;br /&gt;
|[[First Name Letter Prize]]&lt;br /&gt;
|{{User|RaithSphere Whybrow}}&lt;br /&gt;
|Gives a prize if the person who sits on it&#039;s first letter of first name matches the random letter!&lt;br /&gt;
|-&lt;br /&gt;
|[[Fix Small Prims|Fix_Small_Prims]]&lt;br /&gt;
|{{User|Emma Nowhere}}&lt;br /&gt;
|Finds and adjusts the smallest prims in a linkset so that it can be scaled down further.&lt;br /&gt;
|-&lt;br /&gt;
|[[Flight Assist]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|Flight feather / flight band implementation supporting various commands and allowing you to fly above the clouds.&lt;br /&gt;
|-&lt;br /&gt;
|[[Float2Hex]]&lt;br /&gt;
|{{User|Strife Onizuka}}&lt;br /&gt;
|Very useful for transporting [[float|floats]].&lt;br /&gt;
|-&lt;br /&gt;
|[[Float Box Contents]]&lt;br /&gt;
|{{User|Rolig Loon}}&lt;br /&gt;
|Displays object inventory in hover text, identified by type and updated marquee-style.&lt;br /&gt;
|-&lt;br /&gt;
|[[Follower (script)|Follower]]&lt;br /&gt;
|Unknown, uploaded by {{User|Slik Swindlehurst}}&lt;br /&gt;
|Makes an object follow the nearest person. Do not use for [[grief|griefing]].&lt;br /&gt;
|-&lt;br /&gt;
|[[FURWARE_text]]&lt;br /&gt;
|{{User|Ochi Wolfe}}&lt;br /&gt;
|Versatile text-on-prim script, open source under the MIT license&lt;br /&gt;
|-&lt;br /&gt;
|[[GA Event Notifier]]&lt;br /&gt;
|{{User|Victor Hua}}&lt;br /&gt;
|Gathers seven days event data from a Google calendar and display it through a simple interface. The lsl script can access several calendars at once through seperate php files. One file per calendar. Host the included php on your own web server.&lt;br /&gt;
|-&lt;br /&gt;
|[[Geometric|Geometric Library]]&lt;br /&gt;
|Community Project&lt;br /&gt;
|A substantial amount of various geometric functions for intersection and other purposes of 3D maths.&lt;br /&gt;
|-&lt;br /&gt;
|[[Get Profile Picture]]&lt;br /&gt;
|{{User2|Valentine Foxdale}}&lt;br /&gt;
|Sets the texture of the object to profile picture of the person that touches ot&lt;br /&gt;
|-&lt;br /&gt;
|[[GetTimestampOffset]]&lt;br /&gt;
|[[User:Siann_Beck|Siann Beck]]&lt;br /&gt;
|Returns [[llGetTimestamp]] with an hour offset.&lt;br /&gt;
|-&lt;br /&gt;
|[[Give InvItem every n hours]]&lt;br /&gt;
|{{User|Criz Collins}}&lt;br /&gt;
|Will give an inventory item on touch only every n hours, even if somebody touches the object more than once.&lt;br /&gt;
|-&lt;br /&gt;
|[[Give random object]]&lt;br /&gt;
|{{User|Emmas Seetan}}&lt;br /&gt;
|Touch to receive a random object in the prim&#039;s inventory&lt;br /&gt;
|-&lt;br /&gt;
|[[Giver]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A menu-driven script that will hand out the objects in a prim. Supports multiple pages.&lt;br /&gt;
|-&lt;br /&gt;
|[[Google Charts]]&lt;br /&gt;
|{{User|Dedric Mauriac}}&lt;br /&gt;
|Create links to display raw data as a chart image.&lt;br /&gt;
|-&lt;br /&gt;
|[[Google_Translator]]&lt;br /&gt;
|{{User|Ugleh Ulrik}}&lt;br /&gt;
|Translates spanish to english, and its simple to make it any other way.&lt;br /&gt;
|-&lt;br /&gt;
|[[Go transparent when walking]]&lt;br /&gt;
|{{User|Emmas Seetan}}&lt;br /&gt;
|An attachment that goes invisible when you walk and visible when you don&#039;t walk.&lt;br /&gt;
|-&lt;br /&gt;
|[[Great Wanderer]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A movement system based on [[Wizardry and Steamworks|State Machines]] which provides free roaming.&lt;br /&gt;
|-&lt;br /&gt;
|[[Greeter]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A multi-purpose greeter with multiple options (IM, landmark, notecard, URL, visitor statistics, shared access and compatible with the [[Mail]] system) that could work for shops, clubs, galleries and any other public place.&lt;br /&gt;
|-&lt;br /&gt;
|[[Group Authorization]]&lt;br /&gt;
|{{User|Chase Quinnell}}&lt;br /&gt;
|Checks to see if object is set to appropriate group (checks by [[Group key finder|group key]])&lt;br /&gt;
|-&lt;br /&gt;
|[[Group key finder]]&lt;br /&gt;
|{{User|Emmas Seetan}}&lt;br /&gt;
|Touch to find the key of the group&lt;br /&gt;
|-&lt;br /&gt;
|[[Group Privacy]]&lt;br /&gt;
|{{User|Chance Unknown}}&lt;br /&gt;
|Security device to insure members of a group can have a private area. Deactivates when nobody present.&lt;br /&gt;
|-&lt;br /&gt;
|[[Hello Avatar]]&lt;br /&gt;
|Linden Lab&lt;br /&gt;
|SL&#039;s default script.&lt;br /&gt;
|-&lt;br /&gt;
|[[Hello Avatar Companion]]&lt;br /&gt;
|[[Chase Quinnell]]&lt;br /&gt;
|Companion to the original [[Hello Avatar]] script&lt;br /&gt;
|-&lt;br /&gt;
|[[Hierarchics]]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
| Advanced script to create an efficient self-aware hierarchic structure.&lt;br /&gt;
|-&lt;br /&gt;
|[[Hierarchics2]]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
| Second generation, one script per object. Only two functions, can be embedded in others. Uses the new [[llSetLinkPrimitiveParamsFast]]/[[llGetLinkPrimitiveParams]] functions.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Rolig_Loon/High-Capacity_Greeter-Counter|High-Capacity Greeter-Counter]]&lt;br /&gt;
|{{User|Rolig Loon}}&lt;br /&gt;
|Uses a memory compression algorithm to store hashed visitor UUID&#039;s in a string instead of using a list.&lt;br /&gt;
|-&lt;br /&gt;
|[[Holodeck]]&lt;br /&gt;
|{{User|Revolution Perenti}}&lt;br /&gt;
|Home Rezzing System.&lt;br /&gt;
|-&lt;br /&gt;
|[[HUD Dots Radar]]&lt;br /&gt;
|[[User:Cerise Sorbet|Cerise]]&lt;br /&gt;
|HUD target example, draws dots on the HUD over avatars in view.&lt;br /&gt;
|-&lt;br /&gt;
|[[I Got It]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|Educational tool to provide feedback from students.&lt;br /&gt;
|-&lt;br /&gt;
|[[Intercom|Intercom]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A system allowing region-wide and grid-wide (as of 30 of August 2011, it also works grid-wide, a test was performed by linking up the chat between the OSGrid and SecondLife) mass chat relay. By using this you can relay a main chat across multiple regions or grids. The script was initially meant as a mid-way project in order to test and gather information for the [[Distributed Primitive Database]].&lt;br /&gt;
|-&lt;br /&gt;
|[[Interpolation|Interpolation Library]]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
|A small set of interpolation functions.&lt;br /&gt;
|-&lt;br /&gt;
|[[Intra-Region Update Server]]&lt;br /&gt;
|[[User:Emma_Nowhere|Emma Nowhere]]&lt;br /&gt;
|Centrally update objects such as Freeview screens or teleport pads within a region that are configured by notecards or contain modifiable objects or media assets.&lt;br /&gt;
|-&lt;br /&gt;
|[[Inventory_Based_Menu]]&lt;br /&gt;
|{{User|Revolution Perenti}}&lt;br /&gt;
|Inventory Based Menu System.&lt;br /&gt;
|-&lt;br /&gt;
|[[iTunes RPC Email|iTunes RPC]]&lt;br /&gt;
|{{User|Fox Diller}}&lt;br /&gt;
|iTunes RPC via LSL [[llEmail]] and [[llRemoteDataReply]].&lt;br /&gt;
|-&lt;br /&gt;
|[[Jingle]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A script that will make a primitive emit a sound when you wear it and walk around. Ideal for bells, footsteps and so on...&lt;br /&gt;
|-&lt;br /&gt;
|[[Key Frame Animator|Keyframe Animator]]&lt;br /&gt;
|{{User|Jasper Flossberg}}&lt;br /&gt;
| This is a KeyFrame Animator Script to simplify construction of keyframed animations.&lt;br /&gt;
|-&lt;br /&gt;
|[[Key Pad Door|Keypad Door]]&lt;br /&gt;
|{{User|Tdub Dowler}}&lt;br /&gt;
| Door and keypad with changeable code. Follow instructions carefully!&lt;br /&gt;
|-&lt;br /&gt;
|[[Key2Name]]&lt;br /&gt;
|{{User2|Nika Rugani}}&lt;br /&gt;
| Key2Name service where a user no longer needs to be in the same region to get users name&lt;br /&gt;
|-&lt;br /&gt;
|[[Kilt Editor|Kilt / Skirt Editor]]&lt;br /&gt;
|{{User|Brangus Weir}}&lt;br /&gt;
| This changes all the parameters of all the flexis in the link set in one swell foop!&lt;br /&gt;
|-&lt;br /&gt;
|[[Kira Warp Core Drive]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|Scripts and instructions on how to create a vehicle that teleports an avatar and a vehicle to any region on the grid. You can [http://www.youtube.com/watch?v=xQkBRD7HBvw watch the YouTube video showing the prototype] I created to demonstrate how it works.&lt;br /&gt;
|-&lt;br /&gt;
|[[Last Sound System]]&lt;br /&gt;
|Babbage Linden&lt;br /&gt;
|An LSL [http://Last.fm Last.fm] client.&lt;br /&gt;
|-&lt;br /&gt;
|[[LibraryDisplayLandScreenshot]]&lt;br /&gt;
|{{User|Jon Desmoulins}}&lt;br /&gt;
|A modified version of LibraryDisplayProfilePic using the new [[PARCEL_DETAILS_ID]] Implemented in Server v1.36&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Daemonika_Nightfire/Scripts/LinkNumber-List_in_llSetLinkPrimitiveParamsFast|LinkNumber-List_in_llSetLinkPrimitiveParamsFast]]&lt;br /&gt;
|{{User|Daemonika Nightfire}}&lt;br /&gt;
|Changed several prims in linkset with the same parameters, with a list. Without separate llSetLinkPrimitiveParams for each prim. (ideal for show/hide effects)&lt;br /&gt;
|-&lt;br /&gt;
|[[Limit Vendor]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|This is a vendor supporting any number of items with different prices which will only dispense a certain number of individual items by setting limits for each item based on a notecard configuration.&lt;br /&gt;
|-&lt;br /&gt;
|[[Linkset resizer]]&lt;br /&gt;
|Maestro Linden&lt;br /&gt;
|Systematically rescales a linkset by moving and resizing each prim (by using [[llGetLinkPrimitiveParams]] and [[llSetLinkPrimitiveParamsFast]])&lt;br /&gt;
|-&lt;br /&gt;
|[[Linkset resizer with menu]]&lt;br /&gt;
|{{User|Brilliant Scientist}}&lt;br /&gt;
|A menu-driven script that rescales a linkset by moving and resizing the prims using [[llGetLinkPrimitiveParams]] and [[llSetLinkPrimitiveParamsFast]] functions. Based on [[Linkset resizer]].&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Daemonika_Nightfire/Scripts/*DS*_Resize_Script|Resize Script (m/c/t) v2.0.01]]&lt;br /&gt;
|{{User|Daemonika Nightfire}}&lt;br /&gt;
|Single resize script for a complete linkset with save and restore option.&lt;br /&gt;
|-&lt;br /&gt;
|[[Pointing Stick]]&lt;br /&gt;
|{{User|rhonin Nissondorf}}&lt;br /&gt;
|A device that takes controls of your arrow keys and directs the device in the relative direction its pointing, forward and back of course.&lt;br /&gt;
|-&lt;br /&gt;
|[[Gun Script]]&lt;br /&gt;
|[[User:rhonin Nissondorf| rhonin Nissondorf]]&lt;br /&gt;
|Shoots out &amp;quot;ammo&amp;quot; from the root prim of your &amp;quot;gun&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|[[Grenade Script]]&lt;br /&gt;
|[[User:rhonin Nissondorf| rhonin Nissondorf]]&lt;br /&gt;
|Uses a timed factor to add influence to the velocity of a throw object.&lt;br /&gt;
|-&lt;br /&gt;
|[[Linkset Resizer 2]]&lt;br /&gt;
|{{User|Emma Nowhere}}&lt;br /&gt;
|A more user-friendly resizer script designed for either drop-in use by the end-user or builder or for use in products. Based on [[Fix Small Prims]].&lt;br /&gt;
|-&lt;br /&gt;
|[[List2CSV]]&lt;br /&gt;
|{{User|Kunnis Basiat}}&lt;br /&gt;
|Similar to [[llList2CSV]] &amp;amp; [[llCSV2List]] which includes preserving type and escaping characters.&lt;br /&gt;
|-&lt;br /&gt;
|[[list_cast]]&lt;br /&gt;
|{{User2|Fractured Crystal}}&lt;br /&gt;
|Casts a list of strings into the type they appear to be. Designed for preprocessing user input for feeding into [[llSetPrimitiveParams]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Listener Script]]&lt;br /&gt;
|{{User|Emmas Seetan}}&lt;br /&gt;
|Use to [[listen]] to other people&#039;s conversations (Like spying)&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Functions#List:_Find_Last_Index|List: Find Last Index]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|Returns the last index of searched item in a source list. (backwards version of [[llListFindList]])&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Functions#List:_Multi-Find_Index_.28First_or_Last.29|List: Multi Find]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|Returns the first found index of multiple search items in a list. (Multi-item version of [[llListFindList]]. Fwd and Rev versions included)&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Functions#List:_Get_Reverse_Order|List: Reverse]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|Returns an input List in reverse order&lt;br /&gt;
|-&lt;br /&gt;
|[[LinksetIndexing]]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
|Functions for indexing a linkset by patterns or names down to their linkset numbers.&lt;br /&gt;
|-&lt;br /&gt;
|[[llGetAgentList Sim-Wide Radar]]&lt;br /&gt;
|{{User|Tiaeld Tolsen}}&lt;br /&gt;
|Simple radar implementation using the new [[llGetAgentList]] LSL Function.&lt;br /&gt;
|-&lt;br /&gt;
|[[Live Event Timeout]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A script which will set the the music URL back to a radio station of your liking when a DJ leaves or forgets to switch back the URL after a live event. It takes multiple DJs, using a notecard and several configuration parameters.&lt;br /&gt;
|-&lt;br /&gt;
|[[Load URL]]&lt;br /&gt;
|{{User|Emmas Seetan}}&lt;br /&gt;
|Touch to get a dialog to visit the URL inside the script.&lt;br /&gt;
|-&lt;br /&gt;
|[[LOGO Turtle]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A script that interprets basic LOGO commands, extending the directions to 3D.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Kephra_Nurmi/lsDancemachine|lsDancemachine]]&lt;br /&gt;
|[[User:Kephra_Nurmi|Kephra Nurmi]]&lt;br /&gt;
| Low lag client server dancemachine.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Kephra_Nurmi/lsDeejay|lsDeejay Home Edition]]&lt;br /&gt;
|[[User:Kephra_Nurmi|Kephra Nurmi]]&lt;br /&gt;
| Client server media control for music, video, youtube, pictures, and texture animations.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Kephra_Nurmi/lsDialog|lsDialog]]&lt;br /&gt;
|[[User:Kephra_Nurmi|Kephra Nurmi]]&lt;br /&gt;
| Universal notecard driven menu dialog system.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Kephra_Nurmi/lsDisplay|lsDisplay]]&lt;br /&gt;
|[[User:Kephra_Nurmi|Kephra Nurmi]]&lt;br /&gt;
| Picture cycler with preloader.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Kephra_Nurmi/lsDistributor|lsDistributor]]&lt;br /&gt;
|[[User:Kephra_Nurmi|Kephra Nurmi]]&lt;br /&gt;
| Simple &#039;try&#039; and &#039;buy&#039; vendor system.&lt;br /&gt;
|-&lt;br /&gt;
|[[Wizardry_and_Steamworks/LSL|LSL FUSS]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|FUSS (Frequently Used Short Snippets) is an collection of short snippets provided by [[Wizardry and Steamworks]]. They range from functions to one-liners and are provided for LSL developers.&lt;br /&gt;
|-&lt;br /&gt;
|[[LSL_languageAPI]]&lt;br /&gt;
|{{User|Gypsy Paz}}&lt;br /&gt;
|Multi-lingual API from notecard based language files&lt;br /&gt;
|-&lt;br /&gt;
|[[Mail]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|An system for sending objects to multiple recipients automatically supporting shared access and [[Greeter]] compatible auto-subscriptions.&lt;br /&gt;
|-&lt;br /&gt;
|[[Mandelbrot Explorer]]&lt;br /&gt;
|Babbage Linden&lt;br /&gt;
|An interactive fractal explorer.&lt;br /&gt;
|-&lt;br /&gt;
|[[Materialization Effects]]&lt;br /&gt;
|{{User|Overbrain Unplugged}}&lt;br /&gt;
| Special effects to add to rezzing events to simulate a teleportation or materialization.&lt;br /&gt;
|-&lt;br /&gt;
|[[Materialization Effects 2]]&lt;br /&gt;
|{{User2|Nika Rugani}}&lt;br /&gt;
| More efficient and faster version of Materialization Effects by Overbrain Unplugged.&lt;br /&gt;
|-&lt;br /&gt;
|[[Memory Module]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|An example of pseudo-persistent variable in-world storage.&lt;br /&gt;
|-&lt;br /&gt;
|[[Merge Sort]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
|Implements a Merge Sort in LSL, however this code is 300(ish) times slower than [[llListSort]]. Don&#039;t use this in a script!&lt;br /&gt;
|-&lt;br /&gt;
|[[Minesweeper]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
|A simple minesweeper game.&lt;br /&gt;
|-&lt;br /&gt;
|[[Mood Color Changer]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A script that changes the color of all primitives in a linkset depending on the smileys the owner types on the main chat.&lt;br /&gt;
|-&lt;br /&gt;
|[[Morse Code]]&lt;br /&gt;
|{{User|Bobbyb30 Swashbuckler}}&lt;br /&gt;
|A script that allows for the conversion to and from morse code and can &amp;quot;play&amp;quot; morse code.&lt;br /&gt;
|-&lt;br /&gt;
|[[Multi-displays Texture Cycler]]&lt;br /&gt;
|{{User|Nargus Asturias}}&lt;br /&gt;
|A simple texture rotator designed for multiple display screens. With delay between each screen AND delay between each loop.&lt;br /&gt;
|-&lt;br /&gt;
|[[Multi Item Rezzer|Multi Item Rezzer]]&lt;br /&gt;
|{{User|Jesse Barnett}}&lt;br /&gt;
|A rework of my old High Altitude Rezzer. Place the objects that you wish to choose from to be rezzed inside. Sit on the rezzer and pick the item and the height. It will go to target height and rez the object.&lt;br /&gt;
|-&lt;br /&gt;
|[[Multirezzer|Multirezzer (on collision)]]&lt;br /&gt;
|{{User2|Beet Streeter}}&lt;br /&gt;
|Spawns up to 10 objects when the object containing the script collides with a user.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Allen_Kerensky/Myriad_Lite_Preview_5|Myriad Lite Preview 5 RPG System]]&lt;br /&gt;
|[[User:Allen_Kerensky|Allen Kerensky]]&lt;br /&gt;
|Working preview of the Myriad Universal RPG System by Ashok Desai, converted to LSL as a roleplay meter with quest NPC and goals, hand-to-hand and melee close combat, ranged combat, armor, healing, bullet, firearm, holster, practice target, and much more&lt;br /&gt;
|-&lt;br /&gt;
|[[N2K]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A Name To Key (Name2Key) implementation that does not use third-party databases, nor relies on the uptime of not well known websites but rather uses the World Wide Web Consortium to fetch the key of avatars while trying to alert the developers of the consequences of using Name2Key third-party providers as well as trying to refrain from sales pitch terminology such as &amp;quot;best&amp;quot;, &amp;quot;newest&amp;quot; and &amp;quot;fastest&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|[[Name2Key in LSL]]&lt;br /&gt;
|{{User|Maeva Anatine}}&lt;br /&gt;
|Get the Name2Key feature inside your scripts. Works even on lastly subscribed avatars.&lt;br /&gt;
|-&lt;br /&gt;
|[[Name2Key]]&lt;br /&gt;
|{{User2|Nika Rugani}}&lt;br /&gt;
|Newest and fastest Name2Key search, While the database is small it is also connected to Second Life&#039;s search.&lt;br /&gt;
|-&lt;br /&gt;
|[[NexiiText]]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
| Text Renderer, specialised in features, performance and a compact nature. It features unique per character control, such as Colour, Bold, Italics, Underline, Stroke, Icons. The high performance means it comes in at a 5 char / prim ratio, but it is perfect where highly dynamic and rich text is required.&lt;br /&gt;
|-&lt;br /&gt;
|[[NexiiText2]]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
| Second Gen Text Renderer. Same as above but features use of [[PRIM_LINK_TARGET]] and an awesome dynamic prim allocation architecture.&lt;br /&gt;
|-&lt;br /&gt;
|[[No Auto-Return]]&lt;br /&gt;
|{{User|Bellla Clarity}}&lt;br /&gt;
|To stop your long and hard builds from getting returned in sandboxes (&#039;&#039;only single prims, though!&#039;&#039;).&lt;br /&gt;
|-&lt;br /&gt;
|[[No Auto-Return NR]]&lt;br /&gt;
|{{User|Jor3l Boa}}&lt;br /&gt;
|This really works (29-05-09), needs a nearby region to do the trick and avoid auto return. (Tested on Blue and Rausch)&lt;br /&gt;
|-&lt;br /&gt;
|[[No Auto-Return (Multi)]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
|A revision of Bella&#039;s that works for multi-prim objects.&lt;br /&gt;
|-&lt;br /&gt;
|[[No Limit Teleporter]]&lt;br /&gt;
|{{User|Morgam Biedermann}}&lt;br /&gt;
|Teleport to infinite altitudes (up to 4096m)&lt;br /&gt;
|-&lt;br /&gt;
|[[Object Size]]&lt;br /&gt;
|{{User|Chase Quinnell}}&lt;br /&gt;
|Gets the dimensions and footprint of a linkset&lt;br /&gt;
|-&lt;br /&gt;
|[[Object to Data v1.4|Object to Data]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
|Turns an object into text (and back). Allows people to transfer objects through notecards (or otherwise).&lt;br /&gt;
|-&lt;br /&gt;
|[[Online Indicator|Online Indicator]]&lt;br /&gt;
|{{User|Kristy Fanshaw}}&lt;br /&gt;
|Will show if the user is online or not. Displays users profile picture and allows to send IM&#039;s to user. Also gives a link to open the users profile&lt;br /&gt;
|-&lt;br /&gt;
|[[Open Group Join]]&lt;br /&gt;
|{{User|Alicia Stella}}&lt;br /&gt;
|User Touches Object to Join Group from Group Info window, (no bot.)&lt;br /&gt;
|-&lt;br /&gt;
|[[Open Prim Animator]]&lt;br /&gt;
|{{User|Todd Borst}}&lt;br /&gt;
|Single script prim animation tool.  Menu driven, easy to use.&lt;br /&gt;
|-&lt;br /&gt;
|[[Open Zyngo Skin Installer]]&lt;br /&gt;
|{{User2|Tmzasz Luminos}}&lt;br /&gt;
|A Simple Script designed to install skins on the popular Skill machines.&lt;br /&gt;
|-&lt;br /&gt;
|[[Orbitor]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|Based on [[Wanderer]], we create [[Orbitor]] which allows a primitive to orbit around an origin point.&lt;br /&gt;
|-&lt;br /&gt;
|[[One Script, many doors]]&lt;br /&gt;
|{{User|Kyrah Abattoir}}&lt;br /&gt;
|Door script able to manage more than 50 linked doors from a single script instance.&lt;br /&gt;
|-&lt;br /&gt;
|[[ParseString2List]]&lt;br /&gt;
|{{User|Strife Onizuka}}&lt;br /&gt;
|Same as [[llParseString2List]] and [[llParseStringKeepNulls]], but not limited to 8 spacers or separators. Thus substitute a call to the [[llParseString2List]] and [[llParseStringKeepNulls]] functions by a call to [[Parse_String_To_List|ParseString2List]] whenever you have more than 8 separators or more than 8 spacers.&lt;br /&gt;
|-&lt;br /&gt;
|[[Password Generator]]&lt;br /&gt;
|{{User2|Syntrax Canucci}}&lt;br /&gt;
|This is an over-complicated, semi-complex password generator, which goes through multiple steps.&lt;br /&gt;
|-&lt;br /&gt;
|[[Pathfinder]]&lt;br /&gt;
|Babbage Linden&lt;br /&gt;
|A potential field based pathfinding library.&lt;br /&gt;
|-&lt;br /&gt;
|[[Pay to Strip]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|This script is mainly meant for dancers and uses RLV to allow people to strip an avatar by making every clothes and attachment piece removable, respectively detachable for a settable price.&lt;br /&gt;
|-&lt;br /&gt;
|[[Permanent Primitive URL]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A script that uses [http://tiny.cc http://tiny.cc] REST API to update a SIM URL and make it permanent. Full description on how to register and set up a &amp;quot;nice&amp;quot; URL, like: http://tiny.cc/Kira. Should work with most URL shortening services (I&#039;m not affiliated with tiny.cc except for having a pass at them for not allowing OpenSIM-style generated URLs).&lt;br /&gt;
|-&lt;br /&gt;
|[[Personal ATM Machine]]&lt;br /&gt;
|{{User|Jessikiti Nikitin}}&lt;br /&gt;
|Allows deposits and withdrawals into another of your accounts, without the account being logged in.&lt;br /&gt;
|-&lt;br /&gt;
|[[Phantom Child]]&lt;br /&gt;
|{{User|Aeron Kohime}}&lt;br /&gt;
|Causes a child in a link set to become phantom without the entire object becoming phantom.&lt;br /&gt;
|-&lt;br /&gt;
|[[PHP_RegionFunctions]]&lt;br /&gt;
|{{User|Gypsy Paz}} and {{User2|Zayne Exonar}}&lt;br /&gt;
|Three useful PHP functions to get region info&lt;br /&gt;
|-&lt;br /&gt;
|[[PhysicsLib]]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
| Interesting set of fun physics functions.&lt;br /&gt;
|-&lt;br /&gt;
|[[Planar Tile Generator]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A script to generate perfectly aligned tiles.&lt;br /&gt;
|-&lt;br /&gt;
|[[Play and Loop Sound]]&lt;br /&gt;
|{{User|Bellla Clarity}}&lt;br /&gt;
|Very short and simple script; plays and loops a sound in an object.&lt;br /&gt;
|-&lt;br /&gt;
|[[Posing stand|Posing Stand]]&lt;br /&gt;
|{{User|Bellla Clarity}}&lt;br /&gt;
|Just a pose script to edit [[attachments]] more easily.&lt;br /&gt;
|-&lt;br /&gt;
|[[PosJump]]&lt;br /&gt;
|{{User|Uchi Desmoulins}}&lt;br /&gt;
|A much more efficient alternative to the popular [[warpPos]] function for bypassing 10m distance-moved limitations.&lt;br /&gt;
|-&lt;br /&gt;
|[[Puppeteer]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A simple puppeteer script that will allow you to record and animate prim movements and rotations.&lt;br /&gt;
|-&lt;br /&gt;
|[[Primitive Name Changer]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
| A script that changes the primitive&#039;s name based on an user-configurable interval and a notecard list containing possible names.&lt;br /&gt;
|-&lt;br /&gt;
|[[Prefix Calculator]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
| A calculator that evaluates expressions in prefix notation.&lt;br /&gt;
&amp;lt;code&amp;gt;+ 3 4 = 5. * + 1 2 + 3 4 = 14.&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[Profile Generator]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A cynical script for generating boilerplate profiles by based on cliches and profile memes.&lt;br /&gt;
|-&lt;br /&gt;
|[[Profile Picture]]&lt;br /&gt;
|[[User: Jor3l Boa|Jor3l Boa]]&lt;br /&gt;
|A working profile picture script with the new SecondLife API (1/11/2011)&lt;br /&gt;
|-&lt;br /&gt;
|[[Progress Bar]]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
| Flexible and powerful little function for creating progress bars useful in hovertext.&lt;br /&gt;
|-&lt;br /&gt;
|[[Pseudo-random Number Generator]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
|Generates a Pseudo-random number between -0x7FFFFFFF and 0x7FFFFFFF&lt;br /&gt;
|-&lt;br /&gt;
|[[Quick Collar]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A simple, no-bulk, no external database and essential feature-packed RLV collar script for your pleasures.&lt;br /&gt;
|-&lt;br /&gt;
|[[Quicksort]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|LSL implementation of the Quicksort algorithm.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Rolig_Loon/Quiz_From_Notecard|Quiz From Notecard]]&lt;br /&gt;
|{{User|Rolig Loon}}&lt;br /&gt;
|A multiple-choice testing script that reads questions and answer choices from a notecard and presents them in dialog boxes.&lt;br /&gt;
|-&lt;br /&gt;
|[[Racter]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|In-world, multi-purpose chatterbot (Eliza/A.L.I.C.E. inspired) supporting multiple configurable hot-swappable brain-files with a wide range of applications.&lt;br /&gt;
|-&lt;br /&gt;
|[[Rainbow_palette]]&lt;br /&gt;
|{{User|Rui Clary}}&lt;br /&gt;
|Build a color picker, using only one prim, and a few lines of code.&lt;br /&gt;
|-&lt;br /&gt;
|[[Random Gaussian Number Generator]]&lt;br /&gt;
|{{User2|Vlad Davidson}}&lt;br /&gt;
|Generates a random number drawn from a normal (Gaussian; bell-curve) distribution, based on a specified mean/stdev&lt;br /&gt;
|-&lt;br /&gt;
|[[Random AV Profile Projector]]&lt;br /&gt;
|{{User|Debbie Trilling}}&lt;br /&gt;
|Randomly selects an AV from a crowd &amp;amp; then projects their profile picture as a &#039;holographic&#039; image&lt;br /&gt;
|-&lt;br /&gt;
|[[Random Object Vendor]]&lt;br /&gt;
|{{User|CodeBastard Redgrave}}&lt;br /&gt;
|Simple vendor that gives out random objects when paid the right amount&lt;br /&gt;
|-&lt;br /&gt;
|[[Random Password Generator]]&lt;br /&gt;
|{{User|Jor3l Boa}}&lt;br /&gt;
|Generate Random passwords based on String Length.&lt;br /&gt;
|-&lt;br /&gt;
|[[RandomPrimParams]]&lt;br /&gt;
|{{User|Xintar Citron}}&lt;br /&gt;
|Simple script which randoms Prim Parameteres, in this example i used color, but you can use everything.&lt;br /&gt;
|-&lt;br /&gt;
|[[RavText]]&lt;br /&gt;
|{{User|Ravenous Dingo}}&lt;br /&gt;
|An alternate to XyText.  This is a lightweight, multiple font 10 character text display system.  It only supports uppercase alphanumeric text and a few special characters, but it is very fast, renders quickly and supports multiple fonts. It is meant for specialized use when all that is desired is basic, fast text display and the extra &amp;quot;bells and whistles&amp;quot; are not needed.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:PixelProphet Lane/Scripts#Real Object Inventory To Dialog|Real Object Inventory To Dialog]]&lt;br /&gt;
|{{User|PixelProphet Lane}}&lt;br /&gt;
|Display any amount of items contained in an Object in a Dialog, regardless of item name length.&lt;br /&gt;
|-&lt;br /&gt;
|[[RentalBoxv1|Rental Box, Simply]]&lt;br /&gt;
|{{User2|Sendao Goodman}}&lt;br /&gt;
|Simple explanation of how to make rental boxes.&lt;br /&gt;
|-&lt;br /&gt;
|[[Rental Cube]]&lt;br /&gt;
|{{User|Hank Ramos}}&lt;br /&gt;
|Simple cube for renting out a space.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Daemonika_Nightfire/Scripts/*DS*_Rental-Cube|Rental-Cube]]&lt;br /&gt;
|{{User|Daemonika Nightfire}}&lt;br /&gt;
|This is an Open-Source version of a Rental-Cube from Daemonika Nightfire. Just copy/paste this script into a inworld lsl-script and add one notecard called Info/Rules to the content of your cube.&lt;br /&gt;
|-&lt;br /&gt;
|[[Remote Texture Loader]]&lt;br /&gt;
|{{User|Bobbyb30 Swashbuckler}}&lt;br /&gt;
|A set of scripts for remotely loading textures within a sim. This means that a single &amp;quot;texture server&amp;quot; can manage multiple changing billboards within a sim.&lt;br /&gt;
|-&lt;br /&gt;
|[[Say Region Frames Per Second|Region Frames Per Second]]&lt;br /&gt;
|{{User2|Heymeriou Mystakidou}}&lt;br /&gt;
| Says the region name and frames per second out loud on command.&lt;br /&gt;
|-&lt;br /&gt;
|[[Security Orb|Security Orb]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A regular security orb that ejects people from a land parcel supporting a menu configuration and a notecard based access list.&lt;br /&gt;
|-&lt;br /&gt;
|[[Resizer multi-prims|Resizer multi-prims]]&lt;br /&gt;
|{{User2|Christy Mansbridge}}&lt;br /&gt;
|1 Mono script to resize object (1 to 256 prims) by blue menu. Avoid risk to break the build by increasing link distance.&lt;br /&gt;
|-&lt;br /&gt;
|[[RLV Collision Grabber]]&lt;br /&gt;
|[[User:Vala_Vella|Vala Vella]]&lt;br /&gt;
|Grab people colliding with the object and sit them on a set target using RLV&lt;br /&gt;
|-&lt;br /&gt;
|[[sbDialog]]&lt;br /&gt;
|[[User:Siann_Beck|Siann Beck]]&lt;br /&gt;
|A simple replacement function for [[llDialog]]. It re-orders the button list so that the button values, as passed to it, display left-to-right, top-to-bottom. It also opens a [[llListen|listen]] on the specified channel, and returns the handle.&lt;br /&gt;
|-&lt;br /&gt;
|[[Scheduled Payments]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A script that will allow you to make scheduled (and reoccurring) payments to multiple avatars via a notecard.&lt;br /&gt;
|-&lt;br /&gt;
|[[Scheduler]]&lt;br /&gt;
|{{User|Haravikk Mistral}}&lt;br /&gt;
|Schedule multiple events using a single script timer&lt;br /&gt;
|-&lt;br /&gt;
|[[Scheme_Interpreter|Scheme Interpreter]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
|A scheme interpreter capable of handling most scheme expressions, including lambda and lists.&lt;br /&gt;
|-&lt;br /&gt;
|[[Script Override Functions]]&lt;br /&gt;
|{{User|Revolution Perenti}}&lt;br /&gt;
|bypass default strings, integer etc in chat channel.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Toady_Nakamura/Scrubber_Script|Script Scrubber]]&lt;br /&gt;
|{{User|Toady Nakamura}}&lt;br /&gt;
|Script scrubs memory resident script functions from prim and self-deletes the script. Does not damage the prim, or remove other scripts.  Use this to kill bling or other particle effects!&lt;br /&gt;
|-&lt;br /&gt;
|[[Scripted Attachment Detector.lsl|Scripted Attachment Detector]]&lt;br /&gt;
|{{User|Bobbyb30 Swashbuckler}}&lt;br /&gt;
|A script that will display avatars wearing scripted attatchments in hovertext. This may be worn as an hud or rezzed.&lt;br /&gt;
|-&lt;br /&gt;
|[[Self Upgrading Script Enhanced]]&lt;br /&gt;
|{{User|Cron Stardust}}&lt;br /&gt;
|Keeps only latest version of the script on prim (even with multiple adds of the same script!)&lt;br /&gt;
|-&lt;br /&gt;
|[[Sensor Visualizer]]&lt;br /&gt;
|{{User|Cerise Sorbet}}&lt;br /&gt;
|Shows the size and shape you get with [[llSensor]] range and arc parameters&lt;br /&gt;
|-&lt;br /&gt;
|[[Serverless Key Exchange]]&lt;br /&gt;
|{{User2|Sendao Goodman}}&lt;br /&gt;
|Maintains a network of object keys without using an external server.&lt;br /&gt;
|-&lt;br /&gt;
|[[SHA-1|SHA-1 Hash]]&lt;br /&gt;
|{{User|Strife Onizuka}}&lt;br /&gt;
|Performs a SHA-1 Hash on an input text. Similar to MD5 only (slightly) more secure.&lt;br /&gt;
|-&lt;br /&gt;
|[[SHA-2|SHA-2 Hash]]&lt;br /&gt;
|{{User|Strife Onizuka}}&lt;br /&gt;
|Performs a SHA-2 Hash on an input text. Similar to SHA-1 only (slightly) more secure.&lt;br /&gt;
|-&lt;br /&gt;
|[[Shoutcast - radio controller v0.3 (remake of similar scripts)]]&lt;br /&gt;
|{{User|Flennan Roffo}}&lt;br /&gt;
|Control your shoutcast radio stations with this shoutcast controller. Uses notecard for info about genres and stations and menu to select the station. Sends info to Xytext display.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:PixelProphet Lane/Scripts#Show Agent Script Count and memory|Show Agent Script Count and memory]]&lt;br /&gt;
|{{User|PixelProphet Lane}}&lt;br /&gt;
|Fast and efficient method to display the amount of scripts and memory usage for an agent&lt;br /&gt;
|-&lt;br /&gt;
|[[Sim Map Particle Projector]]&lt;br /&gt;
|{{User|Jesse Barnett}}&lt;br /&gt;
|Displays a floating map of the sim the script is in.&lt;br /&gt;
|-&lt;br /&gt;
|[[Sim Performance Collector (Web-based]]&lt;br /&gt;
|{{User2|DeniseHoorn Slade}}&lt;br /&gt;
|Makes some graphs for your website on the sim-performance (DIL,FPS, PING). PHP and Round Robin Database on Server needed!&lt;br /&gt;
|-&lt;br /&gt;
|[[Sim Restart Logger]]&lt;br /&gt;
|{{User|Kyrah Abattoir}}&lt;br /&gt;
|Counts region restarts and displays log of last 9 restarts together with region FPS and dilation.&lt;br /&gt;
|-&lt;br /&gt;
|[[SIM status]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A script that will scan and display the status of SIMs (up, down, starting, stopping, unknown, crashed) from a notecard in the same prim as the script.&lt;br /&gt;
|-&lt;br /&gt;
|[[Simple Elevator in a Box]]&lt;br /&gt;
|{{User|Hank Ramos}}&lt;br /&gt;
|Simple elevator example.&lt;br /&gt;
|-&lt;br /&gt;
|[[Simple Pay Door]]&lt;br /&gt;
|{{User|Giygas Static}}&lt;br /&gt;
|Simple door you pay to get access.&lt;br /&gt;
|-&lt;br /&gt;
|[[Skillingo AntiHack Script]]&lt;br /&gt;
|{{User2|Tmzasz Luminos}}&lt;br /&gt;
|A simple Protection script for skillingo thats modifyable to work with other machines.&lt;br /&gt;
|-&lt;br /&gt;
|[[Skunk Money]]&lt;br /&gt;
|{{User|Hank Ramos}}&lt;br /&gt;
|Fun gambling machine of yesteryear, which only supports freeplay now due to SL regulations against gambling.&lt;br /&gt;
|-&lt;br /&gt;
|[[SLateIt]]&lt;br /&gt;
|Babbage Linden&lt;br /&gt;
|An augmented virtual reality HUD.&lt;br /&gt;
|-&lt;br /&gt;
|[[SLetanque]]&lt;br /&gt;
|Babbage Linden&lt;br /&gt;
|An LSL petanque game.&lt;br /&gt;
|-&lt;br /&gt;
|[[SLURL HUD]]&lt;br /&gt;
|{{User|CodeBastard Redgrave}}&lt;br /&gt;
|Touch this HUD to get a SLURL through IM, email and floating text.&lt;br /&gt;
|-&lt;br /&gt;
|[[BuildSlurl (NewAge)]]&lt;br /&gt;
|{{User2|Archile Azalee}}&lt;br /&gt;
|A way to create a SLurl in a single function BuildSlurl&lt;br /&gt;
|-&lt;br /&gt;
|[[SL Mail V1.2]]&lt;br /&gt;
|{{User|Flennan Roffo}}&lt;br /&gt;
|Second Life mail client V1.2 (released sept&#039;07). Send and receive mail from within Second Life from and to any address. With Address Book function and many chat commands. V1.3 is upcoming soon!&lt;br /&gt;
|-&lt;br /&gt;
|[[SL_NTPoHTTP_v1.1_client|SL NTPoHTTP client]]&lt;br /&gt;
|{{User|SignpostMarv Martin}}&lt;br /&gt;
|Second Life Needs Time Parsing over Hyper Text Transfer Protocol&lt;br /&gt;
Emulates the function of [[llGetWallclock]] for any timezone by using SLOpenID&#039;s SLNTPoHTTP service. Also supports ISO 8601 and RFC 2822 timestamps. Script is dependent upon an external service operated by the author!&lt;br /&gt;
|-&lt;br /&gt;
|[[Slide Display]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A display for presentations or talks supporting multiple slides as well as zooming-in on the slides.&lt;br /&gt;
|-&lt;br /&gt;
|[[Smile]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|An extended smile script supporting two smiles (extendable via a list) and a time delay triggering them at random.&lt;br /&gt;
|-&lt;br /&gt;
|[[Smooth Rotating Door]]&lt;br /&gt;
|{{User|Toy Wylie}}&lt;br /&gt;
|A script for doors that open and close smoothly using llTargetOmega&lt;br /&gt;
|-&lt;br /&gt;
|[[Smooth Rotating Linked Door With Hinge]]&lt;br /&gt;
|{{User2|Lyn Mimistrobell}}&lt;br /&gt;
|A script for linked uncut (mesh) doors that smoothly rotates around a virtual hinge without the use of timers&lt;br /&gt;
|-&lt;br /&gt;
|[[Smooth Sliding Door]]&lt;br /&gt;
|{{User|SimonT Quinnell}}&lt;br /&gt;
|A script for sliding doors that open and close smoothly using [[llMoveToTarget]]. Asjusts for prim orientation.&lt;br /&gt;
|-&lt;br /&gt;
|[[Snake Game]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|The game of snake in Second Life.&lt;br /&gt;
|-&lt;br /&gt;
|[[Song Requests]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|Helper script for DJs, allowing listeners to request songs and make dedications.&lt;br /&gt;
|-&lt;br /&gt;
|[[Speed Tester]]&lt;br /&gt;
|{{User|Bobbyb30 Swashbuckler}}&lt;br /&gt;
|Similar to the [[Efficiency Tester]], this script allows you to test the speed of a particular function or snippet with multiple trials giving min/max/avg/median and the standard deviation.&lt;br /&gt;
|-&lt;br /&gt;
|[[Spiral Staircase Generator]]&lt;br /&gt;
|{{User|Meyermagic Salome}}&lt;br /&gt;
|Generates nice looking spiral staircases without much hassle.&lt;br /&gt;
|-&lt;br /&gt;
|[[Static URL&#039;s for HTTP-In Service|Static_URLs]]&lt;br /&gt;
|{{User|Jor3l Boa}}&lt;br /&gt;
|How to generate a static url for HTTP-In temporal limitations.&lt;br /&gt;
|-&lt;br /&gt;
|[[String Compare]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
|Compares two strings and reliably returns either 1, -1, or 0 if they are the same.&lt;br /&gt;
|-&lt;br /&gt;
|[[Synchronize]]&lt;br /&gt;
|{{User|Cay Trudeau}}&lt;br /&gt;
|Makes synchronized start to a task on even/odd seconds&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Functions#String:_Find_Last_Index|String: Reverse]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|Returns an input string in reverse order&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Functions#String:_Get_Reverse_Order|String: Last Index]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|Returns the last index of search found in string (the backward equivalent of [[llSubStringIndex]])&lt;br /&gt;
|-&lt;br /&gt;
|[[Tail Messages (NewAge)]]&lt;br /&gt;
|{{User|Asia Snowfall}}&lt;br /&gt;
|A super nice easy to use script for those non-scripters out there! NewAge coding has done it again where you no longer need to scroll up and down adding buttons and adding messages, Features a tag system (you&#039;ll see what i mean :P)&lt;br /&gt;
|-&lt;br /&gt;
|[[Taper Door (minimalistic)]]&lt;br /&gt;
|{{User2|Kopilo Hallard}}&lt;br /&gt;
|A basic script for doors which open and close using taper.&lt;br /&gt;
|-&lt;br /&gt;
|[[Teleport HUD]]&lt;br /&gt;
|{{User|Jesse Barnett}}&lt;br /&gt;
|WORKS TO 4096 METERS!! Very user friendly teleport HUD. Add destinations by touching &amp;quot;Add&amp;quot; &amp;amp; naming destination in chat. Automatically gets sim name and coordinates. Will only display the destinations in the sim you are currently in. Demonstrates more advanced list manipulation and stride functions.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Programs#v7-D_Enh._Landmark-2-Map|Teleporter (landmark based)]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|Uses Landmarks to offer map teleports. Works as Hud or inworld objects, just drop in landmarks and go.&lt;br /&gt;
|-&lt;br /&gt;
|[[Text_Scroller|Text Scroller]]&lt;br /&gt;
|[[User:Fred_Gandt|Fred Gandt]]&lt;br /&gt;
|A simple text display object that scrolls text (applied as a texture) from right to left (like &#039;&#039;those&#039;&#039; LED signs) in a continuous loop.&lt;br /&gt;
|-&lt;br /&gt;
|[[Bobbyb&#039;s texture changer|Texture Changers]]&lt;br /&gt;
|{{User|Bobbyb30 Swashbuckler}}&lt;br /&gt;
|A collection of texture changing scripts.&lt;br /&gt;
|-&lt;br /&gt;
|[[Texture Menu Management|Texture Management]]&lt;br /&gt;
|{{User|Revolution Perenti}}&lt;br /&gt;
|Dialog Menu based Texture Selection.&lt;br /&gt;
|-&lt;br /&gt;
|[[Texture Particle Poofer|Texture Particle Poofer]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|This is a generic dialog-based particle poofer, emitting textures towards an avatar for a configurable amount of time.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Xen_Lisle/Texture_Slide|Texture Slide]]&lt;br /&gt;
|{{User|Xen Lisle}}&lt;br /&gt;
|Slides a texture on mouse movement&lt;br /&gt;
|-&lt;br /&gt;
|[[Tic Tac Toe]]&lt;br /&gt;
|CG Linden&lt;br /&gt;
|Step by step demo on how to implement a larger scripting project&lt;br /&gt;
|-&lt;br /&gt;
|[[TightList]]&lt;br /&gt;
|{{User|Strife Onizuka}}&lt;br /&gt;
|Tight List is a family of functions for encoding lists as strings and then decoding them back into lists.&lt;br /&gt;
There are two flavors: TightList and TightListType. TightListType preserves types and uses a 6 char header, while TightList uses a 1 char header that doesn&#039;t preserve type.&lt;br /&gt;
|-&lt;br /&gt;
|[[Timer Module]]&lt;br /&gt;
|{{User|Isabelle Aquitaine}}&lt;br /&gt;
|Manage multiple timers via linked messages.&lt;br /&gt;
|-&lt;br /&gt;
|[[Two Avatars on single prim]]&lt;br /&gt;
|{{User2|Pale Janus|Cay Trudeau}}&lt;br /&gt;
|Allow two (or more) avatars to sit on same prim&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Functions#Unix_time_code_to_list_format|Timestamp:&amp;lt;br&amp;gt;Unix time code to list format]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|converts Unix timestamps to their [Y, M, D, h, m, s] equivalents (ex: 1234567890 to [2009, 2, 13, 3, 31, 30])&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Functions#List_format_to_Unix_time_code.|Timestamp:&amp;lt;br&amp;gt;List format to Unix time code]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|converts [Y, M, D, h, m, s] timestamps to their Unix equivalents (ex: [2009, 2, 13, 3, 31, 30] to 1234567890)&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Functions#Weekday_from_Unix_timestamp|Timestamp:&amp;lt;br&amp;gt;Weekday from Unix timestamp]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|Gets weekday from Unix timestamps (ex: &amp;quot;Friday&amp;quot; from 1234567890)&lt;br /&gt;
|-&lt;br /&gt;
|[[The Stash (Bank)]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|This is a depositing system to link your secondary account (alt) to a prim in-world so you can retrieve money without switching back and forth between accounts. It supports setting an upper limit, sharing the stash if you wish, logging everybody who deposited money and retrieved money, sending money to a list of bookmarked avatars and getting a status of your current holdings. It also explains some tricks for developers, for example, how to get another timer() if your current timer() is used up already.&lt;br /&gt;
|-&lt;br /&gt;
|[[Tipjar]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|This is a fully fledged tipjar supporting shared access, split profits, inviting to group, handing over gifts, maintaining statistics of who tipped most and who tipped in general, eliminating deed to group and comes with an innovative feature: it periodically moves around from avatar to avatar in the room and returns back to its initial position after a sweep. This way your tijpar will not be static, but participate in the party!&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Functions#Weekday_from_.28_Y.2C_M.2C_D_.29_format|Timestamp:&amp;lt;br&amp;gt;Weekday from (Y, M, D) format]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|Gets weekday from (Y, M, D) timestamps (ex: &amp;quot;Friday&amp;quot; from (2009, 2, 13))&lt;br /&gt;
|-&lt;br /&gt;
|[[Touch A Quote]]&lt;br /&gt;
|{{User|CodeBastard Redgrave}}&lt;br /&gt;
|Touch an object to read quotes sequentially from a notecard&lt;br /&gt;
|-&lt;br /&gt;
|[[Touring Balloon]]&lt;br /&gt;
|{{User|Hank Ramos}}&lt;br /&gt;
|Automated touring balloon with many options from long ago.  Always seems to work on one SL release, and not the other.&lt;br /&gt;
|-&lt;br /&gt;
|[[Towncrier]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A simple towncrier to be used in role-play SIMs or wherever there is a need to broadcast news in random intervals.&lt;br /&gt;
|-&lt;br /&gt;
|[[Trivia]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A trivia game engine with provided ready-made notecards.&lt;br /&gt;
|-&lt;br /&gt;
|[[Under Age Boot]]&lt;br /&gt;
|{{User|Chance Unknown}}&lt;br /&gt;
|Security device example to teleport home accounts below a minimum age limit; can be useful in combating free griefer accounts.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Rolig_Loon/UNDO_PosRot|UNDO_PosRot]]&lt;br /&gt;
|{{User|Rolig Loon}}&lt;br /&gt;
|Allows user to undo position and rotation changes that have been made &amp;quot;manually&amp;quot; to any or all prims in a linkset.&lt;br /&gt;
|-&lt;br /&gt;
|[[Universal Translator]]&lt;br /&gt;
|{{User|Hank Ramos}}&lt;br /&gt;
|Chat listener that handles seamless translation of public chat between 50+ written languages without the need for configuration.  Handles numerous avatars, auto-detects languages, and works together with multiple copies of translators to spread-workload using a sophisticated back-end communications sub-system.&lt;br /&gt;
|-&lt;br /&gt;
|[[Unix2DateTime]]&lt;br /&gt;
|{{User|Flennan Roffo}}&lt;br /&gt;
|Conversion from Unix time ([[llGetUnixTime]]()) to date and time string and vice versa.&lt;br /&gt;
|-&lt;br /&gt;
|[[Unmutable Descript Nagger]]&lt;br /&gt;
|{{User|Bobbyb30 Zohari}}&lt;br /&gt;
|To nag avatars to take off their scripted attatchments.&lt;br /&gt;
|-&lt;br /&gt;
|[[Unpacker On Rez (NewAge)]]&lt;br /&gt;
|{{User|Asia Snowfall}}&lt;br /&gt;
|A very simple to use script for all you creators out there, This script will enable you to send out boxed items and make it easier for users to unpack, Also features auto die on completion. Very simple to configure!&lt;br /&gt;
|-&lt;br /&gt;
|[[Unpacker On Touch (NewAge)]]&lt;br /&gt;
|{{User|Asia Snowfall}}&lt;br /&gt;
|Exactly like Unpacker On Rez, But changed some things about to make it Unpack On Touch&lt;br /&gt;
|-&lt;br /&gt;
|[[Update distributor]]&lt;br /&gt;
|{{User|Dale Innis}}&lt;br /&gt;
|Distribute an object (like a project update) to a list of people named in a notecard.&lt;br /&gt;
|-&lt;br /&gt;
|[[UUID2Channel]]&lt;br /&gt;
|{{User|Project Neox}}&lt;br /&gt;
|Optimised version of the original key2channel generators.&lt;br /&gt;
|-&lt;br /&gt;
|[[UUID Song Generator]]&lt;br /&gt;
|{{User2|Sendao Goodman}}&lt;br /&gt;
|Translates a UUID into a simple song and plays it.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Programs#v7-D_Advanced_Visitor_Greeter|Visitor Greeter]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|Reduced spam visitor greeter, highly configurable, easy to modify.&lt;br /&gt;
|-&lt;br /&gt;
|[[VariText]]&lt;br /&gt;
|[[User:Geneko Nemeth|Geneko Nemeth (Kakurady)]]&lt;br /&gt;
|Display text on a prim, without looking like from a typewriter&lt;br /&gt;
|-&lt;br /&gt;
|[[Visitor Logger (Web/Basic) ]]&lt;br /&gt;
|{{User|Buddy Sprocket}}&lt;br /&gt;
|A very basic visitor logger - log visitors in SL to a text file on your web-site.&lt;br /&gt;
|-&lt;br /&gt;
|[[Visitors]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A series of scripts to hold lists of visitors taking into account display names and supporting tracking multiple visits.&lt;br /&gt;
|-&lt;br /&gt;
|[[Volleyball Game (Kira&#039;s Artillery Variations)]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|The game of Volleyball in SecondLife, based on the [[Artillery]] script and freefall theory. Full build instructions, scripts, import archive and marketplace freebie product. All full permission.&lt;br /&gt;
|-&lt;br /&gt;
|[[Vote Simple]]&lt;br /&gt;
|{{User|JB Kraft}}&lt;br /&gt;
|Simple vote collector. One avi, one vote.&lt;br /&gt;
|-&lt;br /&gt;
|[[Walking Sound (NewAge)]]&lt;br /&gt;
|{{User|Asia Snowfall}}&lt;br /&gt;
|Very powerful walking sound script, Featuring customer ability to add their own sounds with the API Sound Feature!&lt;br /&gt;
|-&lt;br /&gt;
|[[Wanderer]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A script that can be used to randomly move a prim around relative to its origin point. Can be used for breeders, robots, birds and other applications where a primitive has to move around by itself.&lt;br /&gt;
|-&lt;br /&gt;
|[[WarpPos]]&lt;br /&gt;
|{{User2|Keknehv Psaltery}}&lt;br /&gt;
|Non-physical movement without the 10m limit.&lt;br /&gt;
|-&lt;br /&gt;
|[[Watchdog]]&lt;br /&gt;
|{{User|Tika Oberueng}}&lt;br /&gt;
|LSL Watchdog scripts to monitor other scripts in the prim and restart them if they crash or stop running.&lt;br /&gt;
|-&lt;br /&gt;
|[[Wiki3DBuilder]] [[Wiki3DBuilder1.0]]&lt;br /&gt;
|{{User|Salahzar Stenvaag}}&lt;br /&gt;
|Allows a group of people to collectively build up complex 3D mindmaps with connected concepts. Uses particles for connections and low prim usage. Nodes can be textured, colored, changed form size moved collectively by everybody and can distribute notecards, landmarks, URL, objects, textures. I provide two version 0.1 and 1.0 and probably next version will communicate with moodle and sloodle external websites.&lt;br /&gt;
|-&lt;br /&gt;
|[[Window Control]]&lt;br /&gt;
|{{User|Emmas Seetan}}&lt;br /&gt;
|For window opacity, helpful for buildings.&lt;br /&gt;
|-&lt;br /&gt;
|[[XTEA Strong Encryption Implementation]]&lt;br /&gt;
|{{User|Morse Dillon}}&lt;br /&gt;
|An LSL implementation of XTEA (eXtended Tiny Encryption Algorithm).  This is the first known public release of a &#039;real&#039; strong encryption implementation in LSL and is released under the GNU General Public License (GPL).&lt;br /&gt;
|-&lt;br /&gt;
|[[XyText 1.5|XyText]]&lt;br /&gt;
|{{User2|Xylor Baysklef}}&lt;br /&gt;
| Display text (up to 10 characters) on a prim. Use as many prims as desired.&lt;br /&gt;
|-&lt;br /&gt;
|[[XyyyyzText|XyyyyzText]]&lt;br /&gt;
|{{User|Criz Collins}}&lt;br /&gt;
| Display text (up to 10 characters) on a prim. Displays different text for each line instead of one single text, that will be broken into the next lines. Watch here for what that means: http://screencast.com/t/1wMLujLcEO&lt;br /&gt;
|-&lt;br /&gt;
|[[XyzzyText|XyzzyText]]&lt;br /&gt;
|{{User|Thraxis Epsilon}} and {{User|Gigs Taggart}}&lt;br /&gt;
| Display text (up to 10 characters) on a prim. Way more efficient than XyText.&lt;br /&gt;
|-&lt;br /&gt;
|[[Youtube TV]]&lt;br /&gt;
|{{User|Morgam Biedermann}}&lt;br /&gt;
|Watch your favorite Youtube videos / auto set the texture to the parcel media texture.&lt;br /&gt;
|-&lt;br /&gt;
|[[Zero Lag Poseball]]&lt;br /&gt;
|{{User|Jippen Faddoul}} and {{User|Daemonika Nightfire}}&lt;br /&gt;
|A simple poseball with no lag&lt;br /&gt;
|-&lt;br /&gt;
|[[Zigzag Sequence]]&lt;br /&gt;
|{{User|Project Neox}}&lt;br /&gt;
|Zigzag sequence generator I developed while scripting checkers&lt;br /&gt;
|-&lt;br /&gt;
|[[Input number of seconds, get a string back that shows days, hours, minutes, seconds]]&lt;br /&gt;
|{{User|Fire Centaur}}&lt;br /&gt;
|Returns a string that displays days, hours, seconds&lt;br /&gt;
|-&lt;br /&gt;
|[[Random Giver Prim]]&lt;br /&gt;
|{{User|Damian Darkwyr}}&lt;br /&gt;
|A randomized item giver with a game-like twist&lt;br /&gt;
|-&lt;br /&gt;
|[[Client Specific Contents Giver]]&lt;br /&gt;
|{{User|Damian Darkwyr}}&lt;br /&gt;
|Give Contents only to users of a specific Client. Such as Phoenix, CoolVL or 2.0&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/v7-D_Zen_Resizer|Zen Resizer]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|Single script object resizer w/ multi-language &amp;amp; multi-menu support, + many other features for simple or advanced use.&lt;br /&gt;
|-&lt;br /&gt;
|[[Presenter with Timer]]&lt;br /&gt;
|[[User:Fire Centaur]]&lt;br /&gt;
|Yet another texture presenter with a timer, lock, next/prev etc&lt;br /&gt;
|-&lt;br /&gt;
|[[TimeAPI Clock Script]]&lt;br /&gt;
|[[User:Elite Runner|Ryan R. Elite (Elite Runner)]]&lt;br /&gt;
|Gets time via HTTP function from TimeAPI.org&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Support Script Library==&lt;br /&gt;
These are scripts in other languages, intended to be run on other systems that support scripts written in LSL&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; {{Prettytable}}&lt;br /&gt;
|- {{Hl2}}&lt;br /&gt;
! &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Creator&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[https://github.com/Nexii-Malthus/phpPathfinding phpPathfinding]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
|PHP script for offloading complex pathfinding operations away from heavy use simulators onto external servers. Primarily A* Algorithm. Flexible -- works with any type of node graph. Public Domain. Clean and minimalistic code.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Ina Centaur/UUID/calimg.api|Calendar Image UUID API]]&lt;br /&gt;
|{{User|Ina Centaur}}&lt;br /&gt;
|API that gives the UUID of an image of a calendar image give month and year arguments.&lt;br /&gt;
|-&lt;br /&gt;
|[[HTTP Post request to a PHP server]]&lt;br /&gt;
|{{User|Corto Maltese}}&lt;br /&gt;
|This small library allows you to make simple POST requests to your website. The libraries allow you to get your request through the variable $_POST on the server. It also include a basic security mechanism aimed to stop hacking. Comprises of LSL client script and PHP server script.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Ina Centaur/PHP/k2n.php|Key2Name.php]]&lt;br /&gt;
|{{User|Ina Centaur}}&lt;br /&gt;
|Get Avatar&#039;s Name using Second Life search service. (like in LSL Key2Name)&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Darien_Caldwell/HTTP-DNS|HTTP-IN DNS]]&lt;br /&gt;
|{{User|Darien Caldwell}}&lt;br /&gt;
|Public Domain DNS and HTTP-IN URL Distribution system running on GAE (the original). Deploy your own for maximum utility and security.&lt;br /&gt;
|-&lt;br /&gt;
|[[Lame_Object_DNS_and_Cross_Sim_Messaging|Lame Object DNS and Cross Sim Messaging]]&lt;br /&gt;
|{{User2|Liandra Ceawlin}}&lt;br /&gt;
|Simple, cheeseball method of doing cross-sim communications with http-in and an external object DNS service.&lt;br /&gt;
|-&lt;br /&gt;
|[[Minify|LSL Minify]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|LSL Minification and obfuscation tool written in JavaScript. Contains a form on the wiki using a widget where you can post LSL scripts to be minified as well as the source-code. For another full-screen demo you may [http://eva.comaroski.me/lslclean.html check it on my website]. To use, paste any LSL code and press ctrl+alt+enter to get the minified version.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:SignpostMarv Martin/PHP/llXorBase64StringsCorrect|llXorBase64StringsCorrect]]&lt;br /&gt;
|{{User|SignpostMarv Martin}}&lt;br /&gt;
|An implementation of [[llXorBase64StringsCorrect]] in PHP- should be useful if you&#039;re using llXorBase64StringsCorrect to do cryptography work in LSL2 and posting it out to the web via [[llHTTPRequest]].&lt;br /&gt;
|-&lt;br /&gt;
|[[User:SignpostMarv Martin/PHP/lsl fu.php|lsl_fu.php]]&lt;br /&gt;
|{{User|SignpostMarv Martin}}&lt;br /&gt;
|A basic OOP&#039;d PHP Class containing VeloxSeverine&#039;s $_POST fixer and Marv&#039;s own eccentric ideas for &amp;quot;fixing&amp;quot; things.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Jor3l Boa/PHP/n2k.php|Name2Key.php]]&lt;br /&gt;
|{{User|Jor3l Boa}}&lt;br /&gt;
|Get Avatar&#039;s UUID using Second Life search service. (like in LSL Name2Key)&lt;br /&gt;
|-&lt;br /&gt;
|[[Public_Object_DNS|Public Object DNS]]&lt;br /&gt;
|{{User2|Liandra Ceawlin}}&lt;br /&gt;
|Public object DNS-like system running on GAE, for http-in. Hopefully scalable enough for wide-spread usage.&lt;br /&gt;
|-&lt;br /&gt;
|[[Rake|Rake]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A C# utility meant to create full inventory backups to your local hard-drive including Textures/Sculpts, Animations, Notecards and Scripts.&lt;br /&gt;
|-&lt;br /&gt;
|Silo&lt;br /&gt;
|{{User2|Zero Linden}}&lt;br /&gt;
|General purpose data store in PHP.  Use this to persist arbitrary data from LSL via [[llHTTPRequest]].  See:&lt;br /&gt;
* [http://www.notabene-sl.com/misc/silo-README.txt README] file&lt;br /&gt;
* [http://www.notabene-sl.com/misc/silo.tgz silo.tgz] tarball&lt;br /&gt;
* forum post [http://forums-archive.secondlife.com/54/69/119570/1.html Announcement].&lt;br /&gt;
|-&lt;br /&gt;
|[[Silverday ObjectDNS]]&lt;br /&gt;
|{{User|Till Stirling}}&lt;br /&gt;
|Dynamic Object-DNS-System to provide dynamic mapping of LSL-URLs to persistent domains. Features include redirect service, password protected domains, write protected domains, LSL-API for all necessary functions, optional web-interface.&lt;br /&gt;
|-&lt;br /&gt;
|[http://aubretec.com/products/sldb SLDB]&lt;br /&gt;
|{{User2|Luc Aubret}}&lt;br /&gt;
|Flexible web database storage using PHP/MySQL.  Used to store per-user field/value pairs from in-world objects using [[llHTTPRequest]].&lt;br /&gt;
* [http://aubretec.com/support/manuals/sldbkit/ Implementation Guide]&lt;br /&gt;
* [http://aubretec.com/wp-content/uploads/2009/05/sldb.zip Download] (.zip, 12kb)&lt;br /&gt;
|-&lt;br /&gt;
|[https://tlabsfoundry.atlassian.net/wiki/display/SLAD/SL+Asset+Data SL Asset Data]&lt;br /&gt;
|{{User|Trimda Hedges}}&lt;br /&gt;
|A set of Java classes to retrieve information about Groups, Parcels and Agents/Avatars based on their key (UUID).  Includes caching of requests and results and example application.  Copyright under Eclipse Public License v1&lt;br /&gt;
* [https://tlabsfoundry.atlassian.net/wiki/display/SLAD/Downloads Downloads]&lt;br /&gt;
* [http://trimda.com/javadocs/slassetdata/1.1.0/ JavaDocs]&lt;br /&gt;
* [https://tlabsfoundry.atlassian.net/wiki/display/TF/TLabs+Foundry Other Projects]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Articles&#039;&#039;&#039;&lt;br /&gt;
*[[:Category:LSL Examples| Examples]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{LSLC|}}&lt;/div&gt;</summary>
		<author><name>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Category:LSL_Library&amp;diff=1187405</id>
		<title>Category:LSL Library</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Category:LSL_Library&amp;diff=1187405"/>
		<updated>2014-01-31T13:20:54Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header|ml=*}}{{RightToc}}&lt;br /&gt;
==Script Library==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em 0.5em 1.5em&amp;quot;&amp;gt;&lt;br /&gt;
NOTE: Please add your scripts to this page and then add them to a category on the [[:Category:LSL Categorized Library|Categorized Library]] page.&lt;br /&gt;
&lt;br /&gt;
Come to this page to see complex examples that show how to combine parts of LSL.&lt;br /&gt;
&lt;br /&gt;
Go to the [[:Category:LSL Examples|LSL Examples]] page to see brief examples of how to use parts of LSL.&lt;br /&gt;
&lt;br /&gt;
Why collect complex examples here? Well, ...&lt;br /&gt;
&lt;br /&gt;
There is a treasure trove of user developed scripts that have become hard to find over time throughout Second Life&#039;s web server revisions and redesigns. The [http://community.secondlife.com/t5/Community-General/Upgrading-the-Forums/bc-p/77385 Huge Leap] to the new [http://www.jivesoftware.com/ Jive software], while traumatic and disruptive, has failed to dispose of  what&#039;s come before at the moment of your reading. These valuable community generated resources do indeed still remain and can be browsed/retrieved from several disjointed and disparate locations. While some links may point to duplicated, revised, or downright ancient wisdom, you may derive some enlightened perspective researching their hard won, timely solutions we encounter day to day.&lt;br /&gt;
&lt;br /&gt;
# [[Old forum Scripting Library index| Old Forums -Scripting Library index (wiki)]],&lt;br /&gt;
# [http://community.secondlife.com/t5/Scripting/bd-p/2108 Old Forums -Scripting Forum Archive],&lt;br /&gt;
# [http://forums-archive.secondlife.com/15/1.html Old Forums -Scripting Library],&lt;br /&gt;
# [http://community.secondlife.com/t5/Scripting-Library/bd-p/2122 new Forums -Archives &amp;gt; Scripting Library],&lt;br /&gt;
# [http://community.secondlife.com/t5/LSL-Scripting-Library/bd-p/LSLScriptingLibrary new Forums -LSL Library].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The wiki medium is well-suited for a script library due to its revision based historical foundation. If you feel inclined to release your scripts to the entire community, there&#039;s no better place to preserve your work/love/energy/gift as a unified and cohesive repository. Feel free to add your script page links here as well as adding it to the [[:Category:LSL Categorized Library|Categorized Library]].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rules for posting: ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
#Your script must be tested and working. If it&#039;s not, stick it in your user-space until it is. This is a list of working, usable scripts.&lt;br /&gt;
#Add a link to your script&#039;s page here. Link back to this page from your script&#039;s page. Start your page with &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{LSL Header}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
#Do not add scripts that duplicate the same functionality as an existing script or built in {{LSLGC|Functions|function}}. If yours does, explain why.&lt;br /&gt;
#Do not list simple scripts here. Include those among the [[:Category:LSL Examples|LSL Examples]] instead.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==LSL Script Library==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; {{Prettytable}}&lt;br /&gt;
|- {{Hl2}}&lt;br /&gt;
! &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Creator&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Yumi Murakami/Addiction Moderator|Addiction Moderator and World Clock]]&lt;br /&gt;
|{{User|Yumi Murakami}}&lt;br /&gt;
|Keep tabs on usage of SL and easily share local times with other users.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Yumi Murakami/Weaver Spell Grid|Weaver Spell Grid]]&lt;br /&gt;
|{{User|Yumi Murakami}}&lt;br /&gt;
|Designs simple objects and creates them with magic words.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Yumi Murakami/Golden Vendor|Golden Vendor]]&lt;br /&gt;
|{{User|Yumi Murakami}}&lt;br /&gt;
|A cross between a vendor and a game.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Yumi Murakami/Bijocam And Other Camera Scripts|Bijocam and Other Camera Scripts]]&lt;br /&gt;
|{{User|Yumi Murakami}}&lt;br /&gt;
|Various camera control systems for machinima, security, and other effects.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Ackley Bing/Textbox2Hovertext|Textbox2Hovertext]]&lt;br /&gt;
|[[User:Ackley Bing|Ackley]]&lt;br /&gt;
|A simple script to allow hovertext to be set with a dialog text box.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Ackley Bing/Basic Sim Status Button Indicator HUD|Basic Sim Status Button Indicator HUD]]&lt;br /&gt;
|[[User:Ackley Bing|Ackley]]&lt;br /&gt;
|A single prim HUD. Color indicates sim status changes.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Ackley_Bing/Basic_Target_Scanner_HUD|Basic Target Scanner HUD]]&lt;br /&gt;
|[[User:Ackley Bing|Ackley]]&lt;br /&gt;
|A single prim HUD.  Scrolls through nearby players names, photos and user key.&lt;br /&gt;
|-&lt;br /&gt;
|[[StringIsNum|(Function) StringIsNum]]&lt;br /&gt;
|{{User|Zion Tristan}}&lt;br /&gt;
|A User Made Function to return TRUE if a string based input consists entirely of a whole number, and return FALSE otherwise.&lt;br /&gt;
|-&lt;br /&gt;
|[[Remove all scripts from a linkset]]&lt;br /&gt;
|{{User2|Dahlia Orfan}}&lt;br /&gt;
|Remove all scripts from a linkset.&lt;br /&gt;
|-&lt;br /&gt;
|[[RLV Viewer Titler]]&lt;br /&gt;
|{{User2|Jenna Felton}}&lt;br /&gt;
|Titler displaying viewer and it&#039;s version, revealed via RLV interface.&lt;br /&gt;
|-&lt;br /&gt;
|[[Sim Restart Notifyer]]&lt;br /&gt;
|{{User2|Jenna Felton}}&lt;br /&gt;
|On region restart, notifyes registered residents about the sim is online and the current sim version&lt;br /&gt;
|-&lt;br /&gt;
|[[Script Vitality plug-in]]&lt;br /&gt;
|{{User2|Jenna Felton}}&lt;br /&gt;
|Uses vehicle technology to allow scripts (in same prim) to run in &#039;dead&#039;, i.e. no-script areas.&lt;br /&gt;
|-&lt;br /&gt;
|[[Texture Repeater]]&lt;br /&gt;
|{{User2|Jenna Felton}}&lt;br /&gt;
|Observes textures and texture parameters on the prim. If changed, bulk-updates other prims in linkset.&lt;br /&gt;
|-&lt;br /&gt;
|[[1st necessity of SL]]&lt;br /&gt;
|{{User|Beer Dailey}}&lt;br /&gt;
|Monitors for avatars and (de)activates scripts states to control script performance/lag.&lt;br /&gt;
|-&lt;br /&gt;
|[[SetLinkText]]&lt;br /&gt;
|{{User2|Tacusin Memo}}&lt;br /&gt;
|Custom function like [[llSetText]] only applying to linked sets.&lt;br /&gt;
|-&lt;br /&gt;
|[[3D Radar]]&lt;br /&gt;
|{{User|Jesse Barnett}}&lt;br /&gt;
|Rezzes a ball for each avatar in range. Each ball tracks its own AV and displays distance.&lt;br /&gt;
|-&lt;br /&gt;
|[[RegionSitTeleport]]&lt;br /&gt;
|{{User|Vincent Nacon}}&lt;br /&gt;
|A very simple and clean sit/unsit teleporter.&lt;br /&gt;
|-&lt;br /&gt;
|[[AbcText]]&lt;br /&gt;
|{{User|Ange Capalini}}&lt;br /&gt;
|EXPERIMENTAL Hyper low prim Display. only 2 prims for 25char.&lt;br /&gt;
|-&lt;br /&gt;
|[[Access (NewAge)]]&lt;br /&gt;
|{{User|Asia Snowfall}}&lt;br /&gt;
|An easy to use script for permissions on who can use the script, Public/Group/Owner&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Daemonika_Nightfire/Scripts/Access_Tutorial_EN|Access Tutorial (EN)]]&lt;br /&gt;
|{{User|Daemonika Nightfire}}&lt;br /&gt;
|Short examples about permission to executable commands.&lt;br /&gt;
|-&lt;br /&gt;
|[[Aim Detection]]&lt;br /&gt;
|{{User2|Han Shuffle|Dugley Reanimator}}&lt;br /&gt;
|Monitors for avatars and reports back to owner about who is aiming at them.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Daemonika_Nightfire/Scripts/Anti_copy_trans|Anti (copy &amp;amp; transfer)]]&lt;br /&gt;
|{{User|Daemonika Nightfire}}&lt;br /&gt;
|This funktion allows you to give away scripts with copy &amp;amp; transfer permissions and force the reseller to change the permission.&lt;br /&gt;
|-&lt;br /&gt;
|[[AnkleLock]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|An ankle lock script and attached animation to fix your displaced shoes. This will help if your shoes look displaced when you sit in certain poses or when your animation overrider is active.&lt;br /&gt;
|-&lt;br /&gt;
|[[AntiDelay Node]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
|Uses [[llMessageLinked]] to stop those pesky delays.&lt;br /&gt;
|-&lt;br /&gt;
|[[Artillery]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|An artillery gun script, performing the necessary calculations based on a user-chosen velocity, in order to hit a designated target avatar.&lt;br /&gt;
|-&lt;br /&gt;
|[[AO Overriding Pose Ball]]&lt;br /&gt;
|{{User|Jesse Barnett}}&lt;br /&gt;
|No more turning your AO off and on when you sit down&lt;br /&gt;
|-&lt;br /&gt;
|[[ARCFOUR Strong Encryption Implementation]]&lt;br /&gt;
|{{User2|Nekow42 Zarf}}&lt;br /&gt;
|An LSL implementation of ARCFOUR, the most popular stream cipher still in use. It is licensed under a Creative Commons Attribution 3.0 license.&lt;br /&gt;
|-&lt;br /&gt;
|[[Assembly Programming Language|Assembly-Like Programming Language]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
|A compiler that runs assembly-like programs.&lt;br /&gt;
|-&lt;br /&gt;
|[[Associative Array Emulator|Associative Array (Dictionary) Emulator]]&lt;br /&gt;
|{{User2|Alynna Vixen}}&lt;br /&gt;
|This library provides a set of functions for using a list as an associative array where string based keys can refer to one or more variant elements.&lt;br /&gt;
|-&lt;br /&gt;
|[[AvatarFollower]]&lt;br /&gt;
|{{User|Dale Innis}}&lt;br /&gt;
|Allows one avatar to automatically follow another.&lt;br /&gt;
|-&lt;br /&gt;
|[[Avatar Radar (NewAge)]]&lt;br /&gt;
|{{User|Asia Snowfall}}&lt;br /&gt;
|Version 1.2; A nice new avatar radar script i just finish that you can place in your hud, Also features avatar locator&lt;br /&gt;
|-&lt;br /&gt;
|[[Base2Dec]]&lt;br /&gt;
|{{User|Siann Beck}}&lt;br /&gt;
|Convert a number to decimal from any base.&lt;br /&gt;
|-&lt;br /&gt;
|[[BaseN]]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
|Variable base compression, dynamically maps to usable UTF code points.&lt;br /&gt;
|-&lt;br /&gt;
|[[Basic Encryption Modules]]&lt;br /&gt;
|{{User|Beverly Larkin}}&lt;br /&gt;
|Basic encryption scripts, allows you to encrypt a float and shout it to another prim on a randomly chosen channel.&lt;br /&gt;
|-&lt;br /&gt;
|[[Be happy]]&lt;br /&gt;
|{{User|Emmas Seetan}}&lt;br /&gt;
|Basic smile attachment script, makes your avatar smile.&lt;br /&gt;
|-&lt;br /&gt;
|[[Beat The Average Vendor]]&lt;br /&gt;
|{{User2|Kristen Giano}}&lt;br /&gt;
|A vendor script based on humblebundle.com&lt;br /&gt;
|-&lt;br /&gt;
|[[Best Neighbor Ad Hiding Script|Best Neighbor]]&lt;br /&gt;
|{{User2|Doran Zemlja}}&lt;br /&gt;
|Reduce ad clutter by hiding ads when users are on their own land nearby.&lt;br /&gt;
|-&lt;br /&gt;
|[[BigNum|BigNum Library (RSA Encryption)]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
|A BigNum Library for dealing with big numbers! Specialized for modular multiplication, and RSA encryption.&lt;br /&gt;
|-&lt;br /&gt;
|[[Binary Clock v1.1|Binary Clock]]&lt;br /&gt;
|{{User|Fox Diller}}&lt;br /&gt;
|A Binary Clock.&lt;br /&gt;
|-&lt;br /&gt;
|[[BinaryDecimalConverter]]&lt;br /&gt;
|{{User2|Soundless Smalls}}&lt;br /&gt;
|Converts a binary value to a decimal value and vice versa.&lt;br /&gt;
|-&lt;br /&gt;
|[[Blacklist and Remote Kill|Blacklist and Remote Kill]]&lt;br /&gt;
|{{User|Chase Quinnell}}&lt;br /&gt;
|Blacklist(denial of use) or a creator kill script(can delete someone&#039;s item by command on private channel)&lt;br /&gt;
|-&lt;br /&gt;
|[[User_talk:Rolig_Loon/Bookmark_URLs|Bookmark URLs]]&lt;br /&gt;
|{{User|Rolig Loon}}&lt;br /&gt;
|Dialog driven HUD reads bookmarked URLs from notecards and navigates directly to them with user&#039;s in-world browser.&lt;br /&gt;
|-&lt;br /&gt;
|[[Bubble Gum]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A script to create a bubble gum effect with sounds and animations.&lt;br /&gt;
|-&lt;br /&gt;
|[[Bubble Trapper]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A script that rezzes a bubble and surrounds a dialog-chosen avatar, exploding 2 seconds after it has reached the avatar. The article also explains how to hash a name to a number or a key to a number and thereby avoiding to block the rezzer&#039;s [[timer]] [[event]] or using [[llRegionSay]].&lt;br /&gt;
|-&lt;br /&gt;
|[[Builders Buddy|Builder&#039;s Buddy Tool]]&lt;br /&gt;
|{{User|Newfie Pendragon}}&lt;br /&gt;
|Script to easily move/rotate large builds that exceed the linkable size [[limits]].&lt;br /&gt;
|-&lt;br /&gt;
|[[Button Click Detector]]&lt;br /&gt;
|{{User2|Sendao Goodman}}&lt;br /&gt;
|Use [[llDetectedTouchUV]] to determine which button was pressed on a texture.&lt;br /&gt;
|-&lt;br /&gt;
|[[Camera following prim]]&lt;br /&gt;
|{{User|Dale Innis}}&lt;br /&gt;
|Pair of scripts to make a prim follow your camera position around (for lights etc).&lt;br /&gt;
|-&lt;br /&gt;
|[[Camera Sync]]&lt;br /&gt;
|{{User|Meyermagic Salome}} and {{User2|Nomad Padar}}&lt;br /&gt;
|A system to synchronize the cameras of two avatars.&lt;br /&gt;
|-&lt;br /&gt;
|[[Chatbot]]&lt;br /&gt;
|Anonymous&lt;br /&gt;
|Compile and run the LSL you type on a channel, faster than you can thru the 2007-08 SL GUI.&lt;br /&gt;
|-&lt;br /&gt;
|[[Chat Logger (GPL)]]&lt;br /&gt;
|{{User|Nobody Fugazi}}&lt;br /&gt;
|Chat logger which requests permission from participants before recording them.&lt;br /&gt;
|-&lt;br /&gt;
|[[Chat_Relay|Chat Relay]]&lt;br /&gt;
|{{User|grumble Loudon}}&lt;br /&gt;
|A Chat relay which can be routed using a path header and won&#039;t echo.&lt;br /&gt;
|-&lt;br /&gt;
|[[ClickAndDrag]]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
| Click and Drag user interface elements using dynamic feedback&lt;br /&gt;
|-&lt;br /&gt;
|[[Code Racer]]&lt;br /&gt;
|Anonymous&lt;br /&gt;
|Race two versions of code forever, to see which runs faster.&lt;br /&gt;
|-&lt;br /&gt;
|[[Code Sizer]]&lt;br /&gt;
|Anonymous&lt;br /&gt;
|Count the bytes compiled from source code, to measure how to write small code.&lt;br /&gt;
|-&lt;br /&gt;
|[[Collision message sender]]&lt;br /&gt;
|{{User2|Taff Nouvelle}}&lt;br /&gt;
|Give a message to an avatar on collision if the message has not been sent in the last 10 minutes.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Programs#v7-D_Enh._Color_Picker|Color Changer]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|Dialog driven color changer. Supports 16million+ colors, web color codes, multiple targeted prims, with save and recall.&lt;br /&gt;
|-&lt;br /&gt;
|[[Color Changer|Color Changer Plus]]&lt;br /&gt;
|{{User2|Neo Calcutt}}&lt;br /&gt;
|A color changer with 14 colors, a random function, and a custom vector function.&lt;br /&gt;
|-&lt;br /&gt;
|[[Color conversion scripts|Color Conversion]]&lt;br /&gt;
|{{User|Sally LaSalle}}&lt;br /&gt;
|Convert between Red Green Blue (RGB) and Hue Saturation Value (HSV).&lt;br /&gt;
|-&lt;br /&gt;
|[[ColorConvert]]&lt;br /&gt;
|{{User|Siann Beck}}&lt;br /&gt;
|Convert color values to vector from RGB, hex or HTML color name.&lt;br /&gt;
|-&lt;br /&gt;
|[[Color script]]&lt;br /&gt;
|{{User2|Masakazu Kojima}}&lt;br /&gt;
|Script for changing colors trough a listener with pre-defined colors.&lt;br /&gt;
|-&lt;br /&gt;
|[[Library Combined Library|Combined Library]]&lt;br /&gt;
|{{User|Strife Onizuka}}&lt;br /&gt;
|Library of mostly encoding and decoding functions, some more useful then others.&lt;br /&gt;
* String functions: Replace / Trim right / Trim left / Trim both&lt;br /&gt;
* Unicode conversion: UTF8 to Unicode / Unicode to UTF8&lt;br /&gt;
* List functions: Replace / Compare&lt;br /&gt;
|-&lt;br /&gt;
|[[Computer:jaycoonlanguage]]&lt;br /&gt;
|{{User|jayco121 Bing}}&lt;br /&gt;
| A language written in LSL that is meant for my computer (available at the shop).&lt;br /&gt;
|-&lt;br /&gt;
|[[Read Note Card Configuration|Configuration Notecard Reader]]&lt;br /&gt;
|{{User|Dedric Mauriac}}&lt;br /&gt;
|A script to read configuration information from a notecard. Parses notecard to extract key words and their assigned values. Allows for comment lines and many more useful features.&lt;br /&gt;
|-&lt;br /&gt;
|[[AdvancedNotecardReader|Configuration Notecard Reader (advanced)]]&lt;br /&gt;
|[[Lear Cale|Lear Cale]]&lt;br /&gt;
|Robust configuration notecard reader; supports multiple notecards with same suffix, handles reconfig on inventory change, and does not usurp the default state.&lt;br /&gt;
|-&lt;br /&gt;
|[[Library_Chat_Relay|Conversation Relay]]&lt;br /&gt;
|{{User|Jippen Faddoul}}&lt;br /&gt;
|Chat relay which requests permission from participants before relaying their messages. Also includes their attachments. (ToS compliant).&lt;br /&gt;
|-&lt;br /&gt;
|[[Curtain script]]&lt;br /&gt;
|{{User|Zilla Larsson}}&lt;br /&gt;
|A simple script to retract/stretch curtains, blinds, bedcovers and more&lt;br /&gt;
|-&lt;br /&gt;
|[[Library_Cycle_Dialog_Items|Cycle Dialog Items w/ Callback]]&lt;br /&gt;
|{{User|Hawkster Westmoreland}}&lt;br /&gt;
|A customizable way to cycle dialog items with pagination&lt;br /&gt;
|-&lt;br /&gt;
|[[Dataserver API]]&lt;br /&gt;
|{{User|Revolution Perenti}}&lt;br /&gt;
|Dataserver Framework for Notecards.&lt;br /&gt;
|-&lt;br /&gt;
|[[Date Library]]&lt;br /&gt;
|{{User|Corto Maltese}}&lt;br /&gt;
| Date library, based on number of day since march 3rd 1600, can be used to calculate weekday, date differences, and date offset, and date formating.&lt;br /&gt;
|-&lt;br /&gt;
|[[Day of the Week]]&lt;br /&gt;
|{{User|DoteDote Edison}}&lt;br /&gt;
|Function to get day of the week from [[llGetUnixTime]].&lt;br /&gt;
|-&lt;br /&gt;
|[[Days in Month]]&lt;br /&gt;
|{{User|IntLibber Brautigan}}&lt;br /&gt;
|Clicking on it returns the number of days in the present month. Useful for scripting calendars and tier systems that need to know the number of days in the month at hand or to calculate for any month. Even adjusts for leap years.&lt;br /&gt;
|-&lt;br /&gt;
|[[Deed Tools]]&lt;br /&gt;
|{{User|Falados Kapuskas}}&lt;br /&gt;
|Tools that allow the creator to modify Group-Owned (Deeded) Objects via chat.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Daemonika_Nightfire/Scripts/DEMO_Shield|DEMO_Shield]]&lt;br /&gt;
|{{User|Daemonika Nightfire}}&lt;br /&gt;
|With this script, it is impossible to use these scripts in copied (Copybot) object.&lt;br /&gt;
|-&lt;br /&gt;
|[[Describe Chatter]]&lt;br /&gt;
|Anonymous&lt;br /&gt;
|Chat to see yourself as others do.&lt;br /&gt;
|-&lt;br /&gt;
|[[Dialog Control]]&lt;br /&gt;
|{{User|Nargus Asturias}}&lt;br /&gt;
| A (not-so) simple dialog &amp;amp; menu control script. Call dialog and receive selected value via [[link_message]], with built-in timer and [[link_message]] notification on time out. Supports multi-pages dialog and numeric property dialog. Button text and dialog&#039;s returned value can differ.&lt;br /&gt;
Latest version also has [[Dialog Menus Control]] built-in; which allow multi-level menus through SL dialog system.&lt;br /&gt;
|-&lt;br /&gt;
|[[Dispenser Vendor]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
| A twist on [[Vendor]] that dispenses one object and then removes it from the list of objects.&lt;br /&gt;
|-&lt;br /&gt;
|[[MultiUser_Dialog_Handler|Dialog Menus (multiuser)]]&lt;br /&gt;
|{{User|SimonT Quinnell}}&lt;br /&gt;
| Menu dialog handler that supports multiple menus open at once from the single script. Displays multi-page menus if necessary as well as allowing for fixed header and footer buttons.  Timeouts as well as Text and button size limits are handled.&lt;br /&gt;
|-&lt;br /&gt;
|[[Dialog NumberPad|Dialog Number Pad]]&lt;br /&gt;
|{{User|DoteDote Edison}}&lt;br /&gt;
|Use a dialog to accept positive integer input from users.&lt;br /&gt;
|-&lt;br /&gt;
|[[Display Names Radar]]&lt;br /&gt;
|{{User|Cerise Sorbet}}&lt;br /&gt;
|Simple HUD type avatar radar that can show [[display names]] and script memory usage&lt;br /&gt;
|-&lt;br /&gt;
|[[Display Names to Key]]&lt;br /&gt;
|{{User|Joran Yoshikawa}}&lt;br /&gt;
|Simple way to get UUIDs from displaynames&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Daemonika_Nightfire/Scripts/DS_Display-Username_Online_Indicator|Display-Username_Online_Indicator]]&lt;br /&gt;
|{{User|Daemonika Nightfire}}&lt;br /&gt;
|This simple hover text-based script is used to shop owners in Second Life, customers at the current display name and user name to display publicly. Additionally shows the status of the Userkey and online. Furthermore, there are click of a chat link that opens the profile owner.&lt;br /&gt;
|-&lt;br /&gt;
|[[Displayer Script]]&lt;br /&gt;
|{{User|Akinori Kimagawa}}&lt;br /&gt;
|Display Words On Top Of An Object&lt;br /&gt;
|-&lt;br /&gt;
|[[Distributed Primitive Database]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|The distributed primitive database (DPD) is a database which is meant to survive entirely in SL by using redundancy, replication and time synchronisation to maintain the consistency of the dataset contained in the DPD node/primitives spread out between regions and even grids. Similarly to the [[Intercom]], the robustness of the theory would allow users to maintain a cross-grid database; as of 30 of August 2011 I have managed to couple and replicate data between the two grids by using the methodology described in the script article.&lt;br /&gt;
|-&lt;br /&gt;
|[[Drink script]]&lt;br /&gt;
|{{User|Emmas Seetan}}&lt;br /&gt;
|Used mainly for food and drink in Second Life.&lt;br /&gt;
|-&lt;br /&gt;
|[[Donut Dance]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|Err, a script that makes you dance and say something on the local chat once you attach an object (good example for conditional re-entry flipping).&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Daemonika_Nightfire/Scripts/DS_Single_AO-Sit|Single_AO-Sit]]&lt;br /&gt;
|{{User|Daemonika Nightfire}}&lt;br /&gt;
|Posescript for use with or without AO and with or without Animation. With the menu it is possible the seated Avatar to move.&lt;br /&gt;
|-&lt;br /&gt;
|[[TOXDropBox|DropBox]]&lt;br /&gt;
|{{User|Dimentox Travanti}}&lt;br /&gt;
| This is a Drop box which allows people to drop certain items in a object &amp;amp; has many config options.&lt;br /&gt;
|-&lt;br /&gt;
|[[Efficiency Tester]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
|Tests the speed of a function.&lt;br /&gt;
|-&lt;br /&gt;
|[[Email-to-IM|Email2IM]]&lt;br /&gt;
|{{User|DoteDote Edison}}&lt;br /&gt;
|Send IMs to SL friends via [[email]].&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Kireji_Haiku/SIMchat_headset|Encrypted Region-wide chat]]&lt;br /&gt;
|{{User|Kireji Haiku}}&lt;br /&gt;
|Encrypted Region-wide chat&lt;br /&gt;
|-&lt;br /&gt;
|[[ExplodingObjects]]&lt;br /&gt;
|{{User|Dale Innis}}&lt;br /&gt;
|Causes an object (of the appropriate type) to explode on command.&lt;br /&gt;
|-&lt;br /&gt;
|[[FadeEasy]]&lt;br /&gt;
|{{User2|Nika Rugani}}&lt;br /&gt;
|The easy way of fading objects in or out (Using llSetLinkAlpha)&lt;br /&gt;
|-&lt;br /&gt;
|[[FastConeSpread]]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
| Fast Algorithmn to achieve cone spread, main use in weaponry systems.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:PixelProphet Lane/Scripts#Fast List Prim Contents|Fast List Prim Contents]]&lt;br /&gt;
|{{User|PixelProphet Lane}}&lt;br /&gt;
|Fast and efficient method to print Object Inventory (Name, Type and next Owner permissions)&lt;br /&gt;
|-&lt;br /&gt;
|[[User:PixelProphet_Lane/Scripts#Grid_Status_Feed|Grid Status Feed]]&lt;br /&gt;
|{{User|PixelProphet Lane}}&lt;br /&gt;
|Receive important Grid information in-world&lt;br /&gt;
|-&lt;br /&gt;
|[[Find Avatar Key|Find Avatar Key]]&lt;br /&gt;
|{{User2|Huney Jewell}}&lt;br /&gt;
|Explores [[UUID]] of avatar whose name is said in local chat or who touches the prim.&lt;br /&gt;
|-&lt;br /&gt;
|[[First Name Letter Prize]]&lt;br /&gt;
|{{User|RaithSphere Whybrow}}&lt;br /&gt;
|Gives a prize if the person who sits on it&#039;s first letter of first name matches the random letter!&lt;br /&gt;
|-&lt;br /&gt;
|[[Fix Small Prims|Fix_Small_Prims]]&lt;br /&gt;
|{{User|Emma Nowhere}}&lt;br /&gt;
|Finds and adjusts the smallest prims in a linkset so that it can be scaled down further.&lt;br /&gt;
|-&lt;br /&gt;
|[[Flight Assist]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|Flight feather / flight band implementation supporting various commands and allowing you to fly above the clouds.&lt;br /&gt;
|-&lt;br /&gt;
|[[Float2Hex]]&lt;br /&gt;
|{{User|Strife Onizuka}}&lt;br /&gt;
|Very useful for transporting [[float|floats]].&lt;br /&gt;
|-&lt;br /&gt;
|[[Float Box Contents]]&lt;br /&gt;
|{{User|Rolig Loon}}&lt;br /&gt;
|Displays object inventory in hover text, identified by type and updated marquee-style.&lt;br /&gt;
|-&lt;br /&gt;
|[[Follower (script)|Follower]]&lt;br /&gt;
|Unknown, uploaded by {{User|Slik Swindlehurst}}&lt;br /&gt;
|Makes an object follow the nearest person. Do not use for [[grief|griefing]].&lt;br /&gt;
|-&lt;br /&gt;
|[[FURWARE_text]]&lt;br /&gt;
|{{User|Ochi Wolfe}}&lt;br /&gt;
|Versatile text-on-prim script, open source under the MIT license&lt;br /&gt;
|-&lt;br /&gt;
|[[GA Event Notifier]]&lt;br /&gt;
|{{User|Victor Hua}}&lt;br /&gt;
|Gathers seven days event data from a Google calendar and display it through a simple interface. The lsl script can access several calendars at once through seperate php files. One file per calendar. Host the included php on your own web server.&lt;br /&gt;
|-&lt;br /&gt;
|[[Geometric|Geometric Library]]&lt;br /&gt;
|Community Project&lt;br /&gt;
|A substantial amount of various geometric functions for intersection and other purposes of 3D maths.&lt;br /&gt;
|-&lt;br /&gt;
|[[Get Profile Picture]]&lt;br /&gt;
|{{User2|Valentine Foxdale}}&lt;br /&gt;
|Sets the texture of the object to profile picture of the person that touches ot&lt;br /&gt;
|-&lt;br /&gt;
|[[GetTimestampOffset]]&lt;br /&gt;
|[[User:Siann_Beck|Siann Beck]]&lt;br /&gt;
|Returns [[llGetTimestamp]] with an hour offset.&lt;br /&gt;
|-&lt;br /&gt;
|[[Give InvItem every n hours]]&lt;br /&gt;
|{{User|Criz Collins}}&lt;br /&gt;
|Will give an inventory item on touch only every n hours, even if somebody touches the object more than once.&lt;br /&gt;
|-&lt;br /&gt;
|[[Give random object]]&lt;br /&gt;
|{{User|Emmas Seetan}}&lt;br /&gt;
|Touch to receive a random object in the prim&#039;s inventory&lt;br /&gt;
|-&lt;br /&gt;
|[[Giver]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A menu-driven script that will hand out the objects in a prim. Supports multiple pages.&lt;br /&gt;
|-&lt;br /&gt;
|[[Google Charts]]&lt;br /&gt;
|{{User|Dedric Mauriac}}&lt;br /&gt;
|Create links to display raw data as a chart image.&lt;br /&gt;
|-&lt;br /&gt;
|[[Google_Translator]]&lt;br /&gt;
|{{User|Ugleh Ulrik}}&lt;br /&gt;
|Translates spanish to english, and its simple to make it any other way.&lt;br /&gt;
|-&lt;br /&gt;
|[[Go transparent when walking]]&lt;br /&gt;
|{{User|Emmas Seetan}}&lt;br /&gt;
|An attachment that goes invisible when you walk and visible when you don&#039;t walk.&lt;br /&gt;
|-&lt;br /&gt;
|[[Great Wanderer]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A movement system based on [[Wizardry and Steamworks|State Machines]] which provides free roaming.&lt;br /&gt;
|-&lt;br /&gt;
|[[Greeter]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A multi-purpose greeter with multiple options (IM, landmark, notecard, URL, visitor statistics, shared access and compatible with the [[Mail]] system) that could work for shops, clubs, galleries and any other public place.&lt;br /&gt;
|-&lt;br /&gt;
|[[Group Authorization]]&lt;br /&gt;
|{{User|Chase Quinnell}}&lt;br /&gt;
|Checks to see if object is set to appropriate group (checks by [[Group key finder|group key]])&lt;br /&gt;
|-&lt;br /&gt;
|[[Group key finder]]&lt;br /&gt;
|{{User|Emmas Seetan}}&lt;br /&gt;
|Touch to find the key of the group&lt;br /&gt;
|-&lt;br /&gt;
|[[Group Privacy]]&lt;br /&gt;
|{{User|Chance Unknown}}&lt;br /&gt;
|Security device to insure members of a group can have a private area. Deactivates when nobody present.&lt;br /&gt;
|-&lt;br /&gt;
|[[Hello Avatar]]&lt;br /&gt;
|Linden Lab&lt;br /&gt;
|SL&#039;s default script.&lt;br /&gt;
|-&lt;br /&gt;
|[[Hello Avatar Companion]]&lt;br /&gt;
|[[Chase Quinnell]]&lt;br /&gt;
|Companion to the original [[Hello Avatar]] script&lt;br /&gt;
|-&lt;br /&gt;
|[[Hierarchics]]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
| Advanced script to create an efficient self-aware hierarchic structure.&lt;br /&gt;
|-&lt;br /&gt;
|[[Hierarchics2]]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
| Second generation, one script per object. Only two functions, can be embedded in others. Uses the new [[llSetLinkPrimitiveParamsFast]]/[[llGetLinkPrimitiveParams]] functions.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Rolig_Loon/High-Capacity_Greeter-Counter|High-Capacity Greeter-Counter]]&lt;br /&gt;
|{{User|Rolig Loon}}&lt;br /&gt;
|Uses a memory compression algorithm to store hashed visitor UUID&#039;s in a string instead of using a list.&lt;br /&gt;
|-&lt;br /&gt;
|[[Holodeck]]&lt;br /&gt;
|{{User|Revolution Perenti}}&lt;br /&gt;
|Home Rezzing System.&lt;br /&gt;
|-&lt;br /&gt;
|[[HUD Dots Radar]]&lt;br /&gt;
|[[User:Cerise Sorbet|Cerise]]&lt;br /&gt;
|HUD target example, draws dots on the HUD over avatars in view.&lt;br /&gt;
|-&lt;br /&gt;
|[[I Got It]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|Educational tool to provide feedback from students.&lt;br /&gt;
|-&lt;br /&gt;
|[[Intercom|Intercom]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A system allowing region-wide and grid-wide (as of 30 of August 2011, it also works grid-wide, a test was performed by linking up the chat between the OSGrid and SecondLife) mass chat relay. By using this you can relay a main chat across multiple regions or grids. The script was initially meant as a mid-way project in order to test and gather information for the [[Distributed Primitive Database]].&lt;br /&gt;
|-&lt;br /&gt;
|[[Interpolation|Interpolation Library]]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
|A small set of interpolation functions.&lt;br /&gt;
|-&lt;br /&gt;
|[[Intra-Region Update Server]]&lt;br /&gt;
|[[User:Emma_Nowhere|Emma Nowhere]]&lt;br /&gt;
|Centrally update objects such as Freeview screens or teleport pads within a region that are configured by notecards or contain modifiable objects or media assets.&lt;br /&gt;
|-&lt;br /&gt;
|[[Inventory_Based_Menu]]&lt;br /&gt;
|{{User|Revolution Perenti}}&lt;br /&gt;
|Inventory Based Menu System.&lt;br /&gt;
|-&lt;br /&gt;
|[[iTunes RPC Email|iTunes RPC]]&lt;br /&gt;
|{{User|Fox Diller}}&lt;br /&gt;
|iTunes RPC via LSL [[llEmail]] and [[llRemoteDataReply]].&lt;br /&gt;
|-&lt;br /&gt;
|[[Jingle]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A script that will make a primitive emit a sound when you wear it and walk around. Ideal for bells, footsteps and so on...&lt;br /&gt;
|-&lt;br /&gt;
|[[Key Frame Animator|Keyframe Animator]]&lt;br /&gt;
|{{User|Jasper Flossberg}}&lt;br /&gt;
| This is a KeyFrame Animator Script to simplify construction of keyframed animations.&lt;br /&gt;
|-&lt;br /&gt;
|[[Key Pad Door|Keypad Door]]&lt;br /&gt;
|{{User|Tdub Dowler}}&lt;br /&gt;
| Door and keypad with changeable code. Follow instructions carefully!&lt;br /&gt;
|-&lt;br /&gt;
|[[Key2Name]]&lt;br /&gt;
|{{User2|Nika Rugani}}&lt;br /&gt;
| Key2Name service where a user no longer needs to be in the same region to get users name&lt;br /&gt;
|-&lt;br /&gt;
|[[Kilt Editor|Kilt / Skirt Editor]]&lt;br /&gt;
|{{User|Brangus Weir}}&lt;br /&gt;
| This changes all the parameters of all the flexis in the link set in one swell foop!&lt;br /&gt;
|-&lt;br /&gt;
|[[Kira Warp Core Drive]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|Scripts and instructions on how to create a vehicle that teleports an avatar and a vehicle to any region on the grid. You can [http://www.youtube.com/watch?v=xQkBRD7HBvw watch the YouTube video showing the prototype] I created to demonstrate how it works.&lt;br /&gt;
|-&lt;br /&gt;
|[[Last Sound System]]&lt;br /&gt;
|Babbage Linden&lt;br /&gt;
|An LSL [http://Last.fm Last.fm] client.&lt;br /&gt;
|-&lt;br /&gt;
|[[LibraryDisplayLandScreenshot]]&lt;br /&gt;
|{{User|Jon Desmoulins}}&lt;br /&gt;
|A modified version of LibraryDisplayProfilePic using the new [[PARCEL_DETAILS_ID]] Implemented in Server v1.36&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Daemonika_Nightfire/Scripts/LinkNumber-List_in_llSetLinkPrimitiveParamsFast|LinkNumber-List_in_llSetLinkPrimitiveParamsFast]]&lt;br /&gt;
|{{User|Daemonika Nightfire}}&lt;br /&gt;
|Changed several prims in linkset with the same parameters, with a list. Without separate llSetLinkPrimitiveParams for each prim. (ideal for show/hide effects)&lt;br /&gt;
|-&lt;br /&gt;
|[[Limit Vendor]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|This is a vendor supporting any number of items with different prices which will only dispense a certain number of individual items by setting limits for each item based on a notecard configuration.&lt;br /&gt;
|-&lt;br /&gt;
|[[Linkset resizer]]&lt;br /&gt;
|Maestro Linden&lt;br /&gt;
|Systematically rescales a linkset by moving and resizing each prim (by using [[llGetLinkPrimitiveParams]] and [[llSetLinkPrimitiveParamsFast]])&lt;br /&gt;
|-&lt;br /&gt;
|[[Linkset resizer with menu]]&lt;br /&gt;
|{{User|Brilliant Scientist}}&lt;br /&gt;
|A menu-driven script that rescales a linkset by moving and resizing the prims using [[llGetLinkPrimitiveParams]] and [[llSetLinkPrimitiveParamsFast]] functions. Based on [[Linkset resizer]].&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Daemonika_Nightfire/Scripts/*DS*_Resize_Script|Resize Script (m/c/t) v2.0.01]]&lt;br /&gt;
|{{User|Daemonika Nightfire}}&lt;br /&gt;
|Single resize script for a complete linkset with save and restore option.&lt;br /&gt;
|-&lt;br /&gt;
|[[Pointing Stick]]&lt;br /&gt;
|{{User|rhonin Nissondorf}}&lt;br /&gt;
|A device that takes controls of your arrow keys and directs the device in the relative direction its pointing, forward and back of course.&lt;br /&gt;
|-&lt;br /&gt;
|[[Gun Script]]&lt;br /&gt;
|[[User:rhonin Nissondorf| rhonin Nissondorf]]&lt;br /&gt;
|Shoots out &amp;quot;ammo&amp;quot; from the root prim of your &amp;quot;gun&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|[[Grenade Script]]&lt;br /&gt;
|[[User:rhonin Nissondorf| rhonin Nissondorf]]&lt;br /&gt;
|Uses a timed factor to add influence to the velocity of a throw object.&lt;br /&gt;
|-&lt;br /&gt;
|[[Linkset Resizer 2]]&lt;br /&gt;
|{{User|Emma Nowhere}}&lt;br /&gt;
|A more user-friendly resizer script designed for either drop-in use by the end-user or builder or for use in products. Based on [[Fix Small Prims]].&lt;br /&gt;
|-&lt;br /&gt;
|[[List2CSV]]&lt;br /&gt;
|{{User|Kunnis Basiat}}&lt;br /&gt;
|Similar to [[llList2CSV]] &amp;amp; [[llCSV2List]] which includes preserving type and escaping characters.&lt;br /&gt;
|-&lt;br /&gt;
|[[list_cast]]&lt;br /&gt;
|{{User2|Fractured Crystal}}&lt;br /&gt;
|Casts a list of strings into the type they appear to be. Designed for preprocessing user input for feeding into [[llSetPrimitiveParams]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Listener Script]]&lt;br /&gt;
|{{User|Emmas Seetan}}&lt;br /&gt;
|Use to [[listen]] to other people&#039;s conversations (Like spying)&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Functions#List:_Find_Last_Index|List: Find Last Index]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|Returns the last index of searched item in a source list. (backwards version of [[llListFindList]])&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Functions#List:_Multi-Find_Index_.28First_or_Last.29|List: Multi Find]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|Returns the first found index of multiple search items in a list. (Multi-item version of [[llListFindList]]. Fwd and Rev versions included)&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Functions#List:_Get_Reverse_Order|List: Reverse]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|Returns an input List in reverse order&lt;br /&gt;
|-&lt;br /&gt;
|[[LinksetIndexing]]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
|Functions for indexing a linkset by patterns or names down to their linkset numbers.&lt;br /&gt;
|-&lt;br /&gt;
|[[llGetAgentList Sim-Wide Radar]]&lt;br /&gt;
|{{User|Tiaeld Tolsen}}&lt;br /&gt;
|Simple radar implementation using the new [[llGetAgentList]] LSL Function.&lt;br /&gt;
|-&lt;br /&gt;
|[[Live Event Timeout]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A script which will set the the music URL back to a radio station of your liking when a DJ leaves or forgets to switch back the URL after a live event. It takes multiple DJs, using a notecard and several configuration parameters.&lt;br /&gt;
|-&lt;br /&gt;
|[[Load URL]]&lt;br /&gt;
|{{User|Emmas Seetan}}&lt;br /&gt;
|Touch to get a dialog to visit the URL inside the script.&lt;br /&gt;
|-&lt;br /&gt;
|[[LOGO Turtle]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A script that interprets basic LOGO commands, extending the directions to 3D.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Kephra_Nurmi/lsDancemachine|lsDancemachine]]&lt;br /&gt;
|[[User:Kephra_Nurmi|Kephra Nurmi]]&lt;br /&gt;
| Low lag client server dancemachine.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Kephra_Nurmi/lsDeejay|lsDeejay Home Edition]]&lt;br /&gt;
|[[User:Kephra_Nurmi|Kephra Nurmi]]&lt;br /&gt;
| Client server media control for music, video, youtube, pictures, and texture animations.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Kephra_Nurmi/lsDialog|lsDialog]]&lt;br /&gt;
|[[User:Kephra_Nurmi|Kephra Nurmi]]&lt;br /&gt;
| Universal notecard driven menu dialog system.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Kephra_Nurmi/lsDisplay|lsDisplay]]&lt;br /&gt;
|[[User:Kephra_Nurmi|Kephra Nurmi]]&lt;br /&gt;
| Picture cycler with preloader.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Kephra_Nurmi/lsDistributor|lsDistributor]]&lt;br /&gt;
|[[User:Kephra_Nurmi|Kephra Nurmi]]&lt;br /&gt;
| Simple &#039;try&#039; and &#039;buy&#039; vendor system.&lt;br /&gt;
|-&lt;br /&gt;
|[[Wizardry_and_Steamworks/LSL|LSL FUSS]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|FUSS (Frequently Used Short Snippets) is an collection of short snippets provided by [[Wizardry and Steamworks]]. They range from functions to one-liners and are provided for LSL developers.&lt;br /&gt;
|-&lt;br /&gt;
|[[LSL_languageAPI]]&lt;br /&gt;
|{{User|Gypsy Paz}}&lt;br /&gt;
|Multi-lingual API from notecard based language files&lt;br /&gt;
|-&lt;br /&gt;
|[[Mail]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|An system for sending objects to multiple recipients automatically supporting shared access and [[Greeter]] compatible auto-subscriptions.&lt;br /&gt;
|-&lt;br /&gt;
|[[Mandelbrot Explorer]]&lt;br /&gt;
|Babbage Linden&lt;br /&gt;
|An interactive fractal explorer.&lt;br /&gt;
|-&lt;br /&gt;
|[[Materialization Effects]]&lt;br /&gt;
|{{User|Overbrain Unplugged}}&lt;br /&gt;
| Special effects to add to rezzing events to simulate a teleportation or materialization.&lt;br /&gt;
|-&lt;br /&gt;
|[[Materialization Effects 2]]&lt;br /&gt;
|{{User2|Nika Rugani}}&lt;br /&gt;
| More efficient and faster version of Materialization Effects by Overbrain Unplugged.&lt;br /&gt;
|-&lt;br /&gt;
|[[Memory Module]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|An example of pseudo-persistent variable in-world storage.&lt;br /&gt;
|-&lt;br /&gt;
|[[Merge Sort]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
|Implements a Merge Sort in LSL, however this code is 300(ish) times slower than [[llListSort]]. Don&#039;t use this in a script!&lt;br /&gt;
|-&lt;br /&gt;
|[[Minesweeper]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
|A simple minesweeper game.&lt;br /&gt;
|-&lt;br /&gt;
|[[Mood Color Changer]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A script that changes the color of all primitives in a linkset depending on the smileys the owner types on the main chat.&lt;br /&gt;
|-&lt;br /&gt;
|[[Morse Code]]&lt;br /&gt;
|{{User|Bobbyb30 Swashbuckler}}&lt;br /&gt;
|A script that allows for the conversion to and from morse code and can &amp;quot;play&amp;quot; morse code.&lt;br /&gt;
|-&lt;br /&gt;
|[[Multi-displays Texture Cycler]]&lt;br /&gt;
|{{User|Nargus Asturias}}&lt;br /&gt;
|A simple texture rotator designed for multiple display screens. With delay between each screen AND delay between each loop.&lt;br /&gt;
|-&lt;br /&gt;
|[[Multi Item Rezzer|Multi Item Rezzer]]&lt;br /&gt;
|{{User|Jesse Barnett}}&lt;br /&gt;
|A rework of my old High Altitude Rezzer. Place the objects that you wish to choose from to be rezzed inside. Sit on the rezzer and pick the item and the height. It will go to target height and rez the object.&lt;br /&gt;
|-&lt;br /&gt;
|[[Multirezzer|Multirezzer (on collision)]]&lt;br /&gt;
|{{User2|Beet Streeter}}&lt;br /&gt;
|Spawns up to 10 objects when the object containing the script collides with a user.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Allen_Kerensky/Myriad_Lite_Preview_5|Myriad Lite Preview 5 RPG System]]&lt;br /&gt;
|[[User:Allen_Kerensky|Allen Kerensky]]&lt;br /&gt;
|Working preview of the Myriad Universal RPG System by Ashok Desai, converted to LSL as a roleplay meter with quest NPC and goals, hand-to-hand and melee close combat, ranged combat, armor, healing, bullet, firearm, holster, practice target, and much more&lt;br /&gt;
|-&lt;br /&gt;
|[[N2K]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A Name To Key (Name2Key) implementation that does not use third-party databases, nor relies on the uptime of not well known websites but rather uses the World Wide Web Consortium to fetch the key of avatars while trying to alert the developers of the consequences of using Name2Key third-party providers as well as trying to refrain from sales pitch terminology such as &amp;quot;best&amp;quot;, &amp;quot;newest&amp;quot; and &amp;quot;fastest&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|[[Name2Key in LSL]]&lt;br /&gt;
|{{User|Maeva Anatine}}&lt;br /&gt;
|Get the Name2Key feature inside your scripts. Works even on lastly subscribed avatars.&lt;br /&gt;
|-&lt;br /&gt;
|[[Name2Key]]&lt;br /&gt;
|{{User2|Nika Rugani}}&lt;br /&gt;
|Newest and fastest Name2Key search, While the database is small it is also connected to Second Life&#039;s search.&lt;br /&gt;
|-&lt;br /&gt;
|[[NexiiText]]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
| Text Renderer, specialised in features, performance and a compact nature. It features unique per character control, such as Colour, Bold, Italics, Underline, Stroke, Icons. The high performance means it comes in at a 5 char / prim ratio, but it is perfect where highly dynamic and rich text is required.&lt;br /&gt;
|-&lt;br /&gt;
|[[NexiiText2]]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
| Second Gen Text Renderer. Same as above but features use of [[PRIM_LINK_TARGET]] and an awesome dynamic prim allocation architecture.&lt;br /&gt;
|-&lt;br /&gt;
|[[No Auto-Return]]&lt;br /&gt;
|{{User|Bellla Clarity}}&lt;br /&gt;
|To stop your long and hard builds from getting returned in sandboxes (&#039;&#039;only single prims, though!&#039;&#039;).&lt;br /&gt;
|-&lt;br /&gt;
|[[No Auto-Return NR]]&lt;br /&gt;
|{{User|Jor3l Boa}}&lt;br /&gt;
|This really works (29-05-09), needs a nearby region to do the trick and avoid auto return. (Tested on Blue and Rausch)&lt;br /&gt;
|-&lt;br /&gt;
|[[No Auto-Return (Multi)]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
|A revision of Bella&#039;s that works for multi-prim objects.&lt;br /&gt;
|-&lt;br /&gt;
|[[No Limit Teleporter]]&lt;br /&gt;
|{{User|Morgam Biedermann}}&lt;br /&gt;
|Teleport to infinite altitudes (up to 4096m)&lt;br /&gt;
|-&lt;br /&gt;
|[[Object Size]]&lt;br /&gt;
|{{User|Chase Quinnell}}&lt;br /&gt;
|Gets the dimensions and footprint of a linkset&lt;br /&gt;
|-&lt;br /&gt;
|[[Object to Data v1.4|Object to Data]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
|Turns an object into text (and back). Allows people to transfer objects through notecards (or otherwise).&lt;br /&gt;
|-&lt;br /&gt;
|[[Online Indicator|Online Indicator]]&lt;br /&gt;
|{{User|Kristy Fanshaw}}&lt;br /&gt;
|Will show if the user is online or not. Displays users profile picture and allows to send IM&#039;s to user. Also gives a link to open the users profile&lt;br /&gt;
|-&lt;br /&gt;
|[[Open Group Join]]&lt;br /&gt;
|{{User|Alicia Stella}}&lt;br /&gt;
|User Touches Object to Join Group from Group Info window, (no bot.)&lt;br /&gt;
|-&lt;br /&gt;
|[[Open Prim Animator]]&lt;br /&gt;
|{{User|Todd Borst}}&lt;br /&gt;
|Single script prim animation tool.  Menu driven, easy to use.&lt;br /&gt;
|-&lt;br /&gt;
|[[Open Zyngo Skin Installer]]&lt;br /&gt;
|{{User2|Tmzasz Luminos}}&lt;br /&gt;
|A Simple Script designed to install skins on the popular Skill machines.&lt;br /&gt;
|-&lt;br /&gt;
|[[Orbitor]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|Based on [[Wanderer]], we create [[Orbitor]] which allows a primitive to orbit around an origin point.&lt;br /&gt;
|-&lt;br /&gt;
|[[One Script, many doors]]&lt;br /&gt;
|{{User|Kyrah Abattoir}}&lt;br /&gt;
|Door script able to manage more than 50 linked doors from a single script instance.&lt;br /&gt;
|-&lt;br /&gt;
|[[ParseString2List]]&lt;br /&gt;
|{{User|Strife Onizuka}}&lt;br /&gt;
|Same as [[llParseString2List]] and [[llParseStringKeepNulls]], but not limited to 8 spacers or separators. Thus substitute a call to the [[llParseString2List]] and [[llParseStringKeepNulls]] functions by a call to [[Parse_String_To_List|ParseString2List]] whenever you have more than 8 separators or more than 8 spacers.&lt;br /&gt;
|-&lt;br /&gt;
|[[Password Generator]]&lt;br /&gt;
|{{User2|Syntrax Canucci}}&lt;br /&gt;
|This is an over-complicated, semi-complex password generator, which goes through multiple steps.&lt;br /&gt;
|-&lt;br /&gt;
|[[Pathfinder]]&lt;br /&gt;
|Babbage Linden&lt;br /&gt;
|A potential field based pathfinding library.&lt;br /&gt;
|-&lt;br /&gt;
|[[Pay to Strip]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|This script is mainly meant for dancers and uses RLV to allow people to strip an avatar by making every clothes and attachment piece removable, respectively detachable for a settable price.&lt;br /&gt;
|-&lt;br /&gt;
|[[Permanent Primitive URL]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A script that uses [http://tiny.cc http://tiny.cc] REST API to update a SIM URL and make it permanent. Full description on how to register and set up a &amp;quot;nice&amp;quot; URL, like: http://tiny.cc/Kira. Should work with most URL shortening services (I&#039;m not affiliated with tiny.cc except for having a pass at them for not allowing OpenSIM-style generated URLs).&lt;br /&gt;
|-&lt;br /&gt;
|[[Personal ATM Machine]]&lt;br /&gt;
|{{User|Jessikiti Nikitin}}&lt;br /&gt;
|Allows deposits and withdrawals into another of your accounts, without the account being logged in.&lt;br /&gt;
|-&lt;br /&gt;
|[[Phantom Child]]&lt;br /&gt;
|{{User|Aeron Kohime}}&lt;br /&gt;
|Causes a child in a link set to become phantom without the entire object becoming phantom.&lt;br /&gt;
|-&lt;br /&gt;
|[[PHP_RegionFunctions]]&lt;br /&gt;
|{{User|Gypsy Paz}} and {{User2|Zayne Exonar}}&lt;br /&gt;
|Three useful PHP functions to get region info&lt;br /&gt;
|-&lt;br /&gt;
|[[PhysicsLib]]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
| Interesting set of fun physics functions.&lt;br /&gt;
|-&lt;br /&gt;
|[[Planar Tile Generator]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A script to generate perfectly aligned tiles.&lt;br /&gt;
|-&lt;br /&gt;
|[[Play and Loop Sound]]&lt;br /&gt;
|{{User|Bellla Clarity}}&lt;br /&gt;
|Very short and simple script; plays and loops a sound in an object.&lt;br /&gt;
|-&lt;br /&gt;
|[[Posing stand|Posing Stand]]&lt;br /&gt;
|{{User|Bellla Clarity}}&lt;br /&gt;
|Just a pose script to edit [[attachments]] more easily.&lt;br /&gt;
|-&lt;br /&gt;
|[[PosJump]]&lt;br /&gt;
|{{User|Uchi Desmoulins}}&lt;br /&gt;
|A much more efficient alternative to the popular [[warpPos]] function for bypassing 10m distance-moved limitations.&lt;br /&gt;
|-&lt;br /&gt;
|[[Puppeteer]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A simple puppeteer script that will allow you to record and animate prim movements and rotations.&lt;br /&gt;
|-&lt;br /&gt;
|[[Primitive Name Changer]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
| A script that changes the primitive&#039;s name based on an user-configurable interval and a notecard list containing possible names.&lt;br /&gt;
|-&lt;br /&gt;
|[[Prefix Calculator]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
| A calculator that evaluates expressions in prefix notation.&lt;br /&gt;
&amp;lt;code&amp;gt;+ 3 4 = 5. * + 1 2 + 3 4 = 14.&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[Profile Generator]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A cynical script for generating boilerplate profiles by based on cliches and profile memes.&lt;br /&gt;
|-&lt;br /&gt;
|[[Profile Picture]]&lt;br /&gt;
|[[User: Jor3l Boa|Jor3l Boa]]&lt;br /&gt;
|A working profile picture script with the new SecondLife API (1/11/2011)&lt;br /&gt;
|-&lt;br /&gt;
|[[Progress Bar]]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
| Flexible and powerful little function for creating progress bars useful in hovertext.&lt;br /&gt;
|-&lt;br /&gt;
|[[Pseudo-random Number Generator]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
|Generates a Pseudo-random number between -0x7FFFFFFF and 0x7FFFFFFF&lt;br /&gt;
|-&lt;br /&gt;
|[[Quick Collar]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A simple, no-bulk, no external database and essential feature-packed RLV collar script for your pleasures.&lt;br /&gt;
|-&lt;br /&gt;
|[[Quicksort]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|LSL implementation of the Quicksort algorithm.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Rolig_Loon/Quiz_From_Notecard|Quiz From Notecard]]&lt;br /&gt;
|{{User|Rolig Loon}}&lt;br /&gt;
|A multiple-choice testing script that reads questions and answer choices from a notecard and presents them in dialog boxes.&lt;br /&gt;
|-&lt;br /&gt;
|[[Racter]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|In-world, multi-purpose chatterbot (Eliza/A.L.I.C.E. inspired) supporting multiple configurable hot-swappable brain-files with a wide range of applications.&lt;br /&gt;
|-&lt;br /&gt;
|[[Rainbow_palette]]&lt;br /&gt;
|{{User|Rui Clary}}&lt;br /&gt;
|Build a color picker, using only one prim, and a few lines of code.&lt;br /&gt;
|-&lt;br /&gt;
|[[Random Gaussian Number Generator]]&lt;br /&gt;
|{{User2|Vlad Davidson}}&lt;br /&gt;
|Generates a random number drawn from a normal (Gaussian; bell-curve) distribution, based on a specified mean/stdev&lt;br /&gt;
|-&lt;br /&gt;
|[[Random AV Profile Projector]]&lt;br /&gt;
|{{User|Debbie Trilling}}&lt;br /&gt;
|Randomly selects an AV from a crowd &amp;amp; then projects their profile picture as a &#039;holographic&#039; image&lt;br /&gt;
|-&lt;br /&gt;
|[[Random Object Vendor]]&lt;br /&gt;
|{{User|CodeBastard Redgrave}}&lt;br /&gt;
|Simple vendor that gives out random objects when paid the right amount&lt;br /&gt;
|-&lt;br /&gt;
|[[Random Password Generator]]&lt;br /&gt;
|{{User|Jor3l Boa}}&lt;br /&gt;
|Generate Random passwords based on String Length.&lt;br /&gt;
|-&lt;br /&gt;
|[[RandomPrimParams]]&lt;br /&gt;
|{{User|Xintar Citron}}&lt;br /&gt;
|Simple script which randoms Prim Parameteres, in this example i used color, but you can use everything.&lt;br /&gt;
|-&lt;br /&gt;
|[[RavText]]&lt;br /&gt;
|{{User|Ravenous Dingo}}&lt;br /&gt;
|An alternate to XyText.  This is a lightweight, multiple font 10 character text display system.  It only supports uppercase alphanumeric text and a few special characters, but it is very fast, renders quickly and supports multiple fonts. It is meant for specialized use when all that is desired is basic, fast text display and the extra &amp;quot;bells and whistles&amp;quot; are not needed.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:PixelProphet Lane/Scripts#Real Object Inventory To Dialog|Real Object Inventory To Dialog]]&lt;br /&gt;
|{{User|PixelProphet Lane}}&lt;br /&gt;
|Display any amount of items contained in an Object in a Dialog, regardless of item name length.&lt;br /&gt;
|-&lt;br /&gt;
|[[RentalBoxv1|Rental Box, Simply]]&lt;br /&gt;
|{{User2|Sendao Goodman}}&lt;br /&gt;
|Simple explanation of how to make rental boxes.&lt;br /&gt;
|-&lt;br /&gt;
|[[Rental Cube]]&lt;br /&gt;
|{{User|Hank Ramos}}&lt;br /&gt;
|Simple cube for renting out a space.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Daemonika_Nightfire/Scripts/*DS*_Rental-Cube|Rental-Cube]]&lt;br /&gt;
|{{User|Daemonika Nightfire}}&lt;br /&gt;
|This is an Open-Source version of a Rental-Cube from Daemonika Nightfire. Just copy/paste this script into a inworld lsl-script and add one notecard called Info/Rules to the content of your cube.&lt;br /&gt;
|-&lt;br /&gt;
|[[Remote Texture Loader]]&lt;br /&gt;
|{{User|Bobbyb30 Swashbuckler}}&lt;br /&gt;
|A set of scripts for remotely loading textures within a sim. This means that a single &amp;quot;texture server&amp;quot; can manage multiple changing billboards within a sim.&lt;br /&gt;
|-&lt;br /&gt;
|[[Say Region Frames Per Second|Region Frames Per Second]]&lt;br /&gt;
|{{User2|Heymeriou Mystakidou}}&lt;br /&gt;
| Says the region name and frames per second out loud on command.&lt;br /&gt;
|-&lt;br /&gt;
|[[Security Orb|Security Orb]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A regular security orb that ejects people from a land parcel supporting a menu configuration and a notecard based access list.&lt;br /&gt;
|-&lt;br /&gt;
|[[Resizer multi-prims|Resizer multi-prims]]&lt;br /&gt;
|{{User2|Christy Mansbridge}}&lt;br /&gt;
|1 Mono script to resize object (1 to 256 prims) by blue menu. Avoid risk to break the build by increasing link distance.&lt;br /&gt;
|-&lt;br /&gt;
|[[RLV Collision Grabber]]&lt;br /&gt;
|[[User:Vala_Vella|Vala Vella]]&lt;br /&gt;
|Grab people colliding with the object and sit them on a set target using RLV&lt;br /&gt;
|-&lt;br /&gt;
|[[sbDialog]]&lt;br /&gt;
|[[User:Siann_Beck|Siann Beck]]&lt;br /&gt;
|A simple replacement function for [[llDialog]]. It re-orders the button list so that the button values, as passed to it, display left-to-right, top-to-bottom. It also opens a [[llListen|listen]] on the specified channel, and returns the handle.&lt;br /&gt;
|-&lt;br /&gt;
|[[Scheduled Payments]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A script that will allow you to make scheduled (and reoccurring) payments to multiple avatars via a notecard.&lt;br /&gt;
|-&lt;br /&gt;
|[[Scheduler]]&lt;br /&gt;
|{{User|Haravikk Mistral}}&lt;br /&gt;
|Schedule multiple events using a single script timer&lt;br /&gt;
|-&lt;br /&gt;
|[[Scheme_Interpreter|Scheme Interpreter]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
|A scheme interpreter capable of handling most scheme expressions, including lambda and lists.&lt;br /&gt;
|-&lt;br /&gt;
|[[Script Override Functions]]&lt;br /&gt;
|{{User|Revolution Perenti}}&lt;br /&gt;
|bypass default strings, integer etc in chat channel.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Toady_Nakamura/Scrubber_Script|Script Scrubber]]&lt;br /&gt;
|{{User|Toady Nakamura}}&lt;br /&gt;
|Script scrubs memory resident script functions from prim and self-deletes the script. Does not damage the prim, or remove other scripts.  Use this to kill bling or other particle effects!&lt;br /&gt;
|-&lt;br /&gt;
|[[Scripted Attachment Detector.lsl|Scripted Attachment Detector]]&lt;br /&gt;
|{{User|Bobbyb30 Swashbuckler}}&lt;br /&gt;
|A script that will display avatars wearing scripted attatchments in hovertext. This may be worn as an hud or rezzed.&lt;br /&gt;
|-&lt;br /&gt;
|[[Self Upgrading Script Enhanced]]&lt;br /&gt;
|{{User|Cron Stardust}}&lt;br /&gt;
|Keeps only latest version of the script on prim (even with multiple adds of the same script!)&lt;br /&gt;
|-&lt;br /&gt;
|[[Sensor Visualizer]]&lt;br /&gt;
|{{User|Cerise Sorbet}}&lt;br /&gt;
|Shows the size and shape you get with [[llSensor]] range and arc parameters&lt;br /&gt;
|-&lt;br /&gt;
|[[Serverless Key Exchange]]&lt;br /&gt;
|{{User2|Sendao Goodman}}&lt;br /&gt;
|Maintains a network of object keys without using an external server.&lt;br /&gt;
|-&lt;br /&gt;
|[[SHA-1|SHA-1 Hash]]&lt;br /&gt;
|{{User|Strife Onizuka}}&lt;br /&gt;
|Performs a SHA-1 Hash on an input text. Similar to MD5 only (slightly) more secure.&lt;br /&gt;
|-&lt;br /&gt;
|[[SHA-2|SHA-2 Hash]]&lt;br /&gt;
|{{User|Strife Onizuka}}&lt;br /&gt;
|Performs a SHA-2 Hash on an input text. Similar to SHA-1 only (slightly) more secure.&lt;br /&gt;
|-&lt;br /&gt;
|[[Shoutcast - radio controller v0.3 (remake of similar scripts)]]&lt;br /&gt;
|{{User|Flennan Roffo}}&lt;br /&gt;
|Control your shoutcast radio stations with this shoutcast controller. Uses notecard for info about genres and stations and menu to select the station. Sends info to Xytext display.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:PixelProphet Lane/Scripts#Show Agent Script Count and memory|Show Agent Script Count and memory]]&lt;br /&gt;
|{{User|PixelProphet Lane}}&lt;br /&gt;
|Fast and efficient method to display the amount of scripts and memory usage for an agent&lt;br /&gt;
|-&lt;br /&gt;
|[[Sim Map Particle Projector]]&lt;br /&gt;
|{{User|Jesse Barnett}}&lt;br /&gt;
|Displays a floating map of the sim the script is in.&lt;br /&gt;
|-&lt;br /&gt;
|[[Sim Performance Collector (Web-based]]&lt;br /&gt;
|{{User2|DeniseHoorn Slade}}&lt;br /&gt;
|Makes some graphs for your website on the sim-performance (DIL,FPS, PING). PHP and Round Robin Database on Server needed!&lt;br /&gt;
|-&lt;br /&gt;
|[[Sim Restart Logger]]&lt;br /&gt;
|{{User|Kyrah Abattoir}}&lt;br /&gt;
|Counts region restarts and displays log of last 9 restarts together with region FPS and dilation.&lt;br /&gt;
|-&lt;br /&gt;
|[[SIM status]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A script that will scan and display the status of SIMs (up, down, starting, stopping, unknown, crashed) from a notecard in the same prim as the script.&lt;br /&gt;
|-&lt;br /&gt;
|[[Simple Elevator in a Box]]&lt;br /&gt;
|{{User|Hank Ramos}}&lt;br /&gt;
|Simple elevator example.&lt;br /&gt;
|-&lt;br /&gt;
|[[Simple Pay Door]]&lt;br /&gt;
|{{User|Giygas Static}}&lt;br /&gt;
|Simple door you pay to get access.&lt;br /&gt;
|-&lt;br /&gt;
|[[Skillingo AntiHack Script]]&lt;br /&gt;
|{{User2|Tmzasz Luminos}}&lt;br /&gt;
|A simple Protection script for skillingo thats modifyable to work with other machines.&lt;br /&gt;
|-&lt;br /&gt;
|[[Skunk Money]]&lt;br /&gt;
|{{User|Hank Ramos}}&lt;br /&gt;
|Fun gambling machine of yesteryear, which only supports freeplay now due to SL regulations against gambling.&lt;br /&gt;
|-&lt;br /&gt;
|[[SLateIt]]&lt;br /&gt;
|Babbage Linden&lt;br /&gt;
|An augmented virtual reality HUD.&lt;br /&gt;
|-&lt;br /&gt;
|[[SLetanque]]&lt;br /&gt;
|Babbage Linden&lt;br /&gt;
|An LSL petanque game.&lt;br /&gt;
|-&lt;br /&gt;
|[[SLURL HUD]]&lt;br /&gt;
|{{User|CodeBastard Redgrave}}&lt;br /&gt;
|Touch this HUD to get a SLURL through IM, email and floating text.&lt;br /&gt;
|-&lt;br /&gt;
|[[BuildSlurl (NewAge)]]&lt;br /&gt;
|{{User2|Archile Azalee}}&lt;br /&gt;
|A way to create a SLurl in a single function BuildSlurl&lt;br /&gt;
|-&lt;br /&gt;
|[[SL Mail V1.2]]&lt;br /&gt;
|{{User|Flennan Roffo}}&lt;br /&gt;
|Second Life mail client V1.2 (released sept&#039;07). Send and receive mail from within Second Life from and to any address. With Address Book function and many chat commands. V1.3 is upcoming soon!&lt;br /&gt;
|-&lt;br /&gt;
|[[SL_NTPoHTTP_v1.1_client|SL NTPoHTTP client]]&lt;br /&gt;
|{{User|SignpostMarv Martin}}&lt;br /&gt;
|Second Life Needs Time Parsing over Hyper Text Transfer Protocol&lt;br /&gt;
Emulates the function of [[llGetWallclock]] for any timezone by using SLOpenID&#039;s SLNTPoHTTP service. Also supports ISO 8601 and RFC 2822 timestamps. Script is dependent upon an external service operated by the author!&lt;br /&gt;
|-&lt;br /&gt;
|[[Slide Display]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A display for presentations or talks supporting multiple slides as well as zooming-in on the slides.&lt;br /&gt;
|-&lt;br /&gt;
|[[Smile]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|An extended smile script supporting two smiles (extendable via a list) and a time delay triggering them at random.&lt;br /&gt;
|-&lt;br /&gt;
|[[Smooth Rotating Door]]&lt;br /&gt;
|{{User|Toy Wylie}}&lt;br /&gt;
|A script for doors that open and close smoothly using llTargetOmega&lt;br /&gt;
|-&lt;br /&gt;
|[[Smooth Rotating Linked Door With Hinge]]&lt;br /&gt;
|{{User2|Lyn Mimistrobell}}&lt;br /&gt;
|A script for linked uncut (mesh) doors that smoothly rotates around a virtual hinge without the use of timers&lt;br /&gt;
|-&lt;br /&gt;
|[[Smooth Sliding Door]]&lt;br /&gt;
|{{User|SimonT Quinnell}}&lt;br /&gt;
|A script for sliding doors that open and close smoothly using [[llMoveToTarget]]. Asjusts for prim orientation.&lt;br /&gt;
|-&lt;br /&gt;
|[[Snake Game]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|The game of snake in Second Life.&lt;br /&gt;
|-&lt;br /&gt;
|[[Song Requests]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|Helper script for DJs, allowing listeners to request songs and make dedications.&lt;br /&gt;
|-&lt;br /&gt;
|[[Speed Tester]]&lt;br /&gt;
|{{User|Bobbyb30 Swashbuckler}}&lt;br /&gt;
|Similar to the [[Efficiency Tester]], this script allows you to test the speed of a particular function or snippet with multiple trials giving min/max/avg/median and the standard deviation.&lt;br /&gt;
|-&lt;br /&gt;
|[[Spiral Staircase Generator]]&lt;br /&gt;
|{{User|Meyermagic Salome}}&lt;br /&gt;
|Generates nice looking spiral staircases without much hassle.&lt;br /&gt;
|-&lt;br /&gt;
|[[Static URL&#039;s for HTTP-In Service|Static_URLs]]&lt;br /&gt;
|{{User|Jor3l Boa}}&lt;br /&gt;
|How to generate a static url for HTTP-In temporal limitations.&lt;br /&gt;
|-&lt;br /&gt;
|[[String Compare]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
|Compares two strings and reliably returns either 1, -1, or 0 if they are the same.&lt;br /&gt;
|-&lt;br /&gt;
|[[Synchronize]]&lt;br /&gt;
|{{User|Cay Trudeau}}&lt;br /&gt;
|Makes synchronized start to a task on even/odd seconds&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Functions#String:_Find_Last_Index|String: Reverse]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|Returns an input string in reverse order&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Functions#String:_Get_Reverse_Order|String: Last Index]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|Returns the last index of search found in string (the backward equivalent of [[llSubStringIndex]])&lt;br /&gt;
|-&lt;br /&gt;
|[[Tail Messages (NewAge)]]&lt;br /&gt;
|{{User|Asia Snowfall}}&lt;br /&gt;
|A super nice easy to use script for those non-scripters out there! NewAge coding has done it again where you no longer need to scroll up and down adding buttons and adding messages, Features a tag system (you&#039;ll see what i mean :P)&lt;br /&gt;
|-&lt;br /&gt;
|[[Taper Door (minimalistic)]]&lt;br /&gt;
|{{User2|Kopilo Hallard}}&lt;br /&gt;
|A basic script for doors which open and close using taper.&lt;br /&gt;
|-&lt;br /&gt;
|[[Teleport HUD]]&lt;br /&gt;
|{{User|Jesse Barnett}}&lt;br /&gt;
|WORKS TO 4096 METERS!! Very user friendly teleport HUD. Add destinations by touching &amp;quot;Add&amp;quot; &amp;amp; naming destination in chat. Automatically gets sim name and coordinates. Will only display the destinations in the sim you are currently in. Demonstrates more advanced list manipulation and stride functions.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Programs#v7-D_Enh._Landmark-2-Map|Teleporter (landmark based)]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|Uses Landmarks to offer map teleports. Works as Hud or inworld objects, just drop in landmarks and go.&lt;br /&gt;
|-&lt;br /&gt;
|[[Text_Scroller|Text Scroller]]&lt;br /&gt;
|[[User:Fred_Gandt|Fred Gandt]]&lt;br /&gt;
|A simple text display object that scrolls text (applied as a texture) from right to left (like &#039;&#039;those&#039;&#039; LED signs) in a continuous loop.&lt;br /&gt;
|-&lt;br /&gt;
|[[Bobbyb&#039;s texture changer|Texture Changers]]&lt;br /&gt;
|{{User|Bobbyb30 Swashbuckler}}&lt;br /&gt;
|A collection of texture changing scripts.&lt;br /&gt;
|-&lt;br /&gt;
|[[Texture Menu Management|Texture Management]]&lt;br /&gt;
|{{User|Revolution Perenti}}&lt;br /&gt;
|Dialog Menu based Texture Selection.&lt;br /&gt;
|-&lt;br /&gt;
|[[Texture Particle Poofer|Texture Particle Poofer]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|This is a generic dialog-based particle poofer, emitting textures towards an avatar for a configurable amount of time.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Xen_Lisle/Texture_Slide|Texture Slide]]&lt;br /&gt;
|{{User|Xen Lisle}}&lt;br /&gt;
|Slides a texture on mouse movement&lt;br /&gt;
|-&lt;br /&gt;
|[[Tic Tac Toe]]&lt;br /&gt;
|CG Linden&lt;br /&gt;
|Step by step demo on how to implement a larger scripting project&lt;br /&gt;
|-&lt;br /&gt;
|[[TightList]]&lt;br /&gt;
|{{User|Strife Onizuka}}&lt;br /&gt;
|Tight List is a family of functions for encoding lists as strings and then decoding them back into lists.&lt;br /&gt;
There are two flavors: TightList and TightListType. TightListType preserves types and uses a 6 char header, while TightList uses a 1 char header that doesn&#039;t preserve type.&lt;br /&gt;
|-&lt;br /&gt;
|[[Timer Module]]&lt;br /&gt;
|{{User|Isabelle Aquitaine}}&lt;br /&gt;
|Manage multiple timers via linked messages.&lt;br /&gt;
|-&lt;br /&gt;
|[[Two Avatars on single prim]]&lt;br /&gt;
|{{User2|Pale Janus|Cay Trudeau}}&lt;br /&gt;
|Allow two (or more) avatars to sit on same prim&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Functions#Unix_time_code_to_list_format|Timestamp:&amp;lt;br&amp;gt;Unix time code to list format]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|converts Unix timestamps to their [Y, M, D, h, m, s] equivalents (ex: 1234567890 to [2009, 2, 13, 3, 31, 30])&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Functions#List_format_to_Unix_time_code.|Timestamp:&amp;lt;br&amp;gt;List format to Unix time code]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|converts [Y, M, D, h, m, s] timestamps to their Unix equivalents (ex: [2009, 2, 13, 3, 31, 30] to 1234567890)&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Functions#Weekday_from_Unix_timestamp|Timestamp:&amp;lt;br&amp;gt;Weekday from Unix timestamp]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|Gets weekday from Unix timestamps (ex: &amp;quot;Friday&amp;quot; from 1234567890)&lt;br /&gt;
|-&lt;br /&gt;
|[[The Stash (Bank)]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|This is a depositing system to link your secondary account (alt) to a prim in-world so you can retrieve money without switching back and forth between accounts. It supports setting an upper limit, sharing the stash if you wish, logging everybody who deposited money and retrieved money, sending money to a list of bookmarked avatars and getting a status of your current holdings. It also explains some tricks for developers, for example, how to get another timer() if your current timer() is used up already.&lt;br /&gt;
|-&lt;br /&gt;
|[[Tipjar]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|This is a fully fledged tipjar supporting shared access, split profits, inviting to group, handing over gifts, maintaining statistics of who tipped most and who tipped in general, eliminating deed to group and comes with an innovative feature: it periodically moves around from avatar to avatar in the room and returns back to its initial position after a sweep. This way your tijpar will not be static, but participate in the party!&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Functions#Weekday_from_.28_Y.2C_M.2C_D_.29_format|Timestamp:&amp;lt;br&amp;gt;Weekday from (Y, M, D) format]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|Gets weekday from (Y, M, D) timestamps (ex: &amp;quot;Friday&amp;quot; from (2009, 2, 13))&lt;br /&gt;
|-&lt;br /&gt;
|[[Touch A Quote]]&lt;br /&gt;
|{{User|CodeBastard Redgrave}}&lt;br /&gt;
|Touch an object to read quotes sequentially from a notecard&lt;br /&gt;
|-&lt;br /&gt;
|[[Touring Balloon]]&lt;br /&gt;
|{{User|Hank Ramos}}&lt;br /&gt;
|Automated touring balloon with many options from long ago.  Always seems to work on one SL release, and not the other.&lt;br /&gt;
|-&lt;br /&gt;
|[[Towncrier]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A simple towncrier to be used in role-play SIMs or wherever there is a need to broadcast news in random intervals.&lt;br /&gt;
|-&lt;br /&gt;
|[[Trivia]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A trivia game engine with provided ready-made notecards.&lt;br /&gt;
|-&lt;br /&gt;
|[[Under Age Boot]]&lt;br /&gt;
|{{User|Chance Unknown}}&lt;br /&gt;
|Security device example to teleport home accounts below a minimum age limit; can be useful in combating free griefer accounts.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Rolig_Loon/UNDO_PosRot|UNDO_PosRot]]&lt;br /&gt;
|{{User|Rolig Loon}}&lt;br /&gt;
|Allows user to undo position and rotation changes that have been made &amp;quot;manually&amp;quot; to any or all prims in a linkset.&lt;br /&gt;
|-&lt;br /&gt;
|[[Universal Translator]]&lt;br /&gt;
|{{User|Hank Ramos}}&lt;br /&gt;
|Chat listener that handles seamless translation of public chat between 50+ written languages without the need for configuration.  Handles numerous avatars, auto-detects languages, and works together with multiple copies of translators to spread-workload using a sophisticated back-end communications sub-system.&lt;br /&gt;
|-&lt;br /&gt;
|[[Unix2DateTime]]&lt;br /&gt;
|{{User|Flennan Roffo}}&lt;br /&gt;
|Conversion from Unix time ([[llGetUnixTime]]()) to date and time string and vice versa.&lt;br /&gt;
|-&lt;br /&gt;
|[[Unmutable Descript Nagger]]&lt;br /&gt;
|{{User|Bobbyb30 Zohari}}&lt;br /&gt;
|To nag avatars to take off their scripted attatchments.&lt;br /&gt;
|-&lt;br /&gt;
|[[Unpacker On Rez (NewAge)]]&lt;br /&gt;
|{{User|Asia Snowfall}}&lt;br /&gt;
|A very simple to use script for all you creators out there, This script will enable you to send out boxed items and make it easier for users to unpack, Also features auto die on completion. Very simple to configure!&lt;br /&gt;
|-&lt;br /&gt;
|[[Unpacker On Touch (NewAge)]]&lt;br /&gt;
|{{User|Asia Snowfall}}&lt;br /&gt;
|Exactly like Unpacker On Rez, But changed some things about to make it Unpack On Touch&lt;br /&gt;
|-&lt;br /&gt;
|[[Update distributor]]&lt;br /&gt;
|{{User|Dale Innis}}&lt;br /&gt;
|Distribute an object (like a project update) to a list of people named in a notecard.&lt;br /&gt;
|-&lt;br /&gt;
|[[UUID2Channel]]&lt;br /&gt;
|{{User|Project Neox}}&lt;br /&gt;
|Optimised version of the original key2channel generators.&lt;br /&gt;
|-&lt;br /&gt;
|[[UUID Song Generator]]&lt;br /&gt;
|{{User2|Sendao Goodman}}&lt;br /&gt;
|Translates a UUID into a simple song and plays it.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Programs#v7-D_Advanced_Visitor_Greeter|Visitor Greeter]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|Reduced spam visitor greeter, highly configurable, easy to modify.&lt;br /&gt;
|-&lt;br /&gt;
|[[VariText]]&lt;br /&gt;
|[[User:Geneko Nemeth|Geneko Nemeth (Kakurady)]]&lt;br /&gt;
|Display text on a prim, without looking like from a typewriter&lt;br /&gt;
|-&lt;br /&gt;
|[[Visitor Logger (Web/Basic) ]]&lt;br /&gt;
|{{User|Buddy Sprocket}}&lt;br /&gt;
|A very basic visitor logger - log visitors in SL to a text file on your web-site.&lt;br /&gt;
|-&lt;br /&gt;
|[[Visitors]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A series of scripts to hold lists of visitors taking into account display names and supporting tracking multiple visits.&lt;br /&gt;
|-&lt;br /&gt;
|[[Volleyball Game (Kira&#039;s Artillery Variations)]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|The game of Volleyball in SecondLife, based on the [[Artillery]] script and freefall theory. Full build instructions, scripts, import archive and marketplace freebie product. All full permission.&lt;br /&gt;
|-&lt;br /&gt;
|[[Vote Simple]]&lt;br /&gt;
|{{User|JB Kraft}}&lt;br /&gt;
|Simple vote collector. One avi, one vote.&lt;br /&gt;
|-&lt;br /&gt;
|[[Walking Sound (NewAge)]]&lt;br /&gt;
|{{User|Asia Snowfall}}&lt;br /&gt;
|Very powerful walking sound script, Featuring customer ability to add their own sounds with the API Sound Feature!&lt;br /&gt;
|-&lt;br /&gt;
|[[Wanderer]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A script that can be used to randomly move a prim around relative to its origin point. Can be used for breeders, robots, birds and other applications where a primitive has to move around by itself.&lt;br /&gt;
|-&lt;br /&gt;
|[[WarpPos]]&lt;br /&gt;
|{{User2|Keknehv Psaltery}}&lt;br /&gt;
|Non-physical movement without the 10m limit.&lt;br /&gt;
|-&lt;br /&gt;
|[[Watchdog]]&lt;br /&gt;
|{{User|Tika Oberueng}}&lt;br /&gt;
|LSL Watchdog scripts to monitor other scripts in the prim and restart them if they crash or stop running.&lt;br /&gt;
|-&lt;br /&gt;
|[[Wiki3DBuilder]] [[Wiki3DBuilder1.0]]&lt;br /&gt;
|{{User|Salahzar Stenvaag}}&lt;br /&gt;
|Allows a group of people to collectively build up complex 3D mindmaps with connected concepts. Uses particles for connections and low prim usage. Nodes can be textured, colored, changed form size moved collectively by everybody and can distribute notecards, landmarks, URL, objects, textures. I provide two version 0.1 and 1.0 and probably next version will communicate with moodle and sloodle external websites.&lt;br /&gt;
|-&lt;br /&gt;
|[[Window Control]]&lt;br /&gt;
|{{User|Emmas Seetan}}&lt;br /&gt;
|For window opacity, helpful for buildings.&lt;br /&gt;
|-&lt;br /&gt;
|[[XTEA Strong Encryption Implementation]]&lt;br /&gt;
|{{User|Morse Dillon}}&lt;br /&gt;
|An LSL implementation of XTEA (eXtended Tiny Encryption Algorithm).  This is the first known public release of a &#039;real&#039; strong encryption implementation in LSL and is released under the GNU General Public License (GPL).&lt;br /&gt;
|-&lt;br /&gt;
|[[XyText 1.5|XyText]]&lt;br /&gt;
|{{User2|Xylor Baysklef}}&lt;br /&gt;
| Display text (up to 10 characters) on a prim. Use as many prims as desired.&lt;br /&gt;
|-&lt;br /&gt;
|[[XyyyyzText|XyyyyzText]]&lt;br /&gt;
|{{User|Criz Collins}}&lt;br /&gt;
| Display text (up to 10 characters) on a prim. Displays different text for each line instead of one single text, that will be broken into the next lines. Watch here for what that means: http://screencast.com/t/1wMLujLcEO&lt;br /&gt;
|-&lt;br /&gt;
|[[XyzzyText|XyzzyText]]&lt;br /&gt;
|{{User|Thraxis Epsilon}} and {{User|Gigs Taggart}}&lt;br /&gt;
| Display text (up to 10 characters) on a prim. Way more efficient than XyText.&lt;br /&gt;
|-&lt;br /&gt;
|[[Youtube TV]]&lt;br /&gt;
|{{User|Morgam Biedermann}}&lt;br /&gt;
|Watch your favorite Youtube videos / auto set the texture to the parcel media texture.&lt;br /&gt;
|-&lt;br /&gt;
|[[Zero Lag Poseball]]&lt;br /&gt;
|{{User|Jippen Faddoul}} and {{User|Daemonika Nightfire}}&lt;br /&gt;
|A simple poseball with no lag&lt;br /&gt;
|-&lt;br /&gt;
|[[Zigzag Sequence]]&lt;br /&gt;
|{{User|Project Neox}}&lt;br /&gt;
|Zigzag sequence generator I developed while scripting checkers&lt;br /&gt;
|-&lt;br /&gt;
|[[Input number of seconds, get a string back that shows days, hours, minutes, seconds]]&lt;br /&gt;
|{{User|Fire Centaur}}&lt;br /&gt;
|Returns a string that displays days, hours, seconds&lt;br /&gt;
|-&lt;br /&gt;
|[[Random Giver Prim]]&lt;br /&gt;
|{{User|Damian Darkwyr}}&lt;br /&gt;
|A randomized item giver with a game-like twist&lt;br /&gt;
|-&lt;br /&gt;
|[[Client Specific Contents Giver]]&lt;br /&gt;
|{{User|Damian Darkwyr}}&lt;br /&gt;
|Give Contents only to users of a specific Client. Such as Phoenix, CoolVL or 2.0&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/v7-D_Zen_Resizer|Zen Resizer]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|Single script object resizer w/ multi-language &amp;amp; multi-menu support, + many other features for simple or advanced use.&lt;br /&gt;
|-&lt;br /&gt;
|[[Presenter with Timer]]&lt;br /&gt;
|[[User:Fire Centaur]]&lt;br /&gt;
|Yet another texture presenter with a timer, lock, next/prev etc&lt;br /&gt;
|-&lt;br /&gt;
|[[TimeAPI Clock Script]]&lt;br /&gt;
|[[User:Elite Runner|Ryan R. Elite (Elite Runner)]]&lt;br /&gt;
|Gets time via HTTP function from TimeAPI.org&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Support Script Library==&lt;br /&gt;
These are scripts in other languages, intended to be run on other systems that support scripts written in LSL&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; {{Prettytable}}&lt;br /&gt;
|- {{Hl2}}&lt;br /&gt;
! &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Creator&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[https://github.com/Nexii-Malthus/phpPathfinding phpPathfinding]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
|PHP script for offloading complex pathfinding operations away from heavy use simulators onto external servers. Primarily A* Algorithm. Flexible -- works with any type of node graph. Public Domain. Clean and minimalistic code.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Ina Centaur/UUID/calimg.api|Calendar Image UUID API]]&lt;br /&gt;
|{{User|Ina Centaur}}&lt;br /&gt;
|API that gives the UUID of an image of a calendar image give month and year arguments.&lt;br /&gt;
|-&lt;br /&gt;
|[[HTTP Post request to a PHP server]]&lt;br /&gt;
|{{User|Corto Maltese}}&lt;br /&gt;
|This small library allows you to make simple POST requests to your website. The libraries allow you to get your request through the variable $_POST on the server. It also include a basic security mechanism aimed to stop hacking. Comprises of LSL client script and PHP server script.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Ina Centaur/PHP/k2n.php|Key2Name.php]]&lt;br /&gt;
|{{User|Ina Centaur}}&lt;br /&gt;
|Get Avatar&#039;s Name using Second Life search service. (like in LSL Key2Name)&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Darien_Caldwell/HTTP-DNS|HTTP-IN DNS]]&lt;br /&gt;
|{{User|Darien Caldwell}}&lt;br /&gt;
|Public Domain DNS and HTTP-IN URL Distribution system running on GAE (the original). Deploy your own for maximum utility and security.&lt;br /&gt;
|-&lt;br /&gt;
|[[Lame_Object_DNS_and_Cross_Sim_Messaging|Lame Object DNS and Cross Sim Messaging]]&lt;br /&gt;
|{{User2|Liandra Ceawlin}}&lt;br /&gt;
|Simple, cheeseball method of doing cross-sim communications with http-in and an external object DNS service.&lt;br /&gt;
|-&lt;br /&gt;
|[[Minify|LSL Minify]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|LSL Minification and obfuscation tool written in JavaScript. Contains a form on the wiki using a widget where you can post LSL scripts to be minified as well as the source-code. For another full-screen demo you may [http://eva.comaroski.me/lslclean.html check it on my website]. To use, paste any LSL code and press ctrl+alt+enter to get the minified version.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:SignpostMarv Martin/PHP/llXorBase64StringsCorrect|llXorBase64StringsCorrect]]&lt;br /&gt;
|{{User|SignpostMarv Martin}}&lt;br /&gt;
|An implementation of [[llXorBase64StringsCorrect]] in PHP- should be useful if you&#039;re using llXorBase64StringsCorrect to do cryptography work in LSL2 and posting it out to the web via [[llHTTPRequest]].&lt;br /&gt;
|-&lt;br /&gt;
|[[User:SignpostMarv Martin/PHP/lsl fu.php|lsl_fu.php]]&lt;br /&gt;
|{{User|SignpostMarv Martin}}&lt;br /&gt;
|A basic OOP&#039;d PHP Class containing VeloxSeverine&#039;s $_POST fixer and Marv&#039;s own eccentric ideas for &amp;quot;fixing&amp;quot; things.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Jor3l Boa/PHP/n2k.php|Name2Key.php]]&lt;br /&gt;
|{{User|Jor3l Boa}}&lt;br /&gt;
|Get Avatar&#039;s UUID using Second Life search service. (like in LSL Name2Key)&lt;br /&gt;
|-&lt;br /&gt;
|[[Public_Object_DNS|Public Object DNS]]&lt;br /&gt;
|{{User2|Liandra Ceawlin}}&lt;br /&gt;
|Public object DNS-like system running on GAE, for http-in. Hopefully scalable enough for wide-spread usage.&lt;br /&gt;
|-&lt;br /&gt;
|[[Rake|Rake]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A C# utility meant to create full inventory backups to your local hard-drive including Textures/Sculpts, Animations, Notecards and Scripts.&lt;br /&gt;
|-&lt;br /&gt;
|Silo&lt;br /&gt;
|{{User2|Zero Linden}}&lt;br /&gt;
|General purpose data store in PHP.  Use this to persist arbitrary data from LSL via [[llHTTPRequest]].  See:&lt;br /&gt;
* [http://www.notabene-sl.com/misc/silo-README.txt README] file&lt;br /&gt;
* [http://www.notabene-sl.com/misc/silo.tgz silo.tgz] tarball&lt;br /&gt;
* forum post [http://forums-archive.secondlife.com/54/69/119570/1.html Announcement].&lt;br /&gt;
|-&lt;br /&gt;
|[[Silverday ObjectDNS]]&lt;br /&gt;
|{{User|Till Stirling}}&lt;br /&gt;
|Dynamic Object-DNS-System to provide dynamic mapping of LSL-URLs to persistent domains. Features include redirect service, password protected domains, write protected domains, LSL-API for all necessary functions, optional web-interface.&lt;br /&gt;
|-&lt;br /&gt;
|[http://aubretec.com/products/sldb SLDB]&lt;br /&gt;
|{{User2|Luc Aubret}}&lt;br /&gt;
|Flexible web database storage using PHP/MySQL.  Used to store per-user field/value pairs from in-world objects using [[llHTTPRequest]].&lt;br /&gt;
* [http://aubretec.com/support/manuals/sldbkit/ Implementation Guide]&lt;br /&gt;
* [http://aubretec.com/wp-content/uploads/2009/05/sldb.zip Download] (.zip, 12kb)&lt;br /&gt;
|-&lt;br /&gt;
|[https://tlabsfoundry.atlassian.net/wiki/display/SLAD/SL+Asset+Data SL Asset Data]&lt;br /&gt;
|{{User|Trimda Hedges}}&lt;br /&gt;
|A set of Java classes to retrieve information about Groups, Parcels and Agents/Avatars based on their key (UUID).  Includes caching of requests and results and example application.  Copyright under Eclipse Public License v1&lt;br /&gt;
* [https://tlabsfoundry.atlassian.net/wiki/display/SLAD/Downloads Downloads]&lt;br /&gt;
* [http://trimda.com/javadocs/slassetdata/1.1.0/ JavaDocs]&lt;br /&gt;
* [https://tlabsfoundry.atlassian.net/wiki/display/TF/TLabs+Foundry Other Projects]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Articles&#039;&#039;&#039;&lt;br /&gt;
*[[:Category:LSL Examples| Examples]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{LSLC|}}&lt;/div&gt;</summary>
		<author><name>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Category:LSL_Library&amp;diff=1187404</id>
		<title>Category:LSL Library</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Category:LSL_Library&amp;diff=1187404"/>
		<updated>2014-01-31T13:03:46Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: /* Rules for posting: */ highlight code&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header|ml=*}}{{RightToc}}&lt;br /&gt;
==Script Library==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em 0.5em 1.5em&amp;quot;&amp;gt;&lt;br /&gt;
NOTE: Please add your scripts to this page and then add them to a category on the [[:Category:LSL Categorized Library|Categorized Library]] page.&lt;br /&gt;
&lt;br /&gt;
Come to this page to see complex examples that show how to combine parts of LSL.&lt;br /&gt;
&lt;br /&gt;
Go to the [[:Category:LSL Examples|LSL Examples]] page to see brief examples of how to use parts of LSL.&lt;br /&gt;
&lt;br /&gt;
Why collect complex examples here? Well, ...&lt;br /&gt;
&lt;br /&gt;
There is a treasure trove of user developed scripts that have become hard to find over time throughout Second Life&#039;s web server revisions and redesigns. The [http://community.secondlife.com/t5/Community-General/Upgrading-the-Forums/bc-p/77385 Huge Leap] to the new [http://www.jivesoftware.com/ Jive software], while traumatic and disruptive, has failed to dispose of  what&#039;s come before at the moment of your reading. These valuable community generated resources do indeed still remain and can be browsed/retrieved from several disjointed and disparate locations. While some links may point to duplicated, revised, or downright ancient wisdom, you may derive some enlightened perspective researching their hard won, timely solutions we encounter day to day.&lt;br /&gt;
&lt;br /&gt;
# [[Old forum Scripting Library index| Old Forums -Scripting Library index (wiki)]],&lt;br /&gt;
# [http://community.secondlife.com/t5/Scripting/bd-p/2108 Old Forums -Scripting Forum Archive],&lt;br /&gt;
# [http://forums-archive.secondlife.com/15/1.html Old Forums -Scripting Library],&lt;br /&gt;
# [http://community.secondlife.com/t5/Scripting-Library/bd-p/2122 new Forums -Archives &amp;gt; Scripting Library],&lt;br /&gt;
# [http://community.secondlife.com/t5/LSL-Scripting-Library/bd-p/LSLScriptingLibrary new Forums -LSL Library].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The wiki medium is well-suited for a script library due to its revision based historical foundation. If you feel inclined to release your scripts to the entire community, there&#039;s no better place to preserve your work/love/energy/gift as a unified and cohesive repository. Feel free to add your script page links here as well as adding it to the [[:Category:LSL Categorized Library|Categorized Library]].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rules for posting: ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
#Your script must be tested and working. If it&#039;s not, stick it in your user-space until it is. This is a list of working, usable scripts.&lt;br /&gt;
#Add a link to your script&#039;s page here. Link back to this page from your script&#039;s page. Start your page with &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{LSL Header}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
#Do not add scripts that duplicate the same functionality as an existing script or built in {{LSLGC|Functions|function}}. If yours does, explain why.&lt;br /&gt;
#Do not list simple scripts here. Include those among the [[:Category:LSL Examples|LSL Examples]] instead.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==LSL Script Library==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; {{Prettytable}}&lt;br /&gt;
|- {{Hl2}}&lt;br /&gt;
! &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Creator&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Yumi Murakami/Addiction Moderator|Addiction Moderator and World Clock]]&lt;br /&gt;
|{{User|Yumi Murakami}}&lt;br /&gt;
|Keep tabs on usage of SL and easily share local times with other users.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Yumi Murakami/Weaver Spell Grid|Weaver Spell Grid]]&lt;br /&gt;
|{{User|Yumi Murakami}}&lt;br /&gt;
|Designs simple objects and creates them with magic words.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Yumi Murakami/Golden Vendor|Golden Vendor]]&lt;br /&gt;
|{{User|Yumi Murakami}}&lt;br /&gt;
|A cross between a vendor and a game.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Yumi Murakami/Bijocam And Other Camera Scripts|Bijocam and Other Camera Scripts]]&lt;br /&gt;
|{{User|Yumi Murakami}}&lt;br /&gt;
|Various camera control systems for machinima, security, and other effects.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Ackley Bing/Textbox2Hovertext|Textbox2Hovertext]]&lt;br /&gt;
|[[User:Ackley Bing|Ackley]]&lt;br /&gt;
|A simple script to allow hovertext to be set with a dialog text box.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Ackley Bing/Basic Sim Status Button Indicator HUD|Basic Sim Status Button Indicator HUD]]&lt;br /&gt;
|[[User:Ackley Bing|Ackley]]&lt;br /&gt;
|A single prim HUD. Color indicates sim status changes.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Ackley_Bing/Basic_Target_Scanner_HUD|Basic Target Scanner HUD]]&lt;br /&gt;
|[[User:Ackley Bing|Ackley]]&lt;br /&gt;
|A single prim HUD.  Scrolls through nearby players names, photos and user key.&lt;br /&gt;
|-&lt;br /&gt;
|[[StringIsNum|(Function) StringIsNum]]&lt;br /&gt;
|{{User|Zion Tristan}}&lt;br /&gt;
|A User Made Function to return TRUE if a string based input consists entirely of a whole number, and return FALSE otherwise.&lt;br /&gt;
|-&lt;br /&gt;
|[[Remove all scripts from a linkset]]&lt;br /&gt;
|{{User2|Dahlia Orfan}}&lt;br /&gt;
|Remove all scripts from a linkset.&lt;br /&gt;
|-&lt;br /&gt;
|[[RLV Viewer Titler]]&lt;br /&gt;
|{{User2|Jenna Felton}}&lt;br /&gt;
|Titler displaying viewer and it&#039;s version, revealed via RLV interface.&lt;br /&gt;
|-&lt;br /&gt;
|[[Sim Restart Notifyer]]&lt;br /&gt;
|{{User2|Jenna Felton}}&lt;br /&gt;
|On region restart, notifyes registered residents about the sim is online and the current sim version&lt;br /&gt;
|-&lt;br /&gt;
|[[Script Vitality plug-in]]&lt;br /&gt;
|{{User2|Jenna Felton}}&lt;br /&gt;
|Uses vehicle technology to allow scripts (in same prim) to run in &#039;dead&#039;, i.e. no-script areas.&lt;br /&gt;
|-&lt;br /&gt;
|[[Texture Repeater]]&lt;br /&gt;
|{{User2|Jenna Felton}}&lt;br /&gt;
|Observes textures and texture parameters on the prim. If changed, bulk-updates other prims in linkset.&lt;br /&gt;
|-&lt;br /&gt;
|[[1st necessity of SL]]&lt;br /&gt;
|{{User|Beer Dailey}}&lt;br /&gt;
|Monitors for avatars and (de)activates scripts states to control script performance/lag.&lt;br /&gt;
|-&lt;br /&gt;
|[[SetLinkText]]&lt;br /&gt;
|{{User2|Tacusin Memo}}&lt;br /&gt;
|Custom function like llSetText only applying to linked sets.&lt;br /&gt;
|-&lt;br /&gt;
|[[3D Radar]]&lt;br /&gt;
|{{User|Jesse Barnett}}&lt;br /&gt;
|Rezzes a ball for each avatar in range. Each ball tracks its own AV and displays distance.&lt;br /&gt;
|-&lt;br /&gt;
|[[RegionSitTeleport]]&lt;br /&gt;
|{{User|Vincent Nacon}}&lt;br /&gt;
|A very simple and clean sit/unsit teleporter.&lt;br /&gt;
|-&lt;br /&gt;
|[[AbcText]]&lt;br /&gt;
|{{User|Ange Capalini}}&lt;br /&gt;
|EXPERIMENTAL Hyper low prim Display. only 2 prims for 25char.&lt;br /&gt;
|-&lt;br /&gt;
|[[Access (NewAge)]]&lt;br /&gt;
|{{User|Asia Snowfall}}&lt;br /&gt;
|An easy to use script for permissions on who can use the script, Public/Group/Owner&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Daemonika_Nightfire/Scripts/Access_Tutorial_EN|Access Tutorial (EN)]]&lt;br /&gt;
|{{User|Daemonika Nightfire}}&lt;br /&gt;
|Short examples about permission to executable commands.&lt;br /&gt;
|-&lt;br /&gt;
|[[Aim Detection]]&lt;br /&gt;
|{{User2|Han Shuffle|Dugley Reanimator}}&lt;br /&gt;
|Monitors for avatars and reports back to owner about who is aiming at them.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Daemonika_Nightfire/Scripts/Anti_copy_trans|Anti (copy &amp;amp; transfer)]]&lt;br /&gt;
|{{User|Daemonika Nightfire}}&lt;br /&gt;
|This funktion allows you to give away scripts with copy &amp;amp; transfer permissions and force the reseller to change the permission.&lt;br /&gt;
|-&lt;br /&gt;
|[[AnkleLock]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|An ankle lock script and attached animation to fix your displaced shoes. This will help if your shoes look displaced when you sit in certain poses or when your animation overrider is active.&lt;br /&gt;
|-&lt;br /&gt;
|[[AntiDelay Node]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
|Uses [[llMessageLinked]] to stop those pesky delays.&lt;br /&gt;
|-&lt;br /&gt;
|[[Artillery]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|An artillery gun script, performing the necessary calculations based on a user-chosen velocity, in order to hit a designated target avatar.&lt;br /&gt;
|-&lt;br /&gt;
|[[AO Overriding Pose Ball]]&lt;br /&gt;
|{{User|Jesse Barnett}}&lt;br /&gt;
|No more turning your AO off and on when you sit down&lt;br /&gt;
|-&lt;br /&gt;
|[[ARCFOUR Strong Encryption Implementation]]&lt;br /&gt;
|{{User2|Nekow42 Zarf}}&lt;br /&gt;
|An LSL implementation of ARCFOUR, the most popular stream cipher still in use. It is licensed under a Creative Commons Attribution 3.0 license.&lt;br /&gt;
|-&lt;br /&gt;
|[[Assembly Programming Language|Assembly-Like Programming Language]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
|A compiler that runs assembly-like programs.&lt;br /&gt;
|-&lt;br /&gt;
|[[Associative Array Emulator|Associative Array (Dictionary) Emulator]]&lt;br /&gt;
|{{User2|Alynna Vixen}}&lt;br /&gt;
|This library provides a set of functions for using a list as an associative array where string based keys can refer to one or more variant elements.&lt;br /&gt;
|-&lt;br /&gt;
|[[AvatarFollower]]&lt;br /&gt;
|{{User|Dale Innis}}&lt;br /&gt;
|Allows one avatar to automatically follow another.&lt;br /&gt;
|-&lt;br /&gt;
|[[Avatar Radar (NewAge)]]&lt;br /&gt;
|{{User|Asia Snowfall}}&lt;br /&gt;
|Version 1.2; A nice new avatar radar script i just finish that you can place in your hud, Also features avatar locator&lt;br /&gt;
|-&lt;br /&gt;
|[[Base2Dec]]&lt;br /&gt;
|{{User|Siann Beck}}&lt;br /&gt;
|Convert a number to decimal from any base.&lt;br /&gt;
|-&lt;br /&gt;
|[[BaseN]]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
|Variable base compression, dynamically maps to usable UTF code points.&lt;br /&gt;
|-&lt;br /&gt;
|[[Basic Encryption Modules]]&lt;br /&gt;
|{{User|Beverly Larkin}}&lt;br /&gt;
|Basic encryption scripts, allows you to encrypt a float and shout it to another prim on a randomly chosen channel.&lt;br /&gt;
|-&lt;br /&gt;
|[[Be happy]]&lt;br /&gt;
|{{User|Emmas Seetan}}&lt;br /&gt;
|Basic smile attachment script, makes your avatar smile.&lt;br /&gt;
|-&lt;br /&gt;
|[[Beat The Average Vendor]]&lt;br /&gt;
|{{User2|Kristen Giano}}&lt;br /&gt;
|A vendor script based on humblebundle.com&lt;br /&gt;
|-&lt;br /&gt;
|[[Best Neighbor Ad Hiding Script|Best Neighbor]]&lt;br /&gt;
|{{User2|Doran Zemlja}}&lt;br /&gt;
|Reduce ad clutter by hiding ads when users are on their own land nearby.&lt;br /&gt;
|-&lt;br /&gt;
|[[BigNum|BigNum Library (RSA Encryption)]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
|A BigNum Library for dealing with big numbers! Specialized for modular multiplication, and RSA encryption.&lt;br /&gt;
|-&lt;br /&gt;
|[[Binary Clock v1.1|Binary Clock]]&lt;br /&gt;
|{{User|Fox Diller}}&lt;br /&gt;
|A Binary Clock.&lt;br /&gt;
|-&lt;br /&gt;
|[[BinaryDecimalConverter]]&lt;br /&gt;
|{{User2|Soundless Smalls}}&lt;br /&gt;
|Converts a binary value to a decimal value and vice versa.&lt;br /&gt;
|-&lt;br /&gt;
|[[Blacklist and Remote Kill|Blacklist and Remote Kill]]&lt;br /&gt;
|{{User|Chase Quinnell}}&lt;br /&gt;
|Blacklist(denial of use) or a creator kill script(can delete someone&#039;s item by command on private channel)&lt;br /&gt;
|-&lt;br /&gt;
|[[User_talk:Rolig_Loon/Bookmark_URLs|Bookmark URLs]]&lt;br /&gt;
|{{User|Rolig Loon}}&lt;br /&gt;
|Dialog driven HUD reads bookmarked URLs from notecards and navigates directly to them with user&#039;s in-world browser.&lt;br /&gt;
|-&lt;br /&gt;
|[[Bubble Gum]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A script to create a bubble gum effect with sounds and animations.&lt;br /&gt;
|-&lt;br /&gt;
|[[Bubble Trapper]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A script that rezzes a bubble and surrounds a dialog-chosen avatar, exploding 2 seconds after it has reached the avatar. The article also explains how to hash a name to a number or a key to a number and thereby avoiding to block the rezzer&#039;s timer() event or using llRegionSay().&lt;br /&gt;
|-&lt;br /&gt;
|[[Builders Buddy|Builder&#039;s Buddy Tool]]&lt;br /&gt;
|{{User|Newfie Pendragon}}&lt;br /&gt;
|Script to easily move/rotate large builds that exceed the linkable size limit (30 meters).&lt;br /&gt;
|-&lt;br /&gt;
|[[Button Click Detector]]&lt;br /&gt;
|{{User2|Sendao Goodman}}&lt;br /&gt;
|Use [[llDetectedTouchUV]] to determine which button was pressed on a texture.&lt;br /&gt;
|-&lt;br /&gt;
|[[Camera following prim]]&lt;br /&gt;
|{{User|Dale Innis}}&lt;br /&gt;
|Pair of scripts to make a prim follow your camera position around (for lights etc).&lt;br /&gt;
|-&lt;br /&gt;
|[[Camera Sync]]&lt;br /&gt;
|{{User|Meyermagic Salome}} and {{User2|Nomad Padar}}&lt;br /&gt;
|A system to synchronize the cameras of two avatars.&lt;br /&gt;
|-&lt;br /&gt;
|[[Chatbot]]&lt;br /&gt;
|Anonymous&lt;br /&gt;
|Compile and run the LSL you type on a channel, faster than you can thru the 2007-08 SL GUI.&lt;br /&gt;
|-&lt;br /&gt;
|[[Chat Logger (GPL)]]&lt;br /&gt;
|{{User|Nobody Fugazi}}&lt;br /&gt;
|Chat logger which requests permission from participants before recording them.&lt;br /&gt;
|-&lt;br /&gt;
|[[Chat_Relay|Chat Relay]]&lt;br /&gt;
|{{User|grumble Loudon}}&lt;br /&gt;
|A Chat relay which can be routed using a path header and won&#039;t echo.&lt;br /&gt;
|-&lt;br /&gt;
|[[ClickAndDrag]]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
| Click and Drag user interface elements using dynamic feedback&lt;br /&gt;
|-&lt;br /&gt;
|[[Code Racer]]&lt;br /&gt;
|Anonymous&lt;br /&gt;
|Race two versions of code forever, to see which runs faster.&lt;br /&gt;
|-&lt;br /&gt;
|[[Code Sizer]]&lt;br /&gt;
|Anonymous&lt;br /&gt;
|Count the bytes compiled from source code, to measure how to write small code.&lt;br /&gt;
|-&lt;br /&gt;
|[[Collision message sender]]&lt;br /&gt;
|{{User2|Taff Nouvelle}}&lt;br /&gt;
|Give a message to an avatar on collision if the message has not been sent in the last 10 minutes.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Programs#v7-D_Enh._Color_Picker|Color Changer]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|Dialog driven color changer. Supports 16million+ colors, web color codes, multiple targeted prims, with save and recall.&lt;br /&gt;
|-&lt;br /&gt;
|[[Color Changer|Color Changer Plus]]&lt;br /&gt;
|{{User2|Neo Calcutt}}&lt;br /&gt;
|A color changer with 14 colors, a random function, and a custom vector function.&lt;br /&gt;
|-&lt;br /&gt;
|[[Color conversion scripts|Color Conversion]]&lt;br /&gt;
|{{User|Sally LaSalle}}&lt;br /&gt;
|Convert between Red Green Blue (RGB) and Hue Saturation Value (HSV).&lt;br /&gt;
|-&lt;br /&gt;
|[[ColorConvert]]&lt;br /&gt;
|{{User|Siann Beck}}&lt;br /&gt;
|Convert color values to vector from RGB, hex or HTML color name.&lt;br /&gt;
|-&lt;br /&gt;
|[[Color script]]&lt;br /&gt;
|{{User2|Masakazu Kojima}}&lt;br /&gt;
|Script for changing colors trough a listener with pre-defined colors.&lt;br /&gt;
|-&lt;br /&gt;
|[[Library Combined Library|Combined Library]]&lt;br /&gt;
|{{User|Strife Onizuka}}&lt;br /&gt;
|Library of mostly encoding and decoding functions, some more useful then others.&lt;br /&gt;
* String functions: Replace / Trim right / Trim left / Trim both&lt;br /&gt;
* Unicode conversion: UTF8 to Unicode / Unicode to UTF8&lt;br /&gt;
* List functions: Replace / Compare&lt;br /&gt;
|-&lt;br /&gt;
|[[Computer:jaycoonlanguage]]&lt;br /&gt;
|{{User|jayco121 Bing}}&lt;br /&gt;
| A language written in LSL that is meant for my computer (available at the shop).&lt;br /&gt;
|-&lt;br /&gt;
|[[Read Note Card Configuration|Configuration Notecard Reader]]&lt;br /&gt;
|{{User|Dedric Mauriac}}&lt;br /&gt;
|A script to read configuration information from a notecard. Parses notecard to extract key words and their assigned values. Allows for comment lines and many more useful features.&lt;br /&gt;
|-&lt;br /&gt;
|[[AdvancedNotecardReader|Configuration Notecard Reader (advanced)]]&lt;br /&gt;
|[[Lear Cale|Lear Cale]]&lt;br /&gt;
|Robust configuration notecard reader; supports multiple notecards with same suffix, handles reconfig on inventory change, and does not usurp the default state.&lt;br /&gt;
|-&lt;br /&gt;
|[[Library_Chat_Relay|Conversation Relay]]&lt;br /&gt;
|{{User|Jippen Faddoul}}&lt;br /&gt;
|Chat relay which requests permission from participants before relaying their messages. Also includes their attachments. (ToS compliant).&lt;br /&gt;
|-&lt;br /&gt;
|[[Curtain script]]&lt;br /&gt;
|{{User|Zilla Larsson}}&lt;br /&gt;
|A simple script to retract/stretch curtains, blinds, bedcovers and more&lt;br /&gt;
|-&lt;br /&gt;
|[[Library_Cycle_Dialog_Items|Cycle Dialog Items w/ Callback]]&lt;br /&gt;
|{{User|Hawkster Westmoreland}}&lt;br /&gt;
|A customizable way to cycle dialog items with pagination&lt;br /&gt;
|-&lt;br /&gt;
|[[Dataserver API]]&lt;br /&gt;
|{{User|Revolution Perenti}}&lt;br /&gt;
|Dataserver Framework for Notecards.&lt;br /&gt;
|-&lt;br /&gt;
|[[Date Library]]&lt;br /&gt;
|{{User|Corto Maltese}}&lt;br /&gt;
| Date library, based on number of day since march 3rd 1600, can be used to calculate weekday, date differences, and date offset, and date formating.&lt;br /&gt;
|-&lt;br /&gt;
|[[Day of the Week]]&lt;br /&gt;
|{{User|DoteDote Edison}}&lt;br /&gt;
|Function to get day of the week from [[llGetUnixTime]].&lt;br /&gt;
|-&lt;br /&gt;
|[[Days in Month]]&lt;br /&gt;
|{{User|IntLibber Brautigan}}&lt;br /&gt;
|Clicking on it returns the number of days in the present month. Useful for scripting calendars and tier systems that need to know the number of days in the month at hand or to calculate for any month. Even adjusts for leap years.&lt;br /&gt;
|-&lt;br /&gt;
|[[Deed Tools]]&lt;br /&gt;
|{{User|Falados Kapuskas}}&lt;br /&gt;
|Tools that allow the creator to modify Group-Owned (Deeded) Objects via chat.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Daemonika_Nightfire/Scripts/DEMO_Shield|DEMO_Shield]]&lt;br /&gt;
|{{User|Daemonika Nightfire}}&lt;br /&gt;
|With this script, it is impossible to use these scripts in copied (Copybot) object.&lt;br /&gt;
|-&lt;br /&gt;
|[[Describe Chatter]]&lt;br /&gt;
|Anonymous&lt;br /&gt;
|Chat to see yourself as others do.&lt;br /&gt;
|-&lt;br /&gt;
|[[Dialog Control]]&lt;br /&gt;
|{{User|Nargus Asturias}}&lt;br /&gt;
| A (not-so) simple dialog &amp;amp; menu control script. Call dialog and receive selected value via [[link_message]](), with built-in timer and [[link_message]]() notification on time out. Supports multi-pages dialog and numeric property dialog. Button text and dialog&#039;s returned value can differ.&lt;br /&gt;
Latest version also has [[Dialog Menus Control]] built-in; which allow multi-level menus through SL dialog system.&lt;br /&gt;
|-&lt;br /&gt;
|[[Dispenser Vendor]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
| A twist on [[Vendor]] that dispenses one object and then removes it from the list of objects.&lt;br /&gt;
|-&lt;br /&gt;
|[[MultiUser_Dialog_Handler|Dialog Menus (multiuser)]]&lt;br /&gt;
|{{User|SimonT Quinnell}}&lt;br /&gt;
| Menu dialog handler that supports multiple menus open at once from the single script. Displays multi-page menus if necessary as well as allowing for fixed header and footer buttons.  Timeouts as well as Text and button size limits are handled.&lt;br /&gt;
|-&lt;br /&gt;
|[[Dialog NumberPad|Dialog Number Pad]]&lt;br /&gt;
|{{User|DoteDote Edison}}&lt;br /&gt;
|Use a dialog to accept positive integer input from users.&lt;br /&gt;
|-&lt;br /&gt;
|[[Display Names Radar]]&lt;br /&gt;
|{{User|Cerise Sorbet}}&lt;br /&gt;
|Simple HUD type avatar radar that can show [[display names]] and script memory usage&lt;br /&gt;
|-&lt;br /&gt;
|[[Display Names to Key]]&lt;br /&gt;
|{{User|Joran Yoshikawa}}&lt;br /&gt;
|Simple way to get UUIDs from displaynames&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Daemonika_Nightfire/Scripts/DS_Display-Username_Online_Indicator|Display-Username_Online_Indicator]]&lt;br /&gt;
|{{User|Daemonika Nightfire}}&lt;br /&gt;
|This simple hover text-based script is used to shop owners in Second Life, customers at the current display name and user name to display publicly. Additionally shows the status of the Userkey and online. Furthermore, there are click of a chat link that opens the profile owner.&lt;br /&gt;
|-&lt;br /&gt;
|[[Displayer Script]]&lt;br /&gt;
|{{User|Akinori Kimagawa}}&lt;br /&gt;
|Display Words On Top Of An Object&lt;br /&gt;
|-&lt;br /&gt;
|[[Distributed Primitive Database]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|The distributed primitive database (DPD) is a database which is meant to survive entirely in SL by using redundancy, replication and time synchronisation to maintain the consistency of the dataset contained in the DPD node/primitives spread out between regions and even grids. Similarly to the [[Intercom]], the robustness of the theory would allow users to maintain a cross-grid database; as of 30 of August 2011 I have managed to couple and replicate data between the two grids by using the methodology described in the script article.&lt;br /&gt;
|-&lt;br /&gt;
|[[Drink script]]&lt;br /&gt;
|{{User|Emmas Seetan}}&lt;br /&gt;
|Used mainly for food and drink in Second Life.&lt;br /&gt;
|-&lt;br /&gt;
|[[Donut Dance]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|Err, a script that makes you dance and say something on the local chat once you attach an object (good example for conditional re-entry flipping).&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Daemonika_Nightfire/Scripts/DS_Single_AO-Sit|Single_AO-Sit]]&lt;br /&gt;
|{{User|Daemonika Nightfire}}&lt;br /&gt;
|Posescript for use with or without AO and with or without Animation. With the menu it is possible the seated Avatar to move.&lt;br /&gt;
|-&lt;br /&gt;
|[[TOXDropBox|DropBox]]&lt;br /&gt;
|{{User|Dimentox Travanti}}&lt;br /&gt;
| This is a Drop box which allows people to drop certain items in a object &amp;amp; has many config options.&lt;br /&gt;
|-&lt;br /&gt;
|[[Efficiency Tester]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
|Tests the speed of a function.&lt;br /&gt;
|-&lt;br /&gt;
|[[Email-to-IM|Email2IM]]&lt;br /&gt;
|{{User|DoteDote Edison}}&lt;br /&gt;
|Send IMs to SL friends via [[email]] (translate emails from friends into IMs).&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Kireji_Haiku/SIMchat_headset|Encrypted Region-wide chat]]&lt;br /&gt;
|{{User|Kireji Haiku}}&lt;br /&gt;
|Encrypted Region-wide chat&lt;br /&gt;
|-&lt;br /&gt;
|[[ExplodingObjects]]&lt;br /&gt;
|{{User|Dale Innis}}&lt;br /&gt;
|Causes an object (of the appropriate type) to explode on command.&lt;br /&gt;
|-&lt;br /&gt;
|[[FadeEasy]]&lt;br /&gt;
|{{User2|Nika Rugani}}&lt;br /&gt;
|The easy way of fading objects in or out (Using llSetLinkAlpha)&lt;br /&gt;
|-&lt;br /&gt;
|[[FastConeSpread]]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
| Fast Algorithmn to achieve cone spread, main use in weaponry systems.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:PixelProphet Lane/Scripts#Fast List Prim Contents|Fast List Prim Contents]]&lt;br /&gt;
|{{User|PixelProphet Lane}}&lt;br /&gt;
|Fast and efficient method to print Object Inventory (Name, Type and next Owner permissions)&lt;br /&gt;
|-&lt;br /&gt;
|[[User:PixelProphet_Lane/Scripts#Grid_Status_Feed|Grid Status Feed]]&lt;br /&gt;
|{{User|PixelProphet Lane}}&lt;br /&gt;
|Receive important Grid information in-world&lt;br /&gt;
|-&lt;br /&gt;
|[[Find Avatar Key|Find Avatar Key]]&lt;br /&gt;
|{{User2|Huney Jewell}}&lt;br /&gt;
|Explores [[UUID]] of avatar whose name is said in local chat or who touches the prim.&lt;br /&gt;
|-&lt;br /&gt;
|[[First Name Letter Prize]]&lt;br /&gt;
|{{User|RaithSphere Whybrow}}&lt;br /&gt;
|Gives a prize if the person who sits on it&#039;s first letter of first name matches the random letter!&lt;br /&gt;
|-&lt;br /&gt;
|[[Fix Small Prims|Fix_Small_Prims]]&lt;br /&gt;
|{{User|Emma Nowhere}}&lt;br /&gt;
|Finds and adjusts the smallest prims in a linkset so that it can be scaled down further.&lt;br /&gt;
|-&lt;br /&gt;
|[[Flight Assist]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|Flight feather / flight band implementation supporting various commands and allowing you to fly above the clouds.&lt;br /&gt;
|-&lt;br /&gt;
|[[Float2Hex]]&lt;br /&gt;
|{{User|Strife Onizuka}}&lt;br /&gt;
|Very useful for transporting [[float|floats]].&lt;br /&gt;
|-&lt;br /&gt;
|[[Float Box Contents]]&lt;br /&gt;
|{{User|Rolig Loon}}&lt;br /&gt;
|Displays object inventory in hover text, identified by type and updated marquee-style.&lt;br /&gt;
|-&lt;br /&gt;
|[[Follower (script)|Follower]]&lt;br /&gt;
|Unknown, uploaded by {{User|Slik Swindlehurst}}&lt;br /&gt;
|Makes an object follow the nearest person. Do not use for [[grief|griefing]].&lt;br /&gt;
|-&lt;br /&gt;
|[[FURWARE_text]]&lt;br /&gt;
|{{User|Ochi Wolfe}}&lt;br /&gt;
|Versatile text-on-prim script, open source under the MIT license&lt;br /&gt;
|-&lt;br /&gt;
|[[GA Event Notifier]]&lt;br /&gt;
|{{User|Victor Hua}}&lt;br /&gt;
|Gathers seven days event data from a Google calendar and display it through a simple interface. The lsl script can access several calendars at once through seperate php files. One file per calendar. Host the included php on your own web server.&lt;br /&gt;
|-&lt;br /&gt;
|[[Geometric|Geometric Library]]&lt;br /&gt;
|Community Project&lt;br /&gt;
|A substantial amount of various geometric functions for intersection and other purposes of 3D maths.&lt;br /&gt;
|-&lt;br /&gt;
|[[Get Profile Picture]]&lt;br /&gt;
|{{User2|Valentine Foxdale}}&lt;br /&gt;
|Sets the texture of the object to profile picture of the person that touches ot&lt;br /&gt;
|-&lt;br /&gt;
|[[GetTimestampOffset]]&lt;br /&gt;
|[[User:Siann_Beck|Siann Beck]]&lt;br /&gt;
|Returns [[llGetTimestamp]]() with an hour offset.&lt;br /&gt;
|-&lt;br /&gt;
|[[Give InvItem every n hours]]&lt;br /&gt;
|{{User|Criz Collins}}&lt;br /&gt;
|Will give an inventory item on touch only every n hours, even if somebody touches the object more than once.&lt;br /&gt;
|-&lt;br /&gt;
|[[Give random object]]&lt;br /&gt;
|{{User|Emmas Seetan}}&lt;br /&gt;
|Touch to receive a random object in the prim&#039;s inventory&lt;br /&gt;
|-&lt;br /&gt;
|[[Giver]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A menu-driven script that will hand out the objects in a prim. Supports multiple pages.&lt;br /&gt;
|-&lt;br /&gt;
|[[Google Charts]]&lt;br /&gt;
|{{User|Dedric Mauriac}}&lt;br /&gt;
|Create links to display raw data as a chart image.&lt;br /&gt;
|-&lt;br /&gt;
|[[Google_Translator]]&lt;br /&gt;
|{{User|Ugleh Ulrik}}&lt;br /&gt;
|Translates spanish to english, and its simple to make it any other way.&lt;br /&gt;
|-&lt;br /&gt;
|[[Go transparent when walking]]&lt;br /&gt;
|{{User|Emmas Seetan}}&lt;br /&gt;
|An attachment that goes invisible when you walk and visible when you don&#039;t walk.&lt;br /&gt;
|-&lt;br /&gt;
|[[Great Wanderer]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A movement system based on [[Wizardry and Steamworks|State Machines]] which provides free roaming.&lt;br /&gt;
|-&lt;br /&gt;
|[[Greeter]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A multi-purpose greeter with multiple options (IM, landmark, notecard, URL, visitor statistics, shared access and compatible with the [[Mail]] system) that could work for shops, clubs, galleries and any other public place.&lt;br /&gt;
|-&lt;br /&gt;
|[[Group Authorization]]&lt;br /&gt;
|{{User|Chase Quinnell}}&lt;br /&gt;
|Checks to see if object is set to appropriate group (checks by [[Group key finder|group key]])&lt;br /&gt;
|-&lt;br /&gt;
|[[Group key finder]]&lt;br /&gt;
|{{User|Emmas Seetan}}&lt;br /&gt;
|Touch to find the key of the group&lt;br /&gt;
|-&lt;br /&gt;
|[[Group Privacy]]&lt;br /&gt;
|{{User|Chance Unknown}}&lt;br /&gt;
|Security device to insure members of a group can have a private area. Deactivates when nobody present.&lt;br /&gt;
|-&lt;br /&gt;
|[[Hello Avatar]]&lt;br /&gt;
|Linden Lab&lt;br /&gt;
|SL&#039;s default script.&lt;br /&gt;
|-&lt;br /&gt;
|[[Hello Avatar Companion]]&lt;br /&gt;
|[[Chase Quinnell]]&lt;br /&gt;
|Companion to the original [[Hello Avatar]] script&lt;br /&gt;
|-&lt;br /&gt;
|[[Hierarchics]]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
| Advanced script to create an efficient self-aware hierarchic structure.&lt;br /&gt;
|-&lt;br /&gt;
|[[Hierarchics2]]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
| Second generation, one script per object. Only two functions, can be embedded in others. Uses the new [[llSetLinkPrimitiveParamsFast]]/[[llGetLinkPrimitiveParams]] functions.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Rolig_Loon/High-Capacity_Greeter-Counter|High-Capacity Greeter-Counter]]&lt;br /&gt;
|{{User|Rolig Loon}}&lt;br /&gt;
|Uses a memory compression algorithm to store hashed visitor UUID&#039;s in a string instead of using a list.&lt;br /&gt;
|-&lt;br /&gt;
|[[Holodeck]]&lt;br /&gt;
|{{User|Revolution Perenti}}&lt;br /&gt;
|Home Rezzing System (Open Source).&lt;br /&gt;
|-&lt;br /&gt;
|[[HUD Dots Radar]]&lt;br /&gt;
|[[User:Cerise Sorbet|Cerise]]&lt;br /&gt;
|HUD target example, draws dots on the HUD over avatars in view.&lt;br /&gt;
|-&lt;br /&gt;
|[[I Got It]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|Educational tool to provide feedback from students.&lt;br /&gt;
|-&lt;br /&gt;
|[[Intercom|Intercom]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A system allowing region-wide and grid-wide (as of 30 of August 2011, it also works grid-wide, a test was performed by linking up the chat between the OSGrid and SecondLife) mass chat relay. By using this you can relay a main chat across multiple regions or grids. The script was initially meant as a mid-way project in order to test and gather information for the [[Distributed Primitive Database]].&lt;br /&gt;
|-&lt;br /&gt;
|[[Interpolation|Interpolation Library]]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
|A small set of interpolation functions.&lt;br /&gt;
|-&lt;br /&gt;
|[[Intra-Region Update Server]]&lt;br /&gt;
|[[User:Emma_Nowhere|Emma Nowhere]]&lt;br /&gt;
|Centrally update objects such as Freeview screens or teleport pads within a region that are configured by notecards or contain modifiable objects or media assets.&lt;br /&gt;
|-&lt;br /&gt;
|[[Inventory_Based_Menu]]&lt;br /&gt;
|{{User|Revolution Perenti}}&lt;br /&gt;
|Inventory Based Menu System.&lt;br /&gt;
|-&lt;br /&gt;
|[[iTunes RPC Email|iTunes RPC]]&lt;br /&gt;
|{{User|Fox Diller}}&lt;br /&gt;
|iTunes RPC via LSL [[llEmail]] and [[llRemoteDataReply]].&lt;br /&gt;
|-&lt;br /&gt;
|[[Jingle]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A script that will make a primitive emit a sound when you wear it and walk around. Ideal for bells, footsteps and so on...&lt;br /&gt;
|-&lt;br /&gt;
|[[Key Frame Animator|Keyframe Animator]]&lt;br /&gt;
|{{User|Jasper Flossberg}}&lt;br /&gt;
| This is a KeyFrame Animator Script to simplify construction of keyframed animations.&lt;br /&gt;
|-&lt;br /&gt;
|[[Key Pad Door|Keypad Door]]&lt;br /&gt;
|{{User|Tdub Dowler}}&lt;br /&gt;
| Door and keypad with changeable code. Follow instructions carefully!&lt;br /&gt;
|-&lt;br /&gt;
|[[Key2Name]]&lt;br /&gt;
|{{User2|Nika Rugani}}&lt;br /&gt;
| Key2Name service where a user no longer needs to be in the same region to get users name&lt;br /&gt;
|-&lt;br /&gt;
|[[Kilt Editor|Kilt / Skirt Editor]]&lt;br /&gt;
|{{User|Brangus Weir}}&lt;br /&gt;
| This changes all the parameters of all the flexis in the link set in one swell foop!&lt;br /&gt;
|-&lt;br /&gt;
|[[Kira Warp Core Drive]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|Scripts and instructions on how to create a vehicle that teleports an avatar and a vehicle to any region on the grid. You can [http://www.youtube.com/watch?v=xQkBRD7HBvw watch the YouTube video showing the prototype] I created to demonstrate how it works.&lt;br /&gt;
|-&lt;br /&gt;
|[[Last Sound System]]&lt;br /&gt;
|Babbage Linden&lt;br /&gt;
|An LSL [http://Last.fm Last.fm] client.&lt;br /&gt;
|-&lt;br /&gt;
|[[LibraryDisplayLandScreenshot]]&lt;br /&gt;
|{{User|Jon Desmoulins}}&lt;br /&gt;
|A modified version of LibraryDisplayProfilePic using the new [[PARCEL_DETAILS_ID]] Implemented in Server v1.36&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Daemonika_Nightfire/Scripts/LinkNumber-List_in_llSetLinkPrimitiveParamsFast|LinkNumber-List_in_llSetLinkPrimitiveParamsFast]]&lt;br /&gt;
|{{User|Daemonika Nightfire}}&lt;br /&gt;
|Changed several prims in linkset with the same parameters, with a list. Without separate llSetLinkPrimitiveParams for each prim. (ideal for show/hide effects)&lt;br /&gt;
|-&lt;br /&gt;
|[[Limit Vendor]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|This is a vendor supporting any number of items with different prices which will only dispense a certain number of individual items by setting limits for each item based on a notecard configuration.&lt;br /&gt;
|-&lt;br /&gt;
|[[Linkset resizer]]&lt;br /&gt;
|Maestro Linden&lt;br /&gt;
|Systematically rescales a linkset by moving and resizing each prim (by using [[llGetLinkPrimitiveParams]] and [[llSetLinkPrimitiveParamsFast]])&lt;br /&gt;
|-&lt;br /&gt;
|[[Linkset resizer with menu]]&lt;br /&gt;
|{{User|Brilliant Scientist}}&lt;br /&gt;
|A menu-driven script that rescales a linkset by moving and resizing the prims using [[llGetLinkPrimitiveParams]] and [[llSetLinkPrimitiveParamsFast]] functions. Based on [[Linkset resizer]].&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Daemonika_Nightfire/Scripts/*DS*_Resize_Script|Resize Script (m/c/t) v2.0.01]]&lt;br /&gt;
|{{User|Daemonika Nightfire}}&lt;br /&gt;
|Single resize script for a complete linkset with save and restore option.&lt;br /&gt;
|-&lt;br /&gt;
|[[Pointing Stick]]&lt;br /&gt;
|{{User|rhonin Nissondorf}}&lt;br /&gt;
|A device that takes controls of your arrow keys and directs the device in the relative direction its pointing, forward and back of course.&lt;br /&gt;
|-&lt;br /&gt;
|[[Gun Script]]&lt;br /&gt;
|[[User:rhonin Nissondorf| rhonin Nissondorf]]&lt;br /&gt;
|Shoots out &amp;quot;ammo&amp;quot; from the root prim of your &amp;quot;gun&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|[[Grenade Script]]&lt;br /&gt;
|[[User:rhonin Nissondorf| rhonin Nissondorf]]&lt;br /&gt;
|Uses a timed factor to add influence to the velocity of a throw object.&lt;br /&gt;
|-&lt;br /&gt;
|[[Linkset Resizer 2]]&lt;br /&gt;
|{{User|Emma Nowhere}}&lt;br /&gt;
|A more user-friendly resizer script designed for either drop-in use by the end-user or builder or for use in products. Based on [[Fix Small Prims]].&lt;br /&gt;
|-&lt;br /&gt;
|[[List2CSV]]&lt;br /&gt;
|{{User|Kunnis Basiat}}&lt;br /&gt;
|List2CSV &amp;amp; CSV2List that include preserving type and escaping characters.&lt;br /&gt;
|-&lt;br /&gt;
|[[list_cast]]&lt;br /&gt;
|{{User2|Fractured Crystal}}&lt;br /&gt;
|Casts a list of strings into the type they appear to be. Designed for preprocessing user input for feeding into [[llSetPrimitiveParams]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Listener Script]]&lt;br /&gt;
|{{User|Emmas Seetan}}&lt;br /&gt;
|Use to [[listen]] to other people&#039;s conversations (Like spying)&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Functions#List:_Find_Last_Index|List: Find Last Index]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|Returns the last index of searched item in a source list. (backwards version of [[llListFindList]])&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Functions#List:_Multi-Find_Index_.28First_or_Last.29|List: Multi Find]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|Returns the first found index of multiple search items in a list. (Multi-item version of [[llListFindList]]. Fwd and Rev versions included)&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Functions#List:_Get_Reverse_Order|List: Reverse]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|Returns an input List in reverse order&lt;br /&gt;
|-&lt;br /&gt;
|[[LinksetIndexing]]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
|Functions for indexing a linkset by patterns or names down to their linkset numbers.&lt;br /&gt;
|-&lt;br /&gt;
|[[llGetAgentList Sim-Wide Radar]]&lt;br /&gt;
|{{User|Tiaeld Tolsen}}&lt;br /&gt;
|Simple radar implementation using the new [[llGetAgentList]] LSL Function.&lt;br /&gt;
|-&lt;br /&gt;
|[[Live Event Timeout]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A script which will set the the music URL back to a radio station of your liking when a DJ leaves or forgets to switch back the URL after a live event. It takes multiple DJs, using a notecard and several configuration parameters.&lt;br /&gt;
|-&lt;br /&gt;
|[[Load URL]]&lt;br /&gt;
|{{User|Emmas Seetan}}&lt;br /&gt;
|Touch to get a dialog to visit the URL inside the script.&lt;br /&gt;
|-&lt;br /&gt;
|[[LOGO Turtle]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A script that interprets basic LOGO commands, extending the directions to 3D.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Kephra_Nurmi/lsDancemachine|lsDancemachine]]&lt;br /&gt;
|[[User:Kephra_Nurmi|Kephra Nurmi]]&lt;br /&gt;
| Low lag client server dancemachine.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Kephra_Nurmi/lsDeejay|lsDeejay Home Edition]]&lt;br /&gt;
|[[User:Kephra_Nurmi|Kephra Nurmi]]&lt;br /&gt;
| Client server media control for music, video, youtube, pictures, and texture animations.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Kephra_Nurmi/lsDialog|lsDialog]]&lt;br /&gt;
|[[User:Kephra_Nurmi|Kephra Nurmi]]&lt;br /&gt;
| Universal notecard driven menu dialog system.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Kephra_Nurmi/lsDisplay|lsDisplay]]&lt;br /&gt;
|[[User:Kephra_Nurmi|Kephra Nurmi]]&lt;br /&gt;
| Picture cycler with preloader.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Kephra_Nurmi/lsDistributor|lsDistributor]]&lt;br /&gt;
|[[User:Kephra_Nurmi|Kephra Nurmi]]&lt;br /&gt;
| Simple &#039;try&#039; and &#039;buy&#039; vendor system.&lt;br /&gt;
|-&lt;br /&gt;
|[[Wizardry_and_Steamworks/LSL|LSL FUSS]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|FUSS (Frequently Used Short Snippets) is an collection of short snippets provided by [[Wizardry and Steamworks]]. They range from functions to one-liners and are provided for LSL developers.&lt;br /&gt;
|-&lt;br /&gt;
|[[LSL_languageAPI]]&lt;br /&gt;
|{{User|Gypsy Paz}}&lt;br /&gt;
|Multi-lingual API from notecard based language files&lt;br /&gt;
|-&lt;br /&gt;
|[[Mail]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|An system for sending objects to multiple recipients automatically supporting shared access and [[Greeter]] compatible auto-subscriptions.&lt;br /&gt;
|-&lt;br /&gt;
|[[Mandelbrot Explorer]]&lt;br /&gt;
|Babbage Linden&lt;br /&gt;
|An interactive fractal explorer.&lt;br /&gt;
|-&lt;br /&gt;
|[[Materialization Effects]]&lt;br /&gt;
|{{User|Overbrain Unplugged}}&lt;br /&gt;
| Special effects to add to rezzing events to simulate a teleportation or materialization.&lt;br /&gt;
|-&lt;br /&gt;
|[[Materialization Effects 2]]&lt;br /&gt;
|{{User2|Nika Rugani}}&lt;br /&gt;
| More efficient and faster version of Materialization Effects by Overbrain Unplugged.&lt;br /&gt;
|-&lt;br /&gt;
|[[Memory Module]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|An example of pseudo-persistent variable in-world storage.&lt;br /&gt;
|-&lt;br /&gt;
|[[Merge Sort]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
|Implements a Merge Sort in LSL, however this code is 300(ish) times slower than [[llListSort]]. Don&#039;t use this in a script!&lt;br /&gt;
|-&lt;br /&gt;
|[[Minesweeper]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
|A simple minesweeper game.&lt;br /&gt;
|-&lt;br /&gt;
|[[Mood Color Changer]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A script that changes the color of all primitives in a linkset depending on the smileys the owner types on the main chat.&lt;br /&gt;
|-&lt;br /&gt;
|[[Morse Code]]&lt;br /&gt;
|{{User|Bobbyb30 Swashbuckler}}&lt;br /&gt;
|A script that allows for the conversion to and from morse code and can &amp;quot;play&amp;quot; morse code.&lt;br /&gt;
|-&lt;br /&gt;
|[[Multi-displays Texture Cycler]]&lt;br /&gt;
|{{User|Nargus Asturias}}&lt;br /&gt;
|A simple texture rotator designed for multiple display screens. With delay between each screen AND delay between each loop.&lt;br /&gt;
|-&lt;br /&gt;
|[[Multi Item Rezzer|Multi Item Rezzer]]&lt;br /&gt;
|{{User|Jesse Barnett}}&lt;br /&gt;
|A rework of my old High Altitude Rezzer. Place the objects that you wish to choose from to be rezzed inside. Sit on the rezzer and pick the item and the height. It will go to target height and rez the object.&lt;br /&gt;
|-&lt;br /&gt;
|[[Multirezzer|Multirezzer (on collision)]]&lt;br /&gt;
|{{User2|Beet Streeter}}&lt;br /&gt;
|Spawns up to 10 objects when the object containing the script collides with a user.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Allen_Kerensky/Myriad_Lite_Preview_5|Myriad Lite Preview 5 RPG System]]&lt;br /&gt;
|[[User:Allen_Kerensky|Allen Kerensky]]&lt;br /&gt;
|Working preview of the Myriad Universal RPG System by Ashok Desai, converted to LSL as a roleplay meter with quest NPC and goals, hand-to-hand and melee close combat, ranged combat, armor, healing, bullet, firearm, holster, practice target, and much more&lt;br /&gt;
|-&lt;br /&gt;
|[[N2K]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A Name To Key (Name2Key) implementation that does not use third-party databases, nor relies on the uptime of not well known websites but rather uses the World Wide Web Consortium to fetch the key of avatars while trying to alert the developers of the consequences of using Name2Key third-party providers as well as trying to refrain from sales pitch terminology such as &amp;quot;best&amp;quot;, &amp;quot;newest&amp;quot; and &amp;quot;fastest&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|[[Name2Key in LSL]]&lt;br /&gt;
|{{User|Maeva Anatine}}&lt;br /&gt;
|Get the Name2Key feature inside your scripts. Works even on lastly subscribed avatars.&lt;br /&gt;
|-&lt;br /&gt;
|[[Name2Key]]&lt;br /&gt;
|{{User2|Nika Rugani}}&lt;br /&gt;
|Newest and fastest Name2Key search, While the database is small it is also connected to Second Life&#039;s search.&lt;br /&gt;
|-&lt;br /&gt;
|[[NexiiText]]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
| Text Renderer, specialised in features, performance and a compact nature. It features unique per character control, such as Colour, Bold, Italics, Underline, Stroke, Icons. The high performance means it comes in at a 5 char / prim ratio, but it is perfect where highly dynamic and rich text is required.&lt;br /&gt;
|-&lt;br /&gt;
|[[NexiiText2]]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
| Second Gen Text Renderer. Same as above but features use of [[PRIM_LINK_TARGET]] and an awesome dynamic prim allocation architecture.&lt;br /&gt;
|-&lt;br /&gt;
|[[No Auto-Return]]&lt;br /&gt;
|{{User|Bellla Clarity}}&lt;br /&gt;
|To stop your long and hard builds from getting returned in sandboxes (&#039;&#039;only single prims, though!&#039;&#039;).&lt;br /&gt;
|-&lt;br /&gt;
|[[No Auto-Return NR]]&lt;br /&gt;
|{{User|Jor3l Boa}}&lt;br /&gt;
|This really works (29-05-09), needs a nearby region to do the trick and avoid auto return. (Tested on Blue and Rausch)&lt;br /&gt;
|-&lt;br /&gt;
|[[No Auto-Return (Multi)]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
|A revision of Bella&#039;s that works for multi-prim objects.&lt;br /&gt;
|-&lt;br /&gt;
|[[No Limit Teleporter]]&lt;br /&gt;
|{{User|Morgam Biedermann}}&lt;br /&gt;
|Teleport to infinite altitudes (up to 4096m)&lt;br /&gt;
|-&lt;br /&gt;
|[[Object Size]]&lt;br /&gt;
|{{User|Chase Quinnell}}&lt;br /&gt;
|Gets the dimensions and footprint of a linkset&lt;br /&gt;
|-&lt;br /&gt;
|[[Object to Data v1.4|Object to Data]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
|Turns an object into text (and back). Allows people to transfer objects through notecards (or otherwise).&lt;br /&gt;
|-&lt;br /&gt;
|[[Online Indicator|Online Indicator]]&lt;br /&gt;
|{{User|Kristy Fanshaw}}&lt;br /&gt;
|Will show if the user is online or not. Displays users profile picture and allows to send IM&#039;s to user. Also gives a link to open the users profile&lt;br /&gt;
|-&lt;br /&gt;
|[[Open Group Join]]&lt;br /&gt;
|{{User|Alicia Stella}}&lt;br /&gt;
|User Touches Object to Join Group from Group Info window, (no bot.)&lt;br /&gt;
|-&lt;br /&gt;
|[[Open Prim Animator]]&lt;br /&gt;
|{{User|Todd Borst}}&lt;br /&gt;
|Single script prim animation tool.  Menu driven, easy to use.&lt;br /&gt;
|-&lt;br /&gt;
|[[Open Zyngo Skin Installer]]&lt;br /&gt;
|{{User2|Tmzasz Luminos}}&lt;br /&gt;
|A Simple Script designed to install skins on the popular Skill machines.&lt;br /&gt;
|-&lt;br /&gt;
|[[Orbitor]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|Based on [[Wanderer]], we create [[Orbitor]] which allows a primitive to orbit around an origin point.&lt;br /&gt;
|-&lt;br /&gt;
|[[One Script, many doors]]&lt;br /&gt;
|{{User|Kyrah Abattoir}}&lt;br /&gt;
|Door script able to manage more than 50 linked doors from a single script instance.&lt;br /&gt;
|-&lt;br /&gt;
|[[ParseString2List]]&lt;br /&gt;
|{{User|Strife Onizuka}}&lt;br /&gt;
|Same as [[llParseString2List]] and [[llParseStringKeepNulls]], but not limited to 8 spacers or separators. Thus substitute a call to the [[llParseString2List]] and [[llParseStringKeepNulls]] functions by a call to [[Parse_String_To_List|ParseString2List]] whenever you have more than 8 separators or more than 8 spacers.&lt;br /&gt;
|-&lt;br /&gt;
|[[Password Generator]]&lt;br /&gt;
|{{User2|Syntrax Canucci}}&lt;br /&gt;
|This is an over-complicated, semi-complex password generator, which goes through multiple steps.&lt;br /&gt;
|-&lt;br /&gt;
|[[Pathfinder]]&lt;br /&gt;
|Babbage Linden&lt;br /&gt;
|A potential field based pathfinding library.&lt;br /&gt;
|-&lt;br /&gt;
|[[Pay to Strip]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|This script is mainly meant for dancers and uses RLV to allow people to strip an avatar by making every clothes and attachment piece removable, respectively detachable for a settable price.&lt;br /&gt;
|-&lt;br /&gt;
|[[Permanent Primitive URL]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A script that uses [http://tiny.cc http://tiny.cc] REST API to update a SIM URL and make it permanent. Full description on how to register and set up a &amp;quot;nice&amp;quot; URL, like: http://tiny.cc/Kira. Should work with most URL shortening services (I&#039;m not affiliated with tiny.cc except for having a pass at them for not allowing OpenSIM-style generated URLs).&lt;br /&gt;
|-&lt;br /&gt;
|[[Personal ATM Machine]]&lt;br /&gt;
|{{User|Jessikiti Nikitin}}&lt;br /&gt;
|Allows deposits and withdrawals into another of your accounts, without the account being logged in.&lt;br /&gt;
|-&lt;br /&gt;
|[[Phantom Child]]&lt;br /&gt;
|{{User|Aeron Kohime}}&lt;br /&gt;
|Causes a child in a link set to become phantom without the entire object becoming phantom.&lt;br /&gt;
|-&lt;br /&gt;
|[[PHP_RegionFunctions]]&lt;br /&gt;
|{{User|Gypsy Paz}} and {{User2|Zayne Exonar}}&lt;br /&gt;
|Three useful PHP functions to get region info&lt;br /&gt;
|-&lt;br /&gt;
|[[PhysicsLib]]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
| Interesting set of fun physics functions.&lt;br /&gt;
|-&lt;br /&gt;
|[[Planar Tile Generator]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A script to generate perfectly aligned tiles.&lt;br /&gt;
|-&lt;br /&gt;
|[[Play and Loop Sound]]&lt;br /&gt;
|{{User|Bellla Clarity}}&lt;br /&gt;
|Very short and simple script; plays and loops a sound in an object.&lt;br /&gt;
|-&lt;br /&gt;
|[[Posing stand|Posing Stand]]&lt;br /&gt;
|{{User|Bellla Clarity}}&lt;br /&gt;
|Just a pose script to edit [[attachments]] more easily.&lt;br /&gt;
|-&lt;br /&gt;
|[[PosJump]]&lt;br /&gt;
|{{User|Uchi Desmoulins}}&lt;br /&gt;
|A much more efficient alternative to the popular [[warpPos]] function for bypassing 10m distance-moved limitations.&lt;br /&gt;
|-&lt;br /&gt;
|[[Puppeteer]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A simple puppeteer script that will allow you to record and animate prim movements and rotations.&lt;br /&gt;
|-&lt;br /&gt;
|[[Primitive Name Changer]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
| A script that changes the primitive&#039;s name based on an user-configurable interval and a notecard list containing possible names.&lt;br /&gt;
|-&lt;br /&gt;
|[[Prefix Calculator]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
| A calculator that evaluates expressions in prefix notation.&lt;br /&gt;
&amp;lt;code&amp;gt;+ 3 4 = 5. * + 1 2 + 3 4 = 14.&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[Profile Generator]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A cynical script for generating boilerplate profiles by based on cliches and profile memes.&lt;br /&gt;
|-&lt;br /&gt;
|[[Profile Picture]]&lt;br /&gt;
|[[User: Jor3l Boa|Jor3l Boa]]&lt;br /&gt;
|A working profile picture script with the new SecondLife API (1/11/2011)&lt;br /&gt;
|-&lt;br /&gt;
|[[Progress Bar]]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
| Flexible and powerful little function for creating progress bars useful in hovertext.&lt;br /&gt;
|-&lt;br /&gt;
|[[Pseudo-random Number Generator]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
|Generates a Pseudo-random number between -0x7FFFFFFF and 0x7FFFFFFF&lt;br /&gt;
|-&lt;br /&gt;
|[[Quick Collar]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A simple, no-bulk, no external database and essential feature-packed RLV collar script for your pleasures.&lt;br /&gt;
|-&lt;br /&gt;
|[[Quicksort]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|LSL implementation of the Quicksort algorithm.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Rolig_Loon/Quiz_From_Notecard|Quiz From Notecard]]&lt;br /&gt;
|{{User|Rolig Loon}}&lt;br /&gt;
|A multiple-choice testing script that reads questions and answer choices from a notecard and presents them in dialog boxes.&lt;br /&gt;
|-&lt;br /&gt;
|[[Racter]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|In-world, multi-purpose chatterbot (Eliza/A.L.I.C.E. inspired) supporting multiple configurable hot-swappable brain-files with a wide range of applications.&lt;br /&gt;
|-&lt;br /&gt;
|[[Rainbow_palette]]&lt;br /&gt;
|{{User|Rui Clary}}&lt;br /&gt;
|Build a color picker, using only one prim, and a few lines of code.&lt;br /&gt;
|-&lt;br /&gt;
|[[Random Gaussian Number Generator]]&lt;br /&gt;
|{{User2|Vlad Davidson}}&lt;br /&gt;
|Generates a random number drawn from a normal (Gaussian; bell-curve) distribution, based on a specified mean/stdev&lt;br /&gt;
|-&lt;br /&gt;
|[[Random AV Profile Projector]]&lt;br /&gt;
|{{User|Debbie Trilling}}&lt;br /&gt;
|Randomly selects an AV from a crowd &amp;amp; then projects their profile picture as a &#039;holographic&#039; image&lt;br /&gt;
|-&lt;br /&gt;
|[[Random Object Vendor]]&lt;br /&gt;
|{{User|CodeBastard Redgrave}}&lt;br /&gt;
|Simple vendor that gives out random objects when paid the right amount&lt;br /&gt;
|-&lt;br /&gt;
|[[Random Password Generator]]&lt;br /&gt;
|{{User|Jor3l Boa}}&lt;br /&gt;
|Generate Random passwords based on String Length.&lt;br /&gt;
|-&lt;br /&gt;
|[[RandomPrimParams]]&lt;br /&gt;
|{{User|Xintar Citron}}&lt;br /&gt;
|Simple script which randoms Prim Parameteres, in this example i used color, but you can use everything.&lt;br /&gt;
|-&lt;br /&gt;
|[[RavText]]&lt;br /&gt;
|{{User|Ravenous Dingo}}&lt;br /&gt;
|An alternate to XyText.  This is a lightweight, multiple font 10 character text display system.  It only supports uppercase alphanumeric text and a few special characters, but it is very fast, renders quickly and supports multiple fonts. It is meant for specialized use when all that is desired is basic, fast text display and the extra &amp;quot;bells and whistles&amp;quot; are not needed.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:PixelProphet Lane/Scripts#Real Object Inventory To Dialog|Real Object Inventory To Dialog]]&lt;br /&gt;
|{{User|PixelProphet Lane}}&lt;br /&gt;
|Display any amount of items contained in an Object in a Dialog, regardless of item name length.&lt;br /&gt;
|-&lt;br /&gt;
|[[RentalBoxv1|Rental Box, Simply]]&lt;br /&gt;
|{{User2|Sendao Goodman}}&lt;br /&gt;
|Simple explanation of how to make rental boxes.&lt;br /&gt;
|-&lt;br /&gt;
|[[Rental Cube]]&lt;br /&gt;
|{{User|Hank Ramos}}&lt;br /&gt;
|Simple cube for renting out a space.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Daemonika_Nightfire/Scripts/*DS*_Rental-Cube|Rental-Cube]]&lt;br /&gt;
|{{User|Daemonika Nightfire}}&lt;br /&gt;
|This is an Open-Source version of a Rental-Cube from Daemonika Nightfire. Just copy/paste this script into a inworld lsl-script and add one notecard called Info/Rules to the content of your cube.&lt;br /&gt;
|-&lt;br /&gt;
|[[Remote Texture Loader]]&lt;br /&gt;
|{{User|Bobbyb30 Swashbuckler}}&lt;br /&gt;
|A set of scripts for remotely loading textures within a sim. This means that a single &amp;quot;texture server&amp;quot; can manage multiple changing billboards within a sim.&lt;br /&gt;
|-&lt;br /&gt;
|[[Say Region Frames Per Second|Region Frames Per Second]]&lt;br /&gt;
|{{User2|Heymeriou Mystakidou}}&lt;br /&gt;
| Says the region name and frames per second out loud on command.&lt;br /&gt;
|-&lt;br /&gt;
|[[Security Orb|Security Orb]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A regular security orb that ejects people from a land parcel supporting a menu configuration and a notecard based access list.&lt;br /&gt;
|-&lt;br /&gt;
|[[Resizer multi-prims|Resizer multi-prims]]&lt;br /&gt;
|{{User2|Christy Mansbridge}}&lt;br /&gt;
|1 Mono script to resize object (1 to 256 prims) by blue menu. Avoid risk to break the build by increasing link distance.&lt;br /&gt;
|-&lt;br /&gt;
|[[RLV Collision Grabber]]&lt;br /&gt;
|[[User:Vala_Vella|Vala Vella]]&lt;br /&gt;
|Grab people colliding with the object and sit them on a set target using RLV&lt;br /&gt;
|-&lt;br /&gt;
|[[sbDialog]]&lt;br /&gt;
|[[User:Siann_Beck|Siann Beck]]&lt;br /&gt;
|A simple replacement function for [[llDialog]]. It re-orders the button list so that the button values, as passed to it, display left-to-right, top-to-bottom. It also opens a [[llListen|listen]] on the specified channel, and returns the handle.&lt;br /&gt;
|-&lt;br /&gt;
|[[Scheduled Payments]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A script that will allow you to make scheduled (and reoccurring) payments to multiple avatars via a notecard.&lt;br /&gt;
|-&lt;br /&gt;
|[[Scheduler]]&lt;br /&gt;
|{{User|Haravikk Mistral}}&lt;br /&gt;
|Schedule multiple events using a single script timer&lt;br /&gt;
|-&lt;br /&gt;
|[[Scheme_Interpreter|Scheme Interpreter]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
|A scheme interpreter capable of handling most scheme expressions, including lambda and lists.&lt;br /&gt;
|-&lt;br /&gt;
|[[Script Override Functions]]&lt;br /&gt;
|{{User|Revolution Perenti}}&lt;br /&gt;
|bypass default strings, integer etc in chat channel.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Toady_Nakamura/Scrubber_Script|Script Scrubber]]&lt;br /&gt;
|{{User|Toady Nakamura}}&lt;br /&gt;
|Script scrubs memory resident script functions from prim and self-deletes the script. Does not damage the prim, or remove other scripts.  Use this to kill bling or other particle effects!&lt;br /&gt;
|-&lt;br /&gt;
|[[Scripted Attachment Detector.lsl|Scripted Attachment Detector]]&lt;br /&gt;
|{{User|Bobbyb30 Swashbuckler}}&lt;br /&gt;
|A script that will display avatars wearing scripted attatchments in hovertext. This may be worn as an hud or rezzed.&lt;br /&gt;
|-&lt;br /&gt;
|[[Self Upgrading Script Enhanced]]&lt;br /&gt;
|{{User|Cron Stardust}}&lt;br /&gt;
|Keeps only latest version of the script on prim (even with multiple adds of the same script!)&lt;br /&gt;
|-&lt;br /&gt;
|[[Sensor Visualizer]]&lt;br /&gt;
|{{User|Cerise Sorbet}}&lt;br /&gt;
|Shows the size and shape you get with [[llSensor]] range and arc parameters&lt;br /&gt;
|-&lt;br /&gt;
|[[Serverless Key Exchange]]&lt;br /&gt;
|{{User2|Sendao Goodman}}&lt;br /&gt;
|Maintains a network of object keys without using an external server.&lt;br /&gt;
|-&lt;br /&gt;
|[[SHA-1|SHA-1 Hash]]&lt;br /&gt;
|{{User|Strife Onizuka}}&lt;br /&gt;
|Performs a SHA-1 Hash on an input text. Similar to MD5 only (slightly) more secure.&lt;br /&gt;
|-&lt;br /&gt;
|[[SHA-2|SHA-2 Hash]]&lt;br /&gt;
|{{User|Strife Onizuka}}&lt;br /&gt;
|Performs a SHA-2 Hash on an input text. Similar to SHA-1 only (slightly) more secure.&lt;br /&gt;
|-&lt;br /&gt;
|[[Shoutcast - radio controller v0.3 (remake of similar scripts)]]&lt;br /&gt;
|{{User|Flennan Roffo}}&lt;br /&gt;
|Control your shoutcast radio stations with this shoutcast controller. Uses notecard for info about genres and stations and menu to select the station. Sends info to Xytext display.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:PixelProphet Lane/Scripts#Show Agent Script Count and memory|Show Agent Script Count and memory]]&lt;br /&gt;
|{{User|PixelProphet Lane}}&lt;br /&gt;
|Fast and efficient method to display the amount of scripts and memory usage for an agent&lt;br /&gt;
|-&lt;br /&gt;
|[[Sim Map Particle Projector]]&lt;br /&gt;
|{{User|Jesse Barnett}}&lt;br /&gt;
|Displays a floating map of the sim the script is in.&lt;br /&gt;
|-&lt;br /&gt;
|[[Sim Performance Collector (Web-based]]&lt;br /&gt;
|{{User2|DeniseHoorn Slade}}&lt;br /&gt;
|Makes some graphs for your website on the sim-performance (DIL,FPS, PING). PHP and Round Robin Database on Server needed!&lt;br /&gt;
|-&lt;br /&gt;
|[[Sim Restart Logger]]&lt;br /&gt;
|{{User|Kyrah Abattoir}}&lt;br /&gt;
|Counts region restarts and displays log of last 9 restarts together with region FPS and dilation.&lt;br /&gt;
|-&lt;br /&gt;
|[[SIM status]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A script that will scan and display the status of SIMs (up, down, starting, stopping, unknown, crashed) from a notecard in the same prim as the script.&lt;br /&gt;
|-&lt;br /&gt;
|[[Simple Elevator in a Box]]&lt;br /&gt;
|{{User|Hank Ramos}}&lt;br /&gt;
|Simple elevator example.&lt;br /&gt;
|-&lt;br /&gt;
|[[Simple Pay Door]]&lt;br /&gt;
|{{User|Giygas Static}}&lt;br /&gt;
|Simple door you pay to get access.&lt;br /&gt;
|-&lt;br /&gt;
|[[Skillingo AntiHack Script]]&lt;br /&gt;
|{{User2|Tmzasz Luminos}}&lt;br /&gt;
|A simple Protection script for skillingo thats modifyable to work with other machines.&lt;br /&gt;
|-&lt;br /&gt;
|[[Skunk Money]]&lt;br /&gt;
|{{User|Hank Ramos}}&lt;br /&gt;
|Fun gambling machine of yesteryear, which only supports freeplay now due to SL regulations against gambling.&lt;br /&gt;
|-&lt;br /&gt;
|[[SLateIt]]&lt;br /&gt;
|Babbage Linden&lt;br /&gt;
|An augmented virtual reality HUD.&lt;br /&gt;
|-&lt;br /&gt;
|[[SLetanque]]&lt;br /&gt;
|Babbage Linden&lt;br /&gt;
|An LSL petanque game.&lt;br /&gt;
|-&lt;br /&gt;
|[[SLURL HUD]]&lt;br /&gt;
|{{User|CodeBastard Redgrave}}&lt;br /&gt;
|Touch this HUD to get a SLURL through IM, email and floating text.&lt;br /&gt;
|-&lt;br /&gt;
|[[BuildSlurl (NewAge)]]&lt;br /&gt;
|{{User2|Archile Azalee}}&lt;br /&gt;
|A way to create a SLurl in a single function BuildSlurl&lt;br /&gt;
|-&lt;br /&gt;
|[[SL Mail V1.2]]&lt;br /&gt;
|{{User|Flennan Roffo}}&lt;br /&gt;
|Second Life mail client V1.2 (released sept&#039;07). Send and receive mail from within Second Life from and to any address. With Address Book function and many chat commands. V1.3 is upcoming soon!&lt;br /&gt;
|-&lt;br /&gt;
|[[SL_NTPoHTTP_v1.1_client|SL NTPoHTTP client]]&lt;br /&gt;
|{{User|SignpostMarv Martin}}&lt;br /&gt;
|Second Life Needs Time Parsing over Hyper Text Transfer Protocol&lt;br /&gt;
Emulates the function of [[llGetWallclock]] for any timezone by using SLOpenID&#039;s SLNTPoHTTP service. Also supports ISO 8601 and RFC 2822 timestamps. Script is dependent upon an external service operated by the author!&lt;br /&gt;
|-&lt;br /&gt;
|[[Slide Display]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A display for presentations or talks supporting multiple slides as well as zooming-in on the slides.&lt;br /&gt;
|-&lt;br /&gt;
|[[Smile]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|An extended smile script supporting two smiles (extendable via a list) and a time delay triggering them at random.&lt;br /&gt;
|-&lt;br /&gt;
|[[Smooth Rotating Door]]&lt;br /&gt;
|{{User|Toy Wylie}}&lt;br /&gt;
|A script for doors that open and close smoothly using llTargetOmega&lt;br /&gt;
|-&lt;br /&gt;
|[[Smooth Rotating Linked Door With Hinge]]&lt;br /&gt;
|{{User2|Lyn Mimistrobell}}&lt;br /&gt;
|A script for linked uncut (mesh) doors that smoothly rotates around a virtual hinge without the use of timers&lt;br /&gt;
|-&lt;br /&gt;
|[[Smooth Sliding Door]]&lt;br /&gt;
|{{User|SimonT Quinnell}}&lt;br /&gt;
|A script for sliding doors that open and close smoothly using [[llMoveToTarget]]. Asjusts for prim orientation.&lt;br /&gt;
|-&lt;br /&gt;
|[[Snake Game]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|The game of snake in Second Life.&lt;br /&gt;
|-&lt;br /&gt;
|[[Song Requests]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|Helper script for DJs, allowing listeners to request songs and make dedications.&lt;br /&gt;
|-&lt;br /&gt;
|[[Speed Tester]]&lt;br /&gt;
|{{User|Bobbyb30 Swashbuckler}}&lt;br /&gt;
|Similar to the [[Efficiency Tester]], this script allows you to test the speed of a particular function or snippet with multiple trials giving min/max/avg/median and the standard deviation.&lt;br /&gt;
|-&lt;br /&gt;
|[[Spiral Staircase Generator]]&lt;br /&gt;
|{{User|Meyermagic Salome}}&lt;br /&gt;
|Generates nice looking spiral staircases without much hassle.&lt;br /&gt;
|-&lt;br /&gt;
|[[Static URL&#039;s for HTTP-In Service|Static_URLs]]&lt;br /&gt;
|{{User|Jor3l Boa}}&lt;br /&gt;
|How to generate a static url for HTTP-In temporal limitations.&lt;br /&gt;
|-&lt;br /&gt;
|[[String Compare]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
|Compares two strings and reliably returns either 1, -1, or 0 if they are the same.&lt;br /&gt;
|-&lt;br /&gt;
|[[Synchronize]]&lt;br /&gt;
|{{User|Cay Trudeau}}&lt;br /&gt;
|Makes synchronized start to a task on even/odd seconds&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Functions#String:_Find_Last_Index|String: Reverse]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|Returns an input string in reverse order&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Functions#String:_Get_Reverse_Order|String: Last Index]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|Returns the last index of search found in string (the backward equivalent of [[llSubStringIndex]])&lt;br /&gt;
|-&lt;br /&gt;
|[[Tail Messages (NewAge)]]&lt;br /&gt;
|{{User|Asia Snowfall}}&lt;br /&gt;
|A super nice easy to use script for those non-scripters out there! NewAge coding has done it again where you no longer need to scroll up and down adding buttons and adding messages, Features a tag system (you&#039;ll see what i mean :P)&lt;br /&gt;
|-&lt;br /&gt;
|[[Taper Door (minimalistic)]]&lt;br /&gt;
|{{User2|Kopilo Hallard}}&lt;br /&gt;
|A basic script for doors which open and close using taper.&lt;br /&gt;
|-&lt;br /&gt;
|[[Teleport HUD]]&lt;br /&gt;
|{{User|Jesse Barnett}}&lt;br /&gt;
|WORKS TO 4096 METERS!! Very user friendly teleport HUD. Add destinations by touching &amp;quot;Add&amp;quot; &amp;amp; naming destination in chat. Automatically gets sim name and coordinates. Will only display the destinations in the sim you are currently in. Demonstrates more advanced list manipulation and stride functions.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Programs#v7-D_Enh._Landmark-2-Map|Teleporter (landmark based)]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|Uses Landmarks to offer map teleports. Works as Hud or inworld objects, just drop in landmarks and go.&lt;br /&gt;
|-&lt;br /&gt;
|[[Text_Scroller|Text Scroller]]&lt;br /&gt;
|[[User:Fred_Gandt|Fred Gandt]]&lt;br /&gt;
|A simple text display object that scrolls text (applied as a texture) from right to left (like &#039;&#039;those&#039;&#039; LED signs) in a continuous loop.&lt;br /&gt;
|-&lt;br /&gt;
|[[Bobbyb&#039;s texture changer|Texture Changers]]&lt;br /&gt;
|{{User|Bobbyb30 Swashbuckler}}&lt;br /&gt;
|A collection of texture changing scripts.&lt;br /&gt;
|-&lt;br /&gt;
|[[Texture Menu Management|Texture Management]]&lt;br /&gt;
|{{User|Revolution Perenti}}&lt;br /&gt;
|Dialog Menu based Texture Selection.&lt;br /&gt;
|-&lt;br /&gt;
|[[Texture Particle Poofer|Texture Particle Poofer]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|This is a generic dialog-based particle poofer, emitting textures towards an avatar for a configurable amount of time.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Xen_Lisle/Texture_Slide|Texture Slide]]&lt;br /&gt;
|{{User|Xen Lisle}}&lt;br /&gt;
|Slides a texture on mouse movement&lt;br /&gt;
|-&lt;br /&gt;
|[[Tic Tac Toe]]&lt;br /&gt;
|CG Linden&lt;br /&gt;
|Step by step demo on how to implement a larger scripting project&lt;br /&gt;
|-&lt;br /&gt;
|[[TightList]]&lt;br /&gt;
|{{User|Strife Onizuka}}&lt;br /&gt;
|Tight List is a family of functions for encoding lists as strings and then decoding them back into lists.&lt;br /&gt;
There are two flavors: TightList and TightListType. TightListType preserves types and uses a 6 char header, while TightList uses a 1 char header that doesn&#039;t preserve type.&lt;br /&gt;
|-&lt;br /&gt;
|[[Timer Module]]&lt;br /&gt;
|{{User|Isabelle Aquitaine}}&lt;br /&gt;
|Manage multiple timers via linked messages.&lt;br /&gt;
|-&lt;br /&gt;
|[[Two Avatars on single prim]]&lt;br /&gt;
|{{User2|Pale Janus|Cay Trudeau}}&lt;br /&gt;
|Allow two (or more) avatars to sit on same prim&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Functions#Unix_time_code_to_list_format|Timestamp:&amp;lt;br&amp;gt;Unix time code to list format]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|converts Unix timestamps to their [Y, M, D, h, m, s] equivalents (ex: 1234567890 to [2009, 2, 13, 3, 31, 30])&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Functions#List_format_to_Unix_time_code.|Timestamp:&amp;lt;br&amp;gt;List format to Unix time code]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|converts [Y, M, D, h, m, s] timestamps to their Unix equivalents (ex: [2009, 2, 13, 3, 31, 30] to 1234567890)&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Functions#Weekday_from_Unix_timestamp|Timestamp:&amp;lt;br&amp;gt;Weekday from Unix timestamp]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|Gets weekday from Unix timestamps (ex: &amp;quot;Friday&amp;quot; from 1234567890)&lt;br /&gt;
|-&lt;br /&gt;
|[[The Stash (Bank)]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|This is a depositing system to link your secondary account (alt) to a prim in-world so you can retrieve money without switching back and forth between accounts. It supports setting an upper limit, sharing the stash if you wish, logging everybody who deposited money and retrieved money, sending money to a list of bookmarked avatars and getting a status of your current holdings. It also explains some tricks for developers, for example, how to get another timer() if your current timer() is used up already.&lt;br /&gt;
|-&lt;br /&gt;
|[[Tipjar]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|This is a fully fledged tipjar supporting shared access, split profits, inviting to group, handing over gifts, maintaining statistics of who tipped most and who tipped in general, eliminating deed to group and comes with an innovative feature: it periodically moves around from avatar to avatar in the room and returns back to its initial position after a sweep. This way your tijpar will not be static, but participate in the party!&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Functions#Weekday_from_.28_Y.2C_M.2C_D_.29_format|Timestamp:&amp;lt;br&amp;gt;Weekday from (Y, M, D) format]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|Gets weekday from (Y, M, D) timestamps (ex: &amp;quot;Friday&amp;quot; from (2009, 2, 13))&lt;br /&gt;
|-&lt;br /&gt;
|[[Touch A Quote]]&lt;br /&gt;
|{{User|CodeBastard Redgrave}}&lt;br /&gt;
|Touch an object to read quotes sequentially from a notecard&lt;br /&gt;
|-&lt;br /&gt;
|[[Touring Balloon]]&lt;br /&gt;
|{{User|Hank Ramos}}&lt;br /&gt;
|Automated touring balloon with many options from long ago.  Always seems to work on one SL release, and not the other.&lt;br /&gt;
|-&lt;br /&gt;
|[[Towncrier]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A simple towncrier to be used in role-play SIMs or wherever there is a need to broadcast news in random intervals.&lt;br /&gt;
|-&lt;br /&gt;
|[[Trivia]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A trivia game engine with provided ready-made notecards.&lt;br /&gt;
|-&lt;br /&gt;
|[[Under Age Boot]]&lt;br /&gt;
|{{User|Chance Unknown}}&lt;br /&gt;
|Security device example to teleport home accounts below a minimum age limit; can be useful in combating free griefer accounts.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Rolig_Loon/UNDO_PosRot|UNDO_PosRot]]&lt;br /&gt;
|{{User|Rolig Loon}}&lt;br /&gt;
|Allows user to undo position and rotation changes that have been made &amp;quot;manually&amp;quot; to any or all prims in a linkset.&lt;br /&gt;
|-&lt;br /&gt;
|[[Universal Translator]]&lt;br /&gt;
|{{User|Hank Ramos}}&lt;br /&gt;
|Chat listener that handles seamless translation of public chat between 50+ written languages without the need for configuration.  Handles numerous avatars, auto-detects languages, and works together with multiple copies of translators to spread-workload using a sophisticated back-end communications sub-system.&lt;br /&gt;
|-&lt;br /&gt;
|[[Unix2DateTime]]&lt;br /&gt;
|{{User|Flennan Roffo}}&lt;br /&gt;
|Conversion from Unix time ([[llGetUnixTime]]()) to date and time string and vice versa.&lt;br /&gt;
|-&lt;br /&gt;
|[[Unmutable Descript Nagger]]&lt;br /&gt;
|{{User|Bobbyb30 Zohari}}&lt;br /&gt;
|To nag avatars to take off their scripted attatchments.&lt;br /&gt;
|-&lt;br /&gt;
|[[Unpacker On Rez (NewAge)]]&lt;br /&gt;
|{{User|Asia Snowfall}}&lt;br /&gt;
|A very simple to use script for all you creators out there, This script will enable you to send out boxed items and make it easier for users to unpack, Also features auto die on completion. Very simple to configure!&lt;br /&gt;
|-&lt;br /&gt;
|[[Unpacker On Touch (NewAge)]]&lt;br /&gt;
|{{User|Asia Snowfall}}&lt;br /&gt;
|Exactly like Unpacker On Rez, But changed some things about to make it Unpack On Touch&lt;br /&gt;
|-&lt;br /&gt;
|[[Update distributor]]&lt;br /&gt;
|{{User|Dale Innis}}&lt;br /&gt;
|Distribute an object (like a project update) to a list of people named in a notecard.&lt;br /&gt;
|-&lt;br /&gt;
|[[UUID2Channel]]&lt;br /&gt;
|{{User|Project Neox}}&lt;br /&gt;
|Optimised version of the original key2channel generators.&lt;br /&gt;
|-&lt;br /&gt;
|[[UUID Song Generator]]&lt;br /&gt;
|{{User2|Sendao Goodman}}&lt;br /&gt;
|Translates a UUID into a simple song and plays it.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Programs#v7-D_Advanced_Visitor_Greeter|Visitor Greeter]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|Reduced spam visitor greeter, highly configurable, easy to modify.&lt;br /&gt;
|-&lt;br /&gt;
|[[VariText]]&lt;br /&gt;
|[[User:Geneko Nemeth|Geneko Nemeth (Kakurady)]]&lt;br /&gt;
|Display text on a prim, without looking like from a typewriter&lt;br /&gt;
|-&lt;br /&gt;
|[[Visitor Logger (Web/Basic) ]]&lt;br /&gt;
|{{User|Buddy Sprocket}}&lt;br /&gt;
|A very basic visitor logger - log visitors in SL to a text file on your web-site.&lt;br /&gt;
|-&lt;br /&gt;
|[[Visitors]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A series of scripts to hold lists of visitors taking into account display names and supporting tracking multiple visits.&lt;br /&gt;
|-&lt;br /&gt;
|[[Volleyball Game (Kira&#039;s Artillery Variations)]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|The game of Volleyball in SecondLife, based on the [[Artillery]] script and freefall theory. Full build instructions, scripts, import archive and marketplace freebie product. All full permission.&lt;br /&gt;
|-&lt;br /&gt;
|[[Vote Simple]]&lt;br /&gt;
|{{User|JB Kraft}}&lt;br /&gt;
|Simple vote collector. One avi, one vote.&lt;br /&gt;
|-&lt;br /&gt;
|[[Walking Sound (NewAge)]]&lt;br /&gt;
|{{User|Asia Snowfall}}&lt;br /&gt;
|Very powerful walking sound script, Featuring customer ability to add their own sounds with the API Sound Feature!&lt;br /&gt;
|-&lt;br /&gt;
|[[Wanderer]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A script that can be used to randomly move a prim around relative to its origin point. Can be used for breeders, robots, birds and other applications where a primitive has to move around by itself.&lt;br /&gt;
|-&lt;br /&gt;
|[[WarpPos]]&lt;br /&gt;
|{{User2|Keknehv Psaltery}}&lt;br /&gt;
|Non-physical movement without the 10m limit.&lt;br /&gt;
|-&lt;br /&gt;
|[[Watchdog]]&lt;br /&gt;
|{{User|Tika Oberueng}}&lt;br /&gt;
|LSL Watchdog scripts to monitor other scripts in the prim and restart them if they crash or stop running.&lt;br /&gt;
|-&lt;br /&gt;
|[[Wiki3DBuilder]] [[Wiki3DBuilder1.0]]&lt;br /&gt;
|{{User|Salahzar Stenvaag}}&lt;br /&gt;
|Allows a group of people to collectively build up complex 3D mindmaps with connected concepts. Uses particles for connections and low prim usage. Nodes can be textured, colored, changed form size moved collectively by everybody and can distribute notecards, landmarks, URL, objects, textures. I provide two version 0.1 and 1.0 and probably next version will communicate with moodle and sloodle external websites.&lt;br /&gt;
|-&lt;br /&gt;
|[[Window Control]]&lt;br /&gt;
|{{User|Emmas Seetan}}&lt;br /&gt;
|For window opacity, helpful for buildings.&lt;br /&gt;
|-&lt;br /&gt;
|[[XTEA Strong Encryption Implementation]]&lt;br /&gt;
|{{User|Morse Dillon}}&lt;br /&gt;
|An LSL implementation of XTEA (eXtended Tiny Encryption Algorithm).  This is the first known public release of a &#039;real&#039; strong encryption implementation in LSL and is released under the GNU General Public License (GPL).&lt;br /&gt;
|-&lt;br /&gt;
|[[XyText 1.5|XyText]]&lt;br /&gt;
|{{User2|Xylor Baysklef}}&lt;br /&gt;
| Display text (up to 10 characters) on a prim. Use as many prims as desired.&lt;br /&gt;
|-&lt;br /&gt;
|[[XyyyyzText|XyyyyzText]]&lt;br /&gt;
|{{User|Criz Collins}}&lt;br /&gt;
| Display text (up to 10 characters) on a prim. Displays different text for each line instead of one single text, that will be broken into the next lines. Watch here for what that means: http://screencast.com/t/1wMLujLcEO&lt;br /&gt;
|-&lt;br /&gt;
|[[XyzzyText|XyzzyText]]&lt;br /&gt;
|{{User|Thraxis Epsilon}} and {{User|Gigs Taggart}}&lt;br /&gt;
| Display text (up to 10 characters) on a prim. Way more efficient than XyText.&lt;br /&gt;
|-&lt;br /&gt;
|[[Youtube TV]]&lt;br /&gt;
|{{User|Morgam Biedermann}}&lt;br /&gt;
|Watch your favorite Youtube videos / auto set the texture to the parcel media texture.&lt;br /&gt;
|-&lt;br /&gt;
|[[Zero Lag Poseball]]&lt;br /&gt;
|{{User|Jippen Faddoul}} and {{User|Daemonika Nightfire}}&lt;br /&gt;
|A simple poseball with no lag&lt;br /&gt;
|-&lt;br /&gt;
|[[Zigzag Sequence]]&lt;br /&gt;
|{{User|Project Neox}}&lt;br /&gt;
|Zigzag sequence generator I developed while scripting checkers&lt;br /&gt;
|-&lt;br /&gt;
|[[Input number of seconds, get a string back that shows days, hours, minutes, seconds]]&lt;br /&gt;
|{{User|Fire Centaur}}&lt;br /&gt;
|Returns a string that displays days, hours, seconds&lt;br /&gt;
|-&lt;br /&gt;
|[[Random Giver Prim]]&lt;br /&gt;
|{{User|Damian Darkwyr}}&lt;br /&gt;
|A randomized item giver with a game-like twist&lt;br /&gt;
|-&lt;br /&gt;
|[[Client Specific Contents Giver]]&lt;br /&gt;
|{{User|Damian Darkwyr}}&lt;br /&gt;
|Give Contents only to users of a specific Client. Such as Phoenix, CoolVL or 2.0&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/v7-D_Zen_Resizer|Zen Resizer]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|Single script object resizer w/ multi-language &amp;amp; multi-menu support, + many other features for simple or advanced use.&lt;br /&gt;
|-&lt;br /&gt;
|[[Presenter with Timer]]&lt;br /&gt;
|[[User:Fire Centaur]]&lt;br /&gt;
|Yet another texture presenter with a timer, lock, next/prev etc&lt;br /&gt;
|-&lt;br /&gt;
|[[TimeAPI Clock Script]]&lt;br /&gt;
|[[User:Elite Runner|Ryan R. Elite (Elite Runner)]]&lt;br /&gt;
|Gets time via HTTP function from TimeAPI.org&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Support Script Library==&lt;br /&gt;
These are scripts in other languages, intended to be run on other systems that support scripts written in LSL&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; {{Prettytable}}&lt;br /&gt;
|- {{Hl2}}&lt;br /&gt;
! &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Creator&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[https://github.com/Nexii-Malthus/phpPathfinding phpPathfinding]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
|PHP script for offloading complex pathfinding operations away from heavy use simulators onto external servers. Primarily A* Algorithm. Flexible -- works with any type of node graph. Public Domain. Clean and minimalistic code.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Ina Centaur/UUID/calimg.api|Calendar Image UUID API]]&lt;br /&gt;
|{{User|Ina Centaur}}&lt;br /&gt;
|API that gives the UUID of an image of a calendar image give month and year arguments.&lt;br /&gt;
|-&lt;br /&gt;
|[[HTTP Post request to a PHP server]]&lt;br /&gt;
|{{User|Corto Maltese}}&lt;br /&gt;
|This small library allows you to make simple POST requests to your website. The libraries allow you to get your request through the variable $_POST on the server. It also include a basic security mechanism aimed to stop hacking. Comprises of LSL client script and PHP server script.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Ina Centaur/PHP/k2n.php|Key2Name.php]]&lt;br /&gt;
|{{User|Ina Centaur}}&lt;br /&gt;
|Get Avatar&#039;s Name using Second Life search service. (like in LSL Key2Name)&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Darien_Caldwell/HTTP-DNS|HTTP-IN DNS]]&lt;br /&gt;
|{{User|Darien Caldwell}}&lt;br /&gt;
|Public Domain DNS and HTTP-IN URL Distribution system running on GAE (the original). Deploy your own for maximum utility and security.&lt;br /&gt;
|-&lt;br /&gt;
|[[Lame_Object_DNS_and_Cross_Sim_Messaging|Lame Object DNS and Cross Sim Messaging]]&lt;br /&gt;
|{{User2|Liandra Ceawlin}}&lt;br /&gt;
|Simple, cheeseball method of doing cross-sim communications with http-in and an external object DNS service.&lt;br /&gt;
|-&lt;br /&gt;
|[[Minify|LSL Minify]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|LSL Minification and obfuscation tool written in JavaScript. Contains a form on the wiki using a widget where you can post LSL scripts to be minified as well as the source-code. For another full-screen demo you may [http://eva.comaroski.me/lslclean.html check it on my website]. To use, paste any LSL code and press ctrl+alt+enter to get the minified version.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:SignpostMarv Martin/PHP/llXorBase64StringsCorrect|llXorBase64StringsCorrect]]&lt;br /&gt;
|{{User|SignpostMarv Martin}}&lt;br /&gt;
|An implementation of [[llXorBase64StringsCorrect]] in PHP- should be useful if you&#039;re using llXorBase64StringsCorrect to do cryptography work in LSL2 and posting it out to the web via [[llHTTPRequest]].&lt;br /&gt;
|-&lt;br /&gt;
|[[User:SignpostMarv Martin/PHP/lsl fu.php|lsl_fu.php]]&lt;br /&gt;
|{{User|SignpostMarv Martin}}&lt;br /&gt;
|A basic OOP&#039;d PHP Class containing VeloxSeverine&#039;s $_POST fixer and Marv&#039;s own eccentric ideas for &amp;quot;fixing&amp;quot; things.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Jor3l Boa/PHP/n2k.php|Name2Key.php]]&lt;br /&gt;
|{{User|Jor3l Boa}}&lt;br /&gt;
|Get Avatar&#039;s UUID using Second Life search service. (like in LSL Name2Key)&lt;br /&gt;
|-&lt;br /&gt;
|[[Public_Object_DNS|Public Object DNS]]&lt;br /&gt;
|{{User2|Liandra Ceawlin}}&lt;br /&gt;
|Public object DNS-like system running on GAE, for http-in. Hopefully scalable enough for wide-spread usage.&lt;br /&gt;
|-&lt;br /&gt;
|[[Rake|Rake]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A C# utility meant to create full inventory backups to your local hard-drive including Textures/Sculpts, Animations, Notecards and Scripts.&lt;br /&gt;
|-&lt;br /&gt;
|Silo&lt;br /&gt;
|{{User2|Zero Linden}}&lt;br /&gt;
|General purpose data store in PHP.  Use this to persist arbitrary data from LSL via [[llHTTPRequest]].  See:&lt;br /&gt;
* [http://www.notabene-sl.com/misc/silo-README.txt README] file&lt;br /&gt;
* [http://www.notabene-sl.com/misc/silo.tgz silo.tgz] tarball&lt;br /&gt;
* forum post [http://forums-archive.secondlife.com/54/69/119570/1.html Announcement].&lt;br /&gt;
|-&lt;br /&gt;
|[[Silverday ObjectDNS]]&lt;br /&gt;
|{{User|Till Stirling}}&lt;br /&gt;
|Dynamic Object-DNS-System to provide dynamic mapping of LSL-URLs to persistent domains. Features include redirect service, password protected domains, write protected domains, LSL-API for all necessary functions, optional web-interface.&lt;br /&gt;
|-&lt;br /&gt;
|[http://aubretec.com/products/sldb SLDB]&lt;br /&gt;
|{{User2|Luc Aubret}}&lt;br /&gt;
|Flexible web database storage using PHP/MySQL.  Used to store per-user field/value pairs from in-world objects using [[llHTTPRequest]].&lt;br /&gt;
* [http://aubretec.com/support/manuals/sldbkit/ Implementation Guide]&lt;br /&gt;
* [http://aubretec.com/wp-content/uploads/2009/05/sldb.zip Download] (.zip, 12kb)&lt;br /&gt;
|-&lt;br /&gt;
|[https://tlabsfoundry.atlassian.net/wiki/display/SLAD/SL+Asset+Data SL Asset Data]&lt;br /&gt;
|{{User|Trimda Hedges}}&lt;br /&gt;
|A set of Java classes to retrieve information about Groups, Parcels and Agents/Avatars based on their key (UUID).  Includes caching of requests and results and example application.  Copyright under Eclipse Public License v1&lt;br /&gt;
* [https://tlabsfoundry.atlassian.net/wiki/display/SLAD/Downloads Downloads]&lt;br /&gt;
* [http://trimda.com/javadocs/slassetdata/1.1.0/ JavaDocs]&lt;br /&gt;
* [https://tlabsfoundry.atlassian.net/wiki/display/TF/TLabs+Foundry Other Projects]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Articles&#039;&#039;&#039;&lt;br /&gt;
*[[:Category:LSL Examples| Examples]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{LSLC|}}&lt;/div&gt;</summary>
		<author><name>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Category:LSL_Library&amp;diff=1187403</id>
		<title>Category:LSL Library</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Category:LSL_Library&amp;diff=1187403"/>
		<updated>2014-01-31T12:45:49Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: make use of user2 template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header|ml=*}}{{RightToc}}&lt;br /&gt;
==Script Library==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em 0.5em 1.5em&amp;quot;&amp;gt;&lt;br /&gt;
NOTE: Please add your scripts to this page and then add them to a category on the [[:Category:LSL Categorized Library|Categorized Library]] page.&lt;br /&gt;
&lt;br /&gt;
Come to this page to see complex examples that show how to combine parts of LSL.&lt;br /&gt;
&lt;br /&gt;
Go to the [[:Category:LSL Examples|LSL Examples]] page to see brief examples of how to use parts of LSL.&lt;br /&gt;
&lt;br /&gt;
Why collect complex examples here? Well, ...&lt;br /&gt;
&lt;br /&gt;
There is a treasure trove of user developed scripts that have become hard to find over time throughout Second Life&#039;s web server revisions and redesigns. The [http://community.secondlife.com/t5/Community-General/Upgrading-the-Forums/bc-p/77385 Huge Leap] to the new [http://www.jivesoftware.com/ Jive software], while traumatic and disruptive, has failed to dispose of  what&#039;s come before at the moment of your reading. These valuable community generated resources do indeed still remain and can be browsed/retrieved from several disjointed and disparate locations. While some links may point to duplicated, revised, or downright ancient wisdom, you may derive some enlightened perspective researching their hard won, timely solutions we encounter day to day.&lt;br /&gt;
&lt;br /&gt;
# [[Old forum Scripting Library index| Old Forums -Scripting Library index (wiki)]],&lt;br /&gt;
# [http://community.secondlife.com/t5/Scripting/bd-p/2108 Old Forums -Scripting Forum Archive],&lt;br /&gt;
# [http://forums-archive.secondlife.com/15/1.html Old Forums -Scripting Library],&lt;br /&gt;
# [http://community.secondlife.com/t5/Scripting-Library/bd-p/2122 new Forums -Archives &amp;gt; Scripting Library],&lt;br /&gt;
# [http://community.secondlife.com/t5/LSL-Scripting-Library/bd-p/LSLScriptingLibrary new Forums -LSL Library].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The wiki medium is well-suited for a script library due to its revision based historical foundation. If you feel inclined to release your scripts to the entire community, there&#039;s no better place to preserve your work/love/energy/gift as a unified and cohesive repository. Feel free to add your script page links here as well as adding it to the [[:Category:LSL Categorized Library|Categorized Library]].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rules for posting: ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
#Your script must be tested and working. If it&#039;s not, stick it in your user-space until it is. This is a list of working, usable scripts.&lt;br /&gt;
#Add a link to your script&#039;s page here. Link back to this page from your script&#039;s page. Start your page with &amp;lt;nowiki&amp;gt;{{LSL Header}}&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
#Do not add scripts that duplicate the same functionality as an existing script or built in {{LSLGC|Functions|function}}. If yours does, explain why.&lt;br /&gt;
#Do not list simple scripts here. Include those among the [[:Category:LSL Examples|LSL Examples]] instead.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;box&amp;quot;&amp;gt;&lt;br /&gt;
==LSL Script Library==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; {{Prettytable}}&lt;br /&gt;
|- {{Hl2}}&lt;br /&gt;
! &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Creator&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Yumi Murakami/Addiction Moderator|Addiction Moderator and World Clock]]&lt;br /&gt;
|{{User|Yumi Murakami}}&lt;br /&gt;
|Keep tabs on usage of SL and easily share local times with other users.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Yumi Murakami/Weaver Spell Grid|Weaver Spell Grid]]&lt;br /&gt;
|{{User|Yumi Murakami}}&lt;br /&gt;
|Designs simple objects and creates them with magic words.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Yumi Murakami/Golden Vendor|Golden Vendor]]&lt;br /&gt;
|{{User|Yumi Murakami}}&lt;br /&gt;
|A cross between a vendor and a game.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Yumi Murakami/Bijocam And Other Camera Scripts|Bijocam and Other Camera Scripts]]&lt;br /&gt;
|{{User|Yumi Murakami}}&lt;br /&gt;
|Various camera control systems for machinima, security, and other effects.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Ackley Bing/Textbox2Hovertext|Textbox2Hovertext]]&lt;br /&gt;
|[[User:Ackley Bing|Ackley]]&lt;br /&gt;
|A simple script to allow hovertext to be set with a dialog text box.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Ackley Bing/Basic Sim Status Button Indicator HUD|Basic Sim Status Button Indicator HUD]]&lt;br /&gt;
|[[User:Ackley Bing|Ackley]]&lt;br /&gt;
|A single prim HUD. Color indicates sim status changes.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Ackley_Bing/Basic_Target_Scanner_HUD|Basic Target Scanner HUD]]&lt;br /&gt;
|[[User:Ackley Bing|Ackley]]&lt;br /&gt;
|A single prim HUD.  Scrolls through nearby players names, photos and user key.&lt;br /&gt;
|-&lt;br /&gt;
|[[StringIsNum|(Function) StringIsNum]]&lt;br /&gt;
|{{User|Zion Tristan}}&lt;br /&gt;
|A User Made Function to return TRUE if a string based input consists entirely of a whole number, and return FALSE otherwise.&lt;br /&gt;
|-&lt;br /&gt;
|[[Remove all scripts from a linkset]]&lt;br /&gt;
|{{User2|Dahlia Orfan}}&lt;br /&gt;
|Remove all scripts from a linkset.&lt;br /&gt;
|-&lt;br /&gt;
|[[RLV Viewer Titler]]&lt;br /&gt;
|{{User2|Jenna Felton}}&lt;br /&gt;
|Titler displaying viewer and it&#039;s version, revealed via RLV interface.&lt;br /&gt;
|-&lt;br /&gt;
|[[Sim Restart Notifyer]]&lt;br /&gt;
|{{User2|Jenna Felton}}&lt;br /&gt;
|On region restart, notifyes registered residents about the sim is online and the current sim version&lt;br /&gt;
|-&lt;br /&gt;
|[[Script Vitality plug-in]]&lt;br /&gt;
|{{User2|Jenna Felton}}&lt;br /&gt;
|Uses vehicle technology to allow scripts (in same prim) to run in &#039;dead&#039;, i.e. no-script areas.&lt;br /&gt;
|-&lt;br /&gt;
|[[Texture Repeater]]&lt;br /&gt;
|{{User2|Jenna Felton}}&lt;br /&gt;
|Observes textures and texture parameters on the prim. If changed, bulk-updates other prims in linkset.&lt;br /&gt;
|-&lt;br /&gt;
|[[1st necessity of SL]]&lt;br /&gt;
|{{User|Beer Dailey}}&lt;br /&gt;
|Monitors for avatars and (de)activates scripts states to control script performance/lag.&lt;br /&gt;
|-&lt;br /&gt;
|[[SetLinkText]]&lt;br /&gt;
|{{User2|Tacusin Memo}}&lt;br /&gt;
|Custom function like llSetText only applying to linked sets.&lt;br /&gt;
|-&lt;br /&gt;
|[[3D Radar]]&lt;br /&gt;
|{{User|Jesse Barnett}}&lt;br /&gt;
|Rezzes a ball for each avatar in range. Each ball tracks its own AV and displays distance.&lt;br /&gt;
|-&lt;br /&gt;
|[[RegionSitTeleport]]&lt;br /&gt;
|{{User|Vincent Nacon}}&lt;br /&gt;
|A very simple and clean sit/unsit teleporter.&lt;br /&gt;
|-&lt;br /&gt;
|[[AbcText]]&lt;br /&gt;
|{{User|Ange Capalini}}&lt;br /&gt;
|EXPERIMENTAL Hyper low prim Display. only 2 prims for 25char.&lt;br /&gt;
|-&lt;br /&gt;
|[[Access (NewAge)]]&lt;br /&gt;
|{{User|Asia Snowfall}}&lt;br /&gt;
|An easy to use script for permissions on who can use the script, Public/Group/Owner&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Daemonika_Nightfire/Scripts/Access_Tutorial_EN|Access Tutorial (EN)]]&lt;br /&gt;
|{{User|Daemonika Nightfire}}&lt;br /&gt;
|Short examples about permission to executable commands.&lt;br /&gt;
|-&lt;br /&gt;
|[[Aim Detection]]&lt;br /&gt;
|{{User2|Han Shuffle|Dugley Reanimator}}&lt;br /&gt;
|Monitors for avatars and reports back to owner about who is aiming at them.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Daemonika_Nightfire/Scripts/Anti_copy_trans|Anti (copy &amp;amp; transfer)]]&lt;br /&gt;
|{{User|Daemonika Nightfire}}&lt;br /&gt;
|This funktion allows you to give away scripts with copy &amp;amp; transfer permissions and force the reseller to change the permission.&lt;br /&gt;
|-&lt;br /&gt;
|[[AnkleLock]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|An ankle lock script and attached animation to fix your displaced shoes. This will help if your shoes look displaced when you sit in certain poses or when your animation overrider is active.&lt;br /&gt;
|-&lt;br /&gt;
|[[AntiDelay Node]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
|Uses [[llMessageLinked]] to stop those pesky delays.&lt;br /&gt;
|-&lt;br /&gt;
|[[Artillery]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|An artillery gun script, performing the necessary calculations based on a user-chosen velocity, in order to hit a designated target avatar.&lt;br /&gt;
|-&lt;br /&gt;
|[[AO Overriding Pose Ball]]&lt;br /&gt;
|{{User|Jesse Barnett}}&lt;br /&gt;
|No more turning your AO off and on when you sit down&lt;br /&gt;
|-&lt;br /&gt;
|[[ARCFOUR Strong Encryption Implementation]]&lt;br /&gt;
|{{User2|Nekow42 Zarf}}&lt;br /&gt;
|An LSL implementation of ARCFOUR, the most popular stream cipher still in use. It is licensed under a Creative Commons Attribution 3.0 license.&lt;br /&gt;
|-&lt;br /&gt;
|[[Assembly Programming Language|Assembly-Like Programming Language]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
|A compiler that runs assembly-like programs.&lt;br /&gt;
|-&lt;br /&gt;
|[[Associative Array Emulator|Associative Array (Dictionary) Emulator]]&lt;br /&gt;
|{{User2|Alynna Vixen}}&lt;br /&gt;
|This library provides a set of functions for using a list as an associative array where string based keys can refer to one or more variant elements.&lt;br /&gt;
|-&lt;br /&gt;
|[[AvatarFollower]]&lt;br /&gt;
|{{User|Dale Innis}}&lt;br /&gt;
|Allows one avatar to automatically follow another.&lt;br /&gt;
|-&lt;br /&gt;
|[[Avatar Radar (NewAge)]]&lt;br /&gt;
|{{User|Asia Snowfall}}&lt;br /&gt;
|Version 1.2; A nice new avatar radar script i just finish that you can place in your hud, Also features avatar locator&lt;br /&gt;
|-&lt;br /&gt;
|[[Base2Dec]]&lt;br /&gt;
|{{User|Siann Beck}}&lt;br /&gt;
|Convert a number to decimal from any base.&lt;br /&gt;
|-&lt;br /&gt;
|[[BaseN]]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
|Variable base compression, dynamically maps to usable UTF code points.&lt;br /&gt;
|-&lt;br /&gt;
|[[Basic Encryption Modules]]&lt;br /&gt;
|{{User|Beverly Larkin}}&lt;br /&gt;
|Basic encryption scripts, allows you to encrypt a float and shout it to another prim on a randomly chosen channel.&lt;br /&gt;
|-&lt;br /&gt;
|[[Be happy]]&lt;br /&gt;
|{{User|Emmas Seetan}}&lt;br /&gt;
|Basic smile attachment script, makes your avatar smile.&lt;br /&gt;
|-&lt;br /&gt;
|[[Beat The Average Vendor]]&lt;br /&gt;
|{{User2|Kristen Giano}}&lt;br /&gt;
|A vendor script based on humblebundle.com&lt;br /&gt;
|-&lt;br /&gt;
|[[Best Neighbor Ad Hiding Script|Best Neighbor]]&lt;br /&gt;
|{{User2|Doran Zemlja}}&lt;br /&gt;
|Reduce ad clutter by hiding ads when users are on their own land nearby.&lt;br /&gt;
|-&lt;br /&gt;
|[[BigNum|BigNum Library (RSA Encryption)]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
|A BigNum Library for dealing with big numbers! Specialized for modular multiplication, and RSA encryption.&lt;br /&gt;
|-&lt;br /&gt;
|[[Binary Clock v1.1|Binary Clock]]&lt;br /&gt;
|{{User|Fox Diller}}&lt;br /&gt;
|A Binary Clock.&lt;br /&gt;
|-&lt;br /&gt;
|[[BinaryDecimalConverter]]&lt;br /&gt;
|{{User2|Soundless Smalls}}&lt;br /&gt;
|Converts a binary value to a decimal value and vice versa.&lt;br /&gt;
|-&lt;br /&gt;
|[[Blacklist and Remote Kill|Blacklist and Remote Kill]]&lt;br /&gt;
|{{User|Chase Quinnell}}&lt;br /&gt;
|Blacklist(denial of use) or a creator kill script(can delete someone&#039;s item by command on private channel)&lt;br /&gt;
|-&lt;br /&gt;
|[[User_talk:Rolig_Loon/Bookmark_URLs|Bookmark URLs]]&lt;br /&gt;
|{{User|Rolig Loon}}&lt;br /&gt;
|Dialog driven HUD reads bookmarked URLs from notecards and navigates directly to them with user&#039;s in-world browser.&lt;br /&gt;
|-&lt;br /&gt;
|[[Bubble Gum]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A script to create a bubble gum effect with sounds and animations.&lt;br /&gt;
|-&lt;br /&gt;
|[[Bubble Trapper]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A script that rezzes a bubble and surrounds a dialog-chosen avatar, exploding 2 seconds after it has reached the avatar. The article also explains how to hash a name to a number or a key to a number and thereby avoiding to block the rezzer&#039;s timer() event or using llRegionSay().&lt;br /&gt;
|-&lt;br /&gt;
|[[Builders Buddy|Builder&#039;s Buddy Tool]]&lt;br /&gt;
|{{User|Newfie Pendragon}}&lt;br /&gt;
|Script to easily move/rotate large builds that exceed the linkable size limit (30 meters).&lt;br /&gt;
|-&lt;br /&gt;
|[[Button Click Detector]]&lt;br /&gt;
|{{User2|Sendao Goodman}}&lt;br /&gt;
|Use [[llDetectedTouchUV]] to determine which button was pressed on a texture.&lt;br /&gt;
|-&lt;br /&gt;
|[[Camera following prim]]&lt;br /&gt;
|{{User|Dale Innis}}&lt;br /&gt;
|Pair of scripts to make a prim follow your camera position around (for lights etc).&lt;br /&gt;
|-&lt;br /&gt;
|[[Camera Sync]]&lt;br /&gt;
|{{User|Meyermagic Salome}} and {{User2|Nomad Padar}}&lt;br /&gt;
|A system to synchronize the cameras of two avatars.&lt;br /&gt;
|-&lt;br /&gt;
|[[Chatbot]]&lt;br /&gt;
|Anonymous&lt;br /&gt;
|Compile and run the LSL you type on a channel, faster than you can thru the 2007-08 SL GUI.&lt;br /&gt;
|-&lt;br /&gt;
|[[Chat Logger (GPL)]]&lt;br /&gt;
|{{User|Nobody Fugazi}}&lt;br /&gt;
|Chat logger which requests permission from participants before recording them.&lt;br /&gt;
|-&lt;br /&gt;
|[[Chat_Relay|Chat Relay]]&lt;br /&gt;
|{{User|grumble Loudon}}&lt;br /&gt;
|A Chat relay which can be routed using a path header and won&#039;t echo.&lt;br /&gt;
|-&lt;br /&gt;
|[[ClickAndDrag]]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
| Click and Drag user interface elements using dynamic feedback&lt;br /&gt;
|-&lt;br /&gt;
|[[Code Racer]]&lt;br /&gt;
|Anonymous&lt;br /&gt;
|Race two versions of code forever, to see which runs faster.&lt;br /&gt;
|-&lt;br /&gt;
|[[Code Sizer]]&lt;br /&gt;
|Anonymous&lt;br /&gt;
|Count the bytes compiled from source code, to measure how to write small code.&lt;br /&gt;
|-&lt;br /&gt;
|[[Collision message sender]]&lt;br /&gt;
|{{User2|Taff Nouvelle}}&lt;br /&gt;
|Give a message to an avatar on collision if the message has not been sent in the last 10 minutes.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Programs#v7-D_Enh._Color_Picker|Color Changer]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|Dialog driven color changer. Supports 16million+ colors, web color codes, multiple targeted prims, with save and recall.&lt;br /&gt;
|-&lt;br /&gt;
|[[Color Changer|Color Changer Plus]]&lt;br /&gt;
|{{User2|Neo Calcutt}}&lt;br /&gt;
|A color changer with 14 colors, a random function, and a custom vector function.&lt;br /&gt;
|-&lt;br /&gt;
|[[Color conversion scripts|Color Conversion]]&lt;br /&gt;
|{{User|Sally LaSalle}}&lt;br /&gt;
|Convert between Red Green Blue (RGB) and Hue Saturation Value (HSV).&lt;br /&gt;
|-&lt;br /&gt;
|[[ColorConvert]]&lt;br /&gt;
|{{User|Siann Beck}}&lt;br /&gt;
|Convert color values to vector from RGB, hex or HTML color name.&lt;br /&gt;
|-&lt;br /&gt;
|[[Color script]]&lt;br /&gt;
|{{User2|Masakazu Kojima}}&lt;br /&gt;
|Script for changing colors trough a listener with pre-defined colors.&lt;br /&gt;
|-&lt;br /&gt;
|[[Library Combined Library|Combined Library]]&lt;br /&gt;
|{{User|Strife Onizuka}}&lt;br /&gt;
|Library of mostly encoding and decoding functions, some more useful then others.&lt;br /&gt;
* String functions: Replace / Trim right / Trim left / Trim both&lt;br /&gt;
* Unicode conversion: UTF8 to Unicode / Unicode to UTF8&lt;br /&gt;
* List functions: Replace / Compare&lt;br /&gt;
|-&lt;br /&gt;
|[[Computer:jaycoonlanguage]]&lt;br /&gt;
|{{User|jayco121 Bing}}&lt;br /&gt;
| A language written in LSL that is meant for my computer (available at the shop).&lt;br /&gt;
|-&lt;br /&gt;
|[[Read Note Card Configuration|Configuration Notecard Reader]]&lt;br /&gt;
|{{User|Dedric Mauriac}}&lt;br /&gt;
|A script to read configuration information from a notecard. Parses notecard to extract key words and their assigned values. Allows for comment lines and many more useful features.&lt;br /&gt;
|-&lt;br /&gt;
|[[AdvancedNotecardReader|Configuration Notecard Reader (advanced)]]&lt;br /&gt;
|[[Lear Cale|Lear Cale]]&lt;br /&gt;
|Robust configuration notecard reader; supports multiple notecards with same suffix, handles reconfig on inventory change, and does not usurp the default state.&lt;br /&gt;
|-&lt;br /&gt;
|[[Library_Chat_Relay|Conversation Relay]]&lt;br /&gt;
|{{User|Jippen Faddoul}}&lt;br /&gt;
|Chat relay which requests permission from participants before relaying their messages. Also includes their attachments. (ToS compliant).&lt;br /&gt;
|-&lt;br /&gt;
|[[Curtain script]]&lt;br /&gt;
|{{User|Zilla Larsson}}&lt;br /&gt;
|A simple script to retract/stretch curtains, blinds, bedcovers and more&lt;br /&gt;
|-&lt;br /&gt;
|[[Library_Cycle_Dialog_Items|Cycle Dialog Items w/ Callback]]&lt;br /&gt;
|{{User|Hawkster Westmoreland}}&lt;br /&gt;
|A customizable way to cycle dialog items with pagination&lt;br /&gt;
|-&lt;br /&gt;
|[[Dataserver API]]&lt;br /&gt;
|{{User|Revolution Perenti}}&lt;br /&gt;
|Dataserver Framework for Notecards.&lt;br /&gt;
|-&lt;br /&gt;
|[[Date Library]]&lt;br /&gt;
|{{User|Corto Maltese}}&lt;br /&gt;
| Date library, based on number of day since march 3rd 1600, can be used to calculate weekday, date differences, and date offset, and date formating.&lt;br /&gt;
|-&lt;br /&gt;
|[[Day of the Week]]&lt;br /&gt;
|{{User|DoteDote Edison}}&lt;br /&gt;
|Function to get day of the week from [[llGetUnixTime]].&lt;br /&gt;
|-&lt;br /&gt;
|[[Days in Month]]&lt;br /&gt;
|{{User|IntLibber Brautigan}}&lt;br /&gt;
|Clicking on it returns the number of days in the present month. Useful for scripting calendars and tier systems that need to know the number of days in the month at hand or to calculate for any month. Even adjusts for leap years.&lt;br /&gt;
|-&lt;br /&gt;
|[[Deed Tools]]&lt;br /&gt;
|{{User|Falados Kapuskas}}&lt;br /&gt;
|Tools that allow the creator to modify Group-Owned (Deeded) Objects via chat.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Daemonika_Nightfire/Scripts/DEMO_Shield|DEMO_Shield]]&lt;br /&gt;
|{{User|Daemonika Nightfire}}&lt;br /&gt;
|With this script, it is impossible to use these scripts in copied (Copybot) object.&lt;br /&gt;
|-&lt;br /&gt;
|[[Describe Chatter]]&lt;br /&gt;
|Anonymous&lt;br /&gt;
|Chat to see yourself as others do.&lt;br /&gt;
|-&lt;br /&gt;
|[[Dialog Control]]&lt;br /&gt;
|{{User|Nargus Asturias}}&lt;br /&gt;
| A (not-so) simple dialog &amp;amp; menu control script. Call dialog and receive selected value via [[link_message]](), with built-in timer and [[link_message]]() notification on time out. Supports multi-pages dialog and numeric property dialog. Button text and dialog&#039;s returned value can differ.&lt;br /&gt;
Latest version also has [[Dialog Menus Control]] built-in; which allow multi-level menus through SL dialog system.&lt;br /&gt;
|-&lt;br /&gt;
|[[Dispenser Vendor]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
| A twist on [[Vendor]] that dispenses one object and then removes it from the list of objects.&lt;br /&gt;
|-&lt;br /&gt;
|[[MultiUser_Dialog_Handler|Dialog Menus (multiuser)]]&lt;br /&gt;
|{{User|SimonT Quinnell}}&lt;br /&gt;
| Menu dialog handler that supports multiple menus open at once from the single script. Displays multi-page menus if necessary as well as allowing for fixed header and footer buttons.  Timeouts as well as Text and button size limits are handled.&lt;br /&gt;
|-&lt;br /&gt;
|[[Dialog NumberPad|Dialog Number Pad]]&lt;br /&gt;
|{{User|DoteDote Edison}}&lt;br /&gt;
|Use a dialog to accept positive integer input from users.&lt;br /&gt;
|-&lt;br /&gt;
|[[Display Names Radar]]&lt;br /&gt;
|{{User|Cerise Sorbet}}&lt;br /&gt;
|Simple HUD type avatar radar that can show [[display names]] and script memory usage&lt;br /&gt;
|-&lt;br /&gt;
|[[Display Names to Key]]&lt;br /&gt;
|{{User|Joran Yoshikawa}}&lt;br /&gt;
|Simple way to get UUIDs from displaynames&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Daemonika_Nightfire/Scripts/DS_Display-Username_Online_Indicator|Display-Username_Online_Indicator]]&lt;br /&gt;
|{{User|Daemonika Nightfire}}&lt;br /&gt;
|This simple hover text-based script is used to shop owners in Second Life, customers at the current display name and user name to display publicly. Additionally shows the status of the Userkey and online. Furthermore, there are click of a chat link that opens the profile owner.&lt;br /&gt;
|-&lt;br /&gt;
|[[Displayer Script]]&lt;br /&gt;
|{{User|Akinori Kimagawa}}&lt;br /&gt;
|Display Words On Top Of An Object&lt;br /&gt;
|-&lt;br /&gt;
|[[Distributed Primitive Database]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|The distributed primitive database (DPD) is a database which is meant to survive entirely in SL by using redundancy, replication and time synchronisation to maintain the consistency of the dataset contained in the DPD node/primitives spread out between regions and even grids. Similarly to the [[Intercom]], the robustness of the theory would allow users to maintain a cross-grid database; as of 30 of August 2011 I have managed to couple and replicate data between the two grids by using the methodology described in the script article.&lt;br /&gt;
|-&lt;br /&gt;
|[[Drink script]]&lt;br /&gt;
|{{User|Emmas Seetan}}&lt;br /&gt;
|Used mainly for food and drink in Second Life.&lt;br /&gt;
|-&lt;br /&gt;
|[[Donut Dance]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|Err, a script that makes you dance and say something on the local chat once you attach an object (good example for conditional re-entry flipping).&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Daemonika_Nightfire/Scripts/DS_Single_AO-Sit|Single_AO-Sit]]&lt;br /&gt;
|{{User|Daemonika Nightfire}}&lt;br /&gt;
|Posescript for use with or without AO and with or without Animation. With the menu it is possible the seated Avatar to move.&lt;br /&gt;
|-&lt;br /&gt;
|[[TOXDropBox|DropBox]]&lt;br /&gt;
|{{User|Dimentox Travanti}}&lt;br /&gt;
| This is a Drop box which allows people to drop certain items in a object &amp;amp; has many config options.&lt;br /&gt;
|-&lt;br /&gt;
|[[Efficiency Tester]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
|Tests the speed of a function.&lt;br /&gt;
|-&lt;br /&gt;
|[[Email-to-IM|Email2IM]]&lt;br /&gt;
|{{User|DoteDote Edison}}&lt;br /&gt;
|Send IMs to SL friends via [[email]] (translate emails from friends into IMs).&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Kireji_Haiku/SIMchat_headset|Encrypted Region-wide chat]]&lt;br /&gt;
|{{User|Kireji Haiku}}&lt;br /&gt;
|Encrypted Region-wide chat&lt;br /&gt;
|-&lt;br /&gt;
|[[ExplodingObjects]]&lt;br /&gt;
|{{User|Dale Innis}}&lt;br /&gt;
|Causes an object (of the appropriate type) to explode on command.&lt;br /&gt;
|-&lt;br /&gt;
|[[FadeEasy]]&lt;br /&gt;
|{{User2|Nika Rugani}}&lt;br /&gt;
|The easy way of fading objects in or out (Using llSetLinkAlpha)&lt;br /&gt;
|-&lt;br /&gt;
|[[FastConeSpread]]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
| Fast Algorithmn to achieve cone spread, main use in weaponry systems.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:PixelProphet Lane/Scripts#Fast List Prim Contents|Fast List Prim Contents]]&lt;br /&gt;
|{{User|PixelProphet Lane}}&lt;br /&gt;
|Fast and efficient method to print Object Inventory (Name, Type and next Owner permissions)&lt;br /&gt;
|-&lt;br /&gt;
|[[User:PixelProphet_Lane/Scripts#Grid_Status_Feed|Grid Status Feed]]&lt;br /&gt;
|{{User|PixelProphet Lane}}&lt;br /&gt;
|Receive important Grid information in-world&lt;br /&gt;
|-&lt;br /&gt;
|[[Find Avatar Key|Find Avatar Key]]&lt;br /&gt;
|{{User2|Huney Jewell}}&lt;br /&gt;
|Explores [[UUID]] of avatar whose name is said in local chat or who touches the prim.&lt;br /&gt;
|-&lt;br /&gt;
|[[First Name Letter Prize]]&lt;br /&gt;
|{{User|RaithSphere Whybrow}}&lt;br /&gt;
|Gives a prize if the person who sits on it&#039;s first letter of first name matches the random letter!&lt;br /&gt;
|-&lt;br /&gt;
|[[Fix Small Prims|Fix_Small_Prims]]&lt;br /&gt;
|{{User|Emma Nowhere}}&lt;br /&gt;
|Finds and adjusts the smallest prims in a linkset so that it can be scaled down further.&lt;br /&gt;
|-&lt;br /&gt;
|[[Flight Assist]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|Flight feather / flight band implementation supporting various commands and allowing you to fly above the clouds.&lt;br /&gt;
|-&lt;br /&gt;
|[[Float2Hex]]&lt;br /&gt;
|{{User|Strife Onizuka}}&lt;br /&gt;
|Very useful for transporting [[float|floats]].&lt;br /&gt;
|-&lt;br /&gt;
|[[Float Box Contents]]&lt;br /&gt;
|{{User|Rolig Loon}}&lt;br /&gt;
|Displays object inventory in hover text, identified by type and updated marquee-style.&lt;br /&gt;
|-&lt;br /&gt;
|[[Follower (script)|Follower]]&lt;br /&gt;
|Unknown, uploaded by {{User|Slik Swindlehurst}}&lt;br /&gt;
|Makes an object follow the nearest person. Do not use for [[grief|griefing]].&lt;br /&gt;
|-&lt;br /&gt;
|[[FURWARE_text]]&lt;br /&gt;
|{{User|Ochi Wolfe}}&lt;br /&gt;
|Versatile text-on-prim script, open source under the MIT license&lt;br /&gt;
|-&lt;br /&gt;
|[[GA Event Notifier]]&lt;br /&gt;
|{{User|Victor Hua}}&lt;br /&gt;
|Gathers seven days event data from a Google calendar and display it through a simple interface. The lsl script can access several calendars at once through seperate php files. One file per calendar. Host the included php on your own web server.&lt;br /&gt;
|-&lt;br /&gt;
|[[Geometric|Geometric Library]]&lt;br /&gt;
|Community Project&lt;br /&gt;
|A substantial amount of various geometric functions for intersection and other purposes of 3D maths.&lt;br /&gt;
|-&lt;br /&gt;
|[[Get Profile Picture]]&lt;br /&gt;
|{{User2|Valentine Foxdale}}&lt;br /&gt;
|Sets the texture of the object to profile picture of the person that touches ot&lt;br /&gt;
|-&lt;br /&gt;
|[[GetTimestampOffset]]&lt;br /&gt;
|[[User:Siann_Beck|Siann Beck]]&lt;br /&gt;
|Returns [[llGetTimestamp]]() with an hour offset.&lt;br /&gt;
|-&lt;br /&gt;
|[[Give InvItem every n hours]]&lt;br /&gt;
|{{User|Criz Collins}}&lt;br /&gt;
|Will give an inventory item on touch only every n hours, even if somebody touches the object more than once.&lt;br /&gt;
|-&lt;br /&gt;
|[[Give random object]]&lt;br /&gt;
|{{User|Emmas Seetan}}&lt;br /&gt;
|Touch to receive a random object in the prim&#039;s inventory&lt;br /&gt;
|-&lt;br /&gt;
|[[Giver]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A menu-driven script that will hand out the objects in a prim. Supports multiple pages.&lt;br /&gt;
|-&lt;br /&gt;
|[[Google Charts]]&lt;br /&gt;
|{{User|Dedric Mauriac}}&lt;br /&gt;
|Create links to display raw data as a chart image.&lt;br /&gt;
|-&lt;br /&gt;
|[[Google_Translator]]&lt;br /&gt;
|{{User|Ugleh Ulrik}}&lt;br /&gt;
|Translates spanish to english, and its simple to make it any other way.&lt;br /&gt;
|-&lt;br /&gt;
|[[Go transparent when walking]]&lt;br /&gt;
|{{User|Emmas Seetan}}&lt;br /&gt;
|An attachment that goes invisible when you walk and visible when you don&#039;t walk.&lt;br /&gt;
|-&lt;br /&gt;
|[[Great Wanderer]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A movement system based on [[Wizardry and Steamworks|State Machines]] which provides free roaming.&lt;br /&gt;
|-&lt;br /&gt;
|[[Greeter]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A multi-purpose greeter with multiple options (IM, landmark, notecard, URL, visitor statistics, shared access and compatible with the [[Mail]] system) that could work for shops, clubs, galleries and any other public place.&lt;br /&gt;
|-&lt;br /&gt;
|[[Group Authorization]]&lt;br /&gt;
|{{User|Chase Quinnell}}&lt;br /&gt;
|Checks to see if object is set to appropriate group (checks by [[Group key finder|group key]])&lt;br /&gt;
|-&lt;br /&gt;
|[[Group key finder]]&lt;br /&gt;
|{{User|Emmas Seetan}}&lt;br /&gt;
|Touch to find the key of the group&lt;br /&gt;
|-&lt;br /&gt;
|[[Group Privacy]]&lt;br /&gt;
|{{User|Chance Unknown}}&lt;br /&gt;
|Security device to insure members of a group can have a private area. Deactivates when nobody present.&lt;br /&gt;
|-&lt;br /&gt;
|[[Hello Avatar]]&lt;br /&gt;
|Linden Lab&lt;br /&gt;
|SL&#039;s default script.&lt;br /&gt;
|-&lt;br /&gt;
|[[Hello Avatar Companion]]&lt;br /&gt;
|[[Chase Quinnell]]&lt;br /&gt;
|Companion to the original [[Hello Avatar]] script&lt;br /&gt;
|-&lt;br /&gt;
|[[Hierarchics]]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
| Advanced script to create an efficient self-aware hierarchic structure.&lt;br /&gt;
|-&lt;br /&gt;
|[[Hierarchics2]]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
| Second generation, one script per object. Only two functions, can be embedded in others. Uses the new [[llSetLinkPrimitiveParamsFast]]/[[llGetLinkPrimitiveParams]] functions.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Rolig_Loon/High-Capacity_Greeter-Counter|High-Capacity Greeter-Counter]]&lt;br /&gt;
|{{User|Rolig Loon}}&lt;br /&gt;
|Uses a memory compression algorithm to store hashed visitor UUID&#039;s in a string instead of using a list.&lt;br /&gt;
|-&lt;br /&gt;
|[[Holodeck]]&lt;br /&gt;
|{{User|Revolution Perenti}}&lt;br /&gt;
|Home Rezzing System (Open Source).&lt;br /&gt;
|-&lt;br /&gt;
|[[HUD Dots Radar]]&lt;br /&gt;
|[[User:Cerise Sorbet|Cerise]]&lt;br /&gt;
|HUD target example, draws dots on the HUD over avatars in view.&lt;br /&gt;
|-&lt;br /&gt;
|[[I Got It]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|Educational tool to provide feedback from students.&lt;br /&gt;
|-&lt;br /&gt;
|[[Intercom|Intercom]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A system allowing region-wide and grid-wide (as of 30 of August 2011, it also works grid-wide, a test was performed by linking up the chat between the OSGrid and SecondLife) mass chat relay. By using this you can relay a main chat across multiple regions or grids. The script was initially meant as a mid-way project in order to test and gather information for the [[Distributed Primitive Database]].&lt;br /&gt;
|-&lt;br /&gt;
|[[Interpolation|Interpolation Library]]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
|A small set of interpolation functions.&lt;br /&gt;
|-&lt;br /&gt;
|[[Intra-Region Update Server]]&lt;br /&gt;
|[[User:Emma_Nowhere|Emma Nowhere]]&lt;br /&gt;
|Centrally update objects such as Freeview screens or teleport pads within a region that are configured by notecards or contain modifiable objects or media assets.&lt;br /&gt;
|-&lt;br /&gt;
|[[Inventory_Based_Menu]]&lt;br /&gt;
|{{User|Revolution Perenti}}&lt;br /&gt;
|Inventory Based Menu System.&lt;br /&gt;
|-&lt;br /&gt;
|[[iTunes RPC Email|iTunes RPC]]&lt;br /&gt;
|{{User|Fox Diller}}&lt;br /&gt;
|iTunes RPC via LSL [[llEmail]] and [[llRemoteDataReply]].&lt;br /&gt;
|-&lt;br /&gt;
|[[Jingle]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A script that will make a primitive emit a sound when you wear it and walk around. Ideal for bells, footsteps and so on...&lt;br /&gt;
|-&lt;br /&gt;
|[[Key Frame Animator|Keyframe Animator]]&lt;br /&gt;
|{{User|Jasper Flossberg}}&lt;br /&gt;
| This is a KeyFrame Animator Script to simplify construction of keyframed animations.&lt;br /&gt;
|-&lt;br /&gt;
|[[Key Pad Door|Keypad Door]]&lt;br /&gt;
|{{User|Tdub Dowler}}&lt;br /&gt;
| Door and keypad with changeable code. Follow instructions carefully!&lt;br /&gt;
|-&lt;br /&gt;
|[[Key2Name]]&lt;br /&gt;
|{{User2|Nika Rugani}}&lt;br /&gt;
| Key2Name service where a user no longer needs to be in the same region to get users name&lt;br /&gt;
|-&lt;br /&gt;
|[[Kilt Editor|Kilt / Skirt Editor]]&lt;br /&gt;
|{{User|Brangus Weir}}&lt;br /&gt;
| This changes all the parameters of all the flexis in the link set in one swell foop!&lt;br /&gt;
|-&lt;br /&gt;
|[[Kira Warp Core Drive]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|Scripts and instructions on how to create a vehicle that teleports an avatar and a vehicle to any region on the grid. You can [http://www.youtube.com/watch?v=xQkBRD7HBvw watch the YouTube video showing the prototype] I created to demonstrate how it works.&lt;br /&gt;
|-&lt;br /&gt;
|[[Last Sound System]]&lt;br /&gt;
|Babbage Linden&lt;br /&gt;
|An LSL [http://Last.fm Last.fm] client.&lt;br /&gt;
|-&lt;br /&gt;
|[[LibraryDisplayLandScreenshot]]&lt;br /&gt;
|{{User|Jon Desmoulins}}&lt;br /&gt;
|A modified version of LibraryDisplayProfilePic using the new [[PARCEL_DETAILS_ID]] Implemented in Server v1.36&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Daemonika_Nightfire/Scripts/LinkNumber-List_in_llSetLinkPrimitiveParamsFast|LinkNumber-List_in_llSetLinkPrimitiveParamsFast]]&lt;br /&gt;
|{{User|Daemonika Nightfire}}&lt;br /&gt;
|Changed several prims in linkset with the same parameters, with a list. Without separate llSetLinkPrimitiveParams for each prim. (ideal for show/hide effects)&lt;br /&gt;
|-&lt;br /&gt;
|[[Limit Vendor]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|This is a vendor supporting any number of items with different prices which will only dispense a certain number of individual items by setting limits for each item based on a notecard configuration.&lt;br /&gt;
|-&lt;br /&gt;
|[[Linkset resizer]]&lt;br /&gt;
|Maestro Linden&lt;br /&gt;
|Systematically rescales a linkset by moving and resizing each prim (by using [[llGetLinkPrimitiveParams]] and [[llSetLinkPrimitiveParamsFast]])&lt;br /&gt;
|-&lt;br /&gt;
|[[Linkset resizer with menu]]&lt;br /&gt;
|{{User|Brilliant Scientist}}&lt;br /&gt;
|A menu-driven script that rescales a linkset by moving and resizing the prims using [[llGetLinkPrimitiveParams]] and [[llSetLinkPrimitiveParamsFast]] functions. Based on [[Linkset resizer]].&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Daemonika_Nightfire/Scripts/*DS*_Resize_Script|Resize Script (m/c/t) v2.0.01]]&lt;br /&gt;
|{{User|Daemonika Nightfire}}&lt;br /&gt;
|Single resize script for a complete linkset with save and restore option.&lt;br /&gt;
|-&lt;br /&gt;
|[[Pointing Stick]]&lt;br /&gt;
|{{User|rhonin Nissondorf}}&lt;br /&gt;
|A device that takes controls of your arrow keys and directs the device in the relative direction its pointing, forward and back of course.&lt;br /&gt;
|-&lt;br /&gt;
|[[Gun Script]]&lt;br /&gt;
|[[User:rhonin Nissondorf| rhonin Nissondorf]]&lt;br /&gt;
|Shoots out &amp;quot;ammo&amp;quot; from the root prim of your &amp;quot;gun&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|[[Grenade Script]]&lt;br /&gt;
|[[User:rhonin Nissondorf| rhonin Nissondorf]]&lt;br /&gt;
|Uses a timed factor to add influence to the velocity of a throw object.&lt;br /&gt;
|-&lt;br /&gt;
|[[Linkset Resizer 2]]&lt;br /&gt;
|{{User|Emma Nowhere}}&lt;br /&gt;
|A more user-friendly resizer script designed for either drop-in use by the end-user or builder or for use in products. Based on [[Fix Small Prims]].&lt;br /&gt;
|-&lt;br /&gt;
|[[List2CSV]]&lt;br /&gt;
|{{User|Kunnis Basiat}}&lt;br /&gt;
|List2CSV &amp;amp; CSV2List that include preserving type and escaping characters.&lt;br /&gt;
|-&lt;br /&gt;
|[[list_cast]]&lt;br /&gt;
|{{User2|Fractured Crystal}}&lt;br /&gt;
|Casts a list of strings into the type they appear to be. Designed for preprocessing user input for feeding into [[llSetPrimitiveParams]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Listener Script]]&lt;br /&gt;
|{{User|Emmas Seetan}}&lt;br /&gt;
|Use to [[listen]] to other people&#039;s conversations (Like spying)&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Functions#List:_Find_Last_Index|List: Find Last Index]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|Returns the last index of searched item in a source list. (backwards version of [[llListFindList]])&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Functions#List:_Multi-Find_Index_.28First_or_Last.29|List: Multi Find]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|Returns the first found index of multiple search items in a list. (Multi-item version of [[llListFindList]]. Fwd and Rev versions included)&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Functions#List:_Get_Reverse_Order|List: Reverse]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|Returns an input List in reverse order&lt;br /&gt;
|-&lt;br /&gt;
|[[LinksetIndexing]]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
|Functions for indexing a linkset by patterns or names down to their linkset numbers.&lt;br /&gt;
|-&lt;br /&gt;
|[[llGetAgentList Sim-Wide Radar]]&lt;br /&gt;
|{{User|Tiaeld Tolsen}}&lt;br /&gt;
|Simple radar implementation using the new [[llGetAgentList]] LSL Function.&lt;br /&gt;
|-&lt;br /&gt;
|[[Live Event Timeout]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A script which will set the the music URL back to a radio station of your liking when a DJ leaves or forgets to switch back the URL after a live event. It takes multiple DJs, using a notecard and several configuration parameters.&lt;br /&gt;
|-&lt;br /&gt;
|[[Load URL]]&lt;br /&gt;
|{{User|Emmas Seetan}}&lt;br /&gt;
|Touch to get a dialog to visit the URL inside the script.&lt;br /&gt;
|-&lt;br /&gt;
|[[LOGO Turtle]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A script that interprets basic LOGO commands, extending the directions to 3D.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Kephra_Nurmi/lsDancemachine|lsDancemachine]]&lt;br /&gt;
|[[User:Kephra_Nurmi|Kephra Nurmi]]&lt;br /&gt;
| Low lag client server dancemachine.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Kephra_Nurmi/lsDeejay|lsDeejay Home Edition]]&lt;br /&gt;
|[[User:Kephra_Nurmi|Kephra Nurmi]]&lt;br /&gt;
| Client server media control for music, video, youtube, pictures, and texture animations.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Kephra_Nurmi/lsDialog|lsDialog]]&lt;br /&gt;
|[[User:Kephra_Nurmi|Kephra Nurmi]]&lt;br /&gt;
| Universal notecard driven menu dialog system.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Kephra_Nurmi/lsDisplay|lsDisplay]]&lt;br /&gt;
|[[User:Kephra_Nurmi|Kephra Nurmi]]&lt;br /&gt;
| Picture cycler with preloader.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Kephra_Nurmi/lsDistributor|lsDistributor]]&lt;br /&gt;
|[[User:Kephra_Nurmi|Kephra Nurmi]]&lt;br /&gt;
| Simple &#039;try&#039; and &#039;buy&#039; vendor system.&lt;br /&gt;
|-&lt;br /&gt;
|[[Wizardry_and_Steamworks/LSL|LSL FUSS]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|FUSS (Frequently Used Short Snippets) is an collection of short snippets provided by [[Wizardry and Steamworks]]. They range from functions to one-liners and are provided for LSL developers.&lt;br /&gt;
|-&lt;br /&gt;
|[[LSL_languageAPI]]&lt;br /&gt;
|{{User|Gypsy Paz}}&lt;br /&gt;
|Multi-lingual API from notecard based language files&lt;br /&gt;
|-&lt;br /&gt;
|[[Mail]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|An system for sending objects to multiple recipients automatically supporting shared access and [[Greeter]] compatible auto-subscriptions.&lt;br /&gt;
|-&lt;br /&gt;
|[[Mandelbrot Explorer]]&lt;br /&gt;
|Babbage Linden&lt;br /&gt;
|An interactive fractal explorer.&lt;br /&gt;
|-&lt;br /&gt;
|[[Materialization Effects]]&lt;br /&gt;
|{{User|Overbrain Unplugged}}&lt;br /&gt;
| Special effects to add to rezzing events to simulate a teleportation or materialization.&lt;br /&gt;
|-&lt;br /&gt;
|[[Materialization Effects 2]]&lt;br /&gt;
|{{User2|Nika Rugani}}&lt;br /&gt;
| More efficient and faster version of Materialization Effects by Overbrain Unplugged.&lt;br /&gt;
|-&lt;br /&gt;
|[[Memory Module]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|An example of pseudo-persistent variable in-world storage.&lt;br /&gt;
|-&lt;br /&gt;
|[[Merge Sort]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
|Implements a Merge Sort in LSL, however this code is 300(ish) times slower than [[llListSort]]. Don&#039;t use this in a script!&lt;br /&gt;
|-&lt;br /&gt;
|[[Minesweeper]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
|A simple minesweeper game.&lt;br /&gt;
|-&lt;br /&gt;
|[[Mood Color Changer]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A script that changes the color of all primitives in a linkset depending on the smileys the owner types on the main chat.&lt;br /&gt;
|-&lt;br /&gt;
|[[Morse Code]]&lt;br /&gt;
|{{User|Bobbyb30 Swashbuckler}}&lt;br /&gt;
|A script that allows for the conversion to and from morse code and can &amp;quot;play&amp;quot; morse code.&lt;br /&gt;
|-&lt;br /&gt;
|[[Multi-displays Texture Cycler]]&lt;br /&gt;
|{{User|Nargus Asturias}}&lt;br /&gt;
|A simple texture rotator designed for multiple display screens. With delay between each screen AND delay between each loop.&lt;br /&gt;
|-&lt;br /&gt;
|[[Multi Item Rezzer|Multi Item Rezzer]]&lt;br /&gt;
|{{User|Jesse Barnett}}&lt;br /&gt;
|A rework of my old High Altitude Rezzer. Place the objects that you wish to choose from to be rezzed inside. Sit on the rezzer and pick the item and the height. It will go to target height and rez the object.&lt;br /&gt;
|-&lt;br /&gt;
|[[Multirezzer|Multirezzer (on collision)]]&lt;br /&gt;
|{{User2|Beet Streeter}}&lt;br /&gt;
|Spawns up to 10 objects when the object containing the script collides with a user.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Allen_Kerensky/Myriad_Lite_Preview_5|Myriad Lite Preview 5 RPG System]]&lt;br /&gt;
|[[User:Allen_Kerensky|Allen Kerensky]]&lt;br /&gt;
|Working preview of the Myriad Universal RPG System by Ashok Desai, converted to LSL as a roleplay meter with quest NPC and goals, hand-to-hand and melee close combat, ranged combat, armor, healing, bullet, firearm, holster, practice target, and much more&lt;br /&gt;
|-&lt;br /&gt;
|[[N2K]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A Name To Key (Name2Key) implementation that does not use third-party databases, nor relies on the uptime of not well known websites but rather uses the World Wide Web Consortium to fetch the key of avatars while trying to alert the developers of the consequences of using Name2Key third-party providers as well as trying to refrain from sales pitch terminology such as &amp;quot;best&amp;quot;, &amp;quot;newest&amp;quot; and &amp;quot;fastest&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|[[Name2Key in LSL]]&lt;br /&gt;
|{{User|Maeva Anatine}}&lt;br /&gt;
|Get the Name2Key feature inside your scripts. Works even on lastly subscribed avatars.&lt;br /&gt;
|-&lt;br /&gt;
|[[Name2Key]]&lt;br /&gt;
|{{User2|Nika Rugani}}&lt;br /&gt;
|Newest and fastest Name2Key search, While the database is small it is also connected to Second Life&#039;s search.&lt;br /&gt;
|-&lt;br /&gt;
|[[NexiiText]]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
| Text Renderer, specialised in features, performance and a compact nature. It features unique per character control, such as Colour, Bold, Italics, Underline, Stroke, Icons. The high performance means it comes in at a 5 char / prim ratio, but it is perfect where highly dynamic and rich text is required.&lt;br /&gt;
|-&lt;br /&gt;
|[[NexiiText2]]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
| Second Gen Text Renderer. Same as above but features use of [[PRIM_LINK_TARGET]] and an awesome dynamic prim allocation architecture.&lt;br /&gt;
|-&lt;br /&gt;
|[[No Auto-Return]]&lt;br /&gt;
|{{User|Bellla Clarity}}&lt;br /&gt;
|To stop your long and hard builds from getting returned in sandboxes (&#039;&#039;only single prims, though!&#039;&#039;).&lt;br /&gt;
|-&lt;br /&gt;
|[[No Auto-Return NR]]&lt;br /&gt;
|{{User|Jor3l Boa}}&lt;br /&gt;
|This really works (29-05-09), needs a nearby region to do the trick and avoid auto return. (Tested on Blue and Rausch)&lt;br /&gt;
|-&lt;br /&gt;
|[[No Auto-Return (Multi)]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
|A revision of Bella&#039;s that works for multi-prim objects.&lt;br /&gt;
|-&lt;br /&gt;
|[[No Limit Teleporter]]&lt;br /&gt;
|{{User|Morgam Biedermann}}&lt;br /&gt;
|Teleport to infinite altitudes (up to 4096m)&lt;br /&gt;
|-&lt;br /&gt;
|[[Object Size]]&lt;br /&gt;
|{{User|Chase Quinnell}}&lt;br /&gt;
|Gets the dimensions and footprint of a linkset&lt;br /&gt;
|-&lt;br /&gt;
|[[Object to Data v1.4|Object to Data]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
|Turns an object into text (and back). Allows people to transfer objects through notecards (or otherwise).&lt;br /&gt;
|-&lt;br /&gt;
|[[Online Indicator|Online Indicator]]&lt;br /&gt;
|{{User|Kristy Fanshaw}}&lt;br /&gt;
|Will show if the user is online or not. Displays users profile picture and allows to send IM&#039;s to user. Also gives a link to open the users profile&lt;br /&gt;
|-&lt;br /&gt;
|[[Open Group Join]]&lt;br /&gt;
|{{User|Alicia Stella}}&lt;br /&gt;
|User Touches Object to Join Group from Group Info window, (no bot.)&lt;br /&gt;
|-&lt;br /&gt;
|[[Open Prim Animator]]&lt;br /&gt;
|{{User|Todd Borst}}&lt;br /&gt;
|Single script prim animation tool.  Menu driven, easy to use.&lt;br /&gt;
|-&lt;br /&gt;
|[[Open Zyngo Skin Installer]]&lt;br /&gt;
|{{User2|Tmzasz Luminos}}&lt;br /&gt;
|A Simple Script designed to install skins on the popular Skill machines.&lt;br /&gt;
|-&lt;br /&gt;
|[[Orbitor]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|Based on [[Wanderer]], we create [[Orbitor]] which allows a primitive to orbit around an origin point.&lt;br /&gt;
|-&lt;br /&gt;
|[[One Script, many doors]]&lt;br /&gt;
|{{User|Kyrah Abattoir}}&lt;br /&gt;
|Door script able to manage more than 50 linked doors from a single script instance.&lt;br /&gt;
|-&lt;br /&gt;
|[[ParseString2List]]&lt;br /&gt;
|{{User|Strife Onizuka}}&lt;br /&gt;
|Same as [[llParseString2List]] and [[llParseStringKeepNulls]], but not limited to 8 spacers or separators. Thus substitute a call to the [[llParseString2List]] and [[llParseStringKeepNulls]] functions by a call to [[Parse_String_To_List|ParseString2List]] whenever you have more than 8 separators or more than 8 spacers.&lt;br /&gt;
|-&lt;br /&gt;
|[[Password Generator]]&lt;br /&gt;
|{{User2|Syntrax Canucci}}&lt;br /&gt;
|This is an over-complicated, semi-complex password generator, which goes through multiple steps.&lt;br /&gt;
|-&lt;br /&gt;
|[[Pathfinder]]&lt;br /&gt;
|Babbage Linden&lt;br /&gt;
|A potential field based pathfinding library.&lt;br /&gt;
|-&lt;br /&gt;
|[[Pay to Strip]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|This script is mainly meant for dancers and uses RLV to allow people to strip an avatar by making every clothes and attachment piece removable, respectively detachable for a settable price.&lt;br /&gt;
|-&lt;br /&gt;
|[[Permanent Primitive URL]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A script that uses [http://tiny.cc http://tiny.cc] REST API to update a SIM URL and make it permanent. Full description on how to register and set up a &amp;quot;nice&amp;quot; URL, like: http://tiny.cc/Kira. Should work with most URL shortening services (I&#039;m not affiliated with tiny.cc except for having a pass at them for not allowing OpenSIM-style generated URLs).&lt;br /&gt;
|-&lt;br /&gt;
|[[Personal ATM Machine]]&lt;br /&gt;
|{{User|Jessikiti Nikitin}}&lt;br /&gt;
|Allows deposits and withdrawals into another of your accounts, without the account being logged in.&lt;br /&gt;
|-&lt;br /&gt;
|[[Phantom Child]]&lt;br /&gt;
|{{User|Aeron Kohime}}&lt;br /&gt;
|Causes a child in a link set to become phantom without the entire object becoming phantom.&lt;br /&gt;
|-&lt;br /&gt;
|[[PHP_RegionFunctions]]&lt;br /&gt;
|{{User|Gypsy Paz}} and {{User2|Zayne Exonar}}&lt;br /&gt;
|Three useful PHP functions to get region info&lt;br /&gt;
|-&lt;br /&gt;
|[[PhysicsLib]]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
| Interesting set of fun physics functions.&lt;br /&gt;
|-&lt;br /&gt;
|[[Planar Tile Generator]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A script to generate perfectly aligned tiles.&lt;br /&gt;
|-&lt;br /&gt;
|[[Play and Loop Sound]]&lt;br /&gt;
|{{User|Bellla Clarity}}&lt;br /&gt;
|Very short and simple script; plays and loops a sound in an object.&lt;br /&gt;
|-&lt;br /&gt;
|[[Posing stand|Posing Stand]]&lt;br /&gt;
|{{User|Bellla Clarity}}&lt;br /&gt;
|Just a pose script to edit [[attachments]] more easily.&lt;br /&gt;
|-&lt;br /&gt;
|[[PosJump]]&lt;br /&gt;
|{{User|Uchi Desmoulins}}&lt;br /&gt;
|A much more efficient alternative to the popular [[warpPos]] function for bypassing 10m distance-moved limitations.&lt;br /&gt;
|-&lt;br /&gt;
|[[Puppeteer]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A simple puppeteer script that will allow you to record and animate prim movements and rotations.&lt;br /&gt;
|-&lt;br /&gt;
|[[Primitive Name Changer]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
| A script that changes the primitive&#039;s name based on an user-configurable interval and a notecard list containing possible names.&lt;br /&gt;
|-&lt;br /&gt;
|[[Prefix Calculator]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
| A calculator that evaluates expressions in prefix notation.&lt;br /&gt;
&amp;lt;code&amp;gt;+ 3 4 = 5. * + 1 2 + 3 4 = 14.&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[Profile Generator]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A cynical script for generating boilerplate profiles by based on cliches and profile memes.&lt;br /&gt;
|-&lt;br /&gt;
|[[Profile Picture]]&lt;br /&gt;
|[[User: Jor3l Boa|Jor3l Boa]]&lt;br /&gt;
|A working profile picture script with the new SecondLife API (1/11/2011)&lt;br /&gt;
|-&lt;br /&gt;
|[[Progress Bar]]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
| Flexible and powerful little function for creating progress bars useful in hovertext.&lt;br /&gt;
|-&lt;br /&gt;
|[[Pseudo-random Number Generator]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
|Generates a Pseudo-random number between -0x7FFFFFFF and 0x7FFFFFFF&lt;br /&gt;
|-&lt;br /&gt;
|[[Quick Collar]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A simple, no-bulk, no external database and essential feature-packed RLV collar script for your pleasures.&lt;br /&gt;
|-&lt;br /&gt;
|[[Quicksort]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|LSL implementation of the Quicksort algorithm.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Rolig_Loon/Quiz_From_Notecard|Quiz From Notecard]]&lt;br /&gt;
|{{User|Rolig Loon}}&lt;br /&gt;
|A multiple-choice testing script that reads questions and answer choices from a notecard and presents them in dialog boxes.&lt;br /&gt;
|-&lt;br /&gt;
|[[Racter]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|In-world, multi-purpose chatterbot (Eliza/A.L.I.C.E. inspired) supporting multiple configurable hot-swappable brain-files with a wide range of applications.&lt;br /&gt;
|-&lt;br /&gt;
|[[Rainbow_palette]]&lt;br /&gt;
|{{User|Rui Clary}}&lt;br /&gt;
|Build a color picker, using only one prim, and a few lines of code.&lt;br /&gt;
|-&lt;br /&gt;
|[[Random Gaussian Number Generator]]&lt;br /&gt;
|{{User2|Vlad Davidson}}&lt;br /&gt;
|Generates a random number drawn from a normal (Gaussian; bell-curve) distribution, based on a specified mean/stdev&lt;br /&gt;
|-&lt;br /&gt;
|[[Random AV Profile Projector]]&lt;br /&gt;
|{{User|Debbie Trilling}}&lt;br /&gt;
|Randomly selects an AV from a crowd &amp;amp; then projects their profile picture as a &#039;holographic&#039; image&lt;br /&gt;
|-&lt;br /&gt;
|[[Random Object Vendor]]&lt;br /&gt;
|{{User|CodeBastard Redgrave}}&lt;br /&gt;
|Simple vendor that gives out random objects when paid the right amount&lt;br /&gt;
|-&lt;br /&gt;
|[[Random Password Generator]]&lt;br /&gt;
|{{User|Jor3l Boa}}&lt;br /&gt;
|Generate Random passwords based on String Length.&lt;br /&gt;
|-&lt;br /&gt;
|[[RandomPrimParams]]&lt;br /&gt;
|{{User|Xintar Citron}}&lt;br /&gt;
|Simple script which randoms Prim Parameteres, in this example i used color, but you can use everything.&lt;br /&gt;
|-&lt;br /&gt;
|[[RavText]]&lt;br /&gt;
|{{User|Ravenous Dingo}}&lt;br /&gt;
|An alternate to XyText.  This is a lightweight, multiple font 10 character text display system.  It only supports uppercase alphanumeric text and a few special characters, but it is very fast, renders quickly and supports multiple fonts. It is meant for specialized use when all that is desired is basic, fast text display and the extra &amp;quot;bells and whistles&amp;quot; are not needed.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:PixelProphet Lane/Scripts#Real Object Inventory To Dialog|Real Object Inventory To Dialog]]&lt;br /&gt;
|{{User|PixelProphet Lane}}&lt;br /&gt;
|Display any amount of items contained in an Object in a Dialog, regardless of item name length.&lt;br /&gt;
|-&lt;br /&gt;
|[[RentalBoxv1|Rental Box, Simply]]&lt;br /&gt;
|{{User2|Sendao Goodman}}&lt;br /&gt;
|Simple explanation of how to make rental boxes.&lt;br /&gt;
|-&lt;br /&gt;
|[[Rental Cube]]&lt;br /&gt;
|{{User|Hank Ramos}}&lt;br /&gt;
|Simple cube for renting out a space.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Daemonika_Nightfire/Scripts/*DS*_Rental-Cube|Rental-Cube]]&lt;br /&gt;
|{{User|Daemonika Nightfire}}&lt;br /&gt;
|This is an Open-Source version of a Rental-Cube from Daemonika Nightfire. Just copy/paste this script into a inworld lsl-script and add one notecard called Info/Rules to the content of your cube.&lt;br /&gt;
|-&lt;br /&gt;
|[[Remote Texture Loader]]&lt;br /&gt;
|{{User|Bobbyb30 Swashbuckler}}&lt;br /&gt;
|A set of scripts for remotely loading textures within a sim. This means that a single &amp;quot;texture server&amp;quot; can manage multiple changing billboards within a sim.&lt;br /&gt;
|-&lt;br /&gt;
|[[Say Region Frames Per Second|Region Frames Per Second]]&lt;br /&gt;
|{{User2|Heymeriou Mystakidou}}&lt;br /&gt;
| Says the region name and frames per second out loud on command.&lt;br /&gt;
|-&lt;br /&gt;
|[[Security Orb|Security Orb]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A regular security orb that ejects people from a land parcel supporting a menu configuration and a notecard based access list.&lt;br /&gt;
|-&lt;br /&gt;
|[[Resizer multi-prims|Resizer multi-prims]]&lt;br /&gt;
|{{User2|Christy Mansbridge}}&lt;br /&gt;
|1 Mono script to resize object (1 to 256 prims) by blue menu. Avoid risk to break the build by increasing link distance.&lt;br /&gt;
|-&lt;br /&gt;
|[[RLV Collision Grabber]]&lt;br /&gt;
|[[User:Vala_Vella|Vala Vella]]&lt;br /&gt;
|Grab people colliding with the object and sit them on a set target using RLV&lt;br /&gt;
|-&lt;br /&gt;
|[[sbDialog]]&lt;br /&gt;
|[[User:Siann_Beck|Siann Beck]]&lt;br /&gt;
|A simple replacement function for [[llDialog]]. It re-orders the button list so that the button values, as passed to it, display left-to-right, top-to-bottom. It also opens a [[llListen|listen]] on the specified channel, and returns the handle.&lt;br /&gt;
|-&lt;br /&gt;
|[[Scheduled Payments]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A script that will allow you to make scheduled (and reoccurring) payments to multiple avatars via a notecard.&lt;br /&gt;
|-&lt;br /&gt;
|[[Scheduler]]&lt;br /&gt;
|{{User|Haravikk Mistral}}&lt;br /&gt;
|Schedule multiple events using a single script timer&lt;br /&gt;
|-&lt;br /&gt;
|[[Scheme_Interpreter|Scheme Interpreter]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
|A scheme interpreter capable of handling most scheme expressions, including lambda and lists.&lt;br /&gt;
|-&lt;br /&gt;
|[[Script Override Functions]]&lt;br /&gt;
|{{User|Revolution Perenti}}&lt;br /&gt;
|bypass default strings, integer etc in chat channel.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Toady_Nakamura/Scrubber_Script|Script Scrubber]]&lt;br /&gt;
|{{User|Toady Nakamura}}&lt;br /&gt;
|Script scrubs memory resident script functions from prim and self-deletes the script. Does not damage the prim, or remove other scripts.  Use this to kill bling or other particle effects!&lt;br /&gt;
|-&lt;br /&gt;
|[[Scripted Attachment Detector.lsl|Scripted Attachment Detector]]&lt;br /&gt;
|{{User|Bobbyb30 Swashbuckler}}&lt;br /&gt;
|A script that will display avatars wearing scripted attatchments in hovertext. This may be worn as an hud or rezzed.&lt;br /&gt;
|-&lt;br /&gt;
|[[Self Upgrading Script Enhanced]]&lt;br /&gt;
|{{User|Cron Stardust}}&lt;br /&gt;
|Keeps only latest version of the script on prim (even with multiple adds of the same script!)&lt;br /&gt;
|-&lt;br /&gt;
|[[Sensor Visualizer]]&lt;br /&gt;
|{{User|Cerise Sorbet}}&lt;br /&gt;
|Shows the size and shape you get with [[llSensor]] range and arc parameters&lt;br /&gt;
|-&lt;br /&gt;
|[[Serverless Key Exchange]]&lt;br /&gt;
|{{User2|Sendao Goodman}}&lt;br /&gt;
|Maintains a network of object keys without using an external server.&lt;br /&gt;
|-&lt;br /&gt;
|[[SHA-1|SHA-1 Hash]]&lt;br /&gt;
|{{User|Strife Onizuka}}&lt;br /&gt;
|Performs a SHA-1 Hash on an input text. Similar to MD5 only (slightly) more secure.&lt;br /&gt;
|-&lt;br /&gt;
|[[SHA-2|SHA-2 Hash]]&lt;br /&gt;
|{{User|Strife Onizuka}}&lt;br /&gt;
|Performs a SHA-2 Hash on an input text. Similar to SHA-1 only (slightly) more secure.&lt;br /&gt;
|-&lt;br /&gt;
|[[Shoutcast - radio controller v0.3 (remake of similar scripts)]]&lt;br /&gt;
|{{User|Flennan Roffo}}&lt;br /&gt;
|Control your shoutcast radio stations with this shoutcast controller. Uses notecard for info about genres and stations and menu to select the station. Sends info to Xytext display.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:PixelProphet Lane/Scripts#Show Agent Script Count and memory|Show Agent Script Count and memory]]&lt;br /&gt;
|{{User|PixelProphet Lane}}&lt;br /&gt;
|Fast and efficient method to display the amount of scripts and memory usage for an agent&lt;br /&gt;
|-&lt;br /&gt;
|[[Sim Map Particle Projector]]&lt;br /&gt;
|{{User|Jesse Barnett}}&lt;br /&gt;
|Displays a floating map of the sim the script is in.&lt;br /&gt;
|-&lt;br /&gt;
|[[Sim Performance Collector (Web-based]]&lt;br /&gt;
|{{User2|DeniseHoorn Slade}}&lt;br /&gt;
|Makes some graphs for your website on the sim-performance (DIL,FPS, PING). PHP and Round Robin Database on Server needed!&lt;br /&gt;
|-&lt;br /&gt;
|[[Sim Restart Logger]]&lt;br /&gt;
|{{User|Kyrah Abattoir}}&lt;br /&gt;
|Counts region restarts and displays log of last 9 restarts together with region FPS and dilation.&lt;br /&gt;
|-&lt;br /&gt;
|[[SIM status]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A script that will scan and display the status of SIMs (up, down, starting, stopping, unknown, crashed) from a notecard in the same prim as the script.&lt;br /&gt;
|-&lt;br /&gt;
|[[Simple Elevator in a Box]]&lt;br /&gt;
|{{User|Hank Ramos}}&lt;br /&gt;
|Simple elevator example.&lt;br /&gt;
|-&lt;br /&gt;
|[[Simple Pay Door]]&lt;br /&gt;
|{{User|Giygas Static}}&lt;br /&gt;
|Simple door you pay to get access.&lt;br /&gt;
|-&lt;br /&gt;
|[[Skillingo AntiHack Script]]&lt;br /&gt;
|{{User2|Tmzasz Luminos}}&lt;br /&gt;
|A simple Protection script for skillingo thats modifyable to work with other machines.&lt;br /&gt;
|-&lt;br /&gt;
|[[Skunk Money]]&lt;br /&gt;
|{{User|Hank Ramos}}&lt;br /&gt;
|Fun gambling machine of yesteryear, which only supports freeplay now due to SL regulations against gambling.&lt;br /&gt;
|-&lt;br /&gt;
|[[SLateIt]]&lt;br /&gt;
|Babbage Linden&lt;br /&gt;
|An augmented virtual reality HUD.&lt;br /&gt;
|-&lt;br /&gt;
|[[SLetanque]]&lt;br /&gt;
|Babbage Linden&lt;br /&gt;
|An LSL petanque game.&lt;br /&gt;
|-&lt;br /&gt;
|[[SLURL HUD]]&lt;br /&gt;
|{{User|CodeBastard Redgrave}}&lt;br /&gt;
|Touch this HUD to get a SLURL through IM, email and floating text.&lt;br /&gt;
|-&lt;br /&gt;
|[[BuildSlurl (NewAge)]]&lt;br /&gt;
|{{User2|Archile Azalee}}&lt;br /&gt;
|A way to create a SLurl in a single function BuildSlurl&lt;br /&gt;
|-&lt;br /&gt;
|[[SL Mail V1.2]]&lt;br /&gt;
|{{User|Flennan Roffo}}&lt;br /&gt;
|Second Life mail client V1.2 (released sept&#039;07). Send and receive mail from within Second Life from and to any address. With Address Book function and many chat commands. V1.3 is upcoming soon!&lt;br /&gt;
|-&lt;br /&gt;
|[[SL_NTPoHTTP_v1.1_client|SL NTPoHTTP client]]&lt;br /&gt;
|{{User|SignpostMarv Martin}}&lt;br /&gt;
|Second Life Needs Time Parsing over Hyper Text Transfer Protocol&lt;br /&gt;
Emulates the function of [[llGetWallclock]] for any timezone by using SLOpenID&#039;s SLNTPoHTTP service. Also supports ISO 8601 and RFC 2822 timestamps. Script is dependent upon an external service operated by the author!&lt;br /&gt;
|-&lt;br /&gt;
|[[Slide Display]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A display for presentations or talks supporting multiple slides as well as zooming-in on the slides.&lt;br /&gt;
|-&lt;br /&gt;
|[[Smile]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|An extended smile script supporting two smiles (extendable via a list) and a time delay triggering them at random.&lt;br /&gt;
|-&lt;br /&gt;
|[[Smooth Rotating Door]]&lt;br /&gt;
|{{User|Toy Wylie}}&lt;br /&gt;
|A script for doors that open and close smoothly using llTargetOmega&lt;br /&gt;
|-&lt;br /&gt;
|[[Smooth Rotating Linked Door With Hinge]]&lt;br /&gt;
|{{User2|Lyn Mimistrobell}}&lt;br /&gt;
|A script for linked uncut (mesh) doors that smoothly rotates around a virtual hinge without the use of timers&lt;br /&gt;
|-&lt;br /&gt;
|[[Smooth Sliding Door]]&lt;br /&gt;
|{{User|SimonT Quinnell}}&lt;br /&gt;
|A script for sliding doors that open and close smoothly using [[llMoveToTarget]]. Asjusts for prim orientation.&lt;br /&gt;
|-&lt;br /&gt;
|[[Snake Game]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|The game of snake in Second Life.&lt;br /&gt;
|-&lt;br /&gt;
|[[Song Requests]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|Helper script for DJs, allowing listeners to request songs and make dedications.&lt;br /&gt;
|-&lt;br /&gt;
|[[Speed Tester]]&lt;br /&gt;
|{{User|Bobbyb30 Swashbuckler}}&lt;br /&gt;
|Similar to the [[Efficiency Tester]], this script allows you to test the speed of a particular function or snippet with multiple trials giving min/max/avg/median and the standard deviation.&lt;br /&gt;
|-&lt;br /&gt;
|[[Spiral Staircase Generator]]&lt;br /&gt;
|{{User|Meyermagic Salome}}&lt;br /&gt;
|Generates nice looking spiral staircases without much hassle.&lt;br /&gt;
|-&lt;br /&gt;
|[[Static URL&#039;s for HTTP-In Service|Static_URLs]]&lt;br /&gt;
|{{User|Jor3l Boa}}&lt;br /&gt;
|How to generate a static url for HTTP-In temporal limitations.&lt;br /&gt;
|-&lt;br /&gt;
|[[String Compare]]&lt;br /&gt;
|{{User|Xaviar Czervik}}&lt;br /&gt;
|Compares two strings and reliably returns either 1, -1, or 0 if they are the same.&lt;br /&gt;
|-&lt;br /&gt;
|[[Synchronize]]&lt;br /&gt;
|{{User|Cay Trudeau}}&lt;br /&gt;
|Makes synchronized start to a task on even/odd seconds&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Functions#String:_Find_Last_Index|String: Reverse]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|Returns an input string in reverse order&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Functions#String:_Get_Reverse_Order|String: Last Index]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|Returns the last index of search found in string (the backward equivalent of [[llSubStringIndex]])&lt;br /&gt;
|-&lt;br /&gt;
|[[Tail Messages (NewAge)]]&lt;br /&gt;
|{{User|Asia Snowfall}}&lt;br /&gt;
|A super nice easy to use script for those non-scripters out there! NewAge coding has done it again where you no longer need to scroll up and down adding buttons and adding messages, Features a tag system (you&#039;ll see what i mean :P)&lt;br /&gt;
|-&lt;br /&gt;
|[[Taper Door (minimalistic)]]&lt;br /&gt;
|{{User2|Kopilo Hallard}}&lt;br /&gt;
|A basic script for doors which open and close using taper.&lt;br /&gt;
|-&lt;br /&gt;
|[[Teleport HUD]]&lt;br /&gt;
|{{User|Jesse Barnett}}&lt;br /&gt;
|WORKS TO 4096 METERS!! Very user friendly teleport HUD. Add destinations by touching &amp;quot;Add&amp;quot; &amp;amp; naming destination in chat. Automatically gets sim name and coordinates. Will only display the destinations in the sim you are currently in. Demonstrates more advanced list manipulation and stride functions.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Programs#v7-D_Enh._Landmark-2-Map|Teleporter (landmark based)]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|Uses Landmarks to offer map teleports. Works as Hud or inworld objects, just drop in landmarks and go.&lt;br /&gt;
|-&lt;br /&gt;
|[[Text_Scroller|Text Scroller]]&lt;br /&gt;
|[[User:Fred_Gandt|Fred Gandt]]&lt;br /&gt;
|A simple text display object that scrolls text (applied as a texture) from right to left (like &#039;&#039;those&#039;&#039; LED signs) in a continuous loop.&lt;br /&gt;
|-&lt;br /&gt;
|[[Bobbyb&#039;s texture changer|Texture Changers]]&lt;br /&gt;
|{{User|Bobbyb30 Swashbuckler}}&lt;br /&gt;
|A collection of texture changing scripts.&lt;br /&gt;
|-&lt;br /&gt;
|[[Texture Menu Management|Texture Management]]&lt;br /&gt;
|{{User|Revolution Perenti}}&lt;br /&gt;
|Dialog Menu based Texture Selection.&lt;br /&gt;
|-&lt;br /&gt;
|[[Texture Particle Poofer|Texture Particle Poofer]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|This is a generic dialog-based particle poofer, emitting textures towards an avatar for a configurable amount of time.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Xen_Lisle/Texture_Slide|Texture Slide]]&lt;br /&gt;
|{{User|Xen Lisle}}&lt;br /&gt;
|Slides a texture on mouse movement&lt;br /&gt;
|-&lt;br /&gt;
|[[Tic Tac Toe]]&lt;br /&gt;
|CG Linden&lt;br /&gt;
|Step by step demo on how to implement a larger scripting project&lt;br /&gt;
|-&lt;br /&gt;
|[[TightList]]&lt;br /&gt;
|{{User|Strife Onizuka}}&lt;br /&gt;
|Tight List is a family of functions for encoding lists as strings and then decoding them back into lists.&lt;br /&gt;
There are two flavors: TightList and TightListType. TightListType preserves types and uses a 6 char header, while TightList uses a 1 char header that doesn&#039;t preserve type.&lt;br /&gt;
|-&lt;br /&gt;
|[[Timer Module]]&lt;br /&gt;
|{{User|Isabelle Aquitaine}}&lt;br /&gt;
|Manage multiple timers via linked messages.&lt;br /&gt;
|-&lt;br /&gt;
|[[Two Avatars on single prim]]&lt;br /&gt;
|{{User2|Pale Janus|Cay Trudeau}}&lt;br /&gt;
|Allow two (or more) avatars to sit on same prim&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Functions#Unix_time_code_to_list_format|Timestamp:&amp;lt;br&amp;gt;Unix time code to list format]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|converts Unix timestamps to their [Y, M, D, h, m, s] equivalents (ex: 1234567890 to [2009, 2, 13, 3, 31, 30])&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Functions#List_format_to_Unix_time_code.|Timestamp:&amp;lt;br&amp;gt;List format to Unix time code]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|converts [Y, M, D, h, m, s] timestamps to their Unix equivalents (ex: [2009, 2, 13, 3, 31, 30] to 1234567890)&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Functions#Weekday_from_Unix_timestamp|Timestamp:&amp;lt;br&amp;gt;Weekday from Unix timestamp]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|Gets weekday from Unix timestamps (ex: &amp;quot;Friday&amp;quot; from 1234567890)&lt;br /&gt;
|-&lt;br /&gt;
|[[The Stash (Bank)]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|This is a depositing system to link your secondary account (alt) to a prim in-world so you can retrieve money without switching back and forth between accounts. It supports setting an upper limit, sharing the stash if you wish, logging everybody who deposited money and retrieved money, sending money to a list of bookmarked avatars and getting a status of your current holdings. It also explains some tricks for developers, for example, how to get another timer() if your current timer() is used up already.&lt;br /&gt;
|-&lt;br /&gt;
|[[Tipjar]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|This is a fully fledged tipjar supporting shared access, split profits, inviting to group, handing over gifts, maintaining statistics of who tipped most and who tipped in general, eliminating deed to group and comes with an innovative feature: it periodically moves around from avatar to avatar in the room and returns back to its initial position after a sweep. This way your tijpar will not be static, but participate in the party!&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Functions#Weekday_from_.28_Y.2C_M.2C_D_.29_format|Timestamp:&amp;lt;br&amp;gt;Weekday from (Y, M, D) format]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|Gets weekday from (Y, M, D) timestamps (ex: &amp;quot;Friday&amp;quot; from (2009, 2, 13))&lt;br /&gt;
|-&lt;br /&gt;
|[[Touch A Quote]]&lt;br /&gt;
|{{User|CodeBastard Redgrave}}&lt;br /&gt;
|Touch an object to read quotes sequentially from a notecard&lt;br /&gt;
|-&lt;br /&gt;
|[[Touring Balloon]]&lt;br /&gt;
|{{User|Hank Ramos}}&lt;br /&gt;
|Automated touring balloon with many options from long ago.  Always seems to work on one SL release, and not the other.&lt;br /&gt;
|-&lt;br /&gt;
|[[Towncrier]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A simple towncrier to be used in role-play SIMs or wherever there is a need to broadcast news in random intervals.&lt;br /&gt;
|-&lt;br /&gt;
|[[Trivia]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A trivia game engine with provided ready-made notecards.&lt;br /&gt;
|-&lt;br /&gt;
|[[Under Age Boot]]&lt;br /&gt;
|{{User|Chance Unknown}}&lt;br /&gt;
|Security device example to teleport home accounts below a minimum age limit; can be useful in combating free griefer accounts.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Rolig_Loon/UNDO_PosRot|UNDO_PosRot]]&lt;br /&gt;
|{{User|Rolig Loon}}&lt;br /&gt;
|Allows user to undo position and rotation changes that have been made &amp;quot;manually&amp;quot; to any or all prims in a linkset.&lt;br /&gt;
|-&lt;br /&gt;
|[[Universal Translator]]&lt;br /&gt;
|{{User|Hank Ramos}}&lt;br /&gt;
|Chat listener that handles seamless translation of public chat between 50+ written languages without the need for configuration.  Handles numerous avatars, auto-detects languages, and works together with multiple copies of translators to spread-workload using a sophisticated back-end communications sub-system.&lt;br /&gt;
|-&lt;br /&gt;
|[[Unix2DateTime]]&lt;br /&gt;
|{{User|Flennan Roffo}}&lt;br /&gt;
|Conversion from Unix time ([[llGetUnixTime]]()) to date and time string and vice versa.&lt;br /&gt;
|-&lt;br /&gt;
|[[Unmutable Descript Nagger]]&lt;br /&gt;
|{{User|Bobbyb30 Zohari}}&lt;br /&gt;
|To nag avatars to take off their scripted attatchments.&lt;br /&gt;
|-&lt;br /&gt;
|[[Unpacker On Rez (NewAge)]]&lt;br /&gt;
|{{User|Asia Snowfall}}&lt;br /&gt;
|A very simple to use script for all you creators out there, This script will enable you to send out boxed items and make it easier for users to unpack, Also features auto die on completion. Very simple to configure!&lt;br /&gt;
|-&lt;br /&gt;
|[[Unpacker On Touch (NewAge)]]&lt;br /&gt;
|{{User|Asia Snowfall}}&lt;br /&gt;
|Exactly like Unpacker On Rez, But changed some things about to make it Unpack On Touch&lt;br /&gt;
|-&lt;br /&gt;
|[[Update distributor]]&lt;br /&gt;
|{{User|Dale Innis}}&lt;br /&gt;
|Distribute an object (like a project update) to a list of people named in a notecard.&lt;br /&gt;
|-&lt;br /&gt;
|[[UUID2Channel]]&lt;br /&gt;
|{{User|Project Neox}}&lt;br /&gt;
|Optimised version of the original key2channel generators.&lt;br /&gt;
|-&lt;br /&gt;
|[[UUID Song Generator]]&lt;br /&gt;
|{{User2|Sendao Goodman}}&lt;br /&gt;
|Translates a UUID into a simple song and plays it.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/Programs#v7-D_Advanced_Visitor_Greeter|Visitor Greeter]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|Reduced spam visitor greeter, highly configurable, easy to modify.&lt;br /&gt;
|-&lt;br /&gt;
|[[VariText]]&lt;br /&gt;
|[[User:Geneko Nemeth|Geneko Nemeth (Kakurady)]]&lt;br /&gt;
|Display text on a prim, without looking like from a typewriter&lt;br /&gt;
|-&lt;br /&gt;
|[[Visitor Logger (Web/Basic) ]]&lt;br /&gt;
|{{User|Buddy Sprocket}}&lt;br /&gt;
|A very basic visitor logger - log visitors in SL to a text file on your web-site.&lt;br /&gt;
|-&lt;br /&gt;
|[[Visitors]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A series of scripts to hold lists of visitors taking into account display names and supporting tracking multiple visits.&lt;br /&gt;
|-&lt;br /&gt;
|[[Volleyball Game (Kira&#039;s Artillery Variations)]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|The game of Volleyball in SecondLife, based on the [[Artillery]] script and freefall theory. Full build instructions, scripts, import archive and marketplace freebie product. All full permission.&lt;br /&gt;
|-&lt;br /&gt;
|[[Vote Simple]]&lt;br /&gt;
|{{User|JB Kraft}}&lt;br /&gt;
|Simple vote collector. One avi, one vote.&lt;br /&gt;
|-&lt;br /&gt;
|[[Walking Sound (NewAge)]]&lt;br /&gt;
|{{User|Asia Snowfall}}&lt;br /&gt;
|Very powerful walking sound script, Featuring customer ability to add their own sounds with the API Sound Feature!&lt;br /&gt;
|-&lt;br /&gt;
|[[Wanderer]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A script that can be used to randomly move a prim around relative to its origin point. Can be used for breeders, robots, birds and other applications where a primitive has to move around by itself.&lt;br /&gt;
|-&lt;br /&gt;
|[[WarpPos]]&lt;br /&gt;
|{{User2|Keknehv Psaltery}}&lt;br /&gt;
|Non-physical movement without the 10m limit.&lt;br /&gt;
|-&lt;br /&gt;
|[[Watchdog]]&lt;br /&gt;
|{{User|Tika Oberueng}}&lt;br /&gt;
|LSL Watchdog scripts to monitor other scripts in the prim and restart them if they crash or stop running.&lt;br /&gt;
|-&lt;br /&gt;
|[[Wiki3DBuilder]] [[Wiki3DBuilder1.0]]&lt;br /&gt;
|{{User|Salahzar Stenvaag}}&lt;br /&gt;
|Allows a group of people to collectively build up complex 3D mindmaps with connected concepts. Uses particles for connections and low prim usage. Nodes can be textured, colored, changed form size moved collectively by everybody and can distribute notecards, landmarks, URL, objects, textures. I provide two version 0.1 and 1.0 and probably next version will communicate with moodle and sloodle external websites.&lt;br /&gt;
|-&lt;br /&gt;
|[[Window Control]]&lt;br /&gt;
|{{User|Emmas Seetan}}&lt;br /&gt;
|For window opacity, helpful for buildings.&lt;br /&gt;
|-&lt;br /&gt;
|[[XTEA Strong Encryption Implementation]]&lt;br /&gt;
|{{User|Morse Dillon}}&lt;br /&gt;
|An LSL implementation of XTEA (eXtended Tiny Encryption Algorithm).  This is the first known public release of a &#039;real&#039; strong encryption implementation in LSL and is released under the GNU General Public License (GPL).&lt;br /&gt;
|-&lt;br /&gt;
|[[XyText 1.5|XyText]]&lt;br /&gt;
|{{User2|Xylor Baysklef}}&lt;br /&gt;
| Display text (up to 10 characters) on a prim. Use as many prims as desired.&lt;br /&gt;
|-&lt;br /&gt;
|[[XyyyyzText|XyyyyzText]]&lt;br /&gt;
|{{User|Criz Collins}}&lt;br /&gt;
| Display text (up to 10 characters) on a prim. Displays different text for each line instead of one single text, that will be broken into the next lines. Watch here for what that means: http://screencast.com/t/1wMLujLcEO&lt;br /&gt;
|-&lt;br /&gt;
|[[XyzzyText|XyzzyText]]&lt;br /&gt;
|{{User|Thraxis Epsilon}} and {{User|Gigs Taggart}}&lt;br /&gt;
| Display text (up to 10 characters) on a prim. Way more efficient than XyText.&lt;br /&gt;
|-&lt;br /&gt;
|[[Youtube TV]]&lt;br /&gt;
|{{User|Morgam Biedermann}}&lt;br /&gt;
|Watch your favorite Youtube videos / auto set the texture to the parcel media texture.&lt;br /&gt;
|-&lt;br /&gt;
|[[Zero Lag Poseball]]&lt;br /&gt;
|{{User|Jippen Faddoul}} and {{User|Daemonika Nightfire}}&lt;br /&gt;
|A simple poseball with no lag&lt;br /&gt;
|-&lt;br /&gt;
|[[Zigzag Sequence]]&lt;br /&gt;
|{{User|Project Neox}}&lt;br /&gt;
|Zigzag sequence generator I developed while scripting checkers&lt;br /&gt;
|-&lt;br /&gt;
|[[Input number of seconds, get a string back that shows days, hours, minutes, seconds]]&lt;br /&gt;
|{{User|Fire Centaur}}&lt;br /&gt;
|Returns a string that displays days, hours, seconds&lt;br /&gt;
|-&lt;br /&gt;
|[[Random Giver Prim]]&lt;br /&gt;
|{{User|Damian Darkwyr}}&lt;br /&gt;
|A randomized item giver with a game-like twist&lt;br /&gt;
|-&lt;br /&gt;
|[[Client Specific Contents Giver]]&lt;br /&gt;
|{{User|Damian Darkwyr}}&lt;br /&gt;
|Give Contents only to users of a specific Client. Such as Phoenix, CoolVL or 2.0&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Void_Singer/v7-D_Zen_Resizer|Zen Resizer]]&lt;br /&gt;
|{{User|Void Singer}}&lt;br /&gt;
|Single script object resizer w/ multi-language &amp;amp; multi-menu support, + many other features for simple or advanced use.&lt;br /&gt;
|-&lt;br /&gt;
|[[Presenter with Timer]]&lt;br /&gt;
|[[User:Fire Centaur]]&lt;br /&gt;
|Yet another texture presenter with a timer, lock, next/prev etc&lt;br /&gt;
|-&lt;br /&gt;
|[[TimeAPI Clock Script]]&lt;br /&gt;
|[[User:Elite Runner|Ryan R. Elite (Elite Runner)]]&lt;br /&gt;
|Gets time via HTTP function from TimeAPI.org&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Support Script Library==&lt;br /&gt;
These are scripts in other languages, intended to be run on other systems that support scripts written in LSL&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; {{Prettytable}}&lt;br /&gt;
|- {{Hl2}}&lt;br /&gt;
! &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Creator&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|[https://github.com/Nexii-Malthus/phpPathfinding phpPathfinding]&lt;br /&gt;
|{{User|Nexii Malthus}}&lt;br /&gt;
|PHP script for offloading complex pathfinding operations away from heavy use simulators onto external servers. Primarily A* Algorithm. Flexible -- works with any type of node graph. Public Domain. Clean and minimalistic code.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Ina Centaur/UUID/calimg.api|Calendar Image UUID API]]&lt;br /&gt;
|{{User|Ina Centaur}}&lt;br /&gt;
|API that gives the UUID of an image of a calendar image give month and year arguments.&lt;br /&gt;
|-&lt;br /&gt;
|[[HTTP Post request to a PHP server]]&lt;br /&gt;
|{{User|Corto Maltese}}&lt;br /&gt;
|This small library allows you to make simple POST requests to your website. The libraries allow you to get your request through the variable $_POST on the server. It also include a basic security mechanism aimed to stop hacking. Comprises of LSL client script and PHP server script.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Ina Centaur/PHP/k2n.php|Key2Name.php]]&lt;br /&gt;
|{{User|Ina Centaur}}&lt;br /&gt;
|Get Avatar&#039;s Name using Second Life search service. (like in LSL Key2Name)&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Darien_Caldwell/HTTP-DNS|HTTP-IN DNS]]&lt;br /&gt;
|{{User|Darien Caldwell}}&lt;br /&gt;
|Public Domain DNS and HTTP-IN URL Distribution system running on GAE (the original). Deploy your own for maximum utility and security.&lt;br /&gt;
|-&lt;br /&gt;
|[[Lame_Object_DNS_and_Cross_Sim_Messaging|Lame Object DNS and Cross Sim Messaging]]&lt;br /&gt;
|{{User2|Liandra Ceawlin}}&lt;br /&gt;
|Simple, cheeseball method of doing cross-sim communications with http-in and an external object DNS service.&lt;br /&gt;
|-&lt;br /&gt;
|[[Minify|LSL Minify]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|LSL Minification and obfuscation tool written in JavaScript. Contains a form on the wiki using a widget where you can post LSL scripts to be minified as well as the source-code. For another full-screen demo you may [http://eva.comaroski.me/lslclean.html check it on my website]. To use, paste any LSL code and press ctrl+alt+enter to get the minified version.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:SignpostMarv Martin/PHP/llXorBase64StringsCorrect|llXorBase64StringsCorrect]]&lt;br /&gt;
|{{User|SignpostMarv Martin}}&lt;br /&gt;
|An implementation of [[llXorBase64StringsCorrect]] in PHP- should be useful if you&#039;re using llXorBase64StringsCorrect to do cryptography work in LSL2 and posting it out to the web via [[llHTTPRequest]].&lt;br /&gt;
|-&lt;br /&gt;
|[[User:SignpostMarv Martin/PHP/lsl fu.php|lsl_fu.php]]&lt;br /&gt;
|{{User|SignpostMarv Martin}}&lt;br /&gt;
|A basic OOP&#039;d PHP Class containing VeloxSeverine&#039;s $_POST fixer and Marv&#039;s own eccentric ideas for &amp;quot;fixing&amp;quot; things.&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Jor3l Boa/PHP/n2k.php|Name2Key.php]]&lt;br /&gt;
|{{User|Jor3l Boa}}&lt;br /&gt;
|Get Avatar&#039;s UUID using Second Life search service. (like in LSL Name2Key)&lt;br /&gt;
|-&lt;br /&gt;
|[[Public_Object_DNS|Public Object DNS]]&lt;br /&gt;
|{{User2|Liandra Ceawlin}}&lt;br /&gt;
|Public object DNS-like system running on GAE, for http-in. Hopefully scalable enough for wide-spread usage.&lt;br /&gt;
|-&lt;br /&gt;
|[[Rake|Rake]]&lt;br /&gt;
|[[Wizardry and Steamworks]]&lt;br /&gt;
|A C# utility meant to create full inventory backups to your local hard-drive including Textures/Sculpts, Animations, Notecards and Scripts.&lt;br /&gt;
|-&lt;br /&gt;
|Silo&lt;br /&gt;
|{{User2|Zero Linden}}&lt;br /&gt;
|General purpose data store in PHP.  Use this to persist arbitrary data from LSL via [[llHTTPRequest]].  See:&lt;br /&gt;
* [http://www.notabene-sl.com/misc/silo-README.txt README] file&lt;br /&gt;
* [http://www.notabene-sl.com/misc/silo.tgz silo.tgz] tarball&lt;br /&gt;
* forum post [http://forums-archive.secondlife.com/54/69/119570/1.html Announcement].&lt;br /&gt;
|-&lt;br /&gt;
|[[Silverday ObjectDNS]]&lt;br /&gt;
|{{User|Till Stirling}}&lt;br /&gt;
|Dynamic Object-DNS-System to provide dynamic mapping of LSL-URLs to persistent domains. Features include redirect service, password protected domains, write protected domains, LSL-API for all necessary functions, optional web-interface.&lt;br /&gt;
|-&lt;br /&gt;
|[http://aubretec.com/products/sldb SLDB]&lt;br /&gt;
|{{User2|Luc Aubret}}&lt;br /&gt;
|Flexible web database storage using PHP/MySQL.  Used to store per-user field/value pairs from in-world objects using [[llHTTPRequest]].&lt;br /&gt;
* [http://aubretec.com/support/manuals/sldbkit/ Implementation Guide]&lt;br /&gt;
* [http://aubretec.com/wp-content/uploads/2009/05/sldb.zip Download] (.zip, 12kb)&lt;br /&gt;
|-&lt;br /&gt;
|[https://tlabsfoundry.atlassian.net/wiki/display/SLAD/SL+Asset+Data SL Asset Data]&lt;br /&gt;
|{{User|Trimda Hedges}}&lt;br /&gt;
|A set of Java classes to retrieve information about Groups, Parcels and Agents/Avatars based on their key (UUID).  Includes caching of requests and results and example application.  Copyright under Eclipse Public License v1&lt;br /&gt;
* [https://tlabsfoundry.atlassian.net/wiki/display/SLAD/Downloads Downloads]&lt;br /&gt;
* [http://trimda.com/javadocs/slassetdata/1.1.0/ JavaDocs]&lt;br /&gt;
* [https://tlabsfoundry.atlassian.net/wiki/display/TF/TLabs+Foundry Other Projects]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Articles&#039;&#039;&#039;&lt;br /&gt;
*[[:Category:LSL Examples| Examples]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{LSLC|}}&lt;/div&gt;</summary>
		<author><name>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Template:LSL_Constants/Object_Details&amp;diff=1187402</id>
		<title>Template:LSL Constants/Object Details</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Template:LSL_Constants/Object_Details&amp;diff=1187402"/>
		<updated>2014-01-31T08:43:27Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{{!}} class=&amp;quot;sortable&amp;quot; {{Prettytable|style=margin-top:0;}}&lt;br /&gt;
{{!}}-{{Hl2}}&lt;br /&gt;
! {{!}} Flags&lt;br /&gt;
! title=&amp;quot;Value&amp;quot; {{!}}&lt;br /&gt;
! class=&amp;quot;unsortable&amp;quot;{{!}} Description&lt;br /&gt;
! class=&amp;quot;unsortable&amp;quot;{{!}} Length when [[typecast]] to a [[string]]&lt;br /&gt;
! Return&lt;br /&gt;
! class=&amp;quot;unsortable&amp;quot;{{!}} Alternatives&lt;br /&gt;
! Local&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_NAME|integer|1|c=Gets the prim&#039;s name.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}{{#var:comment}}&amp;lt;br/&amp;gt;If &#039;&#039;&#039;id&#039;&#039;&#039; is an avatar, the {{LSLGC|Legacy Name}} is returned. &lt;br /&gt;
{{!}}max. 63 characters&lt;br /&gt;
{{!}}[[string]]&lt;br /&gt;
{{!}}&lt;br /&gt;
*[[llKey2Name]]&lt;br /&gt;
*[[llDetectedName]]&lt;br /&gt;
{{!}} [[llGetObjectName]]&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_DESC|integer|2|c=Gets the prim&#039;s description.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}{{#var:comment}}&amp;lt;br/&amp;gt;If &#039;&#039;&#039;id&#039;&#039;&#039; is an avatar, an empty string is returned.&lt;br /&gt;
{{!}}max. 127 characters&lt;br /&gt;
{{!}}[[string]]&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}} [[llGetObjectDesc]]&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_POS|integer|3|c=Gets the prim&#039;s position in region coordinates.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}Gets the prim&#039;s position in [[Viewer_coordinate_frames#Region|region coordinates]].&amp;lt;br/&amp;gt;If &#039;&#039;&#039;id&#039;&#039;&#039; is an avatar outside the region (see above), this position is relative to the region the script is [[llGetRegionName|running in]].&lt;br /&gt;
{{!}}max. 37 characters&lt;br /&gt;
{{!}}[[vector]]&lt;br /&gt;
{{!}}&lt;br /&gt;
*[[llDetectedPos]]&lt;br /&gt;
{{!}} [[llGetPos]]&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_ROT|integer|4|c=Gets the prim&#039;s rotation.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}{{#var:comment}}&lt;br /&gt;
{{!}}max. 48 characters&lt;br /&gt;
{{!}}[[rotation]]&lt;br /&gt;
{{!}}&lt;br /&gt;
*[[llDetectedRot]]&lt;br /&gt;
{{!}} [[llGetRot]]&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_VELOCITY|integer|5|c=Gets the object&#039;s velocity.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}{{#var:comment}}&lt;br /&gt;
{{!}}36 characters&lt;br /&gt;
{{!}}[[vector]]&lt;br /&gt;
{{!}}&lt;br /&gt;
*[[llDetectedVel]]&lt;br /&gt;
{{!}} [[llGetVel]]&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_OWNER|integer|6|c=Gets the object&#039;s owner key.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}Gets an object&#039;s {{LSLGC|Owner|owner}} key.&amp;lt;br/&amp;gt;If &#039;&#039;&#039;id&#039;&#039;&#039; is an avatar, that avatar&#039;s key is returned (which is the same as &#039;&#039;&#039;id&#039;&#039;&#039;).&amp;lt;br/&amp;gt;If &#039;&#039;&#039;id&#039;&#039;&#039; is group-owned, a {{LSL Constant/NULL_KEY}} is returned.&lt;br /&gt;
{{!}}36 characters&lt;br /&gt;
{{!}}[[key]]&lt;br /&gt;
{{!}}&lt;br /&gt;
*[[llDetectedOwner]]&lt;br /&gt;
*[[llGetOwnerKey]]&lt;br /&gt;
{{!}} [[llGetOwner]]&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_GROUP|integer|7|c=Gets the prim&#039;s group key.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}Gets the prim&#039;s {{LSLGC|Group|group}} key.&amp;lt;br/&amp;gt;If &#039;&#039;&#039;id&#039;&#039;&#039; is an avatar, a {{LSL Constant/NULL_KEY}} is returned.{{Footnote|There are at least 3 JIRA&#039;s about OBJECT_GROUP and avatars, LL has refused all of them. Most recently on December 5th 2013 in BUG-4654.}}&lt;br /&gt;
{{!}}36 characters&lt;br /&gt;
{{!}}[[key]]&lt;br /&gt;
{{!}}{{LSLGC|Group}}&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_CREATOR|integer|8|c=Gets the prim&#039;s creator key.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}Gets the prim&#039;s {{LSLGC|Creator|creator}} key.&amp;lt;br/&amp;gt;If &#039;&#039;&#039;id&#039;&#039;&#039; is an avatar, a {{LSL Constant/NULL_KEY}} is returned.&lt;br /&gt;
{{!}}36 characters&lt;br /&gt;
{{!}}[[key]]&lt;br /&gt;
{{!}}{{LSLGC|Creator}}&lt;br /&gt;
{{!}} [[llGetCreator]]&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_RUNNING_SCRIPT_COUNT|integer|9|c=Gets the number of running scripts attached to the object or agent.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}Gets the number of [[llGetScriptState|running]] scripts attached to the object or agent.&lt;br /&gt;
{{!}}max. 11 characters&lt;br /&gt;
{{!}}[[integer]]&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}[[llGetScriptState]]&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_TOTAL_SCRIPT_COUNT|integer|10|c=Gets the number of scripts, both running and stopped, attached to the object or agent.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}Gets the number of scripts, both running and stopped, attached to the object or agent.&lt;br /&gt;
{{!}}max. 11 characters&lt;br /&gt;
{{!}}[[integer]]&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}[[llGetInventoryNumber]]&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_SCRIPT_MEMORY|integer|11|c=Gets the total amount of script memory allocated to the object or agent, in bytes.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}Gets the total amount of [[LSL Script Memory|script memory]] allocated to the object or agent, in bytes.&lt;br /&gt;
{{!}}max. 11 characters&lt;br /&gt;
{{!}}[[integer]]&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_SCRIPT_TIME|integer|12|c=Gets the total amount of average script CPU time used by the object or agent, in seconds.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}Gets the total amount of average script CPU time used by the object or agent, in seconds.&lt;br /&gt;
{{!}}max. 15 characters&lt;br /&gt;
{{!}}[[float]]&lt;br /&gt;
{{!}}[[Viewerhelp:Top_Colliders_and_Top_Scripts|Top Scripts]]&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_PRIM_EQUIVALENCE|integer|13|c=Gets the prim equivalence of the object.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}Gets the prim equivalence of the object.&lt;br /&gt;
{{!}}max. 11 characters&lt;br /&gt;
{{!}}[[integer]]&lt;br /&gt;
{{!}}[http://community.secondlife.com/t5/English-Knowledge-Base/Calculating-land-impact/ta-p/974163 Calculating land impact]&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_SERVER_COST|integer|14|c=Gets the server cost of the object.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}Gets the [[Mesh/Mesh_Server_Weight|server cost]] of the object.&lt;br /&gt;
{{!}}max. 15 characters&lt;br /&gt;
{{!}}[[float]]&lt;br /&gt;
{{!}}[[Mesh/Mesh_Server_Weight|Server cost]]&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_STREAMING_COST|integer|15|c=Gets the streaming (download) cost of the object.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}Gets the [[Mesh/Mesh_Streaming_Cost|streaming (download) cost]] of the object.&lt;br /&gt;
{{!}}max. 15 characters&lt;br /&gt;
{{!}}[[float]]&lt;br /&gt;
{{!}}[[Mesh/Mesh_Streaming_Cost|Streaming (download) cost]]&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_PHYSICS_COST|integer|16|c=Gets the physics cost of the object.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}Gets the [[Mesh/Mesh_physics#Physics_Resource_Cost|physics cost]] of the object.&lt;br /&gt;
{{!}}max. 15 characters&lt;br /&gt;
{{!}}[[float]]&lt;br /&gt;
{{!}}[[Mesh/Mesh_physics|Physics cost]]&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_CHARACTER_TIME|integer|17|c=Gets the average CPU time (in seconds) used by the object for navigation, if the object is a pathfinding character.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}Gets the average CPU time (in seconds) used by the object for navigation, if the object is a pathfinding character. Returns 0 for non-characters.&lt;br /&gt;
{{!}}max. 15 characters&lt;br /&gt;
{{!}}[[float]]&lt;br /&gt;
{{!}}[[Viewerhelp:Pathfinding_characters|Pathfinding characters]]&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_ROOT|integer|18|c=Gets the id of the root prim of the object requested.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}Gets the id of the [[Link#Root_Prim|root prim]] of the object requested.&amp;lt;br/&amp;gt;If &#039;&#039;&#039;id&#039;&#039;&#039; is an avatar, returns the id of the [[Link#Root_Prim|root prim]] of the [[Link#Link_Set|linkset]] the avatar is sitting on and linked to (or the avatar&#039;s own id if the avatar is not sitting on an object within the region).&lt;br /&gt;
{{!}}36 characters&lt;br /&gt;
{{!}}[[key]]&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}[[llGetLinkKey]]&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_ATTACHED_POINT|integer|19|c=Gets the attachment point to which the object is attached.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}Gets the attachment point to which the object is attached.&lt;br /&gt;
{{!}}max. 11 characters&lt;br /&gt;
{{!}}[[integer]]&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}[[llGetAttached]]&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_PATHFINDING_TYPE|integer|20|c=Gets the pathfinding setting of the object in the region. It returns an integer matching one of the OPT_* constants.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}Gets the pathfinding setting of the object in the region. It returns an integer matching one of the {{LSLGC|Pathfinding Types|OPT_*}} constants.&lt;br /&gt;
{{!}}max. 11 characters&lt;br /&gt;
{{!}}[[integer]]&lt;br /&gt;
{{!}}[[Pathfinding_Quick_Start_Guide|Pathfinding types]]&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_PHYSICS|integer|21|c=Gets the boolean detailing if physics is enabled or disabled on the object.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}Gets the integer boolean detailing if physics is enabled or disabled on the object.&amp;lt;br/&amp;gt;If &#039;&#039;&#039;id&#039;&#039;&#039; is an {{LSLGC|Avatar|avatar}} or {{LSLGC|Attachment|attachment}}, {{HoverText|0|FALSE aka, Zero}} is returned.&lt;br /&gt;
{{!}}1 character&lt;br /&gt;
{{!}}[[integer]]&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}[[llGetStatus]] [[PRIM_PHYSICS]]&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_PHANTOM|integer|22|c=Gets the boolean detailing if phantom is enabled or disabled on the object.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}Gets the integer boolean detailing if phantom is enabled or disabled on the object.&amp;lt;br/&amp;gt;If &#039;&#039;&#039;id&#039;&#039;&#039; is an {{LSLGC|Avatar|avatar}} or {{LSLGC|Attachment|attachment}}, {{HoverText|0|FALSE aka, Zero}} is returned.&lt;br /&gt;
{{!}}1 character&lt;br /&gt;
{{!}}[[integer]]&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}[[llGetStatus]] [[PRIM_PHANTOM]]&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_TEMP_ON_REZ|integer|23|c=Gets the boolean detailing if temporary is enabled or disabled on the object.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}Gets the integer boolean detailing if temporary is enabled or disabled on the object.&lt;br /&gt;
{{!}}1 character&lt;br /&gt;
{{!}}[[integer]]&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}[[PRIM_TEMP_ON_REZ]]&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_RENDER_WEIGHT|integer|24|c=Gets the avatar&#039;s render weight.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}{{#var:comment}}&amp;lt;br/&amp;gt;If &#039;&#039;&#039;id&#039;&#039;&#039; is an object, {{HoverText|0|FALSE aka, Zero}} is returned.  If &#039;&#039;&#039;id&#039;&#039;&#039; is an avatar whose render weight is unknown to the simulator, -1 is returned.  The maximum render weight reported by the server is 500000.&lt;br /&gt;
{{!}}max. 6 characters&lt;br /&gt;
{{!}}[[integer]]&lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} [[Avatar_Rendering_Cost]]&lt;br /&gt;
{{!}}}&lt;/div&gt;</summary>
		<author><name>Kireji Haiku</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Template:LSL_Constants/Object_Details&amp;diff=1187401</id>
		<title>Template:LSL Constants/Object Details</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Template:LSL_Constants/Object_Details&amp;diff=1187401"/>
		<updated>2014-01-31T08:39:31Z</updated>

		<summary type="html">&lt;p&gt;Kireji Haiku: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{{!}} class=&amp;quot;sortable&amp;quot; {{Prettytable|style=margin-top:0;}}&lt;br /&gt;
{{!}}-{{Hl2}}&lt;br /&gt;
! {{!}} Flags&lt;br /&gt;
! title=&amp;quot;Value&amp;quot; {{!}}&lt;br /&gt;
! class=&amp;quot;unsortable&amp;quot;{{!}} Description&lt;br /&gt;
! class=&amp;quot;unsortable&amp;quot;{{!}} Length when [[typecast]] to a string&lt;br /&gt;
! Return&lt;br /&gt;
! class=&amp;quot;unsortable&amp;quot;{{!}} Alternatives&lt;br /&gt;
! Local&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_NAME|integer|1|c=Gets the prim&#039;s name.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}{{#var:comment}}&amp;lt;br/&amp;gt;If &#039;&#039;&#039;id&#039;&#039;&#039; is an avatar, the {{LSLGC|Legacy Name}} is returned. &lt;br /&gt;
{{!}}max. 63 characters&lt;br /&gt;
{{!}}[[string]]&lt;br /&gt;
{{!}}&lt;br /&gt;
*[[llKey2Name]]&lt;br /&gt;
*[[llDetectedName]]&lt;br /&gt;
{{!}} [[llGetObjectName]]&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_DESC|integer|2|c=Gets the prim&#039;s description.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}{{#var:comment}}&amp;lt;br/&amp;gt;If &#039;&#039;&#039;id&#039;&#039;&#039; is an avatar, an empty string is returned.&lt;br /&gt;
{{!}}max. 127 characters&lt;br /&gt;
{{!}}[[string]]&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}} [[llGetObjectDesc]]&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_POS|integer|3|c=Gets the prim&#039;s position in region coordinates.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}Gets the prim&#039;s position in [[Viewer_coordinate_frames#Region|region coordinates]].&amp;lt;br/&amp;gt;If &#039;&#039;&#039;id&#039;&#039;&#039; is an avatar outside the region (see above), this position is relative to the region the script is [[llGetRegionName|running in]].&lt;br /&gt;
{{!}}max. 37 characters&lt;br /&gt;
{{!}}[[vector]]&lt;br /&gt;
{{!}}&lt;br /&gt;
*[[llDetectedPos]]&lt;br /&gt;
{{!}} [[llGetPos]]&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_ROT|integer|4|c=Gets the prim&#039;s rotation.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}{{#var:comment}}&lt;br /&gt;
{{!}}max. 48 characters&lt;br /&gt;
{{!}}[[rotation]]&lt;br /&gt;
{{!}}&lt;br /&gt;
*[[llDetectedRot]]&lt;br /&gt;
{{!}} [[llGetRot]]&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_VELOCITY|integer|5|c=Gets the object&#039;s velocity.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}{{#var:comment}}&lt;br /&gt;
{{!}}36 characters&lt;br /&gt;
{{!}}[[vector]]&lt;br /&gt;
{{!}}&lt;br /&gt;
*[[llDetectedVel]]&lt;br /&gt;
{{!}} [[llGetVel]]&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_OWNER|integer|6|c=Gets the object&#039;s owner key.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}Gets an object&#039;s {{LSLGC|Owner|owner}} key.&amp;lt;br/&amp;gt;If &#039;&#039;&#039;id&#039;&#039;&#039; is an avatar, that avatar&#039;s key is returned (which is the same as &#039;&#039;&#039;id&#039;&#039;&#039;).&amp;lt;br/&amp;gt;If &#039;&#039;&#039;id&#039;&#039;&#039; is group-owned, a {{LSL Constant/NULL_KEY}} is returned.&lt;br /&gt;
{{!}}36 characters&lt;br /&gt;
{{!}}[[key]]&lt;br /&gt;
{{!}}&lt;br /&gt;
*[[llDetectedOwner]]&lt;br /&gt;
*[[llGetOwnerKey]]&lt;br /&gt;
{{!}} [[llGetOwner]]&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_GROUP|integer|7|c=Gets the prim&#039;s group key.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}Gets the prim&#039;s {{LSLGC|Group|group}} key.&amp;lt;br/&amp;gt;If &#039;&#039;&#039;id&#039;&#039;&#039; is an avatar, a {{LSL Constant/NULL_KEY}} is returned.{{Footnote|There are at least 3 JIRA&#039;s about OBJECT_GROUP and avatars, LL has refused all of them. Most recently on December 5th 2013 in BUG-4654.}}&lt;br /&gt;
{{!}}36 characters&lt;br /&gt;
{{!}}[[key]]&lt;br /&gt;
{{!}}{{LSLGC|Group}}&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_CREATOR|integer|8|c=Gets the prim&#039;s creator key.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}Gets the prim&#039;s {{LSLGC|Creator|creator}} key.&amp;lt;br/&amp;gt;If &#039;&#039;&#039;id&#039;&#039;&#039; is an avatar, a {{LSL Constant/NULL_KEY}} is returned.&lt;br /&gt;
{{!}}36 characters&lt;br /&gt;
{{!}}[[key]]&lt;br /&gt;
{{!}}{{LSLGC|Creator}}&lt;br /&gt;
{{!}} [[llGetCreator]]&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_RUNNING_SCRIPT_COUNT|integer|9|c=Gets the number of running scripts attached to the object or agent.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}Gets the number of [[llGetScriptState|running]] scripts attached to the object or agent.&lt;br /&gt;
{{!}}max. 11 characters&lt;br /&gt;
{{!}}[[integer]]&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}[[llGetScriptState]]&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_TOTAL_SCRIPT_COUNT|integer|10|c=Gets the number of scripts, both running and stopped, attached to the object or agent.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}Gets the number of scripts, both running and stopped, attached to the object or agent.&lt;br /&gt;
{{!}}max. 11 characters&lt;br /&gt;
{{!}}[[integer]]&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}[[llGetInventoryNumber]]&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_SCRIPT_MEMORY|integer|11|c=Gets the total amount of script memory allocated to the object or agent, in bytes.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}Gets the total amount of [[LSL Script Memory|script memory]] allocated to the object or agent, in bytes.&lt;br /&gt;
{{!}}max. 11 characters&lt;br /&gt;
{{!}}[[integer]]&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_SCRIPT_TIME|integer|12|c=Gets the total amount of average script CPU time used by the object or agent, in seconds.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}Gets the total amount of average script CPU time used by the object or agent, in seconds.&lt;br /&gt;
{{!}}max. 15 characters&lt;br /&gt;
{{!}}[[float]]&lt;br /&gt;
{{!}}[[Viewerhelp:Top_Colliders_and_Top_Scripts|Top Scripts]]&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_PRIM_EQUIVALENCE|integer|13|c=Gets the prim equivalence of the object.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}Gets the prim equivalence of the object.&lt;br /&gt;
{{!}}max. 11 characters&lt;br /&gt;
{{!}}[[integer]]&lt;br /&gt;
{{!}}[http://community.secondlife.com/t5/English-Knowledge-Base/Calculating-land-impact/ta-p/974163 Calculating land impact]&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_SERVER_COST|integer|14|c=Gets the server cost of the object.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}Gets the [[Mesh/Mesh_Server_Weight|server cost]] of the object.&lt;br /&gt;
{{!}}max. 15 characters&lt;br /&gt;
{{!}}[[float]]&lt;br /&gt;
{{!}}[[Mesh/Mesh_Server_Weight|Server cost]]&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_STREAMING_COST|integer|15|c=Gets the streaming (download) cost of the object.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}Gets the [[Mesh/Mesh_Streaming_Cost|streaming (download) cost]] of the object.&lt;br /&gt;
{{!}}max. 15 characters&lt;br /&gt;
{{!}}[[float]]&lt;br /&gt;
{{!}}[[Mesh/Mesh_Streaming_Cost|Streaming (download) cost]]&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_PHYSICS_COST|integer|16|c=Gets the physics cost of the object.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}Gets the [[Mesh/Mesh_physics#Physics_Resource_Cost|physics cost]] of the object.&lt;br /&gt;
{{!}}max. 15 characters&lt;br /&gt;
{{!}}[[float]]&lt;br /&gt;
{{!}}[[Mesh/Mesh_physics|Physics cost]]&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_CHARACTER_TIME|integer|17|c=Gets the average CPU time (in seconds) used by the object for navigation, if the object is a pathfinding character.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}Gets the average CPU time (in seconds) used by the object for navigation, if the object is a pathfinding character. Returns 0 for non-characters.&lt;br /&gt;
{{!}}max. 15 characters&lt;br /&gt;
{{!}}[[float]]&lt;br /&gt;
{{!}}[[Viewerhelp:Pathfinding_characters|Pathfinding characters]]&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_ROOT|integer|18|c=Gets the id of the root prim of the object requested.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}Gets the id of the [[Link#Root_Prim|root prim]] of the object requested.&amp;lt;br/&amp;gt;If &#039;&#039;&#039;id&#039;&#039;&#039; is an avatar, returns the id of the [[Link#Root_Prim|root prim]] of the [[Link#Link_Set|linkset]] the avatar is sitting on and linked to (or the avatar&#039;s own id if the avatar is not sitting on an object within the region).&lt;br /&gt;
{{!}}36 characters&lt;br /&gt;
{{!}}[[key]]&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}[[llGetLinkKey]]&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_ATTACHED_POINT|integer|19|c=Gets the attachment point to which the object is attached.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}Gets the attachment point to which the object is attached.&lt;br /&gt;
{{!}}max. 11 characters&lt;br /&gt;
{{!}}[[integer]]&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}[[llGetAttached]]&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_PATHFINDING_TYPE|integer|20|c=Gets the pathfinding setting of the object in the region. It returns an integer matching one of the OPT_* constants.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}Gets the pathfinding setting of the object in the region. It returns an integer matching one of the {{LSLGC|Pathfinding Types|OPT_*}} constants.&lt;br /&gt;
{{!}}max. 11 characters&lt;br /&gt;
{{!}}[[integer]]&lt;br /&gt;
{{!}}[[Pathfinding_Quick_Start_Guide|Pathfinding types]]&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_PHYSICS|integer|21|c=Gets the boolean detailing if physics is enabled or disabled on the object.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}Gets the integer boolean detailing if physics is enabled or disabled on the object.&amp;lt;br/&amp;gt;If &#039;&#039;&#039;id&#039;&#039;&#039; is an {{LSLGC|Avatar|avatar}} or {{LSLGC|Attachment|attachment}}, {{HoverText|0|FALSE aka, Zero}} is returned.&lt;br /&gt;
{{!}}1 character&lt;br /&gt;
{{!}}[[integer]]&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}[[llGetStatus]] [[PRIM_PHYSICS]]&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_PHANTOM|integer|22|c=Gets the boolean detailing if phantom is enabled or disabled on the object.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}Gets the integer boolean detailing if phantom is enabled or disabled on the object.&amp;lt;br/&amp;gt;If &#039;&#039;&#039;id&#039;&#039;&#039; is an {{LSLGC|Avatar|avatar}} or {{LSLGC|Attachment|attachment}}, {{HoverText|0|FALSE aka, Zero}} is returned.&lt;br /&gt;
{{!}}1 character&lt;br /&gt;
{{!}}[[integer]]&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}[[llGetStatus]] [[PRIM_PHANTOM]]&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_TEMP_ON_REZ|integer|23|c=Gets the boolean detailing if temporary is enabled or disabled on the object.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}Gets the integer boolean detailing if temporary is enabled or disabled on the object.&lt;br /&gt;
{{!}}1 character&lt;br /&gt;
{{!}}[[integer]]&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}[[PRIM_TEMP_ON_REZ]]&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}{{LSL Const|OBJECT_RENDER_WEIGHT|integer|24|c=Gets the avatar&#039;s render weight.}}&lt;br /&gt;
{{!}}{{#var:value}}&lt;br /&gt;
{{!}}{{#var:comment}}&amp;lt;br/&amp;gt;If &#039;&#039;&#039;id&#039;&#039;&#039; is an object, {{HoverText|0|FALSE aka, Zero}} is returned.  If &#039;&#039;&#039;id&#039;&#039;&#039; is an avatar whose render weight is unknown to the simulator, -1 is returned.  The maximum render weight reported by the server is 500000.&lt;br /&gt;
{{!}}max. 6 characters&lt;br /&gt;
{{!}}[[integer]]&lt;br /&gt;
{{!}} &lt;br /&gt;
{{!}} [[Avatar_Rendering_Cost]]&lt;br /&gt;
{{!}}}&lt;/div&gt;</summary>
		<author><name>Kireji Haiku</name></author>
	</entry>
</feed>