Loot-Tabellen: Pools, Rolls und der Unterschied zwischen Einträgen und Funktionen
Eine Loot-Tabelle, die nichts fallen lässt, hat meistens ihre Gewichtungen oder ihre Bedingungen in der falschen Ebene. Hier steht, was jede Verschachtelungsebene steuert und welche Funktionen man kennen sollte.
Loot-Tabellen-JSON ist vier Ebenen tief, und jede Ebene bedeutet etwas anderes. Fast jedes „meine Tabelle lässt nichts fallen" ist eine Bedingung, die eine Ebene von der Stelle entfernt hängt, an die sie gehört.
Die vier Ebenen
table
└── pools[] how many independent draws
└── entries[] what can come out of this draw
└── functions[] modify the item that came out
rollsan einem Pool bestimmt, wie oft dieser Pool zieht. Ein Pool mitrolls: 3zieht dreimal aus derselben Eintragsliste.weightan einem Eintrag ist relativ innerhalb seines Pools. Gewichtungen müssen sich zu nichts summieren; ein Eintrag mit Gewicht 10 gegen einen mit Gewicht 90 kommt nur ein Zehntel der Zeit vor.conditionsgibt es auf jeder Ebene, und sie bedeuten jeweils etwas anderes. An einem Pool steuern sie den gesamten Zug. An einem Eintrag steuern sie diese eine Option. An einer Funktion steuern sie nur die Modifikation.
Einen garantierten Drop braucht einen eigenen Pool
Gewichtungen können nichts garantieren, weil ein Pool pro Zug genau einen Eintrag auswählt. Eine Tabelle, die immer eine Karte plus zufällige Beute fallen lassen muss, braucht zwei Pools:
"pools": [
{ "rolls": 1, "entries": [ { "type": "minecraft:item", "name": "minecraft:filled_map" } ] },
{ "rolls": { "min": 2, "max": 4 }, "entries": [ … weighted list … ] }
]
Pool eins hat einen einzigen Eintrag, also produziert er ihn immer. Pool zwei zieht 2–4 Mal aus der gewichteten Liste.
Die Funktionen, die man kennen sollte
| Funktion | Bewirkt |
|---|---|
set_count | eine feste Zahl oder einen uniform-Bereich |
enchant_randomly | zufällige Verzauberungen, optional aus einer Liste |
enchant_with_levels | wie an einem Zaubertisch auf N Stufen — jede Verzauberung, außer options schränkt sie ein |
set_components | eigener Name, Lore, jede Datenkomponente |
enchanted_count_increase | Bonus pro Stufe einer Verzauberung (Plünderung); nur Entity-Tabellen |
set_damage | Haltbarkeit als Bruchteil, also ist 0.5 halb abgenutzt |
furnace_smelt | die geschmolzene Form, wenn der Mob im Feuer stirbt |
enchant_with_levels und enchant_randomly sind nicht austauschbar. Ersteres ahmt einen Zaubertisch nach und beachtet Stufenkosten; Letzteres wählt willkürlich und kann Kombinationen erzeugen, die das Spiel nie generieren würde.
Bedingungen, zu denen man greift
random_chance— eine feste Wahrscheinlichkeitrandom_chance_with_enchanted_bonus— die moderne Plünderung-bewusste Chancekilled_by_player— der Grund, warum dein seltener Drop bei einem Sturz-Tod nie erscheintentity_properties— Typ, Zustand oder Ausrüstung des Opfers prüfenmatch_tool— das verwendete Werkzeug prüfen, für Block-Tabellen
Testen, ohne die Welt neu zu bauen
/loot give @s loot my_pack:chests/treasure
lässt die Tabelle direkt in dein Inventar fallen. /loot spawn, /loot insert <pos> und /loot replace decken die anderen Platzierungen ab. Das ist weit schneller, als Truhen aufzustellen und neu zu laden, und es ist der einzig vernünftige Weg, Gewichtungsverteilungen zu prüfen.
Baue Multi-Pool-Tabellen mit den Funktionen und Bedingungen auf der richtigen Ebene im Advanced Loot Table Builder.