Custom Biome
Ü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
- Installiere PacketEvents. Overlays und Chunk-Aktualisierungen werden darüber gesendet; ohne PacketEvents sind Overlays deaktiviert.
- Installiere die Quest-Erweiterung von TypeWriter über den Tab Extensions des Web-Panels (das Objective benötigt sie).
- Optional: Installiere WorldEdit oder FastAsyncWorldEdit, um die im Spiel erstellte Auswahl zu bemalen.
- Optional: Installiere PlaceholderAPI, um die untenstehenden Platzhalter zu nutzen.
- 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.
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:
- Öffne im TypeWriter-Web-Panel eine Manifest-Seite und füge einen Custom Biome Definition-Entry hinzu.
- Setze
biomeId(Kleinbuchstaben, Unterstriche, zum Beispielcorrupted_forest) und lassnamespaceauftypewriter. SetzebaseBiomeaufminecraft:forest. - Trage die Farben, die du ändern möchtest, als Hex-Wert ein, zum Beispiel
grassColor#6a3d9aundfoliageColor#4b2a73. Leere Felder erben vom Basisbiom. - Veröffentliche (Publish) und führe im Spiel
/tw biome listaus, um zu prüfen, ob das Biom aktiv ist. Wird es als wartend auf einen Neustart angezeigt, starte den Server neu. - Füge auf einer Manifest-Seite eine Biome Overlay Audience hinzu, wähle die Definition in
biomeund 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). - Um es auf eine Zone zu begrenzen, setze
cornerAundcornerB, 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.
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:
| Ordner | Inhalt |
|---|---|
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.
| Befehl | Beschreibung |
|---|---|
/tw biome | Zeigt die Liste der Befehle an. |
/tw biome list | Listet 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.) | Standardwert | Platzhalter |
|---|---|---|
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_live | live registry injection (reflection) | keine |
command.list.strategy_unsupported | unsupported ({reason}) | {reason} (technisch, auf Englisch) |
command.list.icon_live, icon_waiting, icon_missing | • in Grün, ⚠ in Gelb, ✖ in Rot | keine |
command.list.status_live, status_waiting, status_missing | Hover-Texte: Live in the registry, Written to the datapack — needs a restart, Not registered | keine |
command.list.entry | eine 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.header | Biome Info for {player} | {player} |
command.info.name, id, temperature, downfall, base_biome | Name:, ID:, Temperature:, Downfall:, Base Biome:, gefolgt vom Wert | {value} |
command.info.custom_yes, custom_no | Custom: Yes und Custom: No | keine |
command.help.title | Custom Biome Commands | keine |
command.help.list, info, apply, refresh, region | eine Hilfezeile pro Befehl | keine |
command.region.no_selection | No WorldEdit selection (or WorldEdit is not installed). | keine |
command.region.page_not_found | Could not find the page holding '{entry}'. | {entry} |
command.region.write_failed | Could not write the region: {failures} | {failures} (technisch, auf Englisch) |
command.region.done | Region of {entry} set to {min} → {max} in {world}. | {entry}, {min}, {max} (als x, y, z), {world} |
command.region.publish_hint | Publish the page for it to take effect. | keine |
command.refresh.none | No painted chunks near {player} to refresh. | {player} |
command.refresh.done | Resent biome data for {chunks} painted chunk(s) to {player}. | {chunks}, {player} |
command.apply.unknown | Unknown biome: {biome} | {biome} |
command.apply.unknown_hint | Use /tw biome list to see available custom biomes. | keine |
command.apply.nothing | Nothing to paint at that location. | keine |
command.apply.done | Painting {biome} over {cells} cell(s) across {chunks} chunk(s). | {biome}, {cells}, {chunks} |
placeholder.unknown | unknown | keine |
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
| Berechtigung | Erlaubt |
|---|---|
typewriter.biome | Zugriff 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.
| Platzhalter | Liefert |
|---|---|
%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. |
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
- Apply Biome ActionApply a biome to a location with optional radius
- Paint Biome Region ActionPaint a biome over a region, with an optional snapshot to undo it later
- Player Biome Overlay ActionShow a biome to a single player without changing the world
- Refresh Biome Chunks ActionRefresh biome data for chunks around the player
- Restore Biome ActionRestore biomes previously recorded by a paint snapshot
Ereignisse2
- Enter Biome EventTriggered when a player enters a biome
- Leave Biome EventTriggered when a player leaves a biome
Ziele1
- Explore Biome ObjectiveObjective completed by discovering one or more biomes
Fakten4
- Biome Discovery FactHow many biomes the player has discovered, or whether specific ones were found
- Custom Biome Count FactReturns the number of registered custom biomes
- Is in Custom Biome FactReturns 1 if player is in a custom biome, 0 otherwise
- Player Biome FactExpose the player's current biome as a fact value
Zielgruppen2
- Biome Overlay AudienceShow a biome to the audience without changing the world
- Biome Region AudienceKeep the players standing inside a region defined by two captured corners
Cinematics1
- Biome Transition CinematicChange the biome a player sees during a cinematic
Variablen3
- Biome Property VariableReturns a property of the player's current biome
- Current Biome VariableReturns the player's current biome name
- Custom Biome List VariableReturns a list of registered custom biomes
Manifeste2
- Custom Biome DefinitionDefine a custom biome with colors and climate settings
- Custom Biome PresetA reusable set of colors and visual attributes shared by several biomes
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.