Guides / Commands & Data

Enchantements personnalisés sans mods : le format d'enchantement basé sur les données

Les enchantements sont devenus des fichiers JSON de datapack, donc un enchantement personnalisé ne nécessite aucun mod. Voici la structure du fichier, les composants d'effet qui font réellement quelque chose, et comment le rendre obtenable.

Les enchantements étaient autrefois codés en dur. Ils sont maintenant des données de datapack, ce qui signifie qu'un enchantement véritablement personnalisé — nouveau nom, nouvel effet, nouvelle courbe de coût — est un fichier JSON.

Où il se trouve

data/<namespace>/enchantment/lightning_strike.json

Singulier enchantment/, comme toutes les autres catégories de datapack depuis le renommage.

Le fichier minimum

{
  "description": { "translate": "enchantment.my_pack.lightning_strike" },
  "supported_items": "#minecraft:enchantable/sword",
  "weight": 2,
  "max_level": 3,
  "min_cost": { "base": 10, "per_level_above_first": 10 },
  "max_cost": { "base": 50, "per_level_above_first": 10 },
  "anvil_cost": 4,
  "slots": ["mainhand"]
}

Cela donne un véritable enchantement qui apparaît à la table et s'affiche sur l'objet. Il ne fait encore rien — le comportement est séparé.

  • weight est la rareté à la Table d'enchantement. Le jeu utilise 10 pour commun, 1 pour très rare. C'est relatif, pas un pourcentage.
  • slots décide où l'enchantement est actif : mainhand, offhand, armor, head, et ainsi de suite. Omettez-le et l'enchantement ne s'appliquera jamais.
  • supported_items prend un tag d'objet ou une liste. Les tags #minecraft:enchantable/* existent déjà pour les groupes pertinents.

Le faire agir

effects attache le comportement :

"effects": {
  "minecraft:post_attack": [{
    "effect": { "type": "minecraft:run_function", "function": "my_pack:strike" },
    "requirements": { "condition": "minecraft:random_chance", "chance": 0.25 }
  }]
}

run_function est la porte de sortie — tout ce qu'une fonction peut faire, l'enchantement peut le faire. Les types d'effets intégrés couvrent les dégâts, le Recul (Knockback), la durabilité, les butins d'objets et les attributs sans avoir besoin d'une fonction du tout, et ils sont moins coûteux.

requirements prend n'importe quel prédicat, donc filtrer sur le type de la Cible (Target), la météo, ou une chance aléatoire est un seul bloc de JSON.

Le nommer

description est un composant de texte, donc un nom codé en dur fonctionne :

"description": { "text": "Lightning Strike", "color": "gold" }

mais une clé translate plus un fichier de langue dans un pack de ressources est ce qui le rend lisible correctement pour les joueurs dans d'autres langues — la même raison pour laquelle ce site utilise les termes du jeu des propres traductions de Mojang.

Le rendre obtenable

Trois voies, et vous en voulez généralement plus d'une :

  • Table d'enchantement — automatique une fois que weight et la courbe de coût sont définis.
  • Tables de butinenchant_randomly avec votre enchantement listé, ou enchant_with_levels s'il doit être en concurrence sur le coût.
  • Villageois qui échange — un Livre enchanté (Enchanted Book) avec votre enchantement dans l'objet de l'échange.

L'ajouter à #minecraft:in_enchanting_table est ce qui fait que la table le propose ; le tag est facile à oublier et produit un enchantement qui existe mais n'apparaît jamais.

Construisez le JSON d'enchantement et son équivalent de garniture d'Armure (Armor), avec les tags et les emplacements définis, dans le Générateur d'enchantements et de garnitures personnalisés.

Enchantements et garnitures personnalisés →

More guides

Browse all →

Vous cherchez d'autres outils Minecraft ?

Une collection de générateurs, visionneuses et convertisseurs qui tournent dans le navigateur — tous gratuits.