RLV Relay Plugin
The relay plugin is included mostly because I've been working on a collar that will play well with the Mesmerizer as part of the CHAOS range, and many people use the relay built into an existing collar, so if you wanted to use the CHAOS collar instead, you'd need a separate relay. There are existing RLV relay HUDs, but there are a number of advantages to having one built in to the Mesmerizer, most importantly that it understands the Mesmerizer's concept of owner(s).People listed as owners will be permitted to use the relay in all modes except "Off". So even if the relay is set to "Ask" mode, your owner(s) and objects belonging to them will still be able to use the relay without generating a permission prompt.
The relay plugin has all the typical modes: Off (where the relay won't accept new commands), Trusted (where only people and objects that have been previously designated as trusted will be permitted to control your viewer), Ask (where the wearer is asked whether to permit access by an untrusted object or person), and Auto (where anything not explicitly banned may use the relay). In addition, the Mesmerizer supports an Owner Ask mode, which is very similar to Ask mode, except that if an owner is in the same sim, then the owner is asked for permission, rather than the Mesmerizer wearer. This is not a new idea - I believe that Dahlia's OC plugin for her relay supported this, but I don't know of another relay that has adopted it since. Dahlia's relay is sadly long gone, and in some ways, the Mesmerizer's relay is an homage to it.
Safewording works in a similar fashion. If your owner is in the sim when you call safeword, then they get to decide if the attempt to safeword should be permitted. If your owner is not at hand, however, you can call safeword by yourself. If you safeword, your owner(s) will be notified, and a new on-safeword event will fire, allowing your owner to create a custom response to safewording. For now, on-safeword is a local event, and not delivered to The Enforcer, although the custom response is free to signal an Enforcer event.
Since the relay is controlled by Mesmerizer commands, your owner(s) can decide which commands you have access to. If you aren't listed as an owner in your Mesmerizer's Access notecard, then you can't execute Mesmerizer commands directly, but only via triggers, so someone else (usually your owner) will have to create self-triggers for any relay commands they want you to be able to use. This means that, for example, your owner can give you triggers to switch your relay between Owner Ask and Auto modes, but not give you the ability to switch it off. Since safewording is also done via a Mesmerizer command, your owner must give you the ability to safeword, with a self-trigger something like the following:
/99 chaosred = subject relay safeword
This defines a self-trigger "chaosred" which the sub can say in local chat or on channel 98 to call safeword. Since the Mesmerizer will look for triggers within regular speech, it's important to make the safeword something you're unlikely to say in a normal sentence.
Like all Mesmerizer commands, those controlling the relay are available remotely. So an owner can release you from an RLV trap if they wish without having to come to the sim in which you're trapped. Equally, they can turn on your relay remotely, without requiring permission from you.
The relay supports multiple simultaneous controllers. This should be standard in a relay, but surprisingly some widely-used relays only allow one controller at a time. Support of multiple controllers is necessary in many fairly common situations, for example if you want to use RLV furniture in an area that uses an RLV Zone.
Most relay functions are controlled via the relay command, which takes a single parameter specifying the desired operation:
relay on - turn the relay on (in whatever mode it's currently set to)
relay off - turn the relay off
relay ask - turn the relay on in ask mode
relay ownerask - turn the relay on in ownerask mode
relay auto - turn the relay on in auto mode
relay trusted - turn the relay on in trusted mode
relay status - display a message indicating whether the relay is active and the mode it's in
relay report - list relay status, including the restrictions imposed by each active controller
relay access - lists the trusted and banned users or objects, and allows these lists to be edited.
relay clear - remove all current restrictions
relay safeword - remove all current restrictions, after checking that a safeword is permitted
A few commands need an extra parameter, in addition to the operation. These commands use the relay2 command:
relay2 trust <user-or-object> - add the specified user or object to the 'trusted' list
relay2 untrust <user-or-object> - remove the specified user or object from the 'trusted' list
relay2 ban <user-or-object> - add the specified user or object to the 'banned' list
relay2 unban <user-or-object> - remove the specified user or object to the 'banned' list
relay2 ownersw on/off - Set whether owner's object can be safeworded.
In the above commands, <user-or-object> is the key of either an avatar or an object. You can also specify the name of a nearby avatar.
The trusted and banned lists are actually 2 lists each, as users and objects are stored separately. Each list is kept to at most 20 entries, with least recently-used entries being removed to make room for new entries.
Chat Textbox
A sub of mine recently ran into a situation where she was locked down and her use of channels was blocked by RLV. This meant that she couldn't communicate with me via Mesmerizer chat, which is normally available, even if IMs are blocked. She could receive my messages, but she couldn't reply in the normal way, using channel 97, as that channel had been blocked. To (mostly) avoid this situation, I've added a new command, commdlg, which takes a parameter of on or off. This command activates (or deactivates) a textbox into which you can type messages to be sent by Mesmerizer chat, instead of speaking them on channel 97. When commdlg is on, each message sent will cause the text box to be redisplayed.The intended use of this is that, if the sub is to be able to use this feature, the owner would define a self-trigger for them, such as:
/99 meschat = subject commdlg on
This creates a trigger "meschat" that the subject can use, which will issue the commdlg on command. So any time that channel 97 access is banned, the sub can simply say "meschat" in local to enable the Mesmerizer chat textbox.
Of course, if channels are banned, there's a good chance that local chat may be restricted too. In RLVa (which is the version of RLV implemented by Firestorm, among other viewers), chat surrounded by double parentheses "((" and "))" is considered OOC chat, and is never restricted. So even if local chat is prevented, on a viewer that implements RLVa, saying "(( meschat ))" will cause the above trigger to fire. Viewers that implement the original RLV spec don't have this option, but I have included a tiny HUD that can be worn by the Mesmerizer wearer to allow self-triggers to be issued even when channels are locked down. This HUD can be used by RLVa users too, and it is more 'stealthy' than saying a magic word in local, as it can say it on the 'alternate' self-trigger channel 98. It's completely programmable, so it can be used to issue any self-triggers that may be defined, not just to bring up the comm dialog. For instance, if the sub is to be permitted to change their RLV relay settings, the self-triggers to do that can be added to this HUD, so that the sub doesn't have to remember them.
Follow and Chaining Enhancements
The Mesmerizer performs all the functions of a typical SL collar (and many additional things), with two exceptions: the symbolism of a locked collar, and the ability to leash to it. The Mesmerizer has always has its own leash command, which is basically a combination of enabling following and drawing a leash from the lockguard collar front-loop point to the target avatar (or leash handle, if they're holding one), so if you wear a collar with lockguard support, leashing via the Mesmerizer was already possible. However, the behavior of follow is rather less assertive than is reasonable for someone being dragged by a leash, and the default lockguard chain and rope textures are pretty awful. Also, while you can manually add some gravity effects to the particle chain, it doesn't automatically give the appearance of being slack when the leashed avatar is close and taut when they're near the leash length.Version 1.2 addresses all these defects, in preparation for the forthcoming CHAOS Collar, which provides the symbolism of a physical collar, as well as somewhere to attach a leash to. It also allows for a number of different collar styles. Since the Mesmerizer is doing all the heavy lifting, the collar itself is very lightweight in terms of script load. I'll discuss the CHAOS Collar in another post.
Trance Relay/Titler
The trance relay is an optional device that can be worn by the sub to let people nearby see what text is being displayed on their screens. This is intended for use in a public, or demonstration trance situation. The on-screen text is duplicated as hover-text over the sub's head. This can be enabled or disabled by the publictext and nopublictext commands. To avoid confusing the sub during trance, they will not be able to see the hovertext, although those around them will.The trance relay can also be used as a titler. The two functions (title and trance text) are visually separated by the title (if any) appearing in white, above the trance text which appears in green.
The Trance Relay/Titler is a PAN device, and is therefore accessed via the pansend and pansendpars commands. It supports the following commands:
pansend titler lock - Prevents the titler from being detached
pansend titler unlock - Permits the titler to be detached
pansendpars titler text "some text" - displays "some text" in green. Empty string to clear.
pansendpars titler title "new title" - sets the sub's title to "new title". Empty string to clear.
The publictext and nopublictext commands make the Mesmerizer repeat (or stop repeating) all received text and text2 commands as PAN text commands to the titler.
