---
title: Test Instance Block Action
description: "Play 0x41, client → server."
---

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

Sent from the test instance block GUI (game test framework). `action` is init, query, set, reset, save, export, or run; the other fields (`test`, `size`, `rotation`, `ignoreEntities`, `status`, `errorMessage`) carry the block's settings. Operator-only; the server updates the block and runs the action.

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

## Fields

| Field | Type | Notes |
|---|---|---|
| `pos` | Position | also `position` |
| `action` | VarInt |  |
| `data` | Struct |  |

## Send it

```ts
await client.sendPacket("TestInstanceBlockAction", {
  pos: /* Position */,
  action: /* VarInt */,
  data: /* Struct */,
});
```

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

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