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 !
Marine
Friday, February 26, 2010
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.
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,
Marine
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,
Marine
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.
Marine
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.
Marine
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,
Marine
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,
Marine
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 !
Marine
Edit : Added point 15, and the Lockable menu actually expires after 5 minutes, not 3
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 !
Marine
Edit : Added point 15, and the Lockable menu actually expires after 5 minutes, not 3
Monday, December 7, 2009
RR Tutorial : Spy plugin
Hey,
Today we are going to talk about one of the most versatile and complex plugins of the whole RR suite : the Spy plugin. You can find it in the collars I sell, namely the Steel Collar of the Serious Shackles set, and the Elegance Collar of the Restrained Elegance set. It is best to keep it inside its collar, because the collar is fitted with a special LED that lights up when the Spy is active. Be warned, this tutorial is going to be very long and quite technical, for there is a lot to explain and demonstrate.
Now, why such a name ? Isn't it a bit edgy to make a plugin that spies on the captive ? Sometimes, the top wants to keep the captive under tight control, with her permission. This control implies to be kept informed about whatever the captive does, even if she's far away, or even when the top is offline. It does not, however, force the captive to do anything, except teleporting if she's using the RLV.
As it is a complex piece of work, I am going to demonstrate with Mary again. She will wear the collar, I will be her keyholder, and I will control her Spy plugin remotely. This is going to be fun, you'll see !
So first things first, I lock an Elegance Collar around Mary's neck. I click on it, go to Plugins > Spy, and I get this :

Oh wait, it says "This device is currently unplugged" and gives some reference to a disclaimer in the collar manual... hey I don't have the collar manual here ! And last time I tried to read it it was so big and thick and technical that I eventually gave up (let's be honest, that's why you're here reading this tutorial). It tells me to ask Mary to activate her plugin, problem is I have the key so she can't access it herself. Oh well.
I leave the key on her collar, ask her to click on it and to go to Plugins > Spy, and then to select "Activate". And finally to leave the key on because her key belongs to me, not to her. This whole "activation" process is simply a safety and a disclaimer to make both the top and the captive aware that this plugin is able to monitor who is around the captive, and also to listen to conversations and to send them to the top. It is the responsibility of both of them to use these features in a responsible manner.
Oh there are two little lights showing on the sides of her collar now ! They were not there before.

