Schnellstarts
Single display model ist ein festes Aussehen. Selected state wechselt per Bedingung auf selected. Charge stages läuft mit range_dispatch durch die Abklingzeit. Main-hand context nutzt select auf die Hand.
Baue die neuen Item-Definition-Dateien in assets/
Lade ein Startmuster und tausche danach nur Pfade und Werte gegen deine echten Daten aus.
Wähl, wie das Item sein Modell aussucht, füll Pfade und Zweige aus und kopier eine einzige Item-Definition.
Single display model ist ein festes Aussehen. Selected state wechselt per Bedingung auf selected. Charge stages läuft mit range_dispatch durch die Abklingzeit. Main-hand context nutzt select auf die Hand.
Namensraum und Pfad ergeben assets/<namespace>/items/<path>.json. Ein Item nutzt sie über seine Komponente item_model; eine Datei mit dem Namen eines Vanilla-Items im Namensraum minecraft ersetzt dessen Aussehen.
Das Modell, wenn kein Zweig passt. Zeig auf etwas, das existiert, etwa das Vanilla-Modell, damit ein fehlender Fall nie als lila-schwarze Fehlertextur erscheint.
Bei custom_model_data wählt der Index den Slot: den n-ten String für select, den n-ten Float für range_dispatch.
Bei select ist ein Zweig ein Wert und ein Modell. Bei range_dispatch eine Schwelle und ein Modell: Es gewinnt die höchste Schwelle, die den Wert nicht übersteigt. Bei condition gilt der erste Zweig für true, der zweite für false.
Jeder Pfad in der Datei führt zu assets/<namespace>/models/<path>.json. Ein Tippfehler zeigt die Fehlertextur, keine Meldung.
Ein select auf custom_model_data vergleicht Text: Gib dem Item custom_model_data={strings:["novice"]} und schreib novice in den Zweig.
minecraft:damage ist standardmäßig normalisiert, 0.25 heißt also, ein Viertel der Haltbarkeit ist verbraucht, nicht 25 Punkte.
Item-Definitionen gibt es seit 1.21.4, und sie gelten bis 26.3. Vor 1.21.4 wählten Modelle ihre Varianten über overrides in models/item-Dateien, dort bewirkt diese Datei also nichts. Passender Befehl: /give @p minecraft:book[item_model="cubeinsquare:book/formulary",custom_model_data={strings:["novice"]}].