<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://opensimulator.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://opensimulator.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Twitch</id>
		<title>OpenSimulator - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://opensimulator.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Twitch"/>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Special:Contributions/Twitch"/>
		<updated>2026-05-16T01:21:38Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.19.9</generator>

	<entry>
		<id>http://opensimulator.org/wiki/File:Powered-by-simhostlogo.png</id>
		<title>File:Powered-by-simhostlogo.png</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/File:Powered-by-simhostlogo.png"/>
				<updated>2012-09-14T18:33:58Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: SimHost.com 'Powered By' logo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;SimHost.com 'Powered By' logo&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Webinterface</id>
		<title>Webinterface</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Webinterface"/>
				<updated>2012-06-23T22:10:40Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: /* PHP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ {{Quicklinks}} {{thirdparty}} &lt;br /&gt;
&lt;br /&gt;
== Addon Modules ==&lt;br /&gt;
&lt;br /&gt;
* [[Wifi]] - A Simple Account Management Front-end&lt;br /&gt;
&lt;br /&gt;
== PHP ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/JamesStallings/EgressWFE EgressWFE] - Web Interface for stock ROBUST-based OpenSimulator Grids (get OpenSimulator here: [http://opensimulator.org/ OpenSimulator]). Extensive grid management for operators, user account management for users. Needs additional work, but is very functional. BSD Licensed. By James G. Stallings II aka Hiro Protagonist, [http://SimHost.com SimHost.com], and others. Note that Egress is written using the Codeigniter 2.0 PHP Framework.&lt;br /&gt;
* [https://github.com/JamesStallings/gainsayWFE gainsayWFE] - Extremely Minimalist Web Interface for stock ROBUST-based OpenSimulator Grids (get OpenSimulator here: [http://opensimulator.org/ OpenSimulator]). Web-based account requests, Userspace request management scripts to review, approve, or delete avatar account requests made over the web. BSD Licensed. By James G. Stallings II aka Hiro Protagonist, [http://SimHost.com SimHost.com], and others.&lt;br /&gt;
* [http://www.nsl.tuis.ac.jp/xoops/modules/xpwiki/?XoopenSim%20(E) XoopenSim] - Web Interface for [http://xoopscube.org/ Xoops Cube]. v1.50 supports MySQL Data Base of 0.6.7,0.6.8,0.6.9 and 0.7, 0.7.1Dev, and it includes flotsam group function, osprofile, ossearch, mute list and login screen function. &lt;br /&gt;
* [http://www.nsl.tuis.ac.jp/xoops/modules/xpwiki/?Modlos%20%28E%29 Modlos] - Web Interface for [http://moodle.org/ Moodle]. This software is sister application of XoopenSim. Modlos has same functions with XoopenSim and supports cooperation with [http://www.sloodle.org Sloodle]. &lt;br /&gt;
* [http://forge.opensimulator.org/gf/project/opensimwi/ OpenSimulator Web Interface] This is a PHP Web Interface for OpenSimulator (Open Simulator Project), it allows grid citizens to create User Accounts to access the grid. Grid Owners can also manage all users for the grid, with a very powerful CMS system included. (Beta Release for 0.7.x is in Branches) &lt;br /&gt;
* [http://d4os.org D4os] - A set of [http://drupal.org Drupal] modules to control a grid.&lt;br /&gt;
* [http://openmetaverse.googlecode.com/ SimianGridFrontend] - The PHP-based web interface that accompanies SimianGrid. SimianGridFrontend is based on the CodeIgniter PHP MVC framework. &lt;br /&gt;
* [http://lab.newworldgrid.com/Wiki/index.php/Rest_Ajax_Manager/ Nwg Rest Ajax Manager] - A remote console using php &amp;amp;amp; ajax to user with RestConsole system. &lt;br /&gt;
* [http://lab.newworldgrid.com/Wiki/index.php/Ajax_Map/ Nwg Ajax Map] - A dynamic map of the grid using ajax with a reservation system. &lt;br /&gt;
* [http://code.google.com/p/openmetaverse/wiki/SimianGrid SimianGrid] - A scalable, extensible, light-weight, open source persistence layer for MMOs and virtual worlds, written in PHP. Also provides the frontend mentioned above and WebDAV access to inventory. &lt;br /&gt;
* [http://sourceforge.net/apps/trac/unga/wiki/WikiStart unga] - Both an UGAIM (User, Grid, Assets, Inventory, Messaging) server system and a backend for configuring that servers. Also, its modular architecture allows to create (or plug) specialized modules created in standard PHP. &lt;br /&gt;
* [http://www.foto50.com/ jOpenSim] - Joomla! component for interacting with an OpenSimulator server and 2 modules (grid status and friends online). The component is developed and designed with opensimulator starting from V 0.7.0.1 running in grid mode with MySQL as storage engine, but also can work with standalone mode.&lt;br /&gt;
&lt;br /&gt;
=== Optional modules ===&lt;br /&gt;
&lt;br /&gt;
* [http://code.google.com/p/flotsam/wiki/XmlRpcGroups XmlRpcGroups] - A set of xmlrpc methods to manage groups in opensim. See [[Groups|this page]] for how to configure it. &lt;br /&gt;
* [http://forge.opensimulator.org/gf/project/ossearch ossearch] - A set of xmlrpc methods to manage search, events and classifieds. See [[OpenSimSearch|this page]] for how to configure it. &lt;br /&gt;
* [http://forge.opensimulator.org/gf/project/osprofile osprofile] - A set of xmlrpc methods to manage persistent profile. &lt;br /&gt;
* [http://forge.opensimulator.org/gf/project/webassets/ webassets] - A script to render assets pictures to display on a website.&lt;br /&gt;
&lt;br /&gt;
== Python ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/phrearch/hwios HWIOS] - Websocket CMS with experimental OpenSimulator support. HWIOS includes OpenSimulator user management, region management with interactive scalable maps, distributed service management(start/stop/kill service + remote websocket consoles), IAR/OAR sharing through teknon webdav shares, websocket chat, a realtime distributed wiki(hyki) and a simple collaborative drawing application. HWIOS is currently compatible with OpenSimulator 0.7.1 and webkit browsers(Chrome/Chromium 8+, Safari and FF4 to some degree). For more information, check out the [http://hwios.blogspot.com HWIOS Blog] &lt;br /&gt;
* [https://github.com/phrearch/teknon Teknon] - A Twisted TCP daemon, capable of communicating over a persistent connection between local services and HWIOS websockets through subprocess pipes. HWIOS uses teknon for distributed service management and remote consoles.&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Webinterface</id>
		<title>Webinterface</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Webinterface"/>
				<updated>2012-06-23T20:19:53Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: /* PHP */ add egress and gainsay PHP web interfaces&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ {{Quicklinks}} {{thirdparty}} &lt;br /&gt;
&lt;br /&gt;
== Addon Modules ==&lt;br /&gt;
&lt;br /&gt;
* [[Wifi]] - A Simple Account Management Front-end&lt;br /&gt;
&lt;br /&gt;
== PHP ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/JamesStallings/EgressWFE EgressWFE] - Web Interface for stock ROBUST-based OpenSimulator Grids (get OpenSimulator here: [http://opensimulator.org/ OpenSimulator]). Extensive grid management for operators, user account management for users. Needs additional work, but is very functional. BSD Licensed. By James G. Stallings II aka Hiro Protagonist, SimHost.com, and others. Note that Egress is written using the Codeigniter 2.0 PHP Framework.&lt;br /&gt;
* [https://github.com/JamesStallings/gainsayWFE gainsayWFE] - Extremely Minimalist Web Interface for stock ROBUST-based OpenSimulator Grids (get OpenSimulator here: [http://opensimulator.org/ OpenSimulator]). Web-based account requests, Userspace request management scripts to review, approve, or delete avatar account requests made over the web. BSD Licensed. By James G. Stallings II aka Hiro Protagonist, SimHost.com, and others.&lt;br /&gt;
* [http://www.nsl.tuis.ac.jp/xoops/modules/xpwiki/?XoopenSim%20(E) XoopenSim] - Web Interface for [http://xoopscube.org/ Xoops Cube]. v1.50 supports MySQL Data Base of 0.6.7,0.6.8,0.6.9 and 0.7, 0.7.1Dev, and it includes flotsam group function, osprofile, ossearch, mute list and login screen function. &lt;br /&gt;
* [http://www.nsl.tuis.ac.jp/xoops/modules/xpwiki/?Modlos%20%28E%29 Modlos] - Web Interface for [http://moodle.org/ Moodle]. This software is sister application of XoopenSim. Modlos has same functions with XoopenSim and supports cooperation with [http://www.sloodle.org Sloodle]. &lt;br /&gt;
* [http://forge.opensimulator.org/gf/project/opensimwi/ OpenSimulator Web Interface] This is a PHP Web Interface for OpenSimulator (Open Simulator Project), it allows grid citizens to create User Accounts to access the grid. Grid Owners can also manage all users for the grid, with a very powerful CMS system included. (Beta Release for 0.7.x is in Branches) &lt;br /&gt;
* [http://d4os.org D4os] - A set of [http://drupal.org Drupal] modules to control a grid.&lt;br /&gt;
* [http://openmetaverse.googlecode.com/ SimianGridFrontend] - The PHP-based web interface that accompanies SimianGrid. SimianGridFrontend is based on the CodeIgniter PHP MVC framework. &lt;br /&gt;
* [http://lab.newworldgrid.com/Wiki/index.php/Rest_Ajax_Manager/ Nwg Rest Ajax Manager] - A remote console using php &amp;amp;amp; ajax to user with RestConsole system. &lt;br /&gt;
* [http://lab.newworldgrid.com/Wiki/index.php/Ajax_Map/ Nwg Ajax Map] - A dynamic map of the grid using ajax with a reservation system. &lt;br /&gt;
* [http://code.google.com/p/openmetaverse/wiki/SimianGrid SimianGrid] - A scalable, extensible, light-weight, open source persistence layer for MMOs and virtual worlds, written in PHP. Also provides the frontend mentioned above and WebDAV access to inventory. &lt;br /&gt;
* [http://sourceforge.net/apps/trac/unga/wiki/WikiStart unga] - Both an UGAIM (User, Grid, Assets, Inventory, Messaging) server system and a backend for configuring that servers. Also, its modular architecture allows to create (or plug) specialized modules created in standard PHP. &lt;br /&gt;
* [http://www.foto50.com/ jOpenSim] - Joomla! component for interacting with an OpenSimulator server and 2 modules (grid status and friends online). The component is developed and designed with opensimulator starting from V 0.7.0.1 running in grid mode with MySQL as storage engine, but also can work with standalone mode.&lt;br /&gt;
&lt;br /&gt;
=== Optional modules ===&lt;br /&gt;
&lt;br /&gt;
* [http://code.google.com/p/flotsam/wiki/XmlRpcGroups XmlRpcGroups] - A set of xmlrpc methods to manage groups in opensim. See [[Groups|this page]] for how to configure it. &lt;br /&gt;
* [http://forge.opensimulator.org/gf/project/ossearch ossearch] - A set of xmlrpc methods to manage search, events and classifieds. See [[OpenSimSearch|this page]] for how to configure it. &lt;br /&gt;
* [http://forge.opensimulator.org/gf/project/osprofile osprofile] - A set of xmlrpc methods to manage persistent profile. &lt;br /&gt;
* [http://forge.opensimulator.org/gf/project/webassets/ webassets] - A script to render assets pictures to display on a website.&lt;br /&gt;
&lt;br /&gt;
== Python ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/phrearch/hwios HWIOS] - Websocket CMS with experimental OpenSimulator support. HWIOS includes OpenSimulator user management, region management with interactive scalable maps, distributed service management(start/stop/kill service + remote websocket consoles), IAR/OAR sharing through teknon webdav shares, websocket chat, a realtime distributed wiki(hyki) and a simple collaborative drawing application. HWIOS is currently compatible with OpenSimulator 0.7.1 and webkit browsers(Chrome/Chromium 8+, Safari and FF4 to some degree). For more information, check out the [http://hwios.blogspot.com HWIOS Blog] &lt;br /&gt;
* [https://github.com/phrearch/teknon Teknon] - A Twisted TCP daemon, capable of communicating over a persistent connection between local services and HWIOS websockets through subprocess pipes. HWIOS uses teknon for distributed service management and remote consoles.&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Vehicles</id>
		<title>Vehicles</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Vehicles"/>
				<updated>2009-09-23T03:51:00Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: /* VEHICLE Scripting Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
August 2009: Kitto Flora is revising the OdePlugin files in an attempt to provide SL-compatible VEHICLE functionality to OpenSimulator. A couple of test regions have been provided by Bri Hasp, these are Sea-3 and Sea-4 in OSgrid. You may visit there and test vehicles but please clean up after. The regions will frequently be restarted to test revisions. The revised Open Simulator files are being made available as a git branch, check here to see what may or may not work. &lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
Here some terms are defined so that when we communicate we are talking about the same things.&lt;br /&gt;
&lt;br /&gt;
==== Vehicle ====&lt;br /&gt;
&lt;br /&gt;
Any object or link-set that moves. It is usually rideable. It may be Physical or not.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== VEHICLE ====&lt;br /&gt;
Any object or link-set that uses LSL VEHICLE functions to achieve mobility. It is set to other than 'VEHICLE_TYPE_NONE'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Physical ====&lt;br /&gt;
Any object or link-set that is llSetStatus(STATUS_PHYSICS, TRUE). It will fall due to gravity (unless buoyancy is changed) and collide with other prims, avatars and the ground (unless set phantom).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Non-Physical ====&lt;br /&gt;
Any object or link-set that is llSetStatus(STATUS_PHYSICS, FALSE), or has never has llSetStatus(STATUS_PHYSICS,...) applied. Such objects 'stick in midair' and can interpenetrate other objects.&lt;br /&gt;
&lt;br /&gt;
==== Kinematic ====&lt;br /&gt;
Motion system used by Non-Physical objects, applied by such functions as llSetPos() and llSetRot(). &lt;br /&gt;
&lt;br /&gt;
==== Dynamic ====&lt;br /&gt;
Motion system used by Physical objects, applied by such functions as llSetForce() and llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, &amp;lt;...&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== About This Project ==&lt;br /&gt;
The objectives of this project are:&lt;br /&gt;
# To provide VEHICLE associated LSL functions within OpenSimulator that are compatible with Second Life functionality. This means trying to get them really close, but as we are trying to emulate complex HAVOK functions using what is available in ODE they may be only close to the SL functions. &lt;br /&gt;
# To clean up the OdePlugin files. Over many revisions and add-ons they have become somewhat non-optimal. In particular the 'Move' operation that makes objects move around needs to be very clean and smooth so that the update rate remains high.&lt;br /&gt;
# Maintain the existing non-VEHICLE dynamic functions and fix errors where found.&lt;br /&gt;
&lt;br /&gt;
== Vehicle LSL Functions in revised OpenSimulator ==&lt;br /&gt;
There are three categories of LSL functions that are used by Vehicles: Kinematic, Dynamic and VEHICLE. These are listed below with information on their current status within the revised OpenSimulator. (Not the general release at this time.) &lt;br /&gt;
Kinematic vehicle motion can be used by non-physical objects. VEHICLE motion and the associated functions '''ONLY''' apply to objects that are set to a VEHICLE_TYPE of AIRPLANE, BALLOON, BOAT, CAR or SLED. Dynamic functions '''ONLY''' apply (at this time) to VEHICLE_TYPE_NONE, which is the default condition of an object. (In SL it appears that one can use Dynamic functions on a VEHICLE, but to keep things simple at the start of this project such a combination is ignored.)&lt;br /&gt;
&lt;br /&gt;
== Known Problems ==&lt;br /&gt;
# timer() event ceases about 10 seconds after Vehicle moves. Does not restart until many seconds after Vehicle stops. '''Work-around:''' Use llSensor() for a non-existent object at short range and no_sensor() event to re-trigger it. This produces about 1000 events per second. Divide down to produce more reasonable rates.&lt;br /&gt;
# llSetBuoyancy() is not hooked to physics methods. LSL engine problem. '''Work-around:''' None.  Big problem for non-VEHICLE vehicles.&lt;br /&gt;
# llSetHoverHeight() is not hooked to physics methods. LSL engine problem.  '''Work-around:''' None.  Big problem for non VEHICLE vehicles.&lt;br /&gt;
# llSetVehicleFlags() and llRemoveVehicleFlags() are not hooked to physics methods, and may cause simulator crash. LSL engine problem. '''Work-around:''' None, but the VEHICLE_TYPE presets are setting necessary flags.&lt;br /&gt;
# Prim parameters like Material are not being saved. '''Work-around:''' Set by script on rez or whenever used.&lt;br /&gt;
# Script state is not maintained between Take and Rez. '''Work-around:''' on_rez() Reset script and set *everything* again.&lt;br /&gt;
# Border Crossing is bad. Vehicle will be killed and Av unseated and left drifting through target region. '''Work-around:''' Quickly double-click on Map to tele-port to old region. Drag vehicle back and reset it.&lt;br /&gt;
&lt;br /&gt;
== VEHICLE Scripting Notes ==&lt;br /&gt;
#(Not really scripting , but very important) DO NOT attempt to drive a VEHICLE across the Region boundary. If you do your Av will be orbited. You may be able to recover by Map double-click TP to a nearby Region. The VEHICLE object is usually killed, and sitting at edge of the destination region. &lt;br /&gt;
#In revised OpenSimulator the function llSetVehicleType(VEHICLE_TYPE_xxx), where xxx is AIRPLANE, BALLOON, BOAT, CAR or SLED, pre-sets all the applicable VEHICLE parameters to reasonable numbers. If you wish to change any of these pre-set parameters do so after asserting llSetVehicleType(VEHICLE_TYPE_xxx). &lt;br /&gt;
#At present it appears that some conditions within an instantiated scripted object are not maintained after a Region restart, and possibly between take and rez. Therefore you should assert llSetVehicleType(VEHICLE_TYPE_xxx) when the driver sits and llSetVehicleType(VEHICLE_TYPE_NONE)when the driver stands, and probably on_rez.&lt;br /&gt;
#The advice above also applies to camera controls. Assert llSetCameraxxx() on sit and llClearCameraParams() on stand. (At present there seems to be bugs in the Camera Control system, the camera will go underground!)&lt;br /&gt;
#The advice above is also true of Material Type. Land vehicles need the 'wheels' to be PRIM_MATERIAL_GLASS. The script(s) must llSetPrimitiveParams([PRIM_MATERIAL, PRIM_MATERIAL_GLASS]) in every prim that touches the ground, when the rider sits, for reliable operation. Use a link mesage from the root to daughter prim scripts.&lt;br /&gt;
#Use llSetStatus(STATUS_PHYSICS, TRUE) to enable the VEHICLE, usually when the driver sits. Use llSetStatus(STATUS_PHYSICS, FALSE) to disable the VEHICLE, usually when the driver stands.&lt;br /&gt;
#It appears that the timer() event freezes while a Vehicle is in motion, so do not rely  in Timer() to update things like steering or velocity. See Known Problems for a work-around.&lt;br /&gt;
&lt;br /&gt;
== VEHICLE Scripting Examples ==&lt;br /&gt;
Below are some initial (and very similar) Vehicle scripting examples, implementing a sort of go kart, and the second a motorboat. The motorboat script is a derivative work based on the go kart script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*** Note that these scripts are works in progress and may or may not impact the performance of your region negatively. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Car or Go kart script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=LSL&amp;gt;&lt;br /&gt;
// Very simple vehicle script, mod for OpenSim &amp;amp; ODE &amp;amp; VEHICLE code&lt;br /&gt;
// By Kitto Flora  September 2009&lt;br /&gt;
&lt;br /&gt;
integer Private = 1;    // Change to 1 to prevent others riding.&lt;br /&gt;
&lt;br /&gt;
vector Sitpos = &amp;lt;0.35,0,0.35&amp;gt;;&lt;br /&gt;
vector SitrotV = &amp;lt;0,-20,0&amp;gt;;&lt;br /&gt;
rotation Sitrot;&lt;br /&gt;
integer tt;&lt;br /&gt;
key oldagent;&lt;br /&gt;
key agent;&lt;br /&gt;
float forward_power = 12; //Power used to go forward (1 to 30)&lt;br /&gt;
float reverse_power = -6; //Power ued to go reverse (-1 to -30)&lt;br /&gt;
float turning_ratio = 2.0; //How sharply the vehicle turns. Less is more sharply. (.1 to 10)&lt;br /&gt;
integer turncount;&lt;br /&gt;
string Wheeldir = &amp;quot;WC&amp;quot;;&lt;br /&gt;
string NewWheeldir = &amp;quot;WC&amp;quot;;&lt;br /&gt;
string Wheelrot = &amp;quot;S&amp;quot;;&lt;br /&gt;
string NewWheelrot = &amp;quot;S&amp;quot;;&lt;br /&gt;
integer scount;&lt;br /&gt;
integer Speed;&lt;br /&gt;
integer Run;&lt;br /&gt;
&lt;br /&gt;
string sit_message = &amp;quot;Ride&amp;quot;; //Sit message&lt;br /&gt;
string not_owner_message = &amp;quot;You are not the owner of this vehicle, buy a copy for 0$ and have your own to test in this sim. It will not work in other Open Sim Regions.&amp;quot;; //Not owner message&lt;br /&gt;
&lt;br /&gt;
setVehicle()&lt;br /&gt;
{&lt;br /&gt;
    //car&lt;br /&gt;
        llSetVehicleType(VEHICLE_TYPE_CAR);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0.2);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0.80);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 0.10);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 0.10);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_LINEAR_MOTOR_TIMESCALE, 1.0);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 0.1);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_ANGULAR_MOTOR_TIMESCALE, 0.1);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 0.1);&lt;br /&gt;
        llSetVehicleVectorParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, &amp;lt;10.0, 2.0, 1000.0&amp;gt;);&lt;br /&gt;
        llSetVehicleVectorParam(VEHICLE_ANGULAR_FRICTION_TIMESCALE, &amp;lt;0.1, 0.1, 0.1&amp;gt;);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 0.50);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 0.50);&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
Init()&lt;br /&gt;
{&lt;br /&gt;
    Sound(0);&lt;br /&gt;
    llSetStatus(STATUS_PHYSICS, FALSE);&lt;br /&gt;
    vector here = llGetPos();&lt;br /&gt;
    float h = llGround(&amp;lt;0,0,0&amp;gt;) + 0.52;&lt;br /&gt;
    vector rotv = llRot2Euler(llGetRot());&lt;br /&gt;
    rotation rot = llEuler2Rot(&amp;lt;0,0,rotv.z&amp;gt;);&lt;br /&gt;
    llSetPos(&amp;lt;here.x, here.y,h&amp;gt;);&lt;br /&gt;
    llSetRot(rot);&lt;br /&gt;
    Sitrot = llEuler2Rot(DEG_TO_RAD * SitrotV);&lt;br /&gt;
    llSetVehicleType(VEHICLE_TYPE_NONE);&lt;br /&gt;
    llMessageLinked(LINK_ALL_OTHERS, 0, &amp;quot;S&amp;quot;, NULL_KEY);     // wheels stop&lt;br /&gt;
    llMessageLinked(LINK_ALL_OTHERS, 0, &amp;quot;WC&amp;quot;, NULL_KEY);     // wheels straight&lt;br /&gt;
    Run = 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
SetMaterial()&lt;br /&gt;
{&lt;br /&gt;
    llSetPrimitiveParams([PRIM_MATERIAL, PRIM_MATERIAL_GLASS]);&lt;br /&gt;
    llMessageLinked(LINK_ALL_OTHERS, 0, &amp;quot;SetMat&amp;quot;, NULL_KEY);    // Tell daughter pims on ground to be glass&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Sound(integer n)&lt;br /&gt;
{&lt;br /&gt;
    integer oldn;&lt;br /&gt;
    if(n != oldn)&lt;br /&gt;
    {&lt;br /&gt;
        oldn = n;&lt;br /&gt;
        if(n == 2)&lt;br /&gt;
        {&lt;br /&gt;
            llLoopSound(&amp;quot;RUNNING&amp;quot;,1);&lt;br /&gt;
        }&lt;br /&gt;
        else if(n == 1)&lt;br /&gt;
        {&lt;br /&gt;
            llLoopSound(&amp;quot;IDLE&amp;quot;,1);&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
             llStopSound();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}    &lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        Init();&lt;br /&gt;
        llSetSitText(sit_message);&lt;br /&gt;
        // forward-back,left-right,updown&lt;br /&gt;
        llSitTarget(Sitpos, Sitrot);&lt;br /&gt;
        llStopSound();&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    on_rez(integer rn){&lt;br /&gt;
        llResetScript();&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    changed(integer change)&lt;br /&gt;
    {&lt;br /&gt;
        if ((change &amp;amp; CHANGED_LINK) == CHANGED_LINK)&lt;br /&gt;
        {&lt;br /&gt;
            agent = llAvatarOnSitTarget();&lt;br /&gt;
            if (agent != NULL_KEY)&lt;br /&gt;
            {                &lt;br /&gt;
                if( (agent != llGetOwner()) &amp;amp;&amp;amp; (Private == 1) )&lt;br /&gt;
                {&lt;br /&gt;
                    llSay(0, not_owner_message);&lt;br /&gt;
                    llUnSit(agent);&lt;br /&gt;
// not functional   llPushObject(agent, &amp;lt;0,0,50&amp;gt;, ZERO_VECTOR, FALSE);&lt;br /&gt;
                }&lt;br /&gt;
                else&lt;br /&gt;
                {&lt;br /&gt;
                    //llTriggerSound(&amp;quot;car_start&amp;quot;,1);&lt;br /&gt;
//                    llMessageLinked(LINK_ALL_CHILDREN , 0, &amp;quot;WHEEL_DRIVING&amp;quot;, NULL_KEY);&lt;br /&gt;
                    oldagent = agent;&lt;br /&gt;
                    setVehicle();&lt;br /&gt;
                    SetMaterial();&lt;br /&gt;
                    llSleep(.4);&lt;br /&gt;
                    llSetStatus(STATUS_PHYSICS, TRUE);&lt;br /&gt;
                    llSleep(.1);&lt;br /&gt;
                    Run = 1;&lt;br /&gt;
                    //Sensor is to make a crude Timer as TimerEvent fails on vehicles&lt;br /&gt;
                    llSensor(&amp;quot;Non-Entity&amp;quot;,NULL_KEY,PASSIVE,1.0, PI_BY_TWO); &lt;br /&gt;
&lt;br /&gt;
                    llRequestPermissions(agent, PERMISSION_TRIGGER_ANIMATION | PERMISSION_TAKE_CONTROLS);&lt;br /&gt;
                    Sound(1);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                Init();&lt;br /&gt;
                llSleep(.4);&lt;br /&gt;
                llReleaseControls();&lt;br /&gt;
                llMessageLinked(LINK_ALL_OTHERS, 0, &amp;quot;S&amp;quot;, NULL_KEY);&lt;br /&gt;
                Run = 0;&lt;br /&gt;
                llStopSound();&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    touch_start(integer tn){&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    run_time_permissions(integer perm)&lt;br /&gt;
    {&lt;br /&gt;
        if (perm)&lt;br /&gt;
        {&lt;br /&gt;
            llTakeControls(CONTROL_FWD | CONTROL_BACK | CONTROL_DOWN | CONTROL_UP | CONTROL_RIGHT | &lt;br /&gt;
                            CONTROL_LEFT | CONTROL_ROT_RIGHT | CONTROL_ROT_LEFT, TRUE, FALSE);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    control(key id, integer level, integer edge)&lt;br /&gt;
    {&lt;br /&gt;
        integer reverse=1;&lt;br /&gt;
        vector angular_motor;&lt;br /&gt;
        &lt;br /&gt;
        //get current speed&lt;br /&gt;
        vector vel = llGetVel();&lt;br /&gt;
        float speed = llVecMag(vel);&lt;br /&gt;
&lt;br /&gt;
        //car controls&lt;br /&gt;
        if(level &amp;amp; CONTROL_FWD)&lt;br /&gt;
        {&lt;br /&gt;
            llSetVehicleVectorParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, &amp;lt;10.0, 2.0, 1000.0&amp;gt;);&lt;br /&gt;
            llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, &amp;lt;forward_power,0,0&amp;gt;);&lt;br /&gt;
            reverse=1;&lt;br /&gt;
            NewWheelrot = &amp;quot;F&amp;quot;;&lt;br /&gt;
            Speed = 20;&lt;br /&gt;
        }&lt;br /&gt;
        if(level &amp;amp; CONTROL_BACK)&lt;br /&gt;
        {&lt;br /&gt;
            llSetVehicleVectorParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, &amp;lt;10.0, 2.0, 1000.0&amp;gt;);&lt;br /&gt;
            llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, &amp;lt;reverse_power,0,0&amp;gt;);&lt;br /&gt;
            reverse = -1;&lt;br /&gt;
            NewWheelrot = &amp;quot;R&amp;quot;;&lt;br /&gt;
            Speed = 10;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if(level &amp;amp; (CONTROL_RIGHT|CONTROL_ROT_RIGHT))&lt;br /&gt;
        {&lt;br /&gt;
            angular_motor.z -= speed / turning_ratio * reverse;&lt;br /&gt;
            NewWheeldir = &amp;quot;WR&amp;quot;;&lt;br /&gt;
            turncount = 10;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        if(level &amp;amp; (CONTROL_LEFT|CONTROL_ROT_LEFT))&lt;br /&gt;
        {&lt;br /&gt;
            angular_motor.z += speed / turning_ratio * reverse;&lt;br /&gt;
            NewWheeldir = &amp;quot;WL&amp;quot;;&lt;br /&gt;
            turncount = 10;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        llSetVehicleVectorParam(VEHICLE_ANGULAR_MOTOR_DIRECTION, angular_motor);&lt;br /&gt;
        if(turncount &amp;gt; 0)&lt;br /&gt;
        {&lt;br /&gt;
            turncount--;&lt;br /&gt;
        }&lt;br /&gt;
        if(turncount == 1)&lt;br /&gt;
        {&lt;br /&gt;
            NewWheeldir = &amp;quot;WC&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        if(Wheeldir != NewWheeldir){&lt;br /&gt;
            Wheeldir = NewWheeldir;&lt;br /&gt;
            llMessageLinked(LINK_ALL_OTHERS, 0, Wheeldir, NULL_KEY);&lt;br /&gt;
        }&lt;br /&gt;
        if(Wheelrot != NewWheelrot){&lt;br /&gt;
            Wheelrot = NewWheelrot;&lt;br /&gt;
            llMessageLinked(LINK_ALL_OTHERS, 0, Wheelrot, NULL_KEY);&lt;br /&gt;
        }&lt;br /&gt;
    } //end control   &lt;br /&gt;
    &lt;br /&gt;
    //Sensor is to make a crude Timer as TimerEvent fails on vehicles&lt;br /&gt;
    no_sensor()&lt;br /&gt;
    {&lt;br /&gt;
        if(scount &amp;lt; 1000)&lt;br /&gt;
        {&lt;br /&gt;
            scount++;&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
            scount = 0;&lt;br /&gt;
            // This happens about once per second&lt;br /&gt;
            if(Speed &amp;gt; 0) Speed--;&lt;br /&gt;
            &lt;br /&gt;
            if(Speed &amp;gt; 2)  Sound(2);&lt;br /&gt;
            &lt;br /&gt;
            if(Speed == 1) {&lt;br /&gt;
                llSetVehicleVectorParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, &amp;lt;1.0, 2.0, 1000.0&amp;gt;);&lt;br /&gt;
                llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, &amp;lt;0,0,0&amp;gt;);&lt;br /&gt;
                llMessageLinked(LINK_ALL_OTHERS, 0, &amp;quot;S&amp;quot;, NULL_KEY);&lt;br /&gt;
                Sound(1);&lt;br /&gt;
                Wheelrot = &amp;quot;S&amp;quot;;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        if(Run == 1)&lt;br /&gt;
            llSensor(&amp;quot;Non-Entity&amp;quot;,NULL_KEY,PASSIVE,1.0, PI_BY_TWO); &lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
} //end default&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Motorboat script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=LSL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Very simple vehicle script, mod for OpenSim &amp;amp; ODE &amp;amp; VEHICLE code&lt;br /&gt;
// By Kitto Flora  September 2009&lt;br /&gt;
&lt;br /&gt;
// modified by Hiro Protagonist for basic aquatic motorcraft&lt;br /&gt;
// September 2009&lt;br /&gt;
&lt;br /&gt;
integer Private = 1;    // Change to 1 to prevent others riding.&lt;br /&gt;
&lt;br /&gt;
vector Sitpos = &amp;lt;0.35,0,0.35&amp;gt;;&lt;br /&gt;
vector SitrotV = &amp;lt;0,-20,0&amp;gt;;&lt;br /&gt;
rotation Sitrot;&lt;br /&gt;
integer tt;&lt;br /&gt;
key oldagent; &lt;br /&gt;
key agent;&lt;br /&gt;
float forward_power = 8; //Power used to go forward (1 to 30)&lt;br /&gt;
float reverse_power = -3; //Power ued to go reverse (-1 to -30)&lt;br /&gt;
float turning_ratio = 1.0; //How sharply the vehicle turns. Less is more sharply. (.1 to 10)&lt;br /&gt;
integer scount;&lt;br /&gt;
integer Speed;&lt;br /&gt;
integer Run;&lt;br /&gt;
&lt;br /&gt;
string sit_message = &amp;quot;Man the Helm&amp;quot;; //Sit message&lt;br /&gt;
string not_owner_message = &amp;quot;You are not the owner of this vehicle, buy a copy for 0$ and have your own to test in this sim. It will not work in other Open Sim Regions.&amp;quot;; //Not owner message&lt;br /&gt;
&lt;br /&gt;
setVehicle()&lt;br /&gt;
{&lt;br /&gt;
    //boat&lt;br /&gt;
        llSetVehicleType(VEHICLE_TYPE_BOAT);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0.2);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0.80);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 0.10);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 0.10);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_LINEAR_MOTOR_TIMESCALE, 1.0);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 0.1);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_ANGULAR_MOTOR_TIMESCALE, 0.1);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 0.1);&lt;br /&gt;
        llSetVehicleVectorParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, &amp;lt;10.0, 2.0, 1000.0&amp;gt;);&lt;br /&gt;
        llSetVehicleVectorParam(VEHICLE_ANGULAR_FRICTION_TIMESCALE, &amp;lt;0.1, 0.1, 0.1&amp;gt;);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 0.250);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 0.250);&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
Init()&lt;br /&gt;
{&lt;br /&gt;
    Sound(0);&lt;br /&gt;
    llSetBuoyancy(1);&lt;br /&gt;
    llSetStatus(STATUS_PHYSICS, FALSE);&lt;br /&gt;
    vector here = llGetPos();&lt;br /&gt;
    float h = llWater(&amp;lt;0,0,0&amp;gt;) + 0.22;&lt;br /&gt;
    vector rotv = llRot2Euler(llGetRot());&lt;br /&gt;
    rotation rot = llEuler2Rot(&amp;lt;0,0,rotv.z&amp;gt;);&lt;br /&gt;
    llSetPos(&amp;lt;here.x, here.y,h&amp;gt;);&lt;br /&gt;
    llSetRot(rot);&lt;br /&gt;
    Sitrot = llEuler2Rot(DEG_TO_RAD * SitrotV);&lt;br /&gt;
    llSetVehicleType(VEHICLE_TYPE_NONE);&lt;br /&gt;
    llMessageLinked(LINK_ALL_OTHERS, 0, &amp;quot;S&amp;quot;, NULL_KEY);     // wheels stop&lt;br /&gt;
    llMessageLinked(LINK_ALL_OTHERS, 0, &amp;quot;WC&amp;quot;, NULL_KEY);     // wheels straight&lt;br /&gt;
    Run = 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
SetMaterial()&lt;br /&gt;
{&lt;br /&gt;
    llSetPrimitiveParams([PRIM_MATERIAL, PRIM_MATERIAL_WOOD]);&lt;br /&gt;
//    llMessageLinked(LINK_ALL_OTHERS, 0, &amp;quot;SetMat&amp;quot;, NULL_KEY);    // Tell daughter pims on ground to be glass&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Sound(integer n)&lt;br /&gt;
{&lt;br /&gt;
    integer oldn;&lt;br /&gt;
    if(n != oldn)&lt;br /&gt;
    {&lt;br /&gt;
        oldn = n;&lt;br /&gt;
        if(n == 2)&lt;br /&gt;
        {&lt;br /&gt;
  //          llLoopSound(&amp;quot;RUNNING&amp;quot;,1);&lt;br /&gt;
        }&lt;br /&gt;
        else if(n == 1)&lt;br /&gt;
        {&lt;br /&gt;
  //          llLoopSound(&amp;quot;IDLE&amp;quot;,1);&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
  //           llStopSound();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}    &lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        Init();&lt;br /&gt;
        llSetSitText(sit_message);&lt;br /&gt;
        // forward-back,left-right,updown&lt;br /&gt;
        llSitTarget(Sitpos, Sitrot);&lt;br /&gt;
    //    llStopSound();&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    on_rez(integer rn){&lt;br /&gt;
        llResetScript();&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    changed(integer change)&lt;br /&gt;
    {&lt;br /&gt;
        if ((change &amp;amp; CHANGED_LINK) == CHANGED_LINK)&lt;br /&gt;
        {&lt;br /&gt;
            agent = llAvatarOnSitTarget();&lt;br /&gt;
            if (agent != NULL_KEY)&lt;br /&gt;
            {                &lt;br /&gt;
                if( (agent != llGetOwner()) &amp;amp;&amp;amp; (Private == 1) )&lt;br /&gt;
                {&lt;br /&gt;
                    llSay(0, not_owner_message);&lt;br /&gt;
                    llUnSit(agent);&lt;br /&gt;
// not functional   llPushObject(agent, &amp;lt;0,0,50&amp;gt;, ZERO_VECTOR, FALSE);&lt;br /&gt;
                }&lt;br /&gt;
                else&lt;br /&gt;
                {&lt;br /&gt;
                    //llTriggerSound(&amp;quot;car_start&amp;quot;,1);&lt;br /&gt;
//                    llMessageLinked(LINK_ALL_CHILDREN , 0, &amp;quot;WHEEL_DRIVING&amp;quot;, NULL_KEY);&lt;br /&gt;
                    oldagent = agent;&lt;br /&gt;
                    setVehicle();&lt;br /&gt;
                    SetMaterial();&lt;br /&gt;
                    llSleep(.4);&lt;br /&gt;
                    llSetStatus(STATUS_PHYSICS, TRUE);&lt;br /&gt;
                    llSleep(.1);&lt;br /&gt;
                    Run = 1;&lt;br /&gt;
                    //Sensor is to make a crude Timer as TimerEvent fails on vehicles&lt;br /&gt;
                    llSensor(&amp;quot;Non-Entity&amp;quot;,NULL_KEY,PASSIVE,1.0, PI_BY_TWO); &lt;br /&gt;
&lt;br /&gt;
                    llRequestPermissions(agent, PERMISSION_TRIGGER_ANIMATION | PERMISSION_TAKE_CONTROLS);&lt;br /&gt;
                    Sound(1);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                Init();&lt;br /&gt;
                llSleep(.4);&lt;br /&gt;
                llReleaseControls();&lt;br /&gt;
                llMessageLinked(LINK_ALL_OTHERS, 0, &amp;quot;S&amp;quot;, NULL_KEY);&lt;br /&gt;
                Run = 0;&lt;br /&gt;
                llStopSound();&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    touch_start(integer tn){&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    run_time_permissions(integer perm)&lt;br /&gt;
    {&lt;br /&gt;
        if (perm)&lt;br /&gt;
        {&lt;br /&gt;
            llTakeControls(CONTROL_FWD | CONTROL_BACK | CONTROL_DOWN | CONTROL_UP | CONTROL_RIGHT | &lt;br /&gt;
                            CONTROL_LEFT | CONTROL_ROT_RIGHT | CONTROL_ROT_LEFT, TRUE, FALSE);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    control(key id, integer level, integer edge)&lt;br /&gt;
    {&lt;br /&gt;
        integer reverse=1;&lt;br /&gt;
        vector angular_motor;&lt;br /&gt;
        &lt;br /&gt;
        //get current speed&lt;br /&gt;
        vector vel = llGetVel();&lt;br /&gt;
        float speed = llVecMag(vel);&lt;br /&gt;
&lt;br /&gt;
        //car controls&lt;br /&gt;
        if(level &amp;amp; CONTROL_FWD)&lt;br /&gt;
        {&lt;br /&gt;
            llSetVehicleVectorParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, &amp;lt;10.0, 2.0, 1000.0&amp;gt;);&lt;br /&gt;
            llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, &amp;lt;forward_power,0,0&amp;gt;);&lt;br /&gt;
            reverse=1;&lt;br /&gt;
//            NewWheelrot = &amp;quot;F&amp;quot;;&lt;br /&gt;
            Speed = 20;&lt;br /&gt;
        }&lt;br /&gt;
        if(level &amp;amp; CONTROL_BACK)&lt;br /&gt;
        {&lt;br /&gt;
            llSetVehicleVectorParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, &amp;lt;10.0, 2.0, 1000.0&amp;gt;);&lt;br /&gt;
            llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, &amp;lt;reverse_power,0,0&amp;gt;);&lt;br /&gt;
            reverse = -1;&lt;br /&gt;
         //   NewWheelrot = &amp;quot;R&amp;quot;;&lt;br /&gt;
            Speed = 10;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if(level &amp;amp; (CONTROL_RIGHT|CONTROL_ROT_RIGHT))&lt;br /&gt;
        {&lt;br /&gt;
            angular_motor.z -= speed / turning_ratio * reverse;&lt;br /&gt;
         //   NewWheeldir = &amp;quot;WR&amp;quot;;&lt;br /&gt;
         //   turncount = 10;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        if(level &amp;amp; (CONTROL_LEFT|CONTROL_ROT_LEFT))&lt;br /&gt;
        {&lt;br /&gt;
            angular_motor.z += speed / turning_ratio * reverse;&lt;br /&gt;
        //    NewWheeldir = &amp;quot;WL&amp;quot;;&lt;br /&gt;
       //     turncount = 10;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        llSetVehicleVectorParam(VEHICLE_ANGULAR_MOTOR_DIRECTION, angular_motor);&lt;br /&gt;
      //  if(turncount &amp;gt; 0)&lt;br /&gt;
      //  {&lt;br /&gt;
         //   turncount--;&lt;br /&gt;
      //  }&lt;br /&gt;
      //  if(turncount == 1)&lt;br /&gt;
      //  {&lt;br /&gt;
       //     NewWheeldir = &amp;quot;WC&amp;quot;;&lt;br /&gt;
      //  }&lt;br /&gt;
      //  if(Wheeldir != NewWheeldir){&lt;br /&gt;
      //      Wheeldir = NewWheeldir;&lt;br /&gt;
      //      llMessageLinked(LINK_ALL_OTHERS, 0, Wheeldir, NULL_KEY);&lt;br /&gt;
     //   }&lt;br /&gt;
     //   if(Wheelrot != NewWheelrot){&lt;br /&gt;
     //       Wheelrot = NewWheelrot;&lt;br /&gt;
      //      llMessageLinked(LINK_ALL_OTHERS, 0, Wheelrot, NULL_KEY);&lt;br /&gt;
      //  }&lt;br /&gt;
    } //end control   &lt;br /&gt;
    &lt;br /&gt;
    //Sensor is to make a crude Timer as TimerEvent fails on vehicles&lt;br /&gt;
    no_sensor()&lt;br /&gt;
    {&lt;br /&gt;
        if(scount &amp;lt; 1000)&lt;br /&gt;
        {&lt;br /&gt;
            scount++;&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
            scount = 0;&lt;br /&gt;
            // This happens about once per second&lt;br /&gt;
            if(Speed &amp;gt; 0) Speed--;&lt;br /&gt;
            &lt;br /&gt;
            if(Speed &amp;gt; 2)  Sound(2);&lt;br /&gt;
            &lt;br /&gt;
            if(Speed == 1) {&lt;br /&gt;
                llSetVehicleVectorParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, &amp;lt;1.0, 2.0, 1000.0&amp;gt;);&lt;br /&gt;
                llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, &amp;lt;0,0,0&amp;gt;);&lt;br /&gt;
       //         llMessageLinked(LINK_ALL_OTHERS, 0, &amp;quot;S&amp;quot;, NULL_KEY);&lt;br /&gt;
      //          Sound(1);&lt;br /&gt;
      //          Wheelrot = &amp;quot;S&amp;quot;;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        if(Run == 1)&lt;br /&gt;
            llSensor(&amp;quot;Non-Entity&amp;quot;,NULL_KEY,PASSIVE,1.0, PI_BY_TWO); &lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
} //end default&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vehicle LSL Functions and Status ==&lt;br /&gt;
NOTE! This list applies to the revised OpenSimulator, not the released&lt;br /&gt;
OpenSimulator.&lt;br /&gt;
&lt;br /&gt;
Key: Y = Yes; N = No; F = Framework present but commented out; N/A = Has not been checked (much) yet&lt;br /&gt;
&lt;br /&gt;
=== KINEMATIC ===&lt;br /&gt;
Object must not be PHYSICAL&lt;br /&gt;
&lt;br /&gt;
(Some work, some do not.)&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Function!!Set by LSL?!!Used by OpenSim C#!!Works?!!Comments&lt;br /&gt;
|-&lt;br /&gt;
|llSetPos()||Y||Y||Y||Also works on physical objects! &lt;br /&gt;
|-&lt;br /&gt;
|llSetRot()||Y||Y||Y||Y&lt;br /&gt;
|-&lt;br /&gt;
|llSetLocalRot()||Y||Y||Y&lt;br /&gt;
|-&lt;br /&gt;
|llSetScale()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llLookAt()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llRotLookAt()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetPrimitiveParams()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetLinkPrimitiveParams()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llTargetOmega()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== DYNAMIC ===&lt;br /&gt;
Object must be PHYSICAL and VEHICLE_TYPE_NONE(default) at present, but this must probably change.&lt;br /&gt;
&lt;br /&gt;
(Some work, some do not.)&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Function!!Parameter!!Set by LSL?!!Used by OpenSim C#!!Comments&lt;br /&gt;
|-&lt;br /&gt;
|llApplyImpulse()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llApplyRotationalImpulse()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llGroundRepel()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llMoveToTarget()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llPushObject()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetBuoyancy()||N/A||N/A||N/A||(do not confuse with VEHICLE_BUOYANCY)&lt;br /&gt;
|-&lt;br /&gt;
|llSetForce()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetForceAndTorque()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetHoverHeight()||N/A||N/A||N/A||(do not confuse with VEHICLE_HOVER_HEIGHT)&lt;br /&gt;
|-&lt;br /&gt;
|llSetTorque()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llTargetOmega()||N/A||N/A||N/A||N/A&lt;br /&gt;
|- 	&lt;br /&gt;
|llLookAt()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llRotLookAt()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetPrimitiveParams()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetLinkPrimitiveParams()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llTargetOmega()||N/A||N/A||N/A||N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== VEHICLE ===&lt;br /&gt;
Object must be PHYSICAL and VEHICLE_TYPE_&amp;lt;other than NONE&amp;gt;&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Functions!!Set by LSL?!!Used!!Works!!Exceptions&lt;br /&gt;
|-&lt;br /&gt;
|llSetVehicleType()||Y||Y||Y&lt;br /&gt;
|-&lt;br /&gt;
|llSetVehicleFlags()||N||N||N||Some flags are set by llSetVehicleType()&lt;br /&gt;
|-&lt;br /&gt;
|llRemoveVehicleFlags()||N||N||N||&lt;br /&gt;
|- &lt;br /&gt;
|llSetVehicleFloatParam()||Y||Y||Y|| &lt;br /&gt;
|-&lt;br /&gt;
|llSetVehicleVectorParam()||Y||Y||Y||&lt;br /&gt;
|- &lt;br /&gt;
|llSetVehicleRotationParam()||Y||Y||Y|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Parameters!!Set by LSL?!!Used!!Works!!Exceptions&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_LINEAR_MOTOR_DIRECTION||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_LINEAR_MOTOR_TIMESCALE||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_LINEAR_FRICTION_TIMESCALE||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_LINEAR_MOTOR_OFFSET||F||N|| || &lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_ANGULAR_MOTOR_DIRECTION||Y||Y||Y|| &lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_ANGULAR_MOTOR_TIMESCALE||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_ANGULAR_FRICTION_TIMESCALE||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
||VEHICLE_BANKING_EFFICIENCY||F||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_BANKING_MIX||F||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_BANKING_TIMESCALE||F||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_BUOYANCY||Y||Y||Y||(do not confuse with llSetBuoyancy())&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_HOVER_HEIGHT||Y||Y||Y||(do not confuse with llSetHoverHeight())&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_HOVER_EFFICIENCY||Y||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_HOVER_TIMESCALE||Y||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_LINEAR_DEFLECTION_EFFICIENCY||F||N|| ||&lt;br /&gt;
|- &lt;br /&gt;
|VEHICLE_LINEAR_DEFLECTION_TIMESCALE||F||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY||F||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_ANGULAR_DEFLECTION_TIMESCALE||F||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_REFERENCE_FRAME||F||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_VERTICAL_ATTRACTION_TIMESCALE||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_TYPE_NONE||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_TYPE_BALLOON||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_TYPE_BOAT||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_TYPE_CAR||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_TYPE_SLED||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_FLAG_NO_DEFLECTION_UP||Y||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_FLAG_LIMIT_ROLL_ONLY||Y||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_FLAG_HOVER_WATER_ONLY||Y||Y|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_FLAG_HOVER_TERRAIN_ONLY||Y||Y|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT||Y||Y|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_FLAG_HOVER_UP_ONLY||Y||Y|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_FLAG_LIMIT_MOTOR_UP||Y||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_FLAG_MOUSELOOK_STEER||Y||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_FLAG_MOUSELOOK_BANK||Y||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_FLAG_CAMERA_DECOUPLED||Y||N|| ||&lt;br /&gt;
|}&lt;br /&gt;
== VEHICLE TYPE Presets ==&lt;br /&gt;
VEHICLE_TYPE_SLED:&lt;br /&gt;
 linearFrictionTimescale &amp;lt;30, 1, 1000&amp;gt;&lt;br /&gt;
 angularFrictionTimescale &amp;lt;1000, 1000, 1000&amp;gt;&lt;br /&gt;
 linearMotorDirection &amp;lt;0, 0, 0&amp;gt;&lt;br /&gt;
 linearMotorTimescale  1000  &lt;br /&gt;
 linearMotorDecayTimescale  120  &lt;br /&gt;
 angularMotorDirection &amp;lt;0, 0, 0&amp;gt;&lt;br /&gt;
 angularMotorTimescale  1000  &lt;br /&gt;
 angularMotorDecayTimescale  120  &lt;br /&gt;
 VhoverHeight  0  &lt;br /&gt;
 VhoverEfficiency  1  &lt;br /&gt;
 VhoverTimescale  10  &lt;br /&gt;
 VehicleBuoyancy  0  &lt;br /&gt;
 linearDeflectionEfficiency  1  &lt;br /&gt;
 linearDeflectionTimescale  1  &lt;br /&gt;
 angularDeflectionEfficiency  1  &lt;br /&gt;
 angularDeflectionTimescale  1000  &lt;br /&gt;
 bankingEfficiency  0  &lt;br /&gt;
 bankingMix  1  &lt;br /&gt;
 bankingTimescale  10  &lt;br /&gt;
 referenceFrame ZERO_ROTATION&lt;br /&gt;
 flags FALSE: &lt;br /&gt;
 	HOVER_WATER_ONLY&lt;br /&gt;
 	HOVER_TERRAIN_ONLY&lt;br /&gt;
 	HOVER_GLOBAL_HEIGHT&lt;br /&gt;
 	HOVER_UP_ONLY&lt;br /&gt;
 flags  TRUE:&lt;br /&gt;
 	NO_DEFLECTION_UP&lt;br /&gt;
 	LIMIT_ROLL_ONLY&lt;br /&gt;
 	LIMIT_MOTOR_UP&lt;br /&gt;
 	&lt;br /&gt;
&lt;br /&gt;
VEHICLE_TYPE_CAR:&lt;br /&gt;
 linearFrictionTimescale &amp;lt;100, 2, 1000&amp;gt;&lt;br /&gt;
 angularFrictionTimescale &amp;lt;1000, 1000, 1000&amp;gt;&lt;br /&gt;
 linearMotorDirection &amp;lt;0, 0, 0&amp;gt;&lt;br /&gt;
 linearMotorTimescale  1  &lt;br /&gt;
 linearMotorDecayTimescale  60  &lt;br /&gt;
 angularMotorDirection &amp;lt;0, 0, 0&amp;gt;&lt;br /&gt;
 angularMotorTimescale  1  &lt;br /&gt;
 angularMotorDecayTimescale  0.8  &lt;br /&gt;
 VhoverHeight  0  &lt;br /&gt;
 VhoverEfficiency  0  &lt;br /&gt;
 VhoverTimescale  1000  &lt;br /&gt;
 VehicleBuoyancy  0  &lt;br /&gt;
  // m_linearDeflectionEfficiency  1  &lt;br /&gt;
  // m_linearDeflectionTimescale  2  &lt;br /&gt;
  // m_angularDeflectionEfficiency  0  &lt;br /&gt;
 angularDeflectionTimescale  10  &lt;br /&gt;
 verticalAttractionEfficiency  1  &lt;br /&gt;
 verticalAttractionTimescale  10  &lt;br /&gt;
 bankingEfficiency  -0.2  &lt;br /&gt;
 bankingMix  1  &lt;br /&gt;
 bankingTimescale  1  &lt;br /&gt;
 referenceFrame ZERO_ROTATION&lt;br /&gt;
 flags FALSE: &lt;br /&gt;
 	HOVER_WATER_ONLY &lt;br /&gt;
 	HOVER_TERRAIN_ONLY &lt;br /&gt;
 	HOVER_GLOBAL_HEIGHT&lt;br /&gt;
 flags TRUE:&lt;br /&gt;
 	NO_DEFLECTION_UP &lt;br /&gt;
 	LIMIT_ROLL_ONLY &lt;br /&gt;
	HOVER_UP_ONLY&lt;br /&gt;
	LIMIT_MOTOR_UP&lt;br /&gt;
	&lt;br /&gt;
VEHICLE_TYPE_BOAT:&lt;br /&gt;
 linearFrictionTimescale &amp;lt;10, 3, 2&amp;gt;&lt;br /&gt;
 angularFrictionTimescale &amp;lt;10,10,10&amp;gt;&lt;br /&gt;
 linearMotorDirection &amp;lt;0, 0, 0&amp;gt;&lt;br /&gt;
 linearMotorTimescale  5  &lt;br /&gt;
 linearMotorDecayTimescale  60  &lt;br /&gt;
 angularMotorDirection &amp;lt;0, 0, 0&amp;gt;&lt;br /&gt;
 angularMotorTimescale  4  &lt;br /&gt;
 angularMotorDecayTimescale  4  &lt;br /&gt;
 VhoverHeight  0  &lt;br /&gt;
 VhoverEfficiency  0.5  &lt;br /&gt;
 VhoverTimescale  2  &lt;br /&gt;
 VehicleBuoyancy  1  &lt;br /&gt;
 linearDeflectionEfficiency  0.5  &lt;br /&gt;
 linearDeflectionTimescale  3  &lt;br /&gt;
 angularDeflectionEfficiency  0.5  &lt;br /&gt;
 angularDeflectionTimescale  5  &lt;br /&gt;
 verticalAttractionEfficiency  0.5  &lt;br /&gt;
 verticalAttractionTimescale  5  &lt;br /&gt;
 bankingEfficiency  -0.3  &lt;br /&gt;
 bankingMix  0.8  &lt;br /&gt;
 bankingTimescale  1  &lt;br /&gt;
 referenceFrame ZERO_ROTATION&lt;br /&gt;
 flags FALSE: &lt;br /&gt;
 	HOVER_TERRAIN_ONLY&lt;br /&gt;
 	LIMIT_ROLL_ONLY&lt;br /&gt;
 	HOVER_GLOBAL_HEIGHT&lt;br /&gt;
 	HOVER_UP_ONLY&lt;br /&gt;
 flags TRUE:&lt;br /&gt;
 	NO_DEFLECTION_UP&lt;br /&gt;
 	HOVER_WATER_ONLY&lt;br /&gt;
 	LIMIT_MOTOR_UP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
VEHICLE_TYPE_AIRPLANE:&lt;br /&gt;
 linearFrictionTimescale &amp;lt;200, 10, 5&amp;gt;&lt;br /&gt;
 angularFrictionTimescale &amp;lt;20, 20, 20&amp;gt;&lt;br /&gt;
 linearMotorDirection &amp;lt;0, 0, 0&amp;gt;&lt;br /&gt;
 linearMotorTimescale  2  &lt;br /&gt;
 linearMotorDecayTimescale  60  &lt;br /&gt;
 angularMotorDirection &amp;lt;0, 0, 0&amp;gt;&lt;br /&gt;
 angularMotorTimescale  4  &lt;br /&gt;
 angularMotorDecayTimescale  4  &lt;br /&gt;
 VhoverHeight  0  &lt;br /&gt;
 VhoverEfficiency  0.5  &lt;br /&gt;
 VhoverTimescale  1000  &lt;br /&gt;
 VehicleBuoyancy  0  &lt;br /&gt;
 linearDeflectionEfficiency  0.5  &lt;br /&gt;
 linearDeflectionTimescale  3  &lt;br /&gt;
 angularDeflectionEfficiency  1  &lt;br /&gt;
 angularDeflectionTimescale  2  &lt;br /&gt;
 verticalAttractionEfficiency  0.9  &lt;br /&gt;
 verticalAttractionTimescale  2  &lt;br /&gt;
 bankingEfficiency  1  &lt;br /&gt;
 bankingMix  0.7f  &lt;br /&gt;
 bankingTimescale  2  &lt;br /&gt;
 referenceFrame ZERO_ROTATION&lt;br /&gt;
 flags FALSE:&lt;br /&gt;
 	NO_DEFLECTION_UP&lt;br /&gt;
 	HOVER_WATER_ONLY&lt;br /&gt;
 	HOVER_TERRAIN_ONLY&lt;br /&gt;
 	HOVER_GLOBAL_HEIGHT&lt;br /&gt;
 	HOVER_UP_ONLY&lt;br /&gt;
 	LIMIT_MOTOR_UP&lt;br /&gt;
 flags TRUE:&lt;br /&gt;
 	LIMIT_ROLL_ONLY&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
VEHICLE_TYPE_BALLOON:&lt;br /&gt;
 linearFrictionTimescale &amp;lt;5, 5, 5&amp;gt;&lt;br /&gt;
 angularFrictionTimescale &amp;lt;10, 10, 10&amp;gt;&lt;br /&gt;
 linearMotorDirection &amp;lt;0, 0, 0&amp;gt;&lt;br /&gt;
 linearMotorTimescale  5  &lt;br /&gt;
 linearMotorDecayTimescale  60  &lt;br /&gt;
 angularMotorDirection &amp;lt;0, 0, 0&amp;gt;&lt;br /&gt;
 angularMotorTimescale  6  &lt;br /&gt;
 angularMotorDecayTimescale  10  &lt;br /&gt;
 VhoverHeight  5  &lt;br /&gt;
 VhoverEfficiency  0.8  &lt;br /&gt;
 VhoverTimescale  10  &lt;br /&gt;
 VehicleBuoyancy  1  &lt;br /&gt;
 linearDeflectionEfficiency  0  &lt;br /&gt;
 linearDeflectionTimescale  5  &lt;br /&gt;
 angularDeflectionEfficiency  0  &lt;br /&gt;
 angularDeflectionTimescale  5  &lt;br /&gt;
 verticalAttractionEfficiency  1  &lt;br /&gt;
 verticalAttractionTimescale  1000  &lt;br /&gt;
 bankingEfficiency  0  &lt;br /&gt;
 bankingMix  0.7  &lt;br /&gt;
 bankingTimescale  5  &lt;br /&gt;
 referenceFrame ZERO_ROTATION&lt;br /&gt;
 flags FALSE:&lt;br /&gt;
 	NO_DEFLECTION_UP &lt;br /&gt;
 	HOVER_WATER_ONLY &lt;br /&gt;
 	HOVER_TERRAIN_ONLY&lt;br /&gt;
 	HOVER_UP_ONLY &lt;br /&gt;
 	LIMIT_MOTOR_UP&lt;br /&gt;
 flags TRUE:&lt;br /&gt;
 	LIMIT_ROLL_ONLY&lt;br /&gt;
 	HOVER_GLOBAL_HEIGHT&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Vehicles</id>
		<title>Vehicles</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Vehicles"/>
				<updated>2009-09-23T03:50:35Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: /* VEHICLE Scripting Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
August 2009: Kitto Flora is revising the OdePlugin files in an attempt to provide SL-compatible VEHICLE functionality to OpenSimulator. A couple of test regions have been provided by Bri Hasp, these are Sea-3 and Sea-4 in OSgrid. You may visit there and test vehicles but please clean up after. The regions will frequently be restarted to test revisions. The revised Open Simulator files are being made available as a git branch, check here to see what may or may not work. &lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
Here some terms are defined so that when we communicate we are talking about the same things.&lt;br /&gt;
&lt;br /&gt;
==== Vehicle ====&lt;br /&gt;
&lt;br /&gt;
Any object or link-set that moves. It is usually rideable. It may be Physical or not.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== VEHICLE ====&lt;br /&gt;
Any object or link-set that uses LSL VEHICLE functions to achieve mobility. It is set to other than 'VEHICLE_TYPE_NONE'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Physical ====&lt;br /&gt;
Any object or link-set that is llSetStatus(STATUS_PHYSICS, TRUE). It will fall due to gravity (unless buoyancy is changed) and collide with other prims, avatars and the ground (unless set phantom).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Non-Physical ====&lt;br /&gt;
Any object or link-set that is llSetStatus(STATUS_PHYSICS, FALSE), or has never has llSetStatus(STATUS_PHYSICS,...) applied. Such objects 'stick in midair' and can interpenetrate other objects.&lt;br /&gt;
&lt;br /&gt;
==== Kinematic ====&lt;br /&gt;
Motion system used by Non-Physical objects, applied by such functions as llSetPos() and llSetRot(). &lt;br /&gt;
&lt;br /&gt;
==== Dynamic ====&lt;br /&gt;
Motion system used by Physical objects, applied by such functions as llSetForce() and llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, &amp;lt;...&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== About This Project ==&lt;br /&gt;
The objectives of this project are:&lt;br /&gt;
# To provide VEHICLE associated LSL functions within OpenSimulator that are compatible with Second Life functionality. This means trying to get them really close, but as we are trying to emulate complex HAVOK functions using what is available in ODE they may be only close to the SL functions. &lt;br /&gt;
# To clean up the OdePlugin files. Over many revisions and add-ons they have become somewhat non-optimal. In particular the 'Move' operation that makes objects move around needs to be very clean and smooth so that the update rate remains high.&lt;br /&gt;
# Maintain the existing non-VEHICLE dynamic functions and fix errors where found.&lt;br /&gt;
&lt;br /&gt;
== Vehicle LSL Functions in revised OpenSimulator ==&lt;br /&gt;
There are three categories of LSL functions that are used by Vehicles: Kinematic, Dynamic and VEHICLE. These are listed below with information on their current status within the revised OpenSimulator. (Not the general release at this time.) &lt;br /&gt;
Kinematic vehicle motion can be used by non-physical objects. VEHICLE motion and the associated functions '''ONLY''' apply to objects that are set to a VEHICLE_TYPE of AIRPLANE, BALLOON, BOAT, CAR or SLED. Dynamic functions '''ONLY''' apply (at this time) to VEHICLE_TYPE_NONE, which is the default condition of an object. (In SL it appears that one can use Dynamic functions on a VEHICLE, but to keep things simple at the start of this project such a combination is ignored.)&lt;br /&gt;
&lt;br /&gt;
== Known Problems ==&lt;br /&gt;
# timer() event ceases about 10 seconds after Vehicle moves. Does not restart until many seconds after Vehicle stops. '''Work-around:''' Use llSensor() for a non-existent object at short range and no_sensor() event to re-trigger it. This produces about 1000 events per second. Divide down to produce more reasonable rates.&lt;br /&gt;
# llSetBuoyancy() is not hooked to physics methods. LSL engine problem. '''Work-around:''' None.  Big problem for non-VEHICLE vehicles.&lt;br /&gt;
# llSetHoverHeight() is not hooked to physics methods. LSL engine problem.  '''Work-around:''' None.  Big problem for non VEHICLE vehicles.&lt;br /&gt;
# llSetVehicleFlags() and llRemoveVehicleFlags() are not hooked to physics methods, and may cause simulator crash. LSL engine problem. '''Work-around:''' None, but the VEHICLE_TYPE presets are setting necessary flags.&lt;br /&gt;
# Prim parameters like Material are not being saved. '''Work-around:''' Set by script on rez or whenever used.&lt;br /&gt;
# Script state is not maintained between Take and Rez. '''Work-around:''' on_rez() Reset script and set *everything* again.&lt;br /&gt;
# Border Crossing is bad. Vehicle will be killed and Av unseated and left drifting through target region. '''Work-around:''' Quickly double-click on Map to tele-port to old region. Drag vehicle back and reset it.&lt;br /&gt;
&lt;br /&gt;
== VEHICLE Scripting Notes ==&lt;br /&gt;
#(Not really scripting , but very important) DO NOT attempt to drive a VEHICLE across the Region boundary. If you do your Av will be orbited. You may be able to recover by Map double-click TP to a nearby Region. The VEHICLE object is usually killed, and sitting at edge of the destination region. &lt;br /&gt;
#In revised OpenSimulator the function llSetVehicleType(VEHICLE_TYPE_xxx), where xxx is AIRPLANE, BALLOON, BOAT, CAR or SLED, pre-sets all the applicable VEHICLE parameters to reasonable numbers. If you wish to change any of these pre-set parameters do so after asserting llSetVehicleType(VEHICLE_TYPE_xxx). &lt;br /&gt;
#At present it appears that some conditions within an instantiated scripted object are not maintained after a Region restart, and possibly between take and rez. Therefore you should assert llSetVehicleType(VEHICLE_TYPE_xxx) when the driver sits and llSetVehicleType(VEHICLE_TYPE_NONE)when the driver stands, and probably on_rez.&lt;br /&gt;
#The advice above also applies to camera controls. Assert llSetCameraxxx() on sit and llClearCameraParams() on stand. (At present there seems to be bugs in the Camera Control system, the camera will go underground!)&lt;br /&gt;
#The advice above is also true of Material Type. Land vehicles need the 'wheels' to be PRIM_MATERIAL_GLASS. The script(s) must llSetPrimitiveParams([PRIM_MATERIAL, PRIM_MATERIAL_GLASS]) in every prim that touches the ground, when the rider sits, for reliable operation. Use a link mesage from the root to daughter prim scripts.&lt;br /&gt;
#Use llSetStatus(STATUS_PHYSICS, TRUE) to enable the VEHICLE, usually when the driver sits. Use llSetStatus(STATUS_PHYSICS, FALSE) to disable the VEHICLE, usually when the driver stands.&lt;br /&gt;
#It appears that the timer() event freezes while a Vehicle is in motion, so do not rely  in Timer() to update things like steering or velocity. See Known Problems for a work-around.&lt;br /&gt;
&lt;br /&gt;
== VEHICLE Scripting Examples ==&lt;br /&gt;
Below are some initial (and very similar) Vehicle scripting examples, implementing a sort of go kart, and the second a motorboat. The motorboat script is a derivative work based on the go kart script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*** Note that these scripts are works in progress and may or may not impact the performance of your region negatively. ***&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Car or Go kart script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=LSL&amp;gt;&lt;br /&gt;
// Very simple vehicle script, mod for OpenSim &amp;amp; ODE &amp;amp; VEHICLE code&lt;br /&gt;
// By Kitto Flora  September 2009&lt;br /&gt;
&lt;br /&gt;
integer Private = 1;    // Change to 1 to prevent others riding.&lt;br /&gt;
&lt;br /&gt;
vector Sitpos = &amp;lt;0.35,0,0.35&amp;gt;;&lt;br /&gt;
vector SitrotV = &amp;lt;0,-20,0&amp;gt;;&lt;br /&gt;
rotation Sitrot;&lt;br /&gt;
integer tt;&lt;br /&gt;
key oldagent;&lt;br /&gt;
key agent;&lt;br /&gt;
float forward_power = 12; //Power used to go forward (1 to 30)&lt;br /&gt;
float reverse_power = -6; //Power ued to go reverse (-1 to -30)&lt;br /&gt;
float turning_ratio = 2.0; //How sharply the vehicle turns. Less is more sharply. (.1 to 10)&lt;br /&gt;
integer turncount;&lt;br /&gt;
string Wheeldir = &amp;quot;WC&amp;quot;;&lt;br /&gt;
string NewWheeldir = &amp;quot;WC&amp;quot;;&lt;br /&gt;
string Wheelrot = &amp;quot;S&amp;quot;;&lt;br /&gt;
string NewWheelrot = &amp;quot;S&amp;quot;;&lt;br /&gt;
integer scount;&lt;br /&gt;
integer Speed;&lt;br /&gt;
integer Run;&lt;br /&gt;
&lt;br /&gt;
string sit_message = &amp;quot;Ride&amp;quot;; //Sit message&lt;br /&gt;
string not_owner_message = &amp;quot;You are not the owner of this vehicle, buy a copy for 0$ and have your own to test in this sim. It will not work in other Open Sim Regions.&amp;quot;; //Not owner message&lt;br /&gt;
&lt;br /&gt;
setVehicle()&lt;br /&gt;
{&lt;br /&gt;
    //car&lt;br /&gt;
        llSetVehicleType(VEHICLE_TYPE_CAR);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0.2);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0.80);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 0.10);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 0.10);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_LINEAR_MOTOR_TIMESCALE, 1.0);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 0.1);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_ANGULAR_MOTOR_TIMESCALE, 0.1);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 0.1);&lt;br /&gt;
        llSetVehicleVectorParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, &amp;lt;10.0, 2.0, 1000.0&amp;gt;);&lt;br /&gt;
        llSetVehicleVectorParam(VEHICLE_ANGULAR_FRICTION_TIMESCALE, &amp;lt;0.1, 0.1, 0.1&amp;gt;);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 0.50);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 0.50);&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
Init()&lt;br /&gt;
{&lt;br /&gt;
    Sound(0);&lt;br /&gt;
    llSetStatus(STATUS_PHYSICS, FALSE);&lt;br /&gt;
    vector here = llGetPos();&lt;br /&gt;
    float h = llGround(&amp;lt;0,0,0&amp;gt;) + 0.52;&lt;br /&gt;
    vector rotv = llRot2Euler(llGetRot());&lt;br /&gt;
    rotation rot = llEuler2Rot(&amp;lt;0,0,rotv.z&amp;gt;);&lt;br /&gt;
    llSetPos(&amp;lt;here.x, here.y,h&amp;gt;);&lt;br /&gt;
    llSetRot(rot);&lt;br /&gt;
    Sitrot = llEuler2Rot(DEG_TO_RAD * SitrotV);&lt;br /&gt;
    llSetVehicleType(VEHICLE_TYPE_NONE);&lt;br /&gt;
    llMessageLinked(LINK_ALL_OTHERS, 0, &amp;quot;S&amp;quot;, NULL_KEY);     // wheels stop&lt;br /&gt;
    llMessageLinked(LINK_ALL_OTHERS, 0, &amp;quot;WC&amp;quot;, NULL_KEY);     // wheels straight&lt;br /&gt;
    Run = 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
SetMaterial()&lt;br /&gt;
{&lt;br /&gt;
    llSetPrimitiveParams([PRIM_MATERIAL, PRIM_MATERIAL_GLASS]);&lt;br /&gt;
    llMessageLinked(LINK_ALL_OTHERS, 0, &amp;quot;SetMat&amp;quot;, NULL_KEY);    // Tell daughter pims on ground to be glass&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Sound(integer n)&lt;br /&gt;
{&lt;br /&gt;
    integer oldn;&lt;br /&gt;
    if(n != oldn)&lt;br /&gt;
    {&lt;br /&gt;
        oldn = n;&lt;br /&gt;
        if(n == 2)&lt;br /&gt;
        {&lt;br /&gt;
            llLoopSound(&amp;quot;RUNNING&amp;quot;,1);&lt;br /&gt;
        }&lt;br /&gt;
        else if(n == 1)&lt;br /&gt;
        {&lt;br /&gt;
            llLoopSound(&amp;quot;IDLE&amp;quot;,1);&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
             llStopSound();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}    &lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        Init();&lt;br /&gt;
        llSetSitText(sit_message);&lt;br /&gt;
        // forward-back,left-right,updown&lt;br /&gt;
        llSitTarget(Sitpos, Sitrot);&lt;br /&gt;
        llStopSound();&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    on_rez(integer rn){&lt;br /&gt;
        llResetScript();&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    changed(integer change)&lt;br /&gt;
    {&lt;br /&gt;
        if ((change &amp;amp; CHANGED_LINK) == CHANGED_LINK)&lt;br /&gt;
        {&lt;br /&gt;
            agent = llAvatarOnSitTarget();&lt;br /&gt;
            if (agent != NULL_KEY)&lt;br /&gt;
            {                &lt;br /&gt;
                if( (agent != llGetOwner()) &amp;amp;&amp;amp; (Private == 1) )&lt;br /&gt;
                {&lt;br /&gt;
                    llSay(0, not_owner_message);&lt;br /&gt;
                    llUnSit(agent);&lt;br /&gt;
// not functional   llPushObject(agent, &amp;lt;0,0,50&amp;gt;, ZERO_VECTOR, FALSE);&lt;br /&gt;
                }&lt;br /&gt;
                else&lt;br /&gt;
                {&lt;br /&gt;
                    //llTriggerSound(&amp;quot;car_start&amp;quot;,1);&lt;br /&gt;
//                    llMessageLinked(LINK_ALL_CHILDREN , 0, &amp;quot;WHEEL_DRIVING&amp;quot;, NULL_KEY);&lt;br /&gt;
                    oldagent = agent;&lt;br /&gt;
                    setVehicle();&lt;br /&gt;
                    SetMaterial();&lt;br /&gt;
                    llSleep(.4);&lt;br /&gt;
                    llSetStatus(STATUS_PHYSICS, TRUE);&lt;br /&gt;
                    llSleep(.1);&lt;br /&gt;
                    Run = 1;&lt;br /&gt;
                    //Sensor is to make a crude Timer as TimerEvent fails on vehicles&lt;br /&gt;
                    llSensor(&amp;quot;Non-Entity&amp;quot;,NULL_KEY,PASSIVE,1.0, PI_BY_TWO); &lt;br /&gt;
&lt;br /&gt;
                    llRequestPermissions(agent, PERMISSION_TRIGGER_ANIMATION | PERMISSION_TAKE_CONTROLS);&lt;br /&gt;
                    Sound(1);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                Init();&lt;br /&gt;
                llSleep(.4);&lt;br /&gt;
                llReleaseControls();&lt;br /&gt;
                llMessageLinked(LINK_ALL_OTHERS, 0, &amp;quot;S&amp;quot;, NULL_KEY);&lt;br /&gt;
                Run = 0;&lt;br /&gt;
                llStopSound();&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    touch_start(integer tn){&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    run_time_permissions(integer perm)&lt;br /&gt;
    {&lt;br /&gt;
        if (perm)&lt;br /&gt;
        {&lt;br /&gt;
            llTakeControls(CONTROL_FWD | CONTROL_BACK | CONTROL_DOWN | CONTROL_UP | CONTROL_RIGHT | &lt;br /&gt;
                            CONTROL_LEFT | CONTROL_ROT_RIGHT | CONTROL_ROT_LEFT, TRUE, FALSE);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    control(key id, integer level, integer edge)&lt;br /&gt;
    {&lt;br /&gt;
        integer reverse=1;&lt;br /&gt;
        vector angular_motor;&lt;br /&gt;
        &lt;br /&gt;
        //get current speed&lt;br /&gt;
        vector vel = llGetVel();&lt;br /&gt;
        float speed = llVecMag(vel);&lt;br /&gt;
&lt;br /&gt;
        //car controls&lt;br /&gt;
        if(level &amp;amp; CONTROL_FWD)&lt;br /&gt;
        {&lt;br /&gt;
            llSetVehicleVectorParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, &amp;lt;10.0, 2.0, 1000.0&amp;gt;);&lt;br /&gt;
            llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, &amp;lt;forward_power,0,0&amp;gt;);&lt;br /&gt;
            reverse=1;&lt;br /&gt;
            NewWheelrot = &amp;quot;F&amp;quot;;&lt;br /&gt;
            Speed = 20;&lt;br /&gt;
        }&lt;br /&gt;
        if(level &amp;amp; CONTROL_BACK)&lt;br /&gt;
        {&lt;br /&gt;
            llSetVehicleVectorParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, &amp;lt;10.0, 2.0, 1000.0&amp;gt;);&lt;br /&gt;
            llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, &amp;lt;reverse_power,0,0&amp;gt;);&lt;br /&gt;
            reverse = -1;&lt;br /&gt;
            NewWheelrot = &amp;quot;R&amp;quot;;&lt;br /&gt;
            Speed = 10;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if(level &amp;amp; (CONTROL_RIGHT|CONTROL_ROT_RIGHT))&lt;br /&gt;
        {&lt;br /&gt;
            angular_motor.z -= speed / turning_ratio * reverse;&lt;br /&gt;
            NewWheeldir = &amp;quot;WR&amp;quot;;&lt;br /&gt;
            turncount = 10;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        if(level &amp;amp; (CONTROL_LEFT|CONTROL_ROT_LEFT))&lt;br /&gt;
        {&lt;br /&gt;
            angular_motor.z += speed / turning_ratio * reverse;&lt;br /&gt;
            NewWheeldir = &amp;quot;WL&amp;quot;;&lt;br /&gt;
            turncount = 10;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        llSetVehicleVectorParam(VEHICLE_ANGULAR_MOTOR_DIRECTION, angular_motor);&lt;br /&gt;
        if(turncount &amp;gt; 0)&lt;br /&gt;
        {&lt;br /&gt;
            turncount--;&lt;br /&gt;
        }&lt;br /&gt;
        if(turncount == 1)&lt;br /&gt;
        {&lt;br /&gt;
            NewWheeldir = &amp;quot;WC&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        if(Wheeldir != NewWheeldir){&lt;br /&gt;
            Wheeldir = NewWheeldir;&lt;br /&gt;
            llMessageLinked(LINK_ALL_OTHERS, 0, Wheeldir, NULL_KEY);&lt;br /&gt;
        }&lt;br /&gt;
        if(Wheelrot != NewWheelrot){&lt;br /&gt;
            Wheelrot = NewWheelrot;&lt;br /&gt;
            llMessageLinked(LINK_ALL_OTHERS, 0, Wheelrot, NULL_KEY);&lt;br /&gt;
        }&lt;br /&gt;
    } //end control   &lt;br /&gt;
    &lt;br /&gt;
    //Sensor is to make a crude Timer as TimerEvent fails on vehicles&lt;br /&gt;
    no_sensor()&lt;br /&gt;
    {&lt;br /&gt;
        if(scount &amp;lt; 1000)&lt;br /&gt;
        {&lt;br /&gt;
            scount++;&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
            scount = 0;&lt;br /&gt;
            // This happens about once per second&lt;br /&gt;
            if(Speed &amp;gt; 0) Speed--;&lt;br /&gt;
            &lt;br /&gt;
            if(Speed &amp;gt; 2)  Sound(2);&lt;br /&gt;
            &lt;br /&gt;
            if(Speed == 1) {&lt;br /&gt;
                llSetVehicleVectorParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, &amp;lt;1.0, 2.0, 1000.0&amp;gt;);&lt;br /&gt;
                llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, &amp;lt;0,0,0&amp;gt;);&lt;br /&gt;
                llMessageLinked(LINK_ALL_OTHERS, 0, &amp;quot;S&amp;quot;, NULL_KEY);&lt;br /&gt;
                Sound(1);&lt;br /&gt;
                Wheelrot = &amp;quot;S&amp;quot;;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        if(Run == 1)&lt;br /&gt;
            llSensor(&amp;quot;Non-Entity&amp;quot;,NULL_KEY,PASSIVE,1.0, PI_BY_TWO); &lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
} //end default&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Motorboat script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=LSL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Very simple vehicle script, mod for OpenSim &amp;amp; ODE &amp;amp; VEHICLE code&lt;br /&gt;
// By Kitto Flora  September 2009&lt;br /&gt;
&lt;br /&gt;
// modified by Hiro Protagonist for basic aquatic motorcraft&lt;br /&gt;
// September 2009&lt;br /&gt;
&lt;br /&gt;
integer Private = 1;    // Change to 1 to prevent others riding.&lt;br /&gt;
&lt;br /&gt;
vector Sitpos = &amp;lt;0.35,0,0.35&amp;gt;;&lt;br /&gt;
vector SitrotV = &amp;lt;0,-20,0&amp;gt;;&lt;br /&gt;
rotation Sitrot;&lt;br /&gt;
integer tt;&lt;br /&gt;
key oldagent; &lt;br /&gt;
key agent;&lt;br /&gt;
float forward_power = 8; //Power used to go forward (1 to 30)&lt;br /&gt;
float reverse_power = -3; //Power ued to go reverse (-1 to -30)&lt;br /&gt;
float turning_ratio = 1.0; //How sharply the vehicle turns. Less is more sharply. (.1 to 10)&lt;br /&gt;
integer scount;&lt;br /&gt;
integer Speed;&lt;br /&gt;
integer Run;&lt;br /&gt;
&lt;br /&gt;
string sit_message = &amp;quot;Man the Helm&amp;quot;; //Sit message&lt;br /&gt;
string not_owner_message = &amp;quot;You are not the owner of this vehicle, buy a copy for 0$ and have your own to test in this sim. It will not work in other Open Sim Regions.&amp;quot;; //Not owner message&lt;br /&gt;
&lt;br /&gt;
setVehicle()&lt;br /&gt;
{&lt;br /&gt;
    //boat&lt;br /&gt;
        llSetVehicleType(VEHICLE_TYPE_BOAT);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0.2);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0.80);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 0.10);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 0.10);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_LINEAR_MOTOR_TIMESCALE, 1.0);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 0.1);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_ANGULAR_MOTOR_TIMESCALE, 0.1);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 0.1);&lt;br /&gt;
        llSetVehicleVectorParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, &amp;lt;10.0, 2.0, 1000.0&amp;gt;);&lt;br /&gt;
        llSetVehicleVectorParam(VEHICLE_ANGULAR_FRICTION_TIMESCALE, &amp;lt;0.1, 0.1, 0.1&amp;gt;);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 0.250);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 0.250);&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
Init()&lt;br /&gt;
{&lt;br /&gt;
    Sound(0);&lt;br /&gt;
    llSetBuoyancy(1);&lt;br /&gt;
    llSetStatus(STATUS_PHYSICS, FALSE);&lt;br /&gt;
    vector here = llGetPos();&lt;br /&gt;
    float h = llWater(&amp;lt;0,0,0&amp;gt;) + 0.22;&lt;br /&gt;
    vector rotv = llRot2Euler(llGetRot());&lt;br /&gt;
    rotation rot = llEuler2Rot(&amp;lt;0,0,rotv.z&amp;gt;);&lt;br /&gt;
    llSetPos(&amp;lt;here.x, here.y,h&amp;gt;);&lt;br /&gt;
    llSetRot(rot);&lt;br /&gt;
    Sitrot = llEuler2Rot(DEG_TO_RAD * SitrotV);&lt;br /&gt;
    llSetVehicleType(VEHICLE_TYPE_NONE);&lt;br /&gt;
    llMessageLinked(LINK_ALL_OTHERS, 0, &amp;quot;S&amp;quot;, NULL_KEY);     // wheels stop&lt;br /&gt;
    llMessageLinked(LINK_ALL_OTHERS, 0, &amp;quot;WC&amp;quot;, NULL_KEY);     // wheels straight&lt;br /&gt;
    Run = 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
SetMaterial()&lt;br /&gt;
{&lt;br /&gt;
    llSetPrimitiveParams([PRIM_MATERIAL, PRIM_MATERIAL_WOOD]);&lt;br /&gt;
//    llMessageLinked(LINK_ALL_OTHERS, 0, &amp;quot;SetMat&amp;quot;, NULL_KEY);    // Tell daughter pims on ground to be glass&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Sound(integer n)&lt;br /&gt;
{&lt;br /&gt;
    integer oldn;&lt;br /&gt;
    if(n != oldn)&lt;br /&gt;
    {&lt;br /&gt;
        oldn = n;&lt;br /&gt;
        if(n == 2)&lt;br /&gt;
        {&lt;br /&gt;
  //          llLoopSound(&amp;quot;RUNNING&amp;quot;,1);&lt;br /&gt;
        }&lt;br /&gt;
        else if(n == 1)&lt;br /&gt;
        {&lt;br /&gt;
  //          llLoopSound(&amp;quot;IDLE&amp;quot;,1);&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
  //           llStopSound();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}    &lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        Init();&lt;br /&gt;
        llSetSitText(sit_message);&lt;br /&gt;
        // forward-back,left-right,updown&lt;br /&gt;
        llSitTarget(Sitpos, Sitrot);&lt;br /&gt;
    //    llStopSound();&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    on_rez(integer rn){&lt;br /&gt;
        llResetScript();&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    changed(integer change)&lt;br /&gt;
    {&lt;br /&gt;
        if ((change &amp;amp; CHANGED_LINK) == CHANGED_LINK)&lt;br /&gt;
        {&lt;br /&gt;
            agent = llAvatarOnSitTarget();&lt;br /&gt;
            if (agent != NULL_KEY)&lt;br /&gt;
            {                &lt;br /&gt;
                if( (agent != llGetOwner()) &amp;amp;&amp;amp; (Private == 1) )&lt;br /&gt;
                {&lt;br /&gt;
                    llSay(0, not_owner_message);&lt;br /&gt;
                    llUnSit(agent);&lt;br /&gt;
// not functional   llPushObject(agent, &amp;lt;0,0,50&amp;gt;, ZERO_VECTOR, FALSE);&lt;br /&gt;
                }&lt;br /&gt;
                else&lt;br /&gt;
                {&lt;br /&gt;
                    //llTriggerSound(&amp;quot;car_start&amp;quot;,1);&lt;br /&gt;
//                    llMessageLinked(LINK_ALL_CHILDREN , 0, &amp;quot;WHEEL_DRIVING&amp;quot;, NULL_KEY);&lt;br /&gt;
                    oldagent = agent;&lt;br /&gt;
                    setVehicle();&lt;br /&gt;
                    SetMaterial();&lt;br /&gt;
                    llSleep(.4);&lt;br /&gt;
                    llSetStatus(STATUS_PHYSICS, TRUE);&lt;br /&gt;
                    llSleep(.1);&lt;br /&gt;
                    Run = 1;&lt;br /&gt;
                    //Sensor is to make a crude Timer as TimerEvent fails on vehicles&lt;br /&gt;
                    llSensor(&amp;quot;Non-Entity&amp;quot;,NULL_KEY,PASSIVE,1.0, PI_BY_TWO); &lt;br /&gt;
&lt;br /&gt;
                    llRequestPermissions(agent, PERMISSION_TRIGGER_ANIMATION | PERMISSION_TAKE_CONTROLS);&lt;br /&gt;
                    Sound(1);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                Init();&lt;br /&gt;
                llSleep(.4);&lt;br /&gt;
                llReleaseControls();&lt;br /&gt;
                llMessageLinked(LINK_ALL_OTHERS, 0, &amp;quot;S&amp;quot;, NULL_KEY);&lt;br /&gt;
                Run = 0;&lt;br /&gt;
                llStopSound();&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    touch_start(integer tn){&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    run_time_permissions(integer perm)&lt;br /&gt;
    {&lt;br /&gt;
        if (perm)&lt;br /&gt;
        {&lt;br /&gt;
            llTakeControls(CONTROL_FWD | CONTROL_BACK | CONTROL_DOWN | CONTROL_UP | CONTROL_RIGHT | &lt;br /&gt;
                            CONTROL_LEFT | CONTROL_ROT_RIGHT | CONTROL_ROT_LEFT, TRUE, FALSE);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    control(key id, integer level, integer edge)&lt;br /&gt;
    {&lt;br /&gt;
        integer reverse=1;&lt;br /&gt;
        vector angular_motor;&lt;br /&gt;
        &lt;br /&gt;
        //get current speed&lt;br /&gt;
        vector vel = llGetVel();&lt;br /&gt;
        float speed = llVecMag(vel);&lt;br /&gt;
&lt;br /&gt;
        //car controls&lt;br /&gt;
        if(level &amp;amp; CONTROL_FWD)&lt;br /&gt;
        {&lt;br /&gt;
            llSetVehicleVectorParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, &amp;lt;10.0, 2.0, 1000.0&amp;gt;);&lt;br /&gt;
            llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, &amp;lt;forward_power,0,0&amp;gt;);&lt;br /&gt;
            reverse=1;&lt;br /&gt;
//            NewWheelrot = &amp;quot;F&amp;quot;;&lt;br /&gt;
            Speed = 20;&lt;br /&gt;
        }&lt;br /&gt;
        if(level &amp;amp; CONTROL_BACK)&lt;br /&gt;
        {&lt;br /&gt;
            llSetVehicleVectorParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, &amp;lt;10.0, 2.0, 1000.0&amp;gt;);&lt;br /&gt;
            llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, &amp;lt;reverse_power,0,0&amp;gt;);&lt;br /&gt;
            reverse = -1;&lt;br /&gt;
         //   NewWheelrot = &amp;quot;R&amp;quot;;&lt;br /&gt;
            Speed = 10;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if(level &amp;amp; (CONTROL_RIGHT|CONTROL_ROT_RIGHT))&lt;br /&gt;
        {&lt;br /&gt;
            angular_motor.z -= speed / turning_ratio * reverse;&lt;br /&gt;
         //   NewWheeldir = &amp;quot;WR&amp;quot;;&lt;br /&gt;
         //   turncount = 10;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        if(level &amp;amp; (CONTROL_LEFT|CONTROL_ROT_LEFT))&lt;br /&gt;
        {&lt;br /&gt;
            angular_motor.z += speed / turning_ratio * reverse;&lt;br /&gt;
        //    NewWheeldir = &amp;quot;WL&amp;quot;;&lt;br /&gt;
       //     turncount = 10;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        llSetVehicleVectorParam(VEHICLE_ANGULAR_MOTOR_DIRECTION, angular_motor);&lt;br /&gt;
      //  if(turncount &amp;gt; 0)&lt;br /&gt;
      //  {&lt;br /&gt;
         //   turncount--;&lt;br /&gt;
      //  }&lt;br /&gt;
      //  if(turncount == 1)&lt;br /&gt;
      //  {&lt;br /&gt;
       //     NewWheeldir = &amp;quot;WC&amp;quot;;&lt;br /&gt;
      //  }&lt;br /&gt;
      //  if(Wheeldir != NewWheeldir){&lt;br /&gt;
      //      Wheeldir = NewWheeldir;&lt;br /&gt;
      //      llMessageLinked(LINK_ALL_OTHERS, 0, Wheeldir, NULL_KEY);&lt;br /&gt;
     //   }&lt;br /&gt;
     //   if(Wheelrot != NewWheelrot){&lt;br /&gt;
     //       Wheelrot = NewWheelrot;&lt;br /&gt;
      //      llMessageLinked(LINK_ALL_OTHERS, 0, Wheelrot, NULL_KEY);&lt;br /&gt;
      //  }&lt;br /&gt;
    } //end control   &lt;br /&gt;
    &lt;br /&gt;
    //Sensor is to make a crude Timer as TimerEvent fails on vehicles&lt;br /&gt;
    no_sensor()&lt;br /&gt;
    {&lt;br /&gt;
        if(scount &amp;lt; 1000)&lt;br /&gt;
        {&lt;br /&gt;
            scount++;&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
            scount = 0;&lt;br /&gt;
            // This happens about once per second&lt;br /&gt;
            if(Speed &amp;gt; 0) Speed--;&lt;br /&gt;
            &lt;br /&gt;
            if(Speed &amp;gt; 2)  Sound(2);&lt;br /&gt;
            &lt;br /&gt;
            if(Speed == 1) {&lt;br /&gt;
                llSetVehicleVectorParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, &amp;lt;1.0, 2.0, 1000.0&amp;gt;);&lt;br /&gt;
                llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, &amp;lt;0,0,0&amp;gt;);&lt;br /&gt;
       //         llMessageLinked(LINK_ALL_OTHERS, 0, &amp;quot;S&amp;quot;, NULL_KEY);&lt;br /&gt;
      //          Sound(1);&lt;br /&gt;
      //          Wheelrot = &amp;quot;S&amp;quot;;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        if(Run == 1)&lt;br /&gt;
            llSensor(&amp;quot;Non-Entity&amp;quot;,NULL_KEY,PASSIVE,1.0, PI_BY_TWO); &lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
} //end default&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vehicle LSL Functions and Status ==&lt;br /&gt;
NOTE! This list applies to the revised OpenSimulator, not the released&lt;br /&gt;
OpenSimulator.&lt;br /&gt;
&lt;br /&gt;
Key: Y = Yes; N = No; F = Framework present but commented out; N/A = Has not been checked (much) yet&lt;br /&gt;
&lt;br /&gt;
=== KINEMATIC ===&lt;br /&gt;
Object must not be PHYSICAL&lt;br /&gt;
&lt;br /&gt;
(Some work, some do not.)&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Function!!Set by LSL?!!Used by OpenSim C#!!Works?!!Comments&lt;br /&gt;
|-&lt;br /&gt;
|llSetPos()||Y||Y||Y||Also works on physical objects! &lt;br /&gt;
|-&lt;br /&gt;
|llSetRot()||Y||Y||Y||Y&lt;br /&gt;
|-&lt;br /&gt;
|llSetLocalRot()||Y||Y||Y&lt;br /&gt;
|-&lt;br /&gt;
|llSetScale()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llLookAt()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llRotLookAt()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetPrimitiveParams()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetLinkPrimitiveParams()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llTargetOmega()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== DYNAMIC ===&lt;br /&gt;
Object must be PHYSICAL and VEHICLE_TYPE_NONE(default) at present, but this must probably change.&lt;br /&gt;
&lt;br /&gt;
(Some work, some do not.)&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Function!!Parameter!!Set by LSL?!!Used by OpenSim C#!!Comments&lt;br /&gt;
|-&lt;br /&gt;
|llApplyImpulse()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llApplyRotationalImpulse()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llGroundRepel()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llMoveToTarget()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llPushObject()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetBuoyancy()||N/A||N/A||N/A||(do not confuse with VEHICLE_BUOYANCY)&lt;br /&gt;
|-&lt;br /&gt;
|llSetForce()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetForceAndTorque()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetHoverHeight()||N/A||N/A||N/A||(do not confuse with VEHICLE_HOVER_HEIGHT)&lt;br /&gt;
|-&lt;br /&gt;
|llSetTorque()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llTargetOmega()||N/A||N/A||N/A||N/A&lt;br /&gt;
|- 	&lt;br /&gt;
|llLookAt()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llRotLookAt()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetPrimitiveParams()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetLinkPrimitiveParams()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llTargetOmega()||N/A||N/A||N/A||N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== VEHICLE ===&lt;br /&gt;
Object must be PHYSICAL and VEHICLE_TYPE_&amp;lt;other than NONE&amp;gt;&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Functions!!Set by LSL?!!Used!!Works!!Exceptions&lt;br /&gt;
|-&lt;br /&gt;
|llSetVehicleType()||Y||Y||Y&lt;br /&gt;
|-&lt;br /&gt;
|llSetVehicleFlags()||N||N||N||Some flags are set by llSetVehicleType()&lt;br /&gt;
|-&lt;br /&gt;
|llRemoveVehicleFlags()||N||N||N||&lt;br /&gt;
|- &lt;br /&gt;
|llSetVehicleFloatParam()||Y||Y||Y|| &lt;br /&gt;
|-&lt;br /&gt;
|llSetVehicleVectorParam()||Y||Y||Y||&lt;br /&gt;
|- &lt;br /&gt;
|llSetVehicleRotationParam()||Y||Y||Y|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Parameters!!Set by LSL?!!Used!!Works!!Exceptions&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_LINEAR_MOTOR_DIRECTION||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_LINEAR_MOTOR_TIMESCALE||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_LINEAR_FRICTION_TIMESCALE||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_LINEAR_MOTOR_OFFSET||F||N|| || &lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_ANGULAR_MOTOR_DIRECTION||Y||Y||Y|| &lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_ANGULAR_MOTOR_TIMESCALE||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_ANGULAR_FRICTION_TIMESCALE||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
||VEHICLE_BANKING_EFFICIENCY||F||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_BANKING_MIX||F||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_BANKING_TIMESCALE||F||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_BUOYANCY||Y||Y||Y||(do not confuse with llSetBuoyancy())&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_HOVER_HEIGHT||Y||Y||Y||(do not confuse with llSetHoverHeight())&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_HOVER_EFFICIENCY||Y||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_HOVER_TIMESCALE||Y||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_LINEAR_DEFLECTION_EFFICIENCY||F||N|| ||&lt;br /&gt;
|- &lt;br /&gt;
|VEHICLE_LINEAR_DEFLECTION_TIMESCALE||F||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY||F||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_ANGULAR_DEFLECTION_TIMESCALE||F||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_REFERENCE_FRAME||F||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_VERTICAL_ATTRACTION_TIMESCALE||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_TYPE_NONE||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_TYPE_BALLOON||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_TYPE_BOAT||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_TYPE_CAR||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_TYPE_SLED||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_FLAG_NO_DEFLECTION_UP||Y||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_FLAG_LIMIT_ROLL_ONLY||Y||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_FLAG_HOVER_WATER_ONLY||Y||Y|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_FLAG_HOVER_TERRAIN_ONLY||Y||Y|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT||Y||Y|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_FLAG_HOVER_UP_ONLY||Y||Y|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_FLAG_LIMIT_MOTOR_UP||Y||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_FLAG_MOUSELOOK_STEER||Y||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_FLAG_MOUSELOOK_BANK||Y||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_FLAG_CAMERA_DECOUPLED||Y||N|| ||&lt;br /&gt;
|}&lt;br /&gt;
== VEHICLE TYPE Presets ==&lt;br /&gt;
VEHICLE_TYPE_SLED:&lt;br /&gt;
 linearFrictionTimescale &amp;lt;30, 1, 1000&amp;gt;&lt;br /&gt;
 angularFrictionTimescale &amp;lt;1000, 1000, 1000&amp;gt;&lt;br /&gt;
 linearMotorDirection &amp;lt;0, 0, 0&amp;gt;&lt;br /&gt;
 linearMotorTimescale  1000  &lt;br /&gt;
 linearMotorDecayTimescale  120  &lt;br /&gt;
 angularMotorDirection &amp;lt;0, 0, 0&amp;gt;&lt;br /&gt;
 angularMotorTimescale  1000  &lt;br /&gt;
 angularMotorDecayTimescale  120  &lt;br /&gt;
 VhoverHeight  0  &lt;br /&gt;
 VhoverEfficiency  1  &lt;br /&gt;
 VhoverTimescale  10  &lt;br /&gt;
 VehicleBuoyancy  0  &lt;br /&gt;
 linearDeflectionEfficiency  1  &lt;br /&gt;
 linearDeflectionTimescale  1  &lt;br /&gt;
 angularDeflectionEfficiency  1  &lt;br /&gt;
 angularDeflectionTimescale  1000  &lt;br /&gt;
 bankingEfficiency  0  &lt;br /&gt;
 bankingMix  1  &lt;br /&gt;
 bankingTimescale  10  &lt;br /&gt;
 referenceFrame ZERO_ROTATION&lt;br /&gt;
 flags FALSE: &lt;br /&gt;
 	HOVER_WATER_ONLY&lt;br /&gt;
 	HOVER_TERRAIN_ONLY&lt;br /&gt;
 	HOVER_GLOBAL_HEIGHT&lt;br /&gt;
 	HOVER_UP_ONLY&lt;br /&gt;
 flags  TRUE:&lt;br /&gt;
 	NO_DEFLECTION_UP&lt;br /&gt;
 	LIMIT_ROLL_ONLY&lt;br /&gt;
 	LIMIT_MOTOR_UP&lt;br /&gt;
 	&lt;br /&gt;
&lt;br /&gt;
VEHICLE_TYPE_CAR:&lt;br /&gt;
 linearFrictionTimescale &amp;lt;100, 2, 1000&amp;gt;&lt;br /&gt;
 angularFrictionTimescale &amp;lt;1000, 1000, 1000&amp;gt;&lt;br /&gt;
 linearMotorDirection &amp;lt;0, 0, 0&amp;gt;&lt;br /&gt;
 linearMotorTimescale  1  &lt;br /&gt;
 linearMotorDecayTimescale  60  &lt;br /&gt;
 angularMotorDirection &amp;lt;0, 0, 0&amp;gt;&lt;br /&gt;
 angularMotorTimescale  1  &lt;br /&gt;
 angularMotorDecayTimescale  0.8  &lt;br /&gt;
 VhoverHeight  0  &lt;br /&gt;
 VhoverEfficiency  0  &lt;br /&gt;
 VhoverTimescale  1000  &lt;br /&gt;
 VehicleBuoyancy  0  &lt;br /&gt;
  // m_linearDeflectionEfficiency  1  &lt;br /&gt;
  // m_linearDeflectionTimescale  2  &lt;br /&gt;
  // m_angularDeflectionEfficiency  0  &lt;br /&gt;
 angularDeflectionTimescale  10  &lt;br /&gt;
 verticalAttractionEfficiency  1  &lt;br /&gt;
 verticalAttractionTimescale  10  &lt;br /&gt;
 bankingEfficiency  -0.2  &lt;br /&gt;
 bankingMix  1  &lt;br /&gt;
 bankingTimescale  1  &lt;br /&gt;
 referenceFrame ZERO_ROTATION&lt;br /&gt;
 flags FALSE: &lt;br /&gt;
 	HOVER_WATER_ONLY &lt;br /&gt;
 	HOVER_TERRAIN_ONLY &lt;br /&gt;
 	HOVER_GLOBAL_HEIGHT&lt;br /&gt;
 flags TRUE:&lt;br /&gt;
 	NO_DEFLECTION_UP &lt;br /&gt;
 	LIMIT_ROLL_ONLY &lt;br /&gt;
	HOVER_UP_ONLY&lt;br /&gt;
	LIMIT_MOTOR_UP&lt;br /&gt;
	&lt;br /&gt;
VEHICLE_TYPE_BOAT:&lt;br /&gt;
 linearFrictionTimescale &amp;lt;10, 3, 2&amp;gt;&lt;br /&gt;
 angularFrictionTimescale &amp;lt;10,10,10&amp;gt;&lt;br /&gt;
 linearMotorDirection &amp;lt;0, 0, 0&amp;gt;&lt;br /&gt;
 linearMotorTimescale  5  &lt;br /&gt;
 linearMotorDecayTimescale  60  &lt;br /&gt;
 angularMotorDirection &amp;lt;0, 0, 0&amp;gt;&lt;br /&gt;
 angularMotorTimescale  4  &lt;br /&gt;
 angularMotorDecayTimescale  4  &lt;br /&gt;
 VhoverHeight  0  &lt;br /&gt;
 VhoverEfficiency  0.5  &lt;br /&gt;
 VhoverTimescale  2  &lt;br /&gt;
 VehicleBuoyancy  1  &lt;br /&gt;
 linearDeflectionEfficiency  0.5  &lt;br /&gt;
 linearDeflectionTimescale  3  &lt;br /&gt;
 angularDeflectionEfficiency  0.5  &lt;br /&gt;
 angularDeflectionTimescale  5  &lt;br /&gt;
 verticalAttractionEfficiency  0.5  &lt;br /&gt;
 verticalAttractionTimescale  5  &lt;br /&gt;
 bankingEfficiency  -0.3  &lt;br /&gt;
 bankingMix  0.8  &lt;br /&gt;
 bankingTimescale  1  &lt;br /&gt;
 referenceFrame ZERO_ROTATION&lt;br /&gt;
 flags FALSE: &lt;br /&gt;
 	HOVER_TERRAIN_ONLY&lt;br /&gt;
 	LIMIT_ROLL_ONLY&lt;br /&gt;
 	HOVER_GLOBAL_HEIGHT&lt;br /&gt;
 	HOVER_UP_ONLY&lt;br /&gt;
 flags TRUE:&lt;br /&gt;
 	NO_DEFLECTION_UP&lt;br /&gt;
 	HOVER_WATER_ONLY&lt;br /&gt;
 	LIMIT_MOTOR_UP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
VEHICLE_TYPE_AIRPLANE:&lt;br /&gt;
 linearFrictionTimescale &amp;lt;200, 10, 5&amp;gt;&lt;br /&gt;
 angularFrictionTimescale &amp;lt;20, 20, 20&amp;gt;&lt;br /&gt;
 linearMotorDirection &amp;lt;0, 0, 0&amp;gt;&lt;br /&gt;
 linearMotorTimescale  2  &lt;br /&gt;
 linearMotorDecayTimescale  60  &lt;br /&gt;
 angularMotorDirection &amp;lt;0, 0, 0&amp;gt;&lt;br /&gt;
 angularMotorTimescale  4  &lt;br /&gt;
 angularMotorDecayTimescale  4  &lt;br /&gt;
 VhoverHeight  0  &lt;br /&gt;
 VhoverEfficiency  0.5  &lt;br /&gt;
 VhoverTimescale  1000  &lt;br /&gt;
 VehicleBuoyancy  0  &lt;br /&gt;
 linearDeflectionEfficiency  0.5  &lt;br /&gt;
 linearDeflectionTimescale  3  &lt;br /&gt;
 angularDeflectionEfficiency  1  &lt;br /&gt;
 angularDeflectionTimescale  2  &lt;br /&gt;
 verticalAttractionEfficiency  0.9  &lt;br /&gt;
 verticalAttractionTimescale  2  &lt;br /&gt;
 bankingEfficiency  1  &lt;br /&gt;
 bankingMix  0.7f  &lt;br /&gt;
 bankingTimescale  2  &lt;br /&gt;
 referenceFrame ZERO_ROTATION&lt;br /&gt;
 flags FALSE:&lt;br /&gt;
 	NO_DEFLECTION_UP&lt;br /&gt;
 	HOVER_WATER_ONLY&lt;br /&gt;
 	HOVER_TERRAIN_ONLY&lt;br /&gt;
 	HOVER_GLOBAL_HEIGHT&lt;br /&gt;
 	HOVER_UP_ONLY&lt;br /&gt;
 	LIMIT_MOTOR_UP&lt;br /&gt;
 flags TRUE:&lt;br /&gt;
 	LIMIT_ROLL_ONLY&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
VEHICLE_TYPE_BALLOON:&lt;br /&gt;
 linearFrictionTimescale &amp;lt;5, 5, 5&amp;gt;&lt;br /&gt;
 angularFrictionTimescale &amp;lt;10, 10, 10&amp;gt;&lt;br /&gt;
 linearMotorDirection &amp;lt;0, 0, 0&amp;gt;&lt;br /&gt;
 linearMotorTimescale  5  &lt;br /&gt;
 linearMotorDecayTimescale  60  &lt;br /&gt;
 angularMotorDirection &amp;lt;0, 0, 0&amp;gt;&lt;br /&gt;
 angularMotorTimescale  6  &lt;br /&gt;
 angularMotorDecayTimescale  10  &lt;br /&gt;
 VhoverHeight  5  &lt;br /&gt;
 VhoverEfficiency  0.8  &lt;br /&gt;
 VhoverTimescale  10  &lt;br /&gt;
 VehicleBuoyancy  1  &lt;br /&gt;
 linearDeflectionEfficiency  0  &lt;br /&gt;
 linearDeflectionTimescale  5  &lt;br /&gt;
 angularDeflectionEfficiency  0  &lt;br /&gt;
 angularDeflectionTimescale  5  &lt;br /&gt;
 verticalAttractionEfficiency  1  &lt;br /&gt;
 verticalAttractionTimescale  1000  &lt;br /&gt;
 bankingEfficiency  0  &lt;br /&gt;
 bankingMix  0.7  &lt;br /&gt;
 bankingTimescale  5  &lt;br /&gt;
 referenceFrame ZERO_ROTATION&lt;br /&gt;
 flags FALSE:&lt;br /&gt;
 	NO_DEFLECTION_UP &lt;br /&gt;
 	HOVER_WATER_ONLY &lt;br /&gt;
 	HOVER_TERRAIN_ONLY&lt;br /&gt;
 	HOVER_UP_ONLY &lt;br /&gt;
 	LIMIT_MOTOR_UP&lt;br /&gt;
 flags TRUE:&lt;br /&gt;
 	LIMIT_ROLL_ONLY&lt;br /&gt;
 	HOVER_GLOBAL_HEIGHT&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Vehicles</id>
		<title>Vehicles</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Vehicles"/>
				<updated>2009-09-23T03:47:52Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
August 2009: Kitto Flora is revising the OdePlugin files in an attempt to provide SL-compatible VEHICLE functionality to OpenSimulator. A couple of test regions have been provided by Bri Hasp, these are Sea-3 and Sea-4 in OSgrid. You may visit there and test vehicles but please clean up after. The regions will frequently be restarted to test revisions. The revised Open Simulator files are being made available as a git branch, check here to see what may or may not work. &lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
Here some terms are defined so that when we communicate we are talking about the same things.&lt;br /&gt;
&lt;br /&gt;
==== Vehicle ====&lt;br /&gt;
&lt;br /&gt;
Any object or link-set that moves. It is usually rideable. It may be Physical or not.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== VEHICLE ====&lt;br /&gt;
Any object or link-set that uses LSL VEHICLE functions to achieve mobility. It is set to other than 'VEHICLE_TYPE_NONE'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Physical ====&lt;br /&gt;
Any object or link-set that is llSetStatus(STATUS_PHYSICS, TRUE). It will fall due to gravity (unless buoyancy is changed) and collide with other prims, avatars and the ground (unless set phantom).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Non-Physical ====&lt;br /&gt;
Any object or link-set that is llSetStatus(STATUS_PHYSICS, FALSE), or has never has llSetStatus(STATUS_PHYSICS,...) applied. Such objects 'stick in midair' and can interpenetrate other objects.&lt;br /&gt;
&lt;br /&gt;
==== Kinematic ====&lt;br /&gt;
Motion system used by Non-Physical objects, applied by such functions as llSetPos() and llSetRot(). &lt;br /&gt;
&lt;br /&gt;
==== Dynamic ====&lt;br /&gt;
Motion system used by Physical objects, applied by such functions as llSetForce() and llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, &amp;lt;...&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== About This Project ==&lt;br /&gt;
The objectives of this project are:&lt;br /&gt;
# To provide VEHICLE associated LSL functions within OpenSimulator that are compatible with Second Life functionality. This means trying to get them really close, but as we are trying to emulate complex HAVOK functions using what is available in ODE they may be only close to the SL functions. &lt;br /&gt;
# To clean up the OdePlugin files. Over many revisions and add-ons they have become somewhat non-optimal. In particular the 'Move' operation that makes objects move around needs to be very clean and smooth so that the update rate remains high.&lt;br /&gt;
# Maintain the existing non-VEHICLE dynamic functions and fix errors where found.&lt;br /&gt;
&lt;br /&gt;
== Vehicle LSL Functions in revised OpenSimulator ==&lt;br /&gt;
There are three categories of LSL functions that are used by Vehicles: Kinematic, Dynamic and VEHICLE. These are listed below with information on their current status within the revised OpenSimulator. (Not the general release at this time.) &lt;br /&gt;
Kinematic vehicle motion can be used by non-physical objects. VEHICLE motion and the associated functions '''ONLY''' apply to objects that are set to a VEHICLE_TYPE of AIRPLANE, BALLOON, BOAT, CAR or SLED. Dynamic functions '''ONLY''' apply (at this time) to VEHICLE_TYPE_NONE, which is the default condition of an object. (In SL it appears that one can use Dynamic functions on a VEHICLE, but to keep things simple at the start of this project such a combination is ignored.)&lt;br /&gt;
&lt;br /&gt;
== Known Problems ==&lt;br /&gt;
# timer() event ceases about 10 seconds after Vehicle moves. Does not restart until many seconds after Vehicle stops. '''Work-around:''' Use llSensor() for a non-existent object at short range and no_sensor() event to re-trigger it. This produces about 1000 events per second. Divide down to produce more reasonable rates.&lt;br /&gt;
# llSetBuoyancy() is not hooked to physics methods. LSL engine problem. '''Work-around:''' None.  Big problem for non-VEHICLE vehicles.&lt;br /&gt;
# llSetHoverHeight() is not hooked to physics methods. LSL engine problem.  '''Work-around:''' None.  Big problem for non VEHICLE vehicles.&lt;br /&gt;
# llSetVehicleFlags() and llRemoveVehicleFlags() are not hooked to physics methods, and may cause simulator crash. LSL engine problem. '''Work-around:''' None, but the VEHICLE_TYPE presets are setting necessary flags.&lt;br /&gt;
# Prim parameters like Material are not being saved. '''Work-around:''' Set by script on rez or whenever used.&lt;br /&gt;
# Script state is not maintained between Take and Rez. '''Work-around:''' on_rez() Reset script and set *everything* again.&lt;br /&gt;
# Border Crossing is bad. Vehicle will be killed and Av unseated and left drifting through target region. '''Work-around:''' Quickly double-click on Map to tele-port to old region. Drag vehicle back and reset it.&lt;br /&gt;
&lt;br /&gt;
== VEHICLE Scripting Notes ==&lt;br /&gt;
#(Not really scripting , but very important) DO NOT attempt to drive a VEHICLE across the Region boundary. If you do your Av will be orbited. You may be able to recover by Map double-click TP to a nearby Region. The VEHICLE object is usually killed, and sitting at edge of the destination region. &lt;br /&gt;
#In revised OpenSimulator the function llSetVehicleType(VEHICLE_TYPE_xxx), where xxx is AIRPLANE, BALLOON, BOAT, CAR or SLED, pre-sets all the applicable VEHICLE parameters to reasonable numbers. If you wish to change any of these pre-set parameters do so after asserting llSetVehicleType(VEHICLE_TYPE_xxx). &lt;br /&gt;
#At present it appears that some conditions within an instantiated scripted object are not maintained after a Region restart, and possibly between take and rez. Therefore you should assert llSetVehicleType(VEHICLE_TYPE_xxx) when the driver sits and llSetVehicleType(VEHICLE_TYPE_NONE)when the driver stands, and probably on_rez.&lt;br /&gt;
#The advice above also applies to camera controls. Assert llSetCameraxxx() on sit and llClearCameraParams() on stand. (At present there seems to be bugs in the Camera Control system, the camera will go underground!)&lt;br /&gt;
#The advice above is also true of Material Type. Land vehicles need the 'wheels' to be PRIM_MATERIAL_GLASS. The script(s) must llSetPrimitiveParams([PRIM_MATERIAL, PRIM_MATERIAL_GLASS]) in every prim that touches the ground, when the rider sits, for reliable operation. Use a link mesage from the root to daughter prim scripts.&lt;br /&gt;
#Use llSetStatus(STATUS_PHYSICS, TRUE) to enable the VEHICLE, usually when the driver sits. Use llSetStatus(STATUS_PHYSICS, FALSE) to disable the VEHICLE, usually when the driver stands.&lt;br /&gt;
#It appears that the timer() event freezes while a Vehicle is in motion, so do not rely  in Timer() to update things like steering or velocity. See Known Problems for a work-around.&lt;br /&gt;
&lt;br /&gt;
== VEHICLE Scripting Examples ==&lt;br /&gt;
# Below are some initial (and very similar) Vehicle scripting examples, implementing a sort of go kart, and the second a motorboat. The motorboat script is a derivative work based on the go kart script.&lt;br /&gt;
&lt;br /&gt;
Car or Go kart script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=LSL&amp;gt;&lt;br /&gt;
// Very simple vehicle script, mod for OpenSim &amp;amp; ODE &amp;amp; VEHICLE code&lt;br /&gt;
// By Kitto Flora  September 2009&lt;br /&gt;
&lt;br /&gt;
integer Private = 1;    // Change to 1 to prevent others riding.&lt;br /&gt;
&lt;br /&gt;
vector Sitpos = &amp;lt;0.35,0,0.35&amp;gt;;&lt;br /&gt;
vector SitrotV = &amp;lt;0,-20,0&amp;gt;;&lt;br /&gt;
rotation Sitrot;&lt;br /&gt;
integer tt;&lt;br /&gt;
key oldagent;&lt;br /&gt;
key agent;&lt;br /&gt;
float forward_power = 12; //Power used to go forward (1 to 30)&lt;br /&gt;
float reverse_power = -6; //Power ued to go reverse (-1 to -30)&lt;br /&gt;
float turning_ratio = 2.0; //How sharply the vehicle turns. Less is more sharply. (.1 to 10)&lt;br /&gt;
integer turncount;&lt;br /&gt;
string Wheeldir = &amp;quot;WC&amp;quot;;&lt;br /&gt;
string NewWheeldir = &amp;quot;WC&amp;quot;;&lt;br /&gt;
string Wheelrot = &amp;quot;S&amp;quot;;&lt;br /&gt;
string NewWheelrot = &amp;quot;S&amp;quot;;&lt;br /&gt;
integer scount;&lt;br /&gt;
integer Speed;&lt;br /&gt;
integer Run;&lt;br /&gt;
&lt;br /&gt;
string sit_message = &amp;quot;Ride&amp;quot;; //Sit message&lt;br /&gt;
string not_owner_message = &amp;quot;You are not the owner of this vehicle, buy a copy for 0$ and have your own to test in this sim. It will not work in other Open Sim Regions.&amp;quot;; //Not owner message&lt;br /&gt;
&lt;br /&gt;
setVehicle()&lt;br /&gt;
{&lt;br /&gt;
    //car&lt;br /&gt;
        llSetVehicleType(VEHICLE_TYPE_CAR);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0.2);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0.80);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 0.10);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 0.10);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_LINEAR_MOTOR_TIMESCALE, 1.0);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 0.1);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_ANGULAR_MOTOR_TIMESCALE, 0.1);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 0.1);&lt;br /&gt;
        llSetVehicleVectorParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, &amp;lt;10.0, 2.0, 1000.0&amp;gt;);&lt;br /&gt;
        llSetVehicleVectorParam(VEHICLE_ANGULAR_FRICTION_TIMESCALE, &amp;lt;0.1, 0.1, 0.1&amp;gt;);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 0.50);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 0.50);&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
Init()&lt;br /&gt;
{&lt;br /&gt;
    Sound(0);&lt;br /&gt;
    llSetStatus(STATUS_PHYSICS, FALSE);&lt;br /&gt;
    vector here = llGetPos();&lt;br /&gt;
    float h = llGround(&amp;lt;0,0,0&amp;gt;) + 0.52;&lt;br /&gt;
    vector rotv = llRot2Euler(llGetRot());&lt;br /&gt;
    rotation rot = llEuler2Rot(&amp;lt;0,0,rotv.z&amp;gt;);&lt;br /&gt;
    llSetPos(&amp;lt;here.x, here.y,h&amp;gt;);&lt;br /&gt;
    llSetRot(rot);&lt;br /&gt;
    Sitrot = llEuler2Rot(DEG_TO_RAD * SitrotV);&lt;br /&gt;
    llSetVehicleType(VEHICLE_TYPE_NONE);&lt;br /&gt;
    llMessageLinked(LINK_ALL_OTHERS, 0, &amp;quot;S&amp;quot;, NULL_KEY);     // wheels stop&lt;br /&gt;
    llMessageLinked(LINK_ALL_OTHERS, 0, &amp;quot;WC&amp;quot;, NULL_KEY);     // wheels straight&lt;br /&gt;
    Run = 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
SetMaterial()&lt;br /&gt;
{&lt;br /&gt;
    llSetPrimitiveParams([PRIM_MATERIAL, PRIM_MATERIAL_GLASS]);&lt;br /&gt;
    llMessageLinked(LINK_ALL_OTHERS, 0, &amp;quot;SetMat&amp;quot;, NULL_KEY);    // Tell daughter pims on ground to be glass&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Sound(integer n)&lt;br /&gt;
{&lt;br /&gt;
    integer oldn;&lt;br /&gt;
    if(n != oldn)&lt;br /&gt;
    {&lt;br /&gt;
        oldn = n;&lt;br /&gt;
        if(n == 2)&lt;br /&gt;
        {&lt;br /&gt;
            llLoopSound(&amp;quot;RUNNING&amp;quot;,1);&lt;br /&gt;
        }&lt;br /&gt;
        else if(n == 1)&lt;br /&gt;
        {&lt;br /&gt;
            llLoopSound(&amp;quot;IDLE&amp;quot;,1);&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
             llStopSound();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}    &lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        Init();&lt;br /&gt;
        llSetSitText(sit_message);&lt;br /&gt;
        // forward-back,left-right,updown&lt;br /&gt;
        llSitTarget(Sitpos, Sitrot);&lt;br /&gt;
        llStopSound();&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    on_rez(integer rn){&lt;br /&gt;
        llResetScript();&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    changed(integer change)&lt;br /&gt;
    {&lt;br /&gt;
        if ((change &amp;amp; CHANGED_LINK) == CHANGED_LINK)&lt;br /&gt;
        {&lt;br /&gt;
            agent = llAvatarOnSitTarget();&lt;br /&gt;
            if (agent != NULL_KEY)&lt;br /&gt;
            {                &lt;br /&gt;
                if( (agent != llGetOwner()) &amp;amp;&amp;amp; (Private == 1) )&lt;br /&gt;
                {&lt;br /&gt;
                    llSay(0, not_owner_message);&lt;br /&gt;
                    llUnSit(agent);&lt;br /&gt;
// not functional   llPushObject(agent, &amp;lt;0,0,50&amp;gt;, ZERO_VECTOR, FALSE);&lt;br /&gt;
                }&lt;br /&gt;
                else&lt;br /&gt;
                {&lt;br /&gt;
                    //llTriggerSound(&amp;quot;car_start&amp;quot;,1);&lt;br /&gt;
//                    llMessageLinked(LINK_ALL_CHILDREN , 0, &amp;quot;WHEEL_DRIVING&amp;quot;, NULL_KEY);&lt;br /&gt;
                    oldagent = agent;&lt;br /&gt;
                    setVehicle();&lt;br /&gt;
                    SetMaterial();&lt;br /&gt;
                    llSleep(.4);&lt;br /&gt;
                    llSetStatus(STATUS_PHYSICS, TRUE);&lt;br /&gt;
                    llSleep(.1);&lt;br /&gt;
                    Run = 1;&lt;br /&gt;
                    //Sensor is to make a crude Timer as TimerEvent fails on vehicles&lt;br /&gt;
                    llSensor(&amp;quot;Non-Entity&amp;quot;,NULL_KEY,PASSIVE,1.0, PI_BY_TWO); &lt;br /&gt;
&lt;br /&gt;
                    llRequestPermissions(agent, PERMISSION_TRIGGER_ANIMATION | PERMISSION_TAKE_CONTROLS);&lt;br /&gt;
                    Sound(1);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                Init();&lt;br /&gt;
                llSleep(.4);&lt;br /&gt;
                llReleaseControls();&lt;br /&gt;
                llMessageLinked(LINK_ALL_OTHERS, 0, &amp;quot;S&amp;quot;, NULL_KEY);&lt;br /&gt;
                Run = 0;&lt;br /&gt;
                llStopSound();&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    touch_start(integer tn){&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    run_time_permissions(integer perm)&lt;br /&gt;
    {&lt;br /&gt;
        if (perm)&lt;br /&gt;
        {&lt;br /&gt;
            llTakeControls(CONTROL_FWD | CONTROL_BACK | CONTROL_DOWN | CONTROL_UP | CONTROL_RIGHT | &lt;br /&gt;
                            CONTROL_LEFT | CONTROL_ROT_RIGHT | CONTROL_ROT_LEFT, TRUE, FALSE);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    control(key id, integer level, integer edge)&lt;br /&gt;
    {&lt;br /&gt;
        integer reverse=1;&lt;br /&gt;
        vector angular_motor;&lt;br /&gt;
        &lt;br /&gt;
        //get current speed&lt;br /&gt;
        vector vel = llGetVel();&lt;br /&gt;
        float speed = llVecMag(vel);&lt;br /&gt;
&lt;br /&gt;
        //car controls&lt;br /&gt;
        if(level &amp;amp; CONTROL_FWD)&lt;br /&gt;
        {&lt;br /&gt;
            llSetVehicleVectorParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, &amp;lt;10.0, 2.0, 1000.0&amp;gt;);&lt;br /&gt;
            llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, &amp;lt;forward_power,0,0&amp;gt;);&lt;br /&gt;
            reverse=1;&lt;br /&gt;
            NewWheelrot = &amp;quot;F&amp;quot;;&lt;br /&gt;
            Speed = 20;&lt;br /&gt;
        }&lt;br /&gt;
        if(level &amp;amp; CONTROL_BACK)&lt;br /&gt;
        {&lt;br /&gt;
            llSetVehicleVectorParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, &amp;lt;10.0, 2.0, 1000.0&amp;gt;);&lt;br /&gt;
            llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, &amp;lt;reverse_power,0,0&amp;gt;);&lt;br /&gt;
            reverse = -1;&lt;br /&gt;
            NewWheelrot = &amp;quot;R&amp;quot;;&lt;br /&gt;
            Speed = 10;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if(level &amp;amp; (CONTROL_RIGHT|CONTROL_ROT_RIGHT))&lt;br /&gt;
        {&lt;br /&gt;
            angular_motor.z -= speed / turning_ratio * reverse;&lt;br /&gt;
            NewWheeldir = &amp;quot;WR&amp;quot;;&lt;br /&gt;
            turncount = 10;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        if(level &amp;amp; (CONTROL_LEFT|CONTROL_ROT_LEFT))&lt;br /&gt;
        {&lt;br /&gt;
            angular_motor.z += speed / turning_ratio * reverse;&lt;br /&gt;
            NewWheeldir = &amp;quot;WL&amp;quot;;&lt;br /&gt;
            turncount = 10;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        llSetVehicleVectorParam(VEHICLE_ANGULAR_MOTOR_DIRECTION, angular_motor);&lt;br /&gt;
        if(turncount &amp;gt; 0)&lt;br /&gt;
        {&lt;br /&gt;
            turncount--;&lt;br /&gt;
        }&lt;br /&gt;
        if(turncount == 1)&lt;br /&gt;
        {&lt;br /&gt;
            NewWheeldir = &amp;quot;WC&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        if(Wheeldir != NewWheeldir){&lt;br /&gt;
            Wheeldir = NewWheeldir;&lt;br /&gt;
            llMessageLinked(LINK_ALL_OTHERS, 0, Wheeldir, NULL_KEY);&lt;br /&gt;
        }&lt;br /&gt;
        if(Wheelrot != NewWheelrot){&lt;br /&gt;
            Wheelrot = NewWheelrot;&lt;br /&gt;
            llMessageLinked(LINK_ALL_OTHERS, 0, Wheelrot, NULL_KEY);&lt;br /&gt;
        }&lt;br /&gt;
    } //end control   &lt;br /&gt;
    &lt;br /&gt;
    //Sensor is to make a crude Timer as TimerEvent fails on vehicles&lt;br /&gt;
    no_sensor()&lt;br /&gt;
    {&lt;br /&gt;
        if(scount &amp;lt; 1000)&lt;br /&gt;
        {&lt;br /&gt;
            scount++;&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
            scount = 0;&lt;br /&gt;
            // This happens about once per second&lt;br /&gt;
            if(Speed &amp;gt; 0) Speed--;&lt;br /&gt;
            &lt;br /&gt;
            if(Speed &amp;gt; 2)  Sound(2);&lt;br /&gt;
            &lt;br /&gt;
            if(Speed == 1) {&lt;br /&gt;
                llSetVehicleVectorParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, &amp;lt;1.0, 2.0, 1000.0&amp;gt;);&lt;br /&gt;
                llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, &amp;lt;0,0,0&amp;gt;);&lt;br /&gt;
                llMessageLinked(LINK_ALL_OTHERS, 0, &amp;quot;S&amp;quot;, NULL_KEY);&lt;br /&gt;
                Sound(1);&lt;br /&gt;
                Wheelrot = &amp;quot;S&amp;quot;;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        if(Run == 1)&lt;br /&gt;
            llSensor(&amp;quot;Non-Entity&amp;quot;,NULL_KEY,PASSIVE,1.0, PI_BY_TWO); &lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
} //end default&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Motorboat script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=LSL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Very simple vehicle script, mod for OpenSim &amp;amp; ODE &amp;amp; VEHICLE code&lt;br /&gt;
// By Kitto Flora  September 2009&lt;br /&gt;
&lt;br /&gt;
// modified by Hiro Protagonist for basic aquatic motorcraft&lt;br /&gt;
// September 2009&lt;br /&gt;
&lt;br /&gt;
integer Private = 1;    // Change to 1 to prevent others riding.&lt;br /&gt;
&lt;br /&gt;
vector Sitpos = &amp;lt;0.35,0,0.35&amp;gt;;&lt;br /&gt;
vector SitrotV = &amp;lt;0,-20,0&amp;gt;;&lt;br /&gt;
rotation Sitrot;&lt;br /&gt;
integer tt;&lt;br /&gt;
key oldagent; &lt;br /&gt;
key agent;&lt;br /&gt;
float forward_power = 8; //Power used to go forward (1 to 30)&lt;br /&gt;
float reverse_power = -3; //Power ued to go reverse (-1 to -30)&lt;br /&gt;
float turning_ratio = 1.0; //How sharply the vehicle turns. Less is more sharply. (.1 to 10)&lt;br /&gt;
integer scount;&lt;br /&gt;
integer Speed;&lt;br /&gt;
integer Run;&lt;br /&gt;
&lt;br /&gt;
string sit_message = &amp;quot;Man the Helm&amp;quot;; //Sit message&lt;br /&gt;
string not_owner_message = &amp;quot;You are not the owner of this vehicle, buy a copy for 0$ and have your own to test in this sim. It will not work in other Open Sim Regions.&amp;quot;; //Not owner message&lt;br /&gt;
&lt;br /&gt;
setVehicle()&lt;br /&gt;
{&lt;br /&gt;
    //boat&lt;br /&gt;
        llSetVehicleType(VEHICLE_TYPE_BOAT);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0.2);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0.80);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 0.10);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 0.10);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_LINEAR_MOTOR_TIMESCALE, 1.0);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 0.1);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_ANGULAR_MOTOR_TIMESCALE, 0.1);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 0.1);&lt;br /&gt;
        llSetVehicleVectorParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, &amp;lt;10.0, 2.0, 1000.0&amp;gt;);&lt;br /&gt;
        llSetVehicleVectorParam(VEHICLE_ANGULAR_FRICTION_TIMESCALE, &amp;lt;0.1, 0.1, 0.1&amp;gt;);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 0.250);&lt;br /&gt;
        llSetVehicleFloatParam(VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 0.250);&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
Init()&lt;br /&gt;
{&lt;br /&gt;
    Sound(0);&lt;br /&gt;
    llSetBuoyancy(1);&lt;br /&gt;
    llSetStatus(STATUS_PHYSICS, FALSE);&lt;br /&gt;
    vector here = llGetPos();&lt;br /&gt;
    float h = llWater(&amp;lt;0,0,0&amp;gt;) + 0.22;&lt;br /&gt;
    vector rotv = llRot2Euler(llGetRot());&lt;br /&gt;
    rotation rot = llEuler2Rot(&amp;lt;0,0,rotv.z&amp;gt;);&lt;br /&gt;
    llSetPos(&amp;lt;here.x, here.y,h&amp;gt;);&lt;br /&gt;
    llSetRot(rot);&lt;br /&gt;
    Sitrot = llEuler2Rot(DEG_TO_RAD * SitrotV);&lt;br /&gt;
    llSetVehicleType(VEHICLE_TYPE_NONE);&lt;br /&gt;
    llMessageLinked(LINK_ALL_OTHERS, 0, &amp;quot;S&amp;quot;, NULL_KEY);     // wheels stop&lt;br /&gt;
    llMessageLinked(LINK_ALL_OTHERS, 0, &amp;quot;WC&amp;quot;, NULL_KEY);     // wheels straight&lt;br /&gt;
    Run = 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
SetMaterial()&lt;br /&gt;
{&lt;br /&gt;
    llSetPrimitiveParams([PRIM_MATERIAL, PRIM_MATERIAL_WOOD]);&lt;br /&gt;
//    llMessageLinked(LINK_ALL_OTHERS, 0, &amp;quot;SetMat&amp;quot;, NULL_KEY);    // Tell daughter pims on ground to be glass&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Sound(integer n)&lt;br /&gt;
{&lt;br /&gt;
    integer oldn;&lt;br /&gt;
    if(n != oldn)&lt;br /&gt;
    {&lt;br /&gt;
        oldn = n;&lt;br /&gt;
        if(n == 2)&lt;br /&gt;
        {&lt;br /&gt;
  //          llLoopSound(&amp;quot;RUNNING&amp;quot;,1);&lt;br /&gt;
        }&lt;br /&gt;
        else if(n == 1)&lt;br /&gt;
        {&lt;br /&gt;
  //          llLoopSound(&amp;quot;IDLE&amp;quot;,1);&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
  //           llStopSound();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}    &lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        Init();&lt;br /&gt;
        llSetSitText(sit_message);&lt;br /&gt;
        // forward-back,left-right,updown&lt;br /&gt;
        llSitTarget(Sitpos, Sitrot);&lt;br /&gt;
    //    llStopSound();&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    on_rez(integer rn){&lt;br /&gt;
        llResetScript();&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    changed(integer change)&lt;br /&gt;
    {&lt;br /&gt;
        if ((change &amp;amp; CHANGED_LINK) == CHANGED_LINK)&lt;br /&gt;
        {&lt;br /&gt;
            agent = llAvatarOnSitTarget();&lt;br /&gt;
            if (agent != NULL_KEY)&lt;br /&gt;
            {                &lt;br /&gt;
                if( (agent != llGetOwner()) &amp;amp;&amp;amp; (Private == 1) )&lt;br /&gt;
                {&lt;br /&gt;
                    llSay(0, not_owner_message);&lt;br /&gt;
                    llUnSit(agent);&lt;br /&gt;
// not functional   llPushObject(agent, &amp;lt;0,0,50&amp;gt;, ZERO_VECTOR, FALSE);&lt;br /&gt;
                }&lt;br /&gt;
                else&lt;br /&gt;
                {&lt;br /&gt;
                    //llTriggerSound(&amp;quot;car_start&amp;quot;,1);&lt;br /&gt;
//                    llMessageLinked(LINK_ALL_CHILDREN , 0, &amp;quot;WHEEL_DRIVING&amp;quot;, NULL_KEY);&lt;br /&gt;
                    oldagent = agent;&lt;br /&gt;
                    setVehicle();&lt;br /&gt;
                    SetMaterial();&lt;br /&gt;
                    llSleep(.4);&lt;br /&gt;
                    llSetStatus(STATUS_PHYSICS, TRUE);&lt;br /&gt;
                    llSleep(.1);&lt;br /&gt;
                    Run = 1;&lt;br /&gt;
                    //Sensor is to make a crude Timer as TimerEvent fails on vehicles&lt;br /&gt;
                    llSensor(&amp;quot;Non-Entity&amp;quot;,NULL_KEY,PASSIVE,1.0, PI_BY_TWO); &lt;br /&gt;
&lt;br /&gt;
                    llRequestPermissions(agent, PERMISSION_TRIGGER_ANIMATION | PERMISSION_TAKE_CONTROLS);&lt;br /&gt;
                    Sound(1);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                Init();&lt;br /&gt;
                llSleep(.4);&lt;br /&gt;
                llReleaseControls();&lt;br /&gt;
                llMessageLinked(LINK_ALL_OTHERS, 0, &amp;quot;S&amp;quot;, NULL_KEY);&lt;br /&gt;
                Run = 0;&lt;br /&gt;
                llStopSound();&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    touch_start(integer tn){&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    run_time_permissions(integer perm)&lt;br /&gt;
    {&lt;br /&gt;
        if (perm)&lt;br /&gt;
        {&lt;br /&gt;
            llTakeControls(CONTROL_FWD | CONTROL_BACK | CONTROL_DOWN | CONTROL_UP | CONTROL_RIGHT | &lt;br /&gt;
                            CONTROL_LEFT | CONTROL_ROT_RIGHT | CONTROL_ROT_LEFT, TRUE, FALSE);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    control(key id, integer level, integer edge)&lt;br /&gt;
    {&lt;br /&gt;
        integer reverse=1;&lt;br /&gt;
        vector angular_motor;&lt;br /&gt;
        &lt;br /&gt;
        //get current speed&lt;br /&gt;
        vector vel = llGetVel();&lt;br /&gt;
        float speed = llVecMag(vel);&lt;br /&gt;
&lt;br /&gt;
        //car controls&lt;br /&gt;
        if(level &amp;amp; CONTROL_FWD)&lt;br /&gt;
        {&lt;br /&gt;
            llSetVehicleVectorParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, &amp;lt;10.0, 2.0, 1000.0&amp;gt;);&lt;br /&gt;
            llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, &amp;lt;forward_power,0,0&amp;gt;);&lt;br /&gt;
            reverse=1;&lt;br /&gt;
//            NewWheelrot = &amp;quot;F&amp;quot;;&lt;br /&gt;
            Speed = 20;&lt;br /&gt;
        }&lt;br /&gt;
        if(level &amp;amp; CONTROL_BACK)&lt;br /&gt;
        {&lt;br /&gt;
            llSetVehicleVectorParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, &amp;lt;10.0, 2.0, 1000.0&amp;gt;);&lt;br /&gt;
            llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, &amp;lt;reverse_power,0,0&amp;gt;);&lt;br /&gt;
            reverse = -1;&lt;br /&gt;
         //   NewWheelrot = &amp;quot;R&amp;quot;;&lt;br /&gt;
            Speed = 10;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if(level &amp;amp; (CONTROL_RIGHT|CONTROL_ROT_RIGHT))&lt;br /&gt;
        {&lt;br /&gt;
            angular_motor.z -= speed / turning_ratio * reverse;&lt;br /&gt;
         //   NewWheeldir = &amp;quot;WR&amp;quot;;&lt;br /&gt;
         //   turncount = 10;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        if(level &amp;amp; (CONTROL_LEFT|CONTROL_ROT_LEFT))&lt;br /&gt;
        {&lt;br /&gt;
            angular_motor.z += speed / turning_ratio * reverse;&lt;br /&gt;
        //    NewWheeldir = &amp;quot;WL&amp;quot;;&lt;br /&gt;
       //     turncount = 10;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        llSetVehicleVectorParam(VEHICLE_ANGULAR_MOTOR_DIRECTION, angular_motor);&lt;br /&gt;
      //  if(turncount &amp;gt; 0)&lt;br /&gt;
      //  {&lt;br /&gt;
         //   turncount--;&lt;br /&gt;
      //  }&lt;br /&gt;
      //  if(turncount == 1)&lt;br /&gt;
      //  {&lt;br /&gt;
       //     NewWheeldir = &amp;quot;WC&amp;quot;;&lt;br /&gt;
      //  }&lt;br /&gt;
      //  if(Wheeldir != NewWheeldir){&lt;br /&gt;
      //      Wheeldir = NewWheeldir;&lt;br /&gt;
      //      llMessageLinked(LINK_ALL_OTHERS, 0, Wheeldir, NULL_KEY);&lt;br /&gt;
     //   }&lt;br /&gt;
     //   if(Wheelrot != NewWheelrot){&lt;br /&gt;
     //       Wheelrot = NewWheelrot;&lt;br /&gt;
      //      llMessageLinked(LINK_ALL_OTHERS, 0, Wheelrot, NULL_KEY);&lt;br /&gt;
      //  }&lt;br /&gt;
    } //end control   &lt;br /&gt;
    &lt;br /&gt;
    //Sensor is to make a crude Timer as TimerEvent fails on vehicles&lt;br /&gt;
    no_sensor()&lt;br /&gt;
    {&lt;br /&gt;
        if(scount &amp;lt; 1000)&lt;br /&gt;
        {&lt;br /&gt;
            scount++;&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
            scount = 0;&lt;br /&gt;
            // This happens about once per second&lt;br /&gt;
            if(Speed &amp;gt; 0) Speed--;&lt;br /&gt;
            &lt;br /&gt;
            if(Speed &amp;gt; 2)  Sound(2);&lt;br /&gt;
            &lt;br /&gt;
            if(Speed == 1) {&lt;br /&gt;
                llSetVehicleVectorParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, &amp;lt;1.0, 2.0, 1000.0&amp;gt;);&lt;br /&gt;
                llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, &amp;lt;0,0,0&amp;gt;);&lt;br /&gt;
       //         llMessageLinked(LINK_ALL_OTHERS, 0, &amp;quot;S&amp;quot;, NULL_KEY);&lt;br /&gt;
      //          Sound(1);&lt;br /&gt;
      //          Wheelrot = &amp;quot;S&amp;quot;;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        if(Run == 1)&lt;br /&gt;
            llSensor(&amp;quot;Non-Entity&amp;quot;,NULL_KEY,PASSIVE,1.0, PI_BY_TWO); &lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
} //end default&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Vehicle LSL Functions and Status ==&lt;br /&gt;
NOTE! This list applies to the revised OpenSimulator, not the released&lt;br /&gt;
OpenSimulator.&lt;br /&gt;
&lt;br /&gt;
Key: Y = Yes; N = No; F = Framework present but commented out; N/A = Has not been checked (much) yet&lt;br /&gt;
&lt;br /&gt;
=== KINEMATIC ===&lt;br /&gt;
Object must not be PHYSICAL&lt;br /&gt;
&lt;br /&gt;
(Some work, some do not.)&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Function!!Set by LSL?!!Used by OpenSim C#!!Works?!!Comments&lt;br /&gt;
|-&lt;br /&gt;
|llSetPos()||Y||Y||Y||Also works on physical objects! &lt;br /&gt;
|-&lt;br /&gt;
|llSetRot()||Y||Y||Y||Y&lt;br /&gt;
|-&lt;br /&gt;
|llSetLocalRot()||Y||Y||Y&lt;br /&gt;
|-&lt;br /&gt;
|llSetScale()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llLookAt()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llRotLookAt()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetPrimitiveParams()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetLinkPrimitiveParams()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llTargetOmega()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== DYNAMIC ===&lt;br /&gt;
Object must be PHYSICAL and VEHICLE_TYPE_NONE(default) at present, but this must probably change.&lt;br /&gt;
&lt;br /&gt;
(Some work, some do not.)&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Function!!Parameter!!Set by LSL?!!Used by OpenSim C#!!Comments&lt;br /&gt;
|-&lt;br /&gt;
|llApplyImpulse()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llApplyRotationalImpulse()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llGroundRepel()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llMoveToTarget()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llPushObject()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetBuoyancy()||N/A||N/A||N/A||(do not confuse with VEHICLE_BUOYANCY)&lt;br /&gt;
|-&lt;br /&gt;
|llSetForce()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetForceAndTorque()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetHoverHeight()||N/A||N/A||N/A||(do not confuse with VEHICLE_HOVER_HEIGHT)&lt;br /&gt;
|-&lt;br /&gt;
|llSetTorque()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llTargetOmega()||N/A||N/A||N/A||N/A&lt;br /&gt;
|- 	&lt;br /&gt;
|llLookAt()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llRotLookAt()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetPrimitiveParams()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetLinkPrimitiveParams()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llTargetOmega()||N/A||N/A||N/A||N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== VEHICLE ===&lt;br /&gt;
Object must be PHYSICAL and VEHICLE_TYPE_&amp;lt;other than NONE&amp;gt;&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Functions!!Set by LSL?!!Used!!Works!!Exceptions&lt;br /&gt;
|-&lt;br /&gt;
|llSetVehicleType()||Y||Y||Y&lt;br /&gt;
|-&lt;br /&gt;
|llSetVehicleFlags()||N||N||N||Some flags are set by llSetVehicleType()&lt;br /&gt;
|-&lt;br /&gt;
|llRemoveVehicleFlags()||N||N||N||&lt;br /&gt;
|- &lt;br /&gt;
|llSetVehicleFloatParam()||Y||Y||Y|| &lt;br /&gt;
|-&lt;br /&gt;
|llSetVehicleVectorParam()||Y||Y||Y||&lt;br /&gt;
|- &lt;br /&gt;
|llSetVehicleRotationParam()||Y||Y||Y|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Parameters!!Set by LSL?!!Used!!Works!!Exceptions&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_LINEAR_MOTOR_DIRECTION||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_LINEAR_MOTOR_TIMESCALE||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_LINEAR_FRICTION_TIMESCALE||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_LINEAR_MOTOR_OFFSET||F||N|| || &lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_ANGULAR_MOTOR_DIRECTION||Y||Y||Y|| &lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_ANGULAR_MOTOR_TIMESCALE||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_ANGULAR_FRICTION_TIMESCALE||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
||VEHICLE_BANKING_EFFICIENCY||F||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_BANKING_MIX||F||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_BANKING_TIMESCALE||F||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_BUOYANCY||Y||Y||Y||(do not confuse with llSetBuoyancy())&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_HOVER_HEIGHT||Y||Y||Y||(do not confuse with llSetHoverHeight())&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_HOVER_EFFICIENCY||Y||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_HOVER_TIMESCALE||Y||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_LINEAR_DEFLECTION_EFFICIENCY||F||N|| ||&lt;br /&gt;
|- &lt;br /&gt;
|VEHICLE_LINEAR_DEFLECTION_TIMESCALE||F||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY||F||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_ANGULAR_DEFLECTION_TIMESCALE||F||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_REFERENCE_FRAME||F||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_VERTICAL_ATTRACTION_TIMESCALE||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_TYPE_NONE||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_TYPE_BALLOON||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_TYPE_BOAT||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_TYPE_CAR||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_TYPE_SLED||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_FLAG_NO_DEFLECTION_UP||Y||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_FLAG_LIMIT_ROLL_ONLY||Y||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_FLAG_HOVER_WATER_ONLY||Y||Y|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_FLAG_HOVER_TERRAIN_ONLY||Y||Y|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT||Y||Y|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_FLAG_HOVER_UP_ONLY||Y||Y|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_FLAG_LIMIT_MOTOR_UP||Y||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_FLAG_MOUSELOOK_STEER||Y||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_FLAG_MOUSELOOK_BANK||Y||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_FLAG_CAMERA_DECOUPLED||Y||N|| ||&lt;br /&gt;
|}&lt;br /&gt;
== VEHICLE TYPE Presets ==&lt;br /&gt;
VEHICLE_TYPE_SLED:&lt;br /&gt;
 linearFrictionTimescale &amp;lt;30, 1, 1000&amp;gt;&lt;br /&gt;
 angularFrictionTimescale &amp;lt;1000, 1000, 1000&amp;gt;&lt;br /&gt;
 linearMotorDirection &amp;lt;0, 0, 0&amp;gt;&lt;br /&gt;
 linearMotorTimescale  1000  &lt;br /&gt;
 linearMotorDecayTimescale  120  &lt;br /&gt;
 angularMotorDirection &amp;lt;0, 0, 0&amp;gt;&lt;br /&gt;
 angularMotorTimescale  1000  &lt;br /&gt;
 angularMotorDecayTimescale  120  &lt;br /&gt;
 VhoverHeight  0  &lt;br /&gt;
 VhoverEfficiency  1  &lt;br /&gt;
 VhoverTimescale  10  &lt;br /&gt;
 VehicleBuoyancy  0  &lt;br /&gt;
 linearDeflectionEfficiency  1  &lt;br /&gt;
 linearDeflectionTimescale  1  &lt;br /&gt;
 angularDeflectionEfficiency  1  &lt;br /&gt;
 angularDeflectionTimescale  1000  &lt;br /&gt;
 bankingEfficiency  0  &lt;br /&gt;
 bankingMix  1  &lt;br /&gt;
 bankingTimescale  10  &lt;br /&gt;
 referenceFrame ZERO_ROTATION&lt;br /&gt;
 flags FALSE: &lt;br /&gt;
 	HOVER_WATER_ONLY&lt;br /&gt;
 	HOVER_TERRAIN_ONLY&lt;br /&gt;
 	HOVER_GLOBAL_HEIGHT&lt;br /&gt;
 	HOVER_UP_ONLY&lt;br /&gt;
 flags  TRUE:&lt;br /&gt;
 	NO_DEFLECTION_UP&lt;br /&gt;
 	LIMIT_ROLL_ONLY&lt;br /&gt;
 	LIMIT_MOTOR_UP&lt;br /&gt;
 	&lt;br /&gt;
&lt;br /&gt;
VEHICLE_TYPE_CAR:&lt;br /&gt;
 linearFrictionTimescale &amp;lt;100, 2, 1000&amp;gt;&lt;br /&gt;
 angularFrictionTimescale &amp;lt;1000, 1000, 1000&amp;gt;&lt;br /&gt;
 linearMotorDirection &amp;lt;0, 0, 0&amp;gt;&lt;br /&gt;
 linearMotorTimescale  1  &lt;br /&gt;
 linearMotorDecayTimescale  60  &lt;br /&gt;
 angularMotorDirection &amp;lt;0, 0, 0&amp;gt;&lt;br /&gt;
 angularMotorTimescale  1  &lt;br /&gt;
 angularMotorDecayTimescale  0.8  &lt;br /&gt;
 VhoverHeight  0  &lt;br /&gt;
 VhoverEfficiency  0  &lt;br /&gt;
 VhoverTimescale  1000  &lt;br /&gt;
 VehicleBuoyancy  0  &lt;br /&gt;
  // m_linearDeflectionEfficiency  1  &lt;br /&gt;
  // m_linearDeflectionTimescale  2  &lt;br /&gt;
  // m_angularDeflectionEfficiency  0  &lt;br /&gt;
 angularDeflectionTimescale  10  &lt;br /&gt;
 verticalAttractionEfficiency  1  &lt;br /&gt;
 verticalAttractionTimescale  10  &lt;br /&gt;
 bankingEfficiency  -0.2  &lt;br /&gt;
 bankingMix  1  &lt;br /&gt;
 bankingTimescale  1  &lt;br /&gt;
 referenceFrame ZERO_ROTATION&lt;br /&gt;
 flags FALSE: &lt;br /&gt;
 	HOVER_WATER_ONLY &lt;br /&gt;
 	HOVER_TERRAIN_ONLY &lt;br /&gt;
 	HOVER_GLOBAL_HEIGHT&lt;br /&gt;
 flags TRUE:&lt;br /&gt;
 	NO_DEFLECTION_UP &lt;br /&gt;
 	LIMIT_ROLL_ONLY &lt;br /&gt;
	HOVER_UP_ONLY&lt;br /&gt;
	LIMIT_MOTOR_UP&lt;br /&gt;
	&lt;br /&gt;
VEHICLE_TYPE_BOAT:&lt;br /&gt;
 linearFrictionTimescale &amp;lt;10, 3, 2&amp;gt;&lt;br /&gt;
 angularFrictionTimescale &amp;lt;10,10,10&amp;gt;&lt;br /&gt;
 linearMotorDirection &amp;lt;0, 0, 0&amp;gt;&lt;br /&gt;
 linearMotorTimescale  5  &lt;br /&gt;
 linearMotorDecayTimescale  60  &lt;br /&gt;
 angularMotorDirection &amp;lt;0, 0, 0&amp;gt;&lt;br /&gt;
 angularMotorTimescale  4  &lt;br /&gt;
 angularMotorDecayTimescale  4  &lt;br /&gt;
 VhoverHeight  0  &lt;br /&gt;
 VhoverEfficiency  0.5  &lt;br /&gt;
 VhoverTimescale  2  &lt;br /&gt;
 VehicleBuoyancy  1  &lt;br /&gt;
 linearDeflectionEfficiency  0.5  &lt;br /&gt;
 linearDeflectionTimescale  3  &lt;br /&gt;
 angularDeflectionEfficiency  0.5  &lt;br /&gt;
 angularDeflectionTimescale  5  &lt;br /&gt;
 verticalAttractionEfficiency  0.5  &lt;br /&gt;
 verticalAttractionTimescale  5  &lt;br /&gt;
 bankingEfficiency  -0.3  &lt;br /&gt;
 bankingMix  0.8  &lt;br /&gt;
 bankingTimescale  1  &lt;br /&gt;
 referenceFrame ZERO_ROTATION&lt;br /&gt;
 flags FALSE: &lt;br /&gt;
 	HOVER_TERRAIN_ONLY&lt;br /&gt;
 	LIMIT_ROLL_ONLY&lt;br /&gt;
 	HOVER_GLOBAL_HEIGHT&lt;br /&gt;
 	HOVER_UP_ONLY&lt;br /&gt;
 flags TRUE:&lt;br /&gt;
 	NO_DEFLECTION_UP&lt;br /&gt;
 	HOVER_WATER_ONLY&lt;br /&gt;
 	LIMIT_MOTOR_UP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
VEHICLE_TYPE_AIRPLANE:&lt;br /&gt;
 linearFrictionTimescale &amp;lt;200, 10, 5&amp;gt;&lt;br /&gt;
 angularFrictionTimescale &amp;lt;20, 20, 20&amp;gt;&lt;br /&gt;
 linearMotorDirection &amp;lt;0, 0, 0&amp;gt;&lt;br /&gt;
 linearMotorTimescale  2  &lt;br /&gt;
 linearMotorDecayTimescale  60  &lt;br /&gt;
 angularMotorDirection &amp;lt;0, 0, 0&amp;gt;&lt;br /&gt;
 angularMotorTimescale  4  &lt;br /&gt;
 angularMotorDecayTimescale  4  &lt;br /&gt;
 VhoverHeight  0  &lt;br /&gt;
 VhoverEfficiency  0.5  &lt;br /&gt;
 VhoverTimescale  1000  &lt;br /&gt;
 VehicleBuoyancy  0  &lt;br /&gt;
 linearDeflectionEfficiency  0.5  &lt;br /&gt;
 linearDeflectionTimescale  3  &lt;br /&gt;
 angularDeflectionEfficiency  1  &lt;br /&gt;
 angularDeflectionTimescale  2  &lt;br /&gt;
 verticalAttractionEfficiency  0.9  &lt;br /&gt;
 verticalAttractionTimescale  2  &lt;br /&gt;
 bankingEfficiency  1  &lt;br /&gt;
 bankingMix  0.7f  &lt;br /&gt;
 bankingTimescale  2  &lt;br /&gt;
 referenceFrame ZERO_ROTATION&lt;br /&gt;
 flags FALSE:&lt;br /&gt;
 	NO_DEFLECTION_UP&lt;br /&gt;
 	HOVER_WATER_ONLY&lt;br /&gt;
 	HOVER_TERRAIN_ONLY&lt;br /&gt;
 	HOVER_GLOBAL_HEIGHT&lt;br /&gt;
 	HOVER_UP_ONLY&lt;br /&gt;
 	LIMIT_MOTOR_UP&lt;br /&gt;
 flags TRUE:&lt;br /&gt;
 	LIMIT_ROLL_ONLY&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
VEHICLE_TYPE_BALLOON:&lt;br /&gt;
 linearFrictionTimescale &amp;lt;5, 5, 5&amp;gt;&lt;br /&gt;
 angularFrictionTimescale &amp;lt;10, 10, 10&amp;gt;&lt;br /&gt;
 linearMotorDirection &amp;lt;0, 0, 0&amp;gt;&lt;br /&gt;
 linearMotorTimescale  5  &lt;br /&gt;
 linearMotorDecayTimescale  60  &lt;br /&gt;
 angularMotorDirection &amp;lt;0, 0, 0&amp;gt;&lt;br /&gt;
 angularMotorTimescale  6  &lt;br /&gt;
 angularMotorDecayTimescale  10  &lt;br /&gt;
 VhoverHeight  5  &lt;br /&gt;
 VhoverEfficiency  0.8  &lt;br /&gt;
 VhoverTimescale  10  &lt;br /&gt;
 VehicleBuoyancy  1  &lt;br /&gt;
 linearDeflectionEfficiency  0  &lt;br /&gt;
 linearDeflectionTimescale  5  &lt;br /&gt;
 angularDeflectionEfficiency  0  &lt;br /&gt;
 angularDeflectionTimescale  5  &lt;br /&gt;
 verticalAttractionEfficiency  1  &lt;br /&gt;
 verticalAttractionTimescale  1000  &lt;br /&gt;
 bankingEfficiency  0  &lt;br /&gt;
 bankingMix  0.7  &lt;br /&gt;
 bankingTimescale  5  &lt;br /&gt;
 referenceFrame ZERO_ROTATION&lt;br /&gt;
 flags FALSE:&lt;br /&gt;
 	NO_DEFLECTION_UP &lt;br /&gt;
 	HOVER_WATER_ONLY &lt;br /&gt;
 	HOVER_TERRAIN_ONLY&lt;br /&gt;
 	HOVER_UP_ONLY &lt;br /&gt;
 	LIMIT_MOTOR_UP&lt;br /&gt;
 flags TRUE:&lt;br /&gt;
 	LIMIT_ROLL_ONLY&lt;br /&gt;
 	HOVER_GLOBAL_HEIGHT&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Vehicles</id>
		<title>Vehicles</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Vehicles"/>
				<updated>2009-09-04T02:25:01Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: /* VEHICLE */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
August 2009: Kitto Flora is revising the OdePlugin files in an attempt to provide SL-compatible VEHICLE functionality to OpenSimulator. A couple of test regions have been provided by Bri Hasp, these are Sea-3 and Sea-4 in OSgrid. You may visit there and test vehicles but please clean up after. The revised OpenSimulator files are not generally available at this time as there are many bugs and deficiencies to be dealt with. The regions will frequently be restarted to test revisions.&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
Here some terms are defined so that when we communicate we are talking about the same things.&lt;br /&gt;
&lt;br /&gt;
=== Vehicle ===&lt;br /&gt;
&lt;br /&gt;
Any object or link-set that moves. It is usually rideable. It may be Physical or not.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== VEHICLE ====&lt;br /&gt;
Any object or link-set that uses LSL VEHICLE functions to achieve mobility. It is set to other than 'VEHICLE_TYPE_NONE'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Physical ====&lt;br /&gt;
Any object or link-set that is llSetStatus(STATUS_PHYSICS, TRUE). It will fall due to gravity (unless buoyancy is changed) and collide with other prims, avatars and the ground (unless set phantom).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Non-Physical ====&lt;br /&gt;
Any object or link-set that is llSetStatus(STATUS_PHYSICS, FALSE), or has never has llSetStatus(STATUS_PHYSICS,...) applied. Such objects 'stick in midair' and can interpenetrate other objects.&lt;br /&gt;
&lt;br /&gt;
==== Kinematic ====&lt;br /&gt;
Motion system used by Non-Physical objects, applied by such functions as llSetPos() and llSetRot(). &lt;br /&gt;
&lt;br /&gt;
==== Dynamic ====&lt;br /&gt;
Motion system used by Physical objects, applied by such functions as llSetForce() and llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, &amp;lt;...&amp;gt;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== About This Project ==&lt;br /&gt;
The objectives of this project are:&lt;br /&gt;
# To provide VEHICLE associated LSL functions within OpenSimulator that are compatible with Second Life functionality. This means trying to get them really close, but as we are trying to emulate complex HAVOK functions using what is available in ODE they may be only close to the SL functions. &lt;br /&gt;
# To clean up the OdePlugin files. Over many revisions and add-ons they are somewhat non-optimal. In particular the 'Move' operation that makes objects move around needs to be very clean and smooth so that the update rate remains high.&lt;br /&gt;
# Maintain the existing non-VEHICLE dynamic functions and fix errors where found.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Vehicle LSL Functions in revised OpenSimulator ==&lt;br /&gt;
There are three categories of LSL functions that are used by Vehicles: Kinematic, Dynamic and VEHICLE. These are listed below with information on their current status within the revised OpenSimulator. (Not the general release at this time.) &lt;br /&gt;
Kinematic vehicle motion can be used by non-physical objects. VEHICLE motion and the associated functions '''ONLY''' apply to objects that are set to a VEHICLE_TYPE of AIRPLANE, BALLOON, BOAT, CAR or SLED. Dynamic functions '''ONLY''' apply (at this time) to VEHICLE_TYPE_NONE, which is the default condition of an object. (In SL it appears that one can use Dynamic functions on a VEHICLE, but to keep things simple at the start of this project such a combination is not allowed.)&lt;br /&gt;
&lt;br /&gt;
== VEHICLE Scripting Notes ==&lt;br /&gt;
#(Not really scripting , but very important) DO NOT attempt to drive a VEHICLE across the Region boundary. If you do your Av will be orbited. You may be able to recover by Map double-click TP to a nearby Region. The VEHICLE object is usually killed, and sitting at edge of the destination region. &lt;br /&gt;
#In revised OpenSimulator the function llSetVehicleType(VEHICLE_TYPE_xxx), where xxx is AIRPLANE, BALLOON, BOAT, CAR or SLED, pre-sets all the applicable VEHICLE parameters to reasonable numbers. If you wish to change any of these pre-set parameters do so after asserting llSetVehicleType(VEHICLE_TYPE_xxx). &lt;br /&gt;
#At present it appears that some conditions of an instantiated scripted object are not maintained after a Region restart, and possibly between take and rez. Therefore you should assert llSetVehicleType(VEHICLE_TYPE_xxx) when the driver sits and llSetVehicleType(VEHICLE_TYPE_NONE)when the driver stands, and probably on_rez.&lt;br /&gt;
#The advice above also applies to camera controls. Assert llSetCameraxxx() on sit and llClearCameraParams() on stand.&lt;br /&gt;
#The advice above is also true of Material Type. Land vehicles need the 'wheels' to be PRIM_MATERIAL_GLASS. The script(s) must llSetPrimitiveParams([PRIM_MATERIAL, PRIM_MATERIAL_GLASS]) in every prim that touches the ground, when the rider sits, for reliable operation. Use a link mesage from the root to daughter prim scripts.&lt;br /&gt;
#Use llSetStatus(STATUS_PHYSICS, TRUE) to enable the VEHICLE, usually when the driver sits. Use llSetStatus(STATUS_PHYSICS, FALSE) to disable the VEHICLE, usually when the driver stands.&lt;br /&gt;
#It appears that the timer() event freezes while a Vehicle is in motion, so do not rely  in Timer() to update things like steering or velocity.&lt;br /&gt;
&lt;br /&gt;
== Vehicle LSL Functions and Status ==&lt;br /&gt;
NOTE! This list applies to the revised OpenSimulator, not the released&lt;br /&gt;
OpenSimulator.&lt;br /&gt;
&lt;br /&gt;
Key: Y = Yes; N = No; F = Framework present but commented out&lt;br /&gt;
&lt;br /&gt;
*The following sections needs to be in a 5 column table&lt;br /&gt;
&lt;br /&gt;
=== KINEMATIC ===&lt;br /&gt;
 (object must not be PHYSICAL)&lt;br /&gt;
&lt;br /&gt;
(Some work, some do not.)&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Function!!Parameter!!Set by LSL?!!Used by OpenSim C#!!Comments&lt;br /&gt;
|-&lt;br /&gt;
|llSetPos()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetRot()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetLocalRot()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetScale()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llLookAt()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llRotLookAt()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetPrimitiveParams()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetLinkPrimitiveParams()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llTargetOmega()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== DYNAMIC ===&lt;br /&gt;
 (object must be PHYSICAL and VEHICLE_TYPE_NONE(default))&lt;br /&gt;
&lt;br /&gt;
(Some work, some do not.)&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Function!!Parameter!!Set by LSL?!!Used by OpenSim C#!!Comments&lt;br /&gt;
|-&lt;br /&gt;
|llApplyImpulse()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llApplyRotationalImpulse()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llGroundRepel()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llMoveToTarget()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llPushObject()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetBuoyancy()||N/A||N/A||N/A||(do not confuse with VEHICLE_BUOYANCY)&lt;br /&gt;
|-&lt;br /&gt;
|llSetForce()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetForceAndTorque()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetHoverHeight()||N/A||N/A||N/A||(do not confuse with VEHICLE_HOVER_HEIGHT)&lt;br /&gt;
|-&lt;br /&gt;
|llSetTorque()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llTargetOmega()||N/A||N/A||N/A||N/A&lt;br /&gt;
|- 	&lt;br /&gt;
|llLookAt()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llRotLookAt()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetPrimitiveParams()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetLinkPrimitiveParams()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llTargetOmega()||N/A||N/A||N/A||N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== VEHICLE ===&lt;br /&gt;
 (object must be PHYSICAL and VEHICLE_TYPE_&amp;lt;other than NONE&amp;gt;)&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Functions!!Set by LSL?!!Used!!Works!!Exceptions&lt;br /&gt;
|-&lt;br /&gt;
|llSetVehicleType()||Y||Y||Y&lt;br /&gt;
|-&lt;br /&gt;
|llSetVehicleFlags()||N||N||N||Some flags are set by llSetVehicleType()&lt;br /&gt;
|-&lt;br /&gt;
|llRemoveVehicleFlags()||N||N||N||&lt;br /&gt;
|- &lt;br /&gt;
|llSetVehicleFloatParam()||Y||Y||Y|| &lt;br /&gt;
|-&lt;br /&gt;
|llSetVehicleVectorParam()||Y||Y||Y||&lt;br /&gt;
|- &lt;br /&gt;
|llSetVehicleRotationParam()||Y||Y||Y|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Parameters!!Set by LSL?!!Used!!Works!!Exceptions&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_LINEAR_MOTOR_DIRECTION||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_LINEAR_MOTOR_TIMESCALE||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_LINEAR_FRICTION_TIMESCALE||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_LINEAR_MOTOR_OFFSET||F||N|| || &lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_ANGULAR_MOTOR_DIRECTION||Y||Y||Y|| &lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_ANGULAR_MOTOR_TIMESCALE||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_ANGULAR_FRICTION_TIMESCALE||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
||VEHICLE_BANKING_EFFICIENCY||F||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_BANKING_MIX||F||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_BANKING_TIMESCALE||F||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_BUOYANCY||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_HOVER_HEIGHT||Y||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_HOVER_EFFICIENCY||Y||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_HOVER_TIMESCALE||Y||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_LINEAR_DEFLECTION_EFFICIENCY||F||N|| ||&lt;br /&gt;
|- &lt;br /&gt;
|VEHICLE_LINEAR_DEFLECTION_TIMESCALE||F||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY||F||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_ANGULAR_DEFLECTION_TIMESCALE||F||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_REFERENCE_FRAME||F||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_VERTICAL_ATTRACTION_TIMESCALE||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_TYPE_NONE||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_TYPE_BALLOON||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_TYPE_BOAT||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_TYPE_CAR||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_TYPE_SLED||Y||Y||Y||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_FLAG_NO_DEFLECTION_UP||Y||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_FLAG_LIMIT_ROLL_ONLY||Y||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_FLAG_HOVER_WATER_ONLY||Y||Y|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_FLAG_HOVER_TERRAIN_ONLY||Y||Y|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT||Y||Y|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_FLAG_HOVER_UP_ONLY||Y||Y|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_FLAG_LIMIT_MOTOR_UP||Y||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_FLAG_MOUSELOOK_STEER||Y||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_FLAG_MOUSELOOK_BANK||Y||N|| ||&lt;br /&gt;
|-&lt;br /&gt;
|VEHICLE_FLAG_CAMERA_DECOUPLED||Y||N|| ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Vehicles</id>
		<title>Vehicles</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Vehicles"/>
				<updated>2009-09-04T01:01:55Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: /* DYNAMIC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
August 2009: Kitto Flora is revising the OdePlugin files in an attempt to provide SL-compatible VEHICLE functionality to OpenSimulator. A couple of test regions have been provided by Bri Hasp, these are Sea-3 and Sea-4 in OSgrid. You may visit there and test vehicles but please clean up after. The revised OpenSimulator files are not generally available at this time as there are many bugs and deficiencies to be dealt with. The regions will frequently be restarted to test revisions.&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
Here some terms are defined so that when we communicate we are talking about the same things.&lt;br /&gt;
&lt;br /&gt;
=== Vehicle ===&lt;br /&gt;
&lt;br /&gt;
Any object or link-set that moves. It is usually rideable. It may be Physical or not.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== VEHICLE ====&lt;br /&gt;
Any object or link-set that uses LSL VEHICLE functions to achieve mobility. It is set to other than 'VEHICLE_TYPE_NONE'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Physical ====&lt;br /&gt;
Any object or link-set that is llSetStatus(STATUS_PHYSICS, TRUE). It will fall due to gravity (unless buoyancy is changed) and collide with other prims, avatars and the ground (unless set phantom).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Non-Physical ====&lt;br /&gt;
Any object or link-set that is llSetStatus(STATUS_PHYSICS, FALSE), or has never has llSetStatus(STATUS_PHYSICS,...) applied. Such objects 'stick in midair' and can interpenetrate other objects.&lt;br /&gt;
&lt;br /&gt;
==== Kinematic ====&lt;br /&gt;
Motion system used by Non-Physical objects, applied by such functions as llSetPos() and llSetRot(). &lt;br /&gt;
&lt;br /&gt;
==== Dynamic ====&lt;br /&gt;
Motion system used by Physical objects, applied by such functions as llSetForce() and llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, &amp;lt;...&amp;gt;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== About This Project ==&lt;br /&gt;
The objectives of this project are:&lt;br /&gt;
# To provide VEHICLE associated LSL functions within OpenSimulator that are compatible with Second Life functionality. This means trying to get them really close, but as we are trying to emulate complex HAVOK functions using what is available in ODE they may be only close to the SL functions. &lt;br /&gt;
# To clean up the OdePlugin files. Over many revisions and add-ons they are somewhat non-optimal. In particular the 'Move' operation that makes objects move around needs to be very clean and smooth so that the update rate remains high.&lt;br /&gt;
# Maintain the existing non-VEHICLE dynamic functions and fix errors where found.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Vehicle LSL Functions in revised OpenSimulator ==&lt;br /&gt;
There are three categories of LSL functions that are used by Vehicles: Kinematic, Dynamic and VEHICLE. These are listed below with information on their current status within the revised OpenSimulator. (Not the general release at this time.) &lt;br /&gt;
Kinematic vehicle motion can be used by non-physical objects. VEHICLE motion and the associated functions '''ONLY''' apply to objects that are set to a VEHICLE_TYPE of AIRPLANE, BALLOON, BOAT, CAR or SLED. Dynamic functions '''ONLY''' apply (at this time) to VEHICLE_TYPE_NONE, which is the default condition of an object. (In SL it appears that one can use Dynamic functions on a VEHICLE, but to keep things simple at the start of this project such a combination is not allowed.)&lt;br /&gt;
&lt;br /&gt;
== VEHICLE Scripting Notes ==&lt;br /&gt;
#(Not really scripting , but very important) DO NOT attempt to drive a VEHICLE across the Region boundary. If you do your Av will be orbited. You may be able to recover by Map double-click TP to a nearby Region. The VEHICLE object is usually killed, and sitting at edge of the destination region. &lt;br /&gt;
#In revised OpenSimulator the function llSetVehicleType(VEHICLE_TYPE_xxx), where xxx is AIRPLANE, BALLOON, BOAT, CAR or SLED, pre-sets all the applicable VEHICLE parameters to reasonable numbers. If you wish to change any of these pre-set parameters do so after asserting llSetVehicleType(VEHICLE_TYPE_xxx). &lt;br /&gt;
#At present it appears that some conditions of an instantiated scripted object are not maintained after a Region restart, and possibly between take and rez. Therefore you should assert llSetVehicleType(VEHICLE_TYPE_xxx) when the driver sits and llSetVehicleType(VEHICLE_TYPE_NONE)when the driver stands, and probably on_rez.&lt;br /&gt;
#The advice above also applies to camera controls. Assert llSetCameraxxx() on sit and llClearCameraParams() on stand.&lt;br /&gt;
#The advice above is also true of Material Type. Land vehicles need the 'wheels' to be PRIM_MATERIAL_GLASS. The script(s) must llSetPrimitiveParams([PRIM_MATERIAL, PRIM_MATERIAL_GLASS]) in every prim that touches the ground, when the rider sits, for reliable operation. Use a link mesage from the root to daughter prim scripts.&lt;br /&gt;
#Use llSetStatus(STATUS_PHYSICS, TRUE) to enable the VEHICLE, usually when the driver sits. Use llSetStatus(STATUS_PHYSICS, FALSE) to disable the VEHICLE, usually when the driver stands.&lt;br /&gt;
#It appears that the timer() event freezes while a Vehicle is in motion, so do not rely  in Timer() to update things like steering or velocity.&lt;br /&gt;
&lt;br /&gt;
== Vehicle LSL Functions and Status ==&lt;br /&gt;
NOTE! This list applies to the revised OpenSimulator, not the released&lt;br /&gt;
OpenSimulator.&lt;br /&gt;
&lt;br /&gt;
Key: Y = Yes; N = No; F = Framework present but commented out&lt;br /&gt;
&lt;br /&gt;
*The following sections needs to be in a 5 column table&lt;br /&gt;
&lt;br /&gt;
=== KINEMATIC ===&lt;br /&gt;
 (object must not be PHYSICAL)&lt;br /&gt;
&lt;br /&gt;
(Some work, some do not.)&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Function!!Parameter!!Set by LSL?!!Used by OpenSim C#!!Comments&lt;br /&gt;
|-&lt;br /&gt;
|llSetPos()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetRot()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetLocalRot()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetScale()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llLookAt()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llRotLookAt()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetPrimitiveParams()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetLinkPrimitiveParams()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llTargetOmega()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== DYNAMIC ===&lt;br /&gt;
 (object must be PHYSICAL and VEHICLE_TYPE_NONE(default))&lt;br /&gt;
&lt;br /&gt;
(Some work, some do not.)&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Function!!Parameter!!Set by LSL?!!Used by OpenSim C#!!Comments&lt;br /&gt;
|-&lt;br /&gt;
|llApplyImpulse()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llApplyRotationalImpulse()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llGroundRepel()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llMoveToTarget()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llPushObject()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetBuoyancy()||N/A||N/A||N/A||(do not confuse with VEHICLE_BUOYANCY)&lt;br /&gt;
|-&lt;br /&gt;
|llSetForce()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetForceAndTorque()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetHoverHeight()||N/A||N/A||N/A||(do not confuse with VEHICLE_HOVER_HEIGHT)&lt;br /&gt;
|-&lt;br /&gt;
|llSetTorque()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llTargetOmega()||N/A||N/A||N/A||N/A&lt;br /&gt;
|- 	&lt;br /&gt;
|llLookAt()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llRotLookAt()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetPrimitiveParams()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetLinkPrimitiveParams()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llTargetOmega()||N/A||N/A||N/A||N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== VEHICLE ===&lt;br /&gt;
 (object must be PHYSICAL and VEHICLE_TYPE_&amp;lt;other than NONE&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Functions					LSLsets	Used	Works Exceptions&lt;br /&gt;
&lt;br /&gt;
llSetVehicleType() Y Y Y&lt;br /&gt;
llSetVehicleFlags() N N N Some flags are set by llSetVehicleType()&lt;br /&gt;
llRemoveVehicleFlags() N N N &lt;br /&gt;
llSetVehicleFloatParam() Y Y Y &lt;br /&gt;
llSetVehicleVectorParam()  Y Y Y &lt;br /&gt;
llSetVehicleRotationParam() Y Y Y &lt;br /&gt;
&lt;br /&gt;
Parameters&lt;br /&gt;
&lt;br /&gt;
VEHICLE_LINEAR_MOTOR_DIRECTION 			Y	Y	Y&lt;br /&gt;
VEHICLE_LINEAR_MOTOR_TIMESCALE			Y	Y	Y&lt;br /&gt;
VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE 		Y	Y	Y&lt;br /&gt;
VEHICLE_LINEAR_FRICTION_TIMESCALE 		Y	Y	Y&lt;br /&gt;
VEHICLE_LINEAR_MOTOR_OFFSET 			F	N&lt;br /&gt;
VEHICLE_ANGULAR_MOTOR_DIRECTION 		Y	Y	Y&lt;br /&gt;
VEHICLE_ANGULAR_MOTOR_TIMESCALE 		Y	Y	Y&lt;br /&gt;
VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE		Y	Y	Y&lt;br /&gt;
VEHICLE_ANGULAR_FRICTION_TIMESCALE 		Y	Y	Y&lt;br /&gt;
&lt;br /&gt;
VEHICLE_BANKING_EFFICIENCY			F	N&lt;br /&gt;
VEHICLE_BANKING_MIX 				F	N&lt;br /&gt;
VEHICLE_BANKING_TIMESCALE 			F	N&lt;br /&gt;
&lt;br /&gt;
VEHICLE_BUOYANCY				Y	Y	Y&lt;br /&gt;
VEHICLE_HOVER_HEIGHT 				Y	N&lt;br /&gt;
VEHICLE_HOVER_EFFICIENCY 			Y	N&lt;br /&gt;
VEHICLE_HOVER_TIMESCALE				Y	N&lt;br /&gt;
&lt;br /&gt;
VEHICLE_LINEAR_DEFLECTION_EFFICIENCY		F	N &lt;br /&gt;
VEHICLE_LINEAR_DEFLECTION_TIMESCALE 		F	N&lt;br /&gt;
VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY		F	N&lt;br /&gt;
VEHICLE_ANGULAR_DEFLECTION_TIMESCALE 		F	N&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
VEHICLE_REFERENCE_FRAME 			F	N&lt;br /&gt;
VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY 		Y	Y	Y&lt;br /&gt;
VEHICLE_VERTICAL_ATTRACTION_TIMESCALE  		Y	Y	Y&lt;br /&gt;
&lt;br /&gt;
VEHICLE_TYPE_NONE				Y	Y	Y&lt;br /&gt;
VEHICLE_TYPE_BALLOON				Y	Y	Y&lt;br /&gt;
VEHICLE_TYPE_BOAT				Y	Y	Y&lt;br /&gt;
VEHICLE_TYPE_CAR				Y	Y	Y&lt;br /&gt;
VEHICLE_TYPE_SLED				Y	Y	Y&lt;br /&gt;
VEHICLE_FLAG_NO_DEFLECTION_UP 			Y	N&lt;br /&gt;
VEHICLE_FLAG_LIMIT_ROLL_ONLY  			Y	N&lt;br /&gt;
VEHICLE_FLAG_HOVER_WATER_ONLY 			Y	Y&lt;br /&gt;
VEHICLE_FLAG_HOVER_TERRAIN_ONLY 		Y	Y&lt;br /&gt;
VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT 		Y	Y&lt;br /&gt;
VEHICLE_FLAG_HOVER_UP_ONLY 			Y	Y&lt;br /&gt;
VEHICLE_FLAG_LIMIT_MOTOR_UP 			Y	N&lt;br /&gt;
VEHICLE_FLAG_MOUSELOOK_STEER 			Y	N&lt;br /&gt;
VEHICLE_FLAG_MOUSELOOK_BANK  			Y	N&lt;br /&gt;
VEHICLE_FLAG_CAMERA_DECOUPLED 			Y	N&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Vehicles</id>
		<title>Vehicles</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Vehicles"/>
				<updated>2009-09-04T00:55:16Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: /* DYNAMIC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
August 2009: Kitto Flora is revising the OdePlugin files in an attempt to provide SL-compatible VEHICLE functionality to OpenSimulator. A couple of test regions have been provided by Bri Hasp, these are Sea-3 and Sea-4 in OSgrid. You may visit there and test vehicles but please clean up after. The revised OpenSimulator files are not generally available at this time as there are many bugs and deficiencies to be dealt with. The regions will frequently be restarted to test revisions.&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
Here some terms are defined so that when we communicate we are talking about the same things.&lt;br /&gt;
&lt;br /&gt;
=== Vehicle ===&lt;br /&gt;
&lt;br /&gt;
Any object or link-set that moves. It is usually rideable. It may be Physical or not.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== VEHICLE ====&lt;br /&gt;
Any object or link-set that uses LSL VEHICLE functions to achieve mobility. It is set to other than 'VEHICLE_TYPE_NONE'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Physical ====&lt;br /&gt;
Any object or link-set that is llSetStatus(STATUS_PHYSICS, TRUE). It will fall due to gravity (unless buoyancy is changed) and collide with other prims, avatars and the ground (unless set phantom).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Non-Physical ====&lt;br /&gt;
Any object or link-set that is llSetStatus(STATUS_PHYSICS, FALSE), or has never has llSetStatus(STATUS_PHYSICS,...) applied. Such objects 'stick in midair' and can interpenetrate other objects.&lt;br /&gt;
&lt;br /&gt;
==== Kinematic ====&lt;br /&gt;
Motion system used by Non-Physical objects, applied by such functions as llSetPos() and llSetRot(). &lt;br /&gt;
&lt;br /&gt;
==== Dynamic ====&lt;br /&gt;
Motion system used by Physical objects, applied by such functions as llSetForce() and llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, &amp;lt;...&amp;gt;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== About This Project ==&lt;br /&gt;
The objectives of this project are:&lt;br /&gt;
# To provide VEHICLE associated LSL functions within OpenSimulator that are compatible with Second Life functionality. This means trying to get them really close, but as we are trying to emulate complex HAVOK functions using what is available in ODE they may be only close to the SL functions. &lt;br /&gt;
# To clean up the OdePlugin files. Over many revisions and add-ons they are somewhat non-optimal. In particular the 'Move' operation that makes objects move around needs to be very clean and smooth so that the update rate remains high.&lt;br /&gt;
# Maintain the existing non-VEHICLE dynamic functions and fix errors where found.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Vehicle LSL Functions in revised OpenSimulator ==&lt;br /&gt;
There are three categories of LSL functions that are used by Vehicles: Kinematic, Dynamic and VEHICLE. These are listed below with information on their current status within the revised OpenSimulator. (Not the general release at this time.) &lt;br /&gt;
Kinematic vehicle motion can be used by non-physical objects. VEHICLE motion and the associated functions '''ONLY''' apply to objects that are set to a VEHICLE_TYPE of AIRPLANE, BALLOON, BOAT, CAR or SLED. Dynamic functions '''ONLY''' apply (at this time) to VEHICLE_TYPE_NONE, which is the default condition of an object. (In SL it appears that one can use Dynamic functions on a VEHICLE, but to keep things simple at the start of this project such a combination is not allowed.)&lt;br /&gt;
&lt;br /&gt;
== VEHICLE Scripting Notes ==&lt;br /&gt;
#(Not really scripting , but very important) DO NOT attempt to drive a VEHICLE across the Region boundary. If you do your Av will be orbited. You may be able to recover by Map double-click TP to a nearby Region. The VEHICLE object is usually killed, and sitting at edge of the destination region. &lt;br /&gt;
#In revised OpenSimulator the function llSetVehicleType(VEHICLE_TYPE_xxx), where xxx is AIRPLANE, BALLOON, BOAT, CAR or SLED, pre-sets all the applicable VEHICLE parameters to reasonable numbers. If you wish to change any of these pre-set parameters do so after asserting llSetVehicleType(VEHICLE_TYPE_xxx). &lt;br /&gt;
#At present it appears that some conditions of an instantiated scripted object are not maintained after a Region restart, and possibly between take and rez. Therefore you should assert llSetVehicleType(VEHICLE_TYPE_xxx) when the driver sits and llSetVehicleType(VEHICLE_TYPE_NONE)when the driver stands, and probably on_rez.&lt;br /&gt;
#The advice above also applies to camera controls. Assert llSetCameraxxx() on sit and llClearCameraParams() on stand.&lt;br /&gt;
#The advice above is also true of Material Type. Land vehicles need the 'wheels' to be PRIM_MATERIAL_GLASS. The script(s) must llSetPrimitiveParams([PRIM_MATERIAL, PRIM_MATERIAL_GLASS]) in every prim that touches the ground, when the rider sits, for reliable operation. Use a link mesage from the root to daughter prim scripts.&lt;br /&gt;
#Use llSetStatus(STATUS_PHYSICS, TRUE) to enable the VEHICLE, usually when the driver sits. Use llSetStatus(STATUS_PHYSICS, FALSE) to disable the VEHICLE, usually when the driver stands.&lt;br /&gt;
#It appears that the timer() event freezes while a Vehicle is in motion, so do not rely  in Timer() to update things like steering or velocity.&lt;br /&gt;
&lt;br /&gt;
== Vehicle LSL Functions and Status ==&lt;br /&gt;
NOTE! This list applies to the revised OpenSimulator, not the released&lt;br /&gt;
OpenSimulator.&lt;br /&gt;
&lt;br /&gt;
Key: Y = Yes; N = No; F = Framework present but commented out&lt;br /&gt;
&lt;br /&gt;
*The following sections needs to be in a 5 column table&lt;br /&gt;
&lt;br /&gt;
=== KINEMATIC ===&lt;br /&gt;
 (object must not be PHYSICAL)&lt;br /&gt;
&lt;br /&gt;
(Some work, some do not.)&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Function!!Parameter!!Set by LSL?!!Used by OpenSim C#!!Comments&lt;br /&gt;
|-&lt;br /&gt;
|llSetPos()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetRot()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetLocalRot()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetScale()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llLookAt()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llRotLookAt()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetPrimitiveParams()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetLinkPrimitiveParams()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llTargetOmega()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== DYNAMIC ===&lt;br /&gt;
 (object must be PHYSICAL and VEHICLE_TYPE_NONE(default))&lt;br /&gt;
&lt;br /&gt;
(Some work, some do not.)&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Function!!Parameter!!Set by LSL?!!Used by OpenSim C#!!Comments&lt;br /&gt;
|-&lt;br /&gt;
|llApplyImpulse()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llApplyRotationalImpulse()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llGroundRepel()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llMoveToTarget()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llPushObject()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetBuoyancy()||N/A||N/A||N/A||(do not confuse with VEHICLE_BUOYANCY)&lt;br /&gt;
|-&lt;br /&gt;
|llSetForce()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetForceAndTorque()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetHoverHeight()||N/A||N/A||N/A||(do not confuse with VEHICLE_HOVER_HEIGHT)&lt;br /&gt;
|-&lt;br /&gt;
|llSetTorque()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llTargetOmega()||N/A||N/A||N/A||N/A&lt;br /&gt;
|- 	&lt;br /&gt;
|llLookAt()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llRotLookAt()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetPrimitiveParams()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetLinkPrimitiveParams()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llTargetOmega()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
=== VEHICLE ===&lt;br /&gt;
 (object must be PHYSICAL and VEHICLE_TYPE_&amp;lt;other than NONE&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Functions					LSLsets	Used	Works Exceptions&lt;br /&gt;
&lt;br /&gt;
llSetVehicleType() Y Y Y&lt;br /&gt;
llSetVehicleFlags() N N N Some flags are set by llSetVehicleType()&lt;br /&gt;
llRemoveVehicleFlags() N N N &lt;br /&gt;
llSetVehicleFloatParam() Y Y Y &lt;br /&gt;
llSetVehicleVectorParam()  Y Y Y &lt;br /&gt;
llSetVehicleRotationParam() Y Y Y &lt;br /&gt;
&lt;br /&gt;
Parameters&lt;br /&gt;
&lt;br /&gt;
VEHICLE_LINEAR_MOTOR_DIRECTION 			Y	Y	Y&lt;br /&gt;
VEHICLE_LINEAR_MOTOR_TIMESCALE			Y	Y	Y&lt;br /&gt;
VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE 		Y	Y	Y&lt;br /&gt;
VEHICLE_LINEAR_FRICTION_TIMESCALE 		Y	Y	Y&lt;br /&gt;
VEHICLE_LINEAR_MOTOR_OFFSET 			F	N&lt;br /&gt;
VEHICLE_ANGULAR_MOTOR_DIRECTION 		Y	Y	Y&lt;br /&gt;
VEHICLE_ANGULAR_MOTOR_TIMESCALE 		Y	Y	Y&lt;br /&gt;
VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE		Y	Y	Y&lt;br /&gt;
VEHICLE_ANGULAR_FRICTION_TIMESCALE 		Y	Y	Y&lt;br /&gt;
&lt;br /&gt;
VEHICLE_BANKING_EFFICIENCY			F	N&lt;br /&gt;
VEHICLE_BANKING_MIX 				F	N&lt;br /&gt;
VEHICLE_BANKING_TIMESCALE 			F	N&lt;br /&gt;
&lt;br /&gt;
VEHICLE_BUOYANCY				Y	Y	Y&lt;br /&gt;
VEHICLE_HOVER_HEIGHT 				Y	N&lt;br /&gt;
VEHICLE_HOVER_EFFICIENCY 			Y	N&lt;br /&gt;
VEHICLE_HOVER_TIMESCALE				Y	N&lt;br /&gt;
&lt;br /&gt;
VEHICLE_LINEAR_DEFLECTION_EFFICIENCY		F	N &lt;br /&gt;
VEHICLE_LINEAR_DEFLECTION_TIMESCALE 		F	N&lt;br /&gt;
VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY		F	N&lt;br /&gt;
VEHICLE_ANGULAR_DEFLECTION_TIMESCALE 		F	N&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
VEHICLE_REFERENCE_FRAME 			F	N&lt;br /&gt;
VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY 		Y	Y	Y&lt;br /&gt;
VEHICLE_VERTICAL_ATTRACTION_TIMESCALE  		Y	Y	Y&lt;br /&gt;
&lt;br /&gt;
VEHICLE_TYPE_NONE				Y	Y	Y&lt;br /&gt;
VEHICLE_TYPE_BALLOON				Y	Y	Y&lt;br /&gt;
VEHICLE_TYPE_BOAT				Y	Y	Y&lt;br /&gt;
VEHICLE_TYPE_CAR				Y	Y	Y&lt;br /&gt;
VEHICLE_TYPE_SLED				Y	Y	Y&lt;br /&gt;
VEHICLE_FLAG_NO_DEFLECTION_UP 			Y	N&lt;br /&gt;
VEHICLE_FLAG_LIMIT_ROLL_ONLY  			Y	N&lt;br /&gt;
VEHICLE_FLAG_HOVER_WATER_ONLY 			Y	Y&lt;br /&gt;
VEHICLE_FLAG_HOVER_TERRAIN_ONLY 		Y	Y&lt;br /&gt;
VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT 		Y	Y&lt;br /&gt;
VEHICLE_FLAG_HOVER_UP_ONLY 			Y	Y&lt;br /&gt;
VEHICLE_FLAG_LIMIT_MOTOR_UP 			Y	N&lt;br /&gt;
VEHICLE_FLAG_MOUSELOOK_STEER 			Y	N&lt;br /&gt;
VEHICLE_FLAG_MOUSELOOK_BANK  			Y	N&lt;br /&gt;
VEHICLE_FLAG_CAMERA_DECOUPLED 			Y	N&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Vehicles</id>
		<title>Vehicles</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Vehicles"/>
				<updated>2009-09-04T00:54:20Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: /* DYNAMIC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
August 2009: Kitto Flora is revising the OdePlugin files in an attempt to provide SL-compatible VEHICLE functionality to OpenSimulator. A couple of test regions have been provided by Bri Hasp, these are Sea-3 and Sea-4 in OSgrid. You may visit there and test vehicles but please clean up after. The revised OpenSimulator files are not generally available at this time as there are many bugs and deficiencies to be dealt with. The regions will frequently be restarted to test revisions.&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
Here some terms are defined so that when we communicate we are talking about the same things.&lt;br /&gt;
&lt;br /&gt;
=== Vehicle ===&lt;br /&gt;
&lt;br /&gt;
Any object or link-set that moves. It is usually rideable. It may be Physical or not.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== VEHICLE ====&lt;br /&gt;
Any object or link-set that uses LSL VEHICLE functions to achieve mobility. It is set to other than 'VEHICLE_TYPE_NONE'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Physical ====&lt;br /&gt;
Any object or link-set that is llSetStatus(STATUS_PHYSICS, TRUE). It will fall due to gravity (unless buoyancy is changed) and collide with other prims, avatars and the ground (unless set phantom).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Non-Physical ====&lt;br /&gt;
Any object or link-set that is llSetStatus(STATUS_PHYSICS, FALSE), or has never has llSetStatus(STATUS_PHYSICS,...) applied. Such objects 'stick in midair' and can interpenetrate other objects.&lt;br /&gt;
&lt;br /&gt;
==== Kinematic ====&lt;br /&gt;
Motion system used by Non-Physical objects, applied by such functions as llSetPos() and llSetRot(). &lt;br /&gt;
&lt;br /&gt;
==== Dynamic ====&lt;br /&gt;
Motion system used by Physical objects, applied by such functions as llSetForce() and llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, &amp;lt;...&amp;gt;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== About This Project ==&lt;br /&gt;
The objectives of this project are:&lt;br /&gt;
# To provide VEHICLE associated LSL functions within OpenSimulator that are compatible with Second Life functionality. This means trying to get them really close, but as we are trying to emulate complex HAVOK functions using what is available in ODE they may be only close to the SL functions. &lt;br /&gt;
# To clean up the OdePlugin files. Over many revisions and add-ons they are somewhat non-optimal. In particular the 'Move' operation that makes objects move around needs to be very clean and smooth so that the update rate remains high.&lt;br /&gt;
# Maintain the existing non-VEHICLE dynamic functions and fix errors where found.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Vehicle LSL Functions in revised OpenSimulator ==&lt;br /&gt;
There are three categories of LSL functions that are used by Vehicles: Kinematic, Dynamic and VEHICLE. These are listed below with information on their current status within the revised OpenSimulator. (Not the general release at this time.) &lt;br /&gt;
Kinematic vehicle motion can be used by non-physical objects. VEHICLE motion and the associated functions '''ONLY''' apply to objects that are set to a VEHICLE_TYPE of AIRPLANE, BALLOON, BOAT, CAR or SLED. Dynamic functions '''ONLY''' apply (at this time) to VEHICLE_TYPE_NONE, which is the default condition of an object. (In SL it appears that one can use Dynamic functions on a VEHICLE, but to keep things simple at the start of this project such a combination is not allowed.)&lt;br /&gt;
&lt;br /&gt;
== VEHICLE Scripting Notes ==&lt;br /&gt;
#(Not really scripting , but very important) DO NOT attempt to drive a VEHICLE across the Region boundary. If you do your Av will be orbited. You may be able to recover by Map double-click TP to a nearby Region. The VEHICLE object is usually killed, and sitting at edge of the destination region. &lt;br /&gt;
#In revised OpenSimulator the function llSetVehicleType(VEHICLE_TYPE_xxx), where xxx is AIRPLANE, BALLOON, BOAT, CAR or SLED, pre-sets all the applicable VEHICLE parameters to reasonable numbers. If you wish to change any of these pre-set parameters do so after asserting llSetVehicleType(VEHICLE_TYPE_xxx). &lt;br /&gt;
#At present it appears that some conditions of an instantiated scripted object are not maintained after a Region restart, and possibly between take and rez. Therefore you should assert llSetVehicleType(VEHICLE_TYPE_xxx) when the driver sits and llSetVehicleType(VEHICLE_TYPE_NONE)when the driver stands, and probably on_rez.&lt;br /&gt;
#The advice above also applies to camera controls. Assert llSetCameraxxx() on sit and llClearCameraParams() on stand.&lt;br /&gt;
#The advice above is also true of Material Type. Land vehicles need the 'wheels' to be PRIM_MATERIAL_GLASS. The script(s) must llSetPrimitiveParams([PRIM_MATERIAL, PRIM_MATERIAL_GLASS]) in every prim that touches the ground, when the rider sits, for reliable operation. Use a link mesage from the root to daughter prim scripts.&lt;br /&gt;
#Use llSetStatus(STATUS_PHYSICS, TRUE) to enable the VEHICLE, usually when the driver sits. Use llSetStatus(STATUS_PHYSICS, FALSE) to disable the VEHICLE, usually when the driver stands.&lt;br /&gt;
#It appears that the timer() event freezes while a Vehicle is in motion, so do not rely  in Timer() to update things like steering or velocity.&lt;br /&gt;
&lt;br /&gt;
== Vehicle LSL Functions and Status ==&lt;br /&gt;
NOTE! This list applies to the revised OpenSimulator, not the released&lt;br /&gt;
OpenSimulator.&lt;br /&gt;
&lt;br /&gt;
Key: Y = Yes; N = No; F = Framework present but commented out&lt;br /&gt;
&lt;br /&gt;
*The following sections needs to be in a 5 column table&lt;br /&gt;
&lt;br /&gt;
=== KINEMATIC ===&lt;br /&gt;
 (object must not be PHYSICAL)&lt;br /&gt;
&lt;br /&gt;
(Some work, some do not.)&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Function!!Parameter!!Set by LSL?!!Used by OpenSim C#!!Comments&lt;br /&gt;
|-&lt;br /&gt;
|llSetPos()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetRot()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetLocalRot()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetScale()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llLookAt()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llRotLookAt()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetPrimitiveParams()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetLinkPrimitiveParams()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llTargetOmega()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== DYNAMIC ===&lt;br /&gt;
 (object must be PHYSICAL and VEHICLE_TYPE_NONE(default))&lt;br /&gt;
&lt;br /&gt;
(Some work, some do not.)&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Function!!Parameter!!Set by LSL?!!Used by OpenSim C#!!Comments&lt;br /&gt;
|-&lt;br /&gt;
|llApplyImpulse()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llApplyRotationalImpulse()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llGroundRepel()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llMoveToTarget()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llPushObject()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetBuoyancy()||N/A||N/A||N/A||(do not confuse with VEHICLE_BUOYANCY)&lt;br /&gt;
|-&lt;br /&gt;
|llSetForce()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetForceAndTorque()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetHoverHeight()||N/A||N/A||N/A||(do not confuse with VEHICLE_HOVER_HEIGHT)&lt;br /&gt;
|-&lt;br /&gt;
|llSetTorque()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llTargetOmega()||N/A||N/A||N/A||N/A&lt;br /&gt;
|- 	&lt;br /&gt;
|llLookAt()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llRotLookAt()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetPrimitiveParams()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetLinkPrimitiveParams()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llTargetOmega()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
=== VEHICLE ===&lt;br /&gt;
 (object must be PHYSICAL and VEHICLE_TYPE_&amp;lt;other than NONE&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Functions					LSLsets	Used	Works Exceptions&lt;br /&gt;
&lt;br /&gt;
llSetVehicleType() Y Y Y&lt;br /&gt;
llSetVehicleFlags() N N N Some flags are set by llSetVehicleType()&lt;br /&gt;
llRemoveVehicleFlags() N N N &lt;br /&gt;
llSetVehicleFloatParam() Y Y Y &lt;br /&gt;
llSetVehicleVectorParam()  Y Y Y &lt;br /&gt;
llSetVehicleRotationParam() Y Y Y &lt;br /&gt;
&lt;br /&gt;
Parameters&lt;br /&gt;
&lt;br /&gt;
VEHICLE_LINEAR_MOTOR_DIRECTION 			Y	Y	Y&lt;br /&gt;
VEHICLE_LINEAR_MOTOR_TIMESCALE			Y	Y	Y&lt;br /&gt;
VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE 		Y	Y	Y&lt;br /&gt;
VEHICLE_LINEAR_FRICTION_TIMESCALE 		Y	Y	Y&lt;br /&gt;
VEHICLE_LINEAR_MOTOR_OFFSET 			F	N&lt;br /&gt;
VEHICLE_ANGULAR_MOTOR_DIRECTION 		Y	Y	Y&lt;br /&gt;
VEHICLE_ANGULAR_MOTOR_TIMESCALE 		Y	Y	Y&lt;br /&gt;
VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE		Y	Y	Y&lt;br /&gt;
VEHICLE_ANGULAR_FRICTION_TIMESCALE 		Y	Y	Y&lt;br /&gt;
&lt;br /&gt;
VEHICLE_BANKING_EFFICIENCY			F	N&lt;br /&gt;
VEHICLE_BANKING_MIX 				F	N&lt;br /&gt;
VEHICLE_BANKING_TIMESCALE 			F	N&lt;br /&gt;
&lt;br /&gt;
VEHICLE_BUOYANCY				Y	Y	Y&lt;br /&gt;
VEHICLE_HOVER_HEIGHT 				Y	N&lt;br /&gt;
VEHICLE_HOVER_EFFICIENCY 			Y	N&lt;br /&gt;
VEHICLE_HOVER_TIMESCALE				Y	N&lt;br /&gt;
&lt;br /&gt;
VEHICLE_LINEAR_DEFLECTION_EFFICIENCY		F	N &lt;br /&gt;
VEHICLE_LINEAR_DEFLECTION_TIMESCALE 		F	N&lt;br /&gt;
VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY		F	N&lt;br /&gt;
VEHICLE_ANGULAR_DEFLECTION_TIMESCALE 		F	N&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
VEHICLE_REFERENCE_FRAME 			F	N&lt;br /&gt;
VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY 		Y	Y	Y&lt;br /&gt;
VEHICLE_VERTICAL_ATTRACTION_TIMESCALE  		Y	Y	Y&lt;br /&gt;
&lt;br /&gt;
VEHICLE_TYPE_NONE				Y	Y	Y&lt;br /&gt;
VEHICLE_TYPE_BALLOON				Y	Y	Y&lt;br /&gt;
VEHICLE_TYPE_BOAT				Y	Y	Y&lt;br /&gt;
VEHICLE_TYPE_CAR				Y	Y	Y&lt;br /&gt;
VEHICLE_TYPE_SLED				Y	Y	Y&lt;br /&gt;
VEHICLE_FLAG_NO_DEFLECTION_UP 			Y	N&lt;br /&gt;
VEHICLE_FLAG_LIMIT_ROLL_ONLY  			Y	N&lt;br /&gt;
VEHICLE_FLAG_HOVER_WATER_ONLY 			Y	Y&lt;br /&gt;
VEHICLE_FLAG_HOVER_TERRAIN_ONLY 		Y	Y&lt;br /&gt;
VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT 		Y	Y&lt;br /&gt;
VEHICLE_FLAG_HOVER_UP_ONLY 			Y	Y&lt;br /&gt;
VEHICLE_FLAG_LIMIT_MOTOR_UP 			Y	N&lt;br /&gt;
VEHICLE_FLAG_MOUSELOOK_STEER 			Y	N&lt;br /&gt;
VEHICLE_FLAG_MOUSELOOK_BANK  			Y	N&lt;br /&gt;
VEHICLE_FLAG_CAMERA_DECOUPLED 			Y	N&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Vehicles</id>
		<title>Vehicles</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Vehicles"/>
				<updated>2009-09-04T00:53:22Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: /* KINEMATIC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
August 2009: Kitto Flora is revising the OdePlugin files in an attempt to provide SL-compatible VEHICLE functionality to OpenSimulator. A couple of test regions have been provided by Bri Hasp, these are Sea-3 and Sea-4 in OSgrid. You may visit there and test vehicles but please clean up after. The revised OpenSimulator files are not generally available at this time as there are many bugs and deficiencies to be dealt with. The regions will frequently be restarted to test revisions.&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
Here some terms are defined so that when we communicate we are talking about the same things.&lt;br /&gt;
&lt;br /&gt;
=== Vehicle ===&lt;br /&gt;
&lt;br /&gt;
Any object or link-set that moves. It is usually rideable. It may be Physical or not.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== VEHICLE ====&lt;br /&gt;
Any object or link-set that uses LSL VEHICLE functions to achieve mobility. It is set to other than 'VEHICLE_TYPE_NONE'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Physical ====&lt;br /&gt;
Any object or link-set that is llSetStatus(STATUS_PHYSICS, TRUE). It will fall due to gravity (unless buoyancy is changed) and collide with other prims, avatars and the ground (unless set phantom).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Non-Physical ====&lt;br /&gt;
Any object or link-set that is llSetStatus(STATUS_PHYSICS, FALSE), or has never has llSetStatus(STATUS_PHYSICS,...) applied. Such objects 'stick in midair' and can interpenetrate other objects.&lt;br /&gt;
&lt;br /&gt;
==== Kinematic ====&lt;br /&gt;
Motion system used by Non-Physical objects, applied by such functions as llSetPos() and llSetRot(). &lt;br /&gt;
&lt;br /&gt;
==== Dynamic ====&lt;br /&gt;
Motion system used by Physical objects, applied by such functions as llSetForce() and llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, &amp;lt;...&amp;gt;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== About This Project ==&lt;br /&gt;
The objectives of this project are:&lt;br /&gt;
# To provide VEHICLE associated LSL functions within OpenSimulator that are compatible with Second Life functionality. This means trying to get them really close, but as we are trying to emulate complex HAVOK functions using what is available in ODE they may be only close to the SL functions. &lt;br /&gt;
# To clean up the OdePlugin files. Over many revisions and add-ons they are somewhat non-optimal. In particular the 'Move' operation that makes objects move around needs to be very clean and smooth so that the update rate remains high.&lt;br /&gt;
# Maintain the existing non-VEHICLE dynamic functions and fix errors where found.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Vehicle LSL Functions in revised OpenSimulator ==&lt;br /&gt;
There are three categories of LSL functions that are used by Vehicles: Kinematic, Dynamic and VEHICLE. These are listed below with information on their current status within the revised OpenSimulator. (Not the general release at this time.) &lt;br /&gt;
Kinematic vehicle motion can be used by non-physical objects. VEHICLE motion and the associated functions '''ONLY''' apply to objects that are set to a VEHICLE_TYPE of AIRPLANE, BALLOON, BOAT, CAR or SLED. Dynamic functions '''ONLY''' apply (at this time) to VEHICLE_TYPE_NONE, which is the default condition of an object. (In SL it appears that one can use Dynamic functions on a VEHICLE, but to keep things simple at the start of this project such a combination is not allowed.)&lt;br /&gt;
&lt;br /&gt;
== VEHICLE Scripting Notes ==&lt;br /&gt;
#(Not really scripting , but very important) DO NOT attempt to drive a VEHICLE across the Region boundary. If you do your Av will be orbited. You may be able to recover by Map double-click TP to a nearby Region. The VEHICLE object is usually killed, and sitting at edge of the destination region. &lt;br /&gt;
#In revised OpenSimulator the function llSetVehicleType(VEHICLE_TYPE_xxx), where xxx is AIRPLANE, BALLOON, BOAT, CAR or SLED, pre-sets all the applicable VEHICLE parameters to reasonable numbers. If you wish to change any of these pre-set parameters do so after asserting llSetVehicleType(VEHICLE_TYPE_xxx). &lt;br /&gt;
#At present it appears that some conditions of an instantiated scripted object are not maintained after a Region restart, and possibly between take and rez. Therefore you should assert llSetVehicleType(VEHICLE_TYPE_xxx) when the driver sits and llSetVehicleType(VEHICLE_TYPE_NONE)when the driver stands, and probably on_rez.&lt;br /&gt;
#The advice above also applies to camera controls. Assert llSetCameraxxx() on sit and llClearCameraParams() on stand.&lt;br /&gt;
#The advice above is also true of Material Type. Land vehicles need the 'wheels' to be PRIM_MATERIAL_GLASS. The script(s) must llSetPrimitiveParams([PRIM_MATERIAL, PRIM_MATERIAL_GLASS]) in every prim that touches the ground, when the rider sits, for reliable operation. Use a link mesage from the root to daughter prim scripts.&lt;br /&gt;
#Use llSetStatus(STATUS_PHYSICS, TRUE) to enable the VEHICLE, usually when the driver sits. Use llSetStatus(STATUS_PHYSICS, FALSE) to disable the VEHICLE, usually when the driver stands.&lt;br /&gt;
#It appears that the timer() event freezes while a Vehicle is in motion, so do not rely  in Timer() to update things like steering or velocity.&lt;br /&gt;
&lt;br /&gt;
== Vehicle LSL Functions and Status ==&lt;br /&gt;
NOTE! This list applies to the revised OpenSimulator, not the released&lt;br /&gt;
OpenSimulator.&lt;br /&gt;
&lt;br /&gt;
Key: Y = Yes; N = No; F = Framework present but commented out&lt;br /&gt;
&lt;br /&gt;
*The following sections needs to be in a 5 column table&lt;br /&gt;
&lt;br /&gt;
=== KINEMATIC ===&lt;br /&gt;
 (object must not be PHYSICAL)&lt;br /&gt;
&lt;br /&gt;
(Some work, some do not.)&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Function!!Parameter!!Set by LSL?!!Used by OpenSim C#!!Comments&lt;br /&gt;
|-&lt;br /&gt;
|llSetPos()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetRot()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetLocalRot()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetScale()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llLookAt()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llRotLookAt()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetPrimitiveParams()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetLinkPrimitiveParams()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llTargetOmega()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== DYNAMIC ===&lt;br /&gt;
 (object must be PHYSICAL and VEHICLE_TYPE_NONE(default))&lt;br /&gt;
&lt;br /&gt;
(Some work, some do not.)&lt;br /&gt;
&lt;br /&gt;
llApplyImpulse()&lt;br /&gt;
llApplyRotationalImpulse()&lt;br /&gt;
llGroundRepel()&lt;br /&gt;
llMoveToTarget()&lt;br /&gt;
llPushObject()&lt;br /&gt;
llSetBuoyancy() (do not confuse with VEHICLE_BUOYANCY)&lt;br /&gt;
llSetForce()&lt;br /&gt;
llSetForceAndTorque()&lt;br /&gt;
llSetHoverHeight() (do not confuse with VEHICLE_HOVER_HEIGHT)&lt;br /&gt;
llSetTorque()&lt;br /&gt;
llTargetOmega() 	&lt;br /&gt;
llLookAt()&lt;br /&gt;
llRotLookAt()&lt;br /&gt;
llSetPrimitiveParams()&lt;br /&gt;
llSetLinkPrimitiveParams()&lt;br /&gt;
llTargetOmega()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== VEHICLE ===&lt;br /&gt;
 (object must be PHYSICAL and VEHICLE_TYPE_&amp;lt;other than NONE&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Functions					LSLsets	Used	Works Exceptions&lt;br /&gt;
&lt;br /&gt;
llSetVehicleType() Y Y Y&lt;br /&gt;
llSetVehicleFlags() N N N Some flags are set by llSetVehicleType()&lt;br /&gt;
llRemoveVehicleFlags() N N N &lt;br /&gt;
llSetVehicleFloatParam() Y Y Y &lt;br /&gt;
llSetVehicleVectorParam()  Y Y Y &lt;br /&gt;
llSetVehicleRotationParam() Y Y Y &lt;br /&gt;
&lt;br /&gt;
Parameters&lt;br /&gt;
&lt;br /&gt;
VEHICLE_LINEAR_MOTOR_DIRECTION 			Y	Y	Y&lt;br /&gt;
VEHICLE_LINEAR_MOTOR_TIMESCALE			Y	Y	Y&lt;br /&gt;
VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE 		Y	Y	Y&lt;br /&gt;
VEHICLE_LINEAR_FRICTION_TIMESCALE 		Y	Y	Y&lt;br /&gt;
VEHICLE_LINEAR_MOTOR_OFFSET 			F	N&lt;br /&gt;
VEHICLE_ANGULAR_MOTOR_DIRECTION 		Y	Y	Y&lt;br /&gt;
VEHICLE_ANGULAR_MOTOR_TIMESCALE 		Y	Y	Y&lt;br /&gt;
VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE		Y	Y	Y&lt;br /&gt;
VEHICLE_ANGULAR_FRICTION_TIMESCALE 		Y	Y	Y&lt;br /&gt;
&lt;br /&gt;
VEHICLE_BANKING_EFFICIENCY			F	N&lt;br /&gt;
VEHICLE_BANKING_MIX 				F	N&lt;br /&gt;
VEHICLE_BANKING_TIMESCALE 			F	N&lt;br /&gt;
&lt;br /&gt;
VEHICLE_BUOYANCY				Y	Y	Y&lt;br /&gt;
VEHICLE_HOVER_HEIGHT 				Y	N&lt;br /&gt;
VEHICLE_HOVER_EFFICIENCY 			Y	N&lt;br /&gt;
VEHICLE_HOVER_TIMESCALE				Y	N&lt;br /&gt;
&lt;br /&gt;
VEHICLE_LINEAR_DEFLECTION_EFFICIENCY		F	N &lt;br /&gt;
VEHICLE_LINEAR_DEFLECTION_TIMESCALE 		F	N&lt;br /&gt;
VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY		F	N&lt;br /&gt;
VEHICLE_ANGULAR_DEFLECTION_TIMESCALE 		F	N&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
VEHICLE_REFERENCE_FRAME 			F	N&lt;br /&gt;
VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY 		Y	Y	Y&lt;br /&gt;
VEHICLE_VERTICAL_ATTRACTION_TIMESCALE  		Y	Y	Y&lt;br /&gt;
&lt;br /&gt;
VEHICLE_TYPE_NONE				Y	Y	Y&lt;br /&gt;
VEHICLE_TYPE_BALLOON				Y	Y	Y&lt;br /&gt;
VEHICLE_TYPE_BOAT				Y	Y	Y&lt;br /&gt;
VEHICLE_TYPE_CAR				Y	Y	Y&lt;br /&gt;
VEHICLE_TYPE_SLED				Y	Y	Y&lt;br /&gt;
VEHICLE_FLAG_NO_DEFLECTION_UP 			Y	N&lt;br /&gt;
VEHICLE_FLAG_LIMIT_ROLL_ONLY  			Y	N&lt;br /&gt;
VEHICLE_FLAG_HOVER_WATER_ONLY 			Y	Y&lt;br /&gt;
VEHICLE_FLAG_HOVER_TERRAIN_ONLY 		Y	Y&lt;br /&gt;
VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT 		Y	Y&lt;br /&gt;
VEHICLE_FLAG_HOVER_UP_ONLY 			Y	Y&lt;br /&gt;
VEHICLE_FLAG_LIMIT_MOTOR_UP 			Y	N&lt;br /&gt;
VEHICLE_FLAG_MOUSELOOK_STEER 			Y	N&lt;br /&gt;
VEHICLE_FLAG_MOUSELOOK_BANK  			Y	N&lt;br /&gt;
VEHICLE_FLAG_CAMERA_DECOUPLED 			Y	N&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Vehicles</id>
		<title>Vehicles</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Vehicles"/>
				<updated>2009-09-04T00:40:42Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: /* KINEMATIC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
August 2009: Kitto Flora is revising the OdePlugin files in an attempt to provide SL-compatible VEHICLE functionality to OpenSimulator. A couple of test regions have been provided by Bri Hasp, these are Sea-3 and Sea-4 in OSgrid. You may visit there and test vehicles but please clean up after. The revised OpenSimulator files are not generally available at this time as there are many bugs and deficiencies to be dealt with. The regions will frequently be restarted to test revisions.&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
Here some terms are defined so that when we communicate we are talking about the same things.&lt;br /&gt;
&lt;br /&gt;
=== Vehicle ===&lt;br /&gt;
&lt;br /&gt;
Any object or link-set that moves. It is usually rideable. It may be Physical or not.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== VEHICLE ====&lt;br /&gt;
Any object or link-set that uses LSL VEHICLE functions to achieve mobility. It is set to other than 'VEHICLE_TYPE_NONE'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Physical ====&lt;br /&gt;
Any object or link-set that is llSetStatus(STATUS_PHYSICS, TRUE). It will fall due to gravity (unless buoyancy is changed) and collide with other prims, avatars and the ground (unless set phantom).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Non-Physical ====&lt;br /&gt;
Any object or link-set that is llSetStatus(STATUS_PHYSICS, FALSE), or has never has llSetStatus(STATUS_PHYSICS,...) applied. Such objects 'stick in midair' and can interpenetrate other objects.&lt;br /&gt;
&lt;br /&gt;
==== Kinematic ====&lt;br /&gt;
Motion system used by Non-Physical objects, applied by such functions as llSetPos() and llSetRot(). &lt;br /&gt;
&lt;br /&gt;
==== Dynamic ====&lt;br /&gt;
Motion system used by Physical objects, applied by such functions as llSetForce() and llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, &amp;lt;...&amp;gt;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== About This Project ==&lt;br /&gt;
The objectives of this project are:&lt;br /&gt;
# To provide VEHICLE associated LSL functions within OpenSimulator that are compatible with Second Life functionality. This means trying to get them really close, but as we are trying to emulate complex HAVOK functions using what is available in ODE they may be only close to the SL functions. &lt;br /&gt;
# To clean up the OdePlugin files. Over many revisions and add-ons they are somewhat non-optimal. In particular the 'Move' operation that makes objects move around needs to be very clean and smooth so that the update rate remains high.&lt;br /&gt;
# Maintain the existing non-VEHICLE dynamic functions and fix errors where found.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Vehicle LSL Functions in revised OpenSimulator ==&lt;br /&gt;
There are three categories of LSL functions that are used by Vehicles: Kinematic, Dynamic and VEHICLE. These are listed below with information on their current status within the revised OpenSimulator. (Not the general release at this time.) &lt;br /&gt;
Kinematic vehicle motion can be used by non-physical objects. VEHICLE motion and the associated functions '''ONLY''' apply to objects that are set to a VEHICLE_TYPE of AIRPLANE, BALLOON, BOAT, CAR or SLED. Dynamic functions '''ONLY''' apply (at this time) to VEHICLE_TYPE_NONE, which is the default condition of an object. (In SL it appears that one can use Dynamic functions on a VEHICLE, but to keep things simple at the start of this project such a combination is not allowed.)&lt;br /&gt;
&lt;br /&gt;
== VEHICLE Scripting Notes ==&lt;br /&gt;
#(Not really scripting , but very important) DO NOT attempt to drive a VEHICLE across the Region boundary. If you do your Av will be orbited. You may be able to recover by Map double-click TP to a nearby Region. The VEHICLE object is usually killed, and sitting at edge of the destination region. &lt;br /&gt;
#In revised OpenSimulator the function llSetVehicleType(VEHICLE_TYPE_xxx), where xxx is AIRPLANE, BALLOON, BOAT, CAR or SLED, pre-sets all the applicable VEHICLE parameters to reasonable numbers. If you wish to change any of these pre-set parameters do so after asserting llSetVehicleType(VEHICLE_TYPE_xxx). &lt;br /&gt;
#At present it appears that some conditions of an instantiated scripted object are not maintained after a Region restart, and possibly between take and rez. Therefore you should assert llSetVehicleType(VEHICLE_TYPE_xxx) when the driver sits and llSetVehicleType(VEHICLE_TYPE_NONE)when the driver stands, and probably on_rez.&lt;br /&gt;
#The advice above also applies to camera controls. Assert llSetCameraxxx() on sit and llClearCameraParams() on stand.&lt;br /&gt;
#The advice above is also true of Material Type. Land vehicles need the 'wheels' to be PRIM_MATERIAL_GLASS. The script(s) must llSetPrimitiveParams([PRIM_MATERIAL, PRIM_MATERIAL_GLASS]) in every prim that touches the ground, when the rider sits, for reliable operation. Use a link mesage from the root to daughter prim scripts.&lt;br /&gt;
#Use llSetStatus(STATUS_PHYSICS, TRUE) to enable the VEHICLE, usually when the driver sits. Use llSetStatus(STATUS_PHYSICS, FALSE) to disable the VEHICLE, usually when the driver stands.&lt;br /&gt;
#It appears that the timer() event freezes while a Vehicle is in motion, so do not rely  in Timer() to update things like steering or velocity.&lt;br /&gt;
&lt;br /&gt;
== Vehicle LSL Functions and Status ==&lt;br /&gt;
NOTE! This list applies to the revised OpenSimulator, not the released&lt;br /&gt;
OpenSimulator.&lt;br /&gt;
&lt;br /&gt;
Key: Y = Yes; N = No; F = Framework present but commented out&lt;br /&gt;
&lt;br /&gt;
*The following sections needs to be in a 5 column table&lt;br /&gt;
&lt;br /&gt;
=== KINEMATIC ===&lt;br /&gt;
 (object must not be PHYSICAL)&lt;br /&gt;
&lt;br /&gt;
(Some work, some do not.)&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Function or Parameter!!Set by LSL?!!Used by OpenSim C#!!Comments&lt;br /&gt;
|-&lt;br /&gt;
|llSetPos()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetRot()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetLocalRot()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetScale()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llLookAt()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llRotLookAt()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetPrimitiveParams()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llSetLinkPrimitiveParams()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|llTargetOmega()||N/A||N/A||N/A||N/A&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== DYNAMIC ===&lt;br /&gt;
 (object must be PHYSICAL and VEHICLE_TYPE_NONE(default))&lt;br /&gt;
&lt;br /&gt;
(Some work, some do not.)&lt;br /&gt;
&lt;br /&gt;
llApplyImpulse()&lt;br /&gt;
llApplyRotationalImpulse()&lt;br /&gt;
llGroundRepel()&lt;br /&gt;
llMoveToTarget()&lt;br /&gt;
llPushObject()&lt;br /&gt;
llSetBuoyancy() (do not confuse with VEHICLE_BUOYANCY)&lt;br /&gt;
llSetForce()&lt;br /&gt;
llSetForceAndTorque()&lt;br /&gt;
llSetHoverHeight() (do not confuse with VEHICLE_HOVER_HEIGHT)&lt;br /&gt;
llSetTorque()&lt;br /&gt;
llTargetOmega() 	&lt;br /&gt;
llLookAt()&lt;br /&gt;
llRotLookAt()&lt;br /&gt;
llSetPrimitiveParams()&lt;br /&gt;
llSetLinkPrimitiveParams()&lt;br /&gt;
llTargetOmega()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== VEHICLE ===&lt;br /&gt;
 (object must be PHYSICAL and VEHICLE_TYPE_&amp;lt;other than NONE&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Functions					LSLsets	Used	Works Exceptions&lt;br /&gt;
&lt;br /&gt;
llSetVehicleType() Y Y Y&lt;br /&gt;
llSetVehicleFlags() N N N Some flags are set by llSetVehicleType()&lt;br /&gt;
llRemoveVehicleFlags() N N N &lt;br /&gt;
llSetVehicleFloatParam() Y Y Y &lt;br /&gt;
llSetVehicleVectorParam()  Y Y Y &lt;br /&gt;
llSetVehicleRotationParam() Y Y Y &lt;br /&gt;
&lt;br /&gt;
Parameters&lt;br /&gt;
&lt;br /&gt;
VEHICLE_LINEAR_MOTOR_DIRECTION 			Y	Y	Y&lt;br /&gt;
VEHICLE_LINEAR_MOTOR_TIMESCALE			Y	Y	Y&lt;br /&gt;
VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE 		Y	Y	Y&lt;br /&gt;
VEHICLE_LINEAR_FRICTION_TIMESCALE 		Y	Y	Y&lt;br /&gt;
VEHICLE_LINEAR_MOTOR_OFFSET 			F	N&lt;br /&gt;
VEHICLE_ANGULAR_MOTOR_DIRECTION 		Y	Y	Y&lt;br /&gt;
VEHICLE_ANGULAR_MOTOR_TIMESCALE 		Y	Y	Y&lt;br /&gt;
VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE		Y	Y	Y&lt;br /&gt;
VEHICLE_ANGULAR_FRICTION_TIMESCALE 		Y	Y	Y&lt;br /&gt;
&lt;br /&gt;
VEHICLE_BANKING_EFFICIENCY			F	N&lt;br /&gt;
VEHICLE_BANKING_MIX 				F	N&lt;br /&gt;
VEHICLE_BANKING_TIMESCALE 			F	N&lt;br /&gt;
&lt;br /&gt;
VEHICLE_BUOYANCY				Y	Y	Y&lt;br /&gt;
VEHICLE_HOVER_HEIGHT 				Y	N&lt;br /&gt;
VEHICLE_HOVER_EFFICIENCY 			Y	N&lt;br /&gt;
VEHICLE_HOVER_TIMESCALE				Y	N&lt;br /&gt;
&lt;br /&gt;
VEHICLE_LINEAR_DEFLECTION_EFFICIENCY		F	N &lt;br /&gt;
VEHICLE_LINEAR_DEFLECTION_TIMESCALE 		F	N&lt;br /&gt;
VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY		F	N&lt;br /&gt;
VEHICLE_ANGULAR_DEFLECTION_TIMESCALE 		F	N&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
VEHICLE_REFERENCE_FRAME 			F	N&lt;br /&gt;
VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY 		Y	Y	Y&lt;br /&gt;
VEHICLE_VERTICAL_ATTRACTION_TIMESCALE  		Y	Y	Y&lt;br /&gt;
&lt;br /&gt;
VEHICLE_TYPE_NONE				Y	Y	Y&lt;br /&gt;
VEHICLE_TYPE_BALLOON				Y	Y	Y&lt;br /&gt;
VEHICLE_TYPE_BOAT				Y	Y	Y&lt;br /&gt;
VEHICLE_TYPE_CAR				Y	Y	Y&lt;br /&gt;
VEHICLE_TYPE_SLED				Y	Y	Y&lt;br /&gt;
VEHICLE_FLAG_NO_DEFLECTION_UP 			Y	N&lt;br /&gt;
VEHICLE_FLAG_LIMIT_ROLL_ONLY  			Y	N&lt;br /&gt;
VEHICLE_FLAG_HOVER_WATER_ONLY 			Y	Y&lt;br /&gt;
VEHICLE_FLAG_HOVER_TERRAIN_ONLY 		Y	Y&lt;br /&gt;
VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT 		Y	Y&lt;br /&gt;
VEHICLE_FLAG_HOVER_UP_ONLY 			Y	Y&lt;br /&gt;
VEHICLE_FLAG_LIMIT_MOTOR_UP 			Y	N&lt;br /&gt;
VEHICLE_FLAG_MOUSELOOK_STEER 			Y	N&lt;br /&gt;
VEHICLE_FLAG_MOUSELOOK_BANK  			Y	N&lt;br /&gt;
VEHICLE_FLAG_CAMERA_DECOUPLED 			Y	N&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Vehicles</id>
		<title>Vehicles</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Vehicles"/>
				<updated>2009-09-03T23:58:04Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: /* Vehicle LSL Functions in revised OpenSimulator */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
August 2009: Kitto Flora is revising the OdePlugin files in an attempt to provide SL-compatible VEHICLE functionality to OpenSimulator. A couple of test regions have been provided by Bri Hasp, these are Sea-3 and Sea-4 in OSgrid. You may visit there and test vehicles but please clean up after. The revised OpenSimulator files are not generally available at this time as there are many bugs and deficiencies to be dealt with. The regions will frequently be restarted to test revisions.&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
Here some terms are defined so that when we communicate we are talking about the same things.&lt;br /&gt;
&lt;br /&gt;
=== Vehicle ===&lt;br /&gt;
&lt;br /&gt;
Any object or link-set that moves. It is usually rideable. It may be Physical or not.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== VEHICLE ====&lt;br /&gt;
Any object or link-set that uses LSL VEHICLE functions to achieve mobility. It is set to other than 'VEHICLE_TYPE_NONE'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Physical ====&lt;br /&gt;
Any object or link-set that is llSetStatus(STATUS_PHYSICS, TRUE). It will fall due to gravity (unless buoyancy is changed) and collide with other prims, avatars and the ground (unless set phantom).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Non-Physical ====&lt;br /&gt;
Any object or link-set that is llSetStatus(STATUS_PHYSICS, FALSE), or has never has llSetStatus(STATUS_PHYSICS,...) applied. Such objects 'stick in midair' and can interpenetrate other objects.&lt;br /&gt;
&lt;br /&gt;
==== Kinematic ====&lt;br /&gt;
Motion system used by Non-Physical objects, applied by such functions as llSetPos() and llSetRot(). &lt;br /&gt;
&lt;br /&gt;
==== Dynamic ====&lt;br /&gt;
Motion system used by Physical objects, applied by such functions as llSetForce() and llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, &amp;lt;...&amp;gt;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== About This Project ==&lt;br /&gt;
The objectives of this project are:&lt;br /&gt;
# To provide VEHICLE associated LSL functions within OpenSimulator that are compatible with Second Life functionality. This means trying to get them really close, but as we are trying to emulate complex HAVOK functions using what is available in ODE they may be only close to the SL functions. &lt;br /&gt;
# To clean up the OdePlugin files. Over many revisions and add-ons they are somewhat non-optimal. In particular the 'Move' operation that makes objects move around needs to be very clean and smooth so that the update rate remains high.&lt;br /&gt;
# Maintain the existing non-VEHICLE dynamic functions and fix errors where found.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Vehicle LSL Functions in revised OpenSimulator ==&lt;br /&gt;
There are three categories of LSL functions that are used by Vehicles: Kinematic, Dynamic and VEHICLE. These are listed below with information on their current status within the revised OpenSimulator. (Not the general release at this time.) &lt;br /&gt;
Kinematic vehicle motion can be used by non-physical objects. VEHICLE motion and the associated functions '''ONLY''' apply to objects that are set to a VEHICLE_TYPE of AIRPLANE, BALLOON, BOAT, CAR or SLED. Dynamic functions '''ONLY''' apply (at this time) to VEHICLE_TYPE_NONE, which is the default condition of an object. (In SL it appears that one can use Dynamic functions on a VEHICLE, but to keep things simple at the start of this project such a combination is not allowed.)&lt;br /&gt;
&lt;br /&gt;
== VEHICLE Scripting Notes ==&lt;br /&gt;
#(Not really scripting , but very important) DO NOT attempt to drive a VEHICLE across the Region boundary. If you do your Av will be orbited. You may be able to recover by Map double-click TP to a nearby Region. The VEHICLE object is usually killed, and sitting at edge of the destination region. &lt;br /&gt;
#In revised OpenSimulator the function llSetVehicleType(VEHICLE_TYPE_xxx), where xxx is AIRPLANE, BALLOON, BOAT, CAR or SLED, pre-sets all the applicable VEHICLE parameters to reasonable numbers. If you wish to change any of these pre-set parameters do so after asserting llSetVehicleType(VEHICLE_TYPE_xxx). &lt;br /&gt;
#At present it appears that some conditions of an instantiated scripted object are not maintained after a Region restart, and possibly between take and rez. Therefore you should assert llSetVehicleType(VEHICLE_TYPE_xxx) when the driver sits and llSetVehicleType(VEHICLE_TYPE_NONE)when the driver stands, and probably on_rez.&lt;br /&gt;
#The advice above also applies to camera controls. Assert llSetCameraxxx() on sit and llClearCameraParams() on stand.&lt;br /&gt;
#The advice above is also true of Material Type. Land vehicles need the 'wheels' to be PRIM_MATERIAL_GLASS. The script(s) must llSetPrimitiveParams([PRIM_MATERIAL, PRIM_MATERIAL_GLASS]) in every prim that touches the ground, when the rider sits, for reliable operation. Use a link mesage from the root to daughter prim scripts.&lt;br /&gt;
#Use llSetStatus(STATUS_PHYSICS, TRUE) to enable the VEHICLE, usually when the driver sits. Use llSetStatus(STATUS_PHYSICS, FALSE) to disable the VEHICLE, usually when the driver stands.&lt;br /&gt;
#It appears that the timer() event freezes while a Vehicle is in motion, so do not rely  in Timer() to update things like steering or velocity.&lt;br /&gt;
&lt;br /&gt;
== Vehicle LSL Functions and Status ==&lt;br /&gt;
NOTE! This list applies to the revised OpenSimulator, not the released&lt;br /&gt;
OpenSimulator.&lt;br /&gt;
&lt;br /&gt;
Key: Y = Yes; N = No; F = Framework present but commented out&lt;br /&gt;
&lt;br /&gt;
*The following sections needs to be in a 5 column table&lt;br /&gt;
&lt;br /&gt;
=== KINEMATIC ===&lt;br /&gt;
 (object must not be PHYSICAL)&lt;br /&gt;
&lt;br /&gt;
(Some work, some do not.)&lt;br /&gt;
&lt;br /&gt;
llSetPos()&lt;br /&gt;
llSetRot()&lt;br /&gt;
llSetLocalRot()&lt;br /&gt;
llSetScale()&lt;br /&gt;
llLookAt()&lt;br /&gt;
llRotLookAt()&lt;br /&gt;
llSetPrimitiveParams()&lt;br /&gt;
llSetLinkPrimitiveParams()&lt;br /&gt;
llTargetOmega()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== DYNAMIC ===&lt;br /&gt;
 (object must be PHYSICAL and VEHICLE_TYPE_NONE(default))&lt;br /&gt;
&lt;br /&gt;
(Some work, some do not.)&lt;br /&gt;
&lt;br /&gt;
llApplyImpulse()&lt;br /&gt;
llApplyRotationalImpulse()&lt;br /&gt;
llGroundRepel()&lt;br /&gt;
llMoveToTarget()&lt;br /&gt;
llPushObject()&lt;br /&gt;
llSetBuoyancy() (do not confuse with VEHICLE_BUOYANCY)&lt;br /&gt;
llSetForce()&lt;br /&gt;
llSetForceAndTorque()&lt;br /&gt;
llSetHoverHeight() (do not confuse with VEHICLE_HOVER_HEIGHT)&lt;br /&gt;
llSetTorque()&lt;br /&gt;
llTargetOmega() 	&lt;br /&gt;
llLookAt()&lt;br /&gt;
llRotLookAt()&lt;br /&gt;
llSetPrimitiveParams()&lt;br /&gt;
llSetLinkPrimitiveParams()&lt;br /&gt;
llTargetOmega()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== VEHICLE ===&lt;br /&gt;
 (object must be PHYSICAL and VEHICLE_TYPE_&amp;lt;other than NONE&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Functions					LSLsets	Used	Works Exceptions&lt;br /&gt;
&lt;br /&gt;
llSetVehicleType() Y Y Y&lt;br /&gt;
llSetVehicleFlags() N N N Some flags are set by llSetVehicleType()&lt;br /&gt;
llRemoveVehicleFlags() N N N &lt;br /&gt;
llSetVehicleFloatParam() Y Y Y &lt;br /&gt;
llSetVehicleVectorParam()  Y Y Y &lt;br /&gt;
llSetVehicleRotationParam() Y Y Y &lt;br /&gt;
&lt;br /&gt;
Parameters&lt;br /&gt;
&lt;br /&gt;
VEHICLE_LINEAR_MOTOR_DIRECTION 			Y	Y	Y&lt;br /&gt;
VEHICLE_LINEAR_MOTOR_TIMESCALE			Y	Y	Y&lt;br /&gt;
VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE 		Y	Y	Y&lt;br /&gt;
VEHICLE_LINEAR_FRICTION_TIMESCALE 		Y	Y	Y&lt;br /&gt;
VEHICLE_LINEAR_MOTOR_OFFSET 			F	N&lt;br /&gt;
VEHICLE_ANGULAR_MOTOR_DIRECTION 		Y	Y	Y&lt;br /&gt;
VEHICLE_ANGULAR_MOTOR_TIMESCALE 		Y	Y	Y&lt;br /&gt;
VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE		Y	Y	Y&lt;br /&gt;
VEHICLE_ANGULAR_FRICTION_TIMESCALE 		Y	Y	Y&lt;br /&gt;
&lt;br /&gt;
VEHICLE_BANKING_EFFICIENCY			F	N&lt;br /&gt;
VEHICLE_BANKING_MIX 				F	N&lt;br /&gt;
VEHICLE_BANKING_TIMESCALE 			F	N&lt;br /&gt;
&lt;br /&gt;
VEHICLE_BUOYANCY				Y	Y	Y&lt;br /&gt;
VEHICLE_HOVER_HEIGHT 				Y	N&lt;br /&gt;
VEHICLE_HOVER_EFFICIENCY 			Y	N&lt;br /&gt;
VEHICLE_HOVER_TIMESCALE				Y	N&lt;br /&gt;
&lt;br /&gt;
VEHICLE_LINEAR_DEFLECTION_EFFICIENCY		F	N &lt;br /&gt;
VEHICLE_LINEAR_DEFLECTION_TIMESCALE 		F	N&lt;br /&gt;
VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY		F	N&lt;br /&gt;
VEHICLE_ANGULAR_DEFLECTION_TIMESCALE 		F	N&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
VEHICLE_REFERENCE_FRAME 			F	N&lt;br /&gt;
VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY 		Y	Y	Y&lt;br /&gt;
VEHICLE_VERTICAL_ATTRACTION_TIMESCALE  		Y	Y	Y&lt;br /&gt;
&lt;br /&gt;
VEHICLE_TYPE_NONE				Y	Y	Y&lt;br /&gt;
VEHICLE_TYPE_BALLOON				Y	Y	Y&lt;br /&gt;
VEHICLE_TYPE_BOAT				Y	Y	Y&lt;br /&gt;
VEHICLE_TYPE_CAR				Y	Y	Y&lt;br /&gt;
VEHICLE_TYPE_SLED				Y	Y	Y&lt;br /&gt;
VEHICLE_FLAG_NO_DEFLECTION_UP 			Y	N&lt;br /&gt;
VEHICLE_FLAG_LIMIT_ROLL_ONLY  			Y	N&lt;br /&gt;
VEHICLE_FLAG_HOVER_WATER_ONLY 			Y	Y&lt;br /&gt;
VEHICLE_FLAG_HOVER_TERRAIN_ONLY 		Y	Y&lt;br /&gt;
VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT 		Y	Y&lt;br /&gt;
VEHICLE_FLAG_HOVER_UP_ONLY 			Y	Y&lt;br /&gt;
VEHICLE_FLAG_LIMIT_MOTOR_UP 			Y	N&lt;br /&gt;
VEHICLE_FLAG_MOUSELOOK_STEER 			Y	N&lt;br /&gt;
VEHICLE_FLAG_MOUSELOOK_BANK  			Y	N&lt;br /&gt;
VEHICLE_FLAG_CAMERA_DECOUPLED 			Y	N&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Installing_and_Running_Hypergrid</id>
		<title>Installing and Running Hypergrid</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Installing_and_Running_Hypergrid"/>
				<updated>2009-08-24T04:32:00Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{{Template:Quicklinks}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Installing ===&lt;br /&gt;
&lt;br /&gt;
# Checkout OpenSim, prebuild and build as normal.&lt;br /&gt;
# &lt;br /&gt;
#* If you're running your opensim in grid mode with the UGAIM servers on other machines, you're done. If you're running in standalone and you want it to be network-able, or if you have your grid on loopback (127.0.0.1) change all the [Network] server addresses to &amp;lt;nowiki&amp;gt;&amp;quot;http://&amp;lt;external_host_name&amp;gt;:&amp;lt;http_port&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;. See below.&lt;br /&gt;
# Run opensim like this: &amp;lt;nowiki&amp;gt;[mono] OpenSim.exe -hypergrid=true&amp;lt;/nowiki&amp;gt;. To make sure the hypergrid is running type this on your console: '''link-region'''. If you don't hear anything back, the hypergrid is not properly installed.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
''The Following command line switch for mono has been deprecated and should probably be removed from this page in the near future. - Hiro P./daTwitch''&amp;lt;br /&amp;gt;&lt;br /&gt;
'''[mono] OpenSim.exe -hypergrid=true'''&lt;br /&gt;
&amp;lt;br/ &amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Here is an example of the Network settings for a standalone:&lt;br /&gt;
&lt;br /&gt;
 [Network]&lt;br /&gt;
 http_listener_port = 9300&lt;br /&gt;
 remoting_listener_port = 9895  (legacy - not used any more)&lt;br /&gt;
 &lt;br /&gt;
 grid_server_url = http://example.com:9300&lt;br /&gt;
 grid_send_key = null&lt;br /&gt;
 grid_recv_key = null&lt;br /&gt;
 &lt;br /&gt;
 user_server_url = http://example.com:9300&lt;br /&gt;
 user_send_key = null&lt;br /&gt;
 user_recv_key = null&lt;br /&gt;
 &lt;br /&gt;
 asset_server_url = http://example.com:9300&lt;br /&gt;
 inventory_server_url = http://example.com:9300&lt;br /&gt;
 messaging_server_url = http://example.com:9300&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is an example of the Network settings for a grided opensim:&lt;br /&gt;
&lt;br /&gt;
 [Network]&lt;br /&gt;
 http_listener_port = 9300&lt;br /&gt;
 remoting_listener_port = 9895  (legacy - not used any more)&lt;br /&gt;
 &lt;br /&gt;
 grid_server_url = http://example.com:8001&lt;br /&gt;
 grid_send_key = null&lt;br /&gt;
 grid_recv_key = null&lt;br /&gt;
 &lt;br /&gt;
 user_server_url = http://example.com:8002&lt;br /&gt;
 user_send_key = null&lt;br /&gt;
 user_recv_key = null&lt;br /&gt;
 &lt;br /&gt;
 asset_server_url = http://example.com:8003&lt;br /&gt;
 inventory_server_url = http://example.com:8004&lt;br /&gt;
 ; Port 8005 reserved&lt;br /&gt;
 messaging_server_url = http://example.com:8006&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is also recommended to have '''both''' of:&lt;br /&gt;
&lt;br /&gt;
 WorldMapModule = &amp;quot;WorldMap&amp;quot;&lt;br /&gt;
 WorldMapModule = &amp;quot;HGWorldMapModule&amp;quot;&lt;br /&gt;
&lt;br /&gt;
in your OpenSim.ini .   HGWorldMapModule will, after teleporting to another grid, clean up tiles in your map left over from the grid on which you were previously.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Important Note'''&lt;br /&gt;
&lt;br /&gt;
Make sure you have a 'home' set. If your home region doesn't exist, the hyperlink TPs may not work. To set your home, go to one of your local regions and &amp;quot;Set Home&amp;quot; from the viewer.&lt;br /&gt;
&lt;br /&gt;
=== Linking regions ===&lt;br /&gt;
&lt;br /&gt;
==== Method 1 ====&lt;br /&gt;
&lt;br /&gt;
On the console, type for example:&lt;br /&gt;
&lt;br /&gt;
link-region &amp;lt;Xloc&amp;gt; &amp;lt;Yloc&amp;gt; osl2.nac.uci.edu:9006&lt;br /&gt;
&lt;br /&gt;
* Use Xloc and Yloc that make sense to your world, i.e. close to your regions, but not adjacent.&lt;br /&gt;
* replace osl2.nac.uci.edu and 9006 with the domain name / ip address and the http_listener_port of the simulator where the region is running you want to link to&lt;br /&gt;
&lt;br /&gt;
You can link to a specific region within an instance, by using the name of the region at the end, for example:&lt;br /&gt;
&lt;br /&gt;
link-region 997 997 osl2.nac.uci.edu:9006:UCI Welcome&lt;br /&gt;
&lt;br /&gt;
==== Method 2 ====&lt;br /&gt;
&lt;br /&gt;
There is also some initial support for reading the links from a xml file.&lt;br /&gt;
&lt;br /&gt;
Use the console command: link-region &amp;lt;URI&amp;gt; [&amp;lt;excludeList&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
The uri can be either the path of a local xml file or a xml document on a http server.&lt;br /&gt;
&lt;br /&gt;
The format of the xml file is:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Nini&amp;gt;&lt;br /&gt;
  &amp;lt;Section Name=&amp;quot;Region1&amp;quot;&amp;gt; &amp;lt;!-- can be any name but each section should have a different name and have no spaces --&amp;gt;&lt;br /&gt;
    &amp;lt;Key Name=&amp;quot;xloc&amp;quot; Value=&amp;quot;1002&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;Key Name=&amp;quot;yloc&amp;quot; Value=&amp;quot;1006&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Key Name=&amp;quot;externalPort&amp;quot; Value=&amp;quot;9006&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Key Name=&amp;quot;externalHostName&amp;quot; Value=&amp;quot;osl2.nac.uci.edu&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Key Name=&amp;quot;localName&amp;quot; Value=&amp;quot;OSGrid-Gateway&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Key Name=&amp;quot;real-xloc&amp;quot; Value=&amp;quot;10222&amp;quot;/&amp;gt; //optional field that gives the region's real location on its home grid&lt;br /&gt;
    &amp;lt;Key Name=&amp;quot;real-yloc&amp;quot; Value=&amp;quot;10265&amp;quot; /&amp;gt; //optional field that gives the region's real location on its home grid&lt;br /&gt;
  &amp;lt;/Section&amp;gt;&lt;br /&gt;
  &amp;lt;Section Name=&amp;quot;Region2&amp;quot;&amp;gt; &lt;br /&gt;
    ...&lt;br /&gt;
  &amp;lt;/Section&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
 &amp;lt;/Nini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[Note] The section names can be anything you want, but they all should be different and have no spaces in the name.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ExcludeList:&lt;br /&gt;
&lt;br /&gt;
The exclude list is a single string paramater with the format: excludeList:&amp;lt;SectionName&amp;gt;[;&amp;lt;SectionName&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
This means that while reading from the xml file any sections that are listed in the excludeList will be ignored and no HyperGrid link created for them.&lt;br /&gt;
&lt;br /&gt;
This could allow, link lists to be created on a webserver that everyone could add their own regions to, and then they just make sure they add their own section name(s) to the exclude list on their own region(s). &lt;br /&gt;
&lt;br /&gt;
So for example, someone might create a editable online list for the up coming OpenSimulator's 2nd birthday. Which might look something like:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Nini&amp;gt;&lt;br /&gt;
  &amp;lt;Section Name=&amp;quot;OSGrid-Party&amp;quot;&amp;gt; &amp;lt;!-- can be any name but each section should have a different name and no spaces --&amp;gt;&lt;br /&gt;
    &amp;lt;Key Name=&amp;quot;xloc&amp;quot; Value=&amp;quot;1002&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;Key Name=&amp;quot;yloc&amp;quot; Value=&amp;quot;1006&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Key Name=&amp;quot;externalPort&amp;quot; Value=&amp;quot;9006&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Key Name=&amp;quot;externalHostName&amp;quot; Value=&amp;quot;osl2.nac.uci.edu&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Key Name=&amp;quot;localName&amp;quot; Value=&amp;quot;OSGrid-Gateway&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/Section&amp;gt;&lt;br /&gt;
  &amp;lt;Section Name=&amp;quot;UCIGrid-Party&amp;quot;&amp;gt; &lt;br /&gt;
    ...&lt;br /&gt;
  &amp;lt;/Section&amp;gt;&lt;br /&gt;
 &amp;lt;/Nini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I could then add my own region to the list with the section name &amp;quot;MW-Party&amp;quot;. Then when I startup that region that I want to be part of this hypergrid, I use the command: &amp;quot;link-region &amp;lt;URI of xml file&amp;gt; excludeList:MW-Party&amp;quot; &lt;br /&gt;
&lt;br /&gt;
This is so that my region doesn't try to create a hyper link to itself.&lt;br /&gt;
&lt;br /&gt;
==== Method 3 (dynamic) ====&lt;br /&gt;
&lt;br /&gt;
Starting in r8193, if you're in an HG-enabled region, you'll be able to dynamically link sims, and TP there, in any one of these ways (and probably more). All you need to know is the target address, e.g. from the list below.&lt;br /&gt;
&lt;br /&gt;
 1) Type for example secondlife://ucigrid04.nacs.uci.edu:9007/ in the &lt;br /&gt;
 chat box, pull up the chat history and click on that link&lt;br /&gt;
&lt;br /&gt;
 2) Pull up the map and search for things like &lt;br /&gt;
 ucigrid04.nacs.uci.edu:9007&lt;br /&gt;
&lt;br /&gt;
 3) Using the embedded browser visit pages that have links like &lt;br /&gt;
 secondlife://ucigrid04.nacs.uci.edu:9007/ (there's one up at&lt;br /&gt;
 http://www.ics.uci.edu/~lopes/hypergrid/test.html)&lt;br /&gt;
&lt;br /&gt;
Again, you can link to a specific region within an instance by adding the name of that region at the end, like this:&lt;br /&gt;
secondlife://ucigrid04.nacs.uci.edu:9007:Gateway 7000/&lt;br /&gt;
&lt;br /&gt;
'''Important Note'''&lt;br /&gt;
&lt;br /&gt;
Due to a viewer [https://jira.secondlife.com/browse/SVC-2941 bug], you can only TP between regions that are no more than 4096 cells apart in any dimension. What this means in practice is that if you want to link to OSGrid, you must have your own regions reachable from the (10,000; 10,000) point on the map, which is where OSGrid is centered. Place your regions somewhere in the 8,000s or the 12,000s.&lt;br /&gt;
&lt;br /&gt;
=== Unlinking regions ===&lt;br /&gt;
&lt;br /&gt;
On the console, type for example:&lt;br /&gt;
&lt;br /&gt;
 unlink-region osl2.nac.uci.edu:9006&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
 unlink-region &amp;lt;local region name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Hypergrid]]&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/PCampBot</id>
		<title>PCampBot</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/PCampBot"/>
				<updated>2009-01-22T19:06:24Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: From the README.txt included with the source&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the PhysicsCamperbot libslBot tester.&lt;br /&gt;
&lt;br /&gt;
This is designed to be run in standalone mode with authorize accounts&lt;br /&gt;
turned off as a way to stress test the simulator.  It creates &amp;lt;N&amp;gt;&lt;br /&gt;
clients that log in, randomly jump/walk around, and say excuses from&lt;br /&gt;
the BOFH.&lt;br /&gt;
&lt;br /&gt;
*** WARNING ***&lt;br /&gt;
Using this bot on a public grid could get you banned permanently, so&lt;br /&gt;
just say No! to griefing!&lt;br /&gt;
&lt;br /&gt;
----- Setup -----&lt;br /&gt;
Linux: To build, in the main opensim directory, run:&lt;br /&gt;
  ./runprebuild.sh&lt;br /&gt;
  nant&lt;br /&gt;
&lt;br /&gt;
Windows: Run the prebuild.bat in the main opensim directory and then&lt;br /&gt;
open the created solution and compile it.&lt;br /&gt;
&lt;br /&gt;
pCampBot.exe will end up in the regular opensim/bin folder&lt;br /&gt;
&lt;br /&gt;
----- Running the bot -----&lt;br /&gt;
&lt;br /&gt;
windows: pCampBot.exe -botcount &amp;lt;N&amp;gt; -loginuri &amp;lt;URI&amp;gt;&lt;br /&gt;
*nix: mono pCampBot.exe -botcount &amp;lt;N&amp;gt; -loginuri &amp;lt;URI&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The names it produces are random by default, however, you can specify&lt;br /&gt;
either a firstname or a lastname in the command line also.&lt;br /&gt;
&lt;br /&gt;
ex: pCampBot.exe -botcount &amp;lt;N&amp;gt; -loginuri &amp;lt;URI&amp;gt; -lastname &amp;lt;lastname&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you specify both a firstname *and* a lastname, you'll likely run&lt;br /&gt;
into trouble unless you're only running a single bot.  In that case,&lt;br /&gt;
there's also a password option.&lt;br /&gt;
&lt;br /&gt;
pCampBot.exe -botcount 1 -loginuri http://somegrid.com:8002 -firstname SomeDude -lastname SomeDude -password GobbleDeGook&lt;br /&gt;
&lt;br /&gt;
----- Commands -----&lt;br /&gt;
&lt;br /&gt;
The bot has console commands:&lt;br /&gt;
  help       - lists the console commands and what they do&lt;br /&gt;
  shutdown   - gracefully shuts down the bots&lt;br /&gt;
  quit       - forcefully shuts things down leaving stuff unclean&lt;br /&gt;
  addbots N  - adds N number of random bots. (replace 'N' with a number)&lt;br /&gt;
&lt;br /&gt;
From the README.txt included with the source&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/User_Documentation</id>
		<title>User Documentation</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/User_Documentation"/>
				<updated>2009-01-22T19:03:22Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: /* Cross-platform */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Quicklinks}}&lt;br /&gt;
&lt;br /&gt;
==Initial Setup==&lt;br /&gt;
* [[Download]] - Download instructions&lt;br /&gt;
* [[Dependencies]] - The other packages you need to install that OpenSim relies upon&lt;br /&gt;
* [[Build Instructions]] - How to build and compile OpenSim from Source&lt;br /&gt;
* [[Configuration]] - How to configure your OpenSim server up and running&lt;br /&gt;
* [[Upgrading]] - How to upgrade your OpenSim version so that you can use your existing data&lt;br /&gt;
* [[Connecting]] - How to connect a compatible viewer to OpenSim&lt;br /&gt;
* [[Troubleshooting]] - How to trouble shoot your OpenSim installation.&lt;br /&gt;
* [[Tips]] - Useful tips from users like you&lt;br /&gt;
* [[FAQ]] - Frequently Asked Questions&lt;br /&gt;
&lt;br /&gt;
==Administrator Guide==&lt;br /&gt;
* [[Server Commands]] - Commands to control OpenSim&lt;br /&gt;
* [[OpenSim Database support]] - Dealing with databases&lt;br /&gt;
* [[Logging]] - Logging in OpenSim&lt;br /&gt;
* [[Custom Libraries]] - Describes how to add custom content to your OpenSim server&lt;br /&gt;
* [[Automating Tasks]] - How to make administrating a walk in the park&lt;br /&gt;
* [[Network Settings]] - NAT, Ports, Services and more...&lt;br /&gt;
* [[Management]] - All about being an effective administrator/moderator&lt;br /&gt;
* [[Performance]] - How to tweak OpenSim's performance&lt;br /&gt;
* [[Console-less OpenSim]] - How to run OpenSim without console&lt;br /&gt;
&lt;br /&gt;
==Core Facilities==&lt;br /&gt;
* [[OpenSim Archives]] - Loading and saving whole region archives with OpenSim&lt;br /&gt;
* [[IRCBridgeModule]] - A core OpenSim module for integrating IRC with a simulator.&lt;br /&gt;
* [[Hypergrid]] - Information about how to configure the experimental hypergrid architecture&lt;br /&gt;
* [[GridInfo]] - how to provide information about your grid to smart clients&lt;br /&gt;
&lt;br /&gt;
==RealXtend==&lt;br /&gt;
* [[ModRex]] - How to setup the RealXtend server module&lt;br /&gt;
* [[RealXtend Viewer Linux]] - This tutorial describes how to use the RealXtend viewer on Linux, using wine&lt;br /&gt;
&lt;br /&gt;
==Scripting==&lt;br /&gt;
* [[Scripting Documentation]] - Everything you need to know about OpenSim scripting&lt;br /&gt;
* [[Scripting Library]] - A list of example scripts&lt;br /&gt;
&lt;br /&gt;
==Tutorials==&lt;br /&gt;
===Platform specific===&lt;br /&gt;
* [[Linux Gridserver, the ubuntu way]] the quick and dirty way to install opensim under ubuntu (Linux)&lt;br /&gt;
* [[Wiimote]] - How to use a wiimote/nunchuk controller with the OpenSim viewer (Linux)&lt;br /&gt;
* [[Cacti]] - Generate Serverstats using the Cacti-Tool and SNMP (Linux)&lt;br /&gt;
* [http://sunredbeach.com/dokuwiki/doku.php?id=opensim:minimal-server Installing an openSUSE 11.1 Minimal server setup for an OpenSim server] - Quick and Dirty setup on an openSUSE 11.1 server&lt;br /&gt;
&lt;br /&gt;
* [http://chapter-and-metaverse.blogspot.com Chapter &amp;amp; Metaverse] - Full suite of tutorials, tips and tricks, for the Windows user (Windows)&lt;br /&gt;
&lt;br /&gt;
===Cross-platform===&lt;br /&gt;
* [[OSGrid Region Registration]] - Describes how to link your region into OS-Grid&lt;br /&gt;
* [[Hints &amp;amp; Tricks]] - A page for Hints and Tricks&lt;br /&gt;
* [[Getting Started with Region Modules]] - The Hello World of OpenSim application development&lt;br /&gt;
* [[Building a bot]] - Getting started with bot design using libomv from the client side.&lt;br /&gt;
* [[pCampBot]] - Physical OpenSim bots&lt;br /&gt;
* [[Using L3DT]] - How to create custom terrains&lt;br /&gt;
* [[Detailed cross-region terrain making]] - A workflow for creating large cross-region custom terrains&lt;br /&gt;
* [http://update.multiverse.net/wiki/index.php/About_Terrain How to make a good Terrain (includes 4 programs to use)]&lt;br /&gt;
&lt;br /&gt;
==Gforge Projects==&lt;br /&gt;
* [[OpenSimSearch]] - Search for your OpenSim&lt;br /&gt;
* [[Linux Gridserver]] - Linux Gridserver using the Moo tool&lt;br /&gt;
* [[ServerStats]] - RRD/Proc serverstats using the OpenSim module for Berlios Serverstats (Linux)&lt;br /&gt;
&lt;br /&gt;
==Contribution Policy==&lt;br /&gt;
* [[User_Wiki_Conventions|User Wiki Conventions]] - Read this carefully, before adding content to the wiki&lt;br /&gt;
[[Category:Users]]&lt;br /&gt;
&amp;lt;cleanpage title=hide cats=hide /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/User_Documentation</id>
		<title>User Documentation</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/User_Documentation"/>
				<updated>2009-01-22T19:02:44Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: /* Platform specific */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Quicklinks}}&lt;br /&gt;
&lt;br /&gt;
==Initial Setup==&lt;br /&gt;
* [[Download]] - Download instructions&lt;br /&gt;
* [[Dependencies]] - The other packages you need to install that OpenSim relies upon&lt;br /&gt;
* [[Build Instructions]] - How to build and compile OpenSim from Source&lt;br /&gt;
* [[Configuration]] - How to configure your OpenSim server up and running&lt;br /&gt;
* [[Upgrading]] - How to upgrade your OpenSim version so that you can use your existing data&lt;br /&gt;
* [[Connecting]] - How to connect a compatible viewer to OpenSim&lt;br /&gt;
* [[Troubleshooting]] - How to trouble shoot your OpenSim installation.&lt;br /&gt;
* [[Tips]] - Useful tips from users like you&lt;br /&gt;
* [[FAQ]] - Frequently Asked Questions&lt;br /&gt;
&lt;br /&gt;
==Administrator Guide==&lt;br /&gt;
* [[Server Commands]] - Commands to control OpenSim&lt;br /&gt;
* [[OpenSim Database support]] - Dealing with databases&lt;br /&gt;
* [[Logging]] - Logging in OpenSim&lt;br /&gt;
* [[Custom Libraries]] - Describes how to add custom content to your OpenSim server&lt;br /&gt;
* [[Automating Tasks]] - How to make administrating a walk in the park&lt;br /&gt;
* [[Network Settings]] - NAT, Ports, Services and more...&lt;br /&gt;
* [[Management]] - All about being an effective administrator/moderator&lt;br /&gt;
* [[Performance]] - How to tweak OpenSim's performance&lt;br /&gt;
* [[Console-less OpenSim]] - How to run OpenSim without console&lt;br /&gt;
&lt;br /&gt;
==Core Facilities==&lt;br /&gt;
* [[OpenSim Archives]] - Loading and saving whole region archives with OpenSim&lt;br /&gt;
* [[IRCBridgeModule]] - A core OpenSim module for integrating IRC with a simulator.&lt;br /&gt;
* [[Hypergrid]] - Information about how to configure the experimental hypergrid architecture&lt;br /&gt;
* [[GridInfo]] - how to provide information about your grid to smart clients&lt;br /&gt;
&lt;br /&gt;
==RealXtend==&lt;br /&gt;
* [[ModRex]] - How to setup the RealXtend server module&lt;br /&gt;
* [[RealXtend Viewer Linux]] - This tutorial describes how to use the RealXtend viewer on Linux, using wine&lt;br /&gt;
&lt;br /&gt;
==Scripting==&lt;br /&gt;
* [[Scripting Documentation]] - Everything you need to know about OpenSim scripting&lt;br /&gt;
* [[Scripting Library]] - A list of example scripts&lt;br /&gt;
&lt;br /&gt;
==Tutorials==&lt;br /&gt;
===Platform specific===&lt;br /&gt;
* [[Linux Gridserver, the ubuntu way]] the quick and dirty way to install opensim under ubuntu (Linux)&lt;br /&gt;
* [[Wiimote]] - How to use a wiimote/nunchuk controller with the OpenSim viewer (Linux)&lt;br /&gt;
* [[Cacti]] - Generate Serverstats using the Cacti-Tool and SNMP (Linux)&lt;br /&gt;
* [http://sunredbeach.com/dokuwiki/doku.php?id=opensim:minimal-server Installing an openSUSE 11.1 Minimal server setup for an OpenSim server] - Quick and Dirty setup on an openSUSE 11.1 server&lt;br /&gt;
&lt;br /&gt;
* [http://chapter-and-metaverse.blogspot.com Chapter &amp;amp; Metaverse] - Full suite of tutorials, tips and tricks, for the Windows user (Windows)&lt;br /&gt;
&lt;br /&gt;
===Cross-platform===&lt;br /&gt;
* [[OSGrid Region Registration]] - Describes how to link your region into OS-Grid&lt;br /&gt;
* [[Hints &amp;amp; Tricks]] - A page for Hints and Tricks&lt;br /&gt;
* [[Getting Started with Region Modules]] - The Hello World of OpenSim application development&lt;br /&gt;
* [[Building a bot]] - Getting started with bot design using libomv from the client side.&lt;br /&gt;
* [[Using L3DT]] - How to create custom terrains&lt;br /&gt;
* [[Detailed cross-region terrain making]] - A workflow for creating large cross-region custom terrains&lt;br /&gt;
* [http://update.multiverse.net/wiki/index.php/About_Terrain How to make a good Terrain (includes 4 programs to use)]&lt;br /&gt;
&lt;br /&gt;
==Gforge Projects==&lt;br /&gt;
* [[OpenSimSearch]] - Search for your OpenSim&lt;br /&gt;
* [[Linux Gridserver]] - Linux Gridserver using the Moo tool&lt;br /&gt;
* [[ServerStats]] - RRD/Proc serverstats using the OpenSim module for Berlios Serverstats (Linux)&lt;br /&gt;
&lt;br /&gt;
==Contribution Policy==&lt;br /&gt;
* [[User_Wiki_Conventions|User Wiki Conventions]] - Read this carefully, before adding content to the wiki&lt;br /&gt;
[[Category:Users]]&lt;br /&gt;
&amp;lt;cleanpage title=hide cats=hide /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/User_Documentation</id>
		<title>User Documentation</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/User_Documentation"/>
				<updated>2009-01-22T19:02:22Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: /* Platform specific */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Quicklinks}}&lt;br /&gt;
&lt;br /&gt;
==Initial Setup==&lt;br /&gt;
* [[Download]] - Download instructions&lt;br /&gt;
* [[Dependencies]] - The other packages you need to install that OpenSim relies upon&lt;br /&gt;
* [[Build Instructions]] - How to build and compile OpenSim from Source&lt;br /&gt;
* [[Configuration]] - How to configure your OpenSim server up and running&lt;br /&gt;
* [[Upgrading]] - How to upgrade your OpenSim version so that you can use your existing data&lt;br /&gt;
* [[Connecting]] - How to connect a compatible viewer to OpenSim&lt;br /&gt;
* [[Troubleshooting]] - How to trouble shoot your OpenSim installation.&lt;br /&gt;
* [[Tips]] - Useful tips from users like you&lt;br /&gt;
* [[FAQ]] - Frequently Asked Questions&lt;br /&gt;
&lt;br /&gt;
==Administrator Guide==&lt;br /&gt;
* [[Server Commands]] - Commands to control OpenSim&lt;br /&gt;
* [[OpenSim Database support]] - Dealing with databases&lt;br /&gt;
* [[Logging]] - Logging in OpenSim&lt;br /&gt;
* [[Custom Libraries]] - Describes how to add custom content to your OpenSim server&lt;br /&gt;
* [[Automating Tasks]] - How to make administrating a walk in the park&lt;br /&gt;
* [[Network Settings]] - NAT, Ports, Services and more...&lt;br /&gt;
* [[Management]] - All about being an effective administrator/moderator&lt;br /&gt;
* [[Performance]] - How to tweak OpenSim's performance&lt;br /&gt;
* [[Console-less OpenSim]] - How to run OpenSim without console&lt;br /&gt;
&lt;br /&gt;
==Core Facilities==&lt;br /&gt;
* [[OpenSim Archives]] - Loading and saving whole region archives with OpenSim&lt;br /&gt;
* [[IRCBridgeModule]] - A core OpenSim module for integrating IRC with a simulator.&lt;br /&gt;
* [[Hypergrid]] - Information about how to configure the experimental hypergrid architecture&lt;br /&gt;
* [[GridInfo]] - how to provide information about your grid to smart clients&lt;br /&gt;
&lt;br /&gt;
==RealXtend==&lt;br /&gt;
* [[ModRex]] - How to setup the RealXtend server module&lt;br /&gt;
* [[RealXtend Viewer Linux]] - This tutorial describes how to use the RealXtend viewer on Linux, using wine&lt;br /&gt;
&lt;br /&gt;
==Scripting==&lt;br /&gt;
* [[Scripting Documentation]] - Everything you need to know about OpenSim scripting&lt;br /&gt;
* [[Scripting Library]] - A list of example scripts&lt;br /&gt;
&lt;br /&gt;
==Tutorials==&lt;br /&gt;
===Platform specific===&lt;br /&gt;
* [[Linux Gridserver, the ubuntu way]] the quick and dirty way to install opensim under ubuntu (Linux)&lt;br /&gt;
* [[Wiimote]] - How to use a wiimote/nunchuk controller with the OpenSim viewer (Linux)&lt;br /&gt;
* [[Cacti]] - Generate Serverstats using the Cacti-Tool and SNMP (Linux)&lt;br /&gt;
* [http://sunredbeach.com/dokuwiki/doku.php?id=opensim:minimal-server Installing an openSUSE 11.1 Minimal server setup for an OpenSim server] - Quick and Dirty setup on an openSUSE 11.1 server&lt;br /&gt;
&lt;br /&gt;
* [http://chapter-and-metaverse.blogspot.com Chapter &amp;amp; Metaverse] - Full suite of tutorials, tips and tricks, for the Windows user (Windows)&lt;br /&gt;
* [[pCampBot]] - Physical OpenSim bots&lt;br /&gt;
&lt;br /&gt;
===Cross-platform===&lt;br /&gt;
* [[OSGrid Region Registration]] - Describes how to link your region into OS-Grid&lt;br /&gt;
* [[Hints &amp;amp; Tricks]] - A page for Hints and Tricks&lt;br /&gt;
* [[Getting Started with Region Modules]] - The Hello World of OpenSim application development&lt;br /&gt;
* [[Building a bot]] - Getting started with bot design using libomv from the client side.&lt;br /&gt;
* [[Using L3DT]] - How to create custom terrains&lt;br /&gt;
* [[Detailed cross-region terrain making]] - A workflow for creating large cross-region custom terrains&lt;br /&gt;
* [http://update.multiverse.net/wiki/index.php/About_Terrain How to make a good Terrain (includes 4 programs to use)]&lt;br /&gt;
&lt;br /&gt;
==Gforge Projects==&lt;br /&gt;
* [[OpenSimSearch]] - Search for your OpenSim&lt;br /&gt;
* [[Linux Gridserver]] - Linux Gridserver using the Moo tool&lt;br /&gt;
* [[ServerStats]] - RRD/Proc serverstats using the OpenSim module for Berlios Serverstats (Linux)&lt;br /&gt;
&lt;br /&gt;
==Contribution Policy==&lt;br /&gt;
* [[User_Wiki_Conventions|User Wiki Conventions]] - Read this carefully, before adding content to the wiki&lt;br /&gt;
[[Category:Users]]&lt;br /&gt;
&amp;lt;cleanpage title=hide cats=hide /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Getting_Started_with_Region_Modules</id>
		<title>Getting Started with Region Modules</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Getting_Started_with_Region_Modules"/>
				<updated>2008-12-23T23:15:57Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: /* Hello World */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Hello World ==&lt;br /&gt;
&lt;br /&gt;
This brief tutorial is intended to get people started with developing applications with/for opensim using [[IRegionModule|region modules]] and the [http://docs.opensimulator.org/namespaceOpenSim.html opensim API]. This approach to developing virtual world applications, unique to OpenSim, is a powerful alternative to the well-known inworld scripting approach.&lt;br /&gt;
The very simple module available here writes &amp;quot;HELLO&amp;quot; with prims on every region of your opensim instance, and makes them move every 2 seconds or so. Please note:&lt;br /&gt;
&lt;br /&gt;
* The opensim API is rapidly changing. The code available in this example has been written and tested for opensim release 0.6.0, which corresponds to SVN 7176. The example has also been tested for a more recent stable version, SVN 7320. You are encouraged to use 7176, if possible.&lt;br /&gt;
* You are also encouraged to try this code on the default standalone region first before running on a grid. &lt;br /&gt;
* The resulting dll will run both in Windows and Linux, but the building environment is assumed to be VC# on Windows. Users of other operating systems will be able to follow, though.&lt;br /&gt;
&lt;br /&gt;
To get started:&lt;br /&gt;
&lt;br /&gt;
# Download and install opensim (preferably 7176), and build it as normal. Run it once, so you create a default region and a default user. Then shut it down.&lt;br /&gt;
# Get this zip file: http://www.ics.uci.edu/~lopes/opensim/HelloWorld-current.zip. Unzip it somewhere.&lt;br /&gt;
# Before you go changing the code of the application, see its effect inworld by doing this:&lt;br /&gt;
#* Grab HelloWorld/bin/Release/HelloWorld.dll and dump it in opensim/bin&lt;br /&gt;
#* Start opensim as normal, and login to it.&lt;br /&gt;
&lt;br /&gt;
You should see the word HELLO spelled out in prims, and moving every so often.&lt;br /&gt;
&lt;br /&gt;
[[image:Hello 001.jpg|220px|left|thumb|Hello]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Are you ready to explore the code now?&lt;br /&gt;
&lt;br /&gt;
Hold on. Before we do that, let me give you the 30-second introduction to Visual C#. Visual C# is similar to Eclipse, if you ever used that. When it builds, it places the resulting dll or exe in whatever folder you tell it to (right-click on the project-&amp;gt;properties). By default it places them in bin/Release. When you compile it with debugging, that goes into bin/Debug. In spirit, the dll is equivalent to a jar file. That's what you want to produce and pass around. The PDB file can be ignored, unless you want to debug. The HelloWorld example uses the defaults of VC#, so every time you build it without debugging, the dll is placed under HelloWorld/bin/Release. To build without debugging information, simply right-click on the solution in the Solution Explorer window and choose Build.&lt;br /&gt;
&lt;br /&gt;
Another note: the solution file included in the zip is for VC# 2005. If you have VC# 2008 that's fine too. Just double-click on the solution file, and VC# 2008 will convert the whole thing.&lt;br /&gt;
&lt;br /&gt;
And now for the linux/mac/unix folk:&lt;br /&gt;
We now have a nant default.build file included in the tutorial zip - just drop it in the same directory with the source. Note that for everything to go well, you will need to park your module source directory inside opensim/bin/. When you are ready to build, open a shell, change to the module source directory, and then run 'nant' without any args.&lt;br /&gt;
&lt;br /&gt;
OK, now we're ready. Go ahead and double-click HelloWorld.sln.&lt;br /&gt;
&lt;br /&gt;
The only class in this example is called HelloWorldModule. I know you're eager to get to the part where objects are created and moved around, but I'm afraid that's the easy part. In order to be able to write those functions effectively, you will need to understand a lot more of the engineering of these modules, and that's the part that's not so trivial, especially if you aren't familiar with VC#. So let me go through the code very slowly.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Reflection;&lt;br /&gt;
 &lt;br /&gt;
using log4net;&lt;br /&gt;
using Nini.Config;&lt;br /&gt;
using OpenMetaverse;&lt;br /&gt;
 &lt;br /&gt;
using OpenSim.Framework;&lt;br /&gt;
using OpenSim.Region.Environment;&lt;br /&gt;
using OpenSim.Region.Environment.Interfaces;&lt;br /&gt;
using OpenSim.Region.Environment.Scenes;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This first part consists of a collection of &amp;quot;using&amp;quot; declarations. If you come from Java, those declarations are equivalent to &amp;quot;import&amp;quot; declarations. And you know what that means in Java: the jar files must be reachable for compilation to succeed. Same here: the dlls for those elements must be reachable for this project to build. Luckily for you, I have included those dlls in the zip file, so you don't need to add them. They are all happily bundled in HelloWorld/bin/Release. Go ahead and look there. However, as you start getting cozy with this code and you start wanting more, more, more, you will need more from the OpenSim API and even from other libraries. When that comes, you will need to add more dlls to your project. That is done through VC#, not on the file system directly! To add libraries (&amp;quot;References&amp;quot;), right-click on &amp;quot;References&amp;quot; in the Solution Explorer, and choose &amp;quot;Add Reference&amp;quot;. A small window will pop up with a few tabs. If the library you need is under the System namespace, you want to interact with the .NET tab. If the library you need is from OpenSim you need to interact with the &amp;quot;Browse&amp;quot; tab; then, navigate to your installation of opensim bin, and pick the dlls you need. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
namespace HelloWorld&lt;br /&gt;
{&lt;br /&gt;
    public class HelloWorldModule : IRegionModule&lt;br /&gt;
    {&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This second part is the namespace and class declaration. The only noteworthy thing here is the &amp;quot;: IRegionModule&amp;quot; part. What that means is that our class HelloWorldModule implements the [[Region Modules|IRegionModule]] interface, which means that we have to implement the 5 methods of that interface, namely: Initialise (yes, it's the British spelling...), PostInitialise, Close, Name, and IsSharedModule. But that's not all. OpenSim treats IRegionModule classes in a very special way. When OpenSim starts, it looks into all the dlls it can reach (under its bin) in search for classes that implement the IRegionModule interface. All of those classes are then acquired and run by OpenSim as if they were part of OpenSim. &lt;br /&gt;
&lt;br /&gt;
And this is the key to OpenSim application development: you can add your own code, or somebody else's code, as a plug-in that runs natively on the server. Yeepie!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This third block above is the declaration of the m_log variable. This variable helps us output messages into a log. I'm just using a common idiom that is used all over OpenSim and that uses log4net. If you come from Java, I'm sure this rings a bell... if you've never seen this, you don't need to understand it, just use it to output messages both onto the console and onto the OpenSim.log file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
List&amp;lt;Scene&amp;gt; m_scenes = new List&amp;lt;Scene&amp;gt;();&lt;br /&gt;
Dictionary&amp;lt;Scene, List&amp;lt;SceneObjectGroup&amp;gt;&amp;gt; scene_prims = new Dictionary&amp;lt;Scene, List&amp;lt;SceneObjectGroup&amp;gt;&amp;gt;();&lt;br /&gt;
 &lt;br /&gt;
int counter = 0;&lt;br /&gt;
bool positive = true;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The fourth block of code is the declaration of a few instance variables for our HelloWorld example, and this is where we start getting acquainted with the OpenSim API. &lt;br /&gt;
* m_scenes will hold references to all the scenes. &amp;quot;What's a scene?&amp;quot;, I hear you asking. A scene is OpenSim's representation of the contents of a region. If your opensim has only one region, there will be only one scene object; if it has more, there will be as many.&lt;br /&gt;
* scene_prims is a dictionary that associates scenes with a list of objects of type SceneObjectGroup. In the Java world this would probably be a Hashtable; in the .NET world it's a Dictionary. scene_prims will hold references to the prims that we will instantiate for constructing the world HELLO in each scene. An important note: if you look inside OpenSim's Scene class, you will see that it has a list of entities corresponding to all objects and avatars present in the scene. As we place prims in scenes, including these HELLO prims, they will be placed on that list. However, what we are doing here is constructing a set of prims that are special for our application and that we want to track throughout our application; they are our managed prims. As such, we want to hold references to those, and only those. That's what scene_prims is for.&lt;br /&gt;
* The other two variables, counter and positive, are explained later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
#region IRegionModule interface&lt;br /&gt;
 &lt;br /&gt;
public void Initialise(Scene scene, IConfigSource config)&lt;br /&gt;
{&lt;br /&gt;
    m_log.Info(&amp;quot;[HELLOWORLD] Initializing...&amp;quot;);&lt;br /&gt;
    m_scenes.Add(scene);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
public void PostInitialise()&lt;br /&gt;
{&lt;br /&gt;
    m_scenes[0].EventManager.OnFrame += new EventManager.OnFrameDelegate(OnTick);&lt;br /&gt;
    foreach (Scene s in m_scenes)&lt;br /&gt;
        DoHelloWorld(s);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
public void Close()&lt;br /&gt;
{&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public string Name&lt;br /&gt;
{&lt;br /&gt;
    get { return &amp;quot;Hello World Module&amp;quot;; }&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
public bool IsSharedModule&lt;br /&gt;
{&lt;br /&gt;
    get { return true; }&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
#endregion&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The fifth block is the implementation of the IRegionModule methods. There's nothing much here, and this is how it should be: encapsulate all of your code in your own functions. Let's go through the most important of these methods:&lt;br /&gt;
* Initialise (I still can't get over this British spelling): this method is called by OpenSim when it is discovering all the IRegionModule classes in dlls. OpenSim sends us two parameters: a scene object and a configuration object. The configuration object allows us to browse through the OpenSim configuration, if we need that info. The scene object is the very important scene information that we want to hold on to; the scene object is our code's main link to OpenSim, it's how we get to access and modify things in the world and beyond. So the main thing our Initialise method does is to hold on to the scene object that OpenSim sends us.&lt;br /&gt;
* PostInitialise (argh, British spelling again): this method is called by OpenSim once everything is ready to go, that is, after OpenSim has properly set all the internal things it needs to set. You should look at PostInitialise as the Main method of our application modules. In this case, we are doing two things:&lt;br /&gt;
** We are subscribing to an OpenSim event called OnFrame. This event is the Heartbeat of the simulator, so if our module is to do things periodically, we may want to tag along this heartbeat. We are going to move the word HELLO periodically, that's why we're subscribing to this event. Note that this is not always the best approach, though. The simulator is a busy bee, and has to do lots of things already without our module being there. Tagging along the simulator's heartbeat means that we're making it do more stuff. If you're planning to develop modules with your own simulations, you're much better off defining your own timer object, because that will make the tick function run on a different thread than the simulator's heartbeat. But in this case, this is just HelloWorld, so we can abuse gently.&lt;br /&gt;
** For each scene, we are constructing the HELLO word.&lt;br /&gt;
* Close and Name are trivial -- see the [[IRegionModule|documentation]].&lt;br /&gt;
* IsSharedModule is very important, and may be a source of much grief. Here's the deal: OpenSim can either (a) instantiate our HelloWorldModule class exactly once, a singleton, independent of the number of regions; or (b) instantiate our HelloWorldModule class as many times as the number of regions, creating a different HelloWorldModule instance for every scene. These two modes are captured by the IsSharedModule method. If you want OpenSim to create a singleton, make this method return true (&amp;quot;yes, OpenSim, my module is shared&amp;quot;); if you want to create different instances for different regions, make this method return false (&amp;quot;no, OpenSim, my module is not shared among the regions&amp;quot;). Depending on your application, you may want one thing or the other. In this case, I want to centralize the management of my specially constructed prims, so I made it be shared. (In reality for this simple example, it wouldn't matter). But here's the important idiom: when you have a shared module, you want to have a list of scenes, just like the m_scenes variable in this example; when you have a non-shared module, you want to have only one scene variable declared in your module, so that would be &amp;quot;Scene m_scene;&amp;quot; instead of &amp;quot;List&amp;lt;Scene&amp;gt; m_scenes;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Alright! If you read up to here, and followed the story, you're now ready to move on to the fun part.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
void DoHelloWorld(Scene scene)&lt;br /&gt;
{&lt;br /&gt;
    // We're going to write HELLO with prims&lt;br /&gt;
&lt;br /&gt;
    List&amp;lt;SceneObjectGroup&amp;gt; prims = new List&amp;lt;SceneObjectGroup&amp;gt;();&lt;br /&gt;
    // First prim: |&lt;br /&gt;
    Vector3 pos = new Vector3(120, 128, 30);&lt;br /&gt;
    SceneObjectGroup sog = new SceneObjectGroup(UUID.Zero, pos, PrimitiveBaseShape.CreateBox());&lt;br /&gt;
    sog.RootPart.Scale = new Vector3(0.3f, 0.3f, 2f);&lt;br /&gt;
    prims.Add(sog);&lt;br /&gt;
 &lt;br /&gt;
    ...&lt;br /&gt;
 &lt;br /&gt;
    // Add these to the managed objects&lt;br /&gt;
    scene_prims.Add(scene, prims);&lt;br /&gt;
&lt;br /&gt;
    // Now place them visibly on the scene&lt;br /&gt;
    foreach (SceneObjectGroup sogr in prims)&lt;br /&gt;
    {&lt;br /&gt;
        scene.AddNewSceneObject(sogr, false);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This method creates 12 SceneObjectGroup (SOG) instances corresponding to the 12 segments that constitute the word HELLO. '''BIG WARNING:''' SOG is currently under heavy redesign, and may be replaced with another class altogether in future versions of opensim. But for 0.6.0 SOG is tha man. SOG represents a linked group of objects, the linksets in SL, with root part and all. If you have your VC# open with HelloWorld, go to this method, and type, somewhere: sog. -- just like that, stopping at the dot. VC# will show you everything that is inside SOG instances. And that is A LOT! It's one of those monster classes! (and that's the reason why it's being redesigned) You should spend some time exploring what's inside SOG. In this example, I'm only using a couple of things: one of the constructors and the RootPart. For the RootPart, I'm only setting its Scale, i.e. the size of the prim.&lt;br /&gt;
&lt;br /&gt;
At the end of this method, when all prims are instantiated, they're added to the list of managed prims (scene_prims) and they're finally made visible on the scene, by calling scene.AddNewSceneObject. The second argument to this method, false, means that we're telling OpenSim not to back these objects up on the DB; we want them to be non-persistent.&lt;br /&gt;
&lt;br /&gt;
And finally we come to the end of the application:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
void OnTick()&lt;br /&gt;
{&lt;br /&gt;
    if (counter++ % 50 == 0)&lt;br /&gt;
    {&lt;br /&gt;
        foreach (KeyValuePair&amp;lt;Scene, List&amp;lt;SceneObjectGroup&amp;gt;&amp;gt; kvp in scene_prims)&lt;br /&gt;
        {&lt;br /&gt;
            foreach (SceneObjectGroup sog in kvp.Value)&lt;br /&gt;
            {&lt;br /&gt;
                if (positive)&lt;br /&gt;
                    sog.AbsolutePosition += new Vector3(5, 5, 0);&lt;br /&gt;
                else&lt;br /&gt;
                    sog.AbsolutePosition += new Vector3(-5, -5, 0);&lt;br /&gt;
                sog.ScheduleGroupForTerseUpdate();&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        positive = !positive;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the worker method in our application for every heartbeat of the simulator. Notice that I have a counter there so that things only move every 50 heartbeats. I also have a direction (positive) that can be true or false, so that the prims move back and forth. As you can see, the way to move prims is to set their AbsolutePosition property directly. After that, we tell opensim to schedule the object for an update, so that we can see it move. Note this last bit, the scheduling for updates, is still a fragile piece of the opensim API; we may need it here or not, depending on the version of opensim you're using.&lt;br /&gt;
&lt;br /&gt;
Voila!&lt;br /&gt;
&lt;br /&gt;
Running on custom configurations (grids, alternate terrain) should work fine if you take into account the following:&lt;br /&gt;
&lt;br /&gt;
# Make sure that the Z value in the C# code is above the terrain. Instead of 30,you may wish to raise or lower this value. Make sure to also modify 29 and 31, similarly.&lt;br /&gt;
# Change UUID.Zero to your a UUID for an avatar that has build rights on your region. You can replace &amp;quot;UUID.Zero&amp;quot; with &amp;quot;new UUID(&amp;quot;your UUID string here&amp;quot;)&amp;quot;&lt;br /&gt;
# This C# module will place &amp;quot;HELLO&amp;quot; on each region in your grid. If you want to make it so that &amp;quot;HELLO&amp;quot; appears in only one region, try this quick replacement:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
foreach (Scene s in m_scenes)&lt;br /&gt;
    if (s.RegionInfo.RegionName == &amp;quot;YourRegionName&amp;quot;) &lt;br /&gt;
        DoHelloWorld(s);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== What Next ===&lt;br /&gt;
&lt;br /&gt;
This is an [http://www.youtube.com/watch?v=Xxsk9WDYMtg example]&lt;br /&gt;
of 100 continuously moving blocks.&lt;br /&gt;
&lt;br /&gt;
Here are some other suggestions for what you can do next, on your own:&lt;br /&gt;
&lt;br /&gt;
* Change the Color of the prims&lt;br /&gt;
* Complete the example by creating prims for the word WORLD. For the W you probably need our beloved quaternions...&lt;br /&gt;
* Add more regions to your opensim and see what happens&lt;br /&gt;
* Change this module from shared to non-shared and see what happens (nothing much different, one hopes, in this simple case)&lt;br /&gt;
* Be more creative with the movement and make the prims move in circles&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
Remember, every time you make changes to the application code, and you build it, its dll is placed under bin/Release, so you have to copy it to opensim/bin. If you want, you can change the build settings of your application, so that it places the dll directly in opensim/bin.&lt;br /&gt;
&lt;br /&gt;
Have Fun!&lt;br /&gt;
&lt;br /&gt;
=== Tips ===&lt;br /&gt;
&lt;br /&gt;
There is very little documentation about the OpenSim API. One of the reasons for that is that it is still evolving and therefore unstable. A reasonable place to look at the API is http://docs.opensimulator.org/namespaceOpenSim.html; in there, the most interesting place to start is the Region.Environment.Scenes namespace http://docs.opensimulator.org/namespaceOpenSim_1_1Region_1_1Environment_1_1Scenes.html.&lt;br /&gt;
&lt;br /&gt;
The code itself is full of information, if you can cope with looking at too much information. Here's what I do and recommend: when you're developing these modules, have 2 VC# open, one with your application and the other with opensim. My experience with opensim is that the names of things are quite reasonable. So whenever you want something that you don't know exactly how to get, go to the opensim code and make heavy use of the Search functions, especially Edit-&amp;gt;Find and Replace-&amp;gt;Find in Files. VC#, just like Eclipse, also has those wonderful navigation facilities that take you to definitions from calls, etc. Just right-click on things in the code.&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Database_Documentation</id>
		<title>Database Documentation</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Database_Documentation"/>
				<updated>2008-10-08T00:20:00Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: Database Documentation moved to Database:Documentation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Database:Documentation]]&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Database:Documentation</id>
		<title>Database:Documentation</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Database:Documentation"/>
				<updated>2008-10-08T00:19:59Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: Database Documentation moved to Database:Documentation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a running start at documenting the tables in the MySQL instances used on both grid and regions, and describing how they relate to each other in the context of an OpenSim grid.&lt;br /&gt;
&lt;br /&gt;
SQLite is generally not considered apropriate for this use case and will not be covered here; however the table structures are very similar and most of what is here will be useful in that context as well.&lt;br /&gt;
&lt;br /&gt;
Note that some of these tables may be relics, some may be planned for future use, and some may see heavy use but have columns which are relics, not yet properly updated or not yet used at all. Alpha code FTW!! :D&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The instances:&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td align=left&amp;gt;Grid:&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[agents]]&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Records agent (Avatar/User) login details&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[assets]]&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Comprehensive grid assets including textures and avatar inventories&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[avatarappearance]]&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Persistence of the visual appearance of avatars between logins&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[inventoryfolders]]&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Inventory folder-related details *excepting contents*&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Contents are in the [[inventoryitems]] table and point back to [[inventoryfolders]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[inventoryitems]]&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;All inventory item details (including folder associations) except contents - contents are referenced&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;in the [[assets]] table&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[logs]]&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Stores a record of logged events&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[logs_preTimestamp]]&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Old format [[logs]] table? &amp;lt;br&amp;gt;**RELIC - no longer present in dist DB&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;*** it would appear neither of these log tables is currently used ***&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[migrations]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Supports 'automagic' migration to new database formats&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[regions]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Regions known to the grid&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[reservations]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Region registration table. This table has no rows on OSGrid and is likely in place for future functionality &amp;lt;br&amp;gt;**RELIC - no longer present in dist DB&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[userfriends]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Friends list registration&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[users]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Stored user profile&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td align=left&amp;gt;Region:&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[estate_groups]]&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Narrowly purposed at present. Appears to associate UUIDs under an Estate ID&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[estate_managers]]&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Assoicates UUIDs with Estate ID&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[estate_map]]&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Associates Regions with Estates By Estate ID&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[estate_settings]]&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Settings for Estates&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[estate_users]]&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Users allowed on the Estate&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[estateban]]&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Users banned from the Estate&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[land]]&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Parcel Properties&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[landaccesslist]]&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Parcel Access List&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[migrations]]&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Supports 'automagic' upgrade to new database formats&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[primitems]]&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;contains the prim's inventory, which is not at all unlike the avatars'&amp;lt;br&amp;gt;inventory with the exception of folders&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[prims]]&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;All rezzed prim details *excepting shape and contents*&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[primshapes]]&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Properties of all rezzed prims&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[regionban]]&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Per-Region ban list&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[regionsettings]]&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Per-Region settings&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[terrain]]&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Terrain mesh revision history&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Full details of back-store instantiation as performed by the OpenSim software can be found here:&amp;lt;br&amp;gt;&lt;br /&gt;
http://opensimulator.org/svn/opensim/trunk/OpenSim/Data/MySQL/Resources/&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Here is a note concerning the [[initial creation of the MySQL tables]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Questions about this documentation can be directed to daTwitch on #opensim-dev or #osgrid FreeNode IRC or Hiro Protagonist on OSGrid.&amp;lt;br&amp;gt;&lt;br /&gt;
For further clarification of the content ask on #opensim-dev look for sdague, JustinCC or DrSco&lt;br /&gt;
&lt;br /&gt;
[[Category:Database]]&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Database:Users</id>
		<title>Database:Users</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Database:Users"/>
				<updated>2008-10-06T23:33:10Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''users'''	''Stores users profile data''&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(back to [[Database Documentation]])&lt;br /&gt;
&lt;br /&gt;
The current structure of the users table is as follows:&lt;br /&gt;
{| cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
!align=&amp;quot;left&amp;quot;| Field&lt;br /&gt;
!align=&amp;quot;left&amp;quot;| Type&lt;br /&gt;
!align=&amp;quot;left&amp;quot;| Null&lt;br /&gt;
!align=&amp;quot;left&amp;quot;| Key&lt;br /&gt;
!align=&amp;quot;left&amp;quot;| Default&lt;br /&gt;
!align=&amp;quot;left&amp;quot;| Extra&lt;br /&gt;
|-&lt;br /&gt;
| UUID || varchar(36) || NO || PRI || '' ||&lt;br /&gt;
|-&lt;br /&gt;
| username || varchar(32) || NO || UNI || ||&lt;br /&gt;
|-&lt;br /&gt;
| lastname || varchar(32) || NO || UNI || ||&lt;br /&gt;
|-&lt;br /&gt;
| passwordHash || varchar(32) || NO || || ||&lt;br /&gt;
|-&lt;br /&gt;
| passwordSalt || varchar(32) || NO || || ||&lt;br /&gt;
|-&lt;br /&gt;
| homeRegion || bigint(20) unsigned || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| homeLocationX || float || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| homeLocationY || float || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| homeLocationZ || float || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| homeLookAtX || float || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| homeLookAtY || float || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| homeLookAtZ || float || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| created || int(11) || NO || || ||&lt;br /&gt;
|-&lt;br /&gt;
| lastLogin || int(11) || NO || || ||&lt;br /&gt;
|-&lt;br /&gt;
| userInventoryURI || varchar(255) || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| userAssetURI || varchar(255) || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| profileCanDoMask || int(10) unsigned || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| profileWantDoMask || int(10) unsigned || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| profileAboutText || text || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| profileFirstText || text || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| profileImage || varchar(36) || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| profileFirstImage || varchar(36) || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| webLoginKey || varchar(36) || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| homeRegionID || char(36) || NO || || '00000000-0000-0000-0000-000000000000' ||&lt;br /&gt;
|-&lt;br /&gt;
| userFlags || int(11) || NO || || '0' ||&lt;br /&gt;
|-&lt;br /&gt;
| godLevel || int(11) || NO || || '0' ||&lt;br /&gt;
|-&lt;br /&gt;
| customType || varchar(32) || NO || || '' ||&lt;br /&gt;
|-&lt;br /&gt;
| partner || char(36) || NO || || '00000000-0000-0000-0000-000000000000' ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;UUID&lt;br /&gt;
:The unique id of the user&lt;br /&gt;
&lt;br /&gt;
;username&lt;br /&gt;
:The first name of the user&lt;br /&gt;
&lt;br /&gt;
;lastname&lt;br /&gt;
:The last name of the user&lt;br /&gt;
&lt;br /&gt;
;passwordHash&lt;br /&gt;
:The MD5-hash from password and salt&lt;br /&gt;
;passwordSalt&lt;br /&gt;
:The password salt&lt;br /&gt;
&lt;br /&gt;
;homeRegion&lt;br /&gt;
:The region-handle of the home-region&lt;br /&gt;
&lt;br /&gt;
;homeLocationX, homeLocationY, homeLocationZ&lt;br /&gt;
:The home-location within the home-region&lt;br /&gt;
&lt;br /&gt;
;homeLookAtX, homeLookAtY, homeLookAtZ&lt;br /&gt;
:The direction the avatar looks after TP to the home-location&lt;br /&gt;
&lt;br /&gt;
;created&lt;br /&gt;
:Creation timestamp of the profile (in seconds since UNIX-epoch (Jan 1st, 1971))&lt;br /&gt;
&lt;br /&gt;
;lastLogin&lt;br /&gt;
:Time of last login (in seconds since UNIX-epoch)&lt;br /&gt;
&lt;br /&gt;
;userInventoryURI&lt;br /&gt;
:&amp;lt;i style=&amp;quot;color:red;&amp;quot;&amp;gt;needs to be documented&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;userAssetURI&lt;br /&gt;
:&amp;lt;i style=&amp;quot;color:red;&amp;quot;&amp;gt;needs to be documented&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;profileCanDoMask&lt;br /&gt;
:&amp;lt;i style=&amp;quot;color:red;&amp;quot;&amp;gt;needs to be documented&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;profileWantDoMask&lt;br /&gt;
:&amp;lt;i style=&amp;quot;color:red;&amp;quot;&amp;gt;needs to be documented&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;profileAboutText&lt;br /&gt;
:The text in the about field of the profile dialog&lt;br /&gt;
&lt;br /&gt;
;profileFirstText&lt;br /&gt;
:The text in the first-life field of the profile dialog&lt;br /&gt;
&lt;br /&gt;
;profileImage&lt;br /&gt;
:The UUID of the profile image&lt;br /&gt;
&lt;br /&gt;
;profileFirstImage&lt;br /&gt;
:The UUID of the first-life image&lt;br /&gt;
&lt;br /&gt;
;webLoginKey&lt;br /&gt;
:&amp;lt;i style=&amp;quot;color:red;&amp;quot;&amp;gt;needs to be documented&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;homeRegionID&lt;br /&gt;
:The region UUID of the home-region&lt;br /&gt;
&lt;br /&gt;
;userFlags&lt;br /&gt;
:&amp;lt;i style=&amp;quot;color:red;&amp;quot;&amp;gt;needs to be documented&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;godLevel&lt;br /&gt;
:&amp;lt;i style=&amp;quot;color:red;&amp;quot;&amp;gt;needs to be documented&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;customType&lt;br /&gt;
:&amp;lt;i style=&amp;quot;color:red;&amp;quot;&amp;gt;needs to be documented&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;partner&lt;br /&gt;
:The UUID of a user that will appear in the partner field of the profile dialog&lt;br /&gt;
[[Category:Database]]&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Database:Users</id>
		<title>Database:Users</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Database:Users"/>
				<updated>2008-10-06T23:32:15Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''users'''	''Stores users profile data''&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(back to [[Database Documentation]])&lt;br /&gt;
&lt;br /&gt;
The current structure of the users table is as follows:&lt;br /&gt;
{| cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
!align=&amp;quot;left&amp;quot;| Field&lt;br /&gt;
!align=&amp;quot;left&amp;quot;| Type&lt;br /&gt;
!align=&amp;quot;left&amp;quot;| Null&lt;br /&gt;
!align=&amp;quot;left&amp;quot;| Key&lt;br /&gt;
!align=&amp;quot;left&amp;quot;| Default&lt;br /&gt;
!align=&amp;quot;left&amp;quot;| Extra&lt;br /&gt;
|-&lt;br /&gt;
| UUID || varchar(36) || NO || PRI || '' ||&lt;br /&gt;
|-&lt;br /&gt;
| username || varchar(32) || NO || UNI || ||&lt;br /&gt;
|-&lt;br /&gt;
| lastname || varchar(32) || NO || UNI || ||&lt;br /&gt;
|-&lt;br /&gt;
| passwordHash || varchar(32) || NO || || ||&lt;br /&gt;
|-&lt;br /&gt;
| passwordSalt || varchar(32) || NO || || ||&lt;br /&gt;
|-&lt;br /&gt;
| homeRegion || bigint(20) unsigned || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| homeLocationX || float || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| homeLocationY || float || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| homeLocationZ || float || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| homeLookAtX || float || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| homeLookAtY || float || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| homeLookAtZ || float || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| created || int(11) || NO || || ||&lt;br /&gt;
|-&lt;br /&gt;
| lastLogin || int(11) || NO || || ||&lt;br /&gt;
|-&lt;br /&gt;
| userInventoryURI || varchar(255) || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| userAssetURI || varchar(255) || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| profileCanDoMask || int(10) unsigned || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| profileWantDoMask || int(10) unsigned || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| profileAboutText || text || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| profileFirstText || text || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| profileImage || varchar(36) || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| profileFirstImage || varchar(36) || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| webLoginKey || varchar(36) || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| homeRegionID || char(36) || NO || || '00000000-0000-0000-0000-000000000000' ||&lt;br /&gt;
|-&lt;br /&gt;
| userFlags || int(11) || NO || || '0' ||&lt;br /&gt;
|-&lt;br /&gt;
| godLevel || int(11) || NO || || '0' ||&lt;br /&gt;
|-&lt;br /&gt;
| customType || varchar(32) || NO || || '' ||&lt;br /&gt;
|-&lt;br /&gt;
| partner || char(36) || NO || || '00000000-0000-0000-0000-000000000000' ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;UUID&lt;br /&gt;
:The unique id of the user&lt;br /&gt;
&lt;br /&gt;
;username&lt;br /&gt;
:The first name of the user&lt;br /&gt;
&lt;br /&gt;
;lastname&lt;br /&gt;
:The last name of the user&lt;br /&gt;
&lt;br /&gt;
;passwordHash&lt;br /&gt;
:The MD5-hash from password and salt&lt;br /&gt;
;passwordSalt&lt;br /&gt;
:The password salt&lt;br /&gt;
&lt;br /&gt;
;homeRegion&lt;br /&gt;
:The region-handle of the home-region&lt;br /&gt;
&lt;br /&gt;
;homeLocationX, homeLocationY, homeLocationZ&lt;br /&gt;
:The home-location within the home-region&lt;br /&gt;
&lt;br /&gt;
;homeLookAtX, homeLookAtY, homeLookAtZ&lt;br /&gt;
:The direction the avatar looks after TP to the home-location&lt;br /&gt;
&lt;br /&gt;
;created&lt;br /&gt;
:Creation timestamp of the profile (in seconds since UNIX-epoch (Jan 1st, 1971))&lt;br /&gt;
&lt;br /&gt;
;lastLogin&lt;br /&gt;
:Time of last login (in seconds since UNIX-epoch)&lt;br /&gt;
&lt;br /&gt;
;userInventoryURI&lt;br /&gt;
:&amp;lt;i style=&amp;quot;color:red;&amp;quot;&amp;gt;needs to be documented&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;userAssetURI&lt;br /&gt;
:&amp;lt;i style=&amp;quot;color:red;&amp;quot;&amp;gt;needs to be documented&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;profileCanDoMask&lt;br /&gt;
:&amp;lt;i style=&amp;quot;color:red;&amp;quot;&amp;gt;needs to be documented&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;profileWantDoMask&lt;br /&gt;
:&amp;lt;i style=&amp;quot;color:red;&amp;quot;&amp;gt;needs to be documented&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;profileAboutText&lt;br /&gt;
:The text in the about field of the profile dialog&lt;br /&gt;
&lt;br /&gt;
;profileFirstText&lt;br /&gt;
:The text in the first-life field of the profile dialog&lt;br /&gt;
&lt;br /&gt;
;profileImage&lt;br /&gt;
:The UUID of the profile image&lt;br /&gt;
&lt;br /&gt;
;profileFirstImage&lt;br /&gt;
:The UUID of the first-life image&lt;br /&gt;
&lt;br /&gt;
;webLoginKey&lt;br /&gt;
:&amp;lt;i style=&amp;quot;color:red;&amp;quot;&amp;gt;needs to be documented&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;homeRegionID&lt;br /&gt;
:The region UUID of the home-region&lt;br /&gt;
&lt;br /&gt;
;userFlags&lt;br /&gt;
:&amp;lt;i style=&amp;quot;color:red;&amp;quot;&amp;gt;needs to be documented&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;godLevel&lt;br /&gt;
:&amp;lt;i style=&amp;quot;color:red;&amp;quot;&amp;gt;needs to be documented&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;customType&lt;br /&gt;
:&amp;lt;i style=&amp;quot;color:red;&amp;quot;&amp;gt;needs to be documented&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;partner&lt;br /&gt;
:The UUID of an user that will appear in the partner field of the profile dialog&lt;br /&gt;
[[Category:Database]]&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Regions_(database_table)</id>
		<title>Regions (database table)</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Regions_(database_table)"/>
				<updated>2008-10-06T23:31:25Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The regions table contains information concerning all the regions authorized to connect to the grid.&lt;br /&gt;
&lt;br /&gt;
The columns are as follows:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Field&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Type&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Null&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Key&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Default&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Extra&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;uuid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PRI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionHandle&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;bigint(20) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;MUL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionName&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(32)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;MUL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionRecvKey&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(128)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionSendKey&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(128)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionSecret&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(128)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionDataURI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(255)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;serverIP&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(64)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;serverPort&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;serverURI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(255)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;locX&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;locY&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;locZ&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;eastOverrideHandle&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;bigint(20) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;MUL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;westOverrideHandle&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;bigint(20) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;southOverrideHandle&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;bigint(20) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;northOverrideHandle&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;bigint(20) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionAssetURI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(255)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionAssetRecvKey&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(128)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PRI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionAssetSendKey&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(128)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PRI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionUserURI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(255)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionUserRecvKey&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(128)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionUserSendKey&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(128)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionMapTexture&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;serverHttpPort&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;serverRemotingPort&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;owner_uuid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;00000000-0000-0000-0000-000000000000&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;originUUID&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''uuid'''&amp;lt;br&amp;gt;&lt;br /&gt;
The region's unique identifier&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionHandle'''&amp;lt;br&amp;gt;&lt;br /&gt;
more detail req'd&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionName'''&amp;lt;br&amp;gt;&lt;br /&gt;
the region's name as it appears on maps - not necesarily unique&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionRecvKey'''&amp;lt;br&amp;gt;&lt;br /&gt;
the key used by the region server to verify authenticity of communications from other regions&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionSendKey'''&amp;lt;br&amp;gt;&lt;br /&gt;
the key used by the region server when verifying its identity in communications with other regions &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionSecret'''&amp;lt;br&amp;gt;&lt;br /&gt;
more detail req'd&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionDataURI'''&amp;lt;br&amp;gt;&lt;br /&gt;
more detail req'd&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''serverIP'''&amp;lt;br&amp;gt;&lt;br /&gt;
IP address of region server&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''serverPort'''&amp;lt;br&amp;gt;&lt;br /&gt;
connection port for region server&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''serverURI'''&amp;lt;br&amp;gt;&lt;br /&gt;
more detail req'd&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''locX'''&amp;lt;br&amp;gt;&lt;br /&gt;
X coordinate of region on the grid&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''locY'''&amp;lt;br&amp;gt;&lt;br /&gt;
Y coordinate of region on the grid&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''locZ'''&amp;lt;br&amp;gt;&lt;br /&gt;
Z coordinate of region on the grid *grinz*&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''eastOverrideHandle'''&amp;lt;br&amp;gt;&lt;br /&gt;
more detail req'd&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''westOverrideHandle'''&amp;lt;br&amp;gt;&lt;br /&gt;
more detail req'd&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''southOverrideHandle'''&amp;lt;br&amp;gt;&lt;br /&gt;
more detail req'd&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''northOverrideHandle'''&amp;lt;br&amp;gt;&lt;br /&gt;
more detail req'd&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionAssetURI'''&amp;lt;br&amp;gt;&lt;br /&gt;
more detail req'd&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionAssetRecvKey'''&amp;lt;br&amp;gt;&lt;br /&gt;
key used to verify the authenticity of communications received from the asset server&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionAssetSendKey'''&amp;lt;br&amp;gt;&lt;br /&gt;
key used to verify the authenticity of communications sent to the asset server&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionUserURI'''&amp;lt;br&amp;gt;&lt;br /&gt;
more detail req'd&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionUserRecvKey'''&amp;lt;br&amp;gt;&lt;br /&gt;
key used to verify the authenticity of communications received from the user server&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionUserSendKey'''&amp;lt;br&amp;gt;&lt;br /&gt;
key used to verify the authenticity of communications sent to the user server&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionMapTexture'''&amp;lt;br&amp;gt;&lt;br /&gt;
texture for the map as displayed in the client minimap&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''serverHttpPort'''&amp;lt;br&amp;gt;&lt;br /&gt;
port the region will answer on for HTTP requests&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''serverRemotingPort'''&amp;lt;br&amp;gt;&lt;br /&gt;
more detail req'd&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''owner_uuid'''&amp;lt;br&amp;gt;&lt;br /&gt;
UUID of the avatar/account which owns the region&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''originUUID'''&amp;lt;br&amp;gt;&lt;br /&gt;
more detail req'd&lt;br /&gt;
[[Category:Database]]&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Database:Migrations</id>
		<title>Database:Migrations</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Database:Migrations"/>
				<updated>2008-10-06T23:31:06Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This table is of little use to the enduser in any direct fashion, except perhaps to verify the database schema version. It is used by the software to automatically detect the necesity to migrate the database.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The two columns in the table are 'name' and 'version'. 'version' is pretty self-documenting; name a little less so. 'version' is the column of typical interest, though 'name' is likely informative too.&lt;br /&gt;
[[Category:Database]]&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Database:Inventoryitems</id>
		<title>Database:Inventoryitems</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Database:Inventoryitems"/>
				<updated>2008-10-06T23:30:31Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''inventoryitems'''	''Records details with respect to the avatar's personal property (assets)''&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(back to [[Database Documentation]])&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The current structure of the inventoryitems table is as follows:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Field&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Type&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Null&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Key&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Default&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Extra&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;assetID&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;assetType&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;inventoryName&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(64)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;inventoryDescription&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(64)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;inventoryNextPermissions&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;inventoryCurrentPermissions&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;invType&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;CreatorID&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;inventoryBasePermissions&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;inventoryEveryOnePermissions&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;salePrice&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;saleType&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;tinyint(4)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;creationDate&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;groupID&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;00000000-0000-0000-0000-000000000000&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;groupOwned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;tinyint(4)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;flags&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;inventoryID&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PRI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;00000000-0000-0000-0000-000000000000&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;avatarID&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;MUL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;parentFolderId&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;MUL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(back to [[Database Documentation]])&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
'''assetID'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to the related row in the assets table.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''assetType'''&amp;lt;br&amp;gt;&lt;br /&gt;
Type of asset (e.g., script, texture, or shape)&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''inventoryName'''&amp;lt;br&amp;gt;&lt;br /&gt;
Text of the name of the inventory item as it appears in the client inventory interface.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''inventoryDescription'''&amp;lt;br&amp;gt;&lt;br /&gt;
Text of the description of the inventory item as it appears in the client inventory interface.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''inventoryNextPermissions'''&amp;lt;br&amp;gt;&lt;br /&gt;
Permissions that will be applied to the item if/when it is transferred to another avatar.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''inventoryCurrentPermissions'''&amp;lt;br&amp;gt;&lt;br /&gt;
Permissions on the the item for the current posessor of the item.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''invType'''&amp;lt;br&amp;gt;&lt;br /&gt;
Type of inventory item (is this redundant with assetType?)&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''creatorID'''&amp;lt;br&amp;gt;&lt;br /&gt;
UUID of the item's original creator.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''inventoryBasePermissions'''&amp;lt;br&amp;gt;&lt;br /&gt;
Base permissions of the object.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''inventoryEveryOnePermissions'''&amp;lt;br&amp;gt;&lt;br /&gt;
Permissions with respect to everyone but the owner of the item.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''salePrice'''&amp;lt;br&amp;gt;&lt;br /&gt;
Sale price of the item.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''saleType'''&amp;lt;br&amp;gt;&lt;br /&gt;
''presently unknown''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''creationDate'''&amp;lt;br&amp;gt;&lt;br /&gt;
Date the item was created&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''groupID'''&amp;lt;br&amp;gt;&lt;br /&gt;
UUID of the group that the items is 'deeded' to&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''groupOwned'''&amp;lt;br&amp;gt;&lt;br /&gt;
group ownership flags&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''flags'''&amp;lt;br&amp;gt;&lt;br /&gt;
''presently unknown''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''inventoryID'''&amp;lt;br&amp;gt;&lt;br /&gt;
UUID of inventory item&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''avatarID'''&amp;lt;br&amp;gt;&lt;br /&gt;
UUID of item's owner&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''parentFolderID'''&amp;lt;br&amp;gt;&lt;br /&gt;
UUID of the folder said to 'contain' the item&lt;br /&gt;
&amp;lt;hr&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(back to [[Database Documentation]])&amp;lt;br&amp;gt;&lt;br /&gt;
[[Category:Database]]&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Database:Inventoryfolders</id>
		<title>Database:Inventoryfolders</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Database:Inventoryfolders"/>
				<updated>2008-10-06T23:30:07Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''inventoryfolders'''	''Records details concerning the avatar's inventory organisation,''&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(back to [[Database Documentation]])&amp;lt;br&amp;gt;&lt;br /&gt;
specifically the folders. No information about contents of the folders is in this table.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The current structure of the avatar appearance table is as follows:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Field&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Type&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Null&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Key&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Default&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Extra&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;folderName&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(64)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;type&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;smallint(6)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;version&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;folderID&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PRI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;00000000-0000-0000-0000-000000000000&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;agentID&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;MUL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;parentFolderID&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;MUL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(back to [[Database Documentation]])&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''folderName'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Text of the folder's name as it appears in the client inventory interface&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''type'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
numerically encoded inventory folder type (e.g., 'Textures', 'Scripts', or 'Objects')&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''version'''&amp;lt;br&amp;gt;&lt;br /&gt;
''unknown at present''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''folderID'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Uniquely identifies the folder. This facilitates the folder being claimed as a logical container by other folders, or the things in the inventoryitems table that are said to be 'in' the folder.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''agentID'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unique agent identifier - identifies the agent which owns the folder.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''parentFolderID'''&amp;lt;br&amp;gt;&lt;br /&gt;
Unique folder identifier 'claims' the folder which is said to 'contain' this one in the same fashion as things in the inventoryitems table 'claim' the folder said to 'contain' them &lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(back to [[Database Documentation]])&amp;lt;br&amp;gt;&lt;br /&gt;
[[Category:Database]]&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Database:Avatarappearance</id>
		<title>Database:Avatarappearance</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Database:Avatarappearance"/>
				<updated>2008-10-06T23:29:49Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''avatarappearance'''	''Records avatar appearance details, i.e., worn wearables''&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(back to [[Database Documentation]])&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The current structure of the avatar appearance table is as follows:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Field&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Type&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Null&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Key&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Default&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Extra&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Owner&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PRI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Serial&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Visual_Params&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;blob&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Texture&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;blob&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Avatar_Height&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;float&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Body_Item&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Body_Asset&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Skin_Item&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PRI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Skin_Asset&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Hair_Item&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Hair_Asset&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Eyes_Item&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PRI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Eyes_Asset&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;UNI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Shirt_Item&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;UNI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Shirt_Asset&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Pants_Item&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Pants_Asset&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Shoes_Item&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Shoes_Asset&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Socks_Item&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Socks_Asset&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Jacket_Item&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Jacket_Asset&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Gloves_Item&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Gloves_Asset&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Undershirt_Item&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Undershirt_Asset&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Underpants_Item&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Skirt_Asset&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Skirt_Item&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(back to [[Database Documentation]])&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Owner'''&amp;lt;br&amp;gt;&lt;br /&gt;
UUID of avatar's owner.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Serial'''&amp;lt;br&amp;gt;&lt;br /&gt;
Monotonic counter gets incremented by 1 each time the avatar is updated.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Visual_Params'''&amp;lt;br&amp;gt;&lt;br /&gt;
Byte array of some 240 or so numerically descriptive shape parameters describing the look of the avatar.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Texture'''&amp;lt;br&amp;gt;&lt;br /&gt;
The avatar's 'baked' texture.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Avatar_Height'''&amp;lt;br&amp;gt;&lt;br /&gt;
Height of the avatar in meters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Body_Item'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to inventory item for Body&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Body_Asset'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to item in assets for Body&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Skin_Item'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to inventory item for Skin&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Skin_Asset'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to item in assets for Skin&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Hair_Item'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to inventory item for Hair&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Hair_Asset'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to item in assets for Hair&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Eyes_Item'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to inventory item for Eyes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Eyes_Asset'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to item in assets for Eyes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Shirt_Item'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to inventory item for Shirt&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Shirt_Asset'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to item in assets for Shirt&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Pants_Item'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to inventory item for Pants&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Pants_Asset'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to item in assets for Pants&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Shoes_Item'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to inventory item for Shoes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Shoes_Asset'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to item in assets for Shoes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Socks_Item'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to inventory item for Socks&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Socks_Asset'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to item in assets for Socks&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Jacket_Item'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to inventory item for Jacket&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Jacket_Asset'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to item in assets for Jacket&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Gloves_Item'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to inventory item for Gloves&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Gloves_Asset'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to item in assets for Gloves&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Undershirt_Item'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to inventory item for Undershirt&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Undershirt_Asset'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to item in assets for Undershirt&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Underpants_Item'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to inventory item for Underpants&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Underpants_Asset'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to item in assets for Underpants&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Skirt_Asset'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to item in assets for Skirt&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Skirt_Item'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to inventory item for Skirt&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(back to [[Database Documentation]])&amp;lt;br&amp;gt;&lt;br /&gt;
[[Category:Database]]&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Database:Assets</id>
		<title>Database:Assets</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Database:Assets"/>
				<updated>2008-10-06T23:29:25Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''assets'''	''Records all assets''&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(back to [[Database Documentation]])&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;''including textures, notecards, scripts, and avatar parts''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The current structure of the assets table is as follows:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Field&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Type&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Null&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Key&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Default&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Extra&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Name&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(64)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;description&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(64)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;assetType&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;tinyint(4)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;local&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;tinyint(1)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;temporary&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;tinyint(1)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;data&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;longblob&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;id&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PRI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;00000000-0000-0000-0000-000000000000&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(back to [[Database Documentation]])&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
'''name'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Name of the asset as it would appear in inventory&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''description'''&lt;br /&gt;
Asset's description field, as it appears in various client-side editing widgets&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''assetType'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Integer which designates the asset's inventory type&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''local'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Future Use&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''temporary'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Future Use&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''data'''&lt;br /&gt;
This is the blob which contains the actual script, notecard text,&amp;lt;br&amp;gt;&lt;br /&gt;
or binary image (texture) or other data characterized by the invType column&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''id'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
UUID which uniquely identifies the asset within the system&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(back to [[Database Documentation]])&amp;lt;br&amp;gt;&lt;br /&gt;
[[Category:Database]]&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Database:Agents</id>
		<title>Database:Agents</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Database:Agents"/>
				<updated>2008-10-06T23:29:02Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Database]]&lt;br /&gt;
&lt;br /&gt;
'''agents'''	''Records agent (Avatar/User) login details''&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(back to [[Database Documentation]])&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The current structure of the agents table is as follows:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Field&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Type&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Null&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Key&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Default&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Extra&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;UUID&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PRI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;sessionID&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;UNI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;secureSessionID&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;UNI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;agentIP&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(16)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;agentPort&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;agentOnline&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;tinyint(4)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;loginTime&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;logoutTime&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;currentRegion&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;currentHandle&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;bigint(20) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;currentPos&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(64)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(back to [[Database Documentation]])&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
'''UUID'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
The UUID uniquely identifies the avatar associated with the user's account. This master ID 'number' is used for everything the avatar interacts with - it is used to determine permissions, identify belongings, and route messages to and from system and other avatars.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''sessionID'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Future Use&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''SecureSessionID'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Future Use&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''agentIP'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IP address of logged-in agent?&amp;lt;br&amp;gt;&lt;br /&gt;
Does not appear to be updated at this time&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''agentPort'''&lt;br /&gt;
Port the agent is connected on&amp;lt;br&amp;gt;&lt;br /&gt;
Does not appear to be updated at this time&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''agentOnLine'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Status of agent (Online/Offline)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''loginTime'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Time the agent logged in at&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''logoutTime'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Time the agent logged out at&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''currentRegion'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Region UUID for the region the av is presently resident within&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''currentHandle'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Records the grid position of the region the av is presently resident within&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''currentPos'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Records the av's current position with the region in which it is currently resident&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(back to [[Database Documentation]])&amp;lt;br&amp;gt;&lt;br /&gt;
[[Category:Database]]&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Database:Documentation</id>
		<title>Database:Documentation</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Database:Documentation"/>
				<updated>2008-10-06T23:28:29Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a running start at documenting the tables in the MySQL instances used on both grid and regions, and describing how they relate to each other in the context of an OpenSim grid.&lt;br /&gt;
&lt;br /&gt;
SQLite is generally not considered apropriate for this use case and will not be covered here; however the table structures are very similar and most of what is here will be useful in that context as well.&lt;br /&gt;
&lt;br /&gt;
Note that some of these tables may be relics, some may be planned for future use, and some may see heavy use but have columns which are relics, not yet properly updated or not yet used at all. Alpha code FTW!! :D&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The instances:&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td align=left&amp;gt;Grid:&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[agents]]&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Records agent (Avatar/User) login details&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[assets]]&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Comprehensive grid assets including textures and avatar inventories&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[avatarappearance]]&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Persistence of the visual appearance of avatars between logins&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[inventoryfolders]]&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Inventory folder-related details *excepting contents*&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Contents are in the [[inventoryitems]] table and point back to [[inventoryfolders]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[inventoryitems]]&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;All inventory item details (including folder associations) except contents - contents are referenced&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;in the [[assets]] table&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[logs]]&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Stores a record of logged events&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[logs_preTimestamp]]&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Old format [[logs]] table? &amp;lt;br&amp;gt;**RELIC - no longer present in dist DB&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;*** it would appear neither of these log tables is currently used ***&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[migrations]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Supports 'automagic' migration to new database formats&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[regions]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Regions known to the grid&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[reservations]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Region registration table. This table has no rows on OSGrid and is likely in place for future functionality &amp;lt;br&amp;gt;**RELIC - no longer present in dist DB&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[userfriends]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Friends list registration&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[users]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Stored user profile&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td align=left&amp;gt;Region:&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[estate_groups]]&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Narrowly purposed at present. Appears to associate UUIDs under an Estate ID&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[estate_managers]]&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Assoicates UUIDs with Estate ID&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[estate_map]]&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Associates Regions with Estates By Estate ID&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[estate_settings]]&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Settings for Estates&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[estate_users]]&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Users allowed on the Estate&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[estateban]]&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Users banned from the Estate&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[land]]&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Parcel Properties&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[landaccesslist]]&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Parcel Access List&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[migrations]]&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Supports 'automagic' upgrade to new database formats&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[primitems]]&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;contains the prim's inventory, which is not at all unlike the avatars'&amp;lt;br&amp;gt;inventory with the exception of folders&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[prims]]&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;All rezzed prim details *excepting shape and contents*&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[primshapes]]&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Properties of all rezzed prims&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[regionban]]&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Per-Region ban list&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[regionsettings]]&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Per-Region settings&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[terrain]]&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Terrain mesh revision history&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Full details of back-store instantiation as performed by the OpenSim software can be found here:&amp;lt;br&amp;gt;&lt;br /&gt;
http://opensimulator.org/svn/opensim/trunk/OpenSim/Data/MySQL/Resources/&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Here is a note concerning the [[initial creation of the MySQL tables]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Questions about this documentation can be directed to daTwitch on #opensim-dev or #osgrid FreeNode IRC or Hiro Protagonist on OSGrid.&amp;lt;br&amp;gt;&lt;br /&gt;
For further clarification of the content ask on #opensim-dev look for sdague, JustinCC or DrSco&lt;br /&gt;
&lt;br /&gt;
[[Category:Database]]&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Users</id>
		<title>Users</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Users"/>
				<updated>2008-10-06T23:25:57Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: Users moved to Database:Users: tidy up namespace per sdague&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Database:Users]]&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Database:Users</id>
		<title>Database:Users</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Database:Users"/>
				<updated>2008-10-06T23:25:57Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: Users moved to Database:Users: tidy up namespace per sdague&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''users'''	''Stores users profile data''&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(back to [[Database Documentation]])&lt;br /&gt;
&lt;br /&gt;
The current structure of the users table is as follows:&lt;br /&gt;
{| cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
!align=&amp;quot;left&amp;quot;| Field&lt;br /&gt;
!align=&amp;quot;left&amp;quot;| Type&lt;br /&gt;
!align=&amp;quot;left&amp;quot;| Null&lt;br /&gt;
!align=&amp;quot;left&amp;quot;| Key&lt;br /&gt;
!align=&amp;quot;left&amp;quot;| Default&lt;br /&gt;
!align=&amp;quot;left&amp;quot;| Extra&lt;br /&gt;
|-&lt;br /&gt;
| UUID || varchar(36) || NO || PRI || '' ||&lt;br /&gt;
|-&lt;br /&gt;
| username || varchar(32) || NO || UNI || ||&lt;br /&gt;
|-&lt;br /&gt;
| lastname || varchar(32) || NO || UNI || ||&lt;br /&gt;
|-&lt;br /&gt;
| passwordHash || varchar(32) || NO || || ||&lt;br /&gt;
|-&lt;br /&gt;
| passwordSalt || varchar(32) || NO || || ||&lt;br /&gt;
|-&lt;br /&gt;
| homeRegion || bigint(20) unsigned || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| homeLocationX || float || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| homeLocationY || float || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| homeLocationZ || float || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| homeLookAtX || float || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| homeLookAtY || float || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| homeLookAtZ || float || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| created || int(11) || NO || || ||&lt;br /&gt;
|-&lt;br /&gt;
| lastLogin || int(11) || NO || || ||&lt;br /&gt;
|-&lt;br /&gt;
| userInventoryURI || varchar(255) || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| userAssetURI || varchar(255) || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| profileCanDoMask || int(10) unsigned || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| profileWantDoMask || int(10) unsigned || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| profileAboutText || text || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| profileFirstText || text || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| profileImage || varchar(36) || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| profileFirstImage || varchar(36) || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| webLoginKey || varchar(36) || YES || || NULL ||&lt;br /&gt;
|-&lt;br /&gt;
| homeRegionID || char(36) || NO || || '00000000-0000-0000-0000-000000000000' ||&lt;br /&gt;
|-&lt;br /&gt;
| userFlags || int(11) || NO || || '0' ||&lt;br /&gt;
|-&lt;br /&gt;
| godLevel || int(11) || NO || || '0' ||&lt;br /&gt;
|-&lt;br /&gt;
| customType || varchar(32) || NO || || '' ||&lt;br /&gt;
|-&lt;br /&gt;
| partner || char(36) || NO || || '00000000-0000-0000-0000-000000000000' ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;UUID&lt;br /&gt;
:The unique id of the user&lt;br /&gt;
&lt;br /&gt;
;username&lt;br /&gt;
:The first name of the user&lt;br /&gt;
&lt;br /&gt;
;lastname&lt;br /&gt;
:The last name of the user&lt;br /&gt;
&lt;br /&gt;
;passwordHash&lt;br /&gt;
:The MD5-hash from password and salt&lt;br /&gt;
;passwordSalt&lt;br /&gt;
:The password salt&lt;br /&gt;
&lt;br /&gt;
;homeRegion&lt;br /&gt;
:The region-handle of the home-region&lt;br /&gt;
&lt;br /&gt;
;homeLocationX, homeLocationY, homeLocationZ&lt;br /&gt;
:The home-location within the home-region&lt;br /&gt;
&lt;br /&gt;
;homeLookAtX, homeLookAtY, homeLookAtZ&lt;br /&gt;
:The direction the avatar looks after TP to the home-location&lt;br /&gt;
&lt;br /&gt;
;created&lt;br /&gt;
:Creation timestamp of the profile (in seconds since UNIX-epoch (Jan 1st, 1971))&lt;br /&gt;
&lt;br /&gt;
;lastLogin&lt;br /&gt;
:Time of last login (in seconds since UNIX-epoch)&lt;br /&gt;
&lt;br /&gt;
;userInventoryURI&lt;br /&gt;
:&amp;lt;i style=&amp;quot;color:red;&amp;quot;&amp;gt;needs to be documented&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;userAssetURI&lt;br /&gt;
:&amp;lt;i style=&amp;quot;color:red;&amp;quot;&amp;gt;needs to be documented&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;profileCanDoMask&lt;br /&gt;
:&amp;lt;i style=&amp;quot;color:red;&amp;quot;&amp;gt;needs to be documented&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;profileWantDoMask&lt;br /&gt;
:&amp;lt;i style=&amp;quot;color:red;&amp;quot;&amp;gt;needs to be documented&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;profileAboutText&lt;br /&gt;
:The text in the about field of the profile dialog&lt;br /&gt;
&lt;br /&gt;
;profileFirstText&lt;br /&gt;
:The text in the first-life field of the profile dialog&lt;br /&gt;
&lt;br /&gt;
;profileImage&lt;br /&gt;
:The UUID of the profile image&lt;br /&gt;
&lt;br /&gt;
;profileFirstImage&lt;br /&gt;
:The UUID of the first-life image&lt;br /&gt;
&lt;br /&gt;
;webLoginKey&lt;br /&gt;
:&amp;lt;i style=&amp;quot;color:red;&amp;quot;&amp;gt;needs to be documented&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;homeRegionID&lt;br /&gt;
:The region UUID of the home-region&lt;br /&gt;
&lt;br /&gt;
;userFlags&lt;br /&gt;
:&amp;lt;i style=&amp;quot;color:red;&amp;quot;&amp;gt;needs to be documented&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;godLevel&lt;br /&gt;
:&amp;lt;i style=&amp;quot;color:red;&amp;quot;&amp;gt;needs to be documented&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;customType&lt;br /&gt;
:&amp;lt;i style=&amp;quot;color:red;&amp;quot;&amp;gt;needs to be documented&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;partner&lt;br /&gt;
:The UUID of an user that will appear in the partner field of the profile dialog&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Regions_(disambiguation)</id>
		<title>Regions (disambiguation)</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Regions_(disambiguation)"/>
				<updated>2008-10-06T23:25:08Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: Regions moved to Database:Regions: tidy up namespace per sdague&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Database:Regions]]&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Regions_(database_table)</id>
		<title>Regions (database table)</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Regions_(database_table)"/>
				<updated>2008-10-06T23:25:08Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: Regions moved to Database:Regions: tidy up namespace per sdague&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The regions table contains information concerning all the regions authorized to connect to the grid.&lt;br /&gt;
&lt;br /&gt;
The columns are as follows:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Field&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Type&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Null&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Key&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Default&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Extra&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;uuid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PRI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionHandle&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;bigint(20) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;MUL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionName&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(32)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;MUL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionRecvKey&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(128)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionSendKey&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(128)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionSecret&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(128)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionDataURI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(255)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;serverIP&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(64)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;serverPort&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;serverURI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(255)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;locX&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;locY&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;locZ&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;eastOverrideHandle&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;bigint(20) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;MUL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;westOverrideHandle&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;bigint(20) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;southOverrideHandle&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;bigint(20) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;northOverrideHandle&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;bigint(20) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionAssetURI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(255)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionAssetRecvKey&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(128)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PRI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionAssetSendKey&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(128)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PRI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionUserURI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(255)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionUserRecvKey&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(128)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionUserSendKey&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(128)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionMapTexture&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;serverHttpPort&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;serverRemotingPort&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;owner_uuid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;00000000-0000-0000-0000-000000000000&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;originUUID&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''uuid'''&amp;lt;br&amp;gt;&lt;br /&gt;
The region's unique identifier&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionHandle'''&amp;lt;br&amp;gt;&lt;br /&gt;
more detail req'd&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionName'''&amp;lt;br&amp;gt;&lt;br /&gt;
the region's name as it appears on maps - not necesarily unique&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionRecvKey'''&amp;lt;br&amp;gt;&lt;br /&gt;
the key used by the region server to verify authenticity of communications from other regions&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionSendKey'''&amp;lt;br&amp;gt;&lt;br /&gt;
the key used by the region server when verifying its identity in communications with other regions &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionSecret'''&amp;lt;br&amp;gt;&lt;br /&gt;
more detail req'd&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionDataURI'''&amp;lt;br&amp;gt;&lt;br /&gt;
more detail req'd&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''serverIP'''&amp;lt;br&amp;gt;&lt;br /&gt;
IP address of region server&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''serverPort'''&amp;lt;br&amp;gt;&lt;br /&gt;
connection port for region server&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''serverURI'''&amp;lt;br&amp;gt;&lt;br /&gt;
more detail req'd&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''locX'''&amp;lt;br&amp;gt;&lt;br /&gt;
X coordinate of region on the grid&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''locY'''&amp;lt;br&amp;gt;&lt;br /&gt;
Y coordinate of region on the grid&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''locZ'''&amp;lt;br&amp;gt;&lt;br /&gt;
Z coordinate of region on the grid *grinz*&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''eastOverrideHandle'''&amp;lt;br&amp;gt;&lt;br /&gt;
more detail req'd&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''westOverrideHandle'''&amp;lt;br&amp;gt;&lt;br /&gt;
more detail req'd&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''southOverrideHandle'''&amp;lt;br&amp;gt;&lt;br /&gt;
more detail req'd&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''northOverrideHandle'''&amp;lt;br&amp;gt;&lt;br /&gt;
more detail req'd&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionAssetURI'''&amp;lt;br&amp;gt;&lt;br /&gt;
more detail req'd&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionAssetRecvKey'''&amp;lt;br&amp;gt;&lt;br /&gt;
key used to verify the authenticity of communications received from the asset server&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionAssetSendKey'''&amp;lt;br&amp;gt;&lt;br /&gt;
key used to verify the authenticity of communications sent to the asset server&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionUserURI'''&amp;lt;br&amp;gt;&lt;br /&gt;
more detail req'd&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionUserRecvKey'''&amp;lt;br&amp;gt;&lt;br /&gt;
key used to verify the authenticity of communications received from the user server&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionUserSendKey'''&amp;lt;br&amp;gt;&lt;br /&gt;
key used to verify the authenticity of communications sent to the user server&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionMapTexture'''&amp;lt;br&amp;gt;&lt;br /&gt;
texture for the map as displayed in the client minimap&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''serverHttpPort'''&amp;lt;br&amp;gt;&lt;br /&gt;
port the region will answer on for HTTP requests&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''serverRemotingPort'''&amp;lt;br&amp;gt;&lt;br /&gt;
more detail req'd&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''owner_uuid'''&amp;lt;br&amp;gt;&lt;br /&gt;
UUID of the avatar/account which owns the region&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''originUUID'''&amp;lt;br&amp;gt;&lt;br /&gt;
more detail req'd&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Database:Migrations</id>
		<title>Database:Migrations</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Database:Migrations"/>
				<updated>2008-10-06T23:24:41Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: Migrations moved to Database:Migrations: tidy up namespace per sdague&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This table is of little use to the enduser in any direct fashion, except perhaps to verify the database schema version. It is used by the software to automatically detect the necesity to migrate the database.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The two columns in the table are 'name' and 'version'. 'version' is pretty self-documenting; name a little less so. 'version' is the column of typical interest, though 'name' is likely informative too.&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Migrations</id>
		<title>Migrations</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Migrations"/>
				<updated>2008-10-06T23:24:41Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: Migrations moved to Database:Migrations: tidy up namespace per sdague&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Database:Migrations]]&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Database:Inventoryitems</id>
		<title>Database:Inventoryitems</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Database:Inventoryitems"/>
				<updated>2008-10-06T23:23:46Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: Inventoryitems moved to Database:Inventoryitems: tidy up namespace per sdague&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''inventoryitems'''	''Records details with respect to the avatar's personal property (assets)''&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(back to [[Database Documentation]])&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The current structure of the inventoryitems table is as follows:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Field&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Type&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Null&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Key&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Default&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Extra&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;assetID&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;assetType&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;inventoryName&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(64)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;inventoryDescription&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(64)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;inventoryNextPermissions&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;inventoryCurrentPermissions&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;invType&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;CreatorID&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;inventoryBasePermissions&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;inventoryEveryOnePermissions&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;salePrice&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;saleType&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;tinyint(4)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;creationDate&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;groupID&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;00000000-0000-0000-0000-000000000000&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;groupOwned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;tinyint(4)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;flags&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;inventoryID&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PRI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;00000000-0000-0000-0000-000000000000&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;avatarID&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;MUL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;parentFolderId&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;MUL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(back to [[Database Documentation]])&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
'''assetID'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to the related row in the assets table.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''assetType'''&amp;lt;br&amp;gt;&lt;br /&gt;
Type of asset (e.g., script, texture, or shape)&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''inventoryName'''&amp;lt;br&amp;gt;&lt;br /&gt;
Text of the name of the inventory item as it appears in the client inventory interface.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''inventoryDescription'''&amp;lt;br&amp;gt;&lt;br /&gt;
Text of the description of the inventory item as it appears in the client inventory interface.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''inventoryNextPermissions'''&amp;lt;br&amp;gt;&lt;br /&gt;
Permissions that will be applied to the item if/when it is transferred to another avatar.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''inventoryCurrentPermissions'''&amp;lt;br&amp;gt;&lt;br /&gt;
Permissions on the the item for the current posessor of the item.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''invType'''&amp;lt;br&amp;gt;&lt;br /&gt;
Type of inventory item (is this redundant with assetType?)&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''creatorID'''&amp;lt;br&amp;gt;&lt;br /&gt;
UUID of the item's original creator.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''inventoryBasePermissions'''&amp;lt;br&amp;gt;&lt;br /&gt;
Base permissions of the object.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''inventoryEveryOnePermissions'''&amp;lt;br&amp;gt;&lt;br /&gt;
Permissions with respect to everyone but the owner of the item.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''salePrice'''&amp;lt;br&amp;gt;&lt;br /&gt;
Sale price of the item.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''saleType'''&amp;lt;br&amp;gt;&lt;br /&gt;
''presently unknown''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''creationDate'''&amp;lt;br&amp;gt;&lt;br /&gt;
Date the item was created&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''groupID'''&amp;lt;br&amp;gt;&lt;br /&gt;
UUID of the group that the items is 'deeded' to&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''groupOwned'''&amp;lt;br&amp;gt;&lt;br /&gt;
group ownership flags&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''flags'''&amp;lt;br&amp;gt;&lt;br /&gt;
''presently unknown''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''inventoryID'''&amp;lt;br&amp;gt;&lt;br /&gt;
UUID of inventory item&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''avatarID'''&amp;lt;br&amp;gt;&lt;br /&gt;
UUID of item's owner&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''parentFolderID'''&amp;lt;br&amp;gt;&lt;br /&gt;
UUID of the folder said to 'contain' the item&lt;br /&gt;
&amp;lt;hr&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(back to [[Database Documentation]])&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Inventoryitems</id>
		<title>Inventoryitems</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Inventoryitems"/>
				<updated>2008-10-06T23:23:46Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: Inventoryitems moved to Database:Inventoryitems: tidy up namespace per sdague&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Database:Inventoryitems]]&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Inventoryfolders</id>
		<title>Inventoryfolders</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Inventoryfolders"/>
				<updated>2008-10-06T23:23:10Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: Inventoryfolders moved to Database:Inventoryfolders: tidy up namespace per sdague&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Database:Inventoryfolders]]&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Database:Inventoryfolders</id>
		<title>Database:Inventoryfolders</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Database:Inventoryfolders"/>
				<updated>2008-10-06T23:23:09Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: Inventoryfolders moved to Database:Inventoryfolders: tidy up namespace per sdague&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''inventoryfolders'''	''Records details concerning the avatar's inventory organisation,''&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(back to [[Database Documentation]])&amp;lt;br&amp;gt;&lt;br /&gt;
specifically the folders. No information about contents of the folders is in this table.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The current structure of the avatar appearance table is as follows:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Field&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Type&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Null&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Key&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Default&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Extra&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;folderName&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(64)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;type&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;smallint(6)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;version&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;folderID&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PRI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;00000000-0000-0000-0000-000000000000&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;agentID&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;MUL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;parentFolderID&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;MUL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(back to [[Database Documentation]])&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''folderName'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Text of the folder's name as it appears in the client inventory interface&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''type'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
numerically encoded inventory folder type (e.g., 'Textures', 'Scripts', or 'Objects')&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''version'''&amp;lt;br&amp;gt;&lt;br /&gt;
''unknown at present''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''folderID'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Uniquely identifies the folder. This facilitates the folder being claimed as a logical container by other folders, or the things in the inventoryitems table that are said to be 'in' the folder.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''agentID'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Unique agent identifier - identifies the agent which owns the folder.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''parentFolderID'''&amp;lt;br&amp;gt;&lt;br /&gt;
Unique folder identifier 'claims' the folder which is said to 'contain' this one in the same fashion as things in the inventoryitems table 'claim' the folder said to 'contain' them &lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(back to [[Database Documentation]])&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Database:Avatarappearance</id>
		<title>Database:Avatarappearance</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Database:Avatarappearance"/>
				<updated>2008-10-06T23:22:31Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: Avatarappearance moved to Database:Avatarappearance: tidy up namespace per sdague&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''avatarappearance'''	''Records avatar appearance details, i.e., worn wearables''&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(back to [[Database Documentation]])&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The current structure of the avatar appearance table is as follows:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Field&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Type&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Null&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Key&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Default&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Extra&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Owner&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PRI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Serial&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Visual_Params&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;blob&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Texture&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;blob&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Avatar_Height&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;float&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Body_Item&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Body_Asset&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Skin_Item&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PRI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Skin_Asset&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Hair_Item&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Hair_Asset&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Eyes_Item&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PRI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Eyes_Asset&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;UNI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Shirt_Item&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;UNI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Shirt_Asset&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Pants_Item&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Pants_Asset&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Shoes_Item&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Shoes_Asset&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Socks_Item&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Socks_Asset&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Jacket_Item&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Jacket_Asset&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Gloves_Item&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Gloves_Asset&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Undershirt_Item&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Undershirt_Asset&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Underpants_Item&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Skirt_Asset&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Skirt_Item&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(back to [[Database Documentation]])&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Owner'''&amp;lt;br&amp;gt;&lt;br /&gt;
UUID of avatar's owner.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Serial'''&amp;lt;br&amp;gt;&lt;br /&gt;
Monotonic counter gets incremented by 1 each time the avatar is updated.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Visual_Params'''&amp;lt;br&amp;gt;&lt;br /&gt;
Byte array of some 240 or so numerically descriptive shape parameters describing the look of the avatar.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Texture'''&amp;lt;br&amp;gt;&lt;br /&gt;
The avatar's 'baked' texture.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Avatar_Height'''&amp;lt;br&amp;gt;&lt;br /&gt;
Height of the avatar in meters.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Body_Item'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to inventory item for Body&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Body_Asset'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to item in assets for Body&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Skin_Item'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to inventory item for Skin&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Skin_Asset'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to item in assets for Skin&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Hair_Item'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to inventory item for Hair&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Hair_Asset'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to item in assets for Hair&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Eyes_Item'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to inventory item for Eyes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Eyes_Asset'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to item in assets for Eyes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Shirt_Item'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to inventory item for Shirt&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Shirt_Asset'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to item in assets for Shirt&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Pants_Item'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to inventory item for Pants&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Pants_Asset'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to item in assets for Pants&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Shoes_Item'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to inventory item for Shoes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Shoes_Asset'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to item in assets for Shoes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Socks_Item'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to inventory item for Socks&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Socks_Asset'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to item in assets for Socks&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Jacket_Item'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to inventory item for Jacket&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Jacket_Asset'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to item in assets for Jacket&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Gloves_Item'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to inventory item for Gloves&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Gloves_Asset'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to item in assets for Gloves&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Undershirt_Item'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to inventory item for Undershirt&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Undershirt_Asset'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to item in assets for Undershirt&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Underpants_Item'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to inventory item for Underpants&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Underpants_Asset'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to item in assets for Underpants&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Skirt_Asset'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to item in assets for Skirt&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Skirt_Item'''&amp;lt;br&amp;gt;&lt;br /&gt;
Refers to inventory item for Skirt&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(back to [[Database Documentation]])&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Avatarappearance</id>
		<title>Avatarappearance</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Avatarappearance"/>
				<updated>2008-10-06T23:22:31Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: Avatarappearance moved to Database:Avatarappearance: tidy up namespace per sdague&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Database:Avatarappearance]]&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Database:Assets</id>
		<title>Database:Assets</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Database:Assets"/>
				<updated>2008-10-06T23:21:46Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: Assets moved to Database:Assets: tidy up namespace per sdague&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''assets'''	''Records all assets''&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(back to [[Database Documentation]])&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;''including textures, notecards, scripts, and avatar parts''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The current structure of the assets table is as follows:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Field&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Type&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Null&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Key&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Default&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Extra&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Name&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(64)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;description&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(64)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;assetType&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;tinyint(4)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;local&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;tinyint(1)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;temporary&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;tinyint(1)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;data&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;longblob&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;id&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;char(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PRI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;00000000-0000-0000-0000-000000000000&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(back to [[Database Documentation]])&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
'''name'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Name of the asset as it would appear in inventory&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''description'''&lt;br /&gt;
Asset's description field, as it appears in various client-side editing widgets&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''assetType'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Integer which designates the asset's inventory type&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''local'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Future Use&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''temporary'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Future Use&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''data'''&lt;br /&gt;
This is the blob which contains the actual script, notecard text,&amp;lt;br&amp;gt;&lt;br /&gt;
or binary image (texture) or other data characterized by the invType column&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''id'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
UUID which uniquely identifies the asset within the system&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(back to [[Database Documentation]])&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Assets</id>
		<title>Assets</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Assets"/>
				<updated>2008-10-06T23:21:46Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: Assets moved to Database:Assets: tidy up namespace per sdague&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Database:Assets]]&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Agents</id>
		<title>Agents</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Agents"/>
				<updated>2008-10-06T23:20:48Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: Agents moved to Database:Agents: tidy up namespace per sdague&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Database:Agents]]&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Database:Agents</id>
		<title>Database:Agents</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Database:Agents"/>
				<updated>2008-10-06T23:20:47Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: Agents moved to Database:Agents: tidy up namespace per sdague&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Database]]&lt;br /&gt;
&lt;br /&gt;
'''agents'''	''Records agent (Avatar/User) login details''&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(back to [[Database Documentation]])&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The current structure of the agents table is as follows:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Field&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Type&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Null&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Key&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Default&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Extra&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;UUID&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PRI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;sessionID&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;UNI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;secureSessionID&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;UNI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;agentIP&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(16)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;agentPort&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;agentOnline&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;tinyint(4)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;loginTime&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;logoutTime&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(11)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;currentRegion&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;currentHandle&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;bigint(20) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;currentPos&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(64)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(back to [[Database Documentation]])&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
'''UUID'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
The UUID uniquely identifies the avatar associated with the user's account. This master ID 'number' is used for everything the avatar interacts with - it is used to determine permissions, identify belongings, and route messages to and from system and other avatars.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''sessionID'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Future Use&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''SecureSessionID'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
For Future Use&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''agentIP'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
IP address of logged-in agent?&amp;lt;br&amp;gt;&lt;br /&gt;
Does not appear to be updated at this time&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''agentPort'''&lt;br /&gt;
Port the agent is connected on&amp;lt;br&amp;gt;&lt;br /&gt;
Does not appear to be updated at this time&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''agentOnLine'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Status of agent (Online/Offline)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''loginTime'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Time the agent logged in at&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''logoutTime'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Time the agent logged out at&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''currentRegion'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Region UUID for the region the av is presently resident within&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''currentHandle'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Records the grid position of the region the av is presently resident within&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''currentPos'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Records the av's current position with the region in which it is currently resident&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(back to [[Database Documentation]])&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Regions_(database_table)</id>
		<title>Regions (database table)</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Regions_(database_table)"/>
				<updated>2008-08-07T17:40:41Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The regions table contains information concerning all the regions authorized to connect to the grid.&lt;br /&gt;
&lt;br /&gt;
The columns are as follows:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Field&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Type&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Null&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Key&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Default&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Extra&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;uuid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PRI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionHandle&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;bigint(20) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;MUL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionName&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(32)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;MUL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionRecvKey&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(128)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionSendKey&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(128)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionSecret&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(128)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionDataURI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(255)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;serverIP&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(64)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;serverPort&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;serverURI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(255)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;locX&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;locY&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;locZ&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;eastOverrideHandle&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;bigint(20) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;MUL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;westOverrideHandle&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;bigint(20) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;southOverrideHandle&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;bigint(20) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;northOverrideHandle&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;bigint(20) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionAssetURI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(255)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionAssetRecvKey&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(128)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PRI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionAssetSendKey&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(128)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PRI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionUserURI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(255)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionUserRecvKey&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(128)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionUserSendKey&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(128)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionMapTexture&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;serverHttpPort&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;serverRemotingPort&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;owner_uuid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;00000000-0000-0000-0000-000000000000&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;originUUID&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''uuid'''&amp;lt;br&amp;gt;&lt;br /&gt;
The region's unique identifier&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionHandle'''&amp;lt;br&amp;gt;&lt;br /&gt;
more detail req'd&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionName'''&amp;lt;br&amp;gt;&lt;br /&gt;
the region's name as it appears on maps - not necesarily unique&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionRecvKey'''&amp;lt;br&amp;gt;&lt;br /&gt;
the key used by the region server to verify authenticity of communications from other regions&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionSendKey'''&amp;lt;br&amp;gt;&lt;br /&gt;
the key used by the region server when verifying its identity in communications with other regions &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionSecret'''&amp;lt;br&amp;gt;&lt;br /&gt;
more detail req'd&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionDataURI'''&amp;lt;br&amp;gt;&lt;br /&gt;
more detail req'd&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''serverIP'''&amp;lt;br&amp;gt;&lt;br /&gt;
IP address of region server&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''serverPort'''&amp;lt;br&amp;gt;&lt;br /&gt;
connection port for region server&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''serverURI'''&amp;lt;br&amp;gt;&lt;br /&gt;
more detail req'd&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''locX'''&amp;lt;br&amp;gt;&lt;br /&gt;
X coordinate of region on the grid&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''locY'''&amp;lt;br&amp;gt;&lt;br /&gt;
Y coordinate of region on the grid&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''locZ'''&amp;lt;br&amp;gt;&lt;br /&gt;
Z coordinate of region on the grid *grinz*&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''eastOverrideHandle'''&amp;lt;br&amp;gt;&lt;br /&gt;
more detail req'd&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''westOverrideHandle'''&amp;lt;br&amp;gt;&lt;br /&gt;
more detail req'd&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''southOverrideHandle'''&amp;lt;br&amp;gt;&lt;br /&gt;
more detail req'd&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''northOverrideHandle'''&amp;lt;br&amp;gt;&lt;br /&gt;
more detail req'd&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionAssetURI'''&amp;lt;br&amp;gt;&lt;br /&gt;
more detail req'd&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionAssetRecvKey'''&amp;lt;br&amp;gt;&lt;br /&gt;
key used to verify the authenticity of communications received from the asset server&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionAssetSendKey'''&amp;lt;br&amp;gt;&lt;br /&gt;
key used to verify the authenticity of communications sent to the asset server&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionUserURI'''&amp;lt;br&amp;gt;&lt;br /&gt;
more detail req'd&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionUserRecvKey'''&amp;lt;br&amp;gt;&lt;br /&gt;
key used to verify the authenticity of communications received from the user server&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionUserSendKey'''&amp;lt;br&amp;gt;&lt;br /&gt;
key used to verify the authenticity of communications sent to the user server&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionMapTexture'''&amp;lt;br&amp;gt;&lt;br /&gt;
texture for the map as displayed in the client minimap&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''serverHttpPort'''&amp;lt;br&amp;gt;&lt;br /&gt;
port the region will answer on for HTTP requests&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''serverRemotingPort'''&amp;lt;br&amp;gt;&lt;br /&gt;
more detail req'd&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''owner_uuid'''&amp;lt;br&amp;gt;&lt;br /&gt;
UUID of the avatar/account which owns the region&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''originUUID'''&amp;lt;br&amp;gt;&lt;br /&gt;
more detail req'd&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Regions_(database_table)</id>
		<title>Regions (database table)</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Regions_(database_table)"/>
				<updated>2008-08-07T17:27:48Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The regions table contains information concerning all the regions authorized to connect to the grid.&lt;br /&gt;
&lt;br /&gt;
The columns are as follows:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Field&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Type&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Null&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Key&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Default&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Extra&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;uuid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PRI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionHandle&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;bigint(20) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;MUL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionName&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(32)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;MUL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionRecvKey&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(128)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionSendKey&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(128)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionSecret&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(128)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionDataURI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(255)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;serverIP&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(64)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;serverPort&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;serverURI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(255)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;locX&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;locY&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;locZ&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;eastOverrideHandle&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;bigint(20) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;MUL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;westOverrideHandle&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;bigint(20) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;southOverrideHandle&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;bigint(20) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;northOverrideHandle&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;bigint(20) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionAssetURI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(255)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionAssetRecvKey&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(128)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PRI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionAssetSendKey&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(128)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PRI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionUserURI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(255)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionUserRecvKey&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(128)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionUserSendKey&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(128)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionMapTexture&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;serverHttpPort&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;serverRemotingPort&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;owner_uuid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;00000000-0000-0000-0000-000000000000&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;originUUID&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''uuid'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionHandle'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionName'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionRecvKey'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionSendKey'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionSecret'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionDataURI'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''serverIP'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''serverPort'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''serverURI'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''locX'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''locY'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''locZ'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''eastOverrideHandle'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''westOverrideHandle'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''southOverrideHandle'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''northOverrideHandle'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionAssetURI'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionAssetRecvKey'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionAssetSendKey'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionUserURI'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionUserRecvKey'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionUserSendKey'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''regionMapTexture'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''serverHttpPort'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''serverRemotingPort'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''owner_uuid'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''originUUID'''&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Regions_(database_table)</id>
		<title>Regions (database table)</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Regions_(database_table)"/>
				<updated>2008-08-07T17:16:18Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The regions table contains information concerning all the regions authorized to connect to the grid.&lt;br /&gt;
&lt;br /&gt;
The columns are as follows:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Field&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Type&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Null&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Key&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Default&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Extra&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;uuid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PRI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionHandle&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;bigint(20) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;MUL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionName&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(32)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;MUL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionRecvKey&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(128)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionSendKey&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(128)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionSecret&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(128)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionDataURI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(255)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;serverIP&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(64)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;serverPort&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;serverURI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(255)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;locX&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;locY&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;locZ&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;eastOverrideHandle&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;bigint(20) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;MUL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;westOverrideHandle&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;bigint(20) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;southOverrideHandle&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;bigint(20) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;northOverrideHandle&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;bigint(20) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionAssetURI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(255)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionAssetRecvKey&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(128)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PRI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionAssetSendKey&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(128)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PRI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionUserURI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(255)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionUserRecvKey&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(128)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionUserSendKey&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(128)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionMapTexture&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;serverHttpPort&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;serverRemotingPort&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;owner_uuid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;00000000-0000-0000-0000-000000000000&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;originUUID&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
uuid&lt;br /&gt;
regionHandle&lt;br /&gt;
regionName&lt;br /&gt;
regionRecvKey&lt;br /&gt;
regionSendKey&lt;br /&gt;
regionSecret&lt;br /&gt;
regionDataURI&lt;br /&gt;
serverIP&lt;br /&gt;
serverPort&lt;br /&gt;
serverURI&lt;br /&gt;
locX&lt;br /&gt;
locY&lt;br /&gt;
locZ&lt;br /&gt;
eastOverrideHandle&lt;br /&gt;
westOverrideHandle&lt;br /&gt;
southOverrideHandle&lt;br /&gt;
northOverrideHandle&lt;br /&gt;
regionAssetURI&lt;br /&gt;
regionAssetRecvKey&lt;br /&gt;
regionAssetSendKey&lt;br /&gt;
regionUserURI&lt;br /&gt;
regionUserRecvKey&lt;br /&gt;
regionUserSendKey&lt;br /&gt;
regionMapTexture&lt;br /&gt;
serverHttpPort&lt;br /&gt;
serverRemotingPort&lt;br /&gt;
owner_uuid&lt;br /&gt;
originUUID&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Regions_(database_table)</id>
		<title>Regions (database table)</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Regions_(database_table)"/>
				<updated>2008-08-07T17:12:47Z</updated>
		
		<summary type="html">&lt;p&gt;Twitch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The regions table contains information concerning all the regions authorized to connect to the grid.&lt;br /&gt;
&lt;br /&gt;
The columns are as follows:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Field&amp;lt;br&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Type&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Null&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Key&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Default&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Extra&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;uuid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PRI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionHandle&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;bigint(20) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;MUL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionName&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(32)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;MUL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionRecvKey&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(128)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionSendKey&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(128)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionSecret&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(128)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionDataURI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(255)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;serverIP&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(64)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;serverPort&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;serverURI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(255)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;locX&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;locY&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;locZ&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;eastOverrideHandle&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;bigint(20) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;MUL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;westOverrideHandle&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;bigint(20) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;southOverrideHandle&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;bigint(20) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;northOverrideHandle&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;bigint(20) unsigned&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionAssetURI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(255)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionAssetRecvKey&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(128)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PRI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionAssetSendKey&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(128)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PRI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionUserURI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(255)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionUserRecvKey&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(128)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionUserSendKey&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(128)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;regionMapTexture&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;serverHttpPort&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;serverRemotingPort&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;int(10)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;owner_uuid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;00000000-0000-0000-0000-000000000000&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;originUUID&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;varchar(36)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;YES&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;NULL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Twitch</name></author>	</entry>

	</feed>