Zum Hauptinhalt springen

Was sind modulare Dungeons?

Modulare Dungeons sind ein Dungeon-System, das in BetterStructures 2.0.0 und später eingeführt wurde. Anstatt als ein festes Schematic zu spawnen, werden modulare Dungeons dynamisch aus kleineren, handgefertigten Modulen zusammengesetzt. Dieser Ansatz ermöglicht große, mehrstöckige Dungeons, die sich in jeder Welt einzigartig anfühlen und sich dennoch nahtlos in Vanilla-Minecraft einfügen.


Wie werden modulare Dungeons generiert

  • Module Jedes Modul wird typischerweise in einer konfigurierbaren Größe gebaut (Standard 16x16x16 Blöcke, obwohl einige Inhaltspakete 32x16x32 oder andere Dimensionen verwenden). Module werden mit standardisierten Verbindungspunkten mittels eines Border-Tag-Systems entworfen, damit sie ohne Lücken oder Überlappungen an andere Module angehängt werden können. Die Dimensionen für einen Dungeon werden mit den Konfigurationsoptionen moduleSizeXZ und moduleSizeY in der Modulgenerator-Konfiguration festgelegt. Module können Korridore, Räume, Treppen oder spezielle Begegnungsräume enthalten.

  • Generierungsprozess Wenn ein modularer Dungeon in einem neuen Chunk generiert wird, verwendet BetterStructures einen Wave Function Collapse (WFC) Algorithmus, um Module aus dem verfügbaren Pool prozedural zusammenzusetzen. Das System wählt zufällig kompatible Module basierend auf Border-Tag-Abgleich aus und "näht" sie zu einem vollständigen Dungeon zusammen. Die Generierungszeit variiert basierend auf Serverleistung, Dungeon-Größe (Radius), vertikalem Bereich, Modulanzahl und Einschränkungskomplexität. Das System verwendet Arbeitslastverteilung, um Server-Lag während der Generierung zu verhindern.

  • Dungeon-Größe Dungeons können so konfiguriert werden, dass sie in verschiedenen Größen mittels des Radius-Parameters generiert werden. Größere Radiuswerte erzeugen deutlich größere Dungeons, die sich über Hunderte von Blöcken erstrecken können. Die meisten Dungeons umfassen mehrere Stockwerke, verbunden durch Treppenmodule oder vertikale Schächte. Vertikale Verbindungen zwischen Stockwerken werden über die up-/down-Einträge der Border-Tag-Map borders eines Moduls erreicht: Die Oberseite eines Moduls verbindet sich mit einem darüberliegenden Nachbarn, wenn ihre gegenüberliegenden Border-Tags übereinstimmen.


Vielfalt und Paketintegration

  • Kostenloses Paket Das Dungeoneering Modules Free Pack enthält 15 Module. Dies funktioniert als ein vollständig spielbarer Dungeon für sich allein.

  • Premium-Paket Das Dungeoneering Modules Premium Pack fügt 38 zusätzliche Module hinzu. In Kombination mit dem kostenlosen Paket verflechten sich beide Sets zu einem einzigen Dungeon-System mit einem viel größeren Modulpool. Dies reduziert Wiederholungen und erhöht die Vielfalt in den generierten Layouts.

  • Props-Integration Wenn du auch das BetterStructures Prop Pack (über FreeMinecraftModels) installierst, zeigen modulare Dungeons benutzerdefinierte Modell-Props in den Bauwerken an, wie in unseren Showcase-Screenshots gezeigt. Ohne das Prop-Paket funktionieren die Dungeons weiterhin normal, aber ohne die dekorativen Modelle.


EliteMobs-Integration

Während der Großteil des Dungeons nur auf BetterStructures und Vanilla-Minecraft-Mobs basiert, bieten einige Dungeons Boss-Begegnungen:

  • Wenn EliteMobs und FreeMinecraftModels beide installiert sind → voller benutzerdefinierter Bosskampf mit Modell.
  • Wenn nur FreeMinecraftModels installiert ist → Boss-Modell erscheint als dekoratives Prop.
  • Wenn keines installiert ist → Bossraum ist einfach leer.

