Zum Hauptinhalt springen

FreeMinecraftModels FAQ

Wenn du eine Frage hast, die hier nicht aufgeführt ist, wirf einen Blick auf die Seitenleiste, um zu sehen, ob es eine eigene Seite dafür im Wiki gibt!

Erste Schritte

Wie installiere und verwende ich FreeMinecraftModels?

Info

Installation:

  1. Lade FreeMinecraftModels.jar herunter und lege es in deinen Plugins-Ordner
  2. Starte deinen Server neu, um Plugin-Ordner zu erzeugen
  3. Führe /fmm setup für das Ersteinrichtungs-/Inhaltsverwaltungsmenü aus
  4. Wenn du offizielle Inhaltspakete nutzt, verknüpfe Nightbreak mit /nightbreaklogin <token>
  5. Verwende /fmm setup oder /fmm downloadall für offizielle Nightbreak-verwaltete Inhalte
  6. Für manuelle Inhalte platziere .bbmodel-Dateien in ~/plugins/FreeMinecraftModels/imports/ und führe /fmm reload aus
  7. Finde das generierte Ressourcenpaket in ~/plugins/FreeMinecraftModels/output/FreeMinecraftModels.zip

Verteilung des Ressourcenpakets:

Wähle eine dieser Methoden:

  • Option A (empfohlen): Installiere Resource Pack Manager für automatische Verteilung
  • Option B: Manuell über server.properties oder einen Hosting-Dienst konfigurieren

Modelle spawnen:

  • /fmm spawn static <id> - Spawnt ein temporäres dekoratives Modell
  • /fmm spawn dynamic <id> - Spawnt ein an eine Entität angehängtes Modell
  • /fmm spawn prop <id> - Spawnt ein persistentes Weltmodell

Verwaltung:

  • /fmm - Öffnet das Menü craftbarer Items (erfordert freeminecraftmodels.menu)
  • /fmm setup - Öffnet das Inhaltsverwaltungs-/Ersteinrichtungsmenü
  • /fmm recommendedplugins - Durchsuche Begleit-Plugins, die gut mit FMM zusammenpassen
  • /fmm downloadall - Lädt das neueste Plugin-Update plus alle zugänglichen offiziellen Inhalte herunter
  • /fmm downloadallcontent - Lädt alle zugänglichen offiziellen Inhalte herunter (nur Inhalte)
  • /fmm updatecontent - Aktualisiert veraltete offizielle Inhalte
  • /fmm downloadpluginupdate - Lädt nur das neueste Plugin-Jar-Update herunter
  • /fmm forcereinstallcontent <package|all> - Reparaturbefehl: Lädt bereits vorhandene Inhalte erneut herunter, selbst wenn die Versionen sagen, sie seien aktuell
  • /fmm reload - Lädt das Plugin neu und konvertiert neue Modelle
  • /fmm version - Zeigt die Plugin-Version
  • /fmm stats - Zeigt Statistiken zur Entitätsanzahl
  • /nightbreaklogin <token> / /nightbreaklogout - Gemeinsame MagmaCore-Befehle der obersten Ebene zum Speichern und Löschen des Nightbreak-Konto-Tokens (Berechtigung: nightbreak.login)
  • /freeminecraftmodelschangelog [dismiss|disable] - Ungelesene FMM-Release-Notes im Spiel lesen (nur Admins; wird beim Beitritt auch als anklickbare Aufforderung angeboten)

Spieler-Funktionen:

  • /fmm disguise <modelID> [player] - Verwandelt dein Aussehen (oder das eines Ziel-Spielers) in ein benutzerdefiniertes Modell
  • /fmm undisguise [player] - Entfernt die Verkleidung eines Spielers
  • /fmm disguiselist - Listet alle derzeit verkleideten Spieler auf
  • /fmm itemify <model> <material> - Erstellt ein platzierbares Item, das das angegebene Modell spawnt
  • /fmm craftify <modelID> - Öffnet einen interaktiven Rezept-Builder, um ein Crafting-Rezept für einen Prop zu erstellen
  • /fmm shop - Öffnet den optionalen Vault-gestützten Möbelshop (nur wenn in shop_config.yml aktiviert)
  • /fmm mount <modelID> - Spawnt ein reitbares Pferd, das als benutzerdefiniertes Modell verkleidet ist (experimentell)

Debugging:

  • /fmm hitbox visualize [duration] - Visualisiert Modell-Hitboxen mit Partikeln (Dauer in Ticks, Standard 100)
  • /fmm location - Meldet registrierte Schutz-/Dungeon-Anbieter und testet sie an deinem aktuellen Standort
  • /fmm debug <bedrock|props> [on|off] - Schaltet FMMs Diagnose-Logstreams um: bedrock diagnostiziert die Bedrock-Display-Pipeline, props meldet gestapelte Props beim Chunk-Laden. Keine Config-Schlüssel — werden bei jedem Neustart auf OFF zurückgesetzt
  • /fmm packetdebug [ticks] - Erfasst die Paketlast modellierter Entitäten für die nächsten [ticks] Modelluhr-Ticks (Standard 1, max. 200) und meldet Pakete/Tick, Fan-out pro Betrachter, die schwersten Betrachter und eine Aufschlüsselung nach Pakettyp

