# PRIM_TYPE_SCULPT

*LSL constant*

```lsl
integer PRIM_TYPE_SCULPT = 7;
```

Constant groups: [PrimType](/constants/groups/PrimType/)

`PRIM_TYPE_SCULPT` is a parameter of [PRIM_TYPE](/constants/PRIM_TYPE/) used to make a prim into a sculpty of specific shape and type.

[Sculpted Prims: FAQ](https://wiki.secondlife.com/wiki/Sculpted_Prims:_FAQ)

## Caveats

- The value of **map** is [NULL_KEY](/constants/NULL_KEY/) when the [owner](https://wiki.secondlife.com/wiki/Category:LSL_Owner) does not have [full permissions](https://wiki.secondlife.com/wiki/Category:LSL_Permissions/Asset) to the object and the map asset is not in the prim's inventory.
- While it is possible to use this to animate an object, it is not recommended. For details see: [Why UUID Flipping is Bad](https://wiki.secondlife.com/wiki/Why_UUID_Flipping_is_Bad)

## Examples

<details open>
<summary>Example 1</summary>

```lsl
llSetPrimitiveParams([PRIM_TYPE,
                        PRIM_TYPE_SCULPT,
                            "d962089b-2197-993c-9ec9-4993eb0a95f2",  // sculpty texture
                            PRIM_SCULPT_TYPE_SPHERE                  // type
                            | PRIM_SCULPT_FLAG_MIRROR     // use pipe | to add each flag
                      ]);
```

</details>

<details>
<summary>Example 2</summary>

```lsl
//Rotates between the different sculpt types.
default
{
    touch_start(integer a)
    {
        list b = llGetPrimitiveParams([PRIM_TYPE]);
        integer type = llList2Integer(b,2) % 4;
        llSetObjectDesc(llList2String([ "Sphere",
                                        "Torus",
                                        "Plane",
                                        "Cylinder"], type));
        llSetPrimitiveParams(PRIM_TYPE + llList2List(b, 0, 1) + (type + 1));
    }
}
```

</details>

<details>
<summary>Example 3</summary>

```lsl
//A simple script to setup a prim as a sculpty.
default
{
    state_entry()
    {
        llSetPrimitiveParams([
            PRIM_TYPE, PRIM_TYPE_SCULPT, "your Sculpt map name in the object", PRIM_SCULPT_TYPE_SPHERE
          , PRIM_TEXTURE, ALL_SIDES, "your texture name in the object", <1.0, 1.0, 0.0>, <0.0, 0.0, 0.0>, 0.0 //comment out if not needed.
//          , PRIM_SIZE, <0.63,0.199,0.52> // If you need to change the scale (size) of the object, uncomment this line.
        ]);
    } // The gray color you see on your sculpt object is the SL no found texture that is gray.
}
```

</details>

## History

- SVN:1053 r94734 Branch:trunk Tuesday, 19 August 2008 - PRIM_SCULPT_FLAG\_\* syntax merged into the Trunk. Support for syntax slated for Client 1.21.0
- SVN:758 r91966 Branch:featurettes-5 Thursday, 10 July 2008 - Introduction of PRIM_SCULPT_FLAG\_\* extended syntax.

## See also

### Constants

| Constant | Type | Value | Description |
| --- | --- | --- | --- |
| [PRIM_TYPE](/constants/PRIM_TYPE/) |  |  |  |
| [CHANGED_SHAPE](/constants/CHANGED_SHAPE/) |  |  |  |

### Functions

- [llGetPrimitiveParams](/functions/llGetPrimitiveParams/)

### Events

- [changed](/events/changed/)

---

*Source: [PRIM TYPE SCULPT](https://wiki.secondlife.com/wiki/PRIM_TYPE_SCULPT) on the Second Life Wiki. Content from the Second Life Wiki article PRIM TYPE SCULPT (revision 1194701, 2015-01-24), CC BY-SA 3.0.*

---

From lsl.dev: https://lsl.dev/constants/PRIM_TYPE_SCULPT/
