RLVa 2.0 Release Notes

From Catznip
Jump to navigation Jump to search

(Examples of commands below were intended to be copy/pasted straight into the RLVa console; for scripted use replace 0 with a channel number as usual)

Legacy RLVa command formalization

All of the following commands have been available in previous versions of RLVa but were never actually formally documented. Their behaviour has now been finalized and is no longer subject to change and can safely be used in products (please IM Kitty Barnett if you need to know how long a specific commands has been available).

  • @findfolders:<filter>=<channel> - Similar to @@findfolders but will return all matches rather only the first
    • Example: @findfolders:gag=0 will list all folders matching 'gag'
  • @getcommand[:<behaviour>[;<type>[;<separator>]]]=<channel> - Can be used to query whether a command is supported and currently enabled (see documentation for more details)
    • Example: @getcommand:setcam;force=0 lists all @setcam force commands
  • @getdebug - Can be used to query (but not set) the following additional debug settings: RestrainedLoveforbidGiveToRLV, RestrainedLoveNoSetEnv and WindLightUseAtmosShaders.
  • @interact=<n|y> - Blocks world interaction but allows drag-drop, the camera tool, mouse steering and access to the "self" context menu
  • @sharedwear=<n|y> - Counterpart to @unsharedwear wear locks the shared ♯RLV Folder
  • @unsharedwear=<n|y> - Counterpart to @unsharedunwear remove locks the shared ♯RLV Folder
  • @touchhud[:<object>]=<n|y> - Prevents the user from being able to touch their worn HUD attachments (with exceptions)
  • @tprequest[:<agent>]=<n|y> - Prevents the user from requesting teleports from anyone except those that are on the exception list (has strict variant)
  • @accepttprequest[:<agent>]=<n|y> - When used without an option all incoming teleport requests will be auto-accept; when used with a specific key that person's incoming teleport requests will be auto-accepted (has strict variant)

New commands

  • @sendgesture=<n|y> - Blocks the user from sending/playing gestures
  • @sendchannel_except[:<channel>]=<n|y> - Similar to @sendchannel[:<channel>] allows the user to chat on all channels except those defined as exceptions (cumulative with @sendchannel)
  • @showself=<n|y> - Hides the user's avatar and all their attachments (only on their screen); intended to be used alongside camera origin locking
  • @showselfhead=<n|y> - Hides only the user's avatar's head and all its attachments (only on their screen); intended to be used alongside camera origin locking
  • @tplocal=<n|y> - Restricts local teleports (though double click or location teleports) without impacting sit distance

