LibreMetaverse.RLV
3.2.0
Prefix Reserved
dotnet add package LibreMetaverse.RLV --version 3.2.0
NuGet\Install-Package LibreMetaverse.RLV -Version 3.2.0
<PackageReference Include="LibreMetaverse.RLV" Version="3.2.0" />
<PackageVersion Include="LibreMetaverse.RLV" Version="3.2.0" />
<PackageReference Include="LibreMetaverse.RLV" />
paket add LibreMetaverse.RLV --version 3.2.0
#r "nuget: LibreMetaverse.RLV, 3.2.0"
#:package LibreMetaverse.RLV@3.2.0
#addin nuget:?package=LibreMetaverse.RLV&version=3.2.0
#tool nuget:?package=LibreMetaverse.RLV&version=3.2.0
▗▖ ▄ ▗▖ ▄▄▄ ▗▞▀▚▖▗▖ ▗▖▗▞▀▚▖ ■ ▗▞▀▜▌▄ ▄ ▗▞▀▚▖ ▄▄▄ ▄▄▄ ▗▞▀▚▖
▐▌ ▄ ▐▌ █ ▐▛▀▀▘▐▛▚▞▜▌▐▛▀▀▘▗▄▟▙▄▖▝▚▄▟▌█ █ ▐▛▀▀▘█ ▀▄▄ ▐▛▀▀▘
▐▌ █ ▐▛▀▚▖█ ▝▚▄▄▖▐▌ ▐▌▝▚▄▄▖ ▐▌ ▀▄▀ ▝▚▄▄▖█ ▄▄▄▀ ▝▚▄▄▖
▐▙▄▄▖█ ▐▙▄▞▘ ▐▌ ▐▌ ▐▌
▐▌
LibreMetaverse.RLV
RestrainedLove (RLV) command handling, with no dependency on the rest of LibreMetaverse. RLV is how scripted objects, worn by an avatar, ask a viewer to restrict what the wearer can do: no chatting, no teleporting, no undressing, a limited camera. This package parses those commands, keeps track of who has restricted what, and answers the queries a script may send back. It identifies itself as RLV 3.4.3 / RLVa 2.4.2.
Archiving · Utilities · Voice.Vivox · Voice.WebRTC
│ built on the client
LibreMetaverse the client: login, managers, inventory
│
Transport UDP socket, reliable circuit, throttle
│
Protocol packets and capability messages
│
Assets the offline data model
├── ModelFormats · Rendering.MeshFoundry · Rendering.Simple
│
StructuredData · Imaging.Abstractions
│
Types UUID, vectors, quaternions, colors
on their own: PrimMesher · Imaging.Skia · [RLV] · LslTools
This package stands apart from the stack: it depends on no other LibreMetaverse package.
What is in it
RlvService: the entry point. Feed it chat or instant-message text withProcessMessageAsyncand it applies the commands in it. It reports what happens in the world back to scripts (ReportItemWornAsync,ReportItemAttachedAsync, inventory offers accepted or declined and so on).RlvRestrictionManager: the live set of restrictions, which object set each one, and queries over them (FindRestrictions,GetRestrictionsByType), plus the locked-folder bookkeeping.RlvCommandProcessorparses and runs the commands.RlvPermissionsServiceanswers "may the avatar do this now?" from the restrictions in force (CanFly,CanJump,CanSit,CanUnsitand the like).RlvBlacklist: behaviors you choose not to honor (BlacklistBehavior,IsBlacklisted).- Callbacks: you give the service
IRlvQueryCallbacks(what your viewer can answer: whether an object exists, whether the avatar is sitting and on what, camera settings, the active group, the inventory map, environment and debug settings) andIRlvActionCallbacks(what it can be told to do: reply on a channel, send an instant message, teleport, sit and unsit, attach, detach and remove outfit items, set the group, rotate, adjust height or field of view, change environment and debug settings).RlvCallbacksDefaultandRlvActionCallbacksDefaultare inert implementations, a starting point and a base for tests.
Example
using LibreMetaverse.RLV;
var rlv = new RlvService(new RlvCallbacksDefault(), new RlvActionCallbacksDefault(), enabled: true);
// A worn object called "Gag" says "@sendchat=n" to its wearer.
await rlv.ProcessMessageAsync("@sendchat=n", Guid.NewGuid(), "Gag");
foreach (RlvRestriction r in rlv.Restrictions.FindRestrictions("sendchat"))
Console.WriteLine(r); // RlvRestriction: Behavior=SendChat SenderName="Gag" Args=[]
Use it when
You are adding RLV to a viewer or a bot built on any library, not only LibreMetaverse: you supply the callbacks that touch your own client, the package does the protocol and the bookkeeping. The GridClient is not needed.
Depends on
System.Collections.Immutable, and Microsoft.Bcl.HashCode on .NET Framework. It targets .NET Standard 2.1, .NET Framework 4.8.1, and .NET 8, 9 and 10.
Install
dotnet add package LibreMetaverse.RLV
More
- Source, issues and discussion: https://github.com/cinderblocks/libremetaverse
- Moving from 3.1: the migration guide
- License: BSD-3-Clause
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| .NET Framework | net481 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.8.1
- Microsoft.Bcl.HashCode (>= 6.0.0)
- System.Collections.Immutable (>= 10.0.12)
-
.NETStandard 2.1
- System.Collections.Immutable (>= 10.0.12)
-
net10.0
- No dependencies.
-
net8.0
- System.Collections.Immutable (>= 10.0.12)
-
net9.0
- System.Collections.Immutable (>= 10.0.12)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 3.2.0 | 159 | 10/13/2026 |
| 3.1.8 | 124 | 10/6/2026 |
| 3.1.7 | 107 | 10/4/2026 |
| 3.1.6 | 194 | 9/14/2026 |
| 3.1.5 | 355 | 9/3/2026 |
| 3.1.4 | 130 | 8/26/2026 |
| 3.1.3 | 240 | 7/24/2026 |
| 3.1.2 | 129 | 7/21/2026 |
| 3.1.1 | 235 | 7/14/2026 |
| 3.1.0 | 176 | 7/11/2026 |
| 3.0.4 | 198 | 7/9/2026 |
| 3.0.3 | 294 | 7/3/2026 |
| 3.0.2 | 138 | 6/29/2026 |
| 3.0.1 | 140 | 6/27/2026 |
| 3.0.0 | 202 | 6/23/2026 |
| 2.6.10 | 149 | 6/20/2026 |
| 2.6.9 | 134 | 6/8/2026 |
| 2.6.8 | 132 | 6/7/2026 |
| 2.6.7 | 141 | 5/14/2026 |
| 2.6.6 | 187 | 4/12/2026 |