Difference between revisions of "Registry Data"
(Generalized redundant information & performed some clean-up) |
(Added placeholder for missing fields) |
||
Line 25: | Line 25: | ||
<syntaxhighlight lang="java"> | <syntaxhighlight lang="java"> | ||
{ | { | ||
+ | "minecraft:worldgen/biome": { | ||
+ | "type": "minecraft:worldgen/biome", | ||
+ | "value": [ | ||
+ | { | ||
+ | "name": "minecraft:ocean", | ||
+ | "id": 0, | ||
+ | "element": { /* Element */ } | ||
+ | }, | ||
+ | { | ||
+ | "name": "minecraft:plains", | ||
+ | "id": 1, | ||
+ | "element": { /* Element */ } | ||
+ | }, | ||
+ | { /* Registry Entry */ } | ||
+ | ... | ||
+ | ] | ||
+ | }, | ||
"minecraft:dimension_type": { /* Registry */ }, | "minecraft:dimension_type": { /* Registry */ }, | ||
− | |||
"minecraft:chat_type": { /* Registry */ }, | "minecraft:chat_type": { /* Registry */ }, | ||
... | ... | ||
Line 49: | Line 65: | ||
| value | | value | ||
| TAG_List of TAG_Compound | | TAG_List of TAG_Compound | ||
− | | List of [[#Registry_Entry|registry entries]]. | + | | List of [[#Registry_Entry|registry entries]]. The format of the entries is defined by the value of the previous field. |
|} | |} | ||
Line 75: | Line 91: | ||
|} | |} | ||
− | == | + | == Available Registries == |
The current release specification allows for six different registries to be sent to the client, six of which are required. A brief explanation of each of them is presented below, along with the format of their entries' element field. | The current release specification allows for six different registries to be sent to the client, six of which are required. A brief explanation of each of them is presented below, along with the format of their entries' element field. | ||
Line 82: | Line 98: | ||
The <code>minecraft:trim_material</code> registry. | The <code>minecraft:trim_material</code> registry. | ||
+ | |||
+ | {| class="wikitable" | ||
+ | ! colspan="3"|Name | ||
+ | ! colspan="2"|Type | ||
+ | !style="width: 250px;" colspan="2"| Meaning | ||
+ | ! colspan="2"|Values | ||
+ | |- | ||
+ | | colspan="3"| asset_name | ||
+ | | colspan="2"| TAG_String | ||
+ | | colspan="2"| <tba> | ||
+ | | colspan="2"| <tba> | ||
+ | |- | ||
+ | | colspan="3"| ingredient | ||
+ | | colspan="2"| TAG_String | ||
+ | | colspan="2"| <tba> | ||
+ | | colspan="2"| <tba> | ||
+ | |- | ||
+ | | colspan="3"| item_model_index | ||
+ | | colspan="2"| TAG_Float | ||
+ | | colspan="2"| <tba> | ||
+ | | colspan="2"| <tba> | ||
+ | |- | ||
+ | | colspan="3"| override_armor_materials | ||
+ | | colspan="2"| Optional TAG_Compound | ||
+ | | colspan="2"| <tba> | ||
+ | | colspan="2"| <tba> | ||
+ | |- | ||
+ | | colspan="3"| description | ||
+ | | colspan="2"| TAG_Compound or TAG_String | ||
+ | | colspan="2"| <tba> | ||
+ | | colspan="2"| <tba> | ||
+ | |} | ||
=== Armor Trim Pattern === | === Armor Trim Pattern === | ||
The <code>minecraft:trim_pattern</code> registry. | The <code>minecraft:trim_pattern</code> registry. | ||
+ | |||
+ | {| class="wikitable" | ||
+ | ! colspan="3"|Name | ||
+ | ! colspan="2"|Type | ||
+ | !style="width: 250px;" colspan="2"| Meaning | ||
+ | ! colspan="2"|Values | ||
+ | |- | ||
+ | | colspan="3"| asset_id | ||
+ | | colspan="2"| TAG_String | ||
+ | | colspan="2"| <tba> | ||
+ | | colspan="2"| <tba> | ||
+ | |- | ||
+ | | colspan="3"| template_item | ||
+ | | colspan="2"| TAG_String | ||
+ | | colspan="2"| <tba> | ||
+ | | colspan="2"| <tba> | ||
+ | |- | ||
+ | | colspan="3"| description | ||
+ | | colspan="2"| TAG_Compound or TAG_String | ||
+ | | colspan="2"| <tba> | ||
+ | | colspan="2"| <tba> | ||
+ | |- | ||
+ | | colspan="3"| decal | ||
+ | | colspan="2"| TAG_Byte | ||
+ | | colspan="2"| <tba> | ||
+ | | colspan="2"| <tba> | ||
+ | |} | ||
=== Biome === | === Biome === | ||
Line 92: | Line 167: | ||
{{warning|A registry entry for each biome implemented in the client must exist in the Biome registry, otherwise the client will crash with an exception due to the missing biome.}} | {{warning|A registry entry for each biome implemented in the client must exist in the Biome registry, otherwise the client will crash with an exception due to the missing biome.}} | ||
− | |||
− | |||
{| class="wikitable" | {| class="wikitable" | ||
Line 101: | Line 174: | ||
! colspan="2"|Values | ! colspan="2"|Values | ||
|- | |- | ||
− | | colspan="3"|has_precipitation | + | | colspan="3"| has_precipitation |
− | | colspan="2"|TAG_Byte | + | | colspan="2"| TAG_Byte |
| colspan="2"| Determines whether or not the biome has precipitation. | | colspan="2"| Determines whether or not the biome has precipitation. | ||
| colspan="2"| 1: true, 0: false. | | colspan="2"| 1: true, 0: false. | ||
Line 209: | Line 282: | ||
=== Chat Type === | === Chat Type === | ||
− | The <code>minecraft:chat_type</code> registry. | + | The <code>minecraft:chat_type</code> registry. |
− | + | {| class="wikitable" | |
+ | ! colspan="3"|Name | ||
+ | ! colspan="2"|Type | ||
+ | !style="width: 250px;" colspan="2"| Meaning | ||
+ | ! colspan="2"|Values | ||
+ | |- | ||
+ | | colspan="3"| chat | ||
+ | | colspan="2"| TAG_Compound | ||
+ | | colspan="2"| The chat decoration | ||
+ | | colspan="2"| See below. | ||
+ | |- | ||
+ | | colspan="3"| narration | ||
+ | | colspan="2"| TAG_Compound | ||
+ | | colspan="2"| The narration decoration | ||
+ | | colspan="2"| See below. | ||
+ | |} | ||
+ | |||
+ | Decoration [[NBT#Specification:compound_tag|Compound Tag]]: | ||
{| class="wikitable" | {| class="wikitable" | ||
− | !Name | + | ! colspan="3"|Name |
− | !Type | + | ! colspan="2"|Type |
− | !style="width: 250px;" colspan="2"| | + | !style="width: 250px;" colspan="2"| Meaning |
+ | ! colspan="2"|Values | ||
|- | |- | ||
− | | translation_key | + | | colspan="3"| translation_key |
− | | TAG_String | + | | colspan="2"| TAG_String |
− | | | + | | colspan="2"| <tba> |
+ | | colspan="2"| <tba> | ||
|- | |- | ||
− | | style | + | | colspan="3"| style |
− | | TAG_Compound | + | | colspan="2"| Optional TAG_Compound |
− | | Similar to Chat JSON (only present in "chat" TAG_Compound) | + | | colspan="2"| <tba> |
+ | | colspan="2"| Similar to Chat JSON (only present in "chat" TAG_Compound) | ||
|- | |- | ||
− | | parameters | + | | colspan="3"| parameters |
− | | TAG_List of TAG_String | + | | colspan="2"| TAG_List of TAG_String |
− | | Values can be "sender", "target" and "content" | + | | colspan="2"| <tba> |
+ | | colspan="2"| Values can be "sender", "target" and "content" | ||
|} | |} | ||
Line 234: | Line 328: | ||
The <code>minecraft:damage_type</code> registry. | The <code>minecraft:damage_type</code> registry. | ||
+ | |||
+ | {| class="wikitable" | ||
+ | ! Name | ||
+ | ! Type | ||
+ | !style="width: 250px;" colspan="2"| Meaning | ||
+ | ! Values | ||
+ | |- | ||
+ | | message_id | ||
+ | | TAG_String | ||
+ | | colspan="2"| <tba> | ||
+ | | <tba> | ||
+ | |- | ||
+ | | scaling | ||
+ | | TAG_String | ||
+ | | colspan="2"| <tba> | ||
+ | | <tba> | ||
+ | |- | ||
+ | | exhaustion | ||
+ | | TAG_Float | ||
+ | | colspan="2"| <tba> | ||
+ | | <tba> | ||
+ | |- | ||
+ | | effects | ||
+ | | Optional TAG_String | ||
+ | | colspan="2"| <tba> | ||
+ | | <tba> | ||
+ | |- | ||
+ | | death_message_type | ||
+ | | Optional TAG_String | ||
+ | | colspan="2"| <tba> | ||
+ | | <tba> | ||
+ | |} | ||
=== Dimension Type === | === Dimension Type === | ||
The <code>minecraft:dimension_type</code> registry. It defines the types of dimension that can be attributed to a world, along with all their characteristics. | The <code>minecraft:dimension_type</code> registry. It defines the types of dimension that can be attributed to a world, along with all their characteristics. | ||
− | |||
− | |||
{| class="wikitable" | {| class="wikitable" |
Revision as of 01:12, 19 October 2023
Registries are repositories of data that contain entries pertaining to certain aspects of the game, such as the world, the player, among others.
The server sends these registries to the client via Registry Data packet during the configuration phase.
Contents
Format
Packet ID | State | Bound To | Field Name | Field Type | Notes |
---|---|---|---|---|---|
0x05 | Configuration | Client | Registry Data | NBT Tag Compound | Information included below. |
The Registry Data field represents a list of all available registries in the form of a Compound Tag. Elements in this compound are defined by the registry information, associated with the registry's name, as shown in the example below:
{
"minecraft:worldgen/biome": {
"type": "minecraft:worldgen/biome",
"value": [
{
"name": "minecraft:ocean",
"id": 0,
"element": { /* Element */ }
},
{
"name": "minecraft:plains",
"id": 1,
"element": { /* Element */ }
},
{ /* Registry Entry */ }
...
]
},
"minecraft:dimension_type": { /* Registry */ },
"minecraft:chat_type": { /* Registry */ },
...
}
Registry
The Registry Compound Tag specifies the type of the registry, and a list of registry entries.
The name of the registry in the Registry Data is always the same to the registry type in the Notchian implementation.
Name | Type | Notes | |
---|---|---|---|
type | TAG_String | The type of the registry. | |
value | TAG_List of TAG_Compound | List of registry entries. The format of the entries is defined by the value of the previous field. |
Registry Entry
The Registry Entry Compound Tag specifies a single entry of a Registry.
Name | Type | Notes | |
---|---|---|---|
name | TAG_String | The name of the entry. | |
id | TAG_Int | The protocol ID of the entry. | |
element | TAG_Compound | The actual data of the entry.
This field is context-dependent and is based on the type field of its Registry. |
Available Registries
The current release specification allows for six different registries to be sent to the client, six of which are required. A brief explanation of each of them is presented below, along with the format of their entries' element field.
Armor Trim Material
The minecraft:trim_material
registry.
Name | Type | Meaning | Values | |||||
---|---|---|---|---|---|---|---|---|
asset_name | TAG_String | <tba> | <tba> | |||||
ingredient | TAG_String | <tba> | <tba> | |||||
item_model_index | TAG_Float | <tba> | <tba> | |||||
override_armor_materials | Optional TAG_Compound | <tba> | <tba> | |||||
description | TAG_Compound or TAG_String | <tba> | <tba> |
Armor Trim Pattern
The minecraft:trim_pattern
registry.
Name | Type | Meaning | Values | |||||
---|---|---|---|---|---|---|---|---|
asset_id | TAG_String | <tba> | <tba> | |||||
template_item | TAG_String | <tba> | <tba> | |||||
description | TAG_Compound or TAG_String | <tba> | <tba> | |||||
decal | TAG_Byte | <tba> | <tba> |
Biome
The minecraft:worldgen/biome
registry. It defines several aesthetic characteristics of the biomes present in the game.
A registry entry for each biome implemented in the client must exist in the Biome registry, otherwise the client will crash with an exception due to the missing biome.
Name | Type | Meaning | Values | |||||
---|---|---|---|---|---|---|---|---|
has_precipitation | TAG_Byte | Determines whether or not the biome has precipitation. | 1: true, 0: false. | |||||
depth | Optional TAG_Float | The depth factor of the biome. | The default values vary between 1.5 and -1.8. | |||||
temperature | TAG_Float | The temperature factor of the biome. | The default values vary between 2.0 and -0.5. | |||||
scale | Optional TAG_Float | ? | The default values vary between 1.225 and 0.0. | |||||
downfall | TAG_Float | ? | The default values vary between 1.0 and 0.0. | |||||
category | Optional TAG_String | The category of the biome. | Known values are "ocean", "plains", "desert", "forest", "extreme_hills", "taiga", "swamp", "river", "nether", "the_end", "icy", "mushroom", "beach", "jungle", "mesa", "savanna", and "none". | |||||
temperature_modifier | Optional TAG_String | ? | The only known value is "frozen". | |||||
effects | sky_color | TAG_Compound | TAG_Int | The color of the sky. | Example: 8364543, which is #7FA1FF in RGB. | |||
water_fog_color | TAG_Int | Possibly the tint color when swimming. | Example: 8364543, which is #7FA1FF in RGB. | |||||
fog_color | TAG_Int | Possibly the color of the fog effect when looking past the view distance. | Example: 8364543, which is #7FA1FF in RGB. | |||||
water_color | TAG_Int | The tint color of the water blocks. | Example: 8364543, which is #7FA1FF in RGB. | |||||
foliage_color | Optional TAG_Int | The tint color of the grass. | Example: 8364543, which is #7FA1FF in RGB. | |||||
grass_color | Optional TAG_Int | ? | Example: 8364543, which is #7FA1FF in RGB. | |||||
grass_color_modifier | Optional TAG_String | Unknown, likely affects foliage color. | If set, known values are "swamp" and "dark_forest". | |||||
music | Optional TAG_Compound | Music properties for the biome. | If present, contains the fields: replace_current_music (TAG_Byte), sound (TAG_String), max_delay (TAG_Int), min_delay (TAG_Int). | |||||
ambient_sound | Optional TAG_String | Ambient soundtrack. | If present, the ID of a soundtrack. Example: "minecraft:ambient.basalt_deltas.loop". | |||||
additions_sound | Optional TAG_Compound | Additional ambient sound that plays randomly. | If present, contains the fields: sound (TAG_String), tick_chance (TAG_Double). | |||||
mood_sound | Optional TAG_Compound | Additional ambient sound that plays at an interval. | If present, contains the fields: sound (TAG_String), tick_delay (TAG_Int), offset (TAG_Double), block_search_extent (TAG_Int). | |||||
particle | probability | Optional TAG_Compound | TAG_FLOAT | Particles that appear randomly in the biome. | Possibly the probability of spawning the particle. | ? | ||
options | TAG_COMPOUND | The properties of the particle to spawn. | Contains the field "type" (TAG_String), which identifies the particle type. |
Chat Type
The minecraft:chat_type
registry.
Name | Type | Meaning | Values | |||||
---|---|---|---|---|---|---|---|---|
chat | TAG_Compound | The chat decoration | See below. | |||||
narration | TAG_Compound | The narration decoration | See below. |
Decoration Compound Tag:
Name | Type | Meaning | Values | |||||
---|---|---|---|---|---|---|---|---|
translation_key | TAG_String | <tba> | <tba> | |||||
style | Optional TAG_Compound | <tba> | Similar to Chat JSON (only present in "chat" TAG_Compound) | |||||
parameters | TAG_List of TAG_String | <tba> | Values can be "sender", "target" and "content" |
Damage Type
The minecraft:damage_type
registry.
Name | Type | Meaning | Values | |
---|---|---|---|---|
message_id | TAG_String | <tba> | <tba> | |
scaling | TAG_String | <tba> | <tba> | |
exhaustion | TAG_Float | <tba> | <tba> | |
effects | Optional TAG_String | <tba> | <tba> | |
death_message_type | Optional TAG_String | <tba> | <tba> |
Dimension Type
The minecraft:dimension_type
registry. It defines the types of dimension that can be attributed to a world, along with all their characteristics.
Name | Type | Meaning | Values | |
---|---|---|---|---|
piglin_safe | TAG_Byte | Whether piglins shake and transform to zombified piglins. | 1: true, 0: false. | |
has_raids | TAG_Byte | Whether players with the Bad Omen effect can cause a raid. | 1: true, 0: false. | |
monster_spawn_light_level | TAG_Int or TAG_Compound | Possibly the light level(s) at which monsters can spawn. | When TAG_Int, 0 - 15. When TAG_Compound, contains the fields: type (TAG_String), appears to be always "minecraft:uniform", and value (TAG_Compound), which contains the fields: max_inclusive (TAG_Int), min_inclusive (TAG_Int). | |
monster_spawn_block_light_limit | TAG_Int | |||
natural | TAG_Byte | When false, compasses spin randomly. When true, nether portals can spawn zombified piglins. | 1: true, 0: false. | |
ambient_light | TAG_Float | How much light the dimension has. | 0.0 to 1.0. | |
fixed_time | Optional TAG_Long | If set, the time of the day is the specified value. | If set, 0 to 24000. | |
infiniburn | TAG_String | A resource location defining what block tag to use for infiniburn. | "#" or minecraft resource "#minecraft:...". | |
respawn_anchor_works | TAG_Byte | Whether players can charge and use respawn anchors. | 1: true, 0: false. | |
has_skylight | TAG_Byte | Whether the dimension has skylight access or not. | 1: true, 0: false. | |
bed_works | TAG_Byte | Whether players can use a bed to sleep. | 1: true, 0: false. | |
effects | TAG_String | ? | "minecraft:overworld", "minecraft:the_nether", "minecraft:the_end" or something else. | |
min_y | TAG_Int | The minimum Y level. | A multiple of 16. Example: -64 | |
height | TAG_Int | The maximum height. | A multiple of 16. Example: 256 | |
logical_height | TAG_Int | The maximum height to which chorus fruits and nether portals can bring players within this dimension. (Must be lower than height) | 0-384. | |
coordinate_scale | TAG_Double | The multiplier applied to coordinates when traveling to the dimension. | 0.00001 - 30000000.0 | |
ultrawarm | TAG_Byte | Whether the dimensions behaves like the nether (water evaporates and sponges dry) or not. Also causes lava to spread thinner. | 1: true, 0: false. | |
has_ceiling | TAG_Byte | Whether the dimension has a bedrock ceiling or not. When true, causes lava to spread faster. | 1: true, 0: false. |
Default Registries
The default registries in the JSON format is available for the following versions: