---
title: Move Vehicle (serverbound)
description: "Play 0x22, client → server."
---

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

Sent instead of the player movement packets when the player is controlling a vehicle such as a boat, horse, or minecart. It carries the vehicle's absolute position, `yaw`, `pitch`, and `onGround`. The server moves the vehicle and relays it to other players.

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

## Fields

| Field | Type | Notes |
|---|---|---|
| `x` | Double |  |
| `y` | Double |  |
| `z` | Double |  |
| `yaw` | Float |  |
| `pitch` | Float |  |
| `onGround` | Boolean |  |

## Send it

```ts
await client.sendPacket("MoveVehicle", {
  x: /* Double */,
  y: /* Double */,
  z: /* Double */,
  yaw: /* Float */,
  pitch: /* Float */,
  onGround: /* Boolean */,
});
```

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

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