---
title: Recipe Book Seen Recipe
description: "Play 0x2F, client → server."
---

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

Marks the recipe `recipeId` as seen so it stops flashing as new in the recipe book. Sent when the player views the recipe. The server updates the player's recipe book state.

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

## Fields

| Field | Type | Notes |
|---|---|---|
| `recipeId` | VarInt |  |

## Send it

```ts
await client.sendPacket("RecipeBookSeenRecipe", {
  recipeId: /* VarInt */,
});
```

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

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