What a datapack is, and where it lives on a server
A data pack changes the game through data rather than code: recipes, loot tables, advancements, functions, structures and even world generation. The Minecraft Wiki defines one simply as a folder or a .zip file containing a pack.mcmeta file. Because the server runs the data, players do not install anything to join, unless the pack also asks for a resource pack.
Data packs belong to a world, not to the server. On a server they go in the datapacks folder inside the world folder, and the world folder is whatever level-name in server.properties points to, world by default. On Paper from 26.1 the tree is the same, with datapacks directly inside world. On Paper before 26.1, use the datapacks folder in the main world folder, not in world_nether or world_the_end.
The folder exists once the world has been generated. If it is missing, create it with exactly that name, lower case.
- Path: <level-name>/datapacks, so world/datapacks by default
- Accepted: a .zip or a folder, each with pack.mcmeta at its root
- Java Edition only; Bedrock uses add-ons instead
Check the pack fits your version first
Every pack declares the formats it supports in pack.mcmeta, and pack formats change with almost every release. 26.1 uses data pack format 101.1, 26.2 uses 107.1 and 26.3 uses 121.0. Since 1.21.9, packs declare a range with min_format and max_format, and the older supported_formats field is gone.
You rarely need to read the numbers yourself. Download the release the author marks for your exact Minecraft version, the same way you would pick a plugin. On Modrinth you can filter data packs by game version before downloading.
If a pack only exists for an older version, nobody has confirmed it works on yours, so try it on a copy of the world before your players depend on it.
- 26.1: format 101.1
- 26.2: format 107.1
- 26.3: format 121.0
- Pick the release labelled for your version rather than the newest file
Add a datapack, step by step
Stop the server first, so the upload is in place before the world loads. Upload the pack over SFTP or with the panel's file manager, the same way as uploading a whole world, only into the datapacks folder.
The most common mistake here is the extra folder. Some downloads unpack into a folder that contains another folder, and only the inner one has pack.mcmeta. The server then sees a folder without pack.mcmeta and ignores it. Open the pack you uploaded and confirm pack.mcmeta and the data folder are right there at the top.
- Stop the server
- Open world/datapacks, or the folder named by level-name
- Upload the .zip as it is, or the folder that directly contains pack.mcmeta
- Start the server
- Run datapack list enabled in the console and look for your pack
Enable, disable and order packs with /datapack
The datapack command manages packs on a running server. datapack list shows everything, datapack list available shows packs the server found but has not enabled, and datapack list enabled shows the active ones. Copy the name exactly as the list prints it, and put it in quotes if it contains spaces or a slash.
Order matters when two packs change the same thing. If a file exists in several packs, the one in the last pack loaded wins, though tags merge unless a pack replaces them. The order is saved in the world's level.dat, so it survives restarts. enable takes first or last to put a pack at the lowest or highest priority, or before or after an existing pack to slot it in between.
enable, disable and list need permission level 2, so any operator can use them, and the console always can. Functions that a pack runs use function-permission-level, which defaults to 2.
- datapack list available: found but not enabled
- datapack enable "<name>": turn a pack on
- datapack enable "<name>" last: give it the highest priority
- datapack disable "<name>": turn it off without deleting it
Reload or restart: what each one picks up
In vanilla, reload reloads the current data packs, and the wiki notes that a reload with invalid data is rejected while the game keeps using the previous data. That covers recipes, loot tables, advancements, item modifiers, predicates, functions, tags and structure templates.
It does not cover everything. Folders such as worldgen, dimension and enchantment sit in dynamic registries, which the wiki says cannot be reloaded with the reload command; on a server they need a reboot. So a pack that adds biomes, dimensions or enchantments only takes effect after a full restart.
On Paper, the plain reload command is the Bukkit one, and Paper's command reference marks it deprecated for removal because it is known for causing issues with plugins. Restart instead. It takes a minute and loads every pack and plugin from scratch.
- Recipes, loot, advancements, functions, tags: reload works on vanilla
- Worldgen, dimensions, enchantments: restart required
- Paper: restart rather than using reload
Packs that must be added when the world is created
Some packs cannot simply be dropped into an existing world. Feature flags, which switch on experimental content, can only be enabled through a data pack when the world is created, and the datapack command refuses a pack that needs a flag the world does not have.
On a server, the world is created on the first start, and two lines in server.properties decide what is enabled at that moment. initial-enabled-packs lists the packs to enable on world creation, vanilla by default, and the wiki notes that feature packs must be explicitly enabled there. initial-disabled-packs lists packs not to auto-enable. Both are comma-separated, and both only matter for a world that does not exist yet. The server.properties generator builds a clean file if you are starting fresh.
Packs that change world generation deserve the same care. Changes to worldgen and dimension data need a restart, and the server saves chunks once they are generated, so read the pack's own page for whether it expects a new world before you add it to one your players have built in.
When a datapack breaks the server
A broken or badly made pack can stop a world from loading. In singleplayer the game offers Safe Mode, which the wiki describes as disabling all data packs except the vanilla one. Servers have the same thing as a start-up flag: --safeMode loads worlds with only the vanilla data pack, and Paper documents the same flag.
The simpler fix on a hosted server is to stop it, move the pack you just added out of the datapacks folder, and start again. Then check the log for the line naming the file that failed, and look for a release of the pack built for your version.
Take a backup before adding a pack that changes the world, so a bad result is a restore rather than a rebuild. If the server runs fine but feels slower after a function-heavy pack, the lag and low TPS guide shows how to find out what is using the tick.
- Move the new pack out of datapacks and restart
- Or start once with --safeMode to load only vanilla data
- Read the log for the failing file
- Back up before packs that change the world