---
title: Update Tags
description: "Configuration 0x0D, server → client."
---

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

Sends all tags for every tagged registry (blocks, items, fluids, entity types, and so on) as lists of numeric ids. Sent during configuration and again after any datapack reload. The client uses tags for behaviour such as which blocks a tool mines faster.

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

## Fields

| Field | Type | Notes |
|---|---|---|
| `taggedRegistries` | Array | Shape: `Array<{ registry: string; tags: Array<{ tagName: string; entries: number[] }>; }>`. |

## Send it

```ts
await client.sendPacket("UpdateTags", {
  taggedRegistries: [
    {
      registry: "minecraft:block",
      tags: [
        { tagName: "minecraft:mineable/pickaxe", entries: [1, 2, 3] },
      ],
    },
  ],
});
```

Each `entries` array contains numeric IDs from the matching registry, not names. A complete vanilla configuration sends all required registry tags; with `autoInit: true` the server does this for you.

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

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