---
title: Seen Advancements
description: "Play 0x32, client → server."
---

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

Advancement screen action. `action` 0 (opened tab) includes `tabId`, the root advancement of the tab now shown; 1 (closed screen) has no id. The server remembers the selected tab so it can restore it next time.

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

## Fields

| Field | Type | Notes |
|---|---|---|
| `action` | VarInt |  |
| `tabId` | Struct |  |

## Send it

```ts
await client.sendPacket("SeenAdvancements", {
  action: /* VarInt */,
  tabId: /* Struct */,
});
```

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

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