---
title: Set Test Block
description: "Play 0x3C, client → server."
---

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

Sent when the player saves a test block GUI (game test framework). `position` is the block, `mode` is start, log, fail, or accept, and `message` is the text shown for log/fail. Operator-only; the server updates the block entity.

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

## Fields

| Field | Type | Notes |
|---|---|---|
| `position` | Position |  |
| `mode` | VarInt |  |
| `message` | String |  |

## Send it

```ts
await client.sendPacket("SetTestBlock", {
  position: /* Position */,
  mode: /* VarInt */,
  message: /* String */,
});
```

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

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