FAQ

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
(What does ... mean?)
(Add jsonsimstats stats too)
 
(75 intermediate revisions by 32 users not shown)
Line 1: Line 1:
[[Category:Users]]
+
{{Quicklinks}}
==About OpenSim==
+
<br />
===What is OpenSim?===
+
 
OpenSim is a platform for operating a virtual world, and supports multiple independent regions connecting to a single centralized grid. This is somewhat similar to the web, where anyone can run their own web server, tied together through the internet. It can also be used to create a private grid, analogous to a private intranet.
+
== About OpenSimulator ==
 +
=== What is OpenSimulator? ===
 +
OpenSimulator is a platform for operating a virtual world, and supports multiple independent regions connecting to a single centralized grid. This is somewhat similar to the web, where anyone can run their own web server, tied together through the internet. It can also be used to create a private grid, analogous to a private intranet.
  
===What is a region?===
+
=== What is a region? ===
A region is what you see when you log into OpenSim. It is the physical place (well, virtual physical space) where avatars move and interact. It is a square patch of land which may contain an island, mountains, a plain, buildings, etc., or just an ocean.
+
A region is what you see when you log into OpenSimulator. It is the physical place (well, virtual physical space) where avatars move and interact. It is a square patch of land which may contain an island, mountains, a plain, buildings, etc., or just an ocean.
  
===What is the grid?===
+
=== What is the grid? ===
The grid is the level that organizes the regions and their positions in the world, and handles things that need to exist across regions, such as a user's inventory. You can think of it as similar to the world map.
+
The grid is the level that organizes the regions and their positions in the world, and handles things that need to exist across regions, such as a user's inventory. You can think of it as similar to the world map.
  
===What does ... mean?===
+
=== What does ... mean? ===
See [[Technical_Reference | OpenSim:Technical Reference]] for definitions of some terms commonly used in OpenSim.
+
See the [[Definitions|Technical Reference Glossary]] for definitions of terms commonly used in OpenSimulator.
  
==Configuring OpenSim==
+
== Configuring OpenSimulator ==
 
First, read [[OpenSim Configuration]].
 
First, read [[OpenSim Configuration]].
===Where can I get a new UUID for my sim config?===
+
=== Where can I get a new UUID for my sim config? ===
 
* See [[OpenSim Configuration]]
 
* See [[OpenSim Configuration]]
  
===Can I run multiple regions with OpenSim?===
+
=== Can I run multiple regions with OpenSim? ===
 
* See [[OpenSim Configuration]]
 
* See [[OpenSim Configuration]]
  
===What databases can be used with OpenSim?===
+
=== What databases can be used with OpenSim? ===
 
* See [[OpenSim Configuration]]
 
* See [[OpenSim Configuration]]
  
==Running OpenSim==
+
=== What about PostgreSQL or NHibernate? ===
 +
* NHibernate support, which enabled OpenSimulator to access PostgreSQL database, was removed on October 2009 ([http://opensimulator.org/viewgit/?a=commitdiff&p=opensim&h=fdce1be3db287bed901332b90ba57165e201d3fc r/11252]) due to lack of users and mainteners ([http://lists.berlios.de/pipermail/opensim-dev/2010-April/008537.html Opensim-dev: NHibernate status]).
  
===I get a bunch of ERROR: There was an error while scanning assembly:... <br>
+
== Running OpenSimulator ==
errors on startup, but OpenSim appears to run normally.  Is this a problem?===
+
No.  These errors are being put out by the third party plugin scanning code.  As we have it scanning the entire bin/ directory, it picks up dlls which don't have the correct information to be scanned, and so puts out this error.  Don't worry about it :)
+
  
For the record, the current set of errors are
+
=== An error is thrown while trying to start up OpenSimulator ===
  
ERROR: There was an error while scanning assembly: /home/caseyj/jc/it/v/virtual-worlds/second-life/servers/opensim/src/opensim-svn-minim/bin/PhysX-wrapper.dll (Could not load file or assembly '/home/caseyj/jc/it/v/virtual-worlds/second-life/servers/opensim/src/opensim-svn-minim/bin/PhysX-wrapper.dll' or one of its dependencies. An attempt was made to load a program with an incorrect format.)
+
See [[Troubleshooting]].
  
ERROR: There was an error while scanning assembly: /home/caseyj/jc/it/v/virtual-worlds/second-life/servers/opensim/src/opensim-svn-minim/bin/ode-debug.dll (Could not load file or assembly '/home/caseyj/jc/it/v/virtual-worlds/second-life/servers/opensim/src/opensim-svn-minim/bin/ode-debug.dll' or one of its dependencies. An attempt was made to load a program with an incorrect format.)
+
== Connecting to OpenSimulator ==
 +
=== I've set up my OpenSimulator server and it looks like the login works but the client hangs on 'connecting to region' ===
  
ERROR: There was an error while scanning assembly: /home/caseyj/jc/it/v/virtual-worlds/second-life/servers/opensim/src/opensim-svn-minim/bin/ode.dll (Could not load file or assembly '/home/caseyj/jc/it/v/virtual-worlds/second-life/servers/opensim/src/opensim-svn-minim/bin/ode.dll' or one of its dependencies. An attempt was made to load a program with an incorrect format.)
+
There are 2 steps to login.  
  
ERROR: There was an error while scanning assembly: /home/caseyj/jc/it/v/virtual-worlds/second-life/servers/opensim/src/opensim-svn-minim/bin/openjpeg-libsl.dll (Could not load file or assembly '/home/caseyj/jc/it/v/virtual-worlds/second-life/servers/opensim/src/opensim-svn-minim/bin/openjpeg-libsl.dll' or one of its dependencies. An attempt was made to load a program with an incorrect format.)
+
1) When you start up the client and enter your name/password, it sends those details to the OpenSimulator login service. If your password is correct, it tells the region simulator that you're coming. It then sends back to you (the client) the ip address and port to use to enter that region (as gleaned from your Regions.ini file).
  