Administrativ:

  • /fmm deleteall [radius] - Entfernt alle geladenen modellierten Entitäten und Props (mit Vorsicht verwenden - keine Bestätigungsabfrage). Ein optionaler [radius] (nur für Spieler) beschränkt die Entfernung auf so viele Blöcke

Berechtigungen:

  • freeminecraftmodels.* (Standard: OP) - Wildcard, die freeminecraftmodels.admin, freeminecraftmodels.deleteall, freeminecraftmodels.disguise.self, freeminecraftmodels.disguise.others und freeminecraftmodels.bypassregionprotection gewährt. Ebenfalls die wörtliche Berechtigung, die für /fmm reload, /fmm stats, /fmm spawn, /fmm itemify, /fmm craftify, /fmm mount, /fmm hitbox visualize, /fmm debug, /fmm packetdebug, /fmm location, /fmm setup, /fmm recommendedplugins, /fmm downloadall, /fmm downloadallcontent, /fmm updatecontent, /fmm downloadpluginupdate und /fmm forcereinstallcontent erforderlich ist
  • freeminecraftmodels.admin (Standard: OP) - /fmm admin (der Admin-Inhaltsbrowser) und /fmm giveitem
  • freeminecraftmodels.disguise.self (Standard: OP) - Lässt einen Spieler nur sich selbst verkleiden/enthüllen
  • freeminecraftmodels.disguise.others (Standard: OP) - Erlaubt gezielte Verkleidung/Enthüllung und /fmm disguiselist
  • freeminecraftmodels.deleteall (Standard: OP) - Erforderlich für /fmm deleteall (Kind der Wildcard)
  • freeminecraftmodels.bypassregionprotection (Standard: OP) - Platzieren von und Interagieren mit Props überall dort, wo ein anderes Plugin normales Blocksetzen blockieren würde, selbst wenn preventPropPlacementInProtectedRegions aktiviert ist
  • freeminecraftmodels.menu (Standard: true) - Lässt alle Spieler den Browser craftbarer Items über /fmm öffnen
  • freeminecraftmodels.shop (Standard: true) - Lässt alle Spieler /fmm shop öffnen (weiterhin abhängig davon, dass der Shop aktiviert ist)
  • nightbreak.login (Standard: OP) - Wird von MagmaCore registriert, nicht von plugin.yml. Erforderlich für /nightbreaklogin und /nightbreaklogout

Befehle sind standardmäßig nur für OP, sofern nicht anders angegeben. Gewähre diese Berechtigungen bei Bedarf an Nicht-OP-Spieler.

Modell-Funktionen & -Limits

Was sind die Limits für Modellgröße und -rotation?

Info

Größen-Limits:

  • Maximale Bounding-Box pro Knochen: 192x192x192 Modell-Pixel (12x12x12 In-Game-Blöcke) — gemessen über alle Würfel innerhalb eines einzelnen Knochens
  • FreeMinecraftModels verwendet 4-fache interne Skalierung und verschiebt den Modellursprung, um in den -16..+32-Bereich des Ressourcenpakets von Minecraft zu passen
  • Wenn ein Knochen das Limit überschreitet, protokolliert FMM eine Konsolen-Warnung; entweder verkleinere die Würfel, rücke sie näher zusammen oder teile sie in mehrere Knochen auf
  • Ganze Modelle können größer als dies sein — nur das Pro-Knochen-Limit gilt

Würfel-Rotations-Limits:

  • Erlaubte Winkel: 0°, ±22,5°, ±45° und Vielfache von 22,5° (ab v2.3.0)
  • Nur Einzelachsen-Rotation
  • Beispiel: [22.5, 0, 0] funktioniert, aber [22.5, 0, 45] rotiert nur teilweise
  • Andere Winkel werden nicht korrekt angezeigt

Knochen-Rotation:

  • Knochen unterstützen jeden Rotationswinkel
  • Vermeide Standard-Ruhepositionen von 90°, -90°, 180°, -180° (kann unerwartetes Verhalten verursachen)
  • Mehrachsen-Rotation wird unterstützt
  • Jeder Knochen erzeugt eine separate Entität (Performance-Überlegung)

Performance-Hinweis:

Halte die Knochenanzahl so niedrig wie möglich. Jeder Knochen spawnt eine separate Entität in Minecraft, was die Server-Performance bei großem Maßstab beeinträchtigen kann.

Welche Animationen werden unterstützt?

Info

FreeMinecraftModels bindet fünf Animationsnamen an automatische Laufzeitzustände:

