MC Toolkit

Anleitungen / Befehle & Daten

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).

  • weight ist die Seltenheit am Zaubertisch. Vanilla verwendet 10 für häufig, 1 für sehr selten. Sie ist relativ, kein Prozentwert.
  • slots entscheidet, wo die Verzauberung aktiv ist: mainhand, offhand, armor, head und so weiter. Sie ist erforderlich: Lässt man sie weg, lädt die Datei nicht.
  • supported_items nimmt ein Gegenstands-Tag oder eine Liste. Die Tags #minecraft:enchantable/* existieren bereits für die sinnvollen Gruppen — melee_weapon, sharp_weapon, mining, armor und so weiter. Es gibt kein enchantable/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 weight und die Kostenkurve festgelegt sind und die Verzauberung in #minecraft:in_enchanting_table steht.
  • Loot-Tabellen — enchant_randomly mit deiner Verzauberung in der Liste, oder enchant_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.

Eigene Verzauberungen und Verzierungen →

Weitere Anleitungen

Alle ansehen →