Archive Page 2

Kokua Releases (RLV) and (NORLV)

These versions bring a considerable number of behaviour improvements as well as updating to RLV (see: but please read the notes below carefully – not all changes have been replicated to Kokua this time)

Both: The maximum for the texture memory slider (Preferences/Graphics/Advanced) is now set dynamically to 512MB, 1 GB or 2GB depending on the available graphics memory. The value will be at most 50% of the system’s graphics card memory. NORLV was previously fixed at 512MB maximum while RLV was previously fixed at 2GB however going much over about 2/3rd of the maximum in RLV would result in texture thrashing where textures appear to continually go in and out of focus – in fact they are continually falling out of the cache and having to be reloaded. The new code avoids this and is by Ansariel and Tonya of Firestorm.

Both: If the viewer is minimised the icon no longer flashes when someone starts and stops typing an IM (or is typing a long message quite slowly with pauses) due to the distracting effect of this. As Marine notes, should there be adverse feedback about this change it will be made optional with the original behaviour as the default.

Both: The script editing window now uses a larger font by default which, along with other changes, means it’s now possible to reliably position the cursor when working near the end of long lines. The font and its size can be selected in Preferences/Kokua/Scripts. Original change from Firestorm by Ansariel.

Both: Clean up some formatting and layout errors in the pie menus along with ensuring that More.. is always the bottom item when it is present.

Both on Linux: gstreamer010 is no longer included

Both: The Edit floater is now a little taller to resolve some overlapping that occurred on the Textures tab when Specular Shine was selected.

Both on Mac: Window title code from Firestom by Tonya, Cinder Roxley et al.

Both: Tex (Texture) Refresh was missing on the pie menu for other avatar’s attachments.

Both: Bring in Exodus’ group chat mute features from Firestorm. Muting can be applied/lifted from a group’s information page. There is an optional notification in chat which is off by default and may be enabled in Preferences/Kokua/Chat.

Both: Right clicking in Mouselook will now trigger a menu if enabled on the Move panel in Preferences. For those who previously used this as a way to sit on an object sitting is possible through the menu instead (or you can turn the menus off and return to the previous behaviour).

Both: Fix some more errors discovered in the XML files that define the skin and menus.

Both: Avatar Health is added under the Me or Edit menus grouping together a number of features designed to help with avatar appearence issues. Some of these were already present elsewhere in the viewer menus with the remainder being newly added. Original by various authors in Firestorm.

Both: After teleporting there is currently a server bug where neighbouring regions will send spurious attachment detach requests. This results in a situation where the attachment claims to be detached within the viewer but will probably reappear on the next region change and is still live (eg it is counted in the avatar’s script totals, it will respond to chat messages etc). This version brings in a fix from Henri Beauchamp in Cool Viewer which stops this happening. The fix, along with the previously added generic Firestorm protection for attachments right after a teleport can be disabled on the Kokua/Preferences/Tweaks (previously Inventory) tab. The text alongside these switches clarifies that we currently recommend this is enabled along with the other tweaks already present. Thanks to Henri for permission to include this code. The Kokua version is adapted somewhat to fit in with our existing code.

Both: The log files written by Kokua on each run are currently getting cluttered with messages related to the forthcoming introduction of EEP (Environment Enhancement Project) since server code is beginning to support it but Kokua does not yet incorporate matching code. Kokua now checks for EEP-related log messages and reduces their priority and quantity to avoid an impact on performance.

Both on Windows & Mac: OpenJPEG updated to 1.5.1 (version courtesy of NickD/Firestorm)

Both: Put in an explanatory message from Firestorm when the viewer has to exit after failing to connect to the new region during a teleport

Both: Imported some Firestorm fixes around imposter rendering which should avoid a crash-after-teleport scenario.

NORLV: The warn-once-on-RLV-command feature was actually warning more than once due to a logic error in its coding.

RLV: Updated to RLV, however not all of Marine’s changes have been adopted since some have adverse effects on Kokua performance or were already present. See the detailed notes below.

RLV: Until this version the RESTRAINEDLOVEDEBUG debug setting performed the dual purpose of enabling the ‘executes command/fails command’ feedback in the nearby conversations floater and enabling RLV-related output to the viewer’s log file. Since writing to the log file has a small but noticable performance impact this is now split into two controls with new control RESTRAINEDLOVELOGGING taking over control of the viewer log file aspects. Note that this is only in Kokua, not in RLV from Marine, although it will appear in a future version.

RLV: Marine’s changes to rebake appearence after teleport and refresh attachments as apart of a rebake are NOT included in this version since we found in testing that they interfered with Kokua’s other code improvements around teleports and outfit management.

RLV: Marine’s change returning the Maximum Attachment Request Lifetime to 30 seconds is already present in Kokua – we also found that 30 seconds is something of a magic value where the rest of the code is concerned.

RLV: Alpha surfaces on other avatars’ rigged attachments will not be rendered if they are beyond a vision restriction.

RLV: The RLV floaters (RLV Commands, Console, Status and Worn) have had an optimisation session aimed at reducing their load on the viewer whilst not displayed on screen. Thanks to Marine for some of the optimisation ideas now included in the code.

