LibOpenMetaverse Release 0.6.0

The OpenMetaverse Ninjas are proud to announce the release of the the
OpenMetaverse Library 0.6.0.

There are many changes since our last release 8 months ago.

This is the first official release with our new name "LibOpenMetaverse".

The library has been broken out into several assemblies:

  • OpenMetaverse.DLL - The core library which contains all the client functionality for accessing the Second Life, OpenSim and Simian servers.
  • OpenMetaverseTypes.dll - A collection of many types specific to 3d virtual worlds which were previously included in the core library.
  • OpenMetaverse.StructuredData.dll - an OSD (aka LLSD) and Json Library for structuring data with loose typing useful for serialization of data over the capabilities system
  • OpenMetaverse.Http.dll - a CAPS Client and Server used by the OpenMetaverse library and Simian

This is major release that contains over 60 new features and bug fixes since our previous release in July 2007!

Some of the highlights included in this release:

  • Online API Documentation is now Searchable
  • StructuredData and Types have been split into their own Assemblies (Be sure to add a Reference to both the core library OpenMetaverse.dll AND the Types library OpenMetaverseTypes.dll)
  • The Main client Class "SecondLife" has been renamed to "GridClient", Previously instantiating the class you would use SecondLife Client = new SecondLife; Now its GridClient Client = new GridClient();
  • Our Types library no longer use the Prefix LL, ie : LLColor is now just Color, LLVector3 is now just Vector3, LLUUID is now UUID;

There are other breaking API changes since 0.5.0, but the above listed changes will get your project upgrade jump-started.

A full list of new features added and bugs fixed is available in the jira

You can download this release from our Downloads page

Fully searchable API Documentation for this release can be found on the
Documentation page

To submit trouble reports please use the "Create New Issue" link in our
jira issue tracker

Thanks to all the Testers, bug reporters, patch submitters and developers
who contributed to this release!

Release notes follow,

Release Notes - libopenmv (formerly libsecondlife) - Version 0.6.0


  • [LIBOMV-24] - RequestImage() fails when trying to download images larger than 33,600 bytes (Mapblock Images)
  • [LIBOMV-259] - Typo in WEARABLE_BAKE_MAP
  • [LIBOMV-281] - SLProxy set command attempts to modify variable block array field.
  • [LIBOMV-322] - Prebuild.exe fails to set the proper solution version resulting in not being able to open a solution by double click
  • [LIBOMV-325] - No handler registered for packet event ParcelMediaCommandMessage
  • [LIBOMV-328] - libopenjpeg doesnt export DotNet functions properly
  • [LIBOMV-330] - Unix Makefile for openjpeg does not produce correct binary name
  • [LIBOMV-331] - Unable to upload images (Content-Length not set)
  • [LIBOMV-332] - TestClient under mono/Windows does not login, Caps error at Object reference not set to an instance of an ob ject
  • [LIBOMV-333] - Inventory not updated with newly created items.
  • [LIBOMV-334] - nant clean clobbers bin directory
  • [LIBOMV-338] - UDPBufferPool not releasing pool resources on simulator change
  • [LIBOMV-340] - ObjectManager not removing av from ObjectsAvatars.Dictionary when killed
  • [LIBOMV-342] - Incoming Packet parser chokes on some packets
  • [LIBOMV-348] - Changing property on form in any example application causes the project files to be corrupted and form controls disappear
  • [LIBOMV-351] - Login status: Failed: No response from the CAPS server
  • [LIBOMV-353] - When Logout is called, client_uploaddatacompleted throws nullreference exception.
  • [LIBOMV-354] - appearance command fails
  • [LIBOMV-355] - NetworkManager changes which added packet queuing cause duplicates and resends
  • [LIBOMV-356] - Dashboard example always shows 'Loading' on inventory, only base folder skeleton is shown
  • [LIBOMV-361] - Endian issues causing Teleport issues and disconnects
  • [LIBOMV-362] - Packet handler decodes packet as TestMessage packet, since its not a TestMessage packet it throws an exception
  • [LIBOMV-364] - Memory leaks when getting ImprovedInstantMesaage packet
  • [LIBOMV-366] - is 64-bit instead of 32-bit
  • [LIBOMV-367] - client.Objects.OnObjectUpdated Bug
  • [LIBOMV-368] - ObjectManager.ObjectPropertiesCallback(Objects_OnObjectProperties) is not raised and Async Packet Event Handler: System.NullRef erenceException in testclient
  • [LIBOMV-370] - Warnings and errors opening .sln file in Visual C# 2008 Express
  • [LIBOMV-371] - Client.Appearance.WearOutfit does nothing
  • [LIBOMV-372] - Attempting to use Group Chat functionality in library throws LLSD exception
  • [LIBOMV-376] - [patch] Correctly deserializes BinaryBucket in IM created from ChatterBoxInvitation event
  • [LIBOMV-377] - Bug in OpenMetaverse.NetworkManager.OutgoingPacketHandler()
  • [LIBOMV-378] - Binaries compiled with msvc have quirky behaviour when ran under linux/mono
  • [LIBOMV-382] - Calling RequestJoinGroupChat causes incoming im.GroupIM to = FALSE
  • [LIBOMV-384] - Client.Network.CurrentSim.Estate.GetInfo() Not working
  • [LIBOMV-389] - Repeated "Serializing EnableSimulator capability with generic handler" messages -> big bandwith usage
  • [LIBOMV-395] - [patch] Remove most compiler warnings
  • [LIBOMV-397] - [patch] Save new attachments correctly to inventory
  • [LIBOMV-398] - Parcel Access Entry flags field is always 0
  • [LIBOMV-399] - sim.AvatarPositions has the incorrect Z value (Z / 4)
  • [LIBOMV-400] - Client.Self.SimPosition missing vector transformation for rotated seat prims
  • [LIBOMV-401] - TurnToward does not aim correctly while seated on a rotated prim
  • [LIBOMV-402] - Convert TeleportFinish from deprecated UDP packet to CAPS Handler
  • [LIBOMV-403] - GridClient.Settings.MULTIPLE_SIMS true OnSimConnected Callback returns 0 Simulator.Handle
  • [LIBOMV-406] - GroupManager.UpdateRole() does not populate the .Title field
  • [LIBOMV-407] - GroupManager caching by requestID, possible memory leak
  • [LIBOMV-413] - RequestGroupRoleMembers does not add to GroupRolesMembersRequests
  • [LIBOMV-414] - Group members list is incomplete
  • [LIBOMV-415] - [ PATCH ] - Fails to respect MAX_RESEND_COUNT
  • [LIBOMV-416] - importprimscript fails to link object and set proper permissions
  • [LIBOMV-420] - [patch] the asset download handler assumes that all but the last packets will always be 1,000 bytes long
  • [LIBOMV-423] - LLSD binary decoding (encoding?) failure
  • [LIBOMV-425] - small bug when running prebuild under linux
  • [LIBOMV-429] - Allow setting appearance to continue even if default textures or some other fail to bake occurs
  • [LIBOMV-440] - GridProxy not modifying EnableSimulator EventQueue messages
  • [LIBOMV-442] - GridProxy no longer prints out packet details
  • [LIBOMV-445] - big endian bug in OpenMetaverse/Types/UtilsConversions.cs [PATCH attached]
  • [LIBOMV-446] - [Patch] Copy constructor of Primitive throws an exception
  • [LIBOMV-451] - [Patch] Transfer system may cause an unwanted cancel of a asset transfer
  • [LIBOMV-454] - Unable to organize Conferences
  • [LIBOMV-455] - AvatarManager.RequestAvatarNames can produce an oversized UUIDNameRequestPacket when called with a long list of UUIDs
  • [LIBOMV-457] - Cannot proxy libomv clients
  • [LIBOMV-459] - erron with flags in TextureEntry.cs
  • [LIBOMV-460] - Failing Unit Tests


  • [LIBOMV-422] - svn checkout command on the 'getting started' page of is obsolete


  • [LIBOMV-288] - InventoryManager Async Refactor, optional store, object-oriented interface.
  • [LIBOMV-316] - [PATCH] Login redirect
  • [LIBOMV-320] - Migrating libprimrender to a plugin system inside OpenMetaverse
  • [LIBOMV-327] - Deselect Multiple Objects
  • [LIBOMV-336] - TestClient master name resolution async.
  • [LIBOMV-341] - Adds Inventory instances to GridClient for library and inventory
  • [LIBOMV-343] - Adds support for rate limiting outgoing packets, uses existing but enhanced blockingqueue class to achieve near perfection and promotes good automaton behaviour
  • [LIBOMV-345] - Immediately initializes GridClient's Inventory instances.
  • [LIBOMV-346] - Adds InventorySortOrder override to InventoryFolder.RequestContents
  • [LIBOMV-347] - FriendsManager missing event for when names are populated
  • [LIBOMV-358] - Estate Tools "Ban/Unban From All Estates" Functionality
  • [LIBOMV-385] - [patch] Fixes capability names in request to seed cap, UpdateScriptAgent and UpdateScriptTask
  • [LIBOMV-386] - Return request ID from RequestGroup* functions so access to GroupCaches is possible by key
  • [LIBOMV-394] - Huge difference in performance between 0.5.0 and latest trunk (r2272)
  • [LIBOMV-410] - Client.Self.Movement.Jump() has no way to stop jumping
  • [LIBOMV-417] - Allow outgoing packet throttling to be disabled
  • [LIBOMV-432] - Add a callback to RequestCopyItemFromNotecard to notify when item is copied to inventory
  • [LIBOMV-441] - ParcelManager Update() method will now use capability if it exists on the simulator and fallback to the udp method if no capability exists.
  • [LIBOMV-449] - (PATCH) add ability to chain login request and response delegates


  • [LIBOMV-326] - GroupManager Cleanup
  • [LIBOMV-360] - Update _Packets_cs from the latest preview viewer's message template (1.21).
  • [LIBOMV-373] - Remove [Obsolite] tag over PrimFlags.None
  • [LIBOMV-375] - Remove duplicate GroupPowers struct, adds additional entries for moderator powers

