Data Pack

From Minecraft Wiki
Revision as of 21:40, 24 December 2019 by SPGoding (talk | contribs) (Remove redundant information which should only be in History section)
Jump to: navigation, search
Information icon.svg
This feature is exclusive to Java Edition. 
This article is about the data pack system. For the command, see Commands/datapack. For the resource pack system, see Resource pack.

The data pack system provides a way for players to further customize their Minecraft experience. Data packs can be used to override or add new advancements, functions, loot tables, predicates, structures, recipes and tags without any code modification.


Data packs can be placed in the .minecraft/saves/(world)/datapacks folder of a world. Each data pack is either a sub-folder or a .zip file within the datapacks folder. After it is in the folder, a data pack will be enabled for that world when the world is reloaded or loaded.

Data packs will load their data based on the load order. This order can be seen and altered by using the /datapack command and is stored in the level.dat file.


Folder structure

  • (data pack name)
    • pack.mcmeta
    • data
      • (namespace)
        • advancements
          • (advancement).json
        • functions
          • (function).mcfunction
        • loot_tables
          • (loot_table).json
        • predicates
          • (predicate).json
        • recipes
          • (recipe).json
        • structures
          • (structure).nbt
        • tags
          • blocks
            • (tag).json
          • entity_types
            • (tag).json
          • fluids
            • (tag).json
          • functions
            • (tag).json
          • items
            • (tag).json

More than one directory for different namespaces may exist under the data directory.


A data pack is identified by Minecraft based on the presence of the pack.mcmeta file in the root directory of the data pack, which contains data in JSON format.

  • The root object.
    •  pack: Holds the data pack information.
      •  description: A JSON text that will be shown when hovering over the data pack's name in the list given by the /datapack list command.[when?]
      •  pack_format: Pack version. If this number does not match the current required number, the data pack will display an error and required additional confirmation to load the pack.[verify] Requires 5 for Java Edition 1.15.


This folder contains all the data under one or multiple namespaces. It can contain advancements, functions, loot_tables, predicates, structures, recipes and/or tags folders.

Each advancement, function, loot table, predicate, structure, recipe and tag file can be placed directly in their respective folder but sub-folders are also allowed.


Java Edition
1.1317w43aAdded data packs.
17w46aAdded /datapack, a command to control loaded data packs.
17w48aData packs can now load custom recipes.
17w49aTags can now be created with data packs.
17w49bTags can now be created for functions.
Functions tagged in tick now run every tick at the beginning of the tick.
18w01aAdded set_name function to loot tables.
Functions tagged in load will now run once after a (re)load.
Crash reports now list what data packs are enabled.
1.1418w43aTags can now be created for entity types.
1.1519w38aAdded predicates folder where predicates can be defined.
Pre-Release 2It is now obligatory to set pack_format to 5 or else it will need additional confirmation.[verify]


Issues relating to "Data Pack" are maintained on the bug tracker. Report issues there.

See also