FAQ

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
(How do I isolate and delete a users Trash items in my mySQL database?)
(Add jsonsimstats stats too)
 
(151 intermediate revisions by 47 users not shown)
Line 1: Line 1:
[[Category:Users]]
+
{{Quicklinks}}
A list of frequently asked questions.  Please add anything you think is reasonable here.
+
<br />
  
= What is OpenSim? =
+
== About OpenSimulator ==
 
+
=== What is OpenSimulator? ===
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.
+
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 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.
A region is what you see when you log into OpenSim. It is the physical place (well, virtually physical) 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 the [[Definitions|Technical Reference Glossary]] for definitions of terms commonly used in OpenSimulator.
  
See [[OpenSim:TechRef]] for definitions of some terms commonly used in OpenSim.
+
== Configuring OpenSimulator ==
 
+
First, read [[OpenSim Configuration]].
= Building OpenSim =
+
 
+
=== I can't find any build files or solution files ===
+
 
+
* If you're on Windows, run <tt>runprebuild.bat</tt> - on Linux/Mac/FreeBSD, run <tt>runprebuild.sh</tt>
+
 
+
=== VS2005 won't open the .sln file ===
+
 
+
* Try running VS2005 C#. You are probably running VS2005 C++. This is a C# project.
+
 
+
= Running OpenSim =
+
 
+
=== Running OpenSim.exe from a Cygwin shell has access denied for some dll's ===
+
 
+
* Do a '<tt>cd bin</tt>' followed by '<tt>chmod a+x *</tt>' to make all dll files executable.
+
 
+
=== I cannot start my sim ===
+
 
+
* See [[OpenSim: Running]].
+
 
+
= Configuring OpenSim =
+
 
+
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]]
Use '<tt>uuidgen</tt>' or generate one on the [http://www.famkruithof.net/uuid/uuidgen uuidgen webpage].
+
  
 
=== Can I run multiple regions with OpenSim? ===
 
=== Can I run multiple regions with OpenSim? ===
 
+
* See [[OpenSim Configuration]]
Yes.  To do this add another xml file to <tt>bin/Regions</tt>. You need to create a new 'sim_UUID' (see above) and change the 'sim_name', 'internal_ip_port', 'sim_location_x' and 'sim_location_y' (and anything else you wish to change). The script <tt>share/regions/make.php</tt> may be useful for generating region files automatically.  Once the new region files have been added to <tt>bin/Regions</tt>, restart OpenSim.
+
 
+
Note that <tt>sim_location_x</tt> and <tt>sim_location_y</tt> should be in adjacent regions, so you will be able to run back and forth between regions.
+
 
+
* See [[OpenSim: Configuration]].
+
 
+
=== How do I enable prim storage? ===
+
 
+
* In the <tt>OpenSim.ini</tt> file, change the <tt>storage_plugin</tt> entry to
+
storage_plugin = OpenSim.DataStore.MonoSqlite.dll
+
or
+
storage_plugin = OpenSim.Framework.Data.MySQL.dll
+
 
+
You will also need to provide connection details in a <tt>storage_connection_string</tt> attribute - see the <tt>OpenSim.ini.example</tt> file in the bin directory of the OpenSim package for more information.
+
 
+
=== There are a bunch of textures in the library, but they are all 0x0? What's wrong? ===
+
To enable these extra textures for your use, you must delete your <tt>regionassets.yap</tt> file, and restart your sim. WARNING: IF YOU DO THIS, YOU WILL LOSE ANY ASSETS (textures, scripts, animations, etc) THAT YOU HAVE UPLOADED!
+
  
 
=== What databases can be used with OpenSim? ===
 
=== What databases can be used with OpenSim? ===
For running in standalone mode, OpenSim provides database plugins for both sqlite and MySQL.  There is also an MSSQL plugin, though this has not been thoroughly tested.  Sqlite requires no user configuration to set up while MySQL requires some minimal user configuration (see [[mysql-config]]).
+
* See [[OpenSim Configuration]]
  
Running in grid mode is usually done using the MySQL database. Sqlite and MSSQL may work but have not been thoroughly tested.
+
=== 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]).
  
=== Can I export all my prims, for safe keeping? ===
+
== Running OpenSimulator ==
  
Yes.  From the console type:
+
=== An error is thrown while trying to start up OpenSimulator ===
save-xml [filename]
+
  
You can later load those prims with:
+
See [[Troubleshooting]].
load-xml [filename]
+
  
