LlSetLinkPrimitiveParams
From Second Life Wiki
| LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Summary
Function: llSetLinkPrimitiveParams( integer linknumber, list rules );| 328 | Function ID |
| 0.2 | Forced Delay |
| 10.0 | Energy |
Set primitive parameters for linknumber based on rules. You may prefer to use llSetLinkPrimitiveParamsFast which behaves identically except does not sleep the script.
| • integer | linknumber | – | Link number (0: unlinked, 1: root prim, >1: child prims) or a LINK_* flag | |
| • list | rules |
|
| |||||||||||||||||||||
| Flag | V | Description | Usage |
|---|---|---|---|
| PRIM_NAME | 27 | Sets the prim's name. | [ PRIM_NAME, string name ] |
| PRIM_DESC | 28 | Sets the prim's description. | [ PRIM_DESC, string description ] |
| PRIM_TYPE | 9 | Sets the prim's shape. | [ PRIM_TYPE, integer flag ] + flag_parameters |
| PRIM_SLICE | 35 | Sets the prim's slice (a shape attribute). | [ PRIM_SLICE, vector slice ] |
| PRIM_PHYSICS_SHAPE_TYPE | 30 | Sets the prim's physics shape type. | [ PRIM_PHYSICS_SHAPE_TYPE, integer type ] |
| PRIM_MATERIAL | 2 | Sets the prim's material. | [ PRIM_MATERIAL, integer flag ] |
| PRIM_PHYSICS | 3 | Sets the object's physics status. | [ PRIM_PHYSICS, integer boolean ] |
| PRIM_TEMP_ON_REZ | 4 | Sets the object's temporary attribute. | [ PRIM_TEMP_ON_REZ, integer boolean ] |
| PRIM_PHANTOM | 5 | Sets the object's phantom status. | [ PRIM_PHANTOM, integer boolean ] |
| PRIM_POSITION | 6 | Sets the prim's position. | [ PRIM_POSITION, vector position ] |
| PRIM_POS_LOCAL | 33 | Sets the prim's local position. | [ PRIM_POS_LOCAL, vector position ] |
| PRIM_ROTATION | 8 | Sets the prim's global rotation. | [ PRIM_ROTATION, rotation rot ] |
| PRIM_ROT_LOCAL | 29 | Sets the prim's local rotation. | [ PRIM_ROT_LOCAL, rotation rot ] |
| PRIM_SIZE | 7 | Sets the prim's size. | [ PRIM_SIZE, vector size ] |
| PRIM_TEXTURE | 17 | Sets the prim's texture attributes. | [ PRIM_TEXTURE, integer face, string texture, vector repeats, vector offsets, float rotation_in_radians ] |
| PRIM_TEXT | 26 | Sets the prim's floating text. | [ PRIM_TEXT, string text, vector color, float alpha ] |
| PRIM_COLOR | 18 | Sets the face's color. | [ PRIM_COLOR, integer face, vector color, float alpha ] |
| PRIM_BUMP_SHINY | 19 | Sets the face's shiny & bump. | [ PRIM_BUMP_SHINY, integer face, integer shiny, integer bump ] |
| PRIM_POINT_LIGHT | 23 | Sets the prim as a point light. | [ PRIM_POINT_LIGHT, integer boolean, vector color, float intensity, float radius, float falloff ] |
| PRIM_FULLBRIGHT | 20 | Sets the face's full bright flag. | [ PRIM_FULLBRIGHT, integer face, integer boolean ] |
| PRIM_FLEXIBLE | 21 | Sets the prim as flexible. | [ PRIM_FLEXIBLE, integer boolean, integer softness, float gravity, float friction, float wind, float tension, vector force ] |
| PRIM_TEXGEN | 22 | Sets the face's texture mode. | [ PRIM_TEXGEN, integer face, integer type ] |
| PRIM_GLOW | 25 | Sets the face's glow attribute. | [ PRIM_GLOW, integer face, float intensity ] |
| PRIM_OMEGA | 32 | Sets the prim's spin to the specified axis and rate. | [ PRIM_OMEGA, vector axis, float spinrate, float gain ] |
| PRIM_LINK_TARGET | 34 | Sets the next linknumber to use in the linkset. | [ PRIM_LINK_TARGET, integer link_target ] |
| PRIM_CAST_SHADOWS | 24 | Sets the prim's cast shadow attribute. (DEPRECATED) | [ PRIM_CAST_SHADOWS, integer boolean ] |
| PRIM_TYPE_LEGACY | 1 | Sets the prim's shape (legacy mode, DEPRECATED). | [ 1, integer flag ] + flag_parameters |
| Parameter | Additional Parameters | Description | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| [ PRIM_NAME ] | 27 | [ string name ] | Name: llSetObjectName | ||||||||||||||||||
| [ PRIM_DESC ] | 28 | [ string description ] | Description: llSetObjectDesc | ||||||||||||||||||
| [ PRIM_TYPE ] | 9 | [ integer flag ] | Sets the prim shape. | ||||||||||||||||||
| flag Constants | Flag Parameters | ||||||||||||||||||||
| PRIM_TYPE_BOX | 0 | [ integer hole_shape, vector cut, float hollow, vector twist, vector top_size, vector top_shear ] | |||||||||||||||||||
| PRIM_TYPE_CYLINDER | 1 | [ integer hole_shape, vector cut, float hollow, vector twist, vector top_size, vector top_shear ] | |||||||||||||||||||
| PRIM_TYPE_PRISM | 2 | [ integer hole_shape, vector cut, float hollow, vector twist, vector top_size, vector top_shear ] | |||||||||||||||||||
| PRIM_TYPE_SPHERE | 3 | [ integer hole_shape, vector cut, float hollow, vector twist, vector dimple] | |||||||||||||||||||
| PRIM_TYPE_TORUS | 4 | [ integer hole_shape, vector cut, float hollow, vector twist, vector hole_size, vector top_shear, vector advanced_cut, vector taper, float revolutions, float radius_offset, float skew ] | |||||||||||||||||||
| PRIM_TYPE_TUBE | 5 | [ integer hole_shape, vector cut, float hollow, vector twist, vector hole_size, vector top_shear, vector advanced_cut, vector taper, float revolutions, float radius_offset, float skew ] | |||||||||||||||||||
| PRIM_TYPE_RING | 6 | [ integer hole_shape, vector cut, float hollow, vector twist, vector hole_size, vector top_shear, vector advanced_cut, vector taper, float revolutions, float radius_offset, float skew ] | |||||||||||||||||||
| PRIM_TYPE_SCULPT | 7 | [ string map, integer type ] Sculpted_Prims:_FAQ | |||||||||||||||||||
| hole_shape Flags | Shape | hole_shape Flags | Shape | ||||||||||||||||||
| PRIM_HOLE_DEFAULT | 0x00 | Default | PRIM_HOLE_SQUARE | 0x20 | Square | ||||||||||||||||
| PRIM_HOLE_CIRCLE | 0x10 | Circle | PRIM_HOLE_TRIANGLE | 0x30 | Triangle | ||||||||||||||||
| type Flags | Style | Description | |||||||||||||||||||
| PRIM_SCULPT_TYPE_SPHERE | 1 | Sphere | Converge top & bottom, stitch left side to right | ||||||||||||||||||
| PRIM_SCULPT_TYPE_TORUS | 2 | Torus | Stitch top to bottom, stitch left side to right | ||||||||||||||||||
| PRIM_SCULPT_TYPE_PLANE | 3 | Plane | No stitching or converging | ||||||||||||||||||
| PRIM_SCULPT_TYPE_CYLINDER | 4 | Cylinder | Stitch left side to right. | ||||||||||||||||||
| 5 | Mesh model | With this subtype, PRIM_TYPE_SCULPT's map parameter is read-only, when read NULL_KEY is returned.In other words this can only be used to determine that a prim is of the mesh subtype. | |||||||||||||||||||
| PRIM_SCULPT_FLAG_INVERT | 64 | Invert | Render inside out (inverts the normals). | ||||||||||||||||||
| PRIM_SCULPT_FLAG_MIRROR | 128 | Mirror | Render an X axis mirror of the sculpty. | ||||||||||||||||||
| [ PRIM_SLICE ] | 35 | [ vector slice ] | Sets the prim's slice (a shape attribute). | ||||||||||||||||||
| [ PRIM_PHYSICS_SHAPE_TYPE ] | 30 | [ integer type ] | Sets the prim's physics shape type. | ||||||||||||||||||
| type Flags | V | Description | Notes | ||||||||||||||||||
| PRIM_PHYSICS_SHAPE_PRIM | 0 | Use the normal prim shape for physics | default for all non-mesh objects | ||||||||||||||||||
| PRIM_PHYSICS_SHAPE_CONVEX | 2 | Use the convex hull of the prim shape for physics | default for all mesh objects | ||||||||||||||||||
| PRIM_PHYSICS_SHAPE_NONE | 1 | Ignore this prim in the physics shape. | This cannot be applied to the root prim or avatars. | ||||||||||||||||||
| [ PRIM_MATERIAL ] | 2 | [ integer material ] | Sets the prim's material. The material determines the default collision sound, sprite, friction coefficient and restitution coefficient. | ||||||||||||||||||
| material Flags | Description | Friction | Restitution | ||||||||||||||||||
| PRIM_MATERIAL_STONE | 0 | stone | 0.8 | 0.4 | |||||||||||||||||
| PRIM_MATERIAL_METAL | 1 | metal | 0.3 | 0.4 | |||||||||||||||||
| PRIM_MATERIAL_GLASS | 2 | glass | 0.2 | 0.7 | |||||||||||||||||
| PRIM_MATERIAL_WOOD | 3 | wood | 0.6 | 0.5 | |||||||||||||||||
| PRIM_MATERIAL_FLESH | 4 | flesh | 0.9 | 0.3 | |||||||||||||||||
| PRIM_MATERIAL_PLASTIC | 5 | plastic | 0.4 | 0.7 | |||||||||||||||||
| PRIM_MATERIAL_RUBBER | 6 | rubber | 0.9 | 0.9 | |||||||||||||||||
| | 7 | light, DEPRECATED: Looks the same as [ PRIM_FULLBRIGHT, ALL_SIDES, TRUE ] | |||||||||||||||||||
| [ PRIM_PHYSICS ] | 3 | [ integer boolean ] | Physics status llSetStatus | ||||||||||||||||||
| [ PRIM_TEMP_ON_REZ ] | 4 | [ integer boolean ] | Temporary attribute | ||||||||||||||||||
| [ PRIM_PHANTOM ] | 5 | [ integer boolean ] | Phantom status llSetStatus | ||||||||||||||||||
| [ PRIM_POSITION ] | 6 | [ vector position ] | Position, llSetPos | ||||||||||||||||||
| [ PRIM_POS_LOCAL ] | 33 | [ vector position ] | Local position, llSetPos | ||||||||||||||||||
| [ PRIM_ROTATION ] | 8 | [ rotation rot ] | Global rotation, llSetRot (broken for child prims) | ||||||||||||||||||
| [ PRIM_ROT_LOCAL ] | 29 | [ rotation rot ] | Local rotation, llSetLocalRot | ||||||||||||||||||
| [ PRIM_SIZE ] | 7 | [ vector size ] | Size, llSetScale | ||||||||||||||||||
| [ PRIM_TEXTURE, integer face ] | 17 | [ string texture, vector repeats, vector offsets, float rotation_in_radians ] |
| ||||||||||||||||||
| [ PRIM_TEXT ] | 26 | [ string text, vector color, float alpha ] | Floating Text: llSetText | ||||||||||||||||||
| [ PRIM_COLOR, integer face ] | 18 | [ vector color, float alpha ] |
| ||||||||||||||||||
| [ PRIM_BUMP_SHINY, integer face ] | 19 | [ integer shiny, integer bump ] | |||||||||||||||||||
| shiny & bump Flags | Description | ||||||||||||||||||||
| PRIM_SHINY_NONE | 0 | none | |||||||||||||||||||
| PRIM_SHINY_LOW | 1 | low | |||||||||||||||||||
| PRIM_SHINY_MEDIUM | 2 | medium | |||||||||||||||||||
| PRIM_SHINY_HIGH | 3 | high | |||||||||||||||||||
| PRIM_BUMP_NONE | 0 | none: no bump map | |||||||||||||||||||
| PRIM_BUMP_BRIGHT | 1 | brightness: generate from highlights | |||||||||||||||||||
| PRIM_BUMP_DARK | 2 | darkness: generate from lowlights | |||||||||||||||||||
| PRIM_BUMP_WOOD | 3 | woodgrain | |||||||||||||||||||
| PRIM_BUMP_BARK | 4 | bark | |||||||||||||||||||
| PRIM_BUMP_BRICKS | 5 | bricks | |||||||||||||||||||
| PRIM_BUMP_CHECKER | 6 | checker | |||||||||||||||||||
| PRIM_BUMP_CONCRETE | 7 | concrete | |||||||||||||||||||
| PRIM_BUMP_TILE | 8 | crustytile | |||||||||||||||||||
| PRIM_BUMP_STONE | 9 | cutstone: blocks | |||||||||||||||||||
| PRIM_BUMP_DISKS | 10 | discs: packed circles | |||||||||||||||||||
| PRIM_BUMP_GRAVEL | 11 | gravel | |||||||||||||||||||
| PRIM_BUMP_BLOBS | 12 | petridish: blobby amoeba like shapes | |||||||||||||||||||
| PRIM_BUMP_SIDING | 13 | siding | |||||||||||||||||||
| PRIM_BUMP_LARGETILE | 14 | stonetile | |||||||||||||||||||
| PRIM_BUMP_STUCCO | 15 | stucco | |||||||||||||||||||
| PRIM_BUMP_SUCTION | 16 | suction: rings | |||||||||||||||||||
| PRIM_BUMP_WEAVE | 17 | weave | |||||||||||||||||||
| [ PRIM_FULLBRIGHT, integer face ] | 20 | [ integer boolean ] | |||||||||||||||||||
| [ PRIM_FLEXIBLE ] | 21 | [ integer boolean, integer softness, float gravity, float friction, float wind, float tension, vector force ] | |||||||||||||||||||
| [ PRIM_TEXGEN, integer face ] | 22 | [ integer mode ] | |||||||||||||||||||
| mode Constants | Description | ||||||||||||||||||||
| PRIM_TEXGEN_DEFAULT | 0 | The texture repeats units are in texture repeats per face. | |||||||||||||||||||
| PRIM_TEXGEN_PLANAR | 1 | The texture repeats units are in texture repeats per half meter. This is in contrast to the in-world editing tool, in which the planar texture scaling units are repeats per meter. | |||||||||||||||||||
| [ PRIM_POINT_LIGHT ] | 23 | [ integer boolean, vector color, float intensity, float radius, float falloff ] | |||||||||||||||||||
| [ PRIM_GLOW, integer face ] | 25 | [ float intensity ] | |||||||||||||||||||
| [ PRIM_OMEGA ] | 32 | [ vector axis, float spinrate, float gain ] | llTargetOmega | ||||||||||||||||||
| [ PRIM_LINK_TARGET ] | 34 | [ integer link_target ] | Multiple llSetLinkPrimitiveParams calls. | ||||||||||||||||||
| [ | 24 | [ integer boolean ] | DEPRECATED: Shadow casting for the primitive | ||||||||||||||||||
| [ 1 ] | 1 | [ integer flag, paramaters ] | |||||||||||||||||||
| flag Constants | Flag Parameters | ||||||||||||||||||||
| PRIM_TYPE_BOX | 0 | [ vector cut, float hollow, float twist_end, vector top_size, vector top_shear ] | |||||||||||||||||||
| PRIM_TYPE_CYLINDER | 1 | [ vector cut, float hollow, float twist_end, vector top_size, vector top_shear ] | |||||||||||||||||||
| PRIM_TYPE_PRISM | 2 | [ vector cut, float hollow, float twist_end, vector top_size, vector top_shear ] | |||||||||||||||||||
| PRIM_TYPE_SPHERE | 3 | [ vector cut, float hollow, vector dimple ] | |||||||||||||||||||
| PRIM_TYPE_TORUS | 4 | [ vector cut, float hollow, float twist_end, float hole_size_y, vector top_shear, vector advanced_cut ] | |||||||||||||||||||
| PRIM_TYPE_TUBE | 5 | [ vector cut, float hollow, float twist_end, float topshear_x ] | |||||||||||||||||||
Caveats
- This function causes the script to sleep for 0.2 seconds.
- The prim description is limited to 127 bytes, any string longer then that will be truncated. This truncation does not always happen when the attribute is set or read.
- The pipe character '|' and the newline character '\n' are not legal in a prim's description, they will be replaced by with '?'[2].
- Note that when people have "Hover Tips on All Objects" selected in the viewer's "View" menu, they'll see the object description pop-up for any object under their mouse pointer. For that reason, it is good practice to only set human-friendly information in the description (e.g. keys and such).
- When an attached object is detached, changes made by script to the name and description (of the root prim) of the attachment will be lost. While the object is attached the name and description can be changed but it will not be reflected in inventory. This caveat does not apply to child prims.
- If texture is missing from the prim's inventory and it is not a UUID or it is not a texture then an error is shouted on DEBUG_CHANNEL.
- If texture is a UUID then there are no new asset permissions consequences for the object.
- The resulting object develops no new usage restrictions that might have occurred if the asset had been placed in the prims inventory.
- repeats is not only used to set the number of repeats but the sign of the individual components is also used to set the "Flip" attribute.
- As with llGetTexture, NULL_KEY is returned when the owner does not have full permissions to the object and the texture is not in the prim's inventory.
- In the default texture mapping mode the texture repeats units are in texture repeats per face. In the planar texture mapping mode the texture repeats units are in texture repeats per half meter. This is in contrast to the in-world editing tool, in which the planar texture scaling units are repeats per meter.
- Do not rely on Floating Text as a storage medium; it is neither secure nor finalized.
- Floating text has been altered in past server updates, breaking existing content; future changes may occur.
- Even "invisible"[3] floating text is transmitted to the client.
- It can be viewed by anyone with a client that is capable of rendering text that is supposed to be invisible.
- The network packets that contain the text can be sniffed and the text read.
- PRIM_TYPE can only be used with LINK_SET if the object contains 10 or fewer prims. It can only be used with LINK_ALL_OTHERS or LINK_ALL_CHILDREN if the object contains 11 or fewer prims. If there are more prims, the operation will fail and an error will be shouted to DEBUG_CHANNEL. Work around this by looping through the prims with llSetLinkPrimitiveParamsFast.
- top_size and client values are different, the ranges do not line up, conversion is required. This simple equation can be used: answer = 1.0 - value. See top_size Explained for more information.
- PRIM_POSITION caveats
- Depending upon the situation position may need to be in local coordinates or region coordinates, See llSetPos#Specification for details.
- It is usually not a good idea to combine PRIM_POSITION with LINK_SET. The root will treat the coordinates as world or attachment, while the children will treat them as local, yielding inconsistent results or failure. If you want to move the object as a unit, use LINK_ROOT instead.
- The range the prim can move is limited if it is an unattached root prim. The distance is capped to 10m per PRIM_POSITION call. See WarpPos. This is a very special case. Do not rely on rule duplication of other flags - the results are undefined, and things will break in the future.
- Moving avatars with PRIM_POSITION
- Moving the prim the avatar sat upon does not move the avatar.
- Moving an avatar does not move the prim they sat upon.
- Sit-target coordinates do not easily map to prim coordinates, use UpdateSitTarget.
- If position is greater than 54 meters away from the center, the repositioning will silently fail.
- Depending upon the situation position may need to be in local coordinates or region coordinates, See llSetPos#Specification for details.
- PRIM_OMEGA on nonphysical objects, and child prims of physical objects, is only a client side effect; the object or prim will collide as non-moving geometry.
- PRIM_OMEGA cannot be used on avatars sitting on the object. It will emit the error message "PRIM_OMEGA disallowed on agent".
- If PRIM_OMEGA does not appear to be working, make sure that that Develop > Network > Velocity Interpolate Objects is enabled on the viewer.
- PRIM_PHANTOM, PRIM_PHYSICS and PRIM_TEMP_ON_REZ applies to the entire object (linkset).
- Values may drift, become truncated or be range limited. Some limits are applied by the client during deserialization before rendering, others are applied by the simulator before storing the values.
- When testing vectors and rotations use llVecDist and llAngleBetween (respectively) to perform fuzzy tests.
- If face is ALL_SIDES then the flag works on all sides.
- The flag silently fails if its face value indicates a face that does not exist.
- Applying an operation to LINK_SET is applied first to the root prim, then to each child prim.
- llGetLinkPrimitiveParams can be used to get corresponding parameters from linked prims.
- PRIM_ROTATION is bugged in child prims, see Useful Snippets for a workaround, or the linked SVC-93 issue below.
- Some prim properties are reset by this function
- A flexible prim will become not flexible
- A sliced prim will become unsliced
- In order to preserve properties they must be saved and explicitly set in the function call
Examples
A simple script to light up a prim in a linkset when touched, and unlight the others using llSetLinkPrimitiveParams, when script is installed in the root prim of the linkset.
default { touch_start(integer total_number) { // Turn off all prims llSetLinkPrimitiveParams(LINK_SET,[PRIM_FULLBRIGHT,ALL_SIDES,FALSE]); // Turn on the one that was touched llSetLinkPrimitiveParams(llDetectedLinkNumber(0),[PRIM_FULLBRIGHT,ALL_SIDES,TRUE]); } }
Useful Snippets
//-- PRIM_ROTATION workaround for child prims (works in unattached objects only) llSetLinkPrimitiveParams( linknumber, [PRIM_ROT_LOCAL, rot * llGetRootRotation()] ) //-- PRIM_ROTATION workaround for child prims (works in linked objects only) llSetLinkPrimitiveParams( linknumber, [PRIM_ROT_LOCAL, rot * llList2Rot( llGetLinkPrimitiveParams( LINK_ROOT, [PRIM_ROT_LOCAL] ), 0 )] ) //-- PRIM_ROTATION workaround for child prims (works in all scenarios) llSetLinkPrimitiveParams( linknumber, [PRIM_ROT_LOCAL, rot * llList2Rot( llGetLinkPrimitiveParams( !!llGetLinkNumber(), [PRIM_ROT_LOCAL] ), 0 )] )
Notes
Link Numbers
Each prim that makes up an object has an address, a link number. To access a specific prim in the object, the prim's link number must be known. In addition to prims having link numbers, avatars seated upon the object do as well.
- If an object consists of only one prim, and there are no avatars seated upon it, the (root) prim's link number is zero.
- However, if the object is made up of multiple prims or there is an avatar seated upon the object, the root prim's link number is one.
When an avatar sits on an object, it is added to the end of the link set and will have the largest link number. In addition to this, while an avatar is seated upon an object, the object is unable to link or unlink prims without unseating the avatars first.
Counting Prims & Avatars
There are two functions of interest when trying to find the number of prims and avatars on an object.
-
llGetNumberOfPrims()- Returns the number of prims and seated avatars. -
llGetObjectPrimCount(llGetKey())- Returns only the number of prims in the object but will return zero for attachments.
integer GetPrimCount() { //always returns only the number of prims if(llGetAttached())//Is it attached? return llGetNumberOfPrims();//returns avatars and prims but attachments can't be sat on. return llGetObjectPrimCount(llGetKey());//returns only prims but won't work on attachments. }See llGetNumberOfPrims for more about counting prims and avatars.
Link Numbers
Each prim that makes up an object has an address, a link number. To access a specific prim in the object, the prim's link number must be known. In addition to prims having link numbers, avatars seated upon the object do as well.
- If an object consists of only one prim, and there are no avatars seated upon it, the (root) prim's link number is zero.
- However, if the object is made up of multiple prims or there is an avatar seated upon the object, the root prim's link number is one.
When an avatar sits on an object, it is added to the end of the link set and will have the largest link number. In addition to this, while an avatar is seated upon an object, the object is unable to link or unlink prims without unseating the avatars first.
Counting Prims & Avatars
There are two functions of interest when trying to find the number of prims and avatars on an object.
-
llGetNumberOfPrims()- Returns the number of prims and seated avatars. -
llGetObjectPrimCount(llGetKey())- Returns only the number of prims in the object but will return zero for attachments.
integer GetPrimCount() { //always returns only the number of prims if(llGetAttached())//Is it attached? return llGetNumberOfPrims();//returns avatars and prims but attachments can't be sat on. return llGetObjectPrimCount(llGetKey());//returns only prims but won't work on attachments. }See llGetNumberOfPrims for more about counting prims and avatars.
PRIM_POSITION
Avatars sitting on the object can be moved with llSetLinkPrimitiveParams and PRIM_POSITION. This was originally a mis-feature but according to Andrew Linden LL has decided to support it.
Examples
The below example moves an avatar to x,y,z without moving the prim they are sitting on. If x,y,z is more than 54 meters away the call will silently fail. Remember x,y,z is in object relative coordinates just like any other linked prim in a set.
Avatars are always the last prims in the set, so llGetNumberOfPrims can be used for a single avatar sitting on a vehicle.
Example:llSetLinkPrimitiveParams(llGetNumberOfPrims(), [PRIM_POSITION, <x,y,z>]);
See Also
Functions
| • | llGetLinkNumber | – | Returns the link number of the prim the script is in. | |
| • | llGetLinkNumberOfSides | – | Returns the number of faces of the linked prim. | |
| • | llGetLinkNumber | – | Returns the link number of the prim the script is in. | |
| • | llSetPrimitiveParams | – | Set many primitive parameters | |
| • | llSetLinkPrimitiveParamsFast | – | Set many primitive parameters without sleep on link objects | |
| • | llGetPrimitiveParams | – | Get many primitive parameters | |
| • | llGetLinkPrimitiveParams | – | Get many primitive parameters of link objects | |
| • | llSetLinkAlpha | |||
| • | llSetLinkColor | |||
| • | llSetLinkTexture |
Articles
| • | Limits | – | SL limits and constrictions | |
| • | Color in LSL | |||
| • | Translucent Color | |||
| • | Color in LSL | |||
| • | Translucent Color |
Deep Notes
| Range[4] | Top Tapered | No Tapering | Bottom Tapered | |
|---|---|---|---|---|
| Client | [-1, 1] | 1.0 | 0.0 | -1.0 |
| PRIM_TYPE | [0, 2] | 0.0 | 1.0 | 2.0 |
| LEGACY | [0, 1] | 0.0 | 1.0 | NA |
| Client < 1.11 | [0, 1] | 0.0 | 1.0 | NA |
top_size Explained
When the original PRIM_TYPE interface was retired (PRIM_TYPE_LEGACY, SL 1.5), the new PRIM_TYPE interface did not yet support tapering of the bottom of the prim, this feature wasn't added until SL 1.11 (two years later). Instead of retiring the new PRIM_TYPE when it was added, the range of top_size was enlarged; meanwhile in the client they redefined the parameter and it's values. This redefinition and range enlargement resulted in two interfaces that did the same thing but achieved it through different values. Meanwhile PRIM_TYPE_LEGACY's interface was not updated to support tapering of the bottom of the prim. Consequently all three interfaces have different ranges, making for a rather nasty caveat.
All Issues
~ Search JIRA for related Issues| | | SVC-2105 | [A, C] | llSetLinkListPrimitiveParams() for setting multiple, specific linked items | |
| | SVC-914 | [A, C] | CHANGED_TEXTURE is not triggered when texture is changed via script | ||
| | | SVC-93 | [A, C] | llSetRot and llSetPrimitiveParams (using PRIM_ROTATION) incorrectly implemented for child prims. |
Footnotes
- ^ LINK_ROOT does not work on single prim objects!
- ^ The pipe character historically has been used to separate fields in the serialized version of inventory. The field is not multi-line so the newline character holds no meaning in this context.
- ^ Floating text with an alpha set to 0.0 is rendered "invisible"
- ^ The ranges in this article are written in Interval Notation.

