0.8.1 Release

=Release Notes=

General
THESE RELEASE NOTES RELATE TO A RELEASE THAT HAS NOT YET BEEN MADE.

Welcome to OpenSimulator 0.8.1, 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 http://opensimulator.org/wiki/Download

Known issues

 * Arbitrary key:value storage for regions has not yet been implemented for SQLite or MSSQL. This is necessary for temporary attachments settings to be persisted.  This functionality is considered experimental.
 * Regression in RLV functionality where objects given via the llGiveInventoryFolder function with a folder name with the format #RLV/~gift are still placed in the #RLV folder but now with the name still as "#RLV/~gift" rather than just "~gift". This is being addressed in http://opensimulator.org/mantis/view.php?id=6311.  Any help from viewer developers on this would be much appreciated.
 * No form of prim equivalence is implemented for meshes.
 * 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.

Script Engine
This releases changes the default strategy for stopping scripts to one known as co-operative (co-op) rather than abort (abort). This is set with the ScriptStopStrategy parameter in the [XEngine] section of OpenSim.ini.

The abort approach aborted the script running thread if it did not stop within a given timeout. This can lead to runtime instability and crashes if the thread was aborted in the middle of certain operations. Hence, co-op is more stable as it inserts checks within the compiled script code to ensure a clean script stop.

However, this new setting requires scripts to be recompiled. This cannot be done automatically. Hence, if on startup the script engine encounters a script compiled for a different stop strategy (e.g. the script is compiled for the abort strategy where the configuration is set to co-op) then a warning is logged. The script will still be started using the compiled in strategy.

If you see this message to force recompilation of script DLLs please set [XEngine] DeleteScriptsOnStartup = true for at least one simulator session. This will remove all old script DLLs allow them to be recompiled. The script state and the scripts themselves will *not* be lost.

Alternatively, you can set [XEngine] ScriptStopStrategy = abort. However, this is not recommend as it still allows runtime instability. The option remains for debug purposes for now.

General Server

 * A new configuration feature was added that allows one to refer to a previous config value in later config values. For instance, if PublicPort = 8002 is in the [Const] section of an ini file then it can be referenced later on with the syntax ${|}, e.g. MapTileURL = ${Const|BaseURL}:${Const|PublicPort}.  This allows a parameter to be set once and reused as necessary.  Please see the mailing list post and thread for more details - this has not yet been documented in the wiki.
 * Console command history will be saved between session if ConsoleHistoryFileEnabled = true in the [Startup] section of config. This is not currently enabled by default.

Services
deregistration from the grid service on simulator shutdown.
 * Registered varregions can no longer accidentally overlap other regions.
 * Added a get_grid_extra_features endpoint to the grid service. This returns SearchURL, MapTileURL, DestinationGuide and ExportSupported to simulators so that they don't need to be set separately on each simulator.
 * "show grid size" service console command added to show a grid's approximate size in km squared. Will not be accurate if regions crash or are halted without the normal

Hypergrid

 * Fixed an issue where attachments could sometimes disappear or appear twice after a cross-grid teleport.
 * Hypergrid destinations support added to user profiles picks for built-in profiles.

Archiving

 * The content of exported IARs can now be filtered based on copy/modify/transfer permissions as can already be done for OARs.

Avatars

 * The stand position of an avatar is now correct if a script moves them whilst they are seated.
 * Reduced AgentUpdate UDP message triggering sensitivity to 0.1 from 0.01. This has not proven noticeable to viewers and decreases the UDP message traffic processing on high concurrency regions.
 * Automatic periodic appearance refresh is now disabled by default. The problem which this was implemented to fix (avatar appearances being missing) appears to have gone away.  Disabling this reduces outgoing UDP traffic for simulators, particularly heavily populated ones.

Friends/Profiles

 * Classifieds can now be deleted in core profiles.

Groups

 * PGSQL database adaptor added for built-in groups.

Instant Messaging

 * Group name added to group IMs. This is used by some viewers (e.g. Singularity but not Firestorm) to show information on receiving a group message.

Objects

 * The click action of an object is now correctly set back to touch if it is bought.

Mesh/Sculpt

 * Textures from uploaded meshes now show up as texture items in the user's inventory.

Physics

 * Embedded BulletSim updated to 2.82.
 * In BulletSim, avatars no longer flop onto the floor when flying at very low heights.
 * In BulletSim, avatar terminal velocity when falling was implemented.
 * In BulletSim fixed possible exceptions if a linkset was created when a child mesh was not available.
 * In BulletSim implemented the LSL VEHICLE_FLAG_LIMIT_ROLL_ONLY flag.
 * In BulletSim fixed an issue where the simulator could fail to startup due to race conditions in handling the list of avatars.
 * In ODE fixed an issue where the avatar could not jump and move forwards when facing south or west.

Region/Estates/Parcels

 * UDP update sending performance improved for regions with large numbers of agents (50+).
 * Accuracy of scene update timing improved.
 * Fixed an issue where a neighbouring varregion would sometimes not show up for users.
 * Added a "show region" console command to show all the parameters of the current region show as host name, agent limits, etc.

Region Cross/Teleport

 * Fixed an issue where a viewer could stop responding if a user crossed very rapidly back and forth between regions. Current solution is to disallow cross until the previous cross has completed.
 * Responsiveness of teleport on highly loaded simulators was improved.
 * Teleporting via the map to a varregion was improved.
 * Added a "region set" console command that allows agent-limit and max-agent-limit to be set. agent-limit sets the current avatar limit for a region which can also be done directly in the viewer.  However, many viewers impose a limit of 100.  The max-agent-limit imposes a maximum number for agent limit.  For instance, if this is set to 50 then agent-limit cannot be set on the console or in the viewer to more than 50.

Terrain

 * By default, terrain information is now sent in an area centred on the avatar rather than for the entire region. This is to enable better responsiveness in varregions.  This can be controlled via [Terrain] SendTerrainUpdatesByViewDistance.

Scripting

 * Many inaccuracies in reporting compile error line and column numbers were fixed.
 * [LL-Functions] RestrictMail parameter added so that one can restrict llEmail to only send e-mail to the script owner's e-mail address.
 * Added the LSL transaction_result event.
 * OBJECT_ROT and OBJECT_VELOCITY in llGetObjectDetails now returns the avatar properties if the script is in an attachment.
 * llSetPrimitiveParams calls are no longer ignored after llSetTextureAnim(FALSE).
 * Giving the name of a non-existing item to llGiveInventory no longer wrongly generates an exception as well as an error.
 * Implemented osForceOtherSit with threat level VeryHigh. This allows a script to sit an avatar without a permission request.
 * osNpcMoveToTarget will now do nothing if called for a seated NPC rather than generating an exception.

Test

 * The pCampbot load testing facility was vastly improved to reduce false positives.

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.