Zum Hauptinhalt springen

Changelog

Versionshinweise zu den öffentlichen BTC-Studio-Erweiterungen. Jede Version nennt die Erweiterung, ihre Version und was sich für Serverbetreiber geändert hat, die neueste zuerst, mit einem Link zum Release und zur Dokumentation der Erweiterung.

Kostenpflichtige Erweiterungen verlinken nur auf ihre Dokumentation; ihre Downloads bleiben im Store. Private Erweiterungen sind hier nicht aufgeführt.

2026-10-16​

Dungeon v1.2​

Jede Änderung steht im Dungeon-Changelog. Für einen bestehenden Dungeon ändert sich nichts, bis er eines der neuen Felder nutzt.

  • Erfordert GUI (OmniGUI) 0.20: Die Dungeon-Bestenliste nutzt die Leaderboard-Source von GUI 0.20 und lädt mit einem älteren GUI nicht. Aktualisiere zuerst GUI.
  • Geteilte Beute: neuer Entry Dungeon Loot Table, genutzt von Truhen (lootTableRef) und Mobs (lootTable). Eine Truhe würfelt sie einmal beim ersten Öffnen, ein Mob bei seinem Tod.
  • Mehr Truhen: additionalLocations setzt mehrere Truhen aus einem Dungeon-Loot-Chest-Entry (in einem generierten Dungeon ignoriert). Loot Chest Trigger erhält particleEffect mit getrennten X-, Y- und Z-Achsen.
  • Wellen und Skalierung: Dungeon Mob Spawn erhält waves, maxSimultaneous, Skalierung mit der Spielerzahl (perExtraPlayer, maxCount, playerCountSource), spawnParticle und die Trigger onWaveCleared und onCleared. Neues Event On Dungeon Mobs Cleared, um eine Tür zu öffnen oder eine Truhe erscheinen zu lassen, sobald alle Mobs besiegt sind.
  • Einschränkungen: neuer Entry Dungeon Restrictions (Elytra, Boot oder Lore, Enderperle, Chorusfrucht, Riptide, gesperrte Befehle, Ablehnungsnachricht, Bypass-Berechtigung) mit gameMode, limitInteractions (erlaubte Interaktionen, geschützte Entitäten) und messageRepeatDelay. Riptide und Chorusfrucht werden beim Klick verweigert. Nur die Bypass-Berechtigung nimmt einen Spieler aus: Ein Operator hat sie, solange der Node nicht auf false steht.
  • Statistiken: 22 Statistiken pro Spieler, pro Artifact gezählt und mit einer Summe über mehrere Artifacts: verursachter und erlittener Schaden (nur wirklich verlorenes Leben), Kills, geleerte Wellen und Räume, Spielzeit, Tode, Rekorde... statsMobScope wählt die gezählten Mobs. Ein Tod, der den Spieler aus dem Durchlauf wirft, zählt nicht mehr als runs_left. Neuer Fact dungeon_stat; Placeholder dungeon_stat_<key>[_raw], dungeon_total_<key> und dungeon_inst_<id>_<key>; Snippets content.dungeon_stats.duration_format und content.dungeon_stats.missing_value.
  • Bestenliste: neuer Entry dungeon_leaderboard_source (LIFETIME oder CURRENT_RUN, rankBy, values, durationFormat, decimals) zum Einstecken in das Feld source einer GUI-Bestenliste.
  • Wiederverbindung: reconnectGrace (standardmäßig 2 Minuten). Ein getrenntes Mitglied behält seinen Platz und macht dort weiter, wo es war (Sidebar, ausgeblendete Slots, Spielmodus). Danach verlässt es den Durchlauf und kehrt beim nächsten Beitritt zu seinem Einstiegspunkt zurück.
  • MMOProfiles: Die Rückkehr zum Einstiegspunkt und der ursprüngliche Spielmodus werden nach der Profilwahl erneut angewendet.
  • Menüs: Die Slot-Felder von Dungeon Category unlockedLore und lockedLore heißen jetzt unlockLore und lockLore. Alte Seiten werden weiterhin gelesen; der neue Schlüssel gewinnt, wenn beide vorhanden sind.
  • API-Bruch für Addons: DungeonArtifactData, DungeonStats und PlayerDungeonStats liegen jetzt im Package btcrenaud.dungeons.core, und DungeonArtifactEntry.getPlayerStats und update haben eine neue Signatur. Ein Addon, das gegen Dungeon 1.1.x kompiliert wurde, muss neu kompiliert werden.

Dokumentation

GUI v0.20​

  • Beute zurückgeben: dropOnClose bei einem simple-Layout gibt beim Schließen des Menüs zurück, was der Spieler nicht genommen oder dort hineingelegt hat. closeDelivery wählt GIVE_OR_DROP (Standard: ins Inventar, der Rest vor die Füße) oder DROP. Standardmäßig aus.
  • Zufällige Items: rollPerSlot würfelt ein zufälliges Item pro wiederholtem Slot statt einmal für alle, und das neue liveItem würfelt es bei jeder Aktualisierung neu.
  • Leerer Name wird ignoriert: Ein Item mit leerem Namen behält seinen eigenen Namen, statt ohne Namen angezeigt zu werden.
  • Bestenlisten-Zeilen aus einer anderen Erweiterung: neues Feld source bei gui_leaderboard. Die Zeilen stammen aus einem Source-Entry, für alle Spieler, online oder nicht, etwa dem von Dungeon. Die Zeilentexte akzeptieren {score}, {score_raw} und {value_<key>}. Die Texte einer Source sind Klartext: Ein Name, der wie ein MiniMessage-Tag aussieht, etwa <red>, ändert die Reihenfolge nicht mehr.

Release v0.20 · Dokumentation

MythicMobs v0.12​

  • Mobs, die nur für bestimmte Spieler sichtbar sind: spawn_mythicmobs_mob und mythic_spawner haben ein neues Feld visibilityCriteria. Der Mob ist nur für die Spieler sichtbar, anvisierbar und verwundbar, die die Criteria erfüllen, laufend neu geprüft (visibilityRefreshInterval, standardmäßig 1 Sekunde). Eine visibilityGroup wird jetzt live verfolgt, statt beim Spawn eingefroren zu werden.
  • collidable (spawn_mythicmobs_mob, mythic_spawner, Standard true): false entfernt Kollision und Schieben für alle.
  • Aufgeben: spawn_mythicmobs_mob hat neue Felder abandonRange und abandonDelay. Der Mob wird entfernt, wenn kein berechtigter Spieler während der Verzögerung in Reichweite bleibt (abandonRange 0 = aus). Der Web-Editor füllt neue Dauern mit 1 Sekunde vor: Prüfe abandonDelay.
  • despawn_mythicmobs_mob: neues Feld scope, ALL (Standard, wie bisher) oder VISIBLE_TO_PLAYER (nur die Mobs, die der Spieler sieht).
  • Schutz: Aller Schaden im Zusammenhang mit einem eingeschränkten Mob (Nahkampf, Projektile, MythicMobs-Skills, Feuer) wird gegenüber nicht berechtigten Spielern blockiert, und umgekehrt. Projektile fliegen hindurch, und der Mob lässt ein nicht berechtigtes Ziel fallen.
  • MythicMobs-Bedingung typewritervisible (Alias twvisible): Füge sie Skills ohne Schaden (Trank, Wurf...) hinzu, im Targeter (conditions=[ - twvisible true ]) oder als TargetCondition, damit sie Spieler überspringen, die den Mob nicht sehen können. Die Extension führt beim Start einmal /mm reload aus, wenn deine MythicMobs-Dateien sie verwenden.
  • Ein Mob, dessen Quell-Entry gelöscht wird, bleibt für alle ausgeblendet.
  • Grenzen: Die Kollision ist alles oder nichts; Skills ohne Schaden werden ohne twvisible nicht gefiltert; Sounds und Partikel weit vom Mob entfernt werden nicht ausgeblendet.

Release v0.12 · Documentation

Shops v1.12​

  • Neu gegen GUI 0.20 kompiliert, das jetzt erforderlich ist: Die vorherige Version öffnet ihre Menüs mit GUI 0.20 nicht. Sonst ändert sich nichts.

Release v1.12 · Documentation

Quest Codex v2.16​

  • Neu gegen GUI 0.20 kompiliert, das jetzt erforderlich ist: Die vorherige Version öffnet ihre Menüs mit GUI 0.20 nicht. Sonst ändert sich nichts.

Release v2.16 · Documentation

Corpse v0.7​

  • Neu gegen GUI 0.20 kompiliert, das jetzt erforderlich ist: Die vorherige Version öffnet ihre Menüs mit GUI 0.20 nicht. Sonst ändert sich nichts.

Release v0.7 · Documentation

Numerical Storage v0.15​

  • Neu gegen GUI 0.20 kompiliert, das jetzt erforderlich ist: Die vorherige Version öffnet ihre Menüs mit GUI 0.20 nicht. Sonst ändert sich nichts.

Release v0.15 · Documentation

2026-10-12​

Dungeon v1.1.1​

  • Paper 26.x, WORLD_PER_RUN: Ein Durchlauf konnte mit The server did not create world 'dungeon_classic_...' fehlschlagen. Die Kopie der Vorlage behielt deren Welt-ID (data/paper/metadata.dat), sodass der Server sie als Duplikat ablehnte. Die Kopie erhält jetzt eine eigene ID.

Dokumentation · Dungeon-Changelog

2026-10-08​

Dungeon v1.1​

Ein vollständiger Umbau rund um Runs: isolierte Welten, generierte Dungeons, NPCs pro Run und Vanilla-Mobs. Lies vor dem Update von 0.10 den Migrationshinweis; jede Änderung ist im Dungeon-Changelog aufgeführt.

  • Runs: Jeder Run hat seinen eigenen Zustand und sein eigenes Journal. Das Starten eines Runs gilt ganz oder gar nicht, und die Eintrittskosten werden erstattet, wenn er fehlschlägt. /tw reload und Publish übernehmen laufende Runs, statt sie zu beenden.
  • Isolation: drei Modi pro Dungeon (SLIME_CLONE, WORLD_PER_RUN, SHARED_WORLD_SLOTS) oder AUTO.
  • Generierte Dungeons: Raumvorlagen, Verbinder, Pools, Generatoren und Affixe, mit einem Editor im Spiel für Türen und Marker.
  • NPCs und Mobs: NPCs pro Run aus jeder Entity-Definition, nur für die Mitglieder des Runs sichtbar; Vanilla-Kampfmobs, die einmal pro Run gespawnt werden, mit einer Obergrenze für lebende Mobs.
  • Texte: Jeder Spielertext ist ein bearbeitbares Snippet. Nur Paper.
  • Befehlsantworten: Jede Antwort der /tw dungeon-Befehle, auch die der Admin-Befehle, ist ein anpassbares Snippet (content.dungeon_command.).
  • Statistiken: pro MMOProfiles-Profil gespeichert, wenn dieses Plugin installiert ist, sonst pro Spieler.
  • Paper-26.x-Welten: Nach Art von Paper 26.x abgelegte Welten (dimensions/minecraft/<name>) werden für SHARED_WORLD_SLOTS gefunden und für WORLD_PER_RUN kopiert.