Zustandsanimationen:

  • spawn — läuft einmal, wenn das Modell erzeugt wird, und geht dann in idle über
  • idle — loopt, solange die Entität (nahezu) still steht
  • walk — loopt, solange die Geschwindigkeit der Entität über 0.08 liegt
  • attack — läuft einmal und kehrt dann zu idle zurück
  • death — läuft einmal beim Entfernen über removeWithDeathAnimation()

Jeder andere Animationsname im Modell ist eine benutzerdefinierte Animation: Sie startet nie von selbst, kann aber über die API oder aus Lua namentlich abgespielt werden.

Zu jump

JUMP existiert im Enum AnimationStateType, und der Walk-Zustand fordert ihn an, wenn die Entität den Boden verlässt, aber im Animationsmanager wird kein Jump-Zustand registriert, sodass dieser automatische Übergang derzeit nichts bewirkt. Eine Animation, die buchstäblich jump heißt, funktioniert trotzdem, wenn du sie selbst auslöst — sie läuft dann einfach wie jeder andere Name über den Pfad benutzerdefinierter Animationen.

So funktioniert es:

  • Erstelle Animationen in BlockBench mit den obigen Kleinbuchstaben-Namen, damit FMM sie automatisch an den passenden Zustand bindet
  • Das Plugin liest Animations-Keyframes beim Import aus .bbmodel-Dateien und backt sie in Frames pro Tick
  • Zustandsanimationen werden automatisch basierend auf dem Entitätszustand ausgelöst
  • Entwickler können jede Animation programmatisch über playAnimation(animationName, blend, loop) auf einer ModeledEntity oder über context.prop:play_animation(name, blend, loop) aus Lua auslösen

Spieler-Verkleidungen sind anders:

Ein Modell, das mit /fmm disguise verwendet wird, führt seinen eigenen Controller aus, der fünf Namen erkennt — attack, jump, sneak, walk, idle — in dieser Prioritätsreihenfolge. sneak und jump bewirken nur bei Verkleidungen etwas. Ein Verkleidungsmodell ohne idle protokolliert eine Konsolenwarnung und friert auf dem letzten Frame ein, sobald nichts anderes läuft. Siehe Spieler-Verkleidungen.

Siehe Animationen für Loop-Modi, Interpolationstypen, Keyframe-Timing und IK.

Sonderfall:

Evoker-Entitäten erkennen nahegelegene Evoker-Fangzähne, um Angriffsanimationen automatisch auszulösen.

Was sind virtuelle Knochen und wie funktionieren sie?

Info

Virtuelle Knochen sind besondere Knochen mit reservierten Namen, die deinen Modellen Funktionalität hinzufügen:

Hitbox-Knochen:

  • Name: hitbox (exakter Name, unabhängig von Groß-/Kleinschreibung)
  • Erstellt Interaktionszonen und Kollisionsboxen
  • Definiert Entitätsgrenzen mit übereinstimmenden x/z-Werten
  • Muss ein Knochen auf oberster Ebene im Outliner sein — ein hitbox-Knochen, der in einer anderen Gruppe verschachtelt ist, wird als gewöhnlicher Knochen behandelt
  • Muss genau einen Cube enthalten. Zusätzliche Cubes protokollieren has more than one value defining a hitbox! Only the first cube will be used, und ein leerer Hitbox-Knochen protokolliert has a hitbox bone but no hitbox cube!
  • Wird nie animiert, nie gerendert und ist vom Bedrock-Geometrieexport ausgeschlossen

Namensschild-Knochen:

  • Präfix: tag_
  • Zeigt Text über Modellen an
  • Wird zur Entitätsbenennung verwendet
  • Erforderlich. Ein Modell ohne tag_-Knochen hat überhaupt kein Namensschild — setDisplayName tut darauf still nichts, und der zugrunde liegende Vanilla-Mob ist verborgen, sodass auch sein eigenes Namensschild nicht erscheinen kann. Siehe Warum hat mein Modell keinen Namen?
  • Der Knochen benötigt keine Cubes; er ist nur ein Positionsanker für das Text-Display, üblicherweise über dem Kopf platziert

Kopfrotations-Knochen:

  • Präfix: h_
  • Rotiert basierend auf der Kopfposition des Spielers/der Entität
  • Verfolgt Kopfbewegungen automatisch

Versteckte / strukturelle Knochen:

  • Präfix: b_
  • Werden im Spiel nie gerendert
  • Verwende sie für strukturelle, organisatorische oder rein Metadaten-Knochen, die trotzdem Teil der Skeletthierarchie sein sollen, ohne Geometrie zu erzeugen

Montagepunkt-Knochen:

  • Präfix: m_
  • Jeder m_-Knochen wird zu einer reitbaren Sitzposition am Modell, verwaltet von MountPointManager
  • Der Sitz folgt dem Knochen durch Animationen hindurch
  • Mehrere m_-Knochen erzeugen mehrere Sitze
  • Vom Bedrock-Geometrieexport ausgeschlossen
  • Siehe Was sind Mount-Point-Knochen? weiter unten

Verwendung:

Erstelle in BlockBench einen Knochen mit einem dieser besonderen Namen, und das Plugin wendet automatisch die entsprechende Funktionalität an.

Fehlerbehebungs-FAQ

Statt benutzerdefinierter Modelle sehe ich nur Pferderüstung.

Info

Wenn du statt benutzerdefinierter Modelle in deinem Spiel nur Pferderüstung siehst, liegt das Problem höchstwahrscheinlich daran, dass du das FMM-Ressourcenpaket nicht korrekt mit deinem bereits vorhandenen Ressourcenpaket zusammengeführt hast.

MagmaGuy hat ein Plugin namens Resource Pack Manager (RSPM) entwickelt, das Ressourcenpakete automatisch für dich zusammenführen kann. Du kannst es bei Spigot hier herunterladen.

Lege einfach die RSPM-.jar-Datei in deinen Plugins-Ordner, und RSPM kümmert sich um alles. Es führt alle Ressourcenpakete zusammen, hostet sie automatisch und verteilt sie an Spieler, wenn diese sich auf deinem Server einloggen.

Warum sehe ich mein Modell nicht, nachdem ich die .bbmodel-Datei hinzugefügt habe?

Info

Wenn dein Modell nicht erscheint, prüfe diese häufigen Probleme:

1. Reload vergessen

Führe nach dem Ablegen von .bbmodel-Dateien im Imports-Ordner /fmm reload aus. Dies konvertiert Modelle und generiert das Ressourcenpaket.

2. Ressourcenpaket nicht angewendet

Spieler müssen das FMM-Ressourcenpaket aktiv haben, um Modelle zu sehen.

  • Prüfe ~/plugins/FreeMinecraftModels/output/FreeMinecraftModels.zip auf das generierte Paket
  • Installiere den Resource Pack Manager für automatische Verteilung
  • ODER verteile manuell über server.properties oder einen Hosting-Dienst

3. Falscher Dateispeicherort

.bbmodel-Dateien für manuelle Importe müssen hierher: ~/plugins/FreeMinecraftModels/imports/

Wenn du stattdessen offizielle Inhaltspakete verwendest, nutze /fmm setup oder /fmm downloadall, anstatt Dateien manuell abzulegen.

4. Modell hat Fehler

Prüfe die Konsolen-Logs auf Fehlermeldungen während /fmm reload. Häufige Probleme sind nicht unterstützte Rotationen, übergroße Modelle oder Texturprobleme.

5. Problem beim Zusammenführen des Ressourcenpakets

Wenn du Pferderüstung statt Modellen siehst, wurden die Ressourcenpakete nicht korrekt zusammengeführt. Verwende den Resource Pack Manager (RSPM), um das Zusammenführen automatisch zu erledigen.

6. Modell-ID-Kollision

Halte in der Konsole nach [FMM Models] Rejected normalized model ID collision Ausschau. Zwei oder mehr deiner Modelldateien normalisieren zur selben ID, sodass alle von ihnen abgelehnt wurden. Siehe Warum wurde mein Modell wegen einer ID-Kollision abgelehnt? unten.

Warum wurde mein Modell wegen einer ID-Kollision abgelehnt?

Info

FreeMinecraftModels normalisiert jeden Modell-Dateinamen, bevor er als Laufzeit-Modell-ID und Ressourcenpaket-Dateiname verwendet wird: Der Name wird kleingeschrieben, dann wird jedes Zeichen außerhalb von a-z, 0-9, ., _ und - durch einen Unterstrich ersetzt.

Das bedeutet, dass diese alle auf dieselbe ID my_table zusammenfallen:

My Table.bbmodel
my table.bbmodel
my_table.bbmodel
MY_TABLE.bbmodel

Bevor die Konvertierung startet, durchsucht FMM den Modellbaum nach diesen Kollisionen. Wird eine gefunden, wird jede kollidierende Datei abgelehnt — nicht nur die überzähligen —, sodass du nie ein unvorhersehbares „wer zuletzt geladen wurde, gewinnt"-Ergebnis erhältst. Die Konsole gibt aus:

[FMM Models] Rejected normalized model ID collision '<id>'. These files normalize to the same ID: <paths>. Rename the files so every normalized model ID is unique; no colliding model was loaded.

Die Lösung: Benenne die Dateien so um, dass sich ihre normalisierten IDs unterscheiden, und führe dann /fmm reload aus. Die Warnung listet die genauen absoluten Pfade auf.

So vermeidest du es: Benenne Modelldateien von Anfang an kleingeschrieben mit Unterstrichen (stone_table.bbmodel). Dann sind Dateiname und Modell-ID identisch und nichts kann unerwartet auf etwas anderes normalisieren.

Abgelehnte Modelle werden überall übersprungen — keine Java-Paket-Ausgabe und auch kein Bedrock-Custom-Entity-Bundle.

Warum hat mein Modell keinen Namen?

Info

Weil das Modell keinen tag_-Knochen hat. Das ist die häufigste Ursache für ausgelieferte Inhalte mit namenlosen Mobs.

