By datapack function

The same version history as By Minecraft release, but pivoted: for each data-pack subsystem, when each capability arrived or changed. Use this to answer "since which version can I…?" and to see a feature's whole evolution in one row. Anchored at the current 26.x line back to 1.13.

Pack format & structure

ChangeSinceFormat
Data-pack system (/datapack, folder packs)1.134
supported_formats range field in pack.mcmeta1.20.2 (23w31a)18
Folder singularization (function/, recipe/, …)1.21 (24w21a)48
Overlays / overlays + filter in pack.mcmeta1.19 / 1.20.310 / 26
Float pack_format; min_format/max_format replace supported_formats1.21.9 (25w31a)88.0

Functions & commands

ChangeSinceFormat
Command storage (namespaced NBT database)1.144
/replaceitem β†’ /item1.177
/locate syntax change1.18.29
Function macros ($, $(...), function … with …)1.20.2 (23w31a)18
return / return run / return fail1.20.3 (23w41a–44a)26

Item data (NBT β†’ components)

ChangeSinceFormat
Data components replace raw NBT β€” {id, count, components}, [...] syntax1.20.541
food split β€” eating logic β†’ consumable (+ use_remainder, use_cooldown, death_protection)1.21.257
fire_resistant β†’ damage_resistant1.21.257
show_in_tooltip removed β†’ tooltip_display component1.21.571
Entity-variant components (wolf/cat/… variants data-driven)1.21.571

Recipes, loot & predicates

ChangeSinceFormat
Recipes (recipes/)1.134
Predicates (predicates/)1.155
Loot functions require explicit type1.188
Recipe group / unlocking refinements1.2015
set_nbt β†’ set_custom_data; looting_enchant β†’ enchanted_count_increase1.20.541
Loot-context refs renamed: killer β†’ attacker1.2148

Text, signs, scoreboards & storage

ChangeSinceFormat
Sign NBT β†’ front_text / back_text1.2015
Scoreboard displayautoupdate + number format (blank/fixed/styled)1.20.326
Strict text-component parsing1.20.326
Text components stored as NBT objects (snake_case interactivity fields)1.21.571

Display & avatar entities

ChangeSinceFormat
Display entities (block_display, item_display, text_display)1.19.4 (23w06a)12
Display teleport_duration (position/rotation interpolation)1.20.218
minecraft:mannequin player-avatar entity1.21.9 (25w36a)88.0

World generation

ChangeSinceFormat
Custom world generation (worldgen/) β€” dimensions & biomes1.16.26
Worldgen rewrite β€” noise settings, density functions, noise router1.188
Consolidated jigsaw structure type; world seed removed (universal)1.19 (22w11a)10
Biome precipitation β†’ has_precipitation1.19.412
carving_mask placement modifier removed1.21.2 (24w33a)57
Dimension type cloud_height1.21.680
Density: find_top_surface / invert; initial_density_without_jaggedness β†’ preliminary_surface_level1.21.988.0
dimension_type gameplay flags β†’ attributes (additive); surface_rule β†’ material_rule26.x101.1+
⚠ Version differences

Worldgen is the least stable data-pack surface β€” fields are renamed/removed at the snapshot level with no backward-compatibility guarantee. Always regenerate and validate worldgen JSON against your exact target version; the 26.x rows are tentative unless JAR-verified.

New registry folders

FolderSinceFormat
worldgen/…1.16.26
chat_type/1.1910
damage_type/1.19.412
enchantment/1.2148
Mob-variant registries (cat_variant/, wolf_sound_variant/, …)1.21.571
dialog/1.21.680

Sources