Dokumentation

MythicMobs NPC v5.0​

  • NPCs in Dungeons: Bei deaktiviertem ticking wird ein von Dungeon 1.0 platzierter NPC nur den Mitgliedern seines Runs angezeigt, und ein Klick löst eine Interaktion für den richtigen Spieler aus.
  • Bone Visibility Data und Attachment Data werden jetzt auf das NPC-Modell angewendet, mit ticking an oder aus, und erneut nach jedem Respawn.
  • Play Animation: force stoppt jetzt die anderen von der Aktion auf diesem NPC gestarteten Animationen; eine speed von 0 oder weniger läuft mit normaler Geschwindigkeit.
  • MythicMob Skill Objective: skillName funktioniert jetzt über die MythicMobs-Mechanik typewriterSkill{name=..} (Alias twskill), die dem Skill hinzugefügt und mit /mm reload übernommen wird. Der Fortschritt wird in fact gespeichert, und der bisherige Fortschritt wird automatisch migriert. Die Mechanik übersteht ein Publish aus dem Web-Editor; nach einem vollständigen Stopp und Start von Typewriter fordert die Konsole /mm reload an.
  • Loot-Ziel: Die Item- und Mob-Namen des Loots sind mit ihren Farben lesbar (zuvor waren es technische Texte), und das Abschlusszeichen ✔ entspricht dem der anderen Ziel-Erweiterungen.

Dokumentation

MMOItems v2.4​

  • Advanced Tooltip Config: overrideDefaultLore wird jetzt gelesen. Ist es aus, ist das System deaktiviert oder fehlt der Eintrag, wird der gesamte MMOItems-Lore auf einer Seite angezeigt, ohne Seitenwechsel und ohne Vergleich.
  • Lore-Tags: Die Tags des MMOItems-Lore-Formats (<page_break>, <category_image>, <pagination_indicator>, <comparison_indicator>, <requirement_met>, <requirement_not_met>, <total_pages>, <current_page>, <comparison_value>, <comparison_sign>) werden jetzt immer ersetzt oder entfernt, sodass Spieler sie nicht mehr als Rohtext sehen.
  • Kreativmodus: Seitenwechsel und erweiterter Lore gelten nur im Überlebens- und Abenteuermodus. Im Kreativmodus bleibt der MMOItems-Lore unverändert (Tags eingeschlossen), weil der Kreativ-Client Items so zurückschickt, wie er sie anzeigt, und ein umgeschriebener Lore das echte Item verändern würde.
  • Die Felder des Eintrags starten mit funktionierenden Werten, wenn der Eintrag im Web-Editor erstellt wird (isEnabled, overrideDefaultLore und enableComparisonTags an, paginationKeybind SWAP_OFFHAND, comparisonKeybind SNEAK, statsStartOnPage 2, Standardsymbole und -hinweise).

Dokumentation

Shops v1.11​

  • perPlayer gibt jetzt jedem Spieler seinen eigenen Bestand jedes Items; ein Reset füllt den Bestand aller wieder auf. Limits behalten ihren eigenen Geltungsbereich.
  • defaultRefreshTicks und das refreshTicks des Items zeichnen einen geöffneten Shop neu, wenn sich der angezeigte Bestand ändert (nur bei endlichen Beständen; 0 beim Shop bedeutet keine automatische Prüfung).
  • Das guiSlot des Items fixiert ein Item auf einem festen Slot des Inhaltsbereichs auf jeder Seite; ein Item, das nicht platziert werden kann, wird in eine freie Zelle verschoben oder in der Konsole gemeldet.
  • Ist sellAllEnabled deaktiviert, wird die Aktion „Alles verkaufen“ jetzt mit cannotSellMessage abgelehnt.
  • Befehlsantworten, Trend-Icons, Limited-/Unlimited-Lore, Preiszeilen, Standardnamen, der Text ohne Preis und das Dauerformat sind jetzt anpassbar; der Tag im Standard-Cooldown wird d geschrieben (vorher j).

Release v1.11 · Dokumentation

GUI v0.19​

  • audioDefaults in gui_settings gilt jetzt als Fallback: Ein leer gelassener Sound bei einer Open-GUI-Aktion wird daraus übernommen, Sound für Sound.
  • Scrollbare Layouts erhalten Standardpfeile, solange showDefaultButtons aktiviert ist (Standard): einen pro Richtung ohne buttons-Eintrag, nur angezeigt, wenn der Inhalt in diese Richtung scrollen kann, und nie auf einer belegten Zelle. Bestehende scrollbare Menüs erhalten Pfeile; setze showDefaultButtons auf false, um sie wie bisher zu belassen.
  • Neues Feld defaultStep bei scrollbaren Layouts und neue Liste scrollArrows in gui_settings (direction, item, name, x, y), um die Standardpfeile zu ändern.
  • Neues texts in gui_settings: Die Buttons Confirm und Cancel sowie die Fortschrittszeile des Speichers sind anpassbar. „Confirmer“ wird zu „Confirm“. Das Trennzeichen der Brotkrümelnavigation, das fehlerhaft angezeigt wurde, ist repariert.

Release v0.19 · Dokumentation

Quest Codex v2.15​

  • Die Berechtigung typewriter.codex.open wird jetzt von der Erweiterung deklariert, standardmäßig nur für Operatoren, sodass sie in Berechtigungs-Plugins wie LuckPerms erscheint.
  • Die Navigationsbeschriftungen, Sortierbeschriftungen, Standard-Menütitel und die Nachricht für eine unbekannte Kategorie sind anpassbar (navLabels, sortTexts, mainMenuTitle, trackedQuestsTitle, unknownCategoryMessage).

Release v2.15 · Dokumentation

Vote System v0.9​

  • Vote Config wird jetzt gelesen: cooldownSeconds über 0 lässt einen Spieler nach so vielen Sekunden erneut abstimmen (die Zähler sind kumulativ), und debug protokolliert akzeptierte und abgelehnte Stimmen.
  • Vor der Einführung des Cooldowns gespeicherte Stimmen werden auf den ersten Kontakt nach dem Update datiert, ihr Cooldown beginnt also dann.
  • Die Antworten der /tw vote-Befehle sind anpassbare Snippets (content.vote.).
  • MiniMessage-Farben: Die Nachricht bei geschlossener Umfrage, das neue blockedMessage und die beiden Texte von Vote Message werden jetzt als MiniMessage gelesen, mit aufgelösten Platzhaltern (die Tags wurden zuvor unverändert angezeigt). Die Standardantworten der Befehle sind farbig.
  • Eine abgelehnte Stimme wird wirklich abgelehnt: triggers und modifiers von Vote Action laufen nur, wenn die Stimme erfasst wird; eine Ablehnung zeigt nicht mehr die Annahmenachricht, und nichts wird doppelt ausgelöst. Eine Ablehnung zeigt closedMessage (nach dem Enddatum) oder das neue blockedMessage (vor Ablauf der Wartezeit) und löst die neuen refusedTriggers aus. Jede Ablehnung wird protokolliert, wenn debug aktiv ist.
  • Neue Platzhalter vote_has_voted_<id> und vote_closed_<id> (1 oder 0) sowie vote_remaining_<id> (Sekunden bis zum Enddatum, 0 ohne Enddatum).

Release v0.9 · Dokumentation

Discord v0.13​

  • Die triggers eines Webhook Fact Event laufen jetzt nach der Veröffentlichung eines Webhooks, für den Spieler, dessen Fact-Änderung veröffentlicht wurde.
  • Neues triggerCooldownSeconds (Standard 1) bei Webhook Fact Event: ein Schleifenschutz zwischen zwei Auslösungen von triggers für denselben Spieler; 0 deaktiviert ihn.

Release v0.13 · Dokumentation

Custom Biome v0.9​

  • Explore Biome Objective funktioniert jetzt: biomes und requireAll werden gelesen, wenn ein Spieler ein Biom betritt, und das neue Feld triggers führt Entries aus, wenn das Ziel abgeschlossen und aktiv ist. Das Ziel erfasst die Entdeckung selbst; ein Enter Biome Event ist nicht nötig.
  • Die Antworten der /tw biome-Befehle und der Text unknown der Biom-Platzhalter sind anpassbare Snippets (content.custombiome.).
  • Paper 26.3: Custom Biomes werden wieder registriert; unter 26.3 ließen sie sich nicht laden (Live-Injektion und Datapack-Fallback).

Release v0.9 · Dokumentation

Numerical Storage v0.14​

  • optionalButtons des Menüs und jedes Untermenüs werden jetzt gezeichnet: reine Anzeige-Items auf ihren slots, die ersetzen, was das Layout im selben Slot platziert.
  • profileMode nutzt jetzt MMOProfiles: ein Guthaben pro MMOProfiles-Profil. Ohne MMOProfiles ist es das Guthaben des Spielers. Mit MMOProfiles und ohne aktives Profil (Profilauswahl oder nach /mmoprofiles quit) wird 0 angezeigt, und Schreibvorgänge werden abgelehnt: Admin-Befehle und Menüaktionen antworten mit dem anpassbaren noActiveProfileMessage (in adminMessages) und schreiben nichts. Die Zinsen eines Profils werden bei dessen Auswahl abgerechnet.
  • Die Antworten der Admin-Befehle sind anpassbar (adminMessages); die Platzhaltertexte und das Dauerformat sind Snippets (numericalstorage.placeholder., numericalstorage.duration.).
  • Platzhalter laden den Speicher beim Beitritt, sodass sie das gespeicherte Guthaben statt eines leeren anzeigen, solange der Cache kalt ist.
  • Platzhalter und der Level-Upgrade-Button folgen jetzt profileMode; /tw ns add/remove beantworten einen ungültigen Betrag oder ein fehlendes Artifact mit bearbeitbaren Nachrichten.

Release v0.14 · Dokumentation

