Pack details
The name becomes the ZIP file name, the description is what /datapack list shows on hover. The namespace (lowercase letters, digits, _ . -) becomes part of every ID in the pack, such as harbor:load.
A data pack is not something you paste into chat. It is a folder of JSON files that the world loads, and it is how loot tables, recipes, advancements and reusable functions actually work. This generator builds that folder for you with the right pack_format and the right directory names for your version, then hands you a ZIP you can drop straight into a world.
Resource packs change how the game looks. Data packs change how it behaves. Most servers end up needing both.
The namespace keeps your files from colliding with vanilla and with other packs. Lowercase letters, numbers and underscores only — it becomes part of every ID, like harbor:load.
The examples are working starting points, not decoration: edit the JSON and reload. A tick function runs constantly, so leave it off unless you actually need per-tick logic.
Every pack needs this file at the very top of the folder. Up to 1.21.8 it carries pack_format; from 1.21.9 it carries min_format and max_format instead. If the number does not match the game you are running, Minecraft marks the pack as incompatible.
Fill in four fields, tick what the pack should contain, and download a ZIP that a world can load as it is.
The name becomes the ZIP file name, the description is what /datapack list shows on hover. The namespace (lowercase letters, digits, _ . -) becomes part of every ID in the pack, such as harbor:load.
Sets the format number in pack.mcmeta and the folder names. Pick the exact version you run: the format number changes with almost every release.
A load function runs on every /reload and world start; a tick function runs 20 times a second. The example loot table, recipe and advancement are working files to edit, not placeholders.
The file list shows the whole tree, and every file can be opened and copied on its own, which helps if you prefer to build the folder by hand.
If you unzip the pack and zip it again, make sure pack.mcmeta sits at the root of the ZIP, not inside an extra folder; otherwise the game does not see a pack at all.
Data packs belong to one world: saves/<world>/datapacks/ in single player, <world>/datapacks/ next to level.dat on a server.
/datapack list shows enabled and available packs. A pack marked incompatible was built for another version; a pack that loads but does nothing usually uses the wrong folder names for that version.
Java Edition 1.20 to 26.3. 1.21 renamed the content folders to the singular (function, loot_table, recipe…), and 1.21.9 replaced pack_format with min_format and max_format in pack.mcmeta. The generator writes whichever your target version expects.