0.8.2.0 Release

=Release Notes=

General
Welcome to OpenSimulator 0.8.2.0, an open-source multi-user 3D virtual environment and metaverse server platform.

As ever, OpenSimulator is a highly complex system. Various usage scenarios (standalone, grid, hypergrid, etc.) in combination with different dependencies (e.g. different versions of mono on Linux/Mac) can sometimes produce unexpected or unstable behaviour.

If you are upgrading from a previous verson of OpenSimulator, then we strongly recommend that you start off with the default configuration files and port over any changes you made to your older version of OpenSimulator.

As this is a wiki page, please feel free to update it with more information about migration or other issues as and when these come to light.

You can download this release of OpenSimulator from Download

Known issues

 * Loading scripts from the library section of inventory does not work properly.
 * The non-default Warp3D maptile generator currently leaks memory very badly. We recommend that you only use this once at the beginning of each simulator session.
 * For other bugs please see the OpenSimulator Mantis bug tracker.

Requirements
OpenSimulator requires:


 * .NET Framework 4 when running under Windows.
 * At least Mono 2.8 when running under Mono (Linux or Mac). However, we recommend using at least Mono 2.10 as Mono 2.8.x has been reported as less stable in some situations when running OpenSimulator.  Mono 3 has also been reported as working well with OpenSimulator.

Database
Although things work as they are, we encourage everyone to consider changing the inventory folders in your DBs, as some of the newer viewers may start to malfunction if they get unexpected folder numbers. This is the migration logic, in pseudo-code: If folder type == 8 and parent folder != zeroUUID set folder type to -1 If folder type == 9 and parent folder == zeroUUID set folder type to 8 If folder type == 9 and parent folder != zeroUUID set folder type to -1 If folder name == "My Suitcase" set folder type to 100 You should issue corresponding SQL queries in your DB. update os_groups_roles set Powers ='351843720888318' where Powers='349644697632766'
 * Schema changes in asset store, xasset store, fsasset store, region store, AgentPrefs (new table). Migrations included.
 * INVENTORY FOLDERS: in order to make OpenSim conform to what the viewers expect, we changed the numbers used for inventory folders. Here are the right numbers:
 * Root folder: 8
 * My Suitcase folder: 100
 * User-created folder: -1
 * GROUPS: group owner powers were updated sometime within the last 6 months. If you don't see group owners being flagged as owners, you may need to fix the DB:

Scripts
Some scripts may need to be recompiled when upgrading to 0.8.2. If you see script errors on the server console, the best course of action is to delete the script dlls that live under the ScriptEngine folder. Note: do not delete the .state files in those folders; all other file extensions can be deleted.

Alternatively, you can set DeleteScriptsOnStartup = true once, then switch it back.

General Robust Server

 * No significant changes in this release.

General Simulator Server

 * All physics simulations are now properly encapsulated as region modules instead of being handled by a special plugin mechanism. Anyone wanting to do another physics implementation can now just do it with a region module.

Archives

 * No significant changes in this release.

Avatars

 * Fix detach event not being fired until the next time the object is attached. This allows scripts such as AOs to remove animations when detached. The pause added does not affect other avatars or the scene in general and only pauses the avatar performing the detach for an extra 2 milliseconds.

Classifieds

 * Fixed not being charged to create classifieds on money enabled regions

Configuration

 * [EntityTransfer]: MaxOutgoingTransferVersion eliminated.
 * [LL-Functions]: new variable UseLlCastRayV3 = false by default, as well as several new variables related to llCastRay
 * [LandManagement]: new variables LimitParcelLayerUpdateDistance = true and ParcelLayerViewDistance = 128. This governs the amount parcel layer info that gets sent to the viewer upon editing terrain.
 * New section: [AccessControl]
 * New section: [Statistics]
 * New section: [OSSL]. This includes a new ini file (config-include/osslEnable.ini) which contains all the settings for OSSL functions.

Friends

 * No significant changes in this release.

