---
title: Select Known Packs (clientbound)
description: "Configuration 0x0E, server → client."
---

`config` · `0x0E` · **clientbound** (server → client)

Lists the data packs (namespace, id, version) whose registry contents the server expects the client to know. Sent at the start of configuration. The client replies with its own `SelectKnownPacks` listing the packs it actually has, and the server then trims `RegistryData` accordingly.

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

## Fields

| Field | Type | Notes |
|---|---|---|
| `knownPacks` | Array | Shape: `Array<{ namespace: string; id: string; version: string }>`. |

## Send it

```ts
await client.sendPacket("SelectKnownPacks", {
  knownPacks: [
    { namespace: "minecraft", id: "core", version: "26.2" },
  ],
});
```

Offer packs whose registry contents the client may already know. The client returns the subset it has in its serverbound `SelectKnownPacks`; use that answer when deciding which `RegistryData` entries may omit `data`.

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

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