Difference between revisions of "Template:LSL Constants/PrimitiveParams"

From Second Life Wiki
Jump to navigation Jump to search
(Add caveat that RENDER_MATERIAL is not in release viewer yet)
Line 132: Line 132:
{{!}} [[#PRIM_RENDER_MATERIAL|PRIM_RENDER_MATERIAL]]
{{!}} [[#PRIM_RENDER_MATERIAL|PRIM_RENDER_MATERIAL]]
{{!}} 43
{{!}} 43
{{!}} Sets the prim's material ID.
{{!}} Sets the prim's {{LSL Param|render_material}}.
<strong>Caveat:</strong> This function will be supported in the upcoming GLTF Materials project. Currently it will only work in supported testing areas with a supported test viewer.
<strong>Caveat:</strong> This function will be supported in the upcoming GLTF Materials project. Currently it will only work in supported testing areas with a supported test viewer.
{{!}} [&nbsp;{{#var:render_material_const}}, [[integer]]&nbsp;{{LSL Param|face}}, [[string]]&nbsp;{{LSL Param|material}}&nbsp;]
{{!}} [&nbsp;{{#var:render_material_const}}, [[integer]]&nbsp;{{LSL Param|face}}, [[string]]&nbsp;{{LSL Param|render_material}}&nbsp;]
{{!}}-
{{!}}-
{{!}} [[#PRIM_TEXT|PRIM_TEXT]]
{{!}} [[#PRIM_TEXT|PRIM_TEXT]]

Revision as of 13:11, 5 October 2022

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_RENDER_MATERIAL 43 Sets the prim's render_material.

Caveat: This function will be supported in the upcoming GLTF Materials project. Currently it will only work in supported testing areas with a supported test viewer.

PRIM_RENDER_MATERIAL, integer face, string render_material ]
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 linear_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_NORMAL 37 Sets the prim's normal map attributes. PRIM_NORMAL, integer face, string texture, vector repeats, vector offsets, float rotation_in_radians ]
PRIM_SPECULAR 36 Sets the prim's specular map attributes. PRIM_SPECULAR, integer face, string texture, vector repeats, vector offsets, float rotation_in_radians, vector color, integer glossiness, integer environment ]
PRIM_ALPHA_MODE 38 Sets the prim's diffuse texture alpha rendering mode attributes. PRIM_ALPHA_MODE, integer face, integer alpha_mode, integer mask_cutoff ]
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] 1 Sets the prim's shape (legacy mode, DEPRECATED). [ 1, integer flag ] + flag_parameters
PRIM_ALLOW_UNSIT 39 Avatars are allowed to manually stand up when seated on this prim. Only valid for prims in a valid experience. [ PRIM_ALLOW_UNSIT, integer boolean ]
PRIM_SCRIPTED_SIT_ONLY 40 Avatars are not permitted to manually sit on this prim. [ PRIM_SCRIPTED_SIT_ONLY, integer boolean ]
PRIM_SIT_TARGET 41 The sit target, if any defined for this prim. [ PRIM_SIT_TARGET, integer boolean, vector offset, rotation rot ]
PRIM_PROJECTOR 42 Light projector settings for this prim. [ PRIM_PROJECTOR, string texture, float fov, float focus, float ambiance ]
Parameter Return Values / Additional Parameters Description
PRIM_NAME ] 27 [ string name ] Name: llGetObjectName / llSetObjectName
PRIM_DESC ] 28 [ string description ] Description: llGetObjectDesc / llSetObjectDesc
PRIM_TYPE ] 9 [ integer flag ] + flag_parameters Gets / Sets the prim shape.
flag Constants Additional Return Values / 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 mapinteger 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.
PRIM_SCULPT_TYPE_MESH 5 Mesh model See: Mesh
PRIM_SCULPT_FLAG_ZZZZZZZZ 63
PRIM_SCULPT_FLAG_ANIMESH 0x20 Animesh Read-only flag to query Animated mesh status.
PRIM_SCULPT_FLAG_INVERT 0x40 Invert Render inside out (inverts the normals).
PRIM_SCULPT_FLAG_MIRROR 0x80 Mirror Render an X axis mirror of the sculpty.
PRIM_SLICE ] 35 [ vector slice ] Gets / Sets the prim's slice (a shape attribute).
PRIM_PHYSICS_SHAPE_TYPE ] 30 [ integer type ] Gets / Sets the prim's physics shape type.
type Flags V Description Notes
PRIM_PHYSICS_SHAPE_PRIM 0 The visible shape of the prim determines its physics-shape default for all non-mesh prims
PRIM_PHYSICS_SHAPE_CONVEX 2 Use the convex hull formulas for generating the prim's physics-shape default for all mesh prims
PRIM_PHYSICS_SHAPE_NONE 1 The prim will not contribute to the object's physics-shape This cannot be applied to the root prim or avatars.

This prim has no physics representation at all. Like phantom objects, it will not collide with avatars or other objects. Unlike phantom prims, it will also pass freely through the terrain when the parent object is physical. Like volume detect it doesn't collide with terrain. Unlike volume detect, it will not register collision events.

PRIM_MATERIAL ] 2 [ integer material ] Gets / 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
PRIM_MATERIAL_LIGHT 7 light, DEPRECATED: Looks the same as [ PRIM_FULLBRIGHT, ALL_SIDES, TRUE ] 0.6 0.5
PRIM_PHYSICS ] 3 [ integer boolean ] Physics status llGetStatus / llSetStatus
PRIM_TEMP_ON_REZ ] 4 [ integer boolean ] Temporary attribute
PRIM_PHANTOM ] 5 [ integer boolean ] Phantom status llGetStatus / llSetStatus
PRIM_POSITION ] 6 [ vector position ] Position, llGetPos / llSetPos
PRIM_POS_LOCAL ] 33 [ vector position ] Local position, llGetLocalPos / llSetPos
PRIM_ROTATION ] 8 [ rotation rot ] Global rotation, llGetRot / llSetRot (broken for child prims)
PRIM_ROT_LOCAL ] 29 [ rotation rot ] Local rotation, llGetLocalRot / llSetLocalRot
PRIM_SIZE ] 7 [ vector size ] Size, llGetScale / llSetScale
PRIM_TEXTURE, integer face ] 17 [ string texture, vector repeats, vector offsets, float rotation_in_radians ]
Texture: llGetTexture llSetTexture
Repeats: llGetTextureScale llScaleTexture
Offset: llGetTextureOffset llOffsetTexture
Rotation: llGetTextureRot llRotateTexture
PRIM_RENDER_MATERIAL, integer face ] 43 [ string render_material ]

Caveat: This function will be supported in the upcoming GLTF Materials project. Currently it will only work in supported testing areas with a supported test viewer.

Material: llGetRenderMaterial llSetRenderMaterial
PRIM_TEXT ] 26 [ string text, vector color, float alpha ] Floating Text: NA / llSetText
PRIM_COLOR, integer face ] 18 [ vector color, float alpha ]
Alpha: llGetAlpha llSetAlpha
Color: llGetColor llSetColor
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 linear_color, float intensity, float radius, float falloff ] linear_color param accepts color in Linear space - use llsRGB2Linear to convert regular LSL color into Linear space.
PRIM_GLOW, integer face ] 25 [ float intensity ]
PRIM_OMEGA ] 32 vector axis, float spinrate, float gain ] llTargetOmega
PRIM_NORMAL, integer face ] 37 string texture, vector repeats, vector offsets, float rotation_in_radians ]
PRIM_SPECULAR, integer face ] 36 string texture, vector repeats, vector offsets, float rotation_in_radians, vector color, integer glossiness integer environment ]
PRIM_ALPHA_MODE, integer face ] 38 integer alpha_mode, integer mask_cutoff ]
34 [] Multiple llGetLinkPrimitiveParams / llSetLinkPrimitiveParams calls.
PRIM_CAST_SHADOWS ] 24 [ integer boolean ] DEPRECATED: Shadow casting for the primitive
[ 1 ]
PRIM_TYPE_LEGACY[1]
1 [ integer flag] + flag_parameters
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 ]
PRIM_ALLOW_UNSIT ] 39 [ integer boolean ]
PRIM_SCRIPTED_SIT_ONLY ] 40 [ integer boolean ]
PRIM_SIT_TARGET ] 41 [ integer boolean , vector offset, rotation rot ] Sit target, llSitTarget. The position can be ZERO_VECTOR.
PRIM_PROJECTOR ] 42 [ string texture, float fov, float focus, float ambiance ] Light projector settings, the texture may be NULL_KEY. (Write only, for now. See here)

Caveats

  • 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 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.
  • 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.
  • If render_material is missing from the prim's inventory and it is not a UUID or it is not a material then an error is shouted on DEBUG_CHANNEL.
  • If render_material 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.
  • If render_material is provided as NULL_KEY, the glTF Material is removed from face, reverting back to any underlying Blinn-Phong materials.
  • 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.
  • 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_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.
  • In the parameters returned by llGetPrimitiveParams([PRIM_OMEGA]), the vector is normalized, and the spinrate is multiplied by the magnitude of the original vector.
  • 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.
  • offsets and rotation_in_radians are limited to positive values only, unlike PRIM_TEXTURE and GLTF Overrides. To convert a negative offset to positive, add 1, and to convert a negative rotation to positive, add TWO_PI.
  • To clear the normal map parameters from the face (and possibly remove the material), set texture to NULL_KEY (the other parameters must be supplied in this case but will be ignored).
  • Note that whenever any face in a linkset contains a material (i.e. has a non-default PRIM_NORMAL, PRIM_SPECULAR, or PRIM_ALPHA_MODE), the linkset will use the new accounting system.
  • 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.
  • 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.
  • offsets and rotation_in_radians are limited to positive values only, unlike PRIM_TEXTURE and GLTF Overrides. To convert a negative offset to positive, add 1, and to convert a negative rotation to positive, add TWO_PI.
  • To clear the specular map parameters from the face (and possibly remove the material), set texture to NULL_KEY (the other parameters must be supplied in this case but will be ignored).
  • Note that whenever any face in a linkset contains a material (i.e. has a non-default PRIM_NORMAL, PRIM_SPECULAR, or PRIM_ALPHA_MODE), the linkset will use the new accounting system.
  • 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.
  • If PRIM_LINK_TARGET's link_target describes a seated avatar...
  • If face is ALL_SIDES then the flag works on all sides.
  • If face indicates a face that does not exist the flag returns nothing.