Sunday, November 28, 2010

Restrained Love v2.3

Hello there,

As promised last week, here is the latest version of the RLV with many new commands ! These commands were all popular requests, some being more than two years old... Here they are at last !

- added : @detachthis and @detachallthis restrictions to prevent the avatar from removing certain outfits.
- added : @attachthis and @attachallthis restrictions to prevent the avatar from wearing certain outfits.
- added : @editobj command to prevent editing and opening one object in particular.
- added : exception mechanism to the @edit restriction (not to be mistaken with @editobj mentioned above), to allow the avatar to edit or open one object in particular.
- added : @sendimto, @recvimfrom and @recvchatfrom restrictions to prevent an avatar from sending IMs to, receiving IMs from and hearing chat from an avatar in particular.
- fixed : when attaching a folder, the objects would detach themselves once the clothing layers were being worn, and the outfit would have to be worn twice. This was not a RLV-specific bug.

As usual, download the installer there :

The MD5 hash is

Have fun !

Sunday, November 21, 2010

Restrained Love v2.3 coming soon

Hi !

Just a quick post to tell you about the upcoming RLV 2.3 and its new commands. At the time of this writing it is almost done, but not complete yet so it will be a few days before it is released. There are also a few other commands I am working on, but since the syntax and the actual effect is not clear yet, I'd rather not list them here. What is listed here is what will be included because it is already coded and tested.

This post is mostly aimed at the other RLV developers who want to keep their own RLV up-to-date, and at scripters who want to start working on new scripts to integrate the new commands in advance.

* "@detachthis=n" and "@detachallthis=n" : When this command is issued from a worn attachment, it locks all the objects and clothes belonging to the same folder (and to the sub-folders as well for the second option) on the avatar. It is the equivalent to calling a serie of "@detach" and "@remoutfit" commands for all the objects and clothes belonging to those folders.

* "@detachthis:attachpt=n" and "@detachallthis:attachpt=n" : No matter what object issues this command, the folders containing objects worn on attachpt will be locked on. In the case of the second option, the sub-folders will be locked on as well.

* "@detachthis:layer=n" and "@detachallthis:layer=n" : Same thing, but with clothing layers (shirt, pants, tattoo...).

* "@detachthis:folder=n" and "@detachallthis:folder=n" : These commands lock a folder by name, which implies that while it is locked, the user cannot move it, rename it, or move items or folders in or out of it.

* "@attachthis=n", "@attachallthis=n", "@attachthis:
attachpt=n", "@attachallthis:attachpt=n", "@attachthis:layer=n", "@attachallthis:layer=n", "@attachthis:folder=n", "@attachallthis:folder=n" : Same thing, but this time it locks the folder(s) off, preventing from actually wearing them.

Please note : For the moment, even the object that issues these restrictions cannot ignore them. In other words, if your collar issues an "@attachthis:cuffs=n" kind of command, you won't be able to even make yourself wear the cuffs by using an "@attach:cuffs=force" command, even from it. This is something I am going to work on seriously in the future because it can be annoying at times.

* "@editobj:uuid=n" : Issuing this command prevents the avatar from editing and opening the object which root has the indicated uuid.

Have fun with these new commands !

Wednesday, November 10, 2010

Vendors online again

Hi there,

Just a quick post to say that although the Apez issue is not entirely resolved yet, they have done their best to at least let me withdraw, and will do so again should I need to again (and I will), until the actual owner of Apez comes back and fixes the issue for good (only he can do that).

Sorry for the inconvenience,

Tuesday, November 9, 2010

Vendors going offline for a few days


I must put all my vendors offline urgently. Apez, the sales system I have been using for 4 years now, has decided not to let me withdraw the money I got from my recent sales anymore. People were still getting their products, but the money would not go to me, and would be stuck in the pipe. This is not the first time it happens and I usually got a good service from the Apez guys, but this time it is too much (that's more than L$68000 stuck somewhere and not guaranteed to be transferred to me ever).

Let me explain what Apez is, in a few words. It is a networked sales system that provides a merchant with a server and vendors to rez in-world, and that is all manageable through a web interface. It's cool... when it works. Apez Mann, the official bot used by that system, channels all the monetary transactions as sales are made.

Typically, when you buy something from me, I am paid the money you pay the vendor, then immediately the vendor makes me pay the same amount of money to Apez Mann, which adds this amount to a "virtual" account (yes, even more virtual than a SL account !) which is managed on that webpage. Every few days, I'd do what they call a "withdraw" from that account back to my SL account, and all is well. Only... this time the withdraw procedure does not work, it says that 100% of the money is "unavailable". It happens when the transactions cannot be verified, and apparently requires the owner of Apez, Cenji Neutra, to control all the transactions by hand. It takes days.

Problem is, Cenji has not logged on in 4 months. Their support ticket system is barely responding, nothing is happening, their forums are riddled with complaints and people are leaving for Hippo or other sales systems. This is too bad for the second biggest sales network in SL to end like that. What if I left too ? I am their biggest client after all, generating more than 10% of their daily sales. Should I expect better customer service from them ? Perhaps. But what am I getting ? Zilch. Zero. Nada. Total radio silence. This is unacceptable.

So I am currently working on a solution to put my vendors back up, be they Apez or anything else, but I do not intend to stay offline for too long.

Sorry for the inconvenience,

Sunday, October 31, 2010

Restrained Love v2.2.1.0

Hi !

Here is the latest version of the RLV, with a few bugfixes and some nice improvements to make it a bit user-friendlier :

- added : Support for Display Names. Please note that this is still in beta stage so there might be a bug here and there, but the tests were pretty conclusive so far.
- added : Qarl Fizz (formerly Qarl Linden) align tool, which is a big plus for builders. You will find it on the Edit window, as a new tool. Thank you Qarl !
- added : Starlight skin by Hitomi Tiponi.
- changed : Now the navigation bar won't hide itself when the avatar is prevented from seeing the location. This will allow them to use the sliders on the right at any time now.
- fixed : Remove From Current Outfit would not work well when the RLV features were disabled (thank you Lance Corrimal for the heads-up).
- fixed : The avatar could not be force-teleported by an object which restricted them from sit-tping (it used to work in 1.x).

You can download the installer for Windows here :

MD5 hash :

Have fun !

Sunday, October 10, 2010

Restrained Love v2.2.0.1

Hello there !

Here is the latest version of the RLV, this time more about user-friendliness than about bug-fixin'. See for yourself :

- added : A slider on the navigation bar to offset the altitude of the avatar. This is useful when the current animation is not properly offset according to the size of the avatar. This feature was inspired from the Phoenix viewer. If the navigation bar is unavailable, the setting can be changed by modifying the "RestrainedLoveOffsetAvatarZ" debug setting. Attention it works only between -0.5 and 0.5, default is 0.0.

- added : No script will be able to remove an item, a piece of clothing or a complete folder if its name contains "nostrip". This feature is inspired from RLVa's "nostrip" security. Yes, it was about time !

- changed : Do not automatically decline inventory offers and do not ignore object IMs when in Busy mode.

- changed : When in no-script areas, every attachment becomes automatically undetachable. Thanks JiaDragon Allen for the idea.

- fixed : Script editor freezes when pasting large pieces of code. Fix was possible thanks to Satomi Ahn's patch for

- fixed : Removing all clothes with a @detachthis command would not remove stacked clothes.

- fixed : Crash when receiving inventory if no #RLV folder was created. My bad, and thanks Henri Beauchamp for the heads-up.

- fixed : In the Outfit panel, "Wear & Replace" should remove the current attachments and clothes instead of stacking.

- fixed : "Remove From Current Outfit" was missing from the context menu.

- fixed : "Remove From Current Outfit" was not available when RLV was deactivated.

Download the installer here :

MD5 hash :

Have fun !

Tuesday, October 5, 2010

Closing the maze... NOT !

Hello again !

I am happy to announce that the maze did not close after all, it just... moved.

You will find out it is now in Deitide, high up in the sky. However the main entrance is still in Zhora (look for the pile of rocks in the park and walk through the badger hole with a RLV relay on) and the maze is identical to what it was before. It's just elsewhere. The main entrance will move soon too I guess, I will put it in Deitide, or copy it, or whatever. In any case, it's working.

A BIG thanks to Chorazin Allen for hosting it there. I'm happy to see my old buddy back into shape !

Have fun !

Sunday, September 26, 2010

Closing the maze


I am sad to announce that I have to close my RLV maze. This was a fun and quite frustrating place in which many many people struggled to find the way out after falling in a hole... It was also used as a harsh punishment for rebellious subs ("obey or you'll be thrown in Marine's maze !"), or as a challenge for the most adventurous ones.

It has been a fun project. A self-generating, fully RLV enhanced, traps-riddled beast of 3000 prims (exact count varying a little across generations) lost in the middle of nowhere, built only in the purpose of testing the poor adventurer's willpower and patience.

Wandering for two hours (average) before finding the exit, but not before falling into many hidden traps with spikes, smoke or cages, and to be teleported back to the entrance when "dying" after taking a wrong step. Or worse, teleported to a random location into the maze, that's when the victim feels totally lost. Oh the curses I have heard ! For two years ! The screams of frustration were music to my ears. Hehehe. Ahem. Sorry I digress.

So, I have deactivated the entrance of the maze and I'd like to ask everyone who had a "kidnapper" linking to it to do the same. The sim itself will become private so they won't be able to teleport to it anymore anyway. But the maze is going to stay up for a few more days before being derezzed.

Some people might IM me to ask me to rez a maze at their place. It is a fun public playground after all. I'm all for it but I can't transfer it (it is not meant to be sold and some of its sculpts are no-trans anyway) and be warned that it takes a lot of prims as it is set now. It is customizable though, it can be as big or as small as you want.

I've seen people come back over and over again because they liked it so much. And although it takes between one and two hours to finish, I have seen people run it in less than six minutes ! Without cheating !

This closure has only one reason, I just can't support the cost of that place anymore. My sim is going to be rented so I can't afford to maintain a free public place like this anymore. I'm sorry, and I'm very happy to see how popular it has been, even if nobody ever spoke about it publicly. It was like "this secret place you can't talk about" :)

Maybe in the future it will be up again somewhere !

PS : If you like the design of the walls and ceilings, the textures and sculpts are made by Ariel Erlanger, who sells a dungeon-like skybox called "The Vault" in Vesta that looks exactly like this maze. Go take a look !

Tuesday, September 21, 2010

Restrained Love v2.2

Hi !

Here is the latest version of the RLV with several fixes and some improvements :

- added : Keyboard shortcuts to Edit, Open, Sit and Detach, all using right-click.
- added : When receiving inventory from an object, the avatar can be made to automatically say a message on a private channel via the @notify command. That way the object knows whether the offer has been accepted, or accepted AND put in the #RLV folder (which is what it really wants to know), or declined (including muting).
- fixed : The FOV frustum would not be placed correctly on the world map when the UI size is different from 1.0. You can check this bug at and no it has nothing to do with the RLV, it was just in the way :)
- fixed : Several bugs spotted by Henri Beauchamp, thank you Henri !
- fixed : When prevented from editing, don't allow to Open with the Open tool on a box
- fixed : @attachallthis on an empty attachpoint or clothing layer attached everything ! (thank you Susan Daviau)
- fixed : Right-click > View Profile on a resident while under @shownames should not do anything (thank you Malidur Galicia)

A word about these new shortcuts :

This version of the RLV makes it easier to execute actions on an object by right-clicking on it. You may have noticed that since SL 2.0, the old pie menu has been replaced with a hierarchical context menu, and while there may be good reasons for this change, it reduces the productivity in everyday use. That's why the RLV adds some features to the right-clicking of the mouse in order to quickly Edit, Sit, Open or Detach an object. Here are the combos :

- Control + Right-click an object in-world : Edit this object.
- Shift + Control + Right-click an object in-world : Edit this object (adding to or removing from the current selection).
- Shift + Right-click an object in-world : Open this object.
- Alt + Right-click an object in-world : Sit on this object. It also works if you are wearing a HUD that takes all your view. Some restraints including mine provide that feature in order to make them feel more real, now this combo will make such a level of restraint be much more user-friendly because it will only prevent touching, and not sitting anymore. Another nice side effect of this is that when you sit that way, it does NOT stop the object if it was moving. In other words, you can now sit on a moving vehicle without stopping it. You can also sit on an object, then sit on another one without having to stand up first.

To delete several objects at the same time, just Control+Shift+Right-click all of them then press the Delete key. This is much faster than right-clicking > Remove > Delete each one of them.

But also :

- Control + Right-click an object you wear : Edit this object.
- Shift + Control + Right-click an object you wear : Edit this object (adding to or removing from the current selection).
- Shift + Right-click an object you wear : Detach this object.
- Alt + Right-click an object you wear : Does nothing.

Of course all these shortcuts are conditioned by the active RLV restrictions. You can't open or edit an object if you can't edit, you can't detach an object that is locked on you, or sit somewhere if you can't unsit from where you are.

Please note that pressing Shift, Control or Alt (or any combination of the those) will still show the default icons (the hand, the magnifier etc) because the viewer has no way to know whether you are going to left-click or right-click on the object.

As always you can grab the viewer here :

MD5 hash : 4bf562120afa6fe0d76bbb522bb90117

Have fun !

Sunday, September 5, 2010

Restrained Love v2.1.2.2

Hi there,

Here is the latest version of the RLV, with several bugfixes and changes that should simplify your life :

- added : A simpler way to activate the real-time shadows. This feature is NOT supported, use at your own risk !
- changed : Outfits are now usable again, unless you are prevented from changing clothes at all.
- fixed : Sometimes when logging on while being prevented from wearing clothes, the bodyparts (hair, skin, eyes and shape) would refuse to load, leaving your avatar desperately ruthed or cloudified until the restriction was lifted. Even a relog would not help. Not fun.
- fixed : The red arrow now appear even when prevented from seeing the location, when you try to map a friend (this is sometimes useful when you are blindfolded).
- fixed : "Wear" an object from the inventory was not replacing an already existing object on the target attachment point, it was behaving exactly the same as "Add".
- fixed : A clever hack around blindfolds.

A word about real-time shadows :

This version of the RLV provides controls to activate and deactivate the real-time shadows. This feature is already present in the original SL viewer, but the controls are hidden because Linden Lab does not officially supports it yet (it is still very much beta and slow). However, if you feel adventurous and know what you are doing, you can activate the shadows by opening your Preferences, then go to Graphics :

- Activate "Framebuffer Objects" and "Lighting and Shadows"
- Select sun & moon with or without projectors in the drop-down list

Please note that NO antialisasing is possible while "Framebuffer Objects" is set, this is a limitation of the viewer.

Attention, real-time shadows are VERY heavy on the graphics card. You must ensure that your computer is able to handle them.

As usual, grab the installer here :

The hash of the Windows installer is

Have fun !

Monday, August 30, 2010

Restrained Love v2.1.2.1

Hi !

This is a last-minute release for the RLV with a quick fix. It seems that 2.1.2 crashed when receiving a @getoutfit command. If you have downloaded 2.1.2, please download this new version ASAP because using a furniture or an attachment that issues this command will make your viewer crash to desktop. Big thanks to Chorazin Allen for helping me track that bug down.

For those who build their own viewer and include the RLV patch in it :
I have also added the revision of the latest changeset integrated in the SL viewer at the time when I cloned the repository to build this RLV, which is 11980. Same revision as RLV 2.1.2 so the patch will need to be applied on the same source code. I'll try to keep the revision number visible so we know exactly what changes are included into the viewer when I decide to build a new RLV.

For those who didn't understand a word in what I just wrote, this simply means that the version of the SL viewer I have used to build the RLV on, will appear on the Help > About window, and I will try to do so from now on :)

Grab it here :

Hash for the Windows installer :
6f4ca405511ef7225d8a6571574dd196 (initial version with debug setting set to FALSE, unavailable now)
92e4ad7d2f02552ffb5d043ee4012885 (fixed version with debug setting set to TRUE)

Sorry for the inconvenience,

PS : The initial version had its "RestrainedLove" debug setting set to FALSE in the package, resulting in the RLV features being deactivated by default instead of activated. If you have downloaded it between 6:40am and 7:15am SLT on 8/30/2010, please download it again or turn this debug setting to TRUE yourself in Advanced > Debug Settings. That's the only difference between these two versions. Sorry about that.

Saturday, August 28, 2010

Restrained Love v2.1.2

Hello !

Here is the latest version of the RLV, really taking multi-attachments and multi-wearables now, like the soon-to-come SL viewer. Oh and also, as promised, a new command to make sure a prisoner won't escape from a cell by teleporting through HUDs and the like. Here is a breakdown of the new features :

- added : New commands to force attach outfits without replacing clothes and attachments : @attachover, @attachthisover, @attachallover, @attachallthisover. Note that if the folder begins with a "+" (can be changed through the "RestrainedLoveStackWhenFolderBeginsWith" debug setting), @attach:folder=force will add the outfit instead of replacing it.

- added : New @standtp command to force an avatar to teleport back to the previous location where they were standing last, to prevent them from cheating through cages by rezzing poseballs or teleporters.

- changed : Added Henri Beauchamp's tweak to make sure that an exact match for a folder takes priority over approximate matches, regardless of the position of the folder in the inventory.

- changed : When you receive a folder which name begins with "#RLV/~" from another resident, this folder goes directly into your #RLV folder, exactly as if it were given by an object.

- changed : The previous "fix" that would spare the viewer from removing all clothes before rebaking again when changing outfits is now removed. This fix could not handle multiple clothing well, due to how the regular SL viewer handles changes of clothing now (i.e. it removes everything and immediately rebakes the textures, which shows your avatar losing its shoes for a short moment, it is annoying but it works).

This version is also standalone (and I don't think I will release non-standalone viewers anymore now), you can grab it here :

The hash for the Windows is

Have fun !

Sunday, August 22, 2010

Upcoming new RLV command : @standtp

Hi !

Just a short blog post to give you a heads-up as to what the next RLV command will be and what it will be used for : @standtp.

Cages in SL are pretty much secure, with one flaw : the prisoner could use a rezzer HUD to rez prims and get out. One way to prevent this so far is to issue a @sit command, which has the downside of not allowing the prisoner to sit anywhere (it is ok for most cages, but some do include furniture on which the prisoner is expected to sit). Another way to prevent it is to lock their inventory away with @showinv and to ensure the prisoner cannot use a script to grab the rezzer from their #RLV folder... but it is also a bit overkill because the inventory could be useful for other things.

That's why @standtp is being added : When the avatar sits down the RLV retains its last standing position, and when it stands up and this command is active it is teleported back to this last standing position, exactly as if you double-clicked on the floor with the "DoubleClickTeleport" debug setting set to TRUE.

In other words, if you are kept inside a cage that uses this command and you think you can escape by using a HUD that rezzes a prim you can sit on... think again. lol. You'd snap right back inside the cage when you stand up.

Now... Why isn't it part of other commands like @sittp, for example ? Well it wouldn't work for leashes, where the sub can be told to sit in a vehicle for a stroll. She would snap back to the original place upon standing, which would be confusing. So this feature does need a new command I'm afraid.

Oh one last thing ! When the command is issued, the last stored location is also updated to where you are at the moment so that grabbers that force-sit you can still be used to bring someone inside a cage, issue all the restrictions (including @standtp) and THEN unsit the victim. That way no content will break.

I do not have an ETA yet. The command works, but I have no plan to release a new RLV in the next few days so you have time. But since the RLV does accept even non-existing commands (for this reason), you can already update your cages if you want, to be prepared for the time when it will be part of the RLV API.

Have fun !

Wednesday, August 18, 2010

Restrained Love v2.1.0.1

Hello there,

Here is the latest version of the RLV, with only bugfixes but a lot of them. I hope this will make it more user-friendly for everyone.

- changed : When debug settings are forced, atmospheric shaders are forced on too because RenderResolutionDivisor (*) needs them to work.
- changed : DoubleClickTeleport (*) is ignored if your controls are being handled (like when wearing legirons), or when unable to sit-TP, or when unable to teleport.
- fixed : The Build button was not refreshed correctly when the @rez restriction was active and the avatar was walking from parcel to parcel.
- fixed : Don't hide the LMs in the Places panel when the inventory is hidden.
- fixed : When changing outfits, don't reset all the clothes (making the shoes disappear and reappear), but only update what needs to be updated, like in 1.x.
- fixed : When wearing 2 pieces of clothing at the same time after clearing the cache, one of them cannot be removed easily. Please note, this is a SL viewer bug, see
- fixed : You could delete (not return) an object you were sitting on while prevented from unsitting.
- fixed : You could send a TP offer even when the location was hidden.

(*) This is a Debug Setting, that you can change by going to Advanced > Debug Settings on your top menubar (if you don't see the "Advanced", press Ctrl Alt D).

Here is the link to the RLV, remember it is standalone now :

The hash of the windows installer is

Have fun !

Tuesday, August 3, 2010

Restrained Love v2.1.0

Hi there,

As promised, here is the latest version of the RLV... with a few significant changes ! First of all, it is a standalone version, and not an executable that you have to drop into the SL folder anymore. What you get is an installer that will decompress wherever you want, and you won't have to go through the hassle of copying the settings.xml file anymore.

But more so, this version handles multiple attachments... If you don't know what it is about, let me explain it to you real quick :

Until now, you could only wear ONE object per attachment point (like "spine", "r forearm" etc). Which means that attaching another object on a point that was taken would either kick the present object off, or do nothing if the object was locked.

Some other third-party viewers like Emerald added several copies of the existing attachment points to trump the system and make you able to wear several objects on the same point. It worked well, but scripts would have difficulties with them, especially since it was not a supported feature.

Now, the grid is able to handle this and has support from the regular SL viewer 2.1, which has become official last week. And with it, RLV 2.1. What happens now, is that an attachment point does not hold only one object anymore, but a list of objects.

It impacts some of the features of the RLV directly though :

- A new @getpathnew command is added because @getpath would return only one folder, the folder containing "the" object attached to an attachment point. Only... "the" does not mean anything anymore, since there can be several objects worn on the same point.
- When your avatar is forced to wear something, the objects won't kick the existing ones anymore. So you have to manually remove them before or after wearing the new outfit.

The "MultipleAttachment" debug setting is going to be your friend, too. It is set to FALSE by default (so the viewer follows the old behavior), you have to set it to TRUE yourself in order to enjoy this new feature. This is because older viewers like 1.23 are unable to render those additional objects when they're attached on top of existing ones.

Here is a recap of the changes and new features :

- added : Support for multiple attachments. The debug setting "MultipleAttachments" is used to decide whether to allow multiple attachments or not. Defaults to FALSE. (*)
- added : New command @getpathnew to respond with a list of folders when testing what outfits contain all the objects attached to one attach point in particular.
- added : Some tweaks to make the viewer generally more user-friendly. You can find them here :
- changed : The Build, Map, Minimap and Inventory buttons in the bottom bar are greyed out when the appropriate restrictions are issued.
- changed : Made the chat toasts bigger for better readability.
- fixed : Update the context menu of the top menubar when @showloc is issued.
- fixed : Ironed out some oversights that needed to be addressed after porting the RLV source code to 2.0, then to 2.1.

(*) The release notes may seem to say exactly the opposite. What is said here in this blog is the actual behavior, the debug setting is NOT ignored.

Here is the link to the RLV, remember 2.1 is standalone now :

The hash of the windows installer is

Have fun !

Sunday, June 6, 2010

Restrained Love v2.0.1

Hi !

Here is a new version of the RLV, including a few bugfixes that were annoying the hell out of the users. And as nobody reads the release notes, I will paste what has been done here. Here goes :

- fixed : Holding Shift while typing would send the chat as is, in a Whisper. It could be very annoying.
- fixed : Prevent a clever cheat over @shownames.
- fixed : When the user is prevented from removing clothes but wears something that replaces an existing one, in theory it should not do anything (since the existing clothes cannot be removed). But after a relog the new clothes were being worn, despite the restriction.
- fixed : When setting the IMs to tabs, the tabs would only display the avatar icon and no name, and clicking on a tab would do nothing (alt-left and alt-right would work, though). For now the avatar icons are removed, but the names show and the mouse clicks work again. The solution is less than ideal but the bug hunt took me over two weeks...

Download the viewer here :

The hash for the Windows zip file is

Have fun !

Sunday, May 23, 2010

Restrained Love v2.0

Hello there,

After much time spent porting the code (or should I say, rewriting the code) from SL 1.23 to SL 2.0, and after even more time spent testing it, here is the first acceptable version of the RLV 2.0 !

I say "acceptable" because this is still in beta, there are bugs from the standard SL viewer and other bugs that I certainly didn't notice or didn't cover well enough. We'll see in the long run. But at least this is something.

As always you can download it from

The hash code for the Windows version is

You may expect this version to be updated a few times, as users will report bugs or missing features, just bear with me :)

Have fun !

Friday, April 9, 2010

RLV 2.0... working on it !

Hello and sorry for having been so silent lately, I deliberately stayed away from all the fuss around the TPV policy and the new ToS. I have voiced my point of view once, and that was enough. But I've been very attentive to all the concerns raised on the os-dev mailing list and various forums ever since.

But the main thing I've been doing lately has been keeping me far busier than this : I am working at porting the code of the RLV from SL 1.23 to SL 2.0. It has taken me weeks of non-stop coding and testing (weekends included) because the two source codes are so radically different that a total rewrite was actually not out of question. And it's not over yet.

First of all, let me say that I do not dislike 2.0 too much, it actually looks slicker than 1.23, even if it was hard to change my habits because it clearly does not behave the same way. I hated it at first but I'm slowly growing to getting used to it. Some parts make more sense than in the older versions, when you think about it LL wants to tend towards a "metaverse", which is no less than a 3D web. Hence the browser look-and-feel for the new viewer. It makes sense because conceptually regions are like websites, landmarks are like bookmarks, etc. Some correlations can be done. And I like it because some features were clearly broken in 1.23 and LL had the guts to start them over from scratch, sending the message that they are going to improve them and finally fix some old-time bugs. I still prefer 1.23, though, because it generally offers more power to the user (and requires less clicks for the same actions).

Porting the RLV from 1.23 to 2.0... is a nightmare. We are talking about a source base that has been worked on behind closed doors for a year at LL, before being released to the users with all the changes that it implies. Most of the code that the RLV specification impacts has changed, or is actually not there anymore, which means recoding manually and retesting it all. Some controls have vanished (the upper status bar, some floaters), some have dramatically changed (the lower control bar, the chat bar), some are new (the side tray for instance). Most of the restrictions issued by the RLV were broken, even "detach" had to be fixed. Not to mention the new concept of links (which is a good concept, but the RLV was not able to handle them natively), outfits and worn items. Worse, some intrinsic paradigms in the source code have changed, and this made the port even harder. I can say that practically every single feature of the RLV has been recoded one way or another.

To give you a glimpse of the task, here are the features that were still working (the rest was broken badly or very badly) :
- automatically reattaching locked items after being kicked off
- @recvim, @recvchat
- focusing in-world while Blocked
- @redirchat
- @tplm, @tploc, @tplure
- @fartouch
... and that's about it. Every other feature of the RLV was broken and had to be either fixed or recoded. Granted, everything is not even tested yet, namely @setenv and its suite of commands, I don't know whether they still work or not. The damage assessment is not even complete yet.

But I'm getting there. Most of the features work again, there are still a few things to fix, and a lot of testing to do. The only thing that worries me is that I am actually working on the source code of Snowglobe 2.0 (since Viewer 2.0 is closed source), its first version to be exact, and it does not run with the Beta version of the SL viewer 2.0. Well, it does run, but some XML files must be missing which prevent me from logging on using Beta 2.0. So I can't say that RLV 2.0 works with Viewer 2.0 yet. It works with Snowglobe 2.0 and that's already it.

All this to say that I am not quitting, nor stopping developing on the RLV, but I wanted to avoid conjectures until I had something solid to present. Of course I can't provide any ETA yet, it could be weeks before I can publish an acceptable RLV 2.0. And even then, it would certainly still contain bugs and oversights that would have to be fixed over time.

Please bear in mind, though, that the two projects (1.23 and 2.0) are so radically different that adding a feature to one does not mean it can be added to the other easily. 90% of the time it can't be ported without being entirely recoded. So unless it is small and easy enough, I am not going to add any feature to RLV 1.23 anymore. It is not the time to add features anyway, it is the time to make the damn thing cross the gap and keep living on. Because eventually SL 2.0 will become mandatory and 1.23 will stop working. Better safe than sorry.


Friday, February 26, 2010

The new name of the RLV (yes, really !)

Hi there,

Ok so it is done, settled, taped, fastened, tightened, locked, double-locked, welded, and I even added a drop of glue just to be sure it wouldn't budge anymore.

The new name for the fomer Restrained Life Viewer is... Tadaa !

Restrained Love Viewer !

I actually like this name better than any other one, and many people have suggested it yesterday. It delivers a very positive message, even, and despite still having a fetish flavor, it can be used in mainstream without much afterthought. And it's cute ! And more importantly, I know first-hand that the Legal department of Linden Lab is 100% okay with it. Finally !

Now we can start working at updating everything that needs updating, but before let me just explain a few things.

Firstly, "Living" was too "confusingly similar" to "Life", according to LL's words, so keeping it was bound to raise issues. This was not a legal one though. I would not have been sued for making a viewer that used a forbidden word or a similar one. It was barely a trademark issue actually. No, it was much simpler than this : LL does not want to give the possibility to any viewer to pretend to be official in any way, direct or implied, and that requires to forbid all the names that could lead the new users into believing a viewer has been made by LL. I can understand that. I don't approve, nobody in their right mind would have confused "Restrained Living" or even "Restrained Life" with "Second Life", but I understand. The policy is heavy handed and poorly worded, but it is their platform, and they reserve themselves the right to accept who they want on their grid according to their own terms.

Secondly, mark my words here, Linden Lab does not dislike me or the RLV at all, nor the BDSM crowd in general. They know we are responsible people, and that we share their interest in making this virtual world a better place. The RLV is one example of this interest, there are many others, and they know it. Their Legal department is not populated with top executives who have life-or-death power upon us Residents, but with people who try to edict rules to protect themselves when it comes to providing us powerful tools to work along with them. This is very much like handing a gun to someone hoping you will have your back covered. The last thing you want is to have the weapon pointed at you ! Granted, this was not done in the best way, nor at the right time (it should have been done the day the viewer went open-source, rather), and it seems the policy will be reworded in the next few days anyway. This double name change only made me waste a few hours and bounce up and down a little, but that's as far as the damage went. No weasel has been hurt during the take.

Thirdly, I would like to publicly thank Soft Linden for his patience and help through this. Without his help, I would have released a "Restrained Living Viewer" and it would have been banned from the grid. Thanks to him, I am sure it is not going to happen. Better yet, Soft offers to rename the groups that have "Restrained Life" in their name to "Restrained Love", rather than letting the group owners create new groups and do all the work that implies themselves ! For the trouble, y'know. That's Soft. Thank you Soft.

Fourthly, the amount of support I got from everyone was simply amazing. I cannot count the number of kind messages I received during the last few days, and this is very humbling... Thank you all !

It's ironic, when you think about it. This is "just" a name change, and in this case "just" two letters. That's all. On a project that everybody refers to by its acronym anyway. That's a lot of noise for not much, and I apologize for that.

Have fun and thank you again !


Thursday, February 25, 2010

New name ? Not so fast.

Argh. Now I'm going to really blow a gasket. I've been told that "Restrained Living Viewer" INFRINGES Linden Lab's policy about third party viewers. No more info for now. Just that it is not going to be named that way for the moment. I know I have been blogging that it was settled a few hours ago, and now I am forced back to square one. Just please hold on before changing your scripts or whatever, the new name of the RLV is NOT chosen yet. Again.

Sorry about that.

RestrainedLife changes name (final)

Hello again,

After much discussion with many people, I have found out that most of the suggestions for the new name of the RLV tended to converge independently towards "Restrained Living Viewer". I kinda like this name, even though I originally wanted to take make it less fetishy... But one killer argument is that the viewer should be as easy to find (on Google or elsewhere) with its new name than with its original one. "Red Light" would not lead you anywhere near the RLV unfortunately. Another killer argument is that "Red Light" is actually the name of an adult-oriented 3D platform that is somewhat a competitor to Second Life. No less ! Proves that the name was not so bad, but someone had the same idea first.

So it is settled now, after much thought, decision and indecision... to Restrained Living Viewer. Not "Red Light Viewer" as I initially planned, but that name did not have much meaning, it was like a placeholder. "Restrained Living Viewer" has much more substance to it, is very close to the original name, and keeps the two most important words of the three : "Restrained" and "Viewer". Apologies to those who hoped the new name would be less fetishy, I really tried as hard as I could, but hey, after all it is not that adult-oriented, is it ?

In a nutshell, here is a recap of the most important reasons why I'm choosing this name among the others :
- It abbreviates to "RLV"
- It is very close to the original name, so it won't be a huge change in the mind of the users
- Losing "Restrained" would lose many search results in Google or other search engines (including within SL), and that is one of the best argument to keeping it
- It is more positive than "Restrained Life", which has a sense of coercion that "Restrained Living" does not have (the latter sounds more like a choice of life rather than an imposition). Yes I know this is subtle, but it counts

Ok so now that this is settled, I can start working at changing the name everywhere I can. Code, manuals, API, scripts... it will take a while before everything is clean again, but you won't notice most of the changes anyway. And I will not rush, Linden Lab is giving us 3 months to make the move. So scripters do not need to rush either. Let's all do this smoothly and nobody will get hurt.

What you will notice is a new command called @versionnew that will return "RestrainedLiving viewer v1.23.0 (SL 1.23.5)", exactly like @version which will remain unchanged. Note that "RestrainedLiving" will be one word, without a space. @versionnum will remain unchanged as well, of course.

I want to thank all of you who have helped me with the choice of the new name, and for your support through your kind messages, notecards, blog posts... I really, really appreciate your concern.

Love you all,

Wednesday, February 24, 2010

RestrainedLife changes name

Hello all,

Today Linden Lab has decided to publish their new Third Party Viewer policy that you can read here

To begin with, this policy is unacceptable. A Third Party Viewer Developer (with a big "D" !) must NOT be held responsible for whatever use their users do with their work. It makes no sense, is not viable in court, and nobody in their right mind would even think of imposing this. As soon as you download an application, as a user you are entirely responsible for what you do with it. You are responsible for what transits through your wifi router, too. And you are responsible for your driving style when you buy a car. I could go on and on. I am NOT responsible for what you do with the RLV, guys, and never will.

Let me emphasize the one point that makes this change necessary :

# Your Third-Party Viewer name must not be confusingly similar to or use any part of a Linden Lab trademark, including “Second,” “Life,” “SL,” or “Linden.” For example:

1. You must not have a Third-Party Viewer name that is “________ Life” where “________” is a term or series of terms.

That's right, Linden Lab forbids us from using "Life" in the name of any Third Party Viewer from now on. Therefore "RestrainedLife" must be renamed or die. And it won't die.

First of all, let me just say that I am personally offended. No, disgusted. No, mortified. Well I feel anything you can think about except satisfied with it. I'm appalled that they dare stabbing their most faithful supporters (the Developers) in the back like this, to protect themselves from a handful of griefers. They are openly admitting that they have no weapon to counteract them, or worse, that we (their supporters) are in their way in this stupid arms race and must get ridden of. This viewer has been around for 2 years and a half now, and this policy is only one day old, but who am I to believe they'd have respect for what is already in place when making a change to their platform. This new policy is hurting every legit third party viewer, while not doing harm to any of the custom and privately modified griefer ones.

On SLU and other forums, some developers are even saying they are going to quit, being so disgusted by that new policy. Let me just rephrase what Desmond Shang said to one of them : "Give it a night's sleep, don't give up now, don't take any rash decision before waiting a day or two, since this policy is likely to change again soon anyway". Best advice that could be given to someone whose 2 years and a half work has been thrown down the toilet in a day. Because I am not the only one in this case, and I am not quitting. But it sure will be a hell of a task to rename the RLV, considering how broadly that name has spread now. The damage would have been nil had this policy been released the day the SL viewer became open-source, in January 2007 ! We are February 2010 now ! Think of how implanted the older viewers are now !

Let me just remind one thing to Linden Lab (and I know some of their employees are reading this blog) : We, as the Third Party Viewer Developers, with all the capitals at the right places, are adding value to your platform. We are working our asses off to make your own project better ! Most of us are not paid for this, and do this as a hobby, albeit in a very dedicated and consistent way. In my own case, yes I do know that the RLV does increase sales in-world, and not only mine. Simply because it makes your platform more attractive ! I have been told countless times that the RLV was the reason why some users signed up in the first place ! And other viewers are having the same effect ! And this is how you thank us ?

Having said this, yes RestrainedLife was bound to change its name eventually, this was in the plans. Having grown from a marginal enhancement to scripts in-world to a full-fledged LSL<->Viewer API, and having moved from being used by a handful of hardcore BDSM practitioners to a significant amount of the SL population, many of which having nothing to do with us fetish players, "Restrained" is a word that was bound to be replaced with something more vanilla. Yes, I wanted to keep "Life" in the name, now I can't anymore, but that doesn't matter.

Which brings me to the real relevant part of this post, after venting a little. The new name. The consequences of changing the name are tremendous, considering the number of scripts in-world that use the name "RestrainedLife" to refer to this viewer. Fortunately, "RestrainedLife" is a bit long to write, so many people prefer using the acronym "RLV", since it is a buzzword everybody knows. Which is why, in an attempt to control some of the damage at least, the new name must still abbreviate to "RLV". Ok I've kept you hanging on long enough, here is the new name...

"Restrained Life Viewer" hereby becomes "Red Light Viewer"

Why this name ? This is not a knee-jerk reaction, I have given it a lot of thought, and actually "Red Light" makes sense for many reasons.

It is usually associated with shady life, where prostitutes put on the red light at their windows to indicate their are available to new clients. There is even a song, sang by Police, which is a group I used to listen to a lot when I was a child. "Rox-ane... You don't have to put on the red light...". But I digress.

A red light is also something you can visualize easily, as opposed to a "restrained life" which is an abstract concept. And red is somewhat associated with forbidden, temptation, and punishment. And this is also my favorite color, so there.

It also has its downsides, unfortunately.

For starters it still sticks to the area of adult play. But how to get rid of that adult aftertaste when most of the features of the RLV are about restricting the user from doing this or that ? It is quite singular in that respect, as it is meant to be used by a quite singular kind of people. And if any viewer connecting to SecondLife must be associated with adult activities, this is this one.

Secondly it is, well, red. And one of its implementations is now part of the Emerald Viewer, which is, well, green. Uh-huh. Right. They will forgive me this I think.

Thirdly this new name has less ties to what the viewer actually does than the original one. This is a direct consequence of me wanting to dissociate it from BDSM play (while still staying adult), rather than because of the new policy.

So let's keep calling it "the RLV". No matter what "RLV" actually stands for, be it "RestrainedLife Viewer", or "Red Light Viewer", or "Really Lame Viewer"... all that matter is what it does, and this does not change one bit.

I'm only asking the scripters who use it to look into their scripts and documentation, and to either replace "RestrainedLife" with "Red Light", or just to mention that the viewer has changed name and that all reference to "RestrainedLife" now means "Red Light", or whatever you want to do as long as it is clear what viewer you are talking about. This may be a lot of work for some. It certainly will be a lot of work for me, and will take place in the weeks to come.

Oh of course, this is still subject to change. I have not started anything yet, but as of today, "Red Light Viewer" really grows in me, it is a name that sticks, and I cannot think of anything better yet.


Saturday, January 23, 2010

RR update to 1.20 is now live

Hello again,

Well as promised, the latest version for the RealRestraint products is available ! I won't repeat what the changes are here, the previous post explains it all. But it is a major update, with lots of changes !

Have fun,

Thursday, January 21, 2010

RR version 1.20 coming soon !

Hello there,

This is just a small post to keep you updated with what I am doing at the moment. I have been working on my restraints, refactoring code, merging scripts and adding features, all in the name of improving user-friendliness and script load, which results in the soon-to-come version 1.20 of the Lockable system !

So what's in there ? Here is a glance, but remember that I am still working on it so there is no ETA yet, and I cannot guarantee that this list will not change (but it's pretty much stable now).

1. Lockable goes Mono. Not a big deal ? Well it was a necessary step in order to do all the rest, and the 1.17 and earlier versions are in LSL. This means less memory available so I squeezed the existing code as much as I could, hence more scripts to do complex tasks, hence more memory footprint for the sim. And guess what ? Linden Lab is going to set script limits on objects and attachments (memory and/or sim usage) at some point in 2010. So although I have delayed switching to Mono as much as I could, because of that infamous "freeze the whole sim when rezzing a Mono scripted object" bug, it is now time for me to take the step as well. You'll see, the features that this switch allows are worth it by far.

2a. The "Long time", "Gender" and "Alarm" plugins are now merged back into the main script (Lockable), allowing for 3 less plugins on the Plugins Browser. Their menus can be found on the new "Tools", "Special" and "Timer" pages of Lockable.

2b. The Lockable_Check_RL, NoDetach and Lockable_Shortcut scripts are now merged into Lockable too, allowing for 3 less scripts in the restraint again (so 6 less scripts in total, making it much easier on the sim).

3. More information on the Lockable menus : which page we are on, which pose the captive is locked in, whether the timers are hidden or shown, whether the captive is Blocked/Mouselooked.

4. More options for timers, coming from the former "Long time" plugin, including a "+10 mn"option for more precise control.

5. The ability to save the current state of the restraint (only when unlocked), specifically best time, best escape time, gender, visibility of timers etc. What's best is that even the older versions of Lockable will have their data saved for later, during the update ! So you won't lose your records by updating anymore.

6. Add support for 2 more locks, if a future restraint requires it. I have no plan to add more poses to existing restraints as of yet, but at least 1.20 will allow it if needed.

7. Favorites on the Plugins Browser. Now when you select the same plugin twice in a row from the Plugins Browser (not through "Last Plug"), it will be added to the list of favorites that shows on every page. Since there are at most 3 favorites, there are now only 6 plugins shown on each page, but it is an acceptable tradeoff since 3 plugins have disappeared now anyway. Oh and favorites are separated for the wearer who has no key to their restraint, from everyone else. Exactly like the "Last Plug" button on the Lockable main menu.

8. Ability to set Lockable to "silent" or "verbose". When "silent", everything Lockable says will be said in IM instead of chat, including keys, locks etc. This does not apply to plugins directly, but they are notified of the change.

9. When recovering tries, the message is said to the wearer only. This was seen as "green spam" by people, and didn't really make sense since the struggling was private anyway.

10. RealRestraint_Base will not Block the captive by default in any pose now. This was too confusing for the user, and didn't make it easy to resize the restraint, especially on the Shibari Ropes.

11. When clicking on Autoref and sitting, now the pose will be stopped. That way the captive won't have to unsit and sit again to keep the original pose of the furniture running.

12. Keep running in No-Script areas (main item, secondary items, HUD). It was not done before for simple memory usage reasons, but since Lockable has switched to Mono, this is not a problem anymore.

13. The delay for the main menu goes from 1 minute to 5 minutes.

14. Various bugfixes and oversights :
- "Cmd:L0" to "Cmd:L9" link messages are now supported (again) when received from scripts. They were removed for memory reasons, years ago, and never put back.
- No "Take Keys" link message was sent from Lockable when the wearer locks themselves and the keyholder is someone else.
- The Give Keys plugin does not try to reopen the menu anymore after giving the keys to someone else (it resulted in an "unauthorized access" message anyway).
- The Spy plugin was showing "your keyholder is online/offline" repeatedly when using a third party plugin that triggered dataserver events.
- The Spy plugin crashed. Badly. Repeatedly. And for no reason. And I still don't know why, but switching it to Mono should do the trick. I'll keep an eye on this bug though.
- The Leash plugin's "Anchor" feature was not working when avatar A anchored B to C, despite the prerelease tests. In fact I had tested it, observed it working, then changed a small thing in the script. And didn't retest. Bzzt. Same player shoot again.

15. When locking a captive, the higher the pose in the menu (from 1 to 6 for now), the stronger the restraint becomes, and more difficult to struggle out from.

Whew ! That's about it. And don't worry, the menus you are used to are mostly unchanged. I have done my best to keep the buttons at the same place, keeping them predictable, and the workflow stays the same. You won't have to re-learn everything, far from it. The biggest change you'll see is that "Block" and "Mouselook" are now in the "Special..." menu, instead of the "More..." menu, and that there are more menus, obviously. And less clicks to do the usual tasks like setting and hiding timers or choosing your favorite plugin, which is a plus. And all the scripts that have been merged still send their Link Messages the same way as before, so third party plugins won't see the difference.

Have fun !

Edit : Added point 15, and the Lockable menu actually expires after 5 minutes, not 3