For some time now diagnosis facilities in RLV have been limited to “Show Debug Messages” which reports on RLV commands within the chat stream and “List Restrictions” which sends a list of currently active restrictions to the conversations window in the nearby chat panel.
In contrast RLVa has a similar facility to “Show Debug Messages” and several windows covering Restrictions, Locks and a Console facility.
RLV now has similar capabilities with new windows called RLV Debug Display, RLV Status, RLV Worn Status and RLV Console.
The RLV Debug Display is based on the code from the Script Error window found in the standard viewer. The other new windows are based on, and use some code from, the RLVa implementation within Firestorm. While the window design will be familiar to RLVa users the operation has been substantially modified to work with RLV and my own design preferences.
ACCESSING THE NEW WINDOWS
The windows are all accessed and controlled through entries in the RLV menu. In the case of the RLV DEBUG DISPLAY/RLV COMMANDS window there is also a submenu with some options.
RLV DEBUG DISPLAY /RLV COMMANDS
This window is named RLV Debug Display in the menus to emphasise its relationship to the standard Show Debug Messages feature.
Its purpose is to show all RLV commands processed together with an indication whether they were accepted for execution (which means that no glaring syntax errors were present– a command may still be accepted but do nothing due to some intentional interaction of restrictions).
Note that the window does not begin capturing commands until it has been opened once, thus if you want to see everything that happens during login you will need to enable the Open Automatically option described a little later.
The first tab of the window shows all commands processed. Subsequent tabs are created on demand for each object generating RLV commands.
The name of the object is shown along with its current attachment point and “(child)” if the RLV commands are not being issued by the root prim of the object.
In the image above the window is currently showing all RLV commands in the order they occurred.
Some tabs have been closed (using the lower x along the right hand edge of the window) leaving just two RLV sources displayed. “Viewer Startup” refers to the viewer’s blinding restrictions which apply from startup until shortly after login and is intended to bridge the period during login where attachments are starting up and reinstating their restrictions as they were at logout from the previous session.
The phrase “executes…” has the same meaning as it does in “Show Debug Messages” – that the command matches the syntax for RLV commands and has been accepted for processing. It is not a guarantee that the command exists, is supported or will not be prevented from having an effect by some other active restriction (eg trying to do a teleport by RLV when teleport is disabled).
There are three options available to control the window’s behaviour which are shown on its submenu.
Show Window opens or closes the window.
The first option “Opens automatically” controls whether the window will open whenever a RLV command is processed. If you want to observe what is happening during login you must turn this option since RLV commands will be processed well before you have enough control within the viewer to do so manually. However, the automatic opening can also be intrusive so it is a matter of choice whether to use it.
The “Ignores =channel” option can be used to discard all commands of the format @something=channelnumber from the debug output. These are usually inquiring commands with no lasting effect on RLV restrictions. Many items issue commands like this on a regular basis to confirm that RLV is still in use or to check on restrictions being applied by other items. This regular recurring activity can be distracting so there is an option to suppress it.
The final option “Shows most recent” determines whether the window will automatically switch tabs to the one for the device that most recently issued RLV commands. This is very useful when you want to watch what is happening in real time however it can also become distracting when one particular device is of interest.
As is normal for viewer windows you may ‘tear off’ the tab for a particular object and display it separately to the main window. Individual tabs can be closed using the lower ‘x’ on the right hand side of the main window however closing the tab for ‘All RLV’ will close the main window too.
All of the tabs support highlighting text by click/dragging after which a right click will bring up a standard menu which includes Copy to transfer the text to the computer’s clipboard. Keyboard shortcuts for copy (such as Ctrl C on Windows) may also be used.
The RLV Console window allows commands to be entered without the need to create a script to issue them. These commands only persist as long as the RLV Console window is open (or until they are cancelled from within the RLV Console)
The operation of the Console is summarised in the text above the display area.
Any command may be entered. If a command is accepted for processing the RLV> prompt will be displayed again (along with any feedback from the command if output channel 0 was specified).
Generally using channel 0 as an output from RLV commands is not permitted due to possibilities for misuse. Using channel 0 is only permitted with commands within the Console.
Active restrictions applied by the Console will appear in the RLV COMMANDS window and other RLV windows with the avatar’s name as the source of the restriction.
Restrictions applied from the Console can be cancelled by using @clear within the Console or by closing the console window.
Since there are some scenarios where the Console could be used to perform actions not otherwise possible whilst restricted the Console can be disabled by a @viewscript=n command from any other source. This will close the Console window, release any restrictions it had in effect and prevent it from reopening until the @viewscript restriction is lifted.
The Console is the only RLV window that may be restricted in this way due to its interactive nature. The other windows solely deliver information.
This window provides a constantly updated view of the current RLV restrictions, exceptions, notify commands and modifiers that are in effect.
The Restrictions tab shows each restriction and the name of the object applying it together with where it is attached and whether it is a child (non-root) object.
If an object is owned by the viewer user but not worn its name will be correctly shown (rather than appearing as ??? which was previously the case with ‘List Restrictions’).
The Exceptions tab shows current exceptions together with the UUID resolved to a name, where possible, to make it easier to understand who/what the exceptions are applied for.
Notify commands are shown on the third tab to reduce the number of items appearing in the Restrictions tab and also because a Notify command does not apply any restrictions.
Finally the Modifiers tab shows current values for parameters that can be altered by RLV commands such as the camera settings, fartouch distance or tplocal distance.
When ‘unlimited’ is shown there are no modifiers in effect on the value and its default viewer value is in effect. Strictly speaking, the meaning here is “not limited by RLV”– there may be other limits coming into play as a result of non-RLV viewer settings such as draw distance.
All four tabs update dynamically and show current status.
‘Copy to clipboard’ pastes the output of “RLV Restrictions” to the clipboard. Note that this is often too large for a single chat or IM message so in situations where the output needs to be shared with someone paste it initially to a document outside of the viewer (eg the Notepad application in Windows) and then paste portions of it into chat/IM. See the next section for some minor changes to the output of “RLV Restrictions”.
The ‘RLV Restrictions’ feature which outputs the current list of active commands to the nearby chat window is largely unchanged however it has been upgraded to use the same naming routine as the new RLV windows described here.
This means there are three specific changes:-
If an item is attached, its current attach point name is included. Since objects often also include a desired attach point within their name you may see two attach points shown. The first is the one within the object name. The second is the actual location.
If the RLV commands are not coming from the root prim of the object ‘(Child)’ will be shown.
Objects owned by the avatar that are rezzed inworld rather than worn will appear with their correct name rather than “???”.
The example below is from an attached object issuing RLV commands from a child prim that does not have an attachment point in its name
RLV WORN STATUS
This window deals with attachments and worn clothing layer items. There are currently no RLV features specific to mesh clothing thus mesh items are represented here simply as attachments and clothing which was worn through mesh appliers does not appear.
The first tab lists all attached items along with where they are being worn and whether they can be detached.
There are various reasons why something may not be detachable. In the case of ‘folder locked’ more information is available in this window on the Folders tab or in the RLV STATUS window.
The second tab lists all attachment points together with how many items are on them and the current attach/detach status for that attachment point.
Where ‘some items locked’ appears it means that the attachment point itself is free of restriction however one or more of the items there do have restrictions in place around removal. More detail can be obtained from the Attached Items tab or the RLV STATUS window.
The Folders tab shows all restrictions that have a bearing on inventory folders.
If any of @(un)shared(un)wear are in effect they will appear in the window. In addition all restrictions which either reference a folder or could affect a folder are listed.
In the example above the object has locked itself in place and also applied restrictions affecting three folders.
The reason that the object’s own lock is included here is that when an item is locked this automatically prevents detaching of the folder that contains the object so any individual item lock can also be considered as a folder lock too.
The Clothing Layers tab lists all the legacy clothing layers together with one line for each item being worn. If multiple items are worn (as is often the case for alphas) each will show on a separate line.
Along with the location and item there is also an indication whether items can be added/worn or removed. The first four locations (shape, skin, hair and eyes) must always have at least one item worn to prevent the avatar appearing as a cloud.
All the tabs in this window will update with any change (whether caused by RLV or independently) however a ‘Refresh’ button is provided for any situations where unusual behaviour has caused the window content to become outdated.