Mise à jour :

L'arborescence finale

mypack/
├─ pack.mcmeta
└─ data/
   ├─ mypack/
   │  └─ function/
   │     ├─ hello.mcfunction
   │     ├─ load.mcfunction
   │     └─ tick.mcfunction
   └─ minecraft/
      └─ tags/
         └─ function/
            ├─ load.json
            └─ tick.json

mypack est votre espace de noms. N'utilisez que des minuscules, des chiffres et _.

1. pack.mcmeta

{
  "pack": {
    "pack_format": 48,
    "description": "Mon premier datapack"
  }
}

pack_format indique au jeu pour quelle version est le pack : 48 correspond à Java 1.21–1.21.1 et 61 à 1.21.4. Il change avec la plupart des versions, et les versions récentes ont encore modifié le format du fichier, alors vérifiez le nombre pour votre version. Assurez-vous que Windows ne l'a pas enregistré sous pack.mcmeta.txt.

2. Un fichier de fonction

say Le datapack fonctionne
give @s minecraft:diamond 1

Enregistrez-le sous data/mypack/function/hello.mcfunction. Une commande par ligne, sans barre oblique au début ; les lignes qui commencent par # sont des commentaires.

3. L'ajouter à un monde

  1. Copiez le dossier mypack dans .minecraft/saves/NomDuMonde/datapacks/.
  2. Lancez /reload dans le monde.
  3. Vérifiez avec /datapack list.
  4. Lancez /function mypack:hello.

Après chaque modification, relancez /reload. Pour le partager en zip, pack.mcmeta doit être à la racine du zip.

4. Exécuter au chargement et à chaque tick

{
  "values": ["mypack:load"]
}

Les fonctions listées dans data/minecraft/tags/function/load.json s'exécutent à l'ouverture du monde et à chaque /reload. tick.json (avec "mypack:tick") s'exécute à chaque tick, 20 fois par seconde, alors gardez-le léger. Pour des actions programmées, /schedule est plus léger que tick.

Problèmes courants

Vérifiez votre commande

Le Command Error Doctor (en anglais) vérifie dans votre navigateur les erreurs de syntaxe les plus courantes.