Zum Hauptinhalt springen

Custom Biome

Eigene Biome mit eigenen Farben, Nebel, Himmel und Klima; male sie an oder zeige sie nur einem Spieler.

Kostenlosv0.9Welt & Bauen
BenötigtTypeWriter0.9Quest extensionPacketEventsWorldEditoptionalPlaceholderAPIoptional

Überblick​

Mit Custom Biome erstellst du eigene Biome direkt im TypeWriter-Web-Panel: Farben für Gras, Laub, Wasser, Himmel und Nebel, Wolken- und Sonneneinstellungen, Temperatur und Niederschlag. Ein neues Biom basiert auf einem Vanilla-Basisbiom, sodass Mob-Spawns, Features und weitere Eigenschaften geerbt werden und du nur überschreibst, was du ändern möchtest.

Ein Biom lässt sich auf zwei Arten nutzen. Du kannst es malen (paint), also in die Welt schreiben, für einen Blockradius, eine WorldEdit-Auswahl oder eine erfasste Region, und die alten Biome später aus einem Snapshot wiederherstellen. Oder du kannst es nur einem Spieler oder einer Audience zeigen (show), mit einem Overlay pro Spieler: Die Welt bleibt unverändert und niemand sonst sieht die Änderung. So kann ein verderbter Wald zum Beispiel nur während einer Quest erscheinen.

Funktionen​

  • Biomdefinitionen — Farben (Gras, Laub, trockenes Laub, Wasser, Himmel, Nebel, Wassernebel, Wolken, Himmelslicht, Sonnenauf-/-untergang), Nebel- und Wolkenabstände, Sonnen-, Mond- und Sterneneinstellungen, Temperatur und Niederschlag.
  • Presets — teile eine Farbpalette zwischen mehreren Biomen und überschreibe nur das, was abweicht.
  • Live-Registrierung — Biome werden, wenn möglich, in die Registry des Servers eingefügt und in ein generiertes Datapack geschrieben, damit sie Neustarts überstehen.
  • Welt bemalen — wende ein Biom rund um einen Spieler oder über eine Region an, mit optionalem Snapshot zum Rückgängigmachen.
  • Overlays pro Spieler — zeige ein Biom einem Spieler oder einer Audience, über eine Action, eine Audience oder eine Cinematic.
  • Betreten- und Verlassen-Events — löse Entries aus, wenn ein Spieler ein Biom betritt oder verlässt.
  • Entdeckung — merke dir, welche Biome jeder Spieler besucht hat, und nutze das in Facts und Quests.
  • Facts, Variablen und Platzhalter — lies das aktuelle Biom, seine Eigenschaften und die Anzahl entdeckter Biome aus.
  • Operator-Befehle — Biome auflisten, das Biom unter einem Spieler untersuchen, malen, aktualisieren und eine Region erfassen.
  • Folia-tauglich — Schreibvorgänge werden in der Region eingeplant, der der jeweilige Chunk gehört.

Installation​

  1. Installiere PacketEvents. Overlays und Chunk-Aktualisierungen werden darüber gesendet; ohne PacketEvents sind Overlays deaktiviert.
  2. Installiere die Quest-Erweiterung von TypeWriter über den Tab Extensions des Web-Panels (das Objective benötigt sie).
  3. Optional: Installiere WorldEdit oder FastAsyncWorldEdit, um die im Spiel erstellte Auswahl zu bemalen.
  4. Optional: Installiere PlaceholderAPI, um die untenstehenden Platzhalter zu nutzen.
  5. Lege die Custom-Biome-JAR in plugins/Typewriter/extensions/ ab und starte den Server neu.

Biomdefinitionen werden in ein Datapack namens typewriter_custom_biomes im Ordner datapacks der Welt geschrieben.

hinweis

Die visuellen Attribute (Nebelabstände, Wolkenhöhe, Sonnen-, Mond- und Sterneneinstellungen) sind im Quellcode für Minecraft 1.21.11 und neuer gekennzeichnet. In älteren Versionen gelten nur die Farben und das Klima.

Erste Schritte​

So erstellst du einen violetten Wald und zeigst ihn Spielern in einem Quest-Schritt:

  1. Öffne im TypeWriter-Web-Panel eine Manifest-Seite und füge einen Custom Biome Definition-Entry hinzu.
  2. Setze biomeId (Kleinbuchstaben, Unterstriche, zum Beispiel corrupted_forest) und lass namespace auf typewriter. Setze baseBiome auf minecraft:forest.
  3. Trage die Farben, die du ändern möchtest, als Hex-Wert ein, zum Beispiel grassColor #6a3d9a und foliageColor #4b2a73. Leere Felder erben vom Basisbiom.
  4. Veröffentliche (Publish) und führe im Spiel /tw biome list aus, um zu prüfen, ob das Biom aktiv ist. Wird es als wartend auf einen Neustart angezeigt, starte den Server neu.
  5. Füge auf einer Manifest-Seite eine Biome Overlay Audience hinzu, wähle die Definition in biome und platziere sie unter einer Audience, die zu deinem Quest-Schritt passt. Der Spieler sieht das Biom, solange er in der Audience ist, und das echte Biom kehrt zurück, wenn er sie verlässt (restoreOnExit).
  6. Um es auf eine Zone zu begrenzen, setze cornerA und cornerB, oder stelle dich im Spiel mit einer WorldEdit-Auswahl hin und führe /tw biome region <entry> aus, um die Ecken zu füllen.

Um die Welt selbst zu verändern, verwende Apply Biome oder Paint Biome Region in einer Action-Sequenz. Gib dem Malvorgang eine snapshotId, wenn Restore Biome ihn rückgängig machen soll.

tipp

Erstelle ein Custom Biome Preset für eine Familie von Biomen mit gleichem Himmel und Nebel und wähle es in preset jeder Definition aus. Werte in der Definition haben Vorrang vor dem Preset, und das Preset hat Vorrang vor dem Basisbiom.

So funktioniert es​

Das Malen schreibt das Biom in die Weltdaten, wirkt sich also auf alle Spieler aus und übersteht einen Neustart. Ein Overlay wird nur an den Client des Spielers gesendet: Nichts wird gespeichert, und beim Entfernen kehrt das echte Biom zurück. Überdecken mehrere Overlays denselben Chunk, wird das zuletzt angewendete angezeigt, und sein Entfernen legt das vorherige wieder frei.

Facts, Variablen und Platzhalter lesen standardmäßig das Biom, das der Spieler sieht (PLAYER_VIEW, Overlays eingeschlossen). Setze source bei Facts und Variablen auf REAL_WORLD, um zu lesen, was die Welt tatsächlich enthält.

Konfiguration​

Laufzeitdaten werden unter plugins/Typewriter/custombiome/ gespeichert:

OrdnerInhalt
discovery/Eine JSON-Datei pro Spieler (<uuid>.json), die die von ihm besuchten Biome auflistet.
snapshots/Von Paint Biome Region aufgezeichnete Biome, wenn snapshotId gesetzt ist.

Befehle​

Der Hauptbefehl ist /tw biome und erfordert typewriter.biome. Jeder Unterbefehl erfordert zusätzlich eine eigene Berechtigung.

BefehlBeschreibung
/tw biomeZeigt die Liste der Befehle an.
/tw biome listListet die benutzerdefinierten Biome auf und zeigt, ob jedes aktiv ist, auf einen Neustart wartet oder nicht registriert ist.
/tw biome info [player]Zeigt das Biom, in dem ein Spieler steht: Name, ID, ob es benutzerdefiniert ist, Temperatur, Niederschlag und Basisbiom.
/tw biome apply <biome> [radius]Malt ein Biom um dich oder einen Zielspieler herum, innerhalb eines Radius in Blöcken.
/tw biome refresh [radius]Sendet Biomdaten erneut (Radius von 1 bis 16 Chunks) für die Chunks, die diese Erweiterung in der Nähe des Spielers bemalt hat.
/tw biome region <entry>Kopiert deine WorldEdit-Auswahl in cornerA und cornerB eines Region-Entrys; veröffentliche danach die Seite.

Anpassbare Texte​

Alles, was die /tw biome-Befehle im Spiel ausgeben, ist ein TypeWriter-Snippet, du kannst es also umformulieren, übersetzen oder umfärben, ohne etwas neu zu bauen. Öffne plugins/Typewriter/snippets.yml, suche den Schlüssel unter content.custombiome, ändere den Wert und führe /tw reload aus. Die Erweiterung registriert beim Start alle ihre Snippets mit dem Standardtext, sie erscheinen also nach dem ersten Start in der Datei.

Die Texte sind MiniMessage. Ein {name} in einem Text wird durch den in der Tabelle genannten Wert ersetzt; ein Platzhalter, den du weglässt, wird einfach nicht angezeigt, und einer, den es nicht gibt, bleibt unverändert stehen. PlaceholderAPI-Platzhalter (%...%) werden ebenfalls aufgelöst, wenn der Befehl von einem Spieler ausgeführt wird. Nur das Typewriter-Antwortpräfix der kurzen Antworten (Typewriter ») stammt von der Engine und gehört nicht zu diesen Snippets; das Log der Server-Konsole bleibt auf Englisch.

Snippet (unter content.custombiome.)StandardwertPlatzhalter
command.list.empty<yellow>No custom biomes registered.</yellow>keine
command.list.header<gradient:#00d4ff:#0099ff><b>Custom Biomes ({count})</b></gradient>,davor eine Leerzeile{count}
command.list.strategy<dark_gray>Strategy: {strategy}</dark_gray>,danach eine Leerzeile{strategy}
command.list.strategy_livelive registry injection (reflection)keine
command.list.strategy_unsupportedunsupported ({reason}){reason} (technisch, auf Englisch)
command.list.icon_live, icon_waiting, icon_missing• in Grün, ⚠ in Gelb, ✖ in Rotkeine
command.list.status_live, status_waiting, status_missingHover-Texte: Live in the registry, Written to the datapack — needs a restart, Not registeredkeine
command.list.entryeine Zeile pro Biom, mit Hover-Text und Klick zum Kopieren{icon}, {status}, {name}, {key}, {temperature}, {downfall}
command.list.temperature, command.list.downfall T:{value} und D:{value} in Grau{value}
command.info.headerBiome Info for {player}{player}
command.info.name, id, temperature, downfall, base_biomeName:, ID:, Temperature:, Downfall:, Base Biome:, gefolgt vom Wert{value}
command.info.custom_yes, custom_noCustom: Yes und Custom: Nokeine
command.help.titleCustom Biome Commandskeine
command.help.list, info, apply, refresh, regioneine Hilfezeile pro Befehlkeine
command.region.no_selectionNo WorldEdit selection (or WorldEdit is not installed).keine
command.region.page_not_foundCould not find the page holding '{entry}'.{entry}
command.region.write_failedCould not write the region: {failures}{failures} (technisch, auf Englisch)
command.region.doneRegion of {entry} set to {min} → {max} in {world}.{entry}, {min}, {max} (als x, y, z), {world}
command.region.publish_hintPublish the page for it to take effect.keine
command.refresh.noneNo painted chunks near {player} to refresh.{player}
command.refresh.doneResent biome data for {chunks} painted chunk(s) to {player}.{chunks}, {player}
command.apply.unknownUnknown biome: {biome}{biome}
command.apply.unknown_hintUse /tw biome list to see available custom biomes.keine
command.apply.nothingNothing to paint at that location.keine
command.apply.donePainting {biome} over {cells} cell(s) across {chunks} chunk(s).{biome}, {cells}, {chunks}
placeholder.unknownunknownkeine
hinweis

Die drei Hover-Snippets von /tw biome list stehen in einem in einfachen Anführungszeichen gesetzten MiniMessage-Argument und dürfen daher kein einfaches Anführungszeichen enthalten.

