Guides / Troubleshooting

Datapack not loading? The folder structure and the three names that must match

A datapack that does not appear in /datapack list has a path problem, not a code problem. Here is the exact tree, the namespace rule, and the folders that got renamed.

/datapack list shows nothing, or shows the pack as disabled. Almost always the JSON is fine and the folders are wrong.

The tree

world/datapacks/my_pack/
├── pack.mcmeta
└── data/
    └── my_namespace/
        ├── function/         one .mcfunction per file
        ├── recipe/
        ├── loot_table/
        ├── advancement/
        ├── predicate/
        └── tags/
            └── function/
                └── load.json

Three names must line up and one of them is not obvious:

  1. pack.mcmeta at the pack root — beside data/, not inside it.
  2. data/<namespace>/ — your namespace, lowercase, no spaces. This becomes the prefix

in my_namespace:my_function.

  1. The category folder names, which changed and are the usual culprit.

The folders were renamed to singular

This broke a lot of packs and a lot of tutorials:

OldCurrent
functions/function/
recipes/recipe/
loot_tables/loot_table/
advancements/advancement/
predicates/predicate/
structures/structure/

A pack using the plural names loads — it appears in /datapack list — and simply does nothing, which is the most confusing failure mode of the set. tags/ stayed plural, and so did tags/function/ becoming singular inside it. Yes, that is inconsistent.

Running something automatically

Two special tags:

data/minecraft/tags/function/load.json   → runs once on load/reload
data/minecraft/tags/function/tick.json   → runs every tick

Note data/minecraft/, not your own namespace — the tag belongs to Minecraft, the functions it points at belong to you:

{ "values": ["my_namespace:setup"] }

Diagnosing in order

  1. /datapack list — if the pack is not listed at all, pack.mcmeta is missing,

malformed, or one level too deep.

  1. Listed but disabled/datapack enable "file/my_pack". Note the file/ prefix

and the quotes.

  1. Listed and enabled but inert — wrong pack_format, or plural folder names.
  2. /reload and read the chat. Syntax errors in functions surface there, not silently.

Zipped or not

Both work. Zipped means pack.mcmeta at the zip root, exactly as for resource packs. Folder-form is easier while developing because /reload picks up edits without re-zipping.

Server placement

On a server the path is <world>/datapacks/, where <world> is the value of level-name in server.properties — not the server root. Dropping the pack in the server folder is the single most common server-side mistake.

Assemble a pack with the current folder names, a valid pack.mcmeta and a load tag already wired, then download it ready to drop in, with the Datapack Studio.

Open the Datapack Studio →

More guides

Browse all →

Looking for more Minecraft tools?

A suite of client-side generators, viewers and converters — all free, all in your browser.