MC Toolkit

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/
    └── minecraft/
        └── 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.
  3. 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, but the folders inside it went singular with everything else — tags/functions/ is now tags/function/. 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.
  2. Listed but disabled — /datapack enable "file/my_pack". Note the file/ prefix and the quotes.
  3. Listed and enabled but inert — plural folder names, or a load tag in your own namespace instead of minecraft.
  4. /reload and read the log (logs/latest.log, or the launcher output). A function with a syntax error is dropped there with "Failed to load function …"; chat only says the reload finished.

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 and a valid pack.mcmeta, then download it ready to drop in, with the Datapack Studio — and put your load tag in data/minecraft/tags/function/, as above.

Datapack Studio →

More guides

Browse all →