How to Install Datapacks on Your Minecraft Server
Step-by-step guide to installing datapacks on a Minecraft server: uploading via SFTP or Pterodactyl, enabling with /datapack, understanding pack.mcmeta versions, and reloading without restarts.
Datapacks are one of the most underused features in vanilla Minecraft. They let you modify recipes, loot tables, world generation, advancements, and game logic, all without a single plugin or mod. Everything lives inside JSON and mcfunction files that the server reads natively, so there is zero risk of breaking the Minecraft EULA or requiring clients to install anything extra. If you have ever wanted a quick tweak to your server but did not want the overhead of a full plugin framework, datapacks are the answer.
What exactly is a datapack?
A datapack is a folder (or zip archive) that sits inside your world's datapacks/ directory. It follows a strict folder structure defined by Mojang, and the server loads it automatically on startup or when you run /reload. Unlike plugins, datapacks do not require Paper, Spigot, or any modified server jar, they work on the vanilla server just as well as on modded ones.
Common things datapacks can do include adding custom crafting recipes, modifying mob loot tables, changing the wandering trader's offers, adding custom advancements with rewards, running scheduled commands via tick functions, and even altering world generation through dimension and biome data.
Where to find datapacks
Three sources cover the vast majority of quality datapacks:
- Modrinth, the fastest-growing repository. Every pack has version tags, dependency info, and changelogs. Search by Minecraft version and filter by "Datapack" project type.
- Planet Minecraft, has been around for years. The quality varies, so check the comments and download count before trusting a pack on a production server.
- VanillaTweaks (vanillatweaks.net), maintained by the community behind the Hermitcraft datapacks. Their modular picker lets you bundle exactly the tweaks you want into a single zip. This is the gold standard for vanilla-plus servers.
Always verify that the pack targets your Minecraft version. A pack built for 1.20 may break on 1.21 because Mojang changes internal identifiers between major releases.
Understanding pack.mcmeta
Every datapack contains a pack.mcmeta file in its root. This file tells the server which data-pack format version the pack was written for. The format is simple JSON:
{
"pack": {
"pack_format": 48,
"description": "My custom datapack"
}
}
The pack_format number changes with Minecraft versions. Here is a quick reference for recent releases:
| Minecraft version | pack_format |
|---|---|
| 1.20.5 – 1.20.6 | 41 |
| 1.21 – 1.21.1 | 48 |
| 1.21.2 – 1.21.3 | 57 |
| 1.21.4 | 61 |
| 1.21.5 | 71 |
If the format number does not match your server version, the pack may still load but you will see a warning about incompatibility. Some packs use the supported_formats field to declare a range, which avoids the warning across multiple versions.
Uploading the datapack
Method 1, Pterodactyl file manager
If your host uses Pterodactyl (which most modern hosts do), navigate to the file manager in your panel. Open the world folder, typically named world for Paper or the level-name you set in server.properties. Inside it, find or create a folder called datapacks. Upload your zip file directly into that folder. Do not extract it, the server reads zip archives natively.
Method 2, SFTP
Connect with an SFTP client like FileZilla or WinSCP. Navigate to /world/datapacks/ and drag the zip in. SFTP is faster for large files and lets you manage multiple packs at once without the browser upload size limit.
Method 3, Server console
If the pack is already on the server (maybe you built it directly in the file tree), it just needs to be in the right folder. The server scans world/datapacks/ on startup and on reload.
Enabling and managing datapacks
After uploading, run /reload from the console or as an operator in-game. The server re-scans the datapacks folder and loads any new packs it finds. To verify:
/datapack list
This shows two groups: enabled and available. A newly uploaded pack usually enables itself automatically. If it appears under "available" but not "enabled," activate it manually:
/datapack enable "file/my-datapack.zip"
Note the quotes and the file/ prefix, that is how Minecraft references datapack entries internally. To disable a pack without deleting it:
/datapack disable "file/my-datapack.zip"
Disabling a pack does not undo changes it already made (like placed structures or given items), but it stops any ongoing functions and removes recipes, advancements, and loot table overrides it provided.
Reloading without a restart
One of the biggest advantages datapacks have over plugins is hot-reloading. The /reload command re-reads every datapack in a couple of seconds. There is no need to stop the server, no risk of corrupting player data, and no downtime. This makes datapacks ideal for iterating on custom recipes or tweaking loot tables while players are online.
Keep in mind that /reload does reload plugins too on Paper servers, which can sometimes cause side-effects. If you only want to refresh datapacks, the safest approach is to use /datapack disable followed by /datapack enable for the specific pack you changed.
Troubleshooting common issues
- Pack does not appear after upload, Check the folder path. It must be inside the world folder, not the server root. On servers with Multiverse, each world has its own datapacks folder.
- "Incompatible data pack" warning, The
pack_formatinpack.mcmetadoes not match your server version. Update the number or find a version of the pack built for your release. - Recipes do not appear, Make sure the JSON filenames follow Minecraft's naming rules: lowercase letters, digits, underscores, hyphens, dots, and forward slashes only. No spaces.
- Functions do not run, Verify
tick.jsonorload.jsonreferences the correct namespace and function path. A typo in the namespace silently fails with no error in the log.
Best practices
Keep your datapacks organized. Name each zip clearly, custom-recipes-v2.zip is better than pack.zip. Back up your world before adding a pack that modifies world generation, because those changes cannot be reversed by simply removing the pack. And test every pack on a staging server first if you are running a public server with active players.
For more on choosing between datapacks and server plugins, see our datapacks vs plugins comparison. If you are ready to build your own, check the datapack creation guide.
Need a server that handles this? Astroworld Hosting runs NVMe SSD, Pterodactyl panel, and DDoS protection. See features , plans from €6.39/mo.