<?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=Kira+Komarov</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=Kira+Komarov"/>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Special:Contributions/Kira_Komarov"/>
		<updated>2026-05-06T14:21:02Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.19.9</generator>

	<entry>
		<id>http://opensimulator.org/wiki/RemoteAdmin:admin_authenticate_user</id>
		<title>RemoteAdmin:admin authenticate user</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RemoteAdmin:admin_authenticate_user"/>
				<updated>2013-11-22T14:42:38Z</updated>
		
		<summary type="html">&lt;p&gt;Kira Komarov: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''admin_authenticate_user''' remotely allows to authenticate an user remotely. This feature is part of the development branch, after the 0.7.6 OpenSim release.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Enabling admin_authenticate_user ===&lt;br /&gt;
If not all functions are enabled, use admin_authenticate_user to enable the function in the [RemoteAdmin] section&lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
enabled_methods = admin_authenticate_user,...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
=== Required Parameters ===&lt;br /&gt;
These parameters are required&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! parameter&lt;br /&gt;
! Description&lt;br /&gt;
! Values&lt;br /&gt;
|-&lt;br /&gt;
| ''user_firstname''&lt;br /&gt;
| first name of user&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ''user_lastname''&lt;br /&gt;
| last name of user&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ''user_password''&lt;br /&gt;
| and MD5 hash of the user's password&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ''token_lifetime''&lt;br /&gt;
| the lifetime of the authentication token (max: 30s)&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Returned Parameters ==&lt;br /&gt;
=== Returned Parameters ===&lt;br /&gt;
These parameters are returned by Remote Admin&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! parameter&lt;br /&gt;
! Description&lt;br /&gt;
! Values&lt;br /&gt;
|-&lt;br /&gt;
| ''success''&lt;br /&gt;
| true when successful&lt;br /&gt;
| true, false&lt;br /&gt;
|-&lt;br /&gt;
|''error''&lt;br /&gt;
| the error that occurred (ie: authentication failed messages)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|''token''&lt;br /&gt;
| the authentication token&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Error Messages ===&lt;br /&gt;
''error'' is set to &amp;quot;scene does not exist&amp;quot; in case no scene is available.&lt;br /&gt;
&lt;br /&gt;
''error'' is set to &amp;quot;avatar FIRSTNAME LASTNAME does not exist&amp;quot; in case the avatar with FIRSTNAME LASTNAME does not exist.&lt;br /&gt;
&lt;br /&gt;
''error'' is set to &amp;quot;no password provided for FIRSTNAME LASTNAME&amp;quot; in case the call did not include a password for the avatar named FISTNAME LASTNAME.&lt;br /&gt;
&lt;br /&gt;
''error'' is set to &amp;quot;no token lifetime provided for FISTNAME LASTNAME&amp;quot; if the ''token'' parameter has been omitted from the call.&lt;br /&gt;
&lt;br /&gt;
''error'' is set to &amp;quot;token lifetime longer than 30s for FISTNAME LASTNAME&amp;quot; in case the request asked for ''token_lifetime'' larger than 30.&lt;br /&gt;
&lt;br /&gt;
''error'' is set to &amp;quot;no authentication module loaded&amp;quot; in case no authentication module could be loaded.&lt;br /&gt;
&lt;br /&gt;
''error'' is set to &amp;quot;authentication failed for FIRSTNAME LASTNAME&amp;quot; in case the authentication failed for user FISTNAME LASTNAME.&lt;br /&gt;
&lt;br /&gt;
= Examples =&lt;br /&gt;
&lt;br /&gt;
Using the ''wasRemoteAdmin'' class from [http://was.fm/opensim:remote_admin Wizardry and Steamworks remote admin page], a call can be made to ''admin_authenticate_user'' to authenticate the avatar ''Kira Komarov'' using Remote Admin:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
	# include the KOS class&lt;br /&gt;
	require_once 'wasRemoteAdmin.php';&lt;br /&gt;
	# create a new connection to the OpenSim server&lt;br /&gt;
	# with the hostname &amp;quot;OPENSIM&amp;quot; and port &amp;quot;10000&amp;quot;  &lt;br /&gt;
	# using the password &amp;quot;password&amp;quot;&lt;br /&gt;
	$req = new wasRemoteAdmin('http://OPENSIM:10000', 'password');&lt;br /&gt;
	# send the console command &amp;quot;show info&amp;quot; to OpenSim&lt;br /&gt;
	print $req-&amp;gt;admin_authenticate_user('Kira', 'Komarov', 'mypassword', '10');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which sends the request to OpenSim and returns an XML structure documented in the following section.&lt;br /&gt;
&lt;br /&gt;
=== Return XML ===&lt;br /&gt;
&lt;br /&gt;
''admin_authenticate_user'' returns an XML structure indicating whether an error occurred or if the call was successful.&lt;br /&gt;
&lt;br /&gt;
==== Success ====&lt;br /&gt;
&lt;br /&gt;
On a successful call to ''admin_authenticate_user'', the following is an example of the returned XML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;methodResponse&amp;gt;&lt;br /&gt;
&amp;lt;params&amp;gt;&lt;br /&gt;
  &amp;lt;param&amp;gt;&lt;br /&gt;
    &amp;lt;value&amp;gt;&lt;br /&gt;
      &amp;lt;struct&amp;gt;&lt;br /&gt;
        &amp;lt;member&amp;gt;&lt;br /&gt;
          &amp;lt;name&amp;gt;success&amp;lt;/name&amp;gt;&lt;br /&gt;
          &amp;lt;value&amp;gt;&lt;br /&gt;
            &amp;lt;boolean&amp;gt;1&amp;lt;/boolean&amp;gt;&lt;br /&gt;
          &amp;lt;/value&amp;gt;&lt;br /&gt;
        &amp;lt;/member&amp;gt;&lt;br /&gt;
        &amp;lt;member&amp;gt;&lt;br /&gt;
           &amp;lt;name&amp;gt;token&amp;lt;/name&amp;gt;&lt;br /&gt;
           &amp;lt;value&amp;gt;&lt;br /&gt;
             &amp;lt;string&amp;gt;670962bb-7942-4d66-b7dc-b669b97e842e&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;/value&amp;gt;&lt;br /&gt;
        &amp;lt;/member&amp;gt;&lt;br /&gt;
      &amp;lt;/struct&amp;gt;&lt;br /&gt;
    &amp;lt;/value&amp;gt;&lt;br /&gt;
  &amp;lt;/param&amp;gt;&lt;br /&gt;
 &amp;lt;/params&amp;gt;&lt;br /&gt;
&amp;lt;/methodResponse&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Failure ====&lt;br /&gt;
&lt;br /&gt;
On an unsuccessful call to ''admin_authenticate_user'', the following is an example of the returned XML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;methodResponse&amp;gt;&lt;br /&gt;
&amp;lt;params&amp;gt;&lt;br /&gt;
  &amp;lt;param&amp;gt;&lt;br /&gt;
    &amp;lt;value&amp;gt;&lt;br /&gt;
      &amp;lt;struct&amp;gt;&lt;br /&gt;
        &amp;lt;member&amp;gt;&lt;br /&gt;
          &amp;lt;name&amp;gt;success&amp;lt;/name&amp;gt;&lt;br /&gt;
          &amp;lt;value&amp;gt;&lt;br /&gt;
            &amp;lt;boolean&amp;gt;0&amp;lt;/boolean&amp;gt;&lt;br /&gt;
          &amp;lt;/value&amp;gt;&lt;br /&gt;
        &amp;lt;/member&amp;gt;&lt;br /&gt;
        &amp;lt;member&amp;gt;&lt;br /&gt;
           &amp;lt;name&amp;gt;error&amp;lt;/name&amp;gt;&lt;br /&gt;
           &amp;lt;value&amp;gt;&lt;br /&gt;
             &amp;lt;string&amp;gt;authentication failed for Kira Komarov&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;/value&amp;gt;&lt;br /&gt;
        &amp;lt;/member&amp;gt;&lt;br /&gt;
      &amp;lt;/struct&amp;gt;&lt;br /&gt;
    &amp;lt;/value&amp;gt;&lt;br /&gt;
  &amp;lt;/param&amp;gt;&lt;br /&gt;
 &amp;lt;/params&amp;gt;&lt;br /&gt;
&amp;lt;/methodResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[RemoteAdmin]]&lt;br /&gt;
[[RemoteAdmin:Commands]]&lt;/div&gt;</summary>
		<author><name>Kira Komarov</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/RemoteAdmin:admin_authenticate_user</id>
		<title>RemoteAdmin:admin authenticate user</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RemoteAdmin:admin_authenticate_user"/>
				<updated>2013-11-22T14:40:59Z</updated>
		
		<summary type="html">&lt;p&gt;Kira Komarov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''admin_authenticate_user''' remotely allows to authenticate an user remotely. This feature is part of the development branch, after the 0.7.6 OpenSim release.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Enabling admin_authenticate_user ===&lt;br /&gt;
