---
title: Section Blocks Update
description: "Play 0x54, server → client."
---

`play` · `0x54` · **clientbound** (server → client)

Changes multiple blocks inside one 16x16x16 chunk section. The server sends it when several blocks change in the same section in one tick instead of many `BlockUpdate` packets. Each record packs the block state ID and local position.

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

## Fields

| Field | Type | Notes |
|---|---|---|
| `chunkCoordinates` | Bitfield |  |
| `records` | Array |  |

## Send it

```ts
await client.sendPacket("SectionBlocksUpdate", {
  chunkCoordinates: /* Bitfield */,
  records: /* Array */,
});
```

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

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