Guides / Commands & Data

Tables de butin : pools, tirages et la différence entre entrées et fonctions

Une table de butin qui ne donne rien a généralement ses poids ou ses conditions au mauvais niveau. Voici ce que chaque niveau d'imbrication contrôle, et les fonctions à connaître.

Le JSON des tables de butin est imbriqué sur quatre niveaux, et chaque niveau a une signification différente. Presque tous les cas où "ma table ne donne rien" sont dus à une condition attachée un niveau au-dessus de là où elle aurait dû être.

Les quatre niveaux

table
└── pools[]          how many independent draws
    └── entries[]    what can come out of this draw
        └── functions[]   modify the item that came out
  • Le rolls sur un pool indique combien de fois ce pool effectue un tirage. Un pool avec rolls: 3 tire trois fois de la même liste d'entrées.
  • Le weight sur une entrée est relatif au sein de son pool. Les poids n'ont pas besoin de s'additionner à quoi que ce soit ; une entrée avec un poids de 10 contre une avec un poids de 90 apparaît un dixième du temps.
  • Les conditions existent à chaque niveau et ont des significations différentes. Sur un pool, elles contrôlent l'ensemble du tirage. Sur une entrée, elles contrôlent cette option spécifique. Sur une fonction, elles contrôlent uniquement la modification.

Garantir un butin nécessite son propre pool

Les poids ne peuvent rien garantir, car un pool choisit exactement une entrée par tirage. Une table qui doit toujours donner une Carte plus un butin aléatoire nécessite deux pools :

"pools": [
  { "rolls": 1, "entries": [ { "type": "minecraft:item", "name": "minecraft:filled_map" } ] },
  { "rolls": { "min": 2, "max": 4 }, "entries": [ … weighted list … ] }
]

Le premier pool a une seule entrée, il la produit donc toujours. Le deuxième pool tire 2 à 4 fois de la liste pondérée.

Les fonctions à connaître

FonctionFait
set_countun nombre fixe ou une plage uniform
enchant_randomlydes enchantements aléatoires, éventuellement à partir d'une liste
enchant_with_levelscomme une Table d'enchantement à N niveaux — inclut les trésors si demandé
set_componentsnom personnalisé, lore, tout composant de données
looting_enchantbonus par niveau de Butin ; tables d'entités uniquement
set_damagedurabilité sous forme de fraction, donc 0.5 est à moitié usé
furnace_smeltla forme fondue lorsque la créature meurt par le Feu

enchant_with_levels et enchant_randomly ne sont pas interchangeables. La première imite une Table d'enchantement et respecte les coûts de niveau ; la seconde choisit arbitrairement et peut produire des combinaisons que le jeu ne générerait jamais.

Conditions recherchées par les utilisateurs

  • random_chance — une probabilité fixe
  • random_chance_with_enchanted_bonus — la chance moderne tenant compte du Butin
  • killed_by_player — la raison pour laquelle votre butin rare n'apparaît jamais après une mort par chute
  • entity_properties — vérifie le type, l'état ou l'équipement de la victime
  • match_tool — vérifie l'outil utilisé, pour les tables de blocs

Tester sans reconstruire le monde

/loot give @s loot my_pack:chests/treasure

dépose la table directement dans votre inventaire. /loot spawn, /loot insert <pos> et /loot replace couvrent les autres emplacements. C'est beaucoup plus rapide que de placer des coffres et de recharger, et c'est la seule façon sensée de vérifier les distributions de poids.

Construisez des tables multi-pools avec les fonctions et conditions attachées au bon niveau dans le Générateur de tables de butin avancé.

Créateur avancé de tables de butin →

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.