placeholder.unknown ist das, was %typewriter_temperature%, %typewriter_downfall% und die Variable Biome Property für ein Biom zurückgeben, das kein benutzerdefiniertes ist. Das von %typewriter_is_custom% zurückgegebene true und false bleibt fest, weil Bedingungen damit vergleichen.

Berechtigungen​

BerechtigungErlaubt
typewriter.biomeZugriff auf den Befehlsbaum /tw biome.
typewriter.biome.list/tw biome list
typewriter.biome.info/tw biome info
typewriter.biome.apply/tw biome apply
typewriter.biome.refresh/tw biome refresh
typewriter.biome.region/tw biome region

Platzhalter​

PlaceholderAPI-Platzhalter, bereitgestellt von der Expansion typewriter. Spielerplatzhalter lesen das Biom, das dem Spieler angezeigt wird.

PlatzhalterLiefert
%typewriter_current% oder %typewriter_id%Biom-Key unter dem Spieler, zum Beispiel minecraft:plains.
%typewriter_name%Lesbarer Name des Bioms.
%typewriter_key%Nur den Key-Teil.
%typewriter_namespace%Nur den Namespace-Teil.
%typewriter_is_custom%true oder false.
%typewriter_temperature%Temperatur eines benutzerdefinierten Bioms, sonst unknown.
%typewriter_downfall%Niederschlag eines benutzerdefinierten Bioms, sonst unknown.
%typewriter_base%Basisbiom eines benutzerdefinierten Bioms oder der Biom-Key selbst.
%typewriter_count%Anzahl der registrierten benutzerdefinierten Biome.
%typewriter_list%Anzeigenamen der benutzerdefinierten Biome, durch Kommas getrennt.
%typewriter_discovered_count%Anzahl der vom Spieler besuchten Biome.
%typewriter_discovered_list%Keys der vom Spieler besuchten Biome.
hinweis

Die Erweiterung antwortet auf die oben genannten einfachen Namen (%typewriter_current%, %typewriter_count% usw.). Der Kommentar in ihrem Quellcode erwähnt ein Präfix custombiome_, aber der Code erkennt nur die einfachen Namen.

Entries​

20 Einträge, aus dem Quellcode der Erweiterung generiert.

Aktionen5
Ereignisse2
Ziele1
Fakten4
Zielgruppen2
Cinematics1
Variablen3
Manifeste2

Fehlerbehebung​

/tw biome list zeigt ein Warnsymbol und „needs a restart“. Der Server konnte das Biom nicht in seine Live-Registry aufnehmen, daher existiert es nur im generierten Datapack. Starte den Server neu. Der Grund wird einmalig in die Konsole geschrieben.

Mein Biom wird von einer Action oder einem Event nicht gefunden. Biom-Bezeichner haben die Form namespace:id, zum Beispiel typewriter:corrupted_forest. Prüfe mit /tw biome list den genauen Key. Ein unbekannter Bezeichner wird als Warnung protokolliert (unknown biome '…'), und die Action tut nichts.

Ein Spieler sieht das Overlay nie. Overlays benötigen PacketEvents: Andernfalls zeigt die Konsole PacketEvents unavailable: per-player biome overlays are disabled. Prüfe außerdem, ob der Spieler in der Audience ist, ob ein Biom konfiguriert ist (eine benutzerdefinierte Definition oder vanillaBiome) und, bei einer Region, ob beide Ecken in einer geladenen Welt liegen.

Paint Biome Region tut nichts. Bei region gleich WORLDEDIT_SELECTION benötigt der auslösende Spieler eine WorldEdit-Auswahl, und WorldEdit muss installiert sein; die Konsole protokolliert has no WorldEdit selection. Verwende andernfalls RADIUS_AROUND_PLAYER.

Restore Biome meldet, dass der Snapshot nicht existiert. Snapshots werden nur aufgezeichnet, wenn die Paint-Action eine snapshotId hat, und die Wiederherstellung muss denselben Namen verwenden. Ist consume aktiv, wird der Snapshot nach einer Wiederherstellung gelöscht.