Eigene Verzauberungen ohne Mods: Das datengesteuerte Verzauberungsformat
Verzauberungen sind jetzt Datapack-JSON, sodass eine eigene Verzauberung keine Mod mehr benötigt. Hier ist die Dateistruktur, die Effektkomponenten, die tatsächlich etwas bewirken, und wie man sie erhältlich macht.
Verzauberungen waren früher fest im Code verankert. Sie sind jetzt Datapack-Daten, was bedeutet, dass eine wirklich eigene Verzauberung – neuer Name, neuer Effekt, neue Kostenkurve – eine JSON-Datei ist.
Wo sie sich befindet
data/<namespace>/enchantment/lightning_strike.json
Singular enchantment/, wie jede andere Datapack-Kategorie seit der Umbenennung.
Die Mindestdatei
{
"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"]
}
Das reicht aus, um eine echte Verzauberung zu erhalten, die am Zaubertisch erscheint und auf dem Gegenstand angezeigt wird. Sie tut noch nichts – das Verhalten ist separat.
weightist die Seltenheit am Zaubertisch. Vanilla verwendet 10 für häufig, 1 für sehr selten. Es ist relativ, nicht prozentual.slotsentscheidet, wo die Verzauberung aktiv ist:mainhand,offhand,armor,headund so weiter. Lässt man es weg, wird die Verzauberung nie angewendet.supported_itemsnimmt ein Item-Tag oder eine Liste.#minecraft:enchantable/*Tags existieren bereits für die sinnvollen Gruppen.
Damit sie etwas tut
effects fügt Verhalten hinzu:
"effects": {
"minecraft:post_attack": [{
"effect": { "type": "minecraft:run_function", "function": "my_pack:strike" },
"requirements": { "condition": "minecraft:random_chance", "chance": 0.25 }
}]
}
run_function ist der Notausgang – alles, was eine Funktion tun kann, kann die Verzauberung auch tun. Die eingebauten Effekttypen decken Schaden, Rückstoß, Haltbarkeit, Item-Drops und Attribute ab, ohne überhaupt eine Funktion zu benötigen, und sie sind günstiger.
requirements nimmt jedes Prädikat, sodass das Filtern nach dem Typ des Zielblocks, dem Wetter oder einer zufälligen Chance ein JSON-Block ist.
Benennung
description ist eine Textkomponente, daher funktioniert ein fest codierter Name:
"description": { "text": "Lightning Strike", "color": "gold" }
aber ein translate Schlüssel plus eine Sprachdatei in einem Ressourcenpaket sorgt dafür, dass es für Spieler in anderen Sprachen korrekt gelesen wird – der gleiche Grund, warum diese Seite Spielbegriffe aus Mojangs eigenen Übersetzungen verwendet.
Erhältlich machen
Drei Wege, und man möchte normalerweise mehr als einen:
- Zaubertisch – automatisch, sobald
weightund die Kostenkurve eingestellt sind. - Loot-Tabellen –
enchant_randomlymit Ihrer Verzauberung gelistet, oderenchant_with_levels, wenn sie im Wettbewerb um Kosten stehen soll. - Dorfbewohner handelt – ein Verzaubertes Buch mit Ihrer Verzauberung im Item des Handels.
Das Hinzufügen zu #minecraft:in_enchanting_table sorgt überhaupt erst dafür, dass der Zaubertisch sie anbietet; das Tag ist leicht zu vergessen und führt zu einer Verzauberung, die existiert, aber nie erscheint.
Erstellen Sie die Verzauberungs-JSON und ihr Rüstungs-Trim-Gegenstück, mit den Tags und Slots, im Custom Enchantment & Trim Builder.