# setElementBonePosition (Client)

> Moves a ped's or object's bone to a world position, keeping its orientation. The change applies on this client only.

- **Platform**: MY Multiplayer (MYMP)
- **Kind**: Lua Function
- **Side**: Client
- **Category**: Components and bones
- **URL**: https://wiki.mymp.gg/en/setElementBonePosition

## Syntax

```lua
bool setElementBonePosition(ped|object element, int|string bone, float x, y, z)
```

## Parameters

| Name | Type | Description |
| --- | --- | --- |
| `element` | `ped\|object` | The ped, player or object. An object needs a model with a skeleton or a node tree. |
| `bone` | `int\|string` | The bone. On a ped: an MTA bone id, a rig bone's tag or its name. On an object: a node's name or a bone's tag. |
| `x, y, z` | `float` | The world position, as three numbers or one `vec3`. |

## Returns

`true` if it was moved, `false` if the element is streamed out.

A ped's pose and an animated object's pose are rebuilt every frame: change them in `onClientPedsProcessed`, which fires once the frame's poses are built. An object without an animation keeps what was set. Whatever is attached to the bone follows it.

## Example

```lua
addEventHandler("onClientPedsProcessed", root, function()
    local head = getElementBonePosition(localPlayer, 5)
    if head then
        setElementBonePosition(localPlayer, 5, head.x, head.y, head.z + 0.1)
    end
end)
```

### Coming from MTA

In MTA it works on peds only. Here it also takes objects and rig bones by tag or name.

### Note

Raises an error if the element has no such bone. While the element is streamed out, it returns `false`.

## See also

- [getElementBonePosition (Client)](https://wiki.mymp.gg/en/getElementBonePosition.md): Returns the world position of a ped's or object's bone.
- [setElementBoneMatrix (Client)](https://wiki.mymp.gg/en/setElementBoneMatrix.md): Sets the world matrix of a ped's or object's bone: position, orientation and scale at once. The change applies on this client only.
- [onClientPedsProcessed (Client)](https://wiki.mymp.gg/en/onClientPedsProcessed.md): Fired every frame after peds and objects have been animated, before they are presented and drawn.
