# llSetGroundTexture

*LSL function*

```lsl
integer integer llSetGroundTexture(list changes);
```

- `list changes`: A list of terrain detail properties and values to change.

- Returns: `integer`
- Energy: 10

Changes the painted terrain textures on the region based on changes. The script owner must have estate management rights. Returns an integer status.

Changes the textures used to paint the terrain of a region. The owner of the script must be able to manage the estate.

```lsl title="How to use" frame="terminal"
integer result = llSetGroundTexture([]);
```

## Specification

Constant group [GroundTextureParam](/constants/groups/GroundTextureParam/):

```lsl
TERRAIN_DETAIL_1 = 0
TERRAIN_DETAIL_2 = 1
TERRAIN_DETAIL_3 = 2
TERRAIN_DETAIL_4 = 3
TERRAIN_HEIGHT_RANGE_NE, float low, float high
TERRAIN_HEIGHT_RANGE_NW, float low, float high
TERRAIN_HEIGHT_RANGE_SE, float low, float high
TERRAIN_HEIGHT_RANGE_SW, float low, float high
TERRAIN_PBR_OFFSET_1 = 16
TERRAIN_PBR_OFFSET_2 = 17
TERRAIN_PBR_OFFSET_3 = 18
TERRAIN_PBR_OFFSET_4 = 19
TERRAIN_PBR_ROTATION_1 = 12
TERRAIN_PBR_ROTATION_2 = 13
TERRAIN_PBR_ROTATION_3 = 14
TERRAIN_PBR_ROTATION_4 = 15
TERRAIN_PBR_SCALE_1 = 8
TERRAIN_PBR_SCALE_2 = 9
TERRAIN_PBR_SCALE_3 = 10
TERRAIN_PBR_SCALE_4 = 11
```

## Caveats

- This function must be executed from a script in an object owned by the region owner or an estate manager.
- This function is throttled at 4 calls every 2 minutes.
- Always returns 0
- PBR terrain is all or nothing. Mixing normal terrain textures with PBR textures will cause the PBR textures to appear gray.

## See also

### Functions

- [llModifyLand](/functions/llModifyLand/) — Modifies terrain contours.

---

*Source: [LlSetGroundTexture](https://wiki.secondlife.com/wiki/LlSetGroundTexture) on the Second Life Wiki. Content from the Second Life Wiki articles LlSetGroundTexture (revision 1218410, 2025-08-11) and Template:LSL Constants/GroundTexture (revision 1218143, 2025-04-03), CC BY-SA 3.0.*

---

From lsl.dev: https://lsl.dev/functions/llSetGroundTexture/
