MC Toolkit

Anleitungen / Befehle & Daten

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
  • rolls an einem Pool bestimmt, wie oft dieser Pool zieht. Ein Pool mit rolls: 3 zieht dreimal aus derselben Eintragsliste.
  • weight an 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.
  • conditions gibt 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

FunktionBewirkt
set_counteine feste Zahl oder einen uniform-Bereich
enchant_randomlyzufällige Verzauberungen, optional aus einer Liste
enchant_with_levelswie an einem Zaubertisch auf N Stufen — jede Verzauberung, außer options schränkt sie ein
set_componentseigener Name, Lore, jede Datenkomponente
enchanted_count_increaseBonus pro Stufe einer Verzauberung (Plünderung); nur Entity-Tabellen
set_damageHaltbarkeit als Bruchteil, also ist 0.5 halb abgenutzt
furnace_smeltdie 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 Wahrscheinlichkeit
  • random_chance_with_enchanted_bonus — die moderne Plünderung-bewusste Chance
  • killed_by_player — der Grund, warum dein seltener Drop bei einem Sturz-Tod nie erscheint
  • entity_properties — Typ, Zustand oder Ausrüstung des Opfers prüfen
  • match_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.

Beutetabellen-Baukasten →

Weitere Anleitungen

Alle ansehen →