FreeMinecraftModels Konfiguration
Diese Seite behandelt die aktuellen Einstellungen in config.yml und shop_config.yml, die Einrichtung, Rendering, Spielerinteraktion und den optionalen Möbelshop wesentlich beeinflussen.
Dateispeicherorte
plugins/FreeMinecraftModels/config.yml
plugins/FreeMinecraftModels/shop_config.yml
shop_config.yml wird beim ersten Start generiert; der Shop selbst bleibt deaktiviert, bis du ihn aktivierst.
config.yml-Einstellungen
setupDone
- Standard:
false - Steuert, ob die Ersteinrichtungsführung als abgeschlossen gilt
- Spieler mit umfassenden FreeMinecraftModels-Berechtigungen werden daran erinnert,
/fmm initializeauszuführen, solange diesfalsebleibt - Der Einrichtungsablauf schaltet diesen Wert für dich um; du musst ihn beim normalen Onboarding nicht manuell bearbeiten
useDisplayEntitiesWhenPossible
- Standard:
true - Weist FreeMinecraftModels an, das Display-Entity-Rendering zu bevorzugen, wenn Server und Client-Pfad dies unterstützen
- Das Plugin fällt weiterhin auf Armor-Stand-Displays zurück, wenn Display-Entitäten nicht verfügbar sind (älter als 1.19.4 oder Bedrock)
- Bedrock-Clients sind ein Sonderfall; gehe also nicht davon aus, dass dies für jeden Spieler denselben Rendering-Pfad erzwingt
maxModelViewDistance
- Standard:
60 - Begrenzt, wie weit modellierte Entitäten an Betrachter gesendet werden
- Niedrigere Werte reduzieren die Paket- und Client-Renderinglast in dicht modell-gefüllten Bereichen
- Einzelne Entitäten können dies zur Laufzeit über
ModeledEntity.setViewDistanceOverride(int)überschreiben — siehe das API-Handbuch
maxInteractionAndAttackDistance
- Standard:
3 - Gilt für statische und dynamische modellierte Entitäten
- Wird von den Laufzeit-Interaktions- und Trefferprüfungen verwendet
maxInteractionAndAttackDistanceForProps
- Standard:
6 - Gilt für Prop-Entitäten
- Dies ist getrennt von der Interaktionsdistanz statischer/dynamischer Entitäten
sendCustomModelsToBedrockClientsV2
- Standard:
true - Steuert, ob FreeMinecraftModels versucht, benutzerdefinierte Modelle an Bedrock-Clients zu senden
- Dieser Schlüssel ersetzt den älteren
sendCustomModelsToBedrockClients(dessen Standardfalsewar). Die Umbenennung inV2kehrt den Standard um, sodass Bedrock-Spieler Modelle standardmäßig sehen; falls du zuvor den alten Schlüssel explizit gesetzt hast, kannst du ihn löschen, und der neue V2-Schlüssel übernimmt - Bei Deaktivierung fallen Bedrock-Spieler auf die zugrunde liegende Vanilla-Entität zurück, wo diese existiert (und Verkleidungen werden für sie nicht gerendert)
- Wenn du dies aktivierst, stelle sicher, dass dein Bedrock-/Geyser-/Floodgate-Ressourcenpaket-Pfad tatsächlich für diese Clients bereit ist
- Laufzeit-Diagnose-Logging für die Bedrock-Display-Pipeline ist kein Config-Schlüssel — es wird zur Laufzeit über
/fmm debug bedrock on|offumgeschaltet, damit es nie versehentlich im Produktivbetrieb aktiv bleibt. Siehe Befehle
shop_config.yml
Der optionale Vault-gestützte Möbelshop hat eine eigene Konfiguration, sodass er unabhängig vom Verhalten des Hauptplugins aktiviert oder angepasst werden kann. Der Shop verweigert die Registrierung, wenn Vault oder ein Wirtschafts-Provider fehlt.
Schlüssel der obersten Ebene
| Schlüssel | Standard | Beschreibung |
|---|---|---|
enabled | false | Haupt-Umschalter für /fmm shop. Der Befehl registriert sich nur, wenn dies true ist und Vault + ein Wirtschafts-Provider beide vorhanden sind |
defaultPrice | 100.0 | Preis, der beim nächsten Laden in Rezeptdateien geschrieben wird, die keinen eigenen shopPrice setzen |
menuTitle | &8FMM - Furniture Shop | Titel, der oben im Shop-Inventar angezeigt wird (unterstützt &-Farbcodes) |
priceLoreFormat | &7Price: &e{price} | Lore-Zeile, die an jedes Shop-Item angehängt wird und seinen Preis zeigt. Platzhalter: {price} |
clickToBuyLoreFormat | &aClick to purchase | Lore-Zeile, die an jedes Shop-Item angehängt wird und zum Kauf auffordert |
Nachrichten-Schlüssel (messages.*)
Alle Nachrichtenstrings unterstützen &-Farbcodes.
| Schlüssel | Standard | Platzhalter |
|---|---|---|
messages.purchaseSuccess | &aPurchased &f{item} &afor &e{price}&a. Balance: &e{balance}&a. | {item}, {price}, {balance} |
messages.insufficientFunds | &cYou need &e{price} &cto buy &f{item}&c. Balance: &e{balance}&c. | {item}, {price}, {balance} |
messages.shopDisabled | &cThe furniture shop is currently unavailable. | keine |
messages.itemNotForSale | &cThat item is not currently for sale. | {item} |
messages.inventoryFull | &eYour inventory was full; &f{item} &ehas been dropped at your feet. | {item} |
Shop-Felder pro Rezept
Jede Rezeptdatei in plugins/FreeMinecraftModels/recipes/<model_id>.yml erhält zwei zusätzliche Felder:
| Feld | Standard | Beschreibung |
|---|---|---|
shopEnabled | true | Ob dieses Rezept in /fmm shop sichtbar ist. Rezepte mit shopEnabled: false sind weiterhin craftbar, werden aber nie zum Kauf angeboten |
shopPrice | defaultPrice aus shop_config.yml | Vault-Währungskosten für dieses spezifische Item |
Der Rezept-Builder (/fmm craftify) schreibt beim Speichern beide Felder, sodass eine Preisanpassung nur eine Textbearbeitung entfernt ist.
Berechtigungen
In plugin.yml registriert
| Berechtigung | Standard | Beschreibung |
|---|---|---|
freeminecraftmodels.* | op | Wildcard, die Admin- + Selbst-/Fremd-Verkleidungsberechtigungen gewährt |
freeminecraftmodels.admin | op | Zugriff auf /fmm admin (den Admin-Inhaltsbrowser) und /fmm giveitem. Andere Admin-/Debug-Befehle (/fmm location, /fmm spawn, /fmm mount, /fmm itemify, /fmm craftify, /fmm reload, /fmm stats, /fmm hitbox visualize, /fmm debug bedrock, /fmm setup, /fmm initialize, /fmm downloadall, /fmm updatecontent) prüfen stattdessen die Wildcard freeminecraftmodels.* |
freeminecraftmodels.disguise.self | op | Erlaubt /fmm disguise / /fmm undisguise auf den Sender |
freeminecraftmodels.disguise.others | op | Erlaubt gezielte Verkleidung/Enthüllung sowie /fmm disguiselist |
freeminecraftmodels.menu | true | Zugriff auf das /fmm-Menü craftbarer Items |
freeminecraftmodels.shop | true | Zugriff auf /fmm shop |
Von Befehlen erzwungen (nicht in plugin.yml registriert)
| Berechtigung | Standard | Beschreibung |
|---|---|---|
freeminecraftmodels.deleteall | op | Zugriff auf /fmm deleteall (wird vom Befehlshandler zur Laufzeit geprüft) |
Modell-YML-Konfiguration
Jede .bbmodel-Datei kann eine begleitende .yml-Datei haben (gleicher Name, gleiches Verzeichnis), die modell-spezifische Einstellungen steuert. Das vereinheitlichte YML-Format unterstützt folgende Felder:
isEnabled: true
voxelize: true
solidify: true
scripts:
- my_script.lua
material: DIAMOND_SWORD
name: "&bFrost Blade"
lore:
- "&7A sword forged in ice"
- "&7Deals frost damage"
enchantments:
- SHARPNESS,3
- UNBREAKING,2
| Feld | Typ | Beschreibung |
|---|---|---|
isEnabled | boolean | Ob das Modell geladen wird (Standard: true) |
scripts | Liste von Strings | Dateinamen von Lua-Skripten, die angehängt werden sollen (aus plugins/FreeMinecraftModels/scripts/) |
voxelize | boolean | Wenn true, rastet der Prop auf 90-Grad-Rotationsschritte ein und richtet sich beim Platzieren am Blockraster aus. Der Grundriss wird aus den Hitbox-Abmessungen des Modells berechnet (auf ganze Blöcke gerundet). Die Platzierung prüft, dass alle Blöcke im Grundriss nicht-solide sind. |
solidify | boolean | Wenn true (erfordert voxelize: true), werden paket-only Barrier-Blöcke in jedem Block des Prop-Grundrisses platziert, was ihm clientseitige Kollision verleiht. Diese Barrieren sind unsichtbar und existieren nur in Paketen — sie werden nicht in der Welt platziert. Barrieren werden automatisch entfernt, wenn der Prop aufgenommen oder zerstört wird. |
material | string | Ein Bukkit-Materialname (z. B. DIAMOND_SWORD, PAPER). Wenn gesetzt, wird das Modell zu einem benutzerdefinierten Item, das Spieler halten und ausrüsten können |
name | string | Anzeigename für das benutzerdefinierte Item (unterstützt &-Farbcodes) |
lore | Liste von Strings | Lore-Zeilen für das benutzerdefinierte Item (unterstützt &-Farbcodes) |
enchantments | Liste von Strings | Verzauberungen im Format ENCHANTMENT_NAME,LEVEL (z. B. SHARPNESS,3) |
Wenn material gesetzt ist, wird das Modell als benutzerdefiniertes Item registriert. Spieler können es über /fmm giveitem erhalten, es craften, falls ein Rezept konfiguriert ist, und es erhält Zugriff auf alle 22 Lua-Item-Hooks.
Betriebshinweise
/fmm reloadimportiert Inhalte erneut und regeneriert das Ausgabepaket, sodass Konfigurationsänderungen, die das Rendering-Verhalten betreffen, am einfachsten nach einem Reload überprüfbar sind. Bei jedem Reload wird einFmmReloadedEventgesendet, damit abhängige Plugins ihre Modellanhänge erneut binden können.- FreeMinecraftModels generiert das Ressourcenpaket nur; es hostet es nicht selbst.
- ResourcePackManager bleibt der empfohlene Auslieferungsweg für Java-Clients und der sicherste dokumentierte Pfad für gemischte Setups.
- WorldGuard, WorldEdit, GriefPrevention und Vault sind als
softdependinplugin.ymldeklariert — keines davon ist erforderlich, um das Plugin zu starten, aber sie schalten bestimmte Funktionen frei, wenn sie vorhanden sind (schutz-bewusste Lua-Prädikate und der Möbelshop).
Wann diese Werte ändern
Verwende diese Konfiguration für die Feinabstimmung des Laufzeitverhaltens, nicht für die Verwaltung von Inhaltspaketen.
- Verwende
/fmm initialize,/fmm setup,/fmm downloadallund/fmm updatecontentfür den Lebenszyklus offizieller Pakete - Verwende den
imports-Ordner für manuelle.bbmodel- oder andere lokale Inhaltsimport-Arbeit - Verwende
config.yml, wenn du Rendering-Modus, Sichtweite, Interaktionsdistanz oder Bedrock-Verhalten anpassen musst - Verwende
shop_config.yml(und dieshopEnabled/shopPrice-Felder pro Rezept), um den Möbelshop anzupassen, ohne Code zu berühren
Bekannte Einschränkungen
- Das Bedrock-Verhalten hängt sowohl von
sendCustomModelsToBedrockClientsals auch von deinem umfassenderen Floodgate-/Geyser-/Ressourcenpaket-Setup ab; bleibe also bei Aussagen konservativ, sofern du nicht genau deinen Stack getestet hast. - Der Shop deaktiviert sich stillschweigend selbst, wenn Vault oder ein Wirtschafts-Provider fehlt. Verwende
/fmm versionund prüfe die Konsole beim Start, falls/fmm shopunerwartet fehlt.