← Tous les articles

Pourquoi votre recette personnalisée n’apparaît pas

Une recette qui ne fait rien n’est presque jamais une mauvaise idée. C’est en général l’une de ces quatre choses : le motif est rempli de lignes vides, la forme des ingrédients appartient à une autre version du jeu, le fichier est dans le mauvais dossier, ou bien la recette fonctionne très bien et seul le livre de recettes est vide. Cette page les parcourt une par une.

Ouvrir le générateur de recettes

Une recette est un fichier

Aucune commande n’ajoute une recette. Comme les tables de butin et les progrès, une recette est un fichier JSON que le monde lit au chargement, situé à data/<espace>/recipe/<nom>.json dans un data pack. Si cette phrase vous surprend, le guide data packs contre commandes explique pourquoi, et le générateur de data packs construit le dossier.

Notez que le dossier s’appelle recipe, au singulier, depuis 1.21. C’était recipes avant, et un fichier resté dans l’ancien dossier n’est jamais lu sur un jeu récent.

Le remplissage : l’erreur la plus coûteuse en temps

Une recette avec forme est comparée à la plus petite boîte qui la contient, et le motif que vous écrivez est cette boîte. Écrivez un motif de trois lignes quand la recette n’en occupe qu’une, et vous avez déclaré une recette de trois lignes.

"pattern": [
  "###",
  "   ",
  "   "
]

Cela ne se fabriquera pas dans la grille 2×2 de l’inventaire, et sur un établi cela exigera que les trois objets soient précisément sur la ligne du haut. Ce que vous vouliez est presque certainement ceci :

"pattern": [
  "###"
]

Maintenant la recette fonctionne partout où les trois objets sont alignés. La règle est simple : rognez toutes les lignes et colonnes vides des bords. Les espaces à l’intérieur de la forme sont significatifs et doivent rester — le trou au milieu d’une recette en anneau est réel et voulu.

Avec ou sans forme

Le sans-forme ignore complètement la disposition : il prend une liste à plat et fonctionne dès que ces objets se trouvent quelque part dans la grille.

{
  "type": "minecraft:crafting_shapeless",
  "ingredients": [
    "minecraft:paper",
    "minecraft:ink_sac"
  ],
  "result": { "id": "minecraft:written_book", "count": 1 }
}

Prenez le sans-forme quand la disposition ne veut rien dire, ce qui est le cas de la plupart des recettes de combinaison. La forme se justifie quand elle fait partie de l’idée : une pioche doit ressembler à une pioche sur la grille.

Deux changements de format qui cassent les exemples copiés

Le JSON des recettes a été réécrit deux fois en peu de temps, d’où l’exemple de tutoriel qui échoue sans raison visible.

VersionIngrédientRésultat d’artisanat
avant 1.20.5{"item": "minecraft:x"}{"item": ..., "count": n}
1.20.5 – 1.21.1{"item": "minecraft:x"}{"id": ..., "count": n}
1.21.2 et après"minecraft:x"{"id": ..., "count": n}

Les résultats de cuisson et de tailleuse ont bougé aussi : simple chaîne d’identifiant avant 1.20.5, objet ensuite. Rien de tout cela ne change ce que la recette signifie, seulement son orthographe — exactement le genre de différence pénible à déboguer à l’œil.

Un ingrédient, plusieurs objets

Un ingrédient peut être un tag d’objets plutôt qu’un objet précis, écrit avec un # devant. C’est ainsi qu’une recette accepte n’importe quel bois :

"key": {
  "#": "#minecraft:planks"
}

Le vanilla fournit beaucoup de tags utiles — #minecraft:planks, #minecraft:logs, #minecraft:wool — et vous pouvez définir les vôtres dans data/<espace>/tags/item/. Énumérer chaque essence à la main marche aussi, mais vieillit mal : la prochaine mise à jour ajoute un bois et votre recette cesse discrètement de l’accepter.

Quand la recette marche mais le livre est vide

Ce cas déroute parce que rien n’est réellement cassé. Une recette personnalisée n’apparaît pas dans le livre tant qu’elle n’est pas débloquée, et le déblocage passe par un progrès avec une récompense recipe_unlocked. Le vanilla le fait pour chacune de ses recettes, d’où leur apparition au fil de la récolte.

Tant que vous ne l’avez pas ajouté, la recette se fabrique parfaitement si le joueur la dispose lui-même. Donc si votre test est « elle n’est pas dans le livre », essayez de la monter à la main avant de conclure que le fichier est faux.

Que vérifier quand rien ne se passe

  1. Le fichier est-il dans recipe/, au singulier, sur 1.21+ ?
  2. Le motif a-t-il des lignes ou colonnes vides en bordure ?
  3. La forme des ingrédients correspond-elle à votre version ?
  4. Avez-vous fait /reload ?
  5. Le pack apparaît-il dans /datapack list ?

Contrairement aux tables de butin, une recette mal formée se plaint généralement dans le log du serveur au rechargement — ce log mérite donc d’être lu avant tout le reste.

Pour aller plus loin

Le générateur de recettes dispose la recette sur une grille, rogne le motif pour vous et réécrit la forme des ingrédients et du résultat quand vous changez de version cible. Ensuite, le générateur de tables de butin couvre ce qui sort des coffres et des monstres plutôt que ce qui entre dans une grille.