RLV: We have had some requests to do a RLV-always-on version like Marine’s current RLV versions. Kokua is usually all about choice so keeping RLV switchable is in keeping with our philosophy (and indeed we allow other aspects of those always-on changes to be user-selected too). Creating a third Kokua variant may be the answer however it involves both significant ongoing work with three streams to keep updated rather than two plus around an hour extra every time we go through a release cycle. We are interested in hearing feedback on this one to see if the demand is there – if you want it add a vote or comment to this issue:

Kokua Releases (RLV) and (NORLV)

New in RLV version

The RLV version is updated to Marine’s RLV see

In addition to direct modification of the debug setting as described by Marine we have added an option in Preferences for the new feature controlling whether to render rigged mesh attachments in mouselook when they are attached to one of the head attachment points (bear in mind that there’s no actual relationship with rigged mesh between where something is attached and where it appears on the avatar – the latter is a fixed property of the rigged mesh).

This appears on the Kokua/General section of the Preferences window, as shown below.

New in Non-RLV version

The non-RLV version gets a new feature designed to reduce the amount of chat spam generated by any RLV items when used with the non-RLV version. The new feature, which is turned on by default, will issue a message once in local chat privately to the wearer and then future RLV commands will be silently discarded until either the next login or the option is disabled and re-enabled.

The image below shows how this appears in the conversations window.

The control for this appears in the Kokua/Chat section of Preferences as shown below:-

At present, there are no plans to implement this within the RLV version for when RLV is turned off (generally, I feel it’s better to see the RLV chat in that situation since the usual reason for a RLV viewer user to turn off RLV is to perform some kind of troubleshooting and thus seeing the commands is probably beneficial). However, if it’s requested we’ll implement it on RLV too (although it will probably be off by default rather than on by default as it is in the non-RLV version).

New in both versions

  • Implement Ansariel’s experimental FIRE-12004 fix from Firestorm which may help with preventing attachments going missing after teleport. If any adverse experiences occur the fix can be disabled by changing debug setting FSExperimentalLostAttachmentsFix to False.
  • Various World Map improvements (also mostly by Ansariel) including speed-ups, alphabetical sorting of friends, alphabetical sorting of landmarks, hiding duplicate landmarks and the display of the parcel name (instead of just the region name) when a location is clicked within the map area. There will always be a slight delay between clicking the world map and the parcel name being displayed because the viewer has to communicate with the server to get the parcel details.

RLV Hotfix / Kokua

Marine Kelley has just released RLV to fix a bug introduced in RLV

Kokua incorporates this hotfix and is otherwise identical to the previous release, described here:



The RLV version of Kokua is updated to Marine’s RLV For details see:

In addition we have taken advantage of the lull between LL releases to do quite a bit of internal tidying up. Here are the highlights:-

  • New command ‘Reload My Outfit’ available in the own-avatar right click menu. This can be used to resolve clouded logins by manually forcing another attempt to wear the default outfit. Effectively what it does is adding the current outfit onto itself.
  • Internal changes to make the performance statistics code more efficient
  • Reviewed and improved initial login, inventory handling and outfit wearing by bringing over various improvements from Firestorm (by Beq, Nicky, Ansariel, Kitty and others)
  • Firestorm’s ‘Wear Items’ command is now available by right click on an inventory folder that contains some wearable items – this wears the folder contents without adding it to the current outfit
  • Switch to using Linux GCC V7 from V5 for compilation
  • Fix a number of errors in the XML configuration files for menus and floaters. This reduces the number of entries written to the log files and provides a small performance benefit
  • Reinstate the entry in the Help menu that opens the Kokua inworld Group (note: this is for user-to-user assistance – raise a ticket in Sourceforge at to be sure a Kokua Developer sees it)
  • Remove menu entry for Disable Build Constraints (no longer supported by Second Life servers)
  • Remove menu entry for Texture Memory Stats (there was no code behind this menu entry, so it would always do nothing)
  • Remove menu entry for Toggle PG (again, this was left behind after the code was removed)

Kokua – RLV OOC chat handling fixed

This release of Kokua restores the OOC (Out Of Character) message functionality that was broken in following the RLV merge.

We have chosen to implement this in a way which not only supports the new behaviour of RLV where OOC chat is routed to objects that are receiving redirected chat but can also support the traditional style of OOC chat where the viewer routes it directly to local chat itself.

The switches to control this are located on Kokua/General in the Preferences window.

The first switch “Allow OOC chat using (( )) (Needs restart)” must be turned on to permit OOC chat. If this is turned off any OOC chat will appear as … in local chat even if no other chat restrictions are in effect.

When OOC chat is allowed by the first switch the second switch called “Send OOC chat to redirected chat rather than local chat” comes into play. When turned on Kokua will follow the RLV behaviour of routing OOC chat to redirected chat handlers and it will not appear in local chat. When the setting is off the original behaviour applies instead with the OOC chat appearing in local chat only and not being sent to redirected chat handlers.

This behaviour is slightly different to RLV itself. There OOC chat now always goes to redirected chat handlers and it cannot be disabled in the viewer – it’s up to the receiving objects/scripts what to do with it. With Kokua there is still a master switch in the viewer which can enable or disable OOC chat along with the secondary switch that controls its routing.

Our apologies for the problem – this was a classic case of not thinking about a one line change deeply enough whilst merging RLV with Kokua.

OOC chat with (( )) not working with Kokua RLV

Mea culpa. When Marine decided to follow the ‘hardcore’ approach by disabling certain features (see ) we took the usual Kokua approach of putting in switches to allow the features that weren’t already switchable to become user controlled. This included continuing to support OOC chat with (( )) and a new preferences option to change it.

In RLV / Kokua RLV there is this change (see ) :-

– fixed : Treat OOC chat messages — those with “((” and “))” — like any other chat messages (they used to go through any RLV restriction, then were always blocked even without any restriction at all). This is the fix you will need for RR v1.31 once it’s out.

As usual, we adopted this change. However, what only just became clear is that this change breaks the OOC chat processing logic. That’s not an issue for Marine’s viewer itself which no longer allows OOC chat to be turned on, but it’s a problem for Kokua.

The problem is that this change sends the OOC chat down the same processing as redirected chat and prevented it from getting added to local chat.

If having a working OOC chat facility is vital you can revert to Kokua or which is still available from

I’ve got a fix lined up which both satisfies Marine’s requirement for (( )) chat to get sent to channels and also continues to send it to open chat whilst OOC chat is enabled. This will be in our next RLV build.

Kokua Release (RLV) and (NORLV)

This release includes LL Viewer 6.0.1. Details:

The RLV version also includes RLV Details:

Note that the fast-sun bug mentioned is not fully fixed in this version.

This version also introduces a revised menu structure for the login and viewer main menus which is much closer to the current LL design. If you wish to use the new menu structure go to the Advanced Menu and turn off ‘Classic Kokua Menus’. The viewer must be restarted to apply the change.

If you want to know where commands have moved to in the revised menu structure see:

Advance Warning : Main menu changes coming

Kokua’s main menu currently begins with the rather outdated File/Edit/View menu headings before getting into the section that’s common with other viewers with Build followed by some Kokua additions and finishing with Help plus Advanced and Develop if they have been enabled.

In a future version we’ll reorganise the menu to replace File/Edit/View with the current Me/Communicate to be found in the LL viewer and rearrange the items under those menus to their current positions in the LL viewer. Kokua-specific items will go to an appropriate location close to similar items in the menu structure.

Change like this inevitably causes some upheaval as people get used to it, however we hope that the benefits of more closely following the menu structure of the LL viewer will make life easier for everyone in the longer term.

UPDATE: Here is a detailed description of the planned changes.

Login menu: File and Edit combined under Me.

Viewer menu: File, Edit and View menus removed and replaced by Me and Communicate. The new location (which in some cases is currently a duplicate location) is shown in the table below

If anyone would like something at a higher/more accessible level please raise a ticket in the Kokua issue tracker, giving it the title New Menu Layout. I’m already thinking of duplicating Highighting and visibility under World.


Upload Build
Close Window Commands
Close All Windows Commands
Snapshot World
Snapshot to Disk World
Quit Me


Search World
Account Dashboard Me
Buy L$ Me
My Profile Me
Rebake Textures Commands
Appearance Me
My Gestures Communicate
Communication My Voice is Communicate>Voice Morphing>Preview, the Status commands are in Me
Friends Communicate
Groups Communicate
Preferences Me


Mouselook Commands
Joystick Flycam Commands
Reset View Commands
Look at Last Chatter Commands
Toolbar buttons Me
Hide All Controls Me
Show Hud Attachments Me
Buy L$ Me
Merchant Outbox (Removed – obsolete)
Marketplace Listings Me
Money Tracker Me
Conversations Communicate
Facebook Communicate
Twitter Communicate
Flickr Communicate
Nearby Chatter Commands
Choose an avatar Me
Inventory Me
Places Me
Experiences Me
Picks Me
Camera Controls Me
Movement Controls Me (as Walk/Run/Fly in the Movement submenu)
Restart all Animations Me
Refresh visibility of objects Me
Movement Me
Status Me
Statistics Bar Me
Zoom Level Commands
Highlighting and visibility Advanced
Show Advanced Menu Commands

New RLV Information Windows


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.

Clear Credit

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.


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.


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


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.


Please raise any bugs or feature requests to Chorazin Allen via the Kokua Viewer Issue Tracker which is located at

Kokua – RLV release with new RLV windows!

This is another RLV-only release. We had hoped to also include changes from the Love Me Render and Maintenance RC viewers however both are currently rather crashy on Macs at exit so we need to wait for them to achieve release-level quality.

Meanwhile this version has a small RLV bug fix – when using Look At/Point At the name display features wasn’t being controlled by @shownames. This happened because Marine’s viewer doesn’t have that functionality at all.

The major feature for this release is the introduction of four new RLV windows designed to make RLV much more user-friendly when it comes to testing, troubleshooting and diagnosing issues and conflicts.

For full details see here: