Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

Object property permissions?

JessicaNichol Kappler
Registered User
Join date: 23 May 2007
Posts: 211
03-03-2008 21:57
I don't get it?

1) Are SL object property permissions borked on the grid right now?
2) Is there a hole in object permissions? ... or ...
3) I just don't get it.

I am nothing more than an intermediate builder and intermediate scripter. It is possible that I am missing a step but something isn't right with a series of products I am building that I want to bring to market soon.

I am building a multi-prim object (nothing too fancy) and I want to protect the textures and the scripts in one of the product's internal prim "Contents" folder and have the product as a whole set to "no mod". I have provided a configuration script which allows the user to customize certain features of the product (like changing the size of the product). Anyway, on the surface it appears that the object is "no mod" and the future owners can't open my script. But in my testing with my ALT, I have found a hole in the permissions where my textures and my script can be removed from the internal prim "Contents" folder despite the fact that the product is "no mod", "no copy".

Let's back up a step and explain what I have done ...

1) I have uploaded some textures into SL and paid my L$10/texture and I am listed as the creator of these textures. I have changed the permissions of these textures to "no mod", "no copy" but I can't turn off "resell/give away". I know for some objects like notecards I can turn the "resell/give away" off but no matter what I try, SL keeps reverting the "resell/give away" on these textures. It seems like SL does not allow "no copy" and "no resell/give away" to be set at the same time for textures.

2) The same thing with the "resell/give away" applies to my script. It is "no mod", "no copy" but no matter what I do, SL will not allow my script (I created it) to be "no copy" and "no resell/give away" at the same time.

3) Anyway after I assemble the product, all appears well. Unless you check the "Edit Linked Parts" option, the textures and scripts are protected. This is good for novice users of SL, but someone who knows what they are doing can easily edit my product, click on the "edit linked parts", find the prims where the textures and script are stored and then remove them from my product despite the fact that the product is tagged as "no mod".

I don't get it. How can this be? Ideally I would love to hide the contents of the prim's "Contents" folder. But I have read here that people say the items in the "Contents" folder can not be hidden. Now my script is safe. People can't read it and if they remove it from the product they pretty much make it a useless product. But I am more concerned about why SL lets people remove the textures from the "Contents" folder even when the product is "no mod".

Note: I use "llSetTexture()" a lot in my scripts as the use of the textures in my product is very dynamic. It is not the type of product where I embed static textures on a prim faces. Rendering on the prim faces is dynamic in this product.

So does this make sense? Is this a known problem or worse mind boggling feature in SL? Does in make sense that the owner of the object can remove textures and scripts from the internal prim "Contents" folder despite the fact that the product has been tagged as "no mod".
Dylan Rickenbacker
Animator
Join date: 11 Oct 2006
Posts: 365
03-04-2008 02:18
From: JessicaNichol Kappler
I am building a multi-prim object (nothing too fancy) and I want to protect the textures and the scripts in one of the product's internal prim "Contents" folder and have the product as a whole set to "no mod". I have provided a configuration script which allows the user to customize certain features of the product (like changing the size of the product). Anyway, on the surface it appears that the object is "no mod" and the future owners can't open my script. But in my testing with my ALT, I have found a hole in the permissions where my textures and my script can be removed from the internal prim "Contents" folder despite the fact that the product is "no mod", "no copy".


As far as I know, this has always been this way. If you give an object to another avatar, they will be able to see what's in the contents and delete inventory items even if the object and/or inventory items are no mod. They can delete the no mod object itself, too, after all. They will see a warning when they try to delete inventory items, though.

From: someone
1) I have uploaded some textures into SL and paid my L$10/texture and I am listed as the creator of these textures. I have changed the permissions of these textures to "no mod", "no copy" but I can't turn off "resell/give away". I know for some objects like notecards I can turn the "resell/give away" off but no matter what I try, SL keeps reverting the "resell/give away" on these textures. It seems like SL does not allow "no copy" and "no resell/give away" to be set at the same time for textures.


