Eigene Verzauberungen ohne Mods: das datengetriebene Verzauberungsformat
Verzauberungen sind jetzt Datapack-JSON, eine eigene braucht also keinen Mod. Hier ist der Dateiaufbau, die Effektkomponenten, die tatsächlich etwas bewirken, und wie man sie erhältlich macht.
Verzauberungen waren früher fest im Code verankert. Jetzt sind sie Datapack-Daten, was bedeutet, dass eine wirklich eigene Verzauberung — neuer Name, neuer Effekt, neue Kostenkurve — eine JSON-Datei ist.
Wo sie liegt
data/<namespace>/enchantment/lightning_strike.json
Singular enchantment/, wie jede andere Datapack-Kategorie seit der Umbenennung.
Die Minimaldatei
{
"description": { "translate": "enchantment.my_pack.lightning_strike" },
"supported_items": "#minecraft:enchantable/melee_weapon",
"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"]
}
So viel ergibt bereits eine echte Verzauberung, die lädt und auf dem Gegenstand angezeigt wird. Sie bewirkt noch nichts — das Verhalten ist getrennt — und der Zaubertisch bietet sie erst an, wenn sie getaggt ist (siehe unten).
weightist die Seltenheit am Zaubertisch. Vanilla verwendet 10 für häufig, 1 für sehr selten. Sie ist relativ, kein Prozentwert.slotsentscheidet, wo die Verzauberung aktiv ist:mainhand,offhand,armor,headund so weiter. Sie ist erforderlich: Lässt man sie weg, lädt die Datei nicht.supported_itemsnimmt ein Gegenstands-Tag oder eine Liste. Die Tags#minecraft:enchantable/*existieren bereits für die sinnvollen Gruppen —melee_weapon,sharp_weapon,mining,armorund so weiter. Es gibt keinenchantable/sword; ein Tag, das nicht existiert, lässt die Datei fehlschlagen.
Sie etwas bewirken lassen
effects hängt Verhalten an:
"effects": {
"minecraft:post_attack": [{
"enchanted": "attacker",
"affected": "victim",
"effect": { "type": "minecraft:run_function", "function": "my_pack:strike" },
"requirements": { "condition": "minecraft:random_chance", "chance": 0.25 }
}]
}
post_attack muss wissen, wessen Verzauberung es ist (enchanted) und auf wen der Effekt wirkt (affected) — beides ist erforderlich. run_function ist der Notausgang — alles, was eine Funktion kann, kann die Verzauberung auch. Die eingebauten Effekttypen decken Schaden, Rückstoß, Haltbarkeit, Gegenstandsdrops und Attribute ab, ganz ohne Funktion, und sie sind günstiger.
requirements nimmt ein beliebiges Prädikat, sodass eine Bedingung auf den Typ des Zielblocks, das Wetter oder eine zufällige Chance ein Block JSON ist.
Sie benennen
description ist eine Textkomponente, ein fest codierter Name funktioniert also:
"description": { "text": "Lightning Strike", "color": "gold" }
aber ein translate-Schlüssel plus eine Sprachdatei in einem Ressourcenpaket ist das, was sie für Spieler in anderen Sprachen korrekt lesbar macht — aus demselben Grund bezieht diese Seite Spielbegriffe aus Mojangs eigenen Übersetzungen.
Sie erhältlich machen
Drei Wege, und meist will man mehr als einen:
- Zaubertisch — sobald
weightund die Kostenkurve festgelegt sind und die Verzauberung in#minecraft:in_enchanting_tablesteht. - Loot-Tabellen —
enchant_randomlymit deiner Verzauberung in der Liste, oderenchant_with_levels, wenn sie über die Kosten konkurrieren soll. - Dorfbewohner handelt — ein Verzaubertes Buch mit deiner Verzauberung im Gegenstand des Handels.
Sie zu #minecraft:in_enchanting_table hinzuzufügen ist das, was den Zaubertisch sie überhaupt anbieten lässt; das Tag vergisst man leicht und erzeugt eine Verzauberung, die existiert, aber nie erscheint.
Baue die Verzauberungs-JSON und ihr Rüstungsbesatz-Gegenstück, mit gesetzten Tags und Slots, im Custom Enchantment & Trim Builder.