Was passiert:

  • FreeMinecraftModels erzeugt ein Namensschild-Text-Display nur für Knochen, deren Name mit tag_ beginnt
  • ModeledEntity.setDisplayName(...) iteriert über die Namensschild-Knochen des Modells. Ohne tag_-Knochen ist diese Liste leer, sodass der Aufruf erfolgreich ist und nichts tut — kein Fehler, keine Warnung
  • Ein dynamisches Modell verbirgt seine zugrunde liegende lebende Entität vor Clients, sodass auch das Vanilla-Mob-Namensschild nicht einspringen kann

Das Ergebnis: Ein Plugin wie EliteMobs setzt den Bossnamen korrekt, der API-Aufruf meldet kein Problem, und Spieler sehen trotzdem einen Mob ohne Namen darüber.

Die Lösung:

  1. Öffne das Modell in BlockBench
  2. Füge einen Knochen (Gruppe) namens tag_name an der Stelle hinzu, wo das Namensschild schweben soll, typischerweise knapp über dem Kopf
  3. Er benötigt keine Cubes — er ist nur ein Positionsanker
  4. Erneut importieren und /fmm reload ausführen

Mehrere tag_-Knochen sind erlaubt; jeder erhält sein eigenes Text-Display, das denselben Namen zeigt.

Zeigt die Konsole nametag bone did not spawn name tag, wurde der Knochen zwar erkannt, aber sein Text-Display konnte nicht gespawnt werden — das ist ein anderer Fehler als das Fehlen eines tag_-Knochens.

ViaVersion kann dazu führen, dass Ressourcenpakete nicht korrekt angezeigt werden.

Info

ViaVersion kann Probleme mit Ressourcenpaketen verursachen, insbesondere wenn ein Server auf einer Version niedriger als 1.21.4 läuft. Minecraft hat ab 1.21.4 Änderungen daran eingeführt, wie Ressourcenpakete behandelt werden. Wenn du einen Server auf einer Version wie 1.21.3 betreibst und ViaVersion verwendest, um 1.21.4-Clients die Verbindung zu ermöglichen, können bei diesen Clients Probleme bei der Anzeige bestimmter Ressourcenpaket-Inhalte auftreten, wie etwa benutzerdefinierten Modellen von FMM (FreeMinecraftModels).

Dies passiert, weil sich das Ressourcenpaket-System in Minecraft mit dem 1.21.4-Update geändert hat.

Hinweis: Dies ist eine Einschränkung von Minecraft und ViaVersion, nicht spezifisch für FreeMinecraftModels. Die Protokollübersetzung von ViaVersion unterstützt Ressourcenpaket-Änderungen möglicherweise nicht vollständig, wenn sie auf Server-Versionen unter 1.21.4 läuft.

Um dies zu beheben, ziehe in Betracht, deinen Server auf 1.21.4 oder höher zu aktualisieren, da dies eine bessere Kompatibilität mit modernen Ressourcenpaket-Funktionen sicherstellt, einschließlich benutzerdefinierter FMM-Modelle.

Warum verursachen meine Modelle Lag oder Performance-Probleme?

Info

Jeder Knochen in deinem BlockBench-Modell erzeugt eine separate Entität in Minecraft. Modelle mit vielen Knochen können die Server-Performance beeinträchtigen.

Optimierungstipps:

  • Minimiere die Knochenanzahl in deinen Modellen
  • Begrenze die Anzahl gespawnter Modelle
  • Erwäge die Verwendung statischer Modelle anstelle dynamischer Modelle, wenn keine Animationen benötigt werden
  • Vermeide es, viele Modelle mit hoher Knochenanzahl nah beieinander zu spawnen

Technische Erklärung:

FreeMinecraftModels rendert jeden Knochen als separate Minecraft-Entität. Ein Modell mit 50 Knochen spawnt 50 Entitäten. Bei großem Maßstab beeinträchtigt dies die Performance.

Best Practices:

  • Entwirf Modelle mit weniger Knochen
  • Teste die Performance mit realistischen Spawn-Anzahlen
  • Überwache die Server-TPS, wenn du neue Modelle hinzufügst

So misst du es:

Führe /fmm packetdebug 20 aus, während du in dem Bereich stehst, der sich ruckelig anfühlt. Der Befehl erfasst die nächsten 20 Modelluhr-Ticks und meldet logische Pakete/Tick, tatsächlich pro Tick ausgelieferte Pakete (inklusive Fan-out pro Betrachter), den schlimmsten einzelnen Spieler, eine Aufschlüsselung nach Pakettyp sowie die schwersten Betrachter. Daran erkennst du, ob die Kosten von der Knochenanzahl, der Betrachteranzahl oder beidem kommen.

Eingebaute Paketoptimierungen:

Drei config.yml-Schlüssel steuern die paketseitigen Optimierungen. Alle stehen standardmäßig auf dem optimierten Verhalten — die alternativen Einstellungen existieren zum Debuggen, nicht als Tuning-Empfehlung:

  • skipUnchangedBoneUpdates (Standard true) — ein Knochen, der sich in diesem Tick weder bewegt, gedreht noch skaliert hat, sendet nichts. Statische Props und unbewegte Modellteile kosten fast nichts
  • useDeltaMetadataPackets (Standard true) — das Metadatenpaket pro Tick trägt nur die geänderte Transformation, statt den gesamten Item-Display-Blob neu zu serialisieren
  • maxModelsForProximityOverride (Standard 25) — Modelle innerhalb von 10 Blöcken werden normalerweise immer angezeigt, wobei der Sichtlinien-Raytrace übersprungen wird, um Aufpoppen zu vermeiden. Sobald eine Welt so viele geladene Modelle enthält, wird diese Überschreibung in dieser Welt abgeschaltet, sodass die Verdeckungsaussortierung auch aus der Nähe läuft. Das ist der Schlüssel, den man sich bei mehrstöckigen NPC-Hubs ansehen sollte, wo Spieler zu Betrachtern von Modellen auf anderen Etagen gemacht wurden

Die vollständigen Beschreibungen findest du unter Konfiguration.

Erweiterte Funktionen

Brauche ich den Resource Pack Manager (RSPM)?

Info

Der Resource Pack Manager (RSPM) ist optional, aber sehr empfehlenswert.

Was RSPM tut:

  • Führt automatisch Ressourcenpakete aus mehreren Plugins zusammen
  • Hostet Ressourcenpakete (kein externes Hosting nötig)
  • Verteilt Pakete beim Login automatisch an Spieler
  • Beseitigt die manuelle Ressourcenpaket-Konfiguration

Ohne RSPM:

Du musst manuell:

  • Das FMM-Ressourcenpaket mit allen vorhandenen Server-Ressourcenpaketen zusammenführen
  • Das zusammengeführte Paket bei einem externen Dienst oder über server.properties hosten
  • Den Server so konfigurieren, dass er das Paket an Spieler sendet
  • Das Paket jedes Mal aktualisieren, wenn du neue Modelle hinzufügst

Warum RSPM verwenden:

Die meisten „Pferderüstung statt Modelle"-Probleme werden durch unsachgemäßes Zusammenführen von Ressourcenpaketen verursacht. RSPM erledigt dies automatisch.

RSPM herunterladen: https://www.spigotmc.org/resources/resource-pack-manager.118574/

Entwickelt von MagmaGuy, demselben Autor wie FreeMinecraftModels.

Kann ich FreeMinecraftModels in meinem eigenen Plugin verwenden?

Info

Ja, FreeMinecraftModels bietet eine API für Entwickler.

Maven/Gradle-Integration:

Repository: https://repo.magmaguy.com/releases

Artifact:

  • GroupId: com.magmaguy
  • ArtifactId: FreeMinecraftModels
  • Scope: provided (muss auf dem Server installiert sein, nicht shaden)

Primäre API-Klassen:

  • ModeledEntity (Basisklasse)
  • StaticEntity
  • DynamicEntity
  • PropEntity

Beispiel-Verwendung:

StaticEntity staticEntity = StaticEntity.create(id, location);
if (staticEntity == null) {
Bukkit.getLogger().warning("Failed to create model");
return;
}
staticEntity.setRightClickCallback(...);
staticEntity.remove();

Wichtig:

Shade FreeMinecraftModels nicht in dein Plugin. Es muss separat auf dem Server installiert werden.

Für detaillierte API-Dokumentation siehe die offizielle README.

Wie verkleide ich einen Spieler als benutzerdefiniertes Modell?

Info

Der Befehl /fmm disguise verwandelt das Aussehen eines Spielers in ein beliebiges benutzerdefiniertes Modell.

Befehle:

/fmm disguise <modelID> [player]
/fmm undisguise [player]
/fmm disguiselist

So funktioniert es:

  • Macht den Spieler für andere Spieler unsichtbar
  • Überlagert das benutzerdefinierte Modell auf der Position des Spielers
  • Das Modell folgt den Bewegungen des Spielers
  • Perfekt für Rollenspiel-Server oder besondere Events

Beispiele:

/fmm disguise dragon              # Disguise yourself
/fmm disguise dragon Steve # Disguise another player
/fmm undisguise Steve # Undisguise Steve
/fmm disguiselist # List everyone currently disguised

Anforderungen:

  • Auf sich selbst zielend: freeminecraftmodels.disguise.self (Standard: OP)
  • Auf andere zielend und /fmm disguiselist: freeminecraftmodels.disguise.others (Standard: OP)
  • Die Konsole kann die gezielte Form ausführen, solange ein Spielername angegeben wird
  • modelID muss ein gültiges konvertiertes Modell in deinem Modell-Ordner sein
  • Drittanbieter-Plugins können Verkleidungen über die öffentliche DisguiseAPI steuern

Hinweise:

  • Die Spieler-Hitbox bleibt unverändert (gleiche Kollisionsbox)
  • Andere Spieler sehen das benutzerdefinierte Modell anstelle deines Spieler-Skins
  • Erneutes Verkleiden, während du bereits verkleidet bist, ersetzt die vorherige Verkleidung sauber
  • Die Unsichtbarkeit bleibt durch Milcheimer und andere effekt-entfernende Interaktionen erhalten, bis der Spieler enthüllt wird

Wie erstelle ich platzierbare Modell-Items?

Info

Der Befehl /fmm itemify erstellt besondere Items, mit denen Spieler Modelle in der Welt platzieren können.

Befehl:

/fmm itemify <model> <material>

Parameter:

  • model - Eine beliebige gültige Modell-ID aus deinem Modell-Ordner
  • material - Ein beliebiges Minecraft-Material (STICK, PAPER, DIAMOND usw.)

Beispiel:

/fmm itemify lamp_post STICK

Was es erstellt:

  • Ein benutzerdefiniertes Item mit einem formatierten, golden verzierten Anzeigenamen (z. B. „✦ Wolf ✦")
  • Beschreibende Lore, die das Item erklärt
  • Das Item wird direkt deinem Inventar hinzugefügt
  • Rechtsklick, um das Modell als Prop zu platzieren

Anwendungsfälle:

  • Spielern Items geben, um ihre Bauwerke zu dekorieren
  • Benutzerdefinierte „Spawn-Eier" für Möbel erstellen
  • Modelle verteilen, ohne Bau-Berechtigungen zu vergeben
  • Setup-Kits für kreatives Bauen

Anforderungen:

  • Berechtigung: freeminecraftmodels.*
  • Spieler muss im Spiel sein (nicht Konsole)

Wie debugge ich Modell-Hitboxen?

Info

Der Befehl /fmm hitbox visualize visualisiert Modell-Hitboxen mit Partikeln.

Befehl:

/fmm hitbox visualize [duration]

Parameter:

  • duration (optional) - Wie lange Hitboxen in Ticks angezeigt werden (Standard: 100, max: 1200)
  • 20 Ticks = 1 Sekunde

Beispiele:

/fmm hitbox visualize          # Show for 5 seconds
/fmm hitbox visualize 200 # Show for 10 seconds

So funktioniert es:

  • Sucht nach Modellen innerhalb von 10 Blöcken um dich herum
  • Zeigt die Grenzen der ausgerichteten Bounding-Box (OBB) mit Partikeln an
  • Zeigt sowohl das Modell als auch seine Kollisionsgrenzen
  • Nützlich zum Überprüfen von Hitbox-Größe und -Rotation

Wann verwenden:

  • Testen, ob Hitboxen mit den visuellen Modellen übereinstimmen
  • Debuggen von Interaktionsproblemen
  • Überprüfen von Hitbox-Rotationen
  • Fehlerbehebung bei der Klick-Erkennung

Anforderungen:

  • Berechtigung: freeminecraftmodels.*

Hinweis: Hitboxen in FMM rotieren mit dem Modell, anders als bei standardmäßigen Minecraft-AABBs.

Kann ich reitbare benutzerdefinierte Modelle erstellen?

Info

Ja, verwende den Befehl /fmm mount, um reitbare benutzerdefinierte Modelle zu erstellen (experimentelle Funktion).

Befehl:

/fmm mount <modelID>

Was es tut:

  • Spawnt ein Pferd an deinem Standort
  • Verkleidet das Pferd als dein benutzerdefiniertes Modell
  • Zähmt das Pferd automatisch und fügt einen Sattel hinzu
  • Lässt dich sofort auf dem Pferd reiten

Beispiel:

/fmm mount dragon

Anforderungen:

  • Berechtigung: freeminecraftmodels.*
  • Gültige Modell-ID

Wichtige Hinweise:

  • Diese Funktion ist als experimentell gekennzeichnet
  • Bewegungsgeschwindigkeit und -verhalten entsprechen einem Standardpferd
  • Die Hitbox des Pferdes bleibt unverändert
  • Funktioniert am besten mit Modellen, die für Reittiere entworfen wurden

Anwendungsfälle:

  • Benutzerdefinierte Reittiere für Rollenspiel-Server
  • Besonderes Transportmittel für VIP-Spieler
  • Einzigartige reitbare Kreaturen für Abenteuer-Maps

Was sind Mount-Point-Knochen?

Info

Mount-Points lassen dich reitbare Positionen direkt auf deinem Modell mithilfe speziell benannter Knochen definieren.

So erstellst du Mount-Points:

Benenne in Blockbench einen beliebigen Knochen mit dem Präfix m_ (z. B. m_seat, m_back). Jeder m_-Knochen wird zu einer Sitzposition auf dem Modell, auf der ein Spieler oder eine Entität platziert werden kann.

So funktioniert es:

  • Die Mount-Position folgt dem Standort des Knochens, einschließlich Animationen
  • Mehrere m_-Knochen erzeugen mehrere Sitze
  • Spieler/Entitäten können über die API oder Lua-Skripte auf diese Positionen gesetzt werden

Testen:

Verwende /fmm mount <modelID>, um Mount-Points auf einem Modell schnell zu testen.

Anwendungsfälle:

  • Mehrsitzige Fahrzeuge (Boote, Kutschen)
  • Reitbare Kreaturen mit bestimmten Sitzpositionen
  • Schulter-getragene Haustiere oder Begleiter

Benutzerdefinierte Items

Was sind benutzerdefinierte Items?

Info

Benutzerdefinierte Items sind Modelle, die in ihrer begleitenden YML-Konfigurationsdatei ein material:-Feld gesetzt haben, wodurch sie zu haltbaren, ausrüstbaren Items mit Lua-Skripting-Unterstützung werden.

Hauptunterschiede zu Prop-Platzierungs-Items:

  • Benutzerdefinierte Items verwenden den PDC-Schlüssel fmm_item_id (PersistentDataContainer)
  • Prop-Platzierungs-Items (aus /fmm itemify) verwenden den PDC-Schlüssel model_id
  • Benutzerdefinierte Items unterstützen 22 item-spezifische Lua-Skript-Hooks (equip, attack, consume usw.)
  • Benutzerdefinierte Items können Verzauberungen, benutzerdefinierte Namen und Lore haben, die in ihrer YML-Konfiguration definiert sind

So erstellst du ein benutzerdefiniertes Item:

  1. Erstelle ein .bbmodel-Modell in Blockbench
  2. Erstelle eine begleitende YML-Datei mit demselben Basisnamen (z. B. magic_sword.yml neben magic_sword.bbmodel)
  3. Setze das material:-Feld in der YML auf ein beliebiges gültiges Minecraft-Material (z. B. material: DIAMOND_SWORD)
  4. Setze optional die Felder name:, lore: und enchantments:
  5. Erstelle optional ein Lua-Skript in plugins/FreeMinecraftModels/scripts/ und referenziere es über das scripts:-Feld

Beispiel-YML:

isEnabled: true
material: DIAMOND_SWORD
name: "&6Flame Blade"
lore:
- "&7A legendary weapon"
- "&cBurns enemies on hit"
enchantments:
- "FIRE_ASPECT,2"
scripts:
- flame_blade.lua

So erhältst du ein benutzerdefiniertes Item:

  • /fmm giveitem <id> (erfordert die Berechtigung freeminecraftmodels.admin)
  • Über das Admin-Menü (/fmm admin)

Menüs

Welche Menüs bietet FMM?

Info

FreeMinecraftModels bietet zwei In-Game-Menüs zum Durchsuchen und Verwalten von Inhalten.

Spieler-Menü — /fmm

  • Berechtigung: freeminecraftmodels.menu (Standard: true, alle Spieler können es nutzen)
  • Zeigt nur Items, für die Crafting-Rezepte definiert sind
  • Klicke auf ein Item, um eine Detailansicht mit einer räumlichen 3x3-Crafting-Gitter-Vorschau zu sehen
  • Ermöglicht Spielern, zu entdecken und zu lernen, wie man benutzerdefinierte Items craftet

Admin-Menü — /fmm admin

  • Berechtigung: freeminecraftmodels.admin (Standard: OP)
  • Vollständiger Inhaltsbrowser, der Folgendes zeigt:
    • Installierte Pakete
    • Nicht verpackte Modell-Ordner
    • Modelle auf Stammebene
    • Benutzerdefinierte Items (Modelle mit gesetztem material:)
  • Ermöglicht Admins, Items zu geben, Modelle vorzuschauen und Inhalte zu verwalten

Display-Modelle

Was sind Display-Modelle?

Info

Display-Modelle lassen benutzerdefinierte Items ein 3D-Modell im Inventar und in der Hand des Spielers anzeigen, anstelle des standardmäßigen Material-Aussehens.

So richtest du ein Display-Modell ein:

  1. Verwende in Blockbench File > Export > Java Block/Item, um eine .json-Modelldatei zu exportieren
  2. Lege die .json-Datei neben die .bbmodel-Datei mit demselben Basisnamen (z. B. magic_sword.json neben magic_sword.bbmodel)
  3. Führe /fmm reload aus

So funktioniert es:

  • Auf Minecraft 1.21.4+ wird das Item mit dem benutzerdefinierten 3D-Modell angezeigt, wenn es gehalten oder im Inventar betrachtet wird
  • Reine Texturreferenzen in der JSON werden automatisch zu FMM-Namespace-Pfaden umgeschrieben
  • Wenn keine .json-Datei existiert, fällt das Item auf das einfache Material-Aussehen zurück
  • Ältere Server-Versionen ignorieren Display-Modelle stillschweigend

Anforderungen:

  • Server, der Minecraft 1.21.4 oder neuer ausführt
  • Ein gültiger Blockbench-„Java Block/Item"-Export (.json), der neben der Modelldatei platziert wird