If not all functions are enabled, use admin_authenticate_user to enable the function in the [RemoteAdmin] section&lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
enabled_methods = admin_authenticate_user,...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
=== Required Parameters ===&lt;br /&gt;
These parameters are required&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! parameter&lt;br /&gt;
! Description&lt;br /&gt;
! Values&lt;br /&gt;
|-&lt;br /&gt;
| ''user_firstname''&lt;br /&gt;
| first name of user&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ''user_lastname''&lt;br /&gt;
| last name of user&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ''user_password''&lt;br /&gt;
| and MD5 hash of the user's password&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ''token_lifetime''&lt;br /&gt;
| the lifetime of the authentication token (max: 30s)&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Returned Parameters ==&lt;br /&gt;
=== Returned Parameters ===&lt;br /&gt;
These parameters are returned by Remote Admin&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! parameter&lt;br /&gt;
! Description&lt;br /&gt;
! Values&lt;br /&gt;
|-&lt;br /&gt;
| ''success''&lt;br /&gt;
| true when successful&lt;br /&gt;
| true, false&lt;br /&gt;
|-&lt;br /&gt;
|''error''&lt;br /&gt;
| the error that occurred (ie: authentication failed messages)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|''token''&lt;br /&gt;
| the authentication token&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Error Messages ===&lt;br /&gt;
''error'' is set to &amp;quot;scene does not exist&amp;quot; in case no scene is available.&lt;br /&gt;
&lt;br /&gt;
''error'' is set to &amp;quot;avatar FIRSTNAME LASTNAME does not exist&amp;quot; in case the avatar with FIRSTNAME LASTNAME does not exist.&lt;br /&gt;
&lt;br /&gt;
''error'' is set to &amp;quot;no password provided for FIRSTNAME LASTNAME&amp;quot; in case the call did not include a password for the avatar named FISTNAME LASTNAME.&lt;br /&gt;
&lt;br /&gt;
''error'' is set to &amp;quot;no token lifetime provided for FISTNAME LASTNAME&amp;quot; if the ''token'' parameter has been omitted from the call.&lt;br /&gt;
&lt;br /&gt;
''error'' is set to &amp;quot;token lifetime longer than 30s for FISTNAME LASTNAME&amp;quot; in case the request asked for ''token_lifetime'' larger than 30.&lt;br /&gt;
&lt;br /&gt;
''error'' is set to &amp;quot;no authentication module loaded&amp;quot; in case no authentication module could be loaded.&lt;br /&gt;
&lt;br /&gt;
''error'' is set to &amp;quot;authentication failed for FIRSTNAME LASTNAME&amp;quot; in case the authentication failed for user FISTNAME LASTNAME.&lt;br /&gt;
&lt;br /&gt;
= Examples =&lt;br /&gt;
&lt;br /&gt;
Using the ''wasRemoteAdmin'' class from [http://was.fm/opensim:remote_admin|Wizardry and Steamworks remote admin page], a call can be made to ''admin_authenticate_user'' to authenticate the avatar ''Kira Komarov'' using Remote Admin:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
	# include the KOS class&lt;br /&gt;
	require_once 'wasRemoteAdmin.php';&lt;br /&gt;
	# create a new connection to the OpenSim server&lt;br /&gt;
	# with the hostname &amp;quot;OPENSIM&amp;quot; and port &amp;quot;10000&amp;quot;  &lt;br /&gt;
	# using the password &amp;quot;password&amp;quot;&lt;br /&gt;
	$req = new wasRemoteAdmin('http://OPENSIM:10000', 'password');&lt;br /&gt;
	# send the console command &amp;quot;show info&amp;quot; to OpenSim&lt;br /&gt;
	print $req-&amp;gt;admin_authenticate_user('Kira', 'Komarov', 'mypassword', '10');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which sends the request to OpenSim and returns an XML structure documented in the following section.&lt;br /&gt;
&lt;br /&gt;
=== Return XML ===&lt;br /&gt;
&lt;br /&gt;
''admin_authenticate_user'' returns an XML structure indicating whether an error occurred or if the call was successful.&lt;br /&gt;
&lt;br /&gt;
==== Success ====&lt;br /&gt;
&lt;br /&gt;
On a successful call to ''admin_authenticate_user'', the following is an example of the returned XML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;methodResponse&amp;gt;&lt;br /&gt;
&amp;lt;params&amp;gt;&lt;br /&gt;
  &amp;lt;param&amp;gt;&lt;br /&gt;
    &amp;lt;value&amp;gt;&lt;br /&gt;
      &amp;lt;struct&amp;gt;&lt;br /&gt;
        &amp;lt;member&amp;gt;&lt;br /&gt;
          &amp;lt;name&amp;gt;success&amp;lt;/name&amp;gt;&lt;br /&gt;
          &amp;lt;value&amp;gt;&lt;br /&gt;
            &amp;lt;boolean&amp;gt;1&amp;lt;/boolean&amp;gt;&lt;br /&gt;
          &amp;lt;/value&amp;gt;&lt;br /&gt;
        &amp;lt;/member&amp;gt;&lt;br /&gt;
        &amp;lt;member&amp;gt;&lt;br /&gt;
           &amp;lt;name&amp;gt;token&amp;lt;/name&amp;gt;&lt;br /&gt;
           &amp;lt;value&amp;gt;&lt;br /&gt;
             &amp;lt;string&amp;gt;670962bb-7942-4d66-b7dc-b669b97e842e&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;/value&amp;gt;&lt;br /&gt;
        &amp;lt;/member&amp;gt;&lt;br /&gt;
      &amp;lt;/struct&amp;gt;&lt;br /&gt;
    &amp;lt;/value&amp;gt;&lt;br /&gt;
  &amp;lt;/param&amp;gt;&lt;br /&gt;
 &amp;lt;/params&amp;gt;&lt;br /&gt;
&amp;lt;/methodResponse&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Failure ====&lt;br /&gt;
&lt;br /&gt;
On an unsuccessful call to ''admin_authenticate_user'', the following is an example of the returned XML.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;methodResponse&amp;gt;&lt;br /&gt;
&amp;lt;params&amp;gt;&lt;br /&gt;
  &amp;lt;param&amp;gt;&lt;br /&gt;
    &amp;lt;value&amp;gt;&lt;br /&gt;
      &amp;lt;struct&amp;gt;&lt;br /&gt;
        &amp;lt;member&amp;gt;&lt;br /&gt;
          &amp;lt;name&amp;gt;success&amp;lt;/name&amp;gt;&lt;br /&gt;
          &amp;lt;value&amp;gt;&lt;br /&gt;
            &amp;lt;boolean&amp;gt;0&amp;lt;/boolean&amp;gt;&lt;br /&gt;
          &amp;lt;/value&amp;gt;&lt;br /&gt;
        &amp;lt;/member&amp;gt;&lt;br /&gt;
        &amp;lt;member&amp;gt;&lt;br /&gt;
           &amp;lt;name&amp;gt;error&amp;lt;/name&amp;gt;&lt;br /&gt;
           &amp;lt;value&amp;gt;&lt;br /&gt;
             &amp;lt;string&amp;gt;authentication failed for Kira Komarov&amp;lt;/string&amp;gt;&lt;br /&gt;
           &amp;lt;/value&amp;gt;&lt;br /&gt;
        &amp;lt;/member&amp;gt;&lt;br /&gt;
      &amp;lt;/struct&amp;gt;&lt;br /&gt;
    &amp;lt;/value&amp;gt;&lt;br /&gt;
  &amp;lt;/param&amp;gt;&lt;br /&gt;
 &amp;lt;/params&amp;gt;&lt;br /&gt;
&amp;lt;/methodResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[RemoteAdmin]]&lt;br /&gt;
[[RemoteAdmin:Commands]]&lt;/div&gt;</summary>
		<author><name>Kira Komarov</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/RemoteAdmin:admin_authenticate_user</id>
		<title>RemoteAdmin:admin authenticate user</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RemoteAdmin:admin_authenticate_user"/>
				<updated>2013-11-22T12:56:05Z</updated>
		
		<summary type="html">&lt;p&gt;Kira Komarov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''admin_authenticate_user''' remotely allows to authenticate an user remotely. This feature is part of the development branch, after the 0.7.6 OpenSim release.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Enabling admin_authenticate_user ===&lt;br /&gt;
If not all functions are enabled, use admin_authenticate_user to enable the function in the [RemoteAdmin] section&lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
enabled_methods = admin_authenticate_user,...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
=== Required Parameters ===&lt;br /&gt;
These parameters are required&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! parameter&lt;br /&gt;
! Description&lt;br /&gt;
! Values&lt;br /&gt;
|-&lt;br /&gt;
| ''user_firstname''&lt;br /&gt;
| first name of user&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ''user_lastname''&lt;br /&gt;
| last name of user&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ''user_password''&lt;br /&gt;
| and MD5 hash of the user's password&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ''token_lifetime''&lt;br /&gt;
| the lifetime of the authentication token (max: 30s)&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Returned Parameters ==&lt;br /&gt;
=== Returned Parameters ===&lt;br /&gt;
These parameters are returned by Remote Admin&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! parameter&lt;br /&gt;
! Description&lt;br /&gt;
! Values&lt;br /&gt;
|-&lt;br /&gt;
| ''success''&lt;br /&gt;
| true when successful&lt;br /&gt;
| true, false&lt;br /&gt;
|-&lt;br /&gt;
|''error''&lt;br /&gt;
| the error that occurred (ie: authentication failed messages)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|''token''&lt;br /&gt;
| the authentication token&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Error messages ===&lt;br /&gt;
''error'' is set to &amp;quot;scene does not exist&amp;quot; in case no scene is available.&lt;br /&gt;
&lt;br /&gt;
''error'' is set to &amp;quot;avatar FIRSTNAME LASTNAME does not exist&amp;quot; in case the avatar with FIRSTNAME LASTNAME does not exist.&lt;br /&gt;
&lt;br /&gt;
''error'' is set to &amp;quot;no password provided for FIRSTNAME LASTNAME&amp;quot; in case the call did not include a password for the avatar named FISTNAME LASTNAME.&lt;br /&gt;
&lt;br /&gt;
''error'' is set to &amp;quot;no token lifetime provided for FISTNAME LASTNAME&amp;quot; if the ''token'' parameter has been omitted from the call.&lt;br /&gt;
&lt;br /&gt;
''error'' is set to &amp;quot;token lifetime longer than 30s for FISTNAME LASTNAME&amp;quot; in case the request asked for ''token_lifetime'' larger than 30.&lt;br /&gt;
&lt;br /&gt;
''error'' is set to &amp;quot;no authentication module loaded&amp;quot; in case no authentication module could be loaded.&lt;br /&gt;
&lt;br /&gt;
''error'' is set to &amp;quot;authentication failed for FIRSTNAME LASTNAME&amp;quot; in case the authentication failed for user FISTNAME LASTNAME.&lt;br /&gt;
&lt;br /&gt;
[[RemoteAdmin]]&lt;br /&gt;
[[RemoteAdmin:Commands]]&lt;/div&gt;</summary>
		<author><name>Kira Komarov</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/RemoteAdmin:admin_authenticate_user</id>
		<title>RemoteAdmin:admin authenticate user</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RemoteAdmin:admin_authenticate_user"/>
				<updated>2013-11-22T12:54:09Z</updated>
		
		<summary type="html">&lt;p&gt;Kira Komarov: /* Error messages */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
'''admin_authenticate_user''' remotely allows to authenticate an user remotely. This feature is part of the development branch, after the 0.7.6 OpenSim release.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Enabling admin_authenticate_user ===&lt;br /&gt;
If not all functions are enabled, use admin_authenticate_user to enable the function in the [RemoteAdmin] section&lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
enabled_methods = admin_authenticate_user,...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
=== Required Parameters ===&lt;br /&gt;
These parameters are required&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! parameter&lt;br /&gt;
! Description&lt;br /&gt;
! Values&lt;br /&gt;
|-&lt;br /&gt;
| ''user_firstname''&lt;br /&gt;
| first name of user&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ''user_lastname''&lt;br /&gt;
| last name of user&lt;br /&gt;
|-&lt;br /&gt;
| ''user_password''&lt;br /&gt;
| and MD5 hash of the user's password&lt;br /&gt;
|-&lt;br /&gt;
| ''token_lifetime''&lt;br /&gt;
| the lifetime of the authentication token (max: 30s)&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Returned Parameters ==&lt;br /&gt;
=== Returned Parameters ===&lt;br /&gt;
These parameters are returned by Remote Admin&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! parameter&lt;br /&gt;
! Description&lt;br /&gt;
! Values&lt;br /&gt;
|-&lt;br /&gt;
| ''success''&lt;br /&gt;
| true when successful&lt;br /&gt;
| true, false&lt;br /&gt;
|-&lt;br /&gt;
|''error''&lt;br /&gt;
| the error that occurred (ie: authentication failed messages)&lt;br /&gt;
|-&lt;br /&gt;
|''token''&lt;br /&gt;
| the authentication token&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Error messages ===&lt;br /&gt;
''error'' is set to &amp;quot;scene does not exist&amp;quot; in case no scene is available.&lt;br /&gt;
&lt;br /&gt;
''error'' is set to &amp;quot;avatar FIRSTNAME LASTNAME does not exist&amp;quot; in case the avatar with FIRSTNAME LASTNAME does not exist.&lt;br /&gt;
&lt;br /&gt;
''error'' is set to &amp;quot;no password provided for FIRSTNAME LASTNAME&amp;quot; in case the call did not include a password for the avatar named FISTNAME LASTNAME.&lt;br /&gt;
&lt;br /&gt;
''error'' is set to &amp;quot;no token lifetime provided for FISTNAME LASTNAME&amp;quot; if the ''token'' parameter has been omitted from the call.&lt;br /&gt;
&lt;br /&gt;
''error'' is set to &amp;quot;token lifetime longer than 30s for FISTNAME LASTNAME&amp;quot; in case the request asked for ''token_lifetime'' larger than 30.&lt;br /&gt;
&lt;br /&gt;
''error'' is set to &amp;quot;no authentication module loaded&amp;quot; in case no authentication module could be loaded.&lt;br /&gt;
&lt;br /&gt;
''error'' is set to &amp;quot;authentication failed for FIRSTNAME LASTNAME&amp;quot; in case the authentication failed for user FISTNAME LASTNAME.&lt;br /&gt;
&lt;br /&gt;
[[RemoteAdmin]]&lt;br /&gt;
[[RemoteAdmin:Commands]]&lt;/div&gt;</summary>
		<author><name>Kira Komarov</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/RemoteAdmin:admin_authenticate_user</id>
		<title>RemoteAdmin:admin authenticate user</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RemoteAdmin:admin_authenticate_user"/>
				<updated>2013-11-22T12:53:12Z</updated>
		
		<summary type="html">&lt;p&gt;Kira Komarov: Created page with &amp;quot; '''admin_authenticate_user''' remotely allows to authenticate an user remotely. This feature is part of the development branch, after the 0.7.6 OpenSim release.   === Enabling a...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
'''admin_authenticate_user''' remotely allows to authenticate an user remotely. This feature is part of the development branch, after the 0.7.6 OpenSim release.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Enabling admin_authenticate_user ===&lt;br /&gt;
If not all functions are enabled, use admin_authenticate_user to enable the function in the [RemoteAdmin] section&lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
enabled_methods = admin_authenticate_user,...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
=== Required Parameters ===&lt;br /&gt;
These parameters are required&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! parameter&lt;br /&gt;
! Description&lt;br /&gt;
! Values&lt;br /&gt;
|-&lt;br /&gt;
| ''user_firstname''&lt;br /&gt;
| first name of user&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ''user_lastname''&lt;br /&gt;
| last name of user&lt;br /&gt;
|-&lt;br /&gt;
| ''user_password''&lt;br /&gt;
| and MD5 hash of the user's password&lt;br /&gt;
|-&lt;br /&gt;
| ''token_lifetime''&lt;br /&gt;
| the lifetime of the authentication token (max: 30s)&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Returned Parameters ==&lt;br /&gt;
=== Returned Parameters ===&lt;br /&gt;
These parameters are returned by Remote Admin&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! parameter&lt;br /&gt;
! Description&lt;br /&gt;
! Values&lt;br /&gt;
|-&lt;br /&gt;
| ''success''&lt;br /&gt;
| true when successful&lt;br /&gt;
| true, false&lt;br /&gt;
|-&lt;br /&gt;
|''error''&lt;br /&gt;
| the error that occurred (ie: authentication failed messages)&lt;br /&gt;
|-&lt;br /&gt;
|''token''&lt;br /&gt;
| the authentication token&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Error messages ===&lt;br /&gt;
''error'' is set to &amp;quot;scene does not exist&amp;quot; in case no scene is available.&lt;br /&gt;
''error'' is set to &amp;quot;avatar FIRSTNAME LASTNAME does not exist&amp;quot; in case the avatar with FIRSTNAME LASTNAME does not exist.&lt;br /&gt;
''error'' is set to &amp;quot;no password provided for FIRSTNAME LASTNAME&amp;quot; in case the call did not include a password for the avatar named FISTNAME LASTNAME.&lt;br /&gt;
''error'' is set to &amp;quot;no token lifetime provided for FISTNAME LASTNAME&amp;quot; if the ''token'' parameter has been omitted from the call.&lt;br /&gt;
''error'' is set to &amp;quot;token lifetime longer than 30s for FISTNAME LASTNAME&amp;quot; in case the request asked for ''token_lifetime'' larger than 30.&lt;br /&gt;
''error'' is set to &amp;quot;no authentication module loaded&amp;quot; in case no authentication module could be loaded.&lt;br /&gt;
''error'' is set to &amp;quot;authentication failed for FIRSTNAME LASTNAME&amp;quot; in case the authentication failed for user FISTNAME LASTNAME.&lt;br /&gt;
&lt;br /&gt;
[[RemoteAdmin]]&lt;br /&gt;
[[RemoteAdmin:Commands]]&lt;/div&gt;</summary>
		<author><name>Kira Komarov</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/RemoteAdmin</id>
		<title>RemoteAdmin</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RemoteAdmin"/>
				<updated>2013-11-22T12:39:09Z</updated>
		
		<summary type="html">&lt;p&gt;Kira Komarov: /* User account management */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks}}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
RemoteAdmin is an interface for simulators that allows various operations to be executed from outside the simulator.  '''Operations that relate to the simulator itself (e.g teleport user) are always available.  Those that relate to grid services (user creation and updating) are only available in standalone mode.  In grid mode, one has to use ROBUST level [[UserManipulation]] capabilities instead.'''&lt;br /&gt;
&lt;br /&gt;
== How to Setup the Remote Admin interface ==&lt;br /&gt;
&lt;br /&gt;
First you should enable the remote admin interface to do so just add the following lines to your OpenSim.ini file Port should be set to a nonzero value to have the remote admin on a different port &lt;br /&gt;
&lt;br /&gt;
As of r/16843 you can limit access to remote admin to specific IP addresses by using the optional access_ip_addresses. You can list all IP's allowed to access remote admin by seperating each IP by a comma. If access_ip_addresses isn't set, then all IP addresses can access RemoteAdmin. &lt;br /&gt;
&lt;br /&gt;
 [RemoteAdmin]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 access_password = secret&lt;br /&gt;
 enabled_methods = all&lt;br /&gt;
&lt;br /&gt;
See OpenSim.ini.example in the OpenSimulator distribution for more details.&lt;br /&gt;
&lt;br /&gt;
=== Further options ===&lt;br /&gt;
&lt;br /&gt;
You can also specify a different port for the XMLRPCAdmin command listener from the default simulator HTTP port&lt;br /&gt;
&lt;br /&gt;
 [RemoteAdmin]&lt;br /&gt;
 port = &amp;lt;port-number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RemoteAdmin Commands ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:#ffa0a0; padding:15px&amp;quot;&amp;gt;&lt;br /&gt;
'''Caution ! All commands using parameters for the uuid of a region use &amp;quot;region_id&amp;quot; as parameter. All other parameters eg. region_uuid or regionID will be removed after June 2012'''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Agent management ===&lt;br /&gt;
*[[Remoteadmin:admin teleport agent|admin_teleport_agent]]&lt;br /&gt;
*[[Remoteadmin:admin get agents|admin_get_agents]] (post OpenSimulator 0.7.5)&lt;br /&gt;
&lt;br /&gt;
=== User account management ===&lt;br /&gt;
*[[RemoteAdmin:admin create user|admin_create_user]] &lt;br /&gt;
*[[RemoteAdmin:admin create user email|admin_create_user_email]] &lt;br /&gt;
*[[RemoteAdmin:admin exists user|admin_exists_user]] &lt;br /&gt;
*[[RemoteAdmin:admin update user|admin_update_user]]&lt;br /&gt;
*[[RemoteAdmin:admin authenticate user|admin_authenticate_user]]&lt;br /&gt;
&lt;br /&gt;
=== Object management ===&lt;br /&gt;
&lt;br /&gt;
=== Parcel management ===&lt;br /&gt;
&lt;br /&gt;
=== Region management ===&lt;br /&gt;
*[[RemoteAdmin:admin broadcast|admin_broadcast]] &lt;br /&gt;
*[[RemoteAdmin:admin close region|admin_close_region]] &lt;br /&gt;
*[[RemoteAdmin:admin create region|admin_create_region]] &lt;br /&gt;
*[[RemoteAdmin:admin delete region|admin_delete_region]] &lt;br /&gt;
*[[RemoteAdmin:admin modify region|admin_modify_region]] &lt;br /&gt;
*[[RemoteAdmin:admin region query|admin_region_query]] &lt;br /&gt;
*[[RemoteAdmin:admin restart|admin_restart]] &lt;br /&gt;
*[[RemoteAdmin:admin shutdown|admin_shutdown]] &lt;br /&gt;
&lt;br /&gt;
=== Region file management ===&lt;br /&gt;
{{multicol}}&lt;br /&gt;
* [[RemoteAdmin:admin load heightmap|admin_load_heightmap]]&lt;br /&gt;
* [[RemoteAdmin:admin load oar|admin_load_oar]] &lt;br /&gt;
* [[RemoteAdmin:admin load xml|admin_load_xml]] &lt;br /&gt;
* [[RemoteAdmin:admin save heightmap|admin_save_heightmap]] &lt;br /&gt;
* [[RemoteAdmin:admin save oar|admin_save_oar]] &lt;br /&gt;
* [[RemoteAdmin:admin save xml|admin_save_xml]]&lt;br /&gt;
&lt;br /&gt;
=== Region access management ===&lt;br /&gt;
* [[RemoteAdmin:admin acl list|admin_acl_list]] &lt;br /&gt;
* [[RemoteAdmin:admin acl clear|admin_acl_clear]] &lt;br /&gt;
* [[RemoteAdmin:admin acl add|admin_acl_add]] &lt;br /&gt;
* [[RemoteAdmin:admin acl remove|admin_acl_remove]]&lt;br /&gt;
&lt;br /&gt;
=== Estate management ===&lt;br /&gt;
* [[RemoteAdmin:admin estate reload|admin_estate_reload]]&lt;br /&gt;
&lt;br /&gt;
=== Administration ===&lt;br /&gt;
* [[RemoteAdmin:admin console command|admin_console_command]]&lt;br /&gt;
&lt;br /&gt;
== Subcategories ==&lt;br /&gt;
&lt;br /&gt;
* [[RemoteAdmin:RemoteAdmin Examples|RemoteAdmin Examples]] &lt;br /&gt;
* [[RemoteAdmin:RemoteAdmin Proposals|RemoteAdmin Proposals]] &lt;br /&gt;
* [[RemoteAdmin:RemoteAdmin Standards|RemoteAdmin Standards]]&lt;br /&gt;
* [[RemoteAdmin:RemoteAdmin Implement new command|RemoteAdmin How to implement new commands]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:RemoteAdmin]]&lt;/div&gt;</summary>
		<author><name>Kira Komarov</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/RemoteAdmin</id>
		<title>RemoteAdmin</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RemoteAdmin"/>
				<updated>2013-11-22T12:38:48Z</updated>
		
		<summary type="html">&lt;p&gt;Kira Komarov: /* User account management */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks}}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
RemoteAdmin is an interface for simulators that allows various operations to be executed from outside the simulator.  '''Operations that relate to the simulator itself (e.g teleport user) are always available.  Those that relate to grid services (user creation and updating) are only available in standalone mode.  In grid mode, one has to use ROBUST level [[UserManipulation]] capabilities instead.'''&lt;br /&gt;
&lt;br /&gt;
== How to Setup the Remote Admin interface ==&lt;br /&gt;
&lt;br /&gt;
First you should enable the remote admin interface to do so just add the following lines to your OpenSim.ini file Port should be set to a nonzero value to have the remote admin on a different port &lt;br /&gt;
&lt;br /&gt;
As of r/16843 you can limit access to remote admin to specific IP addresses by using the optional access_ip_addresses. You can list all IP's allowed to access remote admin by seperating each IP by a comma. If access_ip_addresses isn't set, then all IP addresses can access RemoteAdmin. &lt;br /&gt;
&lt;br /&gt;
 [RemoteAdmin]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 access_password = secret&lt;br /&gt;
 enabled_methods = all&lt;br /&gt;
&lt;br /&gt;
See OpenSim.ini.example in the OpenSimulator distribution for more details.&lt;br /&gt;
&lt;br /&gt;
=== Further options ===&lt;br /&gt;
&lt;br /&gt;
You can also specify a different port for the XMLRPCAdmin command listener from the default simulator HTTP port&lt;br /&gt;
&lt;br /&gt;
 [RemoteAdmin]&lt;br /&gt;
 port = &amp;lt;port-number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RemoteAdmin Commands ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:#ffa0a0; padding:15px&amp;quot;&amp;gt;&lt;br /&gt;
'''Caution ! All commands using parameters for the uuid of a region use &amp;quot;region_id&amp;quot; as parameter. All other parameters eg. region_uuid or regionID will be removed after June 2012'''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Agent management ===&lt;br /&gt;
*[[Remoteadmin:admin teleport agent|admin_teleport_agent]]&lt;br /&gt;
*[[Remoteadmin:admin get agents|admin_get_agents]] (post OpenSimulator 0.7.5)&lt;br /&gt;
&lt;br /&gt;
=== User account management ===&lt;br /&gt;
*[[RemoteAdmin:admin create user|admin_create_user]] &lt;br /&gt;
*[[RemoteAdmin:admin create user email|admin_create_user_email]] &lt;br /&gt;
*[[RemoteAdmin:admin exists user|admin_exists_user]] &lt;br /&gt;
*[[RemoteAdmin:admin update user|admin_update_user]]&lt;br /&gt;
*[[RemoteAdmin:admin update user|admin_authenticate_user]]&lt;br /&gt;
&lt;br /&gt;
=== Object management ===&lt;br /&gt;
&lt;br /&gt;
=== Parcel management ===&lt;br /&gt;
&lt;br /&gt;
=== Region management ===&lt;br /&gt;
*[[RemoteAdmin:admin broadcast|admin_broadcast]] &lt;br /&gt;
*[[RemoteAdmin:admin close region|admin_close_region]] &lt;br /&gt;
*[[RemoteAdmin:admin create region|admin_create_region]] &lt;br /&gt;
*[[RemoteAdmin:admin delete region|admin_delete_region]] &lt;br /&gt;
*[[RemoteAdmin:admin modify region|admin_modify_region]] &lt;br /&gt;
*[[RemoteAdmin:admin region query|admin_region_query]] &lt;br /&gt;
*[[RemoteAdmin:admin restart|admin_restart]] &lt;br /&gt;
*[[RemoteAdmin:admin shutdown|admin_shutdown]] &lt;br /&gt;
&lt;br /&gt;
=== Region file management ===&lt;br /&gt;
{{multicol}}&lt;br /&gt;
* [[RemoteAdmin:admin load heightmap|admin_load_heightmap]]&lt;br /&gt;
* [[RemoteAdmin:admin load oar|admin_load_oar]] &lt;br /&gt;
* [[RemoteAdmin:admin load xml|admin_load_xml]] &lt;br /&gt;
* [[RemoteAdmin:admin save heightmap|admin_save_heightmap]] &lt;br /&gt;
* [[RemoteAdmin:admin save oar|admin_save_oar]] &lt;br /&gt;
* [[RemoteAdmin:admin save xml|admin_save_xml]]&lt;br /&gt;
&lt;br /&gt;
=== Region access management ===&lt;br /&gt;
* [[RemoteAdmin:admin acl list|admin_acl_list]] &lt;br /&gt;
* [[RemoteAdmin:admin acl clear|admin_acl_clear]] &lt;br /&gt;
* [[RemoteAdmin:admin acl add|admin_acl_add]] &lt;br /&gt;
* [[RemoteAdmin:admin acl remove|admin_acl_remove]]&lt;br /&gt;
&lt;br /&gt;
=== Estate management ===&lt;br /&gt;
* [[RemoteAdmin:admin estate reload|admin_estate_reload]]&lt;br /&gt;
&lt;br /&gt;
=== Administration ===&lt;br /&gt;
* [[RemoteAdmin:admin console command|admin_console_command]]&lt;br /&gt;
&lt;br /&gt;
== Subcategories ==&lt;br /&gt;
&lt;br /&gt;
* [[RemoteAdmin:RemoteAdmin Examples|RemoteAdmin Examples]] &lt;br /&gt;
* [[RemoteAdmin:RemoteAdmin Proposals|RemoteAdmin Proposals]] &lt;br /&gt;
* [[RemoteAdmin:RemoteAdmin Standards|RemoteAdmin Standards]]&lt;br /&gt;
* [[RemoteAdmin:RemoteAdmin Implement new command|RemoteAdmin How to implement new commands]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:RemoteAdmin]]&lt;/div&gt;</summary>
		<author><name>Kira Komarov</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Related_Software</id>
		<title>Related Software</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Related_Software"/>
				<updated>2013-05-13T10:26:48Z</updated>
		
		<summary type="html">&lt;p&gt;Kira Komarov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks}}&lt;br /&gt;
{{thirdparty}}&lt;br /&gt;
= Introduction =&lt;br /&gt;
This is a page which lists software packages that are related to OpenSimulator but are not part of the core project. Opensimulator is not responsible for the content referenced by these links.&lt;br /&gt;
&lt;br /&gt;
== OpenSimulator Viewers ==&lt;br /&gt;
See [[Connecting]].&lt;br /&gt;
&lt;br /&gt;
== OpenSimulator Distributions ==&lt;br /&gt;
See [[Download#Other_Distributions]].&lt;br /&gt;
&lt;br /&gt;
== OpenSimulator ROBUST replacements ==&lt;br /&gt;
These can be divided into projects that provide a completely replacement for the ROBUST services backend or can replace individual services.&lt;br /&gt;
&lt;br /&gt;
=== Complete replacements ===&lt;br /&gt;
* [https://github.com/openmetaversefoundation/simiangrid/commits/master SimianGrid] - A ROBUST services replacement which replaces the whole ROBUST stack with an alternative implementation based on PHP.  The necessary support for SimianGrid is included in core OpenSimulator.&lt;br /&gt;
&lt;br /&gt;
=== Individual service replacements ===&lt;br /&gt;
OpenSimulator services are architected such that an individual service (e.g. the asset service) can be replaced without having to upgrade other services.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/coyled/sras Simple Ruby Asset Service (SRAS)] - This is a replacement for the ROBUST asset service.  It stores assets on disk, does compression and deduplication of identical assets.&lt;br /&gt;
&lt;br /&gt;
== Web Interfaces==&lt;br /&gt;
See [[Webinterface]]&lt;br /&gt;
&lt;br /&gt;
== Addon Modules ==&lt;br /&gt;
These are either application or region modules which can be added to the OpenSimulator core distribution to provide extra functionality.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/aduffy70/Chat-Logger Chat-Logger] - An OpenSimulator region module to log chat traffic. Includes visitor alerts (when logging starts, stops, or new visitors enter the region) so the logging is transparent. Developed as a tool for meetings, training sessions, or educational environments.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/JakDaniels/OpenSimTide OpenSimTide] - An OpenSimulator region module which adds tides to your regions. You can control the tide period and height change via settings in OpenSim.ini and enable tide info to be chatted to the region for use in scripts in boats and waves. Tides only render properly on regions that are not adjacent, i.e. 1x1 islands.&lt;br /&gt;
&lt;br /&gt;
== Other OpenSimulator Forge Projects ==&lt;br /&gt;
{{content}}&lt;br /&gt;
OpenSimulator now has a [http://forge.opensimulator.org/gf/ forge] for related software. &lt;br /&gt;
* [http://forge.opensimulator.org/gf/project/osinstaller OpenSimulator Installers]&lt;br /&gt;
* [http://forge.opensimulator.org/gf/project/opensimwi/ OpenSimWi(Redux)]&lt;br /&gt;
* [http://forge.opensimulator.org/gf/project/openterrains/ Open Source Terrain Textures]&lt;br /&gt;
* [http://forge.opensimulator.org/gf/project/osraw/ Open Source RAW Terrain Textures]&lt;br /&gt;
* [http://forge.opensimulator.org/gf/project/ostray/ OSTray]&lt;br /&gt;
* [http://forge.opensimulator.org/gf/project/sllauncher/ SL Launcher]&lt;br /&gt;
* [http://forge.opensimulator.org/gf/project/openusermanual/ Open User Manual]&lt;br /&gt;
'''todo''' list some of the top opensim forge projects.&lt;br /&gt;
&lt;br /&gt;
=== These are old projects that no longer appear to be maintained ===&lt;br /&gt;
* [http://forge.opensimulator.org/gf/project/deepservers/ DeepServer (ASP.NET Grid Server)]&lt;br /&gt;
* [http://forge.opensimulator.org/gf/project/modrex/ realXtend Modules]&lt;br /&gt;
* [http://forge.opensimulator.org/gf/project/ogp/ OGP Patches]&lt;br /&gt;
&lt;br /&gt;
== Other related software ==&lt;br /&gt;
These are independent implementations of OpenSimulator services, such as the user server or the inventory server (also known as UGAI). &lt;br /&gt;
&lt;br /&gt;
* [http://www.ics.uci.edu/~lopes/terraingen/ Terraingen] - Tool for producing OpenSimulator terrains from USGS DEM files. &lt;br /&gt;
* [[RegionGenerator]] - Generates Region XML Files &lt;br /&gt;
* [http://www.secondinventory.com/ Second Inventory] - A Windows based client that can be used to back up and restore objects from Second Life™ as well as from various OpenSimulator based grids. It allows you to back up objects from the Second Life™ main grid, and restore them into OpenSimulator grids. It is still a bit primitive and sometimes can be flaky.&lt;br /&gt;
* [http://was.fm/opensim:rake Rake] - Created as an alternative to Second Inventory, but OpenSource and free to use. Rake is meant to dump assets (textures, animations,  notecards, scripts, etc...) from either Second Life™ or OpenSim to your local hard-drive.&lt;br /&gt;
* [http://www.metabolt.net/ METAbolt] - METAbolt is a non-graphical (text based) viewer. It's light weight and cross grid, which means it will work in Second Life™ as well as other grids that are based on OpenSIM. The viewer is Open Source so it's free. Currently METAbolt is only available for Windows platforms. &lt;br /&gt;
* [http://3di-opensim.com/en/ 3Di OpenSimulator Enterpise] - Business service based on OpenSimulator. &lt;br /&gt;
* [http://3di-rei.org/ 3Di Viewer Rei] - Web Browser based Viewer. &lt;br /&gt;
* [http://www.nsl.tuis.ac.jp/xoops/modules/xpwiki/?sl_proxy%20%28E%29 sl_proxy] - sl_proxy is a Proxy System for Second Life™ and OpenSimulator to beyond firewall. &lt;br /&gt;
* [http://www.nsl.tuis.ac.jp/xoops/modules/xpwiki/?XoopenSim%20(E) XoopenSim] - OpenSimulator WEB Interface for Xoops Cube. This module was made by remodeling [http://forge.opensimulator.org/gf/project/opensimwi/ OpenSimWi(Redux)]. v1.55 supports 0.6.7/0.6.8/0.6.9/0.7.x, and it includes flotsam group function and [http://www.nsl.tuis.ac.jp/svn/opensim/opensim.osprofile/ modified osprofile] function.&lt;br /&gt;
* [http://www.nsl.tuis.ac.jp/xoops/modules/xpwiki/?Modlos%20(E) Modlos] - OpenSimulator WEB Interface for Moodle-1.9. This is a sister program of XoopenSim.&lt;br /&gt;
* [http://www.nsl.tuis.ac.jp/xoops/modules/xpwiki/?OpenSim%2FMoneyServer Money Server (NSL Version)] - This Money Server is modified version of [http://forge.opensimulator.org/gf/project/currency/ DTL Currency Processing] for Linux/Unix.&lt;br /&gt;
* [http://www.nsl.tuis.ac.jp/xoops/modules/xpwiki/?Rinions Rinions] - This is a real-time animation tool for Second Life™/OpenSim. Rinions sends animation data from Kinect to Viewer in real time using shared memory and over the Network.&lt;br /&gt;
* [http://www.mobilegridclient.com/] - Mobile Grid Client. A Second Life and OpenSim (Open Simulator) messaging client for your Android powered device (mobile phone, cell phone, tablet...).&lt;br /&gt;
&lt;br /&gt;
== Concepts ==&lt;br /&gt;
* [http://www.cs.cmu.edu/~johnny/projects/wii/ 3D Head Tracking Software] - The idea here is that Johnny has written an application that will allow real3d perspective using a WiiMote &amp;amp; a modified set of safety glasses. Johnny includes all of the source and several sample applications to get this moving forward. Would someone like to pick this up and build us a real3D interface for the SL browser? It's not as hard as you think.&lt;br /&gt;
&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Edusim Edusim on Opensim] - Edusim is a [http://en.wikipedia.org/wiki/Cave_Automatic_Virtual_Environment Cave Automatic Virtual Environment] based concept of lesson driven 3D virtual worlds on the ''classroom interactive whiteboard or classroom interactive surface''. Currently Edusim on Opencobalt Cobalt exists but tweaking a client and making Opensim &amp;quot;finger friendly&amp;quot; would seem to be a relatively straight forward task.&lt;br /&gt;
&lt;br /&gt;
= See Also =&lt;br /&gt;
* [[:Category:Development|Development]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Users]]&lt;br /&gt;
[[Category:Support]]&lt;br /&gt;
[[Category:Tech Reference]]&lt;br /&gt;
[[Category:Help]]&lt;br /&gt;
[[Category:Configuration]]&lt;br /&gt;
[[Category:Getting Started]]&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Kira Komarov</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/OSSLNPC</id>
		<title>OSSLNPC</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/OSSLNPC"/>
				<updated>2013-03-31T17:12:06Z</updated>
		
		<summary type="html">&lt;p&gt;Kira Komarov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
Since OpenSimulator 0.7.2, a number of functions are provided for for creating and manipulating server-side NPCs (Non Player Characters). These replace the previous functions, that had stopped working by OpenSimulator 0.7.1.1 (possibly broken since OpenSimulator 0.6.9).&lt;br /&gt;
&lt;br /&gt;
The general philosophy in creating these new functions is to &lt;br /&gt;
&lt;br /&gt;
# Give script writers the simple tools needed to create more sophisticated behaviour.&lt;br /&gt;
# Avoid duplicating existing LSL and OSSL functions. For instance, finding out what state an agent is in can be done through llGetAgentInfo() rather than creating a special NPC function. &lt;br /&gt;
&lt;br /&gt;
NPCs are controlled via a script which must be in the same region as the NPC. This could be housed in an attachment that is attached to the avatar.&lt;br /&gt;
&lt;br /&gt;
Server-side NPCs cannot leave the region in which they were born. If you want region crossing behaviour, please look at the alternative NPC options on the [[NPC]] wiki page.&lt;br /&gt;
&lt;br /&gt;
Server-side NPC appearance is saved and loaded by serializing the appearance data structure to a notecard present in the same prim as the script. The required textures will be preserved when an OAR is saved and loaded.&lt;br /&gt;
&lt;br /&gt;
The current appearance data format (as seen in notecards created by appearing saving) is the same used for the OpenSimulator wire format and so is not designed to be edited directly.  With great care it is possible, see [[Appearance Formats]] for more details but it's not recommended unless you really, really need to do it.&lt;br /&gt;
&lt;br /&gt;
= Enabling =&lt;br /&gt;
&lt;br /&gt;
To use these functions, in the OpenSim.ini file you will need the following config&lt;br /&gt;
&lt;br /&gt;
# Enabled = true set in the [NPC] section.&lt;br /&gt;
# Enabled = true set in the [XEngine] section.&lt;br /&gt;
# AllowOSFunctions = true in the [XEngine] section.&lt;br /&gt;
# OSFunctionThreatLevel = VeryHigh in the [XEngine] section. The functions osAgentSaveAppearance(), osAvatarPlayAnimation() and osAvatarStopAnimation() need this level. If you don't need these functions, then a &amp;quot;High&amp;quot; level will suffice.&lt;br /&gt;
&lt;br /&gt;
See [[Configuring Simulator Parameters#Getting information about parameters]] if you need to double check that these parameters have been set correctly.&lt;br /&gt;
&lt;br /&gt;
= Notes =&lt;br /&gt;
&lt;br /&gt;
* When using your avatar to model appearance before saving, you will need to wait a few seconds before invoking any save appearance command. This is because appearance saving currently operates on a timer in order to manage multiple appearance updates from the viewer.&lt;br /&gt;
* OpenSimulator 0.7.3-rc1 introduces the concept of 'owned' and 'unowned' NPC. An 'owned' NPC is one where only the creating script and other scripts with the same owner can manipulate the NPC. An 'unowned' NPC is one where any script with the right permissions (as defined in the [XEngine] configuration section) can manipulate it. In OpenSimulator 0.7.3, all avatars are 'owned' by default unless otherwise specified in the osNpcCreate() call.&lt;br /&gt;
&lt;br /&gt;
= Sensing =&lt;br /&gt;
&lt;br /&gt;
llAgentSensor() can be used to set up a sensor that will detected NPCs instead/of as well as other region entities.&lt;br /&gt;
&lt;br /&gt;
In OpenSimulator 0.7.2, LSL sensors will detect NPCs as ordinary agents.&lt;br /&gt;
&lt;br /&gt;
In OpenSimulator 0.7.3-rc1 onwards, unless otherwise specified, NPCs will only be detected using the OpenSimulator-specific NPC flag, e.g.&lt;br /&gt;
&lt;br /&gt;
As of git master bcfc392 (Fri Jul 20 21:08:04 2012), the constant OS_NPC should now be used instead of NPC, in order to avoid future issues if LL decide to use NPC themselves for some other function.  The NPC constant will be deprecated in the forthcoming OpenSimulator 0.7.4 release but will remain useble.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lsl&amp;quot;&amp;gt;&lt;br /&gt;
//Author: mewtwo0641&lt;br /&gt;
&lt;br /&gt;
list keys = []; &lt;br /&gt;
key npc;&lt;br /&gt;
string toucher;&lt;br /&gt;
key toucherkey;&lt;br /&gt;
vector toucherPos;&lt;br /&gt;
integer npc_on = FALSE;&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{ &lt;br /&gt;
    touch_start(integer x)&lt;br /&gt;
    {   &lt;br /&gt;
        toucherkey = llDetectedKey(0);&lt;br /&gt;
        toucherPos = llDetectedPos(0);&lt;br /&gt;
        vector npcPos = llGetPos() + &amp;lt;1,1,1&amp;gt;;&lt;br /&gt;
    &lt;br /&gt;
        if(npc_on == FALSE)&lt;br /&gt;
        {    &lt;br /&gt;
            npc = osNpcCreate(&amp;quot;Fred&amp;quot;, &amp;quot;Flintstone&amp;quot;, npcPos, toucherkey);&lt;br /&gt;
            npc_on = TRUE;&lt;br /&gt;
            llSensor(&amp;quot;&amp;quot;, &amp;quot;&amp;quot;, AGENT | NPC, 96.0, PI); //Will always return NPC key regardless of npc create option&lt;br /&gt;
            return;&lt;br /&gt;
        }   &lt;br /&gt;
    &lt;br /&gt;
        if(npc_on == TRUE)&lt;br /&gt;
        {   &lt;br /&gt;
            osNpcRemove(npc);&lt;br /&gt;
            llResetScript();&lt;br /&gt;
        }   &lt;br /&gt;
    }   &lt;br /&gt;
    &lt;br /&gt;
    sensor(integer num)&lt;br /&gt;
    {   &lt;br /&gt;
        keys = []; &lt;br /&gt;
        integer i = 0;&lt;br /&gt;
    &lt;br /&gt;
        for(i; i &amp;lt; num; i++)&lt;br /&gt;
        {   &lt;br /&gt;
            keys += llDetectedKey(i); &lt;br /&gt;
        }   &lt;br /&gt;
    &lt;br /&gt;
        llOwnerSay(llDumpList2String(keys, &amp;quot;\n&amp;quot;));&lt;br /&gt;
    }   &lt;br /&gt;
    &lt;br /&gt;
    no_sensor()&lt;br /&gt;
    {   &lt;br /&gt;
        keys = [];   &lt;br /&gt;
    }   &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can get NPCs to be detected as AGENTs again using the OS_NPC_SENSE_AS_AGENT option below in osNpcCreate().&lt;br /&gt;
&lt;br /&gt;
The justification is that detecting NPCs as AGENTs by default may make some scripts unusable (e.g. radars that know nothing about NPCs). However, conversely other scripts may not behave as expected if NPCs aren't sensed as agents (e.g. doors that open automatically for avatars would not open for NPCs).&lt;br /&gt;
&lt;br /&gt;
From OpenSimulator git master commit ecf7bb26 (Fri Jul 20 21:36:33 2012), llGetDetectedType() will set the OS_NPC flag if an NPC was detected.  If the NPC was created with the OS_NPC_SENSE_AS_AGENT option then the AGENT flag will also be set.&lt;br /&gt;
&lt;br /&gt;
= Data Formats =&lt;br /&gt;
For more information about the format used to store appearance information in notecards, see [[Appearance Formats]].&lt;br /&gt;
&lt;br /&gt;
= Functions =&lt;br /&gt;
&lt;br /&gt;
== Create and Remove ==&lt;br /&gt;
=== [[osNpcCreate]] ===&lt;br /&gt;
&lt;br /&gt;
 osNpcCreate(string firstname, string lastname, vector position, string cloneFrom):key&lt;br /&gt;
&lt;br /&gt;
cloneFrom may be:&lt;br /&gt;
&lt;br /&gt;
* Name of the notecard containing a serialized avatar appearance, or&lt;br /&gt;
* Asset UUID of the Notecard, or&lt;br /&gt;
* UUID of an avatar logged into the same region. However, please note that this appearance will not be persisted unless osNpcSaveAppearance() is called.&lt;br /&gt;
&lt;br /&gt;
If the NPC is successfully created, then its UUID is returned, which is required for all subsequent functions. Example is available at [[osNpcCreate]]&lt;br /&gt;
&lt;br /&gt;
(OpenSimulator 0.7.3-rc1 onwards only). This creates an NPC that is 'owned' by the creating script and sensed using the OpenSimulator-only NPC flag for sensors.&lt;br /&gt;
&lt;br /&gt;
=== osNpcCreate ===&lt;br /&gt;
&lt;br /&gt;
OpenSimulator 0.7.3-rc1 onwards.&lt;br /&gt;
&lt;br /&gt;
 osNpcCreate(string firstname, string lastname, vector position, string cloneFrom, integer options):key&lt;br /&gt;
&lt;br /&gt;
cloneFrom may be:&lt;br /&gt;
&lt;br /&gt;
* Name of the notecard containing a serialized avatar appearance, or&lt;br /&gt;
* Asset UUID of the Notecard, or&lt;br /&gt;
* UUID of an avatar logged into the same region. However, please note that this appearance will not be persisted unless osNpcSaveAppearance() is called.&lt;br /&gt;
&lt;br /&gt;
integer is a set of flags that may be 0 or one or more of&lt;br /&gt;
&lt;br /&gt;
* OS_NPC_NOT_OWNED - create an unowned NPC.&lt;br /&gt;
* OS_NPC_SENSE_AS_AGENT - create an NPC that is sensed as an AGENT with LSL sensors &lt;br /&gt;
&lt;br /&gt;
If the NPC is successfully created, then its UUID is returned, which is required for all subsequent functions. Example is available at [[osNpcCreate]]&lt;br /&gt;
&lt;br /&gt;
=== [[osNpcRemove]] ===&lt;br /&gt;
&lt;br /&gt;
 osNpcRemove(key npc):void&lt;br /&gt;
&lt;br /&gt;
Remove the given avatar from the region. Example at [[osNpcRemove]].&lt;br /&gt;
&lt;br /&gt;
== Get and Set ==&lt;br /&gt;
=== osIsNpc ===&lt;br /&gt;
&lt;br /&gt;
OpenSimulator 0.7.3-rc1 onwards.&lt;br /&gt;
&lt;br /&gt;
 osIsNpc(key npc):integer&lt;br /&gt;
&lt;br /&gt;
Returns TRUE if the given key is an NPC, false otherwise.&lt;br /&gt;
&lt;br /&gt;
=== [[osNpcGetRot]] ===&lt;br /&gt;
&lt;br /&gt;
Gets the rotation of the avatar. Only the rotation around the Z plane in Euler rotation (horizontal rotation) has any meaning.&lt;br /&gt;
&lt;br /&gt;
 osNpcGetRot(key npc):rotation&lt;br /&gt;
&lt;br /&gt;
=== [[osNpcSetRot]] ===&lt;br /&gt;
&lt;br /&gt;
 osNpcSetRot(key npc, rotation rot):void&lt;br /&gt;
&lt;br /&gt;
Set the rotation of the avatar. Only setting the rotation in the Z plane in Euler rotation will have any meaningful effect (turning the avatar to point in one direction or another). Setting X or Y Euler values will result in the avatar rotating in an undefined manner.&lt;br /&gt;
&lt;br /&gt;
=== [[osNpcGetPos]] ===&lt;br /&gt;
&lt;br /&gt;
 osNpcGetPos(key npc):vector&lt;br /&gt;
&lt;br /&gt;
Return the current position of the NPC.&lt;br /&gt;
&lt;br /&gt;
=== [[osNpcGetOwner]] ===&lt;br /&gt;
&lt;br /&gt;
OpenSimulator 0.7.3-rc1 onwards.&lt;br /&gt;
&lt;br /&gt;
 osNpcGetOwner(key npc):key&lt;br /&gt;
&lt;br /&gt;
Return the owner of the given NPC (i.e. the owner of the script that created it). If the NPC is unowned or the input key does not belong to an NPC then returns NULL_KEY.&lt;br /&gt;
&lt;br /&gt;
== Movement ==&lt;br /&gt;
&lt;br /&gt;
=== [[osNpcMoveTo]] ===&lt;br /&gt;
&lt;br /&gt;
 osNpcMoveTo(key npc, vector position):void&lt;br /&gt;
&lt;br /&gt;
An older function that performs an osNpcMoveToTarget() by flying and landing at the target.&lt;br /&gt;
&lt;br /&gt;
=== [[osNpcMoveToTarget]] ===&lt;br /&gt;
&lt;br /&gt;
 osNpcMoveToTarget(key npc, vector target, int options):void&lt;br /&gt;
&lt;br /&gt;
Move the avatar to a given target over time. How the avatar will get there depends on the following options.&lt;br /&gt;
&lt;br /&gt;
* OS_NPC_FLY - Fly the avatar to the given position. The avatar will not land unless the OS_NPC_LAND_AT_TARGET option is also given.&lt;br /&gt;
* OS_NPC_NO_FLY - Do not fly to the target. The NPC will attempt to walk to the location. If it's up in the air then the avatar will keep bouncing hopeless until another move target is given or the move is stopped&lt;br /&gt;
* OS_NPC_LAND_AT_TARGET - If given and the avatar is flying, then it will land when it reaches the target. If OS_NPC_NO_FLY is given then this option has no effect.&lt;br /&gt;
* OS_NPC_RUNNING - if given, NPC avatar moves at running/fast flying speed, otherwise moves at walking/slow flying speed.&lt;br /&gt;
&lt;br /&gt;
OS_NPC_FLY and OS_NPC_NO_FLY are options that cannot be combined - the avatar will end up doing one or the other. If you want the avatar to fly and land at the target, then OS_NPC_LAND_AT_TARGET must be combined with OS_NPC_FLY. For instance,&lt;br /&gt;
&lt;br /&gt;
 osNpcMoveToTarget(npc, llGetPos() + &amp;lt;9,9,5&amp;gt;, OS_NPC_FLY|OS_NPC_LAND_AT_TARGET);&lt;br /&gt;
&lt;br /&gt;
=== [[osNpcStopMoveToTarget]] ===&lt;br /&gt;
&lt;br /&gt;
 osNpcStopMoveToTarget(key npc):void&lt;br /&gt;
&lt;br /&gt;
Stop a current move to a target.&lt;br /&gt;
&lt;br /&gt;
== Sitting and standing ==&lt;br /&gt;
&lt;br /&gt;
=== osNpcSit ===&lt;br /&gt;
&lt;br /&gt;
OpenSimulator 0.7.3-rc1 onwards.&lt;br /&gt;
&lt;br /&gt;
 osNpcSit(key npc, key target, int options):void&lt;br /&gt;
&lt;br /&gt;
Sit an NPC on a prim target. As yet there are no options, so always input 0.&lt;br /&gt;
&lt;br /&gt;
=== osNpcStand ===&lt;br /&gt;
&lt;br /&gt;
OpenSimulator 0.7.3-rc1 onwards.&lt;br /&gt;
&lt;br /&gt;
 osNpcStand(key npc):void&lt;br /&gt;
&lt;br /&gt;
Make an npc stand up.&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
&lt;br /&gt;
=== [[osNpcSay]] ===&lt;br /&gt;
&lt;br /&gt;
 osNpcSay(key npc, string message):void &lt;br /&gt;
 osNpcSay(key npc, int channel, string message):void&lt;br /&gt;
&lt;br /&gt;
Get the NPC to say the given message. &lt;br /&gt;
&lt;br /&gt;
If channel is specified then the chat is said on the given channel.  The channel parameter is only available in OpenSimulator 0.7.4 development code at this time.&lt;br /&gt;
&lt;br /&gt;
=== [[osNpcShout]] ===&lt;br /&gt;
&lt;br /&gt;
Only in OpenSimulator 0.7.4 development code at this time.&lt;br /&gt;
&lt;br /&gt;
 osNpcShout(key npc, int channel, string message):void&lt;br /&gt;
&lt;br /&gt;
Get the NPC to shout the given message on the given channel.&lt;br /&gt;
&lt;br /&gt;
=== [[osNpcWhisper]] ===&lt;br /&gt;
&lt;br /&gt;
Only in OpenSimulator 0.7.4 development code at this time.&lt;br /&gt;
&lt;br /&gt;
 osNpcWhisper(key npc, int channel, string message):void&lt;br /&gt;
&lt;br /&gt;
Get the NPC to whisper the given message on the given channel.&lt;br /&gt;
&lt;br /&gt;
== Animations ==&lt;br /&gt;
&lt;br /&gt;
=== osNpcPlayAnimation ===&lt;br /&gt;
&lt;br /&gt;
OpenSimulator 0.7.3-rc1 onwards.&lt;br /&gt;
&lt;br /&gt;
 osNpcPlayAnimation(key npc, string animation):void&lt;br /&gt;
&lt;br /&gt;
Get an NPC to play an animation. The animation can either be a key or the name of an animation in the same inventory as the script.&lt;br /&gt;
&lt;br /&gt;
=== osNpcStopAnimation ===&lt;br /&gt;
&lt;br /&gt;
In OpenSimulator 0.7.3-rc1 there is a bug which makes this play the animation instead. This will be corrected for the final release but in the mean time please use osAvatarStopAnimation() instead.&lt;br /&gt;
&lt;br /&gt;
 osNpcStopAnimation(key npc, string animation):void&lt;br /&gt;
&lt;br /&gt;
Get an NPC to stop playing an animation. The animation can either be a key or the name of an animation in the same inventory as the script.&lt;br /&gt;
&lt;br /&gt;
== Appearance ==&lt;br /&gt;
&lt;br /&gt;
NPC appearance is manipulated by saving and loading appearance data to notecards from the same inventory as the invoking script.&lt;br /&gt;
&lt;br /&gt;
=== [[osOwnerSaveAppearance]] ===&lt;br /&gt;
&lt;br /&gt;
 osOwnerSaveAppearance(string notecard):key&lt;br /&gt;
&lt;br /&gt;
Save the owner's current appearance to a notecard in the prim's inventory. This includes body part data, clothing items and attachments. If a notecard with the same name already exists then it is replaced. The owner must be present in the region when this function is invoked. The baked textures for the owner (necessary to recreate appearance on the NPC) are saved permanently.&lt;br /&gt;
&lt;br /&gt;
=== [[osAgentSaveAppearance]] ===&lt;br /&gt;
&lt;br /&gt;
 osAgentSaveAppearance(key agentId, string notecard):key&lt;br /&gt;
&lt;br /&gt;
Save an arbitrary avatar's appearance to a notecard in the prim's inventory. This includes body part data, clothing items and attachments. If a notecard with the same name already exists then it is replaced. The avatar must be present in the region when this function is invoked. The baked textures for the avatar (necessary to recreate appearance on the NPC) are saved permanently.&lt;br /&gt;
&lt;br /&gt;
=== [[osNpcSaveAppearance]] ===&lt;br /&gt;
&lt;br /&gt;
 osNpcSaveAppearance(key npc, string notecard):key&lt;br /&gt;
&lt;br /&gt;
Save the NPC's current appearance to a notecard in the prim's inventory. This includes body part data, clothing items and attachments. If a notecard with the same name already exists then it is replaced. The avatar must be present in the region when this function is invoked. The baked textures for the avatar (necessary to recreate appearance) are saved permanently.&lt;br /&gt;
&lt;br /&gt;
=== [[osNpcLoadAppearance]] ===&lt;br /&gt;
&lt;br /&gt;
 osNpcLoadAppearance(key npc, string notecard):void&lt;br /&gt;
&lt;br /&gt;
Load appearance from a notecard. This notecard must contain appearance data created with one of the save appearance functions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Touch ==&lt;br /&gt;
=== [[osNpcTouch]] ===&lt;br /&gt;
&lt;br /&gt;
OpenSimulator 0.7.4 development code at this time.&lt;br /&gt;
&lt;br /&gt;
 osNpcTouch(key npc, key objectKey, integer linkNum)&lt;br /&gt;
&lt;br /&gt;
Allows the NPC to touch objects.&lt;br /&gt;
&lt;br /&gt;
= Examples =&lt;br /&gt;
&lt;br /&gt;
== NPC Automator ==&lt;br /&gt;
&lt;br /&gt;
*[[NPC Automator 2.0]]&lt;br /&gt;
&lt;br /&gt;
This is a rough example script for most of the current NPC functionality.  One of its major current deficiencies is that it doesn't track more than one created avatar at a time.  Please feel free to improve it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = &amp;quot;lsl&amp;quot;&amp;gt;&lt;br /&gt;
key npc;&lt;br /&gt;
integer listenChannel = 10;&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    // NPC manipulator adapted by justincc 0.0.3 released 20121025&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llListen(listenChannel,&amp;quot;&amp;quot;,NULL_KEY,&amp;quot;&amp;quot;);&lt;br /&gt;
        llSetText(&amp;quot;Listening on &amp;quot; + listenChannel, &amp;lt;0, 255, 0&amp;gt;, 1);&lt;br /&gt;
        llOwnerSay(&amp;quot;Say /&amp;quot; + (string)listenChannel + &amp;quot; help for commands&amp;quot;);&lt;br /&gt;
    }  &lt;br /&gt;
     &lt;br /&gt;
    listen(integer channel, string name, key id, string msg)&lt;br /&gt;
    {&lt;br /&gt;
        if (msg != &amp;quot;&amp;quot;)&lt;br /&gt;
        {&lt;br /&gt;
            list commands = llParseString2List(msg, [ &amp;quot; &amp;quot; ], []);&lt;br /&gt;
            string msg0 = llList2String(commands, 0);&lt;br /&gt;
            string msg1 = llList2String(commands, 1);            &lt;br /&gt;
            string msg2 = llList2String(commands, 2);&lt;br /&gt;
            string msg3 = llList2String(commands, 3);&lt;br /&gt;
         &lt;br /&gt;
            if (msg0 == &amp;quot;create&amp;quot;)&lt;br /&gt;
            {&lt;br /&gt;
                if (msg1 != &amp;quot;&amp;quot;)&lt;br /&gt;
                {&lt;br /&gt;
                    string notecardName = msg1;&lt;br /&gt;
                &lt;br /&gt;
                    npc = osNpcCreate(&amp;quot;Jane&amp;quot;, &amp;quot;Doe&amp;quot;, llGetPos() + &amp;lt;5, 5, 0&amp;gt;, notecardName);&lt;br /&gt;
                &lt;br /&gt;
                    llOwnerSay(&amp;quot;Created npc from notecard &amp;quot; + notecardName);&lt;br /&gt;
                }&lt;br /&gt;
                else&lt;br /&gt;
                {&lt;br /&gt;
                    llOwnerSay(&amp;quot;Usage: create &amp;lt;notecard-name&amp;gt;&amp;quot;);&lt;br /&gt;
                }&lt;br /&gt;
            }  &lt;br /&gt;
            else if (msg0 ==&amp;quot;createm&amp;quot; &amp;amp;&amp;amp; msg1 != &amp;quot;&amp;quot;)&lt;br /&gt;
            {&lt;br /&gt;
                osOwnerSaveAppearance(&amp;quot;appearance&amp;quot;);&lt;br /&gt;
                vector pos = llGetPos();&lt;br /&gt;
                integer i;&lt;br /&gt;
                for (i = 0; i &amp;lt; (integer)msg1; i++)&lt;br /&gt;
                {&lt;br /&gt;
                    osNpcCreate(&amp;quot;John&amp;quot;, &amp;quot;Doe&amp;quot;, pos + &amp;lt;8, 0, 0&amp;gt;, &amp;quot;appearance&amp;quot;);&lt;br /&gt;
                    llSleep(1);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            else if (msg0 == &amp;quot;remove&amp;quot; &amp;amp;&amp;amp; npc != NULL_KEY)&lt;br /&gt;
            {&lt;br /&gt;
                osNpcSay(npc, &amp;quot;You will pay for this with your liiiiiivvveeessss!!!.....&amp;quot;);&lt;br /&gt;
                osNpcRemove(npc);&lt;br /&gt;
            }   &lt;br /&gt;
            else if (msg0 == &amp;quot;say&amp;quot; &amp;amp;&amp;amp; npc != NULL_KEY)&lt;br /&gt;
            {&lt;br /&gt;
                osNpcSay(npc, &amp;quot;I am your worst Nightmare!!!!&amp;quot;);&lt;br /&gt;
            }   &lt;br /&gt;
            else if (msg0 == &amp;quot;move&amp;quot;)&lt;br /&gt;
            {&lt;br /&gt;
                if (msg1 != &amp;quot;&amp;quot; &amp;amp;&amp;amp; msg2 != &amp;quot;&amp;quot; &amp;amp;&amp;amp; npc != NULL_KEY)&lt;br /&gt;
                {                &lt;br /&gt;
                    vector delta = &amp;lt;(integer)msg1, (integer)msg2, 0&amp;gt;;&lt;br /&gt;
                    &lt;br /&gt;
                    if (msg3 != &amp;quot;&amp;quot;)&lt;br /&gt;
                    {&lt;br /&gt;
                        delta.z = (integer)msg3;&lt;br /&gt;
                    }&lt;br /&gt;
                    &lt;br /&gt;
                    osNpcMoveTo(npc, osNpcGetPos(npc) + delta);                    &lt;br /&gt;
                }                            &lt;br /&gt;
                else&lt;br /&gt;
                {&lt;br /&gt;
                    llOwnerSay(&amp;quot;Usage: move &amp;lt;x&amp;gt; &amp;lt;y&amp;gt; [&amp;lt;z&amp;gt;]&amp;quot;);&lt;br /&gt;
                }&lt;br /&gt;
            }   &lt;br /&gt;
            else if (msg0 == &amp;quot;moveto&amp;quot;)&lt;br /&gt;
            {&lt;br /&gt;
                if (msg1 != &amp;quot;&amp;quot; &amp;amp;&amp;amp; msg2 != &amp;quot;&amp;quot; &amp;amp;&amp;amp; npc != NULL_KEY)&lt;br /&gt;
                {                &lt;br /&gt;
                    vector pos = &amp;lt;(integer)msg1, (integer)msg2, 0&amp;gt;;&lt;br /&gt;
                    &lt;br /&gt;
                    if (msg3 != &amp;quot;&amp;quot;)&lt;br /&gt;
                    {&lt;br /&gt;
                        pos.z = (integer)msg3;&lt;br /&gt;
                    }&lt;br /&gt;
                    &lt;br /&gt;
                    osNpcMoveTo(npc, pos);                    &lt;br /&gt;
                }                            &lt;br /&gt;
                else&lt;br /&gt;
                {&lt;br /&gt;
                    llOwnerSay(&amp;quot;Usage: move &amp;lt;x&amp;gt; &amp;lt;y&amp;gt; [&amp;lt;z&amp;gt;]&amp;quot;);&lt;br /&gt;
                }&lt;br /&gt;
            }            &lt;br /&gt;
            else if (msg0 == &amp;quot;movetarget&amp;quot; &amp;amp;&amp;amp; npc != NULL_KEY)&lt;br /&gt;
            {&lt;br /&gt;
                osNpcMoveToTarget(npc, llGetPos() + &amp;lt;9,9,5&amp;gt;, OS_NPC_FLY|OS_NPC_LAND_AT_TARGET);&lt;br /&gt;
            }&lt;br /&gt;
            else if (msg0 == &amp;quot;movetargetnoland&amp;quot; &amp;amp;&amp;amp; npc != NULL_KEY)&lt;br /&gt;
            {&lt;br /&gt;
                osNpcMoveToTarget(npc, llGetPos() + &amp;lt;9,9,5&amp;gt;, OS_NPC_FLY);&lt;br /&gt;
            }            &lt;br /&gt;
            else if (msg0 == &amp;quot;movetargetwalk&amp;quot; &amp;amp;&amp;amp; npc != NULL_KEY)&lt;br /&gt;
            {&lt;br /&gt;
                osNpcMoveToTarget(npc, llGetPos() + &amp;lt;9,9,0&amp;gt;, OS_NPC_NO_FLY);                &lt;br /&gt;
            }&lt;br /&gt;
            else if (msg0 == &amp;quot;rot&amp;quot; &amp;amp;&amp;amp; npc != NULL_KEY)&lt;br /&gt;
            {&lt;br /&gt;
                vector xyz_angles = &amp;lt;0,0,90&amp;gt;; // This is to define a 1 degree change&lt;br /&gt;
                vector angles_in_radians = xyz_angles * DEG_TO_RAD; // Change to Radians&lt;br /&gt;
                rotation rot_xyzq = llEuler2Rot(angles_in_radians); // Change to a Rotation                &lt;br /&gt;
                rotation rot = osNpcGetRot(npc);&lt;br /&gt;
                osNpcSetRot(npc, rot * rot_xyzq);&lt;br /&gt;
            }&lt;br /&gt;
            else if (msg0 == &amp;quot;rotabs&amp;quot; &amp;amp;&amp;amp; msg1 != &amp;quot;&amp;quot;)&lt;br /&gt;
            {&lt;br /&gt;
                vector xyz_angles = &amp;lt;0, 0, (integer)msg1&amp;gt;;&lt;br /&gt;
                vector angles_in_radians = xyz_angles * DEG_TO_RAD; // Change to Radians&lt;br /&gt;
                rotation rot_xyzq = llEuler2Rot(angles_in_radians); // Change to a Rotation                &lt;br /&gt;
                osNpcSetRot(npc, rot_xyzq);                &lt;br /&gt;
            }&lt;br /&gt;
            else if (msg0 == &amp;quot;animate&amp;quot; &amp;amp;&amp;amp; npc != NULL_KEY)&lt;br /&gt;
            {&lt;br /&gt;
                osAvatarPlayAnimation(npc, &amp;quot;stabbed+die_2&amp;quot;);&lt;br /&gt;
                llSleep(3);&lt;br /&gt;
                osAvatarStopAnimation(npc, &amp;quot;stabbed+die_2&amp;quot;);&lt;br /&gt;
            }   &lt;br /&gt;
            else if (msg0 == &amp;quot;save&amp;quot; &amp;amp;&amp;amp; msg1 != &amp;quot;&amp;quot; &amp;amp;&amp;amp; npc != NULL_KEY)&lt;br /&gt;
            {&lt;br /&gt;
                osNpcSaveAppearance(npc, msg1);&lt;br /&gt;
                llOwnerSay(&amp;quot;Saved appearance &amp;quot; + msg1 + &amp;quot; to &amp;quot; + npc);                &lt;br /&gt;
            }&lt;br /&gt;
            else if (msg0 == &amp;quot;load&amp;quot; &amp;amp;&amp;amp; msg1 != &amp;quot;&amp;quot; &amp;amp;&amp;amp; npc != NULL_KEY)&lt;br /&gt;
            {&lt;br /&gt;
                osNpcLoadAppearance(npc, msg1);&lt;br /&gt;
                llOwnerSay(&amp;quot;Loaded appearance &amp;quot; + msg1 + &amp;quot; to &amp;quot; + npc);&lt;br /&gt;
            }&lt;br /&gt;
            else if (msg0 == &amp;quot;clone&amp;quot;)&lt;br /&gt;
            {&lt;br /&gt;
                if (msg1 != &amp;quot;&amp;quot;)&lt;br /&gt;
                {&lt;br /&gt;
                    osOwnerSaveAppearance(msg1);&lt;br /&gt;
                    llOwnerSay(&amp;quot;Cloned your appearance to &amp;quot; + msg1);&lt;br /&gt;
                }&lt;br /&gt;
                else&lt;br /&gt;
                {&lt;br /&gt;
                    llOwnerSay(&amp;quot;Usage: clone &amp;lt;notecard-name-to-save&amp;gt;&amp;quot;);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            else if (msg0 == &amp;quot;stop&amp;quot; &amp;amp;&amp;amp; npc != NULL_KEY)&lt;br /&gt;
            {&lt;br /&gt;
                osNpcStopMoveToTarget(npc);&lt;br /&gt;
            }&lt;br /&gt;
            else if (msg0 == &amp;quot;sit&amp;quot; &amp;amp;&amp;amp; msg1 != &amp;quot;&amp;quot; &amp;amp;&amp;amp; npc != NULL_KEY)&lt;br /&gt;
            {&lt;br /&gt;
                osNpcSit(npc, msg1, OS_NPC_SIT_NOW);&lt;br /&gt;
            }&lt;br /&gt;
            else if (msg0 == &amp;quot;stand&amp;quot; &amp;amp;&amp;amp; npc != NULL_KEY)&lt;br /&gt;
            {&lt;br /&gt;
                osNpcStand(npc);&lt;br /&gt;
            }&lt;br /&gt;
            else if (msg0 == &amp;quot;help&amp;quot;)&lt;br /&gt;
            {&lt;br /&gt;
                llOwnerSay(&amp;quot;Commands are:&amp;quot;);&lt;br /&gt;
                llOwnerSay(&amp;quot;create &amp;lt;notecard-name&amp;gt; - Create NPC from a stored notecard&amp;quot;);&lt;br /&gt;
                llOwnerSay(&amp;quot;createm&amp;quot;);       &lt;br /&gt;
                llOwnerSay(&amp;quot;remove - Remove current NPC&amp;quot;);     &lt;br /&gt;
                llOwnerSay(&amp;quot;clone &amp;lt;notecard-name&amp;gt; - Clone own appearance to a notecard&amp;quot;);&lt;br /&gt;
                llOwnerSay(&amp;quot;load &amp;lt;notecard-name&amp;gt;  - Load appearance on notecard to current npc&amp;quot;);&lt;br /&gt;
                llOwnerSay(&amp;quot;save &amp;lt;notecard-name&amp;gt;  - Save appearance of current NPC to notecard&amp;quot;);&lt;br /&gt;
                llOwnerSay(&amp;quot;animate&amp;quot;);&lt;br /&gt;
                llOwnerSay(&amp;quot;move&amp;quot;);&lt;br /&gt;
                llOwnerSay(&amp;quot;moveto &amp;lt;x&amp;gt; &amp;lt;y&amp;gt; &amp;lt;z&amp;gt; - move to absolute position&amp;quot;);&lt;br /&gt;
                llOwnerSay(&amp;quot;movetarget&amp;quot;);&lt;br /&gt;
                llOwnerSay(&amp;quot;movetargetnoland&amp;quot;);&lt;br /&gt;
                llOwnerSay(&amp;quot;movetargetwalk&amp;quot;);&lt;br /&gt;
                llOwnerSay(&amp;quot;rot&amp;quot;);&lt;br /&gt;
                llOwnerSay(&amp;quot;say&amp;quot;);&lt;br /&gt;
                llOwnerSay(&amp;quot;sit &amp;lt;target-uuid&amp;gt;&amp;quot;);&lt;br /&gt;
                llOwnerSay(&amp;quot;stop&amp;quot;);&lt;br /&gt;
                llOwnerSay(&amp;quot;stand&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                llOwnerSay(&amp;quot;I don't understand [&amp;quot; + msg + &amp;quot;]&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
        }   &lt;br /&gt;
    }   &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Wandering and Puppeteer ==&lt;br /&gt;
&lt;br /&gt;
[http://was.fm Wizardry and Steamworks] provides free-to-use NPC extendable set of scripts, published under the GPLv3 license, that implements most of the NPC functions and allows you to conveniently create NPCs. There are several several scripts available at the time of writing:&lt;br /&gt;
&lt;br /&gt;
* [http://was.fm/opensim:npc:wandering Wandering NPCs] is a script that just makes a non-interative NPC wander around in a given area.&lt;br /&gt;
* [http://was.fm/opensim:npc:puppeteer NPC Puppeteer] is a system that will allow you to playwright NPCs without too much knowledge of either LSL or OSSL.&lt;br /&gt;
&lt;br /&gt;
= Questions/Comments =&lt;br /&gt;
&lt;br /&gt;
Please leave your questions and comments on [[Talk:OSSLNPC|this article's talk page]].&lt;br /&gt;
&lt;br /&gt;
[[Category:OSSL Functions]]&lt;br /&gt;
[[Category:Scripting]]&lt;/div&gt;</summary>
		<author><name>Kira Komarov</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Banning_Foreign_Users_in_Hypergrid</id>
		<title>Banning Foreign Users in Hypergrid</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Banning_Foreign_Users_in_Hypergrid"/>
				<updated>2013-02-24T17:54:07Z</updated>
		
		<summary type="html">&lt;p&gt;Kira Komarov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{{Quicklinks}}&lt;br /&gt;
&lt;br /&gt;
= Banning Foreign Users =&lt;br /&gt;
&lt;br /&gt;
Even though the current viewers are incapable of dealing with foreign users, it is possible to ban specific foreign users from your estates. For now, you have to do it on the backend, i.e. directly editing the database and reviewing the log. Not easy for the faint of heart, but any sys admin should be able to do this with their eyes shut. What follows are instructions for adding a foreign user to the estate's ban list. &lt;br /&gt;
&lt;br /&gt;
== Via the Database ==&lt;br /&gt;
&lt;br /&gt;
The first thing you need to do is to find out the UUID and IP address of the user you want to ban. For that you need to look at OpenSim.log. Search for log messages like this:&lt;br /&gt;
&lt;br /&gt;
 2009-01-23 03:45:11,995 INFO  - OpenSim.Region.Communications.Hypergrid.HGGridServicesGridMode [HGrid]: Incoming HGrid Agent&lt;br /&gt;
 Annoying.Person http://problematic.domain.org:9002&lt;br /&gt;
 2009-01-23 03:45:11,995 DEBUG - OpenSim.Region.Environment.Scenes.Scene [CONNECTION BEGIN]: Region Gateway 3000 told of incoming client&lt;br /&gt;
 Annoying.Person http://problematic.domain.org:9002 c3c9ecbf-bfb3-43eb-8dce-140afad7995f (circuit code 1896255323)&lt;br /&gt;
&lt;br /&gt;
In this case, the information you need is: UUID = c3c9ecbf-bfb3-43eb-8dce-140afad7995f and IPAddress = problematic.domain.org&lt;br /&gt;
&lt;br /&gt;
Next, let's add this foreign user to the ban list. Note that the estate information and ban lists are kept at the region server, not in the UGAIM. If you are using local storage for your regions, this information is stored in bin/OpenSim.db. So, open that DB with whatever tool you use to access your DBs. The instructions here assume a local sqlite database; if you're using MySql or other DB technologies for the regions' storage, the instructions are almost identical, but may need adjustments.&lt;br /&gt;
&lt;br /&gt;
SqlLite usually comes with a common Linux installation. In Linux, just type:&lt;br /&gt;
&lt;br /&gt;
  $ sqlite3 OpenSim.db&lt;br /&gt;
&lt;br /&gt;
In Windows, you need to get it from [http://www.sqlite.org/download.html here]. Once installed, run it on your OpenSim.db, like this, for example (on a command shell):&lt;br /&gt;
&lt;br /&gt;
  $ C:/Opt/SQLite3/sqlite3.exe OpenSim.db&lt;br /&gt;
&lt;br /&gt;
Once you are connected to the database, you can explore as much as you want. What follows are the concrete interactions you need for adding that foreign user into an estate ban list. Change the data for your situation.&lt;br /&gt;
&lt;br /&gt;
 [opensim@ucigrid04 bin]$ sqlite3 OpenSim.db&lt;br /&gt;
   SQLite version 3.3.6&lt;br /&gt;
   Enter &amp;quot;.help&amp;quot; for instructions&lt;br /&gt;
 sqlite&amp;gt; .tables&lt;br /&gt;
   estate_groups    estate_users     migrations       regionban&lt;br /&gt;
   estate_managers  estateban        primitems        regionsettings&lt;br /&gt;
   estate_map       land             prims            terrain&lt;br /&gt;
   estate_settings  landaccesslist   primshapes&lt;br /&gt;
 sqlite&amp;gt; .schema estateban&lt;br /&gt;
   CREATE TABLE estateban (&lt;br /&gt;
      EstateID int(10) NOT NULL,&lt;br /&gt;
      bannedUUID varchar(36) NOT NULL,&lt;br /&gt;
      bannedIp varchar(16) NOT NULL,&lt;br /&gt;
      bannedIpHostMask varchar(16) NOT NULL,&lt;br /&gt;
      bannedNameMask varchar(64) default NULL&lt;br /&gt;
   );&lt;br /&gt;
   CREATE INDEX estate_ban_estate_id on estateban(EstateID);&lt;br /&gt;
 sqlite&amp;gt; select EstateID, EstateName from estate_settings;&lt;br /&gt;
   100|My Estate&lt;br /&gt;
   101|My Estate&lt;br /&gt;
   102|My Estate&lt;br /&gt;
   103|My Estate&lt;br /&gt;
 sqlite&amp;gt; insert into estateban values (100, 'c3c9ecbf-bfb3-43eb-8dce-140afad7995f', 'problematic.domain.org', ' ', ' ');&lt;br /&gt;
 sqlite&amp;gt; insert into estateban values (101, 'c3c9ecbf-bfb3-43eb-8dce-140afad7995f', 'problematic.domain.org', ' ', ' ');&lt;br /&gt;
 sqlite&amp;gt; insert into estateban values (102, 'c3c9ecbf-bfb3-43eb-8dce-140afad7995f', 'problematic.domain.org', ' ', ' ');&lt;br /&gt;
 sqlite&amp;gt; insert into estateban values (103, 'c3c9ecbf-bfb3-43eb-8dce-140afad7995f', 'problematic.domain.org', ' ', ' ');&lt;br /&gt;
 sqlite&amp;gt; select * from estateban;&lt;br /&gt;
   100|c3c9ecbf-bfb3-43eb-8dce-140afad7995f|problematic.domain.org||&lt;br /&gt;
   101|c3c9ecbf-bfb3-43eb-8dce-140afad7995f|problematic.domain.org||&lt;br /&gt;
   102|c3c9ecbf-bfb3-43eb-8dce-140afad7995f|problematic.domain.org||&lt;br /&gt;
   103|c3c9ecbf-bfb3-43eb-8dce-140afad7995f|problematic.domain.org||&lt;br /&gt;
 sqlite&amp;gt; .quit&lt;br /&gt;
&lt;br /&gt;
Once this data is entered you need to restart OpenSim, so that it gets loaded.&lt;br /&gt;
&lt;br /&gt;
== On the Network Level ==&lt;br /&gt;
&lt;br /&gt;
The following guide is an excerpt from the [http://was.fm/opensim:banning_agents full article at Wizardry and Steamworks]. The principle is that all viewers are meant to send a MAC address that is hashed using a hex digest algorithm. Since under linux iptables understands only MAC addresses, we can use ipt_string to match the MAC address.&lt;br /&gt;
&lt;br /&gt;
For example, when a user connects to a grid, whether it is a direct login or a hypergrid teleport,  a string like the following is displayed:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OpenSim.Services.HypergridService.GatekeeperService [GATEKEEPER SERVICE]: &lt;br /&gt;
Login request for Jaine Mariolack @ http://virtualrealmsgrid.com:8002/ &lt;br /&gt;
(0a009e79-7c56-11e2-b122-000c76240986) at VIBE using viewer &lt;br /&gt;
Imprudence 1.3.2.0, channel Imprudence, &lt;br /&gt;
IP 109.112.128.89, &lt;br /&gt;
Mac d6812bb4d7625027d53c2e9715410caf, &lt;br /&gt;
Id0 dd76693a887c545f4d65c2ff2da3a4d7 &lt;br /&gt;
Teleport Flags 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
the segment that reads '''d6812bb4d7625027d53c2e9715410caf''' is the hashed MAC address which gets sent by the viewer.&lt;br /&gt;
&lt;br /&gt;
We can block that with iptables:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iptables -A INPUT -m string --string 'd6812bb4d7625027d53c2e9715410caf' --algo bm -p tcp --dport 9000 -j DROP&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Additionally, we can even block the agent using their firstname and lastname:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iptables -A INPUT -m string --string 'Jaine' --algo bm -m string --string 'Mariolack' --algo bm -p tcp --dport 9000 -j DROP&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The result is that the viewer will time-out while trying to teleport or while logging in.&lt;br /&gt;
&lt;br /&gt;
[[Category:Hypergrid]]&lt;/div&gt;</summary>
		<author><name>Kira Komarov</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/NPC</id>
		<title>NPC</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/NPC"/>
				<updated>2013-02-22T16:05:07Z</updated>
		
		<summary type="html">&lt;p&gt;Kira Komarov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|NPC}} &lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
Broadly speaking, there are 3 ways in which Non Player Characters (NPCs) aka bots, can be operated in OpenSimulator.&lt;br /&gt;
&lt;br /&gt;
== 1. Client side approaches ==&lt;br /&gt;
&lt;br /&gt;
For instance, use [http://openmetaverse.org/projects/libopenmetaverse libopenmetaverse] to operate an avatar as if it were being controlled through the viewer.&lt;br /&gt;
&lt;br /&gt;
This wiki does contain some information on how to do this - see &lt;br /&gt;
&lt;br /&gt;
* [[Building a bot]] - Getting started with bot design using libomv from the client side&lt;br /&gt;
* [[pCampBot]] - A facility for stress-testing opensim which can be used as bot example code.&lt;br /&gt;
&lt;br /&gt;
However, better information can be found elsewhere, since this method applies to both Linden Lab and other third party grids.&lt;br /&gt;
&lt;br /&gt;
This is how bots have been traditionally done in SL, since Linden Lab provide no scripting methods for NPCs or direct access to the server software. One advantage of this method, as stated above, is that it can easily be ported between Linden Lab and third party grids, since it only relies on the client interface (leaving aside whether the grid has a policy about allowing bots). It also allows bots to go anywhere and do anything that a human could do, with the right programming. One disadvantage is that it requires user accounts to exist for the bots.&lt;br /&gt;
&lt;br /&gt;
== 2. osNpc*() scripting functions ==&lt;br /&gt;
&lt;br /&gt;
OpenSimulator provides a set of OSSL NPC functions for creating and manipulating bots. Please see [[OSSLNPC]] for more details.&lt;br /&gt;
&lt;br /&gt;
One advantage of this approach is that no external client is necessary for a bot, and bot appearances can be saved in OpenSimulator Archives (OARs). One disadvantage is that there is a much more limited subset of functionality available, since script methods have to be written to control different aspects of an NPC. Also, such bots cannot move out of the region in which they are created.&lt;br /&gt;
&lt;br /&gt;
== 3. Region Module ==&lt;br /&gt;
&lt;br /&gt;
In OpenSim, the osNpc*() script methods use the internal NPCModule to actually manage and manipulate bots. Another region module could call the NPCModule methods directly. One advantage of this approach is that bot management may be easier in C# than in LSL/OSSL. One disadvantage is that any change to a region module requires recompilation and restart of the simulator in which it is hosted.&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* The [http://was.fm/opensim:npc Wizardry and Steamworks NPC page] contains some freely available NPC scripts, including a wandering NPC, and an NPC that uses a simple notecard-based language to &amp;quot;playwright&amp;quot; an NPC. It was used for creating &amp;quot;scenarios&amp;quot; on an educational, health-related simulator.&lt;br /&gt;
&lt;br /&gt;
[[Category:Scripting]]&lt;/div&gt;</summary>
		<author><name>Kira Komarov</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Performance</id>
		<title>Performance</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Performance"/>
				<updated>2013-02-15T06:42:36Z</updated>
		
		<summary type="html">&lt;p&gt;Kira Komarov: /* Database */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks}}&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
OpenSimulator performance is a very complex issue.  Performance can be affected by any number of things, including the number of prims on a region, number of regions, number of avatars, network quality between server and viewer, network quality between simulator and grid services, etc.&lt;br /&gt;
&lt;br /&gt;
We can break down a performance discussion into simulator issues (e.g. script performance, region database performance) and grid issues (chiefly scaling services such as asset, inventory, etc to serve more simulators and users).&lt;br /&gt;
&lt;br /&gt;
= General Tips =&lt;br /&gt;
&lt;br /&gt;
* Where at all possible, don't assume something is a performance bottleneck, measure it!  You might think your asset database is large, for example, but even large asset database seldom cause real issues.&lt;br /&gt;
* Make as many objects phantom as possible.  Phantom objects do not need to be tested for collisions with avatars and other objects, reducing physics frame time and increasing performance.&lt;br /&gt;
* Make as few objects subject to physics (e.g. falling under gravity, movable by other avatars) as possible.  Physics objects need a lot more collision testing than ordinary non-phantom objects.&lt;br /&gt;
* It can be hard to perform measurement at the moment since not a lot of tools exist.  However, one such is [[pCampbot]] which is bundled with OpenSimulator.  This can instantiate a number of simultaneous libomv clients on a simulator that can take certain actions such as clicking things and bouncing aroud.  Apects of it (e.g. appearance) are currently rather buggy and generate a lot of logging guff.&lt;br /&gt;
&lt;br /&gt;
= Simulator =&lt;br /&gt;
&lt;br /&gt;
== Hardware Requirements ==&lt;br /&gt;
Unfortunately, this is a very difficult question in light of all the factors mentioned in the introduction.  &lt;br /&gt;
&lt;br /&gt;
However, we can say that OpenSimulator does not run well when it only has access to a single CPU core - you should regard a dual-core machine as the minimum.&lt;br /&gt;
&lt;br /&gt;
Below are some examples of hardware people use/have used.  Please feel free to add to the list, or to add any reports to the performance studies and blog posts section.  '''These are examples to help you in your selection, not recommendations.'''&lt;br /&gt;
&lt;br /&gt;
Object Parts ~= # prim&lt;br /&gt;
&lt;br /&gt;
Sensors and Timers are generally more intensive then regular scripts, so please specify quantity of each.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
!Description&lt;br /&gt;
!Operating System (please add Mono version if appropriate)&lt;br /&gt;
!OpenSimulator version&lt;br /&gt;
!RAM/AVG_USE_%&lt;br /&gt;
!CPU&lt;br /&gt;
!#/type of regions&lt;br /&gt;
!# simultaneous avs&lt;br /&gt;
!#scripts/timers/Sensors&lt;br /&gt;
!Location&lt;br /&gt;
!#objectparts&lt;br /&gt;
|-&lt;br /&gt;
|hosted Xen VPS&lt;br /&gt;
|Ubuntu Intrepid (8.10)&lt;br /&gt;
|Unknown&lt;br /&gt;
|540MB/?&lt;br /&gt;
|1x quad-core 2.5GHz Xeon (L5420)&lt;br /&gt;
|1 region + 9 voids&lt;br /&gt;
|generally 1-2&lt;br /&gt;
|few&lt;br /&gt;
|Knifejaw Atoll &amp;amp; surrounding on OSGrid&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|hosted Xen VPS&lt;br /&gt;
|Ubuntu Jaunty (9.04)&lt;br /&gt;
|Unknown&lt;br /&gt;
|360MB/?&lt;br /&gt;
|2x dual-core 2.0GHz Xeon (5130)&lt;br /&gt;
|1 void&lt;br /&gt;
|generally 1-2 &lt;br /&gt;
|none&lt;br /&gt;
|Knifejaw Road on OSGrid&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|Dedicated Server from A+&lt;br /&gt;
|Windows Server 2003&lt;br /&gt;
|Unknown&lt;br /&gt;
|1 Meg&lt;br /&gt;
|1x single-core 2.8GHz Celeron&lt;br /&gt;
|2regions per server&lt;br /&gt;
|6 at once with no issues&lt;br /&gt;
|Waterfalls, texture anims, window texture switchers, lots of sound loops&lt;br /&gt;
|Pleasure Planet Welcome center &amp;amp; Region Pleasure Planet in OSGrid&lt;br /&gt;
|20000 prims per region&lt;br /&gt;
|-&lt;br /&gt;
|Amazon EC2 &amp;quot;high-CPU medium instance&amp;quot; (Xen VM)&lt;br /&gt;
|Windows Server 2003&lt;br /&gt;
|Unknown&lt;br /&gt;
|1.7GB&lt;br /&gt;
|1x dual-core 2.3GHz (Intel E5345)&lt;br /&gt;
|1 region with sailing race course&lt;br /&gt;
|7 avs, 4 in boats&lt;br /&gt;
|scripted start line&lt;br /&gt;
|Castle Rock, OSGrid&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Dedicated Server from simhost.com&lt;br /&gt;
|SuSe 11.2 x64&lt;br /&gt;
|Unknown&lt;br /&gt;
|8gb / 50%&lt;br /&gt;
|4x Core2Quad Q9300 2.6ghz&lt;br /&gt;
|1 region (Wright Plaza) uses approx 4gb ram&lt;br /&gt;
|20-25 users&lt;br /&gt;
|Freebie Stores / Meeting Center / Video Theater&lt;br /&gt;
|@osgrid.org Heavy Use Sim&lt;br /&gt;
|17500 prims aprox 1500 scripts&lt;br /&gt;
|-&lt;br /&gt;
|Home machine&lt;br /&gt;
|Windows XP SP3&lt;br /&gt;
|0.7.0.1 (Diva r13558)&lt;br /&gt;
|3GB / 15-40% incl. Opensim and MySQL&lt;br /&gt;
|4x Core2Quad Q6600 2.4 GHz. Use: generally, 0-10%&lt;br /&gt;
|11 regions&lt;br /&gt;
|1-6 users&lt;br /&gt;
|Many scripted objects (1934 scripts)&lt;br /&gt;
|[http://zonjacapalini.wordpress.com/2010/08/25/condensation-land-a-status-report/ Condensation Land]&lt;br /&gt;
|38,065 prims&lt;br /&gt;
|-&lt;br /&gt;
|Home machine&lt;br /&gt;
|Ubuntu Lucid 10.04 (32 bit pae)&lt;br /&gt;
|0.7.0.1 (Diva r13558)&lt;br /&gt;
|160Mb no users, add 5Mb/user incl Opensim and MySQL&lt;br /&gt;
|I7-920 (dual threaded quad core), 3.8Ghz, 6Gb RAM, 0-10% Load&lt;br /&gt;
|4 regions (Diva default config)&lt;br /&gt;
|1-4 users (approx 20Kb/sec bandwidth/user)&lt;br /&gt;
|Few scripted objects (&amp;lt;10)&lt;br /&gt;
|[http://mars-simulator.hobby-site.org:9000/wifi Mars Simulation]- Based on [http://metatek.blogspot.com/2010/06/mars-simulation-for-distribution.html Erik Nauman's Open Blackboard]&lt;br /&gt;
|158 prims&lt;br /&gt;
|-&lt;br /&gt;
|Hosted Dedicated OVH&lt;br /&gt;
|Suse 12.2&lt;br /&gt;
|0.7.0.2 (D2)&lt;br /&gt;
|420Mb total, incl OS, Opensim and MySQL&lt;br /&gt;
|i7 Quad 950 (Bloomfield) 3.07GHz, 8 Core, 24Gb RAM, 0-1% Avg Load&lt;br /&gt;
|16 regions (4x4 mega-region)&lt;br /&gt;
|&amp;lt;6 users&lt;br /&gt;
|vehicle scripted objects (&amp;lt;5)&lt;br /&gt;
|[http://metaversesailing.com:9000/wifi Metaverse Sailing]&lt;br /&gt;
|&amp;lt;1000 prims&lt;br /&gt;
|-&lt;br /&gt;
|VPS&lt;br /&gt;
|Debian Lenny 5 (mono 2.4.2.3)&lt;br /&gt;
|OSgrid 0.7.1 (Dev) cd4d7a7: 2010-10-15&lt;br /&gt;
|655MB average out of 1722MB RAM, incl. MySQL&lt;br /&gt;
|Intel Quadcore 2.5 Ghz (1 core assigned to vps) average use: 40-45% &lt;br /&gt;
|20 regions&lt;br /&gt;
|&amp;lt;4 users&lt;br /&gt;
|about 20 different light scripts, but we're also experimenting with heavier HUD scripts (timers, lots of ll(Get/Set)PrimitiveParams and large lists) and custom IRC relay&lt;br /&gt;
|Phoenix Rising Isles on OsGrid&lt;br /&gt;
|3727 prims&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Database ==&lt;br /&gt;
&lt;br /&gt;
By default, OpenSimulator is configured to use the SQLite database.  This is very convenient for an out-of-the-box experience since it requires no configuration.  However, it's not designed for heavy usage, so if you build very quickly or have more than a few people on your simulator then you will start to see performance issues.&lt;br /&gt;
&lt;br /&gt;
Therefore, we recommend that you switch to MySQL as soon as possible.  This will provide a much better experience but will take a little bit of work to set up.  &lt;br /&gt;
&lt;br /&gt;
Unfortunately, tools for migrating OpenSimulator SQLite data to MySQL are currently limited.  Migration is also possible by saving OARs/IARs of your data from sqlite and loading them up once you've reconfigured to use MySQL.&lt;br /&gt;
&lt;br /&gt;
There is also a database plugin for MSSQL but this is not well maintained between OpenSimulator releases.&lt;br /&gt;
&lt;br /&gt;
In standalone mode, both services and the simulator itself can use SQLite.  In grid mode, SQLite is only supported for simulator data - the ROBUST instances must use a MySQL (or MSSQL) database.&lt;br /&gt;
&lt;br /&gt;
In general a single MySQL instance for the ROBUST services instance will serve small, medium and even large grids perfectly well - it's a configuration that's widely used for even quite large websites.&lt;br /&gt;
&lt;br /&gt;
== Configuration tweaks ==&lt;br /&gt;
&lt;br /&gt;
There are a couple of OpenSimulator configuration tweaks that you can do to significantly improve script loading performance in certain situations.  These tweaks can be made in your OpenSim.ini config file.  These apply to current OpenSimulator development code (0.7.3-dev) and may also apply to 0.7.2, though certainly not any earlier.&lt;br /&gt;
&lt;br /&gt;
===Set DeleteScriptsOnStartup = false===&lt;br /&gt;
&lt;br /&gt;
 [XEngine]&lt;br /&gt;
 DeleteScriptsOnStartup = false&lt;br /&gt;
&lt;br /&gt;
This means that OpenSimulator will not delete all the existing compiled script DLLs on startup (don't worry, this setting doesn't touch the actual LSL scripts in your region).  This will significantly improve startup performance.  However, if you upgrade OpenSimulator in place (e.g. you regularly update your installation directly from development code) then you may occasionally see problems if code changes and your previously compiled DLLs can't find their old references.&lt;br /&gt;
&lt;br /&gt;
In this case, you can either set DeleteScriptsOnStartup = true for one restart in order to clean out and recompile script DLLs or you can manually delete the relevant bin/ScriptEngines/&amp;lt;region-uuid&amp;gt;/*.dll.* files, which will force OpenSimulator to recompile them.  You could also delete the entire bin/ScriptEngines/&amp;lt;region-uuid&amp;gt; directory but this would lose all persisted script state (which is kept in the &amp;lt;script-item-id&amp;gt;.state files).&lt;br /&gt;
&lt;br /&gt;
===Set AppDomainLoading = false===&lt;br /&gt;
 [XEngine]&lt;br /&gt;
 AppDomainLoading = false&lt;br /&gt;
&lt;br /&gt;
By default, OpenSimulator loads every script DLL into its own AppDomain.  If this is set to false, then all scripts are loaded into OpenSimulator's default AppDomain instead.&lt;br /&gt;
&lt;br /&gt;
This will significantly improve script startup times and reduce initial per-script memory overhead.&lt;br /&gt;
&lt;br /&gt;
However, setting this to false will also prevent derezzed script DLLs from being removed from memory (only whole AppDomains can be unloaded).  This might cause an OutOfMemory problem over time, as avatars with scripted attachments move in and out of the region.  Whether this is a problem for you will depend on factors such as the avatar population of your grid.&lt;br /&gt;
&lt;br /&gt;
In addition, Windows users have reported script loading problems with AppDomainLoading = false, though I (justincc) haven't been able to replicate this with current OpenSimulator code on my WindowsXP machine.&lt;br /&gt;
&lt;br /&gt;
= Grid =&lt;br /&gt;
&lt;br /&gt;
Scaling a grid is a very complex task and only for the very technically inclined.  It is also an area under active investigation.  The advice below will change considerably over time as OpenSimulator and its environment changes and we learn more about perfomrnace issues.&lt;br /&gt;
&lt;br /&gt;
When would you start to meet grid scaling issues?  As an extremely rough and really quite arbitrary and pessimistic rule of thumb, you will probably start to have to think about things when you exceed 50 regions containing a large number of prims or 50 simultaneous users with large inventories.  But this will very a tremendous amount depending on your situation.  If you have thousands of regions with very few prims that much more supportable than 50 regions with 45000 prims each.&lt;br /&gt;
&lt;br /&gt;
You are likely to encounter issues in two areas - database and services.&lt;br /&gt;
&lt;br /&gt;
== Database ==&lt;br /&gt;
&lt;br /&gt;
=== Assets ===&lt;br /&gt;
&lt;br /&gt;
==== The problem ====&lt;br /&gt;
&lt;br /&gt;
Due to the architecture of distributed architecture of OpenSimulator, where regions are running on a number of different machines over a network, it's extremely hard to identify assets that are not in use and hence can be deleted.  Equally, the fact that assets are immutable leads to continual growth in the asset database.&lt;br /&gt;
&lt;br /&gt;
In theory, one could identify unused assets if one could identify all references in simulators and in user inventory.  However, this is extremely hard to do where machines are distributed over a network.  If a grid only has a few simulators all running on machines that are controlled by the same entity running a grid, then it becomes a little more tractable but even then would almost certainly involve significant downtime.  For stand-alone grids, or for environments where assets are not passed between grids (ie: giving a texture to a friend on another grid) [http://was.fm Wizardry and Steamworks] provides an experimental script that will do exactly that. It is currently available at the [http://was.fm/opensim:database:asset_cleaner asset cleaner] project page and published under an MIT license.&lt;br /&gt;
&lt;br /&gt;
Asset deletion would be easier for a one simulator grid or a standalone.  However, even code to implement asset deletion on standalones has not yet been implemented and would certainly require significant simulator downtime.&lt;br /&gt;
&lt;br /&gt;
A promising area of research involves improving OpenSimulator's recording of asset access times (e.g. recording access periodically).  Then assets which aren't accessed for a long time (e.g. a year) could be deleted or moved to cold storage (e.g. DVD).  One is left with the problem of not deleting assets permanently cached by simulators but perhaps this could be solved by the simulators occasionally 'pinging' the asset service with notification of what assets they cache.&lt;br /&gt;
&lt;br /&gt;
Another step to reduce asset database size is to eliminate duplicate assets by hashing.  There is [[Deduplicating Asset Service|an experimental development asset service]] for this.  Third party services such as [[https://github.com/coyled/sras SRAS]] also do this.&lt;br /&gt;
&lt;br /&gt;
==== Possible solutions ====&lt;br /&gt;
&lt;br /&gt;
* If you run a grid for yourself or, if you run a grid where you do not give away your content, then the [http://was.fm/opensim:database:asset_cleaner asset cleaner] from [http://was.fm Wizardry and Steamworks] may be a good solution to track down stray assets and delete them from the database automatically. It is based on dumping OARs and IARs, as per the second option in this section, but after dumping them, it automatically performs the search for you and prompts you to delete several supported assets. Current development is going towards automatically exporting OARs and IARs from PHP so that the procedure is made seamless.&lt;br /&gt;
&lt;br /&gt;
* Save every region to an OAR and every user's inventory to an IAR.  We believe this is equivalent to finding all referenced assets and can be done manually.  However, it's very laborious for installations with a large number of users and requires grid downtime.  Tools could be written to improve this, particularly in systematically saving all user inventories to IARs.&lt;br /&gt;
&lt;br /&gt;
* Do nothing.  MySQL can store a very large amount of data before encountering issues - it's used for extremely large websites and other applications after all.  This assumes you have the disk space.&lt;br /&gt;
&lt;br /&gt;
* Use an external asset service such as [[https://github.com/coyled/sras SRAS]].  SRAS, in particular, is a third party asset service that does deduplication, asset compression, and stores assets on disk rather than in a database.  It also has some nice features like preventing assets being served without deleting them.  It's used by OSGrid, for instance.  However, it does work in a different way from the bundled OpenSimulator asset service (e.g. backup of on-disk assets involves some extra steps compared to just backing up a database).  It also requires a migration step that may take a considerable time if you have an existing asset collection.&lt;br /&gt;
&lt;br /&gt;
=== Other databases ===&lt;br /&gt;
&lt;br /&gt;
The space required by assets far outweighs other data storage requirements so only asset data is generally an issue.&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
&lt;br /&gt;
=== The problem ===&lt;br /&gt;
&lt;br /&gt;
The other problem is with handling the number of requests to services when the number of simulators and users grow.  The asset service isn't generally a problem since simulators cache all assets used, though it can form a bottleneck on OAR upload.  The biggest issue is generally caused by users, chiefly due to inventory access and perhaps update last user positions in the GridUser service (and database table).&lt;br /&gt;
&lt;br /&gt;
ROBUST uses an embedded [[http://webserver.codeplex.com/ C# HttpServer]].  Performance comparisons to other Webservers (e.g. Apache) have not been carried out (?) but responses appears to be much, much slower.  As it has been discontinued it's also rather unlikely to have it's performance improved.  In future, OpenSimulator may embed a different HTTP server but this is extremely unlikely in the short term.&lt;br /&gt;
&lt;br /&gt;
=== Possible solutions ===&lt;br /&gt;
&lt;br /&gt;
* Split up services.  By default, ROBUST runs every service in one process.  However, because services are separate from each other, you could run some services (e.g. inventory in one ROBUST instance and other services (e.g. asset) in a different instance, even if they both point to the same database.  Because the embedded C# webserver is slow and possibly not very concurrent, this can achieve significant performance improvements even if all ROBUST instances are running on the same machine.&lt;br /&gt;
&lt;br /&gt;
* Instantiate extra ROBUST copies of problem services (e.g. inventory).  Because services are stateless (akin to a webservice), you can load balance requests between multiple instances using a reverse proxy such as nginx.  Again, because the embedded webserver is probably inefficient, you can achieve performance improvements by running multiple copies of services on the same machine.&lt;br /&gt;
&lt;br /&gt;
* Use an external service based on a more efficient HTTP server, e.g. [https://github.com/coyled/sras SRAS] (asset service only) or [http://code.google.com/p/openmetaverse/ SimianGrid].  Please be aware that SimianGrid uses a different set of simulator &amp;lt;-&amp;gt; service protocols than used by ROBUST.  The necessary SimianGrid adaptors are part of the core OpenSimulator distribution.&lt;br /&gt;
&lt;br /&gt;
* Write your own services to run on an external webserver.  This wouldn't be too hard to do in something like PHP, though one would need to work out the currently undocumented wire formats.  If you do this, please do let us know :)&lt;br /&gt;
&lt;br /&gt;
= Performance studies and blog posts =&lt;br /&gt;
&lt;br /&gt;
These provide some interesting data on the performance limitations of OpenSimulator at various points in time.&lt;br /&gt;
&lt;br /&gt;
* [https://lists.berlios.de/pipermail/opensim-users/2010-August/005189.html https://lists.berlios.de/pipermail/opensim-users/2010-August/005189.html] - Some interesting information from Mr Blue.  Physical objects and max avatars are limited by single thread performance in OpenSimulator.&lt;br /&gt;
* [http://www.sciencesim.com/wiki/doku.php/vwperf/start http://www.sciencesim.com/wiki/doku.php/vwperf/start] - Links to ScienceSim performance studies, including some very recent ones.&lt;br /&gt;
* [[Improving Performance]] - An old page from July 2009 detailing some performance issues on OpenSimulator.  Some of these issues are still valid (e.g. ODE issues).&lt;br /&gt;
* [[NHibernate Performance Testing]] — SQLite and MySQL performance tests with NHibernate.&lt;br /&gt;
* [[LibSecondLife performance problems]] - Another old page from November 2007 detailing issues with libsecondlife (now called libopenmetaverse).&lt;br /&gt;
* [http://opensim.cybertechnews.org/?p=71 Experiences from Operating a 3D Region Server in OSGrid - Part 1]&lt;br /&gt;
* [http://opensim.cybertechnews.org/?p=104 Experiences from Operating a 3D Region Server in OSGrid - Part 2]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
==Performance hints==&lt;br /&gt;
&lt;br /&gt;
Here are some specific things you might be able to do to improve performance&lt;br /&gt;
&lt;br /&gt;
===Home Based systems===&lt;br /&gt;
&lt;br /&gt;
The most obvious performance difference between a home based cable/dsl system and a &amp;quot;commercial&amp;quot; server is the upload bandwidth. A typical home system allows 100Kb/s upload with 12Mb/s download, a &amp;quot;commercial&amp;quot; system typically has a &amp;quot;symmetrical&amp;quot; bandwidth of say 12Mb/s UP AND DOWN! &amp;quot;Commercial&amp;quot; systems can essentially buy unlimited bandwidth as needed, but it does get expensive to buy bandwidth that you don't need!&lt;br /&gt;
&lt;br /&gt;
In practice this limits the number of &amp;quot;external&amp;quot; users on a &amp;quot;home system&amp;quot; to 4 or 5, but LAN users (NPCs/bots etc.) are essentially unlimited.&lt;br /&gt;
&lt;br /&gt;
A reasonable strategy (i.e. MY strategy) is to use the home system for experimentation and then move the entire sim to a &amp;quot;commercial&amp;quot; VPS service if the sim gets popular (and produces enough $$$ to pay the freight!) &lt;br /&gt;
&lt;br /&gt;
===Running Squid on your region server as a reverse proxy to the asset server===&lt;br /&gt;
1. Download and install the Squid Proxy from: http://www.squid-cache.org/Download/&amp;lt;br&amp;gt;&lt;br /&gt;
2. Create your [[squid.conf]] configuration file.&amp;lt;br&amp;gt;&lt;br /&gt;
3. Change your asset_server configuration in your OpenSim.ini to point to http://localhost:3128/&amp;lt;br&amp;gt;&lt;br /&gt;
4. Start everything up!&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now assets will be cached in the squid cache on the region server, and will be served up much faster, especially on region restart.&lt;br /&gt;
&lt;br /&gt;
=== GC_NO_EXPLICIT ===&lt;br /&gt;
&lt;br /&gt;
Sometimes this patch applied to mono-svn has helped my sim run a lot faster and not slowly get bogged down.&lt;br /&gt;
&lt;br /&gt;
$mono-svn-root$/mono&lt;br /&gt;
  mono/metadata/boehm-gc.c&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Index: boehm-gc.c&lt;br /&gt;
===================================================================&lt;br /&gt;
--- boehm-gc.c	(revision 105684)&lt;br /&gt;
+++ boehm-gc.c	(working copy)&lt;br /&gt;
@@ -107,6 +107,10 @@&lt;br /&gt;
 void&lt;br /&gt;
 mono_gc_collect (int generation)&lt;br /&gt;
 {&lt;br /&gt;
+	static int no_explicite_gc = 0; if (no_explicite_gc==0) {if (getenv(&amp;quot;GC_NO_EXPLICIT&amp;quot;)) {no_explicite_gc = 1;return;} else {no_explicite_gc = 2;}} else if (no_explicite_gc==1) {&lt;br /&gt;
+		g_print(&amp;quot;\n --------GC_NO_EXPLICIT \n&amp;quot;);&lt;br /&gt;
+		return;&lt;br /&gt;
+		}&lt;br /&gt;
 	MONO_PROBE_GC_BEGIN (generation);&lt;br /&gt;
 	&lt;br /&gt;
 	GC_gcollect ();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Not only this, but I recompile the mono runtime:&lt;br /&gt;
&amp;lt;pre&amp;gt;--with-large-heap=yes&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otherwise, the Sim is limited to 3GB RAM. Probably, this second peice is more important. But still, afterwards it's worth a shot to test with both to see if there is a difference in performance:&lt;br /&gt;
&lt;br /&gt;
 export GC_NO_EXPLICIT=1&lt;br /&gt;
and&lt;br /&gt;
 unset GC_NO_EXPLICIT&lt;br /&gt;
&lt;br /&gt;
What I think, (only a guess) is that Mono starts internally GC thrashing in fishing expeditions to gaining maybe 1k of RAM at time. And by having a large heap (&amp;gt;3GB), it is possible might keep mono less apt to do stop world complete collections as often.&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kira Komarov</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Public_Hypergrid_Nodes</id>
		<title>Public Hypergrid Nodes</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Public_Hypergrid_Nodes"/>
				<updated>2013-02-14T18:02:46Z</updated>
		
		<summary type="html">&lt;p&gt;Kira Komarov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks}} &amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
__TOC__ &lt;br /&gt;
&lt;br /&gt;
== Hypergrid-enabled sims ==&lt;br /&gt;
&lt;br /&gt;
The following is a list of hypergrid-ready nodes that you can use for testing your installation and for linking your world. Please add your public node at the bottom of the list if you wish to help build a web of opensims! Anyone found inserting a grid higher in the list may have their entry removed. &lt;br /&gt;
&lt;br /&gt;
For the time being, and until the security concerns are addressed, we advise you to be careful about who you link to.&lt;br /&gt;
&lt;br /&gt;
== Hypergrid 1.5 - General Grids/Sims ==&lt;br /&gt;
&lt;br /&gt;
The following is a list of hypergrid 1.5-ready nodes that you can use for testing your installation and for linking your world. Please add your public node at the bottom of the list if you wish to help build a web of opensims! Anyone found inserting a grid higher in the list may have their entry removed. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; border=&amp;quot;1&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;&amp;quot;-&lt;br /&gt;
! [[Hypergrid|link-region server and port]] &lt;br /&gt;
! Organization &lt;br /&gt;
! Description &lt;br /&gt;
! Grid Location&lt;br /&gt;
|-&lt;br /&gt;
| vibe.bio-se.info:9000 &lt;br /&gt;
| VIBE / BIO-SE Grid &lt;br /&gt;
| A multi-University effort for Education in Virtual Worlds. Servers are located in the US. Newcommer friendly! For collaboration please e-mail [mailto:stephen.xootfly@gmail.com Stephen Xootfly].&amp;lt;br /&amp;gt;&lt;br /&gt;
Wiki: [http://wiki.bio-se.info Main Page] &amp;lt;br /&amp;gt;&lt;br /&gt;
Registration: [http://vibe.bio-se.info:9000/wifi Signup] &amp;lt;br /&amp;gt;&lt;br /&gt;
| Centered at 5000,5000&lt;br /&gt;
|-&lt;br /&gt;
| ucigrid00.nacs.uci.edu:8002 &lt;br /&gt;
| UCI Grid &lt;br /&gt;
| [http://ucigrid00.nacs.uci.edu:8002 UCIGrid] V 0.7.1 (post-fixes) &lt;br /&gt;
| Centered at 5000,5000&lt;br /&gt;
|-&lt;br /&gt;
| hypergrid.org:8002 &lt;br /&gt;
| Metropolis Metaversum&lt;br /&gt;
| [http://hypergrid.org:8002 Metropolis Metaversum] V 0.7.4 (Dev) &lt;br /&gt;
| Centered at 7000,7000&lt;br /&gt;
|-&lt;br /&gt;
| login.germangrid.de:8002 &lt;br /&gt;
| GermanGrid &lt;br /&gt;
| [http://www.germangrid.de GermanGrid] V 0.71(dev) &lt;br /&gt;
| Centered at 8000,8000&lt;br /&gt;
|-&lt;br /&gt;
| marlokir.selfip.net:9000 &lt;br /&gt;
| Marlokir &lt;br /&gt;
| Just a small standalone for testing running on version 0.7.1 (dev). &lt;br /&gt;
It will probably be online only temporarily. &lt;br /&gt;
&lt;br /&gt;
| Centered at 4500,4500&lt;br /&gt;
|-&lt;br /&gt;
| gridnirvana.net:8002:Rhiga &lt;br /&gt;
| Jez's World &lt;br /&gt;
| A small private Estate, previously stand alone - but for now part of GridNirvana. &lt;br /&gt;
Please feel free to pop over and visit. &lt;br /&gt;
&lt;br /&gt;
| Centered at 6500,6500&lt;br /&gt;
|-&lt;br /&gt;
| virtual.aiai.ed.ac.uk:8002:Openvue &lt;br /&gt;
| Openvue &lt;br /&gt;
| Openvue grid at Virtual University of Edinburgh &lt;br /&gt;
| Centered at 1000,1000&lt;br /&gt;
|-&lt;br /&gt;
| virtual.aiai.ed.ac.uk:8002:Vue-5000 &lt;br /&gt;
| Vue-5000 &lt;br /&gt;
| Openvue grid at Virtual University of Edinburgh &lt;br /&gt;
| Centered at 5000,5000&lt;br /&gt;
|-&lt;br /&gt;
| virtual.aiai.ed.ac.uk:8002:Vue-9000 &lt;br /&gt;
| Vue-9000 &lt;br /&gt;
| Openvue grid at Virtual University of Edinburgh &lt;br /&gt;
| Centered at 9000,9000&lt;br /&gt;
|-&lt;br /&gt;
| 145.99.250.20:8002 &lt;br /&gt;
| DWGrid &lt;br /&gt;
| DWGrid &lt;br /&gt;
| Centered at 7000,7000&lt;br /&gt;
|-&lt;br /&gt;
| metaversesims.net:9000 &lt;br /&gt;
| Metaverse Sims &lt;br /&gt;
| 6-region standalone hypergrid on V 0.7.6 Dev (HG 2.0 enabled as of 02 Nov 12) &lt;br /&gt;
| Centred at 9000,9000&lt;br /&gt;
|-&lt;br /&gt;
| opensim.betatechnologies.info:8002 &lt;br /&gt;
| Beta Technologies OpenSimulator Grid (btgrid) &lt;br /&gt;
| Grid for internal development, mostly for academic research and backups from old sims. V. 0.7.5 Dev (also HyperGate-enabled). Currently on a low-bandwidth server so HG access might not be very good. &lt;br /&gt;
| Centered at 3650,3650&lt;br /&gt;
|-&lt;br /&gt;
| hippo.is-a-geek.com:8002 &lt;br /&gt;
| The Bloomfield Grid &lt;br /&gt;
| This is a personal grid for my friends and familly, However we welcome others with a smile. V. 0.7.0.1 (We are also Hyper Gate enabled) &lt;br /&gt;
| Centered at 5000,5000&lt;br /&gt;
|-&lt;br /&gt;
| tritongrid.com:8002 &lt;br /&gt;
| Triton Grid &lt;br /&gt;
| This is a 100+ region Public grid. All are welcome (We are also Hyper Gate enabled in several regions throughout the grid) (HG 1.5X Interface 7 Runing the latest .71Dev revs. maintains creator data) &lt;br /&gt;
| Centered at 9000,9000&lt;br /&gt;
|-&lt;br /&gt;
| condensationland.com:9000 &lt;br /&gt;
| Condensation Land &lt;br /&gt;
| 10 regions &lt;br /&gt;
| Centered at 7789, 7789&lt;br /&gt;
|-&lt;br /&gt;
| chazzmac.webhop.org:9000 &lt;br /&gt;
| eden 16 regions &lt;br /&gt;
| full 3 story hidden freebie mall, HyperGate, WiFi at http://chazzmac.webhop.org:9000/wifi/ &lt;br /&gt;
| Centered at 3917, 4144&lt;br /&gt;
|-&lt;br /&gt;
| metaversesailing.com:9000 &lt;br /&gt;
| Sailing Grid &lt;br /&gt;
| A D2 grid on V 0.7.2(release)a .Net hosted 16 region mega with support regions &lt;br /&gt;
| Centered at 7000,7000&lt;br /&gt;
|-&lt;br /&gt;
| ogzoco.no-ip.org:8002 &lt;br /&gt;
| Ogzoco Grid &amp;amp;amp; RaionFort &lt;br /&gt;
| Mentolyptus Destiny testing &amp;amp;amp; work grid. Hypergrid 1.5, OpenSimulator 0.7.1 (Currently OsGrid Revision 0.7.1.dev.80f9022 - 10-22-2010). Gateway to multiple grids on map. Photos: http://www.flickr.com/photos/mentolyptus/ - Twitter: https://twitter.com/Ogzoco - EMail: ogzoco@gmail.com &lt;br /&gt;
| Centered at 7852, 7852&lt;br /&gt;
|-&lt;br /&gt;
| grid.ansky.ca:8002 &lt;br /&gt;
| AnSky Grid &lt;br /&gt;
| 10 regions &lt;br /&gt;
| Centered at 7100, 7100&lt;br /&gt;
|-&lt;br /&gt;
| sim-world.org:8003 &lt;br /&gt;
| Sim-World Welcome Center &lt;br /&gt;
| 41 regions &lt;br /&gt;
| Centered at 10000, 10000&lt;br /&gt;
|-&lt;br /&gt;
| unethika.kicks-ass.net:8002 &lt;br /&gt;
| unethika &lt;br /&gt;
| It works (most of the time) and it's fun! Come via hg hop or snag an avatar at [http://unethika.kicks-ass.net/ http://unethika.kicks-ass.net/]&amp;amp;nbsp;! We also run a working(ish) Freeswitch server. &amp;amp;lt;no guarantees, of course&amp;amp;nbsp;:P&amp;amp;gt; &lt;br /&gt;
| Centered at 7500, 7500&lt;br /&gt;
|-&lt;br /&gt;
| fleepgrid.com:8002 &lt;br /&gt;
| FleepGrid &lt;br /&gt;
| Personal research grid operated by Fleep Tuque, 8-12 sims at any given time. Grid hoppers and testers welcome. Running Opensim 0.7.2 RC2 Release HG 1.5 (i7). Gateway regions available at (1013,1013), (5013,5013), and (13013,13013). See [http://fleepgrid.com http://fleepgrid.com] for more information or follow Fleep at [http://twitter.com/fleep http://twitter.com/fleep]. &lt;br /&gt;
| Centered at 9013, 9013&lt;br /&gt;
|-&lt;br /&gt;
| viradu.com:9000 &lt;br /&gt;
| Viradu Science Fiction World &lt;br /&gt;
| [[Image:Vban.jpg|thumb|left|180px]]12 Science Fiction themed regions run by Michael Blade Sci-fi blogger dedicated to writers and those who love it. Hypergrid Teleporters, Builders welcome, free land grab, rules apply. Tell others about us...Join in the fun! =&amp;amp;gt; [http://viradu.com http://viradu.com]&amp;lt;br /&amp;gt;How to build your own virtual world here =&amp;amp;gt; [http://rocketvirtual.com RocketVirtual.com] &lt;br /&gt;
| Centered at 5001, 5001&lt;br /&gt;
|-&lt;br /&gt;
| 62.40.147.45:9090 &lt;br /&gt;
| Psychedelia Grid &lt;br /&gt;
| The home of psychedelic music. This Grid is for all fans of psychedelic music. Watch the bands playing at the festival and stay over night in your tent. &lt;br /&gt;
| centered at 6000, 5990&lt;br /&gt;
|-&lt;br /&gt;
| '''logicamp.dyndns.org:8002:logicamp''' &lt;br /&gt;
| Logicamp &lt;br /&gt;
| [http://www.logicamp.com/ Logicamp] is a virtual world specialized in camp-site management and virtual tourism. You can visit it throughout our cable network. &lt;br /&gt;
| Centered at 8000, 8000&lt;br /&gt;
|-&lt;br /&gt;
| logicamp.dyndns.org:8002:SPA1&amp;lt;br /&amp;gt; &lt;br /&gt;
| [http://www.logicamp.com logicamp]&amp;lt;br /&amp;gt; &lt;br /&gt;
| Megaregion Entrance (7997,7994)&amp;lt;br /&amp;gt;Spa-Francorchamp[[Image:Snapshot 037.png|thumb|none|128px]]60 plot Megaregion - [http://logicamp.com logicamp]&amp;lt;br /&amp;gt; &lt;br /&gt;
| Centered at 7900, 7900&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| map.terravirtuavw.com:8002:Nexus&amp;lt;br /&amp;gt; &lt;br /&gt;
| [http://www.terravirtuavw.com Terra Virtua]&amp;lt;br /&amp;gt; &lt;br /&gt;
| The Terra Virtua intergrid nexus.&amp;lt;br /&amp;gt; &lt;br /&gt;
| 6000,6000&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| hg.osgrid.org:80:WestHall &lt;br /&gt;
| Possible future home of Champlain College in Burlington, Vermont&amp;lt;br /&amp;gt; &lt;br /&gt;
| When there, check the map and TP to surrounding regions that are populated with &amp;quot;stuff&amp;quot;br&amp;amp;gt; &lt;br /&gt;
| Centered at 6100, 6107&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| www.pmgrid.org:8002 &lt;br /&gt;
| [http://www.pmgrid.org PMGrid] &lt;br /&gt;
| Nursery grid to enable people to try their builds at little or no cost. Land available to try your ideas without charge. &lt;br /&gt;
| Centered at 7000,7000&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 91.121.153.154:8002 &lt;br /&gt;
| [http://www.opensimserver.tk Sofitek] &lt;br /&gt;
| Sofitek grid, the virtual offices of Sofitek, a web development company. Includes a small selection of free avatars and a hypergate portal to other worlds. Check out the books in the office, and talk to chatbot Lady Sofitek. &lt;br /&gt;
| Centered at 10000,10000&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [AstralGrid] &lt;br /&gt;
| [http://astral.dyndns-server.com Homepage] &lt;br /&gt;
| 4 Freebies and 1 sandbox Region &lt;br /&gt;
| Centered at 10000,10000&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| http://clonelife.eu:8002:Welcome&amp;lt;br /&amp;gt; &lt;br /&gt;
| Clonelife.eu &lt;br /&gt;
| Website at http://clonelife.eu/ &lt;br /&gt;
| Centered at 9000,9000&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| http://YourSimSpot.com:9000:YourSimSpot &lt;br /&gt;
| [http://YourSimSpot.Com YourSimSpot.Com] &lt;br /&gt;
| A hosting solution for 3D virtual worlds. &lt;br /&gt;
| Centered at 1000,1000&lt;br /&gt;
|-&lt;br /&gt;
| opensim.nl:58002 &lt;br /&gt;
| [http://bi.pndo.nl '''BUSINESS INSPIRE''']&lt;br /&gt;
| '''[opensim.nl:58002:OSNL-PLAZA]''' &lt;br /&gt;
'''Landingpoint coordinates: 127,127,27'''&amp;lt;br /&amp;gt;   &lt;br /&gt;
The central HYPERGRID service for all GRIDS in the Netherlands. Please feel welcome to visit our PLAZA and jump to other DUTCH GRID's like our RolePlay GRID. Send a mail to: mailto:silverj@xs4all.nl if you like to connect your grid in our MAP!&lt;br /&gt;
| Centered at 8000,8000&lt;br /&gt;
|-&lt;br /&gt;
| rp.opensim.nl:28002 &lt;br /&gt;
| [http://bi.pndo.nl '''BUSINESS INSPIRE''']&lt;br /&gt;
| '''[rp.opensim.nl:28002:RPHUB]''' &lt;br /&gt;
'''Landingpoint coordinates: 127,127,27'''&amp;lt;br /&amp;gt;   &lt;br /&gt;
The International RolePlay GRID located in the Netherlands. Please feel welcome to visit our RPHUB and jump into RolePlay on one of the islands. You can get a free account at http://rp.opensim.nl:28002/wifi/index.html. There are posibilities to have your own RolePlay SIM in our RPGRID. For more information send a mail to: mailto:silverj@xs4all.nl&lt;br /&gt;
| Centered at 9000,9000&lt;br /&gt;
|-&lt;br /&gt;
| '''62.40.147.45:9100''' &lt;br /&gt;
| Austria Grid &lt;br /&gt;
| A virtual copy of the country Austria. This Grid is for all those who want to find their hometown in the virtual landscape of a virtual Austria.This Grid is not only for creating a virtual Austria, it's a meeting point, a place for communication. For permanent link-exchange, write an email. &lt;br /&gt;
| centered at 7000, 6990&lt;br /&gt;
|-&lt;br /&gt;
| http://74.170.99.194:9000&lt;br /&gt;
| M001 http://www.sirius-engineering.org/aboutsiriusengineeringamp7portals/&lt;br /&gt;
| 36 Region Estate, Hypergrid enabled with Primary Hypergate located on Region 000 at coordinates 36,40,25. Server built and maintained by Dolph Gehlbard.&lt;br /&gt;
| Starting Region Centered at 9221,9881&lt;br /&gt;
|-&lt;br /&gt;
| http://hg.osgrid.org:80:imagenhariaead2&lt;br /&gt;
| [http://hg.osgrid.org:80 imagenhariaead2]  &lt;br /&gt;
| The Internet as a tool of education. Learning is action. Otherwise it is just information. Moodel/Sloodle/Pivote - 24h Online – http://bitly.com/imagenharia - http://vendasmais.com/moodle&amp;lt;br /&amp;gt; &lt;br /&gt;
| Centered at 10009, 10005&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| hgplaza.no-ip.org:9000:Hg Plaza&lt;br /&gt;
| Hypergrid Plaza (24/24)&lt;br /&gt;
| General Meeting Point, trying to establish a unique database for freinship,groups, searches for Hypergids Standalones&lt;br /&gt;
To Direct Tel|eport Copy This to your map!!!&lt;br /&gt;
&lt;br /&gt;
hgplaza.no-ip.org:9000:Hg Plaza&lt;br /&gt;
| Centered at 9999,9999&lt;br /&gt;
 Hg PLaza 2k 1999.1999&lt;br /&gt;
 Hg Plaza 5k 5999,5999&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| iu1.typnetwork.com:8002:Pitic &lt;br /&gt;
| Zairus&lt;br /&gt;
| Island continent&lt;br /&gt;
| Centered at 10000,10000&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hypergrid 1.5 - Education oriented grid/sims ==&lt;br /&gt;
&lt;br /&gt;
* https://sites.google.com/a/opensim-edu.org/educational-institutions-in-opensim/home - A list of OpenSimulator educational grids, some Hypergrid enabled. This list has an easy to use form to add new institutions!&lt;br /&gt;
&lt;br /&gt;
== External directories of Hypergrid-enabled sims ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.gridhop.net GridHop] &lt;br /&gt;
* [http://www.hyperica.com Hyperica]&lt;br /&gt;
* [http://thehypergates.com/ The HyperGates] -- The first dynamic, auto-updating HyperGrid directory for HyperGrid enabled standalones &amp;amp; grids. Download the HyperGate from our site now and Join the HyperGate Network. The most reliable HyperGrid directory.&lt;br /&gt;
* [http://www.hgurl.com hgurl]&lt;br /&gt;
&lt;br /&gt;
== Old List (HG 1.0) ==&lt;br /&gt;
&lt;br /&gt;
Keeping this here for historical reasons, but most of these don't work anymore.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! [[Hypergrid|link-region server and port]] &lt;br /&gt;
! Organization &lt;br /&gt;
! Description &lt;br /&gt;
! Grid Location&lt;br /&gt;
|-&lt;br /&gt;
| '''osl2.nac.uci.edu:9006''' &lt;br /&gt;
| University of California, Irvine &lt;br /&gt;
| The &amp;quot;UCI Welcome&amp;quot; region connected to OSGrid. It is run by Diva (Crista Lopes) on a machine owned by the University of California, Irvine. You can link to it as a way to link to OSGrid. &lt;br /&gt;
| OSGrid is centered at 10,000, 10,000&lt;br /&gt;
|-&lt;br /&gt;
| '''osl3.nac.uci.edu:9000''' &lt;br /&gt;
| University of California, Irvine &lt;br /&gt;
| The &amp;quot;UC Irvine&amp;quot; region connected to OSGrid, neighboring Wright Plaza. You can link to it as a way to link to OSGrid. &lt;br /&gt;
| OSGrid is centered at 10,000, 10,000&lt;br /&gt;
|-&lt;br /&gt;
| '''ucigrid02.nacs.uci.edu:9000''' &lt;br /&gt;
| University of California, Irvine &lt;br /&gt;
| The UCI Grid &lt;br /&gt;
| UCIGrid is centered at 8,888, 8,888&lt;br /&gt;
|-&lt;br /&gt;
| '''ucigrid04.nacs.uci.edu:9003''' &lt;br /&gt;
| University of California, Irvine &lt;br /&gt;
| The UCI Grid, region &amp;quot;Gateway 3000&amp;quot;. Link your lower-1,000's grid to this node in order to bridge to grids in the 10,000's. &lt;br /&gt;
| This node is positioned at 3,000, 3,000&lt;br /&gt;
|-&lt;br /&gt;
| '''ucigrid04.nacs.uci.edu:9007''' &lt;br /&gt;
| University of California, Irvine &lt;br /&gt;
| The UCI Grid, region &amp;quot;Gateway 7000&amp;quot;. Link your 10,000's grid to this node in order to bridge to grids in the lower-1,000's. &lt;br /&gt;
| This node is positioned at 7,000, 7,000.&lt;br /&gt;
|-&lt;br /&gt;
| '''www.meanduland.com:9124''' &lt;br /&gt;
| Grid Meanduland &lt;br /&gt;
| [http://www.menduland.com], Meanduland - by Ayana and Frank Northmead. Residential grid and playground for couples. Quite, peaceful and fun. Regular live music concerts and coming soon - rpg's, adventure simulations, private beaches, sail boat racing, dune buggy racing, and much much more. All welcome, no membership or landownership requirements, you just need desire to have fun and be a good neighbor. Regions available at cost during Alpha and Beta development of OpenSimulator. &lt;br /&gt;
| Centered at 8000, 8000&lt;br /&gt;
|-&lt;br /&gt;
| '''hypergrid.cyberlandia.net:9100''' &lt;br /&gt;
| Cyberlandia &lt;br /&gt;
| The &amp;quot;Cyberlandia Gw&amp;quot; region. http://www.cyberlandia.net Metaverso italiano 3D, more to 250 region and 1000 users. You can link to it as a way to link to Cyberlandia. &lt;br /&gt;
| Cyberlandia is centered at&amp;amp;nbsp;???&lt;br /&gt;
|-&lt;br /&gt;
| '''venezia.cyberlandia.net:9100''' &lt;br /&gt;
| Cyberlandia &lt;br /&gt;
| The &amp;quot;Osgrid Gw&amp;quot; region connected to Cyberlandia grid http://www.cyberlandia.net. Search on map &amp;quot;Cyberlandia grid&amp;quot; You can link to it as a way to link to OSGrid. &lt;br /&gt;
| OSGrid is centered at 10,000, 10,000&lt;br /&gt;
|-&lt;br /&gt;
| '''regions.ralf-haifisch.biz:9000:Sharkland Tropical 1''' &lt;br /&gt;
| Ralf Haifisch on osgrid &lt;br /&gt;
| The &amp;quot;Sharkland Tropical&amp;quot; region connected to OSGrid. German welcome aerea, Freebie aerea, region rental, pretty tropical regions &lt;br /&gt;
| Centered at 10000,10000 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''joomla-italia.net:9000''' &lt;br /&gt;
| Social Network Italia &lt;br /&gt;
| The &amp;quot;SNI City&amp;quot; region connected to SNI (Social Network Italia) grid http://www.opensim-italia.net. This grid is connected with Osgrid,Collateral World,Francogrid and Darwin &lt;br /&gt;
| Centered at&amp;amp;nbsp;???&lt;br /&gt;
|-&lt;br /&gt;
| '''collateral.opensim-italia.net:9000''' &lt;br /&gt;
| Part of Social Network Italia &lt;br /&gt;
| Collateral World &lt;br /&gt;
| Centered at&amp;amp;nbsp;???&lt;br /&gt;
|-&lt;br /&gt;
| '''88.191.79.199:9050''' &lt;br /&gt;
| Francogrid &lt;br /&gt;
| Francogrid node, connected to &amp;quot;City&amp;quot;, behind the welcome land of Francogrid &amp;quot;Orion&amp;quot; &lt;br /&gt;
| Centered at 1000 1000&lt;br /&gt;
|-&lt;br /&gt;
| '''94.23.8.158:9300''' &lt;br /&gt;
| Le Monde de Darwin &lt;br /&gt;
| The Lost World of Darwin http://www.LeMondedeDarwin.com. [[Image:Hypergrid.jpg|200px]] &lt;br /&gt;
| Centered at 1000 1000&lt;br /&gt;
|-&lt;br /&gt;
| '''sg.k-grid.com:9000''' &lt;br /&gt;
| K-Grid &lt;br /&gt;
| The Kool grid for the Kool KidZ . Feel free to visit us. The main Gateway is located at 3700,3700 so take that in account before any HyperJump. Adress updated 02/07/09 &lt;br /&gt;
| This node is located at 3700,3700&lt;br /&gt;
|-&lt;br /&gt;
| '''hypergrid.org:8002''' &lt;br /&gt;
| METROPOLIS-Grid &lt;br /&gt;
| The Region &amp;quot;Center-World&amp;quot; connected to the METROPOLIS-Grid http://metropolis.hypergrid.org . German Grid with a lot of free Content and free SIM-hosting. Connected via HG to the most of the Grids listed here &lt;br /&gt;
| Centered at 7000,7000&lt;br /&gt;
|-&lt;br /&gt;
| '''ascent.bluewallgroup.com:9910''' &lt;br /&gt;
| BlueWall Information Technologies &lt;br /&gt;
| This region is in a good proximity @ (6000,6000) for intermediate jumps to OSGrid from grids in the (2000,2000) range, or any region within 4096 units. [[Image:Hypernaut 001.png|thumb|none|150px|Get your Hypernaut here :)]] &lt;br /&gt;
| Centered at 6000,6000&lt;br /&gt;
|-&lt;br /&gt;
| '''http://myopengrid.com:9005/''' &lt;br /&gt;
| '''MyOpenGrid''' &lt;br /&gt;
| Myopengrid is connected to osl2.nac.uci.edu &amp;quot;Osgrid Gateway&amp;quot; and 88.191.79.199 9050 &amp;quot;Franco Grid&amp;quot; &lt;br /&gt;
| Centered at 7000,7000&lt;br /&gt;
|-&lt;br /&gt;
| '''cuonsim1.de:9300''' &lt;br /&gt;
| Cuon-Grid &lt;br /&gt;
| Cuon-Grid is a little grid and has some Main Sims with linux themes, server are in Germany. To login in to the grid use this http://sim-linuxmain.org:8081/CuonGrid/index.html. There are free sims for testing. &lt;br /&gt;
| Centered at 10,000, 10,000&lt;br /&gt;
|-&lt;br /&gt;
| '''metaversesims.net:9000''' &lt;br /&gt;
| Metaverse Sims &lt;br /&gt;
| 6-region standalone hypergrid on V. 0.7.2 (Dev)&lt;br /&gt;
| Centered at 9000, 9000 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''87.230.89.74:9000''' &lt;br /&gt;
| SCHWARZE WELT &lt;br /&gt;
| inworld location of www.schwarze-welle.de , the maybe biggest dark music streaming readio &lt;br /&gt;
| 100000 10000 &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''peak.sciencesim.com:9001''' &lt;br /&gt;
| ScienceSim &lt;br /&gt;
| [http://www.sciencesim.com/ ScienceSim] is a virtual world created for the high performance computing community for scientific visualizations, a number of interesting real world terrains (Mt St Helens and Yellowstone Park) and some astronomical simulations. And some useful, BSD-licensed content. &lt;br /&gt;
| Centered at 10000,10000&lt;br /&gt;
|-&lt;br /&gt;
| '''alpha.bubblecloud.org:9000''' &lt;br /&gt;
| Bubble Cloud &lt;br /&gt;
| The alpha 00 is the entrance area to bubble cloud grid. Bubble cloud is test grid where anyone can experiment. If you build something please do it in medieval fantasy setting for others to enjoy. &lt;br /&gt;
| Centered at 10,000, 10,000&lt;br /&gt;
|-&lt;br /&gt;
| '''opensim.m34.mx-host.de:9090''' &lt;br /&gt;
| OpenSIM.de Sim1 &lt;br /&gt;
| [http://www.opensim.de OpenSim.de], 4 Server (Linux/Windows), hypergrided standalones, 16 Regions, German Users (Deutsche Benutzer), Live-Support, IRC-Gateway, Wiki, FAQ, Howto´s, Downloads. Connected to most of the Grids and some hypergrided standalones. &lt;br /&gt;
| Centered at 4400,4400&lt;br /&gt;
|-&lt;br /&gt;
| '''64.150.180.188:9031''' &lt;br /&gt;
| Virtual World Trade Center &lt;br /&gt;
| [http://PleasurePlanet.net], The VWTC. A repository for freebie items to share with the OS community. Weekly oar files will be made freely available on 4shared.com. &lt;br /&gt;
| VWTC is at 3003, 3003&lt;br /&gt;
|-&lt;br /&gt;
| '''condensationland.com:9000''' &lt;br /&gt;
| Zonja Capalini &lt;br /&gt;
| Condensation Land, 10 regions &lt;br /&gt;
| Centered at 7789, 7789&lt;br /&gt;
|-&lt;br /&gt;
| '''66.240.232.94:9010''' &lt;br /&gt;
| Snoopy Pfeffer &lt;br /&gt;
| OSGrid, Samsara, freebie shopping region &lt;br /&gt;
| Centered at 10006, 9999&lt;br /&gt;
|-&lt;br /&gt;
| '''66.240.232.94:9011''' &lt;br /&gt;
| Snoopy Pfeffer &lt;br /&gt;
| OSGrid, Snoopies, dance club and event region &lt;br /&gt;
| Centered at 10005, 9999&lt;br /&gt;
|-&lt;br /&gt;
| '''twistedsky.net:9000''' &lt;br /&gt;
| Twisted Sky &lt;br /&gt;
| Welcome region on the Twisted Sky World Grid (at 998, 1000) - http://twistedsky.net &lt;br /&gt;
| Centered at 1000, 1000&lt;br /&gt;
|-&lt;br /&gt;
| '''www.xn--tln-tna.net:8002''' &lt;br /&gt;
| Tlön &lt;br /&gt;
| Tlön, Uqbar and Orbis Tertius - http://www.tlön.net (http://www.xn--tln-tna.net/) &lt;br /&gt;
| Centered at 7650, 7650&lt;br /&gt;
|-&lt;br /&gt;
| '''www.pmgrid.org:9020''' &lt;br /&gt;
| PMGrid &lt;br /&gt;
| PMGrid is a set of areas for grid development prior to implementation so there is no specific theme. Visit here and see a varied range of builds and perhaps get some ideas for yourself.[http://pmgrid.julpet.ath.cx http://www.pmgrid.org] &lt;br /&gt;
| centered at 7000, 7000&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| YourSimSpot.com:9000&amp;lt;br /&amp;gt;&lt;br /&gt;
| [http://YourSimSpot.com YourSimSpot]&amp;lt;br /&amp;gt;&lt;br /&gt;
| Main region at YourSimSpot (1000,1000) - [http://YourSimSpot.com YourSimSpot] &lt;br /&gt;
| Centered at 1000, 1000&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| my3dworld.org:9000&amp;lt;br /&amp;gt;&lt;br /&gt;
| My3dWorld&amp;lt;br /&amp;gt;&lt;br /&gt;
| Main region at My3dworld (7900,7900)&amp;lt;br /&amp;gt;Home of Johnny 5 bot[[Image:Johnny5.jpg|thumb|none|128px|Meet Johnny 5]]16 plot Megaregion has Hypergate, linked to several other grids on map - [http://my3dworld.org My3dWorld]&amp;lt;br /&amp;gt;&lt;br /&gt;
| Centered at 7900, 7900&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| sim-world.org:8003&amp;lt;br /&amp;gt;&lt;br /&gt;
| www.sim-world.org&amp;lt;br /&amp;gt;&lt;br /&gt;
| Main region at sim-world island (10000,10000)&amp;lt;br /&amp;gt;41 regions has teleport board linked to several other regions on map &amp;lt;br /&amp;gt;&lt;br /&gt;
| Centered at 10000, 10000&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| universi.servegame.org:9000&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &lt;br /&gt;
| Shatar Lorefield [Universi&amp;amp;nbsp;Legacy]&lt;br /&gt;
| &lt;br /&gt;
Main region at Oasis (5000, 5000)&lt;br /&gt;
&lt;br /&gt;
Hypergrid enabled&amp;amp;nbsp;Standalone sim. Need some people to populate this Desert World.&lt;br /&gt;
&lt;br /&gt;
| Centered at 5000, 5000&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
[[Category:Hypergrid]]&lt;/div&gt;</summary>
		<author><name>Kira Komarov</name></author>	</entry>

	</feed>