---
title: Jigsaw Generate
description: "Play 0x1B, client → server."
---

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

Sent when the player presses the Generate button in a jigsaw block GUI. `location` is the jigsaw block, `levels` is the recursion depth, and `keepJigsaws` controls whether jigsaw blocks stay after generation. The server generates the structure; operator-only.

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

## Fields

| Field | Type | Notes |
|---|---|---|
| `location` | Position | also `position` |
| `levels` | VarInt |  |
| `keepJigsaws` | Boolean |  |

## Send it

```ts
await client.sendPacket("JigsawGenerate", {
  location: /* Position */,
  levels: /* VarInt */,
  keepJigsaws: /* Boolean */,
});
```

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

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