Linden text version 2
{
LLEmbeddedItems version 1
{
count 1
{
ext char index 0
	inv_item	0
	{
		item_id	f7ba0fed-0371-497e-1852-3cb86e4db5de
		parent_id	fe396348-9289-4f09-a14a-0eaa8d11a0d5
	permissions 0
	{
		base_mask	7fffffff
		owner_mask	7fffffff
		group_mask	7fffffff
		everyone_mask	7fffbfff
		next_owner_mask	7fffffff
		creator_id	abf1cc1a-52ce-4e4f-8a8a-5ab761d45430
		owner_id	abf1cc1a-52ce-4e4f-8a8a-5ab761d45430
		last_owner_id	00000000-0000-0000-0000-000000000000
		group_id	00000000-0000-0000-0000-000000000000
	}
		asset_id	a992c527-f156-32aa-8abf-ca29f00b0ea4
		type	landmark
		inv_type	landmark
		flags	00000001
	sale_info	0
	{
		sale_type	not
		sale_price	10
	}
		name	Witchy@Shark|
		desc	SHARK SHOP#06, Shark (105, 116, 61)|
		creation_date	1245228969
	}
}
}
Text length 9644
DISCLAIMER: This relay is the one OpenCollar's has been based on since version 3.2. So don't be surprised to find many similarities. However both relays followed their own ways and now have some noticeable differences: for instance OpenCollar's is well integrated to the collar's auth subsystem whereas this HUD relay focuses more on experimental features, and as it is a HUD also provides visual indicators the collar relay cannot have.

This relay is a multi-object relay, with some extra features.

It conforms to the Open Relay Group (ORG) specifications version 0003 (which include RLVR 1.100 compatiblity).
It is "Multi" in the sense that in opposition to most relay that were made before year 2009, it won't reject commands from new devices when you are already controlled by one.


A bug? A suggestion? Please report it here: http://code.google.com/p/multirelay/issues/list

Main features
- several concurrently restraining devices supported
- classic ask/auto/off modes
- extra mode: restricted
- extra submodes playful, restraining
- (togglable) safeword
- evil safeword - when someone is around you, they will be asked to help you. When you are alone you just get freed. (thanks Vala Vella for adding this!)
- autolocking when restrained, and impossibility to turn the relay off or cut the already restraining sources off
- smart strip: when enabled, clothing items stripped through this relay will also make you unwear the folder they are in (if this was in #RLV)
- black and white lists for objects and avatars
- informative HUD
- menu access by chat command: /99relay
- !x-who and ORG !x-handover new metacommands†
- @thirdview unofficial pseudocommand‡
- not vulnerable to the "arbitrary text on arbitray channel", and "shout garbage on public chat" loopholes
- not vulnerable to the stack-heap collision issue when requests accumulate (rejects them when there are too many)
- ORG !x-channel metacommand (ORG). Lessens the lag by switching relay chat to another channel.
- ORG !x-email metacommand (ORG). Enables gridwide (cross-sim) access. (you will need a compatible device for controlling your relay gridwide, such as the Witchy Remote, which I blatantly advertise! You may find it there: 􀀀
- ORG !x-http (commented out for now)
- ORG !x-ack: silence your spammy acknowledgements!
- ORG !x-delay: delayed relay commands (timed restrictions, and stuff like this ;-))
- auto-updates via HippoUpdate
Note: the auto-update script is the only script that isn't mine and that I don't license and distribute full perm. It is no mod only for hiding the password of my update server (but as this update server is only for free items, I will consider making the script full perm too if I can be sure that divulging this "password" is no security issue). Delete the script if it bugs you that the contents of one of the scripts are not visible, it will only stop auto-updating but won't prevent the relay from working correctly.


Potentially coming in the future:
- ORG !x-vision
- ORG !x-animate
- <insert your idea here>


Menus buttons:
(Note that irrelevant buttons are automatically hidden in the dialogs. Don't be surprised if you don't always have all those buttons!)

In the main dialog:
* Mode (xxxx): the relay is in mode xxxx. Click this to go the next mode.
   Current modes are:
   * Off: the relay is disabled
   * Restricted: the relay rejects every future request (except from whitelisted devices and devices already controlling you)
   * Ask: the relay asks before accepting future requests (except from white or blacklisted devices)
   * Auto: the relay accepts every future request (except from blacklisted devices)
* Playf (off/on): en/disable automatic acceptation of non-restraining commands (combines with the previous modes)
* SW (off/on/evil): en/disables the possibility to safeword when restricted or enables the evil Safeword
* Grabbed by: shows the list of devices currently controlling your avatar, and the list of restrictions they enforce.
* Refresh: checks that every device restricting you is reachable. Restrictions from unreachable devices will be cleared.
* Pending: shows the request dialog, in case there are pending requests
* Help: gives this notecard
* SAFEWORD: clears all restrictions and lists
* Access lists: opens the access list management dialog, for removing trusted or banned sources

In the request dialog:
* Yes: accept this command (and other commands from the same device until unrestricted)
* No: rejects this command (and other commands from the same device in the few following seconds)
* Trust Object: same as Yes, but adds the object to the whitelist
* Ban Object: same as No, but adds the object to the blacklist
* Trust Owner: same as Yes, but adds the owner of the object to the whitelist
* Ban Owner: same as No, but adds the owner of the object to the blacklist
* Trust User: same as Yes, but adds the avatar using the object to the whitelist
* Ban User: same as No, but adds the avatar using the object to the blacklist

HUD code:
* slightly transparent: relay is on but not locked
* blinking: there are pending authorization requests
* opaque: relay is locked, the hovering number tells how many sources grab you
* greenish: auto mode
* natural colors (brass yellowish): ask mode
* redish: restricted mode
* strongly transparent and dark:  relay is off


†: the meta-commands !who and !handover are now part of the protocol version 1.040... and now removed in 1.100, but salvaged by the ORG as !x-who and !x-handover

‡: @thirdview looks like a RLV command but it is not. This command tells the relay to "enforce" mouselook by whatever possible mean and is used by some furniture makers... maybe making the bet that this would eventually be implemented in a viewer.
I support it as it poses no particular issue, but it is clearly borderline with respect to both RLVR and ORG specifications to do so.

Changelog:
1.02:
* SA: ORG 0003: wildcard support, relay always answers to key ffffffff-ffff-ffff-ffff-fffffffffffff in addition to the wearer key.
* SA: delayed clearing entries in Pigeonkeeper after safewording (we need this to send !release,ok)
* SA: the relay stops resetting windlight settings when it is uncalled for (thank you Kim Fosset for reporting)
* SA: removing annoying message on rez about the relay being locked (or not)
* SA: added /99relay chat trigger to open the relay menu
* SA: 3rd view handle multiple devices and blocks setenv and setdebug
* SA: added x-ack
* SA: added x-delay

1.01:
* SA: pending status glitches fixed (thanks to Ash Yheng for the report)
* SA: some bug in email mode due to the http changes, now fixed (thanks to Yakumo Fujin for the report)

1.00:
(* http-in support: commented out in released version, until I finalize the protocol draft)
* new hud from Medea Destiny
* improvements on that hud by Toy Wylie
* fix by Liace Parx (pre45)
* fixed @clear=xxx issue (restrictions not released) (pre46) (thanks Cerdita Piek for reporting)
* fixed ko on !pong (pre47) (thanks Mikk Morane and R2D2 Scribe for reporting)

0.99:
* added the evil Safeword functions. Adapted by Vala Vella from Marissa Mistwallow's relay, via Toy Wylie's smart relay ;-). See SafeKeeper Script for details. 
* revamped the main dialog. Now buttons do reflect the current setting instead of the next one.
* distance control for relay answers (no need to spam all the already laggy sim with relay replys)
* access lists are reset on owner change
* added a manual locking menu option to provide a means against accidental detaching of the relay (by Toy Wylie)
* fixed error message when trying to edit an access list that has more than 11 entries
0.98:
* added owner names in the "Grabbed by" output
0.97:
* added "Refresh" for clearing restrictions from unreachable devices
* added reinforcement of rescrictions if the relay has been displaced although it was locked
* removed the non restraining mode, as it makes the relay "lie" and not being compliant with the RLVR specification (the code is still in there in gatekeeper script if you want to uncomment it)
0.96:
* !x-tensions became !x-orgversions
* the relay is now supposed to be reachable directly by email (if the controlling devices knows its email adress)
<0.96: I don't remember. I try to file the changelog from now on!
0.95: gridwide really usable
0.90: preliminary gridwide access features



Legal disclaimers:
* My scripts are full perm, and I want it to be redistributed as such. Consider they are GPL with the same clauses as OpenCollar. So if you want to take it into the relay of your own shop, there is no problem with me, provided all scripts remain full perm (not counting OpenCollar, at least 2 other famous shops I know of are already doing so with my benediction).
* Only the script "MultiRelay VersionKeeper" comes from Hippo Technologies and is not licensed by me. Please do not include it in derived products!
* The padlocks of the HUD are a derivative work I made from an original clipart by AJ Ashton, under the Creative Commons Attribution license. The original padlock can be found on Wikicommons.

Acknowledgements (other than code contributions):
Marissa Mistwallow for her active search of loopholes in the relay implementations.
Maike Short for her relay test suite that helped me fixing some typical relay bugs.
Chloe1982 Constantine and Ilana Debevec for fruitful discussions about the new metacommands.
Vala Vella for adding the evil safeword.
Toy Wylie for adding the manual locking feature and paging system for access lists.
All the guinea pigs who tried the early versions of my relay!


I hope my relay will suit your needs!
Satomi Ahn}
 