0.7.3 Release

=Release Notes=

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

As ever, OpenSimulator is a highly complex piece of alpha software. It's very likely but not guaranteed to work and various usage scenarios (standalone, grid, hypergrid, etc.) in combination with different dependencies (e.g. different versions of mono on Linux/Mac) can produce unexpected or unstable behaviour. If it breaks you get to keep both pieces.

If you are upgrading from a version prior to 0.7.x, make sure to read the 0.7 Release notes. There have been extensive changes in OpenSimulator from 0.6.x to 0.7.

When you are upgrading, 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

 * Sometimes creating body parts or clothing fails with no error message. This is not consistent - work around is simply to try again.
 * In a stock Linden Lab viewer 2/3, various tabs and buttons will point back to the Linden Lab website. In particular, the profile data will try to fetch from the Linden Lab website. It's not known currently how/whether this can be changed in the stock viewer.
 * No form of prim equivalence is implemented for meshes.
 * Loading scripts from the simulator library does not work properly.
 * Multiple attachments on a single attachment point not supported. However, in viewers which do support multiple attachments, the enforcing of a single attachment on the simulator end should be much smoother.
 * The MSSQL database plugin does not yet support telehubs.
 * The osNpcLoadAppearance function fails to create the required attachments.
 * If the WebStats module is enabled (it is disabled by default) and the simulator has more than one region and a user teleports to another region on that simulator then a non-terminal sqlite storage exception will be thrown every time the viewer updates the stats (each viewer does this every 5 minutes).

Requirements
OpenSimulator requires:


 * .NET Framework 3.5 when running under Windows.
 * At least Mono 2.4.3 when running under Mono (Linux or Mac). Mono 2.6.x and Mono 2.10.x onwards work well. Mono 2.8.x versions are reported as less stable in some situations.

Backwards Compatibility Notices

 * Object sit targets have been adjusted to much better match those found on the Linden grid. This is for long term compatibility purposes. Unfortunately, it means that existing objects will need to have their sit targets manually adjusted. The adjustment is <-0.1, 0, 0.118>.
 * Due to a libomv bug fix, teleports in this release are incompatible with OpenSimulator 0.7.0.2 and earlier. This affects primarily Hypergrid teleports, since simulators within the same grid tend to be all in the same version. Teleports to OpenSimulator 0.7.1 and later should work.

General Simulator

 * OpenSimulator can now be run as a 64-bit Windows process by starting it with OpenSim.exe rather than OpenSim.32BitLaunch.exe. This allows OpenSimulator to address more than 2GB of memory of memory on Windows. Other OpenSimulator-supported operating systems (Linux, Mac OSX) could already do this. If you encounter issues, OpenSim.32BitLaunch.exe is still available to run OpenSimulator in 32-bit mode.
 * Locales forced to en_US, which fixes an issue with servers where a locale used a coma as a decimal separator rather than a decimal point.
 * Performance improvements to scene loop processing.
 * Adaptive throttling turned on by default. This makes the viewer to simulator connection more reliable, resulting in fewer dropped packets. One symptom of dropped packets for instance, is some terrain failing to appear on login.
 * Unnecessary exceptions no longer thrown by the embedded HttpServer.dll.
 * During simulator startup, default setting now disables logins to the simulator until scripts finish compiling to reduce performance issues.

Configurations

 * HG: in the simulator configuration, under [GridService], new variable HypergridLinker = true
 * The Hypergrid profile URL for a user is now called the home URL. This requires simulator configuration changes. See http://opensimulator.org/wiki/Installing_and_Running_Hypergrid#Configuration_for_OpenSimulator_0.7.3 for more details.

Services

 * "show digest" asset service console comamnd renamed to "show asset" and extended to show more information.
 * Profiles service connector improved to make configuration less error-prone and to allow Hypergrid support.
 * OpenID authentication identity queries fixed.

Hypergrid

 * Exception no longer thrown an instant message is sent to a hypergrid-enabled simulator running more than one region.
 * Exception no longer thrown if hypergrid friend identifier shorter than expected.
 * Exception no longer thrown if a hypergrid-enabled simulator receives a bad home URL for a visitor.
 * Attachments states are no longer saved when a user leaves a foreign simulator. This may resolve a long-standing issue where attachments are corrupted for travellers.

Objects

 * Linksets now retaining their proper numbering when one set is linked with another.
 * Child prims are no longer rotated if only the root prim of a linkset is rotated.
 * Speed of deleting multiple objects improved.
 * Scripts deleted from a prim now go into the user's trash rather than disappearing.
 * Taking a copy of an object that you don't own no longer places it in the original owner's inventory if the copy is taken before the region is restarted.
 * Shape parameter changes on child prims in a linkset now properly persist.
 * Omega (as set in llTargetOmega, for example) now properly persisted in child prims.
 * A region-crossing object no longer occasionally gets placed at the opposite side of the origin sim for a moment.

Mesh

 * Physics collision meshes for mesh now stored by default when these are uploaded by the viewer.
 * Uploaded mesh items no longer get reset to the wrong current owner permissions if their name or other property is changed.

Avatars

 * Avatar movement improved where there are neighbouring regions, especially where those neighbouring regions are offline.
 * Various appearance bugs fixed which should result in fewer cloud and grey avatars.
 * Default chat distance changed to 20 meters from 30.
 * Animations improved.
 * Sit target positioning improved. Unfortunately, this will mean that old objects need their sit target to be manually changed.
 * If the avatar is told to sit on a prim, it will now warp there if within 10 meters rather than attempting to walk before sitting (which usually failed). If the avatar is further than 10 meters then nothing happens.
 * Ground sitting fixed.
 * Region crossings improved.
 * A falling avatar that is made to start flying again (e.g. by tapping the home key) can now move freely instead of being rooted to the spot.
 * Teleport routing fixed so that avatars teleporting to a parcel are now placed in the parcel settings' position and look direction.

Physics

 * Open Dynamics Engine (ODE) and scene loop allowed frame times now match. This prevents an error developing between the physics simulation and the viewer movement prediction algorithm, resulting in smoother movement and fewer position update messages.
 * ODE no longer occasionally fails with a native stacktrace when a simulator is running more than one region.
 * A falling avatar is now restricted to a speed of 54 m/s (the same as a skydiver on Earth). This stops the avatar being randomly teleported when it exceeds a certain speed.
 * Small performance improvements made to ODE module.

Parcels/Region/Estates

 * Estate covenant change times now persisted.
 * Notecards in covenants no longer appear corrupted if the viewer cache is cleared.
 * Telehub support implemented.
 * Problem fixed where avatars hitting banlines would sometimes be frozen on the banline until they teleported away. However, there are still many other issues with parcel bans that won't be fixed in this release.
 * Parcel sales persistence supported added to the SQLite database module.

Map

 * Parcel overlays added to map tiles.

Users

 * In the 'create user' command on the console, a UUID for the user can now be given.

Friends

 * Removing friends fixed when using the SQLite database plugin.

Archiving

 * OAR and IAR loading now check if an asset already exists instead of letting the asset service perform the check. This should reduce archive loading times.
 * IAR loading no longer fails on a bad asset.
 * Experimental --publish option added to OpenSimulator Archives (OARs). This resets owner information when a region is exported so that if it's reloaded to the same grid the original author doesn't appear as the owner of objects rather than the uploader. Creator information is left intact.

NPC

 * osNpcSit and osNpcStand implemented.
 * osIsNpc implemented. This indicates whether a particular key belongs is that of an NPC.
 * NPCs can now sit on prims that don't have a sit target.
 * Bug fixed where NPCs created in a region with groups-enabled could cause significant temporary lag.
 * By default, created NPCs are now 'owned' by the owner of the creating script. Owned NPCs can only be deleted by other scripts with the same owner. See http://opensimulator.org/wiki/OSSLNPC for more details.

Inventory

 * Bug fixed where giving an inventory folder to an avatar on the same region would cause an error if the folder was accepted.
 * Attaching objects to a notecard fixed.
 * Dragging inventory items from child prims into user inventory fixed.

Groups

 * Bug fixed where an object could not be set to a group that the user had just created.
 * Bug fixed where an object could not have its group set back to none after being set.

Administration

 * RemoteAdmin access can now be restricted to an explicit set of IP addresses.
 * Exceptions when executing console commands in ROBUST no longer terminate the executable.
 * You can now set a custom console prompt.
 * "threads abort" console command added which allows a monitored long-lived thread to be manually aborted.
 * "threads show" console command improved.
 * admin_teleport_agent call added that allows an authorized caller to teleport a user in the simulator to another location.
 * JSON handler added for grid info.
 * "delete object" console command now only deletes nominated objects in the currently selected region.
 * "show object name" and "show object uuid" commands added to view object information from the console.
 * show part uuid" and "show part name" commands added to view part information from the console for non-root prims.
 * NonphysicalPrimMax configuration setting fixed.

Monitoring

 * Simulator statistics accuracy improved, though still some way from always accurate.
 * More region statistics added to the monitoring module.

Scripting

 * XEngine shutdown time vastly improved when many scripts are being run.
 * Bug fixed where more than 2000 scripts on a region could trigger a stack overflow.
 * "scripts show", "scripts suspend", "scripts resume", "scripts start" and "scripts stop" region console command added. These allow scripts to be manipulated from the console.
 * "xengine status" command implemented to show various xengine attributes (e.g. work items waiting, compile queue, etc.).
 * Permission control for OSSL script functions enhanced so that permission can be given only to the group of the parcel occupied by the script and/or the parcel owner and/or the estate manager and/or the region owner.
 * NoAccess 'threat' level added to OSSL permissions filtering so that the default can be for no OSSL functions to be available apart from those individual chosen.
 * If a script that is no copy is dragged into the user inventory it is now stopped in the scene.
 * OpenSimulator no longer spits out spurious errors and multiple "script saved" viewre messages if the properties of a script in a prim's inventory are changed (e.g. the name).
 * llAvatarOnLinkSetTarget implemented.
 * llGetLinkKey and llGetLinkName improved to return avatar details if sat upon by an avatar and the avatar link number given.
 * llGetTexture now returns the inventory name of a requested texture if it exists in the prim's inventory. It also returns NULL_KEY if an invalid face is given rather than an empty string.
 * llGetAnimation now returns the turning left and turning right state if appropriate.
 * llHTTPRequest improved to properly return the HTTP body as the body from an unsuccessful request, rather than populating this with the status description.
 * llRot2Euler improved to not show inaccurate results a the +/- pi/2 singularity.
 * llAngleBetween fixed to allow denormal rotations.
 * Support for rotating physical objects added to llLookAt and llRotLookAt.
 * llEdgeOfWorld fixed.
 * llSetText fixed to allow only a maximum of 254 characters.
 * llGetLinkNumberOfSides made available to scripts.
 * llGetParcelMusicURL implemented.
 * llManageEstateAcccess implemented.
 * llLinkSitTarget implemented.
 * llGetLinkMedia, llSetLinKMedia and llClearLinkMedia implemented.
 * LINK_ROOT flag fixed for llGetLinkName.
 * PRIM_LINK_TARGET, PRIM_OMEGA and PRIM_POS_LOCAL implemented for llSetPrimitiveParams, llSetLinkPrimitiveParams and llSetLinkPrimitiveParamsFast.
 * PRIM_POSITION usage fixed.
 * Removal of a single LSL sensor no longer removes all other sensors for other scripts in that prim.
 * A mesh object now has 8 faces.
 * PRIM_SCULPT_FLAG_MIRROR and PRIM_SCULPT_FLAG_INVERT implemented in llSetPrimitiveParams and other similar functions.
 * CHANGED_TEXTURE and CHANGED_COLOR events fixed.
 * RCERR_UNKNOWN and RCERR_SIM_PERF LSL constants added though these are not currently used by OpenSimulator.
 * osParseJSON problems fixed.
 * osSetRegionWaterHeight will no longer accept a negative value.
 * osTeleportAgent no longer has a hard-coded check to disallow teleports if the script is not on a parcel with the same owner. This can now be specified in OSSL permissions configyuration.
 * osGetGrid* OSSL functions fixed to return information from the central grid service [GridInfo] section rather than that of the simulator when in grid mode.
 * osGetGridCustom function added to allow arbitrary GridInfo properties to be retrieved.
 * osGetGridHomeURI function added to allow retrieval of the current grid's Hypergrid address.

Testing

 * pCampBot tool resurrected and improved to allow multiple libomv clients to be logged in with certain behaviours for stress testing purposes.

Acknowledgements
Many, many thanks to all the developers, testers and community members who contributed to this release. Your hard work makes this all possible :)