Groups

 * Show last online status of group members from the PresenceService in group profiles

Hypergrid

 * For HG users, set the last name to include the port of their home world

Instant Messaging

 * No significant changes in this release.

Inventory

 * Fixed several performance issues regarding initial inventory download by changing the IInventory API. In some cases this has resulted in 10x performance improvement, and much lower CPU spikes during login.

Map

 * No significant changes in this release.

Mesh/Sculpt

 * No significant changes in this release.

Monitoring

 * No significant changes in this release.

NPC

 * No significant changes in this release.

Objects

 * Fixed occurrence of exception upon rezzing objects that had been corrupted due to a bug introduced in a prior release. Transfer of those bad assets are now being stopped. Instantiation of bad assets now should also work, instead of producing an exception, but the bad assets themselves aren't being fixed in the DB.

Physics

 * ODE Now supports variable-sized regions

Profiles

 * Bug fix: Change UserProfiles so that the parcel name is used for a ProfilePick and not the parcel owners name. This change also fixes a bug where if the avatar enters and does not move, creating or editing a ProfilePick would set the parcelId as an empty UUID.

Region/Estates/Parcels

 * No significant changes in this release.

Region Cross/Teleport

 * No significant changes in this release.

Scripting

 * Changes to make the script times shown in the "Top Scripts" window more accurate:
 * Measure script execution time precisely, using a sub-millisecond timer. This is needed because some scripts execute very often, but only run for a very short amount of time in each invocation. Previously such scripts were shown as using 0 time.
 * Use a 30-seconds sliding window for measuring script execution. Previously the window was 30 minutes, and even that didn't work correctly.
 * Ignore the time the script spends sleeping. Many LSL functions have a sleep-delay at the end.
 * Include the XEngine overhead in the timings. Previously it was excluded.
 * For more information, see Scripts_Performance


 * When the user stops a script, have it remain stopped even after a region restart. Previously, after a region restart the script would start Running again.


 * New llCastRay implementation. It sets up its own mesh cache and uses libopenmetaverse mesher instead of Meshmerizer. It works fully with sculpts and meshes, eliminates the 40-50% overhead on first encounter with a shape, sculpt or mesh, increases the time save when using cached geometries to about 65% on a high-end server and 75% on an ordinary laptop in some performance tests. To enable it, set UseLlCastRayV3 = true.

Services

 * New Asset Service: FSAssetService. (FS stands for File System) This alternative asset service stores assets as regular files and only the metadata in the DB. It does deduplication of assets. This is currently the asset service used in OSGrid since April 2015, and it has been working well. It is not the default for OpenSim... yet. For more information please see FSAssets_Service

Sound

 * No significant changes in this release.

Stats

 * By default, OpenSim reports a multiple of the actual physics fps, so that the lag meters in viewers that are designed for other simulators don't report lag when in OpenSim. If you don't care about lag meters, you can now choose to report the actual physics fps (~11fps) by setting a new configuration variable Normalized55FPS=false.


 * New metrics reported:
 * Logging in Users: number of users attempting to login
 * GeoPrims: count of all geometric (prim) objects in the scene
 * Mesh: count of all mesh objects in the scene
 * XEngine Thread Count: Number of threads in use as reported by XEngine's SmartThreadPool
 * Util Thread Count: Number of threads in use as reported by Util's SmartThreadPool
 * System Thread Count: Number of threads in use as reported by the Microsoft SDK
 * ProcMem: Physical memory in use by the opensim instance in kB. This includes shared (e.g. system libraries) and private data.

Terrain

 * No significant changes in this release.

Voice

 * No significant changes in this release.

Tests

 * New test dll for Robust server and services (Robust.Tests.dll). These tests start a robust server in the background listening in localhost:8002 and test the service connectors, and the services themselves.

Acknowledgements
Many, many thanks to all the developers, testers and community members who contributed to this release and who help out with OpenSimulator generally. Your hard work makes this all possible.