This is also a good way to dump and clone prims from one OpenSim server to another.
+
== 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' ===
  
= Something Has Gone Wrong! =
+
There are 2 steps to login.
  
=== I get errors concerning 'owner_uuid' when starting up my grid after updating from svn beyond r3254 ===
+
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).
  
When updating to recent revisions after r3254, we are now using the unused owner_uuid. There are some grids whose mysql tables were created during a time when this field was inadvertently removed from the .sql script that initializes the regions table. Logging in to your mysql instance and executing this SQL query to add the missing owner_uuid should solve this issue:
+
2) Your client then connects to the region using those details.
  
alter table `regions` add column `owner_uuid` varchar(36) default '00000000-0000-0000-0000-000000000000' not null, comment 'Rev.2';
+
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.
  
The punctuation around regions and owner_uuid is "grave accent". The punctuation around the default value and the comment is the single quote. The "grave accent" is the one generally to the left of the One button, under the tilde and the single-quote, is, well, underneath the double quote. I think this matters to mysql.
+
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.
  
=== I get a timeout during region handshake ===
+
== OpenSimulator in the Wild ==
 +
=== Are there test servers running OpenSimulator I can connect to? ===
  
* Do you have the correct IP in your Regions\* config files?
+
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.  
* Do you have multiple interfaces on the server running OpenSim? OpenSim will not bind outgoing UDP packets to a specific IP, its default IP to reach you will be what the Region answers UDP with. If you have configured the region for another IP you will get a timeout during connect.
+
  
=== I cannot connect to my OpenSim ===
+
There are also several private organizations offering directories and search engines. They include:
  
