llTeleportAgent() continued...
From: Kelly Linden
With llTeleportAgentHome the agent gets teleported to *their* safe place.
That doesn't make llTeleportAgentHome any less objectionable when it happens without warning. More than once I've had to very carefully negotiate an invisible maze to get back to a vehicle I'd been riding without getting teleported again. I've even had to abandon my plane because I couldn't figure out just where I'd been flying before I was teleported.
I can't imagine what a landowner could do with a reasonable llTeleportAgent implementation that's worse than that. By "reasonable", I mean "not just llTeleportAgentHome with an extra parameter": it wouldn't be a "security tool", so you could leave them with a "cancel" button and limit how often it could be fired... making it less dangerous and giving the user more control than llTeleportAgentHome().
From: someone
The additional control in the hands of the script owner to determine the teleport destination means that more control needs to be implemented for the person being teleported.
Indeed. But making them respond to an approval dialog for every teleport isn't the only or even the best way to give them that control.
Mind if I make a brief digression?
First, approval dialogs breaks immersion in the game, which reduces the user's perception of control over their environment. There's a lot of dialogs I get in SL I'd like to simply automatically approve, or grant permanent approval to objects owned by someone I trust. Animations, for example... the worst that can happen if I'm animated unexpectedly is I'll get an "embarassing" animation run on me, and I can stop it at will with a pulldown.
Second, approval dialogs are a dangerous security tool. People get in the habit of automatically approving routine dialogs, and there's been plenty of posts in the forums about people getting hurt by reflexively clicking through one because they're used to seeing so many. If at all possible, it's much better to come up with a way to make an operation safe. For example, you can have a "stop animations" button displayed when you're running a non-Linden animation.
In the case of llTeleportAgent:
* You can first limit it the same way llTeleportAgentHome is limited, so you can't get teleported except by the landowner.
* Second, you can make it cancellable, and rate-limit it prevent it from operating over and over again in quick succession.
* Third, except for the landowner's parcels in the same (or
maybe an adjacent) sim, it should be just as limited as point to point teleporting on the map.
These three together mean the landowner can't do anything to you that you can't get out of by teleporting home, and they can't toss you into a private area, and it doesn't involve any more inter-sim communication than point-to-point teleports.
* A landowner can teleport you to a location high in the air. They can already push you there, or move part of the build using physics to physically move you there, or just use llEjectFromLand.
* A landowner can teleport you to a location containing embarassing or objectionable images. They can rez objects like that around you anyway... in fact anyone can do that. There's existing scripted objects that'll do that as a joke.
From: someone
It is also not a high priority issue. Some work has been done in some spare time by a developer or two, but it is not finished, and I don't think it is currently actively being worked on.
There's a lot of people on SL who would produce amazing things with a tool like this, because they're already doing amazing things with less capable tools... and are running hard up against the limits of what they can do by pushing the limits of the game. They would love to help work out the security issues rather than spending more time and effort to simulate it using llSitTarget() and warp-move and llMoveTo.
Just thinking about how it would improve the Stargate network makes me dizzy.
[Edit: I'm not angry or upset, if I seem excited it's because I'm *excited*. This is an amazing game, and I just want to see it become as amazing as it can possibly be.]