Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

Breaking limitations: exploit vs. innovation

Yumi Murakami
DoIt!AttachTheEarOfACat!
Join date: 27 Sep 2005
Posts: 6,860
08-29-2006 08:50
Dear Linden folks,

Many Second Life residents are coming up with innovative building ideas that bypass the limits of the Second Life engine, such as the (now obsolete) god made hack, outsize prims, zero or negative mass prims, and similar.

However, it seems that the line between exploits and innovation is becoming blurred. Although it might seem that developments such as these have a positive effect this is not always so; for example, zero mass prims are used to make undetectable spying devices.

The key difficulty is that when a limitation of Second Life becomes apparant, it is not clear why the limitation is in place. For example, after sending an e-mail a script is forced to sleep for 20 seconds. This is not a natural consequence of sending an e-mail but the result of a piece of code delibarately added to the Second Life server. From a previous question asked here, I have learned that this was intended as a "speed bump", to increase the effort involved in writing a "spamming" script and also minimise the chance of one being written by mistake. But I had to explicitly ask on this forum to find this out, and it would be entirely reasonable for someone to assume that because LL had taken deliberete action to prevent e-mails being sent more frequently than every 20 seconds, they intended that to be a rule of the world and anything bypassing it would be an abusive exploit.

The exploit category on the AR window is described as "doing something that you should not be able to do", but often this is not clear. If I open the Object window for a prim, and type 100 into the Transparency field, it pops back to 95 - but that's well known as another deliberate speed bump. If I try to make a prim larger than 10x10x10, then the prim is snapped back to that maximum size. Again this is a "deliberate" limitation, since there is an IF test in the Second Life code which performs the reset. But I have no way of knowing if this is a genuine technical limitation (which I could try to bypass), or a speed bump (which it's deliberately intended I should try to bypass), or a rule, that LL have specificed that they do not want any prim to cover a greater area than 10x10x10, and therefore bypassing it would be an exploit.

I would therefore like to know if it would be possible for LL to release a list of all such delibarate limitations in the system (delibarate meaning that they are created by program code that's present in the system, rather than by the absence of program code) with an indication as to if they are the consequences of a technical limit, a deliberate speed bump, or a rule. Alternatively this could be added to the user interface; for example, trying to raise transparency beyond 95 would result in a ? appearing on the mouse pointer (indicating a "secret" or speed bump), but trying to move or alter an item owned by another user would add an icon of a judge's gavel (indicating a rule/law) and moving a setting beyond current technical limits would add a picture of a conical flask (ie, "experiment around this";).
Kelly Linden
Linden Developer
Join date: 29 Mar 2004
Posts: 896
08-29-2006 13:06
This is difficult for many reasons. The first is the sheer number and complexity of such rules and the wide variety of reasons. Additionally it may be that a certain work around is ok, while another may not be.

For some specifics that come up in your post:
- I would *love* details on how a prim being no-mass makes it harder or impossible to detect. To my knowledge this just isn't the case. Yes it will be very small, but so is a cut hollow minimum size sphere - and it isn't zero mass. Email me: [email]kelly@lindenlab.com[/email] if you have details on this. :)

- Zero (or less) mass prims cause problems with the physics engine. Specifically they can insert NANs (not a number) which after a short while can cause all physics collisions to fail. This means people fall through floors and walk through walls etc.

- Large prims have problems with border crossing and maybe viewing. Simulators actually overlap 5 meters into each other as a buffer. A 10m prim will mostly always be completely inside a sim (if you coun't the sims buffer) - once it goes past 5 meters it switches to the other sim. Yes I know there is a little bit of extra for diagonal, but this mostly works.

- Right now it requires a 3rd party application or a hacked client to create large prims or zero mass prims. In both of these cases we are very likely to move the checks to the server side in the near future to block this behavior.

- For behavior where our own tools allow you to bypass it - transparency is an example of this where an lsl script call can make a fully transparent object, as can an appropriate texture - the work arounds are generally acceptable.

- llEmail falls into a similar category ... except we are currently having some issues with objects that spam too much email. Some of these are misconfigured or trying to contact non working email addresses. This can cause problems for other objects trying to use llEmail in the same region and even simulator performance issues in extreme cases. This is something we will have to address fairly soon, although I do not know how we will address it.

I'm sorry but I don't think a comprehensive list is going to be possible at this time. I would suggest asking any specific questions you have, either here or of other residents in the scripting or building forums etc. For posts here, Torley is pretty good about flagging me on any addressed to me, or just finding the right dev otherwise. Assuming I don't just grab it myself.

It might also be cool to start a wiki page somewhere for people to post what they find or know about such matters.
_____________________
- Kelly Linden