Votre datapack ne charge pas ? Structure des dossiers et les trois noms qui doivent correspondre
Un datapack qui n'apparaît pas dans /datapack list a un problème de chemin, pas un problème de code. Voici l'arborescence exacte, la règle des espaces de noms, et les dossiers qui ont été renommés.
/datapack list n'affiche rien, ou affiche le pack comme désactivé. Presque toujours, le JSON est correct et les dossiers sont incorrects.
L'arborescence
world/datapacks/my_pack/
├── pack.mcmeta
└── data/
└── my_namespace/
├── function/ one .mcfunction per file
├── recipe/
├── loot_table/
├── advancement/
├── predicate/
└── tags/
└── function/
└── load.json
Trois noms doivent correspondre et l'un d'eux n'est pas évident :
pack.mcmetaà la racine du pack — à côté dedata/, pas à l'intérieur.data/<namespace>/— votre espace de noms (namespace), en minuscules, sans espaces. Cela devient le préfixe dansmy_namespace:my_function.- Les noms des dossiers de catégorie, qui ont changé et sont la cause habituelle.
Les dossiers ont été renommés au singulier
Cela a cassé de nombreux packs et de nombreux tutoriels :
| Ancien | Actuel |
|---|---|
functions/ | function/ |
recipes/ | recipe/ |
loot_tables/ | loot_table/ |
advancements/ | advancement/ |
predicates/ | predicate/ |
structures/ | structure/ |
Un pack utilisant les noms au pluriel se charge — il apparaît dans /datapack list — et ne fait tout simplement rien, ce qui est le mode d'échec le plus déroutant de l'ensemble. tags/ est resté au pluriel, tout comme tags/function/ est devenu singulier à l'intérieur. Oui, c'est incohérent.
Exécuter quelque chose automatiquement
Deux balises spéciales :
data/minecraft/tags/function/load.json → runs once on load/reload
data/minecraft/tags/function/tick.json → runs every tick
Notez data/minecraft/, pas votre propre espace de noms — la balise appartient à Minecraft, les fonctions qu'elle pointe vous appartiennent :
{ "values": ["my_namespace:setup"] }
Diagnostic dans l'ordre
/datapack list— si le pack n'est pas du tout listé,pack.mcmetaest manquant, malformé, ou un niveau trop profond.- Listé mais désactivé —
/datapack enable "file/my_pack". Notez le préfixefile/et les guillemets. - Listé et activé mais inerte — mauvais
pack_format, ou noms de dossiers au pluriel. /reloadet lisez le chat. Les erreurs de syntaxe dans les fonctions y apparaissent, pas silencieusement.
Zippé ou non
Les deux fonctionnent. Zippé signifie pack.mcmeta à la racine du zip, exactement comme pour les packs de ressources. La forme dossier est plus facile pendant le développement car /reload prend en compte les modifications sans rezipper.
Placement sur le serveur
Sur un serveur, le chemin est <world>/datapacks/, où <world> est la valeur de level-name dans server.properties — pas la racine du serveur. Placer le pack dans le dossier du serveur est l'erreur la plus courante côté serveur.
Assemblez un pack avec les noms de dossiers actuels, un pack.mcmeta valide et une balise de chargement déjà configurée, puis téléchargez-le prêt à être déposé, avec le Datapack Studio.