World, damage & system registries

Registries that hook into core game systems: how damage is attributed, how chat renders, and the newer scheduling and testing primitives.

Overview

📌 Note

Each field table below is inferred from every vanilla definition in the game data rather than transcribed, so “required” means the field appears in all vanilla entries and a fraction means it is optional in practice. Examples are real vanilla files. Regenerate with tools/registry_pages.py.

This page documents 8 registries. For the complete list of ids in every registry see Every registry; for the component system these often plug into see Item data components.

damage_type 1.19.4+

Defines a kind of damage: its death message key, scaling behaviour, exhaustion cost and knockback effects. Custom damage types let a data pack attribute deaths to its own sources and drive damage_type tags used by predicates and immunity.

Confirmed against game data: the registry first appears in 1.19.4. See Registry version matrix.

Vanilla ships 51 damage_type definitions. Files live at data/<namespace>/damage_type/<name>.json.

Fields

FieldTypePresence in vanilla
exhaustionfloatrequired e.g. 0.1
message_idstringrequired e.g. arrow
scalingstringrequired e.g. when_caused_by_living_non_player
effectsstring12/51 entries e.g. burning
death_message_typestring3/51 entries e.g. intentional_game_design

Vanilla example

data/minecraft/damage_type/arrow.json

{
  "exhaustion": 0.1,
  "message_id": "arrow",
  "scaling": "when_caused_by_living_non_player"
}

chat_type 1.19+

A chat message template: how a message is rendered in chat and in the narrator. Custom chat types let a pack format its own message channels with proper narration.

Confirmed against game data: the registry first appears in 1.19. See Registry version matrix.

Vanilla ships 7 chat_type definitions. Files live at data/<namespace>/chat_type/<name>.json.

Fields

FieldTypePresence in vanilla
chatobjectrequired
narrationobjectrequired

Vanilla example

data/minecraft/chat_type/chat.json

{
  "chat": {
    "parameters": [
      "sender",
      "content"
    ],
    "translation_key": "chat.type.text"
  },
  "narration": {
    "parameters": [
      "sender",
      "content"
    ],
    "translation_key": "chat.type.text.narrate"
  }
}

dialog 1.21.6+

A server-defined dialog screen: title, body, inputs and the actions its buttons run. Dialogs give data packs a real GUI without a resource pack or a plugin.

Confirmed against game data: the registry first appears in 1.21.6. See Registry version matrix.

Vanilla ships 3 dialog definitions. Files live at data/<namespace>/dialog/<name>.json.

Fields

FieldTypePresence in vanilla
button_widthintegerrequired e.g. 310
columnsintegerrequired e.g. 1
exit_actionobjectrequired
external_titleobjectrequired
titleobjectrequired
typestringrequired e.g. minecraft:dialog_list
dialogsstring2/3 entries e.g. #minecraft:pause_screen_additions

Vanilla example

data/minecraft/dialog/custom_options.json

{
  "type": "minecraft:dialog_list",
  "button_width": 310,
  "columns": 1,
  "dialogs": "#minecraft:pause_screen_additions",
  "exit_action": {
    "label": {
      "translate": "gui.back"
    },
    "width": 200
  },
  "external_title": {
    "translate": "menu.custom_options"
  },
  "title": {
    "translate": "menu.custom_options.title"
  }
}

timeline 1.21.11+

A scheduled sequence of events on a timeline. The registry ships as data from 1.21.11 with period_ticks and tracks only; clock and time_markers - and the world_clock registry a clock refers to - arrive in 26.1, so the field table below is the 26.x shape, not the 1.21.11 one. New scheduling primitive beyond /schedule.

Confirmed against game data: the registry first appears in 1.21.11. See Registry version matrix.

Vanilla ships 4 timeline definitions. Files live at data/<namespace>/timeline/<name>.json.

Fields

FieldTypePresence in vanilla
clockstringrequired e.g. minecraft:overworld
tracksobjectrequired
period_ticksinteger3/4 entries e.g. 24000
time_markersobject1/4 entries

Vanilla example

data/minecraft/timeline/day.json