That's right. You can't set next owner permissions to both no copy and no transfer. You have to allow at least one of these. Makes sense, if you think about it.

From: someone
2) The same thing with the "resell/give away" applies to my script. It is "no mod", "no copy" but no matter what I do, SL will not allow my script (I created it) to be "no copy" and "no resell/give away" at the same time.


See above.

From: someone
3) Anyway after I assemble the product, all appears well. Unless you check the "Edit Linked Parts" option, the textures and scripts are protected. This is good for novice users of SL, but someone who knows what they are doing can easily edit my product, click on the "edit linked parts", find the prims where the textures and script are stored and then remove them from my product despite the fact that the product is tagged as "no mod".


They can do this only if they own the object. You can't even see, let alone delete inventory items from a no mod object if it doesn't belong to you (unless the owner has given you mod rights for all their objects).
Kitty Barnett
Registered User
Join date: 10 May 2006
Posts: 5,586
03-04-2008 05:56
(Copy/pasted from my reply in /327/ee/244539/1.html)

You can't keep anyone from extracting something from a prim's inventory, regardless of modify/no modify on the container. The behaviour for a no mod container is:
* if you try to delete it directly, the prim will shout something along the lines of "Not permitted"
* if you drag a NC/T inventory item from the prim to your own inventory, it'll vanish from the prim and appear in your own inventory
* if you drag a C/NT inventory item from the prim to your own inventory, it'll stay put inside the prim, although you do end up with a copy in your own inventory

So even though you can't ever keep someone from getting the item out of the prim into their own inventory (they can always drag/drop), you can make sure that it will always be present in the prim no matter what (as long as the inventory item is C/NT).

The only use I can think of for wanting to keep an item inside of a prim at all times is a "trial script" though. If people want to break what they bought under any other circumstance, let them. Noone likes NC/NT items.

---

From: someone
Note: I use "llSetTexture()" a lot in my scripts as the use of the textures in my product is very dynamic. It is not the type of product where I embed static textures on a prim faces. Rendering on the prim faces is dynamic in this product.
You don't need the textures to be in the prim's inventory, you can just use their UUID instead.

Instead of:
llSetTexture("texture-name-goes-here", ALL_SIDES);
you'd use:
llSetTexture("00000000-0000-0000-0000-000000000000", ALL_SIDES);

(Right-click on the texture in your inventory and pick "Copy Asset UUID" and use Ctrl-V to paste it)

---

From: JessicaNichol Kappler
Does in make sense that the owner of the object can remove textures and scripts from the internal prim "Contents" folder despite the fact that the product has been tagged as "no mod".
I bought a couple poseball set where the poseballs were "no mod". The anims themselves were perfect, but the positioning was off (a cuddle looses much of its appeal when the other person's fingers come out through your eye socket :p).

The way things are, that was no problem whatsoever since I could simply extract the anims from the poseballs and put them in my own poseballs (the original ones were quite hideous as well).

If no mod had meant that I couldn't extract the anims then I'd have been left with a useless purchase. There are dozens more cases where I cannibalized something I bought because the creator had either messed things up, or because I had a better use for the things I was extracting.

The SL permissions are already heavily biased towards creators, there's really no reason to further restrict what consumers can do with things they've paid for. If you want absolute control over your creation, don't sell it.
JessicaNichol Kappler
Registered User
Join date: 23 May 2007
Posts: 211
03-04-2008 07:08
From: Kitty Barnett
You don't need the textures to be in the prim's inventory, you can just use their UUID instead.

Instead of:
llSetTexture("texture-name-goes-here", ALL_SIDES);
you'd use:
llSetTexture("00000000-0000-0000-0000-000000000000", ALL_SIDES);

(Right-click on the texture in your inventory and pick "Copy Asset UUID" and use Ctrl-V to paste it)


Thanks Kitty. I will try this. It is a lot more tedious work, but likely worth the effort if I want to protect the textures. :)