Install a data pack on a Minecraft server: check it loaded, and find out why it does nothing

Translated from the original Traditional Chinese version.

Summary

Data packs add new features to a Minecraft world, but after you put one on a server it often does nothing, and sometimes the server shows no error at all. Put the data pack in the right place and check the list, and you can tell whether it is in the wrong folder, wrapped in an extra folder, or too old.

Table of contents

After you download a data pack and put it on a Minecraft server, it often has no effect, and in some cases the server shows no error either. Put the data pack in the right location and check the list, and you can find out why it isn’t working and fix it.

The tests ran on Windows 11, Java 25 and the vanilla server 26.3. You need a server that starts before you begin. If you don’t have one yet, set up a Java Edition vanilla server first. If the data pack changes the contents of the world, back up the server’s world before you install it.

Where data packs go

A data pack goes in the datapacks folder inside the world folder, which is world/datapacks inside the server folder. You can add a data pack while the server is running, and you don’t need to touch server.jar or any other file in the world.

A data pack can be a folder, or a .zip file that you don’t need to extract. When you open the data pack, you should see pack.mcmeta and data right away, like this:

File Explorer showing the hello data pack with the data folder and the pack.mcmeta file directly inside (Traditional Chinese Windows interface)
If you only see another folder when you open it, the data pack is wrapped in an extra folder, and it has no effect once you put it in. The difference between a correct and a wrong placement looks like this:

On the left, the layout the server can read: hello or hello.zip in world/datapacks contains pack.mcmeta and data when opened. On the right, the layouts it can’t read: datapacks placed directly in the server folder, and a hello folder wrapped inside another hello folder

Load and verify

After you place the data pack, type reload in the server window, and the newly added data pack is enabled automatically. Then type datapack list to see the list. When the name of your data pack appears on the enabled line, it loaded successfully. You can ignore [Not Secure] in the messages:

The server window after typing reload, datapack list and function hello:hi, with file/hello on the enabled list and the last line printing hello from datapack
When a data pack works, you can see it in the game too. The screenshot below shows the text from the test data pack appearing in the in-game chat:

The chat at the bottom left of the game screen showing [Server] hello from datapack, with savanna terrain in the background
If the data pack is on the available line, type datapack enable "file/hello" to enable it. Write the name as it appears in the list, include .zip for a zip file, and keep the quotation marks.

Most data packs work with just reload. When a data pack adds a dimension or an enchantment, type stop and start the server again. Otherwise the list shows the data pack as enabled, but using it gives messages such as Unknown dimension or Can't find element.

Troubleshoot a data pack that does nothing

When a data pack does nothing, first check whether datapack list has it, and then read the messages the server window prints during reload:

datapack list Situation Message in the server window Fix
Not listed Wrong folder No message Move it to world/datapacks
Not listed A zip file wrapped in an extra folder Prints Missing metadata in pack Extract it and move the inner folder to datapacks
Not listed A folder wrapped in an extra folder, or the pack.mcmeta file name is wrong Prints Found non-pack entry Put pack.mcmeta in the first level and fix the file name
Enabled An old data pack whose folder is functions No message, shows Unknown function when you run it Download a data pack that supports the current version
Enabled The data pack contains old or invalid commands Prints Failed to load function Download a data pack that supports the current version
Server won’t start A dimension or enchantment added by the data pack has an error Prints Failed to load datapacks Move the data pack out of datapacks and start again

The server doesn’t reject a data pack because its version number is too old or too new, and an old data pack shows as enabled too. So when a data pack is enabled but does nothing, it is most likely too old, and the easiest fix is to download a file that supports your current version. To remove a data pack, move it out of datapacks and type reload.

When you edit a data pack yourself

If you can’t find a newer file, or the data pack is your own, you have to edit its contents. In a 1.21 development version, Minecraft changed the data pack folder names from plural to singular. For an old data pack, rename functions under data/<namespace> to function and tags/functions to tags/function, and then type reload.

If a single line in a function can’t be parsed, the server window prints Failed to load function during reload, and the next line gives the reason. In the screenshot below, hello:bad has setblok typed instead of setblock on line 2, and line 2 is the line with the error. You can ignore the long list of lines starting with at below it:

The server window after typing reload, printing Failed to load function hello:bad, with the next line reading Whilst parsing command on line 2: Unknown or incomplete command, and typing function hello:bad then shows Unknown function
A function with an old command gives the same message. For old game rule names, see Minecraft gamerule old and new names. In 26.3, pack.mcmeta declares the supported versions with min_format and max_format, and the data pack version is 121:

1{
2  "pack": {
3    "description": "test pack",
4    "min_format": 121,
5    "max_format": 121
6  }
7}

Test notes

I used a test data pack with a single say line and reproduced each situation above on the vanilla 26.3 server. Every case started from a new world. After I placed the data pack, I ran reload first and then restarted the server to check once more. Dimension and enchantment errors were checked with separate test data packs.

Summary

A data pack goes in the world folder, can’t be wrapped in an extra folder, and works after a reload. The server doesn’t reject a data pack for a mismatched version number, so when a data pack is enabled but does nothing, suspect first that it is too old.

Where to go next

PreviousBlueMap for Minecraft servers: a 3D web map of your world and online playersGamesNextMinecraft server lag: use spark to find out whether entities, hoppers, or a plugin cause itGames
Ted Liou

Ted Liou

Software engineer writing about Unity and AI development. Available for consulting.