ERROR: There was an error while scanning assembly: /home/caseyj/jc/it/v/virtual-worlds/second-life/servers/opensim/src/opensim-svn-minim/bin/sqlite3.dll (Could not load file or assembly '/home/caseyj/jc/it/v/virtual-worlds/second-life/servers/opensim/src/opensim-svn-minim/bin/sqlite3.dll' or one of its dependencies. An attempt was made to load a program with an incorrect format.)
+
2) Your client then connects to the region using those details.
  
===Errors about modules not found and RegionBanListItem could not be loaded===
+
If the client hangs on 'connecting to region' then the details being sent to it in step 2) are not allowing it to connect. Check your Regions.ini carefully and try to telnet to the ip & port that should be available.
  
This is caused if you upgrade from trunk through svn and copy new files in the same directory.
+
If you're seeing this problem after you've made your sim available to the outside world (where people outside your network can connect to it but you cannot) then you probably don't have a router that supports NAT loopback. This allows you to connect to a local machine through your router via an external address. See [[NAT Loopback Routers]] for a list of routers that support this feature.
To solve these errors during the startup of opensim.exe remove the following files from your bin folder:
+
  
OpenSIm.DataStore.MSSQL.dll
+
== OpenSimulator in the Wild ==
 +
=== Are there test servers running OpenSimulator I can connect to? ===
  
OpenSIm.DataStore.MSSQL.dll.mdm
+
Yes. Check out our [[Grid List]]! There are often many private servers up for testing. Hang out on the [[IRC]] channel, and troll for URI's.  
  
==OpenSim in the Wild==
+
There are also several private organizations offering directories and search engines. They include:  
===Are there test servers running OpenSim I can connect to?===
+
Yes.  Check out our [[Grid List]]! There are often many private servers up for testing. Hang out on the IRC channel (Freenode #opensim), and troll for URI's.
+
=== Can I teleport from the Linden Lab Second Life grid to my Sim? (updated!)===
+
Yes and No, Since the new public beta, launched on july 31th 2008 by Linden Lab, it is now possible to connect opensim servers/regions with the Second life grid, however this is not intended for regular users. <br>
+
<font color="red">NOTE:</font> currently it <font color="red">ONLY</font> works with the preview/beta grid of second life, not the main grid.)<br><Br>
+
It's in an early development stage and thus geared towards developers of virtual world/techniques, and is all but easy to setup. <br>Furthermore, when an avatar is hopping from an SL region to an Opensim region, the avatar will be "ruthed", meaning it will be the default Secondlife avatar. <br>NO assets (incl, shapes, skins, clothing etc) are tranfered during teleport, hence you wont have access to them, on the other grid. The beta test, is currently focussing on Teleportation between grids mainly. In the future, it should be possible to teleport WITH asset tranfers. But that wont be happening any time soon. <br><Br>If you want to try it out, read this page for more info on how to get started (with all the risks involved, don't say i didn't warn you):<br>[http://blog.secondlife.com/2008/07/31/open-grid-public-beta-begins-today/ http://blog.secondlife.com/2008/07/31/open-grid-public-beta-begins-today/]<Br><Br>
+
For normal operation, stick to the regular versions of opensim.
+
  
==MySQL==
+
* [http://www.hyperica.com Hyperica] -- a categorized directory of hypergrid-enabled OpenSimulator destinations, currently over 250 locations<br />
===How do I isolate and delete a user's Trash items in a MySQL grid database?===
+
* [http://www.metaverseink.com MetaverseInk] -- ha key-word-based search engine for OpenSimulator grids, mostly those running the Diva Distro
 +
:'''''Note:''' Diva seems to continue to maintain the search engine, but for many years it stopped working as it should, and automatic (voluntary) updates fail with an error, so this search engine will be hopelessly outdated — [[User:Gwyneth Llewelyn|Gwyneth Llewelyn]] ([[User talk:Gwyneth Llewelyn|talk]]) 12:16, 23 May 2020 (PDT)''
 +
* [http://www.gridhop.net GridHop] -- a list covering the major OpenSimulator grids, currently over 150 destinations accessible over hypergrid teleport
 +
'''Note: This link seems to be dead. [[User:Acryline|Acryline]] :12:00, 22 Sept 2021
 +
* [http://www.hgurl.com HGURL] -- a key-word-search database for all grid, all accessible via hypergrid (in progress API for acces to search engine and info in world).
 +
* [http://www.thehypergates.com/ The HyperGates] -- The first dynamic, auto-updating HyperGrid directory for both HyperGrid 1.5 ( OpenSimulator 0.7.x ) and HyperGrid 1.0 ( OpenSimulator 0.6.x ) standalones & grids. Download the HyperGate from the site now and Join the HyperGate Network. The most reliable HyperGrid directory.
 +
:'''''Note:''' Seems to be dead; site has been 'taken over' by a Japanese company — [[User:Gwyneth Llewelyn|Gwyneth Llewelyn]] ([[User talk:Gwyneth Llewelyn|talk]]) 12:16, 23 May 2020 (PDT)''
 +
* [http://www.opensimworld.com/ OpenSimWorld.com] -- A HyperGrid directory that monitors the number of visitors per region. Their teleporter allows you to access destinations from in-world.
 +
 
 +
=== Are there any companies that will host my grid for me? ===
 +
 
 +
Yes there are dozens of independent OpenSimulator hosting providers. The following are not affiliated with OpenSimulator.org.
 +
 
 +
* [https://zetamex.com/ Zetamex Network]
 +
* [https://reactiongrid.com ReactionGrid]
 +
* [https://tomahost.com/ TomaHost]
 +
* [http://www.dreamlandmetaverse.com DreamLand Metaverse]
 +
* [http://www.yoursimspot.com YourSimSpot]
 +
* [http://edocio.com Edocio (Educational Sims Only.]
 +
More vendors listed here: [https://www.hypergridbusiness.com/category/vendors/ Hypergrid Business Vendors Directory] -- a categorized directory of OpenSimulator vendors, currently listing about four dozen providers.<br />
 +
 
 +
=== Can I teleport from the Linden Lab Second Life grid to my Sim? ===
 +
No. In 2008 and 2009, there had been the connection to vaak grid, [http://blog.secondlife.com/2008/07/31/open-grid-public-beta-begins-today/ which enabled us to teleport from Second Life over to an OpenSimulator grid] before LindenLab closing it. As of 2010, "The vaak grid is currently unavailable as we transition from OGP based services to VWRAP based services."([http://wiki.secondlife.com/wiki/Open_Grid_Public_Beta "Open Grid Public Beta" in Second Life Wiki])
 +
 
 +
== Troubleshooting ==
 +
Please see the [[Troubleshooting]] page.
 +
 
 +
== MySQL ==
 +
=== How do I isolate and delete a user's Trash items in a MySQL grid database? ===
 
<font color="red">NOTE:</font> BACK UP YOUR DATABASE!
 
<font color="red">NOTE:</font> BACK UP YOUR DATABASE!
 +
 +
CAUTION: The Linux default directory for the MySQL database is /var/lib/mysql Many backup tools (e.g. backupPC) do NOT back up /var/*! Make certain that the database and not just the MySQL code (/usr/bin/mysql) is included in your nightly backups! The actual paths will be different for different operating systems and databases, but the problem is the same.
  
 
'''1.''' Locate the avatars UUID you wish to find the trash items of, in the '''users''' table<br />
 
'''1.''' Locate the avatars UUID you wish to find the trash items of, in the '''users''' table<br />
Line 70: Line 95:
 
'''2.''' Use the avatars UUID to search the field_name '''AgentID''' in the '''inventoryFolders''' table, using '''Trash''' as the '''folderName''' to isolate the users Trash '''folderID'''<br />
 
'''2.''' Use the avatars UUID to search the field_name '''AgentID''' in the '''inventoryFolders''' table, using '''Trash''' as the '''folderName''' to isolate the users Trash '''folderID'''<br />
 
<font size="0.9em">This query will locate the users Trash folder entry: (replace 00000000-0000-0000-0000-000000000000 with UUID of user)</font>
 
<font size="0.9em">This query will locate the users Trash folder entry: (replace 00000000-0000-0000-0000-000000000000 with UUID of user)</font>
  <nowiki>SELECT `folderID` FROM `inventoryfolders` WHERE `agentID` LIKE '00000000-0000-0000-0000-000000000000' AND `folderName` LIKE 'Trash'
+
  <nowiki>SELECT `folderID` FROM `inventoryfolders` WHERE `agentID` LIKE '00000000-0000-0000-0000-000000000000' AND `folderName` LIKE 'Trash' LIMIT 0 , 30;</nowiki>
LIMIT 0 , 30;</nowiki>
+
 
<br />
 
<br />
 
'''3.''' Use the '''folderID''' UUID obtained in the last query to find all of the trash items in the '''inventoryitems''' table, you can then delete them once you have isolated them.<br />
 
'''3.''' Use the '''folderID''' UUID obtained in the last query to find all of the trash items in the '''inventoryitems''' table, you can then delete them once you have isolated them.<br />
Line 79: Line 103:
 
'''<font color="red">NOTE:</font>''' These steps will not remove the associated assets from the assets table, just the items in the inventory '''inventoryitems''' table.
 
'''<font color="red">NOTE:</font>''' These steps will not remove the associated assets from the assets table, just the items in the inventory '''inventoryitems''' table.
  
===How do I isolate and resolve duplicate inventory folder entries in a MySQL grid database?===
+
=== How do I isolate and resolve duplicate inventory folder entries in a MySQL grid database? ===
 
<font color="red">NOTE:</font> BACK UP YOUR DATABASE!<br />
 
<font color="red">NOTE:</font> BACK UP YOUR DATABASE!<br />
  
Line 94: Line 118:
 
  <nowiki>SELECT * FROM `inventoryfolders` WHERE `folderID` NOT LIKE '00000000-0000-0000-0000-000000000000' LIMIT 0 , 30;</nowiki>
 
  <nowiki>SELECT * FROM `inventoryfolders` WHERE `folderID` NOT LIKE '00000000-0000-0000-0000-000000000000' LIMIT 0 , 30;</nowiki>
  
==In World Questions==
+
== In World Questions ==
 
=== Does in world scripting work yet? ===
 
=== Does in world scripting work yet? ===
Not fully implemented, but there is a lot of work going on here. Please see [[ScriptEngines]], [[LSL Status]] and [[OSSL Status]] for the latest info.
+
Not fully implemented, but most of it works, and there is a lot of work going on here. Please see [[ScriptEngines]], [[LSL Status]] and [[OSSL Status]] for the latest info.
  
===Why do I walk through objects?===
+
=== Can I customize my avatar? ===
Basicphysics doesn't support collisions between objects (just between you and the ground).  There is active work on other physics engines for OpenSim, but these are quite experimental at this point, so not considered supported.
+
Yes. In order to do this:
 
+
===Can I customize my avatar?===
+
Yes. In order to do this:
+
 
* Click the Inventory Button
 
* Click the Inventory Button
 
* Create -> New Clothes -> Shirt, Pants, etc
 
* Create -> New Clothes -> Shirt, Pants, etc
Line 109: Line 130:
 
* Wear them
 
* Wear them
  
Your avatar doesn't always face a nice direction for doing this, so you'll need to use the camera operations to see your face for some of the modifications. This is a known issue, will be fixed in the future. Also, you'll need to rewear you parts once you first join the environment. Right now default appearance is always "Ruth".
+
Your avatar doesn't always face a nice direction for doing this, so you'll need to use the camera operations to see your face for some of the modifications. This is a known issue, will be fixed in the future. Also, you'll need to rewear you parts once you first join the environment. Right now default appearance is always "Ruth".
  
===Why don't my terrain settings and prims stay through restarts?===
+
=== Why do I look like I gas cloud right after I did the the previous steps? ===
You haven't set it up to use a database. See [[OpenSim_Database_support|OpenSim Database support]] for info on how to set it up to use a database. (SqLite is the easiest of these to set up and should probably be used by anyone unfamiliar with any of the options).
+
Second Life eliminated Ruth from their client. The Ruth we see in OpenSimulator is our own attempt of a yoga teacher and not truly Second Life's Ruth. When you create a shirt, pants, skin and shape and wear them without changing any parameters, the Second Life Viewer understands you are not Ruth. Since Ruth is no more, you become a cloud of gas. To fix it, either change a parameter of one of them before wearing all 4, or, if you already are a gas cloud, right click one of these items in your inventory and click edit. That should bring up the edit appearance menus. Just move any sliders and voilá.
  
===I used XEngine, but my recent update caused DotNetEngine to come on again===
+
=== Why doesn't my world map update when I edit the terrain? ===
There were some changes and you will need to change or create the line DefaultScriptEngine = "XEngine" in the startup section to get XEngine back. See [[ScriptEngines]]
+
There are three approaches depending on just how adventurous you want to be. From the least to the most adventurous:
 
+
* From the simulator console run generate map or simply restart your simulator
===Why doesn't my world map update when I edit the terrain?===
+
* Edit MaptileRefresh parameter in [Map] section of OpenSimDefaults.ini
There are three approaches depending on just how adventurous you want to be. From the least to the most adventurous:
+
* Not for the faint of heart! Edit the "WorldMapModule.cs" file and change the "LazySaveGeneratedMaptile" method to change the "RefreshSeconds" value to something less than two days. Be sure to read the comments and understand why things are the way they are.
* Wait two days.  You will need to restart your sim at the end of the two days to get the updates.
+
* Exit the .xml file for the region.  Change the value in the "lastmap_refresh" attribute to "0".  You will need to restart the sim.
+
* Not for the faint of heart! Edit the "WorldMapModule.cs" file and change the "LazySaveGeneratedMaptile" method to change the "RefreshSeconds" value to something less than two days. Be sure to read the comments and understand why things are the way they are.
+
  
 
Once your terrain stabilizes, this won't be much of a problem, but it is nice to see the updates while you're furiously developing something.
 
Once your terrain stabilizes, this won't be much of a problem, but it is nice to see the updates while you're furiously developing something.
  
===Why are my knees bent when I stand idle?===
+
=== How do I give a user God Mode privileges? ===
This seems to be a result of the ODE Physics Engine on 64 bit systems.  A fix is to edit OpenSim.ini and change the following line:
+
Open the Opensim database, select table useraccounts and set the UserLevel to 200 for the account that should have God Mode privileges.
* av_capsule_standup_tensor_linux = 550000
+
to
+
* av_capsule_standup_tensor_linux = 1700000
+
  
Note that this line of code is under the [ODEPhysicsSettings] section of the OpenSim.ini file.
+
Then, in the Advanced menu of the Firestorm viewer, the user must select "Display the Developer menu". In the Developer menu select "Request Admin Status".
  
==Grid Mode==
+
== Scripting ==
=== After the shiny new grid is running, what is next? ===
+
=== System.Reflection.TargetParameterCountException: parameters do not match signature ===
* Make sure one can stop/restart UGA &S (sims). Check out any ordering issues of stop/restart UGA w/o stop/restart sim(s).
+
The parameters for the states doesn't match with required. For example, this script should show the error above.
* Make sure one can add/delete both a region and a user from the database.
+
<source lang="lsl">
* Make sure it runs overnight and check it each morning by logging into 1 or 2 key sims.
+
default
* '<tt>tail -f userserver.log</tt>' and watch/understand the login process.
+
{
* Make sure when you logoff your system, you can log back on and get control of the UGAS consoles.
+
    touch_start() // SHOULD have a parameter there
 +
    {
 +
        llApplyImpulse( <0., 0., 10000.>, FALSE );
 +
    }
 +
}
 +
</source>
  
==Region Statistics on a Web Page==
+
=== Bool eval ===
===Information about your standalone region.===
+
Always test your integer(bool) and any variable against an actual test, never just do if(variable)
 +
<source lang="lsl">
 +
integer hello = 1;
 +
default
 +
{
 +
    state_entry()
 +
    {
 +
        if (hello == TRUE)
 +
        {
 +
            llSay(0, "Hello, World!");
 +
        }
 +
    }
 +
}
 +
</source>
 +
 
 +
== Region Statistics on a Web Page ==
 +
=== Information about your regions. ===
 
Region statistics such as region name, avatar name, avatar position<x,y,z>, number of prims, and a lot of other information can be obtained on a web page by:
 
Region statistics such as region name, avatar name, avatar position<x,y,z>, number of prims, and a lot of other information can be obtained on a web page by:
 
* Adding the following to the bottom of the OpenSim.ini file
 
* Adding the following to the bottom of the OpenSim.ini file
 
   [WebStats]
 
   [WebStats]
 
   enabled=true
 
   enabled=true
* Using a web browser and typing in the "Login URI" + "/SStats/" of your standalone server. 
+
* Using a web browser and typing in "Region Server Hostname:http_listener_port" + "/SStats/"
  For example- <nowiki>http://127.0.0.1:9000/SStats/</nowiki>
+
 
The resulting web page is continually updated using AJAX, so there is no need to refresh the page to obtain current information. One possible use for this web page information would be to see who is logged on to the region in real time - without actually logging in.<br>
+
For example
This web page provides region information similar to the kind generated by using various server console commands to obtain region statistics. See [[Server_Commands]]
+
<nowiki>http://127.0.0.1:9000/SStats/</nowiki>
 +
 
 +
The resulting web page is continually updated using AJAX, so there is no need to refresh the page to obtain current information. One possible use for this web page information would be to see who is logged on to the region in real time - without actually logging in.<br />
 +
This web page provides region information similar to the kind generated by using various server console commands to obtain region statistics. See [[Server Commands]]
 +
 
 +
Another option for more basic stats is jsonsimstats, which can be queried via curl:
 +
 
 +
  <nowiki>curl -s -m 10 -X POST "http://localhost:$httpport$/jsonSimStats"</nowiki>
  
== Misc ==
+
Replace $httpport$ with the simulator port.
=== You guys like April 1st, eh?  Looks like the joke is on us... ===
+
Yes, every year we've had a piece of non destructive code in the unstable, unreleased, upstream subversion tree.  The source tree that is only designed for testers and developers.  In each case it has shown something that is possible in OpenSim that most people might not have realized.  In 2008 this was an avatar created entirely from a Region Module (no user), in 2009 it was making all users a giant (and I mean giant) stick bug avatar.  There will be more in the future, don't worry.  The developers seem to have a sense of humor.
+
  
 
[[Category:Users]]
 
[[Category:Users]]

Latest revision as of 17:42, 24 February 2022


Contents

[edit] About OpenSimulator

[edit] What is OpenSimulator?

OpenSimulator is a platform for operating a virtual world, and supports multiple independent regions connecting to a single centralized grid. This is somewhat similar to the web, where anyone can run their own web server, tied together through the internet. It can also be used to create a private grid, analogous to a private intranet.

[edit] What is a region?

A region is what you see when you log into OpenSimulator. It is the physical place (well, virtual physical space) where avatars move and interact. It is a square patch of land which may contain an island, mountains, a plain, buildings, etc., or just an ocean.

[edit] What is the grid?

The grid is the level that organizes the regions and their positions in the world, and handles things that need to exist across regions, such as a user's inventory. You can think of it as similar to the world map.

[edit] What does ... mean?

See the Technical Reference Glossary for definitions of terms commonly used in OpenSimulator.

[edit] Configuring OpenSimulator

First, read OpenSim Configuration.

[edit] Where can I get a new UUID for my sim config?

[edit] Can I run multiple regions with OpenSim?

[edit] What databases can be used with OpenSim?

[edit] What about PostgreSQL or NHibernate?

  • NHibernate support, which enabled OpenSimulator to access PostgreSQL database, was removed on October 2009 (r/11252) due to lack of users and mainteners (Opensim-dev: NHibernate status).

[edit] Running OpenSimulator

[edit] An error is thrown while trying to start up OpenSimulator

See Troubleshooting.

[edit] Connecting to OpenSimulator

[edit] I've set up my OpenSimulator server and it looks like the login works but the client hangs on 'connecting to region'

There are 2 steps to login.

1) When you start up the client and enter your name/password, it sends those details to the OpenSimulator login service. If your password is correct, it tells the region simulator that you're coming. It then sends back to you (the client) the ip address and port to use to enter that region (as gleaned from your Regions.ini file).

2) Your client then connects to the region using those details.

If the client hangs on 'connecting to region' then the details being sent to it in step 2) are not allowing it to connect. Check your Regions.ini carefully and try to telnet to the ip & port that should be available.

If you're seeing this problem after you've made your sim available to the outside world (where people outside your network can connect to it but you cannot) then you probably don't have a router that supports NAT loopback. This allows you to connect to a local machine through your router via an external address. See NAT Loopback Routers for a list of routers that support this feature.

[edit] OpenSimulator in the Wild

[edit] Are there test servers running OpenSimulator I can connect to?

Yes. Check out our Grid List! There are often many private servers up for testing. Hang out on the IRC channel, and troll for URI's.

There are also several private organizations offering directories and search engines. They include:

  • Hyperica -- a categorized directory of hypergrid-enabled OpenSimulator destinations, currently over 250 locations
  • MetaverseInk -- ha key-word-based search engine for OpenSimulator grids, mostly those running the Diva Distro
Note: Diva seems to continue to maintain the search engine, but for many years it stopped working as it should, and automatic (voluntary) updates fail with an error, so this search engine will be hopelessly outdated — Gwyneth Llewelyn (talk) 12:16, 23 May 2020 (PDT)
  • GridHop -- a list covering the major OpenSimulator grids, currently over 150 destinations accessible over hypergrid teleport

Note: This link seems to be dead. Acryline :12:00, 22 Sept 2021

  • HGURL -- a key-word-search database for all grid, all accessible via hypergrid (in progress API for acces to search engine and info in world).
  • The HyperGates -- The first dynamic, auto-updating HyperGrid directory for both HyperGrid 1.5 ( OpenSimulator 0.7.x ) and HyperGrid 1.0 ( OpenSimulator 0.6.x ) standalones & grids. Download the HyperGate from the site now and Join the HyperGate Network. The most reliable HyperGrid directory.
Note: Seems to be dead; site has been 'taken over' by a Japanese company — Gwyneth Llewelyn (talk) 12:16, 23 May 2020 (PDT)
  • OpenSimWorld.com -- A HyperGrid directory that monitors the number of visitors per region. Their teleporter allows you to access destinations from in-world.

[edit] Are there any companies that will host my grid for me?

Yes there are dozens of independent OpenSimulator hosting providers. The following are not affiliated with OpenSimulator.org.

More vendors listed here: Hypergrid Business Vendors Directory -- a categorized directory of OpenSimulator vendors, currently listing about four dozen providers.

[edit] Can I teleport from the Linden Lab Second Life grid to my Sim?

No. In 2008 and 2009, there had been the connection to vaak grid, which enabled us to teleport from Second Life over to an OpenSimulator grid before LindenLab closing it. As of 2010, "The vaak grid is currently unavailable as we transition from OGP based services to VWRAP based services."("Open Grid Public Beta" in Second Life Wiki)

[edit] Troubleshooting

Please see the Troubleshooting page.

[edit] MySQL

[edit] How do I isolate and delete a user's Trash items in a MySQL grid database?

NOTE: BACK UP YOUR DATABASE!

CAUTION: The Linux default directory for the MySQL database is /var/lib/mysql Many backup tools (e.g. backupPC) do NOT back up /var/*! Make certain that the database and not just the MySQL code (/usr/bin/mysql) is included in your nightly backups! The actual paths will be different for different operating systems and databases, but the problem is the same.

1. Locate the avatars UUID you wish to find the trash items of, in the users table
This query will locate a specified users UUID: (replace User/Test with username/lastname)

SELECT `UUID` FROM `users` WHERE `username` LIKE 'User' AND `lastname` LIKE 'Test' LIMIT 0 , 30;


2. Use the avatars UUID to search the field_name AgentID in the inventoryFolders table, using Trash as the folderName to isolate the users Trash folderID
This query will locate the users Trash folder entry: (replace 00000000-0000-0000-0000-000000000000 with UUID of user)

SELECT `folderID` FROM `inventoryfolders` WHERE `agentID` LIKE '00000000-0000-0000-0000-000000000000' AND `folderName` LIKE 'Trash' LIMIT 0 , 30;


3. Use the folderID UUID obtained in the last query to find all of the trash items in the inventoryitems table, you can then delete them once you have isolated them.
This query will locate the trash items of the avatar in question: (replace 00000000-0000-0000-0000-000000000000 with Trash folder UUID obtained in the last query)

SELECT * FROM `inventoryitems` WHERE `parentFolderID` LIKE '00000000-0000-0000-0000-000000000000' LIMIT 0 , 9999;


NOTE: These steps will not remove the associated assets from the assets table, just the items in the inventory inventoryitems table.

[edit] How do I isolate and resolve duplicate inventory folder entries in a MySQL grid database?

NOTE: BACK UP YOUR DATABASE!

1. It's first a good idea to search for the affected avatars UUID in the inventoryFolders table to see the duplicate entries. When you see this, you'll see the problem of duplicate entries. The key here will be to find out which is being used.

2. Upload a file inworld and name it something unique. This will isolate the UUID of your root folder that is being used (even though there are dups only one is being used)

3. Search the inventoryitems table for your uniquely named item and locate it's parentFolderID

This query will isolate the parentFolderID based on your search for the unique item (replace unique_name with your unique item name)

SELECT `parentFolderID` FROM `inventoryitems` WHERE `inventoryName` LIKE 'unique_name' LIMIT 0 , 30;

4. Check the inventoryfolders table against the parentFolderID UUID obtained in the last search. That is your root folder that is being used.. you can delete all duplicate entries that do not match that parentFolderID. In the end, you should only have one of each type (Trash, etc)

This query will return all values that are NOT the parentID obtained in the last search. (replace 00000000-0000-0000-0000-000000000000 with the parentID located in step 3)

SELECT * FROM `inventoryfolders` WHERE `folderID` NOT LIKE '00000000-0000-0000-0000-000000000000' LIMIT 0 , 30;

[edit] In World Questions

[edit] Does in world scripting work yet?

Not fully implemented, but most of it works, and there is a lot of work going on here. Please see ScriptEngines, LSL Status and OSSL Status for the latest info.

[edit] Can I customize my avatar?

Yes. In order to do this:

  • Click the Inventory Button
  • Create -> New Clothes -> Shirt, Pants, etc
  • Create -> New Body Parts -> Hair, Shape, etc
  • Edit those from your inventory
  • Wear them

Your avatar doesn't always face a nice direction for doing this, so you'll need to use the camera operations to see your face for some of the modifications. This is a known issue, will be fixed in the future. Also, you'll need to rewear you parts once you first join the environment. Right now default appearance is always "Ruth".

[edit] Why do I look like I gas cloud right after I did the the previous steps?

Second Life eliminated Ruth from their client. The Ruth we see in OpenSimulator is our own attempt of a yoga teacher and not truly Second Life's Ruth. When you create a shirt, pants, skin and shape and wear them without changing any parameters, the Second Life Viewer understands you are not Ruth. Since Ruth is no more, you become a cloud of gas. To fix it, either change a parameter of one of them before wearing all 4, or, if you already are a gas cloud, right click one of these items in your inventory and click edit. That should bring up the edit appearance menus. Just move any sliders and voilá.

[edit] Why doesn't my world map update when I edit the terrain?

There are three approaches depending on just how adventurous you want to be. From the least to the most adventurous:

  • From the simulator console run generate map or simply restart your simulator
  • Edit MaptileRefresh parameter in [Map] section of OpenSimDefaults.ini
  • Not for the faint of heart! Edit the "WorldMapModule.cs" file and change the "LazySaveGeneratedMaptile" method to change the "RefreshSeconds" value to something less than two days. Be sure to read the comments and understand why things are the way they are.

Once your terrain stabilizes, this won't be much of a problem, but it is nice to see the updates while you're furiously developing something.

[edit] How do I give a user God Mode privileges?

Open the Opensim database, select table useraccounts and set the UserLevel to 200 for the account that should have God Mode privileges.

Then, in the Advanced menu of the Firestorm viewer, the user must select "Display the Developer menu". In the Developer menu select "Request Admin Status".

[edit] Scripting

[edit] System.Reflection.TargetParameterCountException: parameters do not match signature

The parameters for the states doesn't match with required. For example, this script should show the error above.

default
{
    touch_start() // SHOULD have a parameter there
    {
        llApplyImpulse( <0., 0., 10000.>, FALSE );
    }
}

[edit] Bool eval

Always test your integer(bool) and any variable against an actual test, never just do if(variable)

integer hello = 1;
default
{
    state_entry()
    {
        if (hello == TRUE)
        {
            llSay(0, "Hello, World!");
        }
    }
}

[edit] Region Statistics on a Web Page

[edit] Information about your regions.

Region statistics such as region name, avatar name, avatar position<x,y,z>, number of prims, and a lot of other information can be obtained on a web page by:

  • Adding the following to the bottom of the OpenSim.ini file
 [WebStats]
 enabled=true
  • Using a web browser and typing in "Region Server Hostname:http_listener_port" + "/SStats/"

For example

http://127.0.0.1:9000/SStats/

The resulting web page is continually updated using AJAX, so there is no need to refresh the page to obtain current information. One possible use for this web page information would be to see who is logged on to the region in real time - without actually logging in.
This web page provides region information similar to the kind generated by using various server console commands to obtain region statistics. See Server Commands

Another option for more basic stats is jsonsimstats, which can be queried via curl:

 curl -s -m 10 -X POST "http://localhost:$httpport$/jsonSimStats"

Replace $httpport$ with the simulator port.

Personal tools
General
About This Wiki