Command extensions

  • @detachthis:<uuid>=force - Force-detaches an attachment (and its containing folder) by UUID (if it's contained under the shared #RLV folder)
  • @fartouch:<dist>=n|y - @fartouch restricts the user with the specified distance (rather than the default 1.5m)
    • Example: @fartouch:20=n - restricts touch to within a 20m radius of the user
  • @remattach:<uuid>=force - Force-detaches an attachment by UUID
  • @sendchannel_except[:<channel>]=n|y - Blocks only the specified channels from use (opposite of @sendchannel - both restrictions work in tandem)
  • @sittp:<dist>=n|y - @sittp restricts the user with the specified distance (rather than the default 1.5m)
  • @shownames:<uuid>=n|y - Allows @shownames exceptions (all names are anonymized except those on the exception list)
  • @shownametags:<uuid>=n|y - Allows @shownametags exceptions (all tags are hidden except those on the exception list)
  • @shownearby=n|y - Removes visibility of nearby avatar's presence from the viewer UI (empties the Nearby people tab - Radar - Voice floater and removes (anonymized) mentions of nearby avatars from all hover text)
  • @tplocal:<dist>=n|y - allows local teleports only within the specified distance (256m by default)
  • @tpto:<position>;<lookat>=force - Teleports the user to the specified global coordinates with the specified rotation on arrival (in radians)
  • @tpto:<region>/<vector3>[;<lookat>]=force - Teleports the user to the specified coordinates on the region (alternative to providing global coordinates)
    • Example: @tpto:Kara/128/128/50;-1.57=force - teleport to Kara 128,128,50 (facing south)


(Seems a bug snuck in the next 3 between originally writing these up and testing at release so that people on different regions always end up blocked so these are currently not usable with only the minimum distance set - will be fixed in the next release)

  • @recvim:<min-dist>[;<max-dist>]=n|y - User can only receive IMs from people that are within the specified range (see documentation for examples)
    • Example: @recvim:0,20=n - user can only receive IMs from people within chat-range (20m)
  • @sendim:<min-dist>[;<max-dist>]=n|y - User can only send IMs to people that are within the specified range (see documentation for examples)
    • Example: @sendim:256=n - user can only send IMs to people who are at least a region away (256m)
  • @startim:<min-dist>[;<max-dist>]=n|y - User can only start IM sessions with people that are within the specified range (see documentation for examples)
    • Example: @startim:0,256=n - user can only start IMs to people who are on the same region they are (between 0moh oh and 256m)

Camera commands

  • @setcam=<n|y> - Gives an object exclusive control over the camera (only this object's restrictions or limits will be enforced)
  • @setcam_avdistmin[:<distance>]=<n|y> - Enforces a minimum distance between the camera position and the user's avatar (in m)
  • @setcam_avdistmax[:<distance>]=<n|y> - Enforces a maximum distance between the camera position and the user's avatar (in m)
  • @setcam_origindistmin[:<distance>]=<n|y> - Enforces a minimum distance between the (default) camera origin and the camera position (see documentation)
  • @setcam_origindistmax[:<distance>]=<n|y> - Enforces a maximum distance between the (default) camera origin and the camera position (see documentation
  • @setcam_eyeoffset[:<vector3>]=force - Sets the current camera origin offset (see documentation)
  • @setcam_eyeoffset[:<vector3>]=<n|y> - Sets the default camera origin offset (see documentation)
  • @setcam_focusoffset[:<vector3>]=force - Sets the curent camera focus offset (see documentation)
  • @setcam_focusoffset[:<vector3>]=<n|y> - Sets the default camera focus offset (see documentation)
  • @setcam_focus:<uuid>|<position>[;<dist>[;<direction>]]=force - Moves the camera focus and origin to the specified position (by object/avatar UUID or coordinates) - see documentation for more information
    • Example: @setcam_focus:<uuid>;20;=force - Focus on an agent(get your own UUID) from 20m away with your previous camera orientation
    • @setcam_focus:<uuid>;;1/0/0=force - Focus on an object (rez a prim for this and grab its UUID), this will cause the camera to look at the plywood cube (filling the screen) along negative X
    • (Please read the full documentation on this one by clicking the link above - focus locking didn't get finished in time but will be in the next release and work the same way)
  • @setcam_fov[:<angle>]=force - Sets the camera's (vertical) field of view to the specified angle (in radians)
  • @setcam_fovmin[:<angle>]=<n|y> - Enforces a minimum angle (in radians) for the camera's (vertical) field of view
  • @setcam_fovmax[:<angle>]=<n|y> - Enforces a maximum angle (in radians) for the camera's (vertical) field of view
  • @setcam_mode[:<mouselook>|<thirdperson>|<reset>]=force - Switches the current mode to mouselook, third person or resets it to the default view (same as user hitting <esc>)
  • @setcam_mouselook=<n|y> - Prevents the user from going into mouselook
  • @setcam_textures[:<uuid>]=<n|y> - Replaces all textures with the specified texture (or the default grey texture if unspecified)
    • Example: @setcam_textures:796a4bef-e44d-3a5e-26ba-05cfd1e1634d=n
  • @setcam_unlock=n - Locks the camera origin to the user's avatar (same as @setcam_origin:<uuid>=n)
  • @getcam_avdistmin=<channel> ; @getcam_avdistmax=<channel> ; @getcam_fovmin=<channel> ; @getcam_fovmax=<channel> and @getcam_textures=<channel> - Returns the respecitive actively imposed limit (or blank if no limit)
  • @getcam_avdist=<channel> - Returns the current distance between the camera position and the user's avatar (in m)
  • @getcam_fov=<channel> - Returns the camera's current (vertical) field of (in radians)

Illustration: people have asked several times to provide an example of some of the RLVa-specific camera commands (particularly the eye/focus offset ones) to give some idea of how they can be used. The following will create a quick-and-dirty rough enforced mouselook third person perspective with a bleak world view and the camera locked to the avatar (look up/down using the mousewheel).

Copy/paste the following into the RLVa console as a single line:

@setenv=n,setenv_preset:[TOR] FOGGY - Silent heck=force,setcam=n,setcam_textures:796a4bef-e44d-3a5e-26ba-05cfd1e1634d=n,setcam_fovmin:0.727=n,setcam_fovmax:0.727=n,showself=n,setcam_unlock=n,setcam_eyeoffset:-0.2/0.0/-0.3=n,setcam_focusoffset:0.0/0.0/0.9=n

Miscellaneous

  • RLVa console (RLVa menu / Console)

Command console for easy testing, experimenting or reproducing behaviour; commands execute on behalf of the avatar as originating object. For reply commands use 0 as the channel to output to the console (e.g. @version=0). Note that closing the floater clears all set restrictions and exceptions. Like chat; Ctrl-Up / Ctrl-Down keyboard shortcuts cycles through the text editor history.

Formalized RLVa changes (not necessarily new to this version):

  • force wear commands will activate/deactivate gestures as well
  • force wear commands will collect from folder links as well
  • double click teleporting is subject to @sittp (and the new @tplocal command)
  • groups can be added as recvim/sendim/startim exceptions (has been the case since the very first version but seems most people are unaware)

Debug settings (and corresponding menu items under the RLVa menu):

  • RLVaEnableIMQuery : enables or disables configuration queries via IMs (e.g. @version) - default enabled
  • RLVaEnableTemporaryAttachments : allows or prevents processing of RLV commands by temporary attachments - default enabled

The reported API version is currently at 3.1.4 for RLVa 2.0; because of the increasing number of RLVa-specific commands and partial implementation of 2.9 it makes little sense to keep the version in sync with RLV at this time.

Bug fixes

  • fixed : Location on incoming teleport requests isn't censored when @showloc restricted
  • fixed : Message on outgoing teleport offers isn't censored when @startim restricted
  • fixed : Message on outgoing teleport requests isn't censored when @sendim or @startim restricted
  • fixed : Can't buy objects when @edit restricted
  • fixed : Wireframe mode isn't disabled properly
  • fixed : Exception shows an avatar's UUID rather than their name if they're nearby
  • fixed : Auto-pilot isn't subject to local teleport restrictions
  • fixed : "Pay" isn't disabled on the avatar context menu when @shownames restricted
  • fixed : @touchworld[:<uuid>]=n|y applies to other avatar's attachments + @touchattach[:<uuid>]=n|y isn't applied to other avatar's attachments
  • fixed : Can't (re)move items or folders when @unsharedwear or @unsharedunwear restricted
  • fixed : @unsharedwear doesn't block "Add to Outfit" (if no attachment/wearable locks exist)
  • fixed : @unsharedunwear doesn't block "Remove from Outfit" (if no attachment/wearable locks exist)
  • fixed : @unsharedwear prevents taking off worn items in folders that don't have an explicit exception set
  • changed : Show a notification when the user can't offer a teleport due to an RLV restriction
  • changed : Don't keep unknown or invalid restrictions/behaviours
  • changed : Better handling of group joins when @setgroup restricted

Compatibility shims (@setcam_xxx variants are preferred)

  • @camdistmin maps to @setcam_avdistmin
  • @camdistmax maps to @setcam_avdistmax
  • @camtextures maps to @setcam_textures
  • @camunlock maps to @setcam_unlock
  • @camzoommin maps to @setcam_fovmin with angle = 60° / multiplier
  • @camzoommax maps to @setcam_fovmax with angle = 60° / multiplier

Known issues

  • RLV 2.9 vision spheres are not present (@camdrawmin) due to time constraints - these will be present in a future release. For existing products it's possible to report an older version of the API so your product falls back to using a HUD, please contact Kitty Barnett
  • No forced mouselook (by design - see Firestorm JIRA for an in-depth discussion and clarification of my position on this)