* See [[OpenSim: Connecting]].
+
* [http://www.hyperica.com Hyperica] -- a categorized directory of hypergrid-enabled OpenSimulator destinations, currently over 250 locations<br />
 +
* [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.
  
=== I can connect but cannot move ===
+
=== Are there any companies that will host my grid for me? ===
  
If the client connects but the avatar can only spin in place and not move, then the sim is not correctly configured. It completed the initial login function, but packets are not being exchanged between the client and the sim, probably due to a network configuration error on the sim.
+
Yes there are dozens of independent OpenSimulator hosting providers. The following are not affiliated with OpenSimulator.org.  
  
* See [[OpenSim: Configuration]].
+
* [https://zetamex.com/ Zetamex Network]  
 
+
* [https://reactiongrid.com ReactionGrid]
=== From time to time my Avatar seems to get stuck ===
+
* [https://tomahost.com/ TomaHost]
Right now there is a bottle neck when syncing prims off to the database.  This will cause small (5 - 10 second) apparent hangs of the Avatar, but it will recover fine once the data is synced.  It is a known issue based on legacy architecture of some of the data storage code.  We hope this will be removed soon.
+
* [http://www.dreamlandmetaverse.com DreamLand Metaverse]
 
+
* [http://www.yoursimspot.com YourSimSpot]
=== I have problems with viewing the worldmap ===
+
* [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 />
* This may happen when running OpenSim on a Linux server, both in grid or standalone mode.
+
* Symptoms: when opening the worldmap window in the SL-viewer, the sims are not displayed grahically in the worldmap, the server console shows some error related to openjpeg, the current session freezes...
+
* Reason: your svn source trunk does not have the correct (or whatever...) <tt>libopenjpeg-libsl</tt> library.
+
* Other reason: the file "defaultstripe.png" does not exists in the same OpenSim folder, or is corrupted.
+
* Solution: get the newest code from libsecondlife (<tt>svn co svn://opensecondlife.org/libsl/trunk</tt>), '<tt>make</tt>' manually in the subdir <tt>openjpeg-libsl</tt>, and copy the resulting <tt>libopenjpeg-libsl-2.1.2.0.so</tt> into your OpenSim <tt>bin</tt> subdir, overwriting the existing one.
+
* Recompile & restart OpenSim.
+
 
+
= Exceptions on the Console =
+
This is a list of Exceptions that you may see on the console, what they mean, and if they are a problem.
+
 
+
=== System.DllNotFoundException: ./libopenjpeg-libsl-2.1.2.0.so ===
+
Failed generating terrain map: System.DllNotFoundException: ./libopenjpeg-libsl-2.1.2.0.so
+
at (wrapper managed-to-native) OpenJPEGNet.OpenJPEG:LibslAllocDecoded OpenJPEGNet.OpenJPEG/LibslImage&)
+
at OpenJPEGNet.OpenJPEG.Encode (System.Byte[] decoded, Int32 width, Int32 height, Int32 components, Boolean lossless) [0x00000]
+
at OpenJPEGNet.OpenJPEG.EncodeFromImage (System.Drawing.Bitmap bitmap, Boolean lossless) [0x00000]
+
at OpenSim.Region.Terrain.TerrainEngine.ExportJpegImage (System.String gradientmap) [0x00000]
+
 
+
You are on Linux, and the native lib libopenjpeg-libsl-2.1.2.0.so is not compatible with your system for one of the following reasons:
+
* You have an old processor (libopenjpeg has been compiled with optimizations)
+
* You are running in 64bit mode (none of the native libs are built for 64bit)
+
 
+
You can rebuild your own libopenjpeg from source, or run in a compatible environment.
+
You can do this by:
+
svn co svn://opensecondlife.org/libsl/trunk libsl
+
cd libsl/openjpeg-libsl/
+
make
+
 
+
then copy libopenjpeg-libsl-2.1.2.0.so into OpenSim bin-folder.
+
 
+
= OpenSim in the Wild =
+
 
+
=== Are there test servers running OpenSim I can connect to? ===
+
 
+
Yes.  Check out http://www.deepgrid.com, http://osgrid.org
+
 
+
There are also 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? ===
 
=== 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])
  
No, OpenSim islands cannot connect to the Linden Lab grid.
+
== Troubleshooting ==
 +
Please see the [[Troubleshooting]] page.
  
= Terrain Tidbits =
+
== MySQL ==
=== What programs can I use to create terrains for OpenSim? ===
+
=== How do I isolate and delete a user's Trash items in a MySQL grid database? ===
If you are after simple terrain files (jpg, gif, etc), you can use Photoshop or any number of freeware programs, like [http://www.gimp.org/ Gimp]. If you want more complex terrains, you will need programs that output to standard 3d raw format (aka r32 or r64). [http://www.bundysoft.com/L3DT/ L3DT] and [http://www.planetside.co.uk/terragen/ Terragen] are two of the top commercial programs for this. (anyone know of a freeware one?), or you could, with some practice, use [http://www.blender.org/ Blender]. The free version of L3DT can make terrains up to 2048x2048 in size, or 8x8 regions.
+
<font color="red">NOTE:</font> BACK UP YOUR DATABASE!
  
You can use `terrain load IMG yourfile.png` to load '''greyscale''' PNG files. Remember to use something like `terrain rescale 0 25` to make it visible.
+
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.
  
Here is some info on [[Using L3DT]] to make a terrain.
 
 
You can also use http://lab.parkstudio.ru/terra/ if you know a bit about heightmaps and how they work.  Just set the custom landscape texture gradient to pure black and pure white and turn off water.
 
 
And here are some [[Free Terrains]] that you can use. Enjoy!
 
 
=== Where do I put the files for my terrains? ===
 
This one is actually pretty simple, but first the 'hard' answer: anywhere in the PATH will work. Lost? yeah, I was too, so... just drop the file into the <tt>bin</tt> directory (right where your <tt>OpenSim.exe</tt> file is).
 
 
=== How do I change the terrain for a group of sims? ===
 
First, the file must be in f32 (or f64?) format. This is easy to do with L3DT's export feature. (Use the RAW format and set the options to <tt>Y flipped = true</tt> and at the bottom, change it to read 'float' instead of 'ushort'). It also needs to be a file that will cover each sim in a 256x256 layer (so, for 2x2 regions, you need a 512x512 file).
 
 
Then, once you have it saved, on the <tt>OpenSim.exe</tt> console, type in:
 
 
terrain load-tile f32 <filename> <image X> <image y> <bottomleftsim X> <bottomleftsim y>
 
 
For example, I run a square of 4 sims in a 2x2 pattern. I started my sim placement at 0, 0 and ended at 1, 1. my line reads:
 
 
terrain load-tile f32 simalpha.raw 512 512 0 0
 
 
Next, before you log in, you may want to go to type in:
 
 
terrain multiply 0.4
 
 
This should scale it down from the nearly 300 meters altitude I ran into to something a little more reasonable for the minimap.
 
 
=== How do I load a terrain file on startup? ===
 
Edit the file <tt>startup_commands.txt</tt> in the bin directory and add the above commands "<tt>terrain load-tile ...</tt>" and "<tt>terrain multiply ...</tt>" one per line.
 
 
Terrain Tidbits brought to you by Tilde, with a few questions in IRC :) - [[User:Tildeampersand|Tilde]] 10:32, 15 August 2007 (PDT)
 
 
=== How do I import into OpenSim the terrain shape of my Second Life sim? ===
 
First, assure you are in the right region if you have more than one, by using:
 
 
change-region <nowiki><regionname></nowiki>
 
 
Then use the command (depending on the filetype (F32 etc), RAW can also be used in place of here)
 
 
terrain load <nowiki><filetype> <filename></nowiki>
 
 
Watch [http://archimedix.wordpress.com/2007/11/26/opensim/ this video] for a step-by-step tutorial.
 
 
=== Other useless or usefull info depending on who reads it ===
 
 
* I found out that each point on the grey scale (0 to 255) equals approximately .23 to .25 meters in terrain height. - [[CharlieO]]
 
* Also for those who want to manually edit a png file, you need at minimum 3 different shades of grey. and one has to be drastically different than the other 2 in order to have the height show correctly. - [[CharlieO]]
 
example:
 
  1) 0,0,0
 
  2) 223, 233, 233
 
  3) 255, 255, 255
 
 
==MySQL==
 
=== How do I isolate and delete a users Trash items in my mySQL database? ===
 
 
'''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 />
 
<font size="0.9em">This query will locate a specified users UUID: (replace User/Test with username/lastname)</font>
 
<font size="0.9em">This query will locate a specified users UUID: (replace User/Test with username/lastname)</font>
 
  <nowiki>SELECT `UUID` FROM `users` WHERE `username` LIKE 'User' AND `lastname` LIKE 'Test' LIMIT 0 , 30;</nowiki>
 
  <nowiki>SELECT `UUID` FROM `users` WHERE `username` LIKE 'User' AND `lastname` LIKE 'Test' LIMIT 0 , 30;</nowiki>
'''2.''' Use the avatars UUID to search the field_name '''AgentID''' in the '''inventoryFolders''' table, using '''Trash''' as the folder name to isolate the users Trash '''folderID'''<br />
+
<br />
<font size="0.9em">This query will locate the users Trash folder entries: (replace 00000000-0000-0000-0000-000000000000 with UUID of user)</font>
+
'''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 />
  <nowiki>SELECT `folderID` FROM `inventoryfolders` WHERE `agentID` LIKE '00000000-0000-0000-0000-000000000000' AND `folderName` LIKE 'Trash'
+
<font size="0.9em">This query will locate the users Trash folder entry: (replace 00000000-0000-0000-0000-000000000000 with UUID of user)</font>
LIMIT 0 , 30;</nowiki>
+
  <nowiki>SELECT `folderID` FROM `inventoryfolders` WHERE `agentID` LIKE '00000000-0000-0000-0000-000000000000' AND `folderName` LIKE 'Trash' 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 />
<font size="0.9em">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)</font>  
+
<font size="0.9em">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)</font>  
  <nowiki>SELECT * FROM `inventoryitems` WHERE `parentFolderID` LIKE '00000000-0000-0000-0000-000000000000' LIMIT 0 , 9999;</nowiki><br />
+
  <nowiki>SELECT * FROM `inventoryitems` WHERE `parentFolderID` LIKE '00000000-0000-0000-0000-000000000000' LIMIT 0 , 9999;</nowiki>
 +
<br />
 
'''<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 my mySQL 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 />
  
= In World Questions =
+
'''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.<br />
 +
 +
'''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)<br />
  
=== Does in world scripting work yet? ===
+
'''3.''' Search the '''inventoryitems''' table for your uniquely named item and locate it's '''parentFolderID''' <br /><br />
 +
<font size="0.9em">This query will isolate the '''parentFolderID''' based on your search for the unique item (replace '''unique_name''' with your unique item name)</font>
 +
<nowiki>SELECT `parentFolderID` FROM `inventoryitems` WHERE `inventoryName` LIKE 'unique_name' LIMIT 0 , 30;</nowiki>
  
Not fully implemented, but there is a lot of work going on here. Please see [[LSL Status]] for the latest info.
+
'''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)<br /><br />
 +
<font size="0.9em">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)</font>
 +
