Saturday, March 16, 2019

A gift for you.

Hi there,

I have a gift for you ! No, not this one, another one...

But to know what it is and to be able to use it, you first need to update your HD Video System and/or your RemVision because I had to substantially modify the process script (the one that turns videos into frames for SL) so that it can handle non-square videos with non-square numbers of frames. It doesn't sound much, but it makes it a LOT more powerful than before. In the past, it could only process square videos and that was very limiting. The same goes for the screens of those two products, which too have to be able to display non-square videos.

In this update, you will find the following changes and if you pay attention, I think you will have a hint of what the gift is all about. If you don't already have a clue, that is.

HD Video System

* The two screens are now able to handle non-square videos.

* The player can now display times longer than 100 minutes without shifting the Play symbol.

* The screen seemed not to be able to display colors for subtitles (unverified and unheard of, but I have corrected the code anyway, just in case).

To update your HD Video System, simply rez the update orb contained in its folder and you will get your new HD Video System automatically.


* The screen is now able to handle non-square videos.

* Increased the chat limiter to 110 lines from 90 (it should still not trigger the infamous chat throttle).

* When a new tape is being copied, it displays static over the eyes during the copy for a nice little effect (*), then resumes playing if it was playing before. It also re-shuffles the playlist if the playing mode was "Random" (otherwise it switches back to "Sequential").

* Made the inner lenses (the surface where the projected picture is) glow 10%. You can set it to whatever you like manually, the script does not modify the glow at all, but I find 10% to be good. (*)

* The lenses displayed tall pictures (pictures that are taller than they are wide) stretched the wrong way.

* The ear pieces are now invisible by default. It makes more sense because they don't restrict hearing by default.

* The outer lens (the one that shows the texture you select, like Blank, Realistic and such) is now invisible in the "Lock" lock, but you can still turn it visible by selecting "Always max" in the Lenses Opacity menu of RemVision. (*)

* The screen seemed not to be able to display colors for subtitles (unverified and unheard of, but I have corrected the code anyway, just in case).

* When clicking and dragging the screen, it limits the dragging in a way that you can't move it away enough to see what it was hiding before dragging it. This now takes the state of the background ("None", "Black" or "White") into account, meaning that if the background is invisible, the screen will use the visible prims (the ones showing the movie) to know how far you can drag it and where to stop. In the end, you can't see what's behind the screen no matter how far you drag it.

(*) If you use the unrigged lenses instead of the rigged ones, you need to use the new ones after getting the replacement, as the old ones don't have that feature.

To update your RemVision device, you need to go to one of these locations :

My Little Shop
Chorazin's store
Roper's Dark Playground
Dark Wishes

Once there, click on the updater and follow the instructions. You need to choose "REPLACE". Don't forget to save your times before requesting a replacement. If you do not get a "REPLACE" option, contact me (Marine Kelley) to get a manual replacement.

There is a known issue that does not have any solution that I know of. Since now the animated pictures can have empty frames in their textures (but you won't see them since the screen won't play them, it plays only the non-empty frames), clicking on the screen will reset the animation back to its first frame. It's not a big deal, but it's a change from before when clicking on the screen would re-synchronize at the current frame. Now it re-synchronizes at the first frame, that's all.

Python scripts for movie creators

(This section is relevant to you only if you create movies and/or slideshows)

It's funny, but the core of this update is not even the HD Video System nor RemVision. It is mainly the script, the one that is used for turning an AVI file into a set of textures with frames that SL can display as an animated picture over several prims.

Before this update, this script could only handle square videos with a square number of frames, or would decimate the frames until reaching a square number. This was good but too limiting, in particular when dealing with animated GIFs from the Internet, which can have arbitrary dimensions and numbers of frames, but small enough a number making decimation out of question.

As a result, you now need to specify the dimensions of the AVI when calling this script, and you now have the ability to specify the target number of frames you want in the final montage (or indicate a decimation factor like before). It will organize all the frames composing your video into the textures in the best way possible while sticking to the original ratio (Width / Height) to avoid any deformation. The result on-screen is much better than before. I'm thinking of ways to make this script obtain the dimensions and the number of frames of a video by itself so you don't have to specify those data in the parameters anymore.

I have updated to get rid of the requirement of specifying the dimensions of the picture, now it figures it out all by itself.

