Have you ever asked yourself whether you could craft Diamonds with a few simple items, or perhaps turn trees into Diamonds? In the modded scene, you would turn to a mod and install that, but what if there was an easier way? What if you could just pull up a vanilla world and make just a couple of tweaks?

Enter: the Data Pack. A humble little addition from version 1.13 that allows for small, subtle changes, or even drastic changes, all without using mods. What is a datapack, how do you make one, and how do you use one? Datapacks are quite intricate, so let’s go over the basics of datapacking.

What is a Datapack

Datapacks are a way to change the data on a world, hence the name “data” pack. A datapack consists of folders for specific purposes, and JSON files that change or add features. For example, data/minecraft/tags/block/beacon_base_blocks.json allows us to modify what blocks can be used to build a Beacon. We could also add Dirt, or make Dirt the only block you can use to build a Beacon.

There are also ways that datapacks can be used to modify how the game works. Don’t like the crafting recipes for Stair blocks resulting in 4 blocks? You can edit them so that they output more Stairs! The utilities of a datapack are endless, especially as Minecraft continues to update.

Pros and Cons of a Datapack

As a datapack, you can modify Minecraft without the need to install a mod loader such as Forge, Fabric, or NeoForge. Since their addition in Minecraft 1.13, the scope of a datapack has continued to grow, from changing recipes and adding new advancements, to changing how the world is generated, and creating new entity variants. The possibilities may not be endless now, but in the near future, more and more systems means more ways to change the game without a mod.

However, one fatal flaw with the datapack system is how it is implemented. Datapacks are applied per-world, meaning that datapacks are not applied like a mod. If you want to use a datapack, you have to copy the file or folder into that world’s datapack folder. This can be a cumbersome process if you are one to play with several worlds at the same time. Another big problem is that worldgen requires creating a new world or exploring new chunks in order to apply, so you should make sure you have the right datapacks for your world.

How to make a Datapack

There are two ways to make the datapack: manually, or with a command. If you are playing on Minecraft 1.21.6 or above, you can create a datapack with the /datapack create command. This will create a folder with a pack.mcmeta file. Otherwise, you can create your own pack.mcmeta file.

The pack.mcmeta file contains information on what the datapack is, and what the format is. Each Minecraft version has a specific pack format number, so make sure to check which format is compatible with the game version.

Once we have a pack.mcmeta file, we will want to create a data folder in the same location. Just like that, we have a datapack! Of course, our datapack needs data, so we will want to create some more folders and files.

If we are making our own recipes, tags, advancements, and more, our folder inside data can be any name we want. This is our "domain" name, and Minecraft and each mod has their own domain. For example, if we want to edit the recipe for a Diamond Pickaxe, then we want to edit Minecraft’s recipe, which will require a minecraft folder. If we have a recipe in a mod such as Twilight Forest, their recipes will be in a twilightforest folder.

In our data folder will be a domain folder. For vanilla features, we would make a "minecraft" folder, our own features will be in our own folder name, and mods will be using their mod ID.

Inside any one of these three types of folders will be another folder depending on what we are tweaking. For example, recipes will be in a recipe folder, tags will be in a tags folder, and advancements are in advancements. Each folder will also have its own formatting. Recipes are very simple, only requiring a valid JSON recipe file thrown into the recipe folder, but others like worldgen have folders inside this, such as folders for biomes, feature placement, and feature configuration.

As datapacks have been growing into an ever-exhausting list of possible modifications, I highly recommend checking out the Folder Structure on the Minecraft Wiki. Make sure to also check when each folder was added or changed, as datapacks are also ever-changing.

Inside the domain are out data folders. You can add or change features such as advancements, mob variants, recipes, structure NBT files, and world generation.

The final step after we have the folders to the files we want to edit, we will want to create a JSON file for each feature we want to change. A JSON file can be created with any text editor, but there are some rules with formatting JSON files. Another tool I recommend is a JSON validator such as JSONLint. Simply paste the contents of the file, click Validate, and check if there are any formatting errors.

Now, Minecraft can read a datapack if it’s just a folder, so this step is optional. Once we have our datapack all created and we have checked that it can run, we can now compress our datapack into a ZIP file. This makes the datapack easy to share.

Using the Datapack

Once you have made yourself a datapack - or you downloaded one - you now need to install this datapack. Now, when I mentioned the downsides of a datapack, I mentioned that datapacks are added per world, unlike a mod that is automatically added to every world as long as it is in the mods folder. While this means you aren’t forced to enable or disable a datapack every time you change worlds, it can be a drawn-out process adding them to each world.

Single Player

When creating a new world, click on the More tab and you should see a Data Packs button. This will give you a view of available datapacks and datapacks already installed on the world. For more datapacks, click on Open Pack Folder, then drag and drop any extra datapacks you want. Clicking on the arrow icon for that datapack will move it between these two columns. Anything added to Available will be installed to the world.

On the world creation page, you can select from experimental features or your own datapacks. You will only see experimental features, so to add your own datapack, click Open Pack Folder and paste in your datapack. It will show up in this menu immediately.

If you have an existing world, click on the save, then click the Edit button. Click on the Open World Folder button, and you will get a folder view showing all the folders for your world. Datapacks can then be added into the datapacks folder provided.

If your world is currently open, make sure to run /reload so that all datapacks are refreshed, and run /datapack enable on the datapack you have added.

Multiplayer

Here’s another upside to datapacks: did you know that, once a datapack is installed to a server, other players joining don’t have to download the datapack? That’s right, what datapacks do when they are loaded on a server is that they are synchronised to all clients. Everyone will see the same tweaks to the game and they won’t have to install anything.

Datapacks are stored per world, so to add a datapack to your server, make sure you have a world folder first, then copy your datapack into the datapacks folder.

Simply launch the server until you have a world folder. Once that folder has been created, you can upload a datapack into the datapacks folder. Just like that, the datapack is now available for the server! Run /reload if the server is already running, then run /datapack enable on the datapack you would like to add.

Datapacks can be installed onto an Akliz server in just a few steps! Simply follow the instructions above or follow our handy guide on adding a datapack to a server, and you’re ready to go. Don’t have a server yet? Check out our affordable plans and get started with your own Minecraft server. A datapack can be installed on any Minecraft server, from vanilla to modded, so check it out!