Modifier MinecraftTutoriels

[Tutoriel] Créer des recettes personnalisées avec un datapack

Les possibilités offertes par les command blocks sont grandes, mais ils n’ont malheureusement pas la possibilité d’ajouter des recettes au jeu. Il est possible de passer par des moyens détournés (dispenser, items jetés au sol…), mais aucun ne permettra réellement de disposer des items dans un établi pour en obtenir un autre.

Si les commandes ne le permettent pas, utilisons un autre outil ! Les packs de données (ou datapacks) ont l’avantage d’être plus polyvalents que ces dernières tout en restant dans le même esprit. Ils permettent, entre autres, de créer des recettes pour les établis ou encore les fours.

Créer un datapack

Avant toute chose, il va vous falloir créer votre pack de données. Pour ce faire, lancez le jeu, puis cliquez sur “Solo”/”Singleplayer”. Ensuite, sélectionnez d’un simple clic le monde dans lequel vous voulez ajouter des recettes, et dans le menu du bas de l’écran, cliquez “Edit” (ou “Modifier” en français), puis sélectionnez l’option “Open world folder” ou “Ouvrir le dossier du monde”. Cela vous ouvre une page dans l’explorateur de fichier, qui correspond au dossier où est sauvegardé votre monde. Ouvrez le dossier nommé “datapack” : il devrait être vide, à moins que vous n’en ayez déjà installé un. Dans ce dossier, créez un sous-dossier et donnez-lui le nom de votre choix, mais évitez les espaces, comme toujours dans les noms de fichier/dossiers (“Recettes_Personnalisées” convient très bien). Ce sera la base de votre pack de données ! Cependant, pour que le jeu le “reconnaisse”, il va vous falloir faire un fichier qui sera en quelque sorte sa “carte d’identité” : sans celle-ci, rien ne marche. Pour ce faire, créez un document texte et renommez-le en “pack.mcmeta”. Assurez-vous que l’extension est bien “.mcmeta” et non “.txt”.

Ouvrez le fichier pack.mcmeta avec un éditeur de texte (le bloc-note est celui par défaut), et écrivez dedans ce qui suit :

{
     "pack":{
         "pack_format": 6,
         "description": "<insérez ici votre description>"
     }
 }

Attention

Respectez bien les virgules/accolades : un oubli peut vous faire perdre beaucoup de temps ! Pour vous assister dans l’écriture et vérifier la syntaxe, n’hésitez pas à utiliser un outil tel que Visual Studio ou JSONLint (sans téléchargement pour le second).

Le nombre en face de “pack_format” renseigne la version du pack. Chaque nombre renvoie à un groupe de versions (voir la page du wiki pour plus de détails) :

  • 4 pour les versions 1.13 à 1.14.4
  • 5 pour les versions 1.15 à 1.16.1
  • 6 pour les versions 1.16.2 à 1.16.5
  • 7 pour les versions 1.17 et supérieures

La description, quant à elle, est le texte qui s’affichera lorsque vous passerez la souris sur le nom de votre pack de données affiché avec la commande /datapack list.

Sachez qu’il est possible de rajouter une image nommée “pack.png” dans le dossier de votre pack. Elle correspond à son icône (à la place du bloc d’herbe par défaut).

Dans le même emplacement que le document “pack.mcmeta“, créez un dossier nommé “data”, il contiendra toutes les données du datapack. Il va vous falloir créer encore un sous-dossier dedans. Nommez-le comme vous voulez, mais n’utilisez que des chiffres (0-9) des lettres minuscules (a-z) et des tirets (- et _). Généralement, on écrit en minuscule avec des traits de soulignement pour remplacer les espaces (exemple : recettes_supplementaires). Chaque sous-dossier dans “data” correspondra à un “groupe” d’éléments : ici, ce sera des recettes. Les noms de ces groupes ne sont pas intéressants pour ce que nous faisons, mais ne les négligez pas pour autant, vous comprendrez leur importance si vous poussez les datapack un peu plus loin. Dans un de ces groupes, faites en un dossier (promis, c’est le dernier) nommé “recipes” (recettes, en anglais), c’est ici que nous allons créer nos recettes.

Voici un plan de ce que vous devriez avoir. La partie “Vos recettes” sera le sujet de la deuxième partie :

Plan de la structure du pack

Vous n’êtes pas obligé de créer plusieurs groupes : cela n’est utile que si vous créez un grand nombre de recettes.

Créer des recettes

Les recettes sont des documents au format JSON (comme le fichier “pack.mcmeta”). Pour en créer une, ajoutez un document texte à votre dossier recipes, et nommez-le comme vous le souhaitez, tout en vous assurant de n’utiliser que des nombres, des lettres minuscules et des tirets (- et _). Changez aussi l’extension en .json . Leur nombre n’est pas limité, cependant, il est conseillé d’utiliser un nom reconnaissable, de sorte que vous n’ayez pas besoin d’ouvrir le document pour voir ce dont il s’agit.

Les recettes shaped

Il existe plusieurs types de recettes, le type shaped est une recette classique pour les établis. Voici un exemple de recette et le code à entrer dans le document JSON pour l’avoir en jeu :

Exemple de recette personnalisée
Un exemple de recette shaped
{
   "type": "crafting_shaped",
   "pattern": [
     "#O#",
     "OTO",
     "#O#"
   ],
   "key": {
     "#": {
       "item": "wither_skeleton_skull"
     },
     "O": {
       "item": "glass"
     },
     "T": {
       "item": "wither_rose"
     }
   },
   "result": {
     "item": "nether_star",
     "count": 1
   }
 }

En premier lieu, nous indiquons au jeu le type de recette, crafting_shaped est l’ID des recettes shaped, c’est ainsi qu’il est enregistré dans le jeu, c’est donc son nom dans les datapacks (et dans les commandes). Il est entre guillemets, car il s’agit d’une chaine de caractères (du texte). Le pattern est composé de chaines de caractères encadrées par des crochets et séparées par des virgules (une liste). C’est le plan de la recette, le patron, chaque symbole renvoie à un item, un espace renvoie à un carré vide. La longueur de chaque chaine de caractères doit être la même (tout en restant inférieur à trois), et la liste peut en contenir d’une à trois.

pattern: [
"éé",
"éé"
]
 
pattern:[
"v",
"#",
"v"
]

Ces patterns sont corrects.

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

Ces patterns sont incorrects : dans celui de droite, les chaines de caractères n’ont pas toute la même longueur, il faudrait mettre des espaces pour égaliser. Dans le second, il y a plus de trois symboles par ligne(alors que la grille de l’établi a des dimensions de 3×3).

La seconde partie du code définit ce à quoi correspondent les symboles du pattern : ici il s’agit de O, # et T. On peut y comprendre qu’un # est un crâne de wither squelette (wither_skeleton_skull étant son ID), le O signale du verre (glass) et enfin, T marque une rose de wither (wither_rose). Les caractères doivent rester simples : pas de smiley ou autres, les accents et les chiffres sont en revanche acceptés. Vous n’êtes pas obligés d’utiliser les mêmes lettres que moi et vous pouvez même changer la signification d’un caractère d’une recette à une autre.

Le dernier élément de la recette shaped est le résultat de la recette. En face de “type”, il faut indiquer l’item donné par la recette (nether_star est l’ID de l’étoile du nether) nous fixons la quantité de cet item dans le paramètre count, il est possible de donner plus de 64 items, mais des valeurs trop élevées (comme 8 000 000), ne fonctionnent pas.

Information

En général, les ID correspondent au nom en anglais avec des tirets bas à la place des espaces. Cependant, dans le cas des items provenant d’un mod, il faut préciser l’ID de ce mod devant. Pour les mods, l’ID est très imprévisible, mais vous pouvez en avoir un aperçu grâce au suggestions de la commande /give.

Les recettes shapeless

Le type shapeless est la seconde catégorie de recettes pour les établis. Sa particularité est qu’elle ne nécessite pas de patron : les items peuvent être placés n’importe où sur la grille, c’est le cas notamment pour la fabrication de feux d’artifices. Encore une fois, voici une recette et le texte à entrer dans le document JSON pour l’ajouter à votre jeu :

Exemple de recette personnalisée shapeless
Un exemple de recette shapeless. Vous pouvez disposer les items comme vous le souhaitez, et même utiliser de la roche à la place de la cobblestone.
{
   "type": "crafting_shapeless",
   "ingredients": [
     {
       "item": "diamond"
     },
     [
       {
         "item": "stone"
       },
       {
         "item": "cobblestone"
       }
     ]
   ],
   "result": {
     "item": "diamond_ore",
     "count": 1
   }
 }

Le premier élément est toujours le type de recette, ici, il s’agit de “crafting_shapeless”, qui est, vous l’aurez deviné, l’ID des recettes shapeless. Pas de pattern pour la suite, simplement les composants de la recette. On remarque l’ID du diamant (diamond) en première place dans les ingrédients. La suite est plus étrange : à l’instar du pattern, il s’agit d’une liste (notez les crochets aux extrémités et les virgules pour séparer les parties). Les deux éléments de cette liste sont la roche (stone) et la cobblestone (dont l’ID est cobblestone). Cela signifie que vous pouvez utiliser au choix de la roche ou de la cobblestone. Chaque liste dans les ingrédients indique qu’il est possible d’utiliser n’importe quel élément de cette série (vous pouvez mettre plus de deux items). Le dernier composant est le résultat de la recette, il est structuré de la même façon que pour le type shaped, avec le résultat, diamond_ore qui est l’ID du minerai de diamant ; et la quantité, fixée dans le paramètre count.

Les recettes pour four et feu de camp

Les derniers des principaux types de recettes sont ceux pour les fours et les feux de camps. Voici une recette de cuisson d’un bateau de bouleau, qui vous donnera un bloc de charbon et 1 d’expérience. Le code est en dessous de l’image. Vous allez devoir créer deux documents JSON si vous voulez ajouter à votre jeu la recette pour feu de camp et la recette pour four (vous pourrez même vous amuser à la reproduire pour chaque type de bateau).

Exemple de recette personnalisée pour fours
Un exemple de recette pour four, qui vous donnera un bloc de charbon

Code pour le feu de camp:

Code pour le four:

{
   "type": "campfire_cooking",
   "ingredient": {
     "item": "birch_boat"
   },
   "result": "coal_block",
   "cookingtime": 400
 }
{
   "type": "smelting",
   "ingredient": {
     "item": "birch_boat"
   },
   "result": "coal_block",
   "experience": 1
   "cookingtime": 400
 }

Premièrement, nous indiquons au jeu le type de recette (comme d’habitude) : campfire_cooking pour une cuisson au feu de camp et smelting pour une cuisson avec le traditionnel four. Nous fixons ensuite l’item qui va être cuit, il s’agit ici d’un arbre en bois de bouleau (birch_boat). Le résultat est un bloc de charbon (coal_block). Le temps de cuisson (cookingtime) est de 400 ticks, un tick correspond à un vingtième de seconde : c’est la plus petite unité de temps de Minecraft. Le dernier paramètre (experience) est exclusif au fours : c’est de l’expérience qui sera ajoutée au joueur quand il récupérera le produit de sa cuisson.

Nous avons fait le tour des principales recettes de Minecraft! Et maintenant, à vos établis!

TuTurDuDur

Moi, c'est TuTurDuDur, j'espère que vous appréciez les articles que je publie. Comme je suis nouveau dans l'équipe des rédacteurs, n'hésitez pas à poser des questions ou me faire des retours sur mes articles, pour m'aider à m'améliorer :>

Articles similaires

Abonnez-vous
Prévenez moi :
guest
4 Commentaires
Inline Feedbacks
Voir tous les commentaires
MetalManiac

@TuTurDuDur Bon bah dans le serveurs Discord on me demande si ça fonctionne sur Bedrock et si il y aura une suite. Je leur répond quoi pour la suite ? Comme te disais Erzal ils la réclament !

Smaug

Super ! Merci beaucoup !

Elohy

Nice ça thx ! Mtn need un volume deux aussi bien rédiger pour le reste, genre comment faire le l’objet soit renommer, lui appliqué des tags, des enchants et autre pour faire des objects custom en liant avec un ressource pack et optifine pour craft des objects avec en plus des textures/models différent :D

Bouton retour en haut de la page