Ok so now the plugin is fully operational and I can control it. But... how ? All I see on the menu is "Get UUID", "New pwd" and "Give remote". Not many possibilities for control here... Actually I'm not going to use this menu much, if at all. I just need it as a starting point in order to retrieve the device that will really give me control. The plugin itself is just a gateway, a firewall that will receive, filter and execute orders coming from a remote. That's why I will not bother with "Get UUID" (but I'll explain what this button is for later) or "New pwd" (which is practically useless unless the password is compromised). I click on "Give remote".
Immediately I am given a device and also some kind of cryptic message like :
/191625/b8e81399-1e83-1d0d-5dc7-c8e7532f1ba8/208720
I'm told to copy/paste this message once I am wearing the remote, and this is exactly what I'll do. The remote tells me that it has acknowledged the code, so everything should be in order.
Let me explain you what this message means, exactly. Let's call it the "connection string", because it is what links my remote to Mary's collar. Technically, the remote sends emails to the collar, which sends IMs to me. That's it. The collar never ever talks to the remote, it doesn't even "know" it exists. It only talks to me. What is very important to keep in mind is that IMs are buffered by SL while I'm offline, and they can even be redirected to my mailbox (you can do that in your Preferences window, in the Communication tab). It is a very handy tool SL provides and this plugin relies on it.
But the remote has to "know" about the collar, and that requires to know its UUID (its unique identifier, it is "b8e81399-1e83-1d0d-5dc7-c8e7532f1ba8" for the sake of this example) and its "password" (which is only a numeric code in order to not accept commands from just anyone but the keyholder, "464928" here). Problem is, the UUID changes everytime the collar rezzes, namely when it is worn (not an issue if it is locked and the RLV is used) and when the captive logs in. In other words, everytime Mary logs in I have to reconnect my remote if I want to send commands the collar. If it is not connected, the collar will just keep doing whatever it has been programmed to do. Send position reports every X meters, relay chat etc.
But we're not there yet, let's try a few things first. As I am wearing my remote and it is supposedly connected, first thing I will do is to check it actually is. I click on my remote and... oh look a wall of buttons !

The "Report" button is what I need. I press it and here is what the collar tells me after a couple seconds :
Internal report for Mary X :
Position : OFF (30 m)
Sensor : OFF (30 m)
Status : OFF
Listen : OFF
Online only : NO
Time : 10:3:20
Time left : 0:0:0
Ok that's a lot of data. What does that mean exactly ?
The collar is fitted with a few very handy technological devices. A satellite locator, a teleporter, a scanner, an biological monitor, a mic, a speaker and it is even linked to the internal timers of the restraint. No less ! Every one of these devices can be turned on and off individually, and for the moment they are all switched off. There is also a general switch that inhibits everything with the press of a button, and reactivates only the formerly activated devices when pressed again.
And after this very long introduction, I am going to demonstrate the use of each one of these devices in turn. You'll see that when used well, the top can control the captive very effectively !
First off I want to know where Mary is at any time. Or at least when I want. I click on "Pos. now" and immediately I am given Mary's location, in the form of a slurl. You know what a slurl is, right ? It is like a web address, but it leads to a 3D location in the SL grid. If I click on it in my chat history my world map opens and I see where she is. I could teleport there so Mary can see me appear in front of her at any time if I choose to ! But it is rude to do so if she's not alone. Remember, the captive is the one monitored, her friends should never suffer from an excess of control from her top ! Be responsible !
Oh the little lights on her collar are flashing red ! This means that I have just sent a command to it. So whenever Mary sees her lights flashing, she knows I am thinking of her :)
I also want to know who is around her right now. I press "Sensor now" and I get this :
Sensor report for Mary X : Marine Kelley (2 m)
Well, duh. And once again the lights flash and then switch off again.
And what is she doing exactly right now ? I press "Status now" and I get :
Status report for Mary X : Away: NO Busy: NO Flying: NO Mouselook: NO Sitting: NO
She's not doing much... Granted this one report is rarely very useful but sometimes it helps.
But what I really want to know is what she does when I'm offline, when it is more difficult for me to request that kind of information. With her agreement, of course !
To do that, I just dig deeper into the "Position...", "Sensor..." and "Status..." submenus. No need to go into details there, but I will show you with the first one. The other two work exactly the same way.
I click on my remote and press "Position...". I am shown this submenu :

The "Instant" button will do exacly the same thing as the "Pos. now" one I pressed earlier, it will give me Mary's current location. However I am not interested in knowing where she is now, I know it already. I want to be notified everytime she walks or flies over 50 meters and when she teleports. To do this I just press "50 m" and then "On" to activate the satellite locator. I get the first position report immediately, and will get one more every time she moves 50 meters from where her collar sent its last report. I could be more precise and set it to 5 meters but that would only mean more reports, I don't want to be spammed.
Oh, now the lights on her collar are not flashing red, they are switched on and stay bright constantly... This means I am actively monitoring her, the lights won't turn off until I shut all the monitoring devices. Which I am not going to do yet. Hehe.
I do the same with the scanner, I go back to the main menu then press "Sensor..." :