<nowiki>SELECT * FROM `inventoryfolders` WHERE `folderID` NOT LIKE '00000000-0000-0000-0000-000000000000' LIMIT 0 , 30;</nowiki>
  
=== Why do I walk through objects? ===
+
== In World Questions ==
 
+
=== Does in world scripting work yet? ===
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.
+
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.
  
 
=== Can I customize my avatar? ===
 
=== Can I customize my avatar? ===
 
+
Yes. In order to do this:
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 245: 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.
+
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".
  
Also, you'll need to rewear you parts once you first join the environment. Right now default appearance is always "Ruth".
+
=== 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á.
  
= Grid Mode =
+
=== Why doesn't my world map update when I edit the terrain? ===
Note: Grid Mode isn't officially supported yet.  As such, you are pretty much on your own if you are trying to get OpenSim up and running in Grid Mode.
+
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.
  
=== I start the sim and it doesn't connect to any grid ===
+
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.
  
When OpenSim is first started, it needs configuration.
+
=== 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.
  
* See [[OpenSim: Configuration]].
+
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".
  
=== I start the OpenSim.Grid.UserServer.exe and it gives an error ===
+
== Scripting ==
 +
=== 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.
 +
<source lang="lsl">
 +
default
 +
{
 +
    touch_start() // SHOULD have a parameter there
 +
    {
 +
        llApplyImpulse( <0., 0., 10000.>, FALSE );
 +
    }
 +
}
 +
</source>
  
If this error is access denied for <tt>username@localhost</tt>, the mysql database is not set up.
+
=== Bool eval ===
 +
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>
  
It will print some text and wait for input - either an enter to accept a default value, or another value you can supply.
+
== 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:
 +
* 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/"
  
* See [[OpenSim: Configuration]].
+
For example
 +
<nowiki>http://127.0.0.1:9000/SStats/</nowiki>
  
=== I want to run my own Local Grid but one or more servers fail to start ===
+
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]]
  
* Be sure that you're able to start <tt>OpenSim.exe</tt> alone, in Standalone mode, and to be able to login.
+
Another option for more basic stats is jsonsimstats, which can be queried via curl:
* Start the servers in the correct UGAS order and answer the questions as recommended (see [[OpenSim: Configuration]]).
+
* Set all the external URI's to the correct IP: 127.0.0.1 if running on your local machine, or aaa.bbb.ccc.ddd if running on a remote server.
+
* Check again all the <tt>*.xml</tt> configuration files for any wrong settings or typing errors...!
+
* Don't forget to connect with your SL-viewer to port 8002 (Grid User-Server) instead of 9000 (Standalone OpenSim-Server).
+
* Delete all <tt>*.xml</tt> and <tt>*.yap</tt> files in the <tt>bin</tt> directory if you want to run a full reconfiguration again.
+
  
=== After the shiny new grid is running, what is next? ===
+
  <nowiki>curl -s -m 10 -X POST "http://localhost:$httpport$/jsonSimStats"</nowiki>
* Make sure one can stop/restart UGA &S (sims). Check out any ordering issues of stop/restart UGA w/o stop/restart sim(s).
+
* Make sure one can add/delete both a region and a user from the database.
+
* Make sure it runs overnight and check it each morning by logging into 1 or 2 key sims.
+
* '<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.
+
=== I get a bunch of asset not found errors, while connected to a online grid, and my inventory doesn't seem to work right ===
+
  
*Make sure your opensim.ini has '      asset_database = "grid"      ' otherwise it will not work correctly.
+
Replace $httpport$ with the simulator port.
  
= How to ask for help =
+
[[Category:Users]]
 
+
=== Before asking for help... ===
+
 
+
* Search the wiki and web before asking for help.
+
* Check your configuration files for any obvious defects.
+
* Check that you're starting up the processes correctly.
+
* See [[OpenSim: Install]].
+
* See [[OpenSim: Configuration]].
+
* See [[OpenSim: Running]].
+
* See [[OpenSim: Connecting]].
+
 
+
=== Asking in IRC ===
+
 
+
IRC channels are <tt>#opensim</tt> and <tt>#opensim-dev</tt> on Freenode. Approach them in that order :) Please be courteous and remember that the developers and anyone else assisting you are volunteers there.
+
 
+
* Don't ask to ask, just ask.
+
* Phrase your question in the form of a question.
+
* Be specific.
+
* Explain the problem.
+
* Describe how to reproduce the problem.
+
* If you need to paste configuration files or error messages, please paste to [http://pastebin.ca/ pastebin] then send the link in the IRC channel.
+
 
+
=== After you get help ===
+
 
+
* If no-one can help you, please submit a bug.
+
* If someone does help you, please document the problem and fix on the wiki on this page.
+
 
+
[[Category:Getting Started]]
+

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