<?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=BlueWall</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=BlueWall"/>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Special:Contributions/BlueWall"/>
		<updated>2026-05-31T08:41:06Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.19.9</generator>

	<entry>
		<id>http://opensimulator.org/wiki/OsRevokeScriptPermissions</id>
		<title>OsRevokeScriptPermissions</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/OsRevokeScriptPermissions"/>
				<updated>2015-02-27T20:12:58Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{osslfunc&lt;br /&gt;
|threat_level=Severe '''(Pending Peer Review)'''&lt;br /&gt;
|function_syntax=void osRevokeScriptPermissions(key revoked_key, string function)&lt;br /&gt;
|ossl_example=&amp;lt;source lang=&amp;quot;lsl&amp;quot;&amp;gt;&lt;br /&gt;
list functions = [&amp;quot;osNpcCreate&amp;quot;, &amp;quot;osNpcGetPos&amp;quot;, &amp;quot;osNpcLoadAppearance&amp;quot;, &amp;quot;osNpcGetRot&amp;quot;, &amp;quot;osNpcMoveTo&amp;quot;,&lt;br /&gt;
                &amp;quot;osNpcRemove&amp;quot;, &amp;quot;osNpcSaveAppearance&amp;quot;, &amp;quot;osNpcSay&amp;quot;, &amp;quot;osNpcSetRot&amp;quot;,&amp;quot;osNpcSit&amp;quot;, &amp;quot;osNpcStand&amp;quot;,&lt;br /&gt;
                &amp;quot;osNpcPlayAnimation&amp;quot;, &amp;quot;osNpcStopAnimation&amp;quot;,&amp;quot;osNpcMoveToTarget&amp;quot;, &amp;quot;osNpcStopMoveToTarget&amp;quot;,&lt;br /&gt;
                &amp;quot;osOwnerSaveAppearance&amp;quot;, &amp;quot;osAgentSaveAppearance&amp;quot;];&lt;br /&gt;
        &lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llSetColor(&amp;lt;1,0,0&amp;gt;,ALL_SIDES);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    touch_start(integer det)&lt;br /&gt;
    {&lt;br /&gt;
        llSay(0, &amp;quot;Enable&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
        osGrantScriptPermissions(llGetOwner(), functions);  &lt;br /&gt;
        state enabled;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
state enabled&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llSetColor(&amp;lt;0,1,0&amp;gt;,ALL_SIDES);&lt;br /&gt;
        llSay(0, &amp;quot;ossl functions enabled&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    touch_start(integer det)&lt;br /&gt;
    {&lt;br /&gt;
        osRevokeScriptPermissions(llGetOwner(), functions);&lt;br /&gt;
        state default;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
This example will allow the owner of this object to create and manipulate NPCs. To allow other possibilities, change the llGetOwner() to any key for another avatar or group. The osRevokeScriptPermissions uses the same syntax to remove previuosly granted permissions.&lt;br /&gt;
|description=Dynamically allow/disallow ossl execution to owner/creator/group by function name.&lt;br /&gt;
|&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/OsGrantScriptPermissions</id>
		<title>OsGrantScriptPermissions</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/OsGrantScriptPermissions"/>
				<updated>2015-02-27T20:10:33Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{osslfunc&lt;br /&gt;
|threat_level=Severe '''(Pending Peer Review)'''&lt;br /&gt;
|function_syntax=void osGrantScriptPermissions(key allowed_key, string function)&lt;br /&gt;
|ossl_example=&amp;lt;source lang=&amp;quot;lsl&amp;quot;&amp;gt;&lt;br /&gt;
list functions = [&amp;quot;osNpcCreate&amp;quot;, &amp;quot;osNpcGetPos&amp;quot;, &amp;quot;osNpcLoadAppearance&amp;quot;, &amp;quot;osNpcGetRot&amp;quot;, &amp;quot;osNpcMoveTo&amp;quot;,&lt;br /&gt;
                &amp;quot;osNpcRemove&amp;quot;, &amp;quot;osNpcSaveAppearance&amp;quot;, &amp;quot;osNpcSay&amp;quot;, &amp;quot;osNpcSetRot&amp;quot;,&amp;quot;osNpcSit&amp;quot;, &amp;quot;osNpcStand&amp;quot;,&lt;br /&gt;
                &amp;quot;osNpcPlayAnimation&amp;quot;, &amp;quot;osNpcStopAnimation&amp;quot;,&amp;quot;osNpcMoveToTarget&amp;quot;, &amp;quot;osNpcStopMoveToTarget&amp;quot;,&lt;br /&gt;
                &amp;quot;osOwnerSaveAppearance&amp;quot;, &amp;quot;osAgentSaveAppearance&amp;quot;];&lt;br /&gt;
        &lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llSetColor(&amp;lt;1,0,0&amp;gt;,ALL_SIDES);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    touch_start(integer det)&lt;br /&gt;
    {&lt;br /&gt;
        llSay(0, &amp;quot;Enable&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
        osGrantScriptPermissions(llGetOwner(), functions);  &lt;br /&gt;
        state enabled;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
state enabled&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llSetColor(&amp;lt;0,1,0&amp;gt;,ALL_SIDES);&lt;br /&gt;
        llSay(0, &amp;quot;ossl functions enabled&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    touch_start(integer det)&lt;br /&gt;
    {&lt;br /&gt;
        osRevokeScriptPermissions(llGetOwner(), functions);&lt;br /&gt;
        state default;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
This example will allow the owner of this object to create and manipulate NPCs. To allow other possibilities, change the llGetOwner() to any key for another avatar or group.&lt;br /&gt;
|description=Dynamically allow ossl execution to owner/creator/group by function name.&lt;br /&gt;
|&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Category:OSSL_Functions</id>
		<title>Category:OSSL Functions</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Category:OSSL_Functions"/>
				<updated>2015-02-27T20:08:50Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: /* Script Permissions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Current OSSL Functions Implemented  ==&lt;br /&gt;
&lt;br /&gt;
Updated OSSL Functions as of OpenSim DEV 0.7.4 r/21068 17th November, 2012&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''!''' Partial Update December.10.2010 With commits of this date some functions have been corrected to use standard ossl conventions. The previous are tagged as deprecated with their replacement shown. The deprecated functions will advise you with a msg that they have been deprecated and to use new osFunction name instead. Further Updates are needed to complete existing list of osFunctions.&lt;br /&gt;
&lt;br /&gt;
Special Note: Some Functions as shown use '''&amp;quot;double&amp;quot;''' as a Value instead of '''&amp;quot;float&amp;quot; '''these vary for purposes of accuracy as shown Below. &lt;br /&gt;
&lt;br /&gt;
(Float is short for &amp;quot;floating point&amp;quot;, and just means a number with a point something on the end.) &lt;br /&gt;
&lt;br /&gt;
The difference between the two is in the size of the numbers that they can hold. For float, you can have up to 7 digits in your number. For doubles, you can have up to 16 digits. To be more precise, here's the official size: ( float: 1.5 × 10-45 to 3.4 × 1038 ) ( double: 5.0 × 10-324 to 1.7 × 10308 ) &lt;br /&gt;
&lt;br /&gt;
Note that some function takes doubles as arguments but may be internally down-casted to floats.&lt;br /&gt;
&lt;br /&gt;
Each of these functions has an threat level associated to it. See [[Threat level]] for more information and an overview of each function's level.&lt;br /&gt;
&lt;br /&gt;
=== Avatars ===&lt;br /&gt;
{{multicol}}&lt;br /&gt;
*[[osGetAgentIP]] &lt;br /&gt;
*[[osGetAgents]]&lt;br /&gt;
*[[osGetAvatarList]] &lt;br /&gt;
*[[osAvatarName2Key]]&lt;br /&gt;
*[[osAvatarPlayAnimation]] &lt;br /&gt;
*[[osAvatarStopAnimation]] &lt;br /&gt;
*[[osAgentSaveAppearance]]&lt;br /&gt;
*[[osOwnerSaveAppearance]]&lt;br /&gt;
*[[osTeleportAgent]] &lt;br /&gt;
*[[osTeleportOwner]] &lt;br /&gt;
*[[osKickAvatar]]&lt;br /&gt;
*[[osCauseDamage]] &lt;br /&gt;
*[[osCauseHealing]]&lt;br /&gt;
*[[osGetHealth]]&lt;br /&gt;
{{multicol-break}}&lt;br /&gt;
*[[osSetSpeed]]&lt;br /&gt;
*[[osInviteToGroup]]&lt;br /&gt;
*[[osEjectFromGroup]]&lt;br /&gt;
*[[osForceAttachToAvatar]]&lt;br /&gt;
*[[osForceAttachToAvatarFromInventory]]&lt;br /&gt;
*[[osForceAttachToOtherAvatarFromInventory]]&lt;br /&gt;
*[[osForceDetachFromAvatar]]&lt;br /&gt;
*[[osForceOtherSit]]&lt;br /&gt;
*[[osGetNumberOfAttachments]]&lt;br /&gt;
*[[osDropAttachment]]&lt;br /&gt;
*[[osDropAttachmentAt]]&lt;br /&gt;
*[[osForceDropAttachment]]&lt;br /&gt;
*[[osForceDropAttachmentAt]]&lt;br /&gt;
{{multicol-end}}&lt;br /&gt;
&lt;br /&gt;
=== NPCs ===&lt;br /&gt;
{{multicol}}&lt;br /&gt;
*[[osNpcCreate]]&lt;br /&gt;
*[[osNpcGetPos]]&lt;br /&gt;
*[[osNpcGetRot]]&lt;br /&gt;
*[[osNpcGetOwner]]&lt;br /&gt;
*[[osNpcLoadAppearance]]&lt;br /&gt;
*[[osNpcMoveTo]]&lt;br /&gt;
*[[osNpcMoveToTarget]]&lt;br /&gt;
*[[osNpcRemove]]&lt;br /&gt;
*[[osNpcSaveAppearance]]&lt;br /&gt;
*[[osNpcSay]]&lt;br /&gt;
*[[osNpcSay (with channel)]]&lt;br /&gt;
{{multicol-break}}&lt;br /&gt;
*[[osNpcSetRot]]&lt;br /&gt;
*[[osNpcShout]]&lt;br /&gt;
*[[osNpcSit]]&lt;br /&gt;
*[[osNpcStand]]&lt;br /&gt;
*[[osNpcStopMoveToTarget]]&lt;br /&gt;
*[[osIsNpc]]&lt;br /&gt;
*[[osNpcPlayAnimation]]&lt;br /&gt;
*[[osNpcStopAnimation]]&lt;br /&gt;
*[[osNpcTouch]]&lt;br /&gt;
*[[osNpcWhisper]]&lt;br /&gt;
{{multicol-end}}&lt;br /&gt;
&lt;br /&gt;
=== Prim Manipulations ===&lt;br /&gt;
*[[osGetPrimitiveParams]] &lt;br /&gt;
*[[osGetLinkPrimitiveParams]] &lt;br /&gt;
*[[osSetPrimitiveParams]] &lt;br /&gt;
*[[osSetProjectionParams]]&lt;br /&gt;
*[[osForceCreateLink]]&lt;br /&gt;
*[[osForceBreakLink]] &lt;br /&gt;
*[[osForceBreakAllLinks]]&lt;br /&gt;
*[[osSetSpeed]] &lt;br /&gt;
*[[osMessageObject]]&lt;br /&gt;
*[[osGetInventoryDesc]]&lt;br /&gt;
*[[osGetRezzingObject]]&lt;br /&gt;
*[[osIsUUID]]&lt;br /&gt;
*[[osListenRegex]]&lt;br /&gt;
*[[osMessageAttachments]]&lt;br /&gt;
&lt;br /&gt;
=== Prim Drawings ===&lt;br /&gt;
{{multicol}}&lt;br /&gt;
*[[osMovePen]] &lt;br /&gt;
*[[osDrawLine]] &lt;br /&gt;
*[[osDrawText]] &lt;br /&gt;
*[[osDrawEllipse]] &lt;br /&gt;
*[[osDrawRectangle]] &lt;br /&gt;
*[[osDrawFilledRectangle]] &lt;br /&gt;
*[[osDrawPolygon]] &lt;br /&gt;
*[[osDrawFilledPolygon]] &lt;br /&gt;
*[[osDrawImage]] &lt;br /&gt;
{{multicol-break}}&lt;br /&gt;
*[[osGetDrawStringSize]] &lt;br /&gt;
*[[osSetFontName]] &lt;br /&gt;
*[[osSetFontSize]] &lt;br /&gt;
*[[osSetPenSize]] &lt;br /&gt;
*[[osSetPenColor]] &lt;br /&gt;
*[[osSetPenCap]]&lt;br /&gt;
{{multicol-end}}&lt;br /&gt;
&lt;br /&gt;
=== Dynamic Textures ===&lt;br /&gt;
*[[osSetDynamicTextureData]] &lt;br /&gt;
*[[osSetDynamicTextureDataBlend]] &lt;br /&gt;
*[[osSetDynamicTextureDataBlendFace]] &lt;br /&gt;
*[[osSetDynamicTextureURL]] &lt;br /&gt;
*[[osSetDynamicTextureURLBlend]] &lt;br /&gt;
*[[osSetDynamicTextureURLBlendFace]]&lt;br /&gt;
&lt;br /&gt;
=== Notecards ===&lt;br /&gt;
*[[osMakeNotecard]] &lt;br /&gt;
*[[osGetNotecard]] &lt;br /&gt;
*[[osGetNotecardLine]] &lt;br /&gt;
*[[osGetNumberOfNotecardLines]] &lt;br /&gt;
&lt;br /&gt;
=== Parcels ===&lt;br /&gt;
*[[osParcelJoin]] &lt;br /&gt;
*[[osParcelSubdivide]] &lt;br /&gt;
*[[osSetParcelDetails]]&lt;br /&gt;
&lt;br /&gt;
=== Terrains ===&lt;br /&gt;
*[[osGetTerrainHeight]] &lt;br /&gt;
*[[osSetTerrainHeight]] &lt;br /&gt;
*[[osTerrainFlush]]&lt;br /&gt;
*[[osSetTerrainTexture]]&lt;br /&gt;
*[[osSetTerrainTextureHeight]]&lt;br /&gt;
&lt;br /&gt;
=== WindLights ===&lt;br /&gt;
{{multicol}}&lt;br /&gt;
*[[osSetRegionWaterHeight]] &lt;br /&gt;
*[[osSetRegionSunSettings]] &lt;br /&gt;
*[[osSetEstateSunSettings]] &lt;br /&gt;
*[[osGetCurrentSunHour]] &lt;br /&gt;
*[[osGetSunParam]] &lt;br /&gt;
*[[osSetSunParam]] &lt;br /&gt;
{{multicol-break}}&lt;br /&gt;
*[[osWindActiveModelPluginName]] &lt;br /&gt;
*[[osGetWindParam]] &lt;br /&gt;
*[[osSetWindParam]]&lt;br /&gt;
{{multicol-end}}&lt;br /&gt;
&lt;br /&gt;
=== Grid Information ===&lt;br /&gt;
{{multicol}}&lt;br /&gt;
*[[osGetGridName]] &lt;br /&gt;
*[[osGetGridNick]] &lt;br /&gt;
*[[osGetGridLoginURI]]&lt;br /&gt;
*[[osGetGridHomeURI]]&lt;br /&gt;
*[[osGetGridGatekeeperURI]]&lt;br /&gt;
*[[osGetGridCustom]]&lt;br /&gt;
*[[osGetScriptEngineName]] &lt;br /&gt;
*[[osGetSimulatorVersion]] &lt;br /&gt;
*[[osGetSimulatorMemory]] &lt;br /&gt;
{{multicol-break}}&lt;br /&gt;
*[[osGetMapTexture]] &lt;br /&gt;
*[[osGetRegionMapTexture]] &lt;br /&gt;
*[[osGetRegionSize]]&lt;br /&gt;
*[[osGetRegionStats]] &lt;br /&gt;
*[[osLoadedCreationDate]] &lt;br /&gt;
*[[osLoadedCreationTime]] &lt;br /&gt;
*[[osLoadedCreationID]] &lt;br /&gt;
*[[osGetPhysicsEngineType]]&lt;br /&gt;
{{multicol-end}}&lt;br /&gt;
&lt;br /&gt;
=== Administration ===&lt;br /&gt;
*[[osRegionNotice]] &lt;br /&gt;
*[[osRegionRestart]] &lt;br /&gt;
*[[osConsoleCommand]] &lt;br /&gt;
*[[osSetParcelMediaURL]] &lt;br /&gt;
*[[osSetPrimFloatOnWater]]&lt;br /&gt;
*[[osSetParcelSIPAddress]]&lt;br /&gt;
&lt;br /&gt;
=== Script Permissions (Pending Peer Review)===&lt;br /&gt;
*[[osGrantScriptPermissions]]&lt;br /&gt;
*[[osRevokeScriptPermissions]]&lt;br /&gt;
&lt;br /&gt;
=== Misc ===&lt;br /&gt;
{{multicol}}&lt;br /&gt;
*[[osSetStateEvents]] &lt;br /&gt;
*[[osList2Double]] &lt;br /&gt;
*[[osKey2Name]] &lt;br /&gt;
*[[osFormatString]] &lt;br /&gt;
*[[osMatchString]] &lt;br /&gt;
*[[osUnixTimeToTimestamp]] &lt;br /&gt;
*[[osParseJSON]]&lt;br /&gt;
{{multicol-break}}&lt;br /&gt;
*[[osParseJSONNew]]&lt;br /&gt;
*[[osMax]]&lt;br /&gt;
*[[osMin]]&lt;br /&gt;
*[[osRegexIsMatch]]&lt;br /&gt;
*[[osReplaceString]]&lt;br /&gt;
*[[osSetContentType]]&lt;br /&gt;
{{multicol-end}}&lt;br /&gt;
&lt;br /&gt;
=== Deprecated ===&lt;br /&gt;
*[[osParcelSetDetails|&amp;lt;strike&amp;gt;osParcelSetDetails&amp;lt;/strike&amp;gt;]] - Use [[osSetParcelDetails]] &lt;br /&gt;
*[[osSetPenColour|&amp;lt;strike&amp;gt;osSetPenColour&amp;lt;/strike&amp;gt;]] - Use [[osSetPenColor]] &lt;br /&gt;
*[[osSunGetParam|&amp;lt;strike&amp;gt;osSunGetParam&amp;lt;/strike&amp;gt;]] - Use [[osGetSunParam]] &lt;br /&gt;
*[[osSunSetParam|&amp;lt;strike&amp;gt;osSunSetParam&amp;lt;/strike&amp;gt;]] - Use [[osSetSunParam]] &lt;br /&gt;
*[[osTerrainGetHeight|&amp;lt;strike&amp;gt;osTerrainGetHeight&amp;lt;/strike&amp;gt;]] - Use [[osGetTerrainHeight]] &lt;br /&gt;
*[[osTerrainSetHeight|&amp;lt;strike&amp;gt;osTerrainSetHeight&amp;lt;/strike&amp;gt;]] - Use [[osSetTerrainHeight]]&lt;br /&gt;
&lt;br /&gt;
== See Also  ==&lt;br /&gt;
&lt;br /&gt;
*[[LSL Status|LSL/OSSL Status Page]] &lt;br /&gt;
*OSSL &lt;br /&gt;
**[[OSSL_Implemented|OSSL Implemented Functions]] &lt;br /&gt;
**[[OSSL Constants|OSSL Constants]] &lt;br /&gt;
**[[OSSL Status/Types|OSSL Types Status Page]] &lt;br /&gt;
**[[OSSL Status/Events|OSSL Events Status Page]] &lt;br /&gt;
&lt;br /&gt;
**[[Dynamic_textures|OSSL osDynamicTextures Functions Index Page]]&lt;br /&gt;
**[[OSSL TextureDrawing|OSSL TextureDrawing Extended Information]]&lt;br /&gt;
**[[OSSLNPC|OSSL functions for working with NPCs]]&lt;br /&gt;
&lt;br /&gt;
**[[OSSL Proposals|OSSL Proposed Functions]] &lt;br /&gt;
**[[OSSL Enabling Functions]] &lt;br /&gt;
**[[OSSL Standards|OSSL Standards]]&lt;br /&gt;
&lt;br /&gt;
* LS&lt;br /&gt;
** [[LightShare#LightShare Scripting|LightShare Functions]]&lt;br /&gt;
&lt;br /&gt;
* MOD&lt;br /&gt;
** [[OSSL Script Library/ModSendCommand|modSendCommand()]]&lt;br /&gt;
** [[OSSL Script Library/ModInvoke|Custom functions using modInvoke()]]&lt;br /&gt;
&lt;br /&gt;
* NPC&lt;br /&gt;
** [[Appearance_Formats|Appearance Notecard Format]]&lt;br /&gt;
&lt;br /&gt;
[[Category:OSSL]]&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Category:OSSL_Functions</id>
		<title>Category:OSSL Functions</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Category:OSSL_Functions"/>
				<updated>2015-02-27T17:22:26Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: /* Current OSSL Functions Implemented */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Current OSSL Functions Implemented  ==&lt;br /&gt;
&lt;br /&gt;
Updated OSSL Functions as of OpenSim DEV 0.7.4 r/21068 17th November, 2012&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''!''' Partial Update December.10.2010 With commits of this date some functions have been corrected to use standard ossl conventions. The previous are tagged as deprecated with their replacement shown. The deprecated functions will advise you with a msg that they have been deprecated and to use new osFunction name instead. Further Updates are needed to complete existing list of osFunctions.&lt;br /&gt;
&lt;br /&gt;
Special Note: Some Functions as shown use '''&amp;quot;double&amp;quot;''' as a Value instead of '''&amp;quot;float&amp;quot; '''these vary for purposes of accuracy as shown Below. &lt;br /&gt;
&lt;br /&gt;
(Float is short for &amp;quot;floating point&amp;quot;, and just means a number with a point something on the end.) &lt;br /&gt;
&lt;br /&gt;
The difference between the two is in the size of the numbers that they can hold. For float, you can have up to 7 digits in your number. For doubles, you can have up to 16 digits. To be more precise, here's the official size: ( float: 1.5 × 10-45 to 3.4 × 1038 ) ( double: 5.0 × 10-324 to 1.7 × 10308 ) &lt;br /&gt;
&lt;br /&gt;
Note that some function takes doubles as arguments but may be internally down-casted to floats.&lt;br /&gt;
&lt;br /&gt;
Each of these functions has an threat level associated to it. See [[Threat level]] for more information and an overview of each function's level.&lt;br /&gt;
&lt;br /&gt;
=== Avatars ===&lt;br /&gt;
{{multicol}}&lt;br /&gt;
*[[osGetAgentIP]] &lt;br /&gt;
*[[osGetAgents]]&lt;br /&gt;
*[[osGetAvatarList]] &lt;br /&gt;
*[[osAvatarName2Key]]&lt;br /&gt;
*[[osAvatarPlayAnimation]] &lt;br /&gt;
*[[osAvatarStopAnimation]] &lt;br /&gt;
*[[osAgentSaveAppearance]]&lt;br /&gt;
*[[osOwnerSaveAppearance]]&lt;br /&gt;
*[[osTeleportAgent]] &lt;br /&gt;
*[[osTeleportOwner]] &lt;br /&gt;
*[[osKickAvatar]]&lt;br /&gt;
*[[osCauseDamage]] &lt;br /&gt;
*[[osCauseHealing]]&lt;br /&gt;
*[[osGetHealth]]&lt;br /&gt;
{{multicol-break}}&lt;br /&gt;
*[[osSetSpeed]]&lt;br /&gt;
*[[osInviteToGroup]]&lt;br /&gt;
*[[osEjectFromGroup]]&lt;br /&gt;
*[[osForceAttachToAvatar]]&lt;br /&gt;
*[[osForceAttachToAvatarFromInventory]]&lt;br /&gt;
*[[osForceAttachToOtherAvatarFromInventory]]&lt;br /&gt;
*[[osForceDetachFromAvatar]]&lt;br /&gt;
*[[osForceOtherSit]]&lt;br /&gt;
*[[osGetNumberOfAttachments]]&lt;br /&gt;
*[[osDropAttachment]]&lt;br /&gt;
*[[osDropAttachmentAt]]&lt;br /&gt;
*[[osForceDropAttachment]]&lt;br /&gt;
*[[osForceDropAttachmentAt]]&lt;br /&gt;
{{multicol-end}}&lt;br /&gt;
&lt;br /&gt;
=== NPCs ===&lt;br /&gt;
{{multicol}}&lt;br /&gt;
*[[osNpcCreate]]&lt;br /&gt;
*[[osNpcGetPos]]&lt;br /&gt;
*[[osNpcGetRot]]&lt;br /&gt;
*[[osNpcGetOwner]]&lt;br /&gt;
*[[osNpcLoadAppearance]]&lt;br /&gt;
*[[osNpcMoveTo]]&lt;br /&gt;
*[[osNpcMoveToTarget]]&lt;br /&gt;
*[[osNpcRemove]]&lt;br /&gt;
*[[osNpcSaveAppearance]]&lt;br /&gt;
*[[osNpcSay]]&lt;br /&gt;
*[[osNpcSay (with channel)]]&lt;br /&gt;
{{multicol-break}}&lt;br /&gt;
*[[osNpcSetRot]]&lt;br /&gt;
*[[osNpcShout]]&lt;br /&gt;
*[[osNpcSit]]&lt;br /&gt;
*[[osNpcStand]]&lt;br /&gt;
*[[osNpcStopMoveToTarget]]&lt;br /&gt;
*[[osIsNpc]]&lt;br /&gt;
*[[osNpcPlayAnimation]]&lt;br /&gt;
*[[osNpcStopAnimation]]&lt;br /&gt;
*[[osNpcTouch]]&lt;br /&gt;
*[[osNpcWhisper]]&lt;br /&gt;
{{multicol-end}}&lt;br /&gt;
&lt;br /&gt;
=== Prim Manipulations ===&lt;br /&gt;
*[[osGetPrimitiveParams]] &lt;br /&gt;
*[[osGetLinkPrimitiveParams]] &lt;br /&gt;
*[[osSetPrimitiveParams]] &lt;br /&gt;
*[[osSetProjectionParams]]&lt;br /&gt;
*[[osForceCreateLink]]&lt;br /&gt;
*[[osForceBreakLink]] &lt;br /&gt;
*[[osForceBreakAllLinks]]&lt;br /&gt;
*[[osSetSpeed]] &lt;br /&gt;
*[[osMessageObject]]&lt;br /&gt;
*[[osGetInventoryDesc]]&lt;br /&gt;
*[[osGetRezzingObject]]&lt;br /&gt;
*[[osIsUUID]]&lt;br /&gt;
*[[osListenRegex]]&lt;br /&gt;
*[[osMessageAttachments]]&lt;br /&gt;
&lt;br /&gt;
=== Prim Drawings ===&lt;br /&gt;
{{multicol}}&lt;br /&gt;
*[[osMovePen]] &lt;br /&gt;
*[[osDrawLine]] &lt;br /&gt;
*[[osDrawText]] &lt;br /&gt;
*[[osDrawEllipse]] &lt;br /&gt;
*[[osDrawRectangle]] &lt;br /&gt;
*[[osDrawFilledRectangle]] &lt;br /&gt;
*[[osDrawPolygon]] &lt;br /&gt;
*[[osDrawFilledPolygon]] &lt;br /&gt;
*[[osDrawImage]] &lt;br /&gt;
{{multicol-break}}&lt;br /&gt;
*[[osGetDrawStringSize]] &lt;br /&gt;
*[[osSetFontName]] &lt;br /&gt;
*[[osSetFontSize]] &lt;br /&gt;
*[[osSetPenSize]] &lt;br /&gt;
*[[osSetPenColor]] &lt;br /&gt;
*[[osSetPenCap]]&lt;br /&gt;
{{multicol-end}}&lt;br /&gt;
&lt;br /&gt;
=== Dynamic Textures ===&lt;br /&gt;
*[[osSetDynamicTextureData]] &lt;br /&gt;
*[[osSetDynamicTextureDataBlend]] &lt;br /&gt;
*[[osSetDynamicTextureDataBlendFace]] &lt;br /&gt;
*[[osSetDynamicTextureURL]] &lt;br /&gt;
*[[osSetDynamicTextureURLBlend]] &lt;br /&gt;
*[[osSetDynamicTextureURLBlendFace]]&lt;br /&gt;
&lt;br /&gt;
=== Notecards ===&lt;br /&gt;
*[[osMakeNotecard]] &lt;br /&gt;
*[[osGetNotecard]] &lt;br /&gt;
*[[osGetNotecardLine]] &lt;br /&gt;
*[[osGetNumberOfNotecardLines]] &lt;br /&gt;
&lt;br /&gt;
=== Parcels ===&lt;br /&gt;
*[[osParcelJoin]] &lt;br /&gt;
*[[osParcelSubdivide]] &lt;br /&gt;
*[[osSetParcelDetails]]&lt;br /&gt;
&lt;br /&gt;
=== Terrains ===&lt;br /&gt;
*[[osGetTerrainHeight]] &lt;br /&gt;
*[[osSetTerrainHeight]] &lt;br /&gt;
*[[osTerrainFlush]]&lt;br /&gt;
*[[osSetTerrainTexture]]&lt;br /&gt;
*[[osSetTerrainTextureHeight]]&lt;br /&gt;
&lt;br /&gt;
=== WindLights ===&lt;br /&gt;
{{multicol}}&lt;br /&gt;
*[[osSetRegionWaterHeight]] &lt;br /&gt;
*[[osSetRegionSunSettings]] &lt;br /&gt;
*[[osSetEstateSunSettings]] &lt;br /&gt;
*[[osGetCurrentSunHour]] &lt;br /&gt;
*[[osGetSunParam]] &lt;br /&gt;
*[[osSetSunParam]] &lt;br /&gt;
{{multicol-break}}&lt;br /&gt;
*[[osWindActiveModelPluginName]] &lt;br /&gt;
*[[osGetWindParam]] &lt;br /&gt;
*[[osSetWindParam]]&lt;br /&gt;
{{multicol-end}}&lt;br /&gt;
&lt;br /&gt;
=== Grid Information ===&lt;br /&gt;
{{multicol}}&lt;br /&gt;
*[[osGetGridName]] &lt;br /&gt;
*[[osGetGridNick]] &lt;br /&gt;
*[[osGetGridLoginURI]]&lt;br /&gt;
*[[osGetGridHomeURI]]&lt;br /&gt;
*[[osGetGridGatekeeperURI]]&lt;br /&gt;
*[[osGetGridCustom]]&lt;br /&gt;
*[[osGetScriptEngineName]] &lt;br /&gt;
*[[osGetSimulatorVersion]] &lt;br /&gt;
*[[osGetSimulatorMemory]] &lt;br /&gt;
{{multicol-break}}&lt;br /&gt;
*[[osGetMapTexture]] &lt;br /&gt;
*[[osGetRegionMapTexture]] &lt;br /&gt;
*[[osGetRegionSize]]&lt;br /&gt;
*[[osGetRegionStats]] &lt;br /&gt;
*[[osLoadedCreationDate]] &lt;br /&gt;
*[[osLoadedCreationTime]] &lt;br /&gt;
*[[osLoadedCreationID]] &lt;br /&gt;
*[[osGetPhysicsEngineType]]&lt;br /&gt;
{{multicol-end}}&lt;br /&gt;
&lt;br /&gt;
=== Administration ===&lt;br /&gt;
*[[osRegionNotice]] &lt;br /&gt;
*[[osRegionRestart]] &lt;br /&gt;
*[[osConsoleCommand]] &lt;br /&gt;
*[[osSetParcelMediaURL]] &lt;br /&gt;
*[[osSetPrimFloatOnWater]]&lt;br /&gt;
*[[osSetParcelSIPAddress]]&lt;br /&gt;
&lt;br /&gt;
=== Script Permissions ===&lt;br /&gt;
*[[osGrantScriptPermissions]]&lt;br /&gt;
*[[osRevokeScriptPermissions]]&lt;br /&gt;
&lt;br /&gt;
=== Misc ===&lt;br /&gt;
{{multicol}}&lt;br /&gt;
*[[osSetStateEvents]] &lt;br /&gt;
*[[osList2Double]] &lt;br /&gt;
*[[osKey2Name]] &lt;br /&gt;
*[[osFormatString]] &lt;br /&gt;
*[[osMatchString]] &lt;br /&gt;
*[[osUnixTimeToTimestamp]] &lt;br /&gt;
*[[osParseJSON]]&lt;br /&gt;
{{multicol-break}}&lt;br /&gt;
*[[osParseJSONNew]]&lt;br /&gt;
*[[osMax]]&lt;br /&gt;
*[[osMin]]&lt;br /&gt;
*[[osRegexIsMatch]]&lt;br /&gt;
*[[osReplaceString]]&lt;br /&gt;
*[[osSetContentType]]&lt;br /&gt;
{{multicol-end}}&lt;br /&gt;
&lt;br /&gt;
=== Deprecated ===&lt;br /&gt;
*[[osParcelSetDetails|&amp;lt;strike&amp;gt;osParcelSetDetails&amp;lt;/strike&amp;gt;]] - Use [[osSetParcelDetails]] &lt;br /&gt;
*[[osSetPenColour|&amp;lt;strike&amp;gt;osSetPenColour&amp;lt;/strike&amp;gt;]] - Use [[osSetPenColor]] &lt;br /&gt;
*[[osSunGetParam|&amp;lt;strike&amp;gt;osSunGetParam&amp;lt;/strike&amp;gt;]] - Use [[osGetSunParam]] &lt;br /&gt;
*[[osSunSetParam|&amp;lt;strike&amp;gt;osSunSetParam&amp;lt;/strike&amp;gt;]] - Use [[osSetSunParam]] &lt;br /&gt;
*[[osTerrainGetHeight|&amp;lt;strike&amp;gt;osTerrainGetHeight&amp;lt;/strike&amp;gt;]] - Use [[osGetTerrainHeight]] &lt;br /&gt;
*[[osTerrainSetHeight|&amp;lt;strike&amp;gt;osTerrainSetHeight&amp;lt;/strike&amp;gt;]] - Use [[osSetTerrainHeight]]&lt;br /&gt;
&lt;br /&gt;
== See Also  ==&lt;br /&gt;
&lt;br /&gt;
*[[LSL Status|LSL/OSSL Status Page]] &lt;br /&gt;
*OSSL &lt;br /&gt;
**[[OSSL_Implemented|OSSL Implemented Functions]] &lt;br /&gt;
**[[OSSL Constants|OSSL Constants]] &lt;br /&gt;
**[[OSSL Status/Types|OSSL Types Status Page]] &lt;br /&gt;
**[[OSSL Status/Events|OSSL Events Status Page]] &lt;br /&gt;
&lt;br /&gt;
**[[Dynamic_textures|OSSL osDynamicTextures Functions Index Page]]&lt;br /&gt;
**[[OSSL TextureDrawing|OSSL TextureDrawing Extended Information]]&lt;br /&gt;
**[[OSSLNPC|OSSL functions for working with NPCs]]&lt;br /&gt;
&lt;br /&gt;
**[[OSSL Proposals|OSSL Proposed Functions]] &lt;br /&gt;
**[[OSSL Enabling Functions]] &lt;br /&gt;
**[[OSSL Standards|OSSL Standards]]&lt;br /&gt;
&lt;br /&gt;
* LS&lt;br /&gt;
** [[LightShare#LightShare Scripting|LightShare Functions]]&lt;br /&gt;
&lt;br /&gt;
* MOD&lt;br /&gt;
** [[OSSL Script Library/ModSendCommand|modSendCommand()]]&lt;br /&gt;
** [[OSSL Script Library/ModInvoke|Custom functions using modInvoke()]]&lt;br /&gt;
&lt;br /&gt;
* NPC&lt;br /&gt;
** [[Appearance_Formats|Appearance Notecard Format]]&lt;br /&gt;
&lt;br /&gt;
[[Category:OSSL]]&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/OsRevokeScriptPermissions</id>
		<title>OsRevokeScriptPermissions</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/OsRevokeScriptPermissions"/>
				<updated>2015-02-27T17:22:12Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: Created page with &amp;quot;{{osslfunc |threat_level=Severe |function_syntax=void osRevokeScriptPermissions(key revoked_key, string function) |ossl_example=&amp;lt;source lang=&amp;quot;lsl&amp;quot;&amp;gt; list functions = [&amp;quot;osNpcCre...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{osslfunc&lt;br /&gt;
|threat_level=Severe&lt;br /&gt;
|function_syntax=void osRevokeScriptPermissions(key revoked_key, string function)&lt;br /&gt;
|ossl_example=&amp;lt;source lang=&amp;quot;lsl&amp;quot;&amp;gt;&lt;br /&gt;
list functions = [&amp;quot;osNpcCreate&amp;quot;, &amp;quot;osNpcGetPos&amp;quot;, &amp;quot;osNpcLoadAppearance&amp;quot;, &amp;quot;osNpcGetRot&amp;quot;, &amp;quot;osNpcMoveTo&amp;quot;,&lt;br /&gt;
                &amp;quot;osNpcRemove&amp;quot;, &amp;quot;osNpcSaveAppearance&amp;quot;, &amp;quot;osNpcSay&amp;quot;, &amp;quot;osNpcSetRot&amp;quot;,&amp;quot;osNpcSit&amp;quot;, &amp;quot;osNpcStand&amp;quot;,&lt;br /&gt;
                &amp;quot;osNpcPlayAnimation&amp;quot;, &amp;quot;osNpcStopAnimation&amp;quot;,&amp;quot;osNpcMoveToTarget&amp;quot;, &amp;quot;osNpcStopMoveToTarget&amp;quot;,&lt;br /&gt;
                &amp;quot;osOwnerSaveAppearance&amp;quot;, &amp;quot;osAgentSaveAppearance&amp;quot;];&lt;br /&gt;
        &lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llSetColor(&amp;lt;1,0,0&amp;gt;,ALL_SIDES);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    touch_start(integer det)&lt;br /&gt;
    {&lt;br /&gt;
        llSay(0, &amp;quot;Enable&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
        osGrantScriptPermissions(llGetOwner(), functions);  &lt;br /&gt;
        state enabled;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
state enabled&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llSetColor(&amp;lt;0,1,0&amp;gt;,ALL_SIDES);&lt;br /&gt;
        llSay(0, &amp;quot;ossl functions enabled&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    touch_start(integer det)&lt;br /&gt;
    {&lt;br /&gt;
        osRevokeScriptPermissions(llGetOwner(), functions);&lt;br /&gt;
        state default;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
This example will allow the owner of this object to create and manipulate NPCs. To allow other possibilities, change the llGetOwner() to any key for another avatar or group. The osRevokeScriptPermissions uses the same syntax to remove previuosly granted permissions.&lt;br /&gt;
|description=Dynamically allow/disallow ossl execution to owner/creator/group by function name.&lt;br /&gt;
|&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/OsGrantScriptPermissions</id>
		<title>OsGrantScriptPermissions</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/OsGrantScriptPermissions"/>
				<updated>2015-02-27T17:15:36Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: Created page with &amp;quot;{{osslfunc |threat_level=Severe |function_syntax=void osGrantScriptPermissions(key allowed_key, string function) |ossl_example=&amp;lt;source lang=&amp;quot;lsl&amp;quot;&amp;gt; list functions = [&amp;quot;osNpcCrea...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{osslfunc&lt;br /&gt;
|threat_level=Severe&lt;br /&gt;
|function_syntax=void osGrantScriptPermissions(key allowed_key, string function)&lt;br /&gt;
|ossl_example=&amp;lt;source lang=&amp;quot;lsl&amp;quot;&amp;gt;&lt;br /&gt;
list functions = [&amp;quot;osNpcCreate&amp;quot;, &amp;quot;osNpcGetPos&amp;quot;, &amp;quot;osNpcLoadAppearance&amp;quot;, &amp;quot;osNpcGetRot&amp;quot;, &amp;quot;osNpcMoveTo&amp;quot;,&lt;br /&gt;
                &amp;quot;osNpcRemove&amp;quot;, &amp;quot;osNpcSaveAppearance&amp;quot;, &amp;quot;osNpcSay&amp;quot;, &amp;quot;osNpcSetRot&amp;quot;,&amp;quot;osNpcSit&amp;quot;, &amp;quot;osNpcStand&amp;quot;,&lt;br /&gt;
                &amp;quot;osNpcPlayAnimation&amp;quot;, &amp;quot;osNpcStopAnimation&amp;quot;,&amp;quot;osNpcMoveToTarget&amp;quot;, &amp;quot;osNpcStopMoveToTarget&amp;quot;,&lt;br /&gt;
                &amp;quot;osOwnerSaveAppearance&amp;quot;, &amp;quot;osAgentSaveAppearance&amp;quot;];&lt;br /&gt;
        &lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llSetColor(&amp;lt;1,0,0&amp;gt;,ALL_SIDES);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    touch_start(integer det)&lt;br /&gt;
    {&lt;br /&gt;
        llSay(0, &amp;quot;Enable&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
        osGrantScriptPermissions(llGetOwner(), functions);  &lt;br /&gt;
        state enabled;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
state enabled&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llSetColor(&amp;lt;0,1,0&amp;gt;,ALL_SIDES);&lt;br /&gt;
        llSay(0, &amp;quot;ossl functions enabled&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    touch_start(integer det)&lt;br /&gt;
    {&lt;br /&gt;
        osRevokeScriptPermissions(llGetOwner(), functions);&lt;br /&gt;
        state default;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
This example will allow the owner of this object to create and manipulate NPCs. To allow other possibilities, change the llGetOwner() to any key for another avatar or group.&lt;br /&gt;
|description=Dynamically allow ossl execution to owner/creator/group by function name.&lt;br /&gt;
|&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Configuring_Simulator_Parameters</id>
		<title>Configuring Simulator Parameters</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Configuring_Simulator_Parameters"/>
				<updated>2015-01-31T16:38:42Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks}}&lt;br /&gt;
&lt;br /&gt;
= Structure =&lt;br /&gt;
&lt;br /&gt;
'''Please note that the cascading configuration file system described below does not apply to Robust instances at this time.'''&lt;br /&gt;
&lt;br /&gt;
OpenSimulator has a fairly complicated configuration structure based on Windows style INI files. This is to accomodate its many different uses and possible architectures.&lt;br /&gt;
&lt;br /&gt;
Configuration files can include other configuration files. For instance, a standard standalone configuration will read the following INI files (you can see this order early on in the log and on the console).&lt;br /&gt;
&lt;br /&gt;
 OpenSimDefaults.ini (OpenSimulator 0.7.1 and onwards)&lt;br /&gt;
 OpenSim.ini&lt;br /&gt;
 config-include/Standalone.ini&lt;br /&gt;
 config-include/StandaloneCommon.ini&lt;br /&gt;
 config-include/CenomeCache.ini (not found on a default setup)&lt;br /&gt;
 config-include/storage/SQLiteStandalone.ini&lt;br /&gt;
&lt;br /&gt;
OpenSimDefaults.ini (on OpenSimulator 0.7.1 and later) and OpenSim.ini are always checked for on startup. However, the other INI files are loaded as a result of include directives within the preceding INI files.&lt;br /&gt;
&lt;br /&gt;
For instance, at the bottom of the OpenSim.ini file in the [Architecture] section, there are a number of possible architectural includes. For example, a default OpenSimulator 0.7.1 standalone setup will have&lt;br /&gt;
&lt;br /&gt;
 [Architecture]&lt;br /&gt;
    Include-Architecture = &amp;quot;config-include/Standalone.ini&amp;quot;&lt;br /&gt;
    ; Include-Architecture = &amp;quot;config-include/StandaloneHypergrid.ini&amp;quot;&lt;br /&gt;
    ; Include-Architecture = &amp;quot;config-include/Grid.ini&amp;quot;&lt;br /&gt;
    ; Include-Architecture = &amp;quot;config-include/GridHypergrid.ini&amp;quot;&lt;br /&gt;
    ; Include-Architecture = &amp;quot;config-include/SimianGrid.ini&amp;quot;&lt;br /&gt;
    ; Include-Architecture = &amp;quot;config-include/HyperSimianGrid.ini&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Lines that start with at least one semicolon (;) are commented out and are not active in the configuration. In this case, when OpenSimulator reads OpenSim.ini it will then go on to read config-include/Standalone.ini, which in turn includes config-include/StandaloneCommon.ini and so on.&lt;br /&gt;
&lt;br /&gt;
If a config file isn't found then it is ignored and it's non-existence is logged.&lt;br /&gt;
&lt;br /&gt;
The OpenSim.ini and OpenSimDefaults.ini files in bin/ concern simulator parameters (chat distance, physics, etc.). The parameters in config-include control the location and parameters of data services (e.g. region database, asset service, inventory service).&lt;br /&gt;
&lt;br /&gt;
= Changing Simulator Settings =&lt;br /&gt;
&lt;br /&gt;
A configuration file consists of a number of sections, each starting with the name of that section in brackets ([]). For instance, in OpenSim.ini.example you have (ignore the descriptive text)&lt;br /&gt;
&lt;br /&gt;
 [Startup]&lt;br /&gt;
    ; save_crashes = false&lt;br /&gt;
    ; crash_dir = &amp;quot;crashes&amp;quot;&lt;br /&gt;
    ...&lt;br /&gt;
&lt;br /&gt;
 [SMTP]&lt;br /&gt;
    ; enabled = false&lt;br /&gt;
    ...&lt;br /&gt;
&lt;br /&gt;
 [Chat]&lt;br /&gt;
    ; whisper_distance = 10&lt;br /&gt;
&lt;br /&gt;
The config parameters follow each section. Each has the structure &amp;lt;parameter&amp;gt; = &amp;lt;value&amp;gt; (e.g. whisper_distance = 10).&lt;br /&gt;
&lt;br /&gt;
In OpenSim.ini.example, if a parameter is commented out with a preceding semicolon (;), then the value in OpenSimDefaults.ini is used instead (in OpenSimulator 0.7.1 and later) or a default value within OpenSimulator itself.&lt;br /&gt;
&lt;br /&gt;
To change a parameter, one would uncomment it and edit the value. For instance, if I wanted whisper distance to be 50 meters in my sim, I would change OpenSim.ini so that it had.&lt;br /&gt;
&lt;br /&gt;
 [Chat]&lt;br /&gt;
    whisper_distance = 50&lt;br /&gt;
&lt;br /&gt;
When the sim was next started up, the whisper distance would be 50m, overriding any value in OpenSimDefaults.ini if it exists.&lt;br /&gt;
&lt;br /&gt;
In OpenSimulator 0.7.1 and later, we recommend that parameters are changed in OpenSim.ini and not in OpenSimDefaults.ini. This is because various parameters are added or can change name between releases. Common parameters to change are already in OpenSim.ini.example - OpenSimDefaults.ini contains both defaults for these parameters and more obscure ones. If you want override a parameter that is in OpenSimDefaults.ini but not OpenSim.ini.example then we recommend that you copy the relevant section to OpenSim.ini and change it there.&lt;br /&gt;
&lt;br /&gt;
= Aggregation and Overriding =&lt;br /&gt;
&lt;br /&gt;
As we saw above, when multiple config files have the same section, the settings are aggregated. If a later setting has the same name as an earlier setting, then the later setting overrides the earlier setting.&lt;br /&gt;
&lt;br /&gt;
You cannot have multiple sections with the same name (e.g. [DatabaseService]) in the same file (e.g. bin/config-include/GridCommon.ini).  The second section will completely replace the first.  To merge sections with the same name they must be situated in different .ini files.&lt;br /&gt;
&lt;br /&gt;
= Getting information about parameters =&lt;br /&gt;
&lt;br /&gt;
On the simulator's console command line, you can get information about what parameters it's actually using from the all the .ini files with the &amp;quot;config show&amp;quot; command. This is handy if you want to check that the simulator has loaded the parameters that you want.  The &amp;quot;config save &amp;lt;path&amp;gt;&amp;quot; command will save this aggregated config.&lt;br /&gt;
&lt;br /&gt;
= Using Key Expansion to simplify configuration =&lt;br /&gt;
&lt;br /&gt;
We use the same information in many places throughout the files that configure our servers. To help simplify the configuration process, we leverage &amp;quot;Key Expansion&amp;quot;. With Key Expansion we are able to define these values in one place to be used anywhere in the set of configuration files. The configuration system uses the common syntax for parameter expansion: ${VARIABLE}. But, our configuration files have many sections, so our syntax adds the ability to address keys within the various sections of the set of configuration files using the pipe &amp;quot;|&amp;quot; to separate the two. Then, our syntax becomes: ${SECTION|KEY}. In the set of example configuration files distributed with OpenSimulator, we are using this feature to ease the definition of ports and urls in the file set, as these keys are used in many places. We set them in a newly added section ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Const]&lt;br /&gt;
&lt;br /&gt;
  BaseURL = http://127.0.0.1&lt;br /&gt;
  PublicPort = 8002&lt;br /&gt;
  PrivatePort = 8003&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then we are able to use them in the many places they are needed by using our Key Expansion Syntax instead of the Key = Value seen elsewhere...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Startup]&lt;br /&gt;
&lt;br /&gt;
  HomeURI = ${Const|BaseURL}:${Const|PublicPort}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And when OpenSimulator starts and reads the set of configuration files, the end-result will be ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Startup]&lt;br /&gt;
&lt;br /&gt;
  HomeURL = http://127.0.0.1:8002&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And while it may not be quite so useful in our case, we may use the syntax to use keys defined in the same sections by omitting the section and pipe - ${KEY}.&lt;br /&gt;
&lt;br /&gt;
= Using shell environment variables in OpenSimulator configuration =&lt;br /&gt;
&lt;br /&gt;
We will need to use two new things in our configurations: a section [Environment] to tell us what variables we need to look at in the shell and we will need to use the Nini key expansion. Nini, can have keys that look like ${SECTION|VARIABLE} and can expand those to the variables we assign.&lt;br /&gt;
&lt;br /&gt;
In your shell you will export your values and check the ones you want to use that are predefined by your system ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export RT_ZONE=Zone_00&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# You can see your HOSTNAME (It will be set by the system)...&lt;br /&gt;
echo $HOSTNAME&lt;br /&gt;
OSERV_00&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the ini you will include an [Environment] section...&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Environment] ; Our Environment section that defines the shell variables we are interested in&lt;br /&gt;
RT_ZONE=&amp;quot;&amp;quot; ; We might use a zone to setup an instance of OpenSimulator on a server &lt;br /&gt;
HOSTNAME=&amp;quot;&amp;quot; ; We might be interested in obtaining the host's name &lt;br /&gt;
&lt;br /&gt;
[Startup]&lt;br /&gt;
regionload_regionsdir=/home/opensim/etc/Regions/${Environment|RT_ZONE}/ ; We set our regionload_regionsdir using the variables&lt;br /&gt;
ConsolePrompt = &amp;quot;${Environment|HOSTNAME}:${Environment|RT_ZONE} &amp;quot;&lt;br /&gt;
&lt;br /&gt;
[DatabaseService]&lt;br /&gt;
ConnectionString = &amp;quot;Data Source=localhost;Database=${Environment|RT_ZONE};User ID=username;Password=userpass;&amp;quot; ; Here too&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When OpenSimulator picks up the variables in your shell and processes all the configurations, the variable keys will be filled in with the variables picked up from the shell ...&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Environment] ; Our Environment section that defines the shell variables we are interested in&lt;br /&gt;
RT_ZONE=&amp;quot;&amp;quot; ; We might use a zone to setup an instance of OpenSimulator on a server &lt;br /&gt;
HOSTNAME=&amp;quot;&amp;quot; ; We might be interested in obtaining the host's name &lt;br /&gt;
&lt;br /&gt;
[Startup]&lt;br /&gt;
regionload_regionsdir=/home/opensim/etc/Regions/Zone_00/ ; We set our regionload_regionsdir using the variables&lt;br /&gt;
ConsolePrompt = &amp;quot;OSERV_00:Zone_09 &amp;quot;&lt;br /&gt;
&lt;br /&gt;
[DatabaseService]&lt;br /&gt;
ConnectionString = &amp;quot;Data Source=localhost;Database=Zone_00;User ID=username;Password=userpass;&amp;quot; ; Here too&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/UXSimStatus/fr</id>
		<title>UXSimStatus/fr</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/UXSimStatus/fr"/>
				<updated>2015-01-02T01:22:42Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks}}&lt;br /&gt;
&lt;br /&gt;
Depuis OpenSimulator svn 9529 les statistiques étendues retournent un appel jsonp pour autoriser les outils javascript populaires à utiliser les données retournées pour créer une application de monitoring AJAX dans le navigateur. Ceci est un avantage car une fois que la page est chargée le navigateur va inter agir directement avec la région en éliminant le trafic par le site web (en sondant la région et nourissant le navigateur). Elles permettent aussi la création d'outils permettant de créer des applications dans d'autres pages. &lt;br /&gt;
&lt;br /&gt;
Pour activer vos reports de données, définissez ceci dans votre OpenSim.ini...&lt;br /&gt;
&lt;br /&gt;
    ; Simulator Stats URI&lt;br /&gt;
    ; Enable JSON simulator data by setting a URI name (case sensitive)&lt;br /&gt;
    Stats_URI = &amp;quot;jsonSimStats&amp;quot;&lt;br /&gt;
&lt;br /&gt;
...l'URI peut être ce que vous voulez et est sensible à la casse. Vous pouvez questionner directement l'URI pour retourner une chaîne JSON à utiliser dans php, python, java, etc ou bien vous pouvez utiliser un des outils populaires javascript afin qu'OpenSimulator génère un callback pour jsonp. La sérialisation JSON transporte les données suivantes...&lt;br /&gt;
&lt;br /&gt;
  {&amp;quot;AssetsInCache&amp;quot;:5.0,&amp;quot;TimeAfterCacheMiss&amp;quot;:0.0,&amp;quot;BlockedMissingTextureRequests&amp;quot;:0.0,&amp;quot;AssetServiceRequestFailures&amp;quot;:0.0,&lt;br /&gt;
 &amp;quot;abnormalClientThreadTerminations&amp;quot;:0.0,&amp;quot;InventoryServiceRetrievalFailures&amp;quot;:0.0,&amp;quot;Dilatn&amp;quot;:0.967380821704865,&amp;quot;SimFPS&amp;quot;:55.0,&lt;br /&gt;
 &amp;quot;PhyFPS&amp;quot;:47.1628913879395,&amp;quot;AgntUp&amp;quot;:0.0,&amp;quot;RootAg&amp;quot;:0.0,&amp;quot;ChldAg&amp;quot;:0.0,&amp;quot;Prims&amp;quot;:0.0,&amp;quot;AtvPrm&amp;quot;:0.0,&amp;quot;AtvScr&amp;quot;:0.0,&amp;quot;ScrLPS&amp;quot;:0.0,&lt;br /&gt;
 &amp;quot;PktsIn&amp;quot;:0.0,&amp;quot;PktOut&amp;quot;:0.0,&amp;quot;PendDl&amp;quot;:0.0,&amp;quot;PendUl&amp;quot;:0.0,&amp;quot;UnackB&amp;quot;:0.0,&amp;quot;TotlFt&amp;quot;:0.0,&amp;quot;NetFt&amp;quot;:0.0,&amp;quot;PhysFt&amp;quot;:0.0,&amp;quot;OthrFt&amp;quot;:0.0,&lt;br /&gt;
 &amp;quot;AgntFt&amp;quot;:0.0,&amp;quot;ImgsFt&amp;quot;:0.0,&amp;quot;Memory&amp;quot;:&amp;quot;8&amp;quot;,&amp;quot;Uptime&amp;quot;:&amp;quot;05:12:19.0365590&amp;quot;,&amp;quot;Version&amp;quot;:&amp;quot;OpenSimulator Server  0.6.4.9533 &amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!DOCTYPE HTML&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;JSON Test&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;https://code.jquery.com/jquery-2.1.3.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;http://www.google.com/jsapi&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; language=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SimFPS = 0;&lt;br /&gt;
PhyFPS = 0;&lt;br /&gt;
Memory = 0;&lt;br /&gt;
RootAg = 0;&lt;br /&gt;
ChldAg = 0;&lt;br /&gt;
Uptime = &amp;quot;&amp;quot;;&lt;br /&gt;
Version = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
setInterval(function(){&lt;br /&gt;
$.getJSON(&lt;br /&gt;
  &amp;quot;http://ascent.bluewallgroup.com:9100/jsonSimStats/?callback=?&amp;quot;,  &lt;br /&gt;
  function(data){&lt;br /&gt;
  SimFPS = Math.round(data.SimFPS);&lt;br /&gt;
  PhyFPS = Math.round(data.PhyFPS);&lt;br /&gt;
  Memory = Math.round(data.Memory);&lt;br /&gt;
  ChldAg = data.ChldAg;&lt;br /&gt;
  RootAg = data.RootAg;&lt;br /&gt;
  Uptime = data.Uptime;&lt;br /&gt;
  Version = data.Version;&lt;br /&gt;
  drawChart();&lt;br /&gt;
  setTags();&lt;br /&gt;
  })}, 3000&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
google.load(&amp;quot;visualization&amp;quot;, &amp;quot;1&amp;quot;, {packages:[&amp;quot;gauge&amp;quot;]});&lt;br /&gt;
google.setOnLoadCallback(drawChart);&lt;br /&gt;
function drawChart() {&lt;br /&gt;
  var cdata = new google.visualization.DataTable();&lt;br /&gt;
  cdata.addColumn('string', 'Label');&lt;br /&gt;
  cdata.addColumn('number', 'Value');&lt;br /&gt;
  cdata.addRows(3);&lt;br /&gt;
  cdata.setValue(0, 0, 'SimFPS');&lt;br /&gt;
  cdata.setValue(0, 1, SimFPS);&lt;br /&gt;
  cdata.setValue(1, 0, 'PhyFPS');&lt;br /&gt;
  cdata.setValue(1, 1, PhyFPS);&lt;br /&gt;
  cdata.setValue(2, 0, 'Memory');&lt;br /&gt;
  cdata.setValue(2, 1, Memory);&lt;br /&gt;
&lt;br /&gt;
  var chart = new&lt;br /&gt;
    google.visualization.Gauge(document.getElementById('chart_div'));&lt;br /&gt;
  var options = {width: 400, height: 120, redFrom: 90, redTo: 100,&lt;br /&gt;
    yellowFrom:75, yellowTo: 90, minorTicks: 5};&lt;br /&gt;
  chart.draw(cdata, options);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$(function() {&lt;br /&gt;
    timer.start(100);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
function setTags() {&lt;br /&gt;
  $(&amp;quot;#par-uptime&amp;quot;).text(&amp;quot;Uptime: &amp;quot;  + Uptime);&lt;br /&gt;
  $(&amp;quot;#par-ragent&amp;quot;).text(&amp;quot;Root Agent: &amp;quot; + RootAg);&lt;br /&gt;
  $(&amp;quot;#par-version&amp;quot;).text(&amp;quot;Version: &amp;quot; + Version);&lt;br /&gt;
  $(&amp;quot;#par-cagent&amp;quot;).text(&amp;quot;Child Agent: &amp;quot; + ChldAg);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
= BlueWall Development Region =&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;div id=&amp;quot;par-version&amp;quot;&amp;gt;version&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;div id=&amp;quot;par-ragent&amp;quot;&amp;gt;root agent&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;div id=&amp;quot;par-uptime&amp;quot;&amp;gt;uptime&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;div id=&amp;quot;par-cagent&amp;quot;&amp;gt;child agent&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;chart_div&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== JSON Grid Simstats ==&lt;br /&gt;
&lt;br /&gt;
Exemple python pour obtenir les données de région depuis un service de grille - devrait fonctionner mais cette version n'a pas été testée -&lt;br /&gt;
         *reference material* &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 import hashlib&lt;br /&gt;
 import urllib2&lt;br /&gt;
&lt;br /&gt;
 ''' la valeur montrée est un exemple, récupérez ceci depuis votre base de donnée de la grille à chaque fois - regions.regionSecret '''&lt;br /&gt;
 regionsecret = 'fe21314b-6267-44f7-aa1e-6047e1c3f94a'&lt;br /&gt;
&lt;br /&gt;
 ''' Ma region host '''&lt;br /&gt;
 hostName =  myregion.host.net&lt;br /&gt;
&lt;br /&gt;
 ''' Ma region port '''&lt;br /&gt;
 hostPort = 9000&lt;br /&gt;
&lt;br /&gt;
 ''' crée un SHA1 en majuscules depuis le regionSecret '''&lt;br /&gt;
 resourceName = str(hashlib.sha1(regionsecret).hexdigest()).upper()&lt;br /&gt;
&lt;br /&gt;
 regionuri = hostName + &amp;quot;:&amp;quot; + hostPort + &amp;quot;/&amp;quot; + resourceName + &amp;quot;/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 ''' les données incluent TimeZoneName , TimeZoneOffs, UxTime, Memory, Version et OSStatsURI '''&lt;br /&gt;
 regiondata = simplejson.load(urllib2.urlopen(regionuri))&lt;br /&gt;
&lt;br /&gt;
 ''' OSStatsURI est l'uri de requete de l'instance OpenSimulator. Retourne les même données avec l'uri fournie par l'utilisateur '''&lt;br /&gt;
 simuri = regiondata['OSStatsURI']&lt;br /&gt;
&lt;br /&gt;
 simdata = simplejson.load(urllib2.urlopen(simuri))&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/UXSimStatus</id>
		<title>UXSimStatus</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/UXSimStatus"/>
				<updated>2015-01-02T01:20:53Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks}}&lt;br /&gt;
&lt;br /&gt;
As of OpenSimulator svn 9529 the xtended stats reporting will return a jsonp&lt;br /&gt;
callback to allow popular javascript toolkits to use the returned data to&lt;br /&gt;
create ajax monitoring applications in the browser. This is an advantage&lt;br /&gt;
because after the page is loaded, the browser will interact directly with&lt;br /&gt;
the region, eliminating traffic through the website (polling the region and&lt;br /&gt;
servicing the browser). It also allows the creation of mashups to create&lt;br /&gt;
mini-monitor apps in other pages.&lt;br /&gt;
&lt;br /&gt;
To enable your stats reporting, set the following in your OpenSim.ini...&lt;br /&gt;
&lt;br /&gt;
    ; Simulator Stats URI&lt;br /&gt;
    ; Enable JSON simulator data by setting a URI name (case sensitive)&lt;br /&gt;
    Stats_URI = &amp;quot;jsonSimStats&amp;quot;&lt;br /&gt;
&lt;br /&gt;
...the URI can be anything you want, and is case sensitive. You can query&lt;br /&gt;
the URI directly to return a json string to use in php, python, java, etc.&lt;br /&gt;
or you may use one of the popular javascript toolkits to have OpenSimulator&lt;br /&gt;
generate a callback for jsonp. The json serialization carries the following&lt;br /&gt;
data...&lt;br /&gt;
&lt;br /&gt;
  {&amp;quot;AssetsInCache&amp;quot;:5.0,&amp;quot;TimeAfterCacheMiss&amp;quot;:0.0,&amp;quot;BlockedMissingTextureRequests&amp;quot;:0.0,&amp;quot;AssetServiceRequestFailures&amp;quot;:0.0,&lt;br /&gt;
 &amp;quot;abnormalClientThreadTerminations&amp;quot;:0.0,&amp;quot;InventoryServiceRetrievalFailures&amp;quot;:0.0,&amp;quot;Dilatn&amp;quot;:0.967380821704865,&amp;quot;SimFPS&amp;quot;:55.0,&lt;br /&gt;
 &amp;quot;PhyFPS&amp;quot;:47.1628913879395,&amp;quot;AgntUp&amp;quot;:0.0,&amp;quot;RootAg&amp;quot;:0.0,&amp;quot;ChldAg&amp;quot;:0.0,&amp;quot;Prims&amp;quot;:0.0,&amp;quot;AtvPrm&amp;quot;:0.0,&amp;quot;AtvScr&amp;quot;:0.0,&amp;quot;ScrLPS&amp;quot;:0.0,&lt;br /&gt;
 &amp;quot;PktsIn&amp;quot;:0.0,&amp;quot;PktOut&amp;quot;:0.0,&amp;quot;PendDl&amp;quot;:0.0,&amp;quot;PendUl&amp;quot;:0.0,&amp;quot;UnackB&amp;quot;:0.0,&amp;quot;TotlFt&amp;quot;:0.0,&amp;quot;NetFt&amp;quot;:0.0,&amp;quot;PhysFt&amp;quot;:0.0,&amp;quot;OthrFt&amp;quot;:0.0,&lt;br /&gt;
 &amp;quot;AgntFt&amp;quot;:0.0,&amp;quot;ImgsFt&amp;quot;:0.0,&amp;quot;Memory&amp;quot;:&amp;quot;8&amp;quot;,&amp;quot;Uptime&amp;quot;:&amp;quot;05:12:19.0365590&amp;quot;,&amp;quot;Version&amp;quot;:&amp;quot;OpenSimulator Server  0.6.4.9533 &amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!DOCTYPE HTML&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;JSON Test&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;https://code.jquery.com/jquery-2.1.3.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;http://www.google.com/jsapi&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; language=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SimFPS = 0;&lt;br /&gt;
PhyFPS = 0;&lt;br /&gt;
Memory = 0;&lt;br /&gt;
RootAg = 0;&lt;br /&gt;
ChldAg = 0;&lt;br /&gt;
Uptime = &amp;quot;&amp;quot;;&lt;br /&gt;
Version = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
setInterval(function(){&lt;br /&gt;
$.getJSON(&lt;br /&gt;
  &amp;quot;http://ascent.bluewallgroup.com:9100/jsonSimStats/?callback=?&amp;quot;,  &lt;br /&gt;
  function(data){&lt;br /&gt;
  SimFPS = Math.round(data.SimFPS);&lt;br /&gt;
  PhyFPS = Math.round(data.PhyFPS);&lt;br /&gt;
  Memory = Math.round(data.Memory);&lt;br /&gt;
  ChldAg = data.ChldAg;&lt;br /&gt;
  RootAg = data.RootAg;&lt;br /&gt;
  Uptime = data.Uptime;&lt;br /&gt;
  Version = data.Version;&lt;br /&gt;
  drawChart();&lt;br /&gt;
  setTags();&lt;br /&gt;
  })}, 3000&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
google.load(&amp;quot;visualization&amp;quot;, &amp;quot;1&amp;quot;, {packages:[&amp;quot;gauge&amp;quot;]});&lt;br /&gt;
google.setOnLoadCallback(drawChart);&lt;br /&gt;
function drawChart() {&lt;br /&gt;
  var cdata = new google.visualization.DataTable();&lt;br /&gt;
  cdata.addColumn('string', 'Label');&lt;br /&gt;
  cdata.addColumn('number', 'Value');&lt;br /&gt;
  cdata.addRows(3);&lt;br /&gt;
  cdata.setValue(0, 0, 'SimFPS');&lt;br /&gt;
  cdata.setValue(0, 1, SimFPS);&lt;br /&gt;
  cdata.setValue(1, 0, 'PhyFPS');&lt;br /&gt;
  cdata.setValue(1, 1, PhyFPS);&lt;br /&gt;
  cdata.setValue(2, 0, 'Memory');&lt;br /&gt;
  cdata.setValue(2, 1, Memory);&lt;br /&gt;
&lt;br /&gt;
  var chart = new&lt;br /&gt;
    google.visualization.Gauge(document.getElementById('chart_div'));&lt;br /&gt;
  var options = {width: 400, height: 120, redFrom: 90, redTo: 100,&lt;br /&gt;
    yellowFrom:75, yellowTo: 90, minorTicks: 5};&lt;br /&gt;
  chart.draw(cdata, options);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$(function() {&lt;br /&gt;
    timer.start(100);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
function setTags() {&lt;br /&gt;
  $(&amp;quot;#par-uptime&amp;quot;).text(&amp;quot;Uptime: &amp;quot;  + Uptime);&lt;br /&gt;
  $(&amp;quot;#par-ragent&amp;quot;).text(&amp;quot;Root Agent: &amp;quot; + RootAg);&lt;br /&gt;
  $(&amp;quot;#par-version&amp;quot;).text(&amp;quot;Version: &amp;quot; + Version);&lt;br /&gt;
  $(&amp;quot;#par-cagent&amp;quot;).text(&amp;quot;Child Agent: &amp;quot; + ChldAg);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
= BlueWall Development Region =&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;div id=&amp;quot;par-version&amp;quot;&amp;gt;version&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;div id=&amp;quot;par-ragent&amp;quot;&amp;gt;root agent&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;div id=&amp;quot;par-uptime&amp;quot;&amp;gt;uptime&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;div id=&amp;quot;par-cagent&amp;quot;&amp;gt;child agent&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;chart_div&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[SSL in OpenSim]]&lt;br /&gt;
&lt;br /&gt;
== JSON Grid Simstats ==&lt;br /&gt;
&lt;br /&gt;
Python example to gain the region data from a grid service&lt;br /&gt;
 - should work but this version not tested -&lt;br /&gt;
         *reference material* &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 import hashlib&lt;br /&gt;
 import urllib2&lt;br /&gt;
&lt;br /&gt;
 ''' value shown is an example, get this from your grid database each time - regions.regionSecret '''&lt;br /&gt;
 regionsecret = 'fe21314b-6267-44f7-aa1e-6047e1c3f94a'&lt;br /&gt;
&lt;br /&gt;
 ''' My region host '''&lt;br /&gt;
 hostName =  myregion.host.net&lt;br /&gt;
&lt;br /&gt;
 ''' My region port '''&lt;br /&gt;
 hostPort = 9000&lt;br /&gt;
&lt;br /&gt;
 ''' create an *UPPERCASE* SHA1 hash from the regionSecret '''&lt;br /&gt;
 resourceName = str(hashlib.sha1(regionsecret).hexdigest()).upper()&lt;br /&gt;
&lt;br /&gt;
 regionuri = hostName + &amp;quot;:&amp;quot; + hostPort + &amp;quot;/&amp;quot; + resourceName + &amp;quot;/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 ''' data includes TimeZoneName , TimeZoneOffs, UxTime, Memory, Version and OSStatsURI '''&lt;br /&gt;
 regiondata = simplejson.load(urllib2.urlopen(regionuri))&lt;br /&gt;
&lt;br /&gt;
 ''' OSStatsURI is the uri to query the OpenSimulator instance. return same data as the user set uri '''&lt;br /&gt;
 simuri = regiondata['OSStatsURI']&lt;br /&gt;
&lt;br /&gt;
 simdata = simplejson.load(urllib2.urlopen(simuri))&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Test_Page</id>
		<title>Test Page</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Test_Page"/>
				<updated>2015-01-02T01:17:24Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: /* JSON User SimStats */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''As of 2011-10-10 I copy/pasted this over to the linked [[UXSimStatus]] for further change/editing -- [[User:Justincc|Justincc]] 20:22, 10 October 2011 (UTC)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== JSON User SimStats ==&lt;br /&gt;
&lt;br /&gt;
As of OpenSim svn 9529 the xtended stats reporting will return a jsonp&lt;br /&gt;
callback to allow popular javascript toolkits to use the returned data to&lt;br /&gt;
create ajax monitoring applications in the browser. This is an advantage&lt;br /&gt;
because after the page is loaded, the browser will interact directly with&lt;br /&gt;
the region, eliminating traffic through the website (polling the region and&lt;br /&gt;
servicing the browser). It also allows the creation of mashups to create&lt;br /&gt;
mini-monitor apps in other pages.&lt;br /&gt;
&lt;br /&gt;
To enable your stats reporting, set the following in your OpenSim.ini...&lt;br /&gt;
&lt;br /&gt;
    ; Simulator Stats URI&lt;br /&gt;
    ; Enable JSON simulator data by setting a URI name (case sensitive)&lt;br /&gt;
    Stats_URI = &amp;quot;jsonSimStats&amp;quot;&lt;br /&gt;
&lt;br /&gt;
...the URI can be anything you want, and is case sensitive. You can query&lt;br /&gt;
the URI directly to return a json string to use in php, python, java, etc.&lt;br /&gt;
or you may use one of the popular javascript toolkits to have OpenSim&lt;br /&gt;
generate a callback for jsonp. The json serialization carries the following&lt;br /&gt;
data...&lt;br /&gt;
&lt;br /&gt;
  {&amp;quot;AssetsInCache&amp;quot;:5.0,&amp;quot;TimeAfterCacheMiss&amp;quot;:0.0,&amp;quot;BlockedMissingTextureRequests&amp;quot;:0.0,&amp;quot;AssetServiceRequestFailures&amp;quot;:0.0,&lt;br /&gt;
 &amp;quot;abnormalClientThreadTerminations&amp;quot;:0.0,&amp;quot;InventoryServiceRetrievalFailures&amp;quot;:0.0,&amp;quot;Dilatn&amp;quot;:0.967380821704865,&amp;quot;SimFPS&amp;quot;:55.0,&lt;br /&gt;
 &amp;quot;PhyFPS&amp;quot;:47.1628913879395,&amp;quot;AgntUp&amp;quot;:0.0,&amp;quot;RootAg&amp;quot;:0.0,&amp;quot;ChldAg&amp;quot;:0.0,&amp;quot;Prims&amp;quot;:0.0,&amp;quot;AtvPrm&amp;quot;:0.0,&amp;quot;AtvScr&amp;quot;:0.0,&amp;quot;ScrLPS&amp;quot;:0.0,&lt;br /&gt;
 &amp;quot;PktsIn&amp;quot;:0.0,&amp;quot;PktOut&amp;quot;:0.0,&amp;quot;PendDl&amp;quot;:0.0,&amp;quot;PendUl&amp;quot;:0.0,&amp;quot;UnackB&amp;quot;:0.0,&amp;quot;TotlFt&amp;quot;:0.0,&amp;quot;NetFt&amp;quot;:0.0,&amp;quot;PhysFt&amp;quot;:0.0,&amp;quot;OthrFt&amp;quot;:0.0,&lt;br /&gt;
 &amp;quot;AgntFt&amp;quot;:0.0,&amp;quot;ImgsFt&amp;quot;:0.0,&amp;quot;Memory&amp;quot;:&amp;quot;8&amp;quot;,&amp;quot;Uptime&amp;quot;:&amp;quot;05:12:19.0365590&amp;quot;,&amp;quot;Version&amp;quot;:&amp;quot;OpenSimulator Server  0.6.4.9533 &amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!DOCTYPE HTML&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;JSON Test&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;https://code.jquery.com/jquery-2.1.3.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;http://www.google.com/jsapi&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; language=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SimFPS = 0;&lt;br /&gt;
PhyFPS = 0;&lt;br /&gt;
Memory = 0;&lt;br /&gt;
RootAg = 0;&lt;br /&gt;
ChldAg = 0;&lt;br /&gt;
Uptime = &amp;quot;&amp;quot;;&lt;br /&gt;
Version = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
setInterval(function(){&lt;br /&gt;
$.getJSON(&lt;br /&gt;
  &amp;quot;http://ascent.bluewallgroup.com:9100/jsonSimStats/?callback=?&amp;quot;,  &lt;br /&gt;
  function(data){&lt;br /&gt;
  SimFPS = Math.round(data.SimFPS);&lt;br /&gt;
  PhyFPS = Math.round(data.PhyFPS);&lt;br /&gt;
  Memory = Math.round(data.Memory);&lt;br /&gt;
  ChldAg = data.ChldAg;&lt;br /&gt;
  RootAg = data.RootAg;&lt;br /&gt;
  Uptime = data.Uptime;&lt;br /&gt;
  Version = data.Version;&lt;br /&gt;
  drawChart();&lt;br /&gt;
  setTags();&lt;br /&gt;
  })}, 3000&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
google.load(&amp;quot;visualization&amp;quot;, &amp;quot;1&amp;quot;, {packages:[&amp;quot;gauge&amp;quot;]});&lt;br /&gt;
google.setOnLoadCallback(drawChart);&lt;br /&gt;
function drawChart() {&lt;br /&gt;
  var cdata = new google.visualization.DataTable();&lt;br /&gt;
  cdata.addColumn('string', 'Label');&lt;br /&gt;
  cdata.addColumn('number', 'Value');&lt;br /&gt;
  cdata.addRows(3);&lt;br /&gt;
  cdata.setValue(0, 0, 'SimFPS');&lt;br /&gt;
  cdata.setValue(0, 1, SimFPS);&lt;br /&gt;
  cdata.setValue(1, 0, 'PhyFPS');&lt;br /&gt;
  cdata.setValue(1, 1, PhyFPS);&lt;br /&gt;
  cdata.setValue(2, 0, 'Memory');&lt;br /&gt;
  cdata.setValue(2, 1, Memory);&lt;br /&gt;
&lt;br /&gt;
  var chart = new&lt;br /&gt;
    google.visualization.Gauge(document.getElementById('chart_div'));&lt;br /&gt;
  var options = {width: 400, height: 120, redFrom: 90, redTo: 100,&lt;br /&gt;
    yellowFrom:75, yellowTo: 90, minorTicks: 5};&lt;br /&gt;
  chart.draw(cdata, options);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$(function() {&lt;br /&gt;
    timer.start(100);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
function setTags() {&lt;br /&gt;
  $(&amp;quot;#par-uptime&amp;quot;).text(&amp;quot;Uptime: &amp;quot;  + Uptime);&lt;br /&gt;
  $(&amp;quot;#par-ragent&amp;quot;).text(&amp;quot;Root Agent: &amp;quot; + RootAg);&lt;br /&gt;
  $(&amp;quot;#par-version&amp;quot;).text(&amp;quot;Version: &amp;quot; + Version);&lt;br /&gt;
  $(&amp;quot;#par-cagent&amp;quot;).text(&amp;quot;Child Agent: &amp;quot; + ChldAg);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
= BlueWall Development Region =&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;div id=&amp;quot;par-version&amp;quot;&amp;gt;version&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;div id=&amp;quot;par-ragent&amp;quot;&amp;gt;root agent&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;div id=&amp;quot;par-uptime&amp;quot;&amp;gt;uptime&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;div id=&amp;quot;par-cagent&amp;quot;&amp;gt;child agent&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;chart_div&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[SSL in OpenSim]]&lt;br /&gt;
&lt;br /&gt;
== JSON Grid Simstats ==&lt;br /&gt;
&lt;br /&gt;
Python example to gain the region data from a grid service&lt;br /&gt;
 - should work but this version not tested -&lt;br /&gt;
         *reference material* &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 import hashlib&lt;br /&gt;
 import urllib2&lt;br /&gt;
&lt;br /&gt;
 ''' value shown is an example, get this from your grid database each time - regions.regionSecret '''&lt;br /&gt;
 regionsecret = 'fe21314b-6267-44f7-aa1e-6047e1c3f94a'&lt;br /&gt;
&lt;br /&gt;
 ''' My region host '''&lt;br /&gt;
 hostName =  myregion.host.net&lt;br /&gt;
&lt;br /&gt;
 ''' My region port '''&lt;br /&gt;
 hostPort = 9000&lt;br /&gt;
&lt;br /&gt;
 ''' create an *UPPERCASE* SHA1 hash from the regionSecret '''&lt;br /&gt;
 resourceName = str(hashlib.sha1(regionsecret).hexdigest()).upper()&lt;br /&gt;
&lt;br /&gt;
 regionuri = hostName + &amp;quot;:&amp;quot; + hostPort + &amp;quot;/&amp;quot; + resourceName + &amp;quot;/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 ''' data includes TimeZoneName , TimeZoneOffs, UxTime, Memory, Version and OSStatsURI '''&lt;br /&gt;
 regiondata = simplejson.load(urllib2.urlopen(regionuri))&lt;br /&gt;
&lt;br /&gt;
 ''' OSStatsURI is the uri to query the OpenSim instance. return same data as the user set uri '''&lt;br /&gt;
 simuri = regiondata['OSStatsURI']&lt;br /&gt;
&lt;br /&gt;
 simdata = simplejson.load(urllib2.urlopen(simuri))&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using shell environment variables in OpenSim configuration ==&lt;br /&gt;
&lt;br /&gt;
We will need to use two new things in our configurations: a section [Environment] to tell us what variables we need to look at in the shell and we will need to use the Nini key expansion. Nini, can have keys that look like ${SECTION|VARIABLE} and can expand those to the variables we assign.&lt;br /&gt;
&lt;br /&gt;
In your shell you will export your values and check the ones you want to use that are predefined by your system ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export RT_ZONE=Zone_00&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# You can see your HOSTNAME (It will be set by the system)...&lt;br /&gt;
echo $HOSTNAME&lt;br /&gt;
OSERV_00&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the ini you will include an [Environment] section...&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Environment]  ; Our Environment section that defines the shell variables we are interested in&lt;br /&gt;
RT_ZONE=&amp;quot;&amp;quot;     ; We might use a zone to setup an instance of OpenSim on a server  &lt;br /&gt;
HOSTNAME=&amp;quot;&amp;quot; ; We might be interested in obtaining the host's name &lt;br /&gt;
&lt;br /&gt;
[Startup]&lt;br /&gt;
regionload_regionsdir=/home/opensim/etc/Regions/${Environment|RT_ZONE}/   ; We set our regionload_regionsdir using the variables&lt;br /&gt;
ConsolePrompt = &amp;quot;${Environment|HOSTNAME}:${Environment|RT_ZONE} &amp;quot;&lt;br /&gt;
&lt;br /&gt;
[DatabaseService]&lt;br /&gt;
ConnectionString = &amp;quot;Data Source=localhost;Database=${Environment|RT_ZONE};User ID=username;Password=userpass;&amp;quot; ; Here too&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When OpenSim picks up the variables in your shell and processes all the configurations, the variable keys will be filled in with the variables picked up from the shell ...&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Environment]  ; Our Environment section that defines the shell variables we are interested in&lt;br /&gt;
RT_ZONE=&amp;quot;&amp;quot;     ; We might use a zone to setup an instance of OpenSim on a server  &lt;br /&gt;
HOSTNAME=&amp;quot;&amp;quot; ; We might be interested in obtaining the host's name &lt;br /&gt;
&lt;br /&gt;
[Startup]&lt;br /&gt;
regionload_regionsdir=/home/opensim/etc/Regions/Zone_00/   ; We set our regionload_regionsdir using the variables&lt;br /&gt;
ConsolePrompt = &amp;quot;OSERV_00:Zone_09 &amp;quot;&lt;br /&gt;
&lt;br /&gt;
[DatabaseService]&lt;br /&gt;
ConnectionString = &amp;quot;Data Source=localhost;Database=Zone_00;User ID=username;Password=userpass;&amp;quot; ; Here too&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a pretty good start. I think there will be a couple of places we might be able to use this to help us setup really flexible configuration systems for OpenSim. &lt;br /&gt;
&lt;br /&gt;
Have Fun!&lt;br /&gt;
&lt;br /&gt;
== TESTING ==&lt;br /&gt;
&lt;br /&gt;
This is a test&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/UXSimStatus/fr</id>
		<title>UXSimStatus/fr</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/UXSimStatus/fr"/>
				<updated>2014-12-30T23:28:41Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks}}&lt;br /&gt;
&lt;br /&gt;
Depuis OpenSimulator svn 9529 les statistiques étendues retournent un appel jsonp pour autoriser les outils javascript populaires à utiliser les données retournées pour créer une application de monitoring AJAX dans le navigateur. Ceci est un avantage car une fois que la page est chargée le navigateur va inter agir directement avec la région en éliminant le trafic par le site web (en sondant la région et nourissant le navigateur). Elles permettent aussi la création d'outils permettant de créer des applications dans d'autres pages. &lt;br /&gt;
&lt;br /&gt;
Pour activer vos reports de données, définissez ceci dans votre OpenSim.ini...&lt;br /&gt;
&lt;br /&gt;
    ; Simulator Stats URI&lt;br /&gt;
    ; Enable JSON simulator data by setting a URI name (case sensitive)&lt;br /&gt;
    Stats_URI = &amp;quot;jsonSimStats&amp;quot;&lt;br /&gt;
&lt;br /&gt;
...l'URI peut être ce que vous voulez et est sensible à la casse. Vous pouvez questionner directement l'URI pour retourner une chaîne JSON à utiliser dans php, python, java, etc ou bien vous pouvez utiliser un des outils populaires javascript afin qu'OpenSimulator génère un callback pour jsonp. La sérialisation JSON transporte les données suivantes...&lt;br /&gt;
&lt;br /&gt;
  {&amp;quot;AssetsInCache&amp;quot;:5.0,&amp;quot;TimeAfterCacheMiss&amp;quot;:0.0,&amp;quot;BlockedMissingTextureRequests&amp;quot;:0.0,&amp;quot;AssetServiceRequestFailures&amp;quot;:0.0,&lt;br /&gt;
 &amp;quot;abnormalClientThreadTerminations&amp;quot;:0.0,&amp;quot;InventoryServiceRetrievalFailures&amp;quot;:0.0,&amp;quot;Dilatn&amp;quot;:0.967380821704865,&amp;quot;SimFPS&amp;quot;:55.0,&lt;br /&gt;
 &amp;quot;PhyFPS&amp;quot;:47.1628913879395,&amp;quot;AgntUp&amp;quot;:0.0,&amp;quot;RootAg&amp;quot;:0.0,&amp;quot;ChldAg&amp;quot;:0.0,&amp;quot;Prims&amp;quot;:0.0,&amp;quot;AtvPrm&amp;quot;:0.0,&amp;quot;AtvScr&amp;quot;:0.0,&amp;quot;ScrLPS&amp;quot;:0.0,&lt;br /&gt;
 &amp;quot;PktsIn&amp;quot;:0.0,&amp;quot;PktOut&amp;quot;:0.0,&amp;quot;PendDl&amp;quot;:0.0,&amp;quot;PendUl&amp;quot;:0.0,&amp;quot;UnackB&amp;quot;:0.0,&amp;quot;TotlFt&amp;quot;:0.0,&amp;quot;NetFt&amp;quot;:0.0,&amp;quot;PhysFt&amp;quot;:0.0,&amp;quot;OthrFt&amp;quot;:0.0,&lt;br /&gt;
 &amp;quot;AgntFt&amp;quot;:0.0,&amp;quot;ImgsFt&amp;quot;:0.0,&amp;quot;Memory&amp;quot;:&amp;quot;8&amp;quot;,&amp;quot;Uptime&amp;quot;:&amp;quot;05:12:19.0365590&amp;quot;,&amp;quot;Version&amp;quot;:&amp;quot;OpenSimulator Server  0.6.4.9533 &amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE HTML&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;JSON Test&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;https://code.jquery.com/jquery-2.1.3.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;http://husa.github.io/timer.js/dist/timer.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;http://www.google.com/jsapi&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; language=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
SimFPS = 0;&lt;br /&gt;
PhyFPS = 0;&lt;br /&gt;
Memory = 0;&lt;br /&gt;
RootAg = 0;&lt;br /&gt;
ChldAg = 0;&lt;br /&gt;
Uptime = &amp;quot;&amp;quot;;&lt;br /&gt;
Version = &amp;quot;&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
var timer = new Timer({&lt;br /&gt;
tick : 1,&lt;br /&gt;
ontick : function (sec) {&lt;br /&gt;
$.getJSON(&lt;br /&gt;
  &amp;quot;http://ascent.bluewallgroup.com:9100/jsonSimStats/?callback=?&amp;quot;,  &lt;br /&gt;
  function(data){&lt;br /&gt;
  SimFPS = Math.round(data.SimFPS);&lt;br /&gt;
  PhyFPS = Math.round(data.PhyFPS);&lt;br /&gt;
  Memory = Math.round(data.Memory);&lt;br /&gt;
  ChldAg = data.ChldAg;&lt;br /&gt;
  RootAg = data.RootAg;&lt;br /&gt;
  Uptime = data.Uptime;&lt;br /&gt;
  Version = data.Version;&lt;br /&gt;
  drawChart();&lt;br /&gt;
  setTags();&lt;br /&gt;
  });&lt;br /&gt;
},&lt;br /&gt;
onstart : function() {&lt;br /&gt;
console.log('timer started');&lt;br /&gt;
},&lt;br /&gt;
onend : function() {&lt;br /&gt;
          console.log(&amp;quot;Timer stopped&amp;quot;);&lt;br /&gt;
          this.start(100);&lt;br /&gt;
        }&lt;br /&gt;
});&lt;br /&gt;
 &lt;br /&gt;
google.load(&amp;quot;visualization&amp;quot;, &amp;quot;1&amp;quot;, {packages:[&amp;quot;gauge&amp;quot;]});&lt;br /&gt;
google.setOnLoadCallback(drawChart);&lt;br /&gt;
function drawChart() {&lt;br /&gt;
  var cdata = new google.visualization.DataTable();&lt;br /&gt;
  cdata.addColumn('string', 'Label');&lt;br /&gt;
  cdata.addColumn('number', 'Value');&lt;br /&gt;
  cdata.addRows(3);&lt;br /&gt;
  cdata.setValue(0, 0, 'SimFPS');&lt;br /&gt;
  cdata.setValue(0, 1, SimFPS);&lt;br /&gt;
  cdata.setValue(1, 0, 'PhyFPS');&lt;br /&gt;
  cdata.setValue(1, 1, PhyFPS);&lt;br /&gt;
  cdata.setValue(2, 0, 'Memory');&lt;br /&gt;
  cdata.setValue(2, 1, Memory);&lt;br /&gt;
 &lt;br /&gt;
  var chart = new&lt;br /&gt;
    google.visualization.Gauge(document.getElementById('chart_div'));&lt;br /&gt;
  var options = {width: 400, height: 120, redFrom: 90, redTo: 100,&lt;br /&gt;
    yellowFrom:75, yellowTo: 90, minorTicks: 5};&lt;br /&gt;
  chart.draw(cdata, options);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
$(function() {&lt;br /&gt;
    timer.start(100);&lt;br /&gt;
    });&lt;br /&gt;
 &lt;br /&gt;
function setTags() {&lt;br /&gt;
  $(&amp;quot;#par-uptime&amp;quot;).text(&amp;quot;Uptime: &amp;quot;  + Uptime);&lt;br /&gt;
  $(&amp;quot;#par-ragent&amp;quot;).text(&amp;quot;Root Agent: &amp;quot; + RootAg);&lt;br /&gt;
  $(&amp;quot;#par-version&amp;quot;).text(&amp;quot;Version: &amp;quot; + Version);&lt;br /&gt;
  $(&amp;quot;#par-cagent&amp;quot;).text(&amp;quot;Child Agent: &amp;quot; + ChldAg);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
= BlueWall Development Region =&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;div id=&amp;quot;par-version&amp;quot;&amp;gt;version&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;div id=&amp;quot;par-ragent&amp;quot;&amp;gt;root agent&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;div id=&amp;quot;par-uptime&amp;quot;&amp;gt;uptime&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;div id=&amp;quot;par-cagent&amp;quot;&amp;gt;child agent&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;chart_div&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== JSON Grid Simstats ==&lt;br /&gt;
&lt;br /&gt;
Exemple python pour obtenir les données de région depuis un service de grille - devrait fonctionner mais cette version n'a pas été testée -&lt;br /&gt;
         *reference material* &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 import hashlib&lt;br /&gt;
 import urllib2&lt;br /&gt;
&lt;br /&gt;
 ''' la valeur montrée est un exemple, récupérez ceci depuis votre base de donnée de la grille à chaque fois - regions.regionSecret '''&lt;br /&gt;
 regionsecret = 'fe21314b-6267-44f7-aa1e-6047e1c3f94a'&lt;br /&gt;
&lt;br /&gt;
 ''' Ma region host '''&lt;br /&gt;
 hostName =  myregion.host.net&lt;br /&gt;
&lt;br /&gt;
 ''' Ma region port '''&lt;br /&gt;
 hostPort = 9000&lt;br /&gt;
&lt;br /&gt;
 ''' crée un SHA1 en majuscules depuis le regionSecret '''&lt;br /&gt;
 resourceName = str(hashlib.sha1(regionsecret).hexdigest()).upper()&lt;br /&gt;
&lt;br /&gt;
 regionuri = hostName + &amp;quot;:&amp;quot; + hostPort + &amp;quot;/&amp;quot; + resourceName + &amp;quot;/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 ''' les données incluent TimeZoneName , TimeZoneOffs, UxTime, Memory, Version et OSStatsURI '''&lt;br /&gt;
 regiondata = simplejson.load(urllib2.urlopen(regionuri))&lt;br /&gt;
&lt;br /&gt;
 ''' OSStatsURI est l'uri de requete de l'instance OpenSimulator. Retourne les même données avec l'uri fournie par l'utilisateur '''&lt;br /&gt;
 simuri = regiondata['OSStatsURI']&lt;br /&gt;
&lt;br /&gt;
 simdata = simplejson.load(urllib2.urlopen(simuri))&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Test_Page</id>
		<title>Test Page</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Test_Page"/>
				<updated>2014-12-30T21:27:54Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: /* JSON User SimStats */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''As of 2011-10-10 I copy/pasted this over to the linked [[UXSimStatus]] for further change/editing -- [[User:Justincc|Justincc]] 20:22, 10 October 2011 (UTC)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== JSON User SimStats ==&lt;br /&gt;
&lt;br /&gt;
As of OpenSim svn 9529 the xtended stats reporting will return a jsonp&lt;br /&gt;
callback to allow popular javascript toolkits to use the returned data to&lt;br /&gt;
create ajax monitoring applications in the browser. This is an advantage&lt;br /&gt;
because after the page is loaded, the browser will interact directly with&lt;br /&gt;
the region, eliminating traffic through the website (polling the region and&lt;br /&gt;
servicing the browser). It also allows the creation of mashups to create&lt;br /&gt;
mini-monitor apps in other pages.&lt;br /&gt;
&lt;br /&gt;
To enable your stats reporting, set the following in your OpenSim.ini...&lt;br /&gt;
&lt;br /&gt;
    ; Simulator Stats URI&lt;br /&gt;
    ; Enable JSON simulator data by setting a URI name (case sensitive)&lt;br /&gt;
    Stats_URI = &amp;quot;jsonSimStats&amp;quot;&lt;br /&gt;
&lt;br /&gt;
...the URI can be anything you want, and is case sensitive. You can query&lt;br /&gt;
the URI directly to return a json string to use in php, python, java, etc.&lt;br /&gt;
or you may use one of the popular javascript toolkits to have OpenSim&lt;br /&gt;
generate a callback for jsonp. The json serialization carries the following&lt;br /&gt;
data...&lt;br /&gt;
&lt;br /&gt;
  {&amp;quot;AssetsInCache&amp;quot;:5.0,&amp;quot;TimeAfterCacheMiss&amp;quot;:0.0,&amp;quot;BlockedMissingTextureRequests&amp;quot;:0.0,&amp;quot;AssetServiceRequestFailures&amp;quot;:0.0,&lt;br /&gt;
 &amp;quot;abnormalClientThreadTerminations&amp;quot;:0.0,&amp;quot;InventoryServiceRetrievalFailures&amp;quot;:0.0,&amp;quot;Dilatn&amp;quot;:0.967380821704865,&amp;quot;SimFPS&amp;quot;:55.0,&lt;br /&gt;
 &amp;quot;PhyFPS&amp;quot;:47.1628913879395,&amp;quot;AgntUp&amp;quot;:0.0,&amp;quot;RootAg&amp;quot;:0.0,&amp;quot;ChldAg&amp;quot;:0.0,&amp;quot;Prims&amp;quot;:0.0,&amp;quot;AtvPrm&amp;quot;:0.0,&amp;quot;AtvScr&amp;quot;:0.0,&amp;quot;ScrLPS&amp;quot;:0.0,&lt;br /&gt;
 &amp;quot;PktsIn&amp;quot;:0.0,&amp;quot;PktOut&amp;quot;:0.0,&amp;quot;PendDl&amp;quot;:0.0,&amp;quot;PendUl&amp;quot;:0.0,&amp;quot;UnackB&amp;quot;:0.0,&amp;quot;TotlFt&amp;quot;:0.0,&amp;quot;NetFt&amp;quot;:0.0,&amp;quot;PhysFt&amp;quot;:0.0,&amp;quot;OthrFt&amp;quot;:0.0,&lt;br /&gt;
 &amp;quot;AgntFt&amp;quot;:0.0,&amp;quot;ImgsFt&amp;quot;:0.0,&amp;quot;Memory&amp;quot;:&amp;quot;8&amp;quot;,&amp;quot;Uptime&amp;quot;:&amp;quot;05:12:19.0365590&amp;quot;,&amp;quot;Version&amp;quot;:&amp;quot;OpenSimulator Server  0.6.4.9533 &amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE HTML&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;JSON Test&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;https://code.jquery.com/jquery-2.1.3.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;http://husa.github.io/timer.js/dist/timer.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;http://www.google.com/jsapi&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; language=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
SimFPS = 0;&lt;br /&gt;
PhyFPS = 0;&lt;br /&gt;
Memory = 0;&lt;br /&gt;
RootAg = 0;&lt;br /&gt;
ChldAg = 0;&lt;br /&gt;
Uptime = &amp;quot;&amp;quot;;&lt;br /&gt;
Version = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
var timer = new Timer({&lt;br /&gt;
tick : 1,&lt;br /&gt;
ontick : function (sec) {&lt;br /&gt;
$.getJSON(&lt;br /&gt;
  &amp;quot;http://ascent.bluewallgroup.com:9100/jsonSimStats/?callback=?&amp;quot;,  &lt;br /&gt;
  function(data){&lt;br /&gt;
  SimFPS = Math.round(data.SimFPS);&lt;br /&gt;
  PhyFPS = Math.round(data.PhyFPS);&lt;br /&gt;
  Memory = Math.round(data.Memory);&lt;br /&gt;
  ChldAg = data.ChldAg;&lt;br /&gt;
  RootAg = data.RootAg;&lt;br /&gt;
  Uptime = data.Uptime;&lt;br /&gt;
  Version = data.Version;&lt;br /&gt;
  drawChart();&lt;br /&gt;
  setTags();&lt;br /&gt;
  });&lt;br /&gt;
},&lt;br /&gt;
onstart : function() {&lt;br /&gt;
console.log('timer started');&lt;br /&gt;
},&lt;br /&gt;
onend : function() {&lt;br /&gt;
          console.log(&amp;quot;Timer stopped&amp;quot;);&lt;br /&gt;
          this.start(100);&lt;br /&gt;
        }&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
google.load(&amp;quot;visualization&amp;quot;, &amp;quot;1&amp;quot;, {packages:[&amp;quot;gauge&amp;quot;]});&lt;br /&gt;
google.setOnLoadCallback(drawChart);&lt;br /&gt;
function drawChart() {&lt;br /&gt;
  var cdata = new google.visualization.DataTable();&lt;br /&gt;
  cdata.addColumn('string', 'Label');&lt;br /&gt;
  cdata.addColumn('number', 'Value');&lt;br /&gt;
  cdata.addRows(3);&lt;br /&gt;
  cdata.setValue(0, 0, 'SimFPS');&lt;br /&gt;
  cdata.setValue(0, 1, SimFPS);&lt;br /&gt;
  cdata.setValue(1, 0, 'PhyFPS');&lt;br /&gt;
  cdata.setValue(1, 1, PhyFPS);&lt;br /&gt;
  cdata.setValue(2, 0, 'Memory');&lt;br /&gt;
  cdata.setValue(2, 1, Memory);&lt;br /&gt;
&lt;br /&gt;
  var chart = new&lt;br /&gt;
    google.visualization.Gauge(document.getElementById('chart_div'));&lt;br /&gt;
  var options = {width: 400, height: 120, redFrom: 90, redTo: 100,&lt;br /&gt;
    yellowFrom:75, yellowTo: 90, minorTicks: 5};&lt;br /&gt;
  chart.draw(cdata, options);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$(function() {&lt;br /&gt;
    timer.start(100);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
function setTags() {&lt;br /&gt;
  $(&amp;quot;#par-uptime&amp;quot;).text(&amp;quot;Uptime: &amp;quot;  + Uptime);&lt;br /&gt;
  $(&amp;quot;#par-ragent&amp;quot;).text(&amp;quot;Root Agent: &amp;quot; + RootAg);&lt;br /&gt;
  $(&amp;quot;#par-version&amp;quot;).text(&amp;quot;Version: &amp;quot; + Version);&lt;br /&gt;
  $(&amp;quot;#par-cagent&amp;quot;).text(&amp;quot;Child Agent: &amp;quot; + ChldAg);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
= BlueWall Development Region =&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;div id=&amp;quot;par-version&amp;quot;&amp;gt;version&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;div id=&amp;quot;par-ragent&amp;quot;&amp;gt;root agent&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;div id=&amp;quot;par-uptime&amp;quot;&amp;gt;uptime&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;div id=&amp;quot;par-cagent&amp;quot;&amp;gt;child agent&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;chart_div&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[SSL in OpenSim]]&lt;br /&gt;
&lt;br /&gt;
== JSON Grid Simstats ==&lt;br /&gt;
&lt;br /&gt;
Python example to gain the region data from a grid service&lt;br /&gt;
 - should work but this version not tested -&lt;br /&gt;
         *reference material* &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 import hashlib&lt;br /&gt;
 import urllib2&lt;br /&gt;
&lt;br /&gt;
 ''' value shown is an example, get this from your grid database each time - regions.regionSecret '''&lt;br /&gt;
 regionsecret = 'fe21314b-6267-44f7-aa1e-6047e1c3f94a'&lt;br /&gt;
&lt;br /&gt;
 ''' My region host '''&lt;br /&gt;
 hostName =  myregion.host.net&lt;br /&gt;
&lt;br /&gt;
 ''' My region port '''&lt;br /&gt;
 hostPort = 9000&lt;br /&gt;
&lt;br /&gt;
 ''' create an *UPPERCASE* SHA1 hash from the regionSecret '''&lt;br /&gt;
 resourceName = str(hashlib.sha1(regionsecret).hexdigest()).upper()&lt;br /&gt;
&lt;br /&gt;
 regionuri = hostName + &amp;quot;:&amp;quot; + hostPort + &amp;quot;/&amp;quot; + resourceName + &amp;quot;/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 ''' data includes TimeZoneName , TimeZoneOffs, UxTime, Memory, Version and OSStatsURI '''&lt;br /&gt;
 regiondata = simplejson.load(urllib2.urlopen(regionuri))&lt;br /&gt;
&lt;br /&gt;
 ''' OSStatsURI is the uri to query the OpenSim instance. return same data as the user set uri '''&lt;br /&gt;
 simuri = regiondata['OSStatsURI']&lt;br /&gt;
&lt;br /&gt;
 simdata = simplejson.load(urllib2.urlopen(simuri))&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using shell environment variables in OpenSim configuration ==&lt;br /&gt;
&lt;br /&gt;
We will need to use two new things in our configurations: a section [Environment] to tell us what variables we need to look at in the shell and we will need to use the Nini key expansion. Nini, can have keys that look like ${SECTION|VARIABLE} and can expand those to the variables we assign.&lt;br /&gt;
&lt;br /&gt;
In your shell you will export your values and check the ones you want to use that are predefined by your system ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export RT_ZONE=Zone_00&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# You can see your HOSTNAME (It will be set by the system)...&lt;br /&gt;
echo $HOSTNAME&lt;br /&gt;
OSERV_00&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the ini you will include an [Environment] section...&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Environment]  ; Our Environment section that defines the shell variables we are interested in&lt;br /&gt;
RT_ZONE=&amp;quot;&amp;quot;     ; We might use a zone to setup an instance of OpenSim on a server  &lt;br /&gt;
HOSTNAME=&amp;quot;&amp;quot; ; We might be interested in obtaining the host's name &lt;br /&gt;
&lt;br /&gt;
[Startup]&lt;br /&gt;
regionload_regionsdir=/home/opensim/etc/Regions/${Environment|RT_ZONE}/   ; We set our regionload_regionsdir using the variables&lt;br /&gt;
ConsolePrompt = &amp;quot;${Environment|HOSTNAME}:${Environment|RT_ZONE} &amp;quot;&lt;br /&gt;
&lt;br /&gt;
[DatabaseService]&lt;br /&gt;
ConnectionString = &amp;quot;Data Source=localhost;Database=${Environment|RT_ZONE};User ID=username;Password=userpass;&amp;quot; ; Here too&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When OpenSim picks up the variables in your shell and processes all the configurations, the variable keys will be filled in with the variables picked up from the shell ...&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Environment]  ; Our Environment section that defines the shell variables we are interested in&lt;br /&gt;
RT_ZONE=&amp;quot;&amp;quot;     ; We might use a zone to setup an instance of OpenSim on a server  &lt;br /&gt;
HOSTNAME=&amp;quot;&amp;quot; ; We might be interested in obtaining the host's name &lt;br /&gt;
&lt;br /&gt;
[Startup]&lt;br /&gt;
regionload_regionsdir=/home/opensim/etc/Regions/Zone_00/   ; We set our regionload_regionsdir using the variables&lt;br /&gt;
ConsolePrompt = &amp;quot;OSERV_00:Zone_09 &amp;quot;&lt;br /&gt;
&lt;br /&gt;
[DatabaseService]&lt;br /&gt;
ConnectionString = &amp;quot;Data Source=localhost;Database=Zone_00;User ID=username;Password=userpass;&amp;quot; ; Here too&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a pretty good start. I think there will be a couple of places we might be able to use this to help us setup really flexible configuration systems for OpenSim. &lt;br /&gt;
&lt;br /&gt;
Have Fun!&lt;br /&gt;
&lt;br /&gt;
== TESTING ==&lt;br /&gt;
&lt;br /&gt;
This is a test&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/UXSimStatus</id>
		<title>UXSimStatus</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/UXSimStatus"/>
				<updated>2014-12-25T22:53:51Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks}}&lt;br /&gt;
&lt;br /&gt;
As of OpenSimulator svn 9529 the xtended stats reporting will return a jsonp&lt;br /&gt;
callback to allow popular javascript toolkits to use the returned data to&lt;br /&gt;
create ajax monitoring applications in the browser. This is an advantage&lt;br /&gt;
because after the page is loaded, the browser will interact directly with&lt;br /&gt;
the region, eliminating traffic through the website (polling the region and&lt;br /&gt;
servicing the browser). It also allows the creation of mashups to create&lt;br /&gt;
mini-monitor apps in other pages.&lt;br /&gt;
&lt;br /&gt;
To enable your stats reporting, set the following in your OpenSim.ini...&lt;br /&gt;
&lt;br /&gt;
    ; Simulator Stats URI&lt;br /&gt;
    ; Enable JSON simulator data by setting a URI name (case sensitive)&lt;br /&gt;
    Stats_URI = &amp;quot;jsonSimStats&amp;quot;&lt;br /&gt;
&lt;br /&gt;
...the URI can be anything you want, and is case sensitive. You can query&lt;br /&gt;
the URI directly to return a json string to use in php, python, java, etc.&lt;br /&gt;
or you may use one of the popular javascript toolkits to have OpenSimulator&lt;br /&gt;
generate a callback for jsonp. The json serialization carries the following&lt;br /&gt;
data...&lt;br /&gt;
&lt;br /&gt;
  {&amp;quot;AssetsInCache&amp;quot;:5.0,&amp;quot;TimeAfterCacheMiss&amp;quot;:0.0,&amp;quot;BlockedMissingTextureRequests&amp;quot;:0.0,&amp;quot;AssetServiceRequestFailures&amp;quot;:0.0,&lt;br /&gt;
 &amp;quot;abnormalClientThreadTerminations&amp;quot;:0.0,&amp;quot;InventoryServiceRetrievalFailures&amp;quot;:0.0,&amp;quot;Dilatn&amp;quot;:0.967380821704865,&amp;quot;SimFPS&amp;quot;:55.0,&lt;br /&gt;
 &amp;quot;PhyFPS&amp;quot;:47.1628913879395,&amp;quot;AgntUp&amp;quot;:0.0,&amp;quot;RootAg&amp;quot;:0.0,&amp;quot;ChldAg&amp;quot;:0.0,&amp;quot;Prims&amp;quot;:0.0,&amp;quot;AtvPrm&amp;quot;:0.0,&amp;quot;AtvScr&amp;quot;:0.0,&amp;quot;ScrLPS&amp;quot;:0.0,&lt;br /&gt;
 &amp;quot;PktsIn&amp;quot;:0.0,&amp;quot;PktOut&amp;quot;:0.0,&amp;quot;PendDl&amp;quot;:0.0,&amp;quot;PendUl&amp;quot;:0.0,&amp;quot;UnackB&amp;quot;:0.0,&amp;quot;TotlFt&amp;quot;:0.0,&amp;quot;NetFt&amp;quot;:0.0,&amp;quot;PhysFt&amp;quot;:0.0,&amp;quot;OthrFt&amp;quot;:0.0,&lt;br /&gt;
 &amp;quot;AgntFt&amp;quot;:0.0,&amp;quot;ImgsFt&amp;quot;:0.0,&amp;quot;Memory&amp;quot;:&amp;quot;8&amp;quot;,&amp;quot;Uptime&amp;quot;:&amp;quot;05:12:19.0365590&amp;quot;,&amp;quot;Version&amp;quot;:&amp;quot;OpenSimulator Server  0.6.4.9533 &amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE HTML&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;JSON Test&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;https://code.jquery.com/jquery-2.1.3.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;http://husa.github.io/timer.js/dist/timer.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;http://www.google.com/jsapi&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; language=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
SimFPS = 0;&lt;br /&gt;
PhyFPS = 0;&lt;br /&gt;
Memory = 0;&lt;br /&gt;
RootAg = 0;&lt;br /&gt;
ChldAg = 0;&lt;br /&gt;
Uptime = &amp;quot;&amp;quot;;&lt;br /&gt;
Version = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
var timer = new Timer({&lt;br /&gt;
tick : 1,&lt;br /&gt;
ontick : function (sec) {&lt;br /&gt;
$.getJSON(&lt;br /&gt;
  &amp;quot;http://ascent.bluewallgroup.com:9100/jsonSimStats/?callback=?&amp;quot;,  &lt;br /&gt;
  function(data){&lt;br /&gt;
  SimFPS = Math.round(data.SimFPS);&lt;br /&gt;
  PhyFPS = Math.round(data.PhyFPS);&lt;br /&gt;
  Memory = Math.round(data.Memory);&lt;br /&gt;
  ChldAg = data.ChldAg;&lt;br /&gt;
  RootAg = data.RootAg;&lt;br /&gt;
  Uptime = data.Uptime;&lt;br /&gt;
  Version = data.Version;&lt;br /&gt;
  drawChart();&lt;br /&gt;
  setTags();&lt;br /&gt;
  });&lt;br /&gt;
},&lt;br /&gt;
onstart : function() {&lt;br /&gt;
console.log('timer started');&lt;br /&gt;
},&lt;br /&gt;
onend : function() {&lt;br /&gt;
          console.log(&amp;quot;Timer stopped&amp;quot;);&lt;br /&gt;
          this.start(100);&lt;br /&gt;
        }&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
google.load(&amp;quot;visualization&amp;quot;, &amp;quot;1&amp;quot;, {packages:[&amp;quot;gauge&amp;quot;]});&lt;br /&gt;
google.setOnLoadCallback(drawChart);&lt;br /&gt;
function drawChart() {&lt;br /&gt;
  var cdata = new google.visualization.DataTable();&lt;br /&gt;
  cdata.addColumn('string', 'Label');&lt;br /&gt;
  cdata.addColumn('number', 'Value');&lt;br /&gt;
  cdata.addRows(3);&lt;br /&gt;
  cdata.setValue(0, 0, 'SimFPS');&lt;br /&gt;
  cdata.setValue(0, 1, SimFPS);&lt;br /&gt;
  cdata.setValue(1, 0, 'PhyFPS');&lt;br /&gt;
  cdata.setValue(1, 1, PhyFPS);&lt;br /&gt;
  cdata.setValue(2, 0, 'Memory');&lt;br /&gt;
  cdata.setValue(2, 1, Memory);&lt;br /&gt;
&lt;br /&gt;
  var chart = new&lt;br /&gt;
    google.visualization.Gauge(document.getElementById('chart_div'));&lt;br /&gt;
  var options = {width: 400, height: 120, redFrom: 90, redTo: 100,&lt;br /&gt;
    yellowFrom:75, yellowTo: 90, minorTicks: 5};&lt;br /&gt;
  chart.draw(cdata, options);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$(function() {&lt;br /&gt;
    timer.start(100);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
function setTags() {&lt;br /&gt;
  $(&amp;quot;#par-uptime&amp;quot;).text(&amp;quot;Uptime: &amp;quot;  + Uptime);&lt;br /&gt;
  $(&amp;quot;#par-ragent&amp;quot;).text(&amp;quot;Root Agent: &amp;quot; + RootAg);&lt;br /&gt;
  $(&amp;quot;#par-version&amp;quot;).text(&amp;quot;Version: &amp;quot; + Version);&lt;br /&gt;
  $(&amp;quot;#par-cagent&amp;quot;).text(&amp;quot;Child Agent: &amp;quot; + ChldAg);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
= BlueWall Development Region =&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;div id=&amp;quot;par-version&amp;quot;&amp;gt;version&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;div id=&amp;quot;par-ragent&amp;quot;&amp;gt;root agent&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;div id=&amp;quot;par-uptime&amp;quot;&amp;gt;uptime&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;lt;div id=&amp;quot;par-cagent&amp;quot;&amp;gt;child agent&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;chart_div&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[SSL in OpenSim]]&lt;br /&gt;
&lt;br /&gt;
== JSON Grid Simstats ==&lt;br /&gt;
&lt;br /&gt;
Python example to gain the region data from a grid service&lt;br /&gt;
 - should work but this version not tested -&lt;br /&gt;
         *reference material* &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 import hashlib&lt;br /&gt;
 import urllib2&lt;br /&gt;
&lt;br /&gt;
 ''' value shown is an example, get this from your grid database each time - regions.regionSecret '''&lt;br /&gt;
 regionsecret = 'fe21314b-6267-44f7-aa1e-6047e1c3f94a'&lt;br /&gt;
&lt;br /&gt;
 ''' My region host '''&lt;br /&gt;
 hostName =  myregion.host.net&lt;br /&gt;
&lt;br /&gt;
 ''' My region port '''&lt;br /&gt;
 hostPort = 9000&lt;br /&gt;
&lt;br /&gt;
 ''' create an *UPPERCASE* SHA1 hash from the regionSecret '''&lt;br /&gt;
 resourceName = str(hashlib.sha1(regionsecret).hexdigest()).upper()&lt;br /&gt;
&lt;br /&gt;
 regionuri = hostName + &amp;quot;:&amp;quot; + hostPort + &amp;quot;/&amp;quot; + resourceName + &amp;quot;/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 ''' data includes TimeZoneName , TimeZoneOffs, UxTime, Memory, Version and OSStatsURI '''&lt;br /&gt;
 regiondata = simplejson.load(urllib2.urlopen(regionuri))&lt;br /&gt;
&lt;br /&gt;
 ''' OSStatsURI is the uri to query the OpenSimulator instance. return same data as the user set uri '''&lt;br /&gt;
 simuri = regiondata['OSStatsURI']&lt;br /&gt;
&lt;br /&gt;
 simdata = simplejson.load(urllib2.urlopen(simuri))&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Configuration</id>
		<title>Configuration</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Configuration"/>
				<updated>2014-09-03T17:18:04Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: /* Running OpenSimulator 0.6.7 to 0.7.6.1 in 64 bit Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
== OpenSimulator simulator configuration file ==&lt;br /&gt;
The region simulator configuration is managed using a file called OpenSim.ini. This file is used regardless of whether the sim is running in standalone or grid mode. This file references some additional configuration information from the config-include/ directory. Information about the various settings is contained in the OpenSim.ini file itself (or OpenSim.ini.example for reference).&lt;br /&gt;
&lt;br /&gt;
Please note, that the name OpenSim.ini can be changed via [[OpenSim.exe Command Line Options|command line arguments]].&lt;br /&gt;
&lt;br /&gt;
It is also possible to distribute the inifile settings over two files. This is useful if you want to run several OpenSimulator processes where most of your settings are identical except for a few. The master file is read first, then the inifile is read. Settings given in the inifile overrule settings given in the master file. The master file has the same format and the same keywords as the inifile, so the same documentation applies.&lt;br /&gt;
&lt;br /&gt;
== Database ==&lt;br /&gt;
&lt;br /&gt;
Opensim supports the following database-engines. Information about setting these up can be found in the OpenSim.ini.example file and the other various example files in bin/config-include.  '''If you do not want to use the default SQLite configuration then you will need to setup your database before proceeding further'''.  SQLite does not require further configuration.  See [[Database Settings]] for the detailed settings.&lt;br /&gt;
&lt;br /&gt;
* '''SQLite''' (default) - a lightweight database that comes bundled with OpenSimulator and can be used without requiring any extra configuration. It is mostly intended to get you up and running quickly, not for production use. It is significantly slower than MySQL. A few features here (such as attachment persistence) have not yet been fully implemented. &lt;br /&gt;
&lt;br /&gt;
* '''MySQL''' (fully supported) - This is the recommended database for any use beyond experimentation or small standalone applications. The minimum MySQL version is 5.1.&lt;br /&gt;
::* '''Windows x64 systems:''' &amp;amp;nbsp;There is currently an unresolved [http://opensimulator.org/mantis/bug_view_advanced_page.php?bug_id=5294 bug_id=5294] found when running OpenSimulator with MySQL 5.5 on Windows x64 systems.&lt;br /&gt;
::* '''Opensim 0.7.0.2:''' &amp;amp;nbsp;Some users have reported problems with MySQL 5.1.55 and up with Opensim 0.7.0.2, see [http://opensim-users.2152040.n2.nabble.com/OpenSim-1-7-0-2-and-MySQL-Versions-td6155064.html this thread] for more information. The issue can be resolved by using an updated version of MySql.Data.dll OR installing an older version of MySQL such as [http://downloads.mysql.com/archives.php?p=mysql-5.1&amp;amp;v=5.1.52 MySQL 5.1.52] with Opensim version 0.7.0.2. &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
* '''MSSQL''' (fairly supported) - persistence support for some recent OpenSimulator features may not yet be implemented though the vast majority of them are supported.&lt;br /&gt;
&lt;br /&gt;
== Standalone vs. Grid ==&lt;br /&gt;
We recommend that you first get OpenSimulator running in standalone mode before you attempt to connect it to a grid or run your own grid. OpenSimulator will start up in standalone mode out-of-the-box on the binary distributions.&lt;br /&gt;
&lt;br /&gt;
An OpenSimulator configuration consists of regions (run by region simulators) and backend data services (such as user, assets and inventory management).&lt;br /&gt;
&lt;br /&gt;
A system running in '''standalone mode''' runs both the region simulator and all the data services in a single process when you run OpenSim.exe. In this mode you can run as many regions as you like but only on a single machine.&lt;br /&gt;
&lt;br /&gt;
[[Image:Opensim-standalone.png|frame|center|OpenSimulator running in standalone mode. Both simulator and services run in the same process (OpenSim.exe).]]&lt;br /&gt;
&lt;br /&gt;
In '''grid mode''', the data services are not part of the region server process. Instead, they are run in a separate executable called Robust.exe. A Robust shell can run all the services or they can be split amongst any number of Robust instances. This allows them to be run on entirely separate machines if necessary. In this mode, the OpenSim.exe acts solely as the region server, serving one or more regions that communicate with the separate data services. At this point you can run multiple OpenSim.exe region simulators on different machines.&lt;br /&gt;
&lt;br /&gt;
[[Image:Opensim-grid-simple.png|frame|center|OpenSimulator running in grid mode. In this case, all the services are being run within a Robust.exe process. Multiple copies of OpenSim.exe (usually running on different machines) all use the same set of common services.]]&lt;br /&gt;
&lt;br /&gt;
Running in grid mode is more complicated than running in standalone mode. It requires an understanding of UUID, X,Y location, server handshake passwords, estates and estate owners, and a couple of other settings. These require more care and patience to set up. We strongly recommend that you don't attempt this unless you are extremely patient and very technically proficient.&lt;br /&gt;
&lt;br /&gt;
= Running OpenSimulator in Standalone mode =&lt;br /&gt;
&lt;br /&gt;
Binary distributions of OpenSimulator are by default configured to run in standalone mode.&lt;br /&gt;
&lt;br /&gt;
However, if you build OpenSimulator from the source distribution or from the git repository then you will need to:&lt;br /&gt;
&lt;br /&gt;
# Change into the '''''bin''''' folder&lt;br /&gt;
# Copy the file '''''OpenSim.ini.example''''' to '''''OpenSim.ini'''''. This configures the 3D simulator itself.&lt;br /&gt;
# Change into the '''''bin/config-include''''' folder&lt;br /&gt;
# Copy the file '''''StandaloneCommon.ini.example''''' to '''''StandaloneCommon.ini'''''. This configures the in-process data services used by the standalone configuration.&lt;br /&gt;
# In the '''[Architecture]''' section of '''''OpenSim.ini''''', near the bottom of the file, uncomment the ''Standalone.ini'' line. To uncomment a line of code, remove the semi-colon (;) comment symbol preceding the line so that it says:&lt;br /&gt;
&lt;br /&gt;
 Include-Architecture = &amp;quot;config-include/Standalone.ini&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Running OpenSimulator is then a matter of launching OpenSim.exe. However, you need to have installed all dependencies before that. See [[Dependencies]] for details. After that, open a command prompt (for Windows users, Start menu &amp;gt; Run &amp;gt; cmd) and navigate to the Opensim /bin directory.&lt;br /&gt;
&lt;br /&gt;
On a '''Windows 32-bit''' command prompt:&lt;br /&gt;
 OpenSim.exe&lt;br /&gt;
Under '''Windows 64-bit''', ODE cannot yet be compiled for 64 bit mode, so if using the default ODE physics plugin run:&lt;br /&gt;
 OpenSim.32BitLaunch.exe&lt;br /&gt;
On '''Linux''' run:&lt;br /&gt;
 mono OpenSim.exe&lt;br /&gt;
This can be done under both 32 and 64 bit modes with the ODE physics engine.&lt;br /&gt;
&lt;br /&gt;
== Running for the first time ==&lt;br /&gt;
&lt;br /&gt;
If you're running OpenSimulator for the first time, it will ask you several questions at the console that will set up a single region for you. The configuration options you enter will be written to the bin/Regions/Regions.ini file, which you can then edit at a later date if you need to make changes.&lt;br /&gt;
&lt;br /&gt;
Many of the questions have defaults. Here are some explanations of the questions asked:&lt;br /&gt;
&lt;br /&gt;
* '''New region name'''&lt;br /&gt;
::The name for your region. Don't leave this blank!&lt;br /&gt;
* '''Region UUID'''&lt;br /&gt;
::The unique ID of your region. In pretty much all cases you will want to accept the randomly generated default in the square brackets. The only time when you wouldn't is if you were trying to set up a configuration to point to pre-existing region data. But in this case you are probably better off editing the Regions.ini file directly anyway&lt;br /&gt;
* '''Region Location'''&lt;br /&gt;
::This is the location of the region on the grid. In standalone mode you can safely leave these as the default (1000,1000). If you were to set up additional regions later on in Regions.ini then they would need different grid co-ordinates (e.g. 1000,1001). OpenSimulator regions can be placed anywhere on a 65536 by 65536 grid, but [[Hypergrid]] enabled regions may need special consideration for region location. See [[Installing and Running Hypergrid#The 4096 Regions Limit]] for more information.&lt;br /&gt;
* '''Internal IP address'''&lt;br /&gt;
::In virtually all cases this can be left as 0.0.0.0 (this is a wildcard that allows OpenSimulator to listen for UDP connections on any of the server's network interfaces). If you want to restrict UDP connections to only one network interface then you can specify an explicit IP address. This address is only used internally - the '''External host name''' is the one that is actually passed to the viewer (and hence is the important one).&lt;br /&gt;
* '''Internal port'''&lt;br /&gt;
::This is the IP port for all incoming client connections. The name is a bit misleading since it will be used externally (by a Second Life viewer, for instance) as well as internally. You can make this any port you want, but it is safe to leave at the default 9000. Each region on your server must have a unique port.&lt;br /&gt;
* '''Allow alternate ports'''&lt;br /&gt;
::This is currently experimental. Please leave it at the default of False.&lt;br /&gt;
* '''External host name'''&lt;br /&gt;
::If you leave this at the default 'SYSTEMIP' then this will become the LAN network address of the machine (e.g. 192.168.1.2). This is fine if you are connecting only from within your LAN. If you want to connect to it from a client on the internet, this should be the External IP Address of your router. Fully Qualified Domain Names (FQDNs) can also be used though they will be converted to a numeric IP address before being sent to the viewer.&lt;br /&gt;
&lt;br /&gt;
The following details are also asked in OpenSimulator 0.6.9 and earlier.&lt;br /&gt;
&lt;br /&gt;
* '''Master Avatar UUID'''&lt;br /&gt;
::This is a legacy OpenSimulator feature and can be left at the default of 00000000-0000-0000-0000-000000000000. Later on, you may want to change this to your own avatar's UUID in Regions.ini if you have problems editing terrain.&lt;br /&gt;
* '''Master Avatar first name'''&lt;br /&gt;
::This is an alternative way of specifying the master avatar by avatar name rather than UUID. If you press enter here then both this field and the last name field will be left blank. Accepting the blank default is fine - this can always be changed later in Regions.ini file.&lt;br /&gt;
* '''Master Avatar last name'''&lt;br /&gt;
::The last name of the master avatar.&lt;br /&gt;
* '''Master Avatar sandbox password'''&lt;br /&gt;
::The password of the master avatar.&lt;br /&gt;
&lt;br /&gt;
In OpenSimulator 0.7 and later, OpenSimulator will ask you to assign each region to an estate during the setup process. If an estate needs to be created then it will also ask you to assign an estate manager. In standalone mode, an estate manager can also be created during the setup process.&lt;br /&gt;
&lt;br /&gt;
Don't forget the account details you use to set up the master avatar (in 0.6.9) or the estate manager (in 0.7 and later). Only this user will initially be able to configure the in-world settings for your region. This is also a user account that you can use to perform your initial login test.&lt;br /&gt;
&lt;br /&gt;
See [[Configuring Regions]] for more information about the Regions.ini file that these questions generate.&lt;br /&gt;
&lt;br /&gt;
If you want to create a user other than the estate manager, then in the server console type:&lt;br /&gt;
&lt;br /&gt;
 create user&lt;br /&gt;
&lt;br /&gt;
This will ask you a series of questions for creating a user (such as first name, last name and password).&lt;br /&gt;
&lt;br /&gt;
== Network access for the standalone installation ==&lt;br /&gt;
In standalone mode, a viewer connecting to your installation needs the following network access to your installation machine.&lt;br /&gt;
&lt;br /&gt;
1. TCP over the http_listener_port as used in your simulator.  This is set in the [Network] section of your OpenSim.ini.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Network]&lt;br /&gt;
http_listener_port = 9000&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will be the default of 9000 if you have not explicitly changed it.&lt;br /&gt;
&lt;br /&gt;
2. UDP over each region's InternalPort as configured in your region files (such as Regions.ini).  For instance, if you have configured&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[test]&lt;br /&gt;
RegionUUID = dd5b77f8-bf88-45ac-aace-35bd76426c81&lt;br /&gt;
Location = 1000,1000&lt;br /&gt;
InternalAddress = 0.0.0.0&lt;br /&gt;
InternalPort = 9000&lt;br /&gt;
AllowAlternatePorts = False&lt;br /&gt;
ExternalHostName = mygrid.com&lt;br /&gt;
&lt;br /&gt;
[test2]&lt;br /&gt;
RegionUUID = dd5b77f8-bf88-45ac-aace-35bd76426c82&lt;br /&gt;
Location = 1000,1001&lt;br /&gt;
InternalAddress = 0.0.0.0&lt;br /&gt;
InternalPort = 9001&lt;br /&gt;
AllowAlternatePorts = False&lt;br /&gt;
ExternalHostName = mygrid.com&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then you will need to open ports 9000 and 9001 to UDP traffic.&lt;br /&gt;
&lt;br /&gt;
3. The network address of the machine hosting the OpenSimulator installation must be accessible to connecting viewers.  In the example above, the installation machine is reachable from the Internet via the domain name &amp;quot;mygrid.com&amp;quot;.  If the same installation needs to be accessed by viewers on the same network, it must be possible for them to also successfully resolve that domain name (not all routers, especially home routers, have this &amp;quot;loopback capability&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
If the installation only needed to be accessed on the same LAN, then one could you the local IP address of the server (e.g. 192.168.1.2).&lt;br /&gt;
&lt;br /&gt;
== Connecting to a standalone installation ==&lt;br /&gt;
&lt;br /&gt;
To connect to your new sim with your user, start up a Second Life viewer with the following command line switches:&lt;br /&gt;
&lt;br /&gt;
'''Client on same machine as OpenSim:'''&lt;br /&gt;
 -loginuri http://127.0.0.1:9000&lt;br /&gt;
&lt;br /&gt;
'''Client on same LAN as OpenSim:'''&lt;br /&gt;
 -loginuri http://lan_ip:9000&lt;br /&gt;
&lt;br /&gt;
'''Client on different machine or internet:'''&lt;br /&gt;
 -loginuri http://external_ip:9000&lt;br /&gt;
&lt;br /&gt;
Then enter the user name and password you set up in the previous step and your new user should login.&lt;br /&gt;
&lt;br /&gt;
Be aware of [http://osgrid.org/forums/viewtopic.php?f=5&amp;amp;t=400&amp;amp;start=0&amp;amp;st=0&amp;amp;sk=t&amp;amp;sd=a loopback] problems when Running viewer &amp;amp;amp; server(s) on the same machine (LAN) by using the &amp;quot;external&amp;quot; configuration. (&amp;lt;u&amp;gt;'''You might notice endless waiting for region handshake'''&amp;lt;/u&amp;gt;.) See also [[Troubleshooting|troubleshoot hints]]. If you're having Connectivity problems, [[Network Settings|be sure to read the Network Configuration Page]]. This is important if you see Region handshake issue.&lt;br /&gt;
&lt;br /&gt;
[[Image:Exclamation.png|left]]&lt;br /&gt;
== IMPORTANT NOTE, DIVA DISTRO - 4 Apr. 2012  - ==&lt;br /&gt;
&lt;br /&gt;
'''If you download the latest version of diva-r18611.tar.bz''', it is necessary to first launch the setup program ''configure.exe''&lt;br /&gt;
*In Linux or MacOSX : open a terminal and enter &amp;quot;mono /diva-r18611/bin/Configure.exe&amp;quot; (assuming that you have placed the Diva distro in /diva-r18611)&lt;br /&gt;
*In Windows, assuming they extracted Diva in My Documents, one would open &amp;quot;Run =&amp;gt; cmd&amp;quot; and enter '''cd &amp;quot;%USERPROFILE%\My Documents\diva-r18611\&amp;quot;'', followed by &amp;quot;Configure.exe&amp;quot;. &lt;br /&gt;
After issuing the command, you can set your sim's domain name, and carefully answer the program's questions, then start the program as instructed in above paragraphs.&lt;br /&gt;
&lt;br /&gt;
The program will install the optimum configuration for OpenSim, example: '''&amp;lt;nowiki&amp;gt;http://&amp;lt;your_IP&amp;gt;:9000&amp;lt;/nowiki&amp;gt;''' and WiFi '''&amp;lt;nowiki&amp;gt;http:&amp;lt;your_IP&amp;gt;:9000/wifi&amp;lt;/nowiki&amp;gt;''' &lt;br /&gt;
In the standalone version, four regions will be set up. You can optionally add other regions later on, so make sure to use the same first name with the addition of a number &lt;br /&gt;
(ex: &amp;quot;region 5&amp;quot;, &amp;quot;region 6&amp;quot;, &amp;quot;region 7&amp;quot;, etc. otherwise you can't enter the region and you'd be placed in the nearest free location.&lt;br /&gt;
&lt;br /&gt;
 If you wish to enter a different region name, make sure that the &amp;quot;distance&amp;quot; between the island created by the Wifi configuration program and the next, &lt;br /&gt;
 will be at least 40 positions away from the first installed region)&lt;br /&gt;
 (command console: create region Johnnyland RegionConfigure.ini)&lt;br /&gt;
&lt;br /&gt;
= Running OpenSimulator in Grid mode =&lt;br /&gt;
{|&lt;br /&gt;
| style=&amp;quot;background:LavenderBlush; color:black&amp;quot; |&lt;br /&gt;
[[Image:Exclamation.png|left]]&lt;br /&gt;
NOTE: 0.7 is the first OpenSimulator release that fully migrates all services to the ROBUST server shell.  OpenSim.Grid.UserServer.exe and MessageServer.exe from OpenSimulator 0.6.9 are no longer necessary.  Please see the [[0.7 Release|0.7 release notes]] for more details.  For details on how to set up grid services in OpenSimulator 0.6.9 and earlier please see [[OpenSim 0.6.9 Grid Mode Configuration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Running OpenSimulator in grid mode is considerably more complicated than running a standalone instance. Instead of running everything in the same process, backend data services (asset, inventory, etc.) run in one or more separate processes, often on a different machine. This allows multiple OpenSim.exe simulator instances to use the same asset and inventory data.&lt;br /&gt;
&lt;br /&gt;
== Step 1: Set up a ROBUST services instance ==&lt;br /&gt;
&lt;br /&gt;
1. In the bin directory, copy Robust.ini.example to Robust.ini. The example file is configured to run all the services in a single ROBUST instance.&lt;br /&gt;
&lt;br /&gt;
2. Configure the [[Database Settings]] in Robust.ini to use your MySQL database. Only MySQL is supported for running grid services.  &lt;br /&gt;
&lt;br /&gt;
3. Start up Robust.exe. &lt;br /&gt;
&lt;br /&gt;
 mono Robust.exe (Linux, BSD, Mac OS X)&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
 Robust.exe (Windows)&lt;br /&gt;
&lt;br /&gt;
If you don't see any errors (in red) on the console then you can move on to the next step.&lt;br /&gt;
&lt;br /&gt;
4. Every region must belong to an estate, and every estate must have an owner which is a valid user account in OpenSim's user account service. Create a user on the ROBUST command console with the following command.&lt;br /&gt;
&lt;br /&gt;
 create user&lt;br /&gt;
&lt;br /&gt;
This will ask you for the user's name, password and an optional e-mail. Remember this name since you will need it when you start up the simulator for the first time.&lt;br /&gt;
&lt;br /&gt;
== Step 2: Configure an OpenSim.exe to use the ROBUST services ==&lt;br /&gt;
&lt;br /&gt;
In grid mode, as in standalone mode, you need to configure OpenSim.ini which controls the 3D simulator itself.&lt;br /&gt;
&lt;br /&gt;
However, instead of using and configuring the file config-include/StandaloneCommon.ini, a simulator connecting to a grid needs to use and configure the config-include/GridCommon.ini file, in order to connect to the ROBUST hosted remote data services rather than in-process local ones.&lt;br /&gt;
&lt;br /&gt;
The steps for both these operations are as follows.&lt;br /&gt;
&lt;br /&gt;
1. Copy bin/OpenSim.ini.example to OpenSim.ini&lt;br /&gt;
&lt;br /&gt;
2. Find the [Architecture] section at the very bottom of OpenSim.ini. Make sure that one of the following lines is uncommented:&lt;br /&gt;
&lt;br /&gt;
 Include-Architecture = &amp;quot;config-include/Grid.ini&amp;quot; (in OpenSimulator 0.7.1 and later)&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
 Include-Grid         = &amp;quot;config-include/Grid.ini&amp;quot; (in OpenSimulator 0.7.0.2 and earlier)&lt;br /&gt;
&lt;br /&gt;
The others should remain commented.&lt;br /&gt;
&lt;br /&gt;
3. Go to bin/config-include and copy GridCommon.ini.example to GridCommon.ini.&lt;br /&gt;
&lt;br /&gt;
4. Open GridCommon.ini in a text editor. You will see lots of URL entries, each of which have dummy defaults of http://myassetserver.com:8003, http://myinventoryserver.com:8003, etc. You will need to change each of these to point towards the address of your ROBUST instance. For instance, if you're running ROBUST on a machine with a local IP address of 192.168.1.2, you will need to change AssetServerURI to the setting&lt;br /&gt;
&lt;br /&gt;
 AssetServerURI = &amp;quot;http://192.168.1.2:8003&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. Run OpenSim.exe. If you're running OpenSim.exe for the first time you will get the same questions about setting up the region that occur on a first-run in standalone mode. Please see the standalone section for instructions on how to answer these, or read more information about the Regions.ini file on the [[Configuring Regions]] page.&lt;br /&gt;
&lt;br /&gt;
If everything is set up correctly, when starting up OpenSim.exe you shouldn't see any errors. You should also see the ROBUST console display log lines saying that the region has registered with the grid service. For example,&lt;br /&gt;
&lt;br /&gt;
 21:43:45 - [GRID SERVICE]: Region t1 (176cc95e-f693-4b02-8e08-af86e2372faa) registered successfully at 256000-256000&lt;br /&gt;
 21:43:47 - [GRID SERVICE]: region t1 has 0 neighbours&lt;br /&gt;
&lt;br /&gt;
== Network access for a grid installation ==&lt;br /&gt;
In standalone mode, a viewer connecting to your installation needs to access&lt;br /&gt;
&lt;br /&gt;
# The login service over TCP and other configured public services (e.g. grid info, map).&lt;br /&gt;
# The http_server_port of each configured simulator over TCP.&lt;br /&gt;
# The InternalPort and ExternalHostName of each configured region.&lt;br /&gt;
&lt;br /&gt;
The last two requirements are the same as for standalone installations, except that they apply to each server that hosts a simulator.  Please see the standalone section above for more details.&lt;br /&gt;
&lt;br /&gt;
The login service is a little different.  Whereas in standalone this uses the same http_server_port as the simulator itself, in grid mode it's running in a separate ROBUST service.&lt;br /&gt;
&lt;br /&gt;
The default port for the login service is 8002.  You can see this used in the [ServiceList] section of Robust.ini.example.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[ServiceList]&lt;br /&gt;
AssetServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:AssetServiceConnector&amp;quot;&lt;br /&gt;
InventoryInConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:XInventoryInConnector&amp;quot;&lt;br /&gt;
GridServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:GridServiceConnector&amp;quot;&lt;br /&gt;
GridInfoServerInConnector = &amp;quot;8002/OpenSim.Server.Handlers.dll:GridInfoServerInConnector&amp;quot;&lt;br /&gt;
AuthenticationServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:AuthenticationServiceConnector&amp;quot;&lt;br /&gt;
OpenIdServerConnector = &amp;quot;8002/OpenSim.Server.Handlers.dll:OpenIdServerConnector&amp;quot;&lt;br /&gt;
AvatarServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:AvatarServiceConnector&amp;quot;&lt;br /&gt;
LLLoginServiceInConnector = &amp;quot;8002/OpenSim.Server.Handlers.dll:LLLoginServiceInConnector&amp;quot;&lt;br /&gt;
PresenceServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:PresenceServiceConnector&amp;quot;&lt;br /&gt;
UserAccountServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:UserAccountServiceConnector&amp;quot;&lt;br /&gt;
GridUserServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:GridUserServiceConnector&amp;quot;&lt;br /&gt;
FriendsServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:FriendsServiceConnector&amp;quot;&lt;br /&gt;
MapAddServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:MapAddServiceConnector&amp;quot;&lt;br /&gt;
MapGetServiceConnector = &amp;quot;8002/OpenSim.Server.Handlers.dll:MapGetServiceConnector&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here all the public services (those where the viewer connects directly to the service) are served on port 8002, with internal services on 8003.  So you need to make sure that the viewer can access port 8002 over TCP but you do not want to expose port 8003.  Only simulators need to be able to connect to port 8003.&lt;br /&gt;
&lt;br /&gt;
== Connecting to a grid installation ==&lt;br /&gt;
&lt;br /&gt;
Your client startup line will look something like&lt;br /&gt;
&lt;br /&gt;
 -loginuri http://mygrid.com:8002&lt;br /&gt;
&lt;br /&gt;
The loginuri needs to be the address to the login service. In standalone mode, this was the same address as the region simulator and the port was 9000 by default. However, in grid mode it will be the address to login service hosted on the ROBUST instance. In this case, the address will be 192.168.1.2. The port number of 8002 is the traditional one for the grid login service and is the default in Robust.ini.example.&lt;br /&gt;
&lt;br /&gt;
If the login is successful, you will see log lines on the ROBUST console (for the login itself) and then log lines on the region simulator console (as the login process tells the simulator to expect the avatar, tells the viewer the address of the region simulator and then when the viewer starts talking to the simulator directly).&lt;br /&gt;
&lt;br /&gt;
= Running multiple ROBUST service instances =&lt;br /&gt;
&lt;br /&gt;
If you are operating a grid, then you can run different services (e.g. asset, inventory) in different ROBUST instances, in order to spread the load.  To do this, you will need to edit the ServiceConnectors parameter in the [Startup] section of Robust.ini (or Robust.HG.ini if you're running Hypergrid).  The default ServiceConnectors parameter looks something like this&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[ServiceList]&lt;br /&gt;
AssetServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:AssetServiceConnector&amp;quot;&lt;br /&gt;
InventoryInConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:XInventoryInConnector&amp;quot;&lt;br /&gt;
GridServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:GridServiceConnector&amp;quot;&lt;br /&gt;
GridInfoServerInConnector = &amp;quot;8002/OpenSim.Server.Handlers.dll:GridInfoServerInConnector&amp;quot;&lt;br /&gt;
AuthenticationServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:AuthenticationServiceConnector&amp;quot;&lt;br /&gt;
OpenIdServerConnector = &amp;quot;8002/OpenSim.Server.Handlers.dll:OpenIdServerConnector&amp;quot;&lt;br /&gt;
AvatarServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:AvatarServiceConnector&amp;quot;&lt;br /&gt;
LLLoginServiceInConnector = &amp;quot;8002/OpenSim.Server.Handlers.dll:LLLoginServiceInConnector&amp;quot;&lt;br /&gt;
PresenceServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:PresenceServiceConnector&amp;quot;&lt;br /&gt;
UserAccountServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:UserAccountServiceConnector&amp;quot;&lt;br /&gt;
GridUserServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:GridUserServiceConnector&amp;quot;&lt;br /&gt;
FriendsServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:FriendsServiceConnector&amp;quot;&lt;br /&gt;
MapAddServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:MapAddServiceConnector&amp;quot;&lt;br /&gt;
MapGetServiceConnector = &amp;quot;8002/OpenSim.Server.Handlers.dll:MapGetServiceConnector&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Each entry has the form &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;port-number&amp;gt;/&amp;lt;dll&amp;gt;:&amp;lt;connector-class-name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For instance, the first entry above&lt;br /&gt;
&lt;br /&gt;
 8003/OpenSim.Server.Handlers.dll:AssetServiceConnector&lt;br /&gt;
&lt;br /&gt;
says to start an AssetServiceConnector (and hence an asset service) from the OpenSim.Server.Handlers.dll and to server that from port 8003.&lt;br /&gt;
&lt;br /&gt;
By default, Robust.exe loads a configuration file with the same name but with .ini appended instead of .exe.  So Robust.exe will look for an inifile called Robust.ini.  You can change this by giving the parameter on the commandline.  For instance, to start Robust with HG parameters, one would use&lt;br /&gt;
&lt;br /&gt;
 Robust.exe -inifile=Robust.HG.ini&lt;br /&gt;
&lt;br /&gt;
So if you wanted to run every connector apart from assets in one instance of ROBUST and the asset connector in another instance, you would have two ini files.  One could remain Robust.ini and have&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[ServiceList]&lt;br /&gt;
InventoryInConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:XInventoryInConnector&amp;quot;&lt;br /&gt;
GridServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:GridServiceConnector&amp;quot;&lt;br /&gt;
GridInfoServerInConnector = &amp;quot;8002/OpenSim.Server.Handlers.dll:GridInfoServerInConnector&amp;quot;&lt;br /&gt;
AuthenticationServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:AuthenticationServiceConnector&amp;quot;&lt;br /&gt;
OpenIdServerConnector = &amp;quot;8002/OpenSim.Server.Handlers.dll:OpenIdServerConnector&amp;quot;&lt;br /&gt;
AvatarServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:AvatarServiceConnector&amp;quot;&lt;br /&gt;
LLLoginServiceInConnector = &amp;quot;8002/OpenSim.Server.Handlers.dll:LLLoginServiceInConnector&amp;quot;&lt;br /&gt;
PresenceServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:PresenceServiceConnector&amp;quot;&lt;br /&gt;
UserAccountServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:UserAccountServiceConnector&amp;quot;&lt;br /&gt;
GridUserServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:GridUserServiceConnector&amp;quot;&lt;br /&gt;
FriendsServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:FriendsServiceConnector&amp;quot;&lt;br /&gt;
MapAddServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:MapAddServiceConnector&amp;quot;&lt;br /&gt;
MapGetServiceConnector = &amp;quot;8002/OpenSim.Server.Handlers.dll:MapGetServiceConnector&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The other could be called Robust.Assets.ini and have&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[ServiceList]&lt;br /&gt;
AssetServiceConnector = &amp;quot;8004/OpenSim.Server.Handlers.dll:AssetServiceConnector&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that this is using port 8004 instead of port 8003.  This is necessary since only one executable can use each port at a time.  You will need to make sure your simulator configuration files use port 8004 for the asset service as well.&lt;br /&gt;
&lt;br /&gt;
You will also need to change the default network port to 8004 for this second copy of Robust.exe&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Network]&lt;br /&gt;
   port = 8004&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you've created the two ROBUST configuration files (Robust.ini containing all services apart from asset and Robust.Assets.ini containing only the asset service), then you could start the first Robust.exe as usual.&lt;br /&gt;
&lt;br /&gt;
 Robust.exe&lt;br /&gt;
&lt;br /&gt;
This will load Robust.ini, as we haven't specified a Robust.ini.  Also, the logfile it will use will be Robust.log as we haven't manually specified one.&lt;br /&gt;
&lt;br /&gt;
The second ROBUST instance we would start with&lt;br /&gt;
&lt;br /&gt;
 Robust.exe -inifile=Robust.Assets.ini -logfile=Robust.Assets.log&lt;br /&gt;
&lt;br /&gt;
The -inifile switch tells the second Robust instance to load it's configuration from Robust.Assets.ini rather than Robust.ini.  The -logfile switch tells Robust.exe to use Robust.Assets.log as its logfile rather than the default Robust.log.  If you don't specify this switch then you may see errors on the console about a locked log file.&lt;br /&gt;
&lt;br /&gt;
At this point you should have two running Robust.exe instances.&lt;br /&gt;
&lt;br /&gt;
If you put the ROBUST instances on different machines then don't forget to change the relevant service URIs in each simulator to match.&lt;br /&gt;
&lt;br /&gt;
Since OpenSimulator services are stateless (e.g. every request is unconnected with other requests as long as they affect the same persistent data where necessary), you can also load balance by starting more than one ROBUST instance with a copy of the same service (e.g. multiple asset services using the same database).  Requests would be round-robined between the service copies using an HTTP reverse proxy implementation (e.g. nginx).  See [[Performance#Services]] for more details.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
[http://opensimulator.org/pipermail/opensim-users/2012-October/011099.html Useful discussion about separating Robust instances]&lt;br /&gt;
&lt;br /&gt;
= Attaching your sim to someone else's grid =&lt;br /&gt;
&lt;br /&gt;
To set up the region server (i.e., &amp;lt;tt&amp;gt;OpenSim.exe&amp;lt;/tt&amp;gt;) to connect to an external grid, follow the [[Configuration#Step 2: Configure an OpenSim.exe to use the ROBUST services]] instructions above.&lt;br /&gt;
&lt;br /&gt;
The grid will have already provided with the required services. In step 2 you will need to use the provided URLs for their services.&lt;br /&gt;
&lt;br /&gt;
In your bin/Regions.ini file (or other region config file) you will also need to set the grid co-ordinates to your regions provided from the grid operator. See [[Configuring Regions]] for more information.&lt;br /&gt;
&lt;br /&gt;
= Running an OpenSimulator standalone or grid installation with Hypergrid enabled =&lt;br /&gt;
[[Hypergrid]] is an emerging architecture supported by OpenSimulator that allows a user with an account on one standalone or grid to visit other Hypergrid-enabled standalones or grids, and for users from those grids to visit the home grid. This does not require the two installations to share a central set of data services (assets, inventory, etc.). Please see [[Installing and Running Hypergrid]] for more details.&lt;br /&gt;
&lt;br /&gt;
= Further notes =&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
See [[Troubleshooting]] &lt;br /&gt;
&lt;br /&gt;
== Running OpenSimulator 0.6.7 to 0.7.6.1 in 64 bit Windows ==&lt;br /&gt;
[[Image:Exclamation.png|left]]&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' ''Commits 3e5bc75 and e8ca900 move these to the directory ./share/32BitLaunch as they should no longer be needed and are slated for removal from the project'&lt;br /&gt;
&lt;br /&gt;
As of OpenSimulator 0.6.7 and up to release 0.7.6.1, the default physics engine for OpenSimulator was changed to the ODE engine. This is because ODE was the most advanced physics engine plugin at the time in OpenSimulator. Unfortunately, it has the drawback in that its library is not compilable under 64-bit in Windows. &lt;br /&gt;
&lt;br /&gt;
Therefore, in order to launch the region simulator under 64-bit Windows for versions 0.6.7 to 0.7.6.1 using ODE, users may need to run: &lt;br /&gt;
&lt;br /&gt;
 OpenSim.32BitLaunch.exe&lt;br /&gt;
&lt;br /&gt;
instead of:&lt;br /&gt;
&lt;br /&gt;
 OpenSim.exe&lt;br /&gt;
&lt;br /&gt;
An alternative is to use the basicphysics engine instead or one of the other alternative physics engines bundled with OpenSim, though all these were less functional than the ODE plugin.&lt;br /&gt;
&lt;br /&gt;
From OpenSim 0.8 the default physics engine is BulletSim.&lt;br /&gt;
'&lt;br /&gt;
&lt;br /&gt;
== Note About Mono ==&lt;br /&gt;
&lt;br /&gt;
Mono and .NET have a built in threadpool.  By default, OpenSimulator is instead configured to use a third-party threadpool called SmartThreadPool for many tasks, partly because of issues with early implementations of the Mono threadpool.&lt;br /&gt;
&lt;br /&gt;
However, even with this setting, some other operations are carried out with the built-in threadpool.  At least in some versions of Mono (chiefly prior to 2.6), the default configuration for this can cause issues with OpenSimulator - [http://www.mono-project.com/ThreadPool_DeadLocks ThreadPool_Deadlocks at the mono-project website].&lt;br /&gt;
&lt;br /&gt;
If this is an issue or if the threadpool runs out of available threads, then the operation of your sim will start to break in all sorts of different ways. A common symptom is the freezing of all activity upon login of a new avatar.&lt;br /&gt;
&lt;br /&gt;
The MONO_THREADS_PER_CPU parameter affects the number of existing built-in threadpool worker threads below which Mono will always spawn a new thread when OpenSimulator adds a new task.  This is MONO_THREADS_PER_CPU * 4.  So if set to 50, the minimum number of worker threads will be 200.&lt;br /&gt;
&lt;br /&gt;
Above this number, Mono will make an internal decision whether to spawn a new thread or wait for an existing thread to complete its task.&lt;br /&gt;
&lt;br /&gt;
The effect of this parameter is extremely implementation dependent, and so dependent upon the version of Mono that you are using.  Before 2.6 for instance, it was definitely worth setting a high MONO_THREADS_PER_CPU due to issues with the Mono thread pool.  In theory, later versions of Mono should not be susceptible to this issue.  Mono 2.10.8.1, for instance, has a default MONO_THREADS_PER_CPU of 1 (despite what the incorrect Mono manpage says).&lt;br /&gt;
&lt;br /&gt;
However, people still report a benefit from setting MONO_THREADS_PER_CPU higher than default.  The exact number depends on many factors including: the number of CPUs in your machine, what else you use that machine for, how many regions you have in your sim, how many of them are adjacent, how many scripts you have, and how many avatars you expect to serve at the same time. As a reference, Wright Plaza in OSGrid, which is running as a single region on a sim and routinely hosts meetings with 20 avatars, uses the value 125. &lt;br /&gt;
&lt;br /&gt;
For example: $ export MONO_THREADS_PER_CPU=125&lt;br /&gt;
&lt;br /&gt;
So if you are having problems with avatars freezing and you're hardware meets or exceeds recommended [[Performance]] requirements, then you may want to setting this environment variable.&lt;br /&gt;
&lt;br /&gt;
There is a very basic program for displaying current threadpool configuration settings at https://github.com/justincc/opensimulator-tools/tree/master/analysis/threadpool-info.  &lt;br /&gt;
&lt;br /&gt;
All this applies to the min threadpool numbers, not the max thread numbers.  OpenSimulator itself will attempt to adjust the max numbers.  You can see the output from this very near the top of the OpenSim.log file.&lt;br /&gt;
&lt;br /&gt;
== Increasing the stack reserve level when using OpenDynamicsEngine on *nix ==&lt;br /&gt;
&lt;br /&gt;
If you have problems using the OpenDynamicsEngine on *nix, try setting your stack reserve level higher than the default with the following command;&lt;br /&gt;
&amp;lt;tt&amp;gt;ulimit -s 262144&amp;lt;/tt&amp;gt; Or, run the opensim-ode.sh to start up OpenSimulator.&lt;br /&gt;
&lt;br /&gt;
== Firewalls ==&lt;br /&gt;
Some operation systems or distributions run their own firewall by default. If you can't access to OpenSimulator from remote client, you'll need to check their settings. See [[Firewall Settings]] for details.&lt;br /&gt;
&lt;br /&gt;
== Legacy Configuration Information ==&lt;br /&gt;
These are some pages containing some legacy configuration information of unknown accuracy.&lt;br /&gt;
&lt;br /&gt;
[[OpenSim 0.6.6 legacy configuration information]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Additional Optional Configuration Tasks ==&lt;br /&gt;
&lt;br /&gt;
=== Further configure OpenSimulator ===&lt;br /&gt;
If you've looked through OpenSim.ini.example or any other of the config files, you'll see that there's a very large number of configurable parameters spread across multiple files. See [[Configuring Simulator Parameters]] for more details about the configuration infrastructure and how settings in identically named sections (e.g. [XEngine]) are merged by OpenSimulator on loading.&lt;br /&gt;
&lt;br /&gt;
=== Set up a second region to run on the same simulator ===&lt;br /&gt;
See [[Configuring Regions]].&lt;br /&gt;
&lt;br /&gt;
=== Run Multiple Standalone Instances of OpenSimulator on the Same Server ===&lt;br /&gt;
For each subsequent instance of OpenSim, change the 'http_listener_port' in OpenSim.ini to the value excluding 9000, and 'InternalPort' in Regions.ini to the value excluding 9000. Also, make sure your regions are using different ports, as explained in [[Configuring Regions]].&lt;br /&gt;
&lt;br /&gt;
=== Load region content ===&lt;br /&gt;
You can load content onto regions by using the [[OpenSim Archives|load oar command]]. To load individual OAR files into each region, use the 'change region [regionname]' command and then 'load oar [oar-location]'.&lt;br /&gt;
&lt;br /&gt;
=== OpenSim.exe command line options ===&lt;br /&gt;
OpenSim.exe has command line options which allow you to perform actions such as reading configuration files from a different directory. See [[OpenSim.exe Command Line Options]] for more details.&lt;br /&gt;
&lt;br /&gt;
=== Script engine ===&lt;br /&gt;
OpenSimulator supports multiple script engines. See [[ScriptEngines]] for details. If you don't know what this means then the default script engine will be fine. In fact, recent versions of OpenSimulator only ship with one script engine, the XEngine.&lt;br /&gt;
&lt;br /&gt;
=== Permissions Configuration ===&lt;br /&gt;
OpenSimulator has a quite elaborate set of permissions. See [[Permissions (Server)]] for details. By default, permissions are active on region simulators.&lt;br /&gt;
&lt;br /&gt;
=== Logging ===&lt;br /&gt;
By default, OpenSimulator logs information to a file called OpenSim.log in the bin directory. See [[Logging]] for details on how to further configure this if required.&lt;br /&gt;
&lt;br /&gt;
=== Set up other optional modules ===&lt;br /&gt;
* [[IRCBridgeModule]]&lt;br /&gt;
* [[Freeswitch Module]]&lt;br /&gt;
* [[Offline Messaging]]&lt;br /&gt;
* [[Enabling Groups]]&lt;br /&gt;
* See also [[User_Documentation#Setup]]&lt;br /&gt;
&lt;br /&gt;
=== Configuration of Web Server and Pages ===&lt;br /&gt;
OpenSimulator contains a web server that can serve up a variety of pages. Some which come from external files and some are generated internally.&lt;br /&gt;
* [[External Files]]&lt;br /&gt;
* [[Internally Generated]]&lt;br /&gt;
&lt;br /&gt;
= Where to go from here =&lt;br /&gt;
&lt;br /&gt;
* [[NAT Loopback Routers]] Router and Nat Loopback Information&lt;br /&gt;
&lt;br /&gt;
* [[Upgrading]] from an old OpenSimulator version to a newer one.&lt;br /&gt;
&lt;br /&gt;
* [[Server Commands]] for creating users and controlling the system.&lt;br /&gt;
&lt;br /&gt;
* Fix the bent knees bug: [[FAQ#Why are my knees bent when I stand idle.3F]]&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
* [http://dist.opensimulator.org/wiki/opensim-standalone.odg OpenOffice draw file for OpenSimulator standalone diagram]&lt;br /&gt;
* [http://dist.opensimulator.org/wiki/opensim-grid-simple.odg OpenOffice draw file for OpenSimulator grid diagram]&lt;br /&gt;
&lt;br /&gt;
[[Category:Configuration]]&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Configuration</id>
		<title>Configuration</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Configuration"/>
				<updated>2014-09-03T17:17:21Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: /* Running OpenSimulator 0.6.7 to 0.7.6.1 in 64 bit Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
== OpenSimulator simulator configuration file ==&lt;br /&gt;
The region simulator configuration is managed using a file called OpenSim.ini. This file is used regardless of whether the sim is running in standalone or grid mode. This file references some additional configuration information from the config-include/ directory. Information about the various settings is contained in the OpenSim.ini file itself (or OpenSim.ini.example for reference).&lt;br /&gt;
&lt;br /&gt;
Please note, that the name OpenSim.ini can be changed via [[OpenSim.exe Command Line Options|command line arguments]].&lt;br /&gt;
&lt;br /&gt;
It is also possible to distribute the inifile settings over two files. This is useful if you want to run several OpenSimulator processes where most of your settings are identical except for a few. The master file is read first, then the inifile is read. Settings given in the inifile overrule settings given in the master file. The master file has the same format and the same keywords as the inifile, so the same documentation applies.&lt;br /&gt;
&lt;br /&gt;
== Database ==&lt;br /&gt;
&lt;br /&gt;
Opensim supports the following database-engines. Information about setting these up can be found in the OpenSim.ini.example file and the other various example files in bin/config-include.  '''If you do not want to use the default SQLite configuration then you will need to setup your database before proceeding further'''.  SQLite does not require further configuration.  See [[Database Settings]] for the detailed settings.&lt;br /&gt;
&lt;br /&gt;
* '''SQLite''' (default) - a lightweight database that comes bundled with OpenSimulator and can be used without requiring any extra configuration. It is mostly intended to get you up and running quickly, not for production use. It is significantly slower than MySQL. A few features here (such as attachment persistence) have not yet been fully implemented. &lt;br /&gt;
&lt;br /&gt;
* '''MySQL''' (fully supported) - This is the recommended database for any use beyond experimentation or small standalone applications. The minimum MySQL version is 5.1.&lt;br /&gt;
::* '''Windows x64 systems:''' &amp;amp;nbsp;There is currently an unresolved [http://opensimulator.org/mantis/bug_view_advanced_page.php?bug_id=5294 bug_id=5294] found when running OpenSimulator with MySQL 5.5 on Windows x64 systems.&lt;br /&gt;
::* '''Opensim 0.7.0.2:''' &amp;amp;nbsp;Some users have reported problems with MySQL 5.1.55 and up with Opensim 0.7.0.2, see [http://opensim-users.2152040.n2.nabble.com/OpenSim-1-7-0-2-and-MySQL-Versions-td6155064.html this thread] for more information. The issue can be resolved by using an updated version of MySql.Data.dll OR installing an older version of MySQL such as [http://downloads.mysql.com/archives.php?p=mysql-5.1&amp;amp;v=5.1.52 MySQL 5.1.52] with Opensim version 0.7.0.2. &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
* '''MSSQL''' (fairly supported) - persistence support for some recent OpenSimulator features may not yet be implemented though the vast majority of them are supported.&lt;br /&gt;
&lt;br /&gt;
== Standalone vs. Grid ==&lt;br /&gt;
We recommend that you first get OpenSimulator running in standalone mode before you attempt to connect it to a grid or run your own grid. OpenSimulator will start up in standalone mode out-of-the-box on the binary distributions.&lt;br /&gt;
&lt;br /&gt;
An OpenSimulator configuration consists of regions (run by region simulators) and backend data services (such as user, assets and inventory management).&lt;br /&gt;
&lt;br /&gt;
A system running in '''standalone mode''' runs both the region simulator and all the data services in a single process when you run OpenSim.exe. In this mode you can run as many regions as you like but only on a single machine.&lt;br /&gt;
&lt;br /&gt;
[[Image:Opensim-standalone.png|frame|center|OpenSimulator running in standalone mode. Both simulator and services run in the same process (OpenSim.exe).]]&lt;br /&gt;
&lt;br /&gt;
In '''grid mode''', the data services are not part of the region server process. Instead, they are run in a separate executable called Robust.exe. A Robust shell can run all the services or they can be split amongst any number of Robust instances. This allows them to be run on entirely separate machines if necessary. In this mode, the OpenSim.exe acts solely as the region server, serving one or more regions that communicate with the separate data services. At this point you can run multiple OpenSim.exe region simulators on different machines.&lt;br /&gt;
&lt;br /&gt;
[[Image:Opensim-grid-simple.png|frame|center|OpenSimulator running in grid mode. In this case, all the services are being run within a Robust.exe process. Multiple copies of OpenSim.exe (usually running on different machines) all use the same set of common services.]]&lt;br /&gt;
&lt;br /&gt;
Running in grid mode is more complicated than running in standalone mode. It requires an understanding of UUID, X,Y location, server handshake passwords, estates and estate owners, and a couple of other settings. These require more care and patience to set up. We strongly recommend that you don't attempt this unless you are extremely patient and very technically proficient.&lt;br /&gt;
&lt;br /&gt;
= Running OpenSimulator in Standalone mode =&lt;br /&gt;
&lt;br /&gt;
Binary distributions of OpenSimulator are by default configured to run in standalone mode.&lt;br /&gt;
&lt;br /&gt;
However, if you build OpenSimulator from the source distribution or from the git repository then you will need to:&lt;br /&gt;
&lt;br /&gt;
# Change into the '''''bin''''' folder&lt;br /&gt;
# Copy the file '''''OpenSim.ini.example''''' to '''''OpenSim.ini'''''. This configures the 3D simulator itself.&lt;br /&gt;
# Change into the '''''bin/config-include''''' folder&lt;br /&gt;
# Copy the file '''''StandaloneCommon.ini.example''''' to '''''StandaloneCommon.ini'''''. This configures the in-process data services used by the standalone configuration.&lt;br /&gt;
# In the '''[Architecture]''' section of '''''OpenSim.ini''''', near the bottom of the file, uncomment the ''Standalone.ini'' line. To uncomment a line of code, remove the semi-colon (;) comment symbol preceding the line so that it says:&lt;br /&gt;
&lt;br /&gt;
 Include-Architecture = &amp;quot;config-include/Standalone.ini&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Running OpenSimulator is then a matter of launching OpenSim.exe. However, you need to have installed all dependencies before that. See [[Dependencies]] for details. After that, open a command prompt (for Windows users, Start menu &amp;gt; Run &amp;gt; cmd) and navigate to the Opensim /bin directory.&lt;br /&gt;
&lt;br /&gt;
On a '''Windows 32-bit''' command prompt:&lt;br /&gt;
 OpenSim.exe&lt;br /&gt;
Under '''Windows 64-bit''', ODE cannot yet be compiled for 64 bit mode, so if using the default ODE physics plugin run:&lt;br /&gt;
 OpenSim.32BitLaunch.exe&lt;br /&gt;
On '''Linux''' run:&lt;br /&gt;
 mono OpenSim.exe&lt;br /&gt;
This can be done under both 32 and 64 bit modes with the ODE physics engine.&lt;br /&gt;
&lt;br /&gt;
== Running for the first time ==&lt;br /&gt;
&lt;br /&gt;
If you're running OpenSimulator for the first time, it will ask you several questions at the console that will set up a single region for you. The configuration options you enter will be written to the bin/Regions/Regions.ini file, which you can then edit at a later date if you need to make changes.&lt;br /&gt;
&lt;br /&gt;
Many of the questions have defaults. Here are some explanations of the questions asked:&lt;br /&gt;
&lt;br /&gt;
* '''New region name'''&lt;br /&gt;
::The name for your region. Don't leave this blank!&lt;br /&gt;
* '''Region UUID'''&lt;br /&gt;
::The unique ID of your region. In pretty much all cases you will want to accept the randomly generated default in the square brackets. The only time when you wouldn't is if you were trying to set up a configuration to point to pre-existing region data. But in this case you are probably better off editing the Regions.ini file directly anyway&lt;br /&gt;
* '''Region Location'''&lt;br /&gt;
::This is the location of the region on the grid. In standalone mode you can safely leave these as the default (1000,1000). If you were to set up additional regions later on in Regions.ini then they would need different grid co-ordinates (e.g. 1000,1001). OpenSimulator regions can be placed anywhere on a 65536 by 65536 grid, but [[Hypergrid]] enabled regions may need special consideration for region location. See [[Installing and Running Hypergrid#The 4096 Regions Limit]] for more information.&lt;br /&gt;
* '''Internal IP address'''&lt;br /&gt;
::In virtually all cases this can be left as 0.0.0.0 (this is a wildcard that allows OpenSimulator to listen for UDP connections on any of the server's network interfaces). If you want to restrict UDP connections to only one network interface then you can specify an explicit IP address. This address is only used internally - the '''External host name''' is the one that is actually passed to the viewer (and hence is the important one).&lt;br /&gt;
* '''Internal port'''&lt;br /&gt;
::This is the IP port for all incoming client connections. The name is a bit misleading since it will be used externally (by a Second Life viewer, for instance) as well as internally. You can make this any port you want, but it is safe to leave at the default 9000. Each region on your server must have a unique port.&lt;br /&gt;
* '''Allow alternate ports'''&lt;br /&gt;
::This is currently experimental. Please leave it at the default of False.&lt;br /&gt;
* '''External host name'''&lt;br /&gt;
::If you leave this at the default 'SYSTEMIP' then this will become the LAN network address of the machine (e.g. 192.168.1.2). This is fine if you are connecting only from within your LAN. If you want to connect to it from a client on the internet, this should be the External IP Address of your router. Fully Qualified Domain Names (FQDNs) can also be used though they will be converted to a numeric IP address before being sent to the viewer.&lt;br /&gt;
&lt;br /&gt;
The following details are also asked in OpenSimulator 0.6.9 and earlier.&lt;br /&gt;
&lt;br /&gt;
* '''Master Avatar UUID'''&lt;br /&gt;
::This is a legacy OpenSimulator feature and can be left at the default of 00000000-0000-0000-0000-000000000000. Later on, you may want to change this to your own avatar's UUID in Regions.ini if you have problems editing terrain.&lt;br /&gt;
* '''Master Avatar first name'''&lt;br /&gt;
::This is an alternative way of specifying the master avatar by avatar name rather than UUID. If you press enter here then both this field and the last name field will be left blank. Accepting the blank default is fine - this can always be changed later in Regions.ini file.&lt;br /&gt;
* '''Master Avatar last name'''&lt;br /&gt;
::The last name of the master avatar.&lt;br /&gt;
* '''Master Avatar sandbox password'''&lt;br /&gt;
::The password of the master avatar.&lt;br /&gt;
&lt;br /&gt;
In OpenSimulator 0.7 and later, OpenSimulator will ask you to assign each region to an estate during the setup process. If an estate needs to be created then it will also ask you to assign an estate manager. In standalone mode, an estate manager can also be created during the setup process.&lt;br /&gt;
&lt;br /&gt;
Don't forget the account details you use to set up the master avatar (in 0.6.9) or the estate manager (in 0.7 and later). Only this user will initially be able to configure the in-world settings for your region. This is also a user account that you can use to perform your initial login test.&lt;br /&gt;
&lt;br /&gt;
See [[Configuring Regions]] for more information about the Regions.ini file that these questions generate.&lt;br /&gt;
&lt;br /&gt;
If you want to create a user other than the estate manager, then in the server console type:&lt;br /&gt;
&lt;br /&gt;
 create user&lt;br /&gt;
&lt;br /&gt;
This will ask you a series of questions for creating a user (such as first name, last name and password).&lt;br /&gt;
&lt;br /&gt;
== Network access for the standalone installation ==&lt;br /&gt;
In standalone mode, a viewer connecting to your installation needs the following network access to your installation machine.&lt;br /&gt;
&lt;br /&gt;
1. TCP over the http_listener_port as used in your simulator.  This is set in the [Network] section of your OpenSim.ini.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Network]&lt;br /&gt;
http_listener_port = 9000&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will be the default of 9000 if you have not explicitly changed it.&lt;br /&gt;
&lt;br /&gt;
2. UDP over each region's InternalPort as configured in your region files (such as Regions.ini).  For instance, if you have configured&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[test]&lt;br /&gt;
RegionUUID = dd5b77f8-bf88-45ac-aace-35bd76426c81&lt;br /&gt;
Location = 1000,1000&lt;br /&gt;
InternalAddress = 0.0.0.0&lt;br /&gt;
InternalPort = 9000&lt;br /&gt;
AllowAlternatePorts = False&lt;br /&gt;
ExternalHostName = mygrid.com&lt;br /&gt;
&lt;br /&gt;
[test2]&lt;br /&gt;
RegionUUID = dd5b77f8-bf88-45ac-aace-35bd76426c82&lt;br /&gt;
Location = 1000,1001&lt;br /&gt;
InternalAddress = 0.0.0.0&lt;br /&gt;
InternalPort = 9001&lt;br /&gt;
AllowAlternatePorts = False&lt;br /&gt;
ExternalHostName = mygrid.com&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then you will need to open ports 9000 and 9001 to UDP traffic.&lt;br /&gt;
&lt;br /&gt;
3. The network address of the machine hosting the OpenSimulator installation must be accessible to connecting viewers.  In the example above, the installation machine is reachable from the Internet via the domain name &amp;quot;mygrid.com&amp;quot;.  If the same installation needs to be accessed by viewers on the same network, it must be possible for them to also successfully resolve that domain name (not all routers, especially home routers, have this &amp;quot;loopback capability&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
If the installation only needed to be accessed on the same LAN, then one could you the local IP address of the server (e.g. 192.168.1.2).&lt;br /&gt;
&lt;br /&gt;
== Connecting to a standalone installation ==&lt;br /&gt;
&lt;br /&gt;
To connect to your new sim with your user, start up a Second Life viewer with the following command line switches:&lt;br /&gt;
&lt;br /&gt;
'''Client on same machine as OpenSim:'''&lt;br /&gt;
 -loginuri http://127.0.0.1:9000&lt;br /&gt;
&lt;br /&gt;
'''Client on same LAN as OpenSim:'''&lt;br /&gt;
 -loginuri http://lan_ip:9000&lt;br /&gt;
&lt;br /&gt;
'''Client on different machine or internet:'''&lt;br /&gt;
 -loginuri http://external_ip:9000&lt;br /&gt;
&lt;br /&gt;
Then enter the user name and password you set up in the previous step and your new user should login.&lt;br /&gt;
&lt;br /&gt;
Be aware of [http://osgrid.org/forums/viewtopic.php?f=5&amp;amp;t=400&amp;amp;start=0&amp;amp;st=0&amp;amp;sk=t&amp;amp;sd=a loopback] problems when Running viewer &amp;amp;amp; server(s) on the same machine (LAN) by using the &amp;quot;external&amp;quot; configuration. (&amp;lt;u&amp;gt;'''You might notice endless waiting for region handshake'''&amp;lt;/u&amp;gt;.) See also [[Troubleshooting|troubleshoot hints]]. If you're having Connectivity problems, [[Network Settings|be sure to read the Network Configuration Page]]. This is important if you see Region handshake issue.&lt;br /&gt;
&lt;br /&gt;
[[Image:Exclamation.png|left]]&lt;br /&gt;
== IMPORTANT NOTE, DIVA DISTRO - 4 Apr. 2012  - ==&lt;br /&gt;
&lt;br /&gt;
'''If you download the latest version of diva-r18611.tar.bz''', it is necessary to first launch the setup program ''configure.exe''&lt;br /&gt;
*In Linux or MacOSX : open a terminal and enter &amp;quot;mono /diva-r18611/bin/Configure.exe&amp;quot; (assuming that you have placed the Diva distro in /diva-r18611)&lt;br /&gt;
*In Windows, assuming they extracted Diva in My Documents, one would open &amp;quot;Run =&amp;gt; cmd&amp;quot; and enter '''cd &amp;quot;%USERPROFILE%\My Documents\diva-r18611\&amp;quot;'', followed by &amp;quot;Configure.exe&amp;quot;. &lt;br /&gt;
After issuing the command, you can set your sim's domain name, and carefully answer the program's questions, then start the program as instructed in above paragraphs.&lt;br /&gt;
&lt;br /&gt;
The program will install the optimum configuration for OpenSim, example: '''&amp;lt;nowiki&amp;gt;http://&amp;lt;your_IP&amp;gt;:9000&amp;lt;/nowiki&amp;gt;''' and WiFi '''&amp;lt;nowiki&amp;gt;http:&amp;lt;your_IP&amp;gt;:9000/wifi&amp;lt;/nowiki&amp;gt;''' &lt;br /&gt;
In the standalone version, four regions will be set up. You can optionally add other regions later on, so make sure to use the same first name with the addition of a number &lt;br /&gt;
(ex: &amp;quot;region 5&amp;quot;, &amp;quot;region 6&amp;quot;, &amp;quot;region 7&amp;quot;, etc. otherwise you can't enter the region and you'd be placed in the nearest free location.&lt;br /&gt;
&lt;br /&gt;
 If you wish to enter a different region name, make sure that the &amp;quot;distance&amp;quot; between the island created by the Wifi configuration program and the next, &lt;br /&gt;
 will be at least 40 positions away from the first installed region)&lt;br /&gt;
 (command console: create region Johnnyland RegionConfigure.ini)&lt;br /&gt;
&lt;br /&gt;
= Running OpenSimulator in Grid mode =&lt;br /&gt;
{|&lt;br /&gt;
| style=&amp;quot;background:LavenderBlush; color:black&amp;quot; |&lt;br /&gt;
[[Image:Exclamation.png|left]]&lt;br /&gt;
NOTE: 0.7 is the first OpenSimulator release that fully migrates all services to the ROBUST server shell.  OpenSim.Grid.UserServer.exe and MessageServer.exe from OpenSimulator 0.6.9 are no longer necessary.  Please see the [[0.7 Release|0.7 release notes]] for more details.  For details on how to set up grid services in OpenSimulator 0.6.9 and earlier please see [[OpenSim 0.6.9 Grid Mode Configuration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Running OpenSimulator in grid mode is considerably more complicated than running a standalone instance. Instead of running everything in the same process, backend data services (asset, inventory, etc.) run in one or more separate processes, often on a different machine. This allows multiple OpenSim.exe simulator instances to use the same asset and inventory data.&lt;br /&gt;
&lt;br /&gt;
== Step 1: Set up a ROBUST services instance ==&lt;br /&gt;
&lt;br /&gt;
1. In the bin directory, copy Robust.ini.example to Robust.ini. The example file is configured to run all the services in a single ROBUST instance.&lt;br /&gt;
&lt;br /&gt;
2. Configure the [[Database Settings]] in Robust.ini to use your MySQL database. Only MySQL is supported for running grid services.  &lt;br /&gt;
&lt;br /&gt;
3. Start up Robust.exe. &lt;br /&gt;
&lt;br /&gt;
 mono Robust.exe (Linux, BSD, Mac OS X)&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
 Robust.exe (Windows)&lt;br /&gt;
&lt;br /&gt;
If you don't see any errors (in red) on the console then you can move on to the next step.&lt;br /&gt;
&lt;br /&gt;
4. Every region must belong to an estate, and every estate must have an owner which is a valid user account in OpenSim's user account service. Create a user on the ROBUST command console with the following command.&lt;br /&gt;
&lt;br /&gt;
 create user&lt;br /&gt;
&lt;br /&gt;
This will ask you for the user's name, password and an optional e-mail. Remember this name since you will need it when you start up the simulator for the first time.&lt;br /&gt;
&lt;br /&gt;
== Step 2: Configure an OpenSim.exe to use the ROBUST services ==&lt;br /&gt;
&lt;br /&gt;
In grid mode, as in standalone mode, you need to configure OpenSim.ini which controls the 3D simulator itself.&lt;br /&gt;
&lt;br /&gt;
However, instead of using and configuring the file config-include/StandaloneCommon.ini, a simulator connecting to a grid needs to use and configure the config-include/GridCommon.ini file, in order to connect to the ROBUST hosted remote data services rather than in-process local ones.&lt;br /&gt;
&lt;br /&gt;
The steps for both these operations are as follows.&lt;br /&gt;
&lt;br /&gt;
1. Copy bin/OpenSim.ini.example to OpenSim.ini&lt;br /&gt;
&lt;br /&gt;
2. Find the [Architecture] section at the very bottom of OpenSim.ini. Make sure that one of the following lines is uncommented:&lt;br /&gt;
&lt;br /&gt;
 Include-Architecture = &amp;quot;config-include/Grid.ini&amp;quot; (in OpenSimulator 0.7.1 and later)&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
 Include-Grid         = &amp;quot;config-include/Grid.ini&amp;quot; (in OpenSimulator 0.7.0.2 and earlier)&lt;br /&gt;
&lt;br /&gt;
The others should remain commented.&lt;br /&gt;
&lt;br /&gt;
3. Go to bin/config-include and copy GridCommon.ini.example to GridCommon.ini.&lt;br /&gt;
&lt;br /&gt;
4. Open GridCommon.ini in a text editor. You will see lots of URL entries, each of which have dummy defaults of http://myassetserver.com:8003, http://myinventoryserver.com:8003, etc. You will need to change each of these to point towards the address of your ROBUST instance. For instance, if you're running ROBUST on a machine with a local IP address of 192.168.1.2, you will need to change AssetServerURI to the setting&lt;br /&gt;
&lt;br /&gt;
 AssetServerURI = &amp;quot;http://192.168.1.2:8003&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. Run OpenSim.exe. If you're running OpenSim.exe for the first time you will get the same questions about setting up the region that occur on a first-run in standalone mode. Please see the standalone section for instructions on how to answer these, or read more information about the Regions.ini file on the [[Configuring Regions]] page.&lt;br /&gt;
&lt;br /&gt;
If everything is set up correctly, when starting up OpenSim.exe you shouldn't see any errors. You should also see the ROBUST console display log lines saying that the region has registered with the grid service. For example,&lt;br /&gt;
&lt;br /&gt;
 21:43:45 - [GRID SERVICE]: Region t1 (176cc95e-f693-4b02-8e08-af86e2372faa) registered successfully at 256000-256000&lt;br /&gt;
 21:43:47 - [GRID SERVICE]: region t1 has 0 neighbours&lt;br /&gt;
&lt;br /&gt;
== Network access for a grid installation ==&lt;br /&gt;
In standalone mode, a viewer connecting to your installation needs to access&lt;br /&gt;
&lt;br /&gt;
# The login service over TCP and other configured public services (e.g. grid info, map).&lt;br /&gt;
# The http_server_port of each configured simulator over TCP.&lt;br /&gt;
# The InternalPort and ExternalHostName of each configured region.&lt;br /&gt;
&lt;br /&gt;
The last two requirements are the same as for standalone installations, except that they apply to each server that hosts a simulator.  Please see the standalone section above for more details.&lt;br /&gt;
&lt;br /&gt;
The login service is a little different.  Whereas in standalone this uses the same http_server_port as the simulator itself, in grid mode it's running in a separate ROBUST service.&lt;br /&gt;
&lt;br /&gt;
The default port for the login service is 8002.  You can see this used in the [ServiceList] section of Robust.ini.example.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[ServiceList]&lt;br /&gt;
AssetServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:AssetServiceConnector&amp;quot;&lt;br /&gt;
InventoryInConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:XInventoryInConnector&amp;quot;&lt;br /&gt;
GridServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:GridServiceConnector&amp;quot;&lt;br /&gt;
GridInfoServerInConnector = &amp;quot;8002/OpenSim.Server.Handlers.dll:GridInfoServerInConnector&amp;quot;&lt;br /&gt;
AuthenticationServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:AuthenticationServiceConnector&amp;quot;&lt;br /&gt;
OpenIdServerConnector = &amp;quot;8002/OpenSim.Server.Handlers.dll:OpenIdServerConnector&amp;quot;&lt;br /&gt;
AvatarServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:AvatarServiceConnector&amp;quot;&lt;br /&gt;
LLLoginServiceInConnector = &amp;quot;8002/OpenSim.Server.Handlers.dll:LLLoginServiceInConnector&amp;quot;&lt;br /&gt;
PresenceServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:PresenceServiceConnector&amp;quot;&lt;br /&gt;
UserAccountServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:UserAccountServiceConnector&amp;quot;&lt;br /&gt;
GridUserServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:GridUserServiceConnector&amp;quot;&lt;br /&gt;
FriendsServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:FriendsServiceConnector&amp;quot;&lt;br /&gt;
MapAddServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:MapAddServiceConnector&amp;quot;&lt;br /&gt;
MapGetServiceConnector = &amp;quot;8002/OpenSim.Server.Handlers.dll:MapGetServiceConnector&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here all the public services (those where the viewer connects directly to the service) are served on port 8002, with internal services on 8003.  So you need to make sure that the viewer can access port 8002 over TCP but you do not want to expose port 8003.  Only simulators need to be able to connect to port 8003.&lt;br /&gt;
&lt;br /&gt;
== Connecting to a grid installation ==&lt;br /&gt;
&lt;br /&gt;
Your client startup line will look something like&lt;br /&gt;
&lt;br /&gt;
 -loginuri http://mygrid.com:8002&lt;br /&gt;
&lt;br /&gt;
The loginuri needs to be the address to the login service. In standalone mode, this was the same address as the region simulator and the port was 9000 by default. However, in grid mode it will be the address to login service hosted on the ROBUST instance. In this case, the address will be 192.168.1.2. The port number of 8002 is the traditional one for the grid login service and is the default in Robust.ini.example.&lt;br /&gt;
&lt;br /&gt;
If the login is successful, you will see log lines on the ROBUST console (for the login itself) and then log lines on the region simulator console (as the login process tells the simulator to expect the avatar, tells the viewer the address of the region simulator and then when the viewer starts talking to the simulator directly).&lt;br /&gt;
&lt;br /&gt;
= Running multiple ROBUST service instances =&lt;br /&gt;
&lt;br /&gt;
If you are operating a grid, then you can run different services (e.g. asset, inventory) in different ROBUST instances, in order to spread the load.  To do this, you will need to edit the ServiceConnectors parameter in the [Startup] section of Robust.ini (or Robust.HG.ini if you're running Hypergrid).  The default ServiceConnectors parameter looks something like this&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[ServiceList]&lt;br /&gt;
AssetServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:AssetServiceConnector&amp;quot;&lt;br /&gt;
InventoryInConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:XInventoryInConnector&amp;quot;&lt;br /&gt;
GridServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:GridServiceConnector&amp;quot;&lt;br /&gt;
GridInfoServerInConnector = &amp;quot;8002/OpenSim.Server.Handlers.dll:GridInfoServerInConnector&amp;quot;&lt;br /&gt;
AuthenticationServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:AuthenticationServiceConnector&amp;quot;&lt;br /&gt;
OpenIdServerConnector = &amp;quot;8002/OpenSim.Server.Handlers.dll:OpenIdServerConnector&amp;quot;&lt;br /&gt;
AvatarServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:AvatarServiceConnector&amp;quot;&lt;br /&gt;
LLLoginServiceInConnector = &amp;quot;8002/OpenSim.Server.Handlers.dll:LLLoginServiceInConnector&amp;quot;&lt;br /&gt;
PresenceServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:PresenceServiceConnector&amp;quot;&lt;br /&gt;
UserAccountServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:UserAccountServiceConnector&amp;quot;&lt;br /&gt;
GridUserServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:GridUserServiceConnector&amp;quot;&lt;br /&gt;
FriendsServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:FriendsServiceConnector&amp;quot;&lt;br /&gt;
MapAddServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:MapAddServiceConnector&amp;quot;&lt;br /&gt;
MapGetServiceConnector = &amp;quot;8002/OpenSim.Server.Handlers.dll:MapGetServiceConnector&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Each entry has the form &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;port-number&amp;gt;/&amp;lt;dll&amp;gt;:&amp;lt;connector-class-name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For instance, the first entry above&lt;br /&gt;
&lt;br /&gt;
 8003/OpenSim.Server.Handlers.dll:AssetServiceConnector&lt;br /&gt;
&lt;br /&gt;
says to start an AssetServiceConnector (and hence an asset service) from the OpenSim.Server.Handlers.dll and to server that from port 8003.&lt;br /&gt;
&lt;br /&gt;
By default, Robust.exe loads a configuration file with the same name but with .ini appended instead of .exe.  So Robust.exe will look for an inifile called Robust.ini.  You can change this by giving the parameter on the commandline.  For instance, to start Robust with HG parameters, one would use&lt;br /&gt;
&lt;br /&gt;
 Robust.exe -inifile=Robust.HG.ini&lt;br /&gt;
&lt;br /&gt;
So if you wanted to run every connector apart from assets in one instance of ROBUST and the asset connector in another instance, you would have two ini files.  One could remain Robust.ini and have&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[ServiceList]&lt;br /&gt;
InventoryInConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:XInventoryInConnector&amp;quot;&lt;br /&gt;
GridServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:GridServiceConnector&amp;quot;&lt;br /&gt;
GridInfoServerInConnector = &amp;quot;8002/OpenSim.Server.Handlers.dll:GridInfoServerInConnector&amp;quot;&lt;br /&gt;
AuthenticationServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:AuthenticationServiceConnector&amp;quot;&lt;br /&gt;
OpenIdServerConnector = &amp;quot;8002/OpenSim.Server.Handlers.dll:OpenIdServerConnector&amp;quot;&lt;br /&gt;
AvatarServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:AvatarServiceConnector&amp;quot;&lt;br /&gt;
LLLoginServiceInConnector = &amp;quot;8002/OpenSim.Server.Handlers.dll:LLLoginServiceInConnector&amp;quot;&lt;br /&gt;
PresenceServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:PresenceServiceConnector&amp;quot;&lt;br /&gt;
UserAccountServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:UserAccountServiceConnector&amp;quot;&lt;br /&gt;
GridUserServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:GridUserServiceConnector&amp;quot;&lt;br /&gt;
FriendsServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:FriendsServiceConnector&amp;quot;&lt;br /&gt;
MapAddServiceConnector = &amp;quot;8003/OpenSim.Server.Handlers.dll:MapAddServiceConnector&amp;quot;&lt;br /&gt;
MapGetServiceConnector = &amp;quot;8002/OpenSim.Server.Handlers.dll:MapGetServiceConnector&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The other could be called Robust.Assets.ini and have&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[ServiceList]&lt;br /&gt;
AssetServiceConnector = &amp;quot;8004/OpenSim.Server.Handlers.dll:AssetServiceConnector&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that this is using port 8004 instead of port 8003.  This is necessary since only one executable can use each port at a time.  You will need to make sure your simulator configuration files use port 8004 for the asset service as well.&lt;br /&gt;
&lt;br /&gt;
You will also need to change the default network port to 8004 for this second copy of Robust.exe&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Network]&lt;br /&gt;
   port = 8004&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you've created the two ROBUST configuration files (Robust.ini containing all services apart from asset and Robust.Assets.ini containing only the asset service), then you could start the first Robust.exe as usual.&lt;br /&gt;
&lt;br /&gt;
 Robust.exe&lt;br /&gt;
&lt;br /&gt;
This will load Robust.ini, as we haven't specified a Robust.ini.  Also, the logfile it will use will be Robust.log as we haven't manually specified one.&lt;br /&gt;
&lt;br /&gt;
The second ROBUST instance we would start with&lt;br /&gt;
&lt;br /&gt;
 Robust.exe -inifile=Robust.Assets.ini -logfile=Robust.Assets.log&lt;br /&gt;
&lt;br /&gt;
The -inifile switch tells the second Robust instance to load it's configuration from Robust.Assets.ini rather than Robust.ini.  The -logfile switch tells Robust.exe to use Robust.Assets.log as its logfile rather than the default Robust.log.  If you don't specify this switch then you may see errors on the console about a locked log file.&lt;br /&gt;
&lt;br /&gt;
At this point you should have two running Robust.exe instances.&lt;br /&gt;
&lt;br /&gt;
If you put the ROBUST instances on different machines then don't forget to change the relevant service URIs in each simulator to match.&lt;br /&gt;
&lt;br /&gt;
Since OpenSimulator services are stateless (e.g. every request is unconnected with other requests as long as they affect the same persistent data where necessary), you can also load balance by starting more than one ROBUST instance with a copy of the same service (e.g. multiple asset services using the same database).  Requests would be round-robined between the service copies using an HTTP reverse proxy implementation (e.g. nginx).  See [[Performance#Services]] for more details.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
[http://opensimulator.org/pipermail/opensim-users/2012-October/011099.html Useful discussion about separating Robust instances]&lt;br /&gt;
&lt;br /&gt;
= Attaching your sim to someone else's grid =&lt;br /&gt;
&lt;br /&gt;
To set up the region server (i.e., &amp;lt;tt&amp;gt;OpenSim.exe&amp;lt;/tt&amp;gt;) to connect to an external grid, follow the [[Configuration#Step 2: Configure an OpenSim.exe to use the ROBUST services]] instructions above.&lt;br /&gt;
&lt;br /&gt;
The grid will have already provided with the required services. In step 2 you will need to use the provided URLs for their services.&lt;br /&gt;
&lt;br /&gt;
In your bin/Regions.ini file (or other region config file) you will also need to set the grid co-ordinates to your regions provided from the grid operator. See [[Configuring Regions]] for more information.&lt;br /&gt;
&lt;br /&gt;
= Running an OpenSimulator standalone or grid installation with Hypergrid enabled =&lt;br /&gt;
[[Hypergrid]] is an emerging architecture supported by OpenSimulator that allows a user with an account on one standalone or grid to visit other Hypergrid-enabled standalones or grids, and for users from those grids to visit the home grid. This does not require the two installations to share a central set of data services (assets, inventory, etc.). Please see [[Installing and Running Hypergrid]] for more details.&lt;br /&gt;
&lt;br /&gt;
= Further notes =&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
See [[Troubleshooting]] &lt;br /&gt;
&lt;br /&gt;
== Running OpenSimulator 0.6.7 to 0.7.6.1 in 64 bit Windows ==&lt;br /&gt;
[[Image:Exclamation.png|left]]&lt;br /&gt;
As of OpenSimulator 0.6.7 and up to release 0.7.6.1, the default physics engine for OpenSimulator was changed to the ODE engine. This is because ODE was the most advanced physics engine plugin at the time in OpenSimulator. Unfortunately, it has the drawback in that its library is not compilable under 64-bit in Windows. &lt;br /&gt;
&lt;br /&gt;
Therefore, in order to launch the region simulator under 64-bit Windows for versions 0.6.7 to 0.7.6.1 using ODE, users may need to run: &lt;br /&gt;
&lt;br /&gt;
 OpenSim.32BitLaunch.exe&lt;br /&gt;
&lt;br /&gt;
instead of:&lt;br /&gt;
&lt;br /&gt;
 OpenSim.exe&lt;br /&gt;
&lt;br /&gt;
An alternative is to use the basicphysics engine instead or one of the other alternative physics engines bundled with OpenSim, though all these were less functional than the ODE plugin.&lt;br /&gt;
&lt;br /&gt;
From OpenSim 0.8 the default physics engine is BulletSim.&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' ''Commits 3e5bc75 and e8ca900 move these to the directory ./share/32BitLaunch as they should no longer be needed and are slated for removal from the project''&lt;br /&gt;
&lt;br /&gt;
== Note About Mono ==&lt;br /&gt;
&lt;br /&gt;
Mono and .NET have a built in threadpool.  By default, OpenSimulator is instead configured to use a third-party threadpool called SmartThreadPool for many tasks, partly because of issues with early implementations of the Mono threadpool.&lt;br /&gt;
&lt;br /&gt;
However, even with this setting, some other operations are carried out with the built-in threadpool.  At least in some versions of Mono (chiefly prior to 2.6), the default configuration for this can cause issues with OpenSimulator - [http://www.mono-project.com/ThreadPool_DeadLocks ThreadPool_Deadlocks at the mono-project website].&lt;br /&gt;
&lt;br /&gt;
If this is an issue or if the threadpool runs out of available threads, then the operation of your sim will start to break in all sorts of different ways. A common symptom is the freezing of all activity upon login of a new avatar.&lt;br /&gt;
&lt;br /&gt;
The MONO_THREADS_PER_CPU parameter affects the number of existing built-in threadpool worker threads below which Mono will always spawn a new thread when OpenSimulator adds a new task.  This is MONO_THREADS_PER_CPU * 4.  So if set to 50, the minimum number of worker threads will be 200.&lt;br /&gt;
&lt;br /&gt;
Above this number, Mono will make an internal decision whether to spawn a new thread or wait for an existing thread to complete its task.&lt;br /&gt;
&lt;br /&gt;
The effect of this parameter is extremely implementation dependent, and so dependent upon the version of Mono that you are using.  Before 2.6 for instance, it was definitely worth setting a high MONO_THREADS_PER_CPU due to issues with the Mono thread pool.  In theory, later versions of Mono should not be susceptible to this issue.  Mono 2.10.8.1, for instance, has a default MONO_THREADS_PER_CPU of 1 (despite what the incorrect Mono manpage says).&lt;br /&gt;
&lt;br /&gt;
However, people still report a benefit from setting MONO_THREADS_PER_CPU higher than default.  The exact number depends on many factors including: the number of CPUs in your machine, what else you use that machine for, how many regions you have in your sim, how many of them are adjacent, how many scripts you have, and how many avatars you expect to serve at the same time. As a reference, Wright Plaza in OSGrid, which is running as a single region on a sim and routinely hosts meetings with 20 avatars, uses the value 125. &lt;br /&gt;
&lt;br /&gt;
For example: $ export MONO_THREADS_PER_CPU=125&lt;br /&gt;
&lt;br /&gt;
So if you are having problems with avatars freezing and you're hardware meets or exceeds recommended [[Performance]] requirements, then you may want to setting this environment variable.&lt;br /&gt;
&lt;br /&gt;
There is a very basic program for displaying current threadpool configuration settings at https://github.com/justincc/opensimulator-tools/tree/master/analysis/threadpool-info.  &lt;br /&gt;
&lt;br /&gt;
All this applies to the min threadpool numbers, not the max thread numbers.  OpenSimulator itself will attempt to adjust the max numbers.  You can see the output from this very near the top of the OpenSim.log file.&lt;br /&gt;
&lt;br /&gt;
== Increasing the stack reserve level when using OpenDynamicsEngine on *nix ==&lt;br /&gt;
&lt;br /&gt;
If you have problems using the OpenDynamicsEngine on *nix, try setting your stack reserve level higher than the default with the following command;&lt;br /&gt;
&amp;lt;tt&amp;gt;ulimit -s 262144&amp;lt;/tt&amp;gt; Or, run the opensim-ode.sh to start up OpenSimulator.&lt;br /&gt;
&lt;br /&gt;
== Firewalls ==&lt;br /&gt;
Some operation systems or distributions run their own firewall by default. If you can't access to OpenSimulator from remote client, you'll need to check their settings. See [[Firewall Settings]] for details.&lt;br /&gt;
&lt;br /&gt;
== Legacy Configuration Information ==&lt;br /&gt;
These are some pages containing some legacy configuration information of unknown accuracy.&lt;br /&gt;
&lt;br /&gt;
[[OpenSim 0.6.6 legacy configuration information]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Additional Optional Configuration Tasks ==&lt;br /&gt;
&lt;br /&gt;
=== Further configure OpenSimulator ===&lt;br /&gt;
If you've looked through OpenSim.ini.example or any other of the config files, you'll see that there's a very large number of configurable parameters spread across multiple files. See [[Configuring Simulator Parameters]] for more details about the configuration infrastructure and how settings in identically named sections (e.g. [XEngine]) are merged by OpenSimulator on loading.&lt;br /&gt;
&lt;br /&gt;
=== Set up a second region to run on the same simulator ===&lt;br /&gt;
See [[Configuring Regions]].&lt;br /&gt;
&lt;br /&gt;
=== Run Multiple Standalone Instances of OpenSimulator on the Same Server ===&lt;br /&gt;
For each subsequent instance of OpenSim, change the 'http_listener_port' in OpenSim.ini to the value excluding 9000, and 'InternalPort' in Regions.ini to the value excluding 9000. Also, make sure your regions are using different ports, as explained in [[Configuring Regions]].&lt;br /&gt;
&lt;br /&gt;
=== Load region content ===&lt;br /&gt;
You can load content onto regions by using the [[OpenSim Archives|load oar command]]. To load individual OAR files into each region, use the 'change region [regionname]' command and then 'load oar [oar-location]'.&lt;br /&gt;
&lt;br /&gt;
=== OpenSim.exe command line options ===&lt;br /&gt;
OpenSim.exe has command line options which allow you to perform actions such as reading configuration files from a different directory. See [[OpenSim.exe Command Line Options]] for more details.&lt;br /&gt;
&lt;br /&gt;
=== Script engine ===&lt;br /&gt;
OpenSimulator supports multiple script engines. See [[ScriptEngines]] for details. If you don't know what this means then the default script engine will be fine. In fact, recent versions of OpenSimulator only ship with one script engine, the XEngine.&lt;br /&gt;
&lt;br /&gt;
=== Permissions Configuration ===&lt;br /&gt;
OpenSimulator has a quite elaborate set of permissions. See [[Permissions (Server)]] for details. By default, permissions are active on region simulators.&lt;br /&gt;
&lt;br /&gt;
=== Logging ===&lt;br /&gt;
By default, OpenSimulator logs information to a file called OpenSim.log in the bin directory. See [[Logging]] for details on how to further configure this if required.&lt;br /&gt;
&lt;br /&gt;
=== Set up other optional modules ===&lt;br /&gt;
* [[IRCBridgeModule]]&lt;br /&gt;
* [[Freeswitch Module]]&lt;br /&gt;
* [[Offline Messaging]]&lt;br /&gt;
* [[Enabling Groups]]&lt;br /&gt;
* See also [[User_Documentation#Setup]]&lt;br /&gt;
&lt;br /&gt;
=== Configuration of Web Server and Pages ===&lt;br /&gt;
OpenSimulator contains a web server that can serve up a variety of pages. Some which come from external files and some are generated internally.&lt;br /&gt;
* [[External Files]]&lt;br /&gt;
* [[Internally Generated]]&lt;br /&gt;
&lt;br /&gt;
= Where to go from here =&lt;br /&gt;
&lt;br /&gt;
* [[NAT Loopback Routers]] Router and Nat Loopback Information&lt;br /&gt;
&lt;br /&gt;
* [[Upgrading]] from an old OpenSimulator version to a newer one.&lt;br /&gt;
&lt;br /&gt;
* [[Server Commands]] for creating users and controlling the system.&lt;br /&gt;
&lt;br /&gt;
* Fix the bent knees bug: [[FAQ#Why are my knees bent when I stand idle.3F]]&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
* [http://dist.opensimulator.org/wiki/opensim-standalone.odg OpenOffice draw file for OpenSimulator standalone diagram]&lt;br /&gt;
* [http://dist.opensimulator.org/wiki/opensim-grid-simple.odg OpenOffice draw file for OpenSimulator grid diagram]&lt;br /&gt;
&lt;br /&gt;
[[Category:Configuration]]&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/SimulatorFeatures</id>
		<title>SimulatorFeatures</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/SimulatorFeatures"/>
				<updated>2014-08-07T01:10:52Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: /* Robust */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= SimulatorFeaturesModule =&lt;br /&gt;
from dev-master hash/commit time 10a8d28_1407360312&lt;br /&gt;
== Overview ==&lt;br /&gt;
The SimulatorFeaturesModule is the mechanism used to inform the viewer about a region's ability to handle mesh model objects. This information is sent when the presence is created in the region so the viewer will be able to determine the region's mesh capabilities. There are no configurable items for the features. But, many OpenSim capable viewers support extended use of the simulator features to pass other parameters that the viewer can use to dynamically refresh values needed to properly operate components for the grid containing the region. This is particularly useful for Hypergrid since several viewer components receive parameters upon login and are specific to that grid. Unless the parameters are dynamically refreshed, the components will not work when visiting new grids. We pass the parameters inside a data structure named &amp;quot;OpenSimExtras&amp;quot; along with the simulator features.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
The region sends this data to the viewer, and we support the setting of these extras in the configuration of the simulator. But, we use the Robust GridService to push default values to the regions when they startup. The values we send are identical to the parameters we send in our home grid's login service when the user logs into the grid.&lt;br /&gt;
=== Robust ===&lt;br /&gt;
We currently (dev-master hash/commit time 10a8d28_1407360312 forward) support the configuration of several parameters via the Robust ini.&lt;br /&gt;
&amp;lt;source lang=ini&amp;gt;&lt;br /&gt;
[GridService]&lt;br /&gt;
; Support viewer export of content&lt;br /&gt;
ExportSupported = true&lt;br /&gt;
&lt;br /&gt;
[LoginService]&lt;br /&gt;
&lt;br /&gt;
; Grid Search service url&lt;br /&gt;
SearchURL = &amp;quot;url to search service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
; Grid Map Service&lt;br /&gt;
MapTileURL = &amp;quot;http://127.0.0.1:8002&amp;quot;&lt;br /&gt;
&lt;br /&gt;
; Grid destination guide url&lt;br /&gt;
DestinationGuide = &amp;quot;url to destination guide (grid favorite locations)&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OpenSim ===&lt;br /&gt;
&lt;br /&gt;
OpenSimExtras are configured in several places through the code and the best way to track them is to search for modules that watch the OnSimulatorFeaturesRequest event. We support the override of the grid defaults in the SimulatorFeaturesModule, but the defaults should be set at the grid level to ensure that the services required to operate the viewer components will be correct when users login or enter regions via Hypergrid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=ini&amp;gt;&lt;br /&gt;
[SimulatorFeatures]&lt;br /&gt;
&lt;br /&gt;
; Grid search service url&lt;br /&gt;
SearchServerURI = &amp;quot;url to grid search service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
; Grid destination guide url&lt;br /&gt;
DestinationGuideURI = &amp;quot;url to grid search service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
; Grid map service url&lt;br /&gt;
;(this may be set in one of several other locations, but we can use this to be consistent)&lt;br /&gt;
MapTileURL = &amp;quot;url to grid map service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Extra information sent to the viewer over the SimulatorFeatures capability:&lt;br /&gt;
&lt;br /&gt;
The OpenSimulator specific proportion of this is as follows (TODO: Really need to document the surrounding SimulatorFeatures structure as well!).&lt;br /&gt;
&lt;br /&gt;
  OpenSimExtras (OSDMap)&lt;br /&gt;
    map-server-url (string)&lt;br /&gt;
    search-server-url (string)&lt;br /&gt;
    destination-guide-url (string)&lt;br /&gt;
    ExportSupported (Boolean)&lt;br /&gt;
    say-range (integer)&lt;br /&gt;
    whisper-range (integer)&lt;br /&gt;
    shout-range (integer)&lt;br /&gt;
&lt;br /&gt;
Any of these is optional -- it may or may not be sent by the simulators. The entire map OpenSimExtras may or may not be present.&lt;br /&gt;
&lt;br /&gt;
Portions of this are available in OpenSimulator 0.7.6 onward. Grid support is only available from dev-master hash/commit time 10a8d28_1407360312 onward.&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/SimulatorFeatures</id>
		<title>SimulatorFeatures</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/SimulatorFeatures"/>
				<updated>2014-08-07T00:59:22Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: /* SimulatorFeaturesModule */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= SimulatorFeaturesModule =&lt;br /&gt;
from dev-master hash/commit time 10a8d28_1407360312&lt;br /&gt;
== Overview ==&lt;br /&gt;
The SimulatorFeaturesModule is the mechanism used to inform the viewer about a region's ability to handle mesh model objects. This information is sent when the presence is created in the region so the viewer will be able to determine the region's mesh capabilities. There are no configurable items for the features. But, many OpenSim capable viewers support extended use of the simulator features to pass other parameters that the viewer can use to dynamically refresh values needed to properly operate components for the grid containing the region. This is particularly useful for Hypergrid since several viewer components receive parameters upon login and are specific to that grid. Unless the parameters are dynamically refreshed, the components will not work when visiting new grids. We pass the parameters inside a data structure named &amp;quot;OpenSimExtras&amp;quot; along with the simulator features.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
The region sends this data to the viewer, and we support the setting of these extras in the configuration of the simulator. But, we use the Robust GridService to push default values to the regions when they startup. The values we send are identical to the parameters we send in our home grid's login service when the user logs into the grid.&lt;br /&gt;
=== Robust ===&lt;br /&gt;
We currently (dev-master hash/commit time b4c6e23-1407353915 forward) support the configuration of several parameters via the Robust ini.&lt;br /&gt;
&amp;lt;source lang=ini&amp;gt;&lt;br /&gt;
[GridService]&lt;br /&gt;
; Support viewer export of content&lt;br /&gt;
ExportSupported = true&lt;br /&gt;
&lt;br /&gt;
[LoginService]&lt;br /&gt;
&lt;br /&gt;
; Grid Search service url&lt;br /&gt;
SearchURL = &amp;quot;url to search service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
; Grid Map Service&lt;br /&gt;
MapTileURL = &amp;quot;http://127.0.0.1:8002&amp;quot;&lt;br /&gt;
&lt;br /&gt;
; Grid destination guide url&lt;br /&gt;
DestinationGuide = &amp;quot;url to destination guide (grid favorite locations)&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OpenSim ===&lt;br /&gt;
&lt;br /&gt;
OpenSimExtras are configured in several places through the code and the best way to track them is to search for modules that watch the OnSimulatorFeaturesRequest event. We support the override of the grid defaults in the SimulatorFeaturesModule, but the defaults should be set at the grid level to ensure that the services required to operate the viewer components will be correct when users login or enter regions via Hypergrid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=ini&amp;gt;&lt;br /&gt;
[SimulatorFeatures]&lt;br /&gt;
&lt;br /&gt;
; Grid search service url&lt;br /&gt;
SearchServerURI = &amp;quot;url to grid search service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
; Grid destination guide url&lt;br /&gt;
DestinationGuideURI = &amp;quot;url to grid search service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
; Grid map service url&lt;br /&gt;
;(this may be set in one of several other locations, but we can use this to be consistent)&lt;br /&gt;
MapTileURL = &amp;quot;url to grid map service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Extra information sent to the viewer over the SimulatorFeatures capability:&lt;br /&gt;
&lt;br /&gt;
The OpenSimulator specific proportion of this is as follows (TODO: Really need to document the surrounding SimulatorFeatures structure as well!).&lt;br /&gt;
&lt;br /&gt;
  OpenSimExtras (OSDMap)&lt;br /&gt;
    map-server-url (string)&lt;br /&gt;
    search-server-url (string)&lt;br /&gt;
    destination-guide-url (string)&lt;br /&gt;
    ExportSupported (Boolean)&lt;br /&gt;
    say-range (integer)&lt;br /&gt;
    whisper-range (integer)&lt;br /&gt;
    shout-range (integer)&lt;br /&gt;
&lt;br /&gt;
Any of these is optional -- it may or may not be sent by the simulators. The entire map OpenSimExtras may or may not be present.&lt;br /&gt;
&lt;br /&gt;
Portions of this are available in OpenSimulator 0.7.6 onward. Grid support is only available from dev-master hash/commit time 10a8d28_1407360312 onward.&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/SimulatorFeatures</id>
		<title>SimulatorFeatures</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/SimulatorFeatures"/>
				<updated>2014-08-06T21:12:46Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: /* Robust */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= SimulatorFeaturesModule =&lt;br /&gt;
from dev-master hash/commit time b4c6e23-1407353915&lt;br /&gt;
== Overview ==&lt;br /&gt;
The SimulatorFeaturesModule is the mechanism used to inform the viewer about a region's ability to handle mesh model objects. This information is sent when the presence is created in the region so the viewer will be able to determine the region's mesh capabilities. There are no configurable items for the features. But, many OpenSim capable viewers support extended use of the simulator features to pass other parameters that the viewer can use to dynamically refresh values needed to properly operate components for the grid containing the region. This is particularly useful for Hypergrid since several viewer components receive parameters upon login and are specific to that grid. Unless the parameters are dynamically refreshed, the components will not work when visiting new grids. We pass the parameters inside a data structure named &amp;quot;OpenSimExtras&amp;quot; along with the simulator features.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
The region sends this data to the viewer, and we support the setting of these extras in the configuration of the simulator. But, we use the Robust GridService to push default values to the regions when they startup. The values we send are identical to the parameters we send in our home grid's login service when the user logs into the grid.&lt;br /&gt;
=== Robust ===&lt;br /&gt;
We currently (dev-master hash/commit time b4c6e23-1407353915 forward) support the configuration of several parameters via the Robust ini.&lt;br /&gt;
&amp;lt;source lang=ini&amp;gt;&lt;br /&gt;
[GridService]&lt;br /&gt;
; Support viewer export of content&lt;br /&gt;
ExportSupported = true&lt;br /&gt;
&lt;br /&gt;
[LoginService]&lt;br /&gt;
&lt;br /&gt;
; Grid Search service url&lt;br /&gt;
SearchURL = &amp;quot;url to search service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
; Grid Map Service&lt;br /&gt;
MapTileURL = &amp;quot;http://127.0.0.1:8002&amp;quot;&lt;br /&gt;
&lt;br /&gt;
; Grid destination guide url&lt;br /&gt;
DestinationGuide = &amp;quot;url to destination guide (grid favorite locations)&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OpenSim ===&lt;br /&gt;
&lt;br /&gt;
OpenSimExtras are configured in several places through the code and the best way to track them is to search for modules that watch the OnSimulatorFeaturesRequest event. We support the override of the grid defaults in the SimulatorFeaturesModule, but the defaults should be set at the grid level to ensure that the services required to operate the viewer components will be correct when users login or enter regions via Hypergrid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=ini&amp;gt;&lt;br /&gt;
[SimulatorFeatures]&lt;br /&gt;
&lt;br /&gt;
; Grid search service url&lt;br /&gt;
SearchServerURI = &amp;quot;url to grid search service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
; Grid destination guide url&lt;br /&gt;
DestinationGuideURI = &amp;quot;url to grid search service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
; Grid map service url&lt;br /&gt;
;(this may be set in one of several other locations, but we can use this to be consistent)&lt;br /&gt;
MapTileURL = &amp;quot;url to grid map service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Extra information sent to the viewer over the SimulatorFeatures capability:&lt;br /&gt;
&lt;br /&gt;
The OpenSimulator specific proportion of this is as follows (TODO: Really need to document the surrounding SimulatorFeatures structure as well!).&lt;br /&gt;
&lt;br /&gt;
  OpenSimExtras (OSDMap)&lt;br /&gt;
    map-server-url (string)&lt;br /&gt;
    search-server-url (string)&lt;br /&gt;
    destination-guide-url (string)&lt;br /&gt;
    ExportSupported (Boolean)&lt;br /&gt;
    say-range (integer)&lt;br /&gt;
    whisper-range (integer)&lt;br /&gt;
    shout-range (integer)&lt;br /&gt;
&lt;br /&gt;
Any of these is optional -- it may or may not be sent by the simulators. The entire map OpenSimExtras may or may not be present.&lt;br /&gt;
&lt;br /&gt;
Portions of this are available in OpenSimulator 0.7.6 onward. Grid support is only available from dev-master hash/commit time b4c6e23-1407353915 onward.&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/SimulatorFeatures</id>
		<title>SimulatorFeatures</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/SimulatorFeatures"/>
				<updated>2014-08-06T21:11:22Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= SimulatorFeaturesModule =&lt;br /&gt;
from dev-master hash/commit time b4c6e23-1407353915&lt;br /&gt;
== Overview ==&lt;br /&gt;
The SimulatorFeaturesModule is the mechanism used to inform the viewer about a region's ability to handle mesh model objects. This information is sent when the presence is created in the region so the viewer will be able to determine the region's mesh capabilities. There are no configurable items for the features. But, many OpenSim capable viewers support extended use of the simulator features to pass other parameters that the viewer can use to dynamically refresh values needed to properly operate components for the grid containing the region. This is particularly useful for Hypergrid since several viewer components receive parameters upon login and are specific to that grid. Unless the parameters are dynamically refreshed, the components will not work when visiting new grids. We pass the parameters inside a data structure named &amp;quot;OpenSimExtras&amp;quot; along with the simulator features.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
The region sends this data to the viewer, and we support the setting of these extras in the configuration of the simulator. But, we use the Robust GridService to push default values to the regions when they startup. The values we send are identical to the parameters we send in our home grid's login service when the user logs into the grid.&lt;br /&gt;
=== Robust ===&lt;br /&gt;
We currently (dev-master hash/commit time b4c6e23-1407353915 forward) support the configuration of several parameters via the Robust ini.&lt;br /&gt;
&amp;lt;source lang=ini&amp;gt;&lt;br /&gt;
[GridService]&lt;br /&gt;
ExportSupported = true&lt;br /&gt;
&lt;br /&gt;
[LoginService]&lt;br /&gt;
&lt;br /&gt;
; Grid Search service url&lt;br /&gt;
SearchURL = &amp;quot;url to search service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
; Grid Map Service&lt;br /&gt;
MapTileURL = &amp;quot;http://127.0.0.1:8002&amp;quot;&lt;br /&gt;
&lt;br /&gt;
; Grid destination guide url&lt;br /&gt;
DestinationGuide = &amp;quot;url to destination guide (grid favorite locations)&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OpenSim ===&lt;br /&gt;
&lt;br /&gt;
OpenSimExtras are configured in several places through the code and the best way to track them is to search for modules that watch the OnSimulatorFeaturesRequest event. We support the override of the grid defaults in the SimulatorFeaturesModule, but the defaults should be set at the grid level to ensure that the services required to operate the viewer components will be correct when users login or enter regions via Hypergrid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=ini&amp;gt;&lt;br /&gt;
[SimulatorFeatures]&lt;br /&gt;
&lt;br /&gt;
; Grid search service url&lt;br /&gt;
SearchServerURI = &amp;quot;url to grid search service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
; Grid destination guide url&lt;br /&gt;
DestinationGuideURI = &amp;quot;url to grid search service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
; Grid map service url&lt;br /&gt;
;(this may be set in one of several other locations, but we can use this to be consistent)&lt;br /&gt;
MapTileURL = &amp;quot;url to grid map service&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Extra information sent to the viewer over the SimulatorFeatures capability:&lt;br /&gt;
&lt;br /&gt;
The OpenSimulator specific proportion of this is as follows (TODO: Really need to document the surrounding SimulatorFeatures structure as well!).&lt;br /&gt;
&lt;br /&gt;
  OpenSimExtras (OSDMap)&lt;br /&gt;
    map-server-url (string)&lt;br /&gt;
    search-server-url (string)&lt;br /&gt;
    destination-guide-url (string)&lt;br /&gt;
    ExportSupported (Boolean)&lt;br /&gt;
    say-range (integer)&lt;br /&gt;
    whisper-range (integer)&lt;br /&gt;
    shout-range (integer)&lt;br /&gt;
&lt;br /&gt;
Any of these is optional -- it may or may not be sent by the simulators. The entire map OpenSimExtras may or may not be present.&lt;br /&gt;
&lt;br /&gt;
Portions of this are available in OpenSimulator 0.7.6 onward. Grid support is only available from dev-master hash/commit time b4c6e23-1407353915 onward.&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/GridService</id>
		<title>GridService</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/GridService"/>
				<updated>2014-08-06T19:03:26Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: /* API */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
The grid service manages information about regions on the grid.  Some of the API is a little odd - this is a legacy of its original undocumented private-only use.&lt;br /&gt;
&lt;br /&gt;
This service should only be accessible from the LAN.&lt;br /&gt;
&lt;br /&gt;
= API =&lt;br /&gt;
Functions available on the grid service are&lt;br /&gt;
&lt;br /&gt;
* register - registers a region with the grid.&lt;br /&gt;
* deregister - deregisters a region from the grid.&lt;br /&gt;
* get_neighbours - gets the region neighbours of a given location.&lt;br /&gt;
* get_region_by_uuid - returns region details given a region UUID.&lt;br /&gt;
* get_region_by_position - returns region details given a position.&lt;br /&gt;
* get_region_by_name - returns region details given a name.  This will only return the first name if there are multiple regions with the same name.&lt;br /&gt;
* get_regions_by_name - returns details of all regions that match a given name&lt;br /&gt;
* get_region_range - returns details of all regions in a given area&lt;br /&gt;
* get_default_regions - returns default regions for a grid.  These are regions that are tried in order if the requested login region does not exist.&lt;br /&gt;
* get_default_hypergrid_regions - returns default Hypergrid regions for a grid.  These are regions that are tried in order if Hypergrid destination request by an inbound foreign user does not exist.&lt;br /&gt;
* get_fallback_regions - returns fallback regions for a grid.  These are regions that are tried in order if no default regions are online.&lt;br /&gt;
* get_hyperlinks - get linked Hypergrid regions.&lt;br /&gt;
* get_region_flags - get flags for a region.&lt;br /&gt;
* get_grid_extra_features - get default extra features see: [[SimulatorFeatures Extras]]&lt;br /&gt;
&lt;br /&gt;
== Formats ==&lt;br /&gt;
=== Region ===&lt;br /&gt;
&lt;br /&gt;
This has the format &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;region0 type=&amp;quot;List&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;uuid&amp;gt;dd5b77f8-bf88-45ac-aace-35bd76426c81&amp;lt;/uuid&amp;gt;&lt;br /&gt;
    &amp;lt;locX&amp;gt;256000&amp;lt;/locX&amp;gt;&lt;br /&gt;
    &amp;lt;locY&amp;gt;256000&amp;lt;/locY&amp;gt;&lt;br /&gt;
    &amp;lt;sizeX&amp;gt;256&amp;lt;/sizeX&amp;gt;&lt;br /&gt;
    &amp;lt;sizeY&amp;gt;256&amp;lt;/sizeY&amp;gt;&lt;br /&gt;
    &amp;lt;regionName&amp;gt;test&amp;lt;/regionName&amp;gt;&lt;br /&gt;
    &amp;lt;serverIP&amp;gt;192.168.1.2&amp;lt;/serverIP&amp;gt;&lt;br /&gt;
    &amp;lt;serverHttpPort&amp;gt;9000&amp;lt;/serverHttpPort&amp;gt;&lt;br /&gt;
    &amp;lt;serverURI&amp;gt;http://192.168.1.2:9000/&amp;lt;/serverURI&amp;gt;&lt;br /&gt;
    &amp;lt;serverPort&amp;gt;9000&amp;lt;/serverPort&amp;gt;&lt;br /&gt;
    &amp;lt;regionMapTexture&amp;gt;fc8fda13-c2e9-4e83-8543-b7fe98231399&amp;lt;/regionMapTexture&amp;gt;&lt;br /&gt;
    &amp;lt;parcelMapTexture&amp;gt;00000000-0000-0000-0000-000000000000&amp;lt;/parcelMapTexture&amp;gt;&lt;br /&gt;
    &amp;lt;access&amp;gt;13&amp;lt;/access&amp;gt;&lt;br /&gt;
    &amp;lt;regionSecret&amp;gt;0ab0a97d-ffcc-4b29-a715-74372b763b88&amp;lt;/regionSecret&amp;gt;&lt;br /&gt;
    &amp;lt;owner_uuid&amp;gt;f2f493c0-27d3-4cf2-be97-b44dfdad13b6&amp;lt;/owner_uuid&amp;gt;&lt;br /&gt;
    &amp;lt;Token/&amp;gt;&lt;br /&gt;
  &amp;lt;/region0&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
* '''uuid''' uuid of the region&lt;br /&gt;
* '''locX''' X location of the south-west corner of the region.  Please note that this is in meters, not map tiles (each 256m).  So a location of 256000 corresponds to a map tile at 1000.&lt;br /&gt;
* '''locY''' Y location of the south-west corner of the region.  Please note that this is in meters, not map tiles (each 256m).&lt;br /&gt;
* '''sizeX''' X dimension size of the region in meters.&lt;br /&gt;
* '''sizeY''' Y dimension size of the region in meters.&lt;br /&gt;
* '''regionName''' name of the region&lt;br /&gt;
* '''serverIP''' IP address of the region passed to clients.&lt;br /&gt;
* '''serverHttpPort''' HTTP port of the region as passed to clients.&lt;br /&gt;
* '''serverURI''' URI of the region.&lt;br /&gt;
* '''serverPort''' UDP port of the region as passed to clients.&lt;br /&gt;
* '''regionMapTexture''' map texture of the region as stored in the asset service.&lt;br /&gt;
* '''parcelMapTexture''' parcel map of the region as stored in the asset database.&lt;br /&gt;
* '''access''' mainly signals avatar maturity level required for access.  Possible values (not all of which are used by core OpenSimulator) are&lt;br /&gt;
** Unknown = 0, Unknown or invalid access level&lt;br /&gt;
** Trial = 7, Trial accounts allowed&lt;br /&gt;
** PG = 13, PG rating.  This is the default value to allow access by all avatars.&lt;br /&gt;
** Mature = 21, Mature rating.&lt;br /&gt;
** Adult = 42, Adult rating.&lt;br /&gt;
** Down = 254, Simulator is offline.&lt;br /&gt;
** NonExistent = 255, Simulator does not exist.&lt;br /&gt;
* '''regionSecret''', currently unused.&lt;br /&gt;
* '''owner_uuid''', UUID of estate user that owns the region.&lt;br /&gt;
&lt;br /&gt;
== Calls ==&lt;br /&gt;
&lt;br /&gt;
=== get_region_by_name ===&lt;br /&gt;
This gets information on the region with the given name.&lt;br /&gt;
&lt;br /&gt;
The POST field is a urlencoded string like so&lt;br /&gt;
&lt;br /&gt;
 SCOPEID=00000000-0000-0000-0000-000000000000&amp;amp;NAME=test&amp;amp;METHOD=get_region_by_name&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
* '''SCOPEID''' must always be present and always 00000000-0000-0000-0000-000000000000 (UUID.Zero) at the present time.&lt;br /&gt;
* '''NAME''' is the name of the region to get.&lt;br /&gt;
&lt;br /&gt;
If there is a region with the corresponding name, a response is sent like&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='xml'&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;ServerResponse&amp;gt;&lt;br /&gt;
  &amp;lt;result type=&amp;quot;List&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;uuid&amp;gt;dd5b77f8-bf88-45ac-aace-35bd76426c81&amp;lt;/uuid&amp;gt;&lt;br /&gt;
    &amp;lt;locX&amp;gt;256000&amp;lt;/locX&amp;gt;&lt;br /&gt;
    &amp;lt;locY&amp;gt;256000&amp;lt;/locY&amp;gt;&lt;br /&gt;
    &amp;lt;sizeX&amp;gt;256&amp;lt;/sizeX&amp;gt;&lt;br /&gt;
    &amp;lt;sizeY&amp;gt;256&amp;lt;/sizeY&amp;gt;&lt;br /&gt;
    &amp;lt;regionName&amp;gt;test&amp;lt;/regionName&amp;gt;&lt;br /&gt;
    &amp;lt;serverIP&amp;gt;192.168.1.2&amp;lt;/serverIP&amp;gt;&lt;br /&gt;
    &amp;lt;serverHttpPort&amp;gt;9000&amp;lt;/serverHttpPort&amp;gt;&lt;br /&gt;
    &amp;lt;serverURI&amp;gt;http://192.168.1.2:9000/&amp;lt;/serverURI&amp;gt;&lt;br /&gt;
    &amp;lt;serverPort&amp;gt;9000&amp;lt;/serverPort&amp;gt;&lt;br /&gt;
    &amp;lt;regionMapTexture&amp;gt;fc8fda13-c2e9-4e83-8543-b7fe98231399&amp;lt;/regionMapTexture&amp;gt;&lt;br /&gt;
    &amp;lt;parcelMapTexture&amp;gt;00000000-0000-0000-0000-000000000000&amp;lt;/parcelMapTexture&amp;gt;&lt;br /&gt;
    &amp;lt;access&amp;gt;13&amp;lt;/access&amp;gt;&lt;br /&gt;
    &amp;lt;regionSecret&amp;gt;0ab0a97d-ffcc-4b29-a715-74372b763b88&amp;lt;/regionSecret&amp;gt;&lt;br /&gt;
    &amp;lt;owner_uuid&amp;gt;f2f493c0-27d3-4cf2-be97-b44dfdad13b6&amp;lt;/owner_uuid&amp;gt;&lt;br /&gt;
    &amp;lt;Token/&amp;gt;&lt;br /&gt;
  &amp;lt;/result&amp;gt;&lt;br /&gt;
&amp;lt;/ServerResponse&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If there is more than one region with the same name (not allowed in OpenSimulator by default), then the first matching region only is returned.&lt;br /&gt;
&lt;br /&gt;
If no matching region is found then the response is&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='xml'&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;ServerResponse&amp;gt;&lt;br /&gt;
  &amp;lt;result&amp;gt;null&amp;lt;/result&amp;gt;&lt;br /&gt;
&amp;lt;/ServerResponse&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== get_region_by_uuid ===&lt;br /&gt;
This gets information on the region with the given UUID.&lt;br /&gt;
&lt;br /&gt;
The POST field is a urlencoded string like so&lt;br /&gt;
&lt;br /&gt;
 SCOPEID=00000000-0000-0000-0000-000000000000&amp;amp;REGIONID=dd5b77f8-bf88-45ac-aace-35bd76426c81&amp;amp;METHOD=get_region_by_uuid&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
* '''SCOPEID''' must always be present and always 00000000-0000-0000-0000-000000000000 (UUID.Zero) at the present time.&lt;br /&gt;
* '''REGIONID''' is the UUID of region to get.&lt;br /&gt;
&lt;br /&gt;
If there are any regions in the range, a response like&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='xml'&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;ServerResponse&amp;gt;&lt;br /&gt;
  &amp;lt;result type=&amp;quot;List&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;uuid&amp;gt;dd5b77f8-bf88-45ac-aace-35bd76426c81&amp;lt;/uuid&amp;gt;&lt;br /&gt;
    &amp;lt;locX&amp;gt;256000&amp;lt;/locX&amp;gt;&lt;br /&gt;
    &amp;lt;locY&amp;gt;256000&amp;lt;/locY&amp;gt;&lt;br /&gt;
    &amp;lt;sizeX&amp;gt;256&amp;lt;/sizeX&amp;gt;&lt;br /&gt;
    &amp;lt;sizeY&amp;gt;256&amp;lt;/sizeY&amp;gt;&lt;br /&gt;
    &amp;lt;regionName&amp;gt;test&amp;lt;/regionName&amp;gt;&lt;br /&gt;
    &amp;lt;serverIP&amp;gt;192.168.1.2&amp;lt;/serverIP&amp;gt;&lt;br /&gt;
    &amp;lt;serverHttpPort&amp;gt;9000&amp;lt;/serverHttpPort&amp;gt;&lt;br /&gt;
    &amp;lt;serverURI&amp;gt;http://192.168.1.2:9000/&amp;lt;/serverURI&amp;gt;&lt;br /&gt;
    &amp;lt;serverPort&amp;gt;9000&amp;lt;/serverPort&amp;gt;&lt;br /&gt;
    &amp;lt;regionMapTexture&amp;gt;fc8fda13-c2e9-4e83-8543-b7fe98231399&amp;lt;/regionMapTexture&amp;gt;&lt;br /&gt;
    &amp;lt;parcelMapTexture&amp;gt;00000000-0000-0000-0000-000000000000&amp;lt;/parcelMapTexture&amp;gt;&lt;br /&gt;
    &amp;lt;access&amp;gt;13&amp;lt;/access&amp;gt;&lt;br /&gt;
    &amp;lt;regionSecret&amp;gt;0ab0a97d-ffcc-4b29-a715-74372b763b88&amp;lt;/regionSecret&amp;gt;&lt;br /&gt;
    &amp;lt;owner_uuid&amp;gt;f2f493c0-27d3-4cf2-be97-b44dfdad13b6&amp;lt;/owner_uuid&amp;gt;&lt;br /&gt;
    &amp;lt;Token/&amp;gt;&lt;br /&gt;
  &amp;lt;/result&amp;gt;&lt;br /&gt;
&amp;lt;/ServerResponse&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no matching regions are found then&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='xml'&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;ServerResponse&amp;gt;&lt;br /&gt;
  &amp;lt;result&amp;gt;null&amp;lt;/result&amp;gt;&lt;br /&gt;
&amp;lt;/ServerResponse&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will be returned.&lt;br /&gt;
&lt;br /&gt;
=== get_region_flags ===&lt;br /&gt;
This get information on the flags of a region (yes, this should really just be included in get_region_range).&lt;br /&gt;
&lt;br /&gt;
The POST field is a urlencoded string like so&lt;br /&gt;
&lt;br /&gt;
 SCOPEID=00000000-0000-0000-0000-000000000000&amp;amp;REGIONID=dd5b77f8-bf88-45ac-aace-35bd76426c81&amp;amp;METHOD=get_region_flags&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
* '''SCOPEID''' must always be present and always 00000000-0000-0000-0000-000000000000 (UUID.Zero) at the present time.&lt;br /&gt;
* '''REGIONID''' is the UUID of region to query for flags.&lt;br /&gt;
&lt;br /&gt;
If the region exists, a response like&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='xml'&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;ServerResponse&amp;gt;&lt;br /&gt;
  &amp;lt;result&amp;gt;7&amp;lt;/result&amp;gt;&lt;br /&gt;
&amp;lt;/ServerResponse&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will be received.  The result corresponds to bit flags&lt;br /&gt;
&lt;br /&gt;
* DefaultRegion = 1, // Used for new Rez. Random if multiple defined&lt;br /&gt;
* FallbackRegion = 2, // Regions we redirect to when the destination is down&lt;br /&gt;
* RegionOnline = 4, // Set when a region comes online, unset when it unregisters and DeleteOnUnregister is false&lt;br /&gt;
* NoDirectLogin = 8, // Region unavailable for direct logins (by name)&lt;br /&gt;
* Persistent = 16, // Don't remove on unregister&lt;br /&gt;
* LockedOut = 32, // Don't allow registration&lt;br /&gt;
* NoMove = 64, // Don't allow moving this region&lt;br /&gt;
* Reservation = 128, // This is an inactive reservation&lt;br /&gt;
* Authenticate = 256, // Require authentication&lt;br /&gt;
* Hyperlink = 512, // Record represents a HG link&lt;br /&gt;
* DefaultHGRegion = 1024 // Record represents a default region for hypergrid teleports only.&lt;br /&gt;
&lt;br /&gt;
If no region with the given ID is found, then the response is&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='xml'&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;ServerResponse&amp;gt;&lt;br /&gt;
  &amp;lt;result&amp;gt;-1&amp;lt;/result&amp;gt;&lt;br /&gt;
&amp;lt;/ServerResponse&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== get_region_range ===&lt;br /&gt;
This gets information on all the regions in a given co-ordinate range.&lt;br /&gt;
&lt;br /&gt;
The POST field is a urlencoded string like so&lt;br /&gt;
&lt;br /&gt;
 SCOPEID=00000000-0000-0000-0000-000000000000&amp;amp;XMIN=0&amp;amp;YMIN=0&amp;amp;XMAX=2147483647&amp;amp;YMAX=2147483647&amp;amp;METHOD=get_region_range &lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
* '''SCOPEID''' must always be present and always 00000000-0000-0000-0000-000000000000 (UUID.Zero) at the present time.&lt;br /&gt;
* '''XMIN''' The minimum x-coordinate in the region range.  Please note that this is in meters, not 256m map tiles.  This must be in the range 0 - 2147483647.  So to start this at map tile co-ordinate 1000, one must specify 256000 (1000 * 256).&lt;br /&gt;
* '''YMIN''' The minimum u-coordinate in the region range.  Please note that this is in meters, not 256m map tiles.  This must be in the range 0 - 2147483647.&lt;br /&gt;
* '''XMAX''' The maximum x-coordinate in the region range.  Please note that this is in meters, not 256m map tiles.  This must be in the range 0 - 2147483647.&lt;br /&gt;
* '''XMIN''' The maximum y-coordinate in the region range.  Please note that this is in meters, not 256m map tiles.  This must be in the range 0 - 2147483647.&lt;br /&gt;
&lt;br /&gt;
If there are any regions in the range, a response like&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='xml'&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;ServerResponse&amp;gt;&lt;br /&gt;
  &amp;lt;region0 type=&amp;quot;List&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;uuid&amp;gt;dd5b77f8-bf88-45ac-aace-35bd76426c81&amp;lt;/uuid&amp;gt;&lt;br /&gt;
    &amp;lt;locX&amp;gt;256000&amp;lt;/locX&amp;gt;&lt;br /&gt;
    &amp;lt;locY&amp;gt;256000&amp;lt;/locY&amp;gt;&lt;br /&gt;
    &amp;lt;sizeX&amp;gt;256&amp;lt;/sizeX&amp;gt;&lt;br /&gt;
    &amp;lt;sizeY&amp;gt;256&amp;lt;/sizeY&amp;gt;&lt;br /&gt;
    &amp;lt;regionName&amp;gt;test&amp;lt;/regionName&amp;gt;&lt;br /&gt;
    &amp;lt;serverIP&amp;gt;192.168.1.2&amp;lt;/serverIP&amp;gt;&lt;br /&gt;
    &amp;lt;serverHttpPort&amp;gt;9000&amp;lt;/serverHttpPort&amp;gt;&lt;br /&gt;
    &amp;lt;serverURI&amp;gt;http://192.168.1.2:9000/&amp;lt;/serverURI&amp;gt;&lt;br /&gt;
    &amp;lt;serverPort&amp;gt;9000&amp;lt;/serverPort&amp;gt;&lt;br /&gt;
    &amp;lt;regionMapTexture&amp;gt;fc8fda13-c2e9-4e83-8543-b7fe98231399&amp;lt;/regionMapTexture&amp;gt;&lt;br /&gt;
    &amp;lt;parcelMapTexture&amp;gt;00000000-0000-0000-0000-000000000000&amp;lt;/parcelMapTexture&amp;gt;&lt;br /&gt;
    &amp;lt;access&amp;gt;13&amp;lt;/access&amp;gt;&lt;br /&gt;
    &amp;lt;regionSecret&amp;gt;0ab0a97d-ffcc-4b29-a715-74372b763b88&amp;lt;/regionSecret&amp;gt;&lt;br /&gt;
    &amp;lt;owner_uuid&amp;gt;f2f493c0-27d3-4cf2-be97-b44dfdad13b6&amp;lt;/owner_uuid&amp;gt;&lt;br /&gt;
    &amp;lt;Token/&amp;gt;&lt;br /&gt;
  &amp;lt;/region0&amp;gt;&lt;br /&gt;
  &amp;lt;region1 type=&amp;quot;List&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;uuid&amp;gt;dd5b77f8-bf88-45ac-aace-35bd76426c82&amp;lt;/uuid&amp;gt;&lt;br /&gt;
    &amp;lt;locX&amp;gt;256000&amp;lt;/locX&amp;gt;&lt;br /&gt;
    &amp;lt;locY&amp;gt;256256&amp;lt;/locY&amp;gt;&lt;br /&gt;
    &amp;lt;sizeX&amp;gt;256&amp;lt;/sizeX&amp;gt;&lt;br /&gt;
    &amp;lt;sizeY&amp;gt;256&amp;lt;/sizeY&amp;gt;&lt;br /&gt;
    &amp;lt;regionName&amp;gt;test2&amp;lt;/regionName&amp;gt;&lt;br /&gt;
    &amp;lt;serverIP&amp;gt;192.168.1.2&amp;lt;/serverIP&amp;gt;&lt;br /&gt;
    &amp;lt;serverHttpPort&amp;gt;9000&amp;lt;/serverHttpPort&amp;gt;&lt;br /&gt;
    &amp;lt;serverURI&amp;gt;http://192.168.1.2:9000/&amp;lt;/serverURI&amp;gt;&lt;br /&gt;
    &amp;lt;serverPort&amp;gt;9001&amp;lt;/serverPort&amp;gt;&lt;br /&gt;
    &amp;lt;regionMapTexture&amp;gt;e8c14947-c7d2-48e8-bab2-5a62ec4da4d8&amp;lt;/regionMapTexture&amp;gt;&lt;br /&gt;
    &amp;lt;parcelMapTexture&amp;gt;00000000-0000-0000-0000-000000000000&amp;lt;/parcelMapTexture&amp;gt;&lt;br /&gt;
    &amp;lt;access&amp;gt;13&amp;lt;/access&amp;gt;&lt;br /&gt;
    &amp;lt;regionSecret&amp;gt;273b84ff-bfe1-480b-901b-c6e4bcd3e091&amp;lt;/regionSecret&amp;gt;&lt;br /&gt;
    &amp;lt;owner_uuid&amp;gt;f2f493c0-27d3-4cf2-be97-b44dfdad13b6&amp;lt;/owner_uuid&amp;gt;&lt;br /&gt;
    &amp;lt;Token/&amp;gt;&lt;br /&gt;
  &amp;lt;/region1&amp;gt;&lt;br /&gt;
&amp;lt;/ServerResponse&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no matching regions are found then&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='xml'&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;ServerResponse&amp;gt;&lt;br /&gt;
  &amp;lt;result&amp;gt;null&amp;lt;/result&amp;gt;&lt;br /&gt;
&amp;lt;/ServerResponse&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will be returned.&lt;br /&gt;
&lt;br /&gt;
==== Notes ====&lt;br /&gt;
You can get information on all the regions in a grid by specifying 0,0 min values and 2147483647,2147483647 max values.&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/SimulatorFeatures</id>
		<title>SimulatorFeatures</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/SimulatorFeatures"/>
				<updated>2014-08-04T00:46:27Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Extra information sent to the viewer over the SimulatorFeatures capability:&lt;br /&gt;
&lt;br /&gt;
The OpenSimulator specific proportion of this is as follows (TODO: Really need to document the surrounding SimulatorFeatures structure as well!).&lt;br /&gt;
&lt;br /&gt;
  OpenSimExtras (OSDMap)&lt;br /&gt;
    map-server-url (string)&lt;br /&gt;
    search-server-url (string)&lt;br /&gt;
    destination-guide-url (string)&lt;br /&gt;
    ExportSupported (Boolean)&lt;br /&gt;
    say-range (integer)&lt;br /&gt;
    whisper-range (integer)&lt;br /&gt;
    shout-range (integer)&lt;br /&gt;
&lt;br /&gt;
Any of these is optional -- it may or may not be sent by the simulators. The entire map OpenSimExtras may or may not be present.&lt;br /&gt;
&lt;br /&gt;
This is only available in OpenSimulator 0.7.6 onwards.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some of the parameters may be configured at the grid level so regions will be handed default values on startup. The region configuration has the option to override the defaults and set values for parameters in various modules.&lt;br /&gt;
&lt;br /&gt;
Please watch this page for details&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/SimulatorFeatures</id>
		<title>SimulatorFeatures</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/SimulatorFeatures"/>
				<updated>2014-08-04T00:40:53Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Extra information sent to the viewer over the SimulatorFeatures capability:&lt;br /&gt;
&lt;br /&gt;
The OpenSimulator specific proportion of this is as follows (TODO: Really need to document the surrounding SimulatorFeatures structure as well!).&lt;br /&gt;
&lt;br /&gt;
  OpenSimExtras (OSDMap)&lt;br /&gt;
    map-server-url (string)&lt;br /&gt;
    search-server-url (string)&lt;br /&gt;
    destination-guide-url (string)&lt;br /&gt;
    ExportSupported (Boolean)&lt;br /&gt;
    say-range (integer)&lt;br /&gt;
    whisper-range (integer)&lt;br /&gt;
    shout-range (integer)&lt;br /&gt;
&lt;br /&gt;
Any of these is optional -- it may or may not be sent by the simulators. The entire map OpenSimExtras may or may not be present.&lt;br /&gt;
&lt;br /&gt;
This is only available in OpenSimulator 0.7.6 onwards.&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/UserProfiles</id>
		<title>UserProfiles</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/UserProfiles"/>
				<updated>2013-11-28T13:43:45Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: /* Configure Standalone Service */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
OpenSimulator 0.7.6 and onwards ship with built-in user profiles support.  This will support the dialog-based user profiles seen in Singularity and similar third-party viewers, but not the purely web-based profiles seen in other viewers&lt;br /&gt;
&lt;br /&gt;
At this time, there are issues with using this in a standalone system.&lt;br /&gt;
&lt;br /&gt;
Before OpenSimulator 0.7.6, user profiles was supported using an externally added module.  See [[Profile]] for more information.&lt;br /&gt;
&lt;br /&gt;
=Enabling=&lt;br /&gt;
Enabling the built-in user profiles support requires &lt;br /&gt;
&lt;br /&gt;
# Configuration in Robust.ini or Robust.HG.ini as appropriate.&lt;br /&gt;
# Configuration in OpenSim.ini&lt;br /&gt;
&lt;br /&gt;
==Configuration in Robust.ini or Robust.HG.ini==&lt;br /&gt;
The user profiles service needs to be enabled and the connector set up so that the appropriate JSON RPC methods are available to simulators.&lt;br /&gt;
&lt;br /&gt;
=== Enable service ===&lt;br /&gt;
This requires a UserProfilesService section.  You should be able to use the one from Robust.ini.example (or Robust.HG.ini.example) with Enabled = true.  For instance&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[UserProfilesService]&lt;br /&gt;
    LocalServiceModule = &amp;quot;OpenSim.Services.UserProfilesService.dll:UserProfilesService&amp;quot;&lt;br /&gt;
    Enabled = true&lt;br /&gt;
    ;; Configure this for separate profiles database&lt;br /&gt;
    ;; ConnectionString = &amp;quot;Data Source=localhost;Database=opensim;User ID=opensim;Password=*****;Old Guids=true;&amp;quot;&lt;br /&gt;
    ;; Realm = UserProfiles&lt;br /&gt;
    UserAccountService = OpenSim.Services.UserAccountService.dll:UserAccountService&lt;br /&gt;
    AuthenticationServiceModule = &amp;quot;OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If it is desired to provide a separate database for the user profile data, then remove the leading ';' from ConnectionString and Realm, providing the needed values to connect the service to your data source. The data source must be created and configured for access before use.&lt;br /&gt;
&lt;br /&gt;
=== Enable connector ===&lt;br /&gt;
In the [ServiceList] section of Robust.ini or Robust.HG.ini, this requires the connector to be set up on a port that is available to the simulators (and only the simulators).  Usually, this would be the same private port on which other grid-only services are exposed.  For instance&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ServiceList]&lt;br /&gt;
UserProfilesServiceConnector = &amp;quot;8002/OpenSim.Server.Handlers.dll:UserProfilesConnector&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Publish Profile Server URI for HyperGrid ===&lt;br /&gt;
The [LoginService] section of the Robust.HG.ini file needs the connection details for the Profile Service so that foreign users will be able to view the profile of your users when they travel to other grids via HyperGrid. Set the value of SRV_ProfileServerURI to the URI your Profile Service is configured to use. See the following for example.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[LoginService]&lt;br /&gt;
SRV_ProfileServerURI = http://example.com:8002&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configure Standalone Service ==&lt;br /&gt;
Configuring the Standalone simulator to make the built-in Profile Service available is accomplished by editing the StandaloneCommon.ini file in the bin/config-include directory.&lt;br /&gt;
&lt;br /&gt;
=== Enable service ===&lt;br /&gt;
Find the [UserProfileService] section in your StandaloneCommon.ini and make the necessary changes for your site&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[UserProfilesService]&lt;br /&gt;
    LocalServiceModule = &amp;quot;OpenSim.Services.UserProfilesService.dll:UserProfilesService&amp;quot;&lt;br /&gt;
    Enabled = true&lt;br /&gt;
&lt;br /&gt;
    ;; Configure this for separate databse&lt;br /&gt;
    ; ConnectionString = &amp;quot;Data Source=localhost;Database=opensim;User ID=opensim;Password=***;Old Guids=true;&amp;quot;&lt;br /&gt;
    ; Realm = UserProfiles&lt;br /&gt;
&lt;br /&gt;
    UserAccountService = OpenSim.Services.UserAccountService.dll:UserAccountService&lt;br /&gt;
    AuthenticationServiceModule = &amp;quot;OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The preceding example will enable the UserProfiles service using the main database for the profile tables. If a separate database is desired for the profiles data, remove the leading ';' from the ConnectionString and Realm entries. Provide the correct values to the ConnectionString for your profiles database.. The data source must be created and configured for access before use.&lt;br /&gt;
&lt;br /&gt;
=== Publish Profile Server URI for HyperGrid ===&lt;br /&gt;
If the Standalone is configured for HyperGrid operation, then the profile service URL will need to be published to allow foreign users to view your user's profiles when they travel to other grids. This is accomplished by setting the value of the SRV_ProfileServerURI which is found under the [LoginService] section in the StandaloneCommon.ini. For example&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[LoginService]&lt;br /&gt;
SRV_ProfileServerURI = http://example.com:8002&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuration in OpenSim.ini==&lt;br /&gt;
Here, there needs to be a [UserProfiles] section with a ProfileServiceURL set that the simulator can reach (not the viewer).  For instance, if your ROBUST services and simulator are on the same LAN and your ROBUST services are running on a machine with IP address 192.168.1.3, then this setting would be&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[UserProfiles]&lt;br /&gt;
  ProfileServiceURL = http://192.168.1.3:8002&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See OpenSim.ini.example for more details.&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/UserProfiles</id>
		<title>UserProfiles</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/UserProfiles"/>
				<updated>2013-11-28T13:42:24Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: /* Enable service */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
OpenSimulator 0.7.6 and onwards ship with built-in user profiles support.  This will support the dialog-based user profiles seen in Singularity and similar third-party viewers, but not the purely web-based profiles seen in other viewers&lt;br /&gt;
&lt;br /&gt;
At this time, there are issues with using this in a standalone system.&lt;br /&gt;
&lt;br /&gt;
Before OpenSimulator 0.7.6, user profiles was supported using an externally added module.  See [[Profile]] for more information.&lt;br /&gt;
&lt;br /&gt;
=Enabling=&lt;br /&gt;
Enabling the built-in user profiles support requires &lt;br /&gt;
&lt;br /&gt;
# Configuration in Robust.ini or Robust.HG.ini as appropriate.&lt;br /&gt;
# Configuration in OpenSim.ini&lt;br /&gt;
&lt;br /&gt;
==Configuration in Robust.ini or Robust.HG.ini==&lt;br /&gt;
The user profiles service needs to be enabled and the connector set up so that the appropriate JSON RPC methods are available to simulators.&lt;br /&gt;
&lt;br /&gt;
=== Enable service ===&lt;br /&gt;
This requires a UserProfilesService section.  You should be able to use the one from Robust.ini.example (or Robust.HG.ini.example) with Enabled = true.  For instance&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[UserProfilesService]&lt;br /&gt;
    LocalServiceModule = &amp;quot;OpenSim.Services.UserProfilesService.dll:UserProfilesService&amp;quot;&lt;br /&gt;
    Enabled = true&lt;br /&gt;
    ;; Configure this for separate profiles database&lt;br /&gt;
    ;; ConnectionString = &amp;quot;Data Source=localhost;Database=opensim;User ID=opensim;Password=*****;Old Guids=true;&amp;quot;&lt;br /&gt;
    ;; Realm = UserProfiles&lt;br /&gt;
    UserAccountService = OpenSim.Services.UserAccountService.dll:UserAccountService&lt;br /&gt;
    AuthenticationServiceModule = &amp;quot;OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If it is desired to provide a separate database for the user profile data, then remove the leading ';' from ConnectionString and Realm, providing the needed values to connect the service to your data source. The data source must be created and configured for access before use.&lt;br /&gt;
&lt;br /&gt;
=== Enable connector ===&lt;br /&gt;
In the [ServiceList] section of Robust.ini or Robust.HG.ini, this requires the connector to be set up on a port that is available to the simulators (and only the simulators).  Usually, this would be the same private port on which other grid-only services are exposed.  For instance&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ServiceList]&lt;br /&gt;
UserProfilesServiceConnector = &amp;quot;8002/OpenSim.Server.Handlers.dll:UserProfilesConnector&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Publish Profile Server URI for HyperGrid ===&lt;br /&gt;
The [LoginService] section of the Robust.HG.ini file needs the connection details for the Profile Service so that foreign users will be able to view the profile of your users when they travel to other grids via HyperGrid. Set the value of SRV_ProfileServerURI to the URI your Profile Service is configured to use. See the following for example.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[LoginService]&lt;br /&gt;
SRV_ProfileServerURI = http://example.com:8002&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configure Standalone Service ==&lt;br /&gt;
Configuring the Standalone simulator to make the built-in Profile Service available is accomplished by editing the StandaloneCommon.ini file in the bin/config-include directory and the OpenSim.ini file in the bin directory.&lt;br /&gt;
&lt;br /&gt;
=== Enable service ===&lt;br /&gt;
Find the [UserProfileService] section in your StandaloneCommon.ini and make the necessary changes for your site&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[UserProfilesService]&lt;br /&gt;
    LocalServiceModule = &amp;quot;OpenSim.Services.UserProfilesService.dll:UserProfilesService&amp;quot;&lt;br /&gt;
    Enabled = true&lt;br /&gt;
&lt;br /&gt;
    ;; Configure this for separate databse&lt;br /&gt;
    ; ConnectionString = &amp;quot;Data Source=localhost;Database=opensim;User ID=opensim;Password=***;Old Guids=true;&amp;quot;&lt;br /&gt;
    ; Realm = UserProfiles&lt;br /&gt;
&lt;br /&gt;
    UserAccountService = OpenSim.Services.UserAccountService.dll:UserAccountService&lt;br /&gt;
    AuthenticationServiceModule = &amp;quot;OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The preceding example will enable the UserProfiles service using the main database for the profile tables. If a separate database is desired for the profiles data, remove the leading ';' from the ConnectionString and Realm entries. Provide the correct values to the ConnectionString for your profiles database.. The data source must be created and configured for access before use.&lt;br /&gt;
&lt;br /&gt;
=== Publish Profile Server URI for HyperGrid ===&lt;br /&gt;
If the Standalone is configured for HyperGrid operation, then the profile service URL will need to be published to allow foreign users to view your user's profiles when they travel to other grids. This is accomplished by setting the value of the SRV_ProfileServerURI which is found under the [LoginService] section in the StandaloneCommon.ini. For example&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[LoginService]&lt;br /&gt;
SRV_ProfileServerURI = http://example.com:8002&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuration in OpenSim.ini==&lt;br /&gt;
Here, there needs to be a [UserProfiles] section with a ProfileServiceURL set that the simulator can reach (not the viewer).  For instance, if your ROBUST services and simulator are on the same LAN and your ROBUST services are running on a machine with IP address 192.168.1.3, then this setting would be&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[UserProfiles]&lt;br /&gt;
  ProfileServiceURL = http://192.168.1.3:8002&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See OpenSim.ini.example for more details.&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/UserProfiles</id>
		<title>UserProfiles</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/UserProfiles"/>
				<updated>2013-11-28T13:42:03Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: /* Enable service */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
OpenSimulator 0.7.6 and onwards ship with built-in user profiles support.  This will support the dialog-based user profiles seen in Singularity and similar third-party viewers, but not the purely web-based profiles seen in other viewers&lt;br /&gt;
&lt;br /&gt;
At this time, there are issues with using this in a standalone system.&lt;br /&gt;
&lt;br /&gt;
Before OpenSimulator 0.7.6, user profiles was supported using an externally added module.  See [[Profile]] for more information.&lt;br /&gt;
&lt;br /&gt;
=Enabling=&lt;br /&gt;
Enabling the built-in user profiles support requires &lt;br /&gt;
&lt;br /&gt;
# Configuration in Robust.ini or Robust.HG.ini as appropriate.&lt;br /&gt;
# Configuration in OpenSim.ini&lt;br /&gt;
&lt;br /&gt;
==Configuration in Robust.ini or Robust.HG.ini==&lt;br /&gt;
The user profiles service needs to be enabled and the connector set up so that the appropriate JSON RPC methods are available to simulators.&lt;br /&gt;
&lt;br /&gt;
=== Enable service ===&lt;br /&gt;
This requires a UserProfilesService section.  You should be able to use the one from Robust.ini.example (or Robust.HG.ini.example) with Enabled = true.  For instance&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[UserProfilesService]&lt;br /&gt;
    LocalServiceModule = &amp;quot;OpenSim.Services.UserProfilesService.dll:UserProfilesService&amp;quot;&lt;br /&gt;
    Enabled = true&lt;br /&gt;
    ;; Configure this for separate profiles database&lt;br /&gt;
    ;; ConnectionString = &amp;quot;Data Source=localhost;Database=opensim;User ID=opensim;Password=*****;Old Guids=true;&amp;quot;&lt;br /&gt;
    ;; Realm = UserProfiles&lt;br /&gt;
    UserAccountService = OpenSim.Services.UserAccountService.dll:UserAccountService&lt;br /&gt;
    AuthenticationServiceModule = &amp;quot;OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If it is desired to provide a separate database for the user profile data, then remove the leading ';' from ConnectionString and Realm, providing the needed values to connect the service to your data source. The data source must be created and configured for access before use.&lt;br /&gt;
&lt;br /&gt;
=== Enable connector ===&lt;br /&gt;
In the [ServiceList] section of Robust.ini or Robust.HG.ini, this requires the connector to be set up on a port that is available to the simulators (and only the simulators).  Usually, this would be the same private port on which other grid-only services are exposed.  For instance&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ServiceList]&lt;br /&gt;
UserProfilesServiceConnector = &amp;quot;8002/OpenSim.Server.Handlers.dll:UserProfilesConnector&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Publish Profile Server URI for HyperGrid ===&lt;br /&gt;
The [LoginService] section of the Robust.HG.ini file needs the connection details for the Profile Service so that foreign users will be able to view the profile of your users when they travel to other grids via HyperGrid. Set the value of SRV_ProfileServerURI to the URI your Profile Service is configured to use. See the following for example.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[LoginService]&lt;br /&gt;
SRV_ProfileServerURI = http://example.com:8002&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configure Standalone Service ==&lt;br /&gt;
Configuring the Standalone simulator to make the built-in Profile Service available is accomplished by editing the StandaloneCommon.ini file in the bin/config-include directory and the OpenSim.ini file in the bin directory.&lt;br /&gt;
&lt;br /&gt;
=== Enable service ===&lt;br /&gt;
Find the [UserProfileService] section in your StandaloneCommon.ini and make the necessary changes for your site&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[UserProfilesService]&lt;br /&gt;
    LocalServiceModule = &amp;quot;OpenSim.Services.UserProfilesService.dll:UserProfilesService&amp;quot;&lt;br /&gt;
    Enabled = true&lt;br /&gt;
&lt;br /&gt;
    ;; Configure this for separate databse&lt;br /&gt;
    ; ConnectionString = &amp;quot;Data Source=localhost;Database=opensim;User ID=opensim;Password=***;Old Guids=true;&amp;quot;&lt;br /&gt;
    ; Realm = UserProfiles&lt;br /&gt;
&lt;br /&gt;
    UserAccountService = OpenSim.Services.UserAccountService.dll:UserAccountService&lt;br /&gt;
    AuthenticationServiceModule = &amp;quot;OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The preceding example will enable the UserProfiles service using the main database for the profile tables. If a separate database is desired for the profiles data, remove the leading ';' from the ConnectionString and Realm entries. Provide the correct values to the ConnectionString for your profiles database.&lt;br /&gt;
&lt;br /&gt;
=== Publish Profile Server URI for HyperGrid ===&lt;br /&gt;
If the Standalone is configured for HyperGrid operation, then the profile service URL will need to be published to allow foreign users to view your user's profiles when they travel to other grids. This is accomplished by setting the value of the SRV_ProfileServerURI which is found under the [LoginService] section in the StandaloneCommon.ini. For example&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[LoginService]&lt;br /&gt;
SRV_ProfileServerURI = http://example.com:8002&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuration in OpenSim.ini==&lt;br /&gt;
Here, there needs to be a [UserProfiles] section with a ProfileServiceURL set that the simulator can reach (not the viewer).  For instance, if your ROBUST services and simulator are on the same LAN and your ROBUST services are running on a machine with IP address 192.168.1.3, then this setting would be&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[UserProfiles]&lt;br /&gt;
  ProfileServiceURL = http://192.168.1.3:8002&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See OpenSim.ini.example for more details.&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/UserProfiles</id>
		<title>UserProfiles</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/UserProfiles"/>
				<updated>2013-11-28T13:38:17Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: /* Enable service */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
OpenSimulator 0.7.6 and onwards ship with built-in user profiles support.  This will support the dialog-based user profiles seen in Singularity and similar third-party viewers, but not the purely web-based profiles seen in other viewers&lt;br /&gt;
&lt;br /&gt;
At this time, there are issues with using this in a standalone system.&lt;br /&gt;
&lt;br /&gt;
Before OpenSimulator 0.7.6, user profiles was supported using an externally added module.  See [[Profile]] for more information.&lt;br /&gt;
&lt;br /&gt;
=Enabling=&lt;br /&gt;
Enabling the built-in user profiles support requires &lt;br /&gt;
&lt;br /&gt;
# Configuration in Robust.ini or Robust.HG.ini as appropriate.&lt;br /&gt;
# Configuration in OpenSim.ini&lt;br /&gt;
&lt;br /&gt;
==Configuration in Robust.ini or Robust.HG.ini==&lt;br /&gt;
The user profiles service needs to be enabled and the connector set up so that the appropriate JSON RPC methods are available to simulators.&lt;br /&gt;
&lt;br /&gt;
=== Enable service ===&lt;br /&gt;
This requires a UserProfilesService section.  You should be able to use the one from Robust.ini.example (or Robust.HG.ini.example) with Enabled = true.  For instance&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[UserProfilesService]&lt;br /&gt;
    LocalServiceModule = &amp;quot;OpenSim.Services.UserProfilesService.dll:UserProfilesService&amp;quot;&lt;br /&gt;
    Enabled = true&lt;br /&gt;
    ;; Configure this for separate profiles database&lt;br /&gt;
    ;; ConnectionString = &amp;quot;Data Source=localhost;Database=opensim;User ID=opensim;Password=*****;Old Guids=true;&amp;quot;&lt;br /&gt;
    ;; Realm = UserProfiles&lt;br /&gt;
    UserAccountService = OpenSim.Services.UserAccountService.dll:UserAccountService&lt;br /&gt;
    AuthenticationServiceModule = &amp;quot;OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Enable connector ===&lt;br /&gt;
In the [ServiceList] section of Robust.ini or Robust.HG.ini, this requires the connector to be set up on a port that is available to the simulators (and only the simulators).  Usually, this would be the same private port on which other grid-only services are exposed.  For instance&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ServiceList]&lt;br /&gt;
UserProfilesServiceConnector = &amp;quot;8002/OpenSim.Server.Handlers.dll:UserProfilesConnector&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Publish Profile Server URI for HyperGrid ===&lt;br /&gt;
The [LoginService] section of the Robust.HG.ini file needs the connection details for the Profile Service so that foreign users will be able to view the profile of your users when they travel to other grids via HyperGrid. Set the value of SRV_ProfileServerURI to the URI your Profile Service is configured to use. See the following for example.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[LoginService]&lt;br /&gt;
SRV_ProfileServerURI = http://example.com:8002&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configure Standalone Service ==&lt;br /&gt;
Configuring the Standalone simulator to make the built-in Profile Service available is accomplished by editing the StandaloneCommon.ini file in the bin/config-include directory and the OpenSim.ini file in the bin directory.&lt;br /&gt;
&lt;br /&gt;
=== Enable service ===&lt;br /&gt;
Find the [UserProfileService] section in your StandaloneCommon.ini and make the necessary changes for your site&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[UserProfilesService]&lt;br /&gt;
    LocalServiceModule = &amp;quot;OpenSim.Services.UserProfilesService.dll:UserProfilesService&amp;quot;&lt;br /&gt;
    Enabled = true&lt;br /&gt;
&lt;br /&gt;
    ;; Configure this for separate databse&lt;br /&gt;
    ; ConnectionString = &amp;quot;Data Source=localhost;Database=opensim;User ID=opensim;Password=***;Old Guids=true;&amp;quot;&lt;br /&gt;
    ; Realm = UserProfiles&lt;br /&gt;
&lt;br /&gt;
    UserAccountService = OpenSim.Services.UserAccountService.dll:UserAccountService&lt;br /&gt;
    AuthenticationServiceModule = &amp;quot;OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The preceding example will enable the UserProfiles service using the main database for the profile tables. If a separate database is desired for the profiles data, remove the leading ';' from the ConnectionString and Realm entries. Provide the correct values to the ConnectionString for your profiles database.&lt;br /&gt;
&lt;br /&gt;
=== Publish Profile Server URI for HyperGrid ===&lt;br /&gt;
If the Standalone is configured for HyperGrid operation, then the profile service URL will need to be published to allow foreign users to view your user's profiles when they travel to other grids. This is accomplished by setting the value of the SRV_ProfileServerURI which is found under the [LoginService] section in the StandaloneCommon.ini. For example&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[LoginService]&lt;br /&gt;
SRV_ProfileServerURI = http://example.com:8002&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuration in OpenSim.ini==&lt;br /&gt;
Here, there needs to be a [UserProfiles] section with a ProfileServiceURL set that the simulator can reach (not the viewer).  For instance, if your ROBUST services and simulator are on the same LAN and your ROBUST services are running on a machine with IP address 192.168.1.3, then this setting would be&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[UserProfiles]&lt;br /&gt;
  ProfileServiceURL = http://192.168.1.3:8002&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See OpenSim.ini.example for more details.&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/UserProfiles</id>
		<title>UserProfiles</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/UserProfiles"/>
				<updated>2013-11-28T13:37:38Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: /* Configuration in Robust.ini or Robust.HG.ini */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
OpenSimulator 0.7.6 and onwards ship with built-in user profiles support.  This will support the dialog-based user profiles seen in Singularity and similar third-party viewers, but not the purely web-based profiles seen in other viewers&lt;br /&gt;
&lt;br /&gt;
At this time, there are issues with using this in a standalone system.&lt;br /&gt;
&lt;br /&gt;
Before OpenSimulator 0.7.6, user profiles was supported using an externally added module.  See [[Profile]] for more information.&lt;br /&gt;
&lt;br /&gt;
=Enabling=&lt;br /&gt;
Enabling the built-in user profiles support requires &lt;br /&gt;
&lt;br /&gt;
# Configuration in Robust.ini or Robust.HG.ini as appropriate.&lt;br /&gt;
# Configuration in OpenSim.ini&lt;br /&gt;
&lt;br /&gt;
==Configuration in Robust.ini or Robust.HG.ini==&lt;br /&gt;
The user profiles service needs to be enabled and the connector set up so that the appropriate JSON RPC methods are available to simulators.&lt;br /&gt;
&lt;br /&gt;
=== Enable service ===&lt;br /&gt;
This requires a UserProfilesService section.  You should be able to use the one from Robust.ini.example (or Robust.HG.ini.example) with Enabled = true.  For instance&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[UserProfilesService]&lt;br /&gt;
    LocalServiceModule = &amp;quot;OpenSim.Services.UserProfilesService.dll:UserProfilesService&amp;quot;&lt;br /&gt;
    Enabled = false&lt;br /&gt;
    ;; Configure this for separate profiles database&lt;br /&gt;
    ;; ConnectionString = &amp;quot;Data Source=localhost;Database=opensim;User ID=opensim;Password=*****;Old Guids=true;&amp;quot;&lt;br /&gt;
    ;; Realm = UserProfiles&lt;br /&gt;
    UserAccountService = OpenSim.Services.UserAccountService.dll:UserAccountService&lt;br /&gt;
    AuthenticationServiceModule = &amp;quot;OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Enable connector ===&lt;br /&gt;
In the [ServiceList] section of Robust.ini or Robust.HG.ini, this requires the connector to be set up on a port that is available to the simulators (and only the simulators).  Usually, this would be the same private port on which other grid-only services are exposed.  For instance&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[ServiceList]&lt;br /&gt;
UserProfilesServiceConnector = &amp;quot;8002/OpenSim.Server.Handlers.dll:UserProfilesConnector&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Publish Profile Server URI for HyperGrid ===&lt;br /&gt;
The [LoginService] section of the Robust.HG.ini file needs the connection details for the Profile Service so that foreign users will be able to view the profile of your users when they travel to other grids via HyperGrid. Set the value of SRV_ProfileServerURI to the URI your Profile Service is configured to use. See the following for example.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[LoginService]&lt;br /&gt;
SRV_ProfileServerURI = http://example.com:8002&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configure Standalone Service ==&lt;br /&gt;
Configuring the Standalone simulator to make the built-in Profile Service available is accomplished by editing the StandaloneCommon.ini file in the bin/config-include directory and the OpenSim.ini file in the bin directory.&lt;br /&gt;
&lt;br /&gt;
=== Enable service ===&lt;br /&gt;
Find the [UserProfileService] section in your StandaloneCommon.ini and make the necessary changes for your site&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[UserProfilesService]&lt;br /&gt;
    LocalServiceModule = &amp;quot;OpenSim.Services.UserProfilesService.dll:UserProfilesService&amp;quot;&lt;br /&gt;
    Enabled = true&lt;br /&gt;
&lt;br /&gt;
    ;; Configure this for separate databse&lt;br /&gt;
    ; ConnectionString = &amp;quot;Data Source=localhost;Database=opensim;User ID=opensim;Password=***;Old Guids=true;&amp;quot;&lt;br /&gt;
    ; Realm = UserProfiles&lt;br /&gt;
&lt;br /&gt;
    UserAccountService = OpenSim.Services.UserAccountService.dll:UserAccountService&lt;br /&gt;
    AuthenticationServiceModule = &amp;quot;OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The preceding example will enable the UserProfiles service using the main database for the profile tables. If a separate database is desired for the profiles data, remove the leading ';' from the ConnectionString and Realm entries. Provide the correct values to the ConnectionString for your profiles database.&lt;br /&gt;
&lt;br /&gt;
=== Publish Profile Server URI for HyperGrid ===&lt;br /&gt;
If the Standalone is configured for HyperGrid operation, then the profile service URL will need to be published to allow foreign users to view your user's profiles when they travel to other grids. This is accomplished by setting the value of the SRV_ProfileServerURI which is found under the [LoginService] section in the StandaloneCommon.ini. For example&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[LoginService]&lt;br /&gt;
SRV_ProfileServerURI = http://example.com:8002&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuration in OpenSim.ini==&lt;br /&gt;
Here, there needs to be a [UserProfiles] section with a ProfileServiceURL set that the simulator can reach (not the viewer).  For instance, if your ROBUST services and simulator are on the same LAN and your ROBUST services are running on a machine with IP address 192.168.1.3, then this setting would be&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[UserProfiles]&lt;br /&gt;
  ProfileServiceURL = http://192.168.1.3:8002&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See OpenSim.ini.example for more details.&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/File:AtlanticScaled.png</id>
		<title>File:AtlanticScaled.png</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/File:AtlanticScaled.png"/>
				<updated>2013-05-24T04:53:12Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: test&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;test&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/RestConsole</id>
		<title>RestConsole</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/RestConsole"/>
				<updated>2013-05-07T16:45:06Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks}}&lt;br /&gt;
== About ==&lt;br /&gt;
The REST console makes remote administration of the various OpenSimulator services possible.&lt;br /&gt;
&lt;br /&gt;
The interface allows sending commands to the server and retrieving command output. Sending and receiving data is done through RESTful HTTP calls.&lt;br /&gt;
&lt;br /&gt;
While sending is very straightforward, receiving is not. Receiving uses reverse HTTP, performing a long poll to a CAPS URI.&lt;br /&gt;
&lt;br /&gt;
In order to make the protocol more efficient, the help functionality has been pushed to the client side. Rather than sending each keystroke to the server, only validated command lines are sent. To make this possible, the server sends a burst-on-connect of data, which is the tree of allowed commands and their help information. This can be used by the client to create the &amp;quot;help&amp;quot; command output locally as well as provide command line help interactively.&lt;br /&gt;
&lt;br /&gt;
The sample console client, OpenSim.ConsoleClient.exe, shows how this is done.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
In order to use the remote console, start up OpenSimulator services with parameter &amp;lt;tt&amp;gt;-console rest&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Example for Robust server in grid mode:&lt;br /&gt;
 mono Robust.exe -console rest&lt;br /&gt;
&lt;br /&gt;
Example for simulators (both in grid and standalone mode):&lt;br /&gt;
 mono OpenSim.exe -console rest&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
We take the OpenSimulator services address &amp;lt;nowiki&amp;gt;http://foo.bar:8002&amp;lt;/nowiki&amp;gt; as example here.&lt;br /&gt;
&lt;br /&gt;
First start a new session by sending a HTTP POST request. User name and password should match the settings for &amp;lt;tt&amp;gt;ConsoleUser&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ConsolePass&amp;lt;/tt&amp;gt; in section &amp;lt;tt&amp;gt;[Network]&amp;lt;/tt&amp;gt; of OpenSim.ini.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameters: USER, PASS&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://foo.bar:8002/StartSession/&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Return: (XML) &amp;lt;ConsoleSession&amp;gt;&amp;lt;SessionID&amp;gt;&amp;lt;/SessionID&amp;gt;&amp;lt;Prompt&amp;gt;&amp;lt;/Prompt&amp;gt;&amp;lt;/ConsoleSession&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we got the SessionID, which can be used to send a command and to receive output. First, retrieve the console scrollback buffer.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameters: none&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://foo.bar:8002/ReadResponses/&amp;lt;SessionID&amp;gt;/&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Return: (XML) &amp;lt;ConsoleSession&amp;gt;&amp;lt;Line Number=x&amp;gt;&amp;lt;/Line&amp;gt;&amp;lt;/ConsoleSession&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The reply contains all lines currently in the buffer. Subsequent fetches will only retrieve new lines. The fetch will hold for up to 30 seconds if there is no data, then return an error. The client is expected to try again (polling).&lt;br /&gt;
&lt;br /&gt;
Use the SessionID as ID parameter, and send a POST request again.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameters: ID, COMMAND&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://foo.bar:8002/SessionCommand/&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Return: (XML) &amp;lt;ConsoleSession&amp;gt;&amp;lt;Result&amp;gt;&amp;lt;/Result&amp;gt;&amp;lt;/ConsoleSession&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
If everything went well, the command should have been executed. Try another command.&lt;br /&gt;
&lt;br /&gt;
When you want to close down the connection, send a POST request again.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameters: ID&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://foo.bar:8002/CloseSession/&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Return: (XML) &amp;lt;ConsoleSession&amp;gt;&amp;lt;Result&amp;gt;&amp;lt;/Result&amp;gt;&amp;lt;/ConsoleSession&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The session is closed, and you have to log in again, when you want to send a command again.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
=== Python ===&lt;br /&gt;
&lt;br /&gt;
 #!/usr/bin/python&lt;br /&gt;
 # This piece of code is published by thomax (txOh) (c) 2010 under the&lt;br /&gt;
 # Artistic License 1.0 (http://www.perlfoundation.org/artistic_license_1_0)&lt;br /&gt;
 &lt;br /&gt;
 import urllib, urllib2&lt;br /&gt;
 import xml.dom.minidom&lt;br /&gt;
 &lt;br /&gt;
 class UserConsoleClient():&lt;br /&gt;
 &lt;br /&gt;
    def __init__(self, addr):&lt;br /&gt;
        self.addr = addr&lt;br /&gt;
        url = self.addr + 'StartSession/'&lt;br /&gt;
 &lt;br /&gt;
        params = urllib.urlencode({&lt;br /&gt;
            'USER': 'Test',         # REST username&lt;br /&gt;
            'PASS': 'secret'        # REST password&lt;br /&gt;
        })&lt;br /&gt;
        data = urllib2.urlopen(url, params).read()&lt;br /&gt;
 &lt;br /&gt;
        dom = xml.dom.minidom.parseString(data)&lt;br /&gt;
        elem =  dom.getElementsByTagName('SessionID')&lt;br /&gt;
        self.sessionid = elem[0].childNodes[0].nodeValue&lt;br /&gt;
 &lt;br /&gt;
    def close(self):&lt;br /&gt;
        url = self.addr + 'CloseSession/'&lt;br /&gt;
        params = urllib.urlencode({&lt;br /&gt;
            'ID': self.sessionid&lt;br /&gt;
        })&lt;br /&gt;
        print urllib2.urlopen(url, params).read()&lt;br /&gt;
 &lt;br /&gt;
    def do_cmd(self, cmd):&lt;br /&gt;
        url = self.addr + '/SessionCommand/'&lt;br /&gt;
        params = urllib.urlencode({&lt;br /&gt;
            'ID': self.sessionid,&lt;br /&gt;
            'COMMAND': cmd&lt;br /&gt;
        })&lt;br /&gt;
        print urllib2.urlopen(url, params).read()&lt;br /&gt;
 &lt;br /&gt;
    def read_buffer(self):&lt;br /&gt;
        url = self.addr + 'ReadResponses/' + self.sessionid + '/'&lt;br /&gt;
        params = urllib.urlencode({&lt;br /&gt;
            'ID': self.sessionid&lt;br /&gt;
        })&lt;br /&gt;
 &lt;br /&gt;
        print urllib2.urlopen(url, params).read()&lt;br /&gt;
 &lt;br /&gt;
 # set the base url to the REST console (with port)&lt;br /&gt;
 console = UserConsoleClient('&amp;lt;nowiki&amp;gt;http://127.0.0.1:8300/&amp;lt;/nowiki&amp;gt;')&lt;br /&gt;
 console.read_buffer()&lt;br /&gt;
 print 'quit with a &amp;quot;.&amp;quot;'&lt;br /&gt;
 cmd = &amp;quot;&amp;quot;&lt;br /&gt;
 while cmd != &amp;quot;.&amp;quot;:&lt;br /&gt;
    if cmd != &amp;quot;&amp;quot;:&lt;br /&gt;
        console.do_cmd(cmd)&lt;br /&gt;
        console.read_buffer()&lt;br /&gt;
    cmd = raw_input(&amp;quot;&amp;gt; &amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 console.close()&lt;br /&gt;
&lt;br /&gt;
=== Python (Updated) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# This piece of code is published by thomax (txOh) (c) 2010 under the&lt;br /&gt;
# Artistic License 1.0 (http://www.perlfoundation.org/artistic_license_1_0)&lt;br /&gt;
# Modifications (c) 2013 BlueWall&lt;br /&gt;
&lt;br /&gt;
import urllib, urllib2&lt;br /&gt;
import xml.dom.minidom&lt;br /&gt;
&lt;br /&gt;
class UserConsoleClient():&lt;br /&gt;
&lt;br /&gt;
   def __init__(self, addr):&lt;br /&gt;
       self.addr = addr&lt;br /&gt;
       url = self.addr + 'StartSession/'&lt;br /&gt;
&lt;br /&gt;
       params = urllib.urlencode({&lt;br /&gt;
           'USER': 'username',       # REST username&lt;br /&gt;
           'PASS': 'userpass'        # REST password&lt;br /&gt;
       })&lt;br /&gt;
       data = urllib2.urlopen(url, params).read()&lt;br /&gt;
       print data&lt;br /&gt;
&lt;br /&gt;
       dom = xml.dom.minidom.parseString(data)&lt;br /&gt;
       elem =  dom.getElementsByTagName('SessionID')&lt;br /&gt;
       self.sessionid = elem[0].childNodes[0].nodeValue&lt;br /&gt;
       elem = dom.getElementsByTagName('Prompt')&lt;br /&gt;
       self.prompt = elem[0].childNodes[0].nodeValue + '# '&lt;br /&gt;
&lt;br /&gt;
   def close(self):&lt;br /&gt;
       url = self.addr + 'CloseSession/'&lt;br /&gt;
       params = urllib.urlencode({&lt;br /&gt;
           'ID': self.sessionid&lt;br /&gt;
       })&lt;br /&gt;
       print urllib2.urlopen(url, params).read()&lt;br /&gt;
&lt;br /&gt;
   def do_cmd(self, cmd):&lt;br /&gt;
       url = self.addr + 'SessionCommand/'&lt;br /&gt;
       params = urllib.urlencode({&lt;br /&gt;
           'ID': self.sessionid,&lt;br /&gt;
           'COMMAND': cmd&lt;br /&gt;
       })&lt;br /&gt;
       data = urllib2.urlopen(url, params).read()&lt;br /&gt;
       dom = xml.dom.minidom.parseString(data)&lt;br /&gt;
       elem =  dom.getElementsByTagName('Result')&lt;br /&gt;
       return elem[0].childNodes[0].nodeValue&lt;br /&gt;
&lt;br /&gt;
   def read_buffer(self):&lt;br /&gt;
       url = self.addr + 'ReadResponses/' + self.sessionid + '/'&lt;br /&gt;
       params = urllib.urlencode({&lt;br /&gt;
           'ID': self.sessionid&lt;br /&gt;
       })&lt;br /&gt;
&lt;br /&gt;
       # print urllib2.urlopen(url, params).read()&lt;br /&gt;
       &lt;br /&gt;
       result = urllib2.urlopen(url, params).read()&lt;br /&gt;
       dom = xml.dom.minidom.parseString(result)&lt;br /&gt;
&lt;br /&gt;
       elem =  dom.getElementsByTagName('Line')&lt;br /&gt;
       for line in elem:&lt;br /&gt;
         x0 = line.childNodes[0].nodeValue&lt;br /&gt;
         x1 = str.replace(str(x0),':','~',2)&lt;br /&gt;
         x2 = x1.split(&amp;quot;~&amp;quot;)&lt;br /&gt;
         for lv in x2[2:]:&lt;br /&gt;
           if not '+++' in lv:&lt;br /&gt;
             print lv&lt;br /&gt;
       &lt;br /&gt;
# set the base url to the REST console (with port)&lt;br /&gt;
console = UserConsoleClient('http://example.com:8003/')&lt;br /&gt;
console.read_buffer()&lt;br /&gt;
print 'quit with a &amp;quot;.&amp;quot;'&lt;br /&gt;
cmd = &amp;quot;&amp;quot;&lt;br /&gt;
while cmd != &amp;quot;.&amp;quot;:&lt;br /&gt;
   if cmd != &amp;quot;&amp;quot;:&lt;br /&gt;
     if 'OK' in console.do_cmd(cmd):&lt;br /&gt;
       console.read_buffer()&lt;br /&gt;
   cmd = raw_input(&amp;quot;%s &amp;quot; % console.prompt)&lt;br /&gt;
&lt;br /&gt;
console.close()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== JavaScript/HTML ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
  &amp;lt;head&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- This JavaScript code is published by Marck (c) 2010 under a --&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Creative Commons Attribution 3.0 Germany License            --&amp;gt;&lt;br /&gt;
    &amp;lt;!-- http://creativecommons.org/licenses/by/3.0/de/              --&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      var sessionId;&lt;br /&gt;
      var hostUrl;&lt;br /&gt;
&lt;br /&gt;
      function StartSession(url, user, password) {&lt;br /&gt;
        hostUrl = url;&lt;br /&gt;
        var response = SendRequest(&amp;quot;/StartSession/&amp;quot;, &amp;quot;USER=&amp;quot; + user + &amp;quot;&amp;amp;PASS=&amp;quot; + password);&lt;br /&gt;
        sessionId = response.getElementsByTagName(&amp;quot;SessionID&amp;quot;)[0].firstChild.nodeValue;&lt;br /&gt;
      };&lt;br /&gt;
&lt;br /&gt;
      function ReadResponses() {&lt;br /&gt;
        var response = this.SendRequest(&amp;quot;/ReadResponses/&amp;quot; + sessionId + &amp;quot;/&amp;quot;, '');&lt;br /&gt;
        var lines = response.getElementsByTagName(&amp;quot;Line&amp;quot;);&lt;br /&gt;
        for (var i = 0; i &amp;lt; lines.length; ++i) {&lt;br /&gt;
          var element = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
          element.appendChild(document.createTextNode(lines[i].firstChild.nodeValue));&lt;br /&gt;
          document.getElementById(&amp;quot;output&amp;quot;).appendChild(element);&lt;br /&gt;
        };&lt;br /&gt;
        document.getElementById(&amp;quot;output&amp;quot;).scrollTop = document.getElementById(&amp;quot;output&amp;quot;).scrollHeight;&lt;br /&gt;
      };&lt;br /&gt;
&lt;br /&gt;
      function Command(cmd) {&lt;br /&gt;
        void SendRequest(&amp;quot;/SessionCommand/&amp;quot;, &amp;quot;ID=&amp;quot; + sessionId + &amp;quot;&amp;amp;COMMAND=&amp;quot; + cmd);&lt;br /&gt;
      };&lt;br /&gt;
&lt;br /&gt;
      function CloseSession() {&lt;br /&gt;
        void SendRequest(&amp;quot;/CloseSession/&amp;quot;, &amp;quot;ID=&amp;quot; + sessionId);&lt;br /&gt;
      };&lt;br /&gt;
&lt;br /&gt;
      function SendRequest(path, data) {&lt;br /&gt;
        var request = new XMLHttpRequest();&lt;br /&gt;
        request.open(&amp;quot;POST&amp;quot;, hostUrl + path, false);&lt;br /&gt;
        request.send(data);&lt;br /&gt;
        return request.responseXML;&lt;br /&gt;
      };&lt;br /&gt;
&lt;br /&gt;
      window.onunload = CloseSession;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;/head&amp;gt;&lt;br /&gt;
  &amp;lt;body&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;form action=&amp;quot;#&amp;quot; onsubmit=&amp;quot;&lt;br /&gt;
        StartSession(this.address.value, this.user.value, this.password.value);&lt;br /&gt;
        ReadResponses();&lt;br /&gt;
        return false&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;input name=&amp;quot;address&amp;quot; type=&amp;quot;text&amp;quot; value=&amp;quot;http://localhost:9000&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;input name=&amp;quot;user&amp;quot; type=&amp;quot;text&amp;quot; value=&amp;quot;ConsoleUser&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;input name=&amp;quot;password&amp;quot; type=&amp;quot;text&amp;quot; value=&amp;quot;ConsolePass&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Login&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;div id=&amp;quot;output&amp;quot; style=&amp;quot;height:15em; border:thin solid; overflow:auto;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;form action=&amp;quot;#&amp;quot; onsubmit=&amp;quot;&lt;br /&gt;
        Command(this.command.value);&lt;br /&gt;
        ReadResponses();&lt;br /&gt;
        return false&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;command&amp;quot; value=&amp;quot;Enter command here&amp;quot; size=&amp;quot;40&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Send Command&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/form&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/0.7.5_Release</id>
		<title>0.7.5 Release</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/0.7.5_Release"/>
				<updated>2013-01-27T23:31:44Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: /* General Server */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Release Notes=&lt;br /&gt;
== General ==&lt;br /&gt;
'''These release notes are in development.  The current release candidate for 0.7.5 is RC2'''.&lt;br /&gt;
&lt;br /&gt;
Welcome to OpenSimulator 0.7.5, an open-source multi-user 3D virtual environment server platform. &lt;br /&gt;
&lt;br /&gt;
As ever, OpenSimulator is a highly complex piece of alpha software. It's very likely but not guaranteed to work and various usage scenarios (standalone, grid, hypergrid, etc.) in combination with different dependencies (e.g. different versions of mono on Linux/Mac) can produce unexpected or unstable behaviour. If it breaks you get to keep both pieces.&lt;br /&gt;
&lt;br /&gt;
If you are upgrading from a version prior to 0.7.x, make sure to read the [[0.7 Release]] notes. There have been extensive changes in OpenSimulator from 0.6.x to 0.7.&lt;br /&gt;
&lt;br /&gt;
When you are upgrading, we strongly recommend that you start off with the default configuration files and port over any changes you made to your older version of OpenSimulator.&lt;br /&gt;
&lt;br /&gt;
As this is a wiki page, please feel free to update it with more information about migration or other issues as and when these come to light.&lt;br /&gt;
&lt;br /&gt;
You can download this release of OpenSimulator from http://opensimulator.org/wiki/Download&lt;br /&gt;
&lt;br /&gt;
== Known issues ==&lt;br /&gt;
&lt;br /&gt;
* There is an occasional issue where other people will see you in the animation-less t-pose when you teleport between regions.  This is being handled via http://opensimulator.org/mantis/view.php?id=6483&lt;br /&gt;
* Arbitrary key:value storage for regions has not yet been implemented for SQLite or MSSQL.  This is necessary for temporary attachments settings to be persisted.  This will be addressed before final release.&lt;br /&gt;
* Regression in RLV functionality where objects given via the llGiveInventoryFolder() function with a folder name with the format #RLV/~gift are still placed in the #RLV folder but now with the name still as &amp;quot;#RLV/~gift&amp;quot; rather than just &amp;quot;~gift&amp;quot;.  This is being addressed in http://opensimulator.org/mantis/view.php?id=6311.  Any help from viewer developers on this would be much appreciated, otherwise this regression may remain in the final 0.7.5 release.&lt;br /&gt;
* In a stock Linden Lab viewer 2/3, various tabs and buttons will point back to the Linden Lab website. In particular, the profile data will try to fetch from the Linden Lab website. It's not known currently how/whether this can be changed in the stock viewer.&lt;br /&gt;
* No form of prim equivalence is implemented for meshes.&lt;br /&gt;
* Loading scripts from the simulator library does not work properly.&lt;br /&gt;
* Multiple attachments on a single attachment point not supported.&lt;br /&gt;
* Bulletsim physics engine support is in an intermediate state in this release and may not work at all under Linux.  This will not affect users since the Open Dynamics Engine (ODE) remains the default physics engine in-use on OpenSimulator.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
OpenSimulator requires:&lt;br /&gt;
&lt;br /&gt;
* .NET Framework 3.5 when running under Windows.&lt;br /&gt;
* At least Mono 2.4.3 when running under Mono (Linux or Mac). Mono 2.6.x and Mono 2.10.x onwards work well. Mono 2.8.x versions are reported as less stable in some situations.  OpenSimulator will run under Mono 3.0.2 but physics instability has been reported (at least with the ODE plugin).&lt;br /&gt;
&lt;br /&gt;
== Backwards Compatibility Notices ==&lt;br /&gt;
&lt;br /&gt;
* This release includes database migrations but these should be backward compatible with OpenSimulator 0.7.3.1 (i.e. one could rollback to 0.7.3.1 if necessary without also rolling back the database).  However, this is not a guarantee - please always backup your data before migrating from earlier OpenSimulator versions.&lt;br /&gt;
* Due to a libomv bug fix, teleports in this release are incompatible with OpenSimulator 0.7.0.2 and earlier. This affects primarily Hypergrid teleports, since simulators within the same grid tend to be all in the same version. Teleports to OpenSimulator 0.7.1 and later should work.&lt;br /&gt;
&lt;br /&gt;
== Changes ==&lt;br /&gt;
&lt;br /&gt;
=== General Server ===&lt;br /&gt;
* Default endpoint connection limit increased from 2 to 12, which will allow 12 simultaneous connections to an IP:Port combination rather than just 2.  Experience suggests this will improve data fetching from ROBUST services.  However, this change may not affect Mono installations [https://github.com/mono/mono/pull/472 due to a bug which may still be present in recent Mono releases].  Separately, the number of simultaneous allowed asset requests to a connection was raised to 30.  This will affect both Mono and Windows.&lt;br /&gt;
* Added facility to log outgoing http data via the &amp;quot;debug http&amp;quot; console command.&lt;br /&gt;
* More levels added to the &amp;quot;debug http&amp;quot; command to allow logging of incoming POST data.  This command can be useful to debug configuration problems.&lt;br /&gt;
* The &amp;quot;show http-handlers&amp;quot; command now shows HTTP handlers listening on every port of that server - not just the 'main' port.&lt;br /&gt;
* &amp;quot;help all&amp;quot; console command will now show all commands in the old big list style rather than initially in categories.&lt;br /&gt;
* Dynamic plugins (Robust). Subscribe to remote repositories and install plugins from them. Enable and disable the plugins on the fly. See: http://opensimulator.org/wiki/Feature_Proposals/PluginManager for further information.&lt;br /&gt;
&lt;br /&gt;
=== General Simulator ===&lt;br /&gt;
* The long (+4 years) deprecated IRegionModule interfaces for region modules have now been entirely removed.  You may need to convert to the newer INonSharedRegionModule/ISharedRegionModule interfaces but this is not too difficult.&lt;br /&gt;
* Region debug console implemented, as accessed via the ctrl + shift + ` (backtick) keyboard shortcut in recent viewers.  Only estate owners and managers can access this.  Typing help at the prompt will show currently available commands (currently only auto_grant_attach_perms for temporary attachments).&lt;br /&gt;
* UDP related memory use by client connections improved.  This should reduce the amount of memory used by each client connection as so reduce rubberbanding under Mono on busy simulators as memory is garbage collected.  However, the affect may be swamped if there are many active scripts.  There is further scope for improvement in this area.&lt;br /&gt;
* HTTPGetTexture capability now properly handles a request with no second value in the range header (e.g. 5333- to fetch all bytes from 5333), rather than just complaining on the console.  This operation is being done by the latest LL viewer code (3.4.4).&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
* Nonphysical* Regions.ini configuration names for controlling prim dimensions have been renamed to more consistent NonPhysical* names (e.g. NonphysicalPrimMin -&amp;gt; NonPhysicalPrimMin).&lt;br /&gt;
&lt;br /&gt;
=== Services ===&lt;br /&gt;
* The &amp;quot;show http-handlers&amp;quot; console command is now available for ROBUST as well as the simulator.&lt;br /&gt;
* Inbound HTTP connectors can now be specified one per line in the [Startup] section of Robust.ini rather than in one large block.&lt;br /&gt;
* The ROBUST asset service now returns a 400 (bad request) HTTP status if appropriate rather than simply dropping the request.&lt;br /&gt;
* &amp;quot;show uptime&amp;quot;, &amp;quot;show info&amp;quot;, &amp;quot;set log level&amp;quot;, &amp;quot;show version&amp;quot;, &amp;quot;config show/get/set/save&amp;quot;, &amp;quot;show threads&amp;quot;, &amp;quot;thread abort&amp;quot; and &amp;quot;force gc&amp;quot; commands now available on the ROBUST console as well as the simulator console.&lt;br /&gt;
&lt;br /&gt;
=== Hypergrid ===&lt;br /&gt;
* For the items below, please see Diva Canto's [http://metaverseink.com/blog/?p=459 HG 2.0 blog post] for more details.&lt;br /&gt;
* Avatar appearance issues when using hypergrid 'suitcase' folder fixed.&lt;br /&gt;
* Attachment issues when visiting other grids via the Hypergrid fixed.&lt;br /&gt;
* Issue fixed where assets accessed from foreign sims did not tranport the full chain of assets necessary for rezzing (e.g. the textures referenced by an object inside the rezzed object).&lt;br /&gt;
* Visitor access control to regions improved.&lt;br /&gt;
* Hypergrid Instant Mesasge now accounts for an offline IM storage service if present.&lt;br /&gt;
* Default Hypergrid config now changed to 2.0 from 1.5.  On upgrading you will need to checking your existing Hypergrid configuration against the updates in Robust.HG.ini.example or config-include/StandloneCommon.ini.example as appropriate.&lt;br /&gt;
&lt;br /&gt;
=== Objects ===&lt;br /&gt;
* Undo steps for object changes are no longer stored without limit.  This meant that over time, a simulator with changing objects would use more and more memory that would not be released.  The MaxPrimsUndo limit in the [Startup] section of OpenSim.ini is now enforced.  The default is 20 steps.&lt;br /&gt;
* Minimum allowed sizes for physical and non-physical prims can now be configured.  See the [Startup] section of OpenSim.ini.example for more details.&lt;br /&gt;
* Corrupted child prim permissions can no longer make objects change permissions after they have been rezzed.&lt;br /&gt;
* ReuseDynamicTextures option improved to work around a bug where an attempt to reuse a very small dynamic texture would cause the viewer not to properly redisplay it when it was pulled from its cache.&lt;br /&gt;
* Further crash bugs with very heavy use of dynamic textures by scripts fixed.&lt;br /&gt;
* Linkset sizes can now be restirected via the LinksetPrims value in the [Startup] section of OpenSim.ini.&lt;br /&gt;
* Setting llVolumeDetect(FALSE) on an object where volume detect has been previous set will now correctly clear the phantom flag.&lt;br /&gt;
* &amp;quot;show object pos&amp;quot; console commands added.  These show object information by position on the console and are meant for debugging.&lt;br /&gt;
* More information added to various &amp;quot;show object&amp;quot; console commands for diagnostic purposes.&lt;br /&gt;
* &amp;quot;delete object pos &amp;lt;start-coord&amp;gt; to &amp;lt;end-coord&amp;gt;&amp;quot; console command added.  This can be useful to delete all objects in a given volume of space.&lt;br /&gt;
* &amp;quot;dump object id&amp;quot; console command added to dump object serialization for any region object by its local or UUID.  For diagnostics.&lt;br /&gt;
&lt;br /&gt;
=== Mesh/Sculpt ===&lt;br /&gt;
* Mesh/Sculpt loading reliability improved.&lt;br /&gt;
&lt;br /&gt;
=== Avatars ===&lt;br /&gt;
* OpenSimulator 0.7.4 regression fixed where a logged out avatar could still sometimes be present in the connections list which would stop relog or visit of the scene until the simulator was restarted.&lt;br /&gt;
* Fixed OpenSimulator 0.7.4 and even earlier regression where objects attached directly from the region would often not show up as attached.&lt;br /&gt;
* [http://community.secondlife.com/t5/Featured-News/Advanced-Experience-Tools-Preview/ba-p/1420633 Temporary attachments] implemented.  This is currently not well documented in OpenSimulator.&lt;br /&gt;
* Facility to periodically resend appearance UUIDs (ResendAppearanceUpdates setting in the [Appearance] section of OpenSimDefaults.ini) now set to true by default.  This has been shown to help with grey avatar issues.&lt;br /&gt;
* Current animation is now retained by an avatar as it moves between regions, as long as both source and destination region are running this version of OpenSimulator or later.&lt;br /&gt;
&lt;br /&gt;
=== Physics ===&lt;br /&gt;
* Many updates to bulletsim in the areas of collisions, fps calculation, floating, friction, linksets, materials, megaregions, mesh, pushing, region crossings, shapes, terrain, vehicles.  However, this should still be considered experimental in this release.&lt;br /&gt;
* Movement of physical prims in ODE plugin improved.&lt;br /&gt;
* Teravus added an experimental plugin for the C# XNA port of the bullet physics engine.  This is likely to be slower than the C++ version but may give better debugging information where necessary.&lt;br /&gt;
&lt;br /&gt;
=== Sound ===&lt;br /&gt;
&lt;br /&gt;
=== Parcels/Region/Estates ===&lt;br /&gt;
* Bug fixed where having more than 63 users in an estate's banlist would cause the viewer to crash when the estate dialog was opened.&lt;br /&gt;
* Bug fixed with SQLite plugin where some parcel settings (such as media settings) were not persisted.&lt;br /&gt;
* AllowRegionRestartFromClient [EstateManagement] config option added by which estate managers can be prevented from restarting regions (since this may still be unstable on current OpenSimulator, though fixes in this area have been implented0&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Map ===&lt;br /&gt;
* Map information lookups from viewers can no longer appear to freeze the scene if the map service is not responding quickly.&lt;br /&gt;
&lt;br /&gt;
=== Instant Messaging ===&lt;br /&gt;
&lt;br /&gt;
=== Friends ===&lt;br /&gt;
&lt;br /&gt;
=== Archiving ===&lt;br /&gt;
* Group ownership now properly changed to none when objects are loaded from an OAR where the group UUID is not present on that simulator.&lt;br /&gt;
* Parcel access lists now properly reconstructed on OAR load.&lt;br /&gt;
* Loading OARs containing deeded land parcels will now properly preserve the group as the owner if the group UUID is accessible by that simulator.&lt;br /&gt;
* &amp;quot;save iar&amp;quot; console command no longer hangs the console permanently if an asset save times out.&lt;br /&gt;
* Experimental support for [[OAR Format 1.0|multi-region OAR files]] added.  As the name suggests, these are OAR files that store more than one region in an OAR.  This is controlled using the --all switch on the &amp;quot;save oar&amp;quot; console command - currently the default is still to save single regions.  This should be considered experimental.&lt;br /&gt;
&lt;br /&gt;
=== NPC ===&lt;br /&gt;
* Fixed some script crashing race conditions if one script removed an NPC whilst another was fetching its details.&lt;br /&gt;
* NPCs can now move within the entire area of a megaregion rather than being stuck in the 'root' 256x256m area.&lt;br /&gt;
* llRequestPermissions() calls now always succeed for unowned NPCs, where they only worked for appropriately owned NPCs before.&lt;br /&gt;
&lt;br /&gt;
=== Inventory ===&lt;br /&gt;
* Fixed issue where newly created body parts and clothing sometimes did not appear in the user's inventory.&lt;br /&gt;
* Inventory folder versioning now much better implemented.  This may cut down on excess requests by the viewer for inventory information as these were triggered by a mismatch between it's expected folder version numbers and those persisted by OpenSimulator.  This may help with issues seen on OpenSimulator 0.7.4 where many requests for people with large inventories would lead to other region issues (see http://opensimulator.org/mantis/view.php?id=6412).&lt;br /&gt;
* Item properties that should never change (e.g. creator and owner) can no longer be updated.  This should prevent and help identify bugs in this area as change attempts are logged.  See http://opensimulator.org/mantis/view.php?id=6359 for more details.&lt;br /&gt;
&lt;br /&gt;
=== Groups ===&lt;br /&gt;
* Group information requests can no longer hold up the main incoming packet processing loop, which could lead to apparently frozen regions if the groups service was slow to respond.&lt;br /&gt;
&lt;br /&gt;
=== Monitoring ===&lt;br /&gt;
* OpenSimulator 0.7.4 regression fixed where viewer stats sent by viewers were no longer being recorded in the LocalUserStatistics.db if this faiclity was enabled.&lt;br /&gt;
&lt;br /&gt;
=== Test ===&lt;br /&gt;
* pCampbot fixed to work under Windows.&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
* Script runtime error messages now displayed by version 3 and related third party viewers.&lt;br /&gt;
* Static methods from region modules can now be registered for calling by scripts using the modInvoke facility.&lt;br /&gt;
* WaitForEventCompletionOnScriptStop option added to the [XEngine] configuration section of OpenSim.ini.  This is to provide a way to examine an issue where thread aborts of scripts still executing events (e.g. when an object is derezzed) can sometimes cause Mono 2.6 amd 2.10 to crash badly, with symptoms such as 100% cpu use and threads waiting for locks which no other thread holds.  Default for wait period is 1 second but this can be increased.  Tradeoff is that 'rogue' scripts will take longer to stop.  May be increased in the future, though the ultimate solution will have to completely avoid thread aborts.&lt;br /&gt;
* llResetOtherScript() now waits for the WaitForEventCompletionOnScriptStop timeout before forcibly aborting another script if it is still running an event.  This is an effort to avoid the mono crash issues outlined above when this function is heavily used.&lt;br /&gt;
* llGetLinkKey() fixed to always return the avatar that last sat on an object if given the the last link number.&lt;br /&gt;
* llGetLinkName() fixed to always return the avatar name that last sat on an object if given the last link number.&lt;br /&gt;
* llRequestPermissions() now automatically gets granted appropriate permissions from avatars that are sat on an object other than the very first avatar to sit on that object.&lt;br /&gt;
* The attached event now correctly fires when an object is attached directly from the region.&lt;br /&gt;
* The money event now goes to the clicked prim rather than always the root prim of a linkset.&lt;br /&gt;
* llSetLinkCamera() implemented.&lt;br /&gt;
* Behaviour of llList2*() functions made to better match LL when converting input values.&lt;br /&gt;
* ATTACH_*_PEC constants added&lt;br /&gt;
* PRIM_LINK_TARGET implemented on llGetPrimitiveParams() and similar functions.&lt;br /&gt;
* PRIM_SLICE implemented for llSetPrimitiveParams() and similar functions.&lt;br /&gt;
* llPlaySound() fixed to play sounds from the prim the script is in rather than the root prim.&lt;br /&gt;
* llLoopSound() now continues playing in a child prim when a sound is played in the root prim.&lt;br /&gt;
* llPlaySound() now consistently stopped by llStopSound().&lt;br /&gt;
* llDialog() fixed so that a script can hear responses no matter where a user has moved to within the region, rather than only when they are within shout range.&lt;br /&gt;
* llListStatistics() no longer ignores the last element in some operations.&lt;br /&gt;
* llParticleSystem() default PSYS_SRC_BURST_PART_COUNT now properly 1 rather than 0.&lt;br /&gt;
* OpenSimulator 0.7.4 regression nfixed where the DATA_SIM_POS option on llRequestSimulatorData() would not return information on regions that were in the same simulator.&lt;br /&gt;
* Issue fixed with llListFindList() would not return a match if a script constant was used int he source list.&lt;br /&gt;
* llGetLinkName() fixed for LINK_THIS constant.&lt;br /&gt;
* CLICK_ACTION_ZOOM constant added.&lt;br /&gt;
* osGetHealth() added to return health information on an avatar where this is enabled.&lt;br /&gt;
* osSetContentType() added which allows setting of an arbitrary return type for an URL set up by llRequestUrl().&lt;br /&gt;
* osGetNumberOfAttachments() added to return the number of attachments given a list of attachment points.&lt;br /&gt;
* osMessageAttachments() added to allow a script to send a link message to an avatar's attachments.&lt;br /&gt;
* osDropAttachmentAt(), osForceDropAttachment() and osForceDropAttachmentAt() OSSL functions added.&lt;br /&gt;
* osListenRegex() function added which acts like llListen() but allows filtering by regular expression on name or message content of listen reports.&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
&lt;br /&gt;
Many, many thanks to all the developers, testers and community members who contributed to this release. Your hard work makes this all possible :)&lt;br /&gt;
&lt;br /&gt;
[[Category:Release Notes]]&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/MediaWiki:Sidebar</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/MediaWiki:Sidebar"/>
				<updated>2012-11-17T02:16:38Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* General&lt;br /&gt;
** mainpage|mainpage&lt;br /&gt;
** News|News&lt;br /&gt;
** http://overte.org|Foundation&lt;br /&gt;
* For Administrators&lt;br /&gt;
** Download|Download&lt;br /&gt;
** Dependencies|Running&lt;br /&gt;
** Configuration|Configuration&lt;br /&gt;
** Build Instructions|Building&lt;br /&gt;
** FAQ|FAQ&lt;br /&gt;
** Related Software|Related Software&lt;br /&gt;
** Support|Support&lt;br /&gt;
** http://opensimulator.org/mantis|Report a Bug&lt;br /&gt;
* For Grid Users&lt;br /&gt;
** Connecting|Connecting&lt;br /&gt;
** Grid List|Grid List&lt;br /&gt;
** Screenshots|Screenshots&lt;br /&gt;
* For Creators&lt;br /&gt;
** Artist Home|Content Creation&lt;br /&gt;
** Scripting Documentation|Scripting&lt;br /&gt;
* For Developers&lt;br /&gt;
** Development|Dev Home&lt;br /&gt;
** Development Team|Dev Team&lt;br /&gt;
** Testing|Testing&lt;br /&gt;
** Contributions Policy|Contributions Policy&lt;br /&gt;
** http://opensimulator.org/mantis|Bug Tracking&lt;br /&gt;
* Related Links&lt;br /&gt;
** Related Software|Related Software&lt;br /&gt;
** http://planet.opensim.us|Planet OpenSim&lt;br /&gt;
** http://www.ohloh.net/projects/4753?p=OpenSim|Ohloh Stats&lt;br /&gt;
** http://osgrid.org/index.php?&amp;amp;page=smodul&amp;amp;id=10&amp;amp;btn=10|OSGrid User Forums&lt;br /&gt;
* About This Wiki&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/OsSetProjectionParams</id>
		<title>OsSetProjectionParams</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/OsSetProjectionParams"/>
				<updated>2012-10-25T19:20:14Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{osslfunc&lt;br /&gt;
|threat_level=High&lt;br /&gt;
|function_syntax=void osSetProjectionParams(integer projection, key texture, float fov, float focus, float amb)&amp;lt;br /&amp;gt;&lt;br /&gt;
void osSetProjectionParams(key prim, integer projection, key texture, float fov, float focus, float amb)&lt;br /&gt;
|ossl_example=This example will control the projection map in the host prim and another prim identified by it's uuid&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lsl&amp;quot;&amp;gt;&lt;br /&gt;
integer pstate = FALSE;&lt;br /&gt;
&lt;br /&gt;
// These variables correspond to the settings found in the&lt;br /&gt;
// &amp;quot;Features&amp;quot; tab of the build editor&lt;br /&gt;
float FOV = 1.5; // Values 0.00 - 3.00&lt;br /&gt;
float Focus = 15.0; // Values -20.00 - 20.00&lt;br /&gt;
float Ambiance = 0.4; // Values 0.00 - 1.00&lt;br /&gt;
key Texture = &amp;quot;b4c6b075-4940-4270-bb10-d293fd6f8091&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// UUID of other prim that we want to control&lt;br /&gt;
key Remote = &amp;quot;9772974a-a0f6-43ec-b1a2-da558b0b0d59&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llSay(0, &amp;quot;Script running&amp;quot;);&lt;br /&gt;
        llSetText((string)llGetKey(),&amp;lt;0.3,0.5,0.75&amp;gt;,1.0);&lt;br /&gt;
        llSetPrimitiveParams([]);&lt;br /&gt;
        &lt;br /&gt;
        // Light must be enabled in &amp;quot;Features&amp;quot;&lt;br /&gt;
        &lt;br /&gt;
        // This one controls this prim...&lt;br /&gt;
        osSetProjectionParams(pstate, Texture, FOV, Focus, Ambiance);&lt;br /&gt;
        // This one controls the remote prim...&lt;br /&gt;
        osSetProjectionParams(Remote, pstate, Texture, FOV, Focus, Ambiance);&lt;br /&gt;
        &lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    touch_start(integer _det) &lt;br /&gt;
    {&lt;br /&gt;
        &lt;br /&gt;
        if (pstate == TRUE) &lt;br /&gt;
        {&lt;br /&gt;
            pstate = FALSE;&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
            pstate = TRUE;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        // Control this prim...&lt;br /&gt;
        osSetProjectionParams(pstate, Texture, FOV, Focus, Ambiance);&lt;br /&gt;
        // Control the remote prim...&lt;br /&gt;
        osSetProjectionParams(Remote, pstate, Texture, FOV, Focus, Ambiance);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
|description=2 Variations possible.&lt;br /&gt;
*bool = TRUE / FALSE.&lt;br /&gt;
*double = float.&lt;br /&gt;
|&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/IntegrationService</id>
		<title>IntegrationService</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/IntegrationService"/>
				<updated>2012-07-23T18:38:52Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{proposal}}&lt;br /&gt;
&lt;br /&gt;
{{ambox|type=notice|text=''' : Re-factoring in-Progress. See: http://opensimulator.org/wiki/Feature_Proposals/PluginManager'''}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= IntegrationService =&lt;br /&gt;
&lt;br /&gt;
== Basic Info ==&lt;br /&gt;
&lt;br /&gt;
* '''Summary''': Integration Service is a Robust facility to provide management for running dynamic plugins used for extending connections into the grid from external applications. &lt;br /&gt;
* '''Developer Sponsor(s)''': BlueWall Information Technologies, LLC  (BlueWall) jamesh@bluewallgroup.com / IRC - &amp;quot;BlueWall&amp;quot; on #opensim-dev, #opensim&lt;br /&gt;
* '''Start Date''': March 31, 2012&lt;br /&gt;
* '''Branches Targeted''': OpenSim master/development (after evaluation)&lt;br /&gt;
* '''Commercial''': Not specifically, but of general interest to adopters to help them integrate their external projects with OpenSimulator&lt;br /&gt;
* '''Code Repository''': OpenSimulator main repository in the &amp;quot;integration&amp;quot; branch  and https://github.com/BlueWall/opensim/tree/integration&lt;br /&gt;
&lt;br /&gt;
== High-Level Design ==&lt;br /&gt;
&lt;br /&gt;
=== Idea ===&lt;br /&gt;
&lt;br /&gt;
Integration Service for Robust is a facility to manage dynamic plugins, allowing external applications to be integrated with the OpenSimulator grid. The service helps the application developer provide clean APIs for their OpenSimulator integration projects by supplying a convenient framework to manage plugins that reside outside of OpenSimulator core. Their applications may be easily distributed across other sites without the need to interface directly to the underlying database structure. The developer has access to the OpenSimulator framework, including database migrations, easing maintenance tasks for users and administrators of their applications. This framework also opens the possibility for “crowd sourcing” standard APIs and libraries for applications such as web integration for popular CMS like Drupal, Joomla and Django and building API libraries for popular programming languages. These would offer a level of abstraction from the OpenSimulator core project to help minimize conflicts with external projects when core changes are needed. With the user-base migrating to V3 based viewers, which require lots of web applications which are tightly integrated into the grid, this type of service is desired to help stabilize APIs and insulate them from core development as much as posible.&lt;br /&gt;
The Integration Service provides the management facility and some utility services for the external plugins. Several console commands allow management of external repositories and manipulation of plugins. A detailed user-side view for getting started may be seen at: http://bluewallvirtual.com/integration_use . This details the configuration settings in the Robust.ini for the service and gives some instructions for connecting to the example repository.&lt;br /&gt;
At the moment, there is an implementation of the landtool.php using this, and an example for development. Some other basic plugins are in the development stages and will be released as they are completed.&lt;br /&gt;
&lt;br /&gt;
=== Criteria ===&lt;br /&gt;
&lt;br /&gt;
* '''Scope''': This is already fairly complete and working. It will be good to get more eyes on it and work out details for security and provide hooks for things like Oauth for allowing applications to integrate with external sites to provide rich user experiences with the V3 based viewers. Additional testing and work is required to make the system more reliable at detecting and suggesting upgrades and requirements between versions.&lt;br /&gt;
&lt;br /&gt;
* '''Software Requirements''': Mono Addins was upgraded to the current version, and and Oauth library was added, however it is not presently being used and is included for future applications.&lt;br /&gt;
&lt;br /&gt;
* '''Impact''': This work requires no additional modifications to other modules&lt;br /&gt;
* '''Blockers''': None known&lt;br /&gt;
&lt;br /&gt;
=== Implementation Overview ===&lt;br /&gt;
&lt;br /&gt;
Integration Service implementation follows standard Robust module design and provides the main code in `OpenSim/Services/Integration` and additional code for external web management applications in `OpenSim/Server/Handlers/Integration`. The services are implemented externally, preferably in the `./addon-modules` area provided for third party development, and are available (in binary form) from repositories  subscribed to by the user. A plugin repository for testing is setup at http://bluewallvirtual.com/plugins  (please see: http://bluewallvirtual.com/node/46 for instructions and an overview of user interaction in the console) . An entry in the Robust.ini allows setting Integration Service to run in development mode, to allow local loading and debugging of plugins under development. Normally this is switched to “false” to have Integration Service manage the plugins via registries.&lt;br /&gt;
The plugin carries information to direct Integration Service to find initial configuration information that is used in conjunction with the existing Robust configuration. The configuration uses one ini per-plugin and are placed in the location specified in the Robust.ini by the user. Plugins can also cary information for users to aquire additional information and components such as web applications or libraries for use with the plugin.&lt;br /&gt;
For an overview of plugin development, see the Example at https://github.com/BlueWall/IntegrationExample and also IIntegrationPlugin . Be sure to set DevelopmentMode=true in your Robust.ini to load the plugins in a manner that allows them to be run in your debugger. This needs to be set to false when not developing.&lt;br /&gt;
&lt;br /&gt;
=== User Experience ===&lt;br /&gt;
&lt;br /&gt;
Users will use the Robust command line to add repositories and then select plugins from those. The plugins can be enabled, disabled, un-installed from the Robust command line. Information built into the plugin about support sites, etc. can be seen in the command line as well.&lt;br /&gt;
&lt;br /&gt;
A good overview of operation is at http://bluewallvirtual.com/node/46&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Low-Level Design ==&lt;br /&gt;
&lt;br /&gt;
Plugins adhere to an interface that imposes methods to handle startup and unloading. Included in these are methods to provide data needed to set the initial configuration and find the configuration file needed at runtime.&lt;br /&gt;
&lt;br /&gt;
The plugins are managed by the mono-addins framework to allow registration of repositories, listing and selection of available plugins and plugin loading at runtime.&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Feature_Proposals/PluginManager</id>
		<title>Feature Proposals/PluginManager</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Feature_Proposals/PluginManager"/>
				<updated>2012-07-23T18:17:16Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{proposal}}&lt;br /&gt;
This is the next evolution of http://opensimulator.org/wiki/IntegrationService&lt;br /&gt;
&lt;br /&gt;
We are working to make the plugin management in integral part of the system that will allow us to maintain comparability with the structure have and still be able to use dynamic interaction with the modules.&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/IntegrationService</id>
		<title>IntegrationService</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/IntegrationService"/>
				<updated>2012-07-23T18:15:07Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{proposal}}&lt;br /&gt;
&lt;br /&gt;
{{ information }}: In-Progress. See: http://opensimulator.org/wiki/Feature_Proposals/PluginManager &lt;br /&gt;
&lt;br /&gt;
= IntegrationService =&lt;br /&gt;
&lt;br /&gt;
== Basic Info ==&lt;br /&gt;
&lt;br /&gt;
* '''Summary''': Integration Service is a Robust facility to provide management for running dynamic plugins used for extending connections into the grid from external applications. &lt;br /&gt;
* '''Developer Sponsor(s)''': BlueWall Information Technologies, LLC  (BlueWall) jamesh@bluewallgroup.com / IRC - &amp;quot;BlueWall&amp;quot; on #opensim-dev, #opensim&lt;br /&gt;
* '''Start Date''': March 31, 2012&lt;br /&gt;
* '''Branches Targeted''': OpenSim master/development (after evaluation)&lt;br /&gt;
* '''Commercial''': Not specifically, but of general interest to adopters to help them integrate their external projects with OpenSimulator&lt;br /&gt;
* '''Code Repository''': OpenSimulator main repository in the &amp;quot;integration&amp;quot; branch  and https://github.com/BlueWall/opensim/tree/integration&lt;br /&gt;
&lt;br /&gt;
== High-Level Design ==&lt;br /&gt;
&lt;br /&gt;
=== Idea ===&lt;br /&gt;
&lt;br /&gt;
Integration Service for Robust is a facility to manage dynamic plugins, allowing external applications to be integrated with the OpenSimulator grid. The service helps the application developer provide clean APIs for their OpenSimulator integration projects by supplying a convenient framework to manage plugins that reside outside of OpenSimulator core. Their applications may be easily distributed across other sites without the need to interface directly to the underlying database structure. The developer has access to the OpenSimulator framework, including database migrations, easing maintenance tasks for users and administrators of their applications. This framework also opens the possibility for “crowd sourcing” standard APIs and libraries for applications such as web integration for popular CMS like Drupal, Joomla and Django and building API libraries for popular programming languages. These would offer a level of abstraction from the OpenSimulator core project to help minimize conflicts with external projects when core changes are needed. With the user-base migrating to V3 based viewers, which require lots of web applications which are tightly integrated into the grid, this type of service is desired to help stabilize APIs and insulate them from core development as much as posible.&lt;br /&gt;
The Integration Service provides the management facility and some utility services for the external plugins. Several console commands allow management of external repositories and manipulation of plugins. A detailed user-side view for getting started may be seen at: http://bluewallvirtual.com/integration_use . This details the configuration settings in the Robust.ini for the service and gives some instructions for connecting to the example repository.&lt;br /&gt;
At the moment, there is an implementation of the landtool.php using this, and an example for development. Some other basic plugins are in the development stages and will be released as they are completed.&lt;br /&gt;
&lt;br /&gt;
=== Criteria ===&lt;br /&gt;
&lt;br /&gt;
* '''Scope''': This is already fairly complete and working. It will be good to get more eyes on it and work out details for security and provide hooks for things like Oauth for allowing applications to integrate with external sites to provide rich user experiences with the V3 based viewers. Additional testing and work is required to make the system more reliable at detecting and suggesting upgrades and requirements between versions.&lt;br /&gt;
&lt;br /&gt;
* '''Software Requirements''': Mono Addins was upgraded to the current version, and and Oauth library was added, however it is not presently being used and is included for future applications.&lt;br /&gt;
&lt;br /&gt;
* '''Impact''': This work requires no additional modifications to other modules&lt;br /&gt;
* '''Blockers''': None known&lt;br /&gt;
&lt;br /&gt;
=== Implementation Overview ===&lt;br /&gt;
&lt;br /&gt;
Integration Service implementation follows standard Robust module design and provides the main code in `OpenSim/Services/Integration` and additional code for external web management applications in `OpenSim/Server/Handlers/Integration`. The services are implemented externally, preferably in the `./addon-modules` area provided for third party development, and are available (in binary form) from repositories  subscribed to by the user. A plugin repository for testing is setup at http://bluewallvirtual.com/plugins  (please see: http://bluewallvirtual.com/node/46 for instructions and an overview of user interaction in the console) . An entry in the Robust.ini allows setting Integration Service to run in development mode, to allow local loading and debugging of plugins under development. Normally this is switched to “false” to have Integration Service manage the plugins via registries.&lt;br /&gt;
The plugin carries information to direct Integration Service to find initial configuration information that is used in conjunction with the existing Robust configuration. The configuration uses one ini per-plugin and are placed in the location specified in the Robust.ini by the user. Plugins can also cary information for users to aquire additional information and components such as web applications or libraries for use with the plugin.&lt;br /&gt;
For an overview of plugin development, see the Example at https://github.com/BlueWall/IntegrationExample and also IIntegrationPlugin . Be sure to set DevelopmentMode=true in your Robust.ini to load the plugins in a manner that allows them to be run in your debugger. This needs to be set to false when not developing.&lt;br /&gt;
&lt;br /&gt;
=== User Experience ===&lt;br /&gt;
&lt;br /&gt;
Users will use the Robust command line to add repositories and then select plugins from those. The plugins can be enabled, disabled, un-installed from the Robust command line. Information built into the plugin about support sites, etc. can be seen in the command line as well.&lt;br /&gt;
&lt;br /&gt;
A good overview of operation is at http://bluewallvirtual.com/node/46&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Low-Level Design ==&lt;br /&gt;
&lt;br /&gt;
Plugins adhere to an interface that imposes methods to handle startup and unloading. Included in these are methods to provide data needed to set the initial configuration and find the configuration file needed at runtime.&lt;br /&gt;
&lt;br /&gt;
The plugins are managed by the mono-addins framework to allow registration of repositories, listing and selection of available plugins and plugin loading at runtime.&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Feature_Proposals/PluginManager</id>
		<title>Feature Proposals/PluginManager</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Feature_Proposals/PluginManager"/>
				<updated>2012-07-23T17:47:54Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the next evolution of http://opensimulator.org/wiki/IntegrationService&lt;br /&gt;
&lt;br /&gt;
We are working to make the plugin management in integral part of the system that will allow us to maintain comparability with the structure have and still be able to use dynamic interaction with the modules.&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Feature_Proposals/PluginManager</id>
		<title>Feature Proposals/PluginManager</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Feature_Proposals/PluginManager"/>
				<updated>2012-07-23T17:47:33Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: Created page with &amp;quot;This is the next evolution of http://opensimulator.org/wiki/IntegrationService  We are working to make the plugin management in integral part of the system that will allow us to ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the next evolution of http://opensimulator.org/wiki/IntegrationService&lt;br /&gt;
&lt;br /&gt;
We are working to make the plugin management in integral part of the system that will allow us to maintain comparability with the structure have and still be able to use dynamic interaction with the modules/&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/IntegrationService</id>
		<title>IntegrationService</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/IntegrationService"/>
				<updated>2012-07-14T02:35:26Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: /* Basic Info */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{proposal}}&lt;br /&gt;
= IntegrationService =&lt;br /&gt;
&lt;br /&gt;
== Basic Info ==&lt;br /&gt;
&lt;br /&gt;
* '''Summary''': Integration Service is a Robust facility to provide management for running dynamic plugins used for extending connections into the grid from external applications. &lt;br /&gt;
* '''Developer Sponsor(s)''': BlueWall Information Technologies, LLC  (BlueWall) jamesh@bluewallgroup.com / IRC - &amp;quot;BlueWall&amp;quot; on #opensim-dev, #opensim&lt;br /&gt;
* '''Start Date''': March 31, 2012&lt;br /&gt;
* '''Branches Targeted''': OpenSim master/development (after evaluation)&lt;br /&gt;
* '''Commercial''': Not specifically, but of general interest to adopters to help them integrate their external projects with OpenSimulator&lt;br /&gt;
* '''Code Repository''': OpenSimulator main repository in the &amp;quot;integration&amp;quot; branch  and https://github.com/BlueWall/opensim/tree/integration&lt;br /&gt;
&lt;br /&gt;
== High-Level Design ==&lt;br /&gt;
&lt;br /&gt;
=== Idea ===&lt;br /&gt;
&lt;br /&gt;
Integration Service for Robust is a facility to manage dynamic plugins, allowing external applications to be integrated with the OpenSimulator grid. The service helps the application developer provide clean APIs for their OpenSimulator integration projects by supplying a convenient framework to manage plugins that reside outside of OpenSimulator core. Their applications may be easily distributed across other sites without the need to interface directly to the underlying database structure. The developer has access to the OpenSimulator framework, including database migrations, easing maintenance tasks for users and administrators of their applications. This framework also opens the possibility for “crowd sourcing” standard APIs and libraries for applications such as web integration for popular CMS like Drupal, Joomla and Django and building API libraries for popular programming languages. These would offer a level of abstraction from the OpenSimulator core project to help minimize conflicts with external projects when core changes are needed. With the user-base migrating to V3 based viewers, which require lots of web applications which are tightly integrated into the grid, this type of service is desired to help stabilize APIs and insulate them from core development as much as posible.&lt;br /&gt;
The Integration Service provides the management facility and some utility services for the external plugins. Several console commands allow management of external repositories and manipulation of plugins. A detailed user-side view for getting started may be seen at: http://bluewallvirtual.com/integration_use . This details the configuration settings in the Robust.ini for the service and gives some instructions for connecting to the example repository.&lt;br /&gt;
At the moment, there is an implementation of the landtool.php using this, and an example for development. Some other basic plugins are in the development stages and will be released as they are completed.&lt;br /&gt;
&lt;br /&gt;
=== Criteria ===&lt;br /&gt;
&lt;br /&gt;
* '''Scope''': This is already fairly complete and working. It will be good to get more eyes on it and work out details for security and provide hooks for things like Oauth for allowing applications to integrate with external sites to provide rich user experiences with the V3 based viewers. Additional testing and work is required to make the system more reliable at detecting and suggesting upgrades and requirements between versions.&lt;br /&gt;
&lt;br /&gt;
* '''Software Requirements''': Mono Addins was upgraded to the current version, and and Oauth library was added, however it is not presently being used and is included for future applications.&lt;br /&gt;
&lt;br /&gt;
* '''Impact''': This work requires no additional modifications to other modules&lt;br /&gt;
* '''Blockers''': None known&lt;br /&gt;
&lt;br /&gt;
=== Implementation Overview ===&lt;br /&gt;
&lt;br /&gt;
Integration Service implementation follows standard Robust module design and provides the main code in `OpenSim/Services/Integration` and additional code for external web management applications in `OpenSim/Server/Handlers/Integration`. The services are implemented externally, preferably in the `./addon-modules` area provided for third party development, and are available (in binary form) from repositories  subscribed to by the user. A plugin repository for testing is setup at http://bluewallvirtual.com/plugins  (please see: http://bluewallvirtual.com/node/46 for instructions and an overview of user interaction in the console) . An entry in the Robust.ini allows setting Integration Service to run in development mode, to allow local loading and debugging of plugins under development. Normally this is switched to “false” to have Integration Service manage the plugins via registries.&lt;br /&gt;
The plugin carries information to direct Integration Service to find initial configuration information that is used in conjunction with the existing Robust configuration. The configuration uses one ini per-plugin and are placed in the location specified in the Robust.ini by the user. Plugins can also cary information for users to aquire additional information and components such as web applications or libraries for use with the plugin.&lt;br /&gt;
For an overview of plugin development, see the Example at https://github.com/BlueWall/IntegrationExample and also IIntegrationPlugin . Be sure to set DevelopmentMode=true in your Robust.ini to load the plugins in a manner that allows them to be run in your debugger. This needs to be set to false when not developing.&lt;br /&gt;
&lt;br /&gt;
=== User Experience ===&lt;br /&gt;
&lt;br /&gt;
Users will use the Robust command line to add repositories and then select plugins from those. The plugins can be enabled, disabled, un-installed from the Robust command line. Information built into the plugin about support sites, etc. can be seen in the command line as well.&lt;br /&gt;
&lt;br /&gt;
A good overview of operation is at http://bluewallvirtual.com/node/46&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Low-Level Design ==&lt;br /&gt;
&lt;br /&gt;
Plugins adhere to an interface that imposes methods to handle startup and unloading. Included in these are methods to provide data needed to set the initial configuration and find the configuration file needed at runtime.&lt;br /&gt;
&lt;br /&gt;
The plugins are managed by the mono-addins framework to allow registration of repositories, listing and selection of available plugins and plugin loading at runtime.&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Feature_Proposals</id>
		<title>Feature Proposals</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Feature_Proposals"/>
				<updated>2012-07-10T18:38:49Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: /* Present */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Feature Proposals==&lt;br /&gt;
If you want to propose a feature, you should do so on the opensim-dev mailing list. If there is interest or if you plan to write the code yourself, you can create a page here. Please do not propose features in the Mantis bug tracker. Please do not propose features if you don't have a clear idea of how they would work on a technical level. Please do not propose features expecting other people to do the implementation work without convincing them first - this will not happen.&lt;br /&gt;
&lt;br /&gt;
If you're adding a proposal here, please do it with a page name of Feature_Proposals/&amp;lt;name of service&amp;gt;. For example Feature_Proposals/AutoBackup.&lt;br /&gt;
&lt;br /&gt;
=== Templates ===&lt;br /&gt;
&lt;br /&gt;
* [[Feature Proposal Template]] - Use this template for your document.&lt;br /&gt;
&lt;br /&gt;
=== Present ===&lt;br /&gt;
&lt;br /&gt;
* [[Feature Proposals/Deduplicating Asset Service]]&lt;br /&gt;
* [[IntegrationService]]&lt;br /&gt;
&lt;br /&gt;
=== Past ===&lt;br /&gt;
&lt;br /&gt;
* [[Feature Proposals/AutoBackup|AutoBackup]]&lt;br /&gt;
* [[Statistics Server]] - Proposal for a statistics server in OpenSimulator.&lt;br /&gt;
* [[OpenID]] - Proposal for using OpenID in OpenSimulator&lt;br /&gt;
* [[AssetServerProposal]] - Proposal for a distributed asset server&lt;br /&gt;
* [[A better SimCrossing]] - A work in progress about implementing a smooth simcrossing&lt;br /&gt;
* [[Creating profiles not used for login]] - RFC for alternative ways of creating profiles that will never be used for login&lt;br /&gt;
* [[OpenSim Profile Anchors]] - a mechanism for retaining creator information for offline item transfers&lt;br /&gt;
* [[Explicit Object Serialization]] - a proposal to explicitly serialize scene objects rather than using automatic .NET XML serialization&lt;br /&gt;
* [[Opensim: 0.5 Release Target Discussion]]&lt;br /&gt;
* [[Opensim: 0.6 Release Target Discussion]]&lt;br /&gt;
* [[Opensim: Future Release Discussion]]&lt;br /&gt;
* [[OpenWiredux: Taking the next step]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Proposal]]&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/IntegrationService</id>
		<title>IntegrationService</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/IntegrationService"/>
				<updated>2012-07-10T18:36:41Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: Created page with &amp;quot;{{proposal}} = IntegrationService =  == Basic Info ==  * '''Summary''': Integration Service is a Robust facility to provide management for running dynamic plugins used for extend...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{proposal}}&lt;br /&gt;
= IntegrationService =&lt;br /&gt;
&lt;br /&gt;
== Basic Info ==&lt;br /&gt;
&lt;br /&gt;
* '''Summary''': Integration Service is a Robust facility to provide management for running dynamic plugins used for extending connections into the grid from external applications. &lt;br /&gt;
* '''Developer Sponsor(s)''': BlueWall Information Technologies, LLC  (BlueWall) jamesh@bluewallgroup.com / IRC - &amp;quot;BlueWall&amp;quot; on #opensim-dev, #opensim&lt;br /&gt;
* '''Start Date''': March 31, 2012&lt;br /&gt;
* '''Branches Targeted''': OpenSim master/development (after evaluation)&lt;br /&gt;
* '''Commercial''': Not specifically, but of general interest to adopters to help them integrate their external projects with OpenSimulator&lt;br /&gt;
* '''Code Repository''': https://github.com/BlueWall/opensim/tree/integration ''will send to opensimulator.org as a branch soon''&lt;br /&gt;
&lt;br /&gt;
== High-Level Design ==&lt;br /&gt;
&lt;br /&gt;
=== Idea ===&lt;br /&gt;
&lt;br /&gt;
Integration Service for Robust is a facility to manage dynamic plugins, allowing external applications to be integrated with the OpenSimulator grid. The service helps the application developer provide clean APIs for their OpenSimulator integration projects by supplying a convenient framework to manage plugins that reside outside of OpenSimulator core. Their applications may be easily distributed across other sites without the need to interface directly to the underlying database structure. The developer has access to the OpenSimulator framework, including database migrations, easing maintenance tasks for users and administrators of their applications. This framework also opens the possibility for “crowd sourcing” standard APIs and libraries for applications such as web integration for popular CMS like Drupal, Joomla and Django and building API libraries for popular programming languages. These would offer a level of abstraction from the OpenSimulator core project to help minimize conflicts with external projects when core changes are needed. With the user-base migrating to V3 based viewers, which require lots of web applications which are tightly integrated into the grid, this type of service is desired to help stabilize APIs and insulate them from core development as much as posible.&lt;br /&gt;
The Integration Service provides the management facility and some utility services for the external plugins. Several console commands allow management of external repositories and manipulation of plugins. A detailed user-side view for getting started may be seen at: http://bluewallvirtual.com/integration_use . This details the configuration settings in the Robust.ini for the service and gives some instructions for connecting to the example repository.&lt;br /&gt;
At the moment, there is an implementation of the landtool.php using this, and an example for development. Some other basic plugins are in the development stages and will be released as they are completed.&lt;br /&gt;
&lt;br /&gt;
=== Criteria ===&lt;br /&gt;
&lt;br /&gt;
* '''Scope''': This is already fairly complete and working. It will be good to get more eyes on it and work out details for security and provide hooks for things like Oauth for allowing applications to integrate with external sites to provide rich user experiences with the V3 based viewers. Additional testing and work is required to make the system more reliable at detecting and suggesting upgrades and requirements between versions.&lt;br /&gt;
&lt;br /&gt;
* '''Software Requirements''': Mono Addins was upgraded to the current version, and and Oauth library was added, however it is not presently being used and is included for future applications.&lt;br /&gt;
&lt;br /&gt;
* '''Impact''': This work requires no additional modifications to other modules&lt;br /&gt;
* '''Blockers''': None known&lt;br /&gt;
&lt;br /&gt;
=== Implementation Overview ===&lt;br /&gt;
&lt;br /&gt;
Integration Service implementation follows standard Robust module design and provides the main code in `OpenSim/Services/Integration` and additional code for external web management applications in `OpenSim/Server/Handlers/Integration`. The services are implemented externally, preferably in the `./addon-modules` area provided for third party development, and are available (in binary form) from repositories  subscribed to by the user. A plugin repository for testing is setup at http://bluewallvirtual.com/plugins  (please see: http://bluewallvirtual.com/node/46 for instructions and an overview of user interaction in the console) . An entry in the Robust.ini allows setting Integration Service to run in development mode, to allow local loading and debugging of plugins under development. Normally this is switched to “false” to have Integration Service manage the plugins via registries.&lt;br /&gt;
The plugin carries information to direct Integration Service to find initial configuration information that is used in conjunction with the existing Robust configuration. The configuration uses one ini per-plugin and are placed in the location specified in the Robust.ini by the user. Plugins can also cary information for users to aquire additional information and components such as web applications or libraries for use with the plugin.&lt;br /&gt;
For an overview of plugin development, see the Example at https://github.com/BlueWall/IntegrationExample and also IIntegrationPlugin . Be sure to set DevelopmentMode=true in your Robust.ini to load the plugins in a manner that allows them to be run in your debugger. This needs to be set to false when not developing.&lt;br /&gt;
&lt;br /&gt;
=== User Experience ===&lt;br /&gt;
&lt;br /&gt;
Users will use the Robust command line to add repositories and then select plugins from those. The plugins can be enabled, disabled, un-installed from the Robust command line. Information built into the plugin about support sites, etc. can be seen in the command line as well.&lt;br /&gt;
&lt;br /&gt;
A good overview of operation is at http://bluewallvirtual.com/node/46&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Low-Level Design ==&lt;br /&gt;
&lt;br /&gt;
Plugins adhere to an interface that imposes methods to handle startup and unloading. Included in these are methods to provide data needed to set the initial configuration and find the configuration file needed at runtime.&lt;br /&gt;
&lt;br /&gt;
The plugins are managed by the mono-addins framework to allow registration of repositories, listing and selection of available plugins and plugin loading at runtime.&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/User_talk:BlueWall</id>
		<title>User talk:BlueWall</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/User_talk:BlueWall"/>
				<updated>2012-07-10T16:59:22Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: moved User talk:BlueWall to Test Page: See if this creates a page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Test Page]]&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Test_Page</id>
		<title>Test Page</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Test_Page"/>
				<updated>2012-07-10T16:59:22Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: moved User talk:BlueWall to Test Page: See if this creates a page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''As of 2011-10-10 I copy/pasted this over to the linked [[UXSimStatus]] for further change/editing -- [[User:Justincc|Justincc]] 20:22, 10 October 2011 (UTC)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== JSON User SimStats ==&lt;br /&gt;
&lt;br /&gt;
As of OpenSim svn 9529 the xtended stats reporting will return a jsonp&lt;br /&gt;
callback to allow popular javascript toolkits to use the returned data to&lt;br /&gt;
create ajax monitoring applications in the browser. This is an advantage&lt;br /&gt;
because after the page is loaded, the browser will interact directly with&lt;br /&gt;
the region, eliminating traffic through the website (polling the region and&lt;br /&gt;
servicing the browser). It also allows the creation of mashups to create&lt;br /&gt;
mini-monitor apps in other pages.&lt;br /&gt;
&lt;br /&gt;
To enable your stats reporting, set the following in your OpenSim.ini...&lt;br /&gt;
&lt;br /&gt;
    ; Simulator Stats URI&lt;br /&gt;
    ; Enable JSON simulator data by setting a URI name (case sensitive)&lt;br /&gt;
    Stats_URI = &amp;quot;jsonSimStats&amp;quot;&lt;br /&gt;
&lt;br /&gt;
...the URI can be anything you want, and is case sensitive. You can query&lt;br /&gt;
the URI directly to return a json string to use in php, python, java, etc.&lt;br /&gt;
or you may use one of the popular javascript toolkits to have OpenSim&lt;br /&gt;
generate a callback for jsonp. The json serialization carries the following&lt;br /&gt;
data...&lt;br /&gt;
&lt;br /&gt;
  {&amp;quot;AssetsInCache&amp;quot;:5.0,&amp;quot;TimeAfterCacheMiss&amp;quot;:0.0,&amp;quot;BlockedMissingTextureRequests&amp;quot;:0.0,&amp;quot;AssetServiceRequestFailures&amp;quot;:0.0,&lt;br /&gt;
 &amp;quot;abnormalClientThreadTerminations&amp;quot;:0.0,&amp;quot;InventoryServiceRetrievalFailures&amp;quot;:0.0,&amp;quot;Dilatn&amp;quot;:0.967380821704865,&amp;quot;SimFPS&amp;quot;:55.0,&lt;br /&gt;
 &amp;quot;PhyFPS&amp;quot;:47.1628913879395,&amp;quot;AgntUp&amp;quot;:0.0,&amp;quot;RootAg&amp;quot;:0.0,&amp;quot;ChldAg&amp;quot;:0.0,&amp;quot;Prims&amp;quot;:0.0,&amp;quot;AtvPrm&amp;quot;:0.0,&amp;quot;AtvScr&amp;quot;:0.0,&amp;quot;ScrLPS&amp;quot;:0.0,&lt;br /&gt;
 &amp;quot;PktsIn&amp;quot;:0.0,&amp;quot;PktOut&amp;quot;:0.0,&amp;quot;PendDl&amp;quot;:0.0,&amp;quot;PendUl&amp;quot;:0.0,&amp;quot;UnackB&amp;quot;:0.0,&amp;quot;TotlFt&amp;quot;:0.0,&amp;quot;NetFt&amp;quot;:0.0,&amp;quot;PhysFt&amp;quot;:0.0,&amp;quot;OthrFt&amp;quot;:0.0,&lt;br /&gt;
 &amp;quot;AgntFt&amp;quot;:0.0,&amp;quot;ImgsFt&amp;quot;:0.0,&amp;quot;Memory&amp;quot;:&amp;quot;8&amp;quot;,&amp;quot;Uptime&amp;quot;:&amp;quot;05:12:19.0365590&amp;quot;,&amp;quot;Version&amp;quot;:&amp;quot;OpenSimulator Server  0.6.4.9533 &amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;html&amp;gt;&lt;br /&gt;
 &amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;JSON Test&amp;lt;/title&amp;gt;&lt;br /&gt;
 &amp;lt;script src=&amp;quot;http://ascent.bluewallgroup.com/jquery-1.3.2.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
 &amp;lt;script src=&amp;quot;http://ascent.bluewallgroup.com/timer.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;http://www.google.com/jsapi&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot; language=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
  SimFPS = 0;&lt;br /&gt;
  PhyFPS = 0;&lt;br /&gt;
  Memory = 0;&lt;br /&gt;
  RootAg = 0;&lt;br /&gt;
  ChldAg = 0;&lt;br /&gt;
  Uptime = &amp;quot;&amp;quot;;&lt;br /&gt;
  Version = &amp;quot;&amp;quot;;&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot; language=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  $.timer(15000, function(timer) {&lt;br /&gt;
  $.getJSON(&amp;quot;http://ascent.bluewallgroup.com:9300/jsonSimStats/?callback=?&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
  function(data){&lt;br /&gt;
&lt;br /&gt;
      SimFPS = Math.round(data.SimFPS);&lt;br /&gt;
      PhyFPS = Math.round(data.PhyFPS);&lt;br /&gt;
      Memory = Math.round(data.Memory);&lt;br /&gt;
      ChldAg = data.ChldAg;&lt;br /&gt;
      RootAg = data.RootAg;&lt;br /&gt;
      Uptime = data.Uptime;&lt;br /&gt;
      Version = data.Version;&lt;br /&gt;
      drawChart();&lt;br /&gt;
      setTags();&lt;br /&gt;
      timer.reset(15000);&lt;br /&gt;
  });&lt;br /&gt;
  });&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot; language=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  google.load(&amp;quot;visualization&amp;quot;, &amp;quot;1&amp;quot;, {packages:[&amp;quot;gauge&amp;quot;]});&lt;br /&gt;
  google.setOnLoadCallback(drawChart);&lt;br /&gt;
  function drawChart() {&lt;br /&gt;
    var cdata = new google.visualization.DataTable();&lt;br /&gt;
    cdata.addColumn('string', 'Label');&lt;br /&gt;
    cdata.addColumn('number', 'Value');&lt;br /&gt;
    cdata.addRows(3);&lt;br /&gt;
    cdata.setValue(0, 0, 'SimFPS');&lt;br /&gt;
    cdata.setValue(0, 1, SimFPS);&lt;br /&gt;
    cdata.setValue(1, 0, 'PhyFPS');&lt;br /&gt;
    cdata.setValue(1, 1, PhyFPS);&lt;br /&gt;
    cdata.setValue(2, 0, 'Memory');&lt;br /&gt;
    cdata.setValue(2, 1, Memory);&lt;br /&gt;
&lt;br /&gt;
    var chart = new&lt;br /&gt;
 google.visualization.Gauge(document.getElementById('chart_div'));&lt;br /&gt;
    var options = {width: 400, height: 120, redFrom: 90, redTo: 100,&lt;br /&gt;
        yellowFrom:75, yellowTo: 90, minorTicks: 5};&lt;br /&gt;
    chart.draw(cdata, options);&lt;br /&gt;
  }&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot; language=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
   function setTags() {&lt;br /&gt;
      $(&amp;quot;#par-uptime&amp;quot;).text(&amp;quot;Uptime: &amp;quot;  + Uptime);&lt;br /&gt;
      $(&amp;quot;#par-ragent&amp;quot;).text(&amp;quot;Root Agent: &amp;quot; + RootAg);&lt;br /&gt;
      $(&amp;quot;#par-version&amp;quot;).text(&amp;quot;Version: &amp;quot; + Version);&lt;br /&gt;
      $(&amp;quot;#par-cagent&amp;quot;).text(&amp;quot;Child Agent: &amp;quot; + ChldAg);&lt;br /&gt;
   }&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/head&amp;gt;&lt;br /&gt;
 &amp;lt;body&amp;gt;&lt;br /&gt;
 &amp;lt;h1&amp;gt;BlueWall Development Region&amp;lt;/h1&amp;gt;&lt;br /&gt;
 &amp;lt;table&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
 &amp;lt;div id=&amp;quot;par-version&amp;quot;&amp;gt;version&amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
 &amp;lt;div id=&amp;quot;par-ragent&amp;quot;&amp;gt;root agent&amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
 &amp;lt;div id=&amp;quot;par-uptime&amp;quot;&amp;gt;uptime&amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
 &amp;lt;div id=&amp;quot;par-cagent&amp;quot;&amp;gt;child agent&amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;/table&amp;gt;&lt;br /&gt;
 &amp;lt;div id=&amp;quot;chart_div&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;/body&amp;gt;&lt;br /&gt;
 &amp;lt;/html&amp;gt;&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[SSL in OpenSim]]&lt;br /&gt;
&lt;br /&gt;
== JSON Grid Simstats ==&lt;br /&gt;
&lt;br /&gt;
Python example to gain the region data from a grid service&lt;br /&gt;
 - should work but this version not tested -&lt;br /&gt;
         *reference material* &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 import hashlib&lt;br /&gt;
 import urllib2&lt;br /&gt;
&lt;br /&gt;
 ''' value shown is an example, get this from your grid database each time - regions.regionSecret '''&lt;br /&gt;
 regionsecret = 'fe21314b-6267-44f7-aa1e-6047e1c3f94a'&lt;br /&gt;
&lt;br /&gt;
 ''' My region host '''&lt;br /&gt;
 hostName =  myregion.host.net&lt;br /&gt;
&lt;br /&gt;
 ''' My region port '''&lt;br /&gt;
 hostPort = 9000&lt;br /&gt;
&lt;br /&gt;
 ''' create an *UPPERCASE* SHA1 hash from the regionSecret '''&lt;br /&gt;
 resourceName = str(hashlib.sha1(regionsecret).hexdigest()).upper()&lt;br /&gt;
&lt;br /&gt;
 regionuri = hostName + &amp;quot;:&amp;quot; + hostPort + &amp;quot;/&amp;quot; + resourceName + &amp;quot;/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 ''' data includes TimeZoneName , TimeZoneOffs, UxTime, Memory, Version and OSStatsURI '''&lt;br /&gt;
 regiondata = simplejson.load(urllib2.urlopen(regionuri))&lt;br /&gt;
&lt;br /&gt;
 ''' OSStatsURI is the uri to query the OpenSim instance. return same data as the user set uri '''&lt;br /&gt;
 simuri = regiondata['OSStatsURI']&lt;br /&gt;
&lt;br /&gt;
 simdata = simplejson.load(urllib2.urlopen(simuri))&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using shell environment variables in OpenSim configuration ==&lt;br /&gt;
&lt;br /&gt;
We will need to use two new things in our configurations: a section [Environment] to tell us what variables we need to look at in the shell and we will need to use the Nini key expansion. Nini, can have keys that look like ${SECTION|VARIABLE} and can expand those to the variables we assign.&lt;br /&gt;
&lt;br /&gt;
In your shell you will export your values and check the ones you want to use that are predefined by your system ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export RT_ZONE=Zone_00&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# You can see your HOSTNAME (It will be set by the system)...&lt;br /&gt;
echo $HOSTNAME&lt;br /&gt;
OSERV_00&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the ini you will include an [Environment] section...&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Environment]  ; Our Environment section that defines the shell variables we are interested in&lt;br /&gt;
RT_ZONE=&amp;quot;&amp;quot;     ; We might use a zone to setup an instance of OpenSim on a server  &lt;br /&gt;
HOSTNAME=&amp;quot;&amp;quot; ; We might be interested in obtaining the host's name &lt;br /&gt;
&lt;br /&gt;
[Startup]&lt;br /&gt;
regionload_regionsdir=/home/opensim/etc/Regions/${Environment|RT_ZONE}/   ; We set our regionload_regionsdir using the variables&lt;br /&gt;
ConsolePrompt = &amp;quot;${Environment|HOSTNAME}:${Environment|RT_ZONE} &amp;quot;&lt;br /&gt;
&lt;br /&gt;
[DatabaseService]&lt;br /&gt;
ConnectionString = &amp;quot;Data Source=localhost;Database=${Environment|RT_ZONE};User ID=username;Password=userpass;&amp;quot; ; Here too&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When OpenSim picks up the variables in your shell and processes all the configurations, the variable keys will be filled in with the variables picked up from the shell ...&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Environment]  ; Our Environment section that defines the shell variables we are interested in&lt;br /&gt;
RT_ZONE=&amp;quot;&amp;quot;     ; We might use a zone to setup an instance of OpenSim on a server  &lt;br /&gt;
HOSTNAME=&amp;quot;&amp;quot; ; We might be interested in obtaining the host's name &lt;br /&gt;
&lt;br /&gt;
[Startup]&lt;br /&gt;
regionload_regionsdir=/home/opensim/etc/Regions/Zone_00/   ; We set our regionload_regionsdir using the variables&lt;br /&gt;
ConsolePrompt = &amp;quot;OSERV_00:Zone_09 &amp;quot;&lt;br /&gt;
&lt;br /&gt;
[DatabaseService]&lt;br /&gt;
ConnectionString = &amp;quot;Data Source=localhost;Database=Zone_00;User ID=username;Password=userpass;&amp;quot; ; Here too&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a pretty good start. I think there will be a couple of places we might be able to use this to help us setup really flexible configuration systems for OpenSim. &lt;br /&gt;
&lt;br /&gt;
Have Fun!&lt;br /&gt;
&lt;br /&gt;
== TESTING ==&lt;br /&gt;
&lt;br /&gt;
This is a test&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Test_Page</id>
		<title>Test Page</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Test_Page"/>
				<updated>2012-07-10T16:58:44Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: /* TESTING */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''As of 2011-10-10 I copy/pasted this over to the linked [[UXSimStatus]] for further change/editing -- [[User:Justincc|Justincc]] 20:22, 10 October 2011 (UTC)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== JSON User SimStats ==&lt;br /&gt;
&lt;br /&gt;
As of OpenSim svn 9529 the xtended stats reporting will return a jsonp&lt;br /&gt;
callback to allow popular javascript toolkits to use the returned data to&lt;br /&gt;
create ajax monitoring applications in the browser. This is an advantage&lt;br /&gt;
because after the page is loaded, the browser will interact directly with&lt;br /&gt;
the region, eliminating traffic through the website (polling the region and&lt;br /&gt;
servicing the browser). It also allows the creation of mashups to create&lt;br /&gt;
mini-monitor apps in other pages.&lt;br /&gt;
&lt;br /&gt;
To enable your stats reporting, set the following in your OpenSim.ini...&lt;br /&gt;
&lt;br /&gt;
    ; Simulator Stats URI&lt;br /&gt;
    ; Enable JSON simulator data by setting a URI name (case sensitive)&lt;br /&gt;
    Stats_URI = &amp;quot;jsonSimStats&amp;quot;&lt;br /&gt;
&lt;br /&gt;
...the URI can be anything you want, and is case sensitive. You can query&lt;br /&gt;
the URI directly to return a json string to use in php, python, java, etc.&lt;br /&gt;
or you may use one of the popular javascript toolkits to have OpenSim&lt;br /&gt;
generate a callback for jsonp. The json serialization carries the following&lt;br /&gt;
data...&lt;br /&gt;
&lt;br /&gt;
  {&amp;quot;AssetsInCache&amp;quot;:5.0,&amp;quot;TimeAfterCacheMiss&amp;quot;:0.0,&amp;quot;BlockedMissingTextureRequests&amp;quot;:0.0,&amp;quot;AssetServiceRequestFailures&amp;quot;:0.0,&lt;br /&gt;
 &amp;quot;abnormalClientThreadTerminations&amp;quot;:0.0,&amp;quot;InventoryServiceRetrievalFailures&amp;quot;:0.0,&amp;quot;Dilatn&amp;quot;:0.967380821704865,&amp;quot;SimFPS&amp;quot;:55.0,&lt;br /&gt;
 &amp;quot;PhyFPS&amp;quot;:47.1628913879395,&amp;quot;AgntUp&amp;quot;:0.0,&amp;quot;RootAg&amp;quot;:0.0,&amp;quot;ChldAg&amp;quot;:0.0,&amp;quot;Prims&amp;quot;:0.0,&amp;quot;AtvPrm&amp;quot;:0.0,&amp;quot;AtvScr&amp;quot;:0.0,&amp;quot;ScrLPS&amp;quot;:0.0,&lt;br /&gt;
 &amp;quot;PktsIn&amp;quot;:0.0,&amp;quot;PktOut&amp;quot;:0.0,&amp;quot;PendDl&amp;quot;:0.0,&amp;quot;PendUl&amp;quot;:0.0,&amp;quot;UnackB&amp;quot;:0.0,&amp;quot;TotlFt&amp;quot;:0.0,&amp;quot;NetFt&amp;quot;:0.0,&amp;quot;PhysFt&amp;quot;:0.0,&amp;quot;OthrFt&amp;quot;:0.0,&lt;br /&gt;
 &amp;quot;AgntFt&amp;quot;:0.0,&amp;quot;ImgsFt&amp;quot;:0.0,&amp;quot;Memory&amp;quot;:&amp;quot;8&amp;quot;,&amp;quot;Uptime&amp;quot;:&amp;quot;05:12:19.0365590&amp;quot;,&amp;quot;Version&amp;quot;:&amp;quot;OpenSimulator Server  0.6.4.9533 &amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;html&amp;gt;&lt;br /&gt;
 &amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;JSON Test&amp;lt;/title&amp;gt;&lt;br /&gt;
 &amp;lt;script src=&amp;quot;http://ascent.bluewallgroup.com/jquery-1.3.2.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
 &amp;lt;script src=&amp;quot;http://ascent.bluewallgroup.com/timer.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;http://www.google.com/jsapi&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot; language=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
  SimFPS = 0;&lt;br /&gt;
  PhyFPS = 0;&lt;br /&gt;
  Memory = 0;&lt;br /&gt;
  RootAg = 0;&lt;br /&gt;
  ChldAg = 0;&lt;br /&gt;
  Uptime = &amp;quot;&amp;quot;;&lt;br /&gt;
  Version = &amp;quot;&amp;quot;;&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot; language=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  $.timer(15000, function(timer) {&lt;br /&gt;
  $.getJSON(&amp;quot;http://ascent.bluewallgroup.com:9300/jsonSimStats/?callback=?&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
  function(data){&lt;br /&gt;
&lt;br /&gt;
      SimFPS = Math.round(data.SimFPS);&lt;br /&gt;
      PhyFPS = Math.round(data.PhyFPS);&lt;br /&gt;
      Memory = Math.round(data.Memory);&lt;br /&gt;
      ChldAg = data.ChldAg;&lt;br /&gt;
      RootAg = data.RootAg;&lt;br /&gt;
      Uptime = data.Uptime;&lt;br /&gt;
      Version = data.Version;&lt;br /&gt;
      drawChart();&lt;br /&gt;
      setTags();&lt;br /&gt;
      timer.reset(15000);&lt;br /&gt;
  });&lt;br /&gt;
  });&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot; language=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  google.load(&amp;quot;visualization&amp;quot;, &amp;quot;1&amp;quot;, {packages:[&amp;quot;gauge&amp;quot;]});&lt;br /&gt;
  google.setOnLoadCallback(drawChart);&lt;br /&gt;
  function drawChart() {&lt;br /&gt;
    var cdata = new google.visualization.DataTable();&lt;br /&gt;
    cdata.addColumn('string', 'Label');&lt;br /&gt;
    cdata.addColumn('number', 'Value');&lt;br /&gt;
    cdata.addRows(3);&lt;br /&gt;
    cdata.setValue(0, 0, 'SimFPS');&lt;br /&gt;
    cdata.setValue(0, 1, SimFPS);&lt;br /&gt;
    cdata.setValue(1, 0, 'PhyFPS');&lt;br /&gt;
    cdata.setValue(1, 1, PhyFPS);&lt;br /&gt;
    cdata.setValue(2, 0, 'Memory');&lt;br /&gt;
    cdata.setValue(2, 1, Memory);&lt;br /&gt;
&lt;br /&gt;
    var chart = new&lt;br /&gt;
 google.visualization.Gauge(document.getElementById('chart_div'));&lt;br /&gt;
    var options = {width: 400, height: 120, redFrom: 90, redTo: 100,&lt;br /&gt;
        yellowFrom:75, yellowTo: 90, minorTicks: 5};&lt;br /&gt;
    chart.draw(cdata, options);&lt;br /&gt;
  }&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot; language=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
   function setTags() {&lt;br /&gt;
      $(&amp;quot;#par-uptime&amp;quot;).text(&amp;quot;Uptime: &amp;quot;  + Uptime);&lt;br /&gt;
      $(&amp;quot;#par-ragent&amp;quot;).text(&amp;quot;Root Agent: &amp;quot; + RootAg);&lt;br /&gt;
      $(&amp;quot;#par-version&amp;quot;).text(&amp;quot;Version: &amp;quot; + Version);&lt;br /&gt;
      $(&amp;quot;#par-cagent&amp;quot;).text(&amp;quot;Child Agent: &amp;quot; + ChldAg);&lt;br /&gt;
   }&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/head&amp;gt;&lt;br /&gt;
 &amp;lt;body&amp;gt;&lt;br /&gt;
 &amp;lt;h1&amp;gt;BlueWall Development Region&amp;lt;/h1&amp;gt;&lt;br /&gt;
 &amp;lt;table&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
 &amp;lt;div id=&amp;quot;par-version&amp;quot;&amp;gt;version&amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
 &amp;lt;div id=&amp;quot;par-ragent&amp;quot;&amp;gt;root agent&amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
 &amp;lt;div id=&amp;quot;par-uptime&amp;quot;&amp;gt;uptime&amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
 &amp;lt;div id=&amp;quot;par-cagent&amp;quot;&amp;gt;child agent&amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;/table&amp;gt;&lt;br /&gt;
 &amp;lt;div id=&amp;quot;chart_div&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;/body&amp;gt;&lt;br /&gt;
 &amp;lt;/html&amp;gt;&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[SSL in OpenSim]]&lt;br /&gt;
&lt;br /&gt;
== JSON Grid Simstats ==&lt;br /&gt;
&lt;br /&gt;
Python example to gain the region data from a grid service&lt;br /&gt;
 - should work but this version not tested -&lt;br /&gt;
         *reference material* &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 import hashlib&lt;br /&gt;
 import urllib2&lt;br /&gt;
&lt;br /&gt;
 ''' value shown is an example, get this from your grid database each time - regions.regionSecret '''&lt;br /&gt;
 regionsecret = 'fe21314b-6267-44f7-aa1e-6047e1c3f94a'&lt;br /&gt;
&lt;br /&gt;
 ''' My region host '''&lt;br /&gt;
 hostName =  myregion.host.net&lt;br /&gt;
&lt;br /&gt;
 ''' My region port '''&lt;br /&gt;
 hostPort = 9000&lt;br /&gt;
&lt;br /&gt;
 ''' create an *UPPERCASE* SHA1 hash from the regionSecret '''&lt;br /&gt;
 resourceName = str(hashlib.sha1(regionsecret).hexdigest()).upper()&lt;br /&gt;
&lt;br /&gt;
 regionuri = hostName + &amp;quot;:&amp;quot; + hostPort + &amp;quot;/&amp;quot; + resourceName + &amp;quot;/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 ''' data includes TimeZoneName , TimeZoneOffs, UxTime, Memory, Version and OSStatsURI '''&lt;br /&gt;
 regiondata = simplejson.load(urllib2.urlopen(regionuri))&lt;br /&gt;
&lt;br /&gt;
 ''' OSStatsURI is the uri to query the OpenSim instance. return same data as the user set uri '''&lt;br /&gt;
 simuri = regiondata['OSStatsURI']&lt;br /&gt;
&lt;br /&gt;
 simdata = simplejson.load(urllib2.urlopen(simuri))&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using shell environment variables in OpenSim configuration ==&lt;br /&gt;
&lt;br /&gt;
We will need to use two new things in our configurations: a section [Environment] to tell us what variables we need to look at in the shell and we will need to use the Nini key expansion. Nini, can have keys that look like ${SECTION|VARIABLE} and can expand those to the variables we assign.&lt;br /&gt;
&lt;br /&gt;
In your shell you will export your values and check the ones you want to use that are predefined by your system ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export RT_ZONE=Zone_00&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# You can see your HOSTNAME (It will be set by the system)...&lt;br /&gt;
echo $HOSTNAME&lt;br /&gt;
OSERV_00&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the ini you will include an [Environment] section...&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Environment]  ; Our Environment section that defines the shell variables we are interested in&lt;br /&gt;
RT_ZONE=&amp;quot;&amp;quot;     ; We might use a zone to setup an instance of OpenSim on a server  &lt;br /&gt;
HOSTNAME=&amp;quot;&amp;quot; ; We might be interested in obtaining the host's name &lt;br /&gt;
&lt;br /&gt;
[Startup]&lt;br /&gt;
regionload_regionsdir=/home/opensim/etc/Regions/${Environment|RT_ZONE}/   ; We set our regionload_regionsdir using the variables&lt;br /&gt;
ConsolePrompt = &amp;quot;${Environment|HOSTNAME}:${Environment|RT_ZONE} &amp;quot;&lt;br /&gt;
&lt;br /&gt;
[DatabaseService]&lt;br /&gt;
ConnectionString = &amp;quot;Data Source=localhost;Database=${Environment|RT_ZONE};User ID=username;Password=userpass;&amp;quot; ; Here too&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When OpenSim picks up the variables in your shell and processes all the configurations, the variable keys will be filled in with the variables picked up from the shell ...&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Environment]  ; Our Environment section that defines the shell variables we are interested in&lt;br /&gt;
RT_ZONE=&amp;quot;&amp;quot;     ; We might use a zone to setup an instance of OpenSim on a server  &lt;br /&gt;
HOSTNAME=&amp;quot;&amp;quot; ; We might be interested in obtaining the host's name &lt;br /&gt;
&lt;br /&gt;
[Startup]&lt;br /&gt;
regionload_regionsdir=/home/opensim/etc/Regions/Zone_00/   ; We set our regionload_regionsdir using the variables&lt;br /&gt;
ConsolePrompt = &amp;quot;OSERV_00:Zone_09 &amp;quot;&lt;br /&gt;
&lt;br /&gt;
[DatabaseService]&lt;br /&gt;
ConnectionString = &amp;quot;Data Source=localhost;Database=Zone_00;User ID=username;Password=userpass;&amp;quot; ; Here too&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a pretty good start. I think there will be a couple of places we might be able to use this to help us setup really flexible configuration systems for OpenSim. &lt;br /&gt;
&lt;br /&gt;
Have Fun!&lt;br /&gt;
&lt;br /&gt;
== TESTING ==&lt;br /&gt;
&lt;br /&gt;
This is a test&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Feature_Matrix</id>
		<title>Feature Matrix</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Feature_Matrix"/>
				<updated>2012-05-03T10:09:02Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: /* World */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
This is a matrix of the features currently implemented in OpenSimulator. Please feel free to correct existing entries and add new ones. The data in this matrix refers to the currently released version of OpenSimulator unless otherwise stated.&lt;br /&gt;
&lt;br /&gt;
OpenSimulator can&amp;amp;nbsp;run on Linux &amp;amp;amp; Mac with MONO, see the [http://www.mono-project.com/Main_Page Mono project] for availability or your distribution provider. Windows requires Net Framework 3.51&amp;amp;nbsp;available from [http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ab99342f-5d1a-413d-8319-81da479ab0d7&amp;amp;displaylang=en MS Downloads] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prims ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Feature Name &lt;br /&gt;
! Core OpenSim? &lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Create/change/move/delete prims &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Persistent prim inventories &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Basic asset types &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| Basic asset types include textures, sounds, notecards, etc.&lt;br /&gt;
|-&lt;br /&gt;
| Coalesced object groups (being able to take a selection of unlinked objects as one group that can be rezzed back in the same spatial arrangements)&lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes&lt;br /&gt;
| Coalesced object groups means being able to take a selection of unlinked objects as one group that can be rezzed back in the same spatial arrangements.  Support added in OpenSimulator 0.7.1&lt;br /&gt;
|-&lt;br /&gt;
| Linksets &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| Bugs (some fairly fundamental) remain with linksets but basic support is implemented.&lt;br /&gt;
|-&lt;br /&gt;
| Media on a prim/Shared Media &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| Support added in OpenSimulator 0.7.1.  But please note that this is based on the current beta Linden implementation of mesh, which is likely to change soon.  Please do not rely on mesh for any production use at the moment.&lt;br /&gt;
|-&lt;br /&gt;
| [[Dynamic textures]] &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| Dynamic textures are textures that can be created on the fly via draw commands.&lt;br /&gt;
|-&lt;br /&gt;
| Sculpties &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh]] &lt;br /&gt;
| bgcolor=&amp;quot;#ffff00&amp;quot; align=&amp;quot;center&amp;quot; | Beta/Experimental&lt;br /&gt;
| Mesh is implemented in OpenSimulator 0.7.2 onwards.  This is the newer mesh implementation as found in Linden Lab viewer 3.  Older versions of OpenSimulator contained the older beta implementation.  Please note that this feature is experimental and should be used cautiously.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Users ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Feature Name &lt;br /&gt;
! Core OpenSim? &lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Walking &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Flying &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Sitting &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Animations &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Gestures &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Attachments &lt;br /&gt;
| bgcolor=&amp;quot;#ffd700&amp;quot; align=&amp;quot;center&amp;quot; | Partial &lt;br /&gt;
| Both worn attachments and Head Up Displays (HUDs) are implemented.  Outfits are implemented.  Wearing multiple attachments at a single point is not yet implemented.&lt;br /&gt;
|-&lt;br /&gt;
| Combat &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Region crossing &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Teleport &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Persistent avatar inventories &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Inventory library &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Chat &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Instant messaging &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes&lt;br /&gt;
| Offline IM storage requires a third party packages such as http://forge.opensimulator.org/gf/project/opensimwi/ in releases before 0.7.2.&lt;br /&gt;
|-&lt;br /&gt;
| Names &lt;br /&gt;
| bgcolor=&amp;quot;#ffd700&amp;quot; align=&amp;quot;center&amp;quot; | Partial &lt;br /&gt;
| Ordinary names consisting of a first and last name separated by a space are implemented.  'Display' names are not yet implemented.&lt;br /&gt;
|-&lt;br /&gt;
| Archiving &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| Users inventories and parts of inventories can be saved and loaded as [[Inventory Archives|OpenSimulator Inventory Archives]].&lt;br /&gt;
|-&lt;br /&gt;
| Friends &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Lure &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| [[Enabling Groups|Groups]]&lt;br /&gt;
| bgcolor=&amp;quot;#ffffff&amp;quot; align=&amp;quot;center&amp;quot; | 3rd party&lt;br /&gt;
| Group support is only available as third party projects: &lt;br /&gt;
* [https://github.com/mcortez/flotsam Group service implementation from the Flotsam project]. '''Please note: this is not working properly with OpenSimulator 0.7.0.1 or 0.7.0.2, though it is fixed in OpenSimulator 0.7.1 and onwards. 0.6.9 should also work okay.''' &lt;br /&gt;
* [https://github.com/jor3l/OSModules/tree/master/osgroups/ osgroups from jor3l] &lt;br /&gt;
* [http://code.google.com/p/openmetaverse SimianGrid] also provides a Groups connector as part of its grid services package.&lt;br /&gt;
&lt;br /&gt;
These services have connectors that are bundled with core OpenSimulator. See [[Enabling Groups]] and the OpenSim.ini.example file for more details.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Profiles &lt;br /&gt;
| bgcolor=&amp;quot;#ffffff&amp;quot; align=&amp;quot;center&amp;quot; | 3rd party &lt;br /&gt;
| &lt;br /&gt;
Only avatar names are stored in core OpenSimulator. Profile support (e.g. interests, 1st Life, etc.) is available via 3rd party modules, though these may currently only support OpenSimulator 0.6.9. Please add suitable links here. &lt;br /&gt;
&lt;br /&gt;
* [http://forge.opensimulator.org/gf/project/osprofile forge.opensimulator.org/gf/project/osprofile]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Search &lt;br /&gt;
| bgcolor=&amp;quot;#ffffff&amp;quot; align=&amp;quot;center&amp;quot; | 3rd party &lt;br /&gt;
| Search support is only available via third party modules. &lt;br /&gt;
* [[OpenSimSearch]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Display names &lt;br /&gt;
| bgcolor=&amp;quot;#ff0000&amp;quot; align=&amp;quot;center&amp;quot; | No&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Scripting ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Feature Name &lt;br /&gt;
! Core OpenSim? &lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| [[Developer Documentation#Scripting|Scripts]] &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| A large percentage (though not all) of LSL is implemented by OpenSimulator. There are also OpenSimulator specific OSSL functions available.&lt;br /&gt;
|-&lt;br /&gt;
| [[Non-LSL scripting|C# scripting]] &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| C# scripting is experimental and insecure. However, it can be useful in some situations&lt;br /&gt;
|-&lt;br /&gt;
| Script control &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| There are some facilities to control what user types can create and edit scripts. This can help secure an implementation using C# scripts. See the OpenSim.ini.example file in the OpenSimulator distribution for more details.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
== World ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Feature Name &lt;br /&gt;
! Core OpenSim? &lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Terrain &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Sun &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Wind &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Cloud &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Vegetation &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Sound &lt;br /&gt;
| bgcolor=&amp;quot;#ffd700&amp;quot; align=&amp;quot;center&amp;quot; | Partial &lt;br /&gt;
| Not all sound facilties work (e.g. queueing sounds).&lt;br /&gt;
|-&lt;br /&gt;
| Minimap &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| World Map &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Neighbouring regions &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| Regions can neighbour each other, even if hosted on different servers.&lt;br /&gt;
|-&lt;br /&gt;
| Archiving &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| Entire regions can be saved and loaded as [[OpenSim Archives]].&lt;br /&gt;
|-&lt;br /&gt;
| [[PhysicsEngines|Physics]] &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| There are several physics modules bundled with OpenSim, but only the ODE module (Open Dynamics Engine) really works.&lt;br /&gt;
|-&lt;br /&gt;
| Parcel management &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Region settings &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Telehubs &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Estates &lt;br /&gt;
| bgcolor=&amp;quot;#ffd700&amp;quot; align=&amp;quot;center&amp;quot; | Partial &lt;br /&gt;
| Partial estate support is implemented. However, the only way to manipulate estates currently is via direct changes to the database.&lt;br /&gt;
|-&lt;br /&gt;
| Avatar limits &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes&lt;br /&gt;
| Avatar limits were implemented in OpenSimulator 0.7.2.&lt;br /&gt;
|-&lt;br /&gt;
| Prim limits&lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes&lt;br /&gt;
| Prim limits where implement in OpenSimulator 0.7.2.&lt;br /&gt;
|-&lt;br /&gt;
| Teleports&lt;br /&gt;
| bgcolor=&amp;quot;#ffd700&amp;quot; align=&amp;quot;center&amp;quot; | Partial &lt;br /&gt;
| Teleporting in can be done to any point in or off world (if hypergrid enabled) however, Blocking teleports to a parcel is not currently enforced.&lt;br /&gt;
|-&lt;br /&gt;
| Megaregions&lt;br /&gt;
| bgcolor=&amp;quot;#ff0000&amp;quot; align=&amp;quot;center&amp;quot; | Experimental&lt;br /&gt;
| This is a system that allows regions to be created on the simulator that are larger than 256m x 256m.  This is implemented purely on the server without requiring a specially adapted client.  However, this is not fully implemented and you may encounter various issues with megaregions.&lt;br /&gt;
|-&lt;br /&gt;
| [[OSSLNPC|NPCs]]&lt;br /&gt;
| bgcolor=&amp;quot;#ff0000&amp;quot; align=&amp;quot;center&amp;quot; | Experimental&lt;br /&gt;
| Allow NPCs to be created and manipulated on a region.  This is handled purely on the server-side - NPCs are different from bots controlled as external clients via a library such as libomv.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Other Simulation Features ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Feature Name &lt;br /&gt;
! Core OpenSim? &lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| IRC &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| Relay chat back and forth to an Internet Relay Channel.&lt;br /&gt;
|-&lt;br /&gt;
| Money &lt;br /&gt;
| bgcolor=&amp;quot;#ffffff&amp;quot; align=&amp;quot;center&amp;quot; | 3rd party &lt;br /&gt;
| There are no plans to directly provide economy modules in OpenSimulator though custom currency names are supported in 0.7.2 and after. Third party facilities include: &lt;br /&gt;
* [http://forge.opensimulator.org/gf/project/opencurrency/ OpenCurrency] &lt;br /&gt;
* [http://forge.opensimulator.org/gf/project/currency/ DTL Currency] &lt;br /&gt;
* [http://github.com/SnoopyPfeffer/Mod-PayPal Mod-PayPal] &lt;br /&gt;
* [https://www.virwox.com/omc-open-metaverse-currency.php Open Metaverse Currency (OMC)]&lt;br /&gt;
* [http://www.nsl.tuis.ac.jp/xoops/modules/xpwiki/?OpenSim%2FMoneyServer DTL/NSL Money Server]&lt;br /&gt;
|-&lt;br /&gt;
| Permissions &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| Permissions (e.g. controlling whether objects can be modified or copied) must be enabled in OpenSim.ini - these are not enabled by default&lt;br /&gt;
|-&lt;br /&gt;
| [[Monitoring]] &lt;br /&gt;
| bgcolor=&amp;quot;#ffd700&amp;quot; align=&amp;quot;center&amp;quot; | Partial &lt;br /&gt;
| A number of monitoring facilities exist, though none of them yet cover everything that one would want to monitor.&lt;br /&gt;
|-&lt;br /&gt;
| Voice &lt;br /&gt;
| bgcolor=&amp;quot;#ffd700&amp;quot; align=&amp;quot;center&amp;quot; | Partial &lt;br /&gt;
| Voice support is currently primitive. OpenSimulator currently bundles a Vivox module (only usable with a Vivox voice server) and a [[Freeswitch Module|Freeswitch module]].  A third party [[Mumble]] voice module also exists which supports indication of which avatar is speaking.  No module yet supports spatial voice.&lt;br /&gt;
|-&lt;br /&gt;
| Web frontends &lt;br /&gt;
| bgcolor=&amp;quot;#ffffff&amp;quot; align=&amp;quot;center&amp;quot; | 3rd party &lt;br /&gt;
| Various third-party web frontends are available, detailed on the [[Webinterface]] page.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Server Features ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Feature Name &lt;br /&gt;
! Core OpenSim? &lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Local console &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| The local command console in OpenSimulator is the one present when you start an OpenSimulator instance&lt;br /&gt;
|-&lt;br /&gt;
| [[RestConsole|Remote console]] &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[RemoteAdmin|Remote admin]] &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| The remote admin plugin allows OpenSimulator commands to be executed remotely.&lt;br /&gt;
|-&lt;br /&gt;
| [[Logging]] &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| OpenSimulator uses the log4net package. More details on the logging page.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
== Architectures ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Feature Name &lt;br /&gt;
! Core OpenSim? &lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Single server (standalone) mode &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| Persistent databases supported in standalone mode are SQLite and MySQL. A MSSQL exists and should work, but is not officially supported.&lt;br /&gt;
|-&lt;br /&gt;
| Grid (multi-server) mode &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| In grid mode, only persistence to a MySQL database is officially supported. Persistence can also be done with a MSSQL database but this is not officially supported.&lt;br /&gt;
|-&lt;br /&gt;
| [[Hypergrid]] &lt;br /&gt;
| bgcolor=&amp;quot;#ff0000&amp;quot; align=&amp;quot;center&amp;quot; | Experimental&lt;br /&gt;
| This is an architecture, [http://en.wikipedia.org/wiki/Orthogonal orthogonal] to the previous two, that allows users to visit completely separate OpenSimulator installations while retaining their appearance, identity and inventory.  This is under active development and should be considered experimental.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Feature_Matrix</id>
		<title>Feature Matrix</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Feature_Matrix"/>
				<updated>2012-05-03T10:07:17Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: /* World */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
This is a matrix of the features currently implemented in OpenSimulator. Please feel free to correct existing entries and add new ones. The data in this matrix refers to the currently released version of OpenSimulator unless otherwise stated.&lt;br /&gt;
&lt;br /&gt;
OpenSimulator can&amp;amp;nbsp;run on Linux &amp;amp;amp; Mac with MONO, see the [http://www.mono-project.com/Main_Page Mono project] for availability or your distribution provider. Windows requires Net Framework 3.51&amp;amp;nbsp;available from [http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ab99342f-5d1a-413d-8319-81da479ab0d7&amp;amp;displaylang=en MS Downloads] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prims ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Feature Name &lt;br /&gt;
! Core OpenSim? &lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Create/change/move/delete prims &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Persistent prim inventories &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Basic asset types &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| Basic asset types include textures, sounds, notecards, etc.&lt;br /&gt;
|-&lt;br /&gt;
| Coalesced object groups (being able to take a selection of unlinked objects as one group that can be rezzed back in the same spatial arrangements)&lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes&lt;br /&gt;
| Coalesced object groups means being able to take a selection of unlinked objects as one group that can be rezzed back in the same spatial arrangements.  Support added in OpenSimulator 0.7.1&lt;br /&gt;
|-&lt;br /&gt;
| Linksets &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| Bugs (some fairly fundamental) remain with linksets but basic support is implemented.&lt;br /&gt;
|-&lt;br /&gt;
| Media on a prim/Shared Media &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| Support added in OpenSimulator 0.7.1.  But please note that this is based on the current beta Linden implementation of mesh, which is likely to change soon.  Please do not rely on mesh for any production use at the moment.&lt;br /&gt;
|-&lt;br /&gt;
| [[Dynamic textures]] &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| Dynamic textures are textures that can be created on the fly via draw commands.&lt;br /&gt;
|-&lt;br /&gt;
| Sculpties &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| [[Mesh]] &lt;br /&gt;
| bgcolor=&amp;quot;#ffff00&amp;quot; align=&amp;quot;center&amp;quot; | Beta/Experimental&lt;br /&gt;
| Mesh is implemented in OpenSimulator 0.7.2 onwards.  This is the newer mesh implementation as found in Linden Lab viewer 3.  Older versions of OpenSimulator contained the older beta implementation.  Please note that this feature is experimental and should be used cautiously.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Users ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Feature Name &lt;br /&gt;
! Core OpenSim? &lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Walking &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Flying &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Sitting &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Animations &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Gestures &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Attachments &lt;br /&gt;
| bgcolor=&amp;quot;#ffd700&amp;quot; align=&amp;quot;center&amp;quot; | Partial &lt;br /&gt;
| Both worn attachments and Head Up Displays (HUDs) are implemented.  Outfits are implemented.  Wearing multiple attachments at a single point is not yet implemented.&lt;br /&gt;
|-&lt;br /&gt;
| Combat &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Region crossing &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Teleport &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Persistent avatar inventories &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Inventory library &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Chat &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Instant messaging &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes&lt;br /&gt;
| Offline IM storage requires a third party packages such as http://forge.opensimulator.org/gf/project/opensimwi/ in releases before 0.7.2.&lt;br /&gt;
|-&lt;br /&gt;
| Names &lt;br /&gt;
| bgcolor=&amp;quot;#ffd700&amp;quot; align=&amp;quot;center&amp;quot; | Partial &lt;br /&gt;
| Ordinary names consisting of a first and last name separated by a space are implemented.  'Display' names are not yet implemented.&lt;br /&gt;
|-&lt;br /&gt;
| Archiving &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| Users inventories and parts of inventories can be saved and loaded as [[Inventory Archives|OpenSimulator Inventory Archives]].&lt;br /&gt;
|-&lt;br /&gt;
| Friends &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Lure &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| [[Enabling Groups|Groups]]&lt;br /&gt;
| bgcolor=&amp;quot;#ffffff&amp;quot; align=&amp;quot;center&amp;quot; | 3rd party&lt;br /&gt;
| Group support is only available as third party projects: &lt;br /&gt;
* [https://github.com/mcortez/flotsam Group service implementation from the Flotsam project]. '''Please note: this is not working properly with OpenSimulator 0.7.0.1 or 0.7.0.2, though it is fixed in OpenSimulator 0.7.1 and onwards. 0.6.9 should also work okay.''' &lt;br /&gt;
* [https://github.com/jor3l/OSModules/tree/master/osgroups/ osgroups from jor3l] &lt;br /&gt;
* [http://code.google.com/p/openmetaverse SimianGrid] also provides a Groups connector as part of its grid services package.&lt;br /&gt;
&lt;br /&gt;
These services have connectors that are bundled with core OpenSimulator. See [[Enabling Groups]] and the OpenSim.ini.example file for more details.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Profiles &lt;br /&gt;
| bgcolor=&amp;quot;#ffffff&amp;quot; align=&amp;quot;center&amp;quot; | 3rd party &lt;br /&gt;
| &lt;br /&gt;
Only avatar names are stored in core OpenSimulator. Profile support (e.g. interests, 1st Life, etc.) is available via 3rd party modules, though these may currently only support OpenSimulator 0.6.9. Please add suitable links here. &lt;br /&gt;
&lt;br /&gt;
* [http://forge.opensimulator.org/gf/project/osprofile forge.opensimulator.org/gf/project/osprofile]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Search &lt;br /&gt;
| bgcolor=&amp;quot;#ffffff&amp;quot; align=&amp;quot;center&amp;quot; | 3rd party &lt;br /&gt;
| Search support is only available via third party modules. &lt;br /&gt;
* [[OpenSimSearch]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Display names &lt;br /&gt;
| bgcolor=&amp;quot;#ff0000&amp;quot; align=&amp;quot;center&amp;quot; | No&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Scripting ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Feature Name &lt;br /&gt;
! Core OpenSim? &lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| [[Developer Documentation#Scripting|Scripts]] &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| A large percentage (though not all) of LSL is implemented by OpenSimulator. There are also OpenSimulator specific OSSL functions available.&lt;br /&gt;
|-&lt;br /&gt;
| [[Non-LSL scripting|C# scripting]] &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| C# scripting is experimental and insecure. However, it can be useful in some situations&lt;br /&gt;
|-&lt;br /&gt;
| Script control &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| There are some facilities to control what user types can create and edit scripts. This can help secure an implementation using C# scripts. See the OpenSim.ini.example file in the OpenSimulator distribution for more details.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
== World ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Feature Name &lt;br /&gt;
! Core OpenSim? &lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Terrain &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Sun &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Wind &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Cloud &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Vegetation &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Sound &lt;br /&gt;
| bgcolor=&amp;quot;#ffd700&amp;quot; align=&amp;quot;center&amp;quot; | Partial &lt;br /&gt;
| Not all sound facilties work (e.g. queueing sounds).&lt;br /&gt;
|-&lt;br /&gt;
| Minimap &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| World Map &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Neighbouring regions &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| Regions can neighbour each other, even if hosted on different servers.&lt;br /&gt;
|-&lt;br /&gt;
| Archiving &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| Entire regions can be saved and loaded as [[OpenSim Archives]].&lt;br /&gt;
|-&lt;br /&gt;
| [[PhysicsEngines|Physics]] &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| There are several physics modules bundled with OpenSim, but only the ODE module (Open Dynamics Engine) really works.&lt;br /&gt;
|-&lt;br /&gt;
| Parcel management &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Region settings &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Estates &lt;br /&gt;
| bgcolor=&amp;quot;#ffd700&amp;quot; align=&amp;quot;center&amp;quot; | Partial &lt;br /&gt;
| Partial estate support is implemented. However, the only way to manipulate estates currently is via direct changes to the database.&lt;br /&gt;
|-&lt;br /&gt;
| Avatar limits &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes&lt;br /&gt;
| Avatar limits were implemented in OpenSimulator 0.7.2.&lt;br /&gt;
|-&lt;br /&gt;
| Prim limits&lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes&lt;br /&gt;
| Prim limits where implement in OpenSimulator 0.7.2.&lt;br /&gt;
|-&lt;br /&gt;
| Teleports&lt;br /&gt;
| bgcolor=&amp;quot;#ffd700&amp;quot; align=&amp;quot;center&amp;quot; | Partial &lt;br /&gt;
| Teleporting in can be done to any point in or off world (if hypergrid enabled) however, Blocking teleports to a parcel is not currently enforced.&lt;br /&gt;
|-&lt;br /&gt;
| Megaregions&lt;br /&gt;
| bgcolor=&amp;quot;#ff0000&amp;quot; align=&amp;quot;center&amp;quot; | Experimental&lt;br /&gt;
| This is a system that allows regions to be created on the simulator that are larger than 256m x 256m.  This is implemented purely on the server without requiring a specially adapted client.  However, this is not fully implemented and you may encounter various issues with megaregions.&lt;br /&gt;
|-&lt;br /&gt;
| [[OSSLNPC|NPCs]]&lt;br /&gt;
| bgcolor=&amp;quot;#ff0000&amp;quot; align=&amp;quot;center&amp;quot; | Experimental&lt;br /&gt;
| Allow NPCs to be created and manipulated on a region.  This is handled purely on the server-side - NPCs are different from bots controlled as external clients via a library such as libomv.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Other Simulation Features ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Feature Name &lt;br /&gt;
! Core OpenSim? &lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| IRC &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| Relay chat back and forth to an Internet Relay Channel.&lt;br /&gt;
|-&lt;br /&gt;
| Money &lt;br /&gt;
| bgcolor=&amp;quot;#ffffff&amp;quot; align=&amp;quot;center&amp;quot; | 3rd party &lt;br /&gt;
| There are no plans to directly provide economy modules in OpenSimulator though custom currency names are supported in 0.7.2 and after. Third party facilities include: &lt;br /&gt;
* [http://forge.opensimulator.org/gf/project/opencurrency/ OpenCurrency] &lt;br /&gt;
* [http://forge.opensimulator.org/gf/project/currency/ DTL Currency] &lt;br /&gt;
* [http://github.com/SnoopyPfeffer/Mod-PayPal Mod-PayPal] &lt;br /&gt;
* [https://www.virwox.com/omc-open-metaverse-currency.php Open Metaverse Currency (OMC)]&lt;br /&gt;
* [http://www.nsl.tuis.ac.jp/xoops/modules/xpwiki/?OpenSim%2FMoneyServer DTL/NSL Money Server]&lt;br /&gt;
|-&lt;br /&gt;
| Permissions &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| Permissions (e.g. controlling whether objects can be modified or copied) must be enabled in OpenSim.ini - these are not enabled by default&lt;br /&gt;
|-&lt;br /&gt;
| [[Monitoring]] &lt;br /&gt;
| bgcolor=&amp;quot;#ffd700&amp;quot; align=&amp;quot;center&amp;quot; | Partial &lt;br /&gt;
| A number of monitoring facilities exist, though none of them yet cover everything that one would want to monitor.&lt;br /&gt;
|-&lt;br /&gt;
| Voice &lt;br /&gt;
| bgcolor=&amp;quot;#ffd700&amp;quot; align=&amp;quot;center&amp;quot; | Partial &lt;br /&gt;
| Voice support is currently primitive. OpenSimulator currently bundles a Vivox module (only usable with a Vivox voice server) and a [[Freeswitch Module|Freeswitch module]].  A third party [[Mumble]] voice module also exists which supports indication of which avatar is speaking.  No module yet supports spatial voice.&lt;br /&gt;
|-&lt;br /&gt;
| Web frontends &lt;br /&gt;
| bgcolor=&amp;quot;#ffffff&amp;quot; align=&amp;quot;center&amp;quot; | 3rd party &lt;br /&gt;
| Various third-party web frontends are available, detailed on the [[Webinterface]] page.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Server Features ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Feature Name &lt;br /&gt;
! Core OpenSim? &lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Local console &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| The local command console in OpenSimulator is the one present when you start an OpenSimulator instance&lt;br /&gt;
|-&lt;br /&gt;
| [[RestConsole|Remote console]] &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| [[RemoteAdmin|Remote admin]] &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| The remote admin plugin allows OpenSimulator commands to be executed remotely.&lt;br /&gt;
|-&lt;br /&gt;
| [[Logging]] &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| OpenSimulator uses the log4net package. More details on the logging page.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
== Architectures ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Feature Name &lt;br /&gt;
! Core OpenSim? &lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Single server (standalone) mode &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| Persistent databases supported in standalone mode are SQLite and MySQL. A MSSQL exists and should work, but is not officially supported.&lt;br /&gt;
|-&lt;br /&gt;
| Grid (multi-server) mode &lt;br /&gt;
| bgcolor=&amp;quot;#00ff00&amp;quot; align=&amp;quot;center&amp;quot; | Yes &lt;br /&gt;
| In grid mode, only persistence to a MySQL database is officially supported. Persistence can also be done with a MSSQL database but this is not officially supported.&lt;br /&gt;
|-&lt;br /&gt;
| [[Hypergrid]] &lt;br /&gt;
| bgcolor=&amp;quot;#ff0000&amp;quot; align=&amp;quot;center&amp;quot; | Experimental&lt;br /&gt;
| This is an architecture, [http://en.wikipedia.org/wiki/Orthogonal orthogonal] to the previous two, that allows users to visit completely separate OpenSimulator installations while retaining their appearance, identity and inventory.  This is under active development and should be considered experimental.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Monodevelop</id>
		<title>Monodevelop</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Monodevelop"/>
				<updated>2012-04-05T02:47:00Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: /* What is monodevelop? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{{Quicklinks}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' The information on this page is dated. Monodevelop is at release 2.8.8.4 and has matured quite a bit since this writing. &lt;br /&gt;
&lt;br /&gt;
= What is monodevelop? =&lt;br /&gt;
Most of us already know that it is more convenient to view/edit the OpenSimulator source in Visual Studio 2005 C# Express on Windows. However, for those of us who don't have access to Windows, monodevelop is the most suitable equivalent and remains one of the best candidate for .NET programming on Linux systems. If you are planning to work with the source on any Linux system, monodevelop and kdevelop are both capable of viewing/editing C# solutions/projects. However, support for monodevelop is somewhat limited and it does not have the same features as VS2005 C# Express. If you have an available Windows system - use Visual Studio.&lt;br /&gt;
&lt;br /&gt;
* Lastest Release: monodevelop 2.0&lt;br /&gt;
* Official Site: [http://monodevelop.com/ MonoDevelop official site]&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
=== From Package ===&lt;br /&gt;
For Debian-based Linux distributions, you can install the monodevelop package via the following command in terminal:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;sudo aptitude install monodevelop&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your sources do not have monodevelop, you can install using the following (from [http://www.mono-project.com/Other_Downloads Mono Project])&lt;br /&gt;
&lt;br /&gt;
You can install Mono 1.9.1 and MonoDevelop 1.0 by using apt or aptitude from the debian.meebey.net/etch-backports repository. This repository is driven by the official package maintainer of the Debian Mono packages. This repository is also known to work for Ubuntu/Gutsy.&lt;br /&gt;
&lt;br /&gt;
Add this line to your /etc/apt/sources.list file:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;deb http://debian.meebey.net/etch-backports /&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then install or upgrade your Mono and MonoDevelop using:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;apt-get update &amp;amp;&amp;amp; apt-get dist-upgrade&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;apt-get update &amp;amp;&amp;amp; apt-get install monodevelop&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Fedora 9, you can install the monodevelop package via the following command in terminal (as root):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;yum install monodevelop&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please be aware that monodevelop has a slew of dependencies! Also, if you are interested in additional programming plugins, you might find them in your distribution's repository. If they are not there, you can also add them in the monodevelop GUI under the Add-in Manager in Tools.&lt;br /&gt;
&lt;br /&gt;
=== From Source ===&lt;br /&gt;
Depending on your distribution of Linux, you may need to install monodevelop from source. However, it is important that you check the main site for packages. Both the available packages and sources can be found at http://www.monodevelop.com/Download (the official download site). In order to install monodevelop from source, download the appropriate file and extract the contents to a folder of your choosing. After you have extracted the files, execute the following command:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt; ./configure &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make install &amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are numerous problems that may occur during this process (as with any build), according to public forums. We will work to keep an updated archive of fixes as they are discovered. Anyone who is familiar with these issues may also amend this document openly.&lt;br /&gt;
&lt;br /&gt;
=== monodevelop 2.0 ===&lt;br /&gt;
&lt;br /&gt;
Monodevelop 2.0 works and will compile OpenSim, which will then run under mono 2.0. However, it is a tremendous hassle to build. If you need monodevelop 2.0 you should look after Ubuntu 9.04 or OpenSuse.&lt;br /&gt;
&lt;br /&gt;
=== In a Virtual Machine ===&lt;br /&gt;
Another option, if you don't have a Mono environment set up, is to download the pre-configured VMware virtual machine from http://www.mono-project.com/VMware_Image . It runs OpenSuSE, and is maintained by Novell (owners of SuSE). It includes monodevelop, so you can try it out without fiddling with your current environment. If you do not have VMware installed, you can download a free &amp;quot;VMWare Player&amp;quot; -- for Windows and Linux (32- and 64-bit) -- from http://vmware.com/products/player/.&lt;br /&gt;
&lt;br /&gt;
== Running monodevelop ==&lt;br /&gt;
Running monodevelop is simple. Open your terminal and run &amp;lt;tt&amp;gt;monodevelop&amp;lt;/tt&amp;gt;. However, you should keep in mind that, if your OpenSimulator directory is owned by root because you installed it with the &amp;lt;tt&amp;gt;sudo&amp;lt;/tt&amp;gt; command, you might want to run monodevelop as root. This will allow you to save your files without any annoying write-errors.&lt;br /&gt;
&lt;br /&gt;
'''It is worth remembering that running OpenSimulator as root is a really, really, really, really bad idea and you should just chown it to your user account instead of following the above caveat.'''&lt;br /&gt;
&lt;br /&gt;
== Creating a workspace ==&lt;br /&gt;
To create a projectfile, you must run the prebuild.sh/.bat, and nant. This creates opensim.sln, which you can import into monoDevelop.&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
&lt;br /&gt;
=== Error: I can't open the solution? ===&lt;br /&gt;
One common error you might encounter when attempting to open the OpenSimulator source is:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;... can not be saved, because the source file can not be read.&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer: Native support for Visual Studio 2005 solutions/projects is required to view/edit the OpenSimulator source. You will need to obtain version 0.13 or higher. Please be sure to check your repository for the latest release. In some cases, the provided version may be too old. For Ubuntu users, the feisty repository contains version 0.12 of monodevelop. You will need to install a newer version from source or find another repository to update the package.&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu Users: Update to Version 0.13 ===&lt;br /&gt;
The following repository contains Ubuntu updates for mono and monodevelop:&lt;br /&gt;
&lt;br /&gt;
 deb http://www.viraptor.info/repo feisty-custombackports contrib&lt;br /&gt;
&lt;br /&gt;
You can add this source under the Third-Party Software tab in your Software Source manager under System&amp;gt;Administration. After it has been added, you can run your Synaptic Package Manager to update your files manually if you desire. You may be prompted to update through the auto-updater. You can also manually add this repository in your terminal by adding the address to the bottom of /etc/apt/sources.list and executing the following command:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;sudo aptitude update &amp;amp;&amp;amp; sudo aptitude upgrade&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The Future of monodevelop ==&lt;br /&gt;
Given some time, monodevelop could prove useful in the future development of OpenSimulator. However, more research must be done on the program itself to determine this. This is the primary reason that I created this entry and I'm hoping for more contributions. Some of us are working to integrate more features into monodevelop, but for now, VS2005 is the optimal choice.&lt;br /&gt;
&lt;br /&gt;
* I hope this documents helps. Please feel free to update/modify this entry as needed.&lt;br /&gt;
* Note: I have been using Monodevelop 0.19 to work with OpenSimulator without any major problems! -- Matth&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Monodevelop</id>
		<title>Monodevelop</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Monodevelop"/>
				<updated>2012-04-05T02:42:01Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: Undo revision 29489 by BlueWall (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{{Quicklinks}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= What is monodevelop? =&lt;br /&gt;
Most of us already know that it is more convenient to view/edit the OpenSimulator source in Visual Studio 2005 C# Express on Windows. However, for those of us who don't have access to Windows, monodevelop is the most suitable equivalent and remains one of the best candidate for .NET programming on Linux systems. If you are planning to work with the source on any Linux system, monodevelop and kdevelop are both capable of viewing/editing C# solutions/projects. However, support for monodevelop is somewhat limited and it does not have the same features as VS2005 C# Express. If you have an available Windows system - use Visual Studio.&lt;br /&gt;
&lt;br /&gt;
* Lastest Release: monodevelop 2.0&lt;br /&gt;
* Official Site: [http://monodevelop.com/ MonoDevelop official site]&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
=== From Package ===&lt;br /&gt;
For Debian-based Linux distributions, you can install the monodevelop package via the following command in terminal:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;sudo aptitude install monodevelop&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your sources do not have monodevelop, you can install using the following (from [http://www.mono-project.com/Other_Downloads Mono Project])&lt;br /&gt;
&lt;br /&gt;
You can install Mono 1.9.1 and MonoDevelop 1.0 by using apt or aptitude from the debian.meebey.net/etch-backports repository. This repository is driven by the official package maintainer of the Debian Mono packages. This repository is also known to work for Ubuntu/Gutsy.&lt;br /&gt;
&lt;br /&gt;
Add this line to your /etc/apt/sources.list file:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;deb http://debian.meebey.net/etch-backports /&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then install or upgrade your Mono and MonoDevelop using:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;apt-get update &amp;amp;&amp;amp; apt-get dist-upgrade&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;apt-get update &amp;amp;&amp;amp; apt-get install monodevelop&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Fedora 9, you can install the monodevelop package via the following command in terminal (as root):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;yum install monodevelop&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please be aware that monodevelop has a slew of dependencies! Also, if you are interested in additional programming plugins, you might find them in your distribution's repository. If they are not there, you can also add them in the monodevelop GUI under the Add-in Manager in Tools.&lt;br /&gt;
&lt;br /&gt;
=== From Source ===&lt;br /&gt;
Depending on your distribution of Linux, you may need to install monodevelop from source. However, it is important that you check the main site for packages. Both the available packages and sources can be found at http://www.monodevelop.com/Download (the official download site). In order to install monodevelop from source, download the appropriate file and extract the contents to a folder of your choosing. After you have extracted the files, execute the following command:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt; ./configure &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make install &amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are numerous problems that may occur during this process (as with any build), according to public forums. We will work to keep an updated archive of fixes as they are discovered. Anyone who is familiar with these issues may also amend this document openly.&lt;br /&gt;
&lt;br /&gt;
=== monodevelop 2.0 ===&lt;br /&gt;
&lt;br /&gt;
Monodevelop 2.0 works and will compile OpenSim, which will then run under mono 2.0. However, it is a tremendous hassle to build. If you need monodevelop 2.0 you should look after Ubuntu 9.04 or OpenSuse.&lt;br /&gt;
&lt;br /&gt;
=== In a Virtual Machine ===&lt;br /&gt;
Another option, if you don't have a Mono environment set up, is to download the pre-configured VMware virtual machine from http://www.mono-project.com/VMware_Image . It runs OpenSuSE, and is maintained by Novell (owners of SuSE). It includes monodevelop, so you can try it out without fiddling with your current environment. If you do not have VMware installed, you can download a free &amp;quot;VMWare Player&amp;quot; -- for Windows and Linux (32- and 64-bit) -- from http://vmware.com/products/player/.&lt;br /&gt;
&lt;br /&gt;
== Running monodevelop ==&lt;br /&gt;
Running monodevelop is simple. Open your terminal and run &amp;lt;tt&amp;gt;monodevelop&amp;lt;/tt&amp;gt;. However, you should keep in mind that, if your OpenSimulator directory is owned by root because you installed it with the &amp;lt;tt&amp;gt;sudo&amp;lt;/tt&amp;gt; command, you might want to run monodevelop as root. This will allow you to save your files without any annoying write-errors.&lt;br /&gt;
&lt;br /&gt;
'''It is worth remembering that running OpenSimulator as root is a really, really, really, really bad idea and you should just chown it to your user account instead of following the above caveat.'''&lt;br /&gt;
&lt;br /&gt;
== Creating a workspace ==&lt;br /&gt;
To create a projectfile, you must run the prebuild.sh/.bat, and nant. This creates opensim.sln, which you can import into monoDevelop.&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
&lt;br /&gt;
=== Error: I can't open the solution? ===&lt;br /&gt;
One common error you might encounter when attempting to open the OpenSimulator source is:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;... can not be saved, because the source file can not be read.&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer: Native support for Visual Studio 2005 solutions/projects is required to view/edit the OpenSimulator source. You will need to obtain version 0.13 or higher. Please be sure to check your repository for the latest release. In some cases, the provided version may be too old. For Ubuntu users, the feisty repository contains version 0.12 of monodevelop. You will need to install a newer version from source or find another repository to update the package.&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu Users: Update to Version 0.13 ===&lt;br /&gt;
The following repository contains Ubuntu updates for mono and monodevelop:&lt;br /&gt;
&lt;br /&gt;
 deb http://www.viraptor.info/repo feisty-custombackports contrib&lt;br /&gt;
&lt;br /&gt;
You can add this source under the Third-Party Software tab in your Software Source manager under System&amp;gt;Administration. After it has been added, you can run your Synaptic Package Manager to update your files manually if you desire. You may be prompted to update through the auto-updater. You can also manually add this repository in your terminal by adding the address to the bottom of /etc/apt/sources.list and executing the following command:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;sudo aptitude update &amp;amp;&amp;amp; sudo aptitude upgrade&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The Future of monodevelop ==&lt;br /&gt;
Given some time, monodevelop could prove useful in the future development of OpenSimulator. However, more research must be done on the program itself to determine this. This is the primary reason that I created this entry and I'm hoping for more contributions. Some of us are working to integrate more features into monodevelop, but for now, VS2005 is the optimal choice.&lt;br /&gt;
&lt;br /&gt;
* I hope this documents helps. Please feel free to update/modify this entry as needed.&lt;br /&gt;
* Note: I have been using Monodevelop 0.19 to work with OpenSimulator without any major problems! -- Matth&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Monodevelop</id>
		<title>Monodevelop</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Monodevelop"/>
				<updated>2012-04-05T02:40:11Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: /* What is monodevelop? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{{Quicklinks}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: The information in this page is outdated. Monodevelop has matured quite a bit since this writing and is at version 2.8.8.4.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' The information on this page is dated. Monodevelop is at release 2.8.8.4 and has matured quite a bit since this writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= What is monodevelop? =&lt;br /&gt;
Most of us already know that it is more convenient to view/edit the OpenSimulator source in Visual Studio 2005 C# Express on Windows. However, for those of us who don't have access to Windows, monodevelop is the most suitable equivalent and remains one of the best candidate for .NET programming on Linux systems. If you are planning to work with the source on any Linux system, monodevelop and kdevelop are both capable of viewing/editing C# solutions/projects. However, support for monodevelop is somewhat limited and it does not have the same features as VS2005 C# Express. If you have an available Windows system - use Visual Studio.&lt;br /&gt;
&lt;br /&gt;
* Lastest Release: monodevelop 2.0&lt;br /&gt;
* Official Site: [http://monodevelop.com/ MonoDevelop official site]&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
=== From Package ===&lt;br /&gt;
For Debian-based Linux distributions, you can install the monodevelop package via the following command in terminal:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;sudo aptitude install monodevelop&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your sources do not have monodevelop, you can install using the following (from [http://www.mono-project.com/Other_Downloads Mono Project])&lt;br /&gt;
&lt;br /&gt;
You can install Mono 1.9.1 and MonoDevelop 1.0 by using apt or aptitude from the debian.meebey.net/etch-backports repository. This repository is driven by the official package maintainer of the Debian Mono packages. This repository is also known to work for Ubuntu/Gutsy.&lt;br /&gt;
&lt;br /&gt;
Add this line to your /etc/apt/sources.list file:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;deb http://debian.meebey.net/etch-backports /&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then install or upgrade your Mono and MonoDevelop using:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;apt-get update &amp;amp;&amp;amp; apt-get dist-upgrade&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;apt-get update &amp;amp;&amp;amp; apt-get install monodevelop&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Fedora 9, you can install the monodevelop package via the following command in terminal (as root):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;yum install monodevelop&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please be aware that monodevelop has a slew of dependencies! Also, if you are interested in additional programming plugins, you might find them in your distribution's repository. If they are not there, you can also add them in the monodevelop GUI under the Add-in Manager in Tools.&lt;br /&gt;
&lt;br /&gt;
=== From Source ===&lt;br /&gt;
Depending on your distribution of Linux, you may need to install monodevelop from source. However, it is important that you check the main site for packages. Both the available packages and sources can be found at http://www.monodevelop.com/Download (the official download site). In order to install monodevelop from source, download the appropriate file and extract the contents to a folder of your choosing. After you have extracted the files, execute the following command:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt; ./configure &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make install &amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are numerous problems that may occur during this process (as with any build), according to public forums. We will work to keep an updated archive of fixes as they are discovered. Anyone who is familiar with these issues may also amend this document openly.&lt;br /&gt;
&lt;br /&gt;
=== monodevelop 2.0 ===&lt;br /&gt;
&lt;br /&gt;
Monodevelop 2.0 works and will compile OpenSim, which will then run under mono 2.0. However, it is a tremendous hassle to build. If you need monodevelop 2.0 you should look after Ubuntu 9.04 or OpenSuse.&lt;br /&gt;
&lt;br /&gt;
=== In a Virtual Machine ===&lt;br /&gt;
Another option, if you don't have a Mono environment set up, is to download the pre-configured VMware virtual machine from http://www.mono-project.com/VMware_Image . It runs OpenSuSE, and is maintained by Novell (owners of SuSE). It includes monodevelop, so you can try it out without fiddling with your current environment. If you do not have VMware installed, you can download a free &amp;quot;VMWare Player&amp;quot; -- for Windows and Linux (32- and 64-bit) -- from http://vmware.com/products/player/.&lt;br /&gt;
&lt;br /&gt;
== Running monodevelop ==&lt;br /&gt;
Running monodevelop is simple. Open your terminal and run &amp;lt;tt&amp;gt;monodevelop&amp;lt;/tt&amp;gt;. However, you should keep in mind that, if your OpenSimulator directory is owned by root because you installed it with the &amp;lt;tt&amp;gt;sudo&amp;lt;/tt&amp;gt; command, you might want to run monodevelop as root. This will allow you to save your files without any annoying write-errors.&lt;br /&gt;
&lt;br /&gt;
'''It is worth remembering that running OpenSimulator as root is a really, really, really, really bad idea and you should just chown it to your user account instead of following the above caveat.'''&lt;br /&gt;
&lt;br /&gt;
== Creating a workspace ==&lt;br /&gt;
To create a projectfile, you must run the prebuild.sh/.bat, and nant. This creates opensim.sln, which you can import into monoDevelop.&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
&lt;br /&gt;
=== Error: I can't open the solution? ===&lt;br /&gt;
One common error you might encounter when attempting to open the OpenSimulator source is:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;... can not be saved, because the source file can not be read.&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer: Native support for Visual Studio 2005 solutions/projects is required to view/edit the OpenSimulator source. You will need to obtain version 0.13 or higher. Please be sure to check your repository for the latest release. In some cases, the provided version may be too old. For Ubuntu users, the feisty repository contains version 0.12 of monodevelop. You will need to install a newer version from source or find another repository to update the package.&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu Users: Update to Version 0.13 ===&lt;br /&gt;
The following repository contains Ubuntu updates for mono and monodevelop:&lt;br /&gt;
&lt;br /&gt;
 deb http://www.viraptor.info/repo feisty-custombackports contrib&lt;br /&gt;
&lt;br /&gt;
You can add this source under the Third-Party Software tab in your Software Source manager under System&amp;gt;Administration. After it has been added, you can run your Synaptic Package Manager to update your files manually if you desire. You may be prompted to update through the auto-updater. You can also manually add this repository in your terminal by adding the address to the bottom of /etc/apt/sources.list and executing the following command:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;sudo aptitude update &amp;amp;&amp;amp; sudo aptitude upgrade&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The Future of monodevelop ==&lt;br /&gt;
Given some time, monodevelop could prove useful in the future development of OpenSimulator. However, more research must be done on the program itself to determine this. This is the primary reason that I created this entry and I'm hoping for more contributions. Some of us are working to integrate more features into monodevelop, but for now, VS2005 is the optimal choice.&lt;br /&gt;
&lt;br /&gt;
* I hope this documents helps. Please feel free to update/modify this entry as needed.&lt;br /&gt;
* Note: I have been using Monodevelop 0.19 to work with OpenSimulator without any major problems! -- Matth&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Monodevelop</id>
		<title>Monodevelop</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Monodevelop"/>
				<updated>2012-04-05T02:34:59Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: /* What is monodevelop? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{{Quicklinks}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: The information in this page is outdated. Monodevelop has matured quite a bit since this writing and is at version 2.8.8.4.&lt;br /&gt;
&lt;br /&gt;
= What is monodevelop? =&lt;br /&gt;
Most of us already know that it is more convenient to view/edit the OpenSimulator source in Visual Studio 2005 C# Express on Windows. However, for those of us who don't have access to Windows, monodevelop is the most suitable equivalent and remains one of the best candidate for .NET programming on Linux systems. If you are planning to work with the source on any Linux system, monodevelop and kdevelop are both capable of viewing/editing C# solutions/projects. However, support for monodevelop is somewhat limited and it does not have the same features as VS2005 C# Express. If you have an available Windows system - use Visual Studio.&lt;br /&gt;
&lt;br /&gt;
* Lastest Release: monodevelop 2.0&lt;br /&gt;
* Official Site: [http://monodevelop.com/ MonoDevelop official site]&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
=== From Package ===&lt;br /&gt;
For Debian-based Linux distributions, you can install the monodevelop package via the following command in terminal:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;sudo aptitude install monodevelop&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your sources do not have monodevelop, you can install using the following (from [http://www.mono-project.com/Other_Downloads Mono Project])&lt;br /&gt;
&lt;br /&gt;
You can install Mono 1.9.1 and MonoDevelop 1.0 by using apt or aptitude from the debian.meebey.net/etch-backports repository. This repository is driven by the official package maintainer of the Debian Mono packages. This repository is also known to work for Ubuntu/Gutsy.&lt;br /&gt;
&lt;br /&gt;
Add this line to your /etc/apt/sources.list file:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;deb http://debian.meebey.net/etch-backports /&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then install or upgrade your Mono and MonoDevelop using:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;apt-get update &amp;amp;&amp;amp; apt-get dist-upgrade&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;apt-get update &amp;amp;&amp;amp; apt-get install monodevelop&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Fedora 9, you can install the monodevelop package via the following command in terminal (as root):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;yum install monodevelop&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please be aware that monodevelop has a slew of dependencies! Also, if you are interested in additional programming plugins, you might find them in your distribution's repository. If they are not there, you can also add them in the monodevelop GUI under the Add-in Manager in Tools.&lt;br /&gt;
&lt;br /&gt;
=== From Source ===&lt;br /&gt;
Depending on your distribution of Linux, you may need to install monodevelop from source. However, it is important that you check the main site for packages. Both the available packages and sources can be found at http://www.monodevelop.com/Download (the official download site). In order to install monodevelop from source, download the appropriate file and extract the contents to a folder of your choosing. After you have extracted the files, execute the following command:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt; ./configure &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make install &amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are numerous problems that may occur during this process (as with any build), according to public forums. We will work to keep an updated archive of fixes as they are discovered. Anyone who is familiar with these issues may also amend this document openly.&lt;br /&gt;
&lt;br /&gt;
=== monodevelop 2.0 ===&lt;br /&gt;
&lt;br /&gt;
Monodevelop 2.0 works and will compile OpenSim, which will then run under mono 2.0. However, it is a tremendous hassle to build. If you need monodevelop 2.0 you should look after Ubuntu 9.04 or OpenSuse.&lt;br /&gt;
&lt;br /&gt;
=== In a Virtual Machine ===&lt;br /&gt;
Another option, if you don't have a Mono environment set up, is to download the pre-configured VMware virtual machine from http://www.mono-project.com/VMware_Image . It runs OpenSuSE, and is maintained by Novell (owners of SuSE). It includes monodevelop, so you can try it out without fiddling with your current environment. If you do not have VMware installed, you can download a free &amp;quot;VMWare Player&amp;quot; -- for Windows and Linux (32- and 64-bit) -- from http://vmware.com/products/player/.&lt;br /&gt;
&lt;br /&gt;
== Running monodevelop ==&lt;br /&gt;
Running monodevelop is simple. Open your terminal and run &amp;lt;tt&amp;gt;monodevelop&amp;lt;/tt&amp;gt;. However, you should keep in mind that, if your OpenSimulator directory is owned by root because you installed it with the &amp;lt;tt&amp;gt;sudo&amp;lt;/tt&amp;gt; command, you might want to run monodevelop as root. This will allow you to save your files without any annoying write-errors.&lt;br /&gt;
&lt;br /&gt;
'''It is worth remembering that running OpenSimulator as root is a really, really, really, really bad idea and you should just chown it to your user account instead of following the above caveat.'''&lt;br /&gt;
&lt;br /&gt;
== Creating a workspace ==&lt;br /&gt;
To create a projectfile, you must run the prebuild.sh/.bat, and nant. This creates opensim.sln, which you can import into monoDevelop.&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
&lt;br /&gt;
=== Error: I can't open the solution? ===&lt;br /&gt;
One common error you might encounter when attempting to open the OpenSimulator source is:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;... can not be saved, because the source file can not be read.&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Answer: Native support for Visual Studio 2005 solutions/projects is required to view/edit the OpenSimulator source. You will need to obtain version 0.13 or higher. Please be sure to check your repository for the latest release. In some cases, the provided version may be too old. For Ubuntu users, the feisty repository contains version 0.12 of monodevelop. You will need to install a newer version from source or find another repository to update the package.&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu Users: Update to Version 0.13 ===&lt;br /&gt;
The following repository contains Ubuntu updates for mono and monodevelop:&lt;br /&gt;
&lt;br /&gt;
 deb http://www.viraptor.info/repo feisty-custombackports contrib&lt;br /&gt;
&lt;br /&gt;
You can add this source under the Third-Party Software tab in your Software Source manager under System&amp;gt;Administration. After it has been added, you can run your Synaptic Package Manager to update your files manually if you desire. You may be prompted to update through the auto-updater. You can also manually add this repository in your terminal by adding the address to the bottom of /etc/apt/sources.list and executing the following command:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;sudo aptitude update &amp;amp;&amp;amp; sudo aptitude upgrade&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The Future of monodevelop ==&lt;br /&gt;
Given some time, monodevelop could prove useful in the future development of OpenSimulator. However, more research must be done on the program itself to determine this. This is the primary reason that I created this entry and I'm hoping for more contributions. Some of us are working to integrate more features into monodevelop, but for now, VS2005 is the optimal choice.&lt;br /&gt;
&lt;br /&gt;
* I hope this documents helps. Please feel free to update/modify this entry as needed.&lt;br /&gt;
* Note: I have been using Monodevelop 0.19 to work with OpenSimulator without any major problems! -- Matth&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/News</id>
		<title>News</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/News"/>
				<updated>2012-04-04T14:44:18Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: /* Project News */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
== Project News ==&lt;br /&gt;
&lt;br /&gt;
For older release history, see [[Release Notes]].&lt;br /&gt;
=== March 2012 ===&lt;br /&gt;
* [[0.7.3.1 Release|OpenSimulator 0.7.3.1 Released]].&lt;br /&gt;
=== February 2012 ===&lt;br /&gt;
* [[0.7.3 Release|OpenSimulator 0.7.3 Released]].&lt;br /&gt;
&lt;br /&gt;
=== October 2011 ===&lt;br /&gt;
* [[0.7.2 Release|OpenSimulator 0.7.2 released]].&lt;br /&gt;
&lt;br /&gt;
=== May 2011 ===&lt;br /&gt;
* [[0.7.1 Release|OpenSimulator 0.7.1 released]].&lt;br /&gt;
* [[0.7.1.1 Release|OpenSimulator 0.7.1.1 released]].&lt;br /&gt;
&lt;br /&gt;
=== August 2010 ===&lt;br /&gt;
* [[0.7.0.1 Release|OpenSimulator 0.7.0.1 released]].&lt;br /&gt;
* Long haitus on the project news wiki page ended! Folks - please feel free to add your news here.&lt;br /&gt;
&lt;br /&gt;
=== January 2010 ===&lt;br /&gt;
-Unofficial OpenSimulator meetup - UK&amp;lt;br /&amp;gt;&lt;br /&gt;
-Presence Refactor in testing. (Friends, SQLite and HyperGrid still need implementation in this branch) [http://opensimulator.org/viewgit/?a=shortlog&amp;amp;p=opensim&amp;amp;h=refs/heads/presence-refactor link]&amp;lt;br /&amp;gt;&lt;br /&gt;
-We're also looking for solid documentation writing. If you're interested, please subscribe to [http://lists.berlios.de/mailman/listinfo/opensim-dev opensim-dev] and send us a letter.&lt;br /&gt;
&lt;br /&gt;
=== December 2009 ===&lt;br /&gt;
Version 0.6.8 has been released. Source packages can be downloaded at http://dist.opensimulator.org/.&lt;br /&gt;
&lt;br /&gt;
=== September 2009 ===&lt;br /&gt;
Version 0.6.7 has been released. Source packages can be downloaded at http://dist.opensimulator.org/.&lt;br /&gt;
&lt;br /&gt;
=== August 2009 ===&lt;br /&gt;
OpenSimulator has moved it's source repository to git. Please see [[Using Git]] for more details about setting up git to access the source repository. &lt;br /&gt;
For anyone that can't use git, we're keeping a SVN mirror at http://opensimulator.org/svn/opensim-track/trunk. &lt;br /&gt;
&lt;br /&gt;
Additionally, we have a viewgit for OpenSimulator at http://opensimulator.org/viewgit/?a=summary&amp;amp;p=opensim&lt;br /&gt;
&lt;br /&gt;
=== June 2009 ===&lt;br /&gt;
Version 0.6.6 has been released. Source packages can be downloaded at http://dist.opensimulator.org/.&lt;br /&gt;
&lt;br /&gt;
=== May 2009 ===&lt;br /&gt;
Starting in r9562 OpenSimulator has a set of new configuration variables that specify how services and service connectors are set up. &lt;br /&gt;
&lt;br /&gt;
Please reference the [[Services and Service Connectors Configuration]] page for more information.&lt;br /&gt;
&lt;br /&gt;
=== April 2009 ===&lt;br /&gt;
* There is a current proposal to drop Visual Studio 2005 support in OpenSimulator by end of May. Visual Studio 2008 will still be supported. If you have strong opinions on the matter, use the [[Mailing Lists|mailing lists]] to make your voice heard. (this proposal was approved)&lt;br /&gt;
&lt;br /&gt;
== Press ==&lt;br /&gt;
&lt;br /&gt;
=== February 2010 ===&lt;br /&gt;
* [http://chronicle.com/article/After-Frustrations-in-Second/64137/ 14 Feb 2010 - After Frustrations in Second Life, Colleges Look to New Virtual Worlds]&lt;br /&gt;
=== January 2010 ===&lt;br /&gt;
* [http://blog.genkii.com/2010/01/13/sparkle-im-1-3-4-released/ 13 Jan 2010 - iPhone App Sparkle IM 1.3.4 released which supports OpenSimulator grids]&lt;br /&gt;
* [http://realxtend.blogspot.com/2010/01/naali-01-released.html 01 Jan 2010 - RealXtend releases first RC for naali, the realXtend and OpenSimulator Viewer]&lt;br /&gt;
=== November 2009 ===&lt;br /&gt;
* [http://www.hypergridbusiness.com/2009/11/opensim-in-intel-spotlight/ 18 Nov 2009 - OpenSimulator in Intel Spotlight, Intel CTO Justin Rattner introduced OpenSimulator and ScienceSim at SC09 Super Computing Conference]&lt;br /&gt;
=== September 2009 ===&lt;br /&gt;
* [http://www.businesswire.com/portal/site/home/permalink/?ndmViewId=news_view&amp;amp;newsId=20090930005401&amp;amp;newsLang=en 30 Sept 2009 - 3Di Releases Open Source, web based viewer called Rei]&lt;br /&gt;
=== January 2009 ===&lt;br /&gt;
* [http://blogs.intel.com/research/2009/01/sciencesim.php 29 Jan 2009 - Intel Research Launches ScienceSim based on OpenSimulator]&lt;br /&gt;
=== September 2008 ===&lt;br /&gt;
* [http://www-03.ibm.com/press/us/en/pressrelease/25038.wss 03 Sep 2008 - Made in IBM Labs: IBM Moves Real-Time Communication and Collaboration Into 3-D (integrated with OpenSim)]&lt;br /&gt;
=== February 2008 ===&lt;br /&gt;
* [http://www-03.ibm.com/press/us/en/pressrelease/23565.wss 21st Feb 2008 - Made in IBM Labs: IBM 3-D Data Centers Show Virtual Worlds Fit for Business]&lt;br /&gt;
* [http://www.realxtend.org/realxtend_opensim_release_15_02_2008.html 15th Feb 2008 - RealXtend joins OpenSim: Team up to make open source Virtual World standard]&lt;br /&gt;
* [http://www.ngigroup.com/jp/press/2008/02/001264.html 5th Feb 2008 - 3Di, Inc. Creates Voice Communication Function for Its Virtual World Application &amp;quot;Jin-sei&amp;quot;]&lt;br /&gt;
&amp;lt;cleanpage title=hide cats=hide /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RSS Feeds ==&lt;br /&gt;
&amp;lt;rss&amp;gt;http://planet.opensim.us/rss20.xml|max=5|short|filter=opensim&amp;lt;/rss&amp;gt;&lt;br /&gt;
&amp;lt;rss&amp;gt;http://feeds.technorati.com/search/opensim?language=en|max=5|short&amp;lt;/rss&amp;gt;&lt;br /&gt;
&amp;lt;rss&amp;gt;http://feeds.technorati.com/search/opensim?authority=n&amp;amp;language=pt|max=5|short&amp;lt;/rss&amp;gt;&lt;br /&gt;
&amp;lt;rss&amp;gt;http://feeds.technorati.com/search/opensim?authority=n&amp;amp;language=es|max=5|short&amp;lt;/rss&amp;gt;&lt;br /&gt;
&amp;lt;rss&amp;gt;http://feeds.technorati.com/search/opensim?authority=n&amp;amp;language=fr|max=5|short&amp;lt;/rss&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Blogs ==&lt;br /&gt;
* [http://www.worldsimterra.com WorldSimTerra (Português, English, Español)]&lt;br /&gt;
* [http://www.adamfrisby.com/blog/2008/08/resources-for-running-your-own-opensim Adam's OpenSimulator resources blog post] - a list of resources for running OpenSimulator&lt;br /&gt;
* [http://rock-vacirca.blogspot.com Rock Vacirca's Blog] - lots of tutorials, not only on OpenSim, but on MySQL, Hippo, Second Inventory, etc&lt;br /&gt;
* [http://justincc.wordpress.com justincc's blog] - A blog with a weekly OpenSimulator development update and regular articles on various OpenSimulator topics.&lt;br /&gt;
* [http://lbsa71.net/category/opensim/ lbsa71.net] - tidbits from an OpenSimulator developer.&lt;br /&gt;
* [http://imohax.com Mo Hax] - posts and videos about OpenSimulator and Second Life from beginner perspective, focus on content previewing and educational use '''(No Page Information available)'''&lt;br /&gt;
* [http://www.metaverse3d.com/tag/opensim/ Metaverse3d] - French blog about metaverse and OpenSimulator.&lt;br /&gt;
* [http://www.subwereld.nl/ Subwereld] - A Dutch weblog about the OpenSimulator Project, the virtual world grids and OpenSimulator tools. '''(URI going to 404 Error)'''&lt;br /&gt;
* [http://maxping.org/ Maxping] - A web magazine that writes about open source virtual worlds. '''(Verify URI / Domain, no informations available)'''&lt;br /&gt;
* [http://blog.cyberlandia.net/ Cyberlandia Blog] - Italian blog about Opensim, hypergrid and virtual worlds '''(Blog never available)'''&lt;br /&gt;
* [http://b5od.com/?tag=/opensimulator b5od Teravus Misc Blog] - Teravus' technology blog about .NET, OpenSimulator, Security and other topics (OpenSimulator Tag) '''(Blogsystem in Maintenance-Modus for a long time)'''&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/News</id>
		<title>News</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/News"/>
				<updated>2012-03-11T14:48:15Z</updated>
		
		<summary type="html">&lt;p&gt;BlueWall: /* Project News */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quicklinks}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
== Project News ==&lt;br /&gt;
&lt;br /&gt;
For older release history, see [[Release Notes]].&lt;br /&gt;
=== February 2012 ===&lt;br /&gt;
* [[0.7.3 Release|OpenSimulator 0.7.3 Released]].&lt;br /&gt;
&lt;br /&gt;
=== October 2011 ===&lt;br /&gt;
* [[0.7.2 Release|OpenSimulator 0.7.2 released]].&lt;br /&gt;
&lt;br /&gt;
=== May 2011 ===&lt;br /&gt;
* [[0.7.1 Release|OpenSimulator 0.7.1 released]].&lt;br /&gt;
* [[0.7.1.1 Release|OpenSimulator 0.7.1.1 released]].&lt;br /&gt;
&lt;br /&gt;
=== August 2010 ===&lt;br /&gt;
* [[0.7.0.1 Release|OpenSimulator 0.7.0.1 released]].&lt;br /&gt;
* Long haitus on the project news wiki page ended! Folks - please feel free to add your news here.&lt;br /&gt;
&lt;br /&gt;
=== January 2010 ===&lt;br /&gt;
-Unofficial OpenSimulator meetup - UK&amp;lt;br /&amp;gt;&lt;br /&gt;
-Presence Refactor in testing. (Friends, SQLite and HyperGrid still need implementation in this branch) [http://opensimulator.org/viewgit/?a=shortlog&amp;amp;p=opensim&amp;amp;h=refs/heads/presence-refactor link]&amp;lt;br /&amp;gt;&lt;br /&gt;
-We're also looking for solid documentation writing. If you're interested, please subscribe to [http://lists.berlios.de/mailman/listinfo/opensim-dev opensim-dev] and send us a letter.&lt;br /&gt;
&lt;br /&gt;
=== December 2009 ===&lt;br /&gt;
Version 0.6.8 has been released. Source packages can be downloaded at http://dist.opensimulator.org/.&lt;br /&gt;
&lt;br /&gt;
=== September 2009 ===&lt;br /&gt;
Version 0.6.7 has been released. Source packages can be downloaded at http://dist.opensimulator.org/.&lt;br /&gt;
&lt;br /&gt;
=== August 2009 ===&lt;br /&gt;
OpenSimulator has moved it's source repository to git. Please see [[Using Git]] for more details about setting up git to access the source repository. &lt;br /&gt;
For anyone that can't use git, we're keeping a SVN mirror at http://opensimulator.org/svn/opensim-track/trunk. &lt;br /&gt;
&lt;br /&gt;
Additionally, we have a viewgit for OpenSimulator at http://opensimulator.org/viewgit/?a=summary&amp;amp;p=opensim&lt;br /&gt;
&lt;br /&gt;
=== June 2009 ===&lt;br /&gt;
Version 0.6.6 has been released. Source packages can be downloaded at http://dist.opensimulator.org/.&lt;br /&gt;
&lt;br /&gt;
=== May 2009 ===&lt;br /&gt;
Starting in r9562 OpenSimulator has a set of new configuration variables that specify how services and service connectors are set up. &lt;br /&gt;
&lt;br /&gt;
Please reference the [[Services and Service Connectors Configuration]] page for more information.&lt;br /&gt;
&lt;br /&gt;
=== April 2009 ===&lt;br /&gt;
* There is a current proposal to drop Visual Studio 2005 support in OpenSimulator by end of May. Visual Studio 2008 will still be supported. If you have strong opinions on the matter, use the [[Mailing Lists|mailing lists]] to make your voice heard. (this proposal was approved)&lt;br /&gt;
&lt;br /&gt;
== Press ==&lt;br /&gt;
&lt;br /&gt;
=== February 2010 ===&lt;br /&gt;
* [http://chronicle.com/article/After-Frustrations-in-Second/64137/ 14 Feb 2010 - After Frustrations in Second Life, Colleges Look to New Virtual Worlds]&lt;br /&gt;
=== January 2010 ===&lt;br /&gt;
* [http://blog.genkii.com/2010/01/13/sparkle-im-1-3-4-released/ 13 Jan 2010 - iPhone App Sparkle IM 1.3.4 released which supports OpenSimulator grids]&lt;br /&gt;
* [http://realxtend.blogspot.com/2010/01/naali-01-released.html 01 Jan 2010 - RealXtend releases first RC for naali, the realXtend and OpenSimulator Viewer]&lt;br /&gt;
=== November 2009 ===&lt;br /&gt;
* [http://www.hypergridbusiness.com/2009/11/opensim-in-intel-spotlight/ 18 Nov 2009 - OpenSimulator in Intel Spotlight, Intel CTO Justin Rattner introduced OpenSimulator and ScienceSim at SC09 Super Computing Conference]&lt;br /&gt;
=== September 2009 ===&lt;br /&gt;
* [http://www.businesswire.com/portal/site/home/permalink/?ndmViewId=news_view&amp;amp;newsId=20090930005401&amp;amp;newsLang=en 30 Sept 2009 - 3Di Releases Open Source, web based viewer called Rei]&lt;br /&gt;
=== January 2009 ===&lt;br /&gt;
* [http://blogs.intel.com/research/2009/01/sciencesim.php 29 Jan 2009 - Intel Research Launches ScienceSim based on OpenSimulator]&lt;br /&gt;
=== September 2008 ===&lt;br /&gt;
* [http://www-03.ibm.com/press/us/en/pressrelease/25038.wss 03 Sep 2008 - Made in IBM Labs: IBM Moves Real-Time Communication and Collaboration Into 3-D (integrated with OpenSim)]&lt;br /&gt;
=== February 2008 ===&lt;br /&gt;
* [http://www-03.ibm.com/press/us/en/pressrelease/23565.wss 21st Feb 2008 - Made in IBM Labs: IBM 3-D Data Centers Show Virtual Worlds Fit for Business]&lt;br /&gt;
* [http://www.realxtend.org/realxtend_opensim_release_15_02_2008.html 15th Feb 2008 - RealXtend joins OpenSim: Team up to make open source Virtual World standard]&lt;br /&gt;
* [http://www.ngigroup.com/jp/press/2008/02/001264.html 5th Feb 2008 - 3Di, Inc. Creates Voice Communication Function for Its Virtual World Application &amp;quot;Jin-sei&amp;quot;]&lt;br /&gt;
&amp;lt;cleanpage title=hide cats=hide /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RSS Feeds ==&lt;br /&gt;
&amp;lt;rss&amp;gt;http://planet.opensim.us/rss20.xml|max=5|short|filter=opensim&amp;lt;/rss&amp;gt;&lt;br /&gt;
&amp;lt;rss&amp;gt;http://feeds.technorati.com/search/opensim?language=en|max=5|short&amp;lt;/rss&amp;gt;&lt;br /&gt;
&amp;lt;rss&amp;gt;http://feeds.technorati.com/search/opensim?authority=n&amp;amp;language=pt|max=5|short&amp;lt;/rss&amp;gt;&lt;br /&gt;
&amp;lt;rss&amp;gt;http://feeds.technorati.com/search/opensim?authority=n&amp;amp;language=es|max=5|short&amp;lt;/rss&amp;gt;&lt;br /&gt;
&amp;lt;rss&amp;gt;http://feeds.technorati.com/search/opensim?authority=n&amp;amp;language=fr|max=5|short&amp;lt;/rss&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Blogs ==&lt;br /&gt;
* [http://www.worldsimterra.com WorldSimTerra (Português, English, Español)]&lt;br /&gt;
* [http://www.adamfrisby.com/blog/2008/08/resources-for-running-your-own-opensim Adam's OpenSimulator resources blog post] - a list of resources for running OpenSimulator&lt;br /&gt;
* [http://rock-vacirca.blogspot.com Rock Vacirca's Blog] - lots of tutorials, not only on OpenSim, but on MySQL, Hippo, Second Inventory, etc&lt;br /&gt;
* [http://justincc.wordpress.com justincc's blog] - A blog with a weekly OpenSimulator development update and regular articles on various OpenSimulator topics.&lt;br /&gt;
* [http://lbsa71.net/category/opensim/ lbsa71.net] - tidbits from an OpenSimulator developer.&lt;br /&gt;
* [http://imohax.com Mo Hax] - posts and videos about OpenSimulator and Second Life from beginner perspective, focus on content previewing and educational use '''(No Page Information available)'''&lt;br /&gt;
* [http://www.metaverse3d.com/tag/opensim/ Metaverse3d] - French blog about metaverse and OpenSimulator.&lt;br /&gt;
* [http://www.subwereld.nl/ Subwereld] - A Dutch weblog about the OpenSimulator Project, the virtual world grids and OpenSimulator tools. '''(URI going to 404 Error)'''&lt;br /&gt;
* [http://maxping.org/ Maxping] - A web magazine that writes about open source virtual worlds. '''(Verify URI / Domain, no informations available)'''&lt;br /&gt;
* [http://blog.cyberlandia.net/ Cyberlandia Blog] - Italian blog about Opensim, hypergrid and virtual worlds '''(Blog never available)'''&lt;br /&gt;
* [http://b5od.com/?tag=/opensimulator b5od Teravus Misc Blog] - Teravus' technology blog about .NET, OpenSimulator, Security and other topics (OpenSimulator Tag) '''(Blogsystem in Maintenance-Modus for a long time)'''&lt;/div&gt;</summary>
		<author><name>BlueWall</name></author>	</entry>

	</feed>