Saturday, December 13, 2008

RestrainedLife 1.15.2

Hi there,

Even more bug fixed in this release, and now the user will be unable to see invisible objects while under an edit restriction (makes sense, if you can't edit you don't have to see any overlay... do you ?). This will be easier for the prison and trap makers out there.

* Invisible folders (starting with ".") were taken into account in the @attachall command
* Items that are neither objects nor pieces of clothing were taken into account in the @getinvwon command
* Skin and hair did not register in the @getinvworn command
* Viewer was freezing when using @getinvworn while RLV debug is active.
* @getinvworn was seeing every item contained directly under #RLV, but did not allow the user to attach nor detach them. As #RLV is not an outfit, now @getinvworn ignores them
* Now when the user is unable to edit things, they are also unable to see any beacon, including invisible objects

Download the viewer and the sources there :

MD5 hash for the windows zip :

Have fun !

Thursday, December 4, 2008

RestrainedLife 1.15.1

Hi again...

It seems the last version of the RLV had a few (small but annoying) bugs, so here is a v1.15.1 update that fixes them :

* An empty shared folder would, in certain cases, mess the information provided by @getinvworn (saying nothing to wear while there are items there).
* A piece of clothing alone in a folder, and no-mod would be treated as a no-mod object.
* A no-mod object which name contains the name of an attachment point would use it even if it was contained inside a folder which name contains another attachment point.

Get it here :

Hash of the viewer for windows : 95e8f42301a64a4aef690fd7165b5f5a

Have fun !

Sunday, November 30, 2008

RestrainedLife 1.15

Hi !

Here it is, the latest update to the RestrainedLife viewer, and this one is big ! Here is the list of changes, additions and bugfixes :

* Added @accepttp to force the sub to accept a teleport offer sent by an avatar by clicking on "Offer Teleport" on their profile. It will be like being summoned by a Linden, no confirmation box, no message, no Cancel button. Note : this does not deprecate @tpto which teleports to a location instead.

* Added @getinvworn that gives the list of sub-folders under a shared folder like @getinv, but with additional information about which folder contains worn items.

* Added @chatwhisper, @chatnormal and @chatshout to prevent the sub from whispering, chatting normally and shouting respectively. It does not prevent sending the message, it just falls back to another "volume", usually lower (except @chatwhisper that falls back to normal chat). Useful in crowded RP areas like prisons where some inmates like to shout.

* Added @attachall and @detachall to attach/detach shared folders recursively.

* Added @getstatusall to get the list of all the restrictions currently put on the sub, compared to @getstatus which would only give the list of the restrictions issued by the object that sends that command.

* Added @getinv_... to get a current Windlight setting. It was eagerly awaited.

* Reinstated Whisper, for some reason it was gone from the previous version.

* Now, when prevented from standing up, the sub is also unable to teleport.

* The viewer will now even if the settings.xml file is missing the RestrainedLife and RestrainedLifeDebug debug settings. The former is always forced to True anyway, and the latter
will be available to those who have installed the settings.xml file correctly, but most people don't use it (only content creators do).

* The order of HUD attachment points has been tweaked a little so that a HUD that should attach to Top Left will stop attaching to Top and same for Bottom Right and Bottom.

* And a few bugfixes here and there...

Go grab it at :

MD5 hash (windows viewer) : ce888d925df030c8916e87d810710715

Have fun !

Monday, November 24, 2008

My plans for the immediate future

Hello there,

I have not updated this blog in a while, mostly because I had a lot on my plate and not much to say... So just to keep you informed (and to point out that I'm not dead !), here are the things I'm planning to do in the near future :


I have just released a new toy, a ringgag, which behaves mostly like the ballgag I have made... oh... more than a year and a half ago ! That's not a plan, it is done and released by now, but it was also for me a way to introduce a few improvements such as faster dialogs and a better control over the IM restriction. Improvements that will find their way into my other products eventually, of course. Which brings me to the next point...


The menus on the ringgag are faster, responding immediately now. This is due to some work I've done on *every single script* of mine that uses a menu, i.e. the plugins, the plugins browser and the core script. In every single product ! The work itself was not hard, trivial even, but the number of scripts was huge. And now, I am bound to update everything.

However, this only impacts the root items of every set (right wrist cuff etc), so I will make it clear in the update notecard that old secondary items (all the ropes you had to resize to your shape for example) will still be valid and compatible without any loss. I'm hearing a few sighs of relief from here. Hehe.

Restrained Elegance

You may know that name already, this is the name of a nice bondage website that has been around for a while now. Very classy, fun and creative, it also shows one of the best sets of shackles ever, the "Heaven's Hell" as it is called by its manufacturer. It looks so good that I have reproduced it here in SL.

It is working nicely, had a lot of very positive feedback from the people who tested it, and will be released in the next few days. You might think "Shackles again ? No way !" but these are quite different from the Serious Shackles. Lighter, classier, not meant for heavy duty but rather for romantic D/s. They will also be cheaper because they don't have elbows, thighs or belts. And they look gorgeous ! All round and polished, they are my favorite product at the moment.

As my friend Ollalla suggested while I was struggling to find a nice name for them, why not calling them "Restrained Elegance" like the website ? I asked the webmaster, and he accepted !

So here they are, the new Restrained Elegance shackles. They function very much like the Serious ones, including the Spy plugin and its remote, but the arms poses are entirely new, and the legs poses have been reworked (a sexy "Lie", a lower "Kneel", a lower "Hogtie" and a new "Hogside" replacing the "Spread"). And new chains ! And and and... but I'm just making you drool, let's show you a pic or two !

Other products

Despite what some people may think, I have not stopped making stuff at all, but it is true that I focused mostly on the RestrainedLife viewer and a couple other projects (the Banishment Program and the Maze). And I did not want to release the same stuff over and over again. Granted I always use the same system (who doesn't), but you may have noticed that no two products of mine are identical. They all have some value added compared to the others. This is not going to change, so I'm planning to release more stuff in the future, provided I can make it unique enough. I have a few ideas already. In fact my fingers are aching to make them now. lol.

HUD detaching

Lately more and more people have been experiencing this annoying "... has removed her HUD cache !" message repeatedly. This is happening in laggy places, mostly in Openspaces, and is due to the timeout I've set to be too short. Well it is more than long enough to handle normally laggy areas but when it gets ugly, the HUD gets dropped. You may wonder "why a timeout at all, since the HUD alerts the cuff when it's detached ?", well because there are cases when the cuff is simply unable to receive the alert. Not because it is badly scripted, but because of the way SL is made. For instance after a bad TP, some HUDs or other attachments just crash, without a word. But they stay there, zombified. A timeout is the only way to get rid of it automatically.

So a longer timeout is in order, I am testing it in very very laggy places, and despite having made it 3 times longer, I'm still getting the error (only 3 times less often). Once fixed, it will be part of the big update.


I am amazed at how savvy some users are about my stuff, and/or about the RL viewer. Seriously. I may not talk much on my own group (mostly because I'm busy, but also because SL does not even allow me to, and no it has nothing to do with a gag), but I'm listening a lot, and what I hear there is very gratifying ! Let me just put a few things straight first : My Manuals Suck. Or rather, they are too light and do not explain everything, far from it. This is mostly on purpose actually, what I want is to tell the minimum to point the user in the right direction... and then they're on their own to experiment ! People don't like to read and there are so many things to say anyway.

So the most adventurous ones get to discover more and motivate the others to play with some less known features too. It is a nice way to build a community. But it also means more very basic questions on the group chat and people get tired to explain the same things again and again. So I want to find the time to revamp my manuals and make them more readable, because frankly, My Manuals Suck. lol. And more tutorials here, too, because it's easier to read here than on a notecard, especially when there are pictures to download.


You may have noticed that updates to the RLV are getting sparse now, as it's stabilizing. I do not plan to add new features forever, and have almost added all the features I wanted to add. But I'm working on v1.15 with a few new commands and a couple of bugfixes :

* "@accepttp:UUID=add" to let the Dom/me force-tp the sub to them through the friends list, without the ability to decline or even to cancel. In other words, the Dom/me becomes like a Linden to the sub in this regard. As far as my scripts are concerned, I think I will just update the Allow plugin to take this into account. It will not supercede or deprecate @tpto, because the former teleports to an avatar, whereas the latter teleports to an arbitrary location. Both are complimentary.

* "@getenv_...=nnnn" to get the current Windlight environment settings. What replaces "..." is the same as what is after "@setenv_".

* "@getstatusall=nnnn" to get the full list of restrictions currently applied, regardless of the objects applying them. I am torn on this one... at the time of this writing I am inclined to code it, but tomorrow I might find a good reason against it again.

* "@getinvworn=nnnn" to get the list of folders under a folder in the inventory, with an additional information per folder saying whether at least one item under it is worn or not. This is just for convenience, if it's too hard to do I won't do it.

* Fix for the misordered HUDs attachment points that make the viewer believe that "wear on Top" means "wear on Top Left" and mess your favorite hud.

The names of the commands listed hereabove are very likely to be final, there is very little risk I'm would change them now.

Keep in mind that the more scripts that use the RLV the more thought I must give to adding new features. Because often that means additional update work for many scripters.


And last but not least, I wanna have fun. It may sound strange, but it is hard for someone with a well-known name like mine to have careless fun in a public place with casual players. It always ends up with "I love your work !". Don't get me wrong, I really appreciate every single compliment and praise, even if I suck at taking them (I just blush and lose my words... pathetic !). But in the middle of a game... I'm not a creator anymore. Either a powerful Domme or a bratty sub, but definitely not working on anything. One day I was tied up at Ropers and unable to speak, while someone was insisting in knowing what product comes next. I finally left, totally turned off, and did not come back that day. So don't talk about work, please !

That or I get interrupted by an IM from someone having a problem or a question, and talking business is not the best way to get me into the mood. When I'm able to answer at all ! Because the biggest victim of my own work in SL, is me. lol. It is a shame that people don't read profiles because I would make it clear that when I'm playing, I'm definitely not working. And my only alt is meant for work, precisely, so I play as me.

So these are my plans. I have certainly forgotten half of them, but you get the idea already.

Have fun !

Edit : I have released the Restrained Elegance shackles earlier than planned. They were ready, I was bored, had a little time... so here they are !

Friday, November 7, 2008

Openspace sims again

The JIRA entry got almost 4000 votes ! I have never seen so many votes on that bug tracking system, that's a sign the protestation was massive, and that the Lindens did listen.

Now, I won't pretend I am satisfied with their "change of plans" (although, like Inara, I think it was actually planned to be this way from the beginning, it's a common negotiation technique after all). 25% of the price of a full sim a month for 5% of its prims and much less processor power, even knowing an openspace (well, "void" is more adequate) is as large as a full sim... that's not what I would call a fair trade. Especially since people paid for 25% of the prims in the first place and were never told this value would change over time. I still say that the money they charge for leasing you a part of a quad-core server with a Debian distro is ridiculously high.

But this is a small progress, and I want to thank you all for voting and maybe helping bend this ridiculous business scheme to make it more acceptable.

Tuesday, October 28, 2008

Vote to stop Openspace sims from getting more expensive !

Hello there,

If you don't want to see your Openspace getting so much more expensive that it is ridiculous, please vote there (log in with your SL account, but as it's a LL website you're safe) :

I don't normally do that, and have always been supportive of Linden Lab, but this time they are going to far. Here is a little background :

- LL releases "void sims", aka "Openspace sims", for 1/4 the price of a full sim and 1/8 of their prims. They are insanely slow, but as they're not meant to be lived in, rather sailed in instead, not too much of a problem.
- LL decides Openspaces are not enough of a success and boosts the number of prims to 1/4 of a full sim, makes sense but they are still slow. They work on the speed problem, and make some progress, nothing fancy though since Openspaces are still so much slower than 1/4 of the speed of normal islands.
- After eight months of having Openspaces sell like cakes, LL bumps their tier of by 67% without much of a prior notice (2 months), going from US$75 to US$125 a month, VAT not included. This will have the effect of bleeding most Openspace owners out, and we're seeing a massive protestation. The blog entry is here :
- As a full sim is becoming much cheaper than 4 times an Openspace, it won't be long before LL decides to boost a full sim tier by 67% too, putting it up to US$495 a month !

Do the math. And look at how much you pay for your parcel/sim in L$ or US$ a month. And decide for yourself if you wish to pay more, or if it's expensive enough as it is. Let me remind you that renting a CPU (not even a whole server) for us$295 (VAT not included) a month is already ludicrous. I've never seen a full computer lease that high (even including maintenance).


Saturday, October 25, 2008

RestrainedLife 1.14.2


Well the story continues, the SL viewer having changed a lot between 1.20 and 1.21, I have a hard time trying to iron out all the "little" changes that LL have done in the past few months. Some of them are quite deep.

* crash on editing something far while under @fartouch
* very odd touch and grab behaviour while under @fartouch

Viewer and sources :

Hash :

Have fun,

Thursday, October 23, 2008

RestrainedLife 1.14.1


Here is the latest version of the viewer, compatible with SL 1.21.6 at last. I have taken much time due to a lot of circumstances, RL, SL and technical, but here it is finally. I have added (what I think is) a big feature, the ability to control the WindLight settings of the RLV through commands. That way, a land owner can make you see their land the exact way they want.

Edit : this is the version 1.14.1, with a few fixes introduced by some new SL code :

* crash when forced to sit on an unrezzed object (I said the fix came from Boy Lane in the release notes, but it actually came from Henri Beauchamp, sorry)
* unable to detach even unlocked objects when unable to edit

The installation procedure is also a bit more complex now : you have to copy the settings.xml file from the zip file to the app_settings folder contained into your SL installation folder, usually C:\Program Files\SecondLife.

Viewer and sources :

Hash :

Edit : The API is now up-to-date, you can start scripting environment control by reading it here :

Have fun !

Tuesday, October 21, 2008

RestrainedLife something


For those who are wondering, I have not released a 1.21.6 port of the RLV yet because :

- There is a Cool Viewer including its code already, so people who updated to SL 1.12.6 can download it
- I am having RL schedule issues, so very little time to work on the viewer
- I have no sound on the new viewer, and cannot find why
- I am working at adding a new feature, namely "@setenv_..." which sets the time of day and Windlight settings through RLV commands, but WL settings are not working yet

So... I will release a RLV 1.14 soon, not really sure when but soon.

Have fun in the meantime !

Sunday, October 12, 2008

Objects sharing tutorial, part 2

Hello again,

This is not really a tutorial but rather an example of how to organize the shared outfits, now that you can put them in a hierarchy of folders. I will show you my own shared inventory, and how I use the Outfit plugin to browse into it and attach/detach what I want through this script.

Firstly, make sure you have read the first part of the Shared Outfit Tutorial, for I will not repeat here what has been said there.

Secondly, you need at least the RL viewer v1.13, to handle sub-folders under #RLV.

1. My Inventory

So here is my inventory, it's pretty much like everyone else's inventory :

The most interesting part is the #RLV folder :

As you can see it's very small, only 5 folders, all of them beginning with a ">".

Here is Yours Truly :

What I am wearing at the moment is the Leather mini outfit I made (it is a combination of several outfits, some QV, some Plague, some Sheer, and a cross necklace from Fairlight) :

And my boots are from BAX :

The special thing about those boots (besides them being extremely well done) is that they are no-mod, so I had to put the objects into one folder each, the first tutorial explains why. Since 1.13.1 the folders containing no-mod items are renamed differently, as shown on the picture above.

2. My naming convention

So I am trying to follow a convention of mine to name my stuff, so it's easier to browse through the Outfit plugin. I insist it is only a convention of mine, not anything I want to enforce on other people :

* Every folder that does not contain an outfit (i.e. it contains only other folders) begins with a ">" so that its name comes first in the list, and the user knows there is more to it when clicking on the button.

* Every folder that contains an outfit (even if it contains other sub-folders, for instance if it has no-mod items) does not have any special character in it, and is sorted normally, going after the ones with ">" in the list.

* Every folder that contains an outfit, and is contained into a folder that contains an outfit too (ok it's getting complicated) is like an "option", an "addon" to the aforementioned outfit, so it's getting a "+" sign at the beginning. For instance, "+ Corset" to my "Leather mini" outfit, since I may or may not wear the corset part.

3. Browsing with the Outfit plugin

The new Outfit plugin is able to browse through all this mes... inventory hierarchy. I click on my KDC med posture collar that I have entirely rescripted with my scripts, it is worn but invisible since unlocked. On a side note it's my very personal cherished collar, I cannot live without it :)

I select the Outfit plugin :

What does it show ? A lot of informations actually :
* The last attached/detached outfit, here it's "> Shoes/> Boots/Black ankle patent"
* The latst folder I visited, same thing
* I am using the RLV, of course, and the script knows it.

Oh by the way, I took all my time to take these snapshots, but the menu is still active. That's because the Outfit plugin has a 10 minutes timeout instead of 1 minute only, it's handy when you keep browsing, attaching, detaching, looking at all angles, and don't want to always click on the collar to bring the menu back.

I click on the "Shared root..." button :

I'm now at the root folder level (#RLV itself), and it shows the 5 folders that are in my inventory, the ones with ">". Notice "Select" has changed and does not show anything anymore, since I have moved my selection to the root folder. But the "Last attached outfit" has not changed, obviously.

This level (and the one further down) has a particularity, it lets you go to the next page and also the previous one ("<<" and ">>"), when we go deeper the "<<" button is replaced with "UPx2" to go up by two levels at once. That's the joy of having only 12 buttons per dialog box, but it's not too annoying since the deeper we go the less likely we find many folders at the same level. I click on the "> Glamour" button to browse through the Glamour outfits I have :

It shows 4 sub folders, that's where we're getting beyond what RLV 1.11 and 1.12 were able to do, since we're going deeper now.

I click on the "> Classy" button :

Notice how "Select" has changed again, and how "Shared folder" shows the current folder in uppercase.

I click on the Leather mini button :

Here we are, the folder I was talking about earlier, my Leather Mini outfit. It is an outfit, yet there are more folders to browse inside it, but as stated in the "convention", they are named with a "+", showing them as "addons" to the outfit. If I clicked DETACH now I would find myself naked, save for the boots.

But I want to wear the corset now, so I click on "+ Corset".

Ok now the folder seems to be empty. It appears so, but it's only empty of folders, it does have items inside it. The viewer just does not say it (the scripts do not need that information).

I click on ATTACH to attach the corset :

Here is me with my corset, both items contained in the "+ Corset" folder (a jacket and an object) are now worn :

And notice how the "Last" line has changed to show what I have just attached :

If I clicked on DETACH it would detach right away, in case I made a mistake. But I like that corset, I'll keep it.

Now, I click on "Back..." to go back to the main menu of the plugin (not the main menu of the collar), and on "Shared root..." again because I want to browse shoes. Then I go to"> Shoes", then "> Boots", then "> Black Florence" to replace my Black Leather Patent with my Black Florence boots. Notice the "Select" and "Shared folder" lines. And then I click on ATTACH :

Et voila ! I'm wearing my Black Florence boots, which totally replace the Leather Patent (they both take 4 attachment points, that's why) :

Oh well... I like them but... I just can't make up my mind. I want to wear my Black Leather Patent again, they suit my Leather Mini outfit better because of their frills. Let's go "up" one folder :

I click the Black ankle patent button (we don't see "patent" here) :

And I... oh wait ! The Black Leather Patent boots are no-mod, so they are contained in sub-folders, which should be there. Why aren't they shown on the menu ?

Because since 1.13.1 every folder which name begins with a dot (".") is hidden, and this is the case here, look at my inventory again.

And I click on ATTACH :

Here they are :

Whew ! I'm back at square one. All this for nothing you say ? Well yes... but you got to take a peek at my inventory at least !

Have fun !


RestrainedLife 1.13.1

Wow, that was fast. I didn't plan to spend my Sunday working on the viewer, but so I did.

This update is for convenience, since adding a folder hierarchy kinda crippled some content around, so here goes.

- New command : @findfolder=part1&&part2&&...&&partN=channel, to find a folder containing several substrings. "&&" means "and".
- Slashes are now allowed in the folder names again, since some scripts were simulating a hierarchy that way.
- You can "hide" a folder by putting a dot (".") in front of its name, so the scripts won't see it anymore.
- No-mod items will rename their parent folders differently, now it's a dot followed by the name of the attach point between brackets : ". (attachpointname)", since we don't need the name of the item to be repeated. The dot, as stated above, will hide the folder to the scripts, which don't need it anyway.

Viewer and sources :
Hash : a69f11d0577652051e9ede7bcc0e8393

Have fun !

Saturday, October 11, 2008

RestrainedLife 1.13


This version of the RL viewer can handle sub-folders in the shared root #RLV. It's not much of a change but helps organizing the shared inventory better (before it was only one level, leading to a clutter of short names parsed by scripts and... a nightmare). I will post a sequel to the Shared Outfits Tutorial shortly to show how I organize my own shared folders with this new feature.

Viewer for Windows :
Hash : c60e026ca377418d931e174a64a693fc

Have fun !

PS : Now you might wonder why this new viewer is a 1.13 with such a short list of changes... well aside from getting a "new feature", sort of, I realize that "13" is not a welcome number to some people, so I think I'll quickly switch to 1.14 as soon as I get the chance. Hehe.

Tuesday, October 7, 2008

RestrainedLife 1.12.7


Following the latest security update to the SL viewer, here comes the latest RL viewer that includes the fix.

Please note : You have to use it with the latest SL viewer, v1.20.17. It won't work with the older ones !

Viewer for Windows + sources :
Hash : aa487f91353b6348d34c760389010ee7


Saturday, September 27, 2008


Hello again,

The crash-when-using-internal-viewer bug fixed in 1.12.1 reappeared ! So here is that fixes it again.

MD5 hash for the zip for Windows :

Note to the people who compile from my sources : The patch did not change because the fix does not lie in the "newview" project, and is due to me compiling with VS2005 anyway.


RestrainedLife 1.12.6


This is a security update following the one issued by Linden Lab on 09/26/2008. Check the following link for details :

The security update is not mandatory, but strongly recommended.

In short, the older viewer (and the older version of the server-side code) were allowing an exploit that could eventually lead to give someone else the ability to make YOUR viewer send messages, such as L$ transfers, fake IMs etc. But don't panic, the exploit is not known to have been ever used, as if it had the victims would have been aware of it (since the messages are sent through your viewer). It required some really tight circumstances to allow the attack, but the risk was there.

Now that LL has updated their server-side code, they have also released their client-side code (oh sorry, I meant "the viewer source code"), so here is the latest RestrainedLife viewer including this security fix.

First download the regular SL viewer (v1.20.16) here :

... then download the latest version of the RL viewer (v1.12.6) there :

Keep in mind that the older RL viewer (v1.12.15) is not compatible with the current SL release (v1.20.16). If you attempt to use both at the same time, your viewer will hang.


Monday, September 22, 2008

RestrainedLife 1.12.5

It seems there was a nasty crash (well a hangup situation) when under @shownames so here is an updated version :

MD5 hash for the Windows zip :

Very sorry about that, I have tested it thoroughly but never had that crash before releasing.


Sunday, September 21, 2008

RestrainedLife 1.12.4

Hi !

After more than a month here is the next version of the RL viewer. Only one new feature that is not really BDSM-oriented (but very handy nonetheless), but a lot of changes, restrictions getting even more restrictive, and some things added for convenience. Make sure to read the Readme First text file first to get an idea of all that has changed.

There are no new scripts to put or anything to update, it's all in the viewer this time.

As usual you can get both the executable and the sources here :

MD5 hash of the zip for Windows :

Have fun !

Monday, September 8, 2008

A new form of kidnapping ?

~~~ Breaking News ~~~

It seems that someone, or a full organization, takes a wicked pleasure in abducting poor girls and throwing them into dark, remote places. Some of them were never to be seen again, but Haleen S., who got lucky enough to escape from the clutches of her "captors" after hours of desperation, accepted to tell us her story :

"I was hidden in the bushes near the Kelley Technologies dropping area, with the hope to see 'Banes' and perhaps interview one of them. It was dusk, the hour when they like to go back here to execute their daily maintenance, away from prying eyes. I spotted one, drew my camera and then... omg I don't remember clearly... It all went dark"


"I woke up on a cold, stone floor, in what seemed at first to be the basement of a castle. My eyes were not used to the darkness, and I frantically looked for my purse and my camera, nothing ! They had taken them from me !"


"I stood, and saw a corridor, a part of what became more and more to look like an ancient tomb and less and less like a civilized place. It was dark and gloomy, I was scared to hell."


"I walked down corridor after room after corridor, without seeing or hearing anyone, only my rapid heartbeats and a few... omg were they ghosts ? I didn't see any but they were there, I'm sure of it !"


"After hours of exploration, I saw some bright light and... I don't know what happened after that. All I know is that I woke up in another place, and this time all my belongings were returned back to me. I never had the chance to see anybody, or to know where I was. I wonder if it was a dream..."

Haleen went to the hospital after that, where she was offered a short stay at the Paine Institute according to the local Medical Regulation Procedures.

It all happened somewhere near the Kelley Technologies lab

Tuesday, August 19, 2008

RestrainedLife 1.12.3

Hi !

Just a quick update to iron out a few "bugs" (more like minor annoyances, nothing bad), and also to remove the twirly particles around owned objects that appear when they send an owner message, typically when issuing a command to the viewer. That way objects can periodically check on outfits, status, version etc without bothering the user anymore. Sometimes a very small change (one line of code in this case) can bring a lot :)

MD5 hash (windows) : 4b80e4ee1678f5f0e95b1dbd2255e487

Have fun !

Friday, August 15, 2008

Objects sharing tutorial

Hello again,

So as promised in the precedent post, I am going to give a few pointers on how to share modify and no-modify objects (be sure to read it to retrieve the latest version of the viewer to do it yourself though). Apologies in advance, this post is going to be very long.

This tutorial is divided in two parts, you can find the second part here.

First of all, let me remind you that "sharing" an object does not mean letting others take it from your inventory. It merely means letting others force you to attach/detach it. It is "shared" in the way it is "exposed" to the world.

As you may already know, you can't use the Wear option when something, anything, is locked on your avatar. That has been the source of a lot of pain to everyone, me included, but it is not something that is likely to change, because it is due to how SL handles attachments. To explain it in plain English, when you press Wear your viewer tells the asset server "Hey I want to wear this object at its default attachment point", and the latter replies "Ok, just wear it on Spine and report". There is no way the viewer can refuse such an order, if it did it would eventually crash (I tried). And as the target attachment point, in this example the Spine, can be occupied by a locked object, it could very well knock it off and defeat the purpose of locking anything.

So when something is locked on your avatar, Wear disappears (as well as Add To Outfit), and you must use Attach To instead, which is more complicated and prone to errors.

Edit : This is not true anymore since RLV 1.21 (released 10/03/09), which allows "Wear", "Add To Outfit" and "Take Off Items" by default, even when an object is locked, until the "@defaultwear" command, if ever. This is gives more user-friendliness, but if the top really does not want any locked object to be detached accidentally, then they just have to use a restraint that sends that restriction to fall back to the original behaviour (i.e. no "Wear" unless the name of the target attach point is mentioned, as written herebelow).

Since 1.11, the RL viewer can provide a "fake" Wear option if the object name contains the name of an attachment point (in the above example, "spine"). This is the option the viewer uses to force an item to attach. Problem is, no-modify objects cannot be renamed. Since 1.12.2 the RL viewer provides a workaround which is quite easy to use.

So let's get down to business.

A. Sharing a basic set of modify cuffs

I'm going to use a basic set of free Lockguard cuffs and will share them. I will show you how to rename them and how to use a script (namely Outfit in the collar I sell) to access the shared part of my inventory and force myself to wear them.

As you can see I have created a folder that I named #RLV in my inventory, at the same level as all the other default folders (Animations, Bodyparts...). This is the first step, no #RLV no shared anything.

Under #RLV I have moved my Basic Lockguard V2 Cuffs folder, containing the 4 restraints to be shared. In fact the whole folder is shared. You might wonder why I said they are not properly named. In fact, despite their names being quite explicit (you know where to attach what at first glance), the viewer needs the actual attachment points to be included in the names. So here we don't want "L. Ankle" but "L lower leg" for instance. The latter is what you see in the Attach To sub-menu.

I am also wearing my Steel Collar. It is not locked so I can still use Wear and Add to Outfit to attach them on me.

As it is tedious to rename these items myself, the viewer is going to do this for me. It can, because they are modify (in fact they are even full-perms).

There. I merely right-clicked on the Basic Lockguard V2 Cuffs folder and selected Add To Outfit. As you can see they are now "properly named", the names of the attachment points are now correctly displayed. Look at the names, and the parts after "worn on...", they are the same.

Now, I unwear them and am going to use my collar to force me to wear them again. I click on it and go to Plugins > Outfit.

Yes the name is a bit long for the button. But you get the point.

Et voila !

B. Sharing a more complex outfit, with no-modify items

That was easy. Now I would like to share a nice piece of fetish outfit, Kwakkelde Kwak's leather corset. This one is a beast that contains several layers of clothing and several no-mod items, so I have to do some work before deciding what to share and how. Let's see.

This is the folder as I have it (Kwak gave me a prototype before releasing it so I'm not sure it is exactly what you'd get if you bought it, but it's pretty close).

As you can see, all the objects are no-modify. While it is not a problem with layers of clothing (the viewer does not need to read their names to decide where to wear them), it is going to be with the objects because I cannot rename them.

First things first, I do not need to wear all these items at the same time. In fact, I won't be allowed to since one pants layer will kick another, same with the jackets. So I create a Backup folder in which I put all the items I do not want to share. The name of this folder is unimportant. What is important is that the viewer will not try to attach anything in it.

Why ? Because there is no no-modify object in this Backup folder, and the folder itself does not contain the name of any attachment point. It would have been a problem if I had called it "My top backup" (because of the "top" word, which is the name of a HUD attachment point). So here goes.

I have decided to share the Open variant.

Now here comes the interesting part. As I can't rename the objects since they are no-modify, I am going to tell the viewer to look at their parent folders. I can call them the way I want, but I am lazy so I'll let the viewer rename them for me. There are 6 objects, so I create 6 new folders.

I will now put one object into each folder. Only one per folder, not more ! That's very important.

Ok so far ? Now why did I do all this ? I am going to wear all the objects (no, not with an Add To Outfit command since I don't want to wear what is in Backup, so I will wear them one by one), and the New Folder folders will be renamed automatically !

See ? I didn't do this by hand, the viewer did. Oops ! It seems two of the folders did not get renamed. If you look at the names of the objects themselves, you'll notice they are "Top" and "Bottom". These are the names of two of the HUD attachment points, so the viewer decided it would be best not to rename their parent folders after all. This is not a bug, but perhaps I will try to make it a bit smarter later. For now, I have to rename them by hand. Suffices to write down where they are attached ("Left Pec" and "Stomach" respectively) and to paste this into the names of the two rebellious New Folder folders. Don't worry this is not a problem that occurs often, but I wanted to mention it.

My shared outfit is now ready, and I will make my collar force me to wear it. I unwear it first.

I click on my collar, go to Plugins > Outfit.

And... tadaa ! Everything is in place, and I'm not wearing more than I wanted.

Wait, how did the viewer know where to attach everything ? Well it's easy, it just looked at the folders containing the no-mod objects instead of their own names !

If you want to know how to share no-modify objects, head to Part Two...

Have fun !


RestrainedLife 1.12.2

Hi there,

Here is a (not-so-small) update to the RL viewer, including :

- Ability to share no-modify objects by putting them inside their own dedicated folder under the outfit folder (so you'd have #RLV/my outfit/my no-mod item (right hand)/my no-mod item)
- Separation of @shownames and @showloc
- Separation of @fly and @tploc
- And a few ironed out bugs.

The MD5 signature of the Windows zip file is

Later I will write a post dedicated to explain how to share items in detail, with pictures.

Have fun !

PS : I had a slight problem with the executable, so if you downloaded the viewer less than one hour after I posted the notice on my group, please download again. The first attempt was unable to automatically rename folders over no-mod items, even if it pretended to do so (it wouldn't stay after a relog).

Monday, August 11, 2008

RestrainedLife 1.12.1

Hi !

Ok I finally found a workaround for the nasty Search and Showcase crashes. I have also worked at improving the existing features, to make the viewer more secure (from a D/s point of view) and consistent :

- Hide names when location hidden (they don't show on screen, on the tooltips etc)
- Improve fartouch (editing, opening and touching were not working the same on linked sets)
- Improve hide location (making it tighter)

MD5 hash of the zip file for Windows :
(just so you're sure Orchid's website has not been compromised)

Have fun !

Saturday, July 26, 2008

RestrainedLife 1.12

Hi !

I am pleased to announce the release of the latest RestrainedLife viewer v1.12, which is now only compatible with SL 1.20.*

Now on eRestraint :

In short :

* Based on SL 1.20, do NOT try to use it with SL 1.19
* Force teleport new feature (an update to the Spy plugin in the Serious Shackles collar is underway)
* No Show Location new feature (goes in an update to the Control plugin)
* Several bugfixes and enhancements

Have fun !


PS : This version does not allow to disable the RL features through the "RestrainedLife" debug setting anymore. This is due to how SL handles debug settings now, and reinstating it would mean more hassle to install the viewer. You can always log on with the regular SL viewer anyway, in case something goes wrong with your restraints :)

PS2 : The No Show Location feature still has a few holes (ways to know the location) that I'm working on blocking. I will issue an update when I'm pretty sure I have blocked them all.

Sunday, July 13, 2008

Marine interviewed !

I have been interviewed by Stanton Nightfire, webmaster of Virtual BDSM ! What was meant to be a short interview turned into a 5 hours chat and demonstration, and the result is there :

A very nice chat with a very nice man, for a very nice site. Recommended !

What, do I sound proud ? You bet I am !



Tuesday, June 24, 2008

RestrainedLife 1.11.5

Just a quick update to fix a couple of bugs introduced in 1.11

- The user could click on certain objects that use the touch_end() event rather than the touch_start() event, despite the @fartouch restriction.
- The user could cheat around the @edit restriction by a clever use of the UI (which I won't disclose, of course).

Executable and sources :

Have fun !


Sunday, June 22, 2008

RestrainedLife 1.11.4

Here is RL v1.11.4, still working over SL (sorry a lot of people are asking for a version for RC 1.20 but release candidates are just changing too often, and it takes a while to adapt a patch to a new version, sometimes half a day).

Not really new features, let's say just ironing the already existing ones :

* added : inability to receive group chat when unable to recieve IMs (thanks Boy Lane for the trick).
* changed : cannot change the group tag if you are unable to send IMs anymore.
* changed : cannot Take and Return objects if you are unable to Rez things.
* changed : could not Delete objects when unable to Edit, now it is linked to Rez instead, since Rez is dedicated to build/remove objects while Edit is dedicated to modify existing content.
* fixed : bodyparts (shape, skin, eyes and hair) could not be shared. Keep in mind that bodyparts cannot be removed, only replaced by other bodyparts. [Note : it did not figure in the release notes, my bad. But it does work.]

As always, thanks to Orchid, you can find the viewer for windows, and its sources, on the eRestraint website :

Have fun !


Wednesday, June 4, 2008

Freezing at login : SOLVED

Or so I hope. Thank you all of you who helped me with logs, observations, objects, and most of all patience. I want to particularly thank Boy Lane and Hollie Wood for their precious help without which I would not have found the culprit.

Here is the new version :

Executable for windows :
Sources :

(I have sent them to Orchid but if you're in a hurry and can't wait for her to upload the new viewer you have a link at least).

If you're interested in the technical details read on :

The bug was "simply" due to the fact that the viewer renames shared objects as soon as they are worn, only if their name does not contain any information about the target attachment point. So far so good, it works like a charm. But when logging on the viewer needs to download all the items contained into the shared folder ("#RLV" for the moment), otherwise you would have to open every sub-folder by hand, one by one, after each login (if you didn't do so the scripts would not even be able to force you to attach them, since for your viewer they don't exist until download from the server, and it's done by opening the parent folder manually).

However, some items are "not complete" when they are downloaded, I frankly don't know what that means (likely that they are not fully downloaded but the name and UUID are known by the viewer, something like that) but attaching and renaming an incomplete object leads the viewer into an infinite loop. The actual name of the method is LLAppViewer::forceErrorInifiniteLoop(), for those who can look at the original code, yeah I can't believe it even exists either.

So there's your freeze on login. I have added a check or two and now it doesn't seem to crash or to freeze anymore.

Have fun !

Monday, June 2, 2008

Freezing at login

Several people are reporting a strange problem when logging on RL 1.11.*, they appear to freeze on login. I am very aware of this problem and am investigating, but so far no good, I'm not freezing even with dozens of folders full of items under #RLV, and in sims that do the deprecated call to fetchDescendents().

So please if you're having this problem, send me a notecard with your computer specs, the name of the sim you're logging on, the number of folders under #RLV and the number of items per folder (average). Even better, try to check your log file (under AppData\SecondLife\Logs) and look if you find the word "deprecated" once for every folder under your #RLV folder.

The reason I suspect for this bug is that the call to load the folders in advance (while logging in) is serialized and does not freeze the viewer but makes login waaaay too long. If it was not loading those folders you'd have to open them by hand. One by one. After every login. So this feature is kinda like a necessary evil.

Thursday, May 29, 2008

RestrainedLife 1.11.2

Hi !

Here it is, the long-awaited shared folders feature in the RL viewer... and more features like preventing from viewing the world map and the mini map, preventing from touching objects that are farther than 1.5 m away (I love that feature, but it takes a while to learn to step closer in order to be able to touch something), and even a fake Wear option. More in the readme file.

Viewer and sources for Windows :

It seems is being overhauled, so in case you can't find the viewer there, here is an alternate links :
Viewer for Windows :
Sources :

The scripts to actually use these features are now available at my shop, in the rotating cube.

Make sure to take these plugins :

*Control (for the map feature)
*Outfit (for the shared folders feature)
*Touch (new plugin, to put in restraints where the RealRestraint_Base script is, in other words right wrist cuff, right wrist rope, wrist strap, right wrist shackle).

Have fun !


Sunday, May 11, 2008

Closing comments

Some will see this as a cowardly attempt to shut off the negative feedback about the Banishment Program but this is not the actual reason. The real reason is that I am FED UP of being accused for such and such bug that is not my doing. SL has been (and still is) running sluggishly, everything is very slow and I have spent countless hours trying to make the Banesuit more robust. Now I have achieved a fair amount of robustness but still a few people are experiencing weird bugs such as :

- Custodian crashing without a reason. When it happens, the Bane is unable to move, is not restricted and does not get any violation. No wonder since the script that handles it all has died. Usually it happens after a SL crash (viewer and/or sim), and the script cannot handle it. It is NOT due to it being too big or something, although it does stack-heap like it was filling its memory up. I've seen random scripts doing this, including very small ones. A hard reset usually does the trick but it does break the experience for the Bane.

- HUD detaching itself after a teleport. SL likes to screw attachments up after a teleport, especially HUDs. I can't count the number of times my AO crashed, or my weapons, or my own RR HUD (be it cuffs or blindfolds). The symptom is that the Custodian complains that the HUD is not giving news, it retries, and decides there is no HUD and rezzes a new one. Actually the old one was still there, but dead. And no stack-heap message anywhere, it just dies without saying so. If it was a normal attachment instead of a HUD, other people would not even see it (it happens with unscripted hair sometimes). That's why the Custodian rezzes a new HUD after a while and everything is back to normal.

- HUD not giving news even when not teleporting. That one happens when the sim is very laggy but it seems it can happen just anywhere now. I suspect chatlag or even the sim being unable to transfer object private chat (the Custodian_Base talks to the Custodian_HUD periodically to check it is still there, since sometimes sending a "I'm detached" message when detaching the HUD is not enough). I'm still investigating.

- Banesuit self-destructing because it thinks the Bane is using the normal viewer. This one does not happen anymore since I have removed the code to destroy the suit when a regular viewer is detected, but this false positive still happens from time to time. Usually due to a slow connection, but it can also be due to chatlag. The procedure is simple : the suit sends a message to the viewer that must respond to it before a timeout of 1 minute. When logging on, the suit waits 30 seconds, then sends its check. And even with that long delay sometimes the viewer is unable to respond quickly enough. If needed I may lengthen the delay again but it's only avoiding the problem. The suit cannot be more reliable than SL.

That's the only bugs I have heard about so far, I'm sure there will be others, but I'm on the lookout. What I can't tolerate is to hear things like "this thing is not tested" (got that twice already) or "this is so bugged it's no fun" (well yeah SL is bugged, surprised ?) but constructive feedback is very rare.

That's why I want to prevent this blog from becoming a public garbage dump. From now on it is going to stay only informative.


Saturday, April 12, 2008

The Banishment Program is now open !

Hi !

A quick post to say that the long awaited Banishment Program and its Processing Lab are now officially open !

A few months after S-6734's adventure, and a lot of work in-between, now it's ready for mass-Bane-production. Ooops, did I say that out loud ? ^_^

Please be easy on our Engineers (inviters) for they are not many, not online at all times and there will be a lot of demand at first.

Here is the slurl to the public area, where you'll find the Bane application notecard (push the yellow button). The rest... you'll see for yourself.

Have fun ! (or not)

Dr. Marine

PS : in order to keep the flow of applications to a reasonable level I will make the announcement on the Banishment Project SL group a little later.

Wednesday, April 9, 2008


And here it is on eRestraint. With a small bugfix on top of it, and the latest patch. Enjoy !


Tuesday, April 8, 2008


Hi, so it's done, thanks to Soft Linden who published the correct sources (the old ones were crashing with my compiler, whereas other people like Boy could compile and play on the exact same version without a bump).

This latest version seems quite stable, I crashed once but it was not related to the viewer itself. After an hour of intensive testing, I'm still online and in good

You may find the RL viewer here :

Viewer (windows) :
Sources :

One thing : the zip file does not have any other file anymore besides the readme and the executable, so I hope you've made a backup of your app_settings, characters, fonts and skins folders. If not, I suggest you reinstall SL Sorry about that, there was no other way to make it work earlier.

I will ask Orchid to upload on eRestraint shortly.

Have fun !


Thursday, April 3, 2008

RestrainedLife with 1.19.1

Let's just be clear right away, 1.19.1 does not work with RL 1.19.0. I will try to adapt RL to 1.19.1 as it's now standard (and sorry if you don't like Windlight, it seems to be standard now as well, thanks LL), but it may take time, please be patient and don't ask me questions about when I'll release it, it will be done when it's done. LL has the habit of releasing things and making the old viewers obsolete or at least unavailable without prior warning.

Update :

It is done, you can find the latest RestrainedLife viewer 1.10.5 for Windows here (this is the 3rd attempt, this time you'll get a lot more files that you need to copy as well) :

I have not asked Orchid from eRestraint to put it on her site yet, as it's still experimental and I have spotted two bugs already. I'll work on it later, since I want to get back to work on the Banishment Program. Have fun with this update already !


Saturday, March 22, 2008

Eudeamon : Test run is over

And it has gone almost perfectly. SL has been totally acting up this week so some bugs were reported, but they were all due to simulator problems and the Banesuits could cope their way around most of the time. It is even better to test in these harsh conditions if you ask me.

I want to say a big THANK YOU ! to all the testers who applied and silently suffered for science... and "suffered" is not a vain word. Besides testing the technical aspects of the gear, they also experienced what it means to be a Bane. It does have a strong emotional impact, and I'm talking about two days only.

So I'm getting back to work on tweaking a few things for the better (or worse), thanks to their feedback and suggestions, finishing the maintenance stations, building the lab and release area, and finally making the group rules. Whew !

But it's all for your own good, y'know ^_^

Dr. Marine

Wednesday, March 19, 2008

Eudeamon : Call for testers closed

Hi, well I must say it's been pretty quick... Ten vic-- err testers in less than a day ! Thank you all who applied, and to those who intended to but either didn't dare or weren't fast enough, don't worry the Banesuits will be out soon thanks to the suff-- dedication of some people of your kin.



Tuesday, March 18, 2008

Eudeamon : A call for testers

It's been so a month I have not written anything here. Sorry about staying silent. But that also means I was very busy working. This time, after all the time spent on the viewer and its Windlight version, I am back on my Banesuit.

But first, let me explain why I have delayed it so much. Back in early February, Linden Lab was talking about releasing their SL viewer 1.19, in which the new login pattern was supposed to be integrated. That meant (at least for me) a lot of work to keep things compatible, and I was foreseeing a week or two without a RL viewer available. I didn't want that interruption while I was going to start my Banishment Program group with a working Banesuit. So I preferred to postpone it and to concentrate on the viewer instead. But since things have evolved, the login thing has been delayed, and I could finally compile on WL. You know the rest.

On top of it, the first version of the Banesuit was quite bitchy and hard to maintain, so I kinda rewrote it. Preliminary field tests with 2 people went very well, with very good results.

Which is why I'm writing this post. I need to beta-test the Banesuit on more people before the end of the week. 10 people, to be exact. This will be done on a first-come-first-served basis, and will last a couple of days starting when the last tester has been chosen, after which we will review the bugs and feelings of everyone involved together. Here is how it will go :

* If you're interested in testing the Banesuit with me, please send me a notecard with your avatar name and your usual online times (at least the times you'll be online during the testing).
* Make sure you own either a full Powers of Creation black latex catsuit, or even better the black latex skin of the same brand, as either will be part of the Bane outfit.
* You also need to use the latest RestrainedLife viewer (1.10.4 as the time of this writing, but it will work down to 1.10.2). Not using this viewer makes the Banesuit rather useless.
* Once started, the test campaign will be pretty simple. I will lock all the Banesuits, take the role of the Operator, give the testers Bane names and activate all the protocols.
* Be aware that during the testing, you will not be able to communicate with anybody, including your friends. You will live what Banes live.

And you will get a free Bane helmet and collar of the latest version when I open the group ^_^

Still not scared ? Good. Keep in mind that only the first 10 will be chosen, and I'll try to close the call on this very blog as soon as we reach the limit. But if I get way too many notecards in the meantime, please don't be upset if I don't answer. I'm not rude, just very busy.

I am waiting for ya ^_^

Monday, February 18, 2008

We have a winner !

Hi, just a quick post to say that Stephan Halley has found the solution of my little enigma :

Q : Who said "'cause I'm more stubborn than a donkey and twice as slow" ?
A : Abraham Simpson to young Homer in The Simpsons.

Stephan also precised that it was in Season 9 Episode 3, but frankly my culture does not span that far...

I said the winner would get a full shibari set but as this product doesn't fit male avatars well... he won the Serious Shackles instead. Along with a gag, for having said the exact episode.

Congratulations Stephan !

Sunday, February 3, 2008

RL v1.10.1, RR v1.13 and the wikis

I've been so busy lately I couldn't even find time to post on my blog. Sorry for staying silent.

As you already know, I have released RL 1.10.1 with many new features (and a few bumps), mostly aimed at furniture and cage designers. The more I work on this project the more easily I can separate different kinds of bondage toys. Attachments you wear, furnitures you sit on, cages you walk in. I'm sure there are more, but that's already a lot because they all are handled totally differently.

I am way too tired to post the list of new features here, but just so you know I have stopped providing the API to the viewer in a text file, and put it on the Second Life wiki instead so it's easier to read and to make sure you're reading the latest version. You can find it there :

RestrainedLife API

Right after that I started working on the next version of all the restraints I sell, mostly to get rid of some bugs but also to make them up-to-date with the RL viewer natively. I have also put a lot of work in reducing the spam for people who don't use the viewer. It had grown to become a big concern to some, lately.

And last but not least, the relay specification. Now that was a tough one. You already know that only objects owned by you can issue commands to your RL viewer, and this is for security reasons. Earlier posts on my blog were talking about how to let task IMs to control the viewer remotely, but it proved to be a bad idea. So a relay was in order, to repeat chat commands sent by in-world objects to the viewer. And not just any relay, a relay that would work with any furniture, and furnitures that would work with any relay. All of them implementing the same specification.

As we don't want another Lockmeister/Lockguard dilemma (furniture makers know what this mean), the spec has to be easy enough, secure enough and robust enough. I could use the precious help of Chorazin and we slowly tested the spec against a cage and a sample relay. And today I could test both at the same time, and it worked at first try ! This was a relief. I know this specification will evolve with time but I think we have solid grounds to have furniture and cages send commands to the user's viewer... I had a shiver up my spine when I entered Chorazin's cage and it suddenly prevented me from teleporting out, editing and rezzing stuff... I was truly stuck.

You can find the specification here :

RL Relay specification

It's a bit technical, but designers should have no problem to understand it. If it's not clear enough, I'll update it anyway.

And what about the Banishment Program ? I am not rushing on it, and I need some rest. Lots of rest. But I'll keep you posted.


PS : Still nobody found the solution to my little enigma... Here is a tip : it comes from a series. A very popular one.

Saturday, January 19, 2008

RestrainedLife 1.10 IM commands, cont'd


After much talking, thinking, trial and error and technical difficulties, I have decided NOT to introduce IM commands at all. As a reminder, I wanted to make the viewer execute commands received through object IMs as well as llOwnerSays, provided the object that sends IMs to you passes some very tight tests such as "its group must the same as the parcel you are on", or "its owner must be in your friends list and must be able to map you".

Well the main reason of my step back is that many people are concerned with upcoming unsolicited @version=nnnn IMs from objects that they don't even know, eventually leading them to leave public BDSM areas because of the spam. Truth is, there is no way that I know of to check whether you're using my viewer or not, except by actually asking you with that very message and adapting to the answer or lack thereof. So the reason is social.

Technically I had to adapt too, because when receiving task IMs the viewer does not have a clue about the actual UUID of the object that sent the IM. Presumably because that object could be in another sim, and not even the root prim of its link set. I don't really know why we don't get that UUID but at least we have the owner of the object, along with its position and region, so that would have been possible.

So instead of relying on IMs coming directly from cages, the user will have to wear an attachment to "relay" chat messages from the cage (or furniture, let's not forget furniture designers) to the avatar through llOwnerSay like before. That attachment would decide to relay commands by checking the object against rules very much like the ones I have been describing in pseudocode in my previous post. So basically, what I wanted to do in the viewer will be done in a script instead, which is a sane approach if you ask me.

To be honest I am not totally decided yet. But we're making progress here, and I would like to thank you all for your precious comments and discussions in-world, special thanks going to Chorazin Allen for his very detailed concerns (and also his Relay mockup) and Ariel Moonsoo for commenting here. People who know me well know how difficult it is to convince me of something, 'cause I am more stubborn than a donkey and twice as slow* :)


(* The first one who can tell me where that line comes from and who said it, receives a full shibari set for free, or something else of the same value if they already have it ^_^)

Thursday, January 17, 2008

RestrainedLife and object IMs. Comments welcome !

I've made some progress on the viewer and am about to settle a big gripe of mine since the beginning : the ability to issue commands through object Instant Messages as well as llOwnerSay calls. But first please check the previous blog post for I have edited it to show the advancement of the "not done yet" features for the time being.

Back to task IMs. I am posting about it here and now because I want to extend the capabilities of the viewer to cages and furnitures, without the hassle of a object that the user must wear to relay commands from objects around that they don't own. For instance, you step into a cage, and if you're using the viewer it closes and prevents you from teleporting out. Without support for object IMs the user would have to wear a special attachment that would llOwnerSay everything the cage says, provided it's allowed to etc. Instead of this I want to execute IM commands very much like llOwnerSay commands. It would be so easier for content creators and users.

But it would be so easier for a griefer to take advantage of your vulnerability too ! That's why I have thought about a very tight rule to allow/deny IM commands. Let me show you its pseudocode.

IF I am accepting IM commands (off by default I think)
AND owner is not muted
AND object is not muted
AND object is in the same sim
AND object is close enough (to be determined... 20 m ?)
AND command is not "force remove outfit"
.. IF object is owned by me
.. OR object is owned by a friend who can map me
.. OR object is in the same group than the parcel I'm on
.... execute command


This way there is no need to maintain an internal list of names of the people/objects allowed to control you, as it is managed by the actual friends list. And it is persistent across sessions and installations as well. Less hassle for the user and for me, more clarity for the user. Keep in mind that it doesn't prevent your viewer from being screwed until you relog, so you will have to use the Mute List against malicious users. There is no way around that unless you keep "accept IM commands" turned off. Basically if you're in a "allow cages to keep me prisoner" mode, expect to be more vulnerable.

The critical part is the double OR : either owned by a friend who can see me on the map so that discriminates a lot and still sticks to the relationship between an owner and their subs, or set to the same group than the parcel you're on (not the one the object is on, or you'd have rogue parcels with objects griefing people around) to allow public cages to keep you in (I'm thinking of Deitide, Stonehaven, Bondage Ranch, Bondage Playground...).

I would like to hear your comments about this rule (constructive ones please), knowing that I've already brainstormed a little so I think it will pretty much look like this in the code. But I would like to hear about potential loopholes, exploits, methods I have overlooked and such. I'm asking for your advices because I consider this to be VERY IMPORTANT as it is likely to be used by many content creators soon.

Thank you for your help !


Saturday, January 12, 2008

My progress on RestrainedLife

I thought it would be nice to give you a foretaste of what's going to hit you when RestrainedLife 1.10 is out.

Yes, 1.10, not 1.05, because there will be so many new features that I think it's more like a major version, going way beyond what I had expected for it at first. Don't take this list for granted, everything in there works already except when said otherwise, but don't expect command lines as I could change them prior to release. There is no ETA either, but it's looking good already. And things that are "not done yet" can stay "not done" on release, depending on the time I have.

And when I mention a "force" feature, keep in mind it won't bypass whatever restriction applies to the object or the avatar. For instance, you can't force someone to remove all clothes if they are subject to the "prevent removing clothes" rule. In two words, "force" does not supersede "prevent".

I'll make it quick, here we go :

* Prevent wearing and removing clothes (yes, textures), per layer (shirt, undershirt, pants...) or as a whole.
* Give out the layers occupation the same way it is done with the version, on a given chat channel. The viewer answers 0 (empty) or 1 (worn), without disclosing the name of the clothes (*)
* Force removing clothes. Nasty. There will be no "force wearing clothes", though, as this requires to get them from the target's inventory (*). Perhaps a "force last worn clothes", in case of a mistake, just for convenience, but don't hold your breath.
* Prevent from opening inventory. That's extreme, but it's there. If one or more inventory windows are open when the restriction takes effect, they close automatically and won't reopen.
* Prevent from reading notecards. Yet another popular request, this feature will be loved or hated, depending on people. It does not prevent you from receiving them, but from reading them (and previewing them when received). It won't close all the notecards you had already opened though, for security reasons.
* Force sit on an object (by UUID). I had no idea about how to do it until Shinji Lungu suggested me a clever hack, which works wonders. Thank you Shinji !
* Force unsit.
* Prevent standing up : well of course. How many people requested that one, I don't know. It also prevents you from sitting elsewhere. When you sit on a cross and get chained, you'll stay where you are, period. (right now I'm sitting on a stupid plywood cube at home and I cannot lift my ass away from it. lol).
* Prevent using any non-zero chat channel except some
* Lock an attach point empty to prevent attaching anything to it, or all the attach points (cancelled, it's feasible another way)
* Force detaching whatever is worn on attach point X, or all the attach points (not done yet)
* Give out the list of attach points that are occupied by something, without giving out names, very much like the clothes
* Prevent customizing the teleport invite and reading customized invites sent by others, to go along with NoSendIM and NoReceiveIM.
* Garbage collector for orphaned restrictions (when the object that created them is unrezzed but hasn't removed its restrictions) (not done yet)
* Secure way to send commands to an avatar through object IMs. That's a very important feature that I would like to discuss with some people, I'll even post something about it here before releasing, as it's supposed to be secure but I want to be sure. (not done yet)
* And a couple of bugfixes and loopholes that I will, of course, keep unsaid. Thanks to the people who told me about them !

(*) You'll find out I'm very careful about disclosing private information, even the name of the clothes you wear, and I don't want to mess with the inventory in any way either. I could do it but I won't, because I don't want the viewer to go against the ToS. I hope you understand.


Edit : Updated the "not done yet" features to either "done" or "cancelled", and added new features at the end