FAQ

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.

What is a region?
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?
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?
See OpenSim:TechRef for definitions of some terms commonly used in OpenSim.

Configuring OpenSim
First, read OpenSim Configuration.

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

 * See OpenSim Configuration

Duplicate "Lost And Found" folder?

 * A grid manager, from the mysql prompt may do:

select type from inventoryfolders where folderName="Lost And Found"; delete from inventoryfolders where foldername="Lost And Found" and type="3";

Per Justin's r4011 checkin, these two steps should delete "Lost And Found" duplicates of type 3 and leave any of type 13.

Can I run multiple regions with OpenSim?

 * See OpenSim Configuration

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 regionassets.yap 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?

 * See OpenSim Configuration

SVN Support for Prims
So far I tested it under Linux and I heard it crashes under XP. So this description is for Linux please feel free to add the windows description. First install the apr pages (apt-get install or yum install)
 * apr-util
 * apr-devel
 * apr

Then make symbolic links in your opensim bin directory
 * svn_client-1 -> /usr/lib/libsvn_client-1.so.0
 * libapr.so -> /usr/lib/libapr-1.so.0

Set up an SVN repository with svnadmin create

Edit Opensim.ini [SVN] Enabled = true Directory = sandbox01 URL = "file:///home/opensim/svn/01" Username = "opensim" Password = "********" ImportOnStartup = false Autosave = true AutoSavePeriod = 15

How to set the LandOwner
Edit Regions/ and set the AvatarName and AvatarUUID. Furthermore edit the SQL Database and set the OwnerUUID in the land table. When you are using SQLite use the sqlite3 tool. sqlite3 Opensim.db update land set OwnerUUID="AvatarUUID";

I get a bunch of ERROR: There was an error while scanning assembly:... 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

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.)

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.)

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.)

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.)

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.)

Errors about modules not found and RegionBanListItem could not be loaded
This is caused if you upgrade from trunk through svn and copy new files in the same directory. To solve these errors during the startup of opensim.exe remove the following files from your bin folder:

OpenSIm.DataStore.MSSQL.dll OpenSIm.DataStore.MSSQL.dll.mdm

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?
No, OpenSim islands cannot connect to the Linden Lab grid.

How do I isolate and delete a users Trash items in a MySQL grid database?
NOTE: BACK UP YOUR DATABASE!

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.

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;

Does in world scripting work yet?
Not fully implemented, but there is a lot of work going on here. Please see LSL Status for the latest info.

Why do I walk through objects?
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.

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".

After the shiny new grid is running, what is next?

 * 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.
 * 'tail -f userserver.log' 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.

region size
=== region size is fixed 256*256, I found it to change the size larger is diffcult,because there are lots of magic number in codes.