Link
In
Second Life, several
prims can be linked together into a "linked set" (also "link" or "linkset") that act as (or, by its definition, are) a single
object. Linked sets have one
parent prim and 1 or more
child prims. Linksets are limited to 256 prims.
Notice : It seems that a linkset can only have 255 prims + 1 sitting avatar, not 256 prims.
Link Distance
A set of prims needn't be contiguous to be linkable. They can overlap, or they can be completely separated from each other; what you see has little bearing on whether you can link them. What does matter is their size and their relative distance, measured from center to center. The set can only be linked if:
- All prims, no matter how small, with centers within 1m of each other are linkable.
- No prims, no matter how large, can be linked if their centers are further than 32m apart.
- In all other cases, the max link distance is related to prim size.
Illuminating example: I could not link a tower of five contiguous parts that was just over 40m tall. But I succeeded in linking its inner parts. Afterward, I was able to link its bottom and top parts to the inner, pre-linked segment.
Andrew Linden posted the exact formula used to calculate the
distance:
size ratio of prims.
Order Of Objects; The Root Prim
Second Life retains data on the specific order of parent and child objects within a linked set. The last selected prim is the parent/root. (This is probably mostly useful in
scripting, but a non-scripting use is ordering behavior of multiple
sit targets in a linkset.) In objects with only one prim, the object's link number is
0 (unless there is an
avatar sitting on it; then it is
1). In objects with multiple prims, the
root is
1 and children start at
2. So, in a 2-prim object,
llGetLinkNumber would
return 1 in the parent/root and
2 in the first (and only) child. Avatars seated on an object are assigned link numbers at the end of the linked set in the order seated.
If a script is in a child object's
inventory, it may return different data than an object contained in the parent. The most notable example is in
llSensor.
Note: Linked objects are sometimes erroneously referred to as "
groups". This can be confusing when talking about both linked objects and groups of
users.
Functions
Events
Event | Description |
link_message | Triggered when a message sent by llMessageLinked is recieved. |
changed | Triggered when a prim is linked or delinked. |
Constants
(used by the functions
llMessageLinked,
llSetLinkAlpha, and
llSetLinkColor)
Constant | Value | Description |
LINK_ROOT | 1 | The root prim in a linked set (but not in a single prim, which is 0) |
LINK_SET | -1 | All prims in the object. |
LINK_ALL_OTHERS | -2 | All other prims in the object besides the prim the function is in. |
LINK_ALL_CHILDREN | -3 | All child prims in the object. |
LINK_THIS | -4 | The prim the script is in. |
Q: Is there a way to set the texture of another prim in the linkset?
A: Yes, use llSetLinkTexture.
Q: Can I change the order of prims in a linked object without delinking and relinking it?
A: No.
Functions |
Constants |
Events |
Joints |
Root |
Parent |
Child