Puzzle v0.6​

  • isShared teilt jetzt den Fortschritt einer Gruppe (der Gruppe des Puzzle-fact): Die erste Lösung zählt für die Gruppe, der Fact wird einmal gesetzt, und jedes Mitglied erhält die Abschlussnachricht, onComplete und den Kettenschritt einmal (ein abwesendes Mitglied erhält sie bei seiner Rückkehr).
  • Ein Spieler erhält den Abschluss eines Puzzles höchstens einmal, auch bei einem Gruppenwechsel, bis ein Admin-Reset ihn betrifft. /typewriter puzzle admin reset <player> <id> öffnet ein geteiltes Puzzle für die ganze Gruppe erneut.
  • Ein Puzzle Artifact ist jetzt für geteilte Puzzles erforderlich: Ohne es zahlt ein Neustart den Abschluss erneut aus, und der Wechsel zu einem älteren Build verliert den geteilten Eintrag.
  • Spielertexte und Befehlsantworten sind anpassbar: Die Nachrichten jedes Rätsels und des Puzzle Menu sind Eintragsfelder, die Antworten von /tw puzzle sind Snippets (content.puzzle.). Texte, die standardmäßig französisch waren, sind jetzt englisch; eine Page, die den französischen Text gespeichert hat, behält ihn.
  • Behoben, clientseitige Blöcke: Ein gezeichneter Block verschwindet nicht mehr, wenn sein Klick abgebrochen wird. Das Brett wird einen Tick nach jedem abgebrochenen Klick neu gezeichnet (Laser-Grid-Spiegel verschwanden beim Rechtsklick, statt sich zu drehen, Block-Push-Blöcke verschwanden bei einem abgelehnten Schub, ebenso Klicks bei Memory, Pattern, Item Frame und Pedestal).
  • Behoben, Block Push: Ein auf seine Startzelle zurückgeschobener Block springt nicht mehr weg und verschwindet nicht mehr, und ein Zielloch wird wieder gezeichnet, sobald ein Block darüber hinweggeschoben wurde. Ein abgelehnter Schub zählt einen Fehlversuch pro Block und Zielzelle, nicht mehr einen pro Klick; wer den Klick gegen eine Wand hält, verbraucht maxAttempts nicht. Startzellen in der Welt leer (Luft) lassen. allowPull hat weiterhin keine Wirkung (nicht implementiert).
  • Behoben, Lever Order: Hebel, die eingeschaltet ruhen, kehren nach falscher Reihenfolge in ihre ursprüngliche Position zurück, und ihr Umlegen ist sichtbar. Ein Klick während des Fehler-Cooldowns erreicht keinen echten Hebel mehr.
  • Behoben, gelöste Puzzles: Ein gelöstes Block Push, Combination Lock, Lever Order oder Laser Grid ist inaktiv (kein Brett, keine abgebrochene Interaktion) und schluckt die Klicks auf seine Hebel und Knöpfe nicht mehr, wenn der Spieler wieder in seinem Publikum ist. Ein gelöstes Pedestal schluckt das Aufheben seines Items nicht mehr.
  • Laser Grid: Der Strahl wird jetzt durch die Blockmitte gezeichnet und knickt genau auf jedem Spiegel ab (vorher war er versetzt). beamDensity ist die Anzahl Partikel pro Block, und die Eckpunkte werden immer gezeichnet.
  • Laser Grid, maxBeamLength: neues Feld, standardmäßig 64 Blöcke (0 oder weniger bedeutet 64, nie unbegrenzt). Ein Spielfeld mit längerem Strahl muss den Wert erhöhen. Der Strahl lädt nie einen Chunk: Er endet am Rand der geladenen Welt.
  • Combination Lock: Die Ziffern werden ab 0 nummeriert (die erste aufgeführte Position ist Ziffer 0); die Hilfe nennt ein Beispiel. Ein code-Wert außerhalb der Ziffern schreibt jetzt eine Warnung in die Konsole, statt jeden Druck stillschweigend zu ignorieren.

Release v0.6 · Dokumentation

Corpse v0.6​

  • Welt-Filter: allowedWorlds und excludedWorlds in corpse_settings legen fest, wo ein Tod eine Leiche hinterlässt. Eine leere Liste der erlaubten Welten bedeutet jede Welt. Platzhalter * und ? (dungeon_*), Weltnamen und Dimensionsschlüssel (minecraft:the_nether) werden verstanden, und ein Ausschluss gewinnt immer. Außerhalb der erlaubten Welten bleibt der Tod Vanilla.
  • filteredWorldDeath: In einer vom Filter abgelehnten Welt behält VANILLA_DEATH_SCREEN (Standard) den gewöhnlichen Minecraft-Tod, dessen Leiche und Todesbildschirm vom Client gezeichnet werden, und INSTANT_RESPAWN lässt den Spieler im nächsten Tick ohne Todesbildschirm respawnen. Items und Erfahrung fallen wie in Vanilla. Keine Wirkung, wenn beide Listen leer sind.
  • Jeder Text ist bearbeitbar: Nachrichten, Menübeschriftungen und -materialien, das Wegpunkt-Format mit seinen acht Richtungspfeilen, die /corpses-Antworten, der Standardname der Leiche und der Text des Recovery-Objective. Der Name eines Spielers wird maskiert und wird nie zu einem klickbaren Tag.
  • Neue Einstellungen interactionReach (6 Blöcke; der Server prüfte die Entfernung eines Klicks nicht), interactionCooldownMillis und unknownWorldLabel. Eine Definition kann auch über den Dimensionsschlüssel gewählt werden, und die Kopfzeile von /corpses list ist bearbeitbar. /corpses list und clear gelten für den ganzen Server. Neues optionales outOfReachMessage (standardmäßig leer: keine Nachricht).
  • Prüfung auf Item-Verlust und -Duplizierung: Tode, Plündern und Speicherung wurden überprüft; die Korrekturen unten schließen alle gefundenen Verlust- oder Duplizierungswege.
  • Behoben, Tode: Ein von einem anderen Plugin abgebrochener Tod (Totem, Wiederbelebung) nimmt dem Spieler die Ausrüstung nicht mehr; keepInventory und keepLevel werden beachtet (keine Leiche bei keepInventory), und Items, die andere Plugins für den Spieler behalten, werden nicht mehr in die Leiche dupliziert. Kann die Leiche nicht erstellt werden, fallen die Items normal.
  • Behoben, Plündern: Ein Item bei vollem Inventar zu nehmen dupliziert nicht mehr den Teil, der gepasst hat, und zwei Klicks im Wettlauf um dieselbe Leiche können ihren Inhalt nicht mehr doppelt ausgeben.
  • Behoben, Speicherung: Ein Neustart bringt bereits genommene Items nicht mehr zurück, und eine unlesbare oder halb geschriebene Speicherdatei löscht die gespeicherten Leichen nicht mehr. Wiederhergestellte Leichen behalten Pose, Leuchten, Namen und Animation (nicht Skin und Rüstung des Besitzers).
  • Respawn-Nachricht, Wegpunkt und Objective verwenden die neueste Leiche, und das Loot-Menü warnt vor dem Öffnen statt nach dem ersten Klick.

Release v0.6 · Dokumentation

MythicMobs v0.11​

  • mythic_spawner.group wird jetzt gelesen: Nur Mitglieder der Gruppe aktivieren den Spawner, criteria wird auf dieser Gruppe geprüft, und jede Gruppe hat ihre eigene Aufwärmzeit und ihren eigenen Cooldown; der Zustand einer Gruppe wird verworfen, wenn kein Mitglied online ist.
  • Die Zeile des MythicMob Kill Objective im Quest-Tracker ist über die Snippets advancedQuest.display und advancedQuest.completed anpassbar.

Release v0.11 · Dokumentation

Enchantment Creator v0.11​

  • Agricultural Harvest liest jetzt das Block-Break-Event und erntet reife Pflanzen um den abgebauten Block (radius auf 8 begrenzt), statt den Block, auf den der Spieler schaut.
  • Agricultural Harvest: neue Felder particle, particleCount, sound, soundVolume und soundPitch.
  • Was ein Spieler in /enchantcreator give eingibt (der Name der Verzauberung), wird in den Antworten wie eingegeben angezeigt und nie als Formatierung gelesen.

Release v0.11 · Dokumentation

TextDisplayDialogue v2.4​

  • Bearbeitbare Texte: Die 15 Snippets werden jetzt gelesen. Layouts, Sprechernamen, Textzeilen, Hinweise, Optionszeilen und Options-Präfixe der Dialoge Spoken, Option und Player option sowie der Cinematic-Untertitel werden in plugins/Typewriter/snippets bearbeitet; die Standardwerte entsprechen der bisherigen Anzeige.
  • Timer-Platzhalter: %typewriter_textdisplaydialogue_timer% ist jetzt in PlaceholderAPI registriert und funktioniert auch außerhalb der Dialoge (0, wenn kein Timer läuft).
  • Zwei weitere bearbeitbare Meldungen: textdisplay.inventory.blocked (Inventar während eines Dialogs gesperrt) und textdisplay.error.init (Anzeige konnte nicht starten); ein leeres Snippet blendet die Meldung aus. Die Ursache eines Initialisierungsfehlers geht jetzt nur noch ins Serverprotokoll: Dem Spieler wird kein Ausnahmedetail angezeigt. Der Player-option-Dialog liest außerdem textdisplay.speaker.format und die Snippets textdisplay.option.* (gleiche Standardanzeige).
  • audioProfile entfernt aus textdisplay_spoken: Das Feld wurde nie gelesen.
  • Nur Paper: Folia wird nicht unterstützt.

Dokumentation

Aus der Dokumentation entfernt​

  • BTC Nameplates: in UiCore aufgegangen (gleiche Entries, /nameplates); alte Seiten leiten auf UiCore weiter.
  • MMO Profile: aufgegeben, nie veröffentlicht; seine Seiten wurden entfernt.

2026-10-02​

MythicMobs NPC v4.9.1​

Korrekturen für Interaktionen, Animationen und Cinematics auf Paper 26.x.

  • Klicks: Der Rechtsklick funktioniert auf Paper 26.x wieder, und LEFT_CLICK sowie ALL lösen jetzt ebenfalls aus. Ein Klick löst den Dialog genau einmal aus, nie zweimal, und /tw reload bricht Klicks nicht mehr mit einer NoClassDefFoundError ab.
  • Play Animation: Eine Aktion mit leerer Geschwindigkeit lief eingefroren auf ihrem ersten Frame; sie läuft jetzt mit normaler Geschwindigkeit. Sie funktioniert außerdem bei NPCs mit deaktiviertem ticking, läuft über den Idle-, Geh- und MythicMobs-Skill-Animationen und wartet auf das Modell, wenn es noch nicht geladen ist.
  • Cinematics in einer anderen Welt: Der NPC einer Entity-Cinematic blieb in der vorherigen Welt des Spielers und erschien daher erst nach mehreren Starts. Er erscheint jetzt schon beim ersten Start, mit seiner Animation.
  • Bewegung in Cinematics: flüssigeres Gehen, kein Hin- und Herwechseln zwischen Idle und Gehen mehr und kein ModelEngine-Flackern aus nächster Nähe mehr.
  • Aufräumen: Unsichtbare NPC-Träger sammeln sich nach Cinematics nicht mehr in der Welt an.

Dokumentation

CraftEngine v1.1​

  • Quest-Zonen-Zielgruppe: dispose() leert immer seinen Zustand und setzt das Dispose-Flag zurück, sodass ein /tw reload keinen Listener mehr hinterlässt, der den vorherigen Extension-Classloader festhält.

Dokumentation

2026-09-19​

GUI v0.18​

  • Die Warnung zu überlappenden Slots nennt jetzt gap und erinnert daran, dass es sich um eine Schrittweite und nicht um einen Abstand handelt: gap: 1 bedeutet benachbarte Slots, nicht einen leeren Slot dazwischen. Ein wiederholter Slot, der mit einer zwischen zwei seiner Kopien platzierten Dekoration kollidiert, ist die häufigste Ursache dieser Warnung.
  • Menüs, die nach der Formel von Quest Codex vor 0.3.0 geschrieben wurden, bei der die angewendete Schrittweite gap + 1 betrug, landen genau hier (siehe Quest Codex v2.14).

Release v0.18 · Dokumentation

