---
title: Move Player Pos
description: "Play 0x1E, client → server."
---

`play` · `0x1E` · **serverbound** (client → server)

Updates the player's position without changing rotation. `x`, `y`, `z` are absolute feet coordinates and `flags` contains the on-ground and horizontal-collision bits. The client sends this every tick the position changes; the server validates the move and relays it to other players.

Sent by the client, read by the server. Listen for it with `client.on("MovePlayerPos", (data) => …)` on the receiving side.

## Fields

| Field | Type | Notes |
|---|---|---|
| `x` | Double |  |
| `y` | Double |  |
| `z` | Double |  |
| `flags` | MovementFlags |  |

## Send it

```ts
await client.sendPacket("MovePlayerPos", {
  x: /* Double */,
  y: /* Double */,
  z: /* Double */,
  flags: /* MovementFlags */,
});
```

Field aliases listed under Notes are accepted as alternative keys when writing.

Source: [`src/Core/Versions/776/Packets/play/serverbound/MovePlayerPos.ts`](https://github.com/GDLev/mc-protocol/blob/master/src/Core/Versions/776/Packets/play/serverbound/MovePlayerPos.ts)