Once again, distances, "On", "Off" and "Instant". The meaning is exactly the same except that the distances mean the range of the scanner. Contrary to the locator, the shorter the distance the fewer the reports. I turn it on by pressing "On" and set its range to 20 meters by pressing "20 m". I also get an immediate sensor report. I will get one more everytime something changes in her surroundings (people change position or she moves). The scanner only reports people, it does not report objects (it is not a sonar).
Ok now she is all set, let's review what I've just changed. I go back to the main menu and press "Report" again :
Internal report for Mary X :
Position : ON (50 m)
Sensor : ON (50 m)
Status : OFF
Listen : OFF
Online only : NO
Time : 10:5:40
Time left : 0:0:0
The locator and the scanner are active, the lights are bright red meaning that at least one device is active, everything is nominal.
How about she goes "on the field" so I can test the real power of the collar and the remote ? Let's say I don't want her to know where I am sending her to, provided she is using the RLV (and she is, for the sake of this tutorial). Let's assume her Control plugin is set to not let her know her location. I want to send her to some place out there. For example the Kelley Park in Zhora. There are several solutions to do that. the soft way is to order her to tp there. But she won't because she's a brat and never does what she's told. The hard way is to make her. And that's exactly what I'm going to do.
I open my world map and type "Zhora" and validate. SL shows me the map of the Zhora sim in which I recognize the park, and I want to teleport Mary to its entrance. I click with my mouse on the black road in front of it, then "Copy slurl to clipboard" (that's one very handy button trust me). What it does is translate the point I have selected (the red dot on the map) into a slurl so that I can type it in chat.
I paste this slurl on channel 7 by typing "/7 " and Ctrl-V (or Apple-V) :
/7 http://slurl.com/secondlife/Zhora/185/128/25
And... voila ! Mary is teleported to that spot immediately. Note that it is always channel 7, it cannot be changed yet. Maybe in the future.
I also get a new position report since her locator is active :
Position report for Mary X : Parcel 'Zhora Downtown' at http://slurl.com/secondlife/Zhora/185/128/25
Clear, precise, no way to get mistaken. She is where I want her. And if I want to join her I just press Ctrl-H (not Apple-H) to get my chat history and click on the slurl I've just been given.
Oh and note that it would have worked even if she was leashed by her collar (not by any other restraint though). This is because a force-teleport overrides a no-teleport when it is sent by the same object, in this case her collar. She couldn't have gone back by her own means though, but I could have summoned her back myself through the remote. I will do that now. I click on my remote, go to "Position..." and press "TP here". And tadaa ! She's back, feeling a little like a ragdoll tossed around. That's a good way to show who's in control. She knows that I'll know wherever she is at any time, that I can send her where I want and that I can summon her back on a whim.
Ok enough tossing my captive around, let's go to the mic and the speaker now. The mic is fairly straightforward, and also the most controversial feature in this plugin. It simply allows to overhear whatever is said around the captive. I click on my remote, go to "Listen..." and press "All". This means I can now hear what she says and what people say around her, even when I'm not there. As it is an active device, the light stays bright red while I'm listening, so people have a clue the collar is active. They just don't know what exactly is being monitored.
Now, before you scream, just keep one thing in mind : the captive somewhat "belongs" to the top, and may be required to report whatever she heard at a later time anyway. There is exactly no way to prevent someone from pasting a chatlog or from telling someone else "so-and-so said this and that". If you don't want to be overheard by someone wearing a collar or any other device while you speak, just stick to IMs. Public chat is just that, public. You have the right to report whatever I say on the chat to whomever you like, but you do not have the right to use it against me. You just have to remember that chatlogs are not worth their weight in bytes anyway, since they can easily be modified. Last but not least, the disclaimer the captive has to agree to makes her and her top responsible of the use of the gathered info. Res-pon-sible.
Back on topic. The mic has only one purpose, like all the other devices : to keep the top up-to-date with whatever the captive does. I have been monitored by my top for months, and I must say it felt good to know that I always had this watchful eye over my shoulder. Never did she use it against anybody (I didn't go out much at that time anyway). Does it sound weird ? Not so much actually. It's hard to explain, certainly this feature is not for everyone. It can also be useful inside harems or prisons, where IMs are forbidden and the only mean of communication is plain chat. It helps wardens to stay in control.
The mic will repeat whatever is said around the captive to the top, but only if the latter is over 20 meters away from the person who speaks, to avoid hearing things twice. So if I stay near Mary I will not be repeated what I say, but if I move away and I shout, then the collar will transmit my own words. Let's try :
Marine Kelley: Echo ?
... Nothing.
I move about 30 meters away from Mary and I shout.
Marine Kelley shouts: Echoo ?!
Mary X hears : [Marine Kelley : Echoo ?!]
Neat !
Now of course, if I hear people talk I might want to respond. Well to make the collar respond. It just so happens that the collar has a built-in speaker, too. All I have to do is to turn on the mic of my remote and to start talking. I click on my remote, go to "Speaker..." and press "On". It tells me that the channel is 6, which means that everything I'll say on channel 6 will be transmitted to the collar and broadcast 20 meters around it ! So I better watch out and not say silly things. Of course the listener will not repeat what I just said (maybe it should ? I have to think about it for later).
I talked about the UUID of the collar and how it changed everytime it rezzed. This is a standard SL feature, and the direct consequence is that when Mary logs on, I cannot send commands to her collar through my remote until I "reconnect" it. That's why I am given a new "connection string" everytime she logs on, if I hold the key to her collar and it is activated. All I have to do is paste it like I did the first time. But if I forgot to do it, or for some reason I missed it (maybe I was in Busy mode), I can retrieve it by clicking on her collar, going to Plugins > Spy and to press "Get UUID". That's what this button is for !
Ok, last thing. Let's get real techy now. I'll explain what a command really is and I'll show you how to control a captive even when you're offline ! It's not hard, you'll see.
You already know that the remote sends emails to the collar, and that the collar sends IMs to the top. The remote is just a small email client with buttons to send commands easily, that's all. You absolutely don't need it in fact. It's just there to facilitate your life but a good email client (yes Yahoo and Gmail qualify) can replace your remote quite easily and safely.
Firstly let's analyze the connection string, which is what makes me able to send emails to the collar. As a reminder, the connection string is this message :
/191625/b8e81399-1e83-1d0d-5dc7-c8e7532f1ba8/208720
It is divided in three parts :
- The channel 191625, which is the command channel of the remote. If I'm not using a remote, I don't need to bother keeping that number in mind.
- The UUID, this strange 36-character-long alphanumeric string. This is the unique ID of the collar, and is part of its email address. I repeat, this thing changes everytime the collar rezzes. The full email address of the collar right now is b8e81399-1e83-1d0d-5dc7-c8e7532f1ba8@lsl.secondlife.com. Which means that if I send an email to this address, the collar will receive it, analyze it and possibly execute it !
- The password, "208720", because the collar must not execute everyone's commands, only mine. It will be the subject of the email. That's right, the subject is just a number, the body of the message is the actual command.
The commands are all explained in the manual of the collar so I will not demonstrate them all, but let's try a few here. Suppose I'm still online and near Mary, within chat range at least. I now switch to my Gmail webpage, from which I will send an email to the collar directly. Let's recap : I need the UUID, which is now b8e81399-1e83-1d0d-5dc7-c8e7532f1ba8 and the password, which is now 208720(and it won't change until the plugin is reset or it is changed manually with the "New pwd" button).
I prepare the following email :
To : b8e81399-1e83-1d0d-5dc7-c8e7532f1ba8@lsl.secondlife.com
Subject : 208720
Message : speaker Hello this is Marine !

That's all. I press Send on the webpage, and what happens ? Mary's collar says the message I have just written after "speaker" (which is the keyword the collar recognizes as "say the following on channel 0").
One very important thing to say : my personal email address, the one I use with my Gmail account, is never disclosed. The collar does know who sent the message but it does absolutely nothing with that information, it quickly forgets it. So my address is not compromised. It makes no difference whether I send the message from Yahoo, Gmail, Hotmail or even the remote in SL, what matters is the command and the password, that's it.
I log off.
Mary logs off too, but she relogs not long after. I'll play the "offline top" for a moment here. Mary's collar sends me its connection string, which I receive in my mailbox since it is an IM and I'm offline. It is now the following :

Notice that the channel and password didn't change, but the UUID did. I need this new info in order to command the collar from my mail client (e.g. at work). First of all I want a report, so I write this email :
To : d19986e5-48d0-05f1-f41d-e8b6721dc656@lsl.secondlife.com
Subject : 208720
Message : report
Easy huh ? Minutes later I get a report in my mailbox. It takes a little time because SL buffers incoming emails and outgoing IMs, there is nothing that can be done to make this system faster.

I want to know where she is right now. Another command to the collar :
To : d19986e5-48d0-05f1-f41d-e8b6721dc656@lsl.secondlife.com
Subject : 208720
Message : position instant
Once again, minutes later I receive a position report.
You may wonder how to manage several captives at the same time with one remote. Truth is... it is not really made for that yet. I am planning to add a proxy to be rezzed in-world, which would get all the UUID changes and provide aliases to the top so they don't have to reconnect everytime. The downside of this is that the proxy would have to be kept somewhere so the top has to own land. But it's not done yet, it's just in the plans.
Whoa. That was a long one, told you it was a complex plugin !
Hope you'll have fun with it, control freaks ! *g*
Marine
Today we are going to talk about one of the most versatile and complex plugins of the whole RR suite : the Spy plugin. You can find it in the collars I sell, namely the Steel Collar of the Serious Shackles set, and the Elegance Collar of the Restrained Elegance set. It is best to keep it inside its collar, because the collar is fitted with a special LED that lights up when the Spy is active. Be warned, this tutorial is going to be very long and quite technical, for there is a lot to explain and demonstrate.
Now, why such a name ? Isn't it a bit edgy to make a plugin that spies on the captive ? Sometimes, the top wants to keep the captive under tight control, with her permission. This control implies to be kept informed about whatever the captive does, even if she's far away, or even when the top is offline. It does not, however, force the captive to do anything, except teleporting if she's using the RLV.
As it is a complex piece of work, I am going to demonstrate with Mary again. She will wear the collar, I will be her keyholder, and I will control her Spy plugin remotely. This is going to be fun, you'll see !
So first things first, I lock an Elegance Collar around Mary's neck. I click on it, go to Plugins > Spy, and I get this :

Oh wait, it says "This device is currently unplugged" and gives some reference to a disclaimer in the collar manual... hey I don't have the collar manual here ! And last time I tried to read it it was so big and thick and technical that I eventually gave up (let's be honest, that's why you're here reading this tutorial). It tells me to ask Mary to activate her plugin, problem is I have the key so she can't access it herself. Oh well.
I leave the key on her collar, ask her to click on it and to go to Plugins > Spy, and then to select "Activate". And finally to leave the key on because her key belongs to me, not to her. This whole "activation" process is simply a safety and a disclaimer to make both the top and the captive aware that this plugin is able to monitor who is around the captive, and also to listen to conversations and to send them to the top. It is the responsibility of both of them to use these features in a responsible manner.
Oh there are two little lights showing on the sides of her collar now ! They were not there before.

Ok so now the plugin is fully operational and I can control it. But... how ? All I see on the menu is "Get UUID", "New pwd" and "Give remote". Not many possibilities for control here... Actually I'm not going to use this menu much, if at all. I just need it as a starting point in order to retrieve the device that will really give me control. The plugin itself is just a gateway, a firewall that will receive, filter and execute orders coming from a remote. That's why I will not bother with "Get UUID" (but I'll explain what this button is for later) or "New pwd" (which is practically useless unless the password is compromised). I click on "Give remote".
Immediately I am given a device and also some kind of cryptic message like :
/191625/b8e81399-1e83-1d0d-5dc7-c8e7532f1ba8/208720
I'm told to copy/paste this message once I am wearing the remote, and this is exactly what I'll do. The remote tells me that it has acknowledged the code, so everything should be in order.
Let me explain you what this message means, exactly. Let's call it the "connection string", because it is what links my remote to Mary's collar. Technically, the remote sends emails to the collar, which sends IMs to me. That's it. The collar never ever talks to the remote, it doesn't even "know" it exists. It only talks to me. What is very important to keep in mind is that IMs are buffered by SL while I'm offline, and they can even be redirected to my mailbox (you can do that in your Preferences window, in the Communication tab). It is a very handy tool SL provides and this plugin relies on it.
But the remote has to "know" about the collar, and that requires to know its UUID (its unique identifier, it is "b8e81399-1e83-1d0d-5dc7-c8e7532f1ba8" for the sake of this example) and its "password" (which is only a numeric code in order to not accept commands from just anyone but the keyholder, "464928" here). Problem is, the UUID changes everytime the collar rezzes, namely when it is worn (not an issue if it is locked and the RLV is used) and when the captive logs in. In other words, everytime Mary logs in I have to reconnect my remote if I want to send commands the collar. If it is not connected, the collar will just keep doing whatever it has been programmed to do. Send position reports every X meters, relay chat etc.
But we're not there yet, let's try a few things first. As I am wearing my remote and it is supposedly connected, first thing I will do is to check it actually is. I click on my remote and... oh look a wall of buttons !

The "Report" button is what I need. I press it and here is what the collar tells me after a couple seconds :
Internal report for Mary X :
Position : OFF (30 m)
Sensor : OFF (30 m)
Status : OFF
Listen : OFF
Online only : NO
Time : 10:3:20
Time left : 0:0:0
Ok that's a lot of data. What does that mean exactly ?
The collar is fitted with a few very handy technological devices. A satellite locator, a teleporter, a scanner, an biological monitor, a mic, a speaker and it is even linked to the internal timers of the restraint. No less ! Every one of these devices can be turned on and off individually, and for the moment they are all switched off. There is also a general switch that inhibits everything with the press of a button, and reactivates only the formerly activated devices when pressed again.
And after this very long introduction, I am going to demonstrate the use of each one of these devices in turn. You'll see that when used well, the top can control the captive very effectively !
First off I want to know where Mary is at any time. Or at least when I want. I click on "Pos. now" and immediately I am given Mary's location, in the form of a slurl. You know what a slurl is, right ? It is like a web address, but it leads to a 3D location in the SL grid. If I click on it in my chat history my world map opens and I see where she is. I could teleport there so Mary can see me appear in front of her at any time if I choose to ! But it is rude to do so if she's not alone. Remember, the captive is the one monitored, her friends should never suffer from an excess of control from her top ! Be responsible !
Oh the little lights on her collar are flashing red ! This means that I have just sent a command to it. So whenever Mary sees her lights flashing, she knows I am thinking of her :)
I also want to know who is around her right now. I press "Sensor now" and I get this :
Sensor report for Mary X : Marine Kelley (2 m)
Well, duh. And once again the lights flash and then switch off again.
And what is she doing exactly right now ? I press "Status now" and I get :
Status report for Mary X : Away: NO Busy: NO Flying: NO Mouselook: NO Sitting: NO
She's not doing much... Granted this one report is rarely very useful but sometimes it helps.
But what I really want to know is what she does when I'm offline, when it is more difficult for me to request that kind of information. With her agreement, of course !
To do that, I just dig deeper into the "Position...", "Sensor..." and "Status..." submenus. No need to go into details there, but I will show you with the first one. The other two work exactly the same way.
I click on my remote and press "Position...". I am shown this submenu :

The "Instant" button will do exacly the same thing as the "Pos. now" one I pressed earlier, it will give me Mary's current location. However I am not interested in knowing where she is now, I know it already. I want to be notified everytime she walks or flies over 50 meters and when she teleports. To do this I just press "50 m" and then "On" to activate the satellite locator. I get the first position report immediately, and will get one more every time she moves 50 meters from where her collar sent its last report. I could be more precise and set it to 5 meters but that would only mean more reports, I don't want to be spammed.
Oh, now the lights on her collar are not flashing red, they are switched on and stay bright constantly... This means I am actively monitoring her, the lights won't turn off until I shut all the monitoring devices. Which I am not going to do yet. Hehe.
I do the same with the scanner, I go back to the main menu then press "Sensor..." :

Once again, distances, "On", "Off" and "Instant". The meaning is exactly the same except that the distances mean the range of the scanner. Contrary to the locator, the shorter the distance the fewer the reports. I turn it on by pressing "On" and set its range to 20 meters by pressing "20 m". I also get an immediate sensor report. I will get one more everytime something changes in her surroundings (people change position or she moves). The scanner only reports people, it does not report objects (it is not a sonar).
Ok now she is all set, let's review what I've just changed. I go back to the main menu and press "Report" again :
Internal report for Mary X :
Position : ON (50 m)
Sensor : ON (50 m)
Status : OFF
Listen : OFF
Online only : NO
Time : 10:5:40
Time left : 0:0:0
The locator and the scanner are active, the lights are bright red meaning that at least one device is active, everything is nominal.
How about she goes "on the field" so I can test the real power of the collar and the remote ? Let's say I don't want her to know where I am sending her to, provided she is using the RLV (and she is, for the sake of this tutorial). Let's assume her Control plugin is set to not let her know her location. I want to send her to some place out there. For example the Kelley Park in Zhora. There are several solutions to do that. the soft way is to order her to tp there. But she won't because she's a brat and never does what she's told. The hard way is to make her. And that's exactly what I'm going to do.
I open my world map and type "Zhora" and validate. SL shows me the map of the Zhora sim in which I recognize the park, and I want to teleport Mary to its entrance. I click with my mouse on the black road in front of it, then "Copy slurl to clipboard" (that's one very handy button trust me). What it does is translate the point I have selected (the red dot on the map) into a slurl so that I can type it in chat.
I paste this slurl on channel 7 by typing "/7 " and Ctrl-V (or Apple-V) :
/7 http://slurl.com/secondlife/Zhora/185/128/25
And... voila ! Mary is teleported to that spot immediately. Note that it is always channel 7, it cannot be changed yet. Maybe in the future.
I also get a new position report since her locator is active :
Position report for Mary X : Parcel 'Zhora Downtown' at http://slurl.com/secondlife/Zhora/185/128/25
Clear, precise, no way to get mistaken. She is where I want her. And if I want to join her I just press Ctrl-H (not Apple-H) to get my chat history and click on the slurl I've just been given.
Oh and note that it would have worked even if she was leashed by her collar (not by any other restraint though). This is because a force-teleport overrides a no-teleport when it is sent by the same object, in this case her collar. She couldn't have gone back by her own means though, but I could have summoned her back myself through the remote. I will do that now. I click on my remote, go to "Position..." and press "TP here". And tadaa ! She's back, feeling a little like a ragdoll tossed around. That's a good way to show who's in control. She knows that I'll know wherever she is at any time, that I can send her where I want and that I can summon her back on a whim.
Ok enough tossing my captive around, let's go to the mic and the speaker now. The mic is fairly straightforward, and also the most controversial feature in this plugin. It simply allows to overhear whatever is said around the captive. I click on my remote, go to "Listen..." and press "All". This means I can now hear what she says and what people say around her, even when I'm not there. As it is an active device, the light stays bright red while I'm listening, so people have a clue the collar is active. They just don't know what exactly is being monitored.
Now, before you scream, just keep one thing in mind : the captive somewhat "belongs" to the top, and may be required to report whatever she heard at a later time anyway. There is exactly no way to prevent someone from pasting a chatlog or from telling someone else "so-and-so said this and that". If you don't want to be overheard by someone wearing a collar or any other device while you speak, just stick to IMs. Public chat is just that, public. You have the right to report whatever I say on the chat to whomever you like, but you do not have the right to use it against me. You just have to remember that chatlogs are not worth their weight in bytes anyway, since they can easily be modified. Last but not least, the disclaimer the captive has to agree to makes her and her top responsible of the use of the gathered info. Res-pon-sible.
Back on topic. The mic has only one purpose, like all the other devices : to keep the top up-to-date with whatever the captive does. I have been monitored by my top for months, and I must say it felt good to know that I always had this watchful eye over my shoulder. Never did she use it against anybody (I didn't go out much at that time anyway). Does it sound weird ? Not so much actually. It's hard to explain, certainly this feature is not for everyone. It can also be useful inside harems or prisons, where IMs are forbidden and the only mean of communication is plain chat. It helps wardens to stay in control.
The mic will repeat whatever is said around the captive to the top, but only if the latter is over 20 meters away from the person who speaks, to avoid hearing things twice. So if I stay near Mary I will not be repeated what I say, but if I move away and I shout, then the collar will transmit my own words. Let's try :
Marine Kelley: Echo ?
... Nothing.
I move about 30 meters away from Mary and I shout.
Marine Kelley shouts: Echoo ?!
Mary X hears : [Marine Kelley : Echoo ?!]
Neat !
Now of course, if I hear people talk I might want to respond. Well to make the collar respond. It just so happens that the collar has a built-in speaker, too. All I have to do is to turn on the mic of my remote and to start talking. I click on my remote, go to "Speaker..." and press "On". It tells me that the channel is 6, which means that everything I'll say on channel 6 will be transmitted to the collar and broadcast 20 meters around it ! So I better watch out and not say silly things. Of course the listener will not repeat what I just said (maybe it should ? I have to think about it for later).
I talked about the UUID of the collar and how it changed everytime it rezzed. This is a standard SL feature, and the direct consequence is that when Mary logs on, I cannot send commands to her collar through my remote until I "reconnect" it. That's why I am given a new "connection string" everytime she logs on, if I hold the key to her collar and it is activated. All I have to do is paste it like I did the first time. But if I forgot to do it, or for some reason I missed it (maybe I was in Busy mode), I can retrieve it by clicking on her collar, going to Plugins > Spy and to press "Get UUID". That's what this button is for !
Ok, last thing. Let's get real techy now. I'll explain what a command really is and I'll show you how to control a captive even when you're offline ! It's not hard, you'll see.
You already know that the remote sends emails to the collar, and that the collar sends IMs to the top. The remote is just a small email client with buttons to send commands easily, that's all. You absolutely don't need it in fact. It's just there to facilitate your life but a good email client (yes Yahoo and Gmail qualify) can replace your remote quite easily and safely.
Firstly let's analyze the connection string, which is what makes me able to send emails to the collar. As a reminder, the connection string is this message :
/191625/b8e81399-1e83-1d0d-5dc7-c8e7532f1ba8/208720
It is divided in three parts :
- The channel 191625, which is the command channel of the remote. If I'm not using a remote, I don't need to bother keeping that number in mind.
- The UUID, this strange 36-character-long alphanumeric string. This is the unique ID of the collar, and is part of its email address. I repeat, this thing changes everytime the collar rezzes. The full email address of the collar right now is b8e81399-1e83-1d0d-5dc7-c8e7532f1ba8@lsl.secondlife.com. Which means that if I send an email to this address, the collar will receive it, analyze it and possibly execute it !
- The password, "208720", because the collar must not execute everyone's commands, only mine. It will be the subject of the email. That's right, the subject is just a number, the body of the message is the actual command.
The commands are all explained in the manual of the collar so I will not demonstrate them all, but let's try a few here. Suppose I'm still online and near Mary, within chat range at least. I now switch to my Gmail webpage, from which I will send an email to the collar directly. Let's recap : I need the UUID, which is now b8e81399-1e83-1d0d-5dc7-c8e7532f1ba8 and the password, which is now 208720(and it won't change until the plugin is reset or it is changed manually with the "New pwd" button).
I prepare the following email :
To : b8e81399-1e83-1d0d-5dc7-c8e7532f1ba8@lsl.secondlife.com
Subject : 208720
Message : speaker Hello this is Marine !

That's all. I press Send on the webpage, and what happens ? Mary's collar says the message I have just written after "speaker" (which is the keyword the collar recognizes as "say the following on channel 0").
One very important thing to say : my personal email address, the one I use with my Gmail account, is never disclosed. The collar does know who sent the message but it does absolutely nothing with that information, it quickly forgets it. So my address is not compromised. It makes no difference whether I send the message from Yahoo, Gmail, Hotmail or even the remote in SL, what matters is the command and the password, that's it.
I log off.
Mary logs off too, but she relogs not long after. I'll play the "offline top" for a moment here. Mary's collar sends me its connection string, which I receive in my mailbox since it is an IM and I'm offline. It is now the following :

Notice that the channel and password didn't change, but the UUID did. I need this new info in order to command the collar from my mail client (e.g. at work). First of all I want a report, so I write this email :
To : d19986e5-48d0-05f1-f41d-e8b6721dc656@lsl.secondlife.com
Subject : 208720
Message : report
Easy huh ? Minutes later I get a report in my mailbox. It takes a little time because SL buffers incoming emails and outgoing IMs, there is nothing that can be done to make this system faster.

I want to know where she is right now. Another command to the collar :
To : d19986e5-48d0-05f1-f41d-e8b6721dc656@lsl.secondlife.com
Subject : 208720
Message : position instant
Once again, minutes later I receive a position report.
You may wonder how to manage several captives at the same time with one remote. Truth is... it is not really made for that yet. I am planning to add a proxy to be rezzed in-world, which would get all the UUID changes and provide aliases to the top so they don't have to reconnect everytime. The downside of this is that the proxy would have to be kept somewhere so the top has to own land. But it's not done yet, it's just in the plans.
Whoa. That was a long one, told you it was a complex plugin !
Hope you'll have fun with it, control freaks ! *g*
Marine
Subscribe to:
Posts (Atom)