Das System verwendet ein schildbasiertes Spawn-System mit speziellen Tags, um Entitäten und Container in festgelegten Bereichen zu platzieren. Boss-Level skalieren basierend auf der Entfernung vom Dungeon-Zentrum und bieten angemessene Herausforderung in der gesamten Struktur.

Modul-Schildtypen

Schild-TagZeile 1Weitere ZeilenBeschreibung
[spawn][spawn]Entitätstyp in Zeile 2Spawnt eine Vanilla-Entität am Standort des Schilds
[pool: poolname][pool: poolname]Spawnt einen zufälligen Boss aus dem benannten Spawn-Pool
[chest][chest]Platziert eine Truhe am Standort des Schilds
[trapped_chest][trapped_chest]Platziert eine Redstone-Truhe am Standort des Schilds
[barrel][barrel]Platziert ein Fass am Standort des Schilds
[exit][exit]Aufzug-Schematic-Dateinamen in Zeile 2-3Markiert einen Ausgangspunkt mit Aufzug-Schematics nach oben/unten

Wenn EliteMobs nicht installiert ist, aber ein Inhaltspaket es erfordert, erhalten Administratoren eine Warnmeldung.

Dieses Design hält modulare Dungeons kompatibel mit Vanilla-ähnlichen Setups und bietet gleichzeitig tiefere Integration für Benutzer mit zusätzlichen Plugins.

Spawn-Pools

[pool: poolname]-Schilder lesen aus Spawn-Pool-Konfigurationsdateien im Ordner spawn_pools/. Jede Spawn-Pool-Datei ist eine kleine YAML-Konfiguration mit diesen Feldern:

FeldStandardBeschreibung
isEnabledtrueOb dieser Spawn-Pool aktiviert ist
poolStrings[]Liste der EliteMobs-Boss-Dateinamen, die für diesen Pool infrage kommen
minLevel-1Minimales Level für instanzierte Bosse, die aus diesem Pool gespawnt werden (-1 = nicht angegeben)
maxLevel-1Maximales Level für instanzierte Bosse, die aus diesem Pool gespawnt werden (-1 = nicht angegeben)

Wenn ein [pool: poolname]-Schild verarbeitet wird, sucht BetterStructures nach poolname.yml (optional mit dem spawnPoolSuffix des Generators angehängt) und wählt einen zufälligen Boss aus den poolStrings des Pools aus. Bei instanzierten Bossen skaliert das Spawn-Level zwischen minLevel und maxLevel, basierend auf der Entfernung des Bosses vom Dungeon-Zentrum.


MythicMobs-Integration

BetterStructures unterstützt auch die MythicMobs-Integration für benutzerdefinierte Mob-Begegnungen in modularen Dungeons.

Wenn MythicMobs installiert ist, können Strukturpakete benutzerdefinierte MythicMobs als Teil der Dungeon-Generierung spawnen. Dies ermöglicht anspruchsvollere Mob-Begegnungen und Bosskämpfe über das hinaus, was Vanilla-Minecraft oder EliteMobs bieten.

Wenn MythicMobs nicht installiert ist, benachrichtigt das Plugin Administratoren mit entsprechenden Berechtigungen und stellt einen Download-Link bereit.


FMM-Integration

Modulare Dungeons können auch FreeMinecraftModels (FMM) Props während der Erstellung nutzen.

  • Wenn FMM installiert ist, werden alle Props, die vom Modulersteller oder Builder platziert wurden, im generierten Dungeon erscheinen.
  • Props sind rein dekorativ und beeinflussen das Gameplay nicht, verbessern aber die visuelle Treue und Immersion der Umgebung.
  • Wenn FMM nicht installiert ist, wird der Dungeon weiterhin normal generiert, aber diese benutzerdefinierten Props werden nicht angezeigt.

Dies stellt sicher, dass Ersteller Dungeons mit zusätzlichen Details entwerfen können, während die Kompatibilität für Spieler gewahrt bleibt, die FMM nicht installiert haben.



Moduldimensionen

Wichtig: Die Modulgröße ist konfigurierbar, nicht fest.

Jeder Modulgenerator definiert seine Standard-Modulgröße mit:

  • moduleSizeXZ: Breite und Tiefe in Blöcken (Standard: 16)
  • moduleSizeY: Höhe in Blöcken (Standard: 16)

