summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIma Mechanique <ima.mechanique@secondlife.com>2013-02-05 16:37:37 +0000
committerIma Mechanique <ima.mechanique@secondlife.com>2013-02-05 16:37:37 +0000
commit7183cecd14fbdc3cd31e1482248fabec7b23b1fb (patch)
tree9f07e2451567e217de1238af2cb4afbe568c9498
parent1407f4f11a911d1853114af5c140d3fa0b73f14a (diff)
STORM-1831 merging in previous work
-rw-r--r--indra/llui/llkeywords.cpp558
-rw-r--r--indra/llui/llkeywords.h81
-rw-r--r--indra/llui/lltexteditor.cpp8
-rw-r--r--indra/llui/lltexteditor.h35
-rwxr-xr-xindra/newview/CMakeLists.txt7
-rw-r--r--indra/newview/app_settings/keywords.ini706
-rw-r--r--indra/newview/app_settings/keywords_lsl_colors.xml176
-rw-r--r--indra/newview/app_settings/keywords_lsl_tokens.xml17542
-rw-r--r--indra/newview/llpreviewscript.cpp41
9 files changed, 18215 insertions, 939 deletions
diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index c1cd04186b..2ff0298ba6 100644
--- 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$
*/
@@ -29,12 +29,12 @@
#include <iostream>
#include <fstream>
+#include "lldir.h"
#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
{
@@ -53,10 +53,6 @@ inline BOOL LLKeywordToken::isHead(const llwchar* s) const
return res;
}
-LLKeywords::LLKeywords() : mLoaded(FALSE)
-{
-}
-
inline BOOL LLKeywordToken::isTail(const llwchar* s) const
{
BOOL res = TRUE;
@@ -73,6 +69,12 @@ inline BOOL LLKeywordToken::isTail(const llwchar* s) const
return res;
}
+LLKeywords::LLKeywords() : mLoaded(FALSE)
+{
+ setFilenameColors( gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS,"keywords_lsl_colors.xml") );
+ setFilenameSyntax( gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS,"keywords_lsl_tokens.xml") );
+}
+
LLKeywords::~LLKeywords()
{
std::for_each(mWordTokenMap.begin(), mWordTokenMap.end(), DeletePairedPointer());
@@ -80,180 +82,418 @@ 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 LLColor3 color)
{
- mLoaded = FALSE;
+ WStringMapIndex key ( utf8str_to_wstring(key_in) );
+ mColorGroupMap[key] = color;
+}
- ////////////////////////////////////////////////////////////
- // File header
+// 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)
+{
+ std::string tip_text = tool_tip_in;
+ LLStringUtil::replaceString(tip_text, "\\n", "\n" );
+ LLStringUtil::replaceString(tip_text, "\t", " " );
+ if (tip_text =="")
+ {
+ tip_text = "[no info]";
+ }
+ LLWString tool_tip = utf8str_to_wstring(tip_text);
- const S32 BUFFER_SIZE = 1024;
- char buffer[BUFFER_SIZE]; /* Flawfinder: ignore */
+ LLWString key = utf8str_to_wstring(key_in);
+ LLWString delimiter = utf8str_to_wstring(delimiter_in);
+ switch(type)
+ {
+ case LLKeywordToken::TT_CONSTANT:
+ case LLKeywordToken::TT_EVENT:
+ case LLKeywordToken::TT_FLOW:
+ 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;
- llifstream file;
- file.open(filename); /* Flawfinder: ignore */
- if( file.fail() )
+ case LLKeywordToken::TT_LINE:
+ mLineTokenList.push_front(new LLKeywordToken(type, color, key, tool_tip, LLWStringUtil::null));
+ break;
+
+ 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;
+
+ default:
+ llassert(0);
+ }
+}
+
+std::string LLKeywords::getArguments(LLSD& arguments)
+{
+ std::string args = "";
+ if (arguments.isArray())
{
- llinfos << "LLKeywords::loadFromFile() Unable to open file: " << filename << llendl;
- return mLoaded;
+ int count = 0;
+ do
+ {
+ LLSD arg = arguments[count];
+ args += arg.get("type").asString() + " " + arg.get("name").asString();
+ ++count;
+ if (arguments.size() - count > 0)
+ {
+ args += ", ";
+ }
+ } while (count < arguments.size());
}
+ else
+ {
+ LL_WARNS("Arguments") << "Not an array! Invalid LLSD passed to function.\n" << arguments << LL_ENDL;
+ }
+ return args == "" ? " void " : args;
+}
- // Identifying string
- file >> buffer;
- if( strcmp( buffer, "llkeywords" ) )
+std::string LLKeywords::getAttribute(const std::string& key)
+{
+ attribute_iterator_t it = mAttributes.find(key);
+ return (it != mAttributes.end()) ? it->second : "";
+}
+
+LLColor3 LLKeywords::getColorGroup(const std::string key_in)
+{
+ // LLColor3 initialises to Black (0,0,0)
+ LLColor3 Colour;
+ WStringMapIndex key ( utf8str_to_wstring(key_in) );
+ group_color_map_t::iterator it = mColorGroupMap.find(key);
+ if (it == mColorGroupMap.end())
+ {
+ LL_WARNS("Colour lookup") << "'" << key_in << "' not found!" << LL_ENDL;
+ }
+ else
{
- llinfos << filename << " does not appear to be a keyword file" << llendl;
- return mLoaded;
+ Colour = it->second;
}
- // Check file version
- file >> buffer;
- U32 version_num;
- file >> version_num;
- if( strcmp(buffer, "version") || version_num != (U32)KEYWORD_FILE_CURRENT_VERSION )
+ return Colour;
+}
+
+BOOL LLKeywords::initialise()
+{
+ mReady = false;
+
+ if (! loadIntoLLSD(mFilenameColors, mColors) )
{
- llinfos << filename << " does not appear to be a version " << KEYWORD_FILE_CURRENT_VERSION << " keyword file" << llendl;
- return mLoaded;
+ LL_ERRS("") << "Failed to load color data, cannot continue!" << LL_ENDL;
+ }
+ else if (! loadIntoLLSD(mFilenameSyntax, mSyntax) )
+ {
+ LL_ERRS("") << "Failed to load syntax data from '" << mFilenameSyntax << "', cannot continue!" << LL_ENDL;
+ }
+ else
+ {
+ mReady = true;
}
- // 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 ");
+ if (ready())
+ {
+ processColors();
+ }
+ else
+ {
+ LL_ERRS("") << LL_ENDL;
+ LL_ERRS("") << "Failed to load one or both data files, cannot continue!" << LL_ENDL;
+ }
+ return mReady;
+}
- LLColor3 cur_color( 1, 0, 0 );
- LLKeywordToken::TOKEN_TYPE cur_type = LLKeywordToken::WORD;
+BOOL LLKeywords::loadFromFile()
+{
+ processTokens();
+ return true;
+}
- while (!file.eof())
+/**
+ * @brief Load xml serialised LLSD
+ * @desc Opens the specified filespec and attempts to deserialise the
+ * contained data to the specified LLSD object.
+ * @return Returns boolean true/false indicating success or failure.
+ */
+BOOL LLKeywords::loadIntoLLSD(const std::string& filename, LLSD& data)
+{
+ mLoaded = false;
+ llifstream file;
+ file.open(filename);
+ if(file.is_open())
{
- 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 )
+ mLoaded = (BOOL)LLSDSerialize::fromXML(data, file);
+ if (!mLoaded)
{
- cur_color = readColor( line.substr(SOL_WORD.size()) );
- cur_type = LLKeywordToken::WORD;
- continue;
+ LL_WARNS("") << "Unable to deserialise file: " << filename << LL_ENDL;
}
- else if( line.find(SOL_LINE) == 0 )
+ else
{
- 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;
+ LL_INFOS("") << "Deserialised file: " << filename << LL_ENDL;
}
+ }
+ else
+ {
+ LL_WARNS("") << "Unable to open file: " << filename << LL_ENDL;
+ }
+ return mLoaded;
+}
+
+/**
+ * @brief Start processing the colour LLSD from its beginning.
+ *
+ */
+std::string LLKeywords::processColors()
+{
+ return processColors(mColors, "");
+}
- 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();
+/**
+ * @brief Recursively process the colour LLSD from an arbitrary level.
+ * @desc Process the supplied LLSD for colour data. The strPrefix is a string
+ * of hyphen separated keys from previous levels.
+ */
+std::string LLKeywords::processColors(LLSD &settings, const std::string strPrefix)
+{
+ if (settings.isMap() || (! settings.isMap() && strPrefix != "") )
+ {
+ LLSD llsd_map = settings;
- if( !token_buffer.empty() && token_word_iter != word_tokens.end() )
+ LLSD::map_iterator my_iter = llsd_map.beginMap();
+ for ( ; my_iter != llsd_map.endMap(); ++my_iter)
{
- // first word is the keyword or a left delimiter
- std::string keyword = (*token_word_iter);
- LLStringUtil::trim(keyword);
+ std::string strGroup = strPrefix;
+ const LLSD::String& key = my_iter->first;
+ LLSD& value = my_iter->second;
- // second word may be a right delimiter
- std::string delimiter;
- if (cur_type == LLKeywordToken::TWO_SIDED_DELIMITER)
+ if (key == "color")
{
- while (delimiter.length() == 0 && ++token_word_iter != word_tokens.end())
+ if (value.isMap() || value.isArray())
+ {
+ addColorGroup(strGroup, readColor(value));
+ }
+ else
{
- delimiter = *token_word_iter;
- LLStringUtil::trim(delimiter);
+ LL_WARNS("Invalid Color") << "Invalid Color Entry - first: '" << key << "' second: '" << value << "'" << LL_ENDL;
}
}
- else if (cur_type == LLKeywordToken::DOUBLE_QUOTATION_MARKS)
+ else if (value.isMap())
+ {
+ strGroup += (strGroup.length() == 0) ? my_iter->first : "-" + my_iter->first;
+ strGroup = processColors(value, strGroup);
+ }
+ else
{
- // Closing delimiter is identical to the opening one.
- delimiter = keyword;
+ LL_WARNS("Invalid Color") << "Invalid Color Entry - first: '" << key << "' second: '" << value << "'" << LL_ENDL;
}
+ }
+ }
+ return strPrefix;
+}
- // following words are tooltip
- std::string tool_tip;
- while (++token_word_iter != word_tokens.end())
+void LLKeywords::processTokens()
+{
+ // Add 'standard' stuff: Quotes, Comments, Strings, Labels, etc. before processing the LLSD
+ std::string delimiter;
+ addToken(LLKeywordToken::TT_LINE, "@", getColorGroup("misc-flow-label"), "Label\nTarget for jump statement", delimiter );
+ addToken(LLKeywordToken::TT_ONE_SIDED_DELIMITER, "//", getColorGroup("misc-comments_1_sided"), "Comment\nNon-functional commentary or disabled code", delimiter );
+ addToken(LLKeywordToken::TT_TWO_SIDED_DELIMITER, "/*", getColorGroup("misc-comments_2_sided"), "Comment\nNon-functional commentary or disabled code (multi-line)", "*/" );
+ addToken(LLKeywordToken::TT_DOUBLE_QUOTATION_MARKS, "\"", getColorGroup("misc-double_quotation_marks"), "String literal", "\"" );
+
+ LLSD::map_iterator outerIt = mSyntax.beginMap();
+ for ( ; outerIt != mSyntax.endMap(); ++outerIt)
+ {
+ // TODO Collapse the 'if's into two, those that call 'processTokens' directly and an else if (for 'misc') that doesn't
+ if (outerIt->first == "constants")
+ {
+ if (outerIt->second.isMap())
+ {
+ processTokensGroup(outerIt->second, "constants");
+ }
+ else
+ {
+ LL_ERRS("Tokens-Constants") << "No constants map to process!" << LL_ENDL;
+ }
+ }
+ else if(outerIt->first == "misc")
+ {
+ if (outerIt->second.isMap())
{
- tool_tip += (*token_word_iter);
+ LLSD::map_iterator innerIt = outerIt->second.beginMap();
+ for ( ; innerIt != outerIt->second.endMap(); ++innerIt)
+ {
+ processTokensGroup(innerIt->second, "misc-" + innerIt->first);
+ }
}
- LLStringUtil::trim(tool_tip);
-
- if( !tool_tip.empty() )
+ else
{
- // Replace : with \n for multi-line tool tips.
- LLStringUtil::replaceChar( tool_tip, ':', '\n' );
- addToken(cur_type, keyword, cur_color, tool_tip, delimiter );
+ LL_ERRS("Tokens-Misc") << "No misc map to process!" << LL_ENDL;
+ }
+ }
+ else if(outerIt->first == "events")
+ {
+ if (outerIt->second.isMap())
+ {
+ processTokensGroup(outerIt->second, "events");
}
else
{
- addToken(cur_type, keyword, cur_color, LLStringUtil::null, delimiter );
+ LL_ERRS("Tokens-Events") << "No event map to process!" << LL_ENDL;
}
}
+ else if(outerIt->first == "functions")
+ {
+ if (outerIt->second.isMap())
+ {
+ processTokensGroup(outerIt->second, "functions");
+ }
+ else
+ {
+ LL_ERRS("Tokens-Functions") << "No function map to process!" << LL_ENDL;
+ }
+ }
+ else if(outerIt->first == "types")
+ {
+ if (outerIt->second.isArray())
+ {
+ processTokensGroup(outerIt->second, "types");
+ }
+ else
+ {
+ LL_ERRS("Tokens-Types") << "No types array to process!" << LL_ENDL;
+ }
+ }
+ else
+ {
+ LL_ERRS("Tokens") << "Unknown token group '" << outerIt->first << "'" << LL_ENDL;
+ }
}
-
- file.close();
-
- mLoaded = TRUE;
- return mLoaded;
+ LL_INFOS("") << 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)
+ LLColor3 Color = getColorGroup(Group);
+ LL_INFOS("Tokens") << "Group: '" << Group << "', using colour: '" << Color << "'" << LL_ENDL;
+
+ 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 == "events")
+ {
+ token_type = LLKeywordToken::TT_EVENT;
+ }
+ else if (Group == "misc-flow-control")
+ {
+ token_type = LLKeywordToken::TT_FLOW;
+ }
+ else if (Group == "functions")
+ {
+ token_type = LLKeywordToken::TT_FUNCTION;
+ }
+ else if (Group == "misc-flow-label")
+ {
+ token_type = LLKeywordToken::TT_LABEL;
+ }
+ else if (Group == "misc-sections")
+ {
+ token_type = LLKeywordToken::TT_SECTION;
+ }
+ 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;
+ if (Tokens.isMap()) // constants, events, functions, and misc
+ {
+ LLSD::map_iterator outerIt = Tokens.beginMap();
+ for ( ; outerIt != Tokens.endMap(); ++outerIt)
+ {
+ if (outerIt->second.isMap())
+ {
+ mAttributes.clear();
+ LLSD arguments = LLSD ();
+ LLSD::map_iterator innerIt = outerIt->second.beginMap();
+ for ( ; innerIt != outerIt->second.endMap(); ++innerIt)
+ {
+ if (innerIt->first != "arguments")
+ {
+ mAttributes[innerIt->first] = innerIt->second.asString();
+ }
+ else if (innerIt->second.isArray())
+ {
+ arguments = innerIt->second;
+ }
+ }
- 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;
+ 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_FLOW)
+ {
+ tooltip = "flow baby";
+ }
+ 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");
+ }
+ }
+ else if (token_type == LLKeywordToken::TT_SECTION)
+ {
+ tooltip = "section";
+ }
- default:
- llassert(0);
+ if (getAttribute("summry") != "")
+ {
+ tooltip += "\n" + getAttribute("summary");
+ }
+ else if (getAttribute("description") != "")
+ {
+ tooltip += "\n" + getAttribute("description");
+ }
+
+ addToken(token_type, outerIt->first, Color, tooltip);
+ }
+ }
+ }
+ else if (Tokens.isArray()) // types
+ {
+ 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 +538,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 +559,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,7 +571,7 @@ bool LLKeywords::WStringMapIndex::operator<(const LLKeywords::WStringMapIndex &o
self_iter++;
other_iter++;
}
-
+
return result;
}
@@ -347,6 +587,22 @@ LLColor3 LLKeywords::readColor( const std::string& s )
return LLColor3( r, g, b );
}
+LLColor3 LLKeywords::readColor(LLSD& sd)
+{
+ if (sd.isArray())
+ {
+ return LLColor3 (sd);
+ }
+ else if (sd.isMap())
+ {
+ return LLColor3 ( sd.get("x").asReal(), sd.get("y").asReal(), sd.get("z").asReal() );
+ }
+ else
+ {
+ return LLColor3::black;
+ }
+}
+
LLFastTimer::DeclareTimer FTM_SYNTAX_COLORING("Syntax Coloring");
// Walk through a string, applying the rules specified by the keyword token list and
@@ -360,10 +616,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;
@@ -398,7 +654,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
{
@@ -416,7 +672,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.
@@ -461,14 +717,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;
@@ -515,7 +771,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) )
{
@@ -561,7 +817,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;
}
}
@@ -577,7 +833,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)
@@ -656,7 +912,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..87f65dc0bf 100644
--- 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$
*/
@@ -41,26 +41,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_EVENT, // WORD
+ TT_FLOW, // 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 LLColor3& color, const LLWString& token, const LLWString& tool_tip, const LLWString& delimiter )
:
mType( type ),
mToken( token ),
@@ -98,10 +107,19 @@ public:
LLKeywords();
~LLKeywords();
+ void addColorGroup(const std::string key_in, const LLColor3 color);
+ LLColor3 getColorGroup(const std::string key_in);
+ BOOL loadFromFile();
BOOL loadFromFile(const std::string& filename);
BOOL isLoaded() const { return mLoaded; }
+ void setFilenameColors(const std::string filename) { mFilenameColors = filename; }
+ void setFilenameSyntax(const std::string filename) { mFilenameSyntax = filename; }
void findSegments(std::vector<LLTextSegmentPtr> *seg_list, const LLWString& text, const LLColor4 &defaultColor, class LLTextEditor& editor );
+ BOOL initialise();
+ std::string processColors();
+ std::string processColors(LLSD &data, const std::string strGroup);
+ void processTokens();
// Add the token as described
void addToken(LLKeywordToken::TOKEN_TYPE type,
@@ -109,7 +127,7 @@ public:
const LLColor3& 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 +151,9 @@ public:
const llwchar *mData;
size_t mLength;
bool mOwner;
+
+
+ LLColor3 mColor;
};
typedef std::map<WStringMapIndex, LLKeywordToken*> word_token_map_t;
@@ -140,20 +161,42 @@ public:
keyword_iterator_t begin() const { return mWordTokenMap.begin(); }
keyword_iterator_t end() const { return mWordTokenMap.end(); }
+ typedef std::map<WStringMapIndex, LLColor3> 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:
+protected:
+ void processTokensGroup(LLSD& Tokens, const std::string Group);
LLColor3 readColor(const std::string& s);
+ LLColor3 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 );
+ 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:
+ BOOL ready() { return mReady; };
+ BOOL mReady;
+ std::string mFilenameColors;
+ std::string mFilenameSyntax;
};
#endif // LL_LLKEYWORDS_H
diff --git a/indra/llui/lltexteditor.cpp b/indra/llui/lltexteditor.cpp
index 144b6960a1..1728292a6b 100644
--- a/indra/llui/lltexteditor.cpp
+++ b/indra/llui/lltexteditor.cpp
@@ -2416,14 +2416,8 @@ void LLTextEditor::loadKeywords(const std::string& filename,
const LLColor3& color)
{
LLFastTimer ft(FTM_SYNTAX_HIGHLIGHTING);
- if(mKeywords.loadFromFile(filename))
+ if(mKeywords.loadFromFile())
{
- 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);
diff --git a/indra/llui/lltexteditor.h b/indra/llui/lltexteditor.h
index 40821ae9fb..070c859e46 100644
--- 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$
*/
@@ -131,7 +131,7 @@ public:
virtual BOOL canCopy() const;
virtual void paste();
virtual BOOL canPaste() const;
-
+
virtual void updatePrimary();
virtual void copyPrimary();
virtual void pastePrimary();
@@ -147,7 +147,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();
@@ -179,6 +179,7 @@ public:
void getCurrentLineAndColumn( S32* line, S32* col, BOOL include_wordwrap );
+ LLKeywords mKeywords;
void loadKeywords(const std::string& filename,
const std::vector<std::string>& funcs,
const std::vector<std::string>& tooltips,
@@ -186,6 +187,9 @@ public:
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; }
@@ -207,7 +211,7 @@ protected:
void drawPreeditMarker();
void assignEmbedded(const std::string &s);
-
+
void removeCharOrTab();
void indentSelectedLines( S32 spaces );
@@ -226,12 +230,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);
@@ -245,7 +249,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 updateAllowingLanguageInput();
BOOL hasPreeditString() const;
@@ -262,14 +266,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;
@@ -293,11 +297,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 dff2c04fbc..cbeb0c43a4 100755
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -1467,7 +1467,8 @@ 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_colors.xml
+ app_settings/keywords_lsl_tokens.xml
app_settings/logcontrol.xml
app_settings/low_graphics.xml
app_settings/mid_graphics.xml
@@ -1785,7 +1786,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"
@@ -1961,7 +1962,7 @@ if (DARWIN)
)
add_dependencies(${VIEWER_BINARY_NAME} SLPlugin media_plugin_quicktime media_plugin_webkit mac-updater 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 100644
index 6120f22ba4..0000000000
--- a/indra/newview/app_settings/keywords.ini
+++ /dev/null
@@ -1,706 +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, object 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
-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
-
-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_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_SRC_PATTERN_DROP
-PSYS_SRC_PATTERN_EXPLODE
-PSYS_SRC_PATTERN_ANGLE
-PSYS_SRC_PATTERN_ANGLE_CONE
-PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY
-
-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
-
-# 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
-
-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 temporay 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_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_colors.xml b/indra/newview/app_settings/keywords_lsl_colors.xml
new file mode 100644
index 0000000000..d150f0850f
--- /dev/null
+++ b/indra/newview/app_settings/keywords_lsl_colors.xml
@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-model href="llsd.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
+<llsd>
+ <map>
+ <key>types</key>
+ <map>
+ <key>color</key>
+ <array>
+ <real>0.1</real>
+ <real>0.3</real>
+ <real>0.1</real>
+ </array>
+ </map>
+
+ <key>constants</key>
+ <map>
+ <key>float</key>
+ <map>
+ <key>color</key>
+ <array>
+ <real>0.3</real>
+ <real>0.1</real>
+ <real>0.5</real>
+ </array>
+ </map>
+ <key>integer</key>
+ <map>
+ <key>color</key>
+ <array>
+ <real>0.1</real>
+ <real>0.1</real>
+ <real>0.5</real>
+ </array>
+ </map>
+ <key>key</key>
+ <map>
+ <key>color</key>
+ <array>
+ <real>0.1</real>
+ <real>0.3</real>
+ <real>0.5</real>
+ </array>
+ </map>
+ <key>rotation</key>
+ <map>
+ <key>color</key>
+ <array>
+ <real>0.4</real>
+ <real>0.2</real>
+ <real>0.4</real>
+ </array>
+ </map>
+ <key>string</key>
+ <map>
+ <key>color</key>
+ <array>
+ <real>0.1</real>
+ <real>0.3</real>
+ <real>0.5</real>
+ </array>
+ </map>
+ <key>vector</key>
+ <map>
+ <key>color</key>
+ <array>
+ <real>0.4</real>
+ <real>0.2</real>
+ <real>0.4</real>
+ </array>
+ </map>
+ </map>
+
+ <key>misc</key>
+ <map>
+ <key>flow-control</key>
+ <map>
+ <key>color</key>
+ <array>
+ <real>0.0</real>
+ <real>0.0</real>
+ <real>0.8</real>
+ </array>
+ </map>
+
+ <key>comments_1_sided</key>
+ <map>
+ <key>color</key>
+ <array>
+ <real>0.8</real>
+ <real>0.3</real>
+ <real>0.15</real>
+ </array>
+ </map>
+
+ <key>comments_2_sided</key>
+ <map>
+ <key>color</key>
+ <array>
+ <real>0.8</real>
+ <real>0.3</real>
+ <real>0.15</real>
+ </array>
+ </map>
+
+ <key>flow-label</key>
+ <map>
+ <key>color</key>
+ <array>
+ <real>0.0</real>
+ <real>0.0</real>
+ <real>0.8</real>
+ </array>
+ </map>
+
+ <key>double_quotation_marks</key>
+ <map>
+ <key>color</key>
+ <array>
+ <real>0.0</real>
+ <real>0.2</real>
+ <real>0.0</real>
+ </array>
+ </map>
+
+ <key>sections</key>
+ <map>
+ <key>color</key>
+ <array>
+ <real>0.5</real>
+ <real>0.1</real>
+ <real>0.3</real>
+ </array>
+ </map>
+ </map>
+
+ <key>events</key>
+ <map>
+ <key>color</key>
+ <array>
+ <real>0.0</real>
+ <real>0.3</real>
+ <real>0.5</real>
+ </array>
+ </map>
+
+ <key>functions</key>
+ <map>
+ <key>color</key>
+ <array>
+ <real>0.5</real>
+ <real>0.0</real>
+ <real>0.15</real>
+ </array>
+ </map>
+
+ <key>deprecated</key>
+ <map>
+ <key>color</key>
+ <array>
+ <real>0.9</real>
+ <real>0.4</real>
+ <real>0.55</real>
+ </array>
+ </map>
+
+ <key>god_mode</key>
+ <map>
+ <key>color</key>
+ <array>
+ <real>0.7</real>
+ <real>0.2</real>
+ <real>0.35</real>
+ </array>
+ </map>
+ </map>
+</llsd>
diff --git a/indra/newview/app_settings/keywords_lsl_tokens.xml b/indra/newview/app_settings/keywords_lsl_tokens.xml
new file mode 100644
index 0000000000..f33426489b
--- /dev/null
+++ b/indra/newview/app_settings/keywords_lsl_tokens.xml
@@ -0,0 +1,17542 @@
+<?xml version="1.0" encoding="utf-8"?>
+<?xml-model href="llsd-lsl-tokens.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
+<llsd>
+ <map>
+ <key>misc</key>
+ <map>
+ <key>flow-control</key>
+ <array>
+ <string>if</string>
+ <string>else</string>
+ <string>for</string>
+ <string>while</string>
+ <string>do</string>
+ <string>jump</string>
+ <string>return</string>
+ </array>
+ <key>sections</key>
+ <array>
+ <string>default</string>
+ <string>state</string>
+ </array>
+ </map>
+ <key>types</key>
+ <array>
+ <string>float</string>
+ <string>integer</string>
+ <string>key</string>
+ <string>list</string>
+ <string>quaternion</string>
+ <string>rotation</string>
+ <string>string</string>
+ <string>vector</string>
+ </array>
+ <key>constants</key>
+ <map>
+ <key>ACTIVE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x2</integer>
+ <key>description</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>
+ <integer>0x1</integer>
+ <key>description</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>
+ <integer>0x1000</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>AGENT_ATTACHMENTS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x2</integer>
+ <key>description</key>
+ <string>The agent has attachments.</string>
+ </map>
+ <key>AGENT_AUTOPILOT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x2000</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>AGENT_AWAY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x40</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>AGENT_BUSY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x800</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>AGENT_BY_LEGACY_NAME</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x1</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>AGENT_BY_USERNAME</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x10</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>AGENT_CROUCHING</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x400</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>AGENT_FLYING</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x1</integer>
+ <key>description</key>
+ <string>The agent is flying.</string>
+ </map>
+ <key>AGENT_IN_AIR</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x100</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>AGENT_LIST_PARCEL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>description</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>description</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>description</key>
+ <string>All agents in the region.</string>
+ </map>
+ <key>AGENT_MOUSELOOK</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x8</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>AGENT_ON_OBJECT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x20</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>AGENT_SCRIPTED</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x4</integer>
+ <key>description</key>
+ <string>The agent has scripted attachments.</string>
+ </map>
+ <key>AGENT_SITTING</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x10</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>AGENT_TYPING</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x200</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>AGENT_WALKING</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x80</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>ALL_SIDES</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>-1</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>ANIM_ON</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x1</integer>
+ <key>description</key>
+ <string>Texture animation is on.</string>
+ </map>
+ <key>ATTACH_BACK</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>9</integer>
+ <key>description</key>
+ <string>Attach to the avatar back.</string>
+ </map>
+ <key>ATTACH_BELLY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>28</integer>
+ <key>description</key>
+ <string>Attach to the avatar belly.</string>
+ </map>
+ <key>ATTACH_CHEST</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>description</key>
+ <string>Attach to the avatar chest.</string>
+ </map>
+ <key>ATTACH_CHIN</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>12</integer>
+ <key>description</key>
+ <string>Attach to the avatar chin.</string>
+ </map>
+ <key>ATTACH_HEAD</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>description</key>
+ <string>Attach to the avatar head.</string>
+ </map>
+ <key>ATTACH_HUD_BOTTOM</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>37</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>ATTACH_HUD_BOTTOM_LEFT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>36</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>ATTACH_HUD_BOTTOM_RIGHT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>38</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>ATTACH_HUD_CENTER_1</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>35</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>ATTACH_HUD_CENTER_2</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>31</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>ATTACH_HUD_TOP_CENTER</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>33</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>ATTACH_HUD_TOP_LEFT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>34</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>ATTACH_HUD_TOP_RIGHT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>32</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>ATTACH_LEAR</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>13</integer>
+ <key>description</key>
+ <string>Attach to the avatar left ear.</string>
+ </map>
+ <key>ATTACH_LEFT_PEC</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>29</integer>
+ <key>description</key>
+ <string>Attach to the avatar left pectoral.</string>
+ </map>
+ <key>ATTACH_LEYE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>15</integer>
+ <key>description</key>
+ <string>Attach to the avatar left eye.</string>
+ </map>
+ <key>ATTACH_LFOOT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>7</integer>
+ <key>description</key>
+ <string>Attach to the avatar left foot.</string>
+ </map>
+ <key>ATTACH_LHAND</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>5</integer>
+ <key>description</key>
+ <string>Attach to the avatar left hand.</string>
+ </map>
+ <key>ATTACH_LHIP</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>25</integer>
+ <key>description</key>
+ <string>Attach to the avatar left hip.</string>
+ </map>
+ <key>ATTACH_LLARM</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>21</integer>
+ <key>description</key>
+ <string>Attach to the avatar left lower arm.</string>
+ </map>
+ <key>ATTACH_LLLEG</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>27</integer>
+ <key>description</key>
+ <string>Attach to the avatar lower left leg.</string>
+ </map>
+ <key>ATTACH_LPEC</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>30</integer>
+ <key>description</key>
+ <string>Attach to the avatar 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>description</key>
+ <string>Attach to the avatar left shoulder.</string>
+ </map>
+ <key>ATTACH_LUARM</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>20</integer>
+ <key>description</key>
+ <string>Attach to the avatar left upper arm.</string>
+ </map>
+ <key>ATTACH_LULEG</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>27</integer>
+ <key>description</key>
+ <string>Attach to the avatar lower upper leg.</string>
+ </map>
+ <key>ATTACH_MOUTH</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>11</integer>
+ <key>description</key>
+ <string>Attach to the avatar mouth.</string>
+ </map>
+ <key>ATTACH_NOSE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>17</integer>
+ <key>description</key>
+ <string>Attach to the avatar nose.</string>
+ </map>
+ <key>ATTACH_PELVIS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>10</integer>
+ <key>description</key>
+ <string>Attach to the avatar pelvis.</string>
+ </map>
+ <key>ATTACH_REAR</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>14</integer>
+ <key>description</key>
+ <string>Attach to the avatar right ear.</string>
+ </map>
+ <key>ATTACH_REYE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>16</integer>
+ <key>description</key>
+ <string>Attach to the avatar right eye.</string>
+ </map>
+ <key>ATTACH_RFOOT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>8</integer>
+ <key>description</key>
+ <string>Attach to the avatar right foot.</string>
+ </map>
+ <key>ATTACH_RHAND</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>6</integer>
+ <key>description</key>
+ <string>Attach to the avatar right hand.</string>
+ </map>
+ <key>ATTACH_RHIP</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>22</integer>
+ <key>description</key>
+ <string>Attach to the avatar right hip.</string>
+ </map>
+ <key>ATTACH_RIGHT_PEC</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>30</integer>
+ <key>description</key>
+ <string>Attach to the avatar right pectoral.</string>
+ </map>
+ <key>ATTACH_RLARM</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>19</integer>
+ <key>description</key>
+ <string>Attach to the avatar right lower arm.</string>
+ </map>
+ <key>ATTACH_RLLEG</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>24</integer>
+ <key>description</key>
+ <string>Attach to the avatar right lower leg.</string>
+ </map>
+ <key>ATTACH_RPEC</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>29</integer>
+ <key>description</key>
+ <string>Attach to the avatar 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>description</key>
+ <string>Attach to the avatar right shoulder.</string>
+ </map>
+ <key>ATTACH_RUARM</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>18</integer>
+ <key>description</key>
+ <string>Attach to the avatar right upper arm.</string>
+ </map>
+ <key>ATTACH_RULEG</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>23</integer>
+ <key>description</key>
+ <string>Attach to the avatar right upper leg.</string>
+ </map>
+ <key>AVOID_CHARACTERS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>AVOID_DYNAMIC_OBSTACLES</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>CAMERA_ACTIVE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>12</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>CAMERA_BEHINDNESS_ANGLE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>8</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>CAMERA_BEHINDNESS_LAG</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>9</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>CAMERA_DISTANCE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>7</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>CAMERA_FOCUS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>17</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>CAMERA_FOCUS_LAG</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>6</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>CAMERA_FOCUS_LOCKED</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>22</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>CAMERA_FOCUS_OFFSET</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>CAMERA_FOCUS_THRESHOLD</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>11</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>CAMERA_PITCH</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>CAMERA_POSITION</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>13</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>CAMERA_POSITION_LAG</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>6</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>CAMERA_POSITION_LOCKED</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>22</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>CAMERA_POSITION_THRESHOLD</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>10</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>CHANGED_ALLOWED_DROP</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x40</integer>
+ <key>description</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>
+ <integer>0x2</integer>
+ <key>description</key>
+ <string>The object colour has changed.</string>
+ </map>
+ <key>CHANGED_INVENTORY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x1</integer>
+ <key>description</key>
+ <string>The object inventory has changed.</string>
+ </map>
+ <key>CHANGED_LINK</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x20</integer>
+ <key>description</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>description</key>
+ <string/>
+ </map>
+ <key>CHANGED_OWNER</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x80</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>CHANGED_REGION</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x100</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>CHANGED_REGION_START</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x400</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>CHANGED_SCALE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x8</integer>
+ <key>description</key>
+ <string>The object scale (size) has changed.</string>
+ </map>
+ <key>CHANGED_SHAPE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x4</integer>
+ <key>description</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>
+ <integer>0x200</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>CHANGED_TEXTURE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x10</integer>
+ <key>description</key>
+ <string>The texture offset, scale rotation, or simply the object texture has changed.</string>
+ </map>
+ <key>CHARACTER_AVOIDANCE_MODE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>5</integer>
+ <key>description</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>
+ <integer>0x01</integer>
+ <key>description</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>description</key>
+ <string/>
+ </map>
+ <key>CHARACTER_CMD_STOP</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x00</integer>
+ <key>description</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>description</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>description</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>description</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>description</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>description</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>description</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>description</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>description</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>description</key>
+ <string>Set collision capsule radius.</string>
+ </map>
+ <key>CHARACTER_TYPE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>6</integer>
+ <key>description</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>description</key>
+ <string/>
+ </map>
+ <key>CHARACTER_TYPE_B</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>CHARACTER_TYPE_C</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>CHARACTER_TYPE_D</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>CHARACTER_TYPE_NONE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>CLICK_ACTION_BUY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>description</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>description</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>description</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>description</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>description</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>description</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>description</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>description</key>
+ <string>When the prim is clicked, touch events are triggered".</string>
+ </map>
+ <key>CONTENT_TYPE_HTML</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>description</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_TEXT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>description</key>
+ <string>"text/plain"</string>
+ </map>
+ <key>CONTROL_BACK</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x2</integer>
+ <key>description</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>
+ <integer>0x20</integer>
+ <key>description</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>
+ <integer>0x1</integer>
+ <key>description</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>
+ <integer>0x10000000</integer>
+ <key>description</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>
+ <integer>0x4</integer>
+ <key>description</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>
+ <integer>0x40000000</integer>
+ <key>description</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>
+ <integer>0x8</integer>
+ <key>description</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>
+ <integer>0x100</integer>
+ <key>description</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>
+ <integer>0x200</integer>
+ <key>description</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>
+ <integer>0x10</integer>
+ <key>description</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>description</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>description</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>description</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>description</key>
+ <string/>
+ </map>
+ <key>DATA_RATING</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>description</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>description</key>
+ <string/>
+ </map>
+ <key>DATA_SIM_RATING</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>7</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>DATA_SIM_STATUS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>6</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>DEBUG_CHANNEL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2147483647</integer>
+ <key>description</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>description</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>description</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>\n\n\n</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>ESTATE_ACCESS_ALLOWED_AGENT_ADD</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>description</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>description</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>description</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>description</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>description</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>description</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>description</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>description</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>description</key>
+ <string>Used with llSetPhysicsMaterial to enable the friction value. Must be between 0.0 and 255.0</string>
+ </map>
+ <key>GET_NAV_POINT_RADIUS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>GRAVITY_MULTIPLIER</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>8</integer>
+ <key>description</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>description</key>
+ <string/>
+ </map>
+ <key>HTTP_BODY_MAXLENGTH</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>HTTP_BODY_TRUNCATED</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>HTTP_METHOD</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>HTTP_MIMETYPE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>HTTP_VERBOSE_THROTTLE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>HTTP_VERIFY_CERT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>INVENTORY_ALL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>-1</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>INVENTORY_ANIMATION</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>20</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>INVENTORY_BODYPART</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>13</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>INVENTORY_CLOTHING</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>5</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>INVENTORY_GESTURE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>21</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>INVENTORY_LANDMARK</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>INVENTORY_NONE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>-1</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>INVENTORY_NOTECARD</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>7</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>INVENTORY_OBJECT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>6</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>INVENTORY_SCRIPT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>10</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>INVENTORY_SOUND</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>INVENTORY_TEXTURE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>KFM_CMD_PAUSE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>description</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>description</key>
+ <string>For use with KFM_COMMAND.</string>
+ </map>
+ <key>KFM_CMD_STOP</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>description</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>description</key>
+ <string/>
+ </map>
+ <key>KFM_DATA</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>KFM_FORWARD</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>description</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>description</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>description</key>
+ <string/>
+ </map>
+ <key>KFM_PING_PONG</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>description</key>
+ <string>For use with KFM_MODE.</string>
+ </map>
+ <key>KFM_REVERSE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>description</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>description</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>description</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>description</key>
+ <string>Use a large brush size.</string>
+ </map>
+ <key>LAND_LEVEL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>description</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>description</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>description</key>
+ <string>Use a medium brush size.</string>
+ </map>
+ <key>LAND_NOISE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>LAND_RAISE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>description</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>description</key>
+ <string/>
+ </map>
+ <key>LAND_SMALL_BRUSH</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>description</key>
+ <string>Use a small brush size.</string>
+ </map>
+ <key>LAND_SMOOTH</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>LINK_ALL_CHILDREN</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>-3</integer>
+ <key>description</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>description</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>0</integer>
+ <key>description</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>description</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>description</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>description</key>
+ <string/>
+ </map>
+ <key>LIST_STAT_MAX</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>LIST_STAT_MEAN</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>LIST_STAT_MEDIAN</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>LIST_STAT_MIN</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>LIST_STAT_NUM_COUNT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>8</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>LIST_STAT_RANGE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>LIST_STAT_STD_DEV</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>5</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>LIST_STAT_SUM</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>6</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>LIST_STAT_SUM_SQUARES</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>7</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>LOOP</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x2</integer>
+ <key>description</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>description</key>
+ <string/>
+ </map>
+ <key>MASK_EVERYONE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>MASK_GROUP</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>MASK_NEXT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>MASK_OWNER</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>description</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>description</key>
+ <string/>
+ </map>
+ <key>OBJECT_CHARACTER_TIME</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>17</integer>
+ <key>description</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>description</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>description</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>description</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>description</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>description</key>
+ <string>Gets an object's owner's key. If id is group owned, a NULL_KEY is returned.</string>
+ </map>
+ <key>OBJECT_PHYSICS_COST</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>16</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>OBJECT_POS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>description</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>description</key>
+ <string/>
+ </map>
+ <key>OBJECT_ROT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>description</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>description</key>
+ <string/>
+ </map>
+ <key>OBJECT_SCRIPT_MEMORY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>11</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>OBJECT_SCRIPT_TIME</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>12</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>OBJECT_SERVER_COST</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>14</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>OBJECT_STREAMING_COST</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>15</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>OBJECT_TOTAL_SCRIPT_COUNT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>10</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>OBJECT_UNKNOWN_DETAIL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>-1</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>OBJECT_VELOCITY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>5</integer>
+ <key>description</key>
+ <string>Gets the object's velocity.</string>
+ </map>
+ <key>PARCEL_COUNT_GROUP</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PARCEL_COUNT_OTHER</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PARCEL_COUNT_OWNER</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PARCEL_COUNT_SELECTED</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PARCEL_COUNT_TEMP</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>5</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PARCEL_COUNT_TOTAL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PARCEL_DETAILS_AREA</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>description</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>description</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>description</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>description</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>description</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>description</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>description</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>
+ <integer>0x08000000</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x4000000</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PARCEL_FLAG_ALLOW_CREATE_OBJECTS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x40</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PARCEL_FLAG_ALLOW_DAMAGE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x20</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PARCEL_FLAG_ALLOW_FLY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x1</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PARCEL_FLAG_ALLOW_GROUP_OBJECT_ENTRY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x10000000</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PARCEL_FLAG_ALLOW_GROUP_SCRIPTS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x2000000</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PARCEL_FLAG_ALLOW_LANDMARK</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x8</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PARCEL_FLAG_ALLOW_SCRIPTS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x2</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PARCEL_FLAG_ALLOW_TERRAFORM</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x10</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PARCEL_FLAG_LOCAL_SOUND_ONLY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x8000</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PARCEL_FLAG_RESTRICT_PUSHOBJECT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x200000</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PARCEL_FLAG_USE_ACCESS_GROUP</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x100</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PARCEL_FLAG_USE_ACCESS_LIST</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x200</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PARCEL_FLAG_USE_BAN_LIST</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x400</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PARCEL_FLAG_USE_LAND_PASS_LIST</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x800</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PARCEL_MEDIA_COMMAND_AGENT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>7</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PARCEL_MEDIA_COMMAND_AUTO_ALIGN</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>9</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PARCEL_MEDIA_COMMAND_DESC</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>12</integer>
+ <key>description</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>description</key>
+ <string/>
+ </map>
+ <key>PARCEL_MEDIA_COMMAND_LOOP_SET</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>13</integer>
+ <key>description</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>description</key>
+ <string/>
+ </map>
+ <key>PARCEL_MEDIA_COMMAND_PLAY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PARCEL_MEDIA_COMMAND_SIZE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>11</integer>
+ <key>description</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>description</key>
+ <string/>
+ </map>
+ <key>PARCEL_MEDIA_COMMAND_TEXTURE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PARCEL_MEDIA_COMMAND_TIME</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>6</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PARCEL_MEDIA_COMMAND_TYPE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>10</integer>
+ <key>description</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>description</key>
+ <string/>
+ </map>
+ <key>PARCEL_MEDIA_COMMAND_URL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>5</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PASSIVE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x4</integer>
+ <key>description</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>description</key>
+ <string/>
+ </map>
+ <key>PAY_DEFAULT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>-2</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PAY_HIDE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>-1</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PAYMENT_INFO_ON_FILE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PAYMENT_INFO_USED</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PERM_ALL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x7FFFFFFF</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PERM_COPY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x8000</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PERM_MODIFY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x4000</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PERM_MOVE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x80000</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PERM_TRANSFER</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x2000</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PERMISSION_ATTACH</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x20</integer>
+ <key>description</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>
+ <integer>0x100</integer>
+ <key>description</key>
+ <string>(not yet implemented)</string>
+ </map>
+ <key>PERMISSION_CHANGE_LINKS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x80</integer>
+ <key>description</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>
+ <integer>0x200</integer>
+ <key>description</key>
+ <string>(not yet implemented)</string>
+ </map>
+ <key>PERMISSION_CONTROL_CAMERA</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x800</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PERMISSION_DEBIT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x2</integer>
+ <key>description</key>
+ <string>If this permission is enabled, the object can successfully call llGiveMoney or llTransferLindenDollars to debit the owners account.</string>
+ </map>
+ <key>PERMISSION_RELEASE_OWNERSHIP</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x40</integer>
+ <key>description</key>
+ <string>(not yet implemented)</string>
+ </map>
+ <key>PERMISSION_REMAP_CONTROLS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x8</integer>
+ <key>description</key>
+ <string>(not yet implemented)</string>
+ </map>
+ <key>PERMISSION_TAKE_CONTROLS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x4</integer>
+ <key>description</key>
+ <string>If this permission enabled, the object can successfully call the llTakeControls libray call.</string>
+ </map>
+ <key>PERMISSION_TRACK_CAMERA</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x400</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PERMISSION_TRIGGER_ANIMATION</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x10</integer>
+ <key>description</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>description</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>description</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>
+ <integer>0x8</integer>
+ <key>description</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>description</key>
+ <string/>
+ </map>
+ <key>PRIM_BUMP_BLOBS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>12</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_BUMP_BRICKS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>5</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_BUMP_BRIGHT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_BUMP_CHECKER</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>6</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_BUMP_CONCRETE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>7</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_BUMP_DARK</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_BUMP_DISKS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>10</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_BUMP_GRAVEL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>11</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_BUMP_LARGETILE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>14</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_BUMP_NONE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_BUMP_SHINY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>19</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_BUMP_SIDING</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>13</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_BUMP_STONE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>9</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_BUMP_STUCCO</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>15</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_BUMP_SUCTION</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>16</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_BUMP_TILE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>8</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_BUMP_WEAVE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>17</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_BUMP_WOOD</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_CAST_SHADOWS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>24</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_COLOR</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>18</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_DESC</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>28</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_FLEXIBLE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>21</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_FULLBRIGHT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>20</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_GLOW</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>25</integer>
+ <key>description</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>
+ <integer>0x10</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_HOLE_DEFAULT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x00</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_HOLE_SQUARE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x20</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_HOLE_TRIANGLE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x30</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_LINK_TARGET</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>34</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_MATERIAL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_MATERIAL_FLESH</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_MATERIAL_GLASS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_MATERIAL_LIGHT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>7</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_MATERIAL_METAL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_MATERIAL_PLASTIC</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>5</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_MATERIAL_RUBBER</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>6</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_MATERIAL_STONE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_MATERIAL_WOOD</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_MEDIA_ALT_IMAGE_ENABLE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>description</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>description</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>description</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>description</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>description</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>description</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>description</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>description</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>description</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>description</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>description</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>description</key>
+ <string>String. Gets/Sets the home URL for the chosen face. 1024 characters maximum.</string>
+ </map>
+ <key>PRIM_MEDIA_PERM_ANYONE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_MEDIA_PERM_GROUP</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_MEDIA_PERM_NONE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_MEDIA_PERM_OWNER</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_MEDIA_PERMS_CONTROL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>14</integer>
+ <key>description</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>description</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>description</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>description</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>description</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>description</key>
+ <string/>
+ </map>
+ <key>PRIM_OMEGA</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>32</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_PHANTOM</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>5</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_PHYSICS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_PHYSICS_SHAPE_CONVEX</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>description</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>description</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>description</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>description</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>description</key>
+ <string/>
+ </map>
+ <key>PRIM_POS_LOCAL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>33</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_POSITION</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>6</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_ROT_LOCAL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>29</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_ROTATION</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>8</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_SCULPT_FLAG_INVERT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>64</integer>
+ <key>description</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>description</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>description</key>
+ <string/>
+ </map>
+ <key>PRIM_SCULPT_TYPE_MASK</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>7</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_SCULPT_TYPE_PLANE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_SCULPT_TYPE_SPHERE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_SCULPT_TYPE_TORUS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_SHINY_HIGH</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_SHINY_LOW</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_SHINY_MEDIUM</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_SHINY_NONE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_SIZE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>7</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_SLICE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>35</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_TEMP_ON_REZ</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_TEXGEN</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>22</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_TEXGEN_DEFAULT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_TEXGEN_PLANAR</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_TEXT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>26</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_TEXTURE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>17</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_TYPE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>9</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_TYPE_BOX</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_TYPE_CYLINDER</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_TYPE_PRISM</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_TYPE_RING</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>6</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_TYPE_SCULPT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>7</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_TYPE_SPHERE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_TYPE_TORUS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PRIM_TYPE_TUBE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>5</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PROFILE_NONE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>description</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>description</key>
+ <string>Enables memory profiling</string>
+ </map>
+ <key>PSYS_PART_BOUNCE_MASK</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x4</integer>
+ <key>description</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>
+ <integer>0x100</integer>
+ <key>description</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>description</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>description</key>
+ <string>A vector &lt;r, g, b&gt; which determines the ending colour of the object.</string>
+ </map>
+ <key>PSYS_PART_END_SCALE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>6</integer>
+ <key>description</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>description</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>
+ <integer>0x10</integer>
+ <key>description</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>
+ <integer>0x20</integer>
+ <key>description</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>
+ <integer>0x1</integer>
+ <key>description</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>
+ <integer>0x2</integer>
+ <key>description</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>description</key>
+ <string>Age in seconds of a particle at which it dies.</string>
+ </map>
+ <key>PSYS_PART_START_ALPHA</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>description</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>description</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_SCALE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>5</integer>
+ <key>description</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>
+ <integer>0x80</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PSYS_PART_TARGET_POS_MASK</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x40</integer>
+ <key>description</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>
+ <integer>0x8</integer>
+ <key>description</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>description</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>description</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>description</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>description</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>description</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>description</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>description</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>description</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>description</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>description</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>description</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>description</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>description</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>
+ <integer>0x04</integer>
+ <key>description</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>
+ <integer>0x08</integer>
+ <key>description</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>
+ <integer>0x10</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>PSYS_SRC_PATTERN_DROP</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x01</integer>
+ <key>description</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>
+ <integer>0x02</integer>
+ <key>description</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>description</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>description</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>
+ <integer>0x07</integer>
+ <key>description</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>
+ <integer>0x08</integer>
+ <key>description</key>
+ <string>Triggered when an llEvade character switches from hiding to running</string>
+ </map>
+ <key>PU_FAILURE_INVALID_GOAL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x03</integer>
+ <key>description</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>
+ <integer>0x02</integer>
+ <key>description</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>
+ <integer>0x09</integer>
+ <key>description</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>
+ <integer>0x06</integer>
+ <key>description</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>description</key>
+ <string/>
+ </map>
+ <key>PU_FAILURE_TARGET_GONE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x05</integer>
+ <key>description</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>
+ <integer>0x04</integer>
+ <key>description</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>
+ <integer>0x01</integer>
+ <key>description</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>
+ <integer>0x00</integer>
+ <key>description</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>description</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>description</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>description</key>
+ <string/>
+ </map>
+ <key>PURSUIT_INTERCEPT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>description</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>description</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>description</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>description</key>
+ <string/>
+ </map>
+ <key>RC_DETECT_PHANTOM</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>RC_GET_LINK_NUM</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>RC_GET_NORMAL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>RC_GET_ROOT_KEY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>RC_MAX_HITS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>RC_REJECT_AGENTS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>RC_REJECT_LAND</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>8</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>RC_REJECT_NONPHYSICAL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>4</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>RC_REJECT_PHYSICAL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>RC_REJECT_TYPES</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>RCERR_CAST_TIME_EXCEEDED</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>-3</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>RCERR_SIM_PERF_LOW</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>-2</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>RCERR_UNKNOWN</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>-1</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>REGION_FLAG_ALLOW_DAMAGE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x1</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>REGION_FLAG_ALLOW_DIRECT_TELEPORT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x100000</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>REGION_FLAG_BLOCK_FLY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x80000</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>REGION_FLAG_BLOCK_TERRAFORM</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x40</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>REGION_FLAG_DISABLE_COLLISIONS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x1000</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>REGION_FLAG_DISABLE_PHYSICS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x4000</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>REGION_FLAG_FIXED_SUN</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x10</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>REGION_FLAG_RESTRICT_PUSHOBJECT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x400000</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>REGION_FLAG_SANDBOX</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x100</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>REMOTE_DATA_CHANNEL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>REMOTE_DATA_REPLY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>REMOTE_DATA_REQUEST</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>REQUIRE_LINE_OF_SIGHT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>description</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>description</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>
+ <integer>0x4</integer>
+ <key>description</key>
+ <string>Play animation in reverse direction.</string>
+ </map>
+ <key>ROTATE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x20</integer>
+ <key>description</key>
+ <string>Animate texture rotation.</string>
+ </map>
+ <key>SCALE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x40</integer>
+ <key>description</key>
+ <string>Animate the texture scale.</string>
+ </map>
+ <key>SCRIPTED</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x8</integer>
+ <key>description</key>
+ <string>Scripted in-world objects.</string>
+ </map>
+ <key>SMOOTH</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x10</integer>
+ <key>description</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>description</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>description</key>
+ <string>Controls whether the object can be grabbed.
+ A grab is the default action when in third person, and is available as the hand tool in build mode.
+ This is useful for physical objects that you don't want other people to be able to trivially disturb.
+ The default is FALSE</string>
+ </map>
+ <key>STATUS_BLOCK_GRAB_OBJECT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1024</integer>
+ <key>description</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>description</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>
+ <integer>0x200</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>STATUS_DIE_AT_EDGE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x80</integer>
+ <key>description</key>
+ <string>Controls whether the object is returned to the owners inventory if it wanders off the edge of the world. It is useful to set this status TRUE for things like bullets or rockets. The default is TRUE</string>
+ </map>
+ <key>STATUS_INTERNAL_ERROR</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1999</integer>
+ <key>description</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>description</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>description</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>description</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>description</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>
+ <integer>0x10</integer>
+ <key>description</key>
+ <string>Controls/indicates whether the object collides or not.
+ Setting the value to TRUE makes the object non-colliding with
+ all objects. It is a good idea to use this for most objects
+ that move or rotate, but are non-physical. It is also
+ useful for simulating volumetric lighting. The default is FALSE.</string>
+ </map>
+ <key>STATUS_PHYSICS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x1</integer>
+ <key>description</key>
+ <string>Controls/indicates whether the object moves physically.
+ This controls the same flag that the UI check-box for Physical controls. The default is FALSE.</string>
+ </map>
+ <key>STATUS_RETURN_AT_EDGE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x100</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>STATUS_ROTATE_X</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x2</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>STATUS_ROTATE_Y</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x4</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>STATUS_ROTATE_Z</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x8</integer>
+ <key>description</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>
+ <integer>0x20</integer>
+ <key>description</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>description</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>description</key>
+ <string>Whitelist Failed.</string>
+ </map>
+ <key>STRING_TRIM</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x03</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>STRING_TRIM_HEAD</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x01</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>STRING_TRIM_TAIL</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x02</integer>
+ <key>description</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>description</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>description</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>description</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>description</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>description</key>
+ <string/>
+ </map>
+ <key>TOUCH_INVALID_FACE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0xFFFFFFFF</integer>
+ <key>description</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>description</key>
+ <string/>
+ </map>
+ <key>TOUCH_INVALID_VECTOR</key>
+ <map>
+ <key>type</key>
+ <string>vector</string>
+ <key>value</key>
+ <string>0.0, 0.0, 0.0</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>TRAVERSAL_TYPE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>7</integer>
+ <key>description</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>description</key>
+ <string/>
+ </map>
+ <key>TRAVERSAL_TYPE_NONE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>TRAVERSAL_TYPE_SLOW</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>TRUE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>description</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>description</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>description</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>description</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>description</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>description</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>description</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>description</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>description</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>description</key>
+ <string/>
+ </map>
+ <key>URL_REQUEST_GRANTED</key>
+ <map>
+ <key>type</key>
+ <string>string</string>
+ <key>value</key>
+ <string>URL_REQUEST_GRANTED</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>32</integer>
+ <key>description</key>
+ <string>A slider between minimum (0.0) and maximum (1.0) deflection of angular orientation. That is, its 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>description</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>description</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>description</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>description</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>description</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>description</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>description</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>description</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>description</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>
+ <integer>0x200</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x10</integer>
+ <key>description</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>
+ <integer>0x8</integer>
+ <key>description</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>
+ <integer>0x20</integer>
+ <key>description</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>
+ <integer>0x4</integer>
+ <key>description</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>
+ <integer>0x40</integer>
+ <key>description</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>
+ <integer>0x2</integer>
+ <key>description</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>
+ <integer>0x100</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>VEHICLE_FLAG_MOUSELOOK_STEER</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x80</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>VEHICLE_FLAG_NO_DEFLECTION_UP</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x1</integer>
+ <key>description</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>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0x1</integer>
+ <key>description</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>description</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>description</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>description</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>description</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>description</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>description</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>description</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>description</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>description</key>
+ <string/>
+ </map>
+ <key>VEHICLE_LINEAR_MOTOR_TIMESCALE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>30</integer>
+ <key>description</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>description</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>description</key>
+ <string>Uses linear deflection for lift, no hover, and banking to turn.
+ // very little friction along forward-back axis
+ llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, &lt;200, 10, 5&gt; );
+ // uniform angular friction
+ llSetVehicleFloatParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, 20 );
+ // linear motor
+ llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
+ llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 2 );
+ llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 60 );
+ // angular motor
+ llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
+ llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 4 );
+ llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 8 );
+ // no hover
+ llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 0 );
+ llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 0.5 );
+ llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 1000 );
+ llSetVehicleFloatParam( VEHICLE_BUOYANCY, 0 );
+ // linear deflection
+ llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0.5 );
+ llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 0.5 );
+ // angular deflection
+ llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 1.0 );
+ llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 2.0 );
+ // vertical attractor
+ llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 0.9 );
+ llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 2 );
+ // banking
+ llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, 1 );
+ llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 0.7 );
+ llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 2 );
+ // default rotation of local frame
+ llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, &lt;0, 0, 0, 1&gt; );
+ // remove these flags
+ llRemoveVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP
+ | VEHICLE_FLAG_HOVER_WATER_ONLY
+ | VEHICLE_FLAG_HOVER_TERRAIN_ONLY
+ | VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT
+ | VEHICLE_FLAG_HOVER_UP_ONLY
+ | VEHICLE_FLAG_LIMIT_MOTOR_UP );
+ // set these flags
+ llSetVehicleFlags( VEHICLE_FLAG_LIMIT_ROLL_ONLY );</string>
+ </map>
+ <key>VEHICLE_TYPE_BALLOON</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>5</integer>
+ <key>description</key>
+ <string>Hover, and friction, but no deflection.
+ // uniform linear friction
+ llSetVehicleFloatParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, 5 );
+ // uniform angular friction
+ llSetVehicleFloatParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, 10 );
+ // linear motor
+ llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
+ llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 5 );
+ llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 60 );
+ // angular motor
+ llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
+ llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 6 );
+ llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 10 );
+ // hover
+ llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 5 );
+ llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 0.8 );
+ llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 10 );
+ llSetVehicleFloatParam( VEHICLE_BUOYANCY, 1 );
+ // no linear deflection
+ llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0 );
+ llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 5 );
+ // no angular deflection
+ llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0 );
+ llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 5 );
+ // no vertical attractor
+ llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 1 );
+ llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 1000 );
+ // no banking
+ llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, 0 );
+ llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 0.7 );
+ llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 5 );
+ // default rotation of local frame
+ llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, &lt;0, 0, 0, 1&gt; );
+ // remove all flags
+ llRemoveVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP
+ | VEHICLE_FLAG_HOVER_WATER_ONLY
+ | VEHICLE_FLAG_LIMIT_ROLL_ONLY
+ | VEHICLE_FLAG_HOVER_TERRAIN_ONLY
+ | VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT
+ | VEHICLE_FLAG_HOVER_UP_ONLY
+ | VEHICLE_FLAG_LIMIT_MOTOR_UP );</string>
+ </map>
+ <key>VEHICLE_TYPE_BOAT</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>3</integer>
+ <key>description</key>
+ <string>Hovers over water with lots of friction and some anglar deflection.
+ // least for forward-back, most friction for up-down
+ llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, &lt;10, 3, 2&gt; );
+ // uniform angular friction (setting it as a scalar rather than a vector)
+ llSetVehicleFloatParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, 10 );
+ // linear motor wins after about five seconds, decays after about a minute
+ llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
+ llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 5 );
+ llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 60 );
+ // angular motor wins after four seconds, decays in same amount of time
+ llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
+ llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 4 );
+ llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 4 );
+ // hover
+ llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 0 );
+ llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 0.5 );
+ llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 2.0 );
+ llSetVehicleFloatParam( VEHICLE_BUOYANCY, 1 );
+ // halfway linear deflection with timescale of 3 seconds
+ llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0.5 );
+ llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 3 );
+ // angular deflection
+ llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0.5 );
+ llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 5 );
+ // somewhat bounscy vertical attractor
+ llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 0.5 );
+ llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 5 );
+ // weak negative damped banking
+ llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, -0.3 );
+ llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 0.8 );
+ llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 1 );
+ // default rotation of local frame
+ llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, &lt;0, 0, 0, 1&gt; );
+ // remove these flags
+ llRemoveVehicleFlags( VEHICLE_FLAG_HOVER_TERRAIN_ONLY
+ | VEHICLE_FLAG_LIMIT_ROLL_ONLY
+ | VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT);
+ // set these flags
+ llSetVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP
+ | VEHICLE_FLAG_HOVER_WATER_ONLY
+ | VEHICLE_FLAG_HOVER_UP_ONLY
+ | VEHICLE_FLAG_LIMIT_MOTOR_UP );</string>
+ </map>
+ <key>VEHICLE_TYPE_CAR</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>2</integer>
+ <key>description</key>
+ <string>Another vehicle that bounces along the ground but needs
+ the motors to be driven from external controls or
+ timer events.
+ // most friction for left-right, least for up-down
+ llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, &lt;100, 2, 1000&gt; );
+ // no angular friction
+ llSetVehicleVectorParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, &lt;1000, 1000, 1000&gt; );
+ // linear motor wins after about a second, decays after about a minute
+ llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
+ llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 1 );
+ llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 60 );
+ // angular motor wins after a second, decays in less time than that
+ llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
+ llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 1 );
+ llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 0.8 );
+ // no hover
+ llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 0 );
+ llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 0 );
+ llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 1000 );
+ llSetVehicleFloatParam( VEHICLE_BUOYANCY, 0 );
+ // maximum linear deflection with timescale of 2 seconds
+ llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 1 );
+ llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 2 );
+ // no angular deflection
+ llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0 );
+ llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 10 );
+ // critically damped vertical attractor
+ llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 1 );
+ llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 10 );
+ // weak negative critically damped banking
+ llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, -0.2 );
+ llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 1 );
+ llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 1 );
+ // default rotation of local frame
+ llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, &lt;0, 0, 0, 1&gt; );
+ // remove these flags
+ llRemoveVehicleFlags( VEHICLE_FLAG_HOVER_WATER_ONLY
+ | VEHICLE_FLAG_HOVER_TERRAIN_ONLY
+ | VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT);
+ // set these flags
+ llSetVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP
+ | VEHICLE_FLAG_LIMIT_ROLL_ONLY
+ | VEHICLE_FLAG_HOVER_UP_ONLY
+ | VEHICLE_FLAG_LIMIT_MOTOR_UP );</string>
+ </map>
+ <key>VEHICLE_TYPE_NONE</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>description</key>
+ <string/>
+ </map>
+ <key>VEHICLE_TYPE_SLED</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>1</integer>
+ <key>description</key>
+ <string>Simple vehicle that bumps along the ground,
+ and likes to move along its local x-axis.
+ // most friction for left-right, least for up-down
+ llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, &lt;30, 1, 1000&gt; );
+ // no angular friction
+ llSetVehicleVectorParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, &lt;1000, 1000, 1000&gt; );
+ // no linear motor
+ llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
+ llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 1000 );
+ llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 120 );
+ // no angular motor
+ llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
+ llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 1000 );
+ llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 120 );
+ // no hover (but with timescale of 10 sec if enabled)
+ llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 0 );
+ llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 10 );
+ llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 10 );
+ llSetVehicleFloatParam( VEHICLE_BUOYANCY, 0 );
+ // maximum linear deflection with timescale of 1 second
+ llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 1 );
+ llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 1 );
+ // no angular deflection
+ llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0 );
+ llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 10 );
+ // no vertical attractor (doesnt mind flipping over)
+ llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 1 );
+ llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 1000 );
+ // no banking
+ llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, 0 );
+ llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 1 );
+ llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 10 );
+ // default rotation of local frame
+ llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, &lt;0, 0, 0, 1&gt; );
+ // remove these flags
+ llRemoveVehicleFlags( VEHICLE_FLAG_HOVER_WATER_ONLY
+ | VEHICLE_FLAG_HOVER_TERRAIN_ONLY
+ | VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT
+ | VEHICLE_FLAG_HOVER_UP_ONLY );
+ // set these flags (the limit_roll flag will have no effect
+ // until banking is enabled, if ever)
+ llSetVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP
+ | VEHICLE_FLAG_LIMIT_ROLL_ONLY
+ | VEHICLE_FLAG_LIMIT_MOTOR_UP );</string>
+ </map>
+ <key>VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>36</integer>
+ <key>description</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>description</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>description</key>
+ <string/>
+ </map>
+ <key>WANDER_PAUSE_AT_WAYPOINTS</key>
+ <map>
+ <key>type</key>
+ <string>integer</string>
+ <key>value</key>
+ <integer>0</integer>
+ <key>description</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>description</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>description</key>
+ <string/>
+ </map>
+ </map>
+ <key>events</key>
+ <map>
+ <key>at_rot_target</key>
+ <map>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>name</key>
+ <string>TargetNumber</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>TargetRotation</string>
+ <key>type</key>
+ <string>rotation</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>CurrentRotation</string>
+ <key>type</key>
+ <string>rotation</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>description</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>name</key>
+ <string>TargetNumber</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>TargetPosition</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>CurrentPosition</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>description</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>name</key>
+ <string>AvatarID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>description</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>name</key>
+ <string>Changed</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>description</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>name</key>
+ <string>NumberOfCollisions</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>description</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>name</key>
+ <string>NumberOfCollisions</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>description</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>name</key>
+ <string>NumberOfCollisions</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>description</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>name</key>
+ <string>AvatarID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Levels</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Edges</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>description</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>name</key>
+ <string>RequestID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Data</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>description</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>name</key>
+ <string>Time</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Address</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Subject</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Body</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>NumberRemaining</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>description</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>name</key>
+ <string>HTTPRequestID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string>HTTP request id for response use, and function response identification.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>HTTPMethod</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string>GET, POST, or PUT</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Body</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string>Contents of the request.</string>
+ </map>
+ </array>
+ <key>description</key>
+ <string>Triggered when task receives an HTTP request.</string>
+ </map>
+ <key>http_response</key>
+ <map>
+ <key>arguments</key>
+ <array>
+ <map>
+ <key>name</key>
+ <string>HTTPRequestID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Status</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Metadata</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Body</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>description</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>name</key>
+ <string>Position</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>description</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>name</key>
+ <string>Position</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>description</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>name</key>
+ <string>Position</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>description</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>name</key>
+ <string>SendersLink</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Value</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Text</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>ID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>description</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>name</key>
+ <string>Channel</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Name</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>ID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Text</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>description</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>name</key>
+ <string>Payer</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Amount</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>description</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>
+ <array/>
+ <key>description</key>
+ <string>Triggered whenever an object with this script stops moving.</string>
+ </map>
+ <key>moving_start</key>
+ <map>
+ <key>arguments</key>
+ <array/>
+ <key>description</key>
+ <string>Triggered whenever an object with this script starts moving.</string>
+ </map>
+ <key>no_sensor</key>
+ <map>
+ <key>arguments</key>
+ <array/>
+ <key>description</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>
+ <array/>
+ <key>description</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>
+ <array/>
+ <key>description</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>name</key>
+ <string>RezzedObjectsID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>description</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>name</key>
+ <string>StartParameter</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>description</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>name</key>
+ <string>Type</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>One of the PU* (Path Update) constants.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Reserved</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>description</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>name</key>
+ <string>EventType</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>ChannelID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>MessageID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Sender</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Data</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Data</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>description</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>name</key>
+ <string>PermissionFlags</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>description</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>name</key>
+ <string>NumberDetected</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>description</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>
+ <array/>
+ <key>description</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>
+ <array/>
+ <key>description</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>
+ <array/>
+ <key>description</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>name</key>
+ <string>NumberOfTouches</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>description</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>name</key>
+ <string>NumberOfTouches</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>description</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>name</key>
+ <string>NumberOfTouches</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>description</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>name</key>
+ <string>RequestID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string>The key returned by an llTransferLindenDollar call to identify the specific request.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Success</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Boolean value, indicating success of the transfer</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Message</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string>Message which depends on the result of the transaction. If iSuccess is true, this will contain &lt;destination_id&gt;,&lt;amount&gt;</string>
+ </map>
+ </array>
+ <key>description</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>name</key>
+ <string>Value</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>An integer value.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the absolute (positive) version of Value.</string>
+ <key>description</key>
+ <string>Returns the absolute value 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>name</key>
+ <string>Value</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string>A floating-point value.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the arc-cosine of Value, in radians.</string>
+ <key>description</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>name</key>
+ <string>ID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string>Agent UUID to add to ban-list.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Hours</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string>Period, in hours, to ban the avatar for.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Add avatar ID to the land ban list, for a duration of Hours.</string>
+ <key>description</key>
+ <string>Adds agent ID to the parcel ban list for the specified number of hours. A value of 0 for hours will add the agent indefinitely.\n
+ The smallest value that Hours will accept is 0.01; anything smaller will be seen as 0.\n
+ When values that small are used, it seems the function bans in 30 second increments (Probably 36 second increments, as 0.01 of an hour is 36 seconds).\n
+ Residents teleporting to a parcel where they are banned will be redirected to a neighbouring parcel.</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>name</key>
+ <string>ID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string>Agent UUID to add to pass-list.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Hours</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string>Period, in hours, to allow the avatar for.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Add avatar ID to the land pass list, for a duration of Hours.</string>
+ <key>description</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>name</key>
+ <string>Volume</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string>The volume to set.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Adjusts the volume (0.0 - 1.0) of the currently playing attached sound started with llPlaySound or llLoopSound.</string>
+ <key>description</key>
+ <string>Adjusts the volume of the currently playing attached sound started with llPlaySound or llLoopSound.\n
+ This 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>name</key>
+ <string>Flag</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Boolean, If TRUE allows anyone to drop inventory on prim, FALSE revokes.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>If Flag == TRUE, users without object modify permissions can still drop inventory items into the object.</string>
+ <key>description</key>
+ <string>If Flag == TRUE, users that do not have 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>name</key>
+ <string>Rot1</string>
+ <key>type</key>
+ <string>rotation</string>
+ <key>description</key>
+ <string>First rotation.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Rot2</string>
+ <key>type</key>
+ <string>rotation</string>
+ <key>description</key>
+ <string>Second rotation.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the angle, in radians, between rotations Rot1 and Rot2.</string>
+ <key>description</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>name</key>
+ <string>Force</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string>Amount of impulse force to apply.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Local</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Boolean, if TRUE, force is treated as a local directional vector instead of region directional vector.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Applies impulse to object, in local coordinates if local == TRUE (if the script is physical).</string>
+ <key>description</key>
+ <string> Applies the Force in local coordinates if Local == TRUE. Otherwise the Force is applied in global coordinates.\n
+ This 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>name</key>
+ <string>Force</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string>Amount of impulse force to apply.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Local</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Boolean, if TRUE, uses local axis, if FALSE, uses region axis.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Applies rotational impulse to object, in local coordinates if local == TRUE (if the script is physical).</string>
+ <key>description</key>
+ <string>Applies a rotational impulse force in local coordinates if Local == TRUE. Otherwise the impulse is applied in global coordinates.\n
+ This 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>name</key>
+ <string>Value</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string>A floating-point value.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the arc-sine, in radians, of Value.</string>
+ <key>description</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>name</key>
+ <string>y</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string>A floating-point value.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>x</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string>A floating-point value.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the arc-tangent2 of y, x.</string>
+ <key>description</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>name</key>
+ <string>AttachmentPoint</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Attach to avatar at point AttachmentPoint, if task has permissions to do so.</string>
+ <key>description</key>
+ <string>Attach to avatar at point iAttachmentPoint.\n
+ Requires the PERMISSION_ATTACH runtime permission.</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>name</key>
+ <string>LinkNumber</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>If an avatar is sitting on the link's sit target, return the avatar's key, NULL_KEY otherwise.</string>
+ <key>description</key>
+ <string>Returns a key that is the UUID of the user seated on the specified link's prim.</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>
+ <array/>
+ <key>summary</key>
+ <string>If an avatar is seated on the sit target, returns the avatar's key, otherwise NULL_KEY.</string>
+ <key>description</key>
+ <string>If an avatar is sitting on the sit target, return the avatars key, NULL_KEY otherwise. This only will detect avatars sitting on sit targets defined with llSitTarget.</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>name</key>
+ <string>Forward</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string>Forward/Back part of rotation.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Left</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string>Left/Right part of rotation.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Up</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string>Up/Down part of rotation.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the rotation defined by the coordinate axes.</string>
+ <key>description</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>name</key>
+ <string>Axis</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string>Axis.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Angle</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string>Angle in radians.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the rotation that is a generated Angle about Axis.</string>
+ <key>description</key>
+ <string>Returns the rotation 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>name</key>
+ <string>Text</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns an integer that is the Text, Base64 decoded as a big endian integer.</string>
+ <key>description</key>
+ <string>Returns an integer that is the Text, Base64 decoded as a big endian integer.\n
+ Returns zero if Text is longer then 8 characters. If Text contains fewer then 6 characters, the return value is unpredictable.</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>name</key>
+ <string>Text</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Converts a Base64 string to a conventional string.\n
+ If the conversion creates any unprintable characters, they are converted to spaces.</string>
+ <key>description</key>
+ <string>Converts a Base 64 string to a conventional string.\n
+ If the conversion creates any unprintable characters, they are converted to question marks (this behaviour is different than llUnescapeURL's).</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>
+ <array/>
+ <key>summary</key>
+ <string>De-links all tasks in the link set (requires permission PERMISSION_CHANGE_LINKS be set).</string>
+ <key>description</key>
+ <string>De-links all objects in the link set. Requires the 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>name</key>
+ <string>LinkNumber</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>De-links the task with the given link number (requires permission PERMISSION_CHANGE_LINKS be set).</string>
+ <key>description</key>
+ <string>De-links the object 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>name</key>
+ <string>Start</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>End</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Options</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Casts a ray into the physics world from 'start' to 'end' and returns data according to details in Options.</string>
+ <key>description</key>
+ <string>Cast a ray from Start to End and report collision data for intersections with objects.\n
+ Return value: [UUID_1, {link_number_1}, hit_position_1, {hit_normal_1}, UUID_2, {link_number_2}, hit_position_2, {hit_normal_2}, ... , status_code] where {} indicates optional data.</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>name</key>
+ <string>Value</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns smallest integer value &gt;= Value.</string>
+ <key>description</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>
+ <array/>
+ <key>summary</key>
+ <string>Resets all camera parameters to default values and turns off scripted camera control.</string>
+ <key>description</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>name</key>
+ <string>Link</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Face</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Clears (deletes) the media and all parameters from the given Face on the linked prim.</string>
+ <key>description</key>
+ <string>Clears (deletes) the media and all parameters from the given from the given Face on the Linked prim(s).\n
+ Returns an integer that is a STATUS_* flag which details the success/failure of the operation.</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>name</key>
+ <string>Face</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Number of side to clear.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Clears (deletes) the media and all parameters from the given face.</string>
+ <key>description</key>
+ <string>Clears (deletes) the media and all parameters from the given Face.\n
+ Returns an integer that is a STATUS_* flag which details the success/failure of the operation.</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>name</key>
+ <string>ChannelID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Closes XML-RPC channel.</string>
+ <key>description</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>name</key>
+ <string>Offset</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the cloud density at the object's position + Offset.</string>
+ <key>description</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>name</key>
+ <string>ObjectName</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>ObjectID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Accept</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>
+ If TRUE, only accept collisions with ObjectName name AND ObjectID (either is optional), otherwise with objects not ObjectName AND ObjectID.
+ </string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>if Accept == TRUE, only accept collisions with specified name and id (either is optional), otherwise with objects not name or id.</string>
+ <key>description</key>
+ <string>If Accept == TRUE, only accept collisions with objects Name and ID, otherwise with objects not Name or ID.\n
+ Specify an empty string or NULL_KEY to not filter on the corresponding parameter.</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>name</key>
+ <string>ImpactSound</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>ImpactVolume</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Suppress default collision sounds, replace default impact sounds with ImpactSound (empty string to suppress).</string>
+ <key>description</key>
+ <string>Suppress default collision sounds, replace default impact sounds with ImpactSound, found in the object inventory.\n
+ Supply an empty string to suppress collision sounds.</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>name</key>
+ <string>ImpactSprite</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Suppress default collision sprites, replace default impact sprite with impact_sprite (empty string to just suppress).</string>
+ <key>description</key>
+ <string>Suppress default collision sprites, replace default impact sprite with ImpactSprite, found in the object inventory.\n
+ Supply an 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>name</key>
+ <string>Theta</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the cosine of Theta (Theta in radians).</string>
+ <key>description</key>
+ <string>Returns the cosine of Theta 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>name</key>
+ <string>Options</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Convert link-set to AI/Physics character.</string>
+ <key>description</key>
+ <string>Creates a path-finding entity, known as a "character", from the object containing the script. Required to activate use of path-finding functions.\n
+ Options is a list of key/value pairs.</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>name</key>
+ <string>TargetPrim</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string>Object UUID that is in the same region.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Parent</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>If FALSE, then TargetPrim becomes the root. If TRUE, then the script's object becomes the root.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Attempt to link task script is attached to and target (requires permission PERMISSION_CHANGE_LINKS be set). If parent == TRUE, task script is attached to is the root.</string>
+ <key>description</key>
+ <string>Attempt to link the object that the script is attached to and the target object.\n
+ 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>name</key>
+ <string>Text</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Creates a list, from a string of comma separated values.</string>
+ <key>description</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>
+ <array/>
+ <key>summary</key>
+ <string>Convert link-set from AI/Physics character to Physics object.</string>
+ <key>description</key>
+ <string>Convert the current link-set back to a standard object, removing all path-finding properties.</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>name</key>
+ <string>Source</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Start</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>End</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Removes the slice from start to end and returns the remainder of the list.</string>
+ <key>description</key>
+ <string>Remove a slice from the list and return the remainder, start and end are inclusive.\n
+ Using negative numbers for start and/or end causes the index to count backwards from the length of the list, so 0, -1 would delete the entire list.\n
+ If Start is larger than End the list deleted is the exclusion of the entries; so 6, 4 would delete the entire list except for the 5th. list entry.</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>name</key>
+ <string>Source</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Start</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>End</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Removes the indicated sub-string and returns the result.</string>
+ <key>description</key>
+ <string>Removes the indicated sub-string and returns the result, start and end are inclusive.\n
+ Using negative numbers for start and/or end causes the index to count backwards from the length of the string, so 0, -1 would delete the entire string.\n
+ If start is larger than end, the sub string is the exclusion of the entries; so 6, 4 would delete the entire string except for the 5th. character.</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>
+ <array/>
+ <key>summary</key>
+ <string>Remove the object containing the script from the avatar.</string>
+ <key>description</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>name</key>
+ <string>Number</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the grab offset of the user touching object (returns &lt;0,0,0&gt; if number is not a valid sensed object).</string>
+ <key>description</key>
+ <string>Returns the grab offset of detected object number.\n
+ Returns &lt;0.0, 0.0, 0.0&gt; if Number is not a valid 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>name</key>
+ <string>Number</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns TRUE if detected object is part of same group as owner.</string>
+ <key>description</key>
+ <string>Returns TRUE if detected object or agent Number has the same user group active as this object.\n
+ It will return FALSE if the object or agent is in the group, but the group is not active.</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>name</key>
+ <string>Number</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the key of detected object or avatar number (returns empty key if number is not a valid index).</string>
+ <key>description</key>
+ <string>Returns the key of detected object or avatar number.\n
+ Returns NULL_KEY if Number is not a valid index.</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>name</key>
+ <string>Number</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the link position of the triggered event for touches and collisions only.</string>
+ <key>description</key>
+ <string>Returns the link position of the triggered event for touches.\n
+ 0 for a non-linked object, 1 for the root of a linked object, 2 for the first child, etc.</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>name</key>
+ <string>Number</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the name of detected object or avatar number (returns empty string if number is not a valid index).</string>
+ <key>description</key>
+ <string>Returns the name of detected object number.\n
+ Returns empty string if number is not a valid index.</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>name</key>
+ <string>Number</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the key of detected object's owner (returns empty key if number is not a valid index).</string>
+ <key>description</key>
+ <string>Returns the key of detected number objects owner.\n
+ Returns invalid key if number is not a valid index.</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>name</key>
+ <string>Number</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the position of detected object or avatar number (returns &lt;0,0,0&gt; if number is not a valid index).</string>
+ <key>description</key>
+ <string>Returns the position of detected object Number.\n
+ Returns &lt;0.0, 0.0, 0.0&gt; if number is not a valid index.</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>name</key>
+ <string>Number</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the rotation of detected object or avatar number (returns &lt;0,0,0,1&gt; if number is not a valid index).</string>
+ <key>description</key>
+ <string>Returns the rotation of detected object or avatar number.\n
+ Returns &lt;0.0, 0.0, 0.0, 1.0&gt; if number is not a valid offset.</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>name</key>
+ <string>Index</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Index of detection information</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the surface bi-normal for a triggered touch event.</string>
+ <key>description</key>
+ <string>Returns a vector that is the surface bi-normal (tangent to the surface) where the touch event was triggered.</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>name</key>
+ <string>Index</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Index of detection information</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the index of the face where the avatar clicked in a triggered touch event.</string>
+ <key>description</key>
+ <string>Returns an integer that is the index of the face the avatar clicked on.</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>name</key>
+ <string>Index</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Index of detection information</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the surface normal for a triggered touch event.</string>
+ <key>description</key>
+ <string>Returns a vector that is the surface normal (perpendicular to the surface) where the touch event was triggered.</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>name</key>
+ <string>Index</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Index of detected information</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the position where the object was touched in a triggered touch event.</string>
+ <key>description</key>
+ <string>Returns a vector that is the position of the touched object, in region coordinates; unless it is a HUD, in which case it returns the position relative to the attach point.</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>name</key>
+ <string>Index</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Index of detection information</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the s and t coordinates, in the first two components of a vector, for the surface coordinates where the prim was touched in a triggered touch event.</string>
+ <key>description</key>
+ <string>Returns a vector that is the surface coordinates where the prim was touched.\n
+ The x and y vector positions contain the horizontal (s) and vertical (t) face coordinates respectively.\n
+ Each component is in the interval [0.0, 1.0].\n
+ TOUCH_INVALID_TEXCOORD is returned if the surface coordinates cannot be determined (e.g. when the viewer does not support this function).</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>name</key>
+ <string>Index</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Index of detection information</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the u and v coordinates in the first two components of a vector, for the texture coordinates where the prim was touched in a triggered touch event.</string>
+ <key>description</key>
+ <string>Returns a vector that is the texture coordinates for where the prim was touched. The x and y vector positions contain the u and v face coordinates respectively.\n
+ TOUCH_INVALID_TEXCOORD is returned if the touch UV coordinates cannot be determined (e.g. when the viewer does not support this function).</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>name</key>
+ <string>Number</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the type (AGENT, ACTIVE, PASSIVE, SCRIPTED) of detected object (returns 0 if number is not a valid index).</string>
+ <key>description</key>
+ <string>Returns the type (AGENT, ACTIVE, PASSIVE, SCRIPTED) of detected object number. Returns 0 if number is not a valid index.\n
+ Note that number is a bit-field, so comparisons need to be a bitwise checked. e.g.:\n
+ integer iType = llDetectedType(0);\n
+ if (iType &amp; AGENT)\n
+ {\n
+ // ...do stuff with the agent\n
+ }</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>name</key>
+ <string>Number</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the velocity of detected object number (returns &lt;0,0,0&gt; if number is not a valid sensed object).</string>
+ <key>description</key>
+ <string>Returns the velocity of the detected object number.\n
+ Returns&lt;0.0, 0.0, 0.0&gt; if number is not a valid offset.</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>name</key>
+ <string>AvatarID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Text</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Buttons</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Channel</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</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>
+ <key>description</key>
+ <string>Opens a "notify box" in the given avatars screen displaying the message.\n
+ Up to twelve buttons can be specified in a list of strings. When the user clicks a button, the name of the button is said on the specified channel.\n
+ Channels work just like llSay(), so channel 0 can be heard by everyone.\n
+ The chat originates at the object's position, not the avatar's position, even though it is said as the avatar (uses avatar's UUID and Name etc.).\n
+ Examples:\n
+ llDialog(who, "Are you a boy or a girl?", [ "Boy", "Girl" ], -4913);\n
+ llDialog(who, "This shows only an OK button.", [], -192);\n
+ llDialog(who, "This chats so you can hear it.", ["Hooray"], 0);</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>
+ <array/>
+ <key>summary</key>
+ <string>Deletes the object.</string>
+ <key>description</key>
+ <string>Delete the object which holds the script.</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>name</key>
+ <string>Source</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Separator</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the list as a single string, using Separator between the entries.</string>
+ <key>description</key>
+ <string>Write the list out as a single string, using Separator between values.</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>name</key>
+ <string>Position</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Direction</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Checks to see whether the border hit by Direction from Position is the edge of the world (has no neighboring region).</string>
+ <key>description</key>
+ <string>Returns TRUE if the line along Direction from Position hits the edge of the world in the current simulator, returns FALSE if that edge crosses into another simulator.</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>name</key>
+ <string>AvatarID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Ejects AvatarID from land that you own.</string>
+ <key>description</key>
+ <string>Ejects AvatarID from land that the object owner (group or resident) owns.</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>name</key>
+ <string>Address</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Subject</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Text</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Sends email to Address with Subject and Message.</string>
+ <key>description</key>
+ <string>Sends an 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>name</key>
+ <string>URL</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns an escaped/encoded version of url, replacing spaces with %20 etc.</string>
+ <key>description</key>
+ <string>Returns the string that is the URL-escaped version of URL (replacing spaces with %20, etc.).\n
+ This function returns the UTF-8 encoded escape codes for selected characters.</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>name</key>
+ <string>Vector</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the rotation representation of the Euler angles.</string>
+ <key>description</key>
+ <string>Returns the rotation represented by the Euler Angle.</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>name</key>
+ <string>TargetID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string>Agent or object to evade.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Options</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string>No options yet.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Evade a specified target.</string>
+ <key>description</key>
+ <string>Characters will (roughly) try to hide from their pursuers if there is a good hiding spot along their fleeing path. Hiding means no direct line of sight from the head of the character (centre of the top of its physics bounding box) to the head of its pursuer and no direct path between the two on the navigation-mesh.</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>name</key>
+ <string>Command</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Command to send.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Options</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string>Height for CHARACTER_CMD_JUMP.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Execute a character command.</string>
+ <key>description</key>
+ <string>Send a command to the path system.\n
+ Currently only supports stopping the current path-finding operation or causing the character to jump.</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>name</key>
+ <string>Value</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the positive version of Value.</string>
+ <key>description</key>
+ <string>Returns the absolute value 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>name</key>
+ <string>Source</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string>Global coordinate from which to flee.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Distance</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string>Distance in meters to flee from the source.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Options</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string>No options available at this time.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Flee from a point.</string>
+ <key>description</key>
+ <string>Directs a character (llCreateCharacter) to keep away from a defined position in the region or adjacent regions.</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>name</key>
+ <string>Value</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns largest integer value &lt;= Value.</string>
+ <key>description</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>name</key>
+ <string>Enable</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</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>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>If Enable is TRUE any avatar that sits on this object is forced into mouse-look mode.</string>
+ <key>description</key>
+ <string>After calling this function with Enable set to TRUE, any agent sitting down on the prim will be forced into mouse-look.\n
+ Just like llSitTarget, this changes a permanent property of the prim (not the object) and needs to be reset by calling this function with Enable set to FALSE in order to disable it.</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>name</key>
+ <string>Magnitude</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns a pseudo random number in the range [0, Magnitude] or [Magnitude, 0].</string>
+ <key>description</key>
+ <string>Returns a pseudo-random number between [0, Magnitude].</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>
+ <array/>
+ <key>summary</key>
+ <string>Returns the acceleration of the object relative to the region's axes.</string>
+ <key>description</key>
+ <string>Gets the acceleration of the object.</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>name</key>
+ <string>AvatarID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</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>
+ <key>description</key>
+ <string>Returns information about the given agent ID as a bit-field of agent info constants.</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>name</key>
+ <string>AvatarID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the language code of the preferred interface language of the avatar.</string>
+ <key>description</key>
+ <string>Returns a string that is the language code of the preferred interface language of the resident.</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>name</key>
+ <string>Scope</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>The scope (region, parcel, parcel same owner) to return agents for.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Options</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string>List of options to apply. Current unused.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Requests a list of agents currently in the region, limited by the scope parameter.</string>
+ <key>description</key>
+ <string>Returns a list [key UUID-0, key UUID-1, ..., key UUID-n] or [string error_msg] - returns avatar keys for all agents in the region limited to the area(s) specified by scope</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>name</key>
+ <string>AvatarID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</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>
+ <key>description</key>
+ <string>If the agent is in the same region as the object, returns the size of the avatar.</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>name</key>
+ <string>Face</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the alpha value of Face.</string>
+ <key>description</key>
+ <string>Returns the 'alpha' of the given face. If face is ALL_SIDES the value returned is the mean average of all faces.</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>
+ <array/>
+ <key>summary</key>
+ <string>Returns the script time in seconds and then resets the script timer to zero.</string>
+ <key>description</key>
+ <string>Gets the time in seconds since starting and resets the time 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>name</key>
+ <string>AvatarID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the name of the currently playing locomotion animation for the avatar id.</string>
+ <key>description</key>
+ <string>Returns the currently playing animation for the specified 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>name</key>
+ <string>AvatarID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns a list of keys of playing animations for an avatar.</string>
+ <key>description</key>
+ <string>Returns a list of keys of all playing animations for the specified avatar ID.</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>
+ <array/>
+ <key>summary</key>
+ <string>Returns the object's attachment point, or 0 if not attached.</string>
+ <key>description</key>
+ <string>Returns the object 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>name</key>
+ <string>ID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</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>
+ <key>description</key>
+ <string>Returns the bounding box around the object or avatar with the specified key (including any linked prims) relative to the\n
+ root prim, as a list: [ (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>
+ <array/>
+ <key>summary</key>
+ <string>Returns the current camera position for the agent the task has permissions for.</string>
+ <key>description</key>
+ <string>Returns the position of the camera, of the user that granted the script PERMISSION_TRACK_CAMERA. If no user has granted the permission, it returns ZERO_VECTOR.</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>
+ <array/>
+ <key>summary</key>
+ <string>Returns the current camera orientation for the agent the task has permissions for.</string>
+ <key>description</key>
+ <string>Returns the rotation of the camera, of the user who has granted this script PERMISSION_TRACK_CAMERA. If no user has granted the permission, it returns ZERO_ROTATION.\n
+ The key of the user whose camera is being tracked, can be obtained using llGetPermissionsKey.</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>
+ <array/>
+ <key>summary</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>
+ <key>description</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>name</key>
+ <string>Point</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string>A point in region-local space.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Options</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string>No options at this time.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Get the closest navigable point to the point provided.</string>
+ <key>description</key>
+ <string>The function accepts a point in region-local space (like all the other path-finding methods) and returns either an empty list or a list containing a single vector which is the closest point on the navigation-mesh 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>name</key>
+ <string>Face</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the color on Face.</string>
+ <key>description</key>
+ <string>Returns the colour of Face as a vector of red, green, and blue values between 0 and 1. If face is ALL_SIDES the colour returned is the mean average of each channel.</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>
+ <array/>
+ <key>summary</key>
+ <string>Returns a key for the creator of the prim.</string>
+ <key>description</key>
+ <string>Returns the key of the object's original creator. Similar to llGetOwner.</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>
+ <array/>
+ <key>summary</key>
+ <string>Returns the current date in the UTC time zone in the format YYYY-MM-DD.</string>
+ <key>description</key>
+ <string>Returns the current UTC date as 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>name</key>
+ <string>AvatarID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string>Avatar UUID that is in the same region, or is otherwise known to the region.</string>
+ </map>
+ </array>
+ <key>summary</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>
+ <key>description</key>
+ <string>Returns a string that is the non-unique display name of the avatar specified by AvatarID.\n
+ AvatarID must specify a valid avatar key, present in or otherwise known to the region in which the script is running, otherwise an empty string is returned.\n
+ This function will still return a valid display name if the avatar is a child agent of the region (i.e., in an adjacent region, but presently able to see into the one the script is in), or for a short period after the avatar leaves the region (specifically, when the client completely disconnects from the region, either as a main or child agent).</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>
+ <array/>
+ <key>summary</key>
+ <string>Returns how much energy is in the object as a percentage of maximum.</string>
+ <key>description</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>name</key>
+ <string>DataRequest</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string>The type of data to request. Any other string will cause an empty string to be returned.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns a string with the requested data about the region.</string>
+ <key>description</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>
+ <array/>
+ <key>summary</key>
+ <string>Returns the force (if the script is physical).</string>
+ <key>description</key>
+ <string>Returns the current 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>
+ <array/>
+ <key>summary</key>
+ <string>Returns the number of free bytes of memory the script can use.</string>
+ <key>description</key>
+ <string>Returns the available free space for the current script. This is inaccurate with LSO.</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>
+ <array/>
+ <key>summary</key>
+ <string>Returns the number of available URLs for the current script.</string>
+ <key>description</key>
+ <string>Returns an integer that is the number of available URLs.</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>
+ <array/>
+ <key>summary</key>
+ <string>Returns the geometric center of the linked set the script is attached to.</string>
+ <key>description</key>
+ <string>Returns the geometric centre of the linked set the script is in relative to the object's position (the position of the root prim of a linked set).\n
+ To get the object's position, use llGetPos.</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>
+ <array/>
+ <key>summary</key>
+ <string>Returns the time in seconds since midnight GMT.</string>
+ <key>description</key>
+ <string>Gets the time in seconds since midnight in GMT/UTC.</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>name</key>
+ <string>HTTPRequestID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string>A valid HTTP request key</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Header</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string>Header value name</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the value for header for request_id.</string>
+ <key>description</key>
+ <string>Returns a string that is the value of the Header for HTTPRequestID.</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>name</key>
+ <string>InventoryItem</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns a key for the creator of the inventory item.</string>
+ <key>description</key>
+ <string>This function returns the UUID of the creator of item. If item is not found in inventory, the object says "No item named 'name' ".</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>name</key>
+ <string>InventoryItem</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the key that is the UUID of the inventory named.</string>
+ <key>description</key>
+ <string>Returns the key 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>name</key>
+ <string>InventoryType</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>inventory item type</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Index</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Index number of inventory item.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the name of the inventory item number of a given type.</string>
+ <key>description</key>
+ <string>Get the name of the inventory Index number of InventoryType.\n
+ Use the inventory constants INVENTORY_* to specify the 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>name</key>
+ <string>InventoryType</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Inventory item type</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the number of items of a given type (INVENTORY_* flag) in the prim's inventory.</string>
+ <key>description</key>
+ <string>Get the number of items of InventoryType in the object inventory.\n
+ Use the inventory constants INVENTORY_* to specify the type.</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>name</key>
+ <string>InventoryItem</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string>Inventory item name.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>BitMask</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>MASK_BASE, MASK_OWNER, MASK_GROUP, MASK_EVERYONE or MASK_NEXT</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the requested permission mask for the inventory item.</string>
+ <key>description</key>
+ <string>Returns the requested permission mask for the inventory item defined by InventoryItem. If item is not in the object's inventory, llGetInventoryPermMask returns FALSE and causes the object to say "No item named '&lt;item&gt;'", where "&lt;item&gt;" is item.\n
+ If this is used to determine whether or not an inventory item exists within the object, it will have the side effect of spamming chat. So please don't ;-)</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>name</key>
+ <string>InventoryItem</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the type of the inventory item named.</string>
+ <key>description</key>
+ <string>Returns the type of the inventory item named.\n
+ Remember, like all inventory functions, llGetInventoryType is case-sensitive.</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>
+ <array/>
+ <key>summary</key>
+ <string>Returns the key of the prim the script is attached to.</string>
+ <key>description</key>
+ <string>Get the key for the object which has this script.</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>name</key>
+ <string>Position</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the key of the land owner, returns NULL_KEY if public.</string>
+ <key>description</key>
+ <string>Returns the key of the land owner at Position, or 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>name</key>
+ <string>LinkNumber</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the key of the linked prim LinkNumber.</string>
+ <key>description</key>
+ <string>Returns the key of LinkNumber in the link set.</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>name</key>
+ <string>LinkNumber</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Face</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>The prim's side number</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Parameters</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>A list of PRIM_* property constants to return values of.</string>
+ </map>
+ </array>
+ <key>summary</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>
+ <key>description</key>
+ <string>Get the desired list of named media parameters, for a particular face, of a linked prim.\n
+ Returns a list of values in the order requested.</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>name</key>
+ <string>LinkNumber</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the name of LinkNumber in a link set.</string>
+ <key>description</key>
+ <string>Returns the name of LinkNumber the 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>
+ <array/>
+ <key>summary</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>
+ <key>description</key>
+ <string>Returns the link number of the prim containing the script. 0 means no link, 1 the root, 2 for 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>name</key>
+ <string>LinkNumber</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the number of sides of the specified linked prim.</string>
+ <key>description</key>
+ <string>Returns an integer that is the number of faces (or sides) of the prim link.</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>name</key>
+ <string>LinkNumber</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Parameters</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>PRIM_* flags.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Get primitive parameters for LinkNumber based on rules.</string>
+ <key>description</key>
+ <string>Identical to llGetPrimitiveParams except that it acts on the prim specified by the link number given.\n
+ Returns the list of primitive attributes requested in the Parameters list for link.\n
+ PRIM_* flags can be broken into three categories, face flags, prim flags, and object flags.\n
+ * Supplying a prim or object flag will return that flags attributes.\n
+ * Face flags require the user to also supply a side parameter.</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>name</key>
+ <string>ListVariable</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Index</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</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>
+ <key>description</key>
+ <string>Returns the type of the variable at Index in ListVariable.</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>name</key>
+ <string>ListVariable</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the number of elements in the list.</string>
+ <key>description</key>
+ <string>Returns the number of elements in ListVariable.</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>
+ <array/>
+ <key>summary</key>
+ <string>Returns the position relative to the root.</string>
+ <key>description</key>
+ <string>Returns the local position of a child object 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>
+ <array/>
+ <key>summary</key>
+ <string>Returns the rotation local to the root.</string>
+ <key>description</key>
+ <string>Returns the local rotation of a child object relative 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>
+ <array/>
+ <key>summary</key>
+ <string>Returns the mass of object that the script is attached to.</string>
+ <key>description</key>
+ <string>Returns the scripted object's mass. When called from a script in a link-set, the parent will return the sum of the link-set weights, while a child will return just its own mass. When called from a script inside an attachment, this function will return the mass of the avatar it's attached to, not its own.</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>
+ <array/>
+ <key>summary</key>
+ <string>Acts as llGetMass(), except that the units of the value returned are Kg.</string>
+ <key>description</key>
+ <string>Acts as llGetMass(), except that the units of the value returned are Kg.</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>
+ <array/>
+ <key>summary</key>
+ <string>Get the maximum memory a script can use, in bytes.</string>
+ <key>description</key>
+ <string>Get the maximum memory a script can use.\n
+ Returns the integer amount of memory the script can use in bytes.</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>name</key>
+ <string>Address</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Subject</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Get the next waiting email with appropriate address and/or subject (if blank they are ignored).</string>
+ <key>description</key>
+ <string>Get the next waiting email with appropriate address and/or subject.\n
+ If the parameters are blank, they are not used for filtering.</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>name</key>
+ <string>NotecardName</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>LineNumber</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns line from NotecardName via the dataserver event.</string>
+ <key>description</key>
+ <string>This function fetches LineNumber from NotecardName and returns the data through the dataserver event. The line count starts at zero.\n
+ If the requested line is passed the end of the note-card the dataserver event will return the constant EOF string.\n
+ The key returned by this function is a unique identifier which will be supplied to the dataserver event in the requested parameter.</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>name</key>
+ <string>NotecardName</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns number of lines in NotecardName via the dataserver event (cast return value to integer).</string>
+ <key>description</key>
+ <string>Returns the number of lines in the note-card sNotecardName via the dataserver event. (Cast the value returned by the dataserver to an integer.)\n
+ The key returned is a query ID for identifying the dataserver reply.</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>
+ <array/>
+ <key>summary</key>
+ <string>Returns the number of prims in a link set the script is attached to.</string>
+ <key>description</key>
+ <string>Returns the number of prims in (and avatars seated on) the object the script is in.</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>
+ <array/>
+ <key>summary</key>
+ <string>Returns the number of faces (or sides) of the prim.</string>
+ <key>description</key>
+ <string>Returns the number of sides of the prim which has the script.</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>
+ <array/>
+ <key>summary</key>
+ <string>Returns the description of the prim the script is attached to.</string>
+ <key>description</key>
+ <string>Returns the description of the scripted object/prim. You can set the description using llSetObjectDesc.</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>name</key>
+ <string>ID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string>Prim or avatar UUID that is in the same region.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Parameters</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string>List of OBJECT_* flags.</string>
+ </map>
+ </array>
+ <key>summary</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>
+ <key>description</key>
+ <string>Returns a list of the details specified in Parameters for the object with key ID.</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>name</key>
+ <string>ID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the mass of the avatar or object in the region.</string>
+ <key>description</key>
+ <string>Gets the mass of the object or avatar corresponding to ID.</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>
+ <array/>
+ <key>summary</key>
+ <string>Returns the name of the prim which the script is attached to.</string>
+ <key>description</key>
+ <string>Returns the name of the prim (not object) which contains the script.</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>name</key>
+ <string>PermissionMask</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the requested permission mask for the root object the task is attached to.</string>
+ <key>description</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>name</key>
+ <string>ObjectID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the total number of prims for an object in the region.</string>
+ <key>description</key>
+ <string>Returns the prim count for any object id in the same 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>
+ <array/>
+ <key>summary</key>
+ <string>Returns the rotation velocity in radians per second.</string>
+ <key>description</key>
+ <string>Returns a vector that is the rotation velocity of the object 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>
+ <array/>
+ <key>summary</key>
+ <string>Returns the object owner's UUID.</string>
+ <key>description</key>
+ <string>Returns the key for the owner of the object.</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>name</key>
+ <string>ObjectID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the owner of ObjectID.</string>
+ <key>description</key>
+ <string>Returns the key for the owner of object 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>name</key>
+ <string>Position</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string>Location within the region.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>ParcelDetails</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string>List of details requested for the specified parcel location.</string>
+ </map>
+ </array>
+ <key>summary</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>
+ <key>description</key>
+ <string>Returns a list that is the parcel details specified in ParcelDetails (in the same order) for the parcel at Position.</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>name</key>
+ <string>Position</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns a mask of the parcel flags (PARCEL_FLAG_*) for the parcel that includes the point Position.</string>
+ <key>description</key>
+ <string>Returns a bit-field specifying the parcel flags (PARCEL_FLAG_*) for the parcel at 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>name</key>
+ <string>Position</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string>Region coordinates (z is ignored) of parcel.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>SimWide</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</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>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the maximum number of prims allowed on the parcel at Position.</string>
+ <key>description</key>
+ <string>Returns an integer that is 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>
+ <array/>
+ <key>summary</key>
+ <string>Gets the streaming audio URL for the parcel object is on.</string>
+ <key>description</key>
+ <string>Returns a string containing the parcel streaming audio URL.\n
+ The object owner, avatar or group, must also be the land owner.</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>name</key>
+ <string>Position</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string>region coordinate</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Category</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>A PARCEL_COUNT_* flag.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>SimWide</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</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>
+ </map>
+ </array>
+ <key>summary</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>
+ <key>description</key>
+ <string>Returns the number of prims used on the parcel at Position which are in Category.\n
+ If SimWide is TRUE, it returns the number of objects for the entire region in the category specified.\n
+ If SimWide is FALSE, it returns the number of objects on this specific parcel in the category specified</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>name</key>
+ <string>Position</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</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>
+ <key>description</key>
+ <string>Returns a strided list of keys and integers of up to 100 agents who own objects in the parcel at Position.\n
+ The list is formatted as [ key agentKey1, integer agentCount1, key agentKey2, integer agentCount2, ... ], sorted by agent key.\n
+ The integers are counts of the number of prims (not objects) owned by the corresponding agents.\n
+ Only works when the object owner is in the region (likely the reason it doesn't work when deeded to group).</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>
+ <array/>
+ <key>summary</key>
+ <string>Returns an integer bit-field with the permissions that have been granted.</string>
+ <key>description</key>
+ <string>Returns an integer bit-field with the script permissions granted. e.g.:\n
+ integer iPerms = llGetPermissions();\n
+ if (iPerms &amp; PERMISSION_DEBIT) {\n
+ llOwnerSay("Yay, I can steal your money!!");\n
+ } else {\n
+ llOwnerSay("Damn, your money is safe from me!");\n
+ }</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>
+ <array/>
+ <key>summary</key>
+ <string>Returns the key of the avatar that last granted permissions to the script.</string>
+ <key>description</key>
+ <string>Returns the key of the avatar that last granted or declined permissions to the script.\n
+ Returns NULL_KEY if permissions were never granted or declined.</string>
+ </map>
+ <key>llGetPhysicsMaterial</key>
+ <map>
+ <key>energy</key>
+ <real/>
+ <key>sleep</key>
+ <real/>
+ <key>return</key>
+ <string>list</string>
+ <key>arguments</key>
+ <array/>
+ <key>summary</key>
+ <string>Returns a list of the form [float gravity_multiplier, float restitution, float friction, float density].</string>
+ <key>description</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>
+ <array/>
+ <key>summary</key>
+ <string>Returns the position of the task in region coordinates.</string>
+ <key>description</key>
+ <string>Returns the vector 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>name</key>
+ <string>Parameters</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string>PRIM_* flags</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the primitive parameters specified in the parameters list.</string>
+ <key>description</key>
+ <string>Returns 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>name</key>
+ <string>Face</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>face number</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Parameters</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string>a set PRIM_* flags (in no particular order)</string>
+ </map>
+ </array>
+ <key>summary</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>
+ <key>description</key>
+ <string>Get the media parameters for a particular face on an object, given the desired list of Parameters.\n
+ Returns a list of values in the order requested.\n
+ 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>
+ <array/>
+ <key>summary</key>
+ <string>Returns the number of avatars in the region.</string>
+ <key>description</key>
+ <string>Returns an integer that is 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>
+ <array/>
+ <key>summary</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>
+ <key>description</key>
+ <string>Returns the Region-Corner of the simulator containing the task. The region-corner is a vector (values in meters) representing distance from the first region.</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>
+ <array/>
+ <key>summary</key>
+ <string>Returns the region flags (REGION_FLAG_*) for the region the object is in.</string>
+ <key>description</key>
+ <string>Returns a bit-field specifying 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>
+ <array/>
+ <key>summary</key>
+ <string>Returns the mean region frames per second.</string>
+ <key>description</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>
+ <array/>
+ <key>summary</key>
+ <string>Returns the current region name.</string>
+ <key>description</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>
+ <array/>
+ <key>summary</key>
+ <string>Returns the current time dilation as a float between 0.0 (full dilation) and 1.0 (no dilation).</string>
+ <key>description</key>
+ <string>Returns the current time dilation as a float between 0.0 and 1.0.</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>
+ <array/>
+ <key>summary</key>
+ <string>Returns the position (in region coordinates) of the root prim of the object which the script is attached to.</string>
+ <key>description</key>
+ <string>Gets the position (in region coordinates) of the root/parent prim of the object containing the script.\n
+ This is used to allow a child prim to determine where the root is.</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>
+ <array/>
+ <key>summary</key>
+ <string>Returns the rotation (relative to the region) of the root prim of the object which the script is attached to.</string>
+ <key>description</key>
+ <string>Gets the global rotation of the root object of the object 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>
+ <array/>
+ <key>summary</key>
+ <string>Returns the rotation relative to the region's axes.</string>
+ <key>description</key>
+ <string>Returns the rotation.</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>
+ <array/>
+ <key>summary</key>
+ <string>Returns the scale of the prim.</string>
+ <key>description</key>
+ <string>Returns a vector that is the scale (dimensions) 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>
+ <array/>
+ <key>summary</key>
+ <string>Returns the name of the script that this function is used in.</string>
+ <key>description</key>
+ <string>Returns the name of this script.</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>name</key>
+ <string>ScriptName</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns TRUE if the script named is running.</string>
+ <key>description</key>
+ <string>Returns TRUE if ScriptName is running.</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>
+ <array/>
+ <key>summary</key>
+ <string>Returns the host-name of the machine which the script is running on (same as string in viewer Help dialog).</string>
+ <key>description</key>
+ <string>Returns the host name (server) of the region in which the scripted object is located.\n
+ For example, "sim225.agni.lindenlab.com".</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>
+ <array/>
+ <key>summary</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>
+ <key>description</key>
+ <string>Returns the integer of the most bytes used while llScriptProfiler was last active.</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>
+ <array/>
+ <key>summary</key>
+ <string>Returns an integer that is the script start parameter.</string>
+ <key>description</key>
+ <string>Returns the start parameter passed to llRezObject.\n
+ If the object was created from agent inventory, this function returns 0.</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>name</key>
+ <string>StatusFlag</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>A STATUS_* flag</string>
+ </map>
+ </array>
+ <key>summary</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>
+ <key>description</key>
+ <string>Returns the value of specified status.</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>name</key>
+ <string>String</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Start</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>End</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the indicated substring.</string>
+ <key>description</key>
+ <string>Returns the indicated sub-string from String. The start and end are inclusive.\n
+ Using negative numbers for start and/or end causes the index to count backwards from the length of the string, so 0, -1 would capture the entire string.\n
+ If start is larger than end, the sub string is the exclusion of the entries, so 6, 4 would give the entire string except for the 5th. character.</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>
+ <array/>
+ <key>summary</key>
+ <string>Returns a normalized vector of the direction of the sun in the region.</string>
+ <key>description</key>
+ <string>Returns the sun's direction on the simulator.</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>name</key>
+ <string>Face</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</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>
+ <key>description</key>
+ <string>Returns the texture of a face, if it is found in object inventory, its key otherwise.</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>name</key>
+ <string>Face</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the texture offset of face in the x and y components of a vector.</string>
+ <key>description</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>name</key>
+ <string>Face</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the texture rotation of side.</string>
+ <key>description</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>name</key>
+ <string>Face</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the texture scale of side in the x and y components of a vector.</string>
+ <key>description</key>
+ <string>Returns the texture scale of a 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>
+ <array/>
+ <key>summary</key>
+ <string>Returns the time in seconds since the last region reset, script reset, or call to either llResetTime or llGetAndResetTime.</string>
+ <key>description</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>
+ <array/>
+ <key>summary</key>
+ <string>Returns the time in seconds since [SECOND_LIFE] server midnight or since region up-time, whichever is smaller.</string>
+ <key>description</key>
+ <string>Gets the time in seconds since midnight in Second Life.</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>
+ <array/>
+ <key>summary</key>
+ <string>Returns a time-stamp (UTC time zone) in the format: YYYY-MM-DDThh:mm:ss.ff..fZ.</string>
+ <key>description</key>
+ <string>Returns the current time-and-date (a time-stamp) in the format YYYY-MM-DDThh:mm:ss.ff..fZ, for example: 2004-08-27T00:56:21.785886Z\n
+ The letter Z is the zone designator for the zero UTC offset, and is why UTC is sometimes referred to as Zulu time (Zulu being the name of Z in the phonetic alphabet. T is just a separator between date and time.</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>
+ <array/>
+ <key>summary</key>
+ <string>Returns the torque (if the script is physical).</string>
+ <key>description</key>
+ <string>Returns a vector that is 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>
+ <array/>
+ <key>summary</key>
+ <string>Returns the number of seconds elapsed since 00:00 hours, Jan 1, 1970 UTC from the system clock.</string>
+ <key>description</key>
+ <string>Returns the number of seconds elapsed since 00:00 hours, Jan 1, 1970 UTC from the system clock.\n
+ In UNIX terms, time_t. This is great for a monotonic source of time that ticks once a second.</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>
+ <array/>
+ <key>summary</key>
+ <string>Returns the current used memory for the current script. Non-mono scripts always use 16K.</string>
+ <key>description</key>
+ <string>Returns the integer of the number of bytes of memory currently in use by the 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>name</key>
+ <string>AvatarID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the single-word user-name of an avatar, if the avatar is in the current region, otherwise the empty string.</string>
+ <key>description</key>
+ <string>Returns a string that is the unique user-name of the avatar specified.\n
+ AvatarID must specify a valid avatar key present in, or otherwise known to, the region in which the script is running, otherwise an empty string is returned. This function will still return a valid user-name if the avatar is a child agent of the region (i.e., in an adjacent region, but presently able to see into the one the script is in), or for a short period after the avatar leaves the region (specifically, when the client completely disconnects from the region, either as a main or child agent).</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>
+ <array/>
+ <key>summary</key>
+ <string>Returns the velocity of the object.</string>
+ <key>description</key>
+ <string>Returns a vector that is 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>
+ <array/>
+ <key>summary</key>
+ <string>Returns the time in seconds since midnight California Pacific time (PST/PDT).</string>
+ <key>description</key>
+ <string>Returns the time in seconds since simulator's time-zone midnight (Pacific Time).</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>name</key>
+ <string>TargetID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>InventoryItem</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Give InventoryItem to destination represented by TargetID.</string>
+ <key>description</key>
+ <string>Give the named inventory item to the avatar or object in the same simulator as the giver.\n
+ If the recipient is an avatar, the avatar then follows the normal procedure of accepting or denying the offer. If the recipient is an object, the same permissions apply as if you were dragging inventory onto the object by hand, i.e. if llAllowInventoryDrop has been called with TRUE, any other object can pass objects to its inventory.</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>name</key>
+ <string>TargetID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>FolderName</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>InventoryItems</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Give InventoryItems to destination (represented by TargetID) as a new folder of items.</string>
+ <key>description</key>
+ <string>Give the list of named inventory items to the keyed avatar or object in the same simulator as the giver.\n
+ If the recipient is an avatar, the avatar then follows the normal procedure of accepting or denying the offer. The offered inventory is then placed in a folder named category in the recipients inventory.\n
+ If the recipient is an object, the same permissions apply as if you were dragging inventory onto the object by hand, i.e. if llAllowInventoryDrop has been called with TRUE, any other object can pass objects to its inventory. If the recipient is an object, the sFolderName parameter is ignored.</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>name</key>
+ <string>AvatarID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Amount</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Transfers Amount of L from script owner to AvatarID.</string>
+ <key>description</key>
+ <string>Transfer Amount from the script owner to AvatarID.\n
+ This call will (silently) fail if PERMISSION_DEBIT has not been set.</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>name</key>
+ <string>InventoryItemID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Position</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Rez directly off of a UUID if owner has dog-bit set.</string>
+ <key>description</key>
+ <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>name</key>
+ <string>Offset</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the ground height at the object position + offset.</string>
+ <key>description</key>
+ <string>Returns the ground height at the object's 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>name</key>
+ <string>Offset</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the ground contour direction below the object position + Offset.</string>
+ <key>description</key>
+ <string>Returns the ground contour at the object's 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>name</key>
+ <string>Offset</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the ground normal below the object position + offset.</string>
+ <key>description</key>
+ <string>Returns the ground contour at the object's 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>name</key>
+ <string>Height</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string>.Distance above the ground.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Water</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Boolean, if TRUE then hover above water too.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Tau</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string>Seconds to critically damp in.</string>
+ </map>
+ </array>
+ <key>summary</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>
+ <key>description</key>
+ <string>Critically damps to fHeight if within fHeight * 0.5 of ground or water level.\n
+ The height is above ground level if iWater is FALSE or above the higher of land and water if iWater is TRUE.\n
+ Do not use with vehicles. Only works in physics-enabled objects.</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>name</key>
+ <string>Offset</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the ground slope below the object position + Offset.</string>
+ <key>description</key>
+ <string>Returns the ground slope at 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>name</key>
+ <string>URL</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string>A valid HTTP/HTTPS URL.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Parameters</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string>Configuration parameters, specified as HTTP_* flag-value pairs.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Body</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string>Contents of the request.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Sends an HTTP request to the specified URL with the Body of the request and Parameters.</string>
+ <key>description</key>
+ <string>Sends an HTTP request to URL with the specified body and parameters.\n
+ Returns a key that is a handle identifying the HTTP request made.</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>name</key>
+ <string>HTTPRequestID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string>A valid HTTP request key.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Status</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>HTTP Status (200, 400, 404, etc.).</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Body</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string>Contents of the response.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Responds to HTTPRequestID with Status and Body.</string>
+ <key>description</key>
+ <string>Responds to HTTPRequestID with Status code 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>name</key>
+ <string>TargetVariable</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Position</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>SourceVariable</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Inserts SourceVariable into TargetVariable at Position, and returns the result.</string>
+ <key>description</key>
+ <string>Inserts SourceVariable into TargetVariable at Position and returns the result. Note this does not alter TargetVariable.</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>name</key>
+ <string>AvatarID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Text</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>IMs Text to the user identified.</string>
+ <key>description</key>
+ <string>Send Text to the user as an instant message.</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>name</key>
+ <string>Value</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns a string that is a Base64 big endian encode of Value.</string>
+ <key>description</key>
+ <string>Encodes the Value as an 8-character Base64 string.</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>name</key>
+ <string>ID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string>Avatar or rezzed prim UUID.</string>
+ </map>
+ </array>
+ <key>summary</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>
+ <key>description</key>
+ <string>Returns the name of a rezzed prim or avatar, present in or otherwise known, to the region in which the script is running. If the key is invalid (not in region, or not a prim or avatar's key), returns an empty string.</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>name</key>
+ <string>LinkNumber</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Rules</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Particle system rules list in the format [ rule1, data1, rule2, data2 . . . ruleN, dataN ]</string>
+ </map>
+ </array>
+ <key>summary</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>
+ <key>description</key>
+ <string>A particle system defined by a list of rules is set for the prim(s) link. This is identical to llParticleSystem except that it applies to a specified linked prim and not just the prim the script is in.</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>name</key>
+ <string>LinkNumber</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag of the prim.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Offset</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string>Position for the sit target, relative to the prim's position.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Rotation</string>
+ <key>type</key>
+ <string>rotation</string>
+ <key>description</key>
+ <string>Rotation (relative to the prim's rotation) for the avatar.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Set the sit location for the linked prim(s). If Offset == &lt;0,0,0&gt; clear it.</string>
+ <key>description</key>
+ <string>Set the sit location for the linked prim(s). The sit location is relative to the prim's position and rotation.</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>name</key>
+ <string>ListVariable</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Creates a string of comma separated values from the list.</string>
+ <key>description</key>
+ <string>Create a string of comma separated values from the specified 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>name</key>
+ <string>ListVariable</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Index</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Copies the float at Index in the list.</string>
+ <key>description</key>
+ <string>Returns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a float, then zero is returned.</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>name</key>
+ <string>ListVariable</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Index</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Copies the integer at Index in the list.</string>
+ <key>description</key>
+ <string>Returns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to an integer, then zero is returned.</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>name</key>
+ <string>ListVariable</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Index</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Copies the key at Index in the list.</string>
+ <key>description</key>
+ <string>Returns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a key, then null string is returned.</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>name</key>
+ <string>ListVariable</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Start</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>End</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Copies the slice of the list from Start to End.</string>
+ <key>description</key>
+ <string>Returns the slice of the list from start to end from the list as a new list. The start and end parameters are inclusive.\n
+ Using negative numbers for start and/or end causes the index to count backwards from the length of the list, so 0, -1 would capture the entire list.\n
+ If start is larger than end the list returned is the exclusion of the entries, so 6, 4 would give the entire list except for the 5th. entry.</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>name</key>
+ <string>ListVariable</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Start</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>End</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Stride</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Copies the strided slice of the list from Start to End.</string>
+ <key>description</key>
+ <string>Returns a copy of the strided slice of the specified 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>name</key>
+ <string>ListVariable</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Index</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Copies the rotation at Index in the list.</string>
+ <key>description</key>
+ <string>Returns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to rotation, thenZERO_ROTATION is returned.</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>name</key>
+ <string>ListVariable</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Index</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Copies the string at Index in the list.</string>
+ <key>description</key>
+ <string>Returns the value at Index in the specified list as a string. If Index describes a location not in the list then null string is returned.</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>name</key>
+ <string>ListVariable</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Index</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Copies the vector at Index in the list.</string>
+ <key>description</key>
+ <string>Returns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a vector, then ZERO_VECTOR is returned.</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>name</key>
+ <string>Channel</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>SpeakersName</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>SpeakersID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Text</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</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>
+ <key>description</key>
+ <string>Sets a listen event callback on the specified channel. Specifying values for speakername, speakerID, and message will filter the results accordingly, which is advisable or your listen event will respond to every thing said on the channel potentially causing a great deal of lag.\n
+ Returns an identifier that can be used to deactivate or remove the listen. The name, id and/or msg parameters\n
+ Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are hidden channels that are not sent to avatars.</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>name</key>
+ <string>ChannelHandle</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Active</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Makes a listen event callback active or inactive.</string>
+ <key>description</key>
+ <string>Make a listen event callback active or inactive. Pass in the value returned from llListen to the iChannelHandle parameter to specify which event you are controlling.\n
+ Use boolean values to specify Active</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>name</key>
+ <string>ChannelHandle</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Removes listen event callback number.</string>
+ <key>description</key>
+ <string>Removes a listen event callback. Pass in the value returned from llListen to the iChannelHandle parameter to specify which event to remove.</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>name</key>
+ <string>ListVariable</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Find</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the index of the first instance of Find in ListVariable. Returns -1 if not found.</string>
+ <key>description</key>
+ <string>Returns the position of the first instance of the Find list in the 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>name</key>
+ <string>Target</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>ListVariable</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Position</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns a list that contains all the elements from Target but with the elements from ListVariable inserted at Position start.</string>
+ <key>description</key>
+ <string>Returns a new list, created by inserting ListVariable into the Target list at Position. Note this does not alter the Target.</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>name</key>
+ <string>ListVariable</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Stride</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns a randomized list of blocks of size Stride.</string>
+ <key>description</key>
+ <string>Returns the specified list randomized into blocks of size stride.\n
+ If the remainder from the length of the list, divided by the stride is non-zero, this function does not randomize the list.</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>name</key>
+ <string>Target</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>ListVariable</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Start</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>End</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns a list that is Target with Start through End removed and ListVariable inserted at Start.</string>
+ <key>description</key>
+ <string>Returns a list replacing the slice of the Target list from Start to End with the specified ListVariable. Start and End are inclusive, so 0, 1 would replace the first two entries and 0, 0 would replace only the first list entry.</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>name</key>
+ <string>ListVariable</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string>List to sort.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Stride</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Stride length.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Ascending</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Boolean. TRUE = result in ascending order, FALSE = result in descending order.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Sorts the list into blocks of stride, in Ascending order if Ascending == TRUE. The sort order is affected by type.</string>
+ <key>description</key>
+ <string>Returns the specified list, sorted into blocks of stride in ascending order (if Ascending is TRUE, otherwise descending). Note that sort only works if the first entry of each block is the same 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>name</key>
+ <string>Operation</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string> One of LIST_STAT_* values </string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>ListVariable</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string>Variable to analyse.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Performs statistical aggregate functions on ListVariable using LIST_STAT_* Operations.</string>
+ <key>description</key>
+ <string>This function allows a script to perform a statistical operation as defined by operation on a list composed of integers and floats.</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>name</key>
+ <string>AvatarID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Text</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>URL</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Shows dialog to avatar AvatarID offering to load web page at URL. If user clicks yes, launches their web browser.</string>
+ <key>description</key>
+ <string>llLoadURL displays a dialogue box to the user, offering to load the specified web page using the default 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>name</key>
+ <string>Value</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the natural logarithm of Value. Returns zero if Value &lt;= 0.</string>
+ <key>description</key>
+ <string>Returns the base e (natural) logarithm of the specified Value.</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>name</key>
+ <string>Value</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the base 10 logarithm of Value. Returns zero if Value &lt;= 0.</string>
+ <key>description</key>
+ <string>Returns the base 10 (common) logarithm of the specified Value.</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>name</key>
+ <string>Target</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Strength</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Damping</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Cause object name to point it's forward axis towards Target.</string>
+ <key>description</key>
+ <string>Cause object to point the forward axis toward Target.\n
+ Good Strength values are around half the mass of the object and good Damping values are less than 1/10th of the Strength.\n
+ Asymmetrical shapes require smaller Damping. A Strength of 0.0 cancels the look at.</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>name</key>
+ <string>Sound</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Volume</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Plays attached Sound, looping indefinitely, at Volume (0.0 - 1.0).</string>
+ <key>description</key>
+ <string>Similar to llPlaySound, this function plays a sound attached to an object, but will continuously repeat that sound until llStopSound or llPlaySound is called.\n
+ Only one sound may be attached to an object at a time. A second call to llLoopSound with the same key will not restart the sound, but the new volume will be used. This allows control over the volume of already playing sounds.\n
+ Setting the volume to 0 is not the same as calling llStopSound; a sound with 0 volume will continue to loop.\n
+ To restart the sound from the beginning, call llStopSound before calling llLoopSound again.</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>name</key>
+ <string>Sound</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Volume</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Plays attached Sound, looping at volume (0.0 - 1.0), and declares it a sync master.</string>
+ <key>description</key>
+ <string>Behaviour is identical to llLoopSound, with the addition of marking the source as a "Sync Master", causing "Slave" sounds to sync to it. If there are multiple masters within a viewers interest area, the most audible one (a function of both distance and volume) will win out as the master.\n
+ The use of multiple masters within a small area is unlikely to produce the desired effect.</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>name</key>
+ <string>Sound</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Volume</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Plays attached sound looping at volume (0.0 - 1.0), synced to most audible sync master.</string>
+ <key>description</key>
+ <string>Behaviour is identical to llLoopSound, unless there is a "Sync Master" present.\n
+ If a Sync Master is already playing the Slave sound will begin playing from the same point the master is in its loop synchronizing the loop points of both sounds.\n
+ If a Sync Master is started when the Slave is already playing, the Slave will skip to the correct position to sync with the 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>name</key>
+ <string>Particles</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Scale</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Velocity</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Lifetime</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Arc</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Texture</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Offset</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Make a round explosion of particles. Deprecated: Use llParticleSystem instead.</string>
+ <key>description</key>
+ <string>Make a round explosion of particles using texture from the objects inventory. 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>name</key>
+ <string>Particles</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Scale</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Velocity</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Lifetime</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Arc</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Texture</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Offset</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Make fire like particles. Deprecated: Use llParticleSystem instead.</string>
+ <key>description</key>
+ <string>Make fire particles using texture from the objects inventory. 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>name</key>
+ <string>Particles</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Scale</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Velocity</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Lifetime</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Arc</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Texture</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Offset</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Make a fountain of particles. Deprecated: Use llParticleSystem instead.</string>
+ <key>description</key>
+ <string>Make a fountain of particles using texture from the objects inventory. 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>name</key>
+ <string>Particles</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Scale</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Velocity</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Lifetime</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Arc</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Texture</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Offset</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Make smoke like particles. Deprecated: Use llParticleSystem instead.</string>
+ <key>description</key>
+ <string>Make smoky particles using texture from the objects inventory. 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>name</key>
+ <string>Action</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>One of the ESTATE_ACCESS_ALLOWED_* actions.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>AvatarID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string>UUID of the avatar or group to act upon.</string>
+ </map>
+ </array>
+ <key>summary</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>
+ <key>description</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.\n
+ Returns an integer representing a boolean, TRUE if the call was successful; FALSE if throttled, invalid action, invalid or null id or object owner is not allowed to manage the estate.</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>name</key>
+ <string>RegionName</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Position</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Direction</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</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>
+ <key>description</key>
+ <string>Shows a given location on the map, opening the map window whenever it is called.\n
+ There is no way to simply set the map position without opening the window.\n
+ Only works in attachments, or during touch events.</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>name</key>
+ <string>Text</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Nonce</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</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>
+ <key>description</key>
+ <string>Performs an RSA Data Security, Inc. MD5 Message-Digest Algorithm on the specified string using the nonce (also known as salt).\n
+ Returns a 32-character hex string. (128-bit in binary.)</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>name</key>
+ <string>LinkNumber</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Number</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Text</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>ID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</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>
+ <key>description</key>
+ <string>Sends the specified number, string, and key to members of the link set.\n
+ The LinkNumber parameter is either a linked number available through llGetLinkNumber or a LINK_* constant.</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>name</key>
+ <string>Delay</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Set the minimum time between events being handled.</string>
+ <key>description</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>name</key>
+ <string>Action</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>LAND_LEVEL, LAND_RAISE, LAND_LOWER, LAND_SMOOTH, LAND_NOISE or LAND_REVERT</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Area</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>LAND_SMALL_BRUSH, LAND_MEDIUM_BRUSH or LAND_LARGE_BRUSH</string>
+ </map>
+ </array>
+ <key>summary</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>
+ <key>description</key>
+ <string>Modify land with action on size area. The parameters can be chosen from the land constants.</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>name</key>
+ <string>Value</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Power</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Modulus</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns a Value raised to the Power, mod Modulus. ((a**b)%c) b is capped at 0xFFFF (16 bits).</string>
+ <key>description</key>
+ <string>Returns (Value ^ Power) % Modulus. (Value raised to the Power, Modulus). Value 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>name</key>
+ <string>Target</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Tau</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Critically damp to Target in Tau seconds (if the script is physical).</string>
+ <key>description</key>
+ <string>Critically damp to position target in tau-seconds if the script is physical. Good tau-values are greater than 0.2. A tau of 0.0 stops the critical damping.</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>name</key>
+ <string>Location</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string>Region coordinates for the character to navigate to.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Options</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string>List of parameters to control the type of path-finding used. Currently only FORCE_DIRECT_PATH supported.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Navigate to destination.</string>
+ <key>description</key>
+ <string>Directs an object to travel to a defined position in the region or adjacent regions.</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>name</key>
+ <string>OffsetS</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>OffsetT</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Face</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Sets the texture S and T offsets for the chosen Face.</string>
+ <key>description</key>
+ <string>Sets the texture s and t offsets of face.\n
+ If Face is ALL_SIDES this function sets the texture offsets for all faces.</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>
+ <array/>
+ <key>summary</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>
+ <key>description</key>
+ <string>Requests a channel to listen for XML-RPC calls. (Deprecated: XML-RPC should not be used. Use http-in instead.)\n
+ Will trigger a remote_data event with type = REMOTE_DATA_CHANNEL and a channel ID (key) once it is available.\n
+ This channel ID must be referenced in the XML-RPC call to the script (from the internet) -- so the key must somehow get to the scripter's XML-RPC client, most often via llEmail, llHttpRequest or llLoadUrl.</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>name</key>
+ <string>ID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns TRUE if id ID over land owned by the script owner, otherwise FALSE.</string>
+ <key>description</key>
+ <string>Returns TRUE if key ID is over land owned by the object owner, FALSE otherwise.</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>name</key>
+ <string>Text</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>says Text to owner only (if owner is in region).</string>
+ <key>description</key>
+ <string>Says Text to the owner of the object running the script, if the owner has been within the object's simulator since logging into Second Life, regardless of where they may be in-world.</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>name</key>
+ <string>CommandList</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string>A list of PARCEL_MEDIA_COMMAND_* flags and their parameters </string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Sends a list of commands, some with arguments, to a parcel.</string>
+ <key>description</key>
+ <string>Controls the playback of multimedia resources on a parcel or for an agent.</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>name</key>
+ <string>QueryList</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns a list containing results of the sent query.</string>
+ <key>description</key>
+ <string>Queries the texture and/or URL for QuickTime-playable video on the land parcel.\n
+ This function will only work if the script is contained within an object owned by the land-owner (or if the land is owned by a group, only if the object has been deeded to the group). It will not work for group land if the object owner is a member of the group. The object actually has to be owned by the group.</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>name</key>
+ <string>Text</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Separators</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Spacers</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Breaks Text into a list, discarding Separators, keeping Spacers (Separators and Spacers must be lists of strings, maximum of 8 each).</string>
+ <key>description</key>
+ <string>Breaks the Text into a list using Separators and Spacers to delimit entries. Separators are discarded, while Spacers are kept. Any empty entries are ignored.\n
+ The separators and spacers must be lists of strings with a maximum of 8 entries each. So, if you had made the call:\n
+ llParseString2List("Parsethisnow! I dare:you to.", ["this", "!", " "], [":"]);\n
+ You would get the list: ["Parse", "now", "I", "dare", ":", "you", "to"].</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>name</key>
+ <string>Text</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Separators</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Spacers</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</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>
+ <key>description</key>
+ <string>llParseStringKeepNulls works almost exactly like llParseString2List, except that if a null is found it will add a null-string instead of discarding it like llParseString2List does.</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>name</key>
+ <string>Parameters</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</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>
+ <key>description</key>
+ <string>Makes a particle system based on the parameter list.\n
+ The parameters are specified as an ordered list of parameter and value. Valid parameters and their expected values can be found in the particle system constants.\n
+ Here is a simple example:\n
+ llParticleSystem([PSYS_PART_FLAGS, PSYS_PART_WIND_MASK, PSYS_PART_START_COLOR, &lt;1, 0, 0&gt;, PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_EXPLODE]);</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>name</key>
+ <string>Pass</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Boolean, if TRUE, collisions are passed from children on to parents.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>If Pass == TRUE, collisions are passed from children on to parents (default is FALSE).</string>
+ <key>description</key>
+ <string>If pass is TRUE, land and object collisions are passed from children on to parents.\n
+ The default is FALSE if there is no script to handle the collision events.</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>name</key>
+ <string>Pass</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Boolean, if TRUE, touches are passed from children on to parents.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>If pass == TRUE, touches are passed from children on to parents (default is FALSE).</string>
+ <key>description</key>
+ <string>If pass is TRUE, touches are passed from children on to parents.\n
+ The default is TRUE if there is no script to handle the touch events.</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>name</key>
+ <string>Points</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string>A list of vectors for the character to travel through sequentially. The list must contain at least two entries.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Options</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string>No options available at this time.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Patrol a list of points.</string>
+ <key>description</key>
+ <string>Sets the points for a character (llCreateCharacter) to patrol along.</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>name</key>
+ <string>Sound</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Volume</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Plays attached Sound once, at Volume (0.0 - 1.0).</string>
+ <key>description</key>
+ <string>Plays a sound once. The sound will be attached to the object and follow object's movement. Only one sound may be attached to an object at a time, and attaching a new sound or calling llStopSound will stop the previously attached sound.\n
+ A second call to llPlaySound with the same sound will not restart the sound, but the new volume will be used, which allows control over the volume of already playing sounds.\n
+ To restart the sound from the beginning, call llStopSound before calling llPlaySound again.</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>name</key>
+ <string>Sound</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Volume</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Plays attached Sound once, at Volume (0.0 - 1.0), synced to next loop of most audible sync master.</string>
+ <key>description</key>
+ <string>Behaviour is identical to llPlaySound, unless there is a "Sync Master" present. If a Sync Master is already playing, the Slave sound will not be played until the Master hits its loop point and returns to the beginning.\n
+ llPlaySoundSlave will play the sound exactly once; if it is desired to have the sound play every time the Master loops, either use llLoopSoundSlave with extra silence padded on the end of the sound or ensure that llPlaySoundSlave is called at least once per loop of the 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>name</key>
+ <string>Value</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Exponent</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the Value raised to the power Exponent, or returns 0 and triggers Math Error for imaginary results.</string>
+ <key>description</key>
+ <string>Returns the Value raised to the Exponent.</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>name</key>
+ <string>Sound</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Preloads a sound on viewers within range.</string>
+ <key>description</key>
+ <string>Causes nearby viewers to preload the Sound from the object's inventory. This is intended to prevent delays in starting new sounds when called upon.</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>name</key>
+ <string>TargetID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string>Agent or object to pursue.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Options</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string>Parameters for pursuit.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Chase after a target.</string>
+ <key>description</key>
+ <string>Causes the character (llCharacter) to pursue the target defined by TargetID.</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>name</key>
+ <string>ObjectID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Impulse</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>AngularImpulse</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Local</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Applies Impulse and AngularImpulse to ObjectID.</string>
+ <key>description</key>
+ <string>Applies the supplied impulse and angular impulse to the object specified.</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>
+ <array/>
+ <key>summary</key>
+ <string>Reloads the web page shown on the sides of the object.</string>
+ <key>description</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>name</key>
+ <string>Channel</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Any integer value except zero.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Text</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Message to be transmitted.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Broadcasts Text to entire region on Channel (not 0.).</string>
+ <key>description</key>
+ <string>Says the Text on the specified non-zero Channel, so that it can be heard anywhere in the region by a script listening on that channel.</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>name</key>
+ <string>TargetID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string>Avatar or object to say to.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Channel</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Output channel, any integer value.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Text</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string>Message to be transmitted.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Says Text, on Channel, to avatar or object indicated by TargetID (if within region).</string>
+ <key>description</key>
+ <string>Says the Text on the supplied channel number, to the object or avatar specified.</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>name</key>
+ <string>AvatarID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Return camera to agent.</string>
+ <key>description</key>
+ <string>Deprecated: Use llClearCameraParams instead.</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>
+ <array/>
+ <key>summary</key>
+ <string>Stop taking inputs.</string>
+ <key>description</key>
+ <string>Stop taking inputs from the avatar.</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>name</key>
+ <string>URL</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string>URL to release.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Releases the specified URL, it will no longer be usable.</string>
+ <key>description</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>name</key>
+ <string>ChannelID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>MessageID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Data</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Data</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</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>
+ <key>description</key>
+ <string>Deprecated: Use HTTP functions/events instead.\n
+ Send an XML-RPC reply to the request with kMessageID on kChannelID with payload of string sData and integer iData.\n
+ The size of sData is limited to 254 characters.</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>
+ <array/>
+ <key>summary</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>
+ <key>description</key>
+ <string>Deprecated: Use HTTP functions/events instead.\n
+ Does not work! Use llOpenRemoteDataChannel instead.</string>
+ </map>
+ <key>llRemoteLoadScript</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>name</key>
+ <string>TargetID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Name</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Running</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>StartParameter</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Deprecated. Please use llRemoteLoadScriptPin instead.</string>
+ <key>description</key>
+ <string>Deprecated: Use llRemoteLoadScriptPin instead.</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>name</key>
+ <string>ObjectID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string>Target prim to attempt copying into.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>ScriptName</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string>Name of the script in current inventory to copy.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>PIN</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Integer set on target prim as a Personal Information Number code.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Running</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>If the script should be set running in the target prim.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>StartParameter</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Integer. Parameter passed to the script if set to be running.</string>
+ </map>
+ </array>
+ <key>summary</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>
+ <key>description</key>
+ <string>If the owner of the object containing this script can modify the object identified by the specified object key, and if the PIN matches the PIN previously set using llSetRemoteScriptAccessPin (on the target prim), then the script will be copied into target.</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>name</key>
+ <string>AvatarID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Remove avatar from the land ban list.</string>
+ <key>description</key>
+ <string>Remove specified avatar from the land parcel 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>name</key>
+ <string>AvatarID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Remove avatar from the land pass list.</string>
+ <key>description</key>
+ <string>Remove specified avatar from the land parcel 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>name</key>
+ <string>InventoryItem</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Remove the named inventory item.</string>
+ <key>description</key>
+ <string>Remove the named inventory item from the object inventory.</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>name</key>
+ <string>Vehiclelags</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Removes the enabled bits in 'flags'.</string>
+ <key>description</key>
+ <string>Sets the vehicle flags to FALSE. Valid parameters can be found in the vehicle flags constants section.</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>name</key>
+ <string>AvatarID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Data</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Requests data about AvatarID. When data is available the dataserver event will be raised.</string>
+ <key>description</key>
+ <string>This function requests data about an avatar. If and when the information is collected, the dataserver event is triggered with the key returned from this function passed in the requested parameter. See the agent data constants (DATA_*) for details about valid values of data and what each will return in the dataserver event.</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>name</key>
+ <string>AvatarID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string>Avatar UUID</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Requests name of an avatar. When data is available, the dataserver event will be raised.</string>
+ <key>description</key>
+ <string>Requests the Display Name of the agent. When the Display Name is available the dataserver event will be raised.\n
+ The avatar identified does not need to be in the same region or online at the time of the request.\n
+ Returns a key that is used to identify the dataserver event when it is 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>name</key>
+ <string>InventoryItem</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Requests data from object's inventory object. When data is available the dataserver event will be raised.</string>
+ <key>description</key>
+ <string>Requests data for the object inventory item named.\n
+ When data is available the dataserver event will be raised with the key returned from this function in the requested parameter.\n
+ The only request currently implemented is to request data from landmarks, where the data returned is in the form "&lt;float, float, float&gt;" which can be cast to a vector. This position is in region local coordinates.</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>name</key>
+ <string>AvatarID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>PermmissionMask</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</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>
+ <key>description</key>
+ <string>Ask avatar to allow the script to perform certain actions. The permission flag should be one or more PERMISSION_* constants.\n
+ Multiple permissions can be requested simultaneously by ORing the constants together. Many of the permissions requests can only go to object owner.\n
+ This call will not stop script execution. If the avatar grants the requested permissions, the run_time_permissions event will be called.\n
+ Permissions for a single avatar are granted to a script, not to an object. So multiple scripts can hold permissions for multiple avatars.</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>
+ <array/>
+ <key>summary</key>
+ <string>Requests one HTTPS:// (SSL) URL for use by this object. An http_request event is triggered with the results.</string>
+ <key>description</key>
+ <string>Requests one HTTPS:// (SSL) URL for use by this object. The http_request event is triggered with results.\n
+ Returns a key that is the handle used for identifying the request in the http_request event.</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>name</key>
+ <string>RegionName</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Data</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Requests data about a simulator. When data is available the dataserver event will be raised.</string>
+ <key>description</key>
+ <string>Requests data about the region named. Data should use one of the DATA_SIM_* constants.\n
+ Returns a dataserver query ID and triggers the dataserver event when data is found. The region name is usually not case-sensitive, but sometimes will return data for a similarly-named region if the supplied case doesn't match the intended region's actual name.</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>
+ <array/>
+ <key>summary</key>
+ <string>Requests one HTTP:// URL for use by this object. An http_request event is triggered with the results.</string>
+ <key>description</key>
+ <string>Requests one HTTP:// URL for use by this script. The http_request event is triggered with the result of the request.\n
+ Returns a key that is the handle used for identifying the result in the http_request event.</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>name</key>
+ <string>AvatarID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Requests single-word user-name of an avatar. When data is available the dataserver event will be raised.</string>
+ <key>description</key>
+ <string>Requests the user-name of the identified agent. When the user-name is available the dataserver event will be raised.\n
+ The agent identified does not need to be in the same region or online at the time of the request.\n
+ Returns a key that is used to identify the dataserver event when it is raised.</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>
+ <array/>
+ <key>summary</key>
+ <string>Removes all residents from the land ban list.</string>
+ <key>description</key>
+ <string>Removes all entries 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>
+ <array/>
+ <key>summary</key>
+ <string>Removes all residents from the land access/pass list.</string>
+ <key>description</key>
+ <string>Removes all entries 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>name</key>
+ <string>ScriptName</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Resets script name.</string>
+ <key>description</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>
+ <array/>
+ <key>summary</key>
+ <string>Resets the script.</string>
+ <key>description</key>
+ <string>Resets this 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>
+ <array/>
+ <key>summary</key>
+ <string>Sets the time to zero.</string>
+ <key>description</key>
+ <string>Sets the internal timer to zero.</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>name</key>
+ <string>InventoryItem</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Position</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Velocity</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Rotation</string>
+ <key>type</key>
+ <string>rotation</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>StartParameter</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</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>
+ <key>description</key>
+ <string>Creates object's inventory item at the given Position, with Velocity, Rotation, and StartParameter.</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>name</key>
+ <string>InventoryItem</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Position</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Velocity</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Rotation</string>
+ <key>type</key>
+ <string>rotation</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>StartParameter</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Instantiate owners InventoryItem at Position with Velocity, Rotation and with start StartParameter.</string>
+ <key>description</key>
+ <string>Creates object's inventory item at Position with Velocity and Rotation supplied. The StartParameter value will be available to the newly created object in the on_rez event or through the llGetStartParameter function.\n
+ The Velocity parameter is ignored if the rezzed object is not physical.</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>name</key>
+ <string>Rotation</string>
+ <key>type</key>
+ <string>rotation</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the rotation angle represented by Rotation.</string>
+ <key>description</key>
+ <string>Returns the angle represented by the 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>name</key>
+ <string>Rotation</string>
+ <key>type</key>
+ <string>rotation</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the rotation axis represented by Rotation.</string>
+ <key>description</key>
+ <string>Returns the axis represented by the 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>name</key>
+ <string>Rotation</string>
+ <key>type</key>
+ <string>rotation</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the Euler representation (roll, pitch, yaw) of Rotation.</string>
+ <key>description</key>
+ <string>Returns the Euler Angle representation of the 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>name</key>
+ <string>Rotation</string>
+ <key>type</key>
+ <string>rotation</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the forward vector defined by Rotation.</string>
+ <key>description</key>
+ <string>Returns the forward axis represented by the 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>name</key>
+ <string>Rotation</string>
+ <key>type</key>
+ <string>rotation</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the left vector defined by Rotation.</string>
+ <key>description</key>
+ <string>Returns the left axis represented by the 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>name</key>
+ <string>Rotation</string>
+ <key>type</key>
+ <string>rotation</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the up vector defined by Rotation.</string>
+ <key>description</key>
+ <string>Returns the up axis represented by the 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>name</key>
+ <string>Radians</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Face</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Sets the texture rotation for the chosen face.</string>
+ <key>description</key>
+ <string>Sets the rotation of the texture on the given side.\n
+ If face is ALL_SIDES, rotates the texture of all sides.</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>name</key>
+ <string>Vector1</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Vector2</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the rotation to rotate Vector1 to Vector2.</string>
+ <key>description</key>
+ <string>Returns the rotation needed 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>name</key>
+ <string>Rotation</string>
+ <key>type</key>
+ <string>rotation</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Strength</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Damping</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Cause object to point it's forward axis towards Rotation.</string>
+ <key>description</key>
+ <string>Cause object to rotate to Rotation. Good strength values are around half the mass of the object and good damping values are less than 1/10th of the strength.\n
+ Asymmetrical shapes require smaller damping.\n
+ A strength of 0.0 cancels the look at.</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>name</key>
+ <string>Rotation</string>
+ <key>type</key>
+ <string>rotation</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>LeeWay</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Set rotations with error of LeeWay as a rotational target and return an ID for the rotational target.</string>
+ <key>description</key>
+ <string>Set object rotation within the given lee way of rotation as a rotational target and return an integer number for the target.\n
+ The returned number is a handle that can be used in llRotTargetRemove.</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>name</key>
+ <string>Handle</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Removes rotational target number.</string>
+ <key>description</key>
+ <string>Remove rotational target indicated by the handle.</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>name</key>
+ <string>Value</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns Value rounded to the nearest integer.</string>
+ <key>description</key>
+ <string>Returns the 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>name</key>
+ <string>ID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns TRUE if avatar ID is in the same region and has the same active group, otherwise FALSE.</string>
+ <key>description</key>
+ <string>Returns TRUE if the object or agent identified is in the same simulator and has the same active group as this object. Otherwise, returns 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>name</key>
+ <string>Channel</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Channel to use to say text on.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Text</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string>Text to say.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Says Text on Channel.</string>
+ <key>description</key>
+ <string>Say Text on channel.\n
+ Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen for through the llListen/listen event system.</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>name</key>
+ <string>Horizontal</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Vertical</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Face</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Sets the texture's S and T scales for the chosen Face.</string>
+ <key>description</key>
+ <string>Sets the Horizontal and Vertical repeats per Face on Face.\n
+ If Face == ALL_SIDES, all sides are set in one call.\n
+ Negative values for horizontal and vertical will flip the texture.</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>name</key>
+ <string>Position</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</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>
+ <key>description</key>
+ <string>Returns true if the position is over public 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>name</key>
+ <string>State</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>PROFILE_NONE or PROFILE_SCRIPT_MEMORY flags to control the state.</string>
+ </map>
+ </array>
+ <key>summary</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>
+ <key>description</key>
+ <string>Enables or disables the scripts profiling state.. 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>name</key>
+ <string>ChannelID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Destination</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Value</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Text</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</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>
+ <key>description</key>
+ <string>Send an XML-RPC request to the Destination (probably an URL) through the ChannelID, with a payload of ChannelID (in a string), integer Value and string Text.</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>
+ <string>Name</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string>Object or avatar name.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>ID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string>Object or avatar UUID.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Type</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Bit-field mask of AGENT, AGENT_BY_LEGACY_NAME, AGENT_BY_USERNAME, ACTIVE, PASSIVE, and/or SCRIPTED</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Range</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string>Distance to scan. 0.0 - 96.0m.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Arc</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string>Angle, in radians, from the local x-axis of the prim to scan.</string>
+ </map>
+ </array>
+ <key>summary</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>
+ <key>description</key>
+ <string>Performs a single scan for Name and ID with Type within Range meters and Arc radians of the forward vector.\n
+ Specifying a blank Name or NULL_KEY ID will prevent filtering results for a particular Name or ID. A range of 0.0 does not perform a scan. The Type parameter should be an object type constant value.</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>
+ <array/>
+ <key>summary</key>
+ <string>removes sensor.</string>
+ <key>description</key>
+ <string>Removes the sensor set by llSensorRepeat.</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>
+ <string>Name</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string>Object or avatar name.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>ID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string>Object or avatar UUID.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Type</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Bit-field mask of AGENT, AGENT_BY_LEGACY_NAME, AGENT_BY_USERNAME, ACTIVE, PASSIVE, and/or SCRIPTED</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Range</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string>Distance to scan. 0.0 - 96.0m.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Arc</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string>Angle, in radians, from the local x-axis of the prim to scan.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Rate</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string>Period, in seconds, between scans.</string>
+ </map>
+ </array>
+ <key>summary</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>
+ <key>description</key>
+ <string>Performs a repeating sensor scan for Name and ID with Type within Range meters and Arc radians of the forward vector (Name and/or ID can be empty or NULL_KEY).\n
+ A range of 0.0m does not perform a scan. The parameters have the same function as llSensor, except Rate, which defines the number of seconds between repeated scans and subsequent sensor or no_sensor events.</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>name</key>
+ <string>Opacity</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Face</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Sets the alpha (opacity) of Face.</string>
+ <key>description</key>
+ <string>Sets the alpha (opacity) value for Face. If Face is ALL_SIDES, sets the alpha for all faces. The alpha value is interpreted as an opacity percentage (1.0 is fully opaque, and 0.2 is mostly transparent). This function will clamp alpha values less than 0.1 to 0.1 and greater than 1.0 to 1.</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>name</key>
+ <string>Force</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string>The force to apply.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Local</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>If TRUE, the Force is treated as a local directional vector instead of a regional directional vector.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Sets an object's angular velocity, in local coordinates if local == TRUE (if the script is physical).</string>
+ <key>description</key>
+ <string>Applies angular (rotational) velocity to a physical object. Has no effect on non-physical objects.</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>name</key>
+ <string>Buoyancy</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Set the tasks buoyancy (0 is none, &lt; 1.0 sinks, 1.0 floats, &gt; 1.0 rises).</string>
+ <key>description</key>
+ <string>Set the object buoyancy. A value of 0 is none, less than 1.0 sinks, 1.0 floats, and greater than 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>name</key>
+ <string>Offset</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Sets the camera used in this object, at offset, if an avatar sits on it.</string>
+ <key>description</key>
+ <string>Sets the offset that an avatar's camera will be moved to if the avatar sits on the object.</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>name</key>
+ <string>Offset</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Sets the camera eye offset used in this object if an avatar sits on it.</string>
+ <key>description</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>name</key>
+ <string>Parameters</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Sets multiple camera parameters at once. List format is [ rule-1, data-1, rule-2, data-2 . . . rule-n, data-n ].</string>
+ <key>description</key>
+ <string>Sets multiple camera parameters at once.\n
+ List format is [rule-1, value-1, rule-2, value-2 ... rule-N, value-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>name</key>
+ <string>Action</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>A CLICK_ACTION_* flag</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Sets the action performed when a prim is clicked upon.</string>
+ <key>description</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>name</key>
+ <string>Colour</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Face</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Sets the color, for the face.</string>
+ <key>description</key>
+ <string>Sets the colour of the side specified. If Face is ALL_SIDES, sets the colour on all faces.</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>name</key>
+ <string>HTTPRequestID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string>A valid http_request() key</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>ContentType</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Media type to use with any following llHTTPResponse(HTTPRequestID, ...)</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Set the media type of an LSL HTTP server response.</string>
+ <key>description</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>name</key>
+ <string>Damage</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Sets the amount of damage that will be done to an avatar that this task hits. Task will be killed.</string>
+ <key>description</key>
+ <string>Sets the amount of damage that will be done to an avatar that this object hits. This object will be destroyed on damaging an avatar, and no collision event is triggered.</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>name</key>
+ <string>Force</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string>Directional force.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Local</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Boolean, if TRUE uses local axis, if FALSE uses region axis.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Sets Force on object, in local coordinates if Local == TRUE (if the script is physical).</string>
+ <key>description</key>
+ <string>If the object is physical, this function sets the force.\n
+ The vector is in local coordinates if local is TRUE, global if FALSE.</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>name</key>
+ <string>Force</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string>Directional force.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Torque</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string>Torque force.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Local</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Boolean, if TRUE uses local axis, if FALSE uses region axis.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Sets the Force and Torque of object, in local coordinates if Local == TRUE (if the script is physical).</string>
+ <key>description</key>
+ <string>If the object is physical, this function sets the Force and Torque. The vectors are in local coordinates if Local is TRUE, global if FALSE.</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>name</key>
+ <string>Height</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string>Distance above the ground.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Water</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Boolean, if TRUE then hover above water too.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Tau</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string>Seconds to critically damp in.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Critically damps to a Height (either above ground level or above the higher of land and water if water == TRUE).</string>
+ <key>description</key>
+ <string>Critically damps to a Height. The height is above ground and water (which ever is greater) if water is TRUE. Only works with physics-enabled objects.\n
+ Do not use with vehicles. Use llStopHover to stop hovering.</string>
+ </map>
+ <key>llSetInventoryPermMask</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>
+ <string>InventoryItem</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string>An item in the prim's inventory</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>PermissionFlag</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>MASK_* flag</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>PermissionMask</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Permission bit-field (PERM_* flags)</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Sets the given permission mask to the new value on the inventory item.</string>
+ <key>description</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>name</key>
+ <string>Keyframes</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string>Strided keyframe list of the form: position, orientation, time. Each keyframe is interpreted relative to the previous transform of the object.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Options</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Requests that a non-physical object be key-framed according to key-frame list.</string>
+ <key>description</key>
+ <string>Specify a list of times, positions, and orientations to be followed by an object. The object will be smoothly moved between key-frames by the simulator. Collisions with other non-physical or key-framed objects will be ignored (no script events will fire and collision processing will not occur). Collisions with physical objects will be computed and reported, but the key-framed object will be unaffected by those collisions.</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>name</key>
+ <string>LinkNumber</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Opacity</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Face</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>If a prim exists in the link chain at LinkNumber, set Face to Opacity.</string>
+ <key>description</key>
+ <string>Sets the Face, on the linked prim specified, to the 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>name</key>
+ <string>LinkNumber</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Prim link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>EyeOffset</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string>Offset, relative to the object's centre and expressed in local coordinates, that the camera looks from.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>LookOffset</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string>Offset, relative to the object's centre and expressed in local coordinates, that the camera looks toward.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Sets the camera eye offset, and the offset that camera is looking at, for avatars that sit on the linked prim.</string>
+ <key>description</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>name</key>
+ <string>LinkNumber</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Colour</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string>Colour in RGB &lt;R.R, G.G, B.B&gt;</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Face</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Side number or ALL_SIDES.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>If a task exists in the link chain at LinkNumber, set the Face to color.</string>
+ <key>description</key>
+ <string>Sets the colour of the linked child's side, specified by LinkNumber.</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>name</key>
+ <string>Link</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims).</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Face</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Face number.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Parameters</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string>A set of name/value pairs (in no particular order)</string>
+ </map>
+ </array>
+ <key>summary</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>
+ <key>description</key>
+ <string>Set the media parameters for a particular face on the linked prim(s) without a delay.\n
+ Returns an integer that is a STATUS_* flag which details the success/failure of the operation(s).</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>name</key>
+ <string>LinkNumber</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Parameters</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Set primitive parameters for LinkNumber based on Parameters.</string>
+ <key>description</key>
+ <string>Sets the parameters (or properties) of any linked prim in one step.</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>name</key>
+ <string>LinkNumber</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Parameters</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Set primitive parameters for LinkNumber based on Parameters, without a delay.</string>
+ <key>description</key>
+ <string>Set parameters for link number, from the list of Parameters, with no built-in script sleep. This function is identical to llSetLinkPrimitiveParams, except without the 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>name</key>
+ <string>LinkNumber</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Texture</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Face</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Sets the Texture of Face for LinkNumber.</string>
+ <key>description</key>
+ <string>Sets the Texture of linked prims.</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>name</key>
+ <string>LinkNumber</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag to effect</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Mode</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Mask of Mode flags.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Face</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Face number or ALL_SIDES.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>SizeX</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Horizontal frames (ignored for ROTATE and SCALE).</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>SizeY</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Vertical frames (ignored for ROTATE and SCALE).</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Start</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string>Start position/frame number (or radians for ROTATE).</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Length</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string>number of frames to display (or radians for ROTATE).</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Rate</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string>Frames per second (must not greater than zero).</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Animate the texture on the specified prim's face/faces.</string>
+ <key>description</key>
+ <string>Animate the texture on the specified face/faces of the specified prim/prims by setting the texture scale and offset.\n
+ Identical to llSetTextureAnim except able to modify any prim in the link set.</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>name</key>
+ <string>Rotation</string>
+ <key>type</key>
+ <string>rotation</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Sets the rotation of a child prim relative to the root prim.</string>
+ <key>description</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>name</key>
+ <string>Limit</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>The amount to reserve, which must be less than the allowed maximum (currently 64KB) and not already have been exceeded.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Request Limit bytes to be reserved for this script. This function has no effect if the script is running in the LSO VM.</string>
+ <key>description</key>
+ <string>Request Limit bytes to be reserved for this script. This function has no effect if the script is running in the LSO VM.\n
+ Return TRUE or FALSE indicating whether the limit was set successfully.</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>name</key>
+ <string>Description</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Sets the object's description.</string>
+ <key>description</key>
+ <string>Sets the description of the scripted prim. You can get the description using llGetObjectDesc.\n
+ The description 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>
+ <string>Name</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Sets the object's name.</string>
+ <key>description</key>
+ <string>Sets the object's name.</string>
+ </map>
+ <key>llSetObjectPermMask</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>
+ <string>PermissionFlag</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>MASK_* flag</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>PermissionMask</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Permission bit-field (PERM_* flags)</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Sets the given permission mask to the new value on the root object the task is attached to.</string>
+ <key>description</key>
+ <string>Sets the given permission mask to the new value on the root object the task 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>name</key>
+ <string>URL</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Sets the streaming audio URL for the parcel object is on.</string>
+ <key>description</key>
+ <string>Sets the streaming audio URL for the parcel the scripted object is on (the 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>name</key>
+ <string>Price</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>QuickButtons</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Sets the default amount when someone chooses to pay this object.</string>
+ <key>description</key>
+ <string>Sets the values of the buttons and the text box default for the Pay dialogue, when a user right-clicks on the object and selects "Pay".\n
+ llSetPayPrice will affect what buttons exist, what their values are, and whether or not there is a manual payment text entry box.</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>name</key>
+ <string>MaterialBits</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>GravityMultiplier</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Restitution</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Friction</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Density</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Sets the requested attributes of the root object's physics material.</string>
+ <key>description</key>
+ <string>Sets the requested attributes of the root object's physics material.</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>name</key>
+ <string>Position</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Sets the position (if the script isn't physical).</string>
+ <key>description</key>
+ <string>If the object is not physical, this function sets the position in region coordinates. If the object is a child prim, the position is treated as root relative and the link-set is adjusted.</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>name</key>
+ <string>Parameters</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Set primitive parameters.</string>
+ <key>description</key>
+ <string>This function changes the many properties (or "parameters") of a prim in one operation. The Parameters are a list of changes.</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>name</key>
+ <string>Face</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Face number</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>MediaParameters</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string>A set of name/value pairs (in no particular order)</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Sets the MediaParameters for a particular Face on an object. If media is not already on this object, add it.
+ MediaParameters is a set of name/value pairs in no particular order. Parameters not specified are unchanged, or if new media is added then set to the default specified.</string>
+ <key>description</key>
+ <string>Set the MediaParameters for a particular face.\n
+ Returns an integer that is a STATUS_* flag which details the success/failure of the operation(s).</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>name</key>
+ <string>URL</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Deprecated: Use llSetPrimMediaParams instead.</string>
+ <key>description</key>
+ <string>Deprecated: Use llSetPrimMediaParams instead. Updates the URL for the web page shown on the sides of the object.</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>name</key>
+ <string>Position</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string>Vector. The location to move to, in region coordinates.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Sets the Position anywhere within the region (if the object isn't physical).</string>
+ <key>description</key>
+ <string>Tries to moves the entire object so that the root prim is within 0.1m of Position.\n
+ Returns an integer boolean, TRUE if the object is successfully placed within 0.1 m of Position, FALSE otherwise.\n
+ The object with the script will move the root prim position to the given location. The position is any position within the region. If the position is below ground, it will be set to the ground level at that x,y location. The function has no delay or throttle.</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>name</key>
+ <string>PIN</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</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>
+ <key>description</key>
+ <string>If PIN is set to a non-zero number, the task will accept remote script loads via llRemoteLoadScriptPin if passed the matching PIN. Otherwise 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>name</key>
+ <string>Rotation</string>
+ <key>type</key>
+ <string>rotation</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Sets the rotation (if the script isn't physical).</string>
+ <key>description</key>
+ <string>If the object is not physical, this function sets the rotation.\n
+ If the script is in a child prim, the position is treated as root relative and the linked set is adjusted.</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>name</key>
+ <string>Scale</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Sets the scale.</string>
+ <key>description</key>
+ <string>Sets the prim's scale (size).</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>name</key>
+ <string>ScriptName</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Running</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Control the state of a named script.</string>
+ <key>description</key>
+ <string>Control the state of a script 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>name</key>
+ <string>Text</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Displays Text rather than "Sit" in context menu.</string>
+ <key>description</key>
+ <string>Displays Text rather than 'Sit' in the viewer's 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>name</key>
+ <string>QueueEnable</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Boolean, sound queuing: TRUE enables, FALSE disables (default).</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Determines whether attached sound calls wait for the current sound to finish (0 = no [default], non-zero = yes).</string>
+ <key>description</key>
+ <string>Sets whether successive calls to llPlaySound, llLoopSound, etc., (attached sounds) interrupt the playing sound.\n
+ The default for objects is FALSE. Setting this value to TRUE will make the sound wait until the current playing sound reaches its end. The queue is one level deep.</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>name</key>
+ <string>Radius</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Establishes a hard cut-off radius for audibility of scripted sounds (both attached and triggered).</string>
+ <key>description</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>name</key>
+ <string>Status</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Value</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</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>
+ <key>description</key>
+ <string>Sets the Status to Value. Use STATUS_* constants for the values of status.</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>name</key>
+ <string>Text</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Colour</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Opacity</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Set text floating over object.</string>
+ <key>description</key>
+ <string>Sets the text that floats above the object, using the specified colour and opacity level.</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>name</key>
+ <string>Texture</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Face</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Sets the Texture of Face.</string>
+ <key>description</key>
+ <string>Sets the Texture of Face. If Face is ALL_SIDES, set the texture on all faces.</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>name</key>
+ <string>Mode</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Mask of Mode flags.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Face</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Face number or ALL_SIDES.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>SizeX</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Horizontal frames (ignored for ROTATE and SCALE).</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>SizeY</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Vertical frames (ignored for ROTATE and SCALE).</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Start</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string>Start position/frame number (or radians for ROTATE).</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Length</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string>number of frames to display (or radians for ROTATE).</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Rate</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string>Frames per second (must not greater than zero).</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Animate the texture on the specified face/faces.</string>
+ <key>description</key>
+ <string>Animates a texture by setting the texture scale and offset.</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>name</key>
+ <string>Rate</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Cause the timer event to be triggered every Rate seconds.</string>
+ <key>description</key>
+ <string>Sets the timer event to be triggered at the specified Rate, in seconds.\n
+ Passing in 0.0 stops further timer events.</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>name</key>
+ <string>Torque</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string>Torque force.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Local</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Boolean, if TRUE uses local axis, if FALSE uses region axis.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Sets the Torque of object, in local coordinates if Local == TRUE (if the script is physical).</string>
+ <key>description</key>
+ <string>If the object is physical, this function sets the torque.\n
+ The vector is in local coordinates if Local is TRUE, global if FALSE.</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>name</key>
+ <string>Text</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Displays Text in the menu that acts on a touch.</string>
+ <key>description</key>
+ <string>Displays Text in the viewer context 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>name</key>
+ <string>Flags</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Sets the enabled bits in 'flags'.</string>
+ <key>description</key>
+ <string>Sets the vehicle flags to TRUE.\nValid parameters can be found in the vehicle flags constants section.</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>name</key>
+ <string>ParameterName</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>ParameterValue</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Sets the specified vehicle float parameter.</string>
+ <key>description</key>
+ <string>Sets the vehicle floating point parameter.\n
+ Valid parameters and their expected values can be found in the vehicle parameter constants section.</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>name</key>
+ <string>ParameterName</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>ParameterValue</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Sets the specified vehicle rotation parameter.</string>
+ <key>description</key>
+ <string>Sets the vehicle rotation parameter.\n
+ Valid parameters can be found in the vehicle parameter constants section.</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>name</key>
+ <string>Type</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Sets vehicle to one of the default types.</string>
+ <key>description</key>
+ <string>Activates the vehicle action and choose vehicle Type.\n
+ Valid Types and an explanation of their characteristics can be found in the vehicle type constants section.</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>name</key>
+ <string>ParameterName</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>ParameterValue</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Sets the specified vehicle vector parameter.</string>
+ <key>description</key>
+ <string>Sets the vehicle vector parameter.\nValid parameters can be found in the vehicle parameter constants section.</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>name</key>
+ <string>Force</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string>The force to apply.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Local</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>If TRUE, the vForce is treated as a local directional vector instead of a regional directional vector.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Sets an objects velocity, in local coordinates if Local == TRUE (if the script is physical).</string>
+ <key>description</key>
+ <string>Applies Force to a physical object.</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>name</key>
+ <string>Text</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns a string of 40 hex characters that is the SHA1 security Hash of Text.</string>
+ <key>description</key>
+ <string>Returns a string of 40 hex characters that is the SHA1 security hash of the supplied string.</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>name</key>
+ <string>Channel</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Text</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>shouts Text on Channel.</string>
+ <key>description</key>
+ <string>Shout Text on Channel. Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen for through the llListen function.</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>name</key>
+ <string>Theta</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the sine of Theta (Theta in radians).</string>
+ <key>description</key>
+ <string>Returns the sine of 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>name</key>
+ <string>Offset</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Rotation</string>
+ <key>type</key>
+ <string>rotation</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Set the sit location for this object (if offset == &lt;0,0,0&gt; clear it).</string>
+ <key>description</key>
+ <string>Set the sit location for this object. If offset == ZERO_VECTOR, clears the sit target.</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>name</key>
+ <string>Time</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Put script to sleep for Time seconds.</string>
+ <key>description</key>
+ <string>Puts the script to sleep for time specified, in 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>name</key>
+ <string>Sound</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Volume</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Queue</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Loop</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Deprecated: Use llPlaySound instead.</string>
+ <key>description</key>
+ <string>Deprecated: Use llPlaySound instead.\nPlays Sound at Volume and specifies whether it should loop or not.</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>name</key>
+ <string>Sound</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Deprecated: Use llPreloadSound instead.</string>
+ <key>description</key>
+ <string>Deprecated: Use llPreloadSound instead.\nPreloads a sound on viewers within range.</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>name</key>
+ <string>Value</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the square root of Value, or returns 0 and triggers a Math Error for imaginary results.</string>
+ <key>description</key>
+ <string>Returns the square root of the value. If the value is less than 0.0, this function returns 0.0 and raises a maths runtime error.</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>name</key>
+ <string>Animation</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Start Animation for agent that owns object.</string>
+ <key>description</key>
+ <string>This function starts the animation for the last avatar that granted the object PERMISSION_TRIGGER_ANIMATION permission.</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>name</key>
+ <string>Animation</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Stop Animation for agent that owns object.</string>
+ <key>description</key>
+ <string>This function stops the animation for the last avatar that granted the object PERMISSION_TRIGGER_ANIMATION permission.</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>
+ <array/>
+ <key>summary</key>
+ <string>Stop hovering to a height.</string>
+ <key>description</key>
+ <string>Stop hovering at 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>
+ <array/>
+ <key>summary</key>
+ <string>Stop causing object to point at a target.</string>
+ <key>description</key>
+ <string>Stop causing object to look at 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>
+ <array/>
+ <key>summary</key>
+ <string>Stops critically damped motion.</string>
+ <key>description</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>
+ <array/>
+ <key>summary</key>
+ <string>Stops currently attached sound.</string>
+ <key>description</key>
+ <string>Stops the currently playing attached sound started with llPlaySound or llLoopSound. Has no effect on sounds started with llTriggerSound.</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>name</key>
+ <string>Text</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the length of string.</string>
+ <key>description</key>
+ <string>Returns the number of characters in the specified text.</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>name</key>
+ <string>Text</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Converts a string to the Base64 representation of the string.</string>
+ <key>description</key>
+ <string>Converts a string to the Base 64 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>name</key>
+ <string>Text</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string>String to trim</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>TrimType</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>STRING_TRIM_HEAD, STRING_TRIM_TAIL, or STRING_TRIM.</string>
+ </map>
+ </array>
+ <key>summary</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>
+ <key>description</key>
+ <string>Outputs a string, eliminating white-space from the start and/or end of the specified string.\n
+ Constants for trim_type:\n
+ STRING_TRIM_HEAD: trim all leading spaces in text\n
+ STRING_TRIM_TAIL: trim all trailing spaces in text\n
+ STRING_TRIM: trim all leading and trailing spaces in text</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>name</key>
+ <string>Text</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Sequence</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns an integer that is the index in source where pattern first appears. Returns -1 if not found.</string>
+ <key>description</key>
+ <string>Returns an index of the text where the sequence of characters first appears.\n
+ Returns -1 if no match is 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>name</key>
+ <string>AvatarID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Deprecated: Use llSetCameraParams instead.</string>
+ <key>description</key>
+ <string>Deprecated: Use llSetCameraParams instead. Move avatar's viewpoint to task.</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>name</key>
+ <string>Controls</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Bit-field of CONTROL_* flags.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Accept</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Boolean, determines whether control events are generated.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>PassOn</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>Boolean, determines whether controls are disabled.</string>
+ </map>
+ </array>
+ <key>summary</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>
+ <key>description</key>
+ <string>Requires the PERMISSION_TAKE_CONTROLS permission to run.</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>name</key>
+ <string>Theta</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the tangent of Theta (Theta in radians).</string>
+ <key>description</key>
+ <string>Returns the tangent of Theta 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>name</key>
+ <string>Position</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Range</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Sets positions within range of position as a target and return an ID for the target.</string>
+ <key>description</key>
+ <string>Set object position, within range of position, as a target and returns an integer 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>name</key>
+ <string>Axis</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>SpinRate</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Gain</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Attempt to spin at SpinRate with strength Gain.</string>
+ <key>description</key>
+ <string>Attempt to spin at SpinRate with strength Gain on axis.\n
+ A spin-rate of 0.0 cancels the spin. This function always works in object local coordinates.</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>name</key>
+ <string>Target</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Removes target number.</string>
+ <key>description</key>
+ <string>Remove target number.</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>name</key>
+ <string>AvatarID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Teleports agent on owner's land to agent's home location.</string>
+ <key>description</key>
+ <string>Teleport agent over the 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>name</key>
+ <string>AvatarID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Text</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Channel</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</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>
+ <key>description</key>
+ <string>Shows a dialogue box on avatar's screen with the text message.\n
+ It contains a text box for input. Any text that is entered is said on the specified channel (as if by the avatar) when the "OK" button is clicked.</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>name</key>
+ <string>Text</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns a string that is Text with all lower-case characters.</string>
+ <key>description</key>
+ <string>Returns Text in all lower case.</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>name</key>
+ <string>Text</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns a string that is Text with all upper-case characters.</string>
+ <key>description</key>
+ <string>Returns Text in all upper case.</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>name</key>
+ <string>AvatarID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Amount</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</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>
+ <key>description</key>
+ <string>Attempts to send the amount of money to the specified avatar, and trigger a transaction_result event identified by the returned key.</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>name</key>
+ <string>Sound</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Volume</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Plays Sound at Volume (0.0 - 1.0), centered at but not attached to object.</string>
+ <key>description</key>
+ <string>Plays a transient sound NOT attached to an object.\n
+ The sound plays from a stationary position located at the centre of the object at the time of the triggering.\n
+ There is no limit to the number of triggered sounds which can be generated by an object, and calling llTriggerSound does not affect the attached sounds created by llPlaySound and llLoopSound. This is very useful for things like collision noises, explosions, etc. There is no way to stop or alter the volume of a sound triggered by this function.</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>name</key>
+ <string>Sound</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Volume</string>
+ <key>type</key>
+ <string>float</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>TNE</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>BSW</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</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>
+ <key>description</key>
+ <string>Plays a transient sound NOT attached to an object, with its audible range limited by the axis-aligned bounding box define by TNE (top-north-east) and BSW (bottom-south-west).\n
+ The sound plays from a stationary position located at the centre of the object at the time of the triggering.\n
+ There is no limit to the number of triggered sounds which can be generated by an object, and calling llTriggerSound does not affect the attached sounds created by llPlaySound and llLoopSound. This is very useful for things like collision noises, explosions, etc. There is no way to stop or alter the volume of a sound triggered by this function.</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>name</key>
+ <string>URL</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns an unescaped/ unencoded version of URL, replacing %20 with spaces etc.</string>
+ <key>description</key>
+ <string>Returns the string that is the URL unescaped, replacing "%20" with spaces, etc., version of URL.\n
+ The function can output raw UTF-8 strings.</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>name</key>
+ <string>AvatarID</string>
+ <key>type</key>
+ <string>key</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</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>
+ <key>description</key>
+ <string>If the agent identified 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>name</key>
+ <string>Options</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string>Character configuration options. Takes the same constants as llCreateCharacter().</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Change the character's settings.</string>
+ <key>description</key>
+ <string>Updates settings for a character.</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>name</key>
+ <string>Location1</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Location2</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the 3D distance between Location1 and Location2.</string>
+ <key>description</key>
+ <string>Returns the distance from location 1 to location 2.</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>name</key>
+ <string>Vector</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the magnitude of Vector.</string>
+ <key>description</key>
+ <string>Returns the magnitude of the 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>name</key>
+ <string>Vector</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the v normalized.</string>
+ <key>description</key>
+ <string>Returns normalized vector.</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>name</key>
+ <string>DetectEnabled</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string>.TRUE enables, FALSE disables.</string>
+ </map>
+ </array>
+ <key>summary</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>
+ <key>description</key>
+ <string>When detect = TRUE, this makes the entire link set the script is attached to phantom. If another object (including avatars) interpenetrates it, it will get a collision_start event.\n
+ When an object stops interpenetrating, a collision_end event is generated. While the other is inter-penetrating, collision events are NOT generated. The script must be applied to the root object of the link set to get the collision events.\n
+ Collision filters work normally.</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>name</key>
+ <string>Origin</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string>Central point to wander about.</string>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Area</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</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>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Options</string>
+ <key>type</key>
+ <string>list</string>
+ <key>description</key>
+ <string>No options available at this time.</string>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Wander within a specified volume.</string>
+ <key>description</key>
+ <string>Sets a character to wander about a central spot within a specified area.</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>name</key>
+ <string>Offset</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the water height below the object position + offset.</string>
+ <key>description</key>
+ <string>Returns the water height at the object's 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>name</key>
+ <string>Channel</string>
+ <key>type</key>
+ <string>integer</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Text</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Whispers Text on Channel.</string>
+ <key>description</key>
+ <string>Whisper Text on Channel. Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen for through the llListen function.</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>name</key>
+ <string>Offset</string>
+ <key>type</key>
+ <string>vector</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Returns the wind velocity at the object position + offset.</string>
+ <key>description</key>
+ <string>Returns the wind velocity at the object's position + offset.</string>
+ </map>
+ <key>llXorBase64Strings</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>name</key>
+ <string>Text1</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Text2</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Deprecated: Please use llXorBase64StringsCorrect 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>
+ <key>description</key>
+ <string>Deprecated: Use llXorBase64StringsCorrect instead.\nIncorrectly performs an exclusive OR on two Base64 strings and returns a Base64 string.</string>
+ </map>
+ <key>llXorBase64StringsCorrect</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>name</key>
+ <string>Text1</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ <map>
+ <key>name</key>
+ <string>Text2</string>
+ <key>type</key>
+ <string>string</string>
+ <key>description</key>
+ <string/>
+ </map>
+ </array>
+ <key>summary</key>
+ <string>Correctly performs an exclusive OR on two Base64 strings and returns a Base64 string.\n
+ Text2 repeats if it is shorter than Text1.</string>
+ <key>description</key>
+ <string>Performs an exclusive-OR on two Base64 strings and returns a Base64 string. text-2 repeats if it is shorter than text-1.\n
+ This function is for encrypting data. Put your data in text-1 and your key in text-2 to encrypt or put the encrypted data into text-1 with the same key in text-2 to decrypt again.</string>
+ </map>
+ </map>
+ </map>
+</llsd> \ No newline at end of file
diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp
index 9c25e69db0..45d92e6be0 100644
--- a/indra/newview/llpreviewscript.cpp
+++ b/indra/newview/llpreviewscript.cpp
@@ -50,11 +50,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"
@@ -386,39 +384,11 @@ BOOL LLScriptEdCore::postBuild()
initMenu();
+ mEditor->mKeywords.initialise();
+ // FIX: Refactor LLTextEditor::loadKeywords so these can be removed.
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)
- {
- // 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);
- }
- }
LLColor3 color(0.5f, 0.0f, 0.15f);
mEditor->loadKeywords(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS,"keywords.ini"), funcs, tooltips, color);
@@ -430,6 +400,7 @@ BOOL LLScriptEdCore::postBuild()
for (token_it = mEditor->keywordsBegin(); token_it != mEditor->keywordsEnd(); ++token_it)
{
token = token_it->second;
+ // FIX: change this to use the new Token Type enum entries.
if (token->getColor() == color) // Wow, what a disgusting hack.
{
primary_keywords.push_back( wstring_to_utf8str(token->getToken()) );
@@ -655,7 +626,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;
@@ -666,7 +637,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;
}