---
title: Show Dialog
description: "Play 0x8C, server → client."
---

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

Opens a dialog screen on the client. `dialog` is a registry reference or inline dialog definition with body, inputs and buttons. The client shows the dialog and sends `CustomClickAction` when a button with an action is pressed.

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

## Fields

| Field | Type | Notes |
|---|---|---|
| `dialog` | Holder |  |

## Send it

```ts
await client.sendPacket("ShowDialog", {
  dialog: /* Holder */,
});
```

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

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