I have also created a new script named that will automatically rename all the images in a folder on you hard drive with the appropriate dimensions so you don't have to do it yourself.

If you want to update the Python scripts on your hard drive, simply go get them from my Dropbox account, the urls are in the Director's Manual notecard of the HD Video System, and in the blog post linked below.

I have reflected all those changes in the Making Movies - Video blog post.

The Gift

So... You've read this far and you really want to know what this gift is all about, don't you ?

Now I can tell you what it is !

The gift is a box containing three tapes full of bondage pictures and videos coming from the Internet. The pictures are more or less organized in themes (Fetish, Ropes, Cuffs, Sex, Straps, Duos and some other sections) and all three last three hours average, counting one minute per picture or video. This means hundreds of pictures and videos ! And not the shabby ones either.

This is where you see the new script shine, as all the animated pictures come from GIFs without losing too much quality. Some are even exactly like their original files without any loss.

The tapes are designed to be played in random order for a better experience, so the sub never knows what to expect. The section names are very short because they are stored in the RemVision plugin, which would crash if they were any longer. They are usually just a letter and a number (not always consecutive due to how I had to move some pictures from one tape to another) and reflect the type of the pictures and videos. R for rope, F for fetish, X for sex, S for straps, D for duo, C for cuffs.

You may ask yourself, why this gift and why now ? There's no special occasion. I've just wanted to improve my animation script for a while to allow for non-square videos and to prove how easy it is to use once it was operational. So I will probably write a blog post to explain how I made those tapes (pictures, videos and tracks) to encourage you to do the same :)

You can get the box containing the tapes for free at My Little Shop :

Have fun !

Thursday, March 7, 2019



Here is a new version of the RLV with even more bug fixes, including for the infamous "attachment loss after teleport" bug, and for that one I'm far from being alone to work on it.

I took Henri Beauchamp's fix (with his permission, thank you Henri) as well as Chorazin Allen's integration of the fix from Firestorm into Kokua (with his permission too, thank you Chorazin, and of course thank you Ansariel and Kitty for working on it in the first place), added them to my own (introduced in RLV 2.9.25 and a little more in 2.9.26), shook the whole cocktail a little and voila.

I've tested and seen this bug occur with each fix taken separately, sometimes an attachment would go past Henri's fix, some other times it would go past Ansariel's fix. Even with two of them in the code, sometimes an attachment would go past both fixes one after the other (it was rarer, but it happened).

But with all of them I have yet to experience one attachment loss, and I TP a lot with a lot of attachments on my avatar, so yay ! Well I hope yay. In any case, it seems a lot more stable than before, so let's hope this bug is finally behind us now.

There was also a small bug introduced in RLV 2.9.26, well it's not really a bug but a side effect of one of the fixes mentioned above, which would make Bento-rigged attachments using animations containing bone displacement (for example neko ears) revert back to their original locations after a teleport and even a rebake wouldn't fix it. This should be fixed by the fixes mentioned above, but I have still seen it happen in this version, albeit very rarely. If this happens to you, press Ctrl Alt T twice (that shortcut highlights invisible surfaces in red) and it seems to fix it. I don't know why yet, but at least we have that option. Also the bug was only seen in local, other people would not see it, and so is the fix.

Lastly, I have added three useful shortcuts for builders :

- Alt+S to return to the standard Move tool (it also deactivate Edit Linked and selects the whole object, otherwise the selection would look weird).
- Alt+X to select by face.
- Alt+C to switch to Qarl Linden's Align tool.

Speaking of Qarl's Align tool, I have reinstated it in the Edit window, something I forgot to do in 2.9.26. The code was there but the UI file did not contain the "Align" entry, sorry about that.

You can grab the Windows version here :

The MD5 hash for the Windows executable is :

Have fun !

Tuesday, March 5, 2019

Update to RemVision


