summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xautobuild.xml16
-rwxr-xr-xdoc/contributions.txt14
-rwxr-xr-xindra/cmake/GStreamer010Plugin.cmake4
-rwxr-xr-xindra/cmake/LLPrimitive.cmake15
-rwxr-xr-xindra/llui/llkeywords.cpp516
-rwxr-xr-xindra/llui/llkeywords.h93
-rwxr-xr-xindra/llui/lltexteditor.cpp34
-rwxr-xr-xindra/llui/lltexteditor.h43
-rwxr-xr-xindra/newview/CMakeLists.txt8
-rwxr-xr-xindra/newview/app_settings/keywords.ini755
-rwxr-xr-xindra/newview/app_settings/keywords_lsl_default.xml18256
-rwxr-xr-xindra/newview/app_settings/llsd-lsl-syntax.rng390
-rwxr-xr-xindra/newview/llfloaterbulkpermission.cpp2
-rwxr-xr-xindra/newview/llpreviewscript.cpp130
-rwxr-xr-xindra/newview/llpreviewscript.h3
-rw-r--r--indra/newview/llsyntaxid.cpp415
-rw-r--r--indra/newview/llsyntaxid.h143
-rwxr-xr-xindra/newview/llviewerregion.cpp1
-rwxr-xr-xindra/newview/skins/default/colors.xml59
-rwxr-xr-xindra/newview/skins/default/xui/en/panel_script_ed.xml2
20 files changed, 19813 insertions, 1086 deletions
diff --git a/autobuild.xml b/autobuild.xml
index 6226c2137b..6b3e1ad788 100755
--- a/autobuild.xml
+++ b/autobuild.xml
@@ -1251,14 +1251,14 @@
</map>
</map>
</map>
- <key>libxml</key>
+ <key>libxml2</key>
<map>
<key>license</key>
<string>mit</string>
<key>license_file</key>
- <string>LICENSES/libxml.txt</string>
+ <string>LICENSES/libxml2.txt</string>
<key>name</key>
- <string>libxml</string>
+ <string>libxml2</string>
<key>platforms</key>
<map>
<key>linux</key>
@@ -1266,9 +1266,9 @@
<key>archive</key>
<map>
<key>hash</key>
- <string>6414642528f42dac1cd9a012c99cd748</string>
+ <string>fd34e3e818ad7dd26add1f05e6069c11</string>
<key>url</key>
- <string>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/libxml-2.6.24-linux-20101013.tar.bz2</string>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-libxml/rev/282218/arch/Linux/installer/libxml2-2.7.8-linux-20131009.tar.bz2</string>
</map>
<key>name</key>
<string>linux</string>
@@ -2321,7 +2321,7 @@
<string>make</string>
<key>options</key>
<array>
- <string>-j 2</string>
+ <string>-j 7</string>
</array>
</map>
<key>configure</key>
@@ -2371,7 +2371,7 @@
<string>make</string>
<key>options</key>
<array>
- <string>-j 2</string>
+ <string>-j 7</string>
</array>
</map>
<key>configure</key>
@@ -2419,7 +2419,7 @@
<string>make</string>
<key>options</key>
<array>
- <string>-j 2</string>
+ <string>-j 7</string>
</array>
</map>
<key>configure</key>
diff --git a/doc/contributions.txt b/doc/contributions.txt
index 89390d9977..71e334eb75 100755
--- a/doc/contributions.txt
+++ b/doc/contributions.txt
@@ -313,7 +313,7 @@ Cinder Roxley
BUG-3863
OPEN-185
STORM-1703
- STORM-1948
+ STORM-1948
STORM-1888
STORM-1958
STORM-1952
@@ -519,8 +519,16 @@ Ima Mechanique
STORM-959
STORM-1175
STORM-1708
+ STORM-1831
+ STORM-1832
STORM-1855
+ VWR-10791
VWR-20553
+ VWR-19213
+ VWR-22401
+ VWR-23739
+ VWR-24766
+ VWR-28065
Imnotgoing Sideways
Inma Rau
Innula Zenovka
@@ -1417,7 +1425,3 @@ Zipherius Turas
VWR-77
Zoex Flanagan
-
-
-
-
diff --git a/indra/cmake/GStreamer010Plugin.cmake b/indra/cmake/GStreamer010Plugin.cmake
index d2d0699bcd..d1c99d5409 100755
--- a/indra/cmake/GStreamer010Plugin.cmake
+++ b/indra/cmake/GStreamer010Plugin.cmake
@@ -8,8 +8,8 @@ if (STANDALONE)
pkg_check_modules(GSTREAMER010_PLUGINS_BASE REQUIRED gstreamer-plugins-base-0.10)
elseif (LINUX)
use_prebuilt_binary(gstreamer)
- # possible libxml should have its own .cmake file instead
- use_prebuilt_binary(libxml)
+ # possible libxml2 should have its own .cmake file instead
+ use_prebuilt_binary(libxml2)
set(GSTREAMER010_FOUND ON FORCE BOOL)
set(GSTREAMER010_PLUGINS_BASE_FOUND ON FORCE BOOL)
set(GSTREAMER010_INCLUDE_DIRS
diff --git a/indra/cmake/LLPrimitive.cmake b/indra/cmake/LLPrimitive.cmake
index 0d87ff579a..67c2115237 100755
--- a/indra/cmake/LLPrimitive.cmake
+++ b/indra/cmake/LLPrimitive.cmake
@@ -6,21 +6,30 @@ include(Boost)
use_prebuilt_binary(colladadom)
use_prebuilt_binary(pcre)
-use_prebuilt_binary(libxml)
set(LLPRIMITIVE_INCLUDE_DIRS
${LIBS_OPEN_DIR}/llprimitive
)
if (WINDOWS)
- set(LLPRIMITIVE_LIBRARIES
+ set(LLPRIMITIVE_LIBRARIES
debug llprimitive
optimized llprimitive
debug libcollada14dom22-d
optimized libcollada14dom22
${BOOST_SYSTEM_LIBRARIES}
)
+elseif (LINUX)
+ use_prebuilt_binary(libxml2)
+ set(LLPRIMITIVE_LIBRARIES
+ llprimitive
+ collada14dom
+ minizip
+ xml2
+ pcrecpp
+ pcre
+ )
else (WINDOWS)
- set(LLPRIMITIVE_LIBRARIES
+ set(LLPRIMITIVE_LIBRARIES
llprimitive
collada14dom
minizip
diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index 26d27d1f34..c5e8f76a73 100755
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -1,25 +1,25 @@
-/**
+/**
* @file llkeywords.cpp
* @brief Keyword list for LSL
*
* $LicenseInfo:firstyear=2000&license=viewerlgpl$
* Second Life Viewer Source Code
* Copyright (C) 2010, Linden Research, Inc.
- *
+ *
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License only.
- *
+ *
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
+ *
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -30,16 +30,14 @@
#include <fstream>
#include "llkeywords.h"
+#include "llsdserialize.h"
#include "lltexteditor.h"
#include "llstl.h"
-#include <boost/tokenizer.hpp>
-const U32 KEYWORD_FILE_CURRENT_VERSION = 2;
-
-inline BOOL LLKeywordToken::isHead(const llwchar* s) const
+inline bool LLKeywordToken::isHead(const llwchar* s) const
{
// strncmp is much faster than string compare
- BOOL res = TRUE;
+ bool res = TRUE;
const llwchar* t = mToken.c_str();
S32 len = mToken.size();
for (S32 i=0; i<len; i++)
@@ -53,13 +51,9 @@ inline BOOL LLKeywordToken::isHead(const llwchar* s) const
return res;
}
-LLKeywords::LLKeywords() : mLoaded(FALSE)
+inline bool LLKeywordToken::isTail(const llwchar* s) const
{
-}
-
-inline BOOL LLKeywordToken::isTail(const llwchar* s) const
-{
- BOOL res = TRUE;
+ bool res = TRUE;
const llwchar* t = mDelimiter.c_str();
S32 len = mDelimiter.size();
for (S32 i=0; i<len; i++)
@@ -73,6 +67,8 @@ inline BOOL LLKeywordToken::isTail(const llwchar* s) const
return res;
}
+LLKeywords::LLKeywords() { }
+
LLKeywords::~LLKeywords()
{
std::for_each(mWordTokenMap.begin(), mWordTokenMap.end(), DeletePairedPointer());
@@ -80,180 +76,342 @@ LLKeywords::~LLKeywords()
std::for_each(mDelimiterTokenList.begin(), mDelimiterTokenList.end(), DeletePointer());
}
-BOOL LLKeywords::loadFromFile( const std::string& filename )
+void LLKeywords::addColorGroup(const std::string key_in, const LLColor4 color)
{
- mLoaded = FALSE;
-
- ////////////////////////////////////////////////////////////
- // File header
-
- const S32 BUFFER_SIZE = 1024;
- char buffer[BUFFER_SIZE]; /* Flawfinder: ignore */
+ WStringMapIndex key ( utf8str_to_wstring(key_in) );
+ mColorGroupMap[key] = color;
+}
- llifstream file;
- file.open(filename); /* Flawfinder: ignore */
- if( file.fail() )
+// Add the token as described
+void LLKeywords::addToken(LLKeywordToken::TOKEN_TYPE type,
+ const std::string& key_in,
+ const LLColor4& color,
+ const std::string& tool_tip_in,
+ const std::string& delimiter_in)
+{
+ std::string tip_text = tool_tip_in;
+ LLStringUtil::replaceString(tip_text, "\\n", "\n" );
+ LLStringUtil::replaceString(tip_text, "\t", " " );
+ if (tip_text == "")
{
- llinfos << "LLKeywords::loadFromFile() Unable to open file: " << filename << llendl;
- return mLoaded;
+ tip_text = "[no info]";
}
+ LLWString tool_tip = utf8str_to_wstring(tip_text);
- // Identifying string
- file >> buffer;
- if( strcmp( buffer, "llkeywords" ) )
+ LLWString key = utf8str_to_wstring(key_in);
+ LLWString delimiter = utf8str_to_wstring(delimiter_in);
+ switch(type)
{
- llinfos << filename << " does not appear to be a keyword file" << llendl;
- return mLoaded;
- }
+ case LLKeywordToken::TT_CONSTANT:
+ case LLKeywordToken::TT_CONTROL:
+ case LLKeywordToken::TT_EVENT:
+ case LLKeywordToken::TT_FUNCTION:
+ case LLKeywordToken::TT_LABEL:
+ case LLKeywordToken::TT_SECTION:
+ case LLKeywordToken::TT_TYPE:
+ case LLKeywordToken::TT_WORD:
+ mWordTokenMap[key] = new LLKeywordToken(type, color, key, tool_tip, LLWStringUtil::null);
+ break;
- // Check file version
- file >> buffer;
- U32 version_num;
- file >> version_num;
- if( strcmp(buffer, "version") || version_num != (U32)KEYWORD_FILE_CURRENT_VERSION )
- {
- llinfos << filename << " does not appear to be a version " << KEYWORD_FILE_CURRENT_VERSION << " keyword file" << llendl;
- return mLoaded;
- }
+ case LLKeywordToken::TT_LINE:
+ mLineTokenList.push_front(new LLKeywordToken(type, color, key, tool_tip, LLWStringUtil::null));
+ break;
- // start of line (SOL)
- std::string SOL_COMMENT("#");
- std::string SOL_WORD("[word ");
- std::string SOL_LINE("[line ");
- std::string SOL_ONE_SIDED_DELIMITER("[one_sided_delimiter ");
- std::string SOL_TWO_SIDED_DELIMITER("[two_sided_delimiter ");
- std::string SOL_DOUBLE_QUOTATION_MARKS("[double_quotation_marks ");
+ case LLKeywordToken::TT_TWO_SIDED_DELIMITER:
+ case LLKeywordToken::TT_DOUBLE_QUOTATION_MARKS:
+ case LLKeywordToken::TT_ONE_SIDED_DELIMITER:
+ mDelimiterTokenList.push_front(new LLKeywordToken(type, color, key, tool_tip, delimiter));
+ break;
- LLColor3 cur_color( 1, 0, 0 );
- LLKeywordToken::TOKEN_TYPE cur_type = LLKeywordToken::WORD;
+ default:
+ llassert(0);
+ }
+}
- while (!file.eof())
- {
- buffer[0] = 0;
- file.getline( buffer, BUFFER_SIZE );
- std::string line(buffer);
- if( line.find(SOL_COMMENT) == 0 )
- {
- continue;
- }
- else if( line.find(SOL_WORD) == 0 )
- {
- cur_color = readColor( line.substr(SOL_WORD.size()) );
- cur_type = LLKeywordToken::WORD;
- continue;
- }
- else if( line.find(SOL_LINE) == 0 )
- {
- cur_color = readColor( line.substr(SOL_LINE.size()) );
- cur_type = LLKeywordToken::LINE;
- continue;
- }
- else if( line.find(SOL_TWO_SIDED_DELIMITER) == 0 )
- {
- cur_color = readColor( line.substr(SOL_TWO_SIDED_DELIMITER.size()) );
- cur_type = LLKeywordToken::TWO_SIDED_DELIMITER;
- continue;
- }
- else if( line.find(SOL_DOUBLE_QUOTATION_MARKS) == 0 )
- {
- cur_color = readColor( line.substr(SOL_DOUBLE_QUOTATION_MARKS.size()) );
- cur_type = LLKeywordToken::DOUBLE_QUOTATION_MARKS;
- continue;
- }
- else if( line.find(SOL_ONE_SIDED_DELIMITER) == 0 )
- {
- cur_color = readColor( line.substr(SOL_ONE_SIDED_DELIMITER.size()) );
- cur_type = LLKeywordToken::ONE_SIDED_DELIMITER;
- continue;
- }
+void LLKeywords::clear()
+{
+ clearLoaded();
+ mSyntax = LLSD();
+
+ std::for_each(mWordTokenMap.begin(), mWordTokenMap.end(), DeletePairedPointer());
+ std::for_each(mLineTokenList.begin(), mLineTokenList.end(), DeletePointer());
+ std::for_each(mDelimiterTokenList.begin(), mDelimiterTokenList.end(), DeletePointer());
+}
- std::string token_buffer( line );
- LLStringUtil::trim(token_buffer);
-
- typedef boost::tokenizer<boost::char_separator<char> > tokenizer;
- boost::char_separator<char> sep_word("", " \t");
- tokenizer word_tokens(token_buffer, sep_word);
- tokenizer::iterator token_word_iter = word_tokens.begin();
+std::string LLKeywords::getArguments(LLSD& arguments)
+{
+ std::string argString = "";
- if( !token_buffer.empty() && token_word_iter != word_tokens.end() )
+ if (arguments.isArray())
+ {
+ U32 argsCount = arguments.size();
+ LLSD::array_iterator arrayIt = arguments.beginArray();
+ for ( ; arrayIt != arguments.endArray(); ++arrayIt)
{
- // first word is the keyword or a left delimiter
- std::string keyword = (*token_word_iter);
- LLStringUtil::trim(keyword);
-
- // second word may be a right delimiter
- std::string delimiter;
- if (cur_type == LLKeywordToken::TWO_SIDED_DELIMITER)
+ LLSD& args = (*arrayIt);
+ if (args.isMap())
{
- while (delimiter.length() == 0 && ++token_word_iter != word_tokens.end())
+ LLSD::map_iterator argsIt = args.beginMap();
+ for ( ; argsIt != args.endMap(); ++argsIt)
{
- delimiter = *token_word_iter;
- LLStringUtil::trim(delimiter);
+ argString += argsIt->second.get("type").asString() + " " + argsIt->first;
+ if (argsCount-- > 1)
+ {
+ argString += ", ";
+ }
}
}
- else if (cur_type == LLKeywordToken::DOUBLE_QUOTATION_MARKS)
+ else
{
- // Closing delimiter is identical to the opening one.
- delimiter = keyword;
+ LL_INFOS("SyntaxLSL")
+ << "Argument array does not comtain a map element!" << LL_ENDL;
}
+ }
+ }
+ else if (!arguments.isUndefined())
+ {
+ LL_WARNS("SyntaxLSL")
+ << "Not an array! Invalid arguments LLSD passed to function." << arguments << LL_ENDL;
+ }
+ return argString == "" ? "" : argString;
+}
- // following words are tooltip
- std::string tool_tip;
- while (++token_word_iter != word_tokens.end())
- {
- tool_tip += (*token_word_iter);
- }
- LLStringUtil::trim(tool_tip);
-
- if( !tool_tip.empty() )
+std::string LLKeywords::getAttribute(const std::string& key)
+{
+ attribute_iterator_t it = mAttributes.find(key);
+ return (it != mAttributes.end()) ? it->second : "";
+}
+
+LLColor4 LLKeywords::getColorGroup(const std::string key_in)
+{
+ std::string ColourGroup = "Black";
+ if (key_in == "constants-float")
+ {
+ ColourGroup = "SyntaxLslConstantFloat";
+ }
+ else if (key_in == "constants-integer")
+ {
+ ColourGroup = "SyntaxLslConstantInteger";
+ }
+ else if (key_in == "constants-key")
+ {
+ ColourGroup = "SyntaxLslConstantKey";
+ }
+ else if (key_in == "constants-string")
+ {
+ ColourGroup = "SyntaxLslConstantRotation";
+ }
+ else if (key_in == "constants-string")
+ {
+ ColourGroup = "SyntaxLslConstantString";
+ }
+ else if (key_in == "constants-vector")
+ {
+ ColourGroup = "SyntaxLslConstantVector";
+ }
+ else if (key_in == "controls")
+ {
+ ColourGroup = "SyntaxLslControlFlow";
+ }
+ else if (key_in =="deprecated")
+ {
+ ColourGroup = "SyntaxLslDeprecated";
+ }
+ else if (key_in == "events")
+ {
+ ColourGroup = "SyntaxLslEvent";
+ }
+ else if (key_in == "functions")
+ {
+ ColourGroup = "SyntaxLslFunction";
+ }
+ else if (key_in =="god-mode")
+ {
+ ColourGroup = "SyntaxLslGodMode";
+ }
+ else if (key_in == "types")
+ {
+ ColourGroup = "SyntaxLslDataType";
+ }
+ else if (key_in == "sections")
+ {
+ ColourGroup = "SyntaxLslSection";
+ }
+ else if (key_in == "misc-double_quotation_marks")
+ {
+ ColourGroup = "SyntaxLslStringLiteral";
+ }
+ else if (key_in == "misc-comments_1_sided")
+ {
+ ColourGroup = "SyntaxLslComment1Sided";
+ }
+ else if (key_in == "misc-comments_2_sided")
+ {
+ ColourGroup = "SyntaxLslComment2Sided";
+ }
+
+ return LLUIColorTable::instance().getColor(ColourGroup);
+}
+
+void LLKeywords::initialise(LLSD SyntaxXML)
+{
+ mSyntax = SyntaxXML;
+ mLoaded = TRUE;
+}
+
+void LLKeywords::processTokens()
+{
+ // Add 'standard' stuff: Quotes, Comments, Strings, Labels, etc. before processing the LLSD
+ std::string delimiter;
+ addToken(LLKeywordToken::TT_LABEL, "@", getColorGroup("misc-flow-label"), "Label\nTarget for jump statement", delimiter );
+ addToken(LLKeywordToken::TT_ONE_SIDED_DELIMITER, "//", getColorGroup("misc-comments_1_sided"), "Comment (single-line)\nNon-functional commentary or disabled code", delimiter );
+ addToken(LLKeywordToken::TT_TWO_SIDED_DELIMITER, "/*", getColorGroup("misc-comments_2_sided"), "Comment (multi-line)\nNon-functional commentary or disabled code", "*/" );
+ addToken(LLKeywordToken::TT_DOUBLE_QUOTATION_MARKS, "\"", getColorGroup("misc-double_quotation_marks"), "String literal", "\"" );
+
+ LLSD::map_iterator outerIt = mSyntax.beginMap();
+ for ( ; outerIt != mSyntax.endMap(); ++outerIt)
+ {
+ if (outerIt->first == "llsd-lsl-syntax-version")
+ {
+ LL_INFOS("SyntaxLSL") << "Skipping over version key." << LL_ENDL;
+ }
+ else
+ {
+ if (outerIt->second.isMap())
{
- // Replace : with \n for multi-line tool tips.
- LLStringUtil::replaceChar( tool_tip, ':', '\n' );
- addToken(cur_type, keyword, cur_color, tool_tip, delimiter );
+ processTokensGroup(outerIt->second, outerIt->first);
}
else
{
- addToken(cur_type, keyword, cur_color, LLStringUtil::null, delimiter );
+ LL_ERRS("LSL-Tokens-Processing") << "Map for " + outerIt->first + " entries is missing! Ignoring." << LL_ENDL;
}
}
}
-
- file.close();
-
- mLoaded = TRUE;
- return mLoaded;
+ LL_INFOS("SyntaxLSL") << "Finished processing tokens." << LL_ENDL;
}
-// Add the token as described
-void LLKeywords::addToken(LLKeywordToken::TOKEN_TYPE type,
- const std::string& key_in,
- const LLColor3& color,
- const std::string& tool_tip_in,
- const std::string& delimiter_in)
+void LLKeywords::processTokensGroup(LLSD& Tokens, const std::string Group)
{
- LLWString key = utf8str_to_wstring(key_in);
- LLWString tool_tip = utf8str_to_wstring(tool_tip_in);
- LLWString delimiter = utf8str_to_wstring(delimiter_in);
- switch(type)
+ LLColor4 Color;
+ LLColor4 ColorGroup;
+ LLColor4 ColorDeprecated = getColorGroup("deprecated");
+ LLColor4 ColorGM = getColorGroup("god-mode");
+
+ LLKeywordToken::TOKEN_TYPE token_type = LLKeywordToken::TT_UNKNOWN;
+ // If a new token type is added here, it must also be added to the 'addToken' method
+ if (Group == "constants")
{
- case LLKeywordToken::WORD:
- mWordTokenMap[key] = new LLKeywordToken(type, color, key, tool_tip, LLWStringUtil::null);
- break;
+ token_type = LLKeywordToken::TT_CONSTANT;
+ }
+ else if (Group == "controls")
+ {
+ token_type = LLKeywordToken::TT_CONTROL;
+ }
+ else if (Group == "events")
+ {
+ token_type = LLKeywordToken::TT_EVENT;
+ }
+ else if (Group == "functions")
+ {
+ token_type = LLKeywordToken::TT_FUNCTION;
+ }
+ else if (Group == "label")
+ {
+ token_type = LLKeywordToken::TT_LABEL;
+ }
+ else if (Group == "types")
+ {
+ token_type = LLKeywordToken::TT_TYPE;
+ }
- case LLKeywordToken::LINE:
- mLineTokenList.push_front(new LLKeywordToken(type, color, key, tool_tip, LLWStringUtil::null));
- break;
+ ColorGroup = getColorGroup(Group);
+ LL_INFOS("Tokens") << "Group: '" << Group << "', using colour: '" << ColorGroup << "'" << LL_ENDL;
- case LLKeywordToken::TWO_SIDED_DELIMITER:
- case LLKeywordToken::DOUBLE_QUOTATION_MARKS:
- case LLKeywordToken::ONE_SIDED_DELIMITER:
- mDelimiterTokenList.push_front(new LLKeywordToken(type, color, key, tool_tip, delimiter));
- break;
+ if (Tokens.isMap())
+ {
+ LLSD::map_iterator outerIt = Tokens.beginMap();
+ for ( ; outerIt != Tokens.endMap(); ++outerIt)
+ {
+ if (outerIt->second.isMap())
+ {
+ Color = ColorGroup;
+ mAttributes.clear();
+ LLSD arguments = LLSD ();
+ LLSD::map_iterator innerIt = outerIt->second.beginMap();
+ for ( ; innerIt != outerIt->second.endMap(); ++innerIt)
+ {
+ if (innerIt->first == "arguments")
+ {
+ if (innerIt->second.isArray())
+ {
+ arguments = innerIt->second;
+ }
+ }
+ else if (!innerIt->second.isMap() && !innerIt->second.isArray())
+ {
+ mAttributes[innerIt->first] = innerIt->second.asString();
+ }
+ else
+ {
+ LL_ERRS("SyntaxLSL") << "Not a valid attribute" << LL_ENDL;
+ }
+ }
- default:
- llassert(0);
+ std::string tooltip = "";
+ if (token_type == LLKeywordToken::TT_CONSTANT)
+ {
+ Color = getColorGroup(Group + "-" + getAttribute("type"));
+ tooltip = "Type: " + getAttribute("type") + ", Value: " + getAttribute("value");
+ }
+ else if (token_type == LLKeywordToken::TT_EVENT)
+ {
+ tooltip = outerIt->first + "(" + getArguments(arguments) + ")";
+ }
+ else if (token_type == LLKeywordToken::TT_FUNCTION)
+ {
+ tooltip = getAttribute("return") + " " + outerIt->first + "(" + getArguments(arguments) + ");";
+ tooltip += "\nEnergy: ";
+ tooltip += getAttribute("energy") == "" ? "0.0" : getAttribute("energy");
+ if (getAttribute("sleep") != "")
+ {
+ tooltip += ", Sleep: " + getAttribute("sleep");
+ }
+ }
+
+ if (getAttribute("tooltip") != "")
+ {
+ if (tooltip != "")
+ {
+ tooltip += "\n";
+ }
+ tooltip += getAttribute("tooltip");
+ }
+
+ Color = getAttribute("deprecated") == "true" ? ColorDeprecated : ColorGroup;
+
+ if (getAttribute("god-mode") == "true")
+ {
+ Color = ColorGM;
+ }
+
+ addToken(token_type, outerIt->first, Color, tooltip);
+ }
+ }
+ }
+ else if (Tokens.isArray()) // Currently nothing should need this, but it's here for completeness
+ {
+ LL_INFOS("SyntaxLSL") << "Curious, shouldn't be an array here" << LL_ENDL;
+ for (int count = 0; count < Tokens.size(); ++count)
+ {
+ addToken(token_type, Tokens[count], Color, "");
+ }
+ }
+ else
+ {
+ LL_INFOS("Tokens") << "Invalid map/array passed: '" << Tokens << "'" << LL_ENDL;
}
}
+
LLKeywords::WStringMapIndex::WStringMapIndex(const WStringMapIndex& other)
{
if(other.mOwner)
@@ -298,13 +456,13 @@ bool LLKeywords::WStringMapIndex::operator<(const LLKeywords::WStringMapIndex &o
{
// NOTE: Since this is only used to organize a std::map, it doesn't matter if it uses correct collate order or not.
// The comparison only needs to strictly order all possible strings, and be stable.
-
+
bool result = false;
const llwchar* self_iter = mData;
const llwchar* self_end = mData + mLength;
const llwchar* other_iter = other.mData;
const llwchar* other_end = other.mData + other.mLength;
-
+
while(true)
{
if(other_iter >= other_end)
@@ -319,7 +477,7 @@ bool LLKeywords::WStringMapIndex::operator<(const LLKeywords::WStringMapIndex &o
{
// self is shorter than other.
result = true;
- break;
+ break;
}
else if(*self_iter != *other_iter)
{
@@ -331,11 +489,11 @@ bool LLKeywords::WStringMapIndex::operator<(const LLKeywords::WStringMapIndex &o
self_iter++;
other_iter++;
}
-
+
return result;
}
-LLColor3 LLKeywords::readColor( const std::string& s )
+LLColor4 LLKeywords::readColor( const std::string& s )
{
F32 r, g, b;
r = g = b = 0.0f;
@@ -344,7 +502,23 @@ LLColor3 LLKeywords::readColor( const std::string& s )
{
llinfos << " poorly formed color in keyword file" << llendl;
}
- return LLColor3( r, g, b );
+ return LLColor4( r, g, b, 1.f);
+}
+
+LLColor4 LLKeywords::readColor(LLSD& sd)
+{
+ if (sd.isArray())
+ {
+ return LLColor4 (sd, 1.f);
+ }
+ else if (sd.isMap())
+ {
+ return LLColor4 ( sd.get("x").asReal(), sd.get("y").asReal(), sd.get("z").asReal(), 1.f );
+ }
+ else
+ {
+ return LLColor4::black;
+ }
}
LLFastTimer::DeclareTimer FTM_SYNTAX_COLORING("Syntax Coloring");
@@ -360,10 +534,10 @@ void LLKeywords::findSegments(std::vector<LLTextSegmentPtr>* seg_list, const LLW
{
return;
}
-
+
S32 text_len = wtext.size() + 1;
- seg_list->push_back( new LLNormalTextSegment( defaultColor, 0, text_len, editor ) );
+ seg_list->push_back( new LLNormalTextSegment( defaultColor, 0, text_len, editor ) );
const llwchar* base = wtext.c_str();
const llwchar* cur = base;
@@ -393,7 +567,7 @@ void LLKeywords::findSegments(std::vector<LLTextSegmentPtr>* seg_list, const LLW
continue;
}
- // cur is now at the first non-whitespace character of a new line
+ // cur is now at the first non-whitespace character of a new line
// Line start tokens
{
@@ -411,7 +585,7 @@ void LLKeywords::findSegments(std::vector<LLTextSegmentPtr>* seg_list, const LLW
cur++;
}
S32 seg_end = cur - base;
-
+
//create segments from seg_start to seg_end
insertSegments(wtext, *seg_list,cur_token, text_len, seg_start, seg_end, defaultColor, editor);
line_done = TRUE; // to break out of second loop.
@@ -456,14 +630,14 @@ void LLKeywords::findSegments(std::vector<LLTextSegmentPtr>* seg_list, const LLW
seg_start = cur - base;
cur += cur_delimiter->getLengthHead();
-
+
LLKeywordToken::TOKEN_TYPE type = cur_delimiter->getType();
- if( type == LLKeywordToken::TWO_SIDED_DELIMITER || type == LLKeywordToken::DOUBLE_QUOTATION_MARKS )
+ if( type == LLKeywordToken::TT_TWO_SIDED_DELIMITER || type == LLKeywordToken::TT_DOUBLE_QUOTATION_MARKS )
{
while( *cur && !cur_delimiter->isTail(cur))
{
// Check for an escape sequence.
- if (type == LLKeywordToken::DOUBLE_QUOTATION_MARKS && *cur == '\\')
+ if (type == LLKeywordToken::TT_DOUBLE_QUOTATION_MARKS && *cur == '\\')
{
// Count the number of backslashes.
S32 num_backslashes = 0;
@@ -510,7 +684,7 @@ void LLKeywords::findSegments(std::vector<LLTextSegmentPtr>* seg_list, const LLW
}
else
{
- llassert( cur_delimiter->getType() == LLKeywordToken::ONE_SIDED_DELIMITER );
+ llassert( cur_delimiter->getType() == LLKeywordToken::TT_ONE_SIDED_DELIMITER );
// Left side is the delimiter. Right side is eol or eof.
while( *cur && ('\n' != *cur) )
{
@@ -556,7 +730,7 @@ void LLKeywords::findSegments(std::vector<LLTextSegmentPtr>* seg_list, const LLW
insertSegments(wtext, *seg_list,cur_token, text_len, seg_start, seg_end, defaultColor, editor);
}
- cur += seg_len;
+ cur += seg_len;
continue;
}
}
@@ -572,7 +746,7 @@ void LLKeywords::findSegments(std::vector<LLTextSegmentPtr>* seg_list, const LLW
void LLKeywords::insertSegments(const LLWString& wtext, std::vector<LLTextSegmentPtr>& seg_list, LLKeywordToken* cur_token, S32 text_len, S32 seg_start, S32 seg_end, const LLColor4 &defaultColor, LLTextEditor& editor )
{
std::string::size_type pos = wtext.find('\n',seg_start);
-
+
while (pos!=-1 && pos < (std::string::size_type)seg_end)
{
if (pos!=seg_start)
@@ -651,7 +825,7 @@ void LLKeywords::dump()
void LLKeywordToken::dump()
{
- llinfos << "[" <<
+ llinfos << "[" <<
mColor.mV[VX] << ", " <<
mColor.mV[VY] << ", " <<
mColor.mV[VZ] << "] [" <<
diff --git a/indra/llui/llkeywords.h b/indra/llui/llkeywords.h
index ac34015393..de7645a5d2 100755
--- a/indra/llui/llkeywords.h
+++ b/indra/llui/llkeywords.h
@@ -1,25 +1,25 @@
-/**
+/**
* @file llkeywords.h
* @brief Keyword list for LSL
*
* $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
* Copyright (C) 2010, Linden Research, Inc.
- *
+ *
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License only.
- *
+ *
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
+ *
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -28,8 +28,10 @@
#define LL_LLKEYWORDS_H
+#include "lldir.h"
#include "llstring.h"
#include "v3color.h"
+#include "v4color.h"
#include <map>
#include <list>
#include <deque>
@@ -41,26 +43,35 @@ typedef LLPointer<LLTextSegment> LLTextSegmentPtr;
class LLKeywordToken
{
public:
- /**
+ /**
* @brief Types of tokens/delimters being parsed.
*
* @desc Tokens/delimiters that need to be identified/highlighted. All are terminated if an EOF is encountered.
- * - WORD are keywords in the normal sense, i.e. constants, events, etc.
- * - LINE are for entire lines (currently only flow control labels use this).
- * - ONE_SIDED_DELIMITER are for open-ended delimiters which are terminated by EOL.
- * - TWO_SIDED_DELIMITER are for delimiters that end with a different delimiter than they open with.
- * - DOUBLE_QUOTATION_MARKS are for delimiting areas using the same delimiter to open and close.
+ * - TT_WORD are keywords in the normal sense, i.e. constants, events, etc.
+ * - TT_LINE are for entire lines (currently only flow control labels use this).
+ * - TT_ONE_SIDED_DELIMITER are for open-ended delimiters which are terminated by EOL.
+ * - TT_TWO_SIDED_DELIMITER are for delimiters that end with a different delimiter than they open with.
+ * - TT_DOUBLE_QUOTATION_MARKS are for delimiting areas using the same delimiter to open and close.
*/
enum TOKEN_TYPE
{
- WORD,
- LINE,
- TWO_SIDED_DELIMITER,
- ONE_SIDED_DELIMITER,
- DOUBLE_QUOTATION_MARKS
+ TT_UNKNOWN,
+ TT_WORD,
+ TT_LINE,
+ TT_TWO_SIDED_DELIMITER,
+ TT_ONE_SIDED_DELIMITER,
+ TT_DOUBLE_QUOTATION_MARKS,
+ // Following constants are more specific versions of the preceding ones
+ TT_CONSTANT, // WORD
+ TT_CONTROL, // WORD
+ TT_EVENT, // WORD
+ TT_FUNCTION, // WORD
+ TT_LABEL, // LINE
+ TT_SECTION, // WORD
+ TT_TYPE // WORD
};
- LLKeywordToken( TOKEN_TYPE type, const LLColor3& color, const LLWString& token, const LLWString& tool_tip, const LLWString& delimiter )
+ LLKeywordToken( TOKEN_TYPE type, const LLColor4& color, const LLWString& token, const LLWString& tool_tip, const LLWString& delimiter )
:
mType( type ),
mToken( token ),
@@ -72,10 +83,10 @@ public:
S32 getLengthHead() const { return mToken.size(); }
S32 getLengthTail() const { return mDelimiter.size(); }
- BOOL isHead(const llwchar* s) const;
- BOOL isTail(const llwchar* s) const;
+ bool isHead(const llwchar* s) const;
+ bool isTail(const llwchar* s) const;
const LLWString& getToken() const { return mToken; }
- const LLColor3& getColor() const { return mColor; }
+ const LLColor4& getColor() const { return mColor; }
TOKEN_TYPE getType() const { return mType; }
const LLWString& getToolTip() const { return mToolTip; }
const LLWString& getDelimiter() const { return mDelimiter; }
@@ -87,7 +98,7 @@ public:
private:
TOKEN_TYPE mType;
LLWString mToken;
- LLColor3 mColor;
+ LLColor4 mColor;
LLWString mToolTip;
LLWString mDelimiter;
};
@@ -98,18 +109,23 @@ public:
LLKeywords();
~LLKeywords();
- BOOL loadFromFile(const std::string& filename);
- BOOL isLoaded() const { return mLoaded; }
+ void addColorGroup(const std::string key_in, const LLColor4 color);
+ void clear();
+ void clearLoaded() { mLoaded = false; }
+ LLColor4 getColorGroup(const std::string key_in);
+ bool isLoaded() const { return mLoaded; }
void findSegments(std::vector<LLTextSegmentPtr> *seg_list, const LLWString& text, const LLColor4 &defaultColor, class LLTextEditor& editor );
+ void initialise(LLSD SyntaxXML);
+ void processTokens();
// Add the token as described
void addToken(LLKeywordToken::TOKEN_TYPE type,
const std::string& key,
- const LLColor3& color,
+ const LLColor4& color,
const std::string& tool_tip = LLStringUtil::null,
const std::string& delimiter = LLStringUtil::null);
-
+
// This class is here as a performance optimization.
// The word token map used to be defined as std::map<LLWString, LLKeywordToken*>.
// This worked, but caused a performance bottleneck due to memory allocation and string copies
@@ -133,6 +149,9 @@ public:
const llwchar *mData;
size_t mLength;
bool mOwner;
+
+
+ LLColor4 mColor;
};
typedef std::map<WStringMapIndex, LLKeywordToken*> word_token_map_t;
@@ -140,20 +159,38 @@ public:
keyword_iterator_t begin() const { return mWordTokenMap.begin(); }
keyword_iterator_t end() const { return mWordTokenMap.end(); }
+ typedef std::map<WStringMapIndex, LLColor4> group_color_map_t;
+ typedef group_color_map_t::const_iterator color_iterator_t;
+ group_color_map_t mColorGroupMap;
+
#ifdef _DEBUG
void dump();
#endif
-private:
- LLColor3 readColor(const std::string& s);
+protected:
+ void processTokensGroup(LLSD& Tokens, const std::string Group);
+ LLColor4 readColor(const std::string& s);
+ LLColor4 readColor(LLSD& sd);
void insertSegment(std::vector<LLTextSegmentPtr>& seg_list, LLTextSegmentPtr new_segment, S32 text_len, const LLColor4 &defaultColor, class LLTextEditor& editor);
void insertSegments(const LLWString& wtext, std::vector<LLTextSegmentPtr>& seg_list, LLKeywordToken* token, S32 text_len, S32 seg_start, S32 seg_end, const LLColor4 &defaultColor, LLTextEditor& editor);
+ BOOL loadIntoLLSD( const std::string& filename, LLSD& data );
- BOOL mLoaded;
+ LLSD mColors;
+ bool mLoaded;
+ LLSD mSyntax;
word_token_map_t mWordTokenMap;
typedef std::deque<LLKeywordToken*> token_list_t;
token_list_t mLineTokenList;
token_list_t mDelimiterTokenList;
+
+ typedef std::map<std::string, std::string> element_attributes_t;
+ typedef element_attributes_t::const_iterator attribute_iterator_t;
+ element_attributes_t mAttributes;
+ std::string getAttribute(const std::string& key);
+
+ std::string getArguments(LLSD& args);
+
+private:
};
#endif // LL_LLKEYWORDS_H
diff --git a/indra/llui/lltexteditor.cpp b/indra/llui/lltexteditor.cpp
index 62140dd9d6..e11636682e 100755
--- a/indra/llui/lltexteditor.cpp
+++ b/indra/llui/lltexteditor.cpp
@@ -2513,29 +2513,27 @@ BOOL LLTextEditor::tryToRevertToPristineState()
static LLFastTimer::DeclareTimer FTM_SYNTAX_HIGHLIGHTING("Syntax Highlighting");
-void LLTextEditor::loadKeywords(const std::string& filename,
- const std::vector<std::string>& funcs,
- const std::vector<std::string>& tooltips,
- const LLColor3& color)
+void LLTextEditor::loadKeywords()
{
LLFastTimer ft(FTM_SYNTAX_HIGHLIGHTING);
- if(mKeywords.loadFromFile(filename))
+ mKeywords.processTokens();
+
+ segment_vec_t segment_list;
+ mKeywords.findSegments(&segment_list, getWText(), mDefaultColor.get(), *this);
+
+ mSegments.clear();
+ segment_set_t::iterator insert_it = mSegments.begin();
+ for (segment_vec_t::iterator list_it = segment_list.begin(); list_it != segment_list.end(); ++list_it)
{
- S32 count = llmin(funcs.size(), tooltips.size());
- for(S32 i = 0; i < count; i++)
- {
- std::string name = utf8str_trim(funcs[i]);
- mKeywords.addToken(LLKeywordToken::WORD, name, color, tooltips[i] );
- }
- segment_vec_t segment_list;
- mKeywords.findSegments(&segment_list, getWText(), mDefaultColor.get(), *this);
+ insert_it = mSegments.insert(insert_it, *list_it);
+ }
+}
+void LLTextEditor::clearSegments()
+{
+ if (!mSegments.empty())
+ {
mSegments.clear();
- segment_set_t::iterator insert_it = mSegments.begin();
- for (segment_vec_t::iterator list_it = segment_list.begin(); list_it != segment_list.end(); ++list_it)
- {
- insert_it = mSegments.insert(insert_it, *list_it);
- }
}
}
diff --git a/indra/llui/lltexteditor.h b/indra/llui/lltexteditor.h
index d3b7bc0eb7..698153587f 100755
--- a/indra/llui/lltexteditor.h
+++ b/indra/llui/lltexteditor.h
@@ -1,25 +1,25 @@
-/**
+/**
* @file lltexteditor.h
* @brief LLTextEditor base class
*
* $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
* Copyright (C) 2010, Linden Research, Inc.
- *
+ *
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License only.
- *
+ *
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
+ *
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -133,7 +133,7 @@ public:
virtual BOOL canCopy() const;
virtual void paste();
virtual BOOL canPaste() const;
-
+
virtual void updatePrimary();
virtual void copyPrimary();
virtual void pastePrimary();
@@ -151,7 +151,7 @@ public:
void selectNext(const std::string& search_text_in, BOOL case_insensitive, BOOL wrap = TRUE);
BOOL replaceText(const std::string& search_text, const std::string& replace_text, BOOL case_insensitive, BOOL wrap = TRUE);
void replaceTextAll(const std::string& search_text, const std::string& replace_text, BOOL case_insensitive);
-
+
// Undo/redo stack
void blockUndo();
@@ -188,13 +188,14 @@ public:
void getCurrentLineAndColumn( S32* line, S32* col, BOOL include_wordwrap );
- void loadKeywords(const std::string& filename,
- const std::vector<std::string>& funcs,
- const std::vector<std::string>& tooltips,
- const LLColor3& func_color);
+ LLKeywords mKeywords;
+ void loadKeywords();
LLKeywords::keyword_iterator_t keywordsBegin() { return mKeywords.begin(); }
LLKeywords::keyword_iterator_t keywordsEnd() { return mKeywords.end(); }
+ void loadKeywords(const std::string& filename_keywords,
+ const std::string& filename_colors);
+
// Hacky methods to make it into a word-wrapping, potentially scrolling,
// read-only text box.
void setCommitOnFocusLost(BOOL b) { mCommitOnFocusLost = b; }
@@ -206,7 +207,8 @@ public:
const LLUUID& getSourceID() const { return mSourceID; }
const LLTextSegmentPtr getPreviousSegment() const;
- void getSelectedSegments(segment_vec_t& segments) const;
+ void getSelectedSegments(segment_vec_t& segments) const;
+ void clearSegments();
void setShowContextMenu(bool show) { mShowContextMenu = show; }
bool getShowContextMenu() const { return mShowContextMenu; }
@@ -218,7 +220,7 @@ protected:
void drawPreeditMarker();
void assignEmbedded(const std::string &s);
-
+
void removeCharOrTab();
void indentSelectedLines( S32 spaces );
@@ -237,12 +239,12 @@ protected:
S32 nextWordPos(S32 cursorPos) const;
void autoIndent();
-
+
void findEmbeddedItemSegments(S32 start, S32 end);
void getSegmentsInRange(segment_vec_t& segments, S32 start, S32 end, bool include_partial) const;
virtual llwchar pasteEmbeddedItem(llwchar ext_char) { return ext_char; }
-
+
// Here's the method that takes and applies text commands.
S32 execute(TextCmd* cmd);
@@ -256,7 +258,7 @@ protected:
S32 removeChar(S32 pos);
S32 insert(S32 pos, const LLWString &wstr, bool group_with_next_op, LLTextSegmentPtr segment);
S32 remove(S32 pos, S32 length, bool group_with_next_op);
-
+
void focusLostHelper();
void updateAllowingLanguageInput();
BOOL hasPreeditString() const;
@@ -274,14 +276,14 @@ protected:
//
// Protected data
//
- // Probably deserves serious thought to hiding as many of these
+ // Probably deserves serious thought to hiding as many of these
// as possible behind protected accessor methods.
//
// Use these to determine if a click on an embedded item is a drag or not.
S32 mMouseDownX;
S32 mMouseDownY;
-
+
LLWString mPreeditWString;
LLWString mPreeditOverwrittenWString;
std::vector<S32> mPreeditPositions;
@@ -308,11 +310,6 @@ private:
void onKeyStroke();
- //
- // Data
- //
- LLKeywords mKeywords;
-
// Concrete TextCmd sub-classes used by the LLTextEditor base class
class TextCmdInsert;
class TextCmdAddChar;
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index 17e340d136..5d24f05a1e 100755
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -523,6 +523,7 @@ set(viewer_SOURCE_FILES
llstylemap.cpp
llsurface.cpp
llsurfacepatch.cpp
+ llsyntaxid.cpp
llsyswellitem.cpp
llsyswellwindow.cpp
llteleporthistory.cpp
@@ -1101,6 +1102,7 @@ set(viewer_HEADER_FILES
llstylemap.h
llsurface.h
llsurfacepatch.h
+ llsyntaxid.h
llsyswellitem.h
llsyswellwindow.h
lltable.h
@@ -1532,7 +1534,7 @@ set(viewer_APPSETTINGS_FILES
app_settings/high_graphics.xml
app_settings/ignorable_dialogs.xml
app_settings/keys.xml
- app_settings/keywords.ini
+ app_settings/keywords_lsl_default.xml
app_settings/logcontrol.xml
app_settings/low_graphics.xml
app_settings/mid_graphics.xml
@@ -1852,7 +1854,7 @@ elseif (DARWIN)
LINK_FLAGS_RELEASE "${LINK_FLAGS_RELEASE} -Xlinker -dead_strip -Xlinker -map -Xlinker ${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_BINARY_NAME}.MAP"
)
else (WINDOWS)
- # Linux
+ # Linux
set_target_properties(${VIEWER_BINARY_NAME}
PROPERTIES
LINK_FLAGS_RELEASE "${LINK_FLAGS_RELEASE} -Wl,--Map=${VIEWER_BINARY_NAME}.MAP"
@@ -2037,7 +2039,7 @@ if (DARWIN)
)
add_dependencies(${VIEWER_BINARY_NAME} SLPlugin media_plugin_quicktime media_plugin_webkit mac-crash-logger)
-
+
if (ENABLE_SIGNING)
set(SIGNING_SETTING "--signature=${SIGNING_IDENTITY}")
else (ENABLE_SIGNING)
diff --git a/indra/newview/app_settings/keywords.ini b/indra/newview/app_settings/keywords.ini
deleted file mode 100755
index ad843bca14..0000000000
--- a/indra/newview/app_settings/keywords.ini
+++ /dev/null
@@ -1,755 +0,0 @@
-llkeywords version 2
-
-# sections
-[word .5, .1, .3]
-default Name of default state that all scripts must have
-state Keyword to indicate state block or state transition
-
-# data types
-[word .1, .3, .1]
-integer Integer type
-float Floating-point type
-string String type
-key Key type. Use NULL_KEY to test for empty keys
-vector Vector type of 3 floats. Used to represent 3D motion, Euler angles, and color.:Access components by .x, .y. or .z
-rotation Rotation type of 4 floats. Used to represent rotation.:Access components by .x, .y., .z, or .w
-list List of various data types
-
-# events
-[word 0, .3, .5]
-state_entry state_entry():Triggered on any state transition and startup
-state_exit state_exit():Triggered on any state transition
-touch_start touch_start(integer num_detected):Triggered by the start of agent clicking on task
-touch touch(integer num_detected):Triggered while agent is clicking on task
-touch_end touch_end(integer num_detected):Triggered when agent stops clicking on task
-collision_start collision_start(integer num_detected):Triggered when task starts colliding with another task
-collision collision(integer num_detected):Triggered while task is colliding with another task
-collision_end collision_end(integer num_detected):Triggered when task stops colliding with another task
-land_collision_start land_collision_start(vector pos):Triggered when task starts colliding with land
-land_collision land_collision(vector pos):Triggered when task is colliding with land
-land_collision_end land_collision_end(vector pos):Triggered when task stops colliding with land
-timer timer():Result of the llSetTimerEvent library function call
-listen listen(integer channel, string name, key id, string message):Result of the llListen library function call
-sensor sensor(integer num_detected):Result of the llSensor library function call
-no_sensor no_sensor():Result of the llSensor library function call
-control control(key id, integer level, integer edge):Result of llTakeControls library function call
-at_target at_target(integer tnum, vector targetpos, vector ourpos):Result of llTarget library function call
-not_at_target not_at_target():Result of llTarget library function call
-at_rot_target at_rot_target(integer tnum, rotation targetrot, rotation ourrot):Result of LLRotTarget library function call
-not_at_rot_target not_at_rot_target():Result of LLRotTarget library function call
-money money(key id, integer amount):Triggered when L$ is given to task
-email email(string time, string address, string subj, string message, integer num_left):Triggered when task receives email
-run_time_permissions run_time_permissions(integer perm):Triggered when an agent grants run time permissions to task
-attach attach(key id):Triggered when task attaches or detaches from agent
-dataserver dataserver(key queryid, string data):Triggered when task receives asynchronous data
-moving_start moving_start():Triggered when task begins moving
-moving_end moving_end():Triggered when task stops moving
-on_rez on_rez(integer start_param):Triggered when task is rezzed in from inventory or another task
-object_rez object_rez(key id):Triggered when task rezzes in another task
-link_message link_message(integer sender_num, integer num, string str, key id):Triggered when task receives a link message via LLMessageLinked library function call
-changed changed( integer change ):Triggered various event change the task:(test change with CHANGED_INVENTORY, CHANGED_COLOR, CHANGED_SHAPE, CHANGED_SCALE, CHANGED_TEXTURE, CHANGED_LINK, CHANGED_ALLOWED_DROP, CHANGED_OWNER, CHANGED_REGION, CHANGED_TELEPORT, CHANGED_REGION_START, CHANGED_MEDIA)
-remote_data remote_data(integer event_type, key channel, key message_id, string sender,integer idata, string sdata):Triggered by various XML-RPC calls (event_type will be one of REMOTE_DATA_CHANNEL, REMOTE_DATA_REQUEST, REMOTE_DATA_REPLY)
-http_response http_response(key request_id, integer status, list metadata, string body):Triggered when task receives a response to one of its llHTTPRequests
-http_request http_request(key id, string method, string body):Triggered when task receives an http request against a public URL
-
-# integer constants
-[word .1, .1, .5]
-TRUE Integer constant for Boolean operations
-FALSE Integer constant for Boolean operations
-STATUS_PHYSICS Passed in the llSetStatus library function. If TRUE, object moves physically
-STATUS_PHANTOM Passed in the llSetStatus library function. If TRUE, object doesn't collide with other objects
-STATUS_ROTATE_X Passed in the llSetStatus library function. If FALSE, object doesn't rotate around local X axis
-STATUS_ROTATE_Y Passed in the llSetStatus library function. If FALSE, object doesn't rotate around local Y axis
-STATUS_ROTATE_Z Passed in the llSetStatus library function. If FALSE, object doesn't rotate around local Z axis
-STATUS_SANDBOX Passed in the llSetStatus library function. If TRUE, object can't cross region boundaries or move more than 10 meters from its start location
-STATUS_BLOCK_GRAB Passed in the llSetStatus library function. If TRUE, root prim of linkset (or unlinked prim) can't be grabbed and physically dragged
-STATUS_DIE_AT_EDGE Passed in the llSetStatus library function. If TRUE, objects that reach the edge of the world just die:rather than teleporting back to the owner
-STATUS_RETURN_AT_EDGE Passed in the llSetStatus library function. If TRUE, script rezzed objects that reach the edge of the world:are returned rather than killed:STATUS_RETURN_AT_EDGE trumps STATUS_DIE_AT_EDGE if both are set
-STATUS_CAST_SHADOWS Passed in the llSetStatus library function. If TRUE, object casts shadows on other objects
-STATUS_BLOCK_GRAB_OBJECT Passed in the llSetStatus library function. If TRUE, no prims in linkset can be grabbed or physically dragged
-
-AGENT Passed in llSensor library function to look for other Agents
-ACTIVE Passed in llSensor library function to look for moving objects
-PASSIVE Passed in llSensor library function to look for objects that aren't moving
-SCRIPTED Passed in llSensor library function to look for scripted objects
-CONTROL_FWD Passed to llTakeControls library function and used control event handler to test for agent forward control
-CONTROL_BACK Passed to llTakeControls library function and used control event handler to test for agent back control
-CONTROL_LEFT Passed to llTakeControls library function and used control event handler to test for agent left control
-CONTROL_RIGHT Passed to llTakeControls library function and used control event handler to test for agent right control
-CONTROL_ROT_LEFT Passed to llTakeControls library function and used control event handler to test for agent rotate left control
-CONTROL_ROT_RIGHT Passed to llTakeControls library function and used control event handler to test for agent rotate right control
-CONTROL_UP Passed to llTakeControls library function and used control event handler to test for agent up control
-CONTROL_DOWN Passed to llTakeControls library function and used control event handler to test for agent down control
-CONTROL_LBUTTON Passed to llTakeControls library function and used control event handler to test for agent left button control
-CONTROL_ML_LBUTTON Passed to llTakeControls library function and used control event handler to test for agent left button control with the agent in mouse look
-PERMISSION_DEBIT Passed to llRequestPermissions library function to request permission to take L$ from agent's account
-PERMISSION_TAKE_CONTROLS Passed to llRequestPermissions library function to request permission to take agent's controls
-# PERMISSION_REMAP_CONTROLS Passed to llRequestPermissions library function to request permission to remap agent's controls (not implemented yet)
-PERMISSION_TRIGGER_ANIMATION Passed to llRequestPermissions library function to request permission to trigger animation on agent
-PERMISSION_ATTACH Passed to llRequestPermissions library function to request permission to attach/detach from agent
-# PERMISSION_RELEASE_OWNERSHIP Passed to llRequestPermissions library function to request permission to release ownership (not implemented)
-PERMISSION_CHANGE_LINKS Passed to llRequestPermissions library function to request permission to change links
-# PERMISSION_CHANGE_JOINTS Passed to llRequestPermissions library function to request permission to change joints (not implemented)
-# PERMISSION_CHANGE_PERMISSIONS Passed to llRequestPermissions library function to request permission to change permissions
-PERMISSION_TRACK_CAMERA Passed to llRequestPermissions library function to request permission to track agent's camera
-PERMISSION_CONTROL_CAMERA Passed to llRequestPermissions library function to request permission to change agent's camera
-PERMISSION_TELEPORT Passed to llRequestPermissions library function to request permission to teleport agent
-PERMISSION_SILENT_ESTATE_MANAGEMENT Passed to llRequestPermissions library function to request permission to silently modify estate access lists
-PERMISSION_OVERRIDE_ANIMATIONS Passed to llRequestPermissions library function to request permission to override animations on agent
-PERMISSION_RETURN_OBJECTS Passed to llRequestPermissions library function to request permission to return objects
-
-DEBUG_CHANNEL Chat channel reserved for debug and error messages from scripts
-PUBLIC_CHANNEL Chat channel that broadcasts to all nearby users
-
-AGENT_FLYING Returned by llGetAgentInfo if the Agent is flying
-AGENT_ATTACHMENTS Returned by llGetAgentInfo if the Agent has attachments
-AGENT_SCRIPTED Returned by llGetAgentInfo if the Agent has scripted attachments
-AGENT_SITTING Returned by llGetAgentInfo if the Agent is sitting
-AGENT_ON_OBJECT Returned by llGetAgentInfo if the Agent is sitting on an object
-AGENT_MOUSELOOK Returned by llGetAgentInfo if the Agent is in mouselook
-AGENT_AWAY Returned by llGetAgentInfo if the Agent is in away mode
-AGENT_WALKING Returned by llGetAgentInfo if the Agent is walking
-AGENT_IN_AIR Returned by llGetAgentInfo if the Agent is in the air
-AGENT_TYPING Returned by llGetAgentInfo if the Agent is typing
-AGENT_CROUCHING Returned by llGetAgentInfo if the Agent is crouching
-AGENT_BUSY Returned by llGetAgentInfo if the Agent is busy
-AGENT_ALWAYS_RUN Returned by llGetAgentInfo if the Agent has 'Always Run' enabled
-AGENT_AUTOPILOT Returned by llGetAgentInfo if the Agent is under autopilot control
-
-PSYS_PART_FLAGS
-PSYS_PART_START_COLOR
-PSYS_PART_START_ALPHA
-PSYS_PART_START_SCALE
-PSYS_PART_END_COLOR
-PSYS_PART_END_ALPHA
-PSYS_PART_END_SCALE
-PSYS_PART_MAX_AGE
-
-PSYS_PART_BOUNCE_MASK
-PSYS_PART_WIND_MASK
-PSYS_PART_INTERP_COLOR_MASK
-PSYS_PART_INTERP_SCALE_MASK
-PSYS_PART_FOLLOW_SRC_MASK
-PSYS_PART_FOLLOW_VELOCITY_MASK
-PSYS_PART_TARGET_POS_MASK
-PSYS_PART_EMISSIVE_MASK
-PSYS_PART_TARGET_LINEAR_MASK
-PSYS_PART_RIBBON_MASK
-
-PSYS_SRC_PATTERN
-PSYS_SRC_INNERANGLE Deprecated -- Use PSYS_SRC_ANGLE_BEGIN
-PSYS_SRC_OUTERANGLE Deprecated -- Use PSYS_SRC_ANGLE_END
-PSYS_SRC_ANGLE_BEGIN
-PSYS_SRC_ANGLE_END
-PSYS_SRC_BURST_RATE
-PSYS_SRC_BURST_PART_COUNT
-PSYS_SRC_BURST_RADIUS
-PSYS_SRC_BURST_SPEED_MIN
-PSYS_SRC_BURST_SPEED_MAX
-PSYS_SRC_MAX_AGE
-PSYS_SRC_ACCEL
-PSYS_SRC_TEXTURE
-PSYS_SRC_TARGET_KEY
-PSYS_SRC_OMEGA
-PSYS_PART_BLEND_FUNC_SOURCE
-PSYS_PART_BLEND_FUNC_DEST
-PSYS_PART_START_GLOW
-PSYS_PART_END_GLOW
-
-PSYS_SRC_PATTERN_DROP
-PSYS_SRC_PATTERN_EXPLODE
-PSYS_SRC_PATTERN_ANGLE
-PSYS_SRC_PATTERN_ANGLE_CONE
-PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY
-PSYS_PART_BF_ONE
-PSYS_PART_BF_ZERO
-PSYS_PART_BF_DEST_COLOR
-PSYS_PART_BF_SOURCE_COLOR
-PSYS_PART_BF_ONE_MINUS_DEST_COLOR
-PSYS_PART_BF_ONE_MINUS_SOURCE_COLOR
-PSYS_PART_BF_SOURCE_ALPHA
-PSYS_PART_BF_ONE_MINUS_SOURCE_ALPHA
-
-OBJECT_UNKNOWN_DETAIL Returned by llGetObjectDetails when passed an invalid object parameter type
-OBJECT_NAME Used with llGetObjectDetails to get an object's name
-OBJECT_DESC Used with llGetObjectDetails to get an object's description
-OBJECT_POS Used with llGetObjectDetails to get an object's position
-OBJECT_ROT Used with llGetObjectDetails to get an object's rotation
-OBJECT_VELOCITY Used with llGetObjectDetails to get an object's velocity
-OBJECT_OWNER Used with llGetObjectDetails to get an object's owner's key. Will be NULL_KEY if group owned
-OBJECT_GROUP Used with llGetObjectDetails to get an object's group's key
-OBJECT_CREATOR Used with llGetObjectDetails to get an object's creator's key
-OBJECT_RUNNING_SCRIPT_COUNT Used with llGetObjectDetails to get the number of running scripts in an object
-OBJECT_TOTAL_SCRIPT_COUNT Used with llGetObjectDetails to get the total number of scripts in an object
-OBJECT_SCRIPT_MEMORY Used with llGetObjectDetails to get the total amount of script memory in an object
-OBJECT_SCRIPT_TIME Used with llGetObjectDetails to get the average script time used by an object
-OBJECT_PRIM_EQUIVALENCE Used with llGetObjectDetails to get the prim equivalence of an object
-OBJECT_SERVER_COST Used with llGetObjectDetails to get the server cost of an object
-OBJECT_STREAMING_COST Used with llGetObjectDetails to get the streaming (download) cost of an object
-OBJECT_PHYSICS_COST Used with llGetObjectDetails to get the physics cost of an object
-OBJECT_CHARACTER_TIME Used with llGetObjectDetails to get the pathfinding time (seconds) for an object
-OBJECT_ROOT Used with llGetObjectDetails to get root ID of an object
-OBJECT_ATTACHED_POINT Used with llGetObjectDetails to get attachent point where an object is attached
-OBJECT_PATHFINDING_TYPE Used with llGetObjectDetails to get the pathfinding setting of an object
-OBJECT_PHYSICS Used with llGetObjectDetails to determine if the object is physical or not
-OBJECT_PHANTOM Used with llGetObjectDetails to determine if the object is phantom or not
-OBJECT_TEMP_ON_REZ Used with llGetObjectDetails to determine if the object is temporary or not
-OBJECT_RENDER_WEIGHT Used with llGetObjectDetails to return an avatar's rendering weight
-
-
-# some vehicle params
-VEHICLE_TYPE_NONE
-VEHICLE_TYPE_SLED
-VEHICLE_TYPE_CAR
-VEHICLE_TYPE_BOAT
-VEHICLE_TYPE_AIRPLANE
-VEHICLE_TYPE_BALLOON
-
-VEHICLE_REFERENCE_FRAME Rotation of vehicle axes relative to local frame
-
-VEHICLE_LINEAR_FRICTION_TIMESCALE A vector of timescales for exponential decay of linear velocity along the three vehicle axes
-VEHICLE_ANGULAR_FRICTION_TIMESCALE A vector of timescales for exponential decay of angular velocity about the three vehicle axes
-VEHICLE_LINEAR_MOTOR_DIRECTION The linear velocity that the vehicle will try to achieve
-VEHICLE_LINEAR_MOTOR_OFFSET An offset from the center of mass of the vehicle where the linear motor is applied
-VEHICLE_ANGULAR_MOTOR_DIRECTION The angular velocity that the vehicle will try to achieve
-
-VEHICLE_HOVER_HEIGHT The height the vehicle will try to hover
-VEHICLE_HOVER_EFFICIENCY A slider between 0 (bouncy) and 1 (critically damped) hover behavior
-VEHICLE_HOVER_TIMESCALE The period of time for the vehicle to achieve its hover height
-VEHICLE_BUOYANCY A slider between 0 (no anti-gravity) and 1 (full anti-gravity)
-
-VEHICLE_LINEAR_DEFLECTION_EFFICIENCY A slider between 0 (no deflection) and 1 (maximum strength)
-VEHICLE_LINEAR_DEFLECTION_TIMESCALE The exponential timescale for the vehicle to redirect its velocity to be along its x-axis
-
-VEHICLE_LINEAR_MOTOR_TIMESCALE The exponential timescale for the vehicle to achive its full linear motor velocity
-VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE The exponential timescale for the linear motor's effectiveness to decay toward zero
-
-VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY A slider between 0 (no deflection) and 1 (maximum strength)
-VEHICLE_ANGULAR_DEFLECTION_TIMESCALE The exponential timescale for the vehicle to achieve full angular deflection
-
-VEHICLE_ANGULAR_MOTOR_TIMESCALE The exponential timescale for the vehicle to achive its full angular motor velocity
-VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE The exponential timescale for the angular motor's effectiveness to decay toward zero
-
-VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY A slider between 0 (bouncy) and 1 (critically damped) attraction of vehicle z-axis to world z-axis (vertical)
-VEHICLE_VERTICAL_ATTRACTION_TIMESCALE The exponential timescale for the vehicle to align its z-axis to the world z-axis (vertical)
-
-VEHICLE_BANKING_EFFICIENCY A slider between -1 (leans out of turns), 0 (no banking), and +1 (leans into turns)
-VEHICLE_BANKING_MIX A slider between 0 (static banking) and 1 (dynamic banking)
-VEHICLE_BANKING_TIMESCALE The exponential timescale for the banking behavior to take full effect
-
-VEHICLE_FLAG_NO_DEFLECTION_UP Prevents linear deflection along world-z axis
-VEHICLE_FLAG_LIMIT_ROLL_ONLY Removes vertical attraction for changes in vehicle pitch
-VEHICLE_FLAG_HOVER_WATER_ONLY Hover only pays attention to water level
-VEHICLE_FLAG_HOVER_TERRAIN_ONLY Hover only pays attention to terrain height
-VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT Hover only pays attention to global height
-VEHICLE_FLAG_HOVER_UP_ONLY Hover only pushes up
-VEHICLE_FLAG_LIMIT_MOTOR_UP Prevents ground vehicles from motoring into the sky
-VEHICLE_FLAG_MOUSELOOK_STEER Makes vehicle try to turn toward mouselook direction
-VEHICLE_FLAG_MOUSELOOK_BANK Makes vehicle try to turn toward mouselook direction assuming banking is enabled
-VEHICLE_FLAG_CAMERA_DECOUPLED Causes the camera look-at axis to NOT move when the vehicle rotates
-
-CAMERA_PITCH (-45 to 80) (Adjusts the angular amount that the camera aims straight ahead vs. straight down, maintaining the same distance. Analogous to 'incidence'.")
-CAMERA_FOCUS_OFFSET (-10 to 10) A vector that adjusts the position of the camera focus position relative to the subject
-CAMERA_POSITION_LAG (0.0 to 3.0) How much the camera lags as it tries to move towards its 'ideal' position
-CAMERA_FOCUS_LAG (0.0 to 3.0) How much the camera lags as it tries to aim towards the subject
-CAMERA_DISTANCE (0.5 to 10) Sets how far away the camera wants to be from its subject
-CAMERA_BEHINDNESS_ANGLE (0 to 180) Sets the angle in degrees within which the camera is not constrained by changes in subject rotation
-CAMERA_BEHINDNESS_LAG (0.0 to 3.0) Sets how strongly the camera is forced to stay behind the target if outside of behindness angle
-CAMERA_POSITION_THRESHOLD (0.0 to 4.0) Sets the radius of a sphere around the camera's ideal position within which it is not affected by subject motion
-CAMERA_FOCUS_THRESHOLD (0.0 to 4.0) Sets the radius of a sphere around the camera's subject position within which its focus is not affected by subject motion
-CAMERA_ACTIVE (0 or 1) Turns on or off scripted control of the camera
-CAMERA_POSITION Sets the position of the camera
-CAMERA_FOCUS Sets the focus (target position) of the camera
-CAMERA_POSITION_LOCKED (0 or 1) Locks the camera position so it will not move
-CAMERA_FOCUS_LOCKED (0 or 1) Locks the camera focus so it will not move
-
-INVENTORY_TEXTURE Passed to task inventory library functions to reference textures
-INVENTORY_SOUND Passed to task inventory library functions to reference sounds
-INVENTORY_OBJECT Passed to task inventory library functions to reference objects
-INVENTORY_SCRIPT Passed to task inventory library functions to reference scripts
-INVENTORY_LANDMARK Passed to task inventory library functions to reference landmarks
-INVENTORY_CLOTHING Passed to task inventory library functions to reference clothing
-INVENTORY_NOTECARD Passed to task inventory library functions to reference notecards
-INVENTORY_BODYPART Passed to task inventory library functions to reference body parts
-INVENTORY_ANIMATION Passed to task inventory library functions to reference animations
-INVENTORY_GESTURE Passed to task inventory library functions to reference gestures
-INVENTORY_ALL Passed to task inventory library functions to reference all inventory items
-INVENTORY_NONE Returned by llGetInventoryType when no item is found
-
-ATTACH_CHEST Passed to llAttachToAvatar to attach task to chest
-ATTACH_HEAD Passed to llAttachToAvatar to attach task to head
-ATTACH_LSHOULDER Passed to llAttachToAvatar to attach task to left shoulder
-ATTACH_RSHOULDER Passed to llAttachToAvatar to attach task to right shoulder
-ATTACH_LHAND Passed to llAttachToAvatar to attach task to left hand
-ATTACH_RHAND Passed to llAttachToAvatar to attach task to right hand
-ATTACH_LFOOT Passed to llAttachToAvatar to attach task to left foot
-ATTACH_RFOOT Passed to llAttachToAvatar to attach task to right foot
-ATTACH_BACK Passed to llAttachToAvatar to attach task to back
-ATTACH_PELVIS Passed to llAttachToAvatar to attach task to pelvis
-ATTACH_MOUTH Passed to llAttachToAvatar to attach task to mouth
-ATTACH_CHIN Passed to llAttachToAvatar to attach task to chin
-ATTACH_LEAR Passed to llAttachToAvatar to attach task to left ear
-ATTACH_REAR Passed to llAttachToAvatar to attach task to right ear
-ATTACH_LEYE Passed to llAttachToAvatar to attach task to left eye
-ATTACH_REYE Passed to llAttachToAvatar to attach task to right eye
-ATTACH_NOSE Passed to llAttachToAvatar to attach task to nose
-ATTACH_RUARM Passed to llAttachToAvatar to attach task to right upper arm
-ATTACH_RLARM Passed to llAttachToAvatar to attach task to right lower arm
-ATTACH_LUARM Passed to llAttachToAvatar to attach task to left upper arm
-ATTACH_LLARM Passed to llAttachToAvatar to attach task to left lower arm
-ATTACH_RHIP Passed to llAttachToAvatar to attach task to right hip
-ATTACH_RULEG Passed to llAttachToAvatar to attach task to right upper leg
-ATTACH_RLLEG Passed to llAttachToAvatar to attach task to right lower leg
-ATTACH_LHIP Passed to llAttachToAvatar to attach task to left hip
-ATTACH_LULEG Passed to llAttachToAvatar to attach task to left upper leg
-ATTACH_LLLEG Passed to llAttachToAvatar to attach task to left lower leg
-ATTACH_BELLY Passed to llAttachToAvatar to attach task to belly
-ATTACH_LEFT_PEC Passed to llAttachToAvatar to attach task to left pectoral
-ATTACH_RIGHT_PEC Passed to llAttachToAvatar to attach task to right pectoral
-ATTACH_NECK Passed to llAttachToAvatar to attach task to neck
-ATTACH_AVATAR_CENTER Passed to llAttachToAvatar to attach task to avatar center
-LAND_LEVEL Passed to llModifyLand to level terrain
-LAND_RAISE Passed to llModifyLand to raise terrain
-LAND_LOWER Passed to llModifyLand to lower terrain
-LAND_SMOOTH Passed to llModifyLand to smooth terrain
-LAND_NOISE Passed to llModifyLand to randomize terrain
-LAND_REVERT Passed to llModifyLand to revert terrain toward original state
-LAND_SMALL_BRUSH Passed to llModifyLand to modify small land areas
-LAND_MEDIUM_BRUSH Passed to llModifyLand to modify medium land areas
-LAND_LARGE_BRUSH Passed to llModifyLand to modify large land areas
-
-DATA_PAYINFO Passed to llRequestAgentData to get payment status of an agent
-DATA_ONLINE Passed to llRequestAgentData to determine if agent is online
-DATA_NAME Passed to llRequestAgentData to get full agent name
-DATA_BORN Passed to llRequestAgentData to get born on date as a string
-DATA_RATING Passed to llRequestAgentData to get a comma separated sting of integer ratings
-DATA_SIM_POS Passed to llRequestSimulatorData to get a string (cast to vector) of a simulator's global position
-DATA_SIM_STATUS Passed to llRequestSimulatorData to get the status of a simulator
-DATA_SIM_RATING Passed to llRequestSimulatorData to get the rating of a simulator
-
-PAYMENT_INFO_ON_FILE Used with llRequestAgentData to tell if Agent is of "Payment Info On File" status
-PAYMENT_INFO_USED Used with llRequestAgentData to tell if Agent is of "Payment Info Used" status
-
-ANIM_ON Enable texture animation
-LOOP Loop when animating textures
-REVERSE Animate in the reverse direction
-PING_PONG Animate forward, then reverse
-SMOOTH Textures slides, instead of stepping
-ROTATE Rotates the texture, instead of using frames
-SCALE Scales the texture, instead of using frames
-
-ALL_SIDES Passed to various texture and color library functions to modify all sides
-
-LINK_SET Passed to various link functions to modify all blocks in the object
-LINK_ROOT Passed to various link functions to modify only the root block (no effect on single block objects)
-LINK_ALL_OTHERS Passed to various link functions to modify all other blocks in the object
-LINK_ALL_CHILDREN Passed to various link functions to modify all child blocks in the object
-LINK_THIS Passed to various link functions to modify only the calling block
-
-CHANGED_INVENTORY Parameter of changed event handler used to indicate change to task's inventory
-CHANGED_COLOR Parameter of changed event handler used to indicate change to task's color
-CHANGED_SHAPE Parameter of changed event handler used to indicate change to task's shape parameters
-CHANGED_SCALE Parameter of changed event handler used to indicate change to task's scale
-CHANGED_TEXTURE Parameter of changed event handler used to indicate change to task's texture
-CHANGED_LINK Parameter of changed event handler used to indicate change to task's link status
-CHANGED_ALLOWED_DROP Parameter of changed event handler used to indicate a user dropped an inventory item:onto task that was allowed only by llAllowInventoryDrop function call
-CHANGED_OWNER Parameter of changed event handler used to indicate change to task's owner ONLY when an object is sold as original or deeded to group
-CHANGED_REGION Parameter of changed event handler used to indicate the region has changed
-CHANGED_TELEPORT Parameter of changed event handler used to indicate teleport has completed
-CHANGED_REGION_START Parameter of changed event handler used to indicate the region has been restarted
-CHANGED_MEDIA Parameter of changed event handler used to indicate that media has changed on a face of the task
-
-TYPE_INTEGER Indicates that the list entry is holding an integer
-TYPE_FLOAT Indicates that the list entry is holding an float
-TYPE_STRING Indicates that the list entry is holding an string
-TYPE_KEY Indicates that the list entry is holding an key
-TYPE_VECTOR Indicates that the list entry is holding an vector
-TYPE_ROTATION Indicates that the list entry is holding an rotation
-TYPE_INVALID Indicates that this wasn't a valid list entry
-
-
-REMOTE_DATA_CHANNEL Value of event_type in remote_event after successful llOpenRemoteDataChannel
-REMOTE_DATA_REQUEST Value of event_type in remote_event if XML-RPC request is received
-REMOTE_DATA_REPLY Value of event_type in remote_event if XML-RPC reply is received
-
-
-PRIM_TYPE Followed by PRIM_TYPE_BOX, PRIM_TYPE_CYLINDER, PRIM_TYPE_PRISM, PRIM_TYPE_SPHERE, PRIM_TYPE_TORUS, PRIM_TYPE_TUBE, or PRIM_TYPE_SCULPT and their arguments
-PRIM_MATERIAL Followed by PRIM_MATERIAL_STONE, PRIM_MATERIAL_METAL, PRIM_MATERIAL_GLASS, PRIM_MATERIAL_WOOD, PRIM_MATERIAL_FLESH, PRIM_MATERIAL_PLASTIC, or PRIM_MATERIAL_RUBBER
-PRIM_PHYSICS Sets physics to TRUE or FALSE
-PRIM_FLEXIBLE Followed by TRUE or FALSE, integer softness, float gravity, float friction, float wind, float tension, and vector force
-PRIM_POINT_LIGHT Followed by TRUE or FALSE, vector color, float intensity, float radius, float falloff
-PRIM_TEMP_ON_REZ Sets temporary on rez to TRUE or FALSE
-PRIM_PHANTOM Sets phantom to TRUE or FALSE
-PRIM_CAST_SHADOWS DEPRECATED. Takes 1 parameter, an integer, but has no effect when set and always returns 0 if used in llGetPrimitiveParams
-PRIM_POSITION Sets primitive position to a vector position
-PRIM_SIZE Sets primitive size to a vector size
-PRIM_ROTATION Sets primitive rotation
-PRIM_TEXTURE Followed by an integer face, key id, vector repeats, vector offsets,:and float rotation in radians
-PRIM_COLOR Followed by an integer face, vector color, and float alpha
-PRIM_BUMP_SHINY Followed by an integer face, one of PRIM_SHINY_NONE, PRIM_SHINY_LOW,:PRIM_SHINY_MEDIUM, or PRIM_SHINY_HIGH,:and one of PRIM_BUMP_NONE, PRIM_BUMP_BRIGHT, PRIM_BUMP_DARK, etc
-PRIM_FULLBRIGHT Followed by an integer face, and TRUE or FALSE
-PRIM_TEXGEN Followed by an integer face, and one of PRIM_TEXGEN_DEFAULT or PRIM_TEXGEN_PLANAR
-PRIM_GLOW Followed by an integer face, and a float from 0.0 to 1.0 specifying glow amount
-PRIM_TEXT Followed by string text, vector color, and float alpha
-PRIM_NAME Followed by string name
-PRIM_DESC Followed by string description
-PRIM_ROT_LOCAL Followed by rotation rot
-PRIM_PHYSICS_SHAPE_TYPE Followed by PRIM_PHYSICS_SHAPE_PRIM, PRIM_PHYSICS_SHAPE_NONE, or PRIM_PHYSICS_SHAPE_CONVEX
-PRIM_OMEGA Followed by vector axis, float spinrate, and float gain
-PRIM_POS_LOCAL Followed by vector position
-PRIM_LINK_TARGET Followed by integer link_target, then additional prim parameter flags
-PRIM_SLICE Followed by vector slice
-
-PRIM_PHYSICS_SHAPE_PRIM Use the default physics shape
-PRIM_PHYSICS_SHAPE_CONVEX Use the convex hull of the prim shape for physics
-PRIM_PHYSICS_SHAPE_NONE Ignore this prim in the physics shape
-
-PRIM_TYPE_BOX Followed by integer hole shape, vector cut, float hollow, vector twist,:vector top size, and vector top shear
-PRIM_TYPE_CYLINDER Followed by integer hole shape, vector cut, float hollow, vector twist,:vector top size, and vector top shear
-PRIM_TYPE_PRISM Followed by integer hole shape, vector cut, float hollow, vector twist,:vector top size, and vector top shear
-PRIM_TYPE_SPHERE Followed by integer hole shape, vector cut, float hollow, vector twist,:and vector dimple
-PRIM_TYPE_TORUS Followed by integer hole shape, vector cut, float hollow, vector twist,:vector hole size, vector top shear, vector advanced cut, vector taper,:float revolutions, float radius offset, and float skew
-PRIM_TYPE_TUBE Followed by integer hole shape, vector cut, float hollow, vector twist,:vector hole size, vector top shear, vector advanced cut, vector taper,:float revolutions, float radius offset, and float skew
-PRIM_TYPE_RING Followed by integer hole shape, vector cut, float hollow, vector twist,:vector hole size, vector top shear, vector advanced cut, vector taper,:float revolutions, float radius offset, and float skew
-PRIM_TYPE_SCULPT Followed by a key/string texture uuid, and one of PRIM_SCULPT_TYPE_SPHERE, PRIM_SCULPT_TYPE_TORUS, PRIM_SCULPT_TYPE_PLANE, or PRIM_SCULPT_TYPE_CYLINDER
-
-PRIM_HOLE_DEFAULT Sets hole type to match the prim type
-PRIM_HOLE_SQUARE Sets hole type to square
-PRIM_HOLE_CIRCLE Sets hole type to circle
-PRIM_HOLE_TRIANGLE Sets hole type to triangle
-
-PRIM_MATERIAL_STONE Sets material to stone
-PRIM_MATERIAL_METAL Sets material to metal
-PRIM_MATERIAL_GLASS Sets material to glass
-PRIM_MATERIAL_WOOD Sets material to wood
-PRIM_MATERIAL_FLESH Sets material to flesh
-PRIM_MATERIAL_PLASTIC Sets material to plastic
-PRIM_MATERIAL_RUBBER Sets material to rubber
-PRIM_MATERIAL_LIGHT Sets material to light
-
-PRIM_SHINY_NONE No shininess
-PRIM_SHINY_LOW Low shininess
-PRIM_SHINY_MEDIUM Medium shininess
-PRIM_SHINY_HIGH High shininess
-
-PRIM_BUMP_NONE No bump map
-PRIM_BUMP_BRIGHT Generate bump map from highlights
-PRIM_BUMP_DARK Generate bump map from lowlights
-PRIM_BUMP_WOOD Wood bump map
-PRIM_BUMP_BARK Bark bump map
-PRIM_BUMP_BRICKS Brick bump map
-PRIM_BUMP_CHECKER Checker bump map
-PRIM_BUMP_CONCRETE Concrete bump map
-PRIM_BUMP_TILE Tile bump map
-PRIM_BUMP_STONE Stone bump map
-PRIM_BUMP_DISKS Disk bump map
-PRIM_BUMP_GRAVEL Gravel bump map
-PRIM_BUMP_BLOBS Blob bump map
-PRIM_BUMP_SIDING Siding bump map
-PRIM_BUMP_LARGETILE Large tile bump map
-PRIM_BUMP_STUCCO Stucco bump map
-PRIM_BUMP_SUCTION Suction cup bump map
-PRIM_BUMP_WEAVE Weave bump map
-
-PRIM_TEXGEN_DEFAULT Default texture mapping
-PRIM_TEXGEN_PLANAR Planar texture mapping
-
-PRIM_SCULPT_TYPE_SPHERE Stitch edges in a sphere-like way
-PRIM_SCULPT_TYPE_TORUS Stitch edges in a torus-like way
-PRIM_SCULPT_TYPE_PLANE Do not stitch edges
-PRIM_SCULPT_TYPE_CYLINDER Stitch edges in a cylinder-like way
-PRIM_SCULPT_TYPE_MASK Mask used to determine stitching type
-PRIM_SCULPT_FLAG_INVERT Flag to specify that the surface normals should be inverted
-PRIM_SCULPT_FLAG_MIRROR Flag to specify that the prim should be reflected along X axis
-
-MASK_BASE Base permissions
-MASK_OWNER Owner permissions
-MASK_GROUP Group permissions
-MASK_EVERYONE Everyone permissions
-MASK_NEXT Next owner permissions
-
-PERM_TRANSFER Transfer permission
-PERM_MODIFY Modify permission
-PERM_COPY Copy permission
-PERM_MOVE Move permission
-PERM_ALL Move/Modify/Copy/Transfer permissions
-
-PARCEL_MEDIA_COMMAND_STOP Stop media stream
-PARCEL_MEDIA_COMMAND_PAUSE Pause media stream
-PARCEL_MEDIA_COMMAND_PLAY Play media stream
-PARCEL_MEDIA_COMMAND_LOOP Loop media stream
-PARCEL_MEDIA_COMMAND_TEXTURE Get or set the parcel's media texture
-PARCEL_MEDIA_COMMAND_URL Get or set the parcel's media url
-PARCEL_MEDIA_COMMAND_TYPE Get or set the parcel's media mimetype
-PARCEL_MEDIA_COMMAND_DESC Get or set the parcel's media description
-PARCEL_MEDIA_COMMAND_TIME Set media stream to specific time
-PARCEL_MEDIA_COMMAND_SIZE Get or set the parcel's media pixel resolution
-PARCEL_MEDIA_COMMAND_AGENT Allows media stream commands to apply to only one agent
-PARCEL_MEDIA_COMMAND_UNLOAD Unloads the media stream
-PARCEL_MEDIA_COMMAND_AUTO_ALIGN Auto aligns the media stream to the texture size. May cause a performance hit and loss of some visual quality
-
-PAY_HIDE Used with llSetPayPrice to hide a button
-PAY_DEFAULT Used with llSetPayPrice to use the default price for a button
-
-LIST_STAT_MAX Used with llListStatistics to find the largest number in a list
-LIST_STAT_MIN Used with llListStatistics to find the smallest number in a list
-LIST_STAT_MEAN Used with llListStatistics to find the mean of the numbers in a list
-LIST_STAT_MEDIAN Used with llListStatistics to find the median of the numbers in a list
-LIST_STAT_STD_DEV Used with llListStatistics to find the standard deviation of the numbers in a list
-LIST_STAT_SUM Used with llListStatistics to find the sum of the numbers in a list
-LIST_STAT_SUM_SQUARES Used with llListStatistics to find the sum of the squares of the numbers in a list
-LIST_STAT_NUM_COUNT Used with llListStatistics to find how many numbers are in a list
-LIST_STAT_GEOMETRIC_MEAN Used with llListStatistics to find the geometric mean of the numbers in a list (all numbers must be > 0)
-LIST_STAT_RANGE Used with llListStatistics to find the range of the numbers in a list
-
-PARCEL_FLAG_ALLOW_FLY Used with llGetParcelFlags to find if a parcel allows flying
-PARCEL_FLAG_ALLOW_GROUP_SCRIPTS Used with llGetParcelFlags to find if a parcel allows group scripts
-PARCEL_FLAG_ALLOW_SCRIPTS Used with llGetParcelFlags to find if a parcel allows outside scripts
-PARCEL_FLAG_ALLOW_LANDMARK Used with llGetParcelFlags to find if a parcel allows landmarks to be created
-PARCEL_FLAG_ALLOW_TERRAFORM Used with llGetParcelFlags to find if a parcel allows anyone to terraform the land
-PARCEL_FLAG_ALLOW_DAMAGE Used with llGetParcelFlags to find if a parcel allows damage
-PARCEL_FLAG_ALLOW_CREATE_OBJECTS Used with llGetParcelFlags to find if a parcel allows anyone to create objects
-PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS Used with llGetParcelFlags to find if a parcel allows group members or objects to create objects
-PARCEL_FLAG_USE_ACCESS_GROUP Used with llGetParcelFlags to find if a parcel limits access to a group
-PARCEL_FLAG_USE_ACCESS_LIST Used with llGetParcelFlags to find if a parcel limits access to a list of residents
-PARCEL_FLAG_USE_BAN_LIST Used with llGetParcelFlags to find if a parcel uses a ban list
-PARCEL_FLAG_USE_LAND_PASS_LIST Used with llGetParcelFlags to find if a parcel allows passes to be purchased
-PARCEL_FLAG_LOCAL_SOUND_ONLY Used with llGetParcelFlags to find if a parcel restricts spacialized sound to the parcel
-PARCEL_FLAG_RESTRICT_PUSHOBJECT Used with llGetParcelFlags to find if a parcel restricts llPushObject() calls
-PARCEL_FLAG_ALLOW_ALL_OBJECT_ENTRY Used with llGetParcelFlags to find if a parcel allows all objects to enter
-PARCEL_FLAG_ALLOW_GROUP_OBJECT_ENTRY Used with llGetParcelFlags to find if a parcel only allows group (and owner) objects to enter
-
-REGION_FLAG_ALLOW_DAMAGE Used with llGetRegionFlags to find if a region is entirely damage enabled
-REGION_FLAG_FIXED_SUN Used with llGetRegionFlags to find if a region has a fixed sun position
-REGION_FLAG_BLOCK_TERRAFORM Used with llGetRegionFlags to find if a region terraforming disabled
-REGION_FLAG_SANDBOX Used with llGetRegionFlags to find if a region is a sandbox
-REGION_FLAG_DISABLE_COLLISIONS Used with llGetRegionFlags to find if a region has disabled collisions
-REGION_FLAG_DISABLE_PHYSICS Used with llGetRegionFlags to find if a region has disabled physics
-REGION_FLAG_BLOCK_FLY Used with llGetRegionFlags to find if a region blocks flying
-REGION_FLAG_ALLOW_DIRECT_TELEPORT Used with llGetRegionFlags to find if a region allows direct teleports
-REGION_FLAG_RESTRICT_PUSHOBJECT Used with llGetRegionFlags to find if a region restricts llPushObject() calls
-
-HTTP_METHOD Used with llHTTPRequest to specify the method, such as "GET" or "POST"
-HTTP_MIMETYPE Used with llHTTPRequest to specify the MIME type, defaults to "text/plain"
-HTTP_BODY_MAXLENGTH Used with llHTTPRequest to specify the maximum response body to return
-HTTP_VERIFY_CERT Used with llHTTPRequest to specify SSL certificate verification
-HTTP_BODY_TRUNCATED Used with http_response to indicate truncation point in bytes
-
-PARCEL_COUNT_TOTAL Used with llGetParcelPrimCount to get the total number of prims on the parcel
-PARCEL_COUNT_OWNER Used with llGetParcelPrimCount to get the number of prims on the parcel owned by the owner
-PARCEL_COUNT_GROUP Used with llGetParcelPrimCount to get the number of prims on the parcel owned by the group
-PARCEL_COUNT_OTHER Used with llGetParcelPrimCount to get the number of prims on the parcel owned by others
-PARCEL_COUNT_SELECTED Used with llGetParcelPrimCount to get the number of prims on the parcel currently selected or sat upon
-PARCEL_COUNT_TEMP Used with llGetParcelPrimCount to get the number of prims on the parcel that are temp on rez
-
-PARCEL_DETAILS_NAME Used with llGetParcelDetails to get the parcel name
-PARCEL_DETAILS_DESC Used with llGetParcelDetails to get the parcel description
-PARCEL_DETAILS_OWNER Used with llGetParcelDetails to get the parcel owner id
-PARCEL_DETAILS_GROUP Used with llGetParcelDetails to get the parcel group id
-PARCEL_DETAILS_AREA Used with llGetParcelDetails to get the parcel area in square meters
-PARCEL_DETAILS_ID Used with llGetParcelDetails to get the parcel id
-PARCEL_DETAILS_SEE_AVATARS Used with llGetParcelDetails to get the avatars visibility setting
-
-STRING_TRIM_HEAD Used with llStringTrim to trim leading spaces from a string
-STRING_TRIM_TAIL Used with llStringTrim to trim trailing spaces from a string
-STRING_TRIM Used with llStringTrim to trim both leading and trailing spaces from a string
-
-CLICK_ACTION_NONE Used with llSetClickAction to disable the click action
-CLICK_ACTION_TOUCH Used with llSetClickAction to set touch as the default action when object is clicked
-CLICK_ACTION_SIT Used with llSetClickAction to set sit as the default action when object is clicked
-CLICK_ACTION_BUY Used with llSetClickAction to set buy as the default action when object is clicked
-CLICK_ACTION_PAY Used with llSetClickAction to set pay as the default action when object is clicked
-CLICK_ACTION_OPEN Used with llSetClickAction to set open as the default action when object is clicked
-CLICK_ACTION_PLAY Used with llSetClickAction to set play as the default action when object is clicked
-CLICK_ACTION_OPEN_MEDIA Used with llSetClickAction to set open-media as the default action when object is clicked
-CLICK_ACTION_ZOOM Used with llSetClickAction to set zoom in as the default action when object is clicked
-
-TOUCH_INVALID_TEXCOORD Value returned by llDetectedTouchUV() and llDetectedTouchST() when the touch position is not valid
-TOUCH_INVALID_VECTOR Value returned by llDetectedTouchPos(), llDetectedTouchNormal(), and llDetectedTouchBinormal() when the touch position is not valid
-TOUCH_INVALID_FACE Value returned by llDetectedTouchFace() when the touch position is not valid
-
-PRIM_MEDIA_ALT_IMAGE_ENABLE Used with ll{Get,Set}PrimMediaParams to enable the default alt image for media
-PRIM_MEDIA_CONTROLS Used with ll{Get,Set}PrimMediaParams to determine the controls shown for media
-PRIM_MEDIA_CURRENT_URL Used with ll{Get,Set}PrimMediaParams to navigate/access the current URL
-PRIM_MEDIA_HOME_URL Used with ll{Get,Set}PrimMediaParams to access the home URL
-PRIM_MEDIA_AUTO_LOOP Used with ll{Get,Set}PrimMediaParams to determine if media should auto-loop (if applicable)
-PRIM_MEDIA_AUTO_PLAY Used with ll{Get,Set}PrimMediaParams to determine if media should start playing as soon as it is created
-PRIM_MEDIA_AUTO_SCALE Used with ll{Get,Set}PrimMediaParams to determine if media should scale to fit the face it is on
-PRIM_MEDIA_AUTO_ZOOM Used with ll{Get,Set}PrimMediaParams to determine if the user would zoom in when viewing media
-PRIM_MEDIA_FIRST_CLICK_INTERACT Used with ll{Get,Set}PrimMediaParams to determine whether the user interacts with media or not when she first clicks it (versus selection)
-PRIM_MEDIA_WIDTH_PIXELS Used with ll{Get,Set}PrimMediaParams to access the media's width in pixels
-PRIM_MEDIA_HEIGHT_PIXELS Used with ll{Get,Set}PrimMediaParams to access the media's height in pixels
-PRIM_MEDIA_WHITELIST_ENABLE Used with ll{Get,Set}PrimMediaParams to determine if the domain whitelist is enabled
-PRIM_MEDIA_WHITELIST Used with ll{Get,Set}PrimMediaParams to access the media's list of allowable URL prefixes to navigate to
-PRIM_MEDIA_PERMS_INTERACT Used with ll{Get,Set}PrimMediaParams to determine the permissions for who can interact with the media
-PRIM_MEDIA_PERMS_CONTROL Used with ll{Get,Set}PrimMediaParams to determine the permissions for who has controls
-PRIM_MEDIA_PARAM_MAX The value of the largest media param
-
-PRIM_MEDIA_CONTROLS_STANDARD Used with ll{Get,Set}PrimMediaParams, a PRIM_MEDIA_CONTROLS value meaning "standard controls"
-PRIM_MEDIA_CONTROLS_MINI Used with ll{Get,Set}PrimMediaParams, a PRIM_MEDIA_CONTROLS value meaning "mini controls"
-
-PRIM_MEDIA_PERM_NONE Used with ll{Get,Set}PrimMediaParams, a PRIM_MEDIA_PERMS_INTERACT or PRIM_MEDIA_PERMS_CONTROL bit, no permissions
-PRIM_MEDIA_PERM_OWNER Used with ll{Get,Set}PrimMediaParams, a PRIM_MEDIA_PERMS_INTERACT or PRIM_MEDIA_PERMS_CONTROL bit, owner permissions
-PRIM_MEDIA_PERM_GROUP Used with ll{Get,Set}PrimMediaParams, a PRIM_MEDIA_PERMS_INTERACT or PRIM_MEDIA_PERMS_CONTROL bit, group permissions
-PRIM_MEDIA_PERM_ANYONE Used with ll{Get,Set}PrimMediaParams, a PRIM_MEDIA_PERMS_INTERACT or PRIM_MEDIA_PERMS_CONTROL bit, anyone has permissions
-
-PRIM_MEDIA_MAX_URL_LENGTH Used with ll{Get,Set}PrimMediaParams, the maximum length of PRIM_MEDIA_CURRENT_URL or PRIM_MEDIA_HOME_URL
-PRIM_MEDIA_MAX_WHITELIST_SIZE Used with ll{Get,Set}PrimMediaParams, the maximum length, in bytes, of PRIM_MEDIA_WHITELIST
-PRIM_MEDIA_MAX_WHITELIST_COUNT Used with ll{Get,Set}PrimMediaParams, the maximum number of items allowed in PRIM_MEDIA_WHITELIST
-PRIM_MEDIA_MAX_WIDTH_PIXELS Used with ll{Get,Set}PrimMediaParams, the maximum width allowed in PRIM_MEDIA_WIDTH_PIXELS
-PRIM_MEDIA_MAX_HEIGHT_PIXELS Used with ll{Get,Set}PrimMediaParams, the maximum width allowed in PRIM_MEDIA_HEIGHT_PIXELS
-
-STATUS_OK Result of function call was success
-STATUS_MALFORMED_PARAMS Function was called with malformed params
-STATUS_TYPE_MISMATCH Argument(s) passed to function had a type mismatch
-STATUS_BOUNDS_ERROR Argument(s) passed to function had a bounds error
-STATUS_NOT_FOUND Object or other item was not found
-STATUS_NOT_SUPPORTED Feature not supported
-STATUS_INTERNAL_ERROR An internal error occurred
-STATUS_WHITELIST_FAILED URL failed to pass whitelist
-
-PROFILE_NONE Disables profiling
-PROFILE_SCRIPT_MEMORY Enables memory profiling
-
-RC_DATA_FLAGS TODO: add documentation
-RC_DETECT_PHANTOM TODO: add documentation
-RC_GET_LINK_NUM TODO: add documentation
-RC_GET_NORMAL TODO: add documentation
-RC_GET_ROOT_KEY TODO: add documentation
-RC_MAX_HITS TODO: add documentation
-RC_REJECT_TYPES Optional parameter set in llCastRay() to reject hit against certain object types.
-RC_REJECT_AGENTS Bit mask for RC_REJECT_TYPES, rejects hits against avatars.
-RC_REJECT_PHYSICAL Bit mask for RC_REJECT_TYPES, rejects hits against moving objects.
-RC_REJECT_NONPHYSICAL Bit mask for RC_REJECT_TYPES, rejects hits against non-moving objects.
-RC_REJECT_LAND Bit mask for RC_REJECT_TYPES, rejects hits against the terrian.
-
-RCERR_CAST_TIME_EXCEEDED TODO: add documentation
-RCERR_SIM_PERF_LOW TODO: add documentation
-RCERR_UNKNOWN TODO: add documentation
-
-ESTATE_ACCESS_ALLOWED_AGENT_ADD TODO: add documentation
-ESTATE_ACCESS_ALLOWED_AGENT_REMOVE TODO: add documentation
-ESTATE_ACCESS_ALLOWED_GROUP_ADD TODO: add documentation
-ESTATE_ACCESS_ALLOWED_GROUP_REMOVE TODO: add documentation
-ESTATE_ACCESS_BANNED_AGENT_ADD TODO: add documentation
-ESTATE_ACCESS_BANNED_AGENT_REMOVE TODO: add documentation
-
-DENSITY TODO: add documentation
-FRICTION TODO: add documentation
-RESTITUTION TODO: add documentation
-GRAVITY_MULTIPLIER TODO: add documentation
-
-KFM_COMMAND TODO: add documentation
-KFM_CMD_PLAY TODO: add documentation
-KFM_CMD_STOP TODO: add documentation
-KFM_CMD_PAUSE TODO: add documentation
-KFM_CMD_SET_MODE TODO: add documentation
-KFM_MODE TODO: add documentation
-KFM_FORWARD TODO: add documentation
-KFM_LOOP TODO: add documentation
-KFM_PING_PONG TODO: add documentation
-KFM_REVERSE TODO: add documentation
-KFM_DATA TODO: add documentation
-KFM_ROTATION TODO: add documentation
-KFM_TRANSLATION TODO: add documentation
-
-CHARACTER_CMD_STOP TODO: add documentation
-CHARACTER_CMD_JUMP TODO: add documentation
-
-CHARACTER_DESIRED_SPEED TODO: add documentation
-CHARACTER_RADIUS TODO: add documentation
-CHARACTER_LENGTH TODO: add documentation
-CHARACTER_ORIENTATION TODO: add documentation
-CHARACTER_AVOIDANCE_MODE TODO: add documentation
-PURSUIT_OFFSET TODO: add documentation
-REQUIRE_LINE_OF_SIGHT TODO: add documentation
-PURSUIT_FUZZ_FACTOR TODO: add documentation
-PURSUIT_INTERCEPT TODO: add documentation
-FORCE_DIRECT_PATH TODO: add documentation
-VERTICAL TODO: add documentation
-HORIZONTAL TODO: add documentation
-AVOID_CHARACTERS TODO: add documentation
-AVOID_DYNAMIC_OBSTACLES TODO: add documentation
-
-PU_EVADE_HIDDEN Triggered when an llEvade character thinks it has hidden from its pursuer.
-PU_EVADE_SPOTTED Triggered when an llEvade character switches from hiding to running
-PU_FAILURE_INVALID_GOAL Goal is not on the navigation-mesh and cannot be reached.
-PU_FAILURE_INVALID_START Character cannot navigate from the current location - e.g., the character is off the navmesh or too high above it.
-PU_FAILURE_NO_VALID_DESTINATION There's no good place for the character to go - e.g., it is patrolling and all the patrol points are now unreachable.
-PU_FAILURE_OTHER Unknown failure
-PU_FAILURE_TARGET_GONE Target (for llPursue or llEvade) can no longer be tracked - e.g., it left the region or is an avatar that is now more than about 30m outside the region.
-PU_FAILURE_UNREACHABLE Goal is no longer reachable for some reason - e.g., an obstacle blocks the path.
-PU_GOAL_REACHED Character has reached the goal and will stop or choose a new goal (if wandering).
-PU_SLOWDOWN_DISTANCE_REACHED Character is near current goal.
-
-CHARACTER_TYPE TODO: add documentation
-CHARACTER_TYPE_A TODO: add documentation
-CHARACTER_TYPE_B TODO: add documentation
-CHARACTER_TYPE_C TODO: add documentation
-CHARACTER_TYPE_D TODO: add documentation
-CHARACTER_TYPE_NONE TODO: add documentation
-
-TRAVERSAL_TYPE TODO: add documentation
-TRAVERSAL_TYPE_SLOW TODO: add documentation
-TRAVERSAL_TYPE_FAST TODO: add documentation
-TRAVERSAL_TYPE_NONE TODO: add documentation
-
-CHARACTER_MAX_ACCEL TODO: add documentation
-CHARACTER_MAX_DECEL TODO: add documentation
-CHARACTER_MAX_ANGULAR_SPEED TODO: add documentation
-CHARACTER_MAX_ANGULAR_ACCEL TODO: add documentation
-CHARACTER_TURN_SPEED_MULTIPLIER TODO: add documentation
-
-# string constants
-[word .1, .3, .5]
-NULL_KEY Indicates an empty key
-EOF Indicates the last line of a notecard was read
-TEXTURE_BLANK UUID for the "Blank" texture
-TEXTURE_DEFAULT Alias for TEXTURE_PLYWOOD
-TEXTURE_MEDIA UUID for the "Default Media" texture
-TEXTURE_PLYWOOD UUID for the default "Plywood" texture
-TEXTURE_TRANSPARENT UUID for the "White - Transparent" texture
-
-URL_REQUEST_GRANTED Used with http_request when a public URL is successfully granted
-URL_REQUEST_DENIED Used with http_request when a public URL is not available
-
-# float constants
-[word .3, .1, .5]
-PI 3.1415926535897932384626433832795
-TWO_PI 6.283185307179586476925286766559
-PI_BY_TWO 1.5707963267948966192313216916398
-DEG_TO_RAD To convert from degrees to radians
-RAD_TO_DEG To convert from radians to degrees
-SQRT2 1.4142135623730950488016887242097
-
-# compound constants
-[word .4, .2, .4]
-ZERO_VECTOR <0.0, 0.0, 0.0>
-ZERO_ROTATION <0.0, 0.0, 0.0, 1.0>
-
-
-# flow control keywords
-[word 0, 0, .8]
-for for loop:for (initializer; test; iteration):{: statements:}
-do do loop:do:{: statements:} while (test);
-while while loop:while (test):{ statements:}
-if if statement:if (test):{ statements:}
-else else clause:if (test):{ statements:}:else:{ statements:}
-jump jump statement:jump label;:
-return Leave current function or event handler
-
-# flow control label
-[line 0, 0, .8]
-@ Label:Target for jump statement
-
-# Comment
-[one_sided_delimiter .8, .3, .15]
-// Comment:Non-functional commentary or disabled code
-[two_sided_delimiter .8, .3, .15]
-/* */ Comment:Non-functional commentary or disabled code
-
-# String literals
-[double_quotation_marks 0, .2, 0]
-" String literal
-
-#functions are supplied by the program now
diff --git a/indra/newview/app_settings/keywords_lsl_default.xml b/indra/newview/app_settings/keywords_lsl_default.xml
new file mode 100755
index 0000000000..7bdd63e79d
--- /dev/null
+++ b/indra/newview/app_settings/keywords_lsl_default.xml
@@ -0,0 +1,18256 @@
+<?xml version="1.0" encoding="UTF-8"?><?xml-model href="llsd-lsl-syntax.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
+<llsd>
+ <map>
+ <key>controls</key>
+ <map>
+ <key>default</key>
+ <map>
+ <key>tooltip</key>
+ <string>All scripts must have a default state, which is the first state entered when the script starts.</string>
+ </map>
+ <key>do</key>
+ <map>
+ <key>tooltip</key>
+ <string>do / while loop</string>
+ </map>
+ <key>else</key>
+ <map>
+ <key>tooltip</key>
+ <string>if / else block</string>
+ </map>
+ <key>for</key>
+ <map>
+ <key>tooltip</key>
+ <string>for loop</string>
+ </map>
+ <key>if</key>
+ <map>
+ <key>tooltip</key>
+ <string>if / else block</string>
+ </map>
+ <key>jump</key>
+ <map>
+ <key>tooltip</key>
+ <string>jump statement\njump &lt;label&gt;</string>
+ </map>
+ <key>return</key>
+ <map>
+ <key>tooltip</key>
+ <string>Leave current event or function.</string>
+ </map>
+ <key>state</key>
+ <map>
+ <key>tooltip</key>
+ <string>state &lt;target&gt;\nIf the target state is not the same as the current one, change to the target state.</string>
+ </map>
+ <key>while</key>
+ <map>
+ <key>tooltip</key>
+ <string>while loop\nwhile (&lt;condition&gt;) {\n,,,\n}</string>
+ </map>
+ </map>
+ <key>types</key>
+ <map>
+ <key>float</key>
+ <map>
+ <key>tooltip</key>
+ <string>32 bit floating point value.\nThe range is 1.175494351E-38 to 3.402823466E+38.</string>
+ </map>
+ <key>integer</key>
+ <map>
+ <key>tooltip</key>
+ <string>32 bit integer value.\n−2,147,483,648 and +2,147,483,647 (that is 0x80000000 to 0x7FFFFFFF in hex).</string>
+ </map>
+ <key>key</key>
+ <map>
+ <key>tooltip</key>
+ <string>A 128 bit unique identifier (UUID).</string>
+ </map>
+ <key>list</key>
+ <map>
+ <key>tooltip</key>
+ <string>A collection of other data types.</string>
+ </map>
+ <key>quaternion</key>
+ <map>
+ <key>tooltip</key>
+ <string>The quaternion type is a left over from way back when LSL was created. It was later renamed to &lt;rotation&gt; to make it more user friendly, but it appears someone forgot to remove it ;-)</string>
+ </map>
+ <key>rotation</key>
+ <map>
+ <key>tooltip</key>
+ <string>The rotation type is one of several ways to represent an orientation in 3D.</string>
+ </map>
+ <key>string</key>
+ <map>
+ <key>tooltip</key>
+ <string>Text data.</string>
+ </map>
+ <key>vector</key>
+ <map>
+ <key>tooltip</key>
+ <string>A vector is a data type that contains a set of three float values.</string>
+ </map>
+ </map>
+ <key>constants</key>
+ <map>
+ <key>ACTIVE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x2</string>
+ <key>tooltip</key>
+ <string>Objects in world that are running a script or currently physically moving.</string>
+ </map>
+ <key>AGENT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x1</string>
+ <key>tooltip</key>
+ <string>Objects in world that are agents.</string>
+ </map>
+ <key>AGENT_ALWAYS_RUN</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x1000</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>AGENT_ATTACHMENTS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x2</string>
+ <key>tooltip</key>
+ <string>The agent has attachments.</string>
+ </map>
+ <key>AGENT_AUTOPILOT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x2000</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>AGENT_AWAY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x40</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>AGENT_BUSY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x800</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>AGENT_BY_LEGACY_NAME</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x1</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>AGENT_BY_USERNAME</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x10</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>AGENT_CROUCHING</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x400</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>AGENT_FLYING</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x1</string>
+ <key>tooltip</key>
+ <string>The agent is flying.</string>
+ </map>
+ <key>AGENT_IN_AIR</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x100</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>AGENT_LIST_PARCEL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string>Agents on the same parcel where the script is running.</string>
+ </map>
+ <key>AGENT_LIST_PARCEL_OWNER</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string>Agents on any parcel in the region where the parcel owner is the same as the owner of the parcel under the scripted object.</string>
+ </map>
+ <key>AGENT_LIST_REGION</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>tooltip</key>
+ <string>All agents in the region.</string>
+ </map>
+ <key>AGENT_MOUSELOOK</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x8</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>AGENT_ON_OBJECT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x20</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>AGENT_SCRIPTED</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x4</string>
+ <key>tooltip</key>
+ <string>The agent has scripted attachments.</string>
+ </map>
+ <key>AGENT_SITTING</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x10</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>AGENT_TYPING</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x200</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>AGENT_WALKING</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x80</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>ALL_SIDES</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>-1</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>ANIM_ON</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x1</string>
+ <key>tooltip</key>
+ <string>Texture animation is on.</string>
+ </map>
+ <key>ATTACH_AVATAR_CENTER</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>40</integer>
+ <key>tooltip</key>
+ <string>Attach to the avatar's geometric centre.</string>
+ </map>
+ <key>ATTACH_BACK</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>9</integer>
+ <key>tooltip</key>
+ <string>Attach to the avatar's back.</string>
+ </map>
+ <key>ATTACH_BELLY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>28</integer>
+ <key>tooltip</key>
+ <string>Attach to the avatar's belly.</string>
+ </map>
+ <key>ATTACH_CHEST</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string>Attach to the avatar's chest.</string>
+ </map>
+ <key>ATTACH_CHIN</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>12</integer>
+ <key>tooltip</key>
+ <string>Attach to the avatar's chin.</string>
+ </map>
+ <key>ATTACH_HEAD</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string>Attach to the avatar's head.</string>
+ </map>
+ <key>ATTACH_HUD_BOTTOM</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>37</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>ATTACH_HUD_BOTTOM_LEFT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>36</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>ATTACH_HUD_BOTTOM_RIGHT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>38</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>ATTACH_HUD_CENTER_1</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>35</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>ATTACH_HUD_CENTER_2</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>31</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>ATTACH_HUD_TOP_CENTER</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>33</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>ATTACH_HUD_TOP_LEFT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>34</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>ATTACH_HUD_TOP_RIGHT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>32</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>ATTACH_LEAR</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>13</integer>
+ <key>tooltip</key>
+ <string>Attach to the avatar's left ear.</string>
+ </map>
+ <key>ATTACH_LEFT_PEC</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>29</integer>
+ <key>tooltip</key>
+ <string>Attach to the avatar's left pectoral.</string>
+ </map>
+ <key>ATTACH_LEYE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>15</integer>
+ <key>tooltip</key>
+ <string>Attach to the avatar's left eye.</string>
+ </map>
+ <key>ATTACH_LFOOT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>7</integer>
+ <key>tooltip</key>
+ <string>Attach to the avatar's left foot.</string>
+ </map>
+ <key>ATTACH_LHAND</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>5</integer>
+ <key>tooltip</key>
+ <string>Attach to the avatar's left hand.</string>
+ </map>
+ <key>ATTACH_LHIP</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>25</integer>
+ <key>tooltip</key>
+ <string>Attach to the avatar's left hip.</string>
+ </map>
+ <key>ATTACH_LLARM</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>21</integer>
+ <key>tooltip</key>
+ <string>Attach to the avatar's left lower arm.</string>
+ </map>
+ <key>ATTACH_LLLEG</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>27</integer>
+ <key>tooltip</key>
+ <string>Attach to the avatar's lower left leg.</string>
+ </map>
+ <key>ATTACH_LPEC</key>
+ <map>
+ <key>deprecated</key>
+ <boolean>true</boolean>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>30</integer>
+ <key>tooltip</key>
+ <string>Attach to the avatar's right pectoral. (Deprecated, use ATTACH_RIGHT_PEC)</string>
+ </map>
+ <key>ATTACH_LSHOULDER</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>tooltip</key>
+ <string>Attach to the avatar's left shoulder.</string>
+ </map>
+ <key>ATTACH_LUARM</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>20</integer>
+ <key>tooltip</key>
+ <string>Attach to the avatar's left upper arm.</string>
+ </map>
+ <key>ATTACH_LULEG</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>27</integer>
+ <key>tooltip</key>
+ <string>Attach to the avatar's lower upper leg.</string>
+ </map>
+ <key>ATTACH_MOUTH</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>11</integer>
+ <key>tooltip</key>
+ <string>Attach to the avatar's mouth.</string>
+ </map>
+ <key>ATTACH_NECK</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>39</integer>
+ <key>tooltip</key>
+ <string>Attach to the avatar's neck.</string>
+ </map>
+ <key>ATTACH_NOSE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>17</integer>
+ <key>tooltip</key>
+ <string>Attach to the avatar's nose.</string>
+ </map>
+ <key>ATTACH_PELVIS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>10</integer>
+ <key>tooltip</key>
+ <string>Attach to the avatar's pelvis.</string>
+ </map>
+ <key>ATTACH_REAR</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>14</integer>
+ <key>tooltip</key>
+ <string>Attach to the avatar's right ear.</string>
+ </map>
+ <key>ATTACH_REYE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>16</integer>
+ <key>tooltip</key>
+ <string>Attach to the avatar's right eye.</string>
+ </map>
+ <key>ATTACH_RFOOT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>8</integer>
+ <key>tooltip</key>
+ <string>Attach to the avatar's right foot.</string>
+ </map>
+ <key>ATTACH_RHAND</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>6</integer>
+ <key>tooltip</key>
+ <string>Attach to the avatar's right hand.</string>
+ </map>
+ <key>ATTACH_RHIP</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>22</integer>
+ <key>tooltip</key>
+ <string>Attach to the avatar's right hip.</string>
+ </map>
+ <key>ATTACH_RIGHT_PEC</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>30</integer>
+ <key>tooltip</key>
+ <string>Attach to the avatar's right pectoral.</string>
+ </map>
+ <key>ATTACH_RLARM</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>19</integer>
+ <key>tooltip</key>
+ <string>Attach to the avatar's right lower arm.</string>
+ </map>
+ <key>ATTACH_RLLEG</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>24</integer>
+ <key>tooltip</key>
+ <string>Attach to the avatar's right lower leg.</string>
+ </map>
+ <key>ATTACH_RPEC</key>
+ <map>
+ <key>deprecated</key>
+ <boolean>true</boolean>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>29</integer>
+ <key>tooltip</key>
+ <string>Attach to the avatar's left pectoral. (deprecated, use ATTACH_LEFT_PEC)</string>
+ </map>
+ <key>ATTACH_RSHOULDER</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>tooltip</key>
+ <string>Attach to the avatar's right shoulder.</string>
+ </map>
+ <key>ATTACH_RUARM</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>18</integer>
+ <key>tooltip</key>
+ <string>Attach to the avatar's right upper arm.</string>
+ </map>
+ <key>ATTACH_RULEG</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>23</integer>
+ <key>tooltip</key>
+ <string>Attach to the avatar's right upper leg.</string>
+ </map>
+ <key>AVOID_CHARACTERS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>AVOID_DYNAMIC_OBSTACLES</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>AVOID_NONE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>CAMERA_ACTIVE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>12</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>CAMERA_BEHINDNESS_ANGLE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>8</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>CAMERA_BEHINDNESS_LAG</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>9</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>CAMERA_DISTANCE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>7</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>CAMERA_FOCUS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>17</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>CAMERA_FOCUS_LAG</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>6</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>CAMERA_FOCUS_LOCKED</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>22</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>CAMERA_FOCUS_OFFSET</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>CAMERA_FOCUS_THRESHOLD</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>11</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>CAMERA_PITCH</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>CAMERA_POSITION</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>13</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>CAMERA_POSITION_LAG</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>6</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>CAMERA_POSITION_LOCKED</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>22</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>CAMERA_POSITION_THRESHOLD</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>10</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>CHANGED_ALLOWED_DROP</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x40</string>
+ <key>tooltip</key>
+ <string>The object inventory has changed because an item was added through the llAllowInventoryDrop interface.</string>
+ </map>
+ <key>CHANGED_COLOR</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x2</string>
+ <key>tooltip</key>
+ <string>The object colour has changed.</string>
+ </map>
+ <key>CHANGED_INVENTORY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x1</string>
+ <key>tooltip</key>
+ <string>The object inventory has changed.</string>
+ </map>
+ <key>CHANGED_LINK</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x20</string>
+ <key>tooltip</key>
+ <string>The object has linked or its links were broken.</string>
+ </map>
+ <key>CHANGED_MEDIA</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2048</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>CHANGED_OWNER</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x80</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>CHANGED_REGION</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x100</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>CHANGED_REGION_START</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x400</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>CHANGED_SCALE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x8</string>
+ <key>tooltip</key>
+ <string>The object scale (size) has changed.</string>
+ </map>
+ <key>CHANGED_SHAPE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x4</string>
+ <key>tooltip</key>
+ <string>The object base shape has changed, e.g., a box to a cylinder.</string>
+ </map>
+ <key>CHANGED_TELEPORT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x200</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>CHANGED_TEXTURE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x10</string>
+ <key>tooltip</key>
+ <string>The texture offset, scale rotation, or simply the object texture has changed.</string>
+ </map>
+ <key>CHARACTER_ACCOUNT_FOR_SKIPPED_FRAMES</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>14</integer>
+ <key>tooltip</key>
+ <string>If set to false, character will not attempt to catch up on lost time when pathfinding performance is low, potentially providing more reliable movement (albeit while potentially appearing to be more stuttery). Default is true to match pre-existing behavior.</string>
+ </map>
+ <key>CHARACTER_AVOIDANCE_MODE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>5</integer>
+ <key>tooltip</key>
+ <string>Allows you to specify that a character should not try to avoid other characters, should not try to avoid dynamic obstacles (relatively fast moving objects and avatars), or both.</string>
+ </map>
+ <key>CHARACTER_CMD_JUMP</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x01</string>
+ <key>tooltip</key>
+ <string>Makes the character jump. Requires an additional parameter, the height to jump, between 0.1m and 2.0m. This must be provided as the first element of the llExecCharacterCmd option list.</string>
+ </map>
+ <key>CHARACTER_CMD_SMOOTH_STOP</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>CHARACTER_CMD_STOP</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x00</string>
+ <key>tooltip</key>
+ <string>Stops any current pathfinding operation.</string>
+ </map>
+ <key>CHARACTER_DESIRED_SPEED</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string>Speed of pursuit in meters per second.</string>
+ </map>
+ <key>CHARACTER_DESIRED_TURN_SPEED</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>12</integer>
+ <key>tooltip</key>
+ <string>The character's maximum speed while turning about the Z axis. - Note that this is only loosely enforced.</string>
+ </map>
+ <key>CHARACTER_LENGTH</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>tooltip</key>
+ <string>Set collision capsule length - cannot be less than two times the radius.</string>
+ </map>
+ <key>CHARACTER_MAX_ACCEL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>8</integer>
+ <key>tooltip</key>
+ <string>The character's maximum acceleration rate.</string>
+ </map>
+ <key>CHARACTER_MAX_DECEL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>9</integer>
+ <key>tooltip</key>
+ <string>The character's maximum deceleration rate.</string>
+ </map>
+ <key>CHARACTER_MAX_SPEED</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>13</integer>
+ <key>tooltip</key>
+ <string>The character's maximum speed.</string>
+ </map>
+ <key>CHARACTER_MAX_TURN_RADIUS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>10</integer>
+ <key>tooltip</key>
+ <string>The character's turn radius when travelling at CHARACTER_MAX_TURN_SPEED.</string>
+ </map>
+ <key>CHARACTER_ORIENTATION</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>tooltip</key>
+ <string>Valid options are: VERTICAL, HORIZONTAL.</string>
+ </map>
+ <key>CHARACTER_RADIUS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string>Set collision capsule radius.</string>
+ </map>
+ <key>CHARACTER_STAY_WITHIN_PARCEL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>15</integer>
+ <key>tooltip</key>
+ <string>Determines whether a character can leave its starting parcel.\nTakes a boolean parameter. If TRUE, the character cannot voluntarilly leave the parcel, but can return to it.</string>
+ </map>
+ <key>CHARACTER_TYPE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>6</integer>
+ <key>tooltip</key>
+ <string>Specifies which walk-ability coefficient will be used by this character.</string>
+ </map>
+ <key>CHARACTER_TYPE_A</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>CHARACTER_TYPE_B</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>CHARACTER_TYPE_C</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>CHARACTER_TYPE_D</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>CHARACTER_TYPE_NONE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>CLICK_ACTION_BUY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string>When the prim is clicked, the buy dialog is opened.</string>
+ </map>
+ <key>CLICK_ACTION_NONE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>tooltip</key>
+ <string>Performs the default action: when the prim is clicked, touch events are triggered.</string>
+ </map>
+ <key>CLICK_ACTION_OPEN</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>tooltip</key>
+ <string>When the prim is clicked, the object inventory dialog is opened.</string>
+ </map>
+ <key>CLICK_ACTION_OPEN_MEDIA</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>6</integer>
+ <key>tooltip</key>
+ <string>When the prim is touched, the web media dialog is opened.</string>
+ </map>
+ <key>CLICK_ACTION_PAY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>tooltip</key>
+ <string>When the prim is clicked, the pay dialog is opened.</string>
+ </map>
+ <key>CLICK_ACTION_PLAY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>5</integer>
+ <key>tooltip</key>
+ <string>When the prim is clicked, html-on-a-prim is enabled?</string>
+ </map>
+ <key>CLICK_ACTION_SIT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string>When the prim is clicked, the avatar sits upon it.</string>
+ </map>
+ <key>CLICK_ACTION_TOUCH</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>tooltip</key>
+ <string>When the prim is clicked, touch events are triggered.</string>
+ </map>
+ <key>CONTENT_TYPE_ATOM</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>tooltip</key>
+ <string>"application/atom+xml"</string>
+ </map>
+ <key>CONTENT_TYPE_FORM</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>7</integer>
+ <key>tooltip</key>
+ <string>"application/x-www-form-urlencoded"</string>
+ </map>
+ <key>CONTENT_TYPE_HTML</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string>"text/html", only valid for embedded browsers on content owned by the person viewing. Falls back to "text/plain" otherwise.</string>
+ </map>
+ <key>CONTENT_TYPE_JSON</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>5</integer>
+ <key>tooltip</key>
+ <string>"application/json"</string>
+ </map>
+ <key>CONTENT_TYPE_LLSD</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>6</integer>
+ <key>tooltip</key>
+ <string>"application/llsd+xml"</string>
+ </map>
+ <key>CONTENT_TYPE_RSS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>8</integer>
+ <key>tooltip</key>
+ <string>"application/rss+xml"</string>
+ </map>
+ <key>CONTENT_TYPE_TEXT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>tooltip</key>
+ <string>"text/plain"</string>
+ </map>
+ <key>CONTENT_TYPE_XHTML</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>tooltip</key>
+ <string>"application/xhtml+xml"</string>
+ </map>
+ <key>CONTENT_TYPE_XML</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string>"application/xml"</string>
+ </map>
+ <key>CONTROL_BACK</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x2</string>
+ <key>tooltip</key>
+ <string>Test for the avatar move back control.</string>
+ </map>
+ <key>CONTROL_DOWN</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x20</string>
+ <key>tooltip</key>
+ <string>Test for the avatar move down control.</string>
+ </map>
+ <key>CONTROL_FWD</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x1</string>
+ <key>tooltip</key>
+ <string>Test for the avatar move forward control.</string>
+ </map>
+ <key>CONTROL_LBUTTON</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x10000000</string>
+ <key>tooltip</key>
+ <string>Test for the avatar left button control.</string>
+ </map>
+ <key>CONTROL_LEFT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x4</string>
+ <key>tooltip</key>
+ <string>Test for the avatar move left control.</string>
+ </map>
+ <key>CONTROL_ML_LBUTTON</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x40000000</string>
+ <key>tooltip</key>
+ <string>Test for the avatar left button control while in mouse look.</string>
+ </map>
+ <key>CONTROL_RIGHT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x8</string>
+ <key>tooltip</key>
+ <string>Test for the avatar move right control.</string>
+ </map>
+ <key>CONTROL_ROT_LEFT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x100</string>
+ <key>tooltip</key>
+ <string>Test for the avatar rotate left control.</string>
+ </map>
+ <key>CONTROL_ROT_RIGHT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x200</string>
+ <key>tooltip</key>
+ <string>Test for the avatar rotate right control.</string>
+ </map>
+ <key>CONTROL_UP</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x10</string>
+ <key>tooltip</key>
+ <string>Test for the avatar move up control.</string>
+ </map>
+ <key>DATA_BORN</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>tooltip</key>
+ <string>The date the agent was born, returned in ISO 8601 format of YYYY-MM-DD.</string>
+ </map>
+ <key>DATA_NAME</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string>The name of the agent.</string>
+ </map>
+ <key>DATA_ONLINE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string>TRUE for online, FALSE for offline.</string>
+ </map>
+ <key>DATA_PAYINFO</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>8</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>DATA_RATING</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>tooltip</key>
+ <string>Returns the agent ratings as a comma separated string of six integers. They are:
+ 1) Positive rated behaviour
+ 2) Negative rated behaviour
+ 3) Positive rated appearance
+ 4) Negative rated appearance
+ 5) Positive rated building
+ 6) Negative rated building</string>
+ </map>
+ <key>DATA_SIM_POS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>5</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>DATA_SIM_RATING</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>7</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>DATA_SIM_STATUS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>6</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>DEBUG_CHANNEL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2147483647</integer>
+ <key>tooltip</key>
+ <string>DEBUG_CHANNEL is an integer constant that, when passed to llSay, llWhisper, or llShout as a channel parameter, will print text to the Script Warning/Error Window.</string>
+ </map>
+ <key>DEG_TO_RAD</key>
+ <map>
+ <key>type</key>
+ <string>float</string>
+ <key>value</key>
+ <real>0.01745329</real>
+ <key>tooltip</key>
+ <string>0.01745329 - Number of radians per degree.
+ You can use this to convert degrees to radians by multiplying the degrees by this number.</string>
+ </map>
+ <key>DENSITY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string>Used with llSetPhysicsMaterial to enable the density value. Must be between 1.0 and 22587.0 (in Kg/m^3 -- see if you can figure out what 22587 represents)</string>
+ </map>
+ <key>EOF</key>
+ <map>
+ <key>type</key>
+ <string>string</string>
+ <key>value</key>
+ <string>0x0A0x0A0x0A</string>
+ <key>tooltip</key>
+ <string>Indicates the last line of a notecard was read.</string>
+ </map>
+ <key>ERR_GENERIC</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>-1</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>ERR_MALFORMED_PARAMS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>-3</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>ERR_PARCEL_PERMISSIONS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>-2</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>ERR_RUNTIME_PERMISSIONS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>-4</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>ERR_THROTTLED</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>-5</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>ESTATE_ACCESS_ALLOWED_AGENT_ADD</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>tooltip</key>
+ <string>Add the agent to this estate's Allowed Residents list.</string>
+ </map>
+ <key>ESTATE_ACCESS_ALLOWED_AGENT_REMOVE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>8</integer>
+ <key>tooltip</key>
+ <string>Remove the agent from this estate's Allowed Residents list.</string>
+ </map>
+ <key>ESTATE_ACCESS_ALLOWED_GROUP_ADD</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>16</integer>
+ <key>tooltip</key>
+ <string>Add the group to this estate's Allowed groups list.</string>
+ </map>
+ <key>ESTATE_ACCESS_ALLOWED_GROUP_REMOVE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>32</integer>
+ <key>tooltip</key>
+ <string>Remove the group from this estate's Allowed groups list.</string>
+ </map>
+ <key>ESTATE_ACCESS_BANNED_AGENT_ADD</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>64</integer>
+ <key>tooltip</key>
+ <string>Add the agent to this estate's Banned residents list.</string>
+ </map>
+ <key>ESTATE_ACCESS_BANNED_AGENT_REMOVE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>128</integer>
+ <key>tooltip</key>
+ <string>Remove the agent from this estate's Banned residents list.</string>
+ </map>
+ <key>FALSE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>tooltip</key>
+ <string>An integer constant for boolean comparisons. Has the value '0'.</string>
+ </map>
+ <key>FORCE_DIRECT_PATH</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string>Makes character navigate in a straight line toward position. May be set to TRUE or FALSE.</string>
+ </map>
+ <key>FRICTION</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string>Used with llSetPhysicsMaterial to enable the friction value. Must be between 0.0 and 255.0</string>
+ </map>
+ <key>GCNP_RADIUS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>GCNP_STATIC</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>GRAVITY_MULTIPLIER</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>8</integer>
+ <key>tooltip</key>
+ <string>Used with llSetPhysicsMaterial to enable the gravity multiplier value. Must be between -1.0 and +28.0</string>
+ </map>
+ <key>HORIZONTAL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>HTTP_BODY_MAXLENGTH</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>HTTP_BODY_TRUNCATED</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>HTTP_CUSTOM_HEADER</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>5</integer>
+ <key>tooltip</key>
+ <string>Add an extra custom HTTP header to the request. The first string is the name of the parameter to change, e.g. "Pragma", and the second string is the value, e.g. "no-cache". Up to 8 custom headers may be configured per request. Note that certain headers, such as the default headers, are blocked for security reasons.</string>
+ </map>
+ <key>HTTP_METHOD</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>HTTP_MIMETYPE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>HTTP_PRAGMA_NO_CACHE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>6</integer>
+ <key>tooltip</key>
+ <string>Allows enabling/disbling of the "Pragma: no-cache" header.</string>
+ </map>
+ <key>HTTP_VERBOSE_THROTTLE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>HTTP_VERIFY_CERT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>INVENTORY_ALL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>-1</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>INVENTORY_ANIMATION</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>20</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>INVENTORY_BODYPART</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>13</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>INVENTORY_CLOTHING</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>5</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>INVENTORY_GESTURE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>21</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>INVENTORY_LANDMARK</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>INVENTORY_NONE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>-1</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>INVENTORY_NOTECARD</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>7</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>INVENTORY_OBJECT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>6</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>INVENTORY_SCRIPT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>10</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>INVENTORY_SOUND</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>INVENTORY_TEXTURE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>JSON_APPEND</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>-1</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>JSON_ARRAY</key>
+ <map>
+ <key>type</key>
+ <string>string</string>
+ <key>value</key>
+ <string>U+FDD2</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>JSON_DELETE</key>
+ <map>
+ <key>type</key>
+ <string>string</string>
+ <key>value</key>
+ <string>U+FDD8</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>JSON_FALSE</key>
+ <map>
+ <key>type</key>
+ <string>string</string>
+ <key>value</key>
+ <string>U+FDD7</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>JSON_INVALID</key>
+ <map>
+ <key>type</key>
+ <string>string</string>
+ <key>value</key>
+ <string>U+FDD0</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>JSON_NULL</key>
+ <map>
+ <key>type</key>
+ <string>string</string>
+ <key>value</key>
+ <string>U+FDD5</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>JSON_NUMBER</key>
+ <map>
+ <key>type</key>
+ <string>string</string>
+ <key>value</key>
+ <string>U+FDD3</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>JSON_OBJECT</key>
+ <map>
+ <key>type</key>
+ <string>string</string>
+ <key>value</key>
+ <string>U+FDD1</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>JSON_STRING</key>
+ <map>
+ <key>type</key>
+ <string>string</string>
+ <key>value</key>
+ <string>U+FDD4</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>JSON_TRUE</key>
+ <map>
+ <key>type</key>
+ <string>string</string>
+ <key>value</key>
+ <string>U+FDD6</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>KFM_CMD_PAUSE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string>For use with KFM_COMMAND.</string>
+ </map>
+ <key>KFM_CMD_PLAY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>tooltip</key>
+ <string>For use with KFM_COMMAND.</string>
+ </map>
+ <key>KFM_CMD_SET_MODE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>KFM_CMD_STOP</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string>For use with KFM_COMMAND.</string>
+ </map>
+ <key>KFM_COMMAND</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>KFM_DATA</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>KFM_FORWARD</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>tooltip</key>
+ <string>For use with KFM_MODE.</string>
+ </map>
+ <key>KFM_LOOP</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string>For use with KFM_MODE.</string>
+ </map>
+ <key>KFM_MODE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>KFM_PING_PONG</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string>For use with KFM_MODE.</string>
+ </map>
+ <key>KFM_REVERSE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>tooltip</key>
+ <string>For use with KFM_MODE.</string>
+ </map>
+ <key>KFM_ROTATION</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string>For use with KFM_DATA.</string>
+ </map>
+ <key>KFM_TRANSLATION</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string>For use with KFM_DATA.</string>
+ </map>
+ <key>LAND_LARGE_BRUSH</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>tooltip</key>
+ <string>Use a large brush size.\nNOTE: This value is incorrect, a large brush should be 2.</string>
+ </map>
+ <key>LAND_LEVEL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>tooltip</key>
+ <string>Action to level the land.</string>
+ </map>
+ <key>LAND_LOWER</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string>Action to lower the land.</string>
+ </map>
+ <key>LAND_MEDIUM_BRUSH</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string>Use a medium brush size.\nNOTE: This value is incorrect, a medium brush should be 1.</string>
+ </map>
+ <key>LAND_NOISE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>LAND_RAISE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string>Action to raise the land.</string>
+ </map>
+ <key>LAND_REVERT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>5</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>LAND_SMALL_BRUSH</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string>Use a small brush size.\nNOTE: This value is incorrect, a small brush should be 0.</string>
+ </map>
+ <key>LAND_SMOOTH</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>LINK_ALL_CHILDREN</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>-3</integer>
+ <key>tooltip</key>
+ <string>This targets every object except the root in the linked set.</string>
+ </map>
+ <key>LINK_ALL_OTHERS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>-2</integer>
+ <key>tooltip</key>
+ <string>This targets every object in the linked set except the object with the script.</string>
+ </map>
+ <key>LINK_ROOT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string>This targets the root of the linked set.</string>
+ </map>
+ <key>LINK_SET</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>-1</integer>
+ <key>tooltip</key>
+ <string>This targets every object in the linked set.</string>
+ </map>
+ <key>LINK_THIS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>-4</integer>
+ <key>tooltip</key>
+ <string>The link number of the prim containing the script.</string>
+ </map>
+ <key>LIST_STAT_GEOMETRIC_MEAN</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>9</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>LIST_STAT_MAX</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>LIST_STAT_MEAN</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>LIST_STAT_MEDIAN</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>LIST_STAT_MIN</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>LIST_STAT_NUM_COUNT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>8</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>LIST_STAT_RANGE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>LIST_STAT_STD_DEV</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>5</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>LIST_STAT_SUM</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>6</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>LIST_STAT_SUM_SQUARES</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>7</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>LOOP</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x2</string>
+ <key>tooltip</key>
+ <string>Loop the texture animation.</string>
+ </map>
+ <key>MASK_BASE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>MASK_EVERYONE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>MASK_GROUP</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>MASK_NEXT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>MASK_OWNER</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>NULL_KEY</key>
+ <map>
+ <key>type</key>
+ <string>key</string>
+ <key>value</key>
+ <uuid>00000000-0000-0000-0000-000000000000</uuid>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>OBJECT_ATTACHED_POINT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>19</integer>
+ <key>tooltip</key>
+ <string>Gets the attachment point to which the object is attached.</string>
+ </map>
+ <key>OBJECT_CHARACTER_TIME</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>17</integer>
+ <key>tooltip</key>
+ <string>Units in seconds</string>
+ </map>
+ <key>OBJECT_CREATOR</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>8</integer>
+ <key>tooltip</key>
+ <string>Gets the object's creator key. If id is an avatar, a NULL_KEY is returned.</string>
+ </map>
+ <key>OBJECT_DESC</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string>Gets the object's description. If id is an avatar, an empty string is returned.</string>
+ </map>
+ <key>OBJECT_GROUP</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>7</integer>
+ <key>tooltip</key>
+ <string>Gets the prims's group key. If id is an avatar, a NULL_KEY is returned.</string>
+ </map>
+ <key>OBJECT_NAME</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string>Gets the object's name.</string>
+ </map>
+ <key>OBJECT_OWNER</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>6</integer>
+ <key>tooltip</key>
+ <string>Gets an object's owner's key. If id is group owned, a NULL_KEY is returned.</string>
+ </map>
+ <key>OBJECT_PATHFINDING_TYPE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>20</integer>
+ <key>tooltip</key>
+ <string>Returns the pathfinding setting of any object in the region. It returns an integer matching one of the OPT_* constants.</string>
+ </map>
+ <key>OBJECT_PHANTOM</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>22</integer>
+ <key>tooltip</key>
+ <string>Returns boolean, detailing if phantom is enabled or disabled on the object.\nIf id is an avatar or attachment, 0 is returned.</string>
+ </map>
+ <key>OBJECT_PHYSICS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>21</integer>
+ <key>tooltip</key>
+ <string>Returns boolean, detailing if physics is enabled or disabled on the object.\nIf id is an avatar or attachment, 0 is returned.</string>
+ </map>
+ <key>OBJECT_PHYSICS_COST</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>16</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>OBJECT_POS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>tooltip</key>
+ <string>Gets the object's position in region coordinates.</string>
+ </map>
+ <key>OBJECT_PRIM_EQUIVALENCE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>13</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>OBJECT_RENDER_WEIGHT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>24</integer>
+ <key>tooltip</key>
+ <string>This is a flag used with llGetObjectDetails to get the Avatar_Rendering_Cost of an avatar, based on values reported by nearby viewers.\nIf no data is available, -1 is returned.\nThe maximum render weight stored by the simulator is 500000. When called against an object, 0 is returned.</string>
+ </map>
+ <key>OBJECT_RETURN_PARCEL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>OBJECT_RETURN_PARCEL_OWNER</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>OBJECT_RETURN_REGION</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>OBJECT_ROOT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>18</integer>
+ <key>tooltip</key>
+ <string>Gets the id of the root prim of the object requested.</string>
+ </map>
+ <key>OBJECT_ROT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>tooltip</key>
+ <string>Gets the object's rotation.</string>
+ </map>
+ <key>OBJECT_RUNNING_SCRIPT_COUNT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>9</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>OBJECT_SCRIPT_MEMORY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>11</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>OBJECT_SCRIPT_TIME</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>12</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>OBJECT_SERVER_COST</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>14</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>OBJECT_STREAMING_COST</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>15</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>OBJECT_TEMP_ON_REZ</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>23</integer>
+ <key>tooltip</key>
+ <string>Returns boolean, detailing if temporary is enabled or disabled on the object.</string>
+ </map>
+ <key>OBJECT_TOTAL_SCRIPT_COUNT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>10</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>OBJECT_UNKNOWN_DETAIL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>-1</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>OBJECT_VELOCITY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>5</integer>
+ <key>tooltip</key>
+ <string>Gets the object's velocity.</string>
+ </map>
+ <key>OPT_AVATAR</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string>Returned for avatars.</string>
+ </map>
+ <key>OPT_CHARACTER</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string>Returned for pathfinding characters.</string>
+ </map>
+ <key>OPT_EXCLUSION_VOLUME</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>6</integer>
+ <key>tooltip</key>
+ <string>Returned for exclusion volumes.</string>
+ </map>
+ <key>OPT_LEGACY_LINKSET</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>tooltip</key>
+ <string>Returned for movable obstacles, movable phantoms, physical, and volumedetect objects.</string>
+ </map>
+ <key>OPT_MATERIAL_VOLUME</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>5</integer>
+ <key>tooltip</key>
+ <string>Returned for material volumes.</string>
+ </map>
+ <key>OPT_OTHER</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>-1</integer>
+ <key>tooltip</key>
+ <string>Returned for attachments, Linden trees, and grass.</string>
+ </map>
+ <key>OPT_STATIC_OBSTACLE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>tooltip</key>
+ <string>Returned for static obstacles.</string>
+ </map>
+ <key>OPT_WALKABLE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>tooltip</key>
+ <string>Returned for walkable objects.</string>
+ </map>
+ <key>PARCEL_COUNT_GROUP</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PARCEL_COUNT_OTHER</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PARCEL_COUNT_OWNER</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PARCEL_COUNT_SELECTED</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PARCEL_COUNT_TEMP</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>5</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PARCEL_COUNT_TOTAL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PARCEL_DETAILS_AREA</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>tooltip</key>
+ <string>The parcel's area, in square meters. (5 chars.).</string>
+ </map>
+ <key>PARCEL_DETAILS_DESC</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string>The description of the parcel. (127 chars).</string>
+ </map>
+ <key>PARCEL_DETAILS_GROUP</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>tooltip</key>
+ <string>The parcel group's key. (36 chars.).</string>
+ </map>
+ <key>PARCEL_DETAILS_ID</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>5</integer>
+ <key>tooltip</key>
+ <string>The parcel's key. (36 chars.).</string>
+ </map>
+ <key>PARCEL_DETAILS_NAME</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>tooltip</key>
+ <string>The name of the parcel. (63 chars.).</string>
+ </map>
+ <key>PARCEL_DETAILS_OWNER</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string>The parcel owner's key. (36 chars.).</string>
+ </map>
+ <key>PARCEL_DETAILS_SEE_AVATARS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>6</integer>
+ <key>tooltip</key>
+ <string>The parcel's avatar visibility setting. (1 char.).</string>
+ </map>
+ <key>PARCEL_FLAG_ALLOW_ALL_OBJECT_ENTRY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x08000000</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x4000000</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PARCEL_FLAG_ALLOW_CREATE_OBJECTS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x40</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PARCEL_FLAG_ALLOW_DAMAGE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x20</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PARCEL_FLAG_ALLOW_FLY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x1</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PARCEL_FLAG_ALLOW_GROUP_OBJECT_ENTRY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x10000000</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PARCEL_FLAG_ALLOW_GROUP_SCRIPTS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x2000000</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PARCEL_FLAG_ALLOW_LANDMARK</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x8</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PARCEL_FLAG_ALLOW_SCRIPTS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x2</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PARCEL_FLAG_ALLOW_TERRAFORM</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x10</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PARCEL_FLAG_LOCAL_SOUND_ONLY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x8000</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PARCEL_FLAG_RESTRICT_PUSHOBJECT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x200000</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PARCEL_FLAG_USE_ACCESS_GROUP</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x100</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PARCEL_FLAG_USE_ACCESS_LIST</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x200</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PARCEL_FLAG_USE_BAN_LIST</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x400</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PARCEL_FLAG_USE_LAND_PASS_LIST</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x800</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PARCEL_MEDIA_COMMAND_AGENT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>7</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PARCEL_MEDIA_COMMAND_AUTO_ALIGN</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>9</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PARCEL_MEDIA_COMMAND_DESC</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>12</integer>
+ <key>tooltip</key>
+ <string>Use this to get or set the parcel media description.</string>
+ </map>
+ <key>PARCEL_MEDIA_COMMAND_LOOP</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PARCEL_MEDIA_COMMAND_LOOP_SET</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>13</integer>
+ <key>tooltip</key>
+ <string>Used to get or set the parcel's media looping variable.</string>
+ </map>
+ <key>PARCEL_MEDIA_COMMAND_PAUSE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PARCEL_MEDIA_COMMAND_PLAY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PARCEL_MEDIA_COMMAND_SIZE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>11</integer>
+ <key>tooltip</key>
+ <string>Use this to get or set the parcel media pixel resolution.</string>
+ </map>
+ <key>PARCEL_MEDIA_COMMAND_STOP</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PARCEL_MEDIA_COMMAND_TEXTURE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PARCEL_MEDIA_COMMAND_TIME</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>6</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PARCEL_MEDIA_COMMAND_TYPE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>10</integer>
+ <key>tooltip</key>
+ <string>Use this to get or set the parcel media MIME type (e.g. "text/html").</string>
+ </map>
+ <key>PARCEL_MEDIA_COMMAND_UNLOAD</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>8</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PARCEL_MEDIA_COMMAND_URL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>5</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PASSIVE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x4</string>
+ <key>tooltip</key>
+ <string>Static in-world objects.</string>
+ </map>
+ <key>PATROL_PAUSE_AT_WAYPOINTS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PAY_DEFAULT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>-2</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PAY_HIDE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>-1</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PAYMENT_INFO_ON_FILE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PAYMENT_INFO_USED</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PERM_ALL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x7FFFFFFF</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PERM_COPY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x8000</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PERM_MODIFY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x4000</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PERM_MOVE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x80000</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PERM_TRANSFER</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x2000</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PERMISSION_ATTACH</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x20</string>
+ <key>tooltip</key>
+ <string>If this permission is enabled, the object can successfully call llAttachToAvatar to attach to the given avatar.</string>
+ </map>
+ <key>PERMISSION_CHANGE_JOINTS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x100</string>
+ <key>tooltip</key>
+ <string>(not yet implemented)</string>
+ </map>
+ <key>PERMISSION_CHANGE_LINKS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x80</string>
+ <key>tooltip</key>
+ <string>If this permission is enabled, the object can successfully call llCreateLink, llBreakLink, and llBreakAllLinks to change links to other objects.</string>
+ </map>
+ <key>PERMISSION_CHANGE_PERMISSIONS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x200</string>
+ <key>tooltip</key>
+ <string>(not yet implemented)</string>
+ </map>
+ <key>PERMISSION_CONTROL_CAMERA</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x800</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PERMISSION_DEBIT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x2</string>
+ <key>tooltip</key>
+ <string>If this permission is enabled, the object can successfully call llGiveMoney or llTransferLindenDollars to debit the owners account.</string>
+ </map>
+ <key>PERMISSION_OVERRIDE_ANIMATIONS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x8000</string>
+ <key>tooltip</key>
+ <string>Permission to override default animations.</string>
+ </map>
+ <key>PERMISSION_RELEASE_OWNERSHIP</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x40</string>
+ <key>tooltip</key>
+ <string>(not yet implemented)</string>
+ </map>
+ <key>PERMISSION_REMAP_CONTROLS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x8</string>
+ <key>tooltip</key>
+ <string>(not yet implemented)</string>
+ </map>
+ <key>PERMISSION_RETURN_OBJECTS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>65536</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PERMISSION_SILENT_ESTATE_MANAGEMENT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x4000</string>
+ <key>tooltip</key>
+ <string>A script with this permission does not notify the object owner when it modifies estate access rules via llManageEstateAccess.</string>
+ </map>
+ <key>PERMISSION_TAKE_CONTROLS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x4</string>
+ <key>tooltip</key>
+ <string>If this permission enabled, the object can successfully call the llTakeControls libray call.</string>
+ </map>
+ <key>PERMISSION_TELEPORT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x1000</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PERMISSION_TRACK_CAMERA</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x400</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PERMISSION_TRIGGER_ANIMATION</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x10</string>
+ <key>tooltip</key>
+ <string>If this permission is enabled, the object can successfully call llStartAnimation for the avatar that owns this.</string>
+ </map>
+ <key>PI</key>
+ <map>
+ <key>type</key>
+ <string>float</string>
+ <key>value</key>
+ <real>3.14159265</real>
+ <key>tooltip</key>
+ <string>3.14159265 - The number of radians in a semi-circle.</string>
+ </map>
+ <key>PI_BY_TWO</key>
+ <map>
+ <key>type</key>
+ <string>float</string>
+ <key>value</key>
+ <real>1.57079633</real>
+ <key>tooltip</key>
+ <string>1.57079633 - The number of radians in a quarter circle.</string>
+ </map>
+ <key>PING_PONG</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x8</string>
+ <key>tooltip</key>
+ <string>Play animation going forwards, then backwards.</string>
+ </map>
+ <key>PRIM_BUMP_BARK</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_BUMP_BLOBS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>12</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_BUMP_BRICKS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>5</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_BUMP_BRIGHT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_BUMP_CHECKER</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>6</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_BUMP_CONCRETE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>7</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_BUMP_DARK</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_BUMP_DISKS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>10</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_BUMP_GRAVEL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>11</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_BUMP_LARGETILE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>14</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_BUMP_NONE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_BUMP_SHINY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>19</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_BUMP_SIDING</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>13</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_BUMP_STONE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>9</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_BUMP_STUCCO</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>15</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_BUMP_SUCTION</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>16</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_BUMP_TILE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>8</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_BUMP_WEAVE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>17</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_BUMP_WOOD</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_CAST_SHADOWS</key>
+ <map>
+ <key>deprecated</key>
+ <boolean>true</boolean>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>24</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_COLOR</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>18</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_DESC</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>28</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_FLEXIBLE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>21</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_FULLBRIGHT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>20</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_GLOW</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>25</integer>
+ <key>tooltip</key>
+ <string>PRIM_GLOW is used to get or set the glow status of the face.</string>
+ </map>
+ <key>PRIM_HOLE_CIRCLE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x10</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_HOLE_DEFAULT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x00</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_HOLE_SQUARE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x20</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_HOLE_TRIANGLE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x30</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_LINK_TARGET</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>34</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_MATERIAL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_MATERIAL_FLESH</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_MATERIAL_GLASS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_MATERIAL_LIGHT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>7</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_MATERIAL_METAL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_MATERIAL_PLASTIC</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>5</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_MATERIAL_RUBBER</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>6</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_MATERIAL_STONE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_MATERIAL_WOOD</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_MEDIA_ALT_IMAGE_ENABLE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>tooltip</key>
+ <string>Boolean. Gets/Sets the default image state (the image that the user sees before a piece of media is active) for the chosen face. The default image is specified by Second Life's server for that media type.</string>
+ </map>
+ <key>PRIM_MEDIA_AUTO_LOOP</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>tooltip</key>
+ <string>Boolean. Gets/Sets whether auto-looping is enabled.</string>
+ </map>
+ <key>PRIM_MEDIA_AUTO_PLAY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>5</integer>
+ <key>tooltip</key>
+ <string>Boolean. Gets/Sets whether the media auto-plays when a Resident can view it.</string>
+ </map>
+ <key>PRIM_MEDIA_AUTO_SCALE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>6</integer>
+ <key>tooltip</key>
+ <string>Boolean. Gets/Sets whether auto-scaling is enabled. Auto-scaling forces the media to the full size of the texture.</string>
+ </map>
+ <key>PRIM_MEDIA_AUTO_ZOOM</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>7</integer>
+ <key>tooltip</key>
+ <string>Boolean. Gets/Sets whether clicking the media triggers auto-zoom and auto-focus on the media.</string>
+ </map>
+ <key>PRIM_MEDIA_CONTROLS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string>Integer. Gets/Sets the style of controls. Can be either PRIM_MEDIA_CONTROLS_STANDARD or PRIM_MEDIA_CONTROLS_MINI.</string>
+ </map>
+ <key>PRIM_MEDIA_CONTROLS_MINI</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string>Mini web navigation controls; does not include an address bar.</string>
+ </map>
+ <key>PRIM_MEDIA_CONTROLS_STANDARD</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>tooltip</key>
+ <string>Standard web navigation controls.</string>
+ </map>
+ <key>PRIM_MEDIA_CURRENT_URL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string>String. Gets/Sets the current url displayed on the chosen face. Changing this URL causes navigation. 1024 characters Maximum.</string>
+ </map>
+ <key>PRIM_MEDIA_FIRST_CLICK_INTERACT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>8</integer>
+ <key>tooltip</key>
+ <string>Boolean. Gets/Sets whether the first click interaction is enabled.</string>
+ </map>
+ <key>PRIM_MEDIA_HEIGHT_PIXELS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>10</integer>
+ <key>tooltip</key>
+ <string>Integer. Gets/Sets the height of the media in pixels.</string>
+ </map>
+ <key>PRIM_MEDIA_HOME_URL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>tooltip</key>
+ <string>String. Gets/Sets the home URL for the chosen face. 1024 characters maximum.</string>
+ </map>
+ <key>PRIM_MEDIA_MAX_HEIGHT_PIXELS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2048</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_MEDIA_MAX_URL_LENGTH</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1024</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_MEDIA_MAX_WHITELIST_COUNT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>64</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_MEDIA_MAX_WHITELIST_SIZE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1024</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_MEDIA_MAX_WIDTH_PIXELS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2048</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_MEDIA_PARAM_MAX</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>14</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_MEDIA_PERM_ANYONE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_MEDIA_PERM_GROUP</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_MEDIA_PERM_NONE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_MEDIA_PERM_OWNER</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_MEDIA_PERMS_CONTROL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>14</integer>
+ <key>tooltip</key>
+ <string>Integer. Gets/Sets the permissions mask that control who can see the media control bar above the object:: PRIM_MEDIA_PERM_ANYONE, PRIM_MEDIA_PERM_GROUP, PRIM_MEDIA_PERM_NONE, PRIM_MEDIA_PERM_OWNER</string>
+ </map>
+ <key>PRIM_MEDIA_PERMS_INTERACT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>13</integer>
+ <key>tooltip</key>
+ <string>Integer. Gets/Sets the permissions mask that control who can interact with the object: PRIM_MEDIA_PERM_ANYONE, PRIM_MEDIA_PERM_GROUP, PRIM_MEDIA_PERM_NONE, PRIM_MEDIA_PERM_OWNER</string>
+ </map>
+ <key>PRIM_MEDIA_WHITELIST</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>12</integer>
+ <key>tooltip</key>
+ <string>String. Gets/Sets the white-list as a string of escaped, comma-separated URLs. This string can hold up to 64 URLs or 1024 characters, whichever comes first.</string>
+ </map>
+ <key>PRIM_MEDIA_WHITELIST_ENABLE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>11</integer>
+ <key>tooltip</key>
+ <string>Boolean. Gets/Sets whether navigation is restricted to URLs in PRIM_MEDIA_WHITELIST.</string>
+ </map>
+ <key>PRIM_MEDIA_WIDTH_PIXELS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>9</integer>
+ <key>tooltip</key>
+ <string>Integer. Gets/Sets the width of the media in pixels.</string>
+ </map>
+ <key>PRIM_NAME</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>27</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_OMEGA</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>32</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_PHANTOM</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>5</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_PHYSICS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_PHYSICS_SHAPE_CONVEX</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string>Use the convex hull of the prim shape for physics (this is the default for mesh objects).</string>
+ </map>
+ <key>PRIM_PHYSICS_SHAPE_NONE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string>Ignore this prim in the physics shape. NB: This cannot be applied to the root prim.</string>
+ </map>
+ <key>PRIM_PHYSICS_SHAPE_PRIM</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>tooltip</key>
+ <string>Use the normal prim shape for physics (this is the default for all non-mesh objects).</string>
+ </map>
+ <key>PRIM_PHYSICS_SHAPE_TYPE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>30</integer>
+ <key>tooltip</key>
+ <string>Allows you to set the physics shape type of a prim via lsl. Permitted values are:
+ PRIM_PHYSICS_SHAPE_NONE, PRIM_PHYSICS_SHAPE_PRIM, PRIM_PHYSICS_SHAPE_CONVEX</string>
+ </map>
+ <key>PRIM_POINT_LIGHT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>23</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_POS_LOCAL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>33</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_POSITION</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>6</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_ROT_LOCAL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>29</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_ROTATION</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>8</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_SCULPT_FLAG_INVERT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>64</integer>
+ <key>tooltip</key>
+ <string>Render inside out (inverts the normals).</string>
+ </map>
+ <key>PRIM_SCULPT_FLAG_MIRROR</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>128</integer>
+ <key>tooltip</key>
+ <string>Render an X axis mirror of the sculpty.</string>
+ </map>
+ <key>PRIM_SCULPT_TYPE_CYLINDER</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_SCULPT_TYPE_MASK</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>7</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_SCULPT_TYPE_PLANE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_SCULPT_TYPE_SPHERE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_SCULPT_TYPE_TORUS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_SHINY_HIGH</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_SHINY_LOW</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_SHINY_MEDIUM</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_SHINY_NONE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_SIZE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>7</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_SLICE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>35</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_TEMP_ON_REZ</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_TEXGEN</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>22</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_TEXGEN_DEFAULT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_TEXGEN_PLANAR</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_TEXT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>26</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_TEXTURE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>17</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_TYPE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>9</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_TYPE_BOX</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_TYPE_CYLINDER</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_TYPE_PRISM</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_TYPE_RING</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>6</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_TYPE_SCULPT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>7</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_TYPE_SPHERE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_TYPE_TORUS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PRIM_TYPE_TUBE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>5</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PROFILE_NONE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>tooltip</key>
+ <string>Disables profiling</string>
+ </map>
+ <key>PROFILE_SCRIPT_MEMORY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string>Enables memory profiling</string>
+ </map>
+ <key>PSYS_PART_BF_DEST_COLOR</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PSYS_PART_BF_ONE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PSYS_PART_BF_ONE_MINUS_DEST_COLOR</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PSYS_PART_BF_SOURCE_ALPHA</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>7</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PSYS_PART_BF_SOURCE_COLOR</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PSYS_PART_BF_ZERO</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PSYS_PART_BLEND_FUNC_DEST</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>25</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PSYS_PART_BLEND_FUNC_SOURCE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>24</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PSYS_PART_BOUNCE_MASK</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x4</string>
+ <key>tooltip</key>
+ <string>Particles bounce off of a plane at the objects Z height.</string>
+ </map>
+ <key>PSYS_PART_EMISSIVE_MASK</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x100</string>
+ <key>tooltip</key>
+ <string>The particle glows.</string>
+ </map>
+ <key>PSYS_PART_END_ALPHA</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>tooltip</key>
+ <string>A float which determines the ending alpha of the object.</string>
+ </map>
+ <key>PSYS_PART_END_COLOR</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>tooltip</key>
+ <string>A vector &lt;r, g, b&gt; which determines the ending colour of the object.</string>
+ </map>
+ <key>PSYS_PART_END_GLOW</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>27</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PSYS_PART_END_SCALE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>6</integer>
+ <key>tooltip</key>
+ <string>A vector &lt;sx, sy, z&gt;, which is the ending size of the particle billboard in meters (z is ignored).</string>
+ </map>
+ <key>PSYS_PART_FLAGS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>tooltip</key>
+ <string>Each particle that is emitted by the particle system is simulated based on the following flags. To use multiple flags, bitwise or (|) them together.</string>
+ </map>
+ <key>PSYS_PART_FOLLOW_SRC_MASK</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x10</string>
+ <key>tooltip</key>
+ <string>The particle position is relative to the source objects position.</string>
+ </map>
+ <key>PSYS_PART_FOLLOW_VELOCITY_MASK</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x20</string>
+ <key>tooltip</key>
+ <string>The particle orientation is rotated so the vertical axis faces towards the particle velocity.</string>
+ </map>
+ <key>PSYS_PART_INTERP_COLOR_MASK</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x1</string>
+ <key>tooltip</key>
+ <string>Interpolate both the colour and alpha from the start value to the end value.</string>
+ </map>
+ <key>PSYS_PART_INTERP_SCALE_MASK</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x2</string>
+ <key>tooltip</key>
+ <string>Interpolate the particle scale from the start value to the end value.</string>
+ </map>
+ <key>PSYS_PART_MAX_AGE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>19</integer>
+ <key>tooltip</key>
+ <string>Age in seconds of a particle at which it dies.</string>
+ </map>
+ <key>PSYS_PART_RIBBON_MASK</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1024</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PSYS_PART_START_ALPHA</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string>A float which determines the starting alpha of the object.</string>
+ </map>
+ <key>PSYS_PART_START_COLOR</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string>A vector &lt;r.r, g.g, b.b&gt; which determines the starting colour of the object.</string>
+ </map>
+ <key>PSYS_PART_START_GLOW</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>26</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PSYS_PART_START_SCALE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>5</integer>
+ <key>tooltip</key>
+ <string>A vector &lt;sx, sy, z&gt;, which is the starting size of the particle billboard in meters (z is ignored).</string>
+ </map>
+ <key>PSYS_PART_TARGET_LINEAR_MASK</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x80</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PSYS_PART_TARGET_POS_MASK</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x40</string>
+ <key>tooltip</key>
+ <string>The particle heads towards the location of the target object as defined by PSYS_SRC_TARGET_KEY.</string>
+ </map>
+ <key>PSYS_PART_WIND_MASK</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x8</string>
+ <key>tooltip</key>
+ <string>Particles have their velocity damped towards the wind velocity.</string>
+ </map>
+ <key>PSYS_SRC_ACCEL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>8</integer>
+ <key>tooltip</key>
+ <string>A vector &lt;x, y, z&gt; which is the acceleration to apply on particles.</string>
+ </map>
+ <key>PSYS_SRC_ANGLE_BEGIN</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>22</integer>
+ <key>tooltip</key>
+ <string>Area in radians specifying where particles will NOT be created (for ANGLE patterns)</string>
+ </map>
+ <key>PSYS_SRC_ANGLE_END</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>23</integer>
+ <key>tooltip</key>
+ <string>Area in radians filled with particles (for ANGLE patterns) (if lower than PSYS_SRC_ANGLE_BEGIN, acts as PSYS_SRC_ANGLE_BEGIN itself, and PSYS_SRC_ANGLE_BEGIN acts as PSYS_SRC_ANGLE_END).</string>
+ </map>
+ <key>PSYS_SRC_BURST_PART_COUNT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>15</integer>
+ <key>tooltip</key>
+ <string>How many particles to release in a burst.</string>
+ </map>
+ <key>PSYS_SRC_BURST_RADIUS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>16</integer>
+ <key>tooltip</key>
+ <string>What distance from the center of the object to create the particles.</string>
+ </map>
+ <key>PSYS_SRC_BURST_RATE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>13</integer>
+ <key>tooltip</key>
+ <string>How often to release a particle burst (float seconds).</string>
+ </map>
+ <key>PSYS_SRC_BURST_SPEED_MAX</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>18</integer>
+ <key>tooltip</key>
+ <string>Maximum speed that a particle should be moving.</string>
+ </map>
+ <key>PSYS_SRC_BURST_SPEED_MIN</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>17</integer>
+ <key>tooltip</key>
+ <string>Minimum speed that a particle should be moving.</string>
+ </map>
+ <key>PSYS_SRC_INNERANGLE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>10</integer>
+ <key>tooltip</key>
+ <string>Specifies the inner angle of the arc created by the PSYS_SRC_PATTERN_ANGLE or PSYS_SRC_PATTERN_ANGLE_CONE source pattern.
+ The area specified will NOT have particles in it.</string>
+ </map>
+ <key>PSYS_SRC_MAX_AGE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>19</integer>
+ <key>tooltip</key>
+ <string>How long this particle system should last, 0.0 means forever.</string>
+ </map>
+ <key>PSYS_SRC_OMEGA</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>21</integer>
+ <key>tooltip</key>
+ <string>Sets the angular velocity to rotate the axis that SRC_PATTERN_ANGLE and SRC_PATTERN_ANGLE_CONE use.</string>
+ </map>
+ <key>PSYS_SRC_OUTERANGLE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>11</integer>
+ <key>tooltip</key>
+ <string>Specifies the outer angle of the arc created by the PSYS_SRC_PATTERN_ANGLE or PSYS_SRC_PATTERN_ANGLE_CONE source pattern.
+ The area between the outer and inner angle will be filled with particles.</string>
+ </map>
+ <key>PSYS_SRC_PATTERN</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>9</integer>
+ <key>tooltip</key>
+ <string>The pattern which is used to generate particles.
+ Use one of the following values: PSYS_SRC_PATTERN Values.</string>
+ </map>
+ <key>PSYS_SRC_PATTERN_ANGLE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x04</string>
+ <key>tooltip</key>
+ <string>Shoot particles across a 2 dimensional area defined by the arc created from PSYS_SRC_OUTERANGLE. There will be an open area defined by PSYS_SRC_INNERANGLE within the larger arc.</string>
+ </map>
+ <key>PSYS_SRC_PATTERN_ANGLE_CONE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x08</string>
+ <key>tooltip</key>
+ <string>Shoot particles out in a 3 dimensional cone with an outer arc of PSYS_SRC_OUTERANGLE and an inner open area defined by PSYS_SRC_INNERANGLE.</string>
+ </map>
+ <key>PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x10</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PSYS_SRC_PATTERN_DROP</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x01</string>
+ <key>tooltip</key>
+ <string>Drop particles at the source position.</string>
+ </map>
+ <key>PSYS_SRC_PATTERN_EXPLODE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x02</string>
+ <key>tooltip</key>
+ <string>Shoot particles out in all directions, using the burst parameters.</string>
+ </map>
+ <key>PSYS_SRC_TARGET_KEY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>20</integer>
+ <key>tooltip</key>
+ <string>The key of a target object to move towards if PSYS_PART_TARGET_POS_MASK is enabled.</string>
+ </map>
+ <key>PSYS_SRC_TEXTURE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>12</integer>
+ <key>tooltip</key>
+ <string>An asset name for the texture to use for the particles.</string>
+ </map>
+ <key>PU_EVADE_HIDDEN</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x07</string>
+ <key>tooltip</key>
+ <string>Triggered when an llEvade character thinks it has hidden from its pursuer.</string>
+ </map>
+ <key>PU_EVADE_SPOTTED</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x08</string>
+ <key>tooltip</key>
+ <string>Triggered when an llEvade character switches from hiding to running</string>
+ </map>
+ <key>PU_FAILURE_DYNAMIC_PATHFINDING_DISABLED</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>10</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PU_FAILURE_INVALID_GOAL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x03</string>
+ <key>tooltip</key>
+ <string>Goal is not on the navigation-mesh and cannot be reached.</string>
+ </map>
+ <key>PU_FAILURE_INVALID_START</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x02</string>
+ <key>tooltip</key>
+ <string>Character cannot navigate from the current location - e.g., the character is off the navmesh or too high above it.</string>
+ </map>
+ <key>PU_FAILURE_NO_NAVMESH</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x09</string>
+ <key>tooltip</key>
+ <string>This is a fatal error reported to a character when there is no navmesh for the region. This usually indicates a server failure and users should file a bug report and include the time and region in which they received this message.</string>
+ </map>
+ <key>PU_FAILURE_NO_VALID_DESTINATION</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x06</string>
+ <key>tooltip</key>
+ <string>There is no good place for the character to go - e.g., it is patrolling and all the patrol points are now unreachable.</string>
+ </map>
+ <key>PU_FAILURE_OTHER</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1000000</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PU_FAILURE_PARCEL_UNREACHABLE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>11</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PU_FAILURE_TARGET_GONE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x05</string>
+ <key>tooltip</key>
+ <string>Target (for llPursue or llEvade) can no longer be tracked - e.g., it left the region or is an avatar that is now more than about 30m outside the region.</string>
+ </map>
+ <key>PU_FAILURE_UNREACHABLE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x04</string>
+ <key>tooltip</key>
+ <string>Goal is no longer reachable for some reason - e.g., an obstacle blocks the path.</string>
+ </map>
+ <key>PU_GOAL_REACHED</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x01</string>
+ <key>tooltip</key>
+ <string>Character has reached the goal and will stop or choose a new goal (if wandering).</string>
+ </map>
+ <key>PU_SLOWDOWN_DISTANCE_REACHED</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x00</string>
+ <key>tooltip</key>
+ <string>Character is near current goal.</string>
+ </map>
+ <key>PUBLIC_CHANNEL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>tooltip</key>
+ <string>PUBLIC_CHANNEL is an integer constant that, when passed to llSay, llWhisper, or llShout as a channel parameter, will print text to the publicly heard chat channel.</string>
+ </map>
+ <key>PURSUIT_FUZZ_FACTOR</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>tooltip</key>
+ <string>Selects a random destination near the offset.</string>
+ </map>
+ <key>PURSUIT_GOAL_TOLERANCE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>5</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>PURSUIT_INTERCEPT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>tooltip</key>
+ <string>Define whether the character attempts to predict the target's location.</string>
+ </map>
+ <key>PURSUIT_OFFSET</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string>Go to a position offset from the target.</string>
+ </map>
+ <key>RAD_TO_DEG</key>
+ <map>
+ <key>type</key>
+ <string>float</string>
+ <key>value</key>
+ <real>57.2957795</real>
+ <key>tooltip</key>
+ <string>57.2957795 - Number of degrees per radian. You can use this number to convert radians to degrees by multiplying the radians by this number.</string>
+ </map>
+ <key>RC_DATA_FLAGS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>RC_DETECT_PHANTOM</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>RC_GET_LINK_NUM</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>RC_GET_NORMAL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>RC_GET_ROOT_KEY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>RC_MAX_HITS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>RC_REJECT_AGENTS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>RC_REJECT_LAND</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>8</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>RC_REJECT_NONPHYSICAL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>RC_REJECT_PHYSICAL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>RC_REJECT_TYPES</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>RCERR_CAST_TIME_EXCEEDED</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>-3</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>RCERR_SIM_PERF_LOW</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>-2</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>RCERR_UNKNOWN</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>-1</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>REGION_FLAG_ALLOW_DAMAGE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x1</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>REGION_FLAG_ALLOW_DIRECT_TELEPORT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x100000</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>REGION_FLAG_BLOCK_FLY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x80000</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>REGION_FLAG_BLOCK_TERRAFORM</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x40</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>REGION_FLAG_DISABLE_COLLISIONS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x1000</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>REGION_FLAG_DISABLE_PHYSICS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x4000</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>REGION_FLAG_FIXED_SUN</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x10</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>REGION_FLAG_RESTRICT_PUSHOBJECT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x400000</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>REGION_FLAG_SANDBOX</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x100</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>REMOTE_DATA_CHANNEL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>REMOTE_DATA_REPLY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>REMOTE_DATA_REQUEST</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>REQUIRE_LINE_OF_SIGHT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string>Define whether the character needs a line-of-sight to give chase.</string>
+ </map>
+ <key>RESTITUTION</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>tooltip</key>
+ <string>Used with llSetPhysicsMaterial to enable the density value. Must be between 0.0 and 1.0</string>
+ </map>
+ <key>REVERSE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x4</string>
+ <key>tooltip</key>
+ <string>Play animation in reverse direction.</string>
+ </map>
+ <key>ROTATE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x20</string>
+ <key>tooltip</key>
+ <string>Animate texture rotation.</string>
+ </map>
+ <key>SCALE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x40</string>
+ <key>tooltip</key>
+ <string>Animate the texture scale.</string>
+ </map>
+ <key>SCRIPTED</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x8</string>
+ <key>tooltip</key>
+ <string>Scripted in-world objects.</string>
+ </map>
+ <key>SIM_STAT_PCT_CHARS_STEPPED</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>tooltip</key>
+ <string>Returns the % of pathfinding characters skipped each frame, averaged over the last minute.</string>
+ </map>
+ <key>SMOOTH</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x10</string>
+ <key>tooltip</key>
+ <string>Slide in the X direction, instead of playing separate frames.</string>
+ </map>
+ <key>SQRT2</key>
+ <map>
+ <key>type</key>
+ <string>float</string>
+ <key>value</key>
+ <real>1.41421356</real>
+ <key>tooltip</key>
+ <string>1.41421356 - The square root of 2.</string>
+ </map>
+ <key>STATUS_BLOCK_GRAB</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>64</integer>
+ <key>tooltip</key>
+ <string>Controls whether the object can be grabbed.</string>
+ </map>
+ <key>STATUS_BLOCK_GRAB_OBJECT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1024</integer>
+ <key>tooltip</key>
+ <string>Prevent click-and-drag movement on all prims in the object.</string>
+ </map>
+ <key>STATUS_BOUNDS_ERROR</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1002</integer>
+ <key>tooltip</key>
+ <string>Argument(s) passed to function had a bounds error.</string>
+ </map>
+ <key>STATUS_CAST_SHADOWS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x200</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>STATUS_DIE_AT_EDGE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x80</string>
+ <key>tooltip</key>
+ <string>Controls whether the object is returned to the owners inventory if it wanders off the edge of the world.</string>
+ </map>
+ <key>STATUS_INTERNAL_ERROR</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1999</integer>
+ <key>tooltip</key>
+ <string>An internal error occurred.</string>
+ </map>
+ <key>STATUS_MALFORMED_PARAMS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1000</integer>
+ <key>tooltip</key>
+ <string>Function was called with malformed parameters.</string>
+ </map>
+ <key>STATUS_NOT_FOUND</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1003</integer>
+ <key>tooltip</key>
+ <string>Object or other item was not found.</string>
+ </map>
+ <key>STATUS_NOT_SUPPORTED</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1004</integer>
+ <key>tooltip</key>
+ <string>Feature not supported.</string>
+ </map>
+ <key>STATUS_OK</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>tooltip</key>
+ <string>Result of function call was a success.</string>
+ </map>
+ <key>STATUS_PHANTOM</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x10</string>
+ <key>tooltip</key>
+ <string>Controls/indicates whether the object collides or not.</string>
+ </map>
+ <key>STATUS_PHYSICS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x1</string>
+ <key>tooltip</key>
+ <string>Controls/indicates whether the object moves physically.</string>
+ </map>
+ <key>STATUS_RETURN_AT_EDGE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x100</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>STATUS_ROTATE_X</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x2</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>STATUS_ROTATE_Y</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x4</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>STATUS_ROTATE_Z</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x8</string>
+ <key>tooltip</key>
+ <string>Controls/indicates whether the object can physically rotate around
+ the specific axis or not. This flag has no meaning
+ for non-physical objects. Set the value to FALSE
+ if you want to disable rotation around that axis. The
+ default is TRUE for a physical object.
+ A useful example to think about when visualizing
+ the effect is a sit-and-spin device. They spin around the
+ Z axis (up) but not around the X or Y axis.</string>
+ </map>
+ <key>STATUS_SANDBOX</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x20</string>
+ <key>tooltip</key>
+ <string>Controls/indicates whether the object can cross region boundaries
+ and move more than 20 meters from its creation
+ point. The default if FALSE.</string>
+ </map>
+ <key>STATUS_TYPE_MISMATCH</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1001</integer>
+ <key>tooltip</key>
+ <string>Argument(s) passed to function had a type mismatch.</string>
+ </map>
+ <key>STATUS_WHITELIST_FAILED</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2001</integer>
+ <key>tooltip</key>
+ <string>Whitelist Failed.</string>
+ </map>
+ <key>STRING_TRIM</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x03</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>STRING_TRIM_HEAD</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x01</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>STRING_TRIM_TAIL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x02</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>TEXTURE_BLANK</key>
+ <map>
+ <key>type</key>
+ <string>key</string>
+ <key>value</key>
+ <uuid>5748decc-f629-461c-9a36-a35a221fe21f</uuid>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>TEXTURE_DEFAULT</key>
+ <map>
+ <key>type</key>
+ <string>key</string>
+ <key>value</key>
+ <uuid>89556747-24cb-43ed-920b-47caed15465f</uuid>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>TEXTURE_MEDIA</key>
+ <map>
+ <key>type</key>
+ <string>key</string>
+ <key>value</key>
+ <uuid>8b5fec65-8d8d-9dc5-cda8-8fdf2716e361</uuid>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>TEXTURE_PLYWOOD</key>
+ <map>
+ <key>type</key>
+ <string>key</string>
+ <key>value</key>
+ <uuid>89556747-24cb-43ed-920b-47caed15465f</uuid>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>TEXTURE_TRANSPARENT</key>
+ <map>
+ <key>type</key>
+ <string>key</string>
+ <key>value</key>
+ <uuid>8dcd4a48-2d37-4909-9f78-f7a9eb4ef903</uuid>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>TOUCH_INVALID_FACE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0xFFFFFFFF</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>TOUCH_INVALID_TEXCOORD</key>
+ <map>
+ <key>type</key>
+ <string>vector</string>
+ <key>value</key>
+ <string>&lt;-1.0, -1.0, 0.0&gt;</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>TOUCH_INVALID_VECTOR</key>
+ <map>
+ <key>type</key>
+ <string>vector</string>
+ <key>value</key>
+ <string>&lt;0.0, 0.0, 0.0&gt;</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>TRAVERSAL_TYPE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>7</integer>
+ <key>tooltip</key>
+ <string>One of TRAVERSAL_TYPE_FAST, TRAVERSAL_TYPE_SLOW, and TRAVERSAL_TYPE_NONE.</string>
+ </map>
+ <key>TRAVERSAL_TYPE_FAST</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>TRAVERSAL_TYPE_NONE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>TRAVERSAL_TYPE_SLOW</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>TRUE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string>An integer constant for boolean comparisons. Has the value '1'.</string>
+ </map>
+ <key>TWO_PI</key>
+ <map>
+ <key>type</key>
+ <string>float</string>
+ <key>value</key>
+ <real>6.28318530</real>
+ <key>tooltip</key>
+ <string>6.28318530 - The radians of a circle.</string>
+ </map>
+ <key>TYPE_FLOAT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string>The list entry is a float.</string>
+ </map>
+ <key>TYPE_INTEGER</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string>The list entry is an integer.</string>
+ </map>
+ <key>TYPE_INVALID</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>tooltip</key>
+ <string>The list entry is invalid.</string>
+ </map>
+ <key>TYPE_KEY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>tooltip</key>
+ <string>The list entry is a key.</string>
+ </map>
+ <key>TYPE_ROTATION</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>6</integer>
+ <key>tooltip</key>
+ <string>The list entry is a rotation.</string>
+ </map>
+ <key>TYPE_STRING</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>tooltip</key>
+ <string>The list entry is a string.</string>
+ </map>
+ <key>TYPE_VECTOR</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>5</integer>
+ <key>tooltip</key>
+ <string>The list entry is a vector.</string>
+ </map>
+ <key>URL_REQUEST_DENIED</key>
+ <map>
+ <key>type</key>
+ <string>string</string>
+ <key>value</key>
+ <string>URL_REQUEST_DENIED</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>URL_REQUEST_GRANTED</key>
+ <map>
+ <key>type</key>
+ <string>string</string>
+ <key>value</key>
+ <string>URL_REQUEST_GRANTED</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>32</integer>
+ <key>tooltip</key>
+ <string>A slider between minimum (0.0) and maximum (1.0) deflection of angular orientation. That is, it's a simple scalar for modulating the strength of angular deflection such that the vehicles preferred axis of motion points toward its real velocity.</string>
+ </map>
+ <key>VEHICLE_ANGULAR_DEFLECTION_TIMESCALE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>33</integer>
+ <key>tooltip</key>
+ <string>The time-scale for exponential success of linear deflection deflection. Its another way to specify the strength of the vehicles tendency to reorient itself so that its preferred axis of motion agrees with its true velocity.</string>
+ </map>
+ <key>VEHICLE_ANGULAR_FRICTION_TIMESCALE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>17</integer>
+ <key>tooltip</key>
+ <string>A vector of timescales for exponential decay of the vehicles angular velocity about its preferred axes of motion (at, left, up).
+ Range = [0.07, inf) seconds for each element of the vector.</string>
+ </map>
+ <key>VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>35</integer>
+ <key>tooltip</key>
+ <string>The timescale for exponential decay of the angular motors magnitude.</string>
+ </map>
+ <key>VEHICLE_ANGULAR_MOTOR_DIRECTION</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>19</integer>
+ <key>tooltip</key>
+ <string>The direction and magnitude (in preferred frame) of the vehicles angular motor.The vehicle will accelerate (or decelerate if necessary) to match its velocity to its motor.</string>
+ </map>
+ <key>VEHICLE_ANGULAR_MOTOR_TIMESCALE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>34</integer>
+ <key>tooltip</key>
+ <string>The timescale for exponential approach to full angular motor velocity.</string>
+ </map>
+ <key>VEHICLE_BANKING_EFFICIENCY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>38</integer>
+ <key>tooltip</key>
+ <string>A slider between anti (-1.0), none (0.0), and maxmum (1.0) banking strength.</string>
+ </map>
+ <key>VEHICLE_BANKING_MIX</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>39</integer>
+ <key>tooltip</key>
+ <string>A slider between static (0.0) and dynamic (1.0) banking. "Static" means the banking scales only with the angle of roll, whereas "dynamic" is a term that also scales with the vehicles linear speed.</string>
+ </map>
+ <key>VEHICLE_BANKING_TIMESCALE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>40</integer>
+ <key>tooltip</key>
+ <string>The timescale for banking to exponentially approach its maximum effect. This is another way to scale the strength of the banking effect, however it affects the term that is proportional to the difference between what the banking behavior is trying to do, and what the vehicle is actually doing.</string>
+ </map>
+ <key>VEHICLE_BUOYANCY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>27</integer>
+ <key>tooltip</key>
+ <string>A slider between minimum (0.0) and maximum anti-gravity (1.0).</string>
+ </map>
+ <key>VEHICLE_FLAG_CAMERA_DECOUPLED</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x200</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x10</string>
+ <key>tooltip</key>
+ <string>Hover at global height.</string>
+ </map>
+ <key>VEHICLE_FLAG_HOVER_TERRAIN_ONLY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x8</string>
+ <key>tooltip</key>
+ <string>Ignore water height when hovering.</string>
+ </map>
+ <key>VEHICLE_FLAG_HOVER_UP_ONLY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x20</string>
+ <key>tooltip</key>
+ <string>Hover does not push down. Use this flag for hovering vehicles that should be able to jump above their hover height.</string>
+ </map>
+ <key>VEHICLE_FLAG_HOVER_WATER_ONLY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x4</string>
+ <key>tooltip</key>
+ <string>Ignore terrain height when hovering.</string>
+ </map>
+ <key>VEHICLE_FLAG_LIMIT_MOTOR_UP</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x40</string>
+ <key>tooltip</key>
+ <string>Prevents ground vehicles from motoring into the sky.</string>
+ </map>
+ <key>VEHICLE_FLAG_LIMIT_ROLL_ONLY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x2</string>
+ <key>tooltip</key>
+ <string>For vehicles with vertical attractor that want to be able to climb/dive, for instance, aeroplanes that want to use the banking feature.</string>
+ </map>
+ <key>VEHICLE_FLAG_MOUSELOOK_BANK</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x100</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>VEHICLE_FLAG_MOUSELOOK_STEER</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x80</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>VEHICLE_FLAG_NO_DEFLECTION_UP</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x1</string>
+ <key>tooltip</key>
+ <string>This flag prevents linear deflection parallel to world z-axis. This is useful for preventing ground vehicles with large linear deflection, like bumper cars, from climbing their linear deflection into the sky.</string>
+ </map>
+ <key>VEHICLE_FLAG_NO_FLY_UP</key>
+ <map>
+ <key>deprecated</key>
+ <boolean>true</boolean>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <string>0x1</string>
+ <key>tooltip</key>
+ <string>Old, changed to VEHICLE_FLAG_NO_DEFLECTION_UP</string>
+ </map>
+ <key>VEHICLE_HOVER_EFFICIENCY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>25</integer>
+ <key>tooltip</key>
+ <string>A slider between minimum (0.0 = bouncy) and maximum (1.0 = fast as possible) damped motion of the hover behavior. </string>
+ </map>
+ <key>VEHICLE_HOVER_HEIGHT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>24</integer>
+ <key>tooltip</key>
+ <string>The height (above the terrain or water, or global) at which the vehicle will try to hover.</string>
+ </map>
+ <key>VEHICLE_HOVER_TIMESCALE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>26</integer>
+ <key>tooltip</key>
+ <string>Period of time (in seconds) for the vehicle to achieve its hover height.</string>
+ </map>
+ <key>VEHICLE_LINEAR_DEFLECTION_EFFICIENCY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>28</integer>
+ <key>tooltip</key>
+ <string>A slider between minimum (0.0) and maximum (1.0) deflection of linear velocity. That is, its a simple scalar for modulating the strength of linear deflection.</string>
+ </map>
+ <key>VEHICLE_LINEAR_DEFLECTION_TIMESCALE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>29</integer>
+ <key>tooltip</key>
+ <string>The timescale for exponential success of linear deflection deflection. It is another way to specify how much time it takes for the vehicles linear velocity to be redirected to its preferred axis of motion.</string>
+ </map>
+ <key>VEHICLE_LINEAR_FRICTION_TIMESCALE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>16</integer>
+ <key>tooltip</key>
+ <string>A vector of timescales for exponential decay of the vehicles linear velocity along its preferred axes of motion (at, left, up).
+ Range = [0.07, inf) seconds for each element of the vector.</string>
+ </map>
+ <key>VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>35</integer>
+ <key>tooltip</key>
+ <string>The timescale for exponential decay of the linear motors magnitude.</string>
+ </map>
+ <key>VEHICLE_LINEAR_MOTOR_DIRECTION</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>18</integer>
+ <key>tooltip</key>
+ <string>The direction and magnitude (in preferred frame) of the vehicles linear motor. The vehicle will accelerate (or decelerate if necessary) to match its velocity to its motor.
+ Range of magnitude = [0, 30] meters/second.</string>
+ </map>
+ <key>VEHICLE_LINEAR_MOTOR_OFFSET</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>20</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>VEHICLE_LINEAR_MOTOR_TIMESCALE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>30</integer>
+ <key>tooltip</key>
+ <string>The timescale for exponential approach to full linear motor velocity.</string>
+ </map>
+ <key>VEHICLE_REFERENCE_FRAME</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>44</integer>
+ <key>tooltip</key>
+ <string>A rotation of the vehicles preferred axes of motion and orientation (at, left, up) with respect to the vehicles local frame (x, y, z).</string>
+ </map>
+ <key>VEHICLE_TYPE_AIRPLANE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>tooltip</key>
+ <string>Uses linear deflection for lift, no hover, and banking to turn.\nSee http://wiki.secondlife.com/wiki/VEHICLE_TYPE_AIRPLANE</string>
+ </map>
+ <key>VEHICLE_TYPE_BALLOON</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>5</integer>
+ <key>tooltip</key>
+ <string>Hover, and friction, but no deflection.\nSee http://wiki.secondlife.com/wiki/VEHICLE_TYPE_BALLOON</string>
+ </map>
+ <key>VEHICLE_TYPE_BOAT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>tooltip</key>
+ <string>Hovers over water with lots of friction and some anglar deflection.\nSee http://wiki.secondlife.com/wiki/VEHICLE_TYPE_BOAT</string>
+ </map>
+ <key>VEHICLE_TYPE_CAR</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>tooltip</key>
+ <string>Another vehicle that bounces along the ground but needs the motors to be driven from external controls or timer events.\nSee http://wiki.secondlife.com/wiki/VEHICLE_TYPE_CAR</string>
+ </map>
+ <key>VEHICLE_TYPE_NONE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>VEHICLE_TYPE_SLED</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>tooltip</key>
+ <string>Simple vehicle that bumps along the ground, and likes to move along its local x-axis.\nSee http://wiki.secondlife.com/wiki/VEHICLE_TYPE_SLED</string>
+ </map>
+ <key>VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>36</integer>
+ <key>tooltip</key>
+ <string>A slider between minimum (0.0 = wobbly) and maximum (1.0 = firm as possible) stability of the vehicle to keep itself upright.</string>
+ </map>
+ <key>VEHICLE_VERTICAL_ATTRACTION_TIMESCALE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>37</integer>
+ <key>tooltip</key>
+ <string>The period of wobble, or timescale for exponential approach, of the vehicle to rotate such that its preferred "up" axis is oriented along the worlds "up" axis.</string>
+ </map>
+ <key>VERTICAL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>WANDER_PAUSE_AT_WAYPOINTS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>ZERO_ROTATION</key>
+ <map>
+ <key>type</key>
+ <string>rotation</string>
+ <key>value</key>
+ <string>&lt;0.0, 0.0, 0.0, 1.0&gt;</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>ZERO_VECTOR</key>
+ <map>
+ <key>type</key>
+ <string>vector</string>
+ <key>value</key>
+ <string>&lt;0.0, 0.0, 0.0&gt;</string>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ </map>
+ <key>events</key>
+ <map>
+ <key>at_rot_target</key>
+ <map>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>TargetNumber</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>TargetRotation</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>rotation</string>
+ </map>
+ </map>
+ <map>
+ <key>CurrentRotation</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>rotation</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>This event is triggered when a script comes within a defined angle of a target rotation. The range and rotation, are set by a call to llRotTarget.</string>
+ </map>
+ <key>at_target</key>
+ <map>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>TargetNumber</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>TargetPosition</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>CurrentPosition</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>This event is triggered when the scripted object comes within a defined range of the target position, defined by the llTarget function call.</string>
+ </map>
+ <key>attach</key>
+ <map>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>AvatarID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>This event is triggered whenever an object is attached or detached from an avatar. If it is attached, the key of the avatar it is attached to is passed in, otherwise NULL_KEY is.</string>
+ </map>
+ <key>changed</key>
+ <map>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Changed</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Triggered when various events change the object. The change argument will be a bit-field of CHANGED_* constants.</string>
+ </map>
+ <key>collision</key>
+ <map>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>NumberOfCollisions</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>This event is raised while another object, or avatar, is colliding with the object the script is attached to.
+ The number of detected objects is passed to the script. Information on those objects may be gathered via the llDetected* functions.</string>
+ </map>
+ <key>collision_end</key>
+ <map>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>NumberOfCollisions</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>This event is raised when another object, or avatar, stops colliding with the object the script is attached to.
+ The number of detected objects is passed to the script. Information on those objects may be gathered via the llDetected* library functions.</string>
+ </map>
+ <key>collision_start</key>
+ <map>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>NumberOfCollisions</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>This event is raised when another object, or avatar, starts colliding with the object the script is attached to.
+ The number of detected objects is passed to the script. Information on those objects may be gathered via the llDetected* library functions.</string>
+ </map>
+ <key>control</key>
+ <map>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>AvatarID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ <map>
+ <key>Levels</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Edges</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Once a script has the ability to grab control inputs from the avatar, this event will be used to pass the commands into the script.
+ The levels and edges are bit-fields of control constants.</string>
+ </map>
+ <key>dataserver</key>
+ <map>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>RequestID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ <map>
+ <key>Data</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>This event is triggered when the requested data is returned to the script.
+ Data may be requested by the llRequestAgentData, llRequestInventoryData, and llGetNotecardLine function calls, for example.</string>
+ </map>
+ <key>email</key>
+ <map>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Time</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Address</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Subject</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Body</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>NumberRemaining</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>This event is triggered when an email sent to this script arrives.
+ The number remaining tells how many more emails are known to be still pending.</string>
+ </map>
+ <key>http_request</key>
+ <map>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>HTTPRequestID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ <map>
+ <key>HTTPMethod</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Body</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Triggered when task receives an HTTP request.</string>
+ </map>
+ <key>http_response</key>
+ <map>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>HTTPRequestID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ <map>
+ <key>Status</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Metadata</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ <map>
+ <key>Body</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>This event handler is invoked when an HTTP response is received for a pending llHTTPRequest request or if a pending request fails or times out.</string>
+ </map>
+ <key>land_collision</key>
+ <map>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Position</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>This event is raised when the object the script is attached to is colliding with the ground.</string>
+ </map>
+ <key>land_collision_end</key>
+ <map>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Position</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>This event is raised when the object the script is attached to stops colliding with the ground.</string>
+ </map>
+ <key>land_collision_start</key>
+ <map>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Position</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>This event is raised when the object the script is attached to begins to collide with the ground.</string>
+ </map>
+ <key>link_message</key>
+ <map>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>SendersLink</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Value</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Text</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>ID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Triggered when object receives a link message via llMessageLinked function call.</string>
+ </map>
+ <key>listen</key>
+ <map>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Channel</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Name</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>ID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ <map>
+ <key>Text</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>This event is raised whenever a chat message matching the constraints set in the llListen command is received. The name and ID of the speaker, as well as the message, are passed in as parameters.
+ Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 through 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen on those channels.</string>
+ </map>
+ <key>money</key>
+ <map>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Payer</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ <map>
+ <key>Amount</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>This event is triggered when a resident has given an amount of Linden dollars to the object.</string>
+ </map>
+ <key>moving_end</key>
+ <map>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Triggered whenever an object with this script stops moving.</string>
+ </map>
+ <key>moving_start</key>
+ <map>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Triggered whenever an object with this script starts moving.</string>
+ </map>
+ <key>no_sensor</key>
+ <map>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>This event is raised when sensors are active, via the llSensor function call, but are not sensing anything.</string>
+ </map>
+ <key>not_at_rot_target</key>
+ <map>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>When a target is set via the llRotTarget function call, but the script is outside the specified angle this event is raised.</string>
+ </map>
+ <key>not_at_target</key>
+ <map>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>When a target is set via the llTarget library call, but the script is outside the specified range this event is raised.</string>
+ </map>
+ <key>object_rez</key>
+ <map>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>RezzedObjectsID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Triggered when an object rezzes another object from its inventory via the llRezObject, or similar, functions. The id is the globally unique key for the object rezzed.</string>
+ </map>
+ <key>on_rez</key>
+ <map>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>StartParameter</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Triggered whenever an object is rezzed from inventory or by another object. The start parameter is passed in from the llRezObject call, or zero if from inventory.</string>
+ </map>
+ <key>path_update</key>
+ <map>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Type</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Reserved</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>This event is called to inform the script of changes within the object's path-finding status.</string>
+ </map>
+ <key>remote_data</key>
+ <map>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>EventType</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>ChannelID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ <map>
+ <key>MessageID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ <map>
+ <key>Sender</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Data</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Data</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Triggered by various XML-RPC calls with event_type specifying the type of data.</string>
+ </map>
+ <key>run_time_permissions</key>
+ <map>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>PermissionFlags</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Scripts need permission from either the owner or the avatar they wish to act on before they may perform certain functions, such as debiting money from their owners account, triggering an animation on an avatar, or capturing control inputs. The llRequestPermissions library function is used to request these permissions and the various permissions integer constants can be supplied.
+ The integer returned to this event handler contains the current set of permissions flags, so if permissions equal 0 then no permissions are set.</string>
+ </map>
+ <key>sensor</key>
+ <map>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>NumberDetected</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>This event is raised whenever objects matching the constraints of the llSensor command are detected.
+ The number of detected objects is passed to the script in the parameter. Information on those objects may be gathered via the llDetected* functions.</string>
+ </map>
+ <key>state_entry</key>
+ <map>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>The state_entry event occurs whenever a new state is entered, including at program start, and is always the first event handled.</string>
+ </map>
+ <key>state_exit</key>
+ <map>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>The state_exit event occurs whenever the state command is used to transition to another state. It is handled before the new states state_entry event.</string>
+ </map>
+ <key>timer</key>
+ <map>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>This event is raised at regular intervals set by the llSetTimerEvent library function.</string>
+ </map>
+ <key>touch</key>
+ <map>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>NumberOfTouches</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>This event is raised while a user is touching the object the script is attached to.
+ The number of touching objects is passed to the script in the parameter.
+ Information on those objects may be gathered via the llDetected* library functions.</string>
+ </map>
+ <key>touch_end</key>
+ <map>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>NumberOfTouches</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>This event is raised when a user stops touching the object the script is attached to. The number of touches is passed to the script in the parameter.
+ Information on those objects may be gathered via the llDetected* library functions.</string>
+ </map>
+ <key>touch_start</key>
+ <map>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>NumberOfTouches</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>This event is raised when a user first touches the object the script is attached to. The number of touches is passed to the script in the parameter.
+ Information on those objects may be gathered via the llDetected() library functions.</string>
+ </map>
+ <key>transaction_result</key>
+ <map>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>RequestID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ <map>
+ <key>Success</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Message</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Triggered by llTransferMoney() function.</string>
+ </map>
+ </map>
+ <key>functions</key>
+ <map>
+ <key>llAbs</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Value</key>
+ <map>
+ <key>tooltip</key>
+ <string>An integer value.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the absolute (positive) version of Value.</string>
+ </map>
+ <key>llAcos</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>float</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Value</key>
+ <map>
+ <key>tooltip</key>
+ <string>A floating-point value.</string>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the arc-cosine of Value, in radians.</string>
+ </map>
+ <key>llAddToLandBanList</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>ID</key>
+ <map>
+ <key>tooltip</key>
+ <string>Agent UUID to add to ban-list.</string>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ <map>
+ <key>Hours</key>
+ <map>
+ <key>tooltip</key>
+ <string>Period, in hours, to ban the avatar for.</string>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Add avatar ID to the parcel ban list for the specified number of Hours.</string>
+ </map>
+ <key>llAddToLandPassList</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.1</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>ID</key>
+ <map>
+ <key>tooltip</key>
+ <string>Agent UUID to add to pass-list.</string>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ <map>
+ <key>Hours</key>
+ <map>
+ <key>tooltip</key>
+ <string>Period, in hours, to allow the avatar for.</string>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Add avatar ID to the land pass list, for a duration of Hours.</string>
+ </map>
+ <key>llAdjustSoundVolume</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.1</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Volume</key>
+ <map>
+ <key>tooltip</key>
+ <string>The volume to set.</string>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Adjusts the volume (0.0 - 1.0) of the currently playing attached sound.\nThis function has no effect on sounds started with llTriggerSound.</string>
+ </map>
+ <key>llAllowInventoryDrop</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Flag</key>
+ <map>
+ <key>tooltip</key>
+ <string>Boolean, If TRUE allows anyone to drop inventory on prim, FALSE revokes.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>If Flag == TRUE, users without object modify permissions can still drop inventory items into the object.</string>
+ </map>
+ <key>llAngleBetween</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>float</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Rot1</key>
+ <map>
+ <key>tooltip</key>
+ <string>First rotation.</string>
+ <key>type</key>
+ <string>rotation</string>
+ </map>
+ </map>
+ <map>
+ <key>Rot2</key>
+ <map>
+ <key>tooltip</key>
+ <string>Second rotation.</string>
+ <key>type</key>
+ <string>rotation</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the angle, in radians, between rotations Rot1 and Rot2.</string>
+ </map>
+ <key>llApplyImpulse</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Force</key>
+ <map>
+ <key>tooltip</key>
+ <string>Amount of impulse force to apply.</string>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>Local</key>
+ <map>
+ <key>tooltip</key>
+ <string>Boolean, if TRUE, force is treated as a local directional vector instead of region directional vector.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Applies impulse to the object.\nIf Local == TRUE, apply the Force in local coordinates; otherwise, apply the Force in global coordinates.\nThis function only works on physical objects.</string>
+ </map>
+ <key>llApplyRotationalImpulse</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Force</key>
+ <map>
+ <key>tooltip</key>
+ <string>Amount of impulse force to apply.</string>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>Local</key>
+ <map>
+ <key>tooltip</key>
+ <string>Boolean, if TRUE, uses local axis, if FALSE, uses region axis.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Applies rotational impulse to the object.\nIf Local == TRUE, apply the Force in local coordinates; otherwise, apply the Force in global coordinates.\nThis function only works on physical objects.</string>
+ </map>
+ <key>llAsin</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>float</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Value</key>
+ <map>
+ <key>tooltip</key>
+ <string>A floating-point value.</string>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the arc-sine, in radians, of Value.</string>
+ </map>
+ <key>llAtan2</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>float</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>y</key>
+ <map>
+ <key>tooltip</key>
+ <string>A floating-point value.</string>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ <map>
+ <key>x</key>
+ <map>
+ <key>tooltip</key>
+ <string>A floating-point value.</string>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the arc-tangent2 of y, x.</string>
+ </map>
+ <key>llAttachToAvatar</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>AttachmentPoint</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Attach to avatar at point AttachmentPoint.\nRequires the PERMISSION_ATTACH runtime permission.</string>
+ </map>
+ <key>llAttachToAvatarTemp</key>
+ <map>
+ <key>energy</key>
+ <real>0</real>
+ <key>sleep</key>
+ <real>0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>AttachPoint</key>
+ <map>
+ <key>tooltip</key>
+ <string>Valid attachment poit or ATTACH_* constant.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Follows the same convention as llAttachToAvatar, with the exception that the object will not create new inventory for the user, and will disappear on detach or disconnect.</string>
+ </map>
+ <key>llAvatarOnLinkSitTarget</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>key</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>LinkNumber</key>
+ <map>
+ <key>tooltip</key>
+ <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>If an avatar is sitting on the link's sit target, return the avatar's key, NULL_KEY otherwise.</string>
+ </map>
+ <key>llAvatarOnSitTarget</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>key</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>If an avatar is seated on the sit target, returns the avatar's key, otherwise NULL_KEY.</string>
+ </map>
+ <key>llAxes2Rot</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>rotation</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Forward</key>
+ <map>
+ <key>tooltip</key>
+ <string>Forward/Back part of rotation.</string>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>Left</key>
+ <map>
+ <key>tooltip</key>
+ <string>Left/Right part of rotation.</string>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>Up</key>
+ <map>
+ <key>tooltip</key>
+ <string>Up/Down part of rotation.</string>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the rotation represented by coordinate axes Forward, Left, and Up.</string>
+ </map>
+ <key>llAxisAngle2Rot</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>rotation</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Axis</key>
+ <map>
+ <key>tooltip</key>
+ <string>Axis.</string>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>Angle</key>
+ <map>
+ <key>tooltip</key>
+ <string>Angle in radians.</string>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the rotation that is a generated Angle about Axis.</string>
+ </map>
+ <key>llBase64ToInteger</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Text</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns an integer that is the Text, Base64 decoded as a big endian integer.</string>
+ </map>
+ <key>llBase64ToString</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>string</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Text</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Converts a Base64 string to a conventional string.\nIf the conversion creates any unprintable characters, they are converted to question marks.</string>
+ </map>
+ <key>llBreakAllLinks</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>De-links all prims in the link set (requires permission PERMISSION_CHANGE_LINKS be set).</string>
+ </map>
+ <key>llBreakLink</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>LinkNumber</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>De-links the prim with the given link number (requires permission PERMISSION_CHANGE_LINKS be set).</string>
+ </map>
+ <key>llCastRay</key>
+ <map>
+ <key>energy</key>
+ <real/>
+ <key>sleep</key>
+ <real/>
+ <key>return</key>
+ <string>list</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Start</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>End</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>Options</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Casts a ray into the physics world from 'start' to 'end' and returns data according to details in Options.</string>
+ </map>
+ <key>llCeil</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Value</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns smallest integer value &gt;= Value.</string>
+ </map>
+ <key>llClearCameraParams</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Resets all camera parameters to default values and turns off scripted camera control.</string>
+ </map>
+ <key>llClearLinkMedia</key>
+ <map>
+ <key>energy</key>
+ <real>0.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Link</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Face</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Clears (deletes) the media and all parameters from the given Face on the linked prim.</string>
+ </map>
+ <key>llClearPrimMedia</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.1</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Face</key>
+ <map>
+ <key>tooltip</key>
+ <string>Number of side to clear.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Clears (deletes) the media and all parameters from the given Face.</string>
+ </map>
+ <key>llCloseRemoteDataChannel</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>1.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>ChannelID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Closes the specified XML-RPC channel.</string>
+ </map>
+ <key>llCloud</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>float</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Offset</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the cloud density at the object's position + Offset.</string>
+ </map>
+ <key>llCollisionFilter</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>ObjectName</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>ObjectID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ <map>
+ <key>Accept</key>
+ <map>
+ <key>tooltip</key>
+ <string>If TRUE, only accept collisions with ObjectName name AND ObjectID (either is optional), otherwise with objects not ObjectName AND ObjectID.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>If Accept == TRUE, only accept collisions with objects Name and ID, otherwise with objects not Name or ID.</string>
+ </map>
+ <key>llCollisionSound</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>ImpactSound</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>ImpactVolume</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Suppress default collision sounds, replace default impact sounds with ImpactSound.</string>
+ </map>
+ <key>llCollisionSprite</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>ImpactSprite</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Suppress default collision sprites, replace default impact sprite with ImpactSprite; found in the object inventory (empty string to just suppress).</string>
+ </map>
+ <key>llCos</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>float</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Theta</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the cosine of Theta (Theta in radians).</string>
+ </map>
+ <key>llCreateCharacter</key>
+ <map>
+ <key>energy</key>
+ <real/>
+ <key>sleep</key>
+ <real/>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Options</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Convert link-set to AI/Physics character.</string>
+ </map>
+ <key>llCreateLink</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>1.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>TargetPrim</key>
+ <map>
+ <key>tooltip</key>
+ <string>Object UUID that is in the same region.</string>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ <map>
+ <key>Parent</key>
+ <map>
+ <key>tooltip</key>
+ <string>If FALSE, then TargetPrim becomes the root. If TRUE, then the script's object becomes the root.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Attempt to link the object the script is in, to target (requires permission PERMISSION_CHANGE_LINKS be set).</string>
+ </map>
+ <key>llCSV2List</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>list</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Text</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Create a list from a string of comma separated values specified in Text.</string>
+ </map>
+ <key>llDeleteCharacter</key>
+ <map>
+ <key>energy</key>
+ <real/>
+ <key>sleep</key>
+ <real/>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Convert link-set from AI/Physics character to Physics object.</string>
+ </map>
+ <key>llDeleteSubList</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>list</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Source</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ <map>
+ <key>Start</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>End</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Removes the slice from start to end and returns the remainder of the list.</string>
+ </map>
+ <key>llDeleteSubString</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>string</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Source</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Start</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>End</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Removes the indicated sub-string and returns the result.</string>
+ </map>
+ <key>llDetachFromAvatar</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Remove the object containing the script from the avatar.</string>
+ </map>
+ <key>llDetectedGrab</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>vector</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Number</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the grab offset of a user touching the object.</string>
+ </map>
+ <key>llDetectedGroup</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Number</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns TRUE if detected object or agent Number has the same user group active as this object.</string>
+ </map>
+ <key>llDetectedKey</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>key</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Number</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the key of detected object or avatar number.</string>
+ </map>
+ <key>llDetectedLinkNumber</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Number</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the link position of the triggered event for touches and collisions only.</string>
+ </map>
+ <key>llDetectedName</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>string</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Number</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the name of detected object or avatar number.</string>
+ </map>
+ <key>llDetectedOwner</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>key</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Number</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the key of detected object's owner.</string>
+ </map>
+ <key>llDetectedPos</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>vector</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Number</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the position of detected object or avatar number.</string>
+ </map>
+ <key>llDetectedRot</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>rotation</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Number</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the rotation of detected object or avatar number.</string>
+ </map>
+ <key>llDetectedTouchBinormal</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>vector</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Index</key>
+ <map>
+ <key>tooltip</key>
+ <string>Index of detection information</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the surface bi-normal for a triggered touch event.</string>
+ </map>
+ <key>llDetectedTouchFace</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Index</key>
+ <map>
+ <key>tooltip</key>
+ <string>Index of detection information</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the index of the face where the avatar clicked in a triggered touch event.</string>
+ </map>
+ <key>llDetectedTouchNormal</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>vector</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Index</key>
+ <map>
+ <key>tooltip</key>
+ <string>Index of detection information</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the surface normal for a triggered touch event.</string>
+ </map>
+ <key>llDetectedTouchPos</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>vector</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Index</key>
+ <map>
+ <key>tooltip</key>
+ <string>Index of detected information</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the position, in region coordinates, where the object was touched in a triggered touch event.</string>
+ </map>
+ <key>llDetectedTouchST</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>vector</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Index</key>
+ <map>
+ <key>tooltip</key>
+ <string>Index of detection information</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns a vector that is the surface coordinates where the prim was touched.</string>
+ </map>
+ <key>llDetectedTouchUV</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>vector</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Index</key>
+ <map>
+ <key>tooltip</key>
+ <string>Index of detection information</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns a vector that is the texture coordinates for where the prim was touched.</string>
+ </map>
+ <key>llDetectedType</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Number</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the type (AGENT, ACTIVE, PASSIVE, SCRIPTED) of detected object.</string>
+ </map>
+ <key>llDetectedVel</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>vector</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Number</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the velocity of the detected object Number.</string>
+ </map>
+ <key>llDialog</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.1</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>AvatarID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ <map>
+ <key>Text</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Buttons</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ <map>
+ <key>Channel</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Shows a dialog box on the avatar's screen with the message.\n
+ Up to 12 strings in the list form buttons.\n
+ If a button is clicked, the name is chatted on Channel.</string>
+ </map>
+ <key>llDie</key>
+ <map>
+ <key>energy</key>
+ <real>0.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Deletes the object.</string>
+ </map>
+ <key>llDumpList2String</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>string</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Source</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ <map>
+ <key>Separator</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the list as a single string, using Separator between the entries.</string>
+ </map>
+ <key>llEdgeOfWorld</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Position</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>Direction</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Checks to see whether the border hit by Direction from Position is the edge of the world (has no neighboring region).</string>
+ </map>
+ <key>llEjectFromLand</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>AvatarID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Ejects AvatarID from land that you own.</string>
+ </map>
+ <key>llEmail</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>20.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Address</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Subject</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Text</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Sends email to Address with Subject and Message.</string>
+ </map>
+ <key>llEscapeURL</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>string</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>URL</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns an escaped/encoded version of url, replacing spaces with %20 etc.</string>
+ </map>
+ <key>llEuler2Rot</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>rotation</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Vector</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the rotation representation of the Euler angles.</string>
+ </map>
+ <key>llEvade</key>
+ <map>
+ <key>energy</key>
+ <real/>
+ <key>sleep</key>
+ <real/>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>TargetID</key>
+ <map>
+ <key>tooltip</key>
+ <string>Agent or object to evade.</string>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ <map>
+ <key>Options</key>
+ <map>
+ <key>tooltip</key>
+ <string>No options yet.</string>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Evade a specified target.</string>
+ </map>
+ <key>llExecCharacterCmd</key>
+ <map>
+ <key>energy</key>
+ <real/>
+ <key>sleep</key>
+ <real/>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Command</key>
+ <map>
+ <key>tooltip</key>
+ <string>Command to send.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Options</key>
+ <map>
+ <key>tooltip</key>
+ <string>Height for CHARACTER_CMD_JUMP.</string>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Execute a character command.</string>
+ </map>
+ <key>llFabs</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>float</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Value</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the positive version of Value.</string>
+ </map>
+ <key>llFleeFrom</key>
+ <map>
+ <key>energy</key>
+ <real/>
+ <key>sleep</key>
+ <real/>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Source</key>
+ <map>
+ <key>tooltip</key>
+ <string>Global coordinate from which to flee.</string>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>Distance</key>
+ <map>
+ <key>tooltip</key>
+ <string>Distance in meters to flee from the source.</string>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ <map>
+ <key>Options</key>
+ <map>
+ <key>tooltip</key>
+ <string>No options available at this time.</string>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Flee from a point.</string>
+ </map>
+ <key>llFloor</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Value</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns largest integer value &lt;= Value.</string>
+ </map>
+ <key>llForceMouselook</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Enable</key>
+ <map>
+ <key>tooltip</key>
+ <string>Boolean, if TRUE when an avatar sits on the prim, the avatar will be forced into mouse-look mode.
+ FALSE is the default setting and will undo a previously set TRUE or do nothing.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>If Enable is TRUE any avatar that sits on this object is forced into mouse-look mode.</string>
+ </map>
+ <key>llFrand</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>float</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Magnitude</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns a pseudo random number in the range [0, Magnitude] or [Magnitude, 0].</string>
+ </map>
+ <key>llGenerateKey</key>
+ <map>
+ <key>energy</key>
+ <real>0</real>
+ <key>sleep</key>
+ <real>0</real>
+ <key>return</key>
+ <string>key</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Generates a key (SHA-1 hash) using UUID generation to create a unique key.</string>
+ </map>
+ <key>llGetAccel</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>vector</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns the acceleration of the object relative to the region's axes.</string>
+ </map>
+ <key>llGetAgentInfo</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>AvatarID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns an integer bit-field containing the agent information about id.\n
+ Returns AGENT_FLYING, AGENT_ATTACHMENTS, AGENT_SCRIPTED, AGENT_SITTING, AGENT_ON_OBJECT, AGENT_MOUSELOOK, AGENT_AWAY, AGENT_BUSY, AGENT_TYPING, AGENT_CROUCHING, AGENT_ALWAYS_RUN, AGENT_WALKING and/or AGENT_IN_AIR.</string>
+ </map>
+ <key>llGetAgentLanguage</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>string</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>AvatarID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the language code of the preferred interface language of the avatar.</string>
+ </map>
+ <key>llGetAgentList</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>list</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Scope</key>
+ <map>
+ <key>tooltip</key>
+ <string>The scope (region, parcel, parcel same owner) to return agents for.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Options</key>
+ <map>
+ <key>tooltip</key>
+ <string>List of options to apply. Current unused.</string>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Requests a list of agents currently in the region, limited by the scope parameter.</string>
+ </map>
+ <key>llGetAgentSize</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>vector</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>AvatarID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>If the avatar is in the same region, returns the size of the bounding box of the requested avatar by id, otherwise returns ZERO_VECTOR.</string>
+ </map>
+ <key>llGetAlpha</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>float</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Face</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the alpha value of Face.</string>
+ </map>
+ <key>llGetAndResetTime</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>float</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns the script time in seconds and then resets the script timer to zero.</string>
+ </map>
+ <key>llGetAnimation</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>string</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>AvatarID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the name of the currently playing locomotion animation for the avatar id.</string>
+ </map>
+ <key>llGetAnimationList</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>list</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>AvatarID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns a list of keys of playing animations for an avatar.</string>
+ </map>
+ <key>llGetAnimationOverride</key>
+ <map>
+ <key>energy</key>
+ <real>0</real>
+ <key>sleep</key>
+ <real>0</real>
+ <key>return</key>
+ <string>string</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>AnimationState</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns a string that is the name of the animation that is used for the specified animation state</string>
+ </map>
+ <key>llGetAttached</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns the object's attachment point, or 0 if not attached.</string>
+ </map>
+ <key>llGetBoundingBox</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>list</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>ID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the bounding box around the object (including any linked prims) relative to its root prim, as a list in the format [ (vector) min_corner, (vector) max_corner ].</string>
+ </map>
+ <key>llGetCameraPos</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>vector</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns the current camera position for the agent the task has permissions for.</string>
+ </map>
+ <key>llGetCameraRot</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>rotation</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns the current camera orientation for the agent the task has permissions for.</string>
+ </map>
+ <key>llGetCenterOfMass</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>vector</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns the prim's centre of mass (unless called from the root prim, where it returns the object's centre of mass).</string>
+ </map>
+ <key>llGetClosestNavPoint</key>
+ <map>
+ <key>energy</key>
+ <real/>
+ <key>sleep</key>
+ <real/>
+ <key>return</key>
+ <string>list</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Point</key>
+ <map>
+ <key>tooltip</key>
+ <string>A point in region-local space.</string>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>Options</key>
+ <map>
+ <key>tooltip</key>
+ <string>No options at this time.</string>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Get the closest navigable point to the point provided.</string>
+ </map>
+ <key>llGetColor</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>vector</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Face</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the color on Face.</string>
+ </map>
+ <key>llGetCreator</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>key</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns a key for the creator of the prim.</string>
+ </map>
+ <key>llGetDate</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>string</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns the current date in the UTC time zone in the format YYYY-MM-DD.</string>
+ </map>
+ <key>llGetDisplayName</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>string</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>AvatarID</key>
+ <map>
+ <key>tooltip</key>
+ <string>Avatar UUID that is in the same region, or is otherwise known to the region.</string>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the name of an avatar, if the avatar is in the current region, and the name has been cached, otherwise the same as llGetUsername. Use llRequestDisplayName if you absolutely must have the display name.</string>
+ </map>
+ <key>llGetEnergy</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>float</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns how much energy is in the object as a percentage of maximum.</string>
+ </map>
+ <key>llGetEnv</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>string</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>DataRequest</key>
+ <map>
+ <key>tooltip</key>
+ <string>The type of data to request. Any other string will cause an empty string to be returned.</string>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns a string with the requested data about the region.</string>
+ </map>
+ <key>llGetForce</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>vector</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns the force (if the script is physical).</string>
+ </map>
+ <key>llGetFreeMemory</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns the number of free bytes of memory the script can use.</string>
+ </map>
+ <key>llGetFreeURLs</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns the number of available URLs for the current script.</string>
+ </map>
+ <key>llGetGeometricCenter</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>vector</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns the geometric center of the linked set the script is attached to.</string>
+ </map>
+ <key>llGetGMTclock</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>float</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns the time in seconds since midnight GMT.</string>
+ </map>
+ <key>llGetHTTPHeader</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>string</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>HTTPRequestID</key>
+ <map>
+ <key>tooltip</key>
+ <string>A valid HTTP request key</string>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ <map>
+ <key>Header</key>
+ <map>
+ <key>tooltip</key>
+ <string>Header value name</string>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the value for header for request_id.</string>
+ </map>
+ <key>llGetInventoryCreator</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>key</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>InventoryItem</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns a key for the creator of the inventory item.</string>
+ </map>
+ <key>llGetInventoryKey</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>key</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>InventoryItem</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the key that is the UUID of the inventory named.</string>
+ </map>
+ <key>llGetInventoryName</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>string</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>InventoryType</key>
+ <map>
+ <key>tooltip</key>
+ <string>inventory item type</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Index</key>
+ <map>
+ <key>tooltip</key>
+ <string>Index number of inventory item.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the name of the inventory item number of a given type.</string>
+ </map>
+ <key>llGetInventoryNumber</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>InventoryType</key>
+ <map>
+ <key>tooltip</key>
+ <string>Inventory item type</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the number of items of a given type (INVENTORY_* flag) in the prim's inventory.</string>
+ </map>
+ <key>llGetInventoryPermMask</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>InventoryItem</key>
+ <map>
+ <key>tooltip</key>
+ <string>Inventory item name.</string>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>BitMask</key>
+ <map>
+ <key>tooltip</key>
+ <string>MASK_BASE, MASK_OWNER, MASK_GROUP, MASK_EVERYONE or MASK_NEXT</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the requested permission mask for the inventory item.</string>
+ </map>
+ <key>llGetInventoryType</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>InventoryItem</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the type of the inventory item named.</string>
+ </map>
+ <key>llGetKey</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>key</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns the key of the prim the script is attached to.</string>
+ </map>
+ <key>llGetLandOwnerAt</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>key</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Position</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the key of the land owner, returns NULL_KEY if public.</string>
+ </map>
+ <key>llGetLinkKey</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>key</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>LinkNumber</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the key of the linked prim LinkNumber.</string>
+ </map>
+ <key>llGetLinkMedia</key>
+ <map>
+ <key>energy</key>
+ <real>0.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>list</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>LinkNumber</key>
+ <map>
+ <key>tooltip</key>
+ <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Face</key>
+ <map>
+ <key>tooltip</key>
+ <string>The prim's side number</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Parameters</key>
+ <map>
+ <key>tooltip</key>
+ <string>A list of PRIM_* property constants to return values of.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Get the media parameters for a particular face on linked prim, given the desired list of parameter names. Returns a list of values in the order requested. Returns an empty list if no media exists on the face.</string>
+ </map>
+ <key>llGetLinkName</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>string</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>LinkNumber</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the name of LinkNumber in a link set.</string>
+ </map>
+ <key>llGetLinkNumber</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns the link number of the prim containing the script (0 means not linked, 1 the prim is the root, 2 the prim is the first child, etc.).</string>
+ </map>
+ <key>llGetLinkNumberOfSides</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>LinkNumber</key>
+ <map>
+ <key>tooltip</key>
+ <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the number of sides of the specified linked prim.</string>
+ </map>
+ <key>llGetLinkPrimitiveParams</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>list</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>LinkNumber</key>
+ <map>
+ <key>tooltip</key>
+ <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Parameters</key>
+ <map>
+ <key>tooltip</key>
+ <string>PRIM_* flags.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Get primitive parameters for LinkNumber based on rules.</string>
+ </map>
+ <key>llGetListEntryType</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>ListVariable</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ <map>
+ <key>Index</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the type of the index entry in the list (TYPE_INTEGER, TYPE_FLOAT, TYPE_STRING, TYPE_KEY, TYPE_VECTOR, TYPE_ROTATION, or TYPE_INVALID if index is off list).</string>
+ </map>
+ <key>llGetListLength</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>ListVariable</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the number of elements in the list.</string>
+ </map>
+ <key>llGetLocalPos</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>vector</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns the position relative to the root.</string>
+ </map>
+ <key>llGetLocalRot</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>rotation</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns the rotation local to the root.</string>
+ </map>
+ <key>llGetMass</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>float</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns the mass of object that the script is attached to.</string>
+ </map>
+ <key>llGetMassMKS</key>
+ <map>
+ <key>energy</key>
+ <real/>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>float</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Acts as llGetMass(), except that the units of the value returned are Kg.</string>
+ </map>
+ <key>llGetMaxScaleFactor</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>float</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns a float that is the largest scaling factor that can be used with llScaleByFactor to resize the object. This maximum is determined by the Linkability Rules and prim scale limits.</string>
+ </map>
+ <key>llGetMemoryLimit</key>
+ <map>
+ <key>energy</key>
+ <real/>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Get the maximum memory a script can use, in bytes.</string>
+ </map>
+ <key>llGetMinScaleFactor</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>float</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns a float that is the smallest scaling factor that can be used with llScaleByFactor to resize the object. This minimum is determined by the prim scale limits.</string>
+ </map>
+ <key>llGetNextEmail</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Address</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Subject</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Get the next waiting email with appropriate address and/or subject (if blank they are ignored).</string>
+ </map>
+ <key>llGetNotecardLine</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.1</real>
+ <key>return</key>
+ <string>key</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>NotecardName</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>LineNumber</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns line from NotecardName via the dataserver event.</string>
+ </map>
+ <key>llGetNumberOfNotecardLines</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.1</real>
+ <key>return</key>
+ <string>key</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>NotecardName</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns number of lines in NotecardName via the dataserver event (cast return value to integer).</string>
+ </map>
+ <key>llGetNumberOfPrims</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns the number of prims in a link set the script is attached to.</string>
+ </map>
+ <key>llGetNumberOfSides</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns the number of faces (or sides) of the prim.</string>
+ </map>
+ <key>llGetObjectDesc</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>string</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns the description of the prim the script is attached to.</string>
+ </map>
+ <key>llGetObjectDetails</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>list</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>ID</key>
+ <map>
+ <key>tooltip</key>
+ <string>Prim or avatar UUID that is in the same region.</string>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ <map>
+ <key>Parameters</key>
+ <map>
+ <key>tooltip</key>
+ <string>List of OBJECT_* flags.</string>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the object details specified in Parameters for the object with key ID.\n
+ Parameters are OBJECT_NAME, _DESC, _POS, _ROT, _VELOCITY, _OWNER, _GROUP, _CREATOR.</string>
+ </map>
+ <key>llGetObjectMass</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>float</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>ID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the mass of the avatar or object in the region.</string>
+ </map>
+ <key>llGetObjectName</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>string</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns the name of the prim which the script is attached to.</string>
+ </map>
+ <key>llGetObjectPermMask</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>PermissionMask</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the requested permission mask for the root object the task is attached to.</string>
+ </map>
+ <key>llGetObjectPrimCount</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>ObjectID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the total number of prims for an object in the region.</string>
+ </map>
+ <key>llGetOmega</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>vector</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns the rotation velocity in radians per second.</string>
+ </map>
+ <key>llGetOwner</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>key</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns the object owner's UUID.</string>
+ </map>
+ <key>llGetOwnerKey</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>key</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>ObjectID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the owner of ObjectID.</string>
+ </map>
+ <key>llGetParcelDetails</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>list</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Position</key>
+ <map>
+ <key>tooltip</key>
+ <string>Location within the region.</string>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>ParcelDetails</key>
+ <map>
+ <key>tooltip</key>
+ <string>List of details requested for the specified parcel location.</string>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the parcel details specified in ParcelDetails for the parcel at Position.\n
+ Parameters is one or more of: PARCEL_DETAILS_NAME, _DESC, _OWNER, _GROUP, _AREA, _ID, _SEE_AVATARS.</string>
+ </map>
+ <key>llGetParcelFlags</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Position</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns a mask of the parcel flags (PARCEL_FLAG_*) for the parcel that includes the point Position.</string>
+ </map>
+ <key>llGetParcelMaxPrims</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Position</key>
+ <map>
+ <key>tooltip</key>
+ <string>Region coordinates (z is ignored) of parcel.</string>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>SimWide</key>
+ <map>
+ <key>tooltip</key>
+ <string>Boolean. If FALSE then the return is the maximum prims supported by the parcel. If TRUE then it is the combined number of prims on all parcels in the region owned by the specified parcel's owner.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the maximum number of prims allowed on the parcel at Position.</string>
+ </map>
+ <key>llGetParcelMusicURL</key>
+ <map>
+ <key>energy</key>
+ <real/>
+ <key>sleep</key>
+ <real/>
+ <key>return</key>
+ <string>string</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Gets the streaming audio URL for the parcel object is on.</string>
+ </map>
+ <key>llGetParcelPrimCount</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Position</key>
+ <map>
+ <key>tooltip</key>
+ <string>region coordinate</string>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>Category</key>
+ <map>
+ <key>tooltip</key>
+ <string>A PARCEL_COUNT_* flag.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>SimWide</key>
+ <map>
+ <key>tooltip</key>
+ <string>Boolean. If FALSE then the return is the maximum prims supported by the parcel. If TRUE then it is the combined number of prims on all parcels in the region owned by the specified parcel's owner.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the number of prims on the parcel at Position of the given category.
+ Categories: PARCEL_COUNT_TOTAL, _OWNER, _GROUP, _OTHER, _SELECTED, _TEMP.</string>
+ </map>
+ <key>llGetParcelPrimOwners</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>2.0</real>
+ <key>return</key>
+ <string>list</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Position</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns a list of all residents who own objects on the parcel at Position, with individual prim counts.
+ Requires owner-like permissions for the parcel.</string>
+ </map>
+ <key>llGetPermissions</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns an integer bit-field with the permissions that have been granted.</string>
+ </map>
+ <key>llGetPermissionsKey</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>key</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns the key of the avatar that last granted permissions to the script.</string>
+ </map>
+ <key>llGetPhysicsMaterial</key>
+ <map>
+ <key>energy</key>
+ <real/>
+ <key>sleep</key>
+ <real/>
+ <key>return</key>
+ <string>list</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns a list of the form [float gravity_multiplier, float restitution, float friction, float density].</string>
+ </map>
+ <key>llGetPos</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>vector</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns the position of the task in region coordinates.</string>
+ </map>
+ <key>llGetPrimitiveParams</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.2</real>
+ <key>return</key>
+ <string>list</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Parameters</key>
+ <map>
+ <key>tooltip</key>
+ <string>PRIM_* flags</string>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the primitive parameters specified in the parameters list.</string>
+ </map>
+ <key>llGetPrimMediaParams</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.1</real>
+ <key>return</key>
+ <string>list</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Face</key>
+ <map>
+ <key>tooltip</key>
+ <string>face number</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Parameters</key>
+ <map>
+ <key>tooltip</key>
+ <string>a set PRIM_* flags (in no particular order)</string>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the media parameters for a particular face on an object, given the desired list of parameter names, in the order requested. Returns an empty list if no media exists on the face.</string>
+ </map>
+ <key>llGetRegionAgentCount</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns the number of avatars in the region.</string>
+ </map>
+ <key>llGetRegionCorner</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>vector</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns a vector, in meters, that is the global location of the south-west corner of the region which the object is in.</string>
+ </map>
+ <key>llGetRegionFlags</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns the region flags (REGION_FLAG_*) for the region the object is in.</string>
+ </map>
+ <key>llGetRegionFPS</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns the mean region frames per second.</string>
+ </map>
+ <key>llGetRegionName</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>string</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns the current region name.</string>
+ </map>
+ <key>llGetRegionTimeDilation</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>float</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns the current time dilation as a float between 0.0 (full dilation) and 1.0 (no dilation).</string>
+ </map>
+ <key>llGetRootPosition</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>vector</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns the position (in region coordinates) of the root prim of the object which the script is attached to.</string>
+ </map>
+ <key>llGetRootRotation</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>rotation</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns the rotation (relative to the region) of the root prim of the object which the script is attached to.</string>
+ </map>
+ <key>llGetRot</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>rotation</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns the rotation relative to the region's axes.</string>
+ </map>
+ <key>llGetScale</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>vector</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns the scale of the prim.</string>
+ </map>
+ <key>llGetScriptName</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>string</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns the name of the script that this function is used in.</string>
+ </map>
+ <key>llGetScriptState</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>ScriptName</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns TRUE if the script named is running.</string>
+ </map>
+ <key>llGetSimStats</key>
+ <map>
+ <key>energy</key>
+ <real>0</real>
+ <key>sleep</key>
+ <real>0</real>
+ <key>return</key>
+ <string>float</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>StatType</key>
+ <map>
+ <key>tooltip</key>
+ <string>Statistic type. Currently only SIM_STAT_PCT_CHARS_STEPPED is supported.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns a float that is the requested statistic.</string>
+ </map>
+ <key>llGetSimulatorHostname</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>10.0</real>
+ <key>return</key>
+ <string>string</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns the host-name of the machine which the script is running on (same as string in viewer Help dialog).</string>
+ </map>
+ <key>llGetSPMaxMemory</key>
+ <map>
+ <key>energy</key>
+ <real/>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns the maximum used memory for the current script. Only valid after using PROFILE_SCRIPT_MEMORY. Non-mono scripts always use 16k.</string>
+ </map>
+ <key>llGetStartParameter</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns an integer that is the script start parameter.</string>
+ </map>
+ <key>llGetStaticPath</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>list</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Start</key>
+ <map>
+ <key>tooltip</key>
+ <string>Starting position.</string>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>End</key>
+ <map>
+ <key>tooltip</key>
+ <string>Ending position.</string>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>Radius</key>
+ <map>
+ <key>tooltip</key>
+ <string>Radius of the character that the path is for, between 0.125m and 5.0m.</string>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ <map>
+ <key>Parameters</key>
+ <map>
+ <key>tooltip</key>
+ <string>Currently only accepts the parameter CHARACTER_TYPE; the options are identical to those used for llCreateCharacter. The default value is CHARACTER_TYPE_NONE.</string>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string/>
+ </map>
+ <key>llGetStatus</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>StatusFlag</key>
+ <map>
+ <key>tooltip</key>
+ <string>A STATUS_* flag</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns value of status (STATUS_PHYSICS, STATUS_PHANTOM, STATUS_BLOCK_GRAB, STATUS_ROTATE_X, STATUS_ROTATE_Y, and/or STATUS_ROTATE_Z).</string>
+ </map>
+ <key>llGetSubString</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>string</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>String</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Start</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>End</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the indicated substring.</string>
+ </map>
+ <key>llGetSunDirection</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>vector</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns a normalized vector of the direction of the sun in the region.</string>
+ </map>
+ <key>llGetTexture</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>string</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Face</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns a string that is the texture on face (the inventory name if it is a texture in the prim's inventory, otherwise the key).</string>
+ </map>
+ <key>llGetTextureOffset</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>vector</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Face</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the texture offset of face in the x and y components of a vector.</string>
+ </map>
+ <key>llGetTextureRot</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>float</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Face</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the texture rotation of side.</string>
+ </map>
+ <key>llGetTextureScale</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>vector</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Face</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the texture scale of side in the x and y components of a vector.</string>
+ </map>
+ <key>llGetTime</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>float</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns the time in seconds since the last region reset, script reset, or call to either llResetTime or llGetAndResetTime.</string>
+ </map>
+ <key>llGetTimeOfDay</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>float</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns the time in seconds since [SECOND_LIFE] server midnight or since region up-time, whichever is smaller.</string>
+ </map>
+ <key>llGetTimestamp</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>string</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns a time-stamp (UTC time zone) in the format: YYYY-MM-DDThh:mm:ss.ff..fZ.</string>
+ </map>
+ <key>llGetTorque</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>vector</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns the torque (if the script is physical).</string>
+ </map>
+ <key>llGetUnixTime</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns the number of seconds elapsed since 00:00 hours, Jan 1, 1970 UTC from the system clock.</string>
+ </map>
+ <key>llGetUsedMemory</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns the current used memory for the current script. Non-mono scripts always use 16K.</string>
+ </map>
+ <key>llGetUsername</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>string</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>AvatarID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the single-word user-name of an avatar, if the avatar is in the current region, otherwise the empty string.</string>
+ </map>
+ <key>llGetVel</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>vector</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns the velocity of the object.</string>
+ </map>
+ <key>llGetWallclock</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>float</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Returns the time in seconds since midnight California Pacific time (PST/PDT).</string>
+ </map>
+ <key>llGiveInventory</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>TargetID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ <map>
+ <key>InventoryItem</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Give InventoryItem to destination represented by TargetID.</string>
+ </map>
+ <key>llGiveInventoryList</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>3.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>TargetID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ <map>
+ <key>FolderName</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>InventoryItems</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Give InventoryItems to destination (represented by TargetID) as a new folder of items.</string>
+ </map>
+ <key>llGiveMoney</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>AvatarID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ <map>
+ <key>Amount</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Transfers Amount of L from script owner to AvatarID.</string>
+ </map>
+ <key>llGodLikeRezObject</key>
+ <map>
+ <key>god-mode</key>
+ <boolean>true</boolean>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>InventoryItemID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ <map>
+ <key>Position</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Rez directly off of a UUID if owner has dog-bit set.</string>
+ </map>
+ <key>llGround</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>float</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Offset</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the ground height at the object position + offset.</string>
+ </map>
+ <key>llGroundContour</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>vector</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Offset</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the ground contour direction below the object position + Offset.</string>
+ </map>
+ <key>llGroundNormal</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>vector</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Offset</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the ground normal below the object position + offset.</string>
+ </map>
+ <key>llGroundRepel</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Height</key>
+ <map>
+ <key>tooltip</key>
+ <string>.Distance above the ground.</string>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ <map>
+ <key>Water</key>
+ <map>
+ <key>tooltip</key>
+ <string>Boolean, if TRUE then hover above water too.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Tau</key>
+ <map>
+ <key>tooltip</key>
+ <string>Seconds to critically damp in.</string>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Critically damps to height if within height * 0.5 of level (either above ground level or above the higher of land and water if water == TRUE).</string>
+ </map>
+ <key>llGroundSlope</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>vector</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Offset</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the ground slope below the object position + Offset.</string>
+ </map>
+ <key>llHTTPRequest</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>key</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>URL</key>
+ <map>
+ <key>tooltip</key>
+ <string>A valid HTTP/HTTPS URL.</string>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Parameters</key>
+ <map>
+ <key>tooltip</key>
+ <string>Configuration parameters, specified as HTTP_* flag-value pairs.</string>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ <map>
+ <key>Body</key>
+ <map>
+ <key>tooltip</key>
+ <string>Contents of the request.</string>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Sends an HTTP request to the specified URL with the Body of the request and Parameters.</string>
+ </map>
+ <key>llHTTPResponse</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>HTTPRequestID</key>
+ <map>
+ <key>tooltip</key>
+ <string>A valid HTTP request key.</string>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ <map>
+ <key>Status</key>
+ <map>
+ <key>tooltip</key>
+ <string>HTTP Status (200, 400, 404, etc.).</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Body</key>
+ <map>
+ <key>tooltip</key>
+ <string>Contents of the response.</string>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Responds to HTTPRequestID with Status and Body.</string>
+ </map>
+ <key>llInsertString</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>string</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>TargetVariable</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Position</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>SourceVariable</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Inserts SourceVariable into TargetVariable at Position, and returns the result.</string>
+ </map>
+ <key>llInstantMessage</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>2.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>AvatarID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ <map>
+ <key>Text</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>IMs Text to the user identified.</string>
+ </map>
+ <key>llIntegerToBase64</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>string</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Value</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns a string that is a Base64 big endian encode of Value.</string>
+ </map>
+ <key>llJson2List</key>
+ <map>
+ <key>energy</key>
+ <real>0.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>list</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>JSON</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Converts the top level of the JSON string to a list.</string>
+ </map>
+ <key>llJsonGetValue</key>
+ <map>
+ <key>energy</key>
+ <real>0.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>string</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>JSON</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Specifiers</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Gets the value indicated by Specifiers from the JSON string.</string>
+ </map>
+ <key>llJsonSetValue</key>
+ <map>
+ <key>energy</key>
+ <real>0.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>string</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>JSON</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Specifiers</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ <map>
+ <key>Value</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns a new JSON string that is the JSON given with the Value indicated by Specifiers set to Value.</string>
+ </map>
+ <key>llJsonValueType</key>
+ <map>
+ <key>energy</key>
+ <real>0.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>string</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>JSON</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Specifiers</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the type constant (JSON_*) for the value in JSON indicated by Specifiers.</string>
+ </map>
+ <key>llKey2Name</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>string</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>ID</key>
+ <map>
+ <key>tooltip</key>
+ <string>Avatar or rezzed prim UUID.</string>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the name of the prim or avatar specified by ID. The ID must be a valid rezzed prim or avatar key in the current simulator, otherwise an empty string is returned.</string>
+ </map>
+ <key>llLinkParticleSystem</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>LinkNumber</key>
+ <map>
+ <key>tooltip</key>
+ <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Rules</key>
+ <map>
+ <key>tooltip</key>
+ <string>Particle system rules list in the format [ rule1, data1, rule2, data2 . . . ruleN, dataN ]</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Creates a particle system based on Rules. An empty list removes a particle system from object.\n
+ List format is [ rule-1, data-1, rule-2, data-2 ... rule-n, data-n ].</string>
+ </map>
+ <key>llLinkSitTarget</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>LinkNumber</key>
+ <map>
+ <key>tooltip</key>
+ <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag of the prim.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Offset</key>
+ <map>
+ <key>tooltip</key>
+ <string>Position for the sit target, relative to the prim's position.</string>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>Rotation</key>
+ <map>
+ <key>tooltip</key>
+ <string>Rotation (relative to the prim's rotation) for the avatar.</string>
+ <key>type</key>
+ <string>rotation</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Set the sit location for the linked prim(s). If Offset == &lt;0,0,0&gt; clear it.</string>
+ </map>
+ <key>llList2CSV</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>string</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>ListVariable</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Creates a string of comma separated values from the list.</string>
+ </map>
+ <key>llList2Float</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>float</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>ListVariable</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ <map>
+ <key>Index</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Copies the float at Index in the list.</string>
+ </map>
+ <key>llList2Integer</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>ListVariable</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ <map>
+ <key>Index</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Copies the integer at Index in the list.</string>
+ </map>
+ <key>llList2Json</key>
+ <map>
+ <key>energy</key>
+ <real>0</real>
+ <key>sleep</key>
+ <real>0</real>
+ <key>return</key>
+ <string>string</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>JsonType</key>
+ <map>
+ <key>tooltip</key>
+ <string>Type is JSON_ARRAY or JSON_OBJECT.</string>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Values</key>
+ <map>
+ <key>tooltip</key>
+ <string>List of values to convert.</string>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Converts either a strided list of key:value pairs to a JSON_OBJECT, or a list of values to a JSON_ARRAY.</string>
+ </map>
+ <key>llList2Key</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>key</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>ListVariable</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ <map>
+ <key>Index</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Copies the key at Index in the list.</string>
+ </map>
+ <key>llList2List</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>list</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>ListVariable</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ <map>
+ <key>Start</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>End</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Copies the slice of the list from Start to End.</string>
+ </map>
+ <key>llList2ListStrided</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>list</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>ListVariable</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ <map>
+ <key>Start</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>End</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Stride</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Copies the strided slice of the list from Start to End.</string>
+ </map>
+ <key>llList2Rot</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>rotation</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>ListVariable</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ <map>
+ <key>Index</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Copies the rotation at Index in the list.</string>
+ </map>
+ <key>llList2String</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>string</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>ListVariable</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ <map>
+ <key>Index</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Copies the string at Index in the list.</string>
+ </map>
+ <key>llList2Vector</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>vector</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>ListVariable</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ <map>
+ <key>Index</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Copies the vector at Index in the list.</string>
+ </map>
+ <key>llListen</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Channel</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>SpeakersName</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>SpeakersID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ <map>
+ <key>Text</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Sets a callback for Text on Channel from SpeakersName and SpeakersID (SpeakersName, SpeakersID, and/or Text can be empty) and returns an identifier that can be used to deactivate or remove the listen.</string>
+ </map>
+ <key>llListenControl</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>ChannelHandle</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Active</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Makes a listen event callback active or inactive.</string>
+ </map>
+ <key>llListenRemove</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>ChannelHandle</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Removes listen event callback number.</string>
+ </map>
+ <key>llListFindList</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>ListVariable</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ <map>
+ <key>Find</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the index of the first instance of Find in ListVariable. Returns -1 if not found.</string>
+ </map>
+ <key>llListInsertList</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>list</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Target</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ <map>
+ <key>ListVariable</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ <map>
+ <key>Position</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns a list that contains all the elements from Target but with the elements from ListVariable inserted at Position start.</string>
+ </map>
+ <key>llListRandomize</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>list</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>ListVariable</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ <map>
+ <key>Stride</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns a randomized list of blocks of size Stride.</string>
+ </map>
+ <key>llListReplaceList</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>list</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Target</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ <map>
+ <key>ListVariable</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ <map>
+ <key>Start</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>End</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns a list that is Target with Start through End removed and ListVariable inserted at Start.</string>
+ </map>
+ <key>llListSort</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>list</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>ListVariable</key>
+ <map>
+ <key>tooltip</key>
+ <string>List to sort.</string>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ <map>
+ <key>Stride</key>
+ <map>
+ <key>tooltip</key>
+ <string>Stride length.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Ascending</key>
+ <map>
+ <key>tooltip</key>
+ <string>Boolean. TRUE = result in ascending order, FALSE = result in descending order.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Sorts the list into blocks of stride, in Ascending order if Ascending == TRUE. The sort order is affected by type.</string>
+ </map>
+ <key>llListStatistics</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>float</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Operation</key>
+ <map>
+ <key>tooltip</key>
+ <string> One of LIST_STAT_* values </string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>ListVariable</key>
+ <map>
+ <key>tooltip</key>
+ <string>Variable to analyse.</string>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Performs statistical aggregate functions on ListVariable using LIST_STAT_* Operations.</string>
+ </map>
+ <key>llLoadURL</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>10.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>AvatarID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ <map>
+ <key>Text</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>URL</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Shows dialog to avatar AvatarID offering to load web page at URL. If user clicks yes, launches their web browser.</string>
+ </map>
+ <key>llLog</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>float</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Value</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the natural logarithm of Value. Returns zero if Value &lt;= 0.</string>
+ </map>
+ <key>llLog10</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>float</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Value</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the base 10 logarithm of Value. Returns zero if Value &lt;= 0.</string>
+ </map>
+ <key>llLookAt</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Target</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>Strength</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ <map>
+ <key>Damping</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Cause object name to point it's forward axis towards Target.</string>
+ </map>
+ <key>llLoopSound</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Sound</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Volume</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Plays attached Sound, looping indefinitely, at Volume (0.0 - 1.0).</string>
+ </map>
+ <key>llLoopSoundMaster</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Sound</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Volume</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Plays attached Sound, looping at volume (0.0 - 1.0), and declares it a sync master.</string>
+ </map>
+ <key>llLoopSoundSlave</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Sound</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Volume</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Plays attached sound looping at volume (0.0 - 1.0), synced to most audible sync master.</string>
+ </map>
+ <key>llMakeExplosion</key>
+ <map>
+ <key>deprecated</key>
+ <boolean>true</boolean>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.1</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Particles</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Scale</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ <map>
+ <key>Velocity</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ <map>
+ <key>Lifetime</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ <map>
+ <key>Arc</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ <map>
+ <key>Texture</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Offset</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Make a round explosion of particles. Deprecated: Use llParticleSystem instead.</string>
+ </map>
+ <key>llMakeFire</key>
+ <map>
+ <key>deprecated</key>
+ <boolean>true</boolean>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.1</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Particles</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Scale</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ <map>
+ <key>Velocity</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ <map>
+ <key>Lifetime</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ <map>
+ <key>Arc</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ <map>
+ <key>Texture</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Offset</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Make fire like particles. Deprecated: Use llParticleSystem instead.</string>
+ </map>
+ <key>llMakeFountain</key>
+ <map>
+ <key>deprecated</key>
+ <boolean>true</boolean>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.1</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Particles</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Scale</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ <map>
+ <key>Velocity</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ <map>
+ <key>Lifetime</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ <map>
+ <key>Arc</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ <map>
+ <key>Texture</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Offset</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Make a fountain of particles. Deprecated: Use llParticleSystem instead.</string>
+ </map>
+ <key>llMakeSmoke</key>
+ <map>
+ <key>deprecated</key>
+ <boolean>true</boolean>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.1</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Particles</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Scale</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ <map>
+ <key>Velocity</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ <map>
+ <key>Lifetime</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ <map>
+ <key>Arc</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ <map>
+ <key>Texture</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Offset</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Make smoke like particles. Deprecated: Use llParticleSystem instead.</string>
+ </map>
+ <key>llManageEstateAccess</key>
+ <map>
+ <key>energy</key>
+ <real/>
+ <key>sleep</key>
+ <real/>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Action</key>
+ <map>
+ <key>tooltip</key>
+ <string>One of the ESTATE_ACCESS_ALLOWED_* actions.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>AvatarID</key>
+ <map>
+ <key>tooltip</key>
+ <string>UUID of the avatar or group to act upon.</string>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Use to add or remove agents from the estate's agent access or ban lists or groups from the estate's group access list.</string>
+ </map>
+ <key>llMapDestination</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>1.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>RegionName</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Position</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>Direction</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Opens world map centred on region with Position highlighted. Only works for scripts attached to avatar, or during touch events. NOTE: Direction currently does nothing.</string>
+ </map>
+ <key>llMD5String</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>string</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Text</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Nonce</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns a string of 32 hex characters that is an RSA Data Security Inc., MD5 Message-Digest Algorithm of Text with Nonce.</string>
+ </map>
+ <key>llMessageLinked</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>LinkNumber</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Number</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Text</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>ID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Sends Number, Text, and ID to members of the link set identified by LinkNumber (LINK_ROOT sends to root task in a linked set, LINK_SET sends to all tasks, LINK_ALL_OTHERS to all other tasks, LINK_ALL_CHILDREN to all children, LINK_THIS to the task the script it is in).</string>
+ </map>
+ <key>llMinEventDelay</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Delay</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Set the minimum time between events being handled.</string>
+ </map>
+ <key>llModifyLand</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Action</key>
+ <map>
+ <key>tooltip</key>
+ <string>LAND_LEVEL, LAND_RAISE, LAND_LOWER, LAND_SMOOTH, LAND_NOISE or LAND_REVERT</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Area</key>
+ <map>
+ <key>tooltip</key>
+ <string>LAND_SMALL_BRUSH, LAND_MEDIUM_BRUSH or LAND_LARGE_BRUSH</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Modify land with action (LAND_LEVEL, LAND_RAISE, LAND_LOWER, LAND_SMOOTH, LAND_NOISE, LAND_REVERT) on size (LAND_SMALL_BRUSH, LAND_MEDIUM_BRUSH, LAND_LARGE_BRUSH).</string>
+ </map>
+ <key>llModPow</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>1.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Value</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Power</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Modulus</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns a Value raised to the Power, mod Modulus. ((a**b)%c) b is capped at 0xFFFF (16 bits).</string>
+ </map>
+ <key>llMoveToTarget</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Target</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>Tau</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Critically damp to Target in Tau seconds (if the script is physical).</string>
+ </map>
+ <key>llNavigateTo</key>
+ <map>
+ <key>energy</key>
+ <real/>
+ <key>sleep</key>
+ <real/>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Location</key>
+ <map>
+ <key>tooltip</key>
+ <string>Region coordinates for the character to navigate to.</string>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>Options</key>
+ <map>
+ <key>tooltip</key>
+ <string>List of parameters to control the type of path-finding used. Currently only FORCE_DIRECT_PATH supported.</string>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Navigate to destination.</string>
+ </map>
+ <key>llOffsetTexture</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.2</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>OffsetS</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ <map>
+ <key>OffsetT</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ <map>
+ <key>Face</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Sets the texture S and T offsets for the chosen Face.</string>
+ </map>
+ <key>llOpenRemoteDataChannel</key>
+ <map>
+ <key>deprecated</key>
+ <boolean>true</boolean>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>1.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Requests a channel to listen for XML-RPC calls. Will trigger a remote_data event with channel ID once it is available.</string>
+ </map>
+ <key>llOverMyLand</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>ID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns TRUE if id ID over land owned by the script owner, otherwise FALSE.</string>
+ </map>
+ <key>llOwnerSay</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Text</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>says Text to owner only (if owner is in region).</string>
+ </map>
+ <key>llParcelMediaCommandList</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>2.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>CommandList</key>
+ <map>
+ <key>tooltip</key>
+ <string>A list of PARCEL_MEDIA_COMMAND_* flags and their parameters </string>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Sends a list of commands, some with arguments, to a parcel.</string>
+ </map>
+ <key>llParcelMediaQuery</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>2.0</real>
+ <key>return</key>
+ <string>list</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>QueryList</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns a list containing results of the sent query.</string>
+ </map>
+ <key>llParseString2List</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>list</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Text</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Separators</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ <map>
+ <key>Spacers</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Breaks Text into a list, discarding Separators, keeping Spacers (Separators and Spacers must be lists of strings, maximum of 8 each).</string>
+ </map>
+ <key>llParseStringKeepNulls</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>list</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Text</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Separators</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ <map>
+ <key>Spacers</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Breaks Text into a list, discarding separators, keeping spacers, keeping any null values generated. (separators and spacers must be lists of strings, maximum of 8 each).</string>
+ </map>
+ <key>llParticleSystem</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Parameters</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Creates a particle system based on Parameters. An empty list removes particle system from object.
+ List format is [ rule-1, data-1, rule-2, data-2 . . . rule-n, data-n ].</string>
+ </map>
+ <key>llPassCollisions</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Pass</key>
+ <map>
+ <key>tooltip</key>
+ <string>Boolean, if TRUE, collisions are passed from children on to parents.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>If Pass == TRUE, collisions are passed from children on to parents (default is FALSE).</string>
+ </map>
+ <key>llPassTouches</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Pass</key>
+ <map>
+ <key>tooltip</key>
+ <string>Boolean, if TRUE, touches are passed from children on to parents.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>If pass == TRUE, touches are passed from children on to parents (default is FALSE).</string>
+ </map>
+ <key>llPatrolPoints</key>
+ <map>
+ <key>energy</key>
+ <real/>
+ <key>sleep</key>
+ <real/>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Points</key>
+ <map>
+ <key>tooltip</key>
+ <string>A list of vectors for the character to travel through sequentially. The list must contain at least two entries.</string>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ <map>
+ <key>Options</key>
+ <map>
+ <key>tooltip</key>
+ <string>No options available at this time.</string>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Patrol a list of points.</string>
+ </map>
+ <key>llPlaySound</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Sound</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Volume</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Plays attached Sound once, at Volume (0.0 - 1.0).</string>
+ </map>
+ <key>llPlaySoundSlave</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Sound</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Volume</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Plays attached Sound once, at Volume (0.0 - 1.0), synced to next loop of most audible sync master.</string>
+ </map>
+ <key>llPow</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Value</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ <map>
+ <key>Exponent</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the Value raised to the power Exponent, or returns 0 and triggers Math Error for imaginary results.</string>
+ </map>
+ <key>llPreloadSound</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>1.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Sound</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Preloads a sound on viewers within range.</string>
+ </map>
+ <key>llPursue</key>
+ <map>
+ <key>energy</key>
+ <real/>
+ <key>sleep</key>
+ <real/>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>TargetID</key>
+ <map>
+ <key>tooltip</key>
+ <string>Agent or object to pursue.</string>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ <map>
+ <key>Options</key>
+ <map>
+ <key>tooltip</key>
+ <string>Parameters for pursuit.</string>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Chase after a target.</string>
+ </map>
+ <key>llPushObject</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>ObjectID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ <map>
+ <key>Impulse</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>AngularImpulse</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>Local</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Applies Impulse and AngularImpulse to ObjectID.</string>
+ </map>
+ <key>llRefreshPrimURL</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>20.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Reloads the web page shown on the sides of the object.</string>
+ </map>
+ <key>llRegionSay</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Channel</key>
+ <map>
+ <key>tooltip</key>
+ <string>Any integer value except zero.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Text</key>
+ <map>
+ <key>tooltip</key>
+ <string>Message to be transmitted.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Broadcasts Text to entire region on Channel (not 0.).</string>
+ </map>
+ <key>llRegionSayTo</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>TargetID</key>
+ <map>
+ <key>tooltip</key>
+ <string>Avatar or object to say to.</string>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ <map>
+ <key>Channel</key>
+ <map>
+ <key>tooltip</key>
+ <string>Output channel, any integer value.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Text</key>
+ <map>
+ <key>tooltip</key>
+ <string>Message to be transmitted.</string>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Says Text, on Channel, to avatar or object indicated by TargetID (if within region).</string>
+ </map>
+ <key>llReleaseCamera</key>
+ <map>
+ <key>deprecated</key>
+ <boolean>true</boolean>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>AvatarID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Return camera to agent.</string>
+ </map>
+ <key>llReleaseControls</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Stop taking inputs.</string>
+ </map>
+ <key>llReleaseURL</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>URL</key>
+ <map>
+ <key>tooltip</key>
+ <string>URL to release.</string>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Releases the specified URL, it will no longer be usable.</string>
+ </map>
+ <key>llRemoteDataReply</key>
+ <map>
+ <key>deprecated</key>
+ <boolean>true</boolean>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>3.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>ChannelID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ <map>
+ <key>MessageID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ <map>
+ <key>Data</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Data</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Send an XML-RPC reply to MessageID on ChannelID with payload of string sData and integer iData. Deprecated: Use HTTP functions/events instead.</string>
+ </map>
+ <key>llRemoteDataSetRegion</key>
+ <map>
+ <key>deprecated</key>
+ <boolean>true</boolean>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Deprecated: Use HTTP functions/events instead.\n
+ If an object using remote data channels changes regions, you must call this function to re-register the remote data channels.
+ You do not need to make this call if you don't change regions.</string>
+ </map>
+ <key>llRemoteLoadScriptPin</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>3.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>ObjectID</key>
+ <map>
+ <key>tooltip</key>
+ <string>Target prim to attempt copying into.</string>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ <map>
+ <key>ScriptName</key>
+ <map>
+ <key>tooltip</key>
+ <string>Name of the script in current inventory to copy.</string>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>PIN</key>
+ <map>
+ <key>tooltip</key>
+ <string>Integer set on target prim as a Personal Information Number code.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Running</key>
+ <map>
+ <key>tooltip</key>
+ <string>If the script should be set running in the target prim.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>StartParameter</key>
+ <map>
+ <key>tooltip</key>
+ <string>Integer. Parameter passed to the script if set to be running.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>If the owner of the object this script is attached to can modify ObjectID, they are in the same region, and the matching PIN is used, copy ScriptName into target, if Running == TRUE, start the script with StartParameter.</string>
+ </map>
+ <key>llRemoveFromLandBanList</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>AvatarID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Remove avatar from the land ban list.</string>
+ </map>
+ <key>llRemoveFromLandPassList</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>AvatarID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Remove avatar from the land pass list.</string>
+ </map>
+ <key>llRemoveInventory</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>InventoryItem</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Remove the named inventory item.</string>
+ </map>
+ <key>llRemoveVehicleFlags</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Vehiclelags</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Removes the enabled bits in 'flags'.</string>
+ </map>
+ <key>llRequestAgentData</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.1</real>
+ <key>return</key>
+ <string>key</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>AvatarID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ <map>
+ <key>Data</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Requests data about AvatarID. When data is available the dataserver event will be raised.</string>
+ </map>
+ <key>llRequestDisplayName</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>key</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>AvatarID</key>
+ <map>
+ <key>tooltip</key>
+ <string>Avatar UUID</string>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Requests name of an avatar. When data is available, the dataserver event will be raised.</string>
+ </map>
+ <key>llRequestInventoryData</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>1.0</real>
+ <key>return</key>
+ <string>key</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>InventoryItem</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Requests data from object's inventory object. When data is available the dataserver event will be raised.</string>
+ </map>
+ <key>llRequestPermissions</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>AvatarID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ <map>
+ <key>PermmissionMask</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Ask AvatarID to allow the script to do PermmissionMask (NB: Debit, ownership, link, joint, and permission requests can only go to the task's owner).</string>
+ </map>
+ <key>llRequestSecureURL</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>key</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Requests one HTTPS:// (SSL) URL for use by this object. An http_request event is triggered with the results.</string>
+ </map>
+ <key>llRequestSimulatorData</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>1.0</real>
+ <key>return</key>
+ <string>key</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>RegionName</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Data</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Requests data about a simulator. When data is available the dataserver event will be raised.</string>
+ </map>
+ <key>llRequestURL</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>key</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Requests one HTTP:// URL for use by this object. An http_request event is triggered with the results.</string>
+ </map>
+ <key>llRequestUsername</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>key</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>AvatarID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Requests single-word user-name of an avatar. When data is available the dataserver event will be raised.</string>
+ </map>
+ <key>llResetAnimationOverride</key>
+ <map>
+ <key>energy</key>
+ <real>0</real>
+ <key>sleep</key>
+ <real>0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>AnimationState</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Resets the animation of the specified animation state to the default value.</string>
+ </map>
+ <key>llResetLandBanList</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Removes all residents from the land ban list.</string>
+ </map>
+ <key>llResetLandPassList</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Removes all residents from the land access/pass list.</string>
+ </map>
+ <key>llResetOtherScript</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>ScriptName</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Resets the named script.</string>
+ </map>
+ <key>llResetScript</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Resets the script.</string>
+ </map>
+ <key>llResetTime</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Sets the time to zero.</string>
+ </map>
+ <key>llReturnObjectsByID</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>ObjectIDs</key>
+ <map>
+ <key>tooltip</key>
+ <string>List of object UUIDs to be returned.</string>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Return objects using their UUIDs</string>
+ </map>
+ <key>llReturnObjectsByOwner</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>ID</key>
+ <map>
+ <key>tooltip</key>
+ <string>Object owner's UUID.</string>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ <map>
+ <key>Scope</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Return objects based upon their owner and a scope of parcel, parcel owner, or region.</string>
+ </map>
+ <key>llRezAtRoot</key>
+ <map>
+ <key>energy</key>
+ <real>200.0</real>
+ <key>sleep</key>
+ <real>0.1</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>InventoryItem</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Position</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>Velocity</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>Rotation</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>rotation</string>
+ </map>
+ </map>
+ <map>
+ <key>StartParameter</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Instantiate owner's InventoryItem at Position with Velocity, Rotation and with StartParameter. The last selected root object's location will be set to Position.</string>
+ </map>
+ <key>llRezObject</key>
+ <map>
+ <key>energy</key>
+ <real>200</real>
+ <key>sleep</key>
+ <real>0.1</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>InventoryItem</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Position</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>Velocity</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>Rotation</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>rotation</string>
+ </map>
+ </map>
+ <map>
+ <key>StartParameter</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Instantiate owners InventoryItem at Position with Velocity, Rotation and with start StartParameter.</string>
+ </map>
+ <key>llRot2Angle</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>float</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Rotation</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>rotation</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the rotation angle represented by Rotation.</string>
+ </map>
+ <key>llRot2Axis</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>vector</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Rotation</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>rotation</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the rotation axis represented by Rotation.</string>
+ </map>
+ <key>llRot2Euler</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>vector</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Rotation</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>rotation</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the Euler representation (roll, pitch, yaw) of Rotation.</string>
+ </map>
+ <key>llRot2Fwd</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>vector</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Rotation</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>rotation</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the forward vector defined by Rotation.</string>
+ </map>
+ <key>llRot2Left</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>vector</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Rotation</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>rotation</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the left vector defined by Rotation.</string>
+ </map>
+ <key>llRot2Up</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>vector</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Rotation</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>rotation</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the up vector defined by Rotation.</string>
+ </map>
+ <key>llRotateTexture</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.2</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Radians</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ <map>
+ <key>Face</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Sets the texture rotation for the chosen face.</string>
+ </map>
+ <key>llRotBetween</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>rotation</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Vector1</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>Vector2</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the rotation to rotate Vector1 to Vector2.</string>
+ </map>
+ <key>llRotLookAt</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Rotation</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>rotation</string>
+ </map>
+ </map>
+ <map>
+ <key>Strength</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ <map>
+ <key>Damping</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Cause object to point it's forward axis towards Rotation.</string>
+ </map>
+ <key>llRotTarget</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Rotation</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>rotation</string>
+ </map>
+ </map>
+ <map>
+ <key>LeeWay</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Set rotations with error of LeeWay as a rotational target and return an ID for the rotational target.</string>
+ </map>
+ <key>llRotTargetRemove</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Handle</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Removes rotational target number.</string>
+ </map>
+ <key>llRound</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Value</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns Value rounded to the nearest integer.</string>
+ </map>
+ <key>llSameGroup</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>ID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns TRUE if avatar ID is in the same region and has the same active group, otherwise FALSE.</string>
+ </map>
+ <key>llSay</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Channel</key>
+ <map>
+ <key>tooltip</key>
+ <string>Channel to use to say text on.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Text</key>
+ <map>
+ <key>tooltip</key>
+ <string>Text to say.</string>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Says Text on Channel.</string>
+ </map>
+ <key>llScaleByFactor</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>ScalingFactor</key>
+ <map>
+ <key>tooltip</key>
+ <string>The multiplier to be used with the prim sizes and their local positions.</string>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Attempts to resize the entire object by scaling_factor, maintaining the size-position ratios of the prims.\n\nResizing is subject to prim scale limits and linkability limits. This function can not resize the object if the linkset is physical, a pathfinding character, in a keyframed motion, or if resizing would cause the parcel to overflow.\nReturns a boolean (an integer) TRUE if it succeeds, FALSE if it fails.</string>
+ </map>
+ <key>llScaleTexture</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.2</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Horizontal</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ <map>
+ <key>Vertical</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ <map>
+ <key>Face</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Sets the texture's S and T scales for the chosen Face.</string>
+ </map>
+ <key>llScriptDanger</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Position</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns TRUE if Position is over public land, sandbox land, land that doesn't allow everyone to edit and build, or land that doesn't allow outside scripts.</string>
+ </map>
+ <key>llScriptProfiler</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>State</key>
+ <map>
+ <key>tooltip</key>
+ <string>PROFILE_NONE or PROFILE_SCRIPT_MEMORY flags to control the state.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Enables or disables script profiling options. Currently only supports PROFILE_SCRIPT_MEMORY (Mono only) and PROFILE_NONE.\n
+ MAY SIGNIFICANTLY REDUCE SCRIPT PERFORMANCE!.</string>
+ </map>
+ <key>llSendRemoteData</key>
+ <map>
+ <key>deprecated</key>
+ <boolean>true</boolean>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>3.0</real>
+ <key>return</key>
+ <string>key</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>ChannelID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ <map>
+ <key>Destination</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Value</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Text</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Deprecated: use HTTP instead.\n
+ Sends an XML-RPC request to Destination through ChannelID with payload of ChannelID (in a string), integer Value and string Text.
+ Returns a key that is the message_id for the resulting remote_data events.</string>
+ </map>
+ <key>llSensor</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Name</key>
+ <map>
+ <key>tooltip</key>
+ <string>Object or avatar name.</string>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>ID</key>
+ <map>
+ <key>tooltip</key>
+ <string>Object or avatar UUID.</string>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ <map>
+ <key>Type</key>
+ <map>
+ <key>tooltip</key>
+ <string>Bit-field mask of AGENT, AGENT_BY_LEGACY_NAME, AGENT_BY_USERNAME, ACTIVE, PASSIVE, and/or SCRIPTED</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Range</key>
+ <map>
+ <key>tooltip</key>
+ <string>Distance to scan. 0.0 - 96.0m.</string>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ <map>
+ <key>Arc</key>
+ <map>
+ <key>tooltip</key>
+ <string>Angle, in radians, from the local x-axis of the prim to scan.</string>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Performs a single scan for Name and ID with Type (AGENT, ACTIVE, PASSIVE, and/or SCRIPTED) within Range meters and Arc radians of forward vector (Name, ID, and/or Type can be empty or 0).</string>
+ </map>
+ <key>llSensorRemove</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>removes sensor.</string>
+ </map>
+ <key>llSensorRepeat</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Name</key>
+ <map>
+ <key>tooltip</key>
+ <string>Object or avatar name.</string>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>ID</key>
+ <map>
+ <key>tooltip</key>
+ <string>Object or avatar UUID.</string>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ <map>
+ <key>Type</key>
+ <map>
+ <key>tooltip</key>
+ <string>Bit-field mask of AGENT, AGENT_BY_LEGACY_NAME, AGENT_BY_USERNAME, ACTIVE, PASSIVE, and/or SCRIPTED</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Range</key>
+ <map>
+ <key>tooltip</key>
+ <string>Distance to scan. 0.0 - 96.0m.</string>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ <map>
+ <key>Arc</key>
+ <map>
+ <key>tooltip</key>
+ <string>Angle, in radians, from the local x-axis of the prim to scan.</string>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ <map>
+ <key>Rate</key>
+ <map>
+ <key>tooltip</key>
+ <string>Period, in seconds, between scans.</string>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Sets a callback for Name and ID with Type (AGENT, ACTIVE, PASSIVE, and/or SCRIPTED) within Range meters and Arc radians of forward vector (Name, ID, and/or Type can be empty or 0) and repeats every Rate seconds.</string>
+ </map>
+ <key>llSetAlpha</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Opacity</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ <map>
+ <key>Face</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Sets the alpha (opacity) of Face.</string>
+ </map>
+ <key>llSetAngularVelocity</key>
+ <map>
+ <key>energy</key>
+ <real/>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Force</key>
+ <map>
+ <key>tooltip</key>
+ <string>The force to apply.</string>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>Local</key>
+ <map>
+ <key>tooltip</key>
+ <string>If TRUE, the Force is treated as a local directional vector instead of a regional directional vector.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Sets an object's angular velocity, in local coordinates if local == TRUE (if the script is physical).</string>
+ </map>
+ <key>llSetAnimationOverride</key>
+ <map>
+ <key>energy</key>
+ <real>0</real>
+ <key>sleep</key>
+ <real>0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>AnimationState</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>AnimationName</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Sets the animation (in object inventory) that will play for the given animation state.</string>
+ </map>
+ <key>llSetBuoyancy</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Buoyancy</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Set the tasks buoyancy (0 is none, &lt; 1.0 sinks, 1.0 floats, &gt; 1.0 rises).</string>
+ </map>
+ <key>llSetCameraAtOffset</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Offset</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Sets the camera used in this object, at offset, if an avatar sits on it.</string>
+ </map>
+ <key>llSetCameraEyeOffset</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Offset</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Sets the camera eye offset used in this object if an avatar sits on it.</string>
+ </map>
+ <key>llSetCameraParams</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Parameters</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Sets multiple camera parameters at once. List format is [ rule-1, data-1, rule-2, data-2 . . . rule-n, data-n ].</string>
+ </map>
+ <key>llSetClickAction</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Action</key>
+ <map>
+ <key>tooltip</key>
+ <string>A CLICK_ACTION_* flag</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Sets the action performed when a prim is clicked upon.</string>
+ </map>
+ <key>llSetColor</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Colour</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>Face</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Sets the color, for the face.</string>
+ </map>
+ <key>llSetContentType</key>
+ <map>
+ <key>energy</key>
+ <real/>
+ <key>sleep</key>
+ <real/>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>HTTPRequestID</key>
+ <map>
+ <key>tooltip</key>
+ <string>A valid http_request() key</string>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ <map>
+ <key>ContentType</key>
+ <map>
+ <key>tooltip</key>
+ <string>Media type to use with any following llHTTPResponse(HTTPRequestID, ...)</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Set the media type of an LSL HTTP server response.</string>
+ </map>
+ <key>llSetDamage</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Damage</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Sets the amount of damage that will be done to an avatar that this task hits. Task will be killed.</string>
+ </map>
+ <key>llSetForce</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Force</key>
+ <map>
+ <key>tooltip</key>
+ <string>Directional force.</string>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>Local</key>
+ <map>
+ <key>tooltip</key>
+ <string>Boolean, if TRUE uses local axis, if FALSE uses region axis.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Sets Force on object, in local coordinates if Local == TRUE (if the script is physical).</string>
+ </map>
+ <key>llSetForceAndTorque</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Force</key>
+ <map>
+ <key>tooltip</key>
+ <string>Directional force.</string>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>Torque</key>
+ <map>
+ <key>tooltip</key>
+ <string>Torque force.</string>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>Local</key>
+ <map>
+ <key>tooltip</key>
+ <string>Boolean, if TRUE uses local axis, if FALSE uses region axis.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Sets the Force and Torque of object, in local coordinates if Local == TRUE (if the script is physical).</string>
+ </map>
+ <key>llSetHoverHeight</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Height</key>
+ <map>
+ <key>tooltip</key>
+ <string>Distance above the ground.</string>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ <map>
+ <key>Water</key>
+ <map>
+ <key>tooltip</key>
+ <string>Boolean, if TRUE then hover above water too.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Tau</key>
+ <map>
+ <key>tooltip</key>
+ <string>Seconds to critically damp in.</string>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Critically damps to a Height (either above ground level or above the higher of land and water if water == TRUE).</string>
+ </map>
+ <key>llSetInventoryPermMask</key>
+ <map>
+ <key>god-mode</key>
+ <boolean>true</boolean>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>InventoryItem</key>
+ <map>
+ <key>tooltip</key>
+ <string>An item in the prim's inventory</string>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>PermissionFlag</key>
+ <map>
+ <key>tooltip</key>
+ <string>MASK_* flag</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>PermissionMask</key>
+ <map>
+ <key>tooltip</key>
+ <string>Permission bit-field (PERM_* flags)</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Sets the given permission mask to the new value on the inventory item.</string>
+ </map>
+ <key>llSetKeyframedMotion</key>
+ <map>
+ <key>energy</key>
+ <real/>
+ <key>sleep</key>
+ <real/>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Keyframes</key>
+ <map>
+ <key>tooltip</key>
+ <string>Strided keyframe list of the form: position, orientation, time. Each keyframe is interpreted relative to the previous transform of the object.</string>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ <map>
+ <key>Options</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Requests that a non-physical object be key-framed according to key-frame list.</string>
+ </map>
+ <key>llSetLinkAlpha</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>LinkNumber</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Opacity</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ <map>
+ <key>Face</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>If a prim exists in the link chain at LinkNumber, set Face to Opacity.</string>
+ </map>
+ <key>llSetLinkCamera</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>LinkNumber</key>
+ <map>
+ <key>tooltip</key>
+ <string>Prim link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>EyeOffset</key>
+ <map>
+ <key>tooltip</key>
+ <string>Offset, relative to the object's centre and expressed in local coordinates, that the camera looks from.</string>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>LookOffset</key>
+ <map>
+ <key>tooltip</key>
+ <string>Offset, relative to the object's centre and expressed in local coordinates, that the camera looks toward.</string>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Sets the camera eye offset, and the offset that camera is looking at, for avatars that sit on the linked prim.</string>
+ </map>
+ <key>llSetLinkColor</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>LinkNumber</key>
+ <map>
+ <key>tooltip</key>
+ <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Colour</key>
+ <map>
+ <key>tooltip</key>
+ <string>Colour in RGB &lt;R.R, G.G, B.B&gt;</string>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>Face</key>
+ <map>
+ <key>tooltip</key>
+ <string>Side number or ALL_SIDES.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>If a task exists in the link chain at LinkNumber, set the Face to color.</string>
+ </map>
+ <key>llSetLinkMedia</key>
+ <map>
+ <key>energy</key>
+ <real>0.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Link</key>
+ <map>
+ <key>tooltip</key>
+ <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims).</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Face</key>
+ <map>
+ <key>tooltip</key>
+ <string>Face number.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Parameters</key>
+ <map>
+ <key>tooltip</key>
+ <string>A set of name/value pairs (in no particular order)</string>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Set the media parameters for a particular face on linked prim. Parameters is a list of name/value pairs (in no particular order). If media is not already on this object, add it. Parameters not specified are unchanged, or if new media is added set to the default specified.</string>
+ </map>
+ <key>llSetLinkPrimitiveParams</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.2</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>LinkNumber</key>
+ <map>
+ <key>tooltip</key>
+ <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Parameters</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Set primitive parameters for LinkNumber based on Parameters.</string>
+ </map>
+ <key>llSetLinkPrimitiveParamsFast</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>LinkNumber</key>
+ <map>
+ <key>tooltip</key>
+ <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Parameters</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Set primitive parameters for LinkNumber based on Parameters, without a delay.</string>
+ </map>
+ <key>llSetLinkTexture</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.2</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>LinkNumber</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Texture</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Face</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Sets the Texture of Face on a linked prim, specified by LinkNumber. Texture may be a UUID or name of a texture in prim inventory.</string>
+ </map>
+ <key>llSetLinkTextureAnim</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>LinkNumber</key>
+ <map>
+ <key>tooltip</key>
+ <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag to effect</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Mode</key>
+ <map>
+ <key>tooltip</key>
+ <string>Bitmask of animation options.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Face</key>
+ <map>
+ <key>tooltip</key>
+ <string>Specifies which object face to animate or ALL_SIDES.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>SizeX</key>
+ <map>
+ <key>tooltip</key>
+ <string>Horizontal frames (ignored for ROTATE and SCALE).</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>SizeY</key>
+ <map>
+ <key>tooltip</key>
+ <string>Vertical frames (ignored for ROTATE and SCALE).</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Start</key>
+ <map>
+ <key>tooltip</key>
+ <string>Start position/frame number (or radians for ROTATE).</string>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ <map>
+ <key>Length</key>
+ <map>
+ <key>tooltip</key>
+ <string>Specifies the animation duration, in frames (or radians for ROTATE).</string>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ <map>
+ <key>Rate</key>
+ <map>
+ <key>tooltip</key>
+ <string>Specifies the animation playback rate, in frames per second (must be greater than zero).</string>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Animates a texture on the prim specified by LinkNumber, by setting the texture scale and offset.</string>
+ </map>
+ <key>llSetLocalRot</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.2</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Rotation</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>rotation</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Sets the rotation of a child prim relative to the root prim.</string>
+ </map>
+ <key>llSetMemoryLimit</key>
+ <map>
+ <key>energy</key>
+ <real/>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Limit</key>
+ <map>
+ <key>tooltip</key>
+ <string>The amount to reserve, which must be less than the allowed maximum (currently 64KB) and not already have been exceeded.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Requests Limit bytes to be reserved for this script.\nReturns TRUE or FALSE indicating whether the limit was set successfully.\nThis function has no effect if the script is running in the LSO VM.</string>
+ </map>
+ <key>llSetObjectDesc</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Description</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Sets the description of the prim to Description.\nThe description field is limited to 127 characters.</string>
+ </map>
+ <key>llSetObjectName</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Name</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Sets the prim's name to Name.</string>
+ </map>
+ <key>llSetObjectPermMask</key>
+ <map>
+ <key>god-mode</key>
+ <boolean>true</boolean>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>PermissionFlag</key>
+ <map>
+ <key>tooltip</key>
+ <string>MASK_* flag</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>PermissionMask</key>
+ <map>
+ <key>tooltip</key>
+ <string>Permission bit-field (PERM_* flags)</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Sets the specified PermissionFlag permission to the value specified by PermissionMask on the object the script is attached to.</string>
+ </map>
+ <key>llSetParcelMusicURL</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>2.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>URL</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Sets the streaming audio URL for the parcel the object is on.\nThe object must be owned by the owner of the parcel; if the parcel is group owned the object must be owned by that group.</string>
+ </map>
+ <key>llSetPayPrice</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Price</key>
+ <map>
+ <key>tooltip</key>
+ <string>The default price shown in the textu input field.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>QuickButtons</key>
+ <map>
+ <key>tooltip</key>
+ <string>Specifies the 4 payment values shown in the payment dialog's buttons (or PAY_HIDE).</string>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Sets the default amount when someone chooses to pay this object.</string>
+ </map>
+ <key>llSetPhysicsMaterial</key>
+ <map>
+ <key>energy</key>
+ <real/>
+ <key>sleep</key>
+ <real/>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>MaterialBits</key>
+ <map>
+ <key>tooltip</key>
+ <string>A bitmask specifying which of the parameters in the other arguments should be applied to the object.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>GravityMultiplier</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ <map>
+ <key>Restitution</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ <map>
+ <key>Friction</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ <map>
+ <key>Density</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Sets the selected parameters of the root object's physics behaviour.</string>
+ </map>
+ <key>llSetPos</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.2</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Position</key>
+ <map>
+ <key>tooltip</key>
+ <string>Region coordinates to move to (within 10m).</string>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>If the object is not physical, this function sets the position of the prim.</string>
+ </map>
+ <key>llSetPrimitiveParams</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.2</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Parameters</key>
+ <map>
+ <key>tooltip</key>
+ <string>A list of changes.</string>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>This function changes the many properties (or "parameters") of a prim in one operation.</string>
+ </map>
+ <key>llSetPrimMediaParams</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.1</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Face</key>
+ <map>
+ <key>tooltip</key>
+ <string>Face number</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>MediaParameters</key>
+ <map>
+ <key>tooltip</key>
+ <string>A set of name/value pairs (in no particular order)</string>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Sets the MediaParameters for a particular Face on the prim. If media is not already on this prim, adds it.</string>
+ </map>
+ <key>llSetPrimURL</key>
+ <map>
+ <key>deprecated</key>
+ <boolean>true</boolean>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>20.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>URL</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Deprecated: Use llSetPrimMediaParams instead.</string>
+ </map>
+ <key>llSetRegionPos</key>
+ <map>
+ <key>energy</key>
+ <real>0.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Position</key>
+ <map>
+ <key>tooltip</key>
+ <string>Vector. The location to move to, in region coordinates.</string>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Attempts to move the object so that the root prim is within 0.1m of Position.\nReturns an integer boolean, TRUE if the object is successfully placed within 0.1 m of Position, FALSE otherwise.</string>
+ </map>
+ <key>llSetRemoteScriptAccessPin</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.2</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>PIN</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>If PIN is set to a non-zero number, the task will accept remote script loads via llRemoteLoadScriptPin() if it passes in the correct PIN. Othersise, llRemoteLoadScriptPin() is ignored.</string>
+ </map>
+ <key>llSetRot</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.2</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Rotation</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>rotation</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>If the object is not physical, this function sets the rotation of the prim.</string>
+ </map>
+ <key>llSetScale</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Scale</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Sets the prim's scale (size) to Scale.</string>
+ </map>
+ <key>llSetScriptState</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>ScriptName</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Running</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Enable or disable the script Running state of ScriptName in the prim.</string>
+ </map>
+ <key>llSetSitText</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Text</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Displays Text rather than "Sit" in the viewer's context menu.</string>
+ </map>
+ <key>llSetSoundQueueing</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>QueueEnable</key>
+ <map>
+ <key>tooltip</key>
+ <string>Boolean, sound queuing: TRUE enables, FALSE disables (default).</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Determines whether attached sound calls wait for the current sound to finish (0 = no [default], non-zero = yes).</string>
+ </map>
+ <key>llSetSoundRadius</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Radius</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Establishes a hard cut-off radius for audibility of scripted sounds (both attached and triggered).</string>
+ </map>
+ <key>llSetStatus</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Status</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Value</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Sets status (STATUS_PHYSICS, STATUS_PHANTOM, STATUS_BLOCK_GRAB, STATUS_ROTATE_X, STATUS_ROTATE_Y, and/or STATUS_ROTATE_Z) to value.</string>
+ </map>
+ <key>llSetText</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Text</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Colour</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>Opacity</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Set text floating over object.</string>
+ </map>
+ <key>llSetTexture</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.2</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Texture</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Face</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Sets the Texture of Face.</string>
+ </map>
+ <key>llSetTextureAnim</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Mode</key>
+ <map>
+ <key>tooltip</key>
+ <string>Mask of Mode flags.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Face</key>
+ <map>
+ <key>tooltip</key>
+ <string>Face number or ALL_SIDES.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>SizeX</key>
+ <map>
+ <key>tooltip</key>
+ <string>Horizontal frames (ignored for ROTATE and SCALE).</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>SizeY</key>
+ <map>
+ <key>tooltip</key>
+ <string>Vertical frames (ignored for ROTATE and SCALE).</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Start</key>
+ <map>
+ <key>tooltip</key>
+ <string>Start position/frame number (or radians for ROTATE).</string>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ <map>
+ <key>Length</key>
+ <map>
+ <key>tooltip</key>
+ <string>number of frames to display (or radians for ROTATE).</string>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ <map>
+ <key>Rate</key>
+ <map>
+ <key>tooltip</key>
+ <string>Frames per second (must not greater than zero).</string>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Animate the texture on the specified face/faces.</string>
+ </map>
+ <key>llSetTimerEvent</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Rate</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Cause the timer event to be triggered every Rate seconds.</string>
+ </map>
+ <key>llSetTorque</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Torque</key>
+ <map>
+ <key>tooltip</key>
+ <string>Torque force.</string>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>Local</key>
+ <map>
+ <key>tooltip</key>
+ <string>Boolean, if TRUE uses local axis, if FALSE uses region axis.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Sets the Torque of object, in local coordinates if Local == TRUE (if the script is physical).</string>
+ </map>
+ <key>llSetTouchText</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Text</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Displays Text in the menu that acts on a touch.</string>
+ </map>
+ <key>llSetVehicleFlags</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Flags</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Sets the enabled bits in 'flags'.</string>
+ </map>
+ <key>llSetVehicleFloatParam</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>ParameterName</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>ParameterValue</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Sets the specified vehicle float parameter.</string>
+ </map>
+ <key>llSetVehicleRotationParam</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>ParameterName</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>ParameterValue</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Sets the specified vehicle rotation parameter.</string>
+ </map>
+ <key>llSetVehicleType</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Type</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Sets vehicle to one of the default types.</string>
+ </map>
+ <key>llSetVehicleVectorParam</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>ParameterName</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>ParameterValue</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Sets the specified vehicle vector parameter.</string>
+ </map>
+ <key>llSetVelocity</key>
+ <map>
+ <key>energy</key>
+ <real/>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Force</key>
+ <map>
+ <key>tooltip</key>
+ <string>The force to apply.</string>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>Local</key>
+ <map>
+ <key>tooltip</key>
+ <string>If TRUE, the vForce is treated as a local directional vector instead of a regional directional vector.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Sets an objects velocity, in local coordinates if Local == TRUE (if the script is physical).</string>
+ </map>
+ <key>llSHA1String</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>string</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Text</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns a string of 40 hex characters that is the SHA1 security Hash of Text.</string>
+ </map>
+ <key>llShout</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Channel</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Text</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>shouts Text on Channel.</string>
+ </map>
+ <key>llSin</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>float</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Theta</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the sine of Theta (Theta in radians).</string>
+ </map>
+ <key>llSitTarget</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Offset</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>Rotation</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>rotation</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Set the sit location for this object (if offset == &lt;0,0,0&gt; clear it).</string>
+ </map>
+ <key>llSleep</key>
+ <map>
+ <key>energy</key>
+ <real>0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Time</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Put script to sleep for Time seconds.</string>
+ </map>
+ <key>llSound</key>
+ <map>
+ <key>deprecated</key>
+ <boolean>true</boolean>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Sound</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Volume</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ <map>
+ <key>Queue</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Loop</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Deprecated: Use llPlaySound instead.</string>
+ </map>
+ <key>llSoundPreload</key>
+ <map>
+ <key>deprecated</key>
+ <boolean>true</boolean>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Sound</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Deprecated: Use llPreloadSound instead.</string>
+ </map>
+ <key>llSqrt</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>float</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Value</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the square root of Value, or returns 0 and triggers a Math Error for imaginary results.</string>
+ </map>
+ <key>llStartAnimation</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Animation</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Start Animation for agent that owns object.</string>
+ </map>
+ <key>llStopAnimation</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Animation</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Stop Animation for agent that owns object.</string>
+ </map>
+ <key>llStopHover</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Stop hovering to a height.</string>
+ </map>
+ <key>llStopLookAt</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Stop causing object to point at a target.</string>
+ </map>
+ <key>llStopMoveToTarget</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Stops critically damped motion.</string>
+ </map>
+ <key>llStopSound</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <undef/>
+ <key>tooltip</key>
+ <string>Stops currently attached sound.</string>
+ </map>
+ <key>llStringLength</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Text</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the length of string.</string>
+ </map>
+ <key>llStringToBase64</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>string</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Text</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Converts a string to the Base64 representation of the string.</string>
+ </map>
+ <key>llStringTrim</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>string</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Text</key>
+ <map>
+ <key>tooltip</key>
+ <string>String to trim</string>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>TrimType</key>
+ <map>
+ <key>tooltip</key>
+ <string>STRING_TRIM_HEAD, STRING_TRIM_TAIL, or STRING_TRIM.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Trims the leading and/or trailing white spaces from a string.\n
+ TrimType can be STRING_TRIM, STRING_TRIM_HEAD or STRING_TRIM_TAIL.</string>
+ </map>
+ <key>llSubStringIndex</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Text</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Sequence</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns an integer that is the index in source where pattern first appears. Returns -1 if not found.</string>
+ </map>
+ <key>llTakeCamera</key>
+ <map>
+ <key>deprecated</key>
+ <boolean>true</boolean>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>AvatarID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Deprecated: Use llSetCameraParams instead.</string>
+ </map>
+ <key>llTakeControls</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Controls</key>
+ <map>
+ <key>tooltip</key>
+ <string>Bit-field of CONTROL_* flags.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Accept</key>
+ <map>
+ <key>tooltip</key>
+ <string>Boolean, determines whether control events are generated.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>PassOn</key>
+ <map>
+ <key>tooltip</key>
+ <string>Boolean, determines whether controls are disabled.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Take controls from agent task has permissions for. If (Accept == (controls &amp; input)), send input to task. If PassOn send to agent also.</string>
+ </map>
+ <key>llTan</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>float</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Theta</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the tangent of Theta (Theta in radians).</string>
+ </map>
+ <key>llTarget</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>integer</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Position</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>Range</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Sets positions within range of position as a target and return an ID for the target.</string>
+ </map>
+ <key>llTargetOmega</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Axis</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>SpinRate</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ <map>
+ <key>Gain</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Attempt to spin at SpinRate with strength Gain.</string>
+ </map>
+ <key>llTargetRemove</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Target</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Removes target number.</string>
+ </map>
+ <key>llTeleportAgent</key>
+ <map>
+ <key>energy</key>
+ <real>0</real>
+ <key>sleep</key>
+ <real>0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>AvatarID</key>
+ <map>
+ <key>tooltip</key>
+ <string>UUID of avatar.</string>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ <map>
+ <key>LandmarkName</key>
+ <map>
+ <key>tooltip</key>
+ <string>Name of landmark (in object contents), or empty string, to use.</string>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Position</key>
+ <map>
+ <key>tooltip</key>
+ <string>If no landmark was provided, the position within the current region to teleport the avatar to.</string>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>LookAtPoint</key>
+ <map>
+ <key>tooltip</key>
+ <string>The position within the target region that the avatar should be turned to face upon arrival.</string>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Requests a teleport of avatar to a landmark stored in the object's inventory. If no landmark is provided (an empty string), the avatar is teleported to the location position in the current region. In either case, the avatar is turned to face the position given by look_at in local coordinates.
+ Requires the PERMISSION_TELEPORT permission. This function can only teleport the owner of the object.</string>
+ </map>
+ <key>llTeleportAgentGlobalCoords</key>
+ <map>
+ <key>energy</key>
+ <real>0</real>
+ <key>sleep</key>
+ <real>0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>AvatarID</key>
+ <map>
+ <key>tooltip</key>
+ <string>UUID of avatar.</string>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ <map>
+ <key>GlobalPosition</key>
+ <map>
+ <key>tooltip</key>
+ <string>Global coordinates of the destination region. Can be retrieved by using llRequestSimulatorData(region_name, DATA_SIM_POS).</string>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>RegionPosition</key>
+ <map>
+ <key>tooltip</key>
+ <string>The position within the target region to teleport the avatar to, if no landmark was provided.</string>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>LookAtPoint</key>
+ <map>
+ <key>tooltip</key>
+ <string>The position within the target region that the avatar should be turned to face upon arrival.</string>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Teleports an agent to set of a region_coordinates within a region at the specified global_coordinates. The agent lands facing the position defined by look_at local coordinates.</string>
+ </map>
+ <key>llTeleportAgentHome</key>
+ <map>
+ <key>energy</key>
+ <real>100.0</real>
+ <key>sleep</key>
+ <real>5.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>AvatarID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Teleports agent on owner's land to agent's home location.</string>
+ </map>
+ <key>llTextBox</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>1.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>AvatarID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ <map>
+ <key>Text</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Channel</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Shows a dialog box on the avatar's screen with the message. A text box asks for input, and if entered the Text is chatted on Channel.</string>
+ </map>
+ <key>llToLower</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>string</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Text</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns a string that is Text with all lower-case characters.</string>
+ </map>
+ <key>llToUpper</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>string</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Text</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns a string that is Text with all upper-case characters.</string>
+ </map>
+ <key>llTransferLindenDollars</key>
+ <map>
+ <key>energy</key>
+ <real/>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>key</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>AvatarID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ <map>
+ <key>Amount</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Transfer Amount of linden dollars (L$) from script owner to AvatarID. Returns a key to a corresponding transaction_result event for the success of the transfer.</string>
+ </map>
+ <key>llTriggerSound</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Sound</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Volume</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Plays Sound at Volume (0.0 - 1.0), centered at but not attached to object.</string>
+ </map>
+ <key>llTriggerSoundLimited</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Sound</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Volume</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>float</string>
+ </map>
+ </map>
+ <map>
+ <key>TNE</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>BSW</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Plays Sound at Volume (0.0 - 1.0), centered at but not attached to object, limited to axis-aligned bounding box defined by vectors top-north-east (TNE) and bottom-south-west (BSW).</string>
+ </map>
+ <key>llUnescapeURL</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>string</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>URL</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns an unescaped/ unencoded version of URL, replacing %20 with spaces etc.</string>
+ </map>
+ <key>llUnSit</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>AvatarID</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>key</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>If agent identified by AvatarID is sitting on the object the script is attached to or is over land owned by the objects owner, the agent is forced to stand up.</string>
+ </map>
+ <key>llUpdateCharacter</key>
+ <map>
+ <key>energy</key>
+ <real/>
+ <key>sleep</key>
+ <real/>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Options</key>
+ <map>
+ <key>tooltip</key>
+ <string>Character configuration options. Takes the same constants as llCreateCharacter().</string>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Change the character's settings.</string>
+ </map>
+ <key>llVecDist</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>float</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Location1</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>Location2</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the 3D distance between Location1 and Location2.</string>
+ </map>
+ <key>llVecMag</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>float</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Vector</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the magnitude of Vector.</string>
+ </map>
+ <key>llVecNorm</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>vector</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Vector</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the v normalized.</string>
+ </map>
+ <key>llVolumeDetect</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>DetectEnabled</key>
+ <map>
+ <key>tooltip</key>
+ <string>.TRUE enables, FALSE disables.</string>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>If DetectEnabled = TRUE, object becomes phantom but triggers collision_start and collision_end events when other objects start and stop interpenetrating. Must be applied to the root object.</string>
+ </map>
+ <key>llWanderWithin</key>
+ <map>
+ <key>energy</key>
+ <real/>
+ <key>sleep</key>
+ <real/>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Origin</key>
+ <map>
+ <key>tooltip</key>
+ <string>Central point to wander about.</string>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>Area</key>
+ <map>
+ <key>tooltip</key>
+ <string>Half-extents of an area the character may wander within. (i.e., it can wander from the specified origin by up to +/-Distance.x in x, +/-Distance.y in y, etc.)</string>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ <map>
+ <key>Options</key>
+ <map>
+ <key>tooltip</key>
+ <string>No options available at this time.</string>
+ <key>type</key>
+ <string>list</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Wander within a specified volume.</string>
+ </map>
+ <key>llWater</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>float</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Offset</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the water height below the object position + offset.</string>
+ </map>
+ <key>llWhisper</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>void</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Channel</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>integer</string>
+ </map>
+ </map>
+ <map>
+ <key>Text</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Whispers Text on Channel.</string>
+ </map>
+ <key>llWind</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>vector</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Offset</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>vector</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Returns the wind velocity at the object position + offset.</string>
+ </map>
+ <key>llXorBase64</key>
+ <map>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.3</real>
+ <key>return</key>
+ <string>string</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Text1</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Text2</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Performs an exclusive OR on two Base64 strings and returns a Base64 string. Text2 repeats if it is shorter than Text1. Retained for backwards compatibility.</string>
+ </map>
+ <key>llXorBase64Strings</key>
+ <map>
+ <key>deprecated</key>
+ <boolean>true</boolean>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.3</real>
+ <key>return</key>
+ <string>string</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Text1</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Text2</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Deprecated: Please use llXorBase64 instead.\n
+ Incorrectly performs an exclusive OR on two Base64 strings and returns a Base64 string. Text2 repeats if it is shorter than Text1. Retained for backwards compatibility.</string>
+ </map>
+ <key>llXorBase64StringsCorrect</key>
+ <map>
+ <key>deprecated</key>
+ <boolean>true</boolean>
+ <key>energy</key>
+ <real>10.0</real>
+ <key>sleep</key>
+ <real>0.0</real>
+ <key>return</key>
+ <string>string</string>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>Text1</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ <map>
+ <key>Text2</key>
+ <map>
+ <key>tooltip</key>
+ <string/>
+ <key>type</key>
+ <string>string</string>
+ </map>
+ </map>
+ </array>
+ <key>tooltip</key>
+ <string>Deprecated: Please use llXorBase64 instead.\n
+ Correctly (unless nulls are present) performs an exclusive OR on two Base64 strings and returns a Base64 string.\n
+ Text2 repeats if it is shorter than Text1.</string>
+ </map>
+ </map>
+ <key>llsd-lsl-syntax-version</key>
+ <integer>2</integer>
+ </map>
+</llsd> \ No newline at end of file
diff --git a/indra/newview/app_settings/llsd-lsl-syntax.rng b/indra/newview/app_settings/llsd-lsl-syntax.rng
new file mode 100755
index 0000000000..aa92364ec1
--- /dev/null
+++ b/indra/newview/app_settings/llsd-lsl-syntax.rng
@@ -0,0 +1,390 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<grammar
+ xmlns="http://relaxng.org/ns/structure/1.0"
+ xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
+ datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+ <start>
+ <element name="llsd">
+ <element name="map">
+ <group>
+ <element name="key">
+ <value>constants</value>
+ </element>
+ <element name="map">
+ <oneOrMore>
+ <group>
+ <ref name="keyString"/>
+ <element name="map">
+ <ref name="Deprecated" />
+ <ref name="constantTypeValue" />
+ <ref name="Tooltip" />
+ </element>
+ </group>
+ </oneOrMore>
+ </element>
+ </group>
+
+ <group>
+ <element name="key">
+ <value>controls</value>
+ </element>
+ <element name="map">
+ <oneOrMore>
+ <group>
+ <ref name="keyString"/>
+ <ref name="mapTooltip"/>
+ </group>
+ </oneOrMore>
+ </element>
+ </group>
+
+ <group>
+ <element name="key">
+ <value>events</value>
+ </element>
+ <element name="map">
+ <oneOrMore>
+ <group>
+ <ref name="keyString"/>
+ <element name="map">
+ <ref name="Deprecated" />
+ <ref name="Arguments"/>
+ <ref name="Tooltip"/>
+ </element>
+ </group>
+ </oneOrMore>
+ </element>
+ </group>
+
+ <group>
+ <element name="key">
+ <value>functions</value>
+ </element>
+ <element name="map">
+ <oneOrMore>
+ <group>
+ <ref name="keyString"/>
+ <element name="map">
+ <ref name="Arguments"/>
+ <ref name="Deprecated" />
+ <element name="key">
+ <value>energy</value>
+ </element>
+ <ref name="float"/>
+ <optional>
+ <group>
+ <element name="key">
+ <value>god-mode</value>
+ </element>
+ <element name="boolean">
+ <data type="boolean"/>
+ </element>
+ </group>
+ </optional>
+ <ref name="Return"/>
+ <element name="key">
+ <value>sleep</value>
+ </element>
+ <ref name="float"/>
+ <ref name="Tooltip"/>
+ </element>
+ </group>
+ </oneOrMore>
+ </element>
+ </group>
+
+ <group>
+ <element name="key">
+ <value>llsd-lsl-syntax-version</value>
+ </element>
+ <element name="integer">
+ <data type="integer" />
+ </element>
+ </group>
+
+ <group>
+ <element name="key">
+ <value>types</value>
+ </element>
+ <element name="map">
+ <oneOrMore>
+ <group>
+ <ref name="keyString"/>
+ <ref name="mapTooltip"/>
+ </group>
+ </oneOrMore>
+ </element>
+ </group>
+ </element>
+ </element>
+ </start>
+
+ <define name="Deprecated">
+ <optional>
+ <group>
+ <element name="key">
+ <value>deprecated</value>
+ </element>
+ <element name="boolean">
+ <data type="boolean"/>
+ </element>
+ </group>
+ </optional>
+ </define>
+
+ <define name="keyName">
+ <element name="key"><value>name</value></element>
+ <element name="string"><data type="string" /></element>
+ </define>
+
+
+ <define name="keyString">
+ <element name="key"><data type="string"/></element>
+ </define>
+
+ <define name="keyType">
+ <element name="key"><value>type</value></element>
+ </define>
+
+ <define name="typeList">
+ <ref name="keyType" />
+ <element name="string">
+ <choice>
+ <value>float</value>
+ <value>integer</value>
+ <value>key</value>
+ <value>list</value>
+ <value>rotation</value>
+ <value>string</value>
+ <value>vector</value>
+ </choice>
+ </element>
+ </define>
+
+ <define name="keyValue">
+ <element name="key"><value>value</value></element>
+ </define>
+
+ <define name="constantTypeValue">
+ <choice>
+ <group>
+ <ref name="keyType"/>
+ <element name="string"><value>float</value></element>
+ <ref name="keyValue"/>
+ <element name="real"><data type="float"/></element>
+ </group>
+ <group>
+ <ref name="keyType"/>
+ <element name="string"><value>integer</value></element>
+ <ref name="keyValue"/>
+ <choice>
+ <element name="integer"><data type="integer"/></element>
+ <element name="integer"><data type="string"><param name="pattern">0x[0-9A-Fa-f]+</param></data></element>
+ </choice>
+ </group>
+ <group>
+ <ref name="keyType"/>
+ <element name="string"><value>key</value></element>
+ <ref name="keyValue"/>
+ <element name="uuid"><data type="string"><param name="pattern">[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}</param></data></element>
+ </group>
+ <group>
+ <ref name="keyType"/>
+ <element name="string"><value>rotation</value></element>
+ <ref name="keyValue"/>
+ <element name="array">
+ <element name="map">
+ <element name="key">
+ <value>x</value>
+ </element>
+ <ref name="realFromMinusOneToOne"/>
+ </element>
+ <element name="map">
+ <element name="key">
+ <value>y</value>
+ </element>
+ <ref name="realFromMinusOneToOne"/>
+ </element>
+ <element name="map">
+ <element name="key">
+ <value>z</value>
+ </element>
+ <ref name="realFromMinusOneToOne"/>
+ </element>
+ <element name="map">
+ <element name="key"><value>w</value></element>
+ <ref name="realFromMinusOneToOne"/>
+ </element>
+ </element>
+ </group>
+ <group>
+ <ref name="keyType"/>
+ <element name="string"><value>string</value></element>
+ <ref name="keyValue"/>
+ <element name="string">
+ <data type="string"/>
+ </element>
+ </group>
+ <group>
+ <ref name="keyType"/>
+ <element name="string">
+ <value>vector</value>
+ </element>
+ <ref name="keyValue"/>
+ <element name="array">
+ <ref name="vector"/>
+ </element>
+ </group>
+ </choice>
+ </define>
+
+ <define name="nameType">
+ <ref name="keyName" />
+ <ref name="keyType" />
+ </define>
+
+ <define name="realFromMinusOneToOne">
+ <element name="real">
+ <data type="float">
+ <param name="pattern">([\-+]|)(1|0)\.\d+</param>
+ </data>
+ </element>
+ </define>
+
+ <define name="float">
+ <choice>
+ <element name="real">
+ <data type="float"/>
+ </element>
+ <element name="real">
+ <empty/>
+ </element>
+ </choice>
+ </define>
+
+ <define name="vector">
+ <element name="map">
+ <element name="key">
+ <value>x</value>
+ </element>
+ <ref name="realFromMinusOneToOne"/>
+ </element>
+ <element name="map">
+ <element name="key">
+ <value>y</value>
+ </element>
+ <ref name="realFromMinusOneToOne"/>
+ </element>
+ <element name="map">
+ <element name="key">
+ <value>z</value>
+ </element>
+ <ref name="realFromMinusOneToOne"/>
+ </element>
+ </define>
+
+ <define name="mapTooltip">
+ <element name="map">
+ <ref name="Tooltip" />
+ </element>
+ </define>
+
+ <define name="Tooltip">
+ <element name="key">
+ <value>tooltip</value>
+ </element>
+ <element name="string">
+ <data type="string" />
+ </element>
+ </define>
+
+ <define name="Arguments">
+ <element name="key"><value>arguments</value></element>
+ <choice>
+ <element name="array">
+ <oneOrMore>
+ <element name="map">
+ <element name="key"><data type="string"><param name="pattern">[A-Z][A-Za-z0-9_]*|[a-z]</param></data></element>
+ <element name="map">
+ <!--ref name="keyName" /-->
+ <ref name="Tooltip" />
+ <ref name="typeList" />
+ </element>
+ </element>
+ </oneOrMore>
+ <!--choice>
+ <oneOrMore>
+ <element name="map">
+ <ref name="Argument"/>
+ </element>
+ </oneOrMore>
+ <element name="undef">
+ <empty/>
+ </element>
+ </choice-->
+ </element>
+ <element name="undef"><empty/></element>
+ </choice>
+ </define>
+
+ <define name="Argument">
+ <ref name="keyType"/>
+ <choice>
+ <element name="string">
+ <value>float</value>
+ </element>
+ <element name="string">
+ <value>integer</value>
+ </element>
+ <element name="string">
+ <value>key</value>
+ </element>
+ <element name="string">
+ <value>list</value>
+ </element>
+ <element name="string">
+ <value>rotation</value>
+ </element>
+ <element name="string">
+ <value>string</value>
+ </element>
+ <element name="string">
+ <value>vector</value>
+ </element>
+ </choice>
+ <ref name="Tooltip"/>
+ </define>
+
+ <define name="Return">
+ <element name="key">
+ <value>return</value>
+ </element>
+ <choice>
+ <element name="string">
+ <value>float</value>
+ </element>
+ <element name="string">
+ <value>integer</value>
+ </element>
+ <element name="string">
+ <value>key</value>
+ </element>
+ <element name="string">
+ <value>list</value>
+ </element>
+ <element name="string">
+ <value>rotation</value>
+ </element>
+ <element name="string">
+ <value>string</value>
+ </element>
+ <element name="string">
+ <value>vector</value>
+ </element>
+ <element name="string">
+ <value>void</value>
+ </element>
+ </choice>
+ </define>
+
+</grammar> \ No newline at end of file
diff --git a/indra/newview/llfloaterbulkpermission.cpp b/indra/newview/llfloaterbulkpermission.cpp
index 76f62a7880..c3e9a6f5fb 100755
--- a/indra/newview/llfloaterbulkpermission.cpp
+++ b/indra/newview/llfloaterbulkpermission.cpp
@@ -36,7 +36,7 @@
#include "llviewerobject.h"
#include "llviewerobjectlist.h"
#include "llviewerregion.h"
-#include "lscript_rt_interface.h"
+//#include "lscript_rt_interface.h"
#include "llviewercontrol.h"
#include "llviewerinventory.h"
#include "llviewerobject.h"
diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp
index e533be7f24..904b56b436 100755
--- a/indra/newview/llpreviewscript.cpp
+++ b/indra/newview/llpreviewscript.cpp
@@ -34,6 +34,7 @@
#include "llcheckboxctrl.h"
#include "llcombobox.h"
#include "lldir.h"
+#include "llenvmanager.h"
#include "llexternaleditor.h"
#include "llfilepicker.h"
#include "llfloaterreg.h"
@@ -50,11 +51,9 @@
#include "llscrolllistctrl.h"
#include "llscrolllistitem.h"
#include "llscrolllistcell.h"
+#include "llsdserialize.h"
#include "llslider.h"
#include "lscript_rt_interface.h"
-#include "lscript_library.h"
-#include "lscript_export.h"
-#include "lltextbox.h"
#include "lltooldraganddrop.h"
#include "llvfile.h"
@@ -396,7 +395,7 @@ BOOL LLScriptEdCore::postBuild()
{
mErrorList = getChild<LLScrollListCtrl>("lsl errors");
- mFunctions = getChild<LLComboBox>( "Insert...");
+ mFunctions = getChild<LLComboBox>("Insert...");
childSetCommitCallback("Insert...", &LLScriptEdCore::onBtnInsertFunction, this);
@@ -408,77 +407,76 @@ BOOL LLScriptEdCore::postBuild()
initMenu();
+ // Intialise keyword highlighting for the current simulator's version of LSL
+ onRegionChangeInitialiseKeywords();
+ // Set up a callback for region changes, so that highlighting is updated to the new region's version of LSL
+ gAgent.addRegionChangedCallback(boost::bind(&LLScriptEdCore::onRegionChangeInitialiseKeywords, this));
+
+ return TRUE;
+}
+
+void LLScriptEdCore::onRegionChangeInitialiseKeywords()
+{
+ LL_DEBUGS("SyntaxLSL") << "Pre Initialise!" << LL_ENDL;
+ mSyntaxIdLSL.initialise();
+ LL_DEBUGS("SyntaxLSL") << "Post Initialise!" << LL_ENDL;
- std::vector<std::string> funcs;
- std::vector<std::string> tooltips;
- for (std::vector<LLScriptLibraryFunction>::const_iterator i = gScriptLibrary.mFunctions.begin();
- i != gScriptLibrary.mFunctions.end(); ++i)
+ // Nasty Hack to get started, needs to replaced with a callback or similar.
+ if (mSyntaxIdLSL.fetching())
{
- // Make sure this isn't a god only function, or the agent is a god.
- if (!i->mGodOnly || gAgent.isGodlike())
- {
- std::string name = i->mName;
- funcs.push_back(name);
-
- std::string desc_name = "LSLTipText_";
- desc_name += name;
- std::string desc = LLTrans::getString(desc_name);
-
- F32 sleep_time = i->mSleepTime;
- if( sleep_time )
- {
- desc += "\n";
-
- LLStringUtil::format_map_t args;
- args["[SLEEP_TIME]"] = llformat("%.1f", sleep_time );
- desc += LLTrans::getString("LSLTipSleepTime", args);
- }
-
- // A \n linefeed is not part of xml. Let's add one to keep all
- // the tips one-per-line in strings.xml
- LLStringUtil::replaceString( desc, "\\n", "\n" );
-
- tooltips.push_back(desc);
- }
+ LL_WARNS("SyntaxLSL") << "No Response in Time, still fetching!" << LL_ENDL;
}
-
- LLColor3 color(0.5f, 0.0f, 0.15f);
- mEditor->loadKeywords(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS,"keywords.ini"), funcs, tooltips, color);
- std::vector<std::string> primary_keywords;
- std::vector<std::string> secondary_keywords;
- LLKeywordToken *token;
- LLKeywords::keyword_iterator_t token_it;
- for (token_it = mEditor->keywordsBegin(); token_it != mEditor->keywordsEnd(); ++token_it)
+ if (mSyntaxIdLSL.isDifferentVersion())
{
- token = token_it->second;
- if (token->getColor() == color) // Wow, what a disgusting hack.
- {
- primary_keywords.push_back( wstring_to_utf8str(token->getToken()) );
- }
- else
+ LL_INFOS("SyntaxLSL")
+ << "Hashes are different, updating highlighter." << LL_ENDL;
+
+ mEditor->mKeywords.clearLoaded();
+ mEditor->clearSegments();
+ mEditor->mKeywords.clear();
+
+ if (mSyntaxIdLSL.isLoaded())
{
- secondary_keywords.push_back( wstring_to_utf8str(token->getToken()) );
- }
- }
+ mEditor->mKeywords.initialise(mSyntaxIdLSL.getKeywordsXML());
- // Case-insensitive dictionary sort for primary keywords. We don't sort the secondary
- // keywords. They're intelligently grouped in keywords.ini.
- std::stable_sort( primary_keywords.begin(), primary_keywords.end(), LLSECKeywordCompare() );
+ mEditor->loadKeywords();
- for (std::vector<std::string>::const_iterator iter= primary_keywords.begin();
- iter!= primary_keywords.end(); ++iter)
- {
- mFunctions->add(*iter);
- }
+ std::vector<std::string> primary_keywords;
+ std::vector<std::string> secondary_keywords;
+ LLKeywordToken *token;
+ LLKeywords::keyword_iterator_t token_it;
+ for (token_it = mEditor->keywordsBegin(); token_it != mEditor->keywordsEnd(); ++token_it)
+ {
+ token = token_it->second;
+ if (token->getType() == LLKeywordToken::TT_FUNCTION)
+ {
+ primary_keywords.push_back( wstring_to_utf8str(token->getToken()) );
+ }
+ else
+ {
+ secondary_keywords.push_back( wstring_to_utf8str(token->getToken()) );
+ }
+ }
- for (std::vector<std::string>::const_iterator iter= secondary_keywords.begin();
- iter!= secondary_keywords.end(); ++iter)
+ for (std::vector<std::string>::const_iterator iter= primary_keywords.begin();
+ iter!= primary_keywords.end(); ++iter)
+ {
+ mFunctions->add(*iter);
+ }
+
+ for (std::vector<std::string>::const_iterator iter= secondary_keywords.begin();
+ iter!= secondary_keywords.end(); ++iter)
+ {
+ mFunctions->add(*iter);
+ }
+ }
+ }
+ else
{
- mFunctions->add(*iter);
+ LL_INFOS("SyntaxLSL")
+ << "Hashes are the same, no need to update highlighter." << LL_ENDL;
}
-
- return TRUE;
}
void LLScriptEdCore::initMenu()
@@ -680,7 +678,7 @@ void LLScriptEdCore::updateDynamicHelp(BOOL immediate)
std::vector<LLTextSegmentPtr>::iterator segment_iter;
for (segment_iter = selected_segments.begin(); segment_iter != selected_segments.end(); ++segment_iter)
{
- if((*segment_iter)->getToken() && (*segment_iter)->getToken()->getType() == LLKeywordToken::WORD)
+ if((*segment_iter)->getToken() && (*segment_iter)->getToken()->getType() == LLKeywordToken::TT_WORD)
{
segment = *segment_iter;
break;
@@ -691,7 +689,7 @@ void LLScriptEdCore::updateDynamicHelp(BOOL immediate)
if (!segment)
{
const LLTextSegmentPtr test_segment = mEditor->getPreviousSegment();
- if(test_segment->getToken() && test_segment->getToken()->getType() == LLKeywordToken::WORD)
+ if(test_segment->getToken() && test_segment->getToken()->getType() == LLKeywordToken::TT_WORD)
{
segment = test_segment;
}
diff --git a/indra/newview/llpreviewscript.h b/indra/newview/llpreviewscript.h
index 9fb0a4fb63..2dd5a1b6a7 100755
--- a/indra/newview/llpreviewscript.h
+++ b/indra/newview/llpreviewscript.h
@@ -35,6 +35,7 @@
#include "lliconctrl.h"
#include "llframetimer.h"
#include "llfloatergotoline.h"
+#include "llsyntaxid.h"
class LLLiveLSLFile;
class LLMessageSystem;
@@ -77,6 +78,7 @@ public:
~LLScriptEdCore();
void initMenu();
+ void onRegionChangeInitialiseKeywords();
virtual void draw();
/*virtual*/ BOOL postBuild();
@@ -149,6 +151,7 @@ private:
BOOL mEnableSave;
BOOL mHasScriptData;
LLLiveLSLFile* mLiveFile;
+ LLSyntaxIdLSL mSyntaxIdLSL;
LLScriptEdContainer* mContainer; // parent view
};
diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
new file mode 100644
index 0000000000..3ee9859ccd
--- /dev/null
+++ b/indra/newview/llsyntaxid.cpp
@@ -0,0 +1,415 @@
+/**
+ * @file LLSyntaxId
+ * @author Ima Mechanique
+ * @brief Handles downloading, saving, and checking of LSL keyword/syntax files
+ * for each region.
+ *
+ * $LicenseInfo:firstyear=2013&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2013, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#include "llviewerprecompiledheaders.h"
+
+#include "llagent.h"
+#include "llappviewer.h"
+#include "llhttpclient.h"
+#include "llsdserialize.h"
+#include "llsyntaxid.h"
+
+//-----------------------------------------------------------------------------
+// fetchKeywordsFileResponder
+//-----------------------------------------------------------------------------
+fetchKeywordsFileResponder::fetchKeywordsFileResponder(std::string filespec)
+{
+ mFileSpec = filespec;
+ LL_INFOS("SyntaxLSL")
+ << "Instantiating with file saving to: '" << filespec << "'"
+ << LL_ENDL;
+}
+
+void fetchKeywordsFileResponder::errorWithContent(U32 status,
+ const std::string& reason,
+ const LLSD& content)
+{
+ LLSyntaxIdLSL::sLoadFailed = true;
+ LL_ERRS("SyntaxLSL")
+ << "fetchKeywordsFileResponder error [status:"
+ << status << "]: " << content
+ << LL_ENDL;
+}
+
+void fetchKeywordsFileResponder::result(const LLSD& content_ref)
+{
+ // Continue only if a valid LLSD object was returned.
+ if (content_ref.isMap())
+ {
+ LL_DEBUGS("SyntaxLSL")
+ << "content_ref isMap so assuming valid XML." << LL_ENDL;
+
+ if (LLSyntaxIdLSL::isSupportedVersion(content_ref))
+ {
+ LL_INFOS("SyntaxLSL")
+ << "Supported verson of syntax file." << LL_ENDL;
+
+ LLSyntaxIdLSL::setKeywordsXml(content_ref);
+ LLSyntaxIdLSL::sInitialised = true;
+ LLSyntaxIdLSL::sLoaded = true;
+ LLSyntaxIdLSL::sLoadFailed = false;
+
+ cacheFile(content_ref);
+ }
+ else
+ {
+ LLSyntaxIdLSL::sLoaded = false;
+ LLSyntaxIdLSL::sLoadFailed = true;
+ LL_WARNS("SyntaxLSL")
+ << "Unknown or unsupported version of syntax file." << LL_ENDL;
+ }
+ }
+ else
+ {
+ LLSyntaxIdLSL::sLoaded = false;
+ LLSyntaxIdLSL::sLoadFailed = true;
+ LL_ERRS("SyntaxLSL")
+ << "Syntax file '" << mFileSpec << "' contains invalid LLSD!" << LL_ENDL;
+ }
+}
+
+void fetchKeywordsFileResponder::cacheFile(const LLSD& content_ref)
+{
+ std::stringstream str;
+ LLSDSerialize::toPrettyXML(content_ref, str);
+ const std::string xml = str.str();
+
+ // save the str to disc, usually to the cache.
+ llofstream file(mFileSpec, std::ios_base::out);
+ file.write(xml.c_str(), str.str().size());
+ file.close();
+
+ LL_INFOS("SyntaxLSL")
+ << "Syntax file received, saving as: '" << mFileSpec << "'" << LL_ENDL;
+}
+
+
+//-----------------------------------------------------------------------------
+// LLSyntaxIdLSL
+//-----------------------------------------------------------------------------
+const std::string LLSyntaxIdLSL::CAPABILITY_NAME = "LSLSyntax";
+const std::string LLSyntaxIdLSL::FILENAME_DEFAULT = "keywords_lsl_default.xml";
+const std::string LLSyntaxIdLSL::SIMULATOR_FEATURE = "LSLSyntaxId";
+
+bool LLSyntaxIdLSL::sInitialised;
+LLSD LLSyntaxIdLSL::sKeywordsXml;
+bool LLSyntaxIdLSL::sLoaded;
+bool LLSyntaxIdLSL::sLoadFailed;
+bool LLSyntaxIdLSL::sVersionChanged;
+
+/**
+ * @brief LLSyntaxIdLSL constructor
+ */
+LLSyntaxIdLSL::LLSyntaxIdLSL(std::string filenameDefault, std::string simFeatureName, std::string capabilityName) :
+ mFilePath(LL_PATH_APP_SETTINGS)
+{
+ mCapabilityName = capabilityName;
+ mFileNameCurrent = filenameDefault;
+ mFileNameDefault = filenameDefault;
+ mSimulatorFeature = simFeatureName;
+ mSyntaxIdCurrent = LLUUID();
+}
+
+LLSyntaxIdLSL::LLSyntaxIdLSL() :
+ mFilePath(LL_PATH_APP_SETTINGS)
+{
+ mCapabilityName = CAPABILITY_NAME;
+ mFileNameCurrent = FILENAME_DEFAULT;
+ mFileNameDefault = FILENAME_DEFAULT;
+ mSimulatorFeature = SIMULATOR_FEATURE;
+ mSyntaxIdCurrent = LLUUID();
+}
+
+std::string LLSyntaxIdLSL::buildFileNameNew()
+{
+ mFileNameNew = mSyntaxIdNew.isNull() ? mFileNameDefault : "keywords_lsl_" + gLastVersionChannel + "_" + mSyntaxIdNew.asString() + ".llsd.xml";
+ return mFileNameNew;
+}
+
+std::string LLSyntaxIdLSL::buildFullFileSpec()
+{
+ ELLPath path = mSyntaxIdNew.isNull() ? LL_PATH_APP_SETTINGS : LL_PATH_CACHE;
+ buildFileNameNew();
+ mFullFileSpec = gDirUtilp->getExpandedFilename(path, mFileNameNew);
+ return mFullFileSpec;
+}
+
+//-----------------------------------------------------------------------------
+// checkSyntaxIdChange()
+//-----------------------------------------------------------------------------
+bool LLSyntaxIdLSL::checkSyntaxIdChanged()
+{
+ sVersionChanged = false;
+ LLViewerRegion* region = gAgent.getRegion();
+
+ if (region)
+ {
+ if (!region->capabilitiesReceived())
+ { // Shouldn't be possible, but experience shows that it may be needed.
+ sLoadFailed = true;
+ LL_ERRS("SyntaxLSL")
+ << "Region '" << region->getName()
+ << "' has not received capabilities yet! Cannot process SyntaxId."
+ << LL_ENDL;
+ }
+ else
+ {
+ LLSD simFeatures;
+ region->getSimulatorFeatures(simFeatures);
+
+ // Does the sim have the required feature
+ if (simFeatures.has(mSimulatorFeature))
+ {
+ // get and check the hash
+ mSyntaxIdNew = simFeatures[mSimulatorFeature].asUUID();
+ mCapabilityURL = region->getCapability(mCapabilityName);
+ if (mSyntaxIdCurrent != mSyntaxIdNew)
+ {
+ LL_INFOS("SyntaxLSL")
+ << "It has LSLSyntaxId capability, and the new hash is '"
+ << mSyntaxIdNew.asString() << "'" << LL_ENDL;
+
+ sVersionChanged = true;
+ }
+ else
+ {
+ LL_INFOS("SyntaxLSL")
+ << "It has the same LSLSyntaxId! Leaving hash as '"
+ << mSyntaxIdCurrent.asString() << "'" << LL_ENDL;
+ }
+ }
+ else
+ {
+ if ( mSyntaxIdCurrent.isNull() && isInitialised())
+ {
+ LL_INFOS("SyntaxLSL")
+ << "It does not have LSLSyntaxId capability, remaining with default keywords file!"
+ << LL_ENDL;
+ }
+ else
+ {
+ // The hash is set to NULL_KEY to indicate use of default keywords file
+ mSyntaxIdNew = LLUUID();
+ LL_INFOS("SyntaxLSL")
+ << "It does not have LSLSyntaxId capability, using default keywords file!"
+ << LL_ENDL;
+ sVersionChanged = true;
+ }
+ }
+ }
+ }
+ return sVersionChanged;
+}
+
+/**
+ * @brief LLSyntaxIdLSL::fetching
+ * If the XML has not loaded yet and it hasn't failed, then we're still fetching it.
+ * @return bool Whether the file fetch is still in process.
+ */
+bool LLSyntaxIdLSL::fetching()
+{
+ return !(sLoaded || sLoadFailed);
+}
+
+//-----------------------------------------------------------------------------
+// fetchKeywordsFile
+//-----------------------------------------------------------------------------
+void LLSyntaxIdLSL::fetchKeywordsFile()
+{
+ LLHTTPClient::get(mCapabilityURL,
+ new fetchKeywordsFileResponder(mFullFileSpec),
+ LLSD(), 30.f
+ );
+ LL_INFOS("SyntaxLSL")
+ << "LSLSyntaxId capability URL is: " << mCapabilityURL
+ << ". Filename to use is: '" << mFullFileSpec << "'."
+ << LL_ENDL;
+}
+
+//-----------------------------------------------------------------------------
+// initialise
+//-----------------------------------------------------------------------------
+void LLSyntaxIdLSL::initialise()
+{
+ mFileNameNew = mFileNameCurrent;
+ mSyntaxIdNew = mSyntaxIdCurrent;
+
+ if (checkSyntaxIdChanged())
+ {
+ sKeywordsXml = LLSD();
+ sLoaded = sLoadFailed = false;
+
+ if (mSyntaxIdNew.isNull())
+ { // Need to open the default
+ loadDefaultKeywordsIntoLLSD();
+ }
+ else if (!mCapabilityURL.empty() )
+ {
+ LL_INFOS("SyntaxLSL")
+ << "LSL version has changed, getting appropriate file."
+ << LL_ENDL;
+
+ // Need a full spec regardless of file source, so build it now.
+ buildFullFileSpec();
+ if ( !mSyntaxIdNew.isNull())
+ {
+ if ( !gDirUtilp->fileExists(mFullFileSpec) )
+ { // Does not exist, so fetch it from the capability
+ LL_INFOS("SyntaxLSL")
+ << "File is not cached, we will try to download it!"
+ << LL_ENDL;
+ fetchKeywordsFile();
+ }
+ else
+ {
+ LL_INFOS("SyntaxLSL")
+ << "File is cached, no need to download!"
+ << LL_ENDL;
+ loadKeywordsIntoLLSD();
+ }
+ }
+ else
+ { // Need to open the default
+ loadDefaultKeywordsIntoLLSD();
+ }
+ }
+ else
+ {
+ sLoadFailed = true;
+ LL_ERRS("SyntaxLSL")
+ << "LSLSyntaxId capability URL is empty!!" << LL_ENDL;
+ loadDefaultKeywordsIntoLLSD();
+ }
+ }
+ else if (!isInitialised())
+ {
+ loadDefaultKeywordsIntoLLSD();
+ }
+
+ mFileNameCurrent = mFileNameNew;
+ mSyntaxIdCurrent = mSyntaxIdNew;
+}
+
+//-----------------------------------------------------------------------------
+// isSupportedVersion
+//-----------------------------------------------------------------------------
+bool LLSyntaxIdLSL::isSupportedVersion(const LLSD& content)
+{
+ bool isValid = false;
+ /*
+ * If the schema used to store LSL keywords and hints changes, this value is incremented
+ * Note that it should _not_ be changed if the keywords and hints _content_ changes.
+ */
+ const U32 LLSD_SYNTAX_LSL_VERSION_EXPECTED = 2;
+ const std::string LLSD_SYNTAX_LSL_VERSION_KEY("llsd-lsl-syntax-version");
+
+ if (content.has(LLSD_SYNTAX_LSL_VERSION_KEY))
+ {
+ LL_INFOS("SyntaxLSL")
+ << "Syntax file version: " << content[LLSD_SYNTAX_LSL_VERSION_KEY].asString() << LL_ENDL;
+
+ if (content[LLSD_SYNTAX_LSL_VERSION_KEY].asInteger() == LLSD_SYNTAX_LSL_VERSION_EXPECTED)
+ {
+ isValid = true;
+ }
+ }
+ else
+ {
+ LL_WARNS("SyntaxLSL") << "No version key available!" << LL_ENDL;
+ }
+
+ return isValid;
+}
+
+//-----------------------------------------------------------------------------
+// loadDefaultKeywordsIntoLLSD()
+//-----------------------------------------------------------------------------
+void LLSyntaxIdLSL::loadDefaultKeywordsIntoLLSD()
+{
+ LL_INFOS("SyntaxLSL")
+ << "LSLSyntaxId is null so we will use the default file!" << LL_ENDL;
+ mSyntaxIdNew = LLUUID();
+ buildFullFileSpec();
+ loadKeywordsIntoLLSD();
+}
+
+//-----------------------------------------------------------------------------
+// loadKeywordsFileIntoLLSD
+//-----------------------------------------------------------------------------
+/**
+ * @brief Load xml serialised LLSD
+ * @desc Opens the specified filespec and attempts to deserialise the
+ * contained data to the specified LLSD object. indicate success/failure with
+ * sLoaded/sLoadFailed members.
+ */
+void LLSyntaxIdLSL::loadKeywordsIntoLLSD()
+{
+ LL_INFOS("SyntaxLSL")
+ << "Trying to open cached or default keyword file ;-)"
+ << LL_ENDL;
+
+ // Is this the right thing to do, or should we leave the old content
+ // even if it isn't entirely accurate anymore?
+ sKeywordsXml = LLSD().emptyMap();
+
+ LLSD content;
+ llifstream file;
+ file.open(mFullFileSpec);
+ if (file.is_open())
+ {
+ sLoaded = (bool)LLSDSerialize::fromXML(content, file);
+ if (!sLoaded)
+ {
+ LL_ERRS("SyntaxLSL")
+ << "Unable to deserialise file: "
+ << mFullFileSpec << LL_ENDL;
+ }
+ else
+ {
+ if (isSupportedVersion(content))
+ {
+ sKeywordsXml = content;
+ sLoaded = true;
+ sInitialised = true;
+ LL_INFOS("SyntaxLSL")
+ << "Deserialised file: " << mFullFileSpec << LL_ENDL;
+ }
+ else
+ {
+ sLoaded = false;
+ LL_WARNS("SyntaxLSL")
+ << "Unknown or unsupported version of syntax file." << LL_ENDL;
+ }
+ }
+ }
+ else
+ {
+ LL_ERRS("SyntaxLSL") << "Unable to open file: " << mFullFileSpec << LL_ENDL;
+ }
+ sLoadFailed = !sLoaded;
+}
diff --git a/indra/newview/llsyntaxid.h b/indra/newview/llsyntaxid.h
new file mode 100644
index 0000000000..226f1f4941
--- /dev/null
+++ b/indra/newview/llsyntaxid.h
@@ -0,0 +1,143 @@
+/**
+ * @file llsyntaxid.h
+ * @brief Contains methods to access the LSLSyntaxId feature and LSLSyntax capability
+ * to use the appropriate syntax file for the current region's LSL version.
+ * @author Ima Mechanique
+ *
+ * $LicenseInfo:firstyear=2013&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2013, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+#ifndef LLSYSNTAXIDLSL_H
+#define LLSYSNTAXIDLSL_H
+
+#endif // LLSYSNTAXIDLSL_H
+
+#include "llviewerprecompiledheaders.h"
+
+#include "llagent.h"
+#include "llenvmanager.h"
+#include "llhttpclient.h"
+#include "llviewerregion.h"
+
+
+/**
+ * @file llsyntaxid.h
+ * @brief Tracks the file needed to decorate the current sim's version of LSL.
+ */
+class LLSyntaxIdLSL
+{
+friend class fetchKeywordsFileResponder;
+public:
+
+static const std::string CAPABILITY_NAME;
+static const std::string FILENAME_DEFAULT;
+static const std::string SIMULATOR_FEATURE;
+
+protected:
+ //LLViewerRegion* region;
+
+ static bool sInitialised;
+ static LLSD sKeywordsXml;
+ static bool sLoaded;
+ static bool sLoadFailed;
+ static bool sVersionChanged;
+
+private:
+ std::string mCapabilityName;
+ std::string mCapabilityURL;
+ std::string mFileNameCurrent;
+ std::string mFileNameDefault;
+ std::string mFileNameNew;
+ ELLPath mFilePath;
+ std::string mFullFileSpec;
+ std::string mSimulatorFeature;
+ LLUUID mSyntaxIdCurrent;
+ LLUUID mSyntaxIdNew;
+
+
+public:
+ LLSyntaxIdLSL();
+ LLSyntaxIdLSL(std::string filenameDefault, std::string simFeatureName, std::string capabilityName);
+
+ bool checkSyntaxIdChanged();
+ bool fetching();
+ std::string getFileNameCurrent() const { return mFileNameCurrent; }
+ ELLPath getFilePath() const { return mFilePath; }
+ std::string getFileSpec() const { return mFullFileSpec; }
+ LLSD getKeywordsXML() const { return sKeywordsXml; }
+ LLUUID getSyntaxId() const { return mSyntaxIdCurrent; }
+ bool isDifferentVersion() const { return sVersionChanged; }
+ bool isInitialised() const { return sInitialised; }
+
+ void initialise();
+ bool isLoaded() { return sLoaded; }
+
+ static bool isSupportedVersion(const LLSD& content);
+ static void setKeywordsXml(const LLSD& content) { sKeywordsXml = content; }
+
+
+protected:
+ std::string buildFileNameNew();
+ std::string buildFullFileSpec();
+ void fetchKeywordsFile();
+ void loadDefaultKeywordsIntoLLSD();
+ void loadKeywordsIntoLLSD();
+ void setSyntaxId(LLUUID SyntaxId) { mSyntaxIdCurrent = SyntaxId; }
+ void setFileNameCurrent(std::string& name) { mFileNameCurrent = name; }
+ void setFileNameDefault(std::string& name) { mFileNameDefault = name; }
+ void setFileNameNew(std::string name) { mFileNameNew = name; }
+// void setSimulatorFeatureName(const std::string& name) { mSimulatorFeature = name; }
+};
+
+
+/**
+ * @file llsyntaxid.h
+ * @brief Handles responses for the LSLSyntax capability's get call. Is a friend of LLSyntaxIdLSL
+ */
+class fetchKeywordsFileResponder : public LLHTTPClient::Responder
+{
+public:
+ std::string mFileSpec;
+
+ /**
+ * @brief fetchKeywordsFileResponder
+ * @param filespec File path and name of where to save the returned data
+ */
+ fetchKeywordsFileResponder(std::string filespec);
+
+ void errorWithContent(U32 status,
+ const std::string& reason,
+ const LLSD& content);
+
+ /**
+ * @brief Checks the returned LLSD for version and stores it in the LLSyntaxIdLSL object.
+ * @param content_ref The returned LLSD.
+ */
+ void result(const LLSD& content_ref);
+
+ /**
+ * @brief Saves the returned file to the location provided at instantiation.
+ * Could be extended to manage cached entries.
+ * @param content_ref The LSL syntax file for the sim.
+ */
+ void cacheFile(const LLSD& content_ref);
+
+};
diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp
index c6ae7d7fa0..c2e9769fc7 100755
--- a/indra/newview/llviewerregion.cpp
+++ b/indra/newview/llviewerregion.cpp
@@ -1609,6 +1609,7 @@ void LLViewerRegionImpl::buildCapabilityNames(LLSD& capabilityNames)
capabilityNames.append("GroupProposalBallot");
capabilityNames.append("HomeLocation");
capabilityNames.append("LandResources");
+ capabilityNames.append("LSLSyntax");
capabilityNames.append("MapLayer");
capabilityNames.append("MapLayerGod");
capabilityNames.append("MeshUploadFlag");
diff --git a/indra/newview/skins/default/colors.xml b/indra/newview/skins/default/colors.xml
index 3ebb64e3fa..dfd7b5ee39 100755
--- a/indra/newview/skins/default/colors.xml
+++ b/indra/newview/skins/default/colors.xml
@@ -56,7 +56,7 @@
<color
name="Black"
value="0 0 0 1" />
- <colork
+ <color
name="Black_10"
value="0 0 0 0.1" />
<color
@@ -904,5 +904,60 @@
<color
name="ResizebarBody"
value="0.208 0.208 0.208 1"/>
-
+
+ <!-- syntax highlighting (LSL Scripts) -->
+ <color
+ name="SyntaxLslComment1Sided"
+ value=".8 .3 .15 1.0" />
+ <color
+ name="SyntaxLslComment2Sided"
+ value=".8 .3 .15 1.0" />
+ <color
+ name="SyntaxLslConstantFloat"
+ value=".3 .1 .5 1.0" />
+ <color
+ name="SyntaxLslConstantInteger"
+ value=".1 .1 .5 1.0" />
+ <color
+ name="ResizebarBody"
+ value="0.208 0.208 0.208 1"/>
+ <color
+ name="SyntaxLslConstantKey"
+ value=".1 .3 .5 1.0" />
+ <color
+ name="SyntaxLslConstantRotation"
+ value=".2 .4 .2 1.0" />
+ <color
+ name="SyntaxLslConstantString"
+ value=".1 .3 .5 1.0" />
+ <color
+ name="SyntaxLslConstantVector"
+ value=".2 .4 .2 1.0" />
+ <color
+ name="SyntaxLslControlFlow"
+ value="0 0 .8 1.0" />
+ <color
+ name="SyntaxLslControlLabel"
+ value="0 0 .8 1.0" />
+ <color
+ name="SyntaxLslDataType"
+ value=".1 .3 .1 1.0" />
+ <color
+ name="SyntaxLslDeprecated"
+ value="0.9 0.0 0.66, 1.0" />
+ <color
+ name="SyntaxLslEvent"
+ value="0 .3 .5 1.0" />
+ <color
+ name="SyntaxLslFunction"
+ value=".3 0 .5 1.0" />
+ <color
+ name="SyntaxLslGodMode"
+ value="0.7 .2 .35 1.0" />
+ <color
+ name="SyntaxLslSection"
+ value=".5 .1 .3 1.0" />
+ <color
+ name="SyntaxLslStringLiteral"
+ value="0 .2 0 1.0" />
</colors>
diff --git a/indra/newview/skins/default/xui/en/panel_script_ed.xml b/indra/newview/skins/default/xui/en/panel_script_ed.xml
index bcdef96138..d1b35dce9d 100755
--- a/indra/newview/skins/default/xui/en/panel_script_ed.xml
+++ b/indra/newview/skins/default/xui/en/panel_script_ed.xml
@@ -157,7 +157,7 @@
height="376"
ignore_tab="false"
layout="topleft"
- max_length="65536"
+ max_length="262144"
name="Script Editor"
text_readonly_color="DkGray"
width="487"