What is a data pack in Minecraft?
A data pack is a folder of files that changes how a Minecraft world behaves without touching the game’s code. It can add new crafting recipes, rewrite what mobs and chests drop, create custom advancements, run commands on its own, and even change how the world generates. Everything a data pack does is built on systems already inside vanilla Minecraft, so you don’t install any extra software to run one.
Data packs work in Minecraft: Java Edition and have been part of the game since version 1.13. Each pack applies to a single world, or to a single multiplayer server, so you can run a heavily customized world and a normal survival world at the same time without one bleeding into the other.
If you have ever loaded a “one block” challenge map, a custom recipe set, or a pack of quality-of-life tweaks, you have almost certainly used a data pack already.
What data packs can change
Data packs are data-driven. That means they edit the JSON files Minecraft reads when a world loads, instead of the compiled game logic that mods hook into. The main things a pack can control:
- Recipes for crafting, smelting, smithing, and the stonecutter
- Loot tables that decide what blocks, mobs, and chests drop
- Advancements, including whole custom trees with their own triggers and rewards
- Functions, which are lists of commands the game runs in order
- Tags that group blocks, items, or entities so other systems can reference them at once
- Predicates and item modifiers for fine control over drops and conditions
- World generation, including custom biomes, structures, and even new dimensions
- Damage types and other newer registries that Mojang has moved into data files
Because all of this is plain text, you can open a data pack in any code editor and read exactly what it does. Nothing is hidden inside a binary file.
Where data packs live
Every Minecraft world keeps its data packs in its own save folder. In single-player, the path is your world folder followed by a datapacks directory:
.minecraft/saves/<world name>/datapacks/
On a dedicated server, the folder sits inside the world directory instead:
<server folder>/world/datapacks/
Each data pack is either a folder or a .zip file dropped directly into that datapacks directory. The game treats both the same way, so you can keep a pack zipped while testing and unzip it later if you want to edit it.
How to install a data pack
Installing a pack into a world that already exists takes a few steps:
- Find the world’s
datapacksfolder using the paths above. The quickest way in-game is to open the world, pause, and use the “Open world folder” button if your launcher version has it. - Copy the data pack (the folder or the
.zip) intodatapacks. - Back in the game, run
/reloadin chat, or quit to the title screen and load the world again. - Confirm it loaded by running
/datapack list. An enabled pack shows up in green.
You can also add a pack before a world exists. When you create a new world, the world creation screen has a “Data Packs” button. Drag a pack onto that window and it applies the moment the world generates, which matters for packs that change world generation, since those only take effect on chunks created after the pack is active.
The pack.mcmeta file and pack format
Every valid data pack contains a file named pack.mcmeta at its top level, next to a data folder. The pack.mcmeta is a small JSON file that tells Minecraft two things: a short description and a pack format number.
The pack format is a version stamp. Each Minecraft release supports a specific data pack format, and the number climbs over time as Mojang changes the file layout. If a pack’s format is too far off from the version you are running, Minecraft warns you that the pack may not work, and it can refuse to load. When you download a pack, check that it lists support for your game version. When a pack stops working after an update, an outdated pack format is one of the first things to check.
The data folder holds everything else, organized by namespace. A typical path inside a pack looks like data/<namespace>/recipe/my_recipe.json. The namespace keeps one pack’s files from colliding with another’s.
Enabling, disabling, and listing packs
The /datapack command controls which packs are active in the current world. The three forms you will use most:
/datapack listshows every available pack and whether it is enabled or disabled./datapack enable <name>turns a pack on./datapack disable <name>turns a pack off without deleting any files.
Disabling is reversible and safe. The pack stays in the folder, so you can switch it back on later with the same command. This is handy when two packs conflict and you want to test them one at a time.
Reloading changes with /reload
While you are building or editing a pack, you don’t have to restart the game every time you change a file. Running /reload reloads recipes, loot tables, advancements, tags, and functions from disk. Save your file, run /reload, and the new version is live.
One limit worth knowing: /reload does not re-run world generation. Worldgen changes only apply to brand-new chunks, so editing a biome or structure file and reloading will not rewrite terrain you have already explored. To see those changes you need fresh chunks, which usually means traveling far out or starting a new world.
Built-in and experimental packs
Minecraft ships with built-in data packs of its own. The “vanilla” pack holds the default recipes and loot tables, and it is always active in the background. Around major updates, Mojang also bundles experimental feature packs that let you opt into upcoming content early from the world creation screen. Toggling one of those on is the same idea as adding your own pack, just with files Mojang already shipped.
This is why data packs are a low-risk way to experiment. The system they use is the same one the base game runs on, so a pack that only adds a recipe or a loot tweak is unlikely to corrupt a world. Worst case, you disable it and run /reload.
Data packs vs mods
Data packs and mods both customize Minecraft, but they work at different levels. A data pack rearranges and extends content the game already understands: recipes, drops, advancements, commands. It cannot add brand-new game mechanics that the engine has no concept of, like a genuinely new mob with custom AI or a new rendering effect.
Mods, by contrast, change the game’s code through a loader such as Fabric or Forge and can add anything a programmer can write. The trade-off is setup and compatibility. Mods need a matching loader and often need each other to be on the same version, while a data pack runs in unmodified Minecraft and only needs a compatible pack format. For server owners who want custom recipes or minigame logic without asking every player to install a mod loader, data packs are the simpler path, since the server applies them and clients connect normally.
Data packs on Bedrock Edition
Bedrock Edition does not use data packs. Its equivalent is the add-on system, split into behavior packs and resource packs. Behavior packs cover roughly what data packs do on Java, changing entity behavior, loot, recipes, and spawn rules, while resource packs handle textures, models, and sounds. The two editions are not cross-compatible, so a Java data pack will not load on Bedrock and a Bedrock behavior pack will not load on Java. If you play Bedrock and want this kind of customization, you are looking for add-ons, not data packs.
Common mistakes
A few problems come up again and again with new pack users. The pack format number not matching your game version is the most common, and it produces a loud warning when you load the world. Another is folder structure: the pack.mcmeta has to sit at the top of the pack next to data, not one folder deeper, which is easy to get wrong when a download wraps everything in an extra directory. A third is forgetting /reload after editing a file, then assuming the pack is broken when it simply hasn’t been re-read yet. And worldgen edits not showing up usually trace back to looking at chunks that already generated before the pack was active.
Frequently asked questions
Do data packs work in multiplayer?
Yes. A data pack installed on a server applies to everyone connected, and players don’t need to install anything on their end. That is one of the biggest advantages over mods.
Can data packs change textures or sounds?
No. Data packs handle game logic and content like recipes and loot. Textures, models, and sounds are the job of resource packs. The two are often distributed together but they are separate systems.
Will a data pack break my world?
Most won’t. Because data packs use the same systems vanilla Minecraft already runs, a simple recipe or loot pack carries little risk. If a pack misbehaves, disable it with /datapack disable and run /reload. As with any change, a backup of your world before installing something unfamiliar is sensible.
Why isn’t my data pack showing up?
Check three things in order: the pack is in the correct datapacks folder for that world, the pack.mcmeta sits at the top level next to the data folder, and the pack format matches your version. Then run /datapack list to see whether the game recognizes it.
Do I need to know how to code?
To use a downloaded pack, no. You drop it in a folder and reload. To build your own, you write JSON and, for functions, Minecraft commands. Neither is full programming, but custom packs do take some learning.
How do I remove a data pack?
Disable it with /datapack disable <name> to turn it off, or delete the pack file from the datapacks folder to remove it entirely. After either, run /reload or reload the world.
Getting started
The fastest way to understand data packs is to install one you didn’t write, run /datapack list to confirm it loaded, then open its files and read them. Seeing a working recipe or loot table next to the result it produces in game makes the JSON structure click faster than any amount of reading about it.