LSL Protocol/Restrained Life Relay/delay

This is now specified in the context of ORG and implemented. The discussions below are kept only for historical reference and do not have value of specification for the ORG !x-delay command (although the syntax and principles remain almost unchanged).



This is a discussion page for adding support of delays in the execution of relay commands.

!delay

Not implemented yet

Description
meta command to pass a delay (in seconds) the relay has to wait before executing subsequent commands from the device.
Background
Most of world objects just lock you in on some fixed piece of furniture, and thus can easily ensure you will eventually be released of every restriction, as it will do it at the time you are allowed to stand up. Other devices have other ways to ensure you're eventually released: for instance, zone controllers use a sensor and send a "!release" as soon as you exit the sensed zone.
In both case, the device is still nearby from the beginning to the end. What about if you want to restrict someone in some way, but don't want to prevent them from leaving? It is currently impossible to do it while ensuring a timely release (or you have to rely on the fact that the relay verifies the device is still nearby and active).
Here I propose to add another way to ensure the release of restrictions, by delaying of some fixed time the execution of a bunch of relay commands (hopefully including a !release).
Syntax
!delay/(integer)
(integer) is the amount of time, in seconds, you have to wait before executing subsequent commands.
Other parameters after a second "/" should be ignored, as they could be used for a future extension.
Discussion
I still don't know if !delay should be applied on every subsequent command from the device, or only the ones of the bench of commands the !delay belongs to, thus allowing to affect the target while some commands are still pending.--Satomi Ahn 17:20, 21 March 2009 (UTC)
I think we need a way to modify delayed commands that have already been sent. --Maike Short 08:39, 22 March 2009 (UTC)
LSL http server or llEmail may be a better way to keep contact between the world object and the relay if the agent leaves the llShout area. But I have not look at that in detail, yet. --Maike Short 08:39, 22 March 2009 (UTC)
I haven't used llEmail but I heard it wasn't that reliable. Is it?
And what about http server? I see you commented the page, have you experimented with it? If the whole relay protocol could use http, then this "!delay" thing becomes useless (the capturing device could run a timer instead of the relay). But then, wouldn't we need a metacommand for requesting the URL? --Satomi Ahn 12:01, 31 March 2009 (UTC)
Other big issue: the URL will be disabled when going to another region, which kills the purpose of using http instead of chat (in our case)... unless the relay polls the capturing device, instead of the contrary.
Another issue, maybe, could also be the per-parcel URL limit (equal to the prim limit). --Satomi Ahn 12:11, 31 March 2009 (UTC)
Sorry for the late reply, I was too busy with my Easter Egg Hunt project, which unfortunately had kind of a deadline :-). Yes, you are right about the URL changing whenever the avatar goes to another region. I got that "url pool per avatar" wrong. That is just the for the URL limit. Email is pretty reliable nowadays in SL. They fixed the major bug that sometimes caused the email queue to get stuck until region reboot. --Maike Short 01:54, 13 April 2009 (UTC)
In region communications can now be facilitated by use of llRegionSayTo(), which sends a message to a specific key (user or object) in the region. Since attachments can hear what is being Region Said To the Avatar's key, this allows Relay/Object communications throughout an entire sim. --Da Chrome 7 December 2011
Let me recapture the goals
Current situations when out of range


Simple solution (ignoring 4. and 5.)
Problems

Ignoring 5 would make things much simpler. How important is it? --Maike Short 01:54, 13 April 2009 (UTC)


Well, those are true questions. But why not take it she safe way: having most of the difficult points optional, falling back to a safer behavior in case it is not implemented: for instance if multi-delays isn't implemented, then always fall back to the first delay to finish. Also, having some devices whose restrictions should not be pinged on relog could be optional (thus falling back to the default that a relog clears everything which isn't nearby). Well, that is only a first reaction to your comments. I will read them more carefully when I have some time. --Satomi Ahn 18:13, 19 April 2009 (UTC)