By Minecraft release

The data-pack changelog as a single chronological timeline β€” every major Java Edition release from the current 26.x line back to 1.13, its pack_format, and the data-pack-relevant changes it shipped. Newest first. For the companion view organised by subsystem, see By datapack function.

How to read this

Each row is a release (or a run of releases that share a pack_format). The Format column is the data-pack format, which is a different number space from the resource-pack format. A change listed against a version is the first release where it is available — target the format of your oldest supported version. The full numeric map lives on the pack_format history page; the exact version→format values are also machine-readable in pack_formats.json.

⚠ Version discipline

The 26.x entries are the bleeding edge. Where a fact is confirmed against a real client/JAR it is marked JAR-verified; everything else in the 26.x line is tentative and should be checked against your exact snapshot before shipping. Worldgen JSON in particular changes at the snapshot level with no backward-compatibility guarantee.

The 26.x line (current)

Minecraft's version numbering went date-based with the 26.x line, which is why recent formats map to 26.* names rather than 1.21.*. This line carries the single largest worldgen/schema rework since 1.18.

ReleaseFormatData-pack-relevant changes
26.2107.126.2 line (schema tracking in progress).
26.1 – 26.1.2101.1 JAR-verifiedVillager trades data-driven. Part of the broad 26.x rework: dimension_type gameplay flags migrated into an attributes object (additive β€” the flat flags still validate); surface_rule β†’ material_rule (26.3-snap1); noise_gradient surface rule removed (26.2-snap6); the minecraft:mannequin player-avatar entity is fully usable (see Display entities). Format 101.1 JAR-verified (elkonia-wob, 26.1.2-0.19.2).
πŸ“Œ Note

Because 26.x uses float formats (a real minor version β€” 101.1, 107.1), a bare integer like 101 can mis-load. Use the exact float, or set pack.min_format / pack.max_format (the 1.21.9+ range fields) and keep pack_format for older clients.

The 1.21 line

ReleaseFormatData-pack-relevant changes
1.21.1194.1Non-breaking additions (minor bump).
1.21.9 – 1.21.1088.0Float pack_format introduced; min_format/max_format replace supported_formats; pack_format becomes optional. Density functions gained find_top_surface and invert; initial_density_without_jaggedness β†’ preliminary_surface_level. New minecraft:mannequin entity (25w36a).
1.21.7 – 1.21.881music_disc_lava_chicken.
1.21.680Dimension type cloud_height; new dialog/ registry folder.
1.21.571Text components stored as NBT objects (interactivity fields renamed to snake_case, nested contents flattened); mob-variant registries (cat_variant/, chicken_variant/, cow_variant/, frog_variant/, pig_variant/, wolf_sound_variant/); item show_in_tooltip removed β†’ tooltip_display component; dry_foliage_color biome effect (leaf litter).
1.21.461TNT-minecart field rename; block/item model-definition system matured.
1.21.2 – 1.21.357Attribute-ID prefixes removed; carving_mask placement modifier removed (24w33a); food split β€” eating logic extracted into consumable (+ use_remainder, use_cooldown, death_protection); fire_resistant β†’ damage_resistant.
1.21 – 1.21.148Folder singularization (24w21a): every data registry folder renamed to its singular form (recipe/, loot_table/, predicate/, function/, structure/, …). Data-driven enchantments & paintings (enchantment/). Loot-context entity refs renamed: killer β†’ attacker, killer_player β†’ attacking_player.
🚧 The big one

1.21 singularization is the most common migration break: a pack that loaded on 1.20.6 with functions/, recipes/, loot_tables/, etc. will silently do nothing on 1.21 until every folder is renamed to singular. There is no automatic alias.

The 1.20 line

ReleaseFormatData-pack-relevant changes
1.20.5 – 1.20.641Item components replace raw NBT. An item is now {id, count, components:{…}}, not {id, Count, tag:{…}}; command item syntax becomes [...] / [!...]. Loot: set_nbt β†’ set_custom_data; looting_enchant β†’ enchanted_count_increase. attribute_modifiers component (id + amount + operation + slot).
1.20.3 – 1.20.426Strict text-component parsing; overlays era; return / return run (23w41a); scoreboard displayautoupdate and number format (blank/fixed/styled).
1.20.218Function macros ($, $(...), function … with …); supported_formats in pack.mcmeta (23w31a); display teleport_duration.
1.20 – 1.20.115Sign NBT restructured into front_text/back_text; predicate renames; recipe group / unlocking refinements.

1.16 – 1.19

ReleaseFormatData-pack-relevant changes
1.19.412Display entities introduced (block_display, item_display, text_display; 23w06a) with client interpolation (start_interpolation). damage_type/ registry. Biome precipitation β†’ has_precipitation.
1.19 – 1.19.310Message filter section; chat_type/ registry. Worldgen: the jigsaw structure type consolidated (22w11a); the world seed is removed from dimensions (universal seed); sculk_patch / multiface_growth features.
1.18.29/locate syntax change.
1.18 – 1.18.18Loot-table functions require an explicit type. Worldgen rewrite β€” noise settings, density functions, the noise router.
1.17 – 1.17.17/replaceitem β†’ /item (and item-modifier functions).
1.16.2 – 1.16.56Custom world generation (worldgen/) β€” data-driven dimensions and biomes arrive.

1.13 – 1.15 (origins)

ReleaseFormatData-pack-relevant changes
1.15 – 1.16.15Predicates added (predicates/).
1.13 – 1.14.44The data-pack system itself (/datapack, folder-based packs). Command storage β€” the namespaced NBT database β€” added in 1.14.

Sources