Following right on the tracks of the last update to RemVision, here is yet another update, this time to crush most of the remaining bugs and more importantly to make all the older movies (mainly Gina's adventures) compatible with RemVision at last ! In fact, most of the bugs fixed here could not occur until one tried to play one of the older movies, due to some specificities that are proper to their tracks.

- Changed : When the screen is set to "small", move it a tad up or down towards the middle of the screen to avoid hiding the subtitles under an hypothetical button bar (that's mainly for the SL viewer and the RLV, I don't know how it fares in other viewers, that depends on whether the 3D viewport includes the lower bar buttons or not).
- Changed : When clicking on the screen, zoom in to 2x regardless of the initial size.

- Changed : The wearer cannot zoom out lower than 2x anymore (therefore they cannot make the screen smaller than it is set to be).

- Changed : When dragging the screen, it won't allow drag in a way that what was hidden behind it before could be viewed. For example, if the screen is set to take the whole view and is not "small", the wearer cannot drag it out of the way to see what's behind it anymore.

- Fixed : Starting an animated picture showed the whole texture (with all the frames) for a split second.

- Fixed : When the movie is running but does not display a picture, do not display a picture on the lenses either.

- Fixed : "Could not find sound '1'" error from the screen when attempting to play one of the older tapes.

- Fixed : When setting the background to black, it disappeared as soon as the next picture was displayed.

- Fixed : The screen was flashing while dragging it around with the left mouse button.

- Known issue : If the movie is paused on an animated picture and the user zooms in, the currently displayed frame is replaced by the whole texture, showing all the frames at once.

- Known issue : When watching a movie with subtitles while blindfolded with RLV 2.9 vision spheres active, the subtitles may fade out unless the screen is brought to the front.

To update your restraint and benefit from these changes, you need to go to one of these locations :

My Little Shop
Chorazin's store
Roper's Dark Playground
Dark Wishes

Once there, click on the updater and follow the instructions. You need to choose "REPLACE". Don't forget to save your times before requesting a replacement. If you do not get a "REPLACE" option, contact me (Marine Kelley) to get a manual replacement.

Replacement is needed because some changes occur in a child prim of the RemVision main object (the Tracks prim to be precise), and others occur in the screen. If you use the unrigged version of the lenses, no need to use the new ones and resize them, the old ones will still work just fine.

So that's the change list. Now, for the interesting part. Like I said above, most of these changes are fixes for bugs that arose when I made the older movies compatible with RemVision.

What movies am I talking about ?

These movies :

Applicant Payback
Gina's Debut
Hot Mouse
Rocket's Tail Part 1 and 2
The Wait Part 1, 2 and 3

All the other, more recent movies (Alis, New Life...) were already compatible with RemVision out of the box but the older ones were made a long time before RemVision was released.

If you are willing to update these movies in order to watch them in your RemVision (or force your sub to watch them in hers), it's easy.

Simply go to the Marketplace, then click on "My account", select "My order history" and locate the movies. For each one of them, click on "Redeliver item" and you'll get the updated product.

Remember, to copy a tape to your RemVision or that of your sub, click and hold on the tape after rezzing it to get the menu. If you simply click on it, it will look for a HD TV player to insert itself into.

Almost forgot, if you watch a movie with subtitles on RemVision, it's better to set the background to "black" instead of "none", because because of the dimensions of the pictures, the subtitles are displayed below them.

Have fun !

Wednesday, February 27, 2019

Update to the Camera System

Hi there,

There is an update available for the Camera System... and no way to update it easily. I completely forgot to include an update system in this product, like for example one of those yellow update orbs I include with every copy/no-trans product of mine nowadays. It's an easy thing to do (no-copy/trans products like the RealRestraint ones are a LOT harder, but copy/no-trans ones are fine), but I don't know why, it didn't occur to me to include one before releasing the camera.
To get your update, you need to go to my shop and click on this box laying on the ground on the right side of the kiosk :

If you've bought the Camera System before February 27th 2019, you will get the new box and the update notes that I'm pasting here :

- Private networks appeared in the network list. Now if someone wants to access a private network, they need to know its exact name and enter it after pressing the "Other..." button in the HUD's network menu. Please note that this bug was present in both the HUD and the cameras, so if you don't want to update your already placed cameras, you'll need to distribute new HUDs like the one included in this update.

- A Keymaster would let a non-authorized user get the credentials from their HUD (without being able to access any camera, but still seeing them in their list). A silly bug coming from an instruction that I wrote backwards in the Keymaster's script.

- A Keymaster would let a non-authorized user get the menu by touching it (without being able to access anything, but still seeing some info). This came from the same backwards instruction.

- I've included a second HUD with no scanlines, letting the user click through on any object in-world from the camera's point of view. You may or may not want to distribute this version of the HUD to your users, but the Keymaster still delivers only the HUD with scanlines like before.

- And of course, there is now an update orb that you can rez at any time to get an update if there is one available (or a redelivery if you ever need one).

Have fun !

PS: Big thanks to Golema Sorbet for giving me a detailed reproduction of each bug so I could fix them quickly.

Monday, February 25, 2019

Update to RemVision


After an important update to RemVision, I worked on it a little more to add some interesting features both to the RemVision plugin and to the Earpieces plugin.

Before going further, please be aware that to get this update, you need to request a replacement to the updater. Yes I know, again. This is because the screen has been updated too. However, even if you get a replacement, you can still use the old unrigged lenses (if you need to) because they didn't change at all, so no resizing necessary here.

Changes to the RemVision plugin

No more Unicode support

First of all, the bad news. Since the RemVision plugin was already very big, and since I wanted to add new features, I had to remove Unicode support. In plain English, that means instead of fancy squares and round buttons on the menu, you get "( )" and "(#)" like in other plugins. Unicode support takes 3KB, no less, and that's memory that is needed for more interesting features (such as the ones included in this update). Of course, if you loved Unicode so much that you can't live without it, I strongly recommend you do NOT update :p

New "Front" and "Scarce" buttons on the "Screen" menu

Before this update, the RemVision screen was always in front of all the other HUDs the sub may be wearing. This was on purpose to force her to watch whatever movie you want her to watch. But this was a bit too strict and was getting in the way more often than it was useful. Now with the "Front" switch, you can decide whether the screen goes to the front like before, or before any other HUD so it doesn't get in the way. The default is back now.

When the "Scarce" switch is on, the screen shows itself only 25% of the time (instead of all the time) whenever a new image is displayed. I may or may not add more control later over the probability of showing the screen but for now it is 25% (when on) or 100% (when off, which is the default).

New "Random" button in the "Opacity" menu

This button makes the screen (and its background) take a random opacity between 1% and 100% every time the picture changes, with a slight bias towards 100%.

New "Random" button in the "Position" menu

This button makes it so the screen takes a random position on the sub's view every time a new picture is displayed, with a slight bias towards "Whole screen". It does NOT change the size though, which stays the one you selected with the "Small" switch.

 New "Custom" button in the "Background" menu

You can now specify your own background by entering the UUID of the texture you want. To get the UUID of the texture from your inventory, provided it is full-perms for you, simply right-click on it and select "Copy Asset UUID", which will copy the UUID to your clipboard, and you will be able to paste it in the text box that shows when you press "Custom" in the Background menu.

Optimized the memory in the plugin and the screen

I heard about the screen crashing in certain circumstances, so I optimized it a bit more to protect it against crashes better. Hopefully this time it won't crash anymore (those who had the problem didn't report any crash after testing the change, at least).

Shuffle when reaching the end of the tape

When you have made the playlist random (in the Sections menu) and the end of the tape is reached and when in "loop" mode, RemVision will re-shuffle the playlist so the sub does not see the exact same pictures in the exact same order again, making it truly random without risking to see the same sections too often (since a random playlist features each section only once). Of course, if the last section before the end of the playlist ends up being the first one after being re-shuffled, the sub will see the same section twice in a row, but I can't avoid that.

Changes to the Earpieces plugin

The Earpieces plugin is reachable either through the plugins list or from the RemVision plugin. It used to be exactly the same as the Hood plugin of the Isolation Hood, but it has evolved quite a bit in this update (I'm considering porting the new features to the hood as well later).

New buttons in the menu

Until now, when you pressed "Hear chat", the sub (who had to be a RLV user naturally) couldn't hear anything said on the chat at all, only emotes. However, a lot of people embed emotes into chat, and chat into emotes. For example :

Avatar: Hey there! *waves*

Avatar waves "Hey there!"

Now if the "Jam" button is on (which it is by default), instead of seeing "...", the sub will see something like :

Avatar: chy tsskhr! *waves*

Avatar waves "Hfkr skrtrk!"
In other words, everything that is between stars ("*") is not garbled, and everything that is between double quotes (""") is always garbled. By garbled I mean jammed, because there's a lot of "kkrrhfft"-like letters, as if you were hearing static.

If the "OOC" switch is on (it is off by default) then OOC chat (which is between "((" and "))") will not be garbled at all, provided the first two characters are "((".

The "Jam level" button goes from 25% to 100% with a step of 25% every time you click on it (it is 75% by default), which means that roughly each letter outside an emote has as many chances of being replaced.

Of course, if you don't want your sub to hear anything at all, even emotes embedded in chat, switch "Jam" to off and it will behave like before.

I strongly suggest turning "Show '...'" off in the RLV menu of your viewer.

To update your restraint and benefit from this fix, you need to go to one of these locations :

My Little Shop
Chorazin's store
Roper's Dark Playground
Dark Wishes

Once there, click on the updater and follow the instructions. You need to choose "REPLACE". Don't forget to save your times before requesting a replacement. If you do not get a "REPLACE" option, contact me (Marine Kelley) to get a manual replacement.

Have fun !

Friday, February 22, 2019

Tips & Tricks with RLV

Hi !

This post is meant to be a sticky, something you come back to time and again when you have a particular question or trouble with the RLV. I will probably bring more and more stuff in here over time as I think of interesting subjects, or as I add more features to the RLV.

This is not meant to be an advertisement for the RLV, or a "is this RLV better than another" kind of post. If you are reading this, there's a good chance you are a RLV user already and you are looking to improve your experience. Or you are simply wondering what the hell you've just downloaded.

Lastly, this post talks only about the original RLV (with a few nods to other viewers) but does not talk about RLV features in particular. Instead, it talks about all the rest, the enhancements, the little differences, the tips and tricks that are proper to this viewer and that I can't live without.

Most of the enhancements listed below are also written in the "RestrainedLove Readme first.txt" file contained in the RLV folder after you've installed it, as well as a lot of information I do not repeat here (notably about shared folders).


First and foremost, you can download the RLV here.

"RLV" stands for "Restrained Love Viewer", but it was initially named "Restrained Life Viewer" until Linden Lab (owners of Second Life) decided that the word "Life" was forbidden in any third party viewer (open source viewers maintained by users like you and me). It is one of the first third party viewers and started in November 2007. It is still active and maintained to this day and has been through many updates over the years.

It was originally aimed at the BDSM community to improve their experience but it quickly evolved into something much more general, and is now used in combat sims, in stores for mannequins, even by disabled people... There is no trace of kinky activity anywhere in the code or in the specification, the only reminder of its origins is its very name.

Nowadays, almost all the third party viewers are RLV-compatible. This post is not meant to talk about them but just to avoid any confusion, please note that "RLV-compatible" means "compliant with the RLV API" and "scripts should not have to wonder whether they are talking to this RLV or that RLV, all RLVs should behave the same in a a script's standpoint".

Debug Settings

The RLV has several debug settings that you can modify by hand, and they are all persistent across sessions. If a section below refers to a debug setting to change, here is how to do that.

Open the Advanced menu (if you don't see it, press Ctrl Alt D to make it appear) in the top menu bar, then choose "Debug settings" near the bottom :

Then type "Restr" (no need to go further, it auto-completes to "RestrainedLove") :

Then click on the drop down list to choose the debug setting you want to change, all the RLV debug settings begin with "RestrainedLove" (naturally, if you want to change another one like "AutomaticFly", naturally don't type "RestrainedLove" but "AutomaticFly" in the white field) :

Once you click on the debug setting you want to change, select one of the options to change its value. For example, here "RestrainedLoveHeadMouselookRenderRigged" is a boolean (i.e. either FALSE or TRUE) so it has only two options, FALSE and TRUE.

Once you modify the value, it generally takes effect immediately unless written otherwise in the description.

Useful debug settings

Below is a list of debug settings I like to change to values that work best for me. You may or may not want to use the same values, but just for your information here is the list. Except RevokePermsOnStopAnimation. You want that one FALSE.

AutomaticFly : FALSE
CameraFocalLength : 10.0
CloseChatOnReturn : TRUE (so you don't have to manually focus out of the chat bar)
DisableCameraConstraints : TRUE
EnvironmentPersistAcrossLogin : TRUE
InventoryLinking : TRUE (to show the "Paste As Link" menu item in the inventory)
InventoryOutboxMakeVisible : TRUE (only useful for merchants)
RenderShadowBias : -0.001
RenderShadowBlurSize : 0.0 (so you can have sharp shadows and AO at the same time)
RenderSpotShadowBias : 0.0
RenderSpotShadowOffset : 0.010 (so the shadows are not cropped)
RenderSSAOEffect : x=0.7 (makes the AO shadows more pronounced)
RenderSSAOFactor : 1.0 (same)
RenderVolumeLODFactor : 4.0 (the default 1.125 is way too low)
RevokePermsOnStopAnimation : FALSE (VERY important (*))
AvatarRotateThresholdSlow : 5 (much better than the default 60°)
ShowMyComplexityChanges : 0 (because I don't care about ARC)
NavBarShowCoordinates : TRUE

(*) This one is super important if you ask me. It is TRUE by default and when you manually stop your animations, it also revokes all the animation permissions you've given to scripts, in particular furniture, which breaks them because they still think they have your permission to animate you when you use them. Some can only be fixed by resetting them, but those that are no-mod are irremediably broken and must be replaced, if at all possible. So you want to set "RevokePermsOnStopAnimation" to FALSE to avoid this. I write it in bold to emphasize how important it is.


World shortcuts

* Left-Click on yourself while focusing on something (i.e. not in mouse-steering mode) does nothing if the "RestrainedLoveBreakFocusOnClick" debug setting is set to FALSE (it is TRUE by default so you'll have to change manually it for that). This allows you to avoid ruining a shot by accidentally clicking on something you didn't mean to.

* Shift+Left-Click on yourself to go back to mouse-steering mode, even if you click on one of your attachments, even if it's a HUD. This works only if the "RestrainedLoveBreakFocusOnClick" debug setting is set to FALSE (it is TRUE by default so you'll have to change it at some point).

* Alt+Right-Click on an object to sit on it directly. This is useful when you don't want to pull the context menu and/or when you want to sit in a running vehicle without stopping it dead in its tracks.

* Ctrl+Right-Click on an object or an attachment to edit it.

* Shift+Right-Click on an object (not an attachment) to open it.

* Shift+Right-Click on an attachment (not an in-world object) to detach it (if not RLV-locked).

* Ctrl+Alt+M (or AltGr+M) to go in and out of Mouselook mode.

* Ctrl+Alt+Shift+A to reset all the animations. This is a local action to synchronize all the animations on your side (useful for photos and/or when you are with a partner), nobody else sees any change.

* Ctrl+Alt+Shift+V to refresh all the objects around you. This is equivalent to right-clicking on all the objects in the vicinity one after the other, and is useful if something seems off, a prim did not update its state, or something like that.

* Ctrl+T : Hide and show the IM window. I say "IM window" because you can tear the chat panel off it and have one panel for all the IMs and another just for the chat, like in V1.

* Hold Shift while in Mouselook for a more precise aim.

* Hold Alt while in Mouselook to allow for clicking on in-world objects even if your controls are grabbed (for example by a gun, which defaults left click to "fire").

* Ctrl+Alt+R to force a rebake of your appearance, which also sanitizes your Current Outfit Folder, for example removing doubloons. This is also done automatically after any change in what you wear.

* Shortcuts like "Request admin status" (which yields a "Request for special powers failed. This request has been logged." response, which can be chilling) and other LL-only actions have been removed.

Edit shortcuts

These shortcuts are useful when editing an object.

* Alt+W to switch "Edit Linked" on and off.

* Alt+T to switch "Stretch Textures" on and off.

* Alt+B to switch "Stretch Both Sides" on and off.

* Alt+R to set the ruler mode to "World" or "Attachment".

* Alt+F to set the ruler mode to "Local".

* Alt+V to set the ruler mode to "Reference".

* Alt+G to set the current selected object as the Reference and to set the ruler mode to "Reference".

You can find all those shortcuts in the Build / Options menu :

Other enhancements

* Invisible surfaces are not rendered unless "highlight invisible" is active (that's Ctrl+Alt+T). This speeds the rendering up a little especially if you or people around you are wearing a lot of invisible attachments.

* Rigged attachments worn on any head attachment point are not rendered in Mouselook if the "RestrainedLoveHeadMouselookRenderRigged" debug setting is set to FALSE (which is its default value).

* The UI is visible while in Mouselook and you can hold the Alt key to use your cursor across different UI elements like the inventory window. Note : I just realized when testing it that Ctrl+Shift +U does not hide the UI in Mouselook like it used to. It works in third person view and sticks when switching to Mouselook but does not change while in Mouselook. This will need to be fixed.

* RLV floaters (courtesy of Chorazin Allen of Kokua). You open them from different items in the RLV menu, they are meant to let you control your current RLV restrictions and states much more easily and with a much finer grain.

* When someone around you types something in the chat (not an emote), you see "Typing" above their name if their name is visible.

Viewer-to-RLV IM commands

If you are IMing someone who is using this RLV, you can send commands to them through IM, even if you are not a RLV user yourself. Those commands are :

* @version to get the version of the RLV they are using.

* @getblacklist to get the list of blacklisted commands in their RLV (note : nowadays the RLV is hardcore, meaning it has no blacklist, no OOC exception and no mean to turn RLV features off so this command will yield nothing).

* @list to get the list of restrictions the other party is currently under.

* @stopim to remotely close the IM session (useful if they are under a @startim restriction).

Those commands can be entered by hand or by clicking on any of the four menu items in this menu :

If an automatic response is sent by the other party's RLV, they won't see anything, only you will. If they don't use the RLV, they will see the command like any other IM (and will probably ask you what that means).

Problems & Solutions

I don't see how to uninstall the RLV

In fact, the RLV does not install itself, the "RestrainedLoveSetup.exe" file might be an executable, but it is actually a self-extracting archive (in other words, a zip file that extracts itself). To remove it from your hard drive, simply delete the folder you've "installed" the RLV to.

Speaking of which, when you download a new RLV, it is always a good idea to completely delete the old one before "installing" the new one so there is no conflict.
The RLV saves its cache in C:\Users\(YourName)\AppData\Local\RLV .

My textures are constantly getting blurry and downloading

This is a common problem, usually called "texture thrashing". To solve it, the best way is to set the value of "Texture Memory" to 1552 in the graphics preferences.

Open the preferences with Ctrl+P, go to "Graphics", click on "Advanced Settings..." and drag the Texture Memory slider until it reaches 1552. No more, no less.

Why 1552 and no other number ? The explanation can be found here.

I want to see materials but my computer is not fast enough to render shadows

Simple. Open the Preferences, go to "Graphics", click on "Advanced Settings..." (see above). First, make sure "Advanced Lighting Model" ("ALM") is on so you can see materials, and switch the "Shadows" drop down list to "None".

The viewer is so slow it is unusable

If you find the viewer crawl down like a snail although your computer is good (or even passable, or even low end, you should still be able to experience some kind of smoothness), it might be because you are trying to use Voice without the appropriate extensions installed.

Although the official SL viewer ships with Voice installed, third party viewers do not have the right to include the corresponding extensions because they are proprietary.

You have two options. Either turn off Voice completely in the Preferences ("Sound & Media" panel), like this :

Or install the Voice extension from the official SL viewer that you must download.

The files are :

- SLVoice.exe
- vivoxsdk_x64.dll
- ortp_x64.dll

Copy them from the folder where you installed the SL viewer, into the folder where you installed the RLV, and relog.

Ok, the viewer is usable but still a bit slow

Make sure "Vertex Buffer Objects" and "Avatar Hardware Skinning" are activated in the advanced graphics preferences.

I see green people (or blue or yellow or pink etc)

In the graphics preferences, set "Avatar Maximum Complexity" to "No Limit" or at least activate "Always Render Friends". If you're afraid it will slow down your viewer, fret not. "ARC" (Avatar Rendering Cost, which is checked against "avatar maximum complexity") is merely an indication of the complexity of the visual rendering of an avatar, including their attachments. It is not because their ARC is high that they slow your viewer down, especially knowing that ARC includes invisible surfaces (in fact, it includes them four times) that the RLV does not render in the first place.

I want certain folders in my #RLV to never be detached by a script

Simply add "nostrip" at the end of the name of the folder or the item (if you can modify it) that you don't want detached. It can still be detached by hand, but a script won't be able to detach it anymore until you rename it and remove the "nostrip" tag.


What's the difference between RLV and RLVa ?

RLV and RLVa are two different implementations of the same specification (a.k.a. the "RLV API" that you find here) and are supposed to react the same way to the same commands sent by scripts.

In practice, there are some differences but they are minimal. RLVa (the "a" stands for "alternate") is primarily used in the Catznip viewer, then when mature enough in the Firestorm viewer as well as Singularity. It is maintained by Kitty Barnett, not by me so I can't provide support for it.

What other viewers use the RLV code ?

The ones I know of are :

* Kokua (formely Imprudence, maintained by Chorazin Allen, previously by Nicky Perian) : A Firestorm-like interface with the same enhancements, but with my RLV code instead of RLVa (so it handles the vision restriction commands of the RLV 2.9 spec, which RLVa and therefore Firestorm -- at the time of this writing -- cannot).

* Cool VL (formerly Cool Viewer, maintained by Henri Beauchamp) : A SLv1-like interface with many enhancements, and my RLV code.

There are others but I can't remember off the top of my head.

Have fun !

Thursday, February 21, 2019

RLV 2.9.26

Hi there,

This week I was in a "fix the damn annoying bugs already" kind of mood. So that's exactly what I did with the RLV, in particular with the rendering part of the vision restriction features.

Because I couldn't stand this anymore :

Your silhouette is painting over my body !

Nor this :

What's the deal with my transparent curtains and shadows turning opaque and very shiny when my vision is restricted ??

So I looked into it and after some significant changes (because those annoyances above were not actually bugs, but side-effects of the way I used to render the vision spheres and all the features that came with them, in particular how to prevent alpha surfaces from poking through said spheres), now I'm happy to say those two quirks are fixed !

See for yourself :

Now your silhouette stops doing weird things to my body.

And the curtains look like curtains even when my vision is restricted (which is why it is black outside).

So those two changes above are some of the "annoying bugs" that needed fixin'.

There's also a nice side-effect to this change, which you notice when you press Ctrl Alt T to highlight transparent surfaces in red. Before this version, you had to press Ctrl Alt Shift V to force a complete visual refresh of all the objects around you to make sure all the transparent surfaces were highlighted. This was due to when the faces were registered. Now, you no longer have to do that because the change is immediate.

But that's not all.

How many times did you ruin a perfect shot by clicking on your own avatar, making it turn its back to the camera while you meant to click on one of your attachments instead ?

And how many times did you try to steer your avatar with your mouse but had a hard time finding a good spot to click on (especially when your name tag is hidden) because you are wearing so much unrigged stuff ?

Now there is a new debug setting named "RestrainedLoveBreakFocusOnClick" (I didn't find anything longer and more difficult to remember sorry) that is TRUE by default to keep in line with the usual behavior, but if you turn it to FALSE, two things happen :

- Clicking on your avatar no longer switches back to mouse-steering mode unless you press Shift.
- Clicking on your avatar or any of your attachments while Shift is down switches back to mouse-steering mode, regardless of whether the attachment has a touch response or not, and it works through HUDs too (which is great if you're wearing a HUD that takes a lot of space on your screen, like a blindfold, a RemVision screen or whatever).

To change the value of "RestrainedLoveBreakFocusOnClick", simply open the Advanced menu (press Ctrl Alt D if you don't see it), go to "Debug Settings", paste "RestrainedLoveBreakFocusOnClick" in the white field then click on "FALSE", and that's it. I'll add a preference for it later if I can because it is a bit buried right now.

Speaking of debug setting, you might have noticed that when "Show Debug Messages" was active in the RLV menu, getting a lot of RLV commands at the same time would slow your viewer down to a crawl until the flow of commands stops. This was due to the viewer sending a lot of debug traces in the console at the same time.

Now, with the new "RestrainedLoveLogging" debug setting, the debug traces are only sent to the console when it is set to TRUE (it is FALSE by default), so no more slowdown when "Show Debug Messages" is active. This is actually Chorazin Allen's work on Kokua, all I did was take his changes and integrate them into the RLV itself. Thanks Chorazin !

Finally, there was a bug that made the viewer crash when receiving a @getstatusall and being under a ton of RLV restrictions. It took some time to fix and test, but I'm confident it won't be a problem anymore now.

No need to paste the changelist here, it basically repeats all that I have explained above.

You can grab the Windows version here :

The MD5 hash for the Windows executable is :

Have fun !

PS : If you experience trouble with disappearing HUDs (for example the Lelutka minimized button) or parts of HUDs, please download again. I have ninja-updated the RLV 2.9.26 twice since its release without increasing the version number because I had to urgently remove a little optimization right before going to bed, then worked a little more and re-added it (with an additional check) the morning after. And I didn't want to increase the version or send a group notice twice while doing it. Sorry for the inconvenience.
For information, the MD5 hash of the initial version (with the bug) was 0350b5f406ff48f154f475ea9532d59b and the one of the second version (without the optimization) was 8262fc9c5e23ebc8642796150fa9a314.