Wednesday, August 19, 2009

RR Tutorial : RealKey plugin

Ahaa ! Now we are contemplating a difficult one, yet this is one of the simplest user interfaces in all the RR products ! The RealKey... many people know that name yet few really know how it actually works. This may be my fault for explaining it badly, or for burying its manual deep into my notecards. Let me correct that mistake here.

But first of all, I must stress out the difference between the regular key (the one you get when you press "Take keys"), which is just a piece of internal information contained into the restraint, and the RealKey which is a key-shaped object that the top wears. We will call the former "normal key", and the latter "RealKey" to avoid confusion. And the plugin itself will be called "RealKey plugin", which is like the keyhole in which the RealKey is inserted in.

The purpose of a RealKey is to act as a "master key", meant to override the normal key, regardless of who the keyholder is. Many people mistake this with the concept of "owner", but this is not what it is. It is a master key, no more no less. Keys can be given, copied, sometimes stolen, and it is the responsibility of the captive to trust the one they give a RealKey to, or to change their password if things go wrong.

Wow, that's a lot of new things at once. Password, owner, master key, normal key, responsibility... What now ? We're here to have fun, not to bother about passwords here !

Well yes and no. A RealKey is useless without a RealKey plugin to connect it to, and a RealKey plugin is useless without a RealKey. Both work together or not at all, like a key and a keyhole. Or like a Keymaster and a Gatekeeper *g*

Because of course, like in real life, a key cannot open a door if it doesn't match the keyhole. In other words, both prints must match in order to open. In our case, both the plugin and the key must share the same password. This password is a high number (usually 6 digits) that is meant to be kept secret by the captive and the owner of the RealKey. At the time of this writing the RealKey still discloses the password to its wearer, but a future version will make it safer. Please remember that changing the password once in a while is always a good idea.

In order to make things clear, let me guide you with basic example of how it works and what it does.

I am wearing a brand new pair of police handcuffs. They are straight out of the box, their password is a default one that is more or less unique to me, and it is the same for all new restraints that I wear (gag, straps, blindfold, legirons...) until I change it. I always recommend to not stick to the default password though, in case someone finds a way to guess it. The function was quite trivial a long time ago and fortunately I have rewritten it quickly to make it much safer, but still. So let's change it. I click on my cuffs, then go to Plugins > RealKey, the menu is quite simple so no need for a snapshot for once. Besides I don't want my default password to show here. I will change it to a random one first, by clicking on "New pwd" :
Plugin : "My password is now 354125"

But no need to set it to a random number actually, I'd rather set it manually so I can remember it. I click on "Set pwd" and say "909090" on the channel it indicates me :
Plugin : "Please say the new password on the channel 7840, it must be a positive integer. Ex : /7840 123456"

Me : /7840 909090

Plugin : "My password is now 909090"

Ok so I have set the password (the print) of the keyhole. Now to set the same password on whatever RealKey will be used to open these cuffs. Wait, where is the RealKey by the way ?

I can make the plugin create one for me, or I can use an old one. I will create a new one. To do this, I click on "Give RealKey" and voila, I am given an object that I Accept. This object is the actual RealKey, and I must wear it to use it.

When I wear the RealKey, here is what it tells me :

RealKey : "My command channel is now 5437 and my password is 1111" RealKey : "To change my password, say the new one (must be a positive integer) on that channel while wearing me. Ex : /5437 123456"

Wha ?! I have to set a password again ?? But I just did ! I've set it to "909090" not "1111" !

Well that was true for the plugin (the keyhole), now I have to do it for the key itself in order to make them work together. On a side note there were ways to make both password synchronize automatically but none was really satisfying, and all were error-prone. It's better to do it the old fashioned way : by hand. Only that way you know what you're doing. So here goes :

Me : /5437 909090

RealKey : "My password is now 909090"

Now I'm all set, the prints of the key and the keyhole match, they should work together. The only thing I have to do is to find someone to give this RealKey to, because I won't be able to use it on my own restraints (it would be too easy otherwise). Meet my Mistress Gin, who was kind enough to agree to participate in this tutorial. Isn't she cute ? ^_^

Before I give my RealKey to Gin, as I don't want her to be able to give it to half of SL (even if I know she won't, this is just for the example), I will set its permissions to no-trans. And then I give it to her, hoping she will put it to good use, and I lock my own cuffs, preventing her from accessing them by clicking on them.

So she wears her RealKey (as I said, she is told my current password when doing so, but that will change in the future), we can see it showing in her right hand. All that she has to do is to click on it and... nothing happens ?!

This is because my RealKey plugin is set to respond only if the cuff has been touched less than a minute before. This is handy because sometimes a top wants to "steal" the key of only one restraint, among all the 25 restraints the captive is wearing, while they are all set to the same password. This behavior can be changed by clicking on the "Mode" button, to set it to "Inactive", "Active on Touch" (default) or "Always Active". Attention, "Inactive" means the plugin is totally deactivated. It won't respond to any RealKey regardless of the password until the mode is changed back to "Active on Touch" or "Always Active".

So Gin must click on my cuffs first, and gets this :

"Sorry Gin, you are not authorized to manipulate Marine's Police Handcuffs 1.16 (RW) (r forearm)"

And then, following this message, an IM sent by the same cuff, directly to Gin :
"RealKey plugin is now active for 60 seconds."

I can't see this message since it is an object IM, but Gin does. So she clicks on her key again and... bingo ! She gets the menu and we can see she now holds the key to my cuffs ! She used her master key to bypass my access and get full access ! Giving me only reduced access by doing so, since I don't have the key anymore...

That's all there is to know, really. To recap :

- Set your password on your RealKey plugin (once)
- Create a RealKey
- Set the same password on the RealKey you got, while wearing it (once)
- Set the permissions on the RealKey
- Give the RealKey to that special someone
- Special someone wears the key, clicks on your cuff and then their key (or sets the Mode to "Always Active")

Wait, there is one more fun thing to do with a RealKey ! Like in real life, I could "accidentally" stumble on one, left somewhere on the floor, that I could use to unlock my own restraints (but once again the key must not belong to me)... So Gin drops her key on the floor, away from me. I walk to it and...

"Marine Kelley has found a RealKey that opens their restraint, resetting timer and returning keys to the wearer"

I'm given my normal key back ! And my timers, if any, are now stopped so I can unlock myself. Woohoo !

This is very handy for many kinds of bondage games... Imagine a bunch of 5 RealKeys dispatched around the house, 4 of which being empty and the 5th being set to open your restraints... Or a script added to a RealKey (they are mod after all) that makes them physical after a set time, and you place them high above the head, beyond reach. The captive would be able to retrieve it only after it fell on the floor (remember to block her and to chain her legs first, so she can't jump or build things to sit on). Please note, the mode of the RealKey plugin (inactive, active on touch or always active) is also taken into account when bumping into it, so take care ! Your top could very well totally disable your RealKey plugin if she wanted ! The plugin must be set to Always Active, because the key won't "touch" the restraints...

Have fun !

PS : Several people see the RealKey plugin as an easy way to get loose should things go wrong. This is not what it is meant to be at all. Please remember that at worst you can always hard reset your restraints ! This is why the RealKey gives all the power to its owner, and none to the captive. If the top starts acting crazy, log on with the SL viewer (if you were on the RLV) and hard reset your stuff. Then change the password of your RealKey plugins, just in case. The last thing a RealKey holder wants is to have her captive get away by handing a RealKey to a friend of hers behind her back. It would break their trust into the restraints if they didn't have means to completely affirm their control over how the keys are managed.