---
title: Set Jigsaw Block
description: "Play 0x3A, client → server."
---

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

Sent when the player saves a jigsaw block GUI. `location` is the block; `name`, `target`, `pool`, `finalState`, `jointType`, `selection_priority`, and `placement_priority` are the block entity values. Operator-only; the server updates the block entity.

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

## Fields

| Field | Type | Notes |
|---|---|---|
| `location` | Position | also `position` |
| `name` | String |  |
| `target` | String |  |
| `pool` | String |  |
| `finalState` | String |  |
| `jointType` | String |  |
| `selection_priority` | VarInt |  |
| `placement_priority` | VarInt |  |

## Send it

```ts
await client.sendPacket("SetJigsawBlock", {
  location: /* Position */,
  name: /* String */,
  target: /* String */,
  pool: /* String */,
  finalState: /* String */,
  jointType: /* String */,
  selection_priority: /* VarInt */,
  placement_priority: /* VarInt */,
});
```

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

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