---
title: Recipe Book Settings
description: "Play 0x4C, server → client."
---

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

Sets the open and filtering state of the recipe book for the four recipe book types (`crafting`, `furnace`, `blast`, `smoker`). The server sends it on join and when the state is loaded from player data; the client restores the recipe book GUI to those settings.

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

## Fields

| Field | Type | Notes |
|---|---|---|
| `crafting` | RecipeBookSetting |  |
| `furnace` | RecipeBookSetting |  |
| `blast` | RecipeBookSetting |  |
| `smoker` | RecipeBookSetting |  |

## Send it

```ts
await client.sendPacket("RecipeBookSettings", {
  crafting: /* RecipeBookSetting */,
  furnace: /* RecipeBookSetting */,
  blast: /* RecipeBookSetting */,
  smoker: /* RecipeBookSetting */,
});
```

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

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