Standardgröße: 16×16×16 Blöcke Häufige Alternative: 32×16×32 Blöcke (in einigen Inhaltspaketen verwendet)

Für Modulersteller:

  1. Prüfe deine Generator-Konfiguration auf moduleSizeXZ- und moduleSizeY-Werte
  2. Baue ALLE Module für diesen Generator genau in diesen Dimensionen
  3. Nicht übereinstimmende Größen verursachen Verbindungsfehler

Benutzerdefinierte Dimensionen festlegen: In deiner Modulgenerator-Konfigurationsdatei:

moduleSizeXZ: 32  # Breite und Tiefe
moduleSizeY: 16 # Höhe

Hinweis: Alle Module in einem Generator müssen dieselben Dimensionen verwenden. Du kannst keine 16×16×16 und 32×16×32 Module im selben Dungeon-System mischen.


Modulgenerator-Konfigurationsfelder

Neben moduleSizeXZ und moduleSizeY unterstützt die Modulgenerator-Konfiguration die folgenden Felder:

FeldStandardBeschreibung
radius1Dungeon-Radius in Chunks
edgesfalseOb Randmodule generiert werden
startModuleListe der Start-Module für die Generierung
minChunkY0Minimale vertikale Chunk-Grenze
maxChunkY0Maximale vertikale Chunk-Grenze
moduleSizeXZ16Breite und Tiefe der Module in Blöcken
moduleSizeY16Höhe der Module in Blöcken
debugfalseAktiviert den Debug-Modus zur Fehlersuche bei der Generierung
useGradientLevelsfalseAktiviert gradientenbasierte Level-Skalierung für gespawnte Entitäten
spawnPoolSuffixSuffix, das an Spawn-Pool-Namen für diesen Generator angehängt wird
isWorldGenerationfalseOb dieser Generator für die Weltgenerierung verwendet wird
treasureFileSchatzkonfigurationsdatei für Truhen in diesem Dungeon
generateLootInBarrelstrueOb Fässer in Modulen mit Beute befüllt werden sollen
barrelTreasureFilenametreasure_barrel_food.ymlSchatzkonfigurationsdatei zum Befüllen von Fässern in diesem Dungeon
validWorldsListe gültiger Weltnamen, in denen der Dungeon generiert werden kann
validWorldEnvironmentsListe gültiger Weltumgebungen
centerModuleAltitude0Höhe für das Zentralmodul

Pro-Modul-Konfigurationsfelder

Jedes einzelne Modul kann die folgenden Konfigurationsfelder definieren:

FeldStandardBeschreibung
isEnabledtrueOb dieses Modul aktiviert ist
weight100Auswahlgewicht für dieses Modul während der Generierung
repetitionPenalty0Strafe bei mehrfacher Auswahl dieses Moduls
noRepeatfalseVerhindert, dass sich dieses Modul wiederholt
enforceVerticalRotationfalseErzwingt vertikale Rotationseinschränkungen
enforceHorizontalRotationfalseErzwingt horizontale Rotationseinschränkungen
minY-4Minimales Y-Level für dieses Modul
maxY20Maximales Y-Level für dieses Modul
biomedefaultBiom-Anforderung für dieses Modul
minecraftBiomenullMinecraft-Biom-Anforderung für dieses Modul
treasureFileSchatzkonfigurationsdatei für Truhen in diesem Modul
generateLootInBarrelstrueOb Fässer in diesem Modul mit Beute befüllt werden sollen
barrelTreasureFilenametreasure_barrel_food.ymlSchatzkonfigurationsdatei zum Befüllen von Fässern in diesem Modul
bordersBorder-Tag-Map, die die Verbindungskompatibilität definiert
cloneConfigKlont Einstellungen aus einer anderen Modul-Konfigurationsdatei
compoundModuleVerknüpft dieses Modul als Teil eines zusammengesetzten (mehrteiligen) Moduls
isAutomaticallyPlacedtrueOb das Modul während der Generierung automatisch platziert wird

Hinweis: Welche Seiten eines Moduls sich mit Nachbarn verbinden können, wird vollständig durch die Border-Tag-Map borders gesteuert, nicht durch einen "passable"-Schalter pro Seite. Zwei Module verbinden sich an einer Seite, wenn ihre gegenüberliegenden Border-Tags übereinstimmen.