New Feature

  • [LIBOMV-60] - [PATCH] Network.OnOutgoingPacket event
  • [LIBOMV-319] - Convert libopenmv to use Prebuild
  • [LIBOMV-323] - Need Packet Handler for EjectGroupMemberReply in GroupsManager
  • [LIBOMV-324] - RequestRegionHandle and OnRegionHandleReply
  • [LIBOMV-344] - OpenMetaverse.GUI project for commonly used controls
  • [LIBOMV-357] - Updates Derezlocation Enum to support taking a copy of a rezzed item in-world but leaving the object
  • [LIBOMV-374] - Adds support for group chat moderation abilities
  • [LIBOMV-379] - Trying to download an animation from asset server (not from inventory) does not raise OnAssetReceived event when animation UUID is correct (but does when it is not)
  • [LIBOMV-387] - Implement ability to recieve group notice list in GroupManager
  • [LIBOMV-393] - [PATCH] New methods to set shape and material of an object
  • [LIBOMV-408] - Simulator Pause/Resume functionality
  • [LIBOMV-411] - Binary BVH Asset decoder
  • [LIBOMV-412] - TestClient: command for turning the avatar towards a point
  • [LIBOMV-418] - Add SetObjectSaleInfo() function
  • [LIBOMV-421] - Create function for creation, updating and deletion of picks
  • [LIBOMV-433] - Implement an AddToOutfit command and also fix the hardcoded detach all Attachments
  • [LIBOMV-437] - Need Client.Avatars.OnAvatarAnimation
  • [LIBOMV-443] - Addition of method to ObjectManager to support dropping an attached object
  • [LIBOMV-448] - No overloaded method of UploadAsset supports a transactionid


  • [LIBOMV-195] - Alternate build targets for CAPS, LLSD and Packets class for more 'standalone' modes suitable for inclusion in other projects
  • [LIBOMV-196] - Convert internal data storage structures to InternalDictionary Class, Friendslist, Groups, Etc.
  • [LIBOMV-251] - Need to compile new OS X, 32bit and 64bit openjpeg libraries See LIBOMV-243
  • [LIBOMV-318] - Renaming openjpeg-libsl to openjpeg-dotnet
  • [LIBOMV-329] - Need to compile and commit linux x86_32 and Max OSX openjpeg binaries
  • [LIBOMV-337] - New inventory system unit tests (incomplete)
  • [LIBOMV-359] - Rolling back InventoryManager to previous 0.5 Inventory System
  • [LIBOMV-431] - Recompile openjpeg MacOSX/Windows/Linux x86_64/Linux 32bit binaries

-- Jim