{
  "clock": "minecraft:overworld",
  "period_ticks": 24000,
  "time_markers": {
    "minecraft:day": {
      "show_in_commands": true,
      "ticks": 1000
    },
    "minecraft:midnight": {
      "show_in_commands": true,
      "ticks": 18000
    },
    "minecraft:night": {
      "show_in_commands": true,
      "ticks": 13000
    },
    "minecraft:noon": {
      "show_in_commands": true,
      "ticks": 6000
    },
    "minecraft:roll_village_siege": 18000,
    "minecraft:wake_up_from_sleep": 0
  },
  "tracks": {
    "minecraft:audio/firefly_bush_sounds": {
      "keyframes": [
        {
          "ticks": 12600,
          "value": true
        },
        {
          "ticks": 23401,
          "value": false
        }
      ],
      "modifier": "or"
    },
    "minecraft:gameplay/bees_stay_in_hive": {
      "keyframes": [
        {
          "ticks": 12542,
          "value": true
        },
        {
          "ticks": 23460,
          "value": false
        }
      ],
      "modifier": "or"
    },
    "minecraft:gameplay/cat_waking_up_gift_chance": {
      "ease": "constant",
      "keyframes": [
        {
          "ticks": 362,
          "value": 0.0
        },
        {
          "ticks": 23667,
          "value": 0.7
        }
      ],
      "modifier": "maximum"
    },
    "minecraft:gameplay/creaking_active": {
      "keyframes": [
        {
          "ticks": 12600,
          "value": true
        },
        {
          "ticks": 23401,
          "value": false
        }
      ],
      "modifier": "or"
    },
    "minecraft:gameplay/eyeblossom_open": {
      "keyframes": [
        {
          "ticks": 12600,
          "value": true
        },
        {
          "ticks": 23401,
          "value": false
        }
      ]
    },
    "minecraft:gameplay/monsters_burn": {
      "keyframes": [
        {
          "ticks": 12542,
          "value": false
        },
        {
          "ticks": 23460,
          "value": true
        }
      ],
      "modifier": "or"
    },
    "minecraft:gameplay/sky_light_level": {
      "keyframes": [
        {
          "ticks": 133,
          "value": 1.0
        },
        {
          "ticks": 11867,
          "value": 1.0

  ... (truncated)

world_clock 26.1+

A named clock driving time-based behaviour independent of the day cycle. Lets packs run their own cycles.

Confirmed against game data: the registry first appears in 26.1. See Registry version matrix.

Vanilla ships 2 world_clock definitions. Files live at data/<namespace>/world_clock/<name>.json.

Fields

Entries are not objects; see the example.

Vanilla example

data/minecraft/world_clock/overworld.json

{}

test_instance 1.21.5+

A game-test instance: the structure to load and the function that asserts on it. Automated in-game testing for data packs.

Confirmed against game data: the registry first appears in 1.21.5. See Registry version matrix.

Vanilla ships 1 test_instance definition. Files live at data/<namespace>/test_instance/<name>.json.

Fields

FieldTypePresence in vanilla
environmentstringrequired e.g. minecraft:default
functionstringrequired e.g. minecraft:always_pass
max_ticksintegerrequired e.g. 1
requiredbooleanrequired e.g. False
setup_ticksintegerrequired e.g. 1
structurestringrequired e.g. minecraft:empty
typestringrequired e.g. minecraft:function

Vanilla example

data/minecraft/test_instance/always_pass.json

{
  "type": "minecraft:function",
  "environment": "minecraft:default",
  "function": "minecraft:always_pass",
  "max_ticks": 1,
  "required": false,
  "setup_ticks": 1,
  "structure": "minecraft:empty"
}

test_environment 1.21.5+

The environment a game test runs in - weather, time, game rules. Makes tests deterministic.

Confirmed against game data: the registry first appears in 1.21.5. See Registry version matrix.

Vanilla ships 1 test_environment definition. Files live at data/<namespace>/test_environment/<name>.json.

Fields

FieldTypePresence in vanilla
definitionslistrequired
typestringrequired e.g. minecraft:all_of

Vanilla example

data/minecraft/test_environment/default.json

{
  "type": "minecraft:all_of",
  "definitions": []
}

sulfur_cube_archetype 26.2+

An archetype for the sulfur cube entity. New in the 26.x line; schema still settling.

Confirmed against game data: the registry first appears in 26.2. See Registry version matrix.

Vanilla ships 12 sulfur_cube_archetype definitions. Files live at data/<namespace>/sulfur_cube_archetype/<name>.json.

Fields

FieldTypePresence in vanilla
attribute_modifierslistrequired
itemsstringrequired e.g. #minecraft:sulfur_cube_archetype/bouncy
knockback_modifiersobjectrequired
sound_settingsobjectrequired
buoyantboolean5/12 entries e.g. True
contact_damageobject1/12 entries
explosionobject1/12 entries

Vanilla example

data/minecraft/sulfur_cube_archetype/bouncy.json

{
  "attribute_modifiers": [
    {
      "amount": -2.0,
      "attribute": "minecraft:knockback_resistance",
      "id": "minecraft:bouncy_add_knockback_resistance",
      "operation": "add_value"
    },
    {
      "amount": -2.0,
      "attribute": "minecraft:explosion_knockback_resistance",
      "id": "minecraft:bouncy_add_explosion_knockback_resistance",
      "operation": "add_value"
    },
    {
      "amount": 0.8999999761581421,
      "attribute": "minecraft:bounciness",
      "id": "minecraft:bouncy_add_bounciness",
      "operation": "add_value"
    },
    {
      "amount": -0.699999988079071,
      "attribute": "minecraft:friction_modifier",
      "id": "minecraft:bouncy_mul_friction_modifier",
      "operation": "add_multiplied_total"
    },
    {
      "amount": -0.9900000002235174,
      "attribute": "minecraft:air_drag_modifier",
      "id": "minecraft:bouncy_mul_air_drag_modifier",
      "operation": "add_multiplied_total"
    }
  ],
  "buoyant": true,
  "items": "#minecraft:sulfur_cube_archetype/bouncy",
  "knockback_modifiers": {
    "horizontal_power": 0.4125,
    "vertical_power": 0.105
  },
  "sound_settings": {
    "hit_sound": "minecraft:entity.sulfur_cube.bouncy.hit",
    "push_sound": "minecraft:entity.sulfur_cube.bouncy.push",
    "push_sound_cooldown": 0.7,
    "push_sound_impulse_threshold": 0.3
  }
}

Sources