Quest Codex v2.14​

  • Eine nie angekündigte, inkompatible Änderung in Quest Codex 0.3.0 wurde dokumentiert. Bis dahin verwendeten Codex-Marker eine eigene Wiederholungsformel, bei der gap ein Abstand war (Schrittweite gap + 1). Seit 0.3.0 verwenden sie die Formel der GUI-Engine, bei der gap eine Schrittweite ist: count: 3, direction: right, gap: 1 ab x=2 ergibt jetzt x=2, 3, 4 statt 2, 4, 6.
  • Ein vor 0.3.0 geschriebenes Menü platziert seine Marker daher einen Slot auseinander und kann mit der Dekoration dazwischen kollidieren. Um den früheren Abstand wiederherzustellen, verdopple die Schrittweite: gap: 1 wird zu gap: 2. Die Semantik der Schrittweite bleibt erhalten.
  • Indizierte Marker setzen jetzt gap zusammen mit count und repeatY zurück, sodass die Menüvalidierung bei ihnen keine verwaiste Wiederholung mehr meldet.
  • Gebaut gegen GUI v0.18.

Release v2.14 · Dokumentation

2026-09-14​

GUI v0.17​

  • Ein gap von 0 stapelt nicht mehr jede wiederholte Kopie auf die Ursprungszelle. Der Web-Editor serialisiert ein unberührtes gap als 0: Ein QUEST_SLOT mit count: 7 und direction: right erzeugte sieben Marker an derselben Position und eine Warnung „Slot overlap“, die du nie geschrieben hattest. gap wird jetzt wie count und repeatY auf mindestens 1 erzwungen.
  • Der Fix steckt im gemeinsamen Code für Slot-Wiederholungen, sodass Quest Codex und Shops ihn ohne Neubau erhalten.

Release v0.17 · Dokumentation

Shops v1.10​

  • Tauschhandel: in Items bezahlte Preise. Der neue priceMode: ITEMS verkauft einen Artikel gegen ein oder mehrere Items statt gegen Währung. itemPrice am Item listet die Kosten auf (Item plus Menge pro gekaufter Einheit); defaultItemPrice am Shop deckt jeden ITEMS-Artikel ab, der keine deklariert. Die Liste des Artikels ersetzt die des Shops, sie wird ihr nie hinzugefügt.
  • Ein ITEMS-Artikel ohne Preis an irgendeiner Stelle wird abgelehnt und protokolliert, nie verschenkt. Die Zahlung wird am gesamten Inventar simuliert, bevor etwas entfernt wird, und der Platz für das gekaufte Item wird zuerst geprüft, da es beim Tauschhandel keine Rückerstattung gibt.
  • Neu: cannotAffordItemsMessage (Tokens {missing}, {amount}) und das Lore-Token {item_price}, eine Zeile pro verlangtem Item. Die Zeilen {buy} und {sell} entfallen bei einem solchen Artikel, und die Platzhalter buy_price / sell_price zeigen einen Strich.
  • „Max. kaufen“ funktioniert bei Tauschhandels-Artikeln. Ein ITEMS-Artikel kann nicht gegen Währung zurückverkauft werden: Sein Verkaufspreis ist null.
  • Neu gebaut gegen GUI v0.17.

Release v1.10 · Dokumentation

2026-09-09​

Puzzle v0.5​

  • Behoben: NoClassDefFoundError bei PuzzleRenderers nach einem Neuladen der Erweiterung. Die Erweiterung registrierte zwei Bukkit-Listener am Engine-Plugin und entfernte sie nie, sodass die alten Instanzen weiter gegen einen geschlossenen Classloader feuerten. Beide werden jetzt beim Herunterfahren der Erweiterung abgemeldet, wodurch sich auch nicht mehr bei jedem Neuladen eine zusätzliche Kopie ansammelt.
  • Eine bereits geplante visuelle Aktualisierung kann beim Herunterfahren der Erweiterung keinen Klassenladevorgang auf dem toten Loader mehr auslösen.

Release v0.5 · Dokumentation

2026-09-08​

Shops v1.9​

  • Neu gebaut gegen die Typewriter-Engine 0.9.0-beta-177.
  • Keine Verhaltensänderung.
  • Gebaut gegen GUI v0.16.

Release v1.9 · Dokumentation

Discord v0.12​

  • Neu gebaut gegen die Typewriter-Engine 0.9.0-beta-177.
  • Keine Verhaltensänderung.

Release v0.12 · Dokumentation

Companion v0.10​

  • Neu gebaut gegen die Typewriter-Engine 0.9.0-beta-177.
  • Keine Verhaltensänderung.

Release v0.10 · Dokumentation

Corpse v0.5​

  • Neu gebaut gegen die Typewriter-Engine 0.9.0-beta-177.
  • Keine Verhaltensänderung.

Release v0.5 · Dokumentation

Custom Biome v0.8​

  • Neu gebaut gegen die Typewriter-Engine 0.9.0-beta-177.
  • Keine Verhaltensänderung.

Release v0.8 · Dokumentation

InputTracker v0.5​

  • Neu gebaut gegen die Typewriter-Engine 0.9.0-beta-177.
  • Keine Verhaltensänderung.

Release v0.5 · Dokumentation

Numerical Storage v0.13​

  • Neu gebaut gegen die Typewriter-Engine 0.9.0-beta-177.
  • Keine Verhaltensänderung.

Release v0.13 · Dokumentation

Puzzle v0.4​

  • Neu gebaut gegen die Typewriter-Engine 0.9.0-beta-177.
  • Keine Verhaltensänderung.

Release v0.4 · Dokumentation

Vanilla v1.4​

  • Neu gebaut gegen die Typewriter-Engine 0.9.0-beta-177.
  • Fortschrittstexte von Objectives (Sammel-, Zähl- und Fact-Prüf-Objectives) werden jetzt mit dem Spieler geparst, sodass Platzhalter darin für diesen Spieler aufgelöst werden.

Release v1.4 · Dokumentation

Vote System v0.8​

  • Neu gebaut gegen die Typewriter-Engine 0.9.0-beta-177.
  • Keine Verhaltensänderung.

Release v0.8 · Dokumentation

Enchantment Creator v0.10​

  • Neu gebaut gegen die Typewriter-Engine 0.9.0-beta-177.
  • Mechanik-Aktionen werden jetzt über den eigenen synchronen Dispatcher von Typewriter statt über den privaten Scheduler-Helfer der Erweiterung eingeplant.

Release v0.10 · Dokumentation

MMO Inventory v0.7​

  • Neu gebaut gegen die Typewriter-Engine 0.9.0-beta-177.
  • Keine Verhaltensänderung.

Release v0.7 · Dokumentation

MythicMobs v0.10​

  • Neu gebaut gegen die Typewriter-Engine 0.9.0-beta-177.
  • Keine Verhaltensänderung.

Release v0.10 · Dokumentation

GUI v0.16​

  • Neu gebaut gegen die Typewriter-Engine 0.9.0-beta-177.
  • Behoben: Bestenlisten-Zeilen, die den Betrachter beschrieben: Eine Zeile für einen platzierten Spieler löst die Vars von Item, Name und Lore jetzt gegen diesen Spieler auf statt gegen den, der das Menü geöffnet hat, sodass nicht mehr jede Zeile die Werte des Betrachters zeigt. Welt-, Gruppen- und Offline-Zeilen fallen auf den Betrachter zurück.

Release v0.16 · Dokumentation

Quest Codex v2.13​

  • Neu gebaut gegen die Typewriter-Engine 0.9.0-beta-177.
  • Keine Verhaltensänderung.
  • Gebaut gegen GUI v0.16.

Release v2.13 · Dokumentation

Tracking v0.11​

  • Neu gebaut gegen die Typewriter-Engine 0.9.0-beta-177.
  • Keine Verhaltensänderung.

Release v0.11 · Dokumentation

2026-09-06​

Shops v1.8​

  • Neu gebaut gegen die Typewriter-Engine 0.9.0-beta-176.
  • Keine Verhaltensänderung.
  • Gebaut gegen GUI v0.15.

Release v1.8 · Dokumentation

Discord v0.11​

  • Neu gebaut gegen die Typewriter-Engine 0.9.0-beta-176.
  • Keine Verhaltensänderung.

Release v0.11 · Dokumentation

Companion v0.9​

  • Neu gebaut gegen die Typewriter-Engine 0.9.0-beta-176.
  • Keine Verhaltensänderung.

Release v0.9 · Dokumentation

Corpse v0.4​

  • Neu gebaut gegen die Typewriter-Engine 0.9.0-beta-176.
  • Das Corpse-Nameplate verwendet jetzt die CustomNameProperty der Engine.
  • Gebaut gegen GUI v0.15.

Release v0.4 · Dokumentation

Custom Biome v0.7​

  • Neu gebaut gegen die Typewriter-Engine 0.9.0-beta-176.
  • Keine Verhaltensänderung.

Release v0.7 · Dokumentation

InputTracker v0.4​

  • Neu gebaut gegen die Typewriter-Engine 0.9.0-beta-176.
  • Keine Verhaltensänderung.

Release v0.4 · Dokumentation

Numerical Storage v0.12​

  • Neu gebaut gegen die Typewriter-Engine 0.9.0-beta-176.
  • Keine Verhaltensänderung.

Release v0.12 · Dokumentation

Puzzle v0.3​

  • Neu gebaut gegen die Typewriter-Engine 0.9.0-beta-176.
  • Keine Verhaltensänderung.

Release v0.3 · Dokumentation

Vanilla v1.3​

  • Neu gebaut gegen die Typewriter-Engine 0.9.0-beta-176.
  • Entity-Aktivitäten (Sichterkennung, Folgen, Umkreisen, Meiden, Hören, Riechen, Patrouillieren und dergleichen) wurden auf den Aktivitäts-Lebenszyklus der 0.9-Engine portiert. Die Entry-Namen bleiben unverändert.

Release v1.3 · Dokumentation

Vote System v0.7​

  • Neu gebaut gegen die Typewriter-Engine 0.9.0-beta-176.
  • Inkompatibel: Feld von vote_action umbenannt. option wird durch optionIndex ersetzt, eine einfache Zahl ab 0. Wähle die Option bei jeder bestehenden vote_action neu aus.
  • Inkompatibel: Feld von vote_message aufgeteilt. message wird durch notVotedMessage und alreadyVotedMessage ersetzt; lass die zweite leer, wenn Spieler, die bereits abgestimmt haben, keine Nachricht erhalten sollen.
  • vote_data verwendet jetzt standardmäßig vote_storage als artifactId: Lege einen festen Namen fest, um Stimmzettel über Neuladevorgänge hinweg zu behalten.
  • Neue Entries vote_config (mit debug und cooldownSeconds), vote_fact und vote_cast_event erscheinen im Editor.

Release v0.7 · Dokumentation

Dialog Menu v0.7​

  • Neu gebaut gegen die Typewriter-Engine 0.9.0-beta-176.
  • Keine Verhaltensänderung.

Release v0.7 · Dokumentation

Enchantment Creator v0.9​

  • Neu gebaut gegen die Typewriter-Engine 0.9.0-beta-176.
  • Keine Verhaltensänderung.

Release v0.9 · Dokumentation

MMO Inventory v0.6​

  • Neu gebaut gegen die Typewriter-Engine 0.9.0-beta-176.
  • Keine Verhaltensänderung.

Release v0.6 · Dokumentation

MythicMobs v0.9​

  • Neu gebaut gegen die Typewriter-Engine 0.9.0-beta-176.
  • Keine Verhaltensänderung.

Release v0.9 · Dokumentation

GUI v0.15​

  • Neu gebaut gegen die Typewriter-Engine 0.9.0-beta-176.
  • Keine Verhaltensänderung.

Release v0.15 · Dokumentation

Quest Codex v2.12​

  • Neu gebaut gegen die Typewriter-Engine 0.9.0-beta-176.
  • Keine Verhaltensänderung.
  • Gebaut gegen GUI v0.15.

Release v2.12 · Dokumentation

Protection v1.3​

  • Veraltet: Dies ist die letzte Version von Protection. Das native Regionssystem von Typewriter ist der Ersatz für neue Installationen.
  • Die Erweiterung bleibt für bestehende Server erhalten und erhält keine neuen Funktionen mehr.
  • Neu gebaut gegen die Typewriter-Engine 0.9.0-beta-176.

Release v1.3 · Dokumentation

Tracking v0.10​

  • Neu gebaut gegen die Typewriter-Engine 0.9.0-beta-176.
  • Keine Verhaltensänderung.

Release v0.10 · Dokumentation

2026-08-29​

GUI v0.14​

  • Fact-Bestenlisten. Die neue Definition gui_leaderboard reiht Spieler, Welten oder Typewriter-Gruppen nach einem oder mehreren Fact-Werten, dargestellt vom neuen Layout leaderboard in jedem open_gui-Pool. Zeilen akzeptieren {rank}, {name}, {score}, {group}, {world} und {score_<fact_id>}.
  • Das neue Artifact gui_leaderboard_population hält die zuletzt bekannten Werte von Offline-Spielern, sodass eine Bestenliste mehr als nur die verbundenen Spieler reiht.
  • Neu: dropOnClose an Lager-Slots droppt den verbleibenden Inhalt beim Schließen, bei Escape und beim Trennen vor die Füße des Spielers.
  • Behoben: temporary-Lager-Slots wurden nie geleert, und ein Shift-Rechtsklick auf ein passendes Cursor-Item nahm etwas heraus, statt einzuzahlen.
  • Ein leeres viewPermission / clickPermission wird nicht mehr als Berechtigung behandelt: Vom Web-Editor gespeicherte, nicht gesetzte Sperren verbargen den Slot oder Tab früher für jeden Nicht-Operator.
  • Die Startvalidierung kennt jetzt das Layout leaderboard und meldet einen Rangbereich außerhalb des Inventars.

Release v0.14 · Dokumentation

Quest Codex v2.11​

  • Neu gebaut gegen GUI v0.14.

Release v2.11 · Dokumentation

Shops v1.7​

  • Neu gebaut gegen GUI v0.14.

Release v1.7 · Dokumentation

Corpse v0.3​

  • Neu gebaut gegen GUI v0.14.

Release v0.3 · Dokumentation

Numerical Storage v0.11​

  • Neu gebaut gegen GUI v0.14.

Release v0.11 · Dokumentation

2026-08-24​

Shops v1.6​

  • Neuer Operator-Befehlsbaum /tw shop admin: Shop-Auflistung, Prüfung von Definitionen, Steuerung von Spielersitzungen, Reset zur Laufzeit, Bestandsverwaltung direkter Items und Transaktionsverlauf.
  • Neue Berechtigung typewriter.shop.admin (nur OP). typewriter.shop.open bleibt standardmäßig für Spieler verfügbar.
  • Ein manueller Reset teilt das Verhalten des automatischen Resets und berechnet den nächsten geplanten Reset neu.
  • Die Registrierung der öffentlichen Befehlsberechtigung wurde korrigiert, sodass Nicht-Operatoren Shops öffnen können.

Release v1.6 · Dokumentation

2026-08-16​

Discord v0.10​

  • Fact-Webhooks. Das neue webhook_fact_event veröffentlicht eine Fact-Änderung an jedes webhook_definition-Ziel, für die Bereiche Spieler, Typewriter-Gruppe und global, mit optionalen Audiences, Wertbedingungen, Nachrichten- und Embed-Vorlagen, Forum-Threads und Rollenerwähnungen. Die Bereiche Gruppe und global entfernen doppelte Callbacks von Spielern, die denselben Fact beobachten.
  • Die Discord-Verknüpfung ist vollständig optional: Ohne discord_link_manifest initialisiert die Erweiterung keine Discord-Bridges mehr und löst keine JDA-Klassen mehr auf.
  • Ein deaktiviertes oder unvollständiges JDA wird vom Client gemeldet, statt auf dem Server-Thread einen NoClassDefFoundError auszulösen.
  • Das öffentliche Release enthält jetzt JDA 6.5.0 und seine Laufzeitabhängigkeiten.

Release v0.10 · Dokumentation

2026-08-21​

GUI v0.13​

  • Live-Slot-Items. itemProvider baut Item, Name und Lore eines Slots zur Renderzeit neu auf. Die Slots eines Layouts werden einmal geparst, und bei jedem Rendern wird dieselbe Liste zurückgegeben, sodass ein Platzhalter oder ein Countdown in einer Lore einmal aufgelöst und dann eingefroren wurde — autoRefreshTicks zeichnete ewig ein identisches Inventar neu.
  • Nur ein Fenster-Öffnen gleichzeitig. GuiFactory.open() wird einen Tick später abgeschlossen, bis dahin ist das obere Inventar also noch die vorherige Ansicht, und jedes Rendern entschied sich, erneut zu öffnen. Das zweite Öffnen schloss das erste Fenster, dieses Schließen wurde als echtes Schließen gelesen, und die Sitzung wurde zerstört, während ihr Menü auf dem Bildschirm blieb — jeder Button war dann tot.
  • Eine Animation mit einer Dauer von 0 ist keine Animation mehr. Das Panel stempelt jedem Slot einen Standard-Animationsblock auf, sodass dekorative Items bei Index 0 gezeichnet wurden und das von ihnen geplante erneute Rendern mit dem ausstehenden Öffnen um die Wette lief.
  • Ein markierter Button behält die eigenen Interaktionen des Autors. Das Ausfüllen von buttonType verwarf früher die gesamte Interaktionsliste, sodass ein Marker, den kein Resolver beanspruchte — falsches Präfix, falsche Schreibweise oder die zuständige Erweiterung auf diesem Bildschirm nicht vorhanden —, zu einem Item wurde, das stumm klickte, ohne Meldung in der Konsole.

Release v0.13 · Dokumentation

Quest Codex v2.10​

  • Menüs, die sich nicht zeichnen lassen, werden beim Start gemeldet, solange die Konsole noch gelesen wird, statt beim Klick stillschweigend zu scheitern. Jede Meldung nennt die Lösung, nicht das Symptom.
  • Einmalige Umwandlung von Pages, die vor dem open_gui-Grundgerüst erstellt wurden. Der Layout-Pool wanderte aus category_menu in einen referenzierten open_gui-Entry, sodass eine nach dem älteren Schema geschriebene Page ein Layout behielt, das die Engine nicht mehr liest: im Panel vollständig konfiguriert, aber ohne Darstellung.
  • Titel von Advancements durchlaufen die echte Umwandlung von MiniMessage in JSON, sodass in einem Quest-Titel geschriebene Formatierung im daraus erzeugten Advancement erhalten bleibt.
  • Erfordert OmniGUI v0.13.

Release v2.10 · Dokumentation

Puzzle v0.2​

  • Neu: activationRadius bei jedem Rätsel, standardmäßig 16 Blöcke. Ein Rätsel wird nur für einen Spieler gerendert und ausgeführt, der sich in der Welt seiner eigenen Positionen befindet, im Umkreis dieses Radius um eine davon. 0 deaktiviert nur die Entfernungsprüfung — die Weltprüfung gilt immer.
  • Behoben: Ein Rätsel wurde in jeder Dimension gezeichnet. Clientseitige Blöcke und Partikel tragen Koordinaten, aber keine Welt, sodass ein in der Oberwelt konfiguriertes Laser-Raster vor dem Spieler im Nether, im End oder in jeder anderen besuchten Welt gemalt wurde.
  • Behoben: Ein Rätsel startete, sobald der Spieler seiner Audience beitrat, egal in welcher Entfernung. Eine Memory-Sequenz konnte ihr gesamtes Muster jemandem vorspielen, der tausende Blöcke entfernt oder in einer anderen Welt war. Die Sequenz startet jetzt, wenn der Spieler das Spielfeld erreicht.
  • Wegbewegen löscht das Spielfeld auf dem Client und bricht ausstehende Animationen ab. Das Versuchsbudget, der Fehlschlag-Cooldown, timeLimit und lifespan werden bei der Ankunft statt beim Beitritt zur Audience aktiviert.

Release v0.2 · Dokumentation

Custom Biome v0.6​

  • Inkompatibel: biome_audience wurde entfernt. Es beantwortete „Befindet sich dieser Spieler in diesem Biom“, indem es das eigene Biom der Welt las, das ein clientseitiges Overlay nie ändert — daher antwortete es für jedes Biom, das diese Erweiterung malt, mit falsch, egal was der Spieler auf dem Bildschirm sah. Keine Konfiguration brachte es zum Laufen.
  • Zwei Entries ersetzen es: biome_overlay_audience (trägt dieser Spieler dieses Overlay) und biome_region_audience (befindet sich dieser Spieler in dieser Region, Welt eingeschlossen). Pages, die biome_audience verwenden, müssen auf einen davon umgestellt werden.
  • Regions-Audiences gleichen neben den Koordinaten auch die Welt ab, sodass eine in einer Welt definierte Region nicht mehr auf dieselben Koordinaten in einer anderen passt. ignoreY macht aus einer Region eine unendliche Säule.
  • /tw biome region <entry> füllt die zwei Ecken eines Entries aus deiner aktuellen WorldEdit-Auswahl, statt Koordinaten von Hand einzutippen.
  • Overlays pro Spieler werden pro Chunk und pro Besitzer verfolgt: Mehrere Overlays können einen Chunk abdecken, eines gewinnt, und das Löschen stellt das echte Biom dieses Chunks wieder her statt der zuletzt gemalten Palette.

Release v0.6 · Dokumentation

Shops v1.5​

  • Neu gebaut gegen OmniGUI v0.13. GuiSlot erhielt einen Parameter itemProvider zur Renderzeit, was den Konstruktor veränderte, gegen den seine Aufrufer linken, sodass die v1.4-JAR in dem Moment, in dem ein Shop auf der aktualisierten GUI-Engine geöffnet wurde, einen NoSuchMethodError warf — das Inventar erschien nie.
  • Keine Verhaltensänderung. Die beiden Versionen gehören zusammen: v1.4 kann nicht auf OmniGUI v0.13 laufen, und v1.5 kann nicht auf v0.12 laufen.

Release v1.5 · Dokumentation

Numerical Storage v0.10​

  • Neu gebaut gegen OmniGUI v0.13, wegen derselben Signaturänderung von GuiSlot: Die v0.9-JAR warf einen NoSuchMethodError, wenn ein Lagermenü geöffnet wurde, und das Menü erschien nie.
  • Keine Verhaltensänderung und keine zweite Migration: Speicher im Schema v2 wird genau so zurückgelesen, wie v0.9 ihn geschrieben hat.

Release v0.10 · Dokumentation

Corpse v0.2​

  • Neu gebaut gegen OmniGUI v0.13, wegen derselben Signaturänderung von GuiSlot: Die v0.1-JAR warf einen NoSuchMethodError, wenn eine Leiche geplündert wurde, sodass das Beutemenü nie geöffnet wurde und die Leiche mit unerreichbarem Inventar dalag.
  • Keine Verhaltensänderung. Gespeicherte Leichen, ihre Inventare und ihre Schutzregeln werden wie zuvor zurückgelesen.

Release v0.2

2026-08-12​

Release v0.2 · Dokumentation

GUI v0.12​

  • Erweiterte Menüs. extendToPlayerInventory an open_gui macht die eigenen 36 Slots des Spielers zu vier zusätzlichen Menüreihen und ergibt eine Fläche mit 10 Reihen. Die Projektion ist rein clientseitig: Das echte Inventar wird nie beschrieben und beim Schließen des Menüs wiederhergestellt.
  • Ein Wurzel-Layout, dessen ID auf _extended endet, aktiviert diese Projektion von selbst, sodass ein gemeinsames Grundgerüst eine normale und eine erweiterte Variante liefern kann, ohne dass jedes Menü das Flag wiederholt.
  • DynamicMarkers wandelt wiederholte Inhaltsmarker vor dem Parsen in indizierte um (QUEST_SLOT#0, QUEST_SLOT#1, …), sodass Erweiterungen nicht mehr jeweils eine private Kopie dieser Semantik führen.
  • Die Slot-Wiederholung ist begrenzt und wird gemeldet: Positionen außerhalb des Rasters werden verworfen und protokolliert, mit der Layout-ID und den abgelehnten Koordinaten. Der Editor warnt, wenn count/gap/repeatY ohne direction gesetzt sind, und meldet einen Fehler bei einer unbekannten.
  • Dokumentiert, dass gap eine Schrittweite ist (1 = benachbart) und dass repeatY auf der senkrechten Achse zu direction wiederholt.
  • Vererbung von mainLayoutId korrigiert: Ein leerer Wert am Kind überstimmte früher den geerbten, sodass eine Page, die ihr gesamtes Grundgerüst erbte, ein nicht existierendes Layout auflöste und leer gerendert wurde — ohne Button, der einen Klick hätte empfangen können.
  • Das Überdecken von Slots hat einen einzigen Eigentümer: Beanspruchen zwei Slots eine Zelle, gewinnt der mit Verhalten, beim Rendern und beim Klick, und die Kollision wird einmal protokolliert.
  • Die Startvalidierung meldet jetzt nur noch, was tatsächlich fehlschlägt. Prüfungen, die das Fehlen optionaler Dinge markierten, wurden entfernt — frame.view.unresolved, slot.outOfFrame, layout.unreferenced —, weil sie in einer Template-Architektur das Design beschreiben, nicht einen Defekt. Was bleibt, benennt eine geschriebene Absicht, die fehlschlug: eine Ansicht, die auf ein fehlendes Layout verweist, ein Slot, der das Inventar verlässt, zwei Slots gleicher Art, die in einem Layout kollidieren.

Release v0.12 · Dokumentation

Shops v1.4​

  • Tab-Modus. baseMenuId macht einen Shop zu einem Tab eines gemeinsamen Menüs: Sein Layout-Pool und seine Ansichten werden unter das Grundgerüst gemischt, mit views, defaultViewId und einem Inhaltsrechteck (contentX, contentY, contentColumns, contentRows). Bleibt es leer, öffnet sich ein Shop genau wie zuvor.
  • Unterstützung für erweiterte Grundgerüste: Ein in einer erweiterten Hülle geöffneter Shop erhält jetzt die Fläche mit 10 Reihen.
  • defaultNameFormat und defaultLoreFormat hinzugefügt. Ein Item ohne Name oder Lore erbt das Format des Shops; ein Item, das seinen eigenen deklariert, behält ihn unangetastet — das Format des Shops füllt Lücken, es überschreibt nie die Formulierung eines Autors.
  • Beide akzeptieren dieselben Tokens: {item}, {buy}, {sell}, {stock}, {stock_max}, {currency}. Eine Lore-Zeile, die einen nicht verfügbaren Preis verlangt, wird verworfen, statt leer gerendert zu werden.
  • ShopTransactionEvent hinzugefügt, das nach Abschluss eines Kaufs oder Verkaufs genau einmal ausgelöst wird. Es ist die Schnittstelle, an die sich andere Erweiterungen anschließen — ein Discord-Relay, ein Audit-Log —, ohne dass Shops von ihnen weiß. Angekündigt, nie abbrechbar.
  • notificationWebhookId hinzugefügt. Shops löst ihn nicht auf und weiß nicht, was ein Webhook ist; die ID reist mit dem Event. Ein Listener, der eine Ausnahme wirft, wird gemeldet, und die Transaktion bleibt bestehen — nichts macht einen bezahlten Kauf rückgängig.
  • Behoben: Ein Layout, dessen Marker alle entfernt wurden, fiel aus dem Pool: Ein Shop-Bildschirm, der vollständig aus Markern bestand, oder ein noch leerer Tab verschwand lautlos.

Release v1.4 · Dokumentation

Quest Codex v2.9​

  • Die Aufwertung des erweiterten Grundgerüsts wird jetzt durch Vererbung statt durch eine feste Layout-ID getragen. Ein Grundgerüst, dessen Wurzel anders als shell_root hieß, verlor früher sein erweitertes Chrome, und jedes im unteren Band verankerte Bedienelement verschwand beim Rendern — und war damit nicht anklickbar.
  • Die Erweiterung wird gegen die GUI-Engine der Release-Welle gebaut statt gegen eine festgeschriebene ältere JAR. Sie war auf v0.11 der Engine eingefroren, sodass jede spätere Ergänzung für sie unsichtbar war.

Release v2.9 · Dokumentation

Discord v0.9​

  • Die Erweiterung heißt jetzt Discord, nicht mehr Community. Verzeichnis, Paket und Erweiterungsname folgen. Entry-Namen bleiben unberührt, da Pages sie serialisieren.
  • DiscordClientService wurde aus der Link-Funktion in ein eigenes Paket verschoben: Chat-Synchronisierung, Konsole und Fehlerberichte verwenden ihn alle, er gehörte also nie zur Konto-Verknüpfung.
  • Webhooks sind Entries. webhook_definition deklariert ein Discord-Ziel einmal und wird überall referenziert. Chat-Synchronisierung, Konto-Verknüpfung und Fehlerberichte trugen früher jeweils ihre eigene Kopie von URL, Benutzername und Avatar — ein Kanalwechsel bedeutete, jedes Manifest zu bearbeiten, ohne Garantie, dass alle auf denselben Ort zeigten.
  • WebhookService ist ein Singleton, den jede Erweiterung injizieren kann. Der HTTP-Client wurde früher von Hand im Initializer gebaut und an jeden Dienst weitergereicht, sodass nichts von außen eine Nachricht zustellen konnte.
  • Fehlerberichte verloren ihren zweiten Ein/Aus-Schalter: Ein leeres Ziel ist der deaktivierte Zustand.
  • Migration. Vor dieser Version geschriebene Pages werden beim ersten Start umgewandelt: ein webhook_definition pro eindeutigem Ziel — identisch konfigurierte Manifeste teilen sich einen Entry — und die Manifeste werden darauf umgestellt. Jede umgeschriebene Page wird zuvor unter backup/community-webhook-v1/ gesichert. Die Umwandlung richtet sich nach der Form, nicht nach einer Versionsnummer, sodass ein zweites Ausführen nichts ändert. Ein Manifest, das ausgeschaltet war, behält seine URL an einem deaktivierten Ziel, statt sie zu verlieren.
  • Shop-Ankündigungen. shop_notification_manifest beschreibt, wie eine Shop-Transaktion aussieht, wenn sie Discord erreicht. Das Ziel fehlt darin bewusst — es gehört zum Shop. Eine Darstellung bedient daher jeden Shop, während jeder weiterhin in seinen eigenen Kanal postet. Erfordert die Erweiterung Shops, hängt aber nicht von ihr ab.

Release v0.9 · Dokumentation

Puzzle v0.1​

  • Erstveröffentlichung.
  • Neun Rätseltypen, jeder ein Typewriter-Objective mit eigener Audience, eigenem Fortschritt und eigenen Triggern: Blockschieben, Opfergaben auf einem Podest, Merkfolgen, Hebelreihenfolgen, Musterplatzierung, Item-Frame-Drehungen, Zahlenschlösser, Laser-Raster und kooperative Druckplatten.
  • Alles, was ein Rätsel zeichnet, ist clientseitig — Blöcke, Geistervorschauen, Hervorhebungen und Laserstrahlen werden an den Spieler gesendet, der es löst. Zwei Spieler können am selben Spielfeld arbeiten, ohne den Fortschritt des anderen zu sehen, und die Welt wird nie verändert.
  • Gemeinsamer Ablauf bei jedem Rätsel: timeLimit, maxAttempts, cooldownOnFail, resetOnWrong, lifespan, Hinweise und die Trigger onStart / onComplete / onFail / onTimeout / onLifespanExpire.
  • isShared schaltet ein Rätsel von privatem Fortschritt auf ein Spielfeld um, das die ganze Gruppe gemeinsam voranbringt.
  • puzzle_chain führt mehrere Rätsel der Reihe nach aus und löst aus, sobald die Abfolge gelöst ist; resetOnFail entscheidet, ob ein Fehler den Spieler zum Anfang zurückschickt.
  • puzzle_artifact speichert den Rätselzustand dauerhaft, sodass ein Neustart mitten in einem Versuch den Fortschritt nicht löscht.
  • puzzle_solved_fact und puzzle_active_fact stellen den Fortschritt dem Rest deiner Inhalte bereit; puzzle_menu listet Rätsel und ihren Zustand im Chat auf.
  • Folia-sicher: Jedes Lesen und Schreiben der Welt läuft in der Region, der das Rätsel gehört.

Release v0.1 · Dokumentation

Corpse v0.1​

  • Erstveröffentlichung.
  • Leichen werden einmal pro Betrachter gerendert, wie die Entity-Displays der Engine selbst, sodass jeder in der Nähe sie sieht, mit Modellanimation und Nameplates, die auf den Backends BetterModel, BTC-Mob-NPC und MythicMobs-NPC ticken.
  • Läuft auf Folia: Das gesamte Scheduling läuft über einen Folia-fähigen Scheduler, und Item-Drops, Erfahrungsorbs und Partikel laufen in der Region, der die Leiche gehört.
  • Das Inventar, das eine Leiche hält, übersteht einen Neustart, einen Absturz oder ein Neuladen. Leichen werden in MySQL gespeichert, sofern verfügbar, sonst im Plugin-Ordner, und beim Start wiederhergestellt.
  • onlyOwnerCanLoot wird durchgesetzt, und das Plündern wird mit der eigenen Entity-ID der Leiche abgeglichen statt mit einem beliebigen Rechtsklick innerhalb von vier Blöcken.
  • Eine Leichen-Definition wird pro Tod nach Welt und Priorität gewählt, und ihre Lebensdauer wird einmalig an dieser Leiche aufgelöst.
  • Die Events on_corpse_spawn, on_corpse_loot und on_corpse_expire laufen durch die Trigger-Pipeline der Engine und veröffentlichen Besitzer, Beute und Position der Leiche als Kontext.
  • displayName, showDisplayName, dropOnInteract, renderArmor, playDeathAnimation und deathAnimationName werden alle berücksichtigt, und die meisten Einstellungen sind dynamische Werte, sodass sie von Platzhaltern und Facts gesteuert werden können.
  • Eine clientseitig gerenderte Leuchtkontur mit konfigurierbarer Farbe und Leichen-Sounds, die pro Spieler in der Nähe statt weltweit gesendet werden.
  • Die Facts has_corpse und corpse_count, die Audience corpse_owner_audience, corpse_waypoint, der Entfernung und Richtung zur eigenen Leiche des Spielers zeigt, corpse_recovery_objective und corpse_admin_command mit den Unterbefehlen list und clear.
  • Ein Beuteschutz-Zeitfenster, nach dem sich eine Leiche für alle öffnet.
  • Das Beutemenü ist ein Menü der GUI-Erweiterung statt eines bloßen Inventars mit eigenem Klick-Listener, sodass es das Klick-Routing, den Menüverlauf und die Projektion des erweiterten Inventars der Engine erbt. Die GUI-Erweiterung ist daher erforderlich.

Release v0.1 · Dokumentation

Custom Biome v0.5​

  • Benutzerdefinierte Biome existieren sofort. Eine Definition wird im Live-Register registriert, sobald sie gespeichert wird, statt erst nach einem Serverneustart. Das generierte Datapack ist nun die Persistenzebene statt der einzige Weg.
  • Behoben: Das generierte Datapack wurde vom Server ignoriert: Sein Pack-Format war auf einen alten Wert fest einprogrammiert, und es wurde in einen Ordner geschrieben, den der Server nie liest.
  • Behoben: baseBiome hatte außer Plains keine Wirkung. Biome werden jetzt aus dem vom Server gehaltenen Basisbiom aufgebaut und mit dessen eigenem Codec kodiert, sodass Mob-Spawns, Features und Carver geerbt statt verloren werden.
  • Behoben: Biomänderungen rissen Löcher in die Welt: Das Aktualisieren sendete Chunk-Entlade-Pakete, auf die der Server nie ein erneutes Senden folgen ließ. Clients erhalten jetzt ein aus den echten Chunk-Daten aufgebautes Biom-Update.
  • Behoben: leave_biome_event wurde nie ausgelöst. Die Listener für Betreten und Verlassen überschrieben gegenseitig ihren Zustand, sodass das Ergebnis von der Registrierungsreihenfolge abhing.
  • Behoben: Das Malen schrieb jeden Block einer Säule statt einen pro 4x4x4-Zelle und tat dies vom aufrufenden Thread aus. Schreibvorgänge werden jetzt in der Region eingeplant, der jeder Chunk gehört.
  • Ein Biom, das der Server nicht serialisieren würde, wird jetzt bei der Registrierung abgelehnt, wobei der fehlerhafte Wert benannt wird. Zuvor wurde es akzeptiert und brach danach jeden Spieler-Login.
  • Biom-Overlays pro Spieler (player_biome_overlay_action): zeige einem Spieler ein anderes Biom, ohne die Welt anzufassen oder jemand anderen zu beeinflussen.
  • Regionsmalen (paint_biome_region_action) mit Snapshots und restore_biome_action, um eine Region zurückzusetzen.
  • biome_transition_cinematic: ändere das Biom, das ein Spieler sieht, im Verlauf einer Cinematic.
  • custom_biome_preset: teile Farben und visuelle Attribute zwischen Biomen, pro Definition überschreibbar.
  • explore_biome_objective und biome_discovery_fact: Quests, die durch den Besuch von Biomen abgeschlossen werden.
  • Jeder lesende Entry erhielt eine Option source, mit der du wählst zwischen dem, was dem Spieler gezeigt wird, und dem, was die Welt enthält.
  • Entfernt: /tw biome setcolor, das Wegwerf-Biome erzeugte, die nie gespeichert wurden, und der Fact-Modus HASH, dessen Wert über Neustarts hinweg nicht stabil war.
  • Die JAR der Erweiterung schrumpfte von 2,6 MB auf 230 KB: Sie bündelt keine Bibliotheken mehr, die der Server bereits bereitstellt.

Release v0.5 · Dokumentation

Enchantment Creator v0.8​

  • levelMode an einer Mechanik vergleicht runOnLevel als exaktes Level, als Minimum (AT_LEAST) oder als Maximum (AT_MOST). Zuvor war nur ein exakter Treffer möglich.
  • eventPhase führt die Aktionen einer Mechanik während des aktuellen Bukkit-Events aus, sodass das Abbrechen des Events oder das Ändern des Schadens tatsächlich wirkt. Setze es auf false für eingereihte Typewriter-Interaktionen.
  • clientSideEffects wurde clientbewusst, mit einer Aktion client_particle_effect: Das benutzerdefinierte BTC-Artifact verwendet den PacketEvents-basierten Renderer, wenn verfügbar, das öffentliche Paper-Artifact einen auf den Spieler begrenzten Bukkit-Fallback.
  • Registry-Schlüssel werden jetzt aus id abgeleitet. Der bisherige name bleibt beim Laden bestehender Pages und Items als Legacy-Alias erhalten, sodass nichts neu erstellt werden muss.
  • Das öffentliche Artifact trägt bewusst keine Abhängigkeit von BTC-CORE oder BTC Velocity: Es läuft auf Paper 1.21.x mit Java 21, gebaut mit JDK 25 mit Java-21-Bytecode als Ziel.

Release v0.8 · Dokumentation

Numerical Storage v0.9​

  • transactionMode in der Transaktionskonfiguration: INTERNAL behält den Pfad über PlaceholderAPI plus Konsolenbefehl bei, VAULT geht direkt über die Vault-Economy-API und ignoriert amountPlaceholder und die Befehlsfelder.
  • addCommand und removeCommand waren verkehrt herum dokumentiert. addCommand schließt eine Einzahlung ins Lager ab und wird vor der persistenten Änderung geprüft; removeCommand schließt eine Abhebung ab.
  • Die Persistenz ist jetzt asynchron, mit Änderungssperren pro Artifact und einem kurzlebigen Cache, sodass gleichzeitige Einzahlungen nicht mehr miteinander konkurrieren können.
  • Lagerdateien wechseln unter einem technischen Artifact-Pfad zur JSON-Schemaversion 2. Eine Legacy-Datei, die auf der alten semantischen artifactId beruht, wird unter backups/numericalstorage/ gesichert und beim ersten Zugriff migriert — sichere das Typewriter-Verzeichnis assets/, bevor du aktualisierst.
  • artifactId ist ein generierter technischer Bezeichner: Lass ihn leer, und Typewriter füllt ihn aus.
  • Platzhalter nehmen ein explizites Definitionsargument entgegen (%typewriter_ns_balance_bank%), was die alte Mehrdeutigkeit der Unterstrich-Trennung beseitigt, wenn eine Definitions-ID selbst Unterstriche enthält.
  • Optionale profilbewusste Schlüssel, wenn die Profiles-Integration installiert ist.

Release v0.9

2026-08-07​

Release v0.9 · Dokumentation

Quest Codex v2.8​

  • Echte Minecraft-Advancements. Der neue Entry advancement_definition schreibt echte Advancements in ein Datapack, das der Erweiterung gehört, sodass sie im Vanilla-Advancement-Bildschirm mit eigenem Tab, eigenem Baum, eigenen Rahmen und Toasts erscheinen. parent verweist auf eine andere Definition, sodass der Baum im Knoteneditor gezeichnet wird.
  • grant_advancement vergibt ein Advancement oder nimmt es zurück und durchläuft die Elternkette, sodass ein Kind nie unter einem nicht erworbenen Elternteil erworben wird.
  • autoGrant lässt ein Advancement im ersten Tick des Spielers erwerben. Bei einer Wurzel gibt das ihrem Tab erst eine Existenz, bevor irgendetwas erworben wurde.
  • Quest-Reihenfolge korrigiert: Eine verschachtelte Quest liest ihre Reihenfolge aus ihrer eigenen Unterkategorie, Quests ohne explizite Reihenfolge fallen nicht mehr zusammen, und das Hinzufügen einer Quest löscht nicht mehr die Reihenfolge, die sie bereits hatte.
  • Quest-Marker werden paginiert, der Sortiermodus gilt pro Spieler, und das Multi-Tracking übersteht eine Wiederverbindung in der vom Spieler gewählten Reihenfolge.

Release v2.8 · Dokumentation

GUI v0.11​

  • Item-Tooltips, mit einem Schalter hideVanillaItemStats am GUI-Konfigurations-Entry.
  • Ein paginiertes Layout kann über die neue Rolle INDICATOR eine Seitenanzeige tragen.
  • Menüs werden beim Serverstart validiert: Ein Slot außerhalb der Grenzen, eine fehlende Vorlage oder ein unbekannter Button-Typ wird in der Konsole benannt, bevor ein Spieler das Menü je öffnet.
  • <shift:N> wird ohne CraftEngine aufgelöst, über die mitgelieferte Magic-Digit-Schrift.
  • count und repeatY sind als Anzahl der Slot-Wiederholungen dokumentiert, nicht als Stackgrößen.

Release v0.11 · Dokumentation

Shops v1.3​

  • Ein Shop kann einen Spieler nicht mehr unter null bringen. Drei voneinander unabhängige Wege erlaubten es.
  • Ein nicht lesbarer Kontostand wird nicht mehr als null gelesen, und formatierte Kontostände wie 12.5k werden geparst.

2026-08-03​

Release v1.3 · Dokumentation

Quest Codex v2.7​

  • Waypoint-Anzeigemodi hinzugefügt: WORLD_DIRECTIONAL projiziert Marker entlang der wahren Richtung ihres Ziels auf eine Kugel um die Augen des Spielers, TARGET_ANCHORED platziert sie am Ziel, und ADAPTIVE blendet zwischen beiden über. HUD_LOCKED bleibt der Standard, sodass bestehende Pages unverändert sind.
  • Konstante scheinbare Größe und winkelbasiertes Entzerren hinzugefügt, damit mehrere Marker lesbar bleiben, wenn ihre Ziele auf einer Sichtlinie liegen.
  • Darstellung mehrerer Ziele in einem einzigen Waypoint-Entry hinzugefügt, mit den neuen Auswahlen ALL und ONE_PER_QUEST für verfolgte Objectives und einer Obergrenze maxTargets.
  • Behoben: Multi-Tracking wurde von Waypoints ignoriert: Objectives sekundärer verfolgter Quests wurden nie aufgelöst, sodass nur die primäre Quest einen Marker erzeugte.
  • quest_codex_locator_bar hinzugefügt, das dieselben aufgelösten Ziele als Punkte der Vanilla-Locator-Bar ab Minecraft 1.21.6 darstellt, ohne eine Entity zu spawnen.

Release v2.7

2026-08-02​

Release v2.7 · Dokumentation

Quest Codex v2.6​

  • Persistente Wiederherstellung für unterbrochene Typewriter-Dialoge und -Cinematics hinzugefügt, einschließlich des letzten Cinematic-Frames. Die Wiederherstellung bewahrt jetzt den erfassten Snapshot, wenn Typewriter nach der Trennung eines Spielers Abbau-Events auslöst.
  • Persistentes Multi-Quest-Tracking mit einem Menü der verfolgten Quests, eigenen Platzhaltern und einer öffentlichen Zwei-Quest-Waypoint-Testkonfiguration hinzugefügt.
  • Reine Text-Waypoints auf dem Client hinzugefügt, mit konfigurierbarem Icon-Text, zentrierten Block-Displays, zentrierter Beacon-Rotation, Ausrichtung auf Zielhöhe, weicher Interpolation, Platzierung nahe dem Ziel und einem konfigurierbaren horizontalen Sichtkegel.
  • Die veralteten Waypoint-Ebenen für Item-Display und Richtungspfeil wurden vor ihrem ersten öffentlichen Einsatz entfernt.

Release v2.6 · Dokumentation

GUI v0.10​

  • Layout-Engines Flex und Composite für responsive Slot-Platzierung und zusammengesetzte Menüebenen hinzugefügt.
  • Wiederverwendbare adressierbare Ansichten mit geerbten Layout-Pools, Standardansichten, Brotkrumen, Ansichts-Tags und optionaler Verlaufsintegration hinzugefügt.
  • Ansichtsbewusste Schemamigration und QuestCodex-Integration sowie Maven-Veröffentlichungsmetadaten hinzugefügt.
  • Behoben: Ansichtswechsel bauen Menüs jetzt ohne Flackern durch Schließen/Öffnen neu auf, und das Schließen des Inventars ist Folia-sicher.

Release v0.10 · Dokumentation

Shops v1.2​

  • Die öffentliche Shop-Erweiterung wurde gegen OmniGUI v0.10 neu gebaut und validiert.
  • Die bestehenden dynamischen Shop-Layouts, den Navigationsverlauf, die Füllerbehandlung, Bestands- und Limitregeln sowie eigene Shop-Button-Handler bewahrt.
  • Von Shop Extension v1.1 ist keine Migration erforderlich.

Release v1.2 · Dokumentation

MythicMobsNPC Extension v0.4.6​

  • Behoben: Eine Skalierungsänderung wurde bei einem Modell ignoriert, das ohne Animation geliefert wird, genauso wie bei der BetterModel-Erweiterung.
  • Vanilla-Mob-Varianten (Katze, Fuchs, Wolf, Dorfbewohner und dergleichen) werden einmal in der Konsole gemeldet, statt stillschweigend ignoriert zu werden: Sie gehören zur MythicMobs-Konfiguration, die die Identität des Mobs besitzt und sie bei jedem Respawn überschreiben würde.
  • Behoben: Ein einzelner fehlschlagender Daten-Entry brach jeden anderen im selben Batch gesendeten Entry ab, wodurch ein NPC keine seiner konfigurierten Daten angewendet bekommen konnte.
  • Der Leuchteffekt und die Ausrüstung werden jetzt am Modell gesteuert, nicht nur am Mob. Der Körper des Mobs ist hinter dem Modell verborgen, sodass das alleinige Setzen am Mob nichts Sichtbares hinterließ.
  • Die Ausrüstung meldet jetzt in der Konsole, wenn das Modell keinen Item-Knochen hat, statt stillschweigend nichts zu tun.
  • Feuer wird jede Sekunde neu gesetzt, sodass es nicht mehr von selbst erlischt, und es meldet jetzt, wenn BetterModel den Körper verbirgt, auf dem die Flammen gezeichnet werden.
  • Behoben: Das Nameplate ruckelte, wenn der NPC läuft oder einem Wegenetz folgt: Das Text-Display interpoliert jetzt zwischen Updates, statt in Schritten zu teleportieren.

BetterModel Extension v1.3​

  • Behoben: Die Modellskalierung wurde bei Modellen ignoriert, die ohne Animation geliefert werden. BetterModel berechnet die Transformation eines Modells nur neu, solange eine Animation läuft, sodass eine zur Laufzeit angewendete Skalierungsänderung ein statisches Modell nie erreichte. Die Erweiterung erzwingt die Neuberechnung jetzt selbst.
  • Derselbe Fix gilt für den Modellversatz, der denselben Codepfad durchlief.
  • Entity-Daten-Entries erreichen das Modell jetzt tatsächlich, statt verworfen zu werden. Unterstützt: Leuchteffekt, Farbe des Trankeffekts (als Item-Tönung gerendert), Helligkeit, Billboard-Beschränkung, Interpolationsdauer, Translation, 3D-Skalierung, Boxgröße, Ausrüstung und brennend.
  • bettermodel_bone_appearance hinzugefügt, eine Version der Einstellungen für Leuchten, Tönung, Glanz und Helligkeit pro Knochen, mit demselben Criteria-System wie bettermodel_bone_visibility.
  • Ausrüstung wird auf die Hand- und Kopf-Item-Knochen von BetterModel abgebildet. Rüstungs-Slots werden einmal in der Konsole gemeldet, statt stillschweigend ignoriert zu werden, weil Torso und Beine eines Modells ihre eigene Geometrie tragen.
  • Eine nicht gleichmäßige 3D-Skalierung warnt jetzt, statt stillschweigend eine einzelne Achse zu verwenden: BetterModel unterstützt nur eine gleichmäßige Skalierung.
  • Jeder Daten-Entry, der für ein 3D-Modell keine Bedeutung hat (Posen, Mob-Varianten, Zuchtzustand ...), wird jetzt einmal in der Konsole gemeldet, statt stillschweigend verworfen zu werden.
  • Leuchten, Tönung, Helligkeit, Billboard, Translation und Ausrüstung überstehen jetzt ein Neuladen des Resource Packs oder einen Respawn, statt auf das Standardaussehen des Modells zurückzufallen.
  • Die Ausrüstung meldet jetzt in der Konsole, wenn das Modell keinen mit ri, li oder ph markierten Knochen hat, statt stillschweigend nichts zu tun — das ist der übliche Grund, warum ein Item nicht erscheint.
  • Feuer wird jetzt an der Interaktions-Entity des NPCs statt an den Modellknochen gezeichnet: Der Client skaliert die Flamme auf die Bounding Box der Entity, und ein Display-Entity hat keine, sodass die Flammen in Größe null gerendert wurden.

Nexo Extension v1.0​

  • Facts hinzugefügt, um zu prüfen, was der Spieler hält, im Inventar trägt, ansieht oder worauf er steht.
  • Variablen hinzugefügt, die die ID und die Eigenschaften des anvisierten Items, Blocks und Möbelstücks liefern.
  • Eine Aktion zum Geben und Entfernen von Items hinzugefügt, die beide mit der Nexo-Item-ID arbeiten.
  • Events für das Aufheben, Droppen und Verbrauchen von Items hinzugefügt.
  • Interaktions- und Schadens-Events für benutzerdefinierte Blöcke und Möbel sowie ein Loot-Drop-Event hinzugefügt.
  • Events geben ihre Daten (Block-ID, Position, Item in der Hand) jetzt an das weiter, was als Nächstes läuft, sodass ein Dialog oder eine Aktion sie direkt verwenden kann.

CraftEngine Extension v1.0​

  • Quest-Objectives funktionieren jetzt. Sie können an eine Quest angehängt werden, speichern den Fortschritt und können beim Abschluss eine Sequence auslösen.
  • Facts für Cooldowns, für gehaltene und getragene Items und für den Block oder das Möbelstück, das der Spieler anvisiert, hinzugefügt.
  • Variablen hinzugefügt, die IDs, Item-Eigenschaften und die Liste der geladenen Inhalte liefern.
  • Eine Aktion zum Geben und Entfernen von Items hinzugefügt, die beide mit der CraftEngine-Item-ID arbeiten.
  • Events für das Aufheben, Droppen und Verbrauchen von Items hinzugefügt.
  • Events für Platzierungsversuche und für Schläge auf Möbel hinzugefügt.
  • Events geben ihre Daten jetzt an das weiter, was als Nächstes läuft.

ItemsAdder Extension v1.0​

  • Block- und Möbel-Events lesen ItemsAdder jetzt direkt, statt aus Vanilla-Events zu raten, was sie zuverlässig macht und eine kurze Verzögerung beseitigt, die einen Trigger verpassen oder wiederholen konnte.
  • Facts für gehaltene und getragene Items, verbleibende Nutzungen, benutzerdefinierte Haltbarkeit, HUD-Sichtbarkeit und Pflanzenwachstum hinzugefügt.
  • Variablen hinzugefügt, die IDs, Item-Eigenschaften und Font-Bilder liefern.
  • Eine Aktion zum Geben und Entfernen von Items hinzugefügt, die beide mit der ItemsAdder-Item-ID arbeiten.
  • Events für das Aufheben, Droppen und Verbrauchen von Items hinzugefügt.
  • Interaktions-Events, ein Event vor der Platzierung von Möbeln und ein Event beim Tod einer benutzerdefinierten Entity hinzugefügt.
  • Events geben ihre Daten jetzt an das weiter, was als Nächstes läuft.

2026-07-26​

Quest Codex v2.5​

  • Persistentes Multi-Quest-Tracking über den Entry quest_codex_tracking_artifact hinzugefügt.
  • Den Kategoriemenü-Modus @tracked und die dynamischen Marker TRACKED_QUEST_SLOT hinzugefügt.
  • /tw codex tracked und den internen GUI-Befehl codex:tracked hinzugefügt.
  • PlaceholderAPI-Platzhalter für die Anzahl verfolgter Quests, das Limit, die primäre Quest, indizierte verfolgte Quests, Status, Objectives und Prioritäten hinzugefügt.
  • Das Layout des öffentlichen Page-Bundles dokumentiert: Haupt-Manifest, statisches Tracking-Artifact, Quest-Definitionen und GUI-Einstellungen.

Release v2.5 · Dokumentation

GUI v0.9​

  • Automatische Schemamigration öffentlicher Pages für Inline-Speicher und ältere Paginierungsfelder hinzugefügt.
  • Das kompakte Schema storagePool / storageId und navigationButtons dokumentiert, das Freezes beim Veröffentlichen im Typewriter-Editor verringert.
  • Das empfohlene Muster referenzierter Menüs für große QuestCodex-Menüs verdeutlicht.

Release v0.9 · Dokumentation