Skip to content
mc-protocol
Esc
↑↓navigate↵open⌘Jpreview
On this page

Registry Data

Configuration 0x07, server → client.

config · 0x07 · clientbound (server → client)

Sends the contents of one dynamic registry (dimension types, biomes, damage types, chat types, wolf variants, and so on) as a list of ids with optional NBT entries. One packet is sent per registry, after SelectKnownPacks. Entries without data must be known to the client from a selected pack.

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

Fields

Field Type Notes
registryId Identifier
entries Array Shape: Array<{ entryId: string; data?: unknown }>.

Send it

// Server side with autoInit: false. One packet per registry.
await client.sendPacket("RegistryData", {
  registryId: "minecraft:dimension_type",
  entries: [
    { entryId: "minecraft:overworld", data: { /* dimension type NBT */ } },
    { entryId: "minecraft:the_nether", data: null }, // null: client uses its own copy
  ],
});

data is optional NBT for each entry; null means the client already has the entry from a known pack. The vanilla client needs every synchronised registry (dimension_type, worldgen/biome, chat_type, damage_type, wolf_variant, and so on) before FinishConfiguration. With autoInit: true the server sends the full vanilla set, so most servers never build this by hand.

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

Source: src/Core/Versions/776/Packets/config/clientbound/RegistryData.ts

Was this page helpful?