Zum Hauptinhalt springen

Dungeon-Paketersteller

webapp_banner.jpg

Was sind Dungeons?​

Informationen zu Dungeons, einschließlich Informationen zu vorgefertigten Dungeons, findest du hier.


Was ist der Dungeon-Paketersteller?

Das Paketformat kann Dungeons, Events, Modelle, Arenen, NPCs, Gegenstände und andere EliteMobs-Inhalte verteilen. Der Exportbefehl sammelt nur einen Teil der vom Importer unterstützten Ordner. Ergänze die übrigen benötigten Dateien vor der Weitergabe manuell.

Warum Dungeon-Pakete verwenden?
  • Instanzierte Dungeons! Instanzierte Dungeons lassen sich ausschließlich über das Dungeon-Paketsystem erstellen.
  • Sichere Backups von Minidungeons! Wenn du ein Dungeon-Paket erstellst, kannst du es jederzeit und aus jedem beliebigen Grund auf jedem gewünschten Server bereitstellen und erneut bereitstellen.
  • Einfach an- und ausschalten! Du kannst jederzeit /em setup ausführen und Dungeon-Pakete vorübergehend oder dauerhaft an- und ausschalten.
  • Einfach zu teilen! Wenn du deine Kreationen teilen möchtest, lassen sich Dungeon-Pakete einfach zippen und an andere schicken. Es gibt einen Discord-Raum, der Community-Kreationen gewidmet ist, falls dich das interessiert!
  • Teleports! Installierte Kampfinhalte mit listedInTeleports: true erscheinen auf der Teleport-Seite von /em, außer Verzauberungsherausforderungen. Die Zielkoordinaten musst du selbst konfigurieren.

Dungeons erstellen

Mit den folgenden Einstellungen wird eine Konfigurationsdatei erstellt, die in den Ordner content_packages gehört. Diese Einstellungen dienen speziell dem Erstellen von Dungeons und sind nicht erforderlich, wenn du den Dungeon-Paketersteller lediglich zum Verteilen von Nicht-Dungeon-Inhalten wie einem Gegenstands- oder Event-Paket nutzen möchtest.

Erforderliche Plugins​

Keine. Der Dungeon-Schutz wird von EliteMobs selbst übernommen: protect: true wendet die eigene Schutz-Suite von EliteMobs pro Welt auf die Welt des Pakets an, ohne dass ein Regionen-Plugin beteiligt ist.

WorldGuard bleibt eine optionale weiche Abhängigkeit. Ist es installiert, werden seine EliteMobs-spezifischen Regionsflags verfügbar, es wird jedoch nicht benötigt, damit ein Dungeon-Paket geschützt ist.

Einen Dungeon Schritt für Schritt erstellen​

EliteMobs hatte früher zwei Hauptarten von Dungeons: weltbasierte und schematicbasierte.

Schematicbasierte Dungeons waren mit einem Schematic-Bauwerk verknüpft. Sie werden inzwischen ausgemustert und nicht mehr unterstützt.

Alle EliteMobs-Dungeons sind jetzt weltbasiert.

Erforderliche pack.meta-Datei​

Dein Dungeon-Paket sollte eine pack.meta-Datei enthalten -- schlicht eine umbenannte .txt-Datei mit der Endung .meta. Diese Datei sollte nur ein einziges Wort enthalten, das angibt, für welches Plugin das Paket bestimmt ist (z. B. "elitemobs", kleingeschrieben). Die pack.meta-Datei muss im Stammverzeichnis deines Pakets liegen, neben allen anderen Ordnern.


Globale Werte​

Die folgenden Werte gelten für alle Dungeons

isEnabled​

Legt fest, ob das Dungeon-Paket aktiviert ist.

SchlüsselWerteStandardPflicht
isEnabledBooleantrue✅
Beispiel
isEnabled: true

name​

Legt den Namen des Inhalts fest. Unterstützt Farbcodes.

SchlüsselWerteStandardPflicht
nameZeichenkettekeiner✅
Beispiel
name: '&c[lvl 999] &aThe Green Dungeon'

create_packager_name.jpg


contentType​

Legt den Typ des Dungeons fest.

SchlüsselWerteStandardPflicht
contentTypeOPEN_DUNGEON / INSTANCED_DUNGEON / DYNAMIC_DUNGEON / HUB / META_PACKAGE / ITEMS_PACKAGE / EVENTS_PACKAGE / MODELS_PACKAGEkeiner✅
Beispiel
contentType: INSTANCED_DUNGEON

SCHEMATIC_DUNGEON wird nicht mehr unterstützt

Die Konfiguration erkennt diesen alten Wert noch, aber der Lader erzeugt daraus keinen Dungeon mehr. Verwende einen der oben aufgeführten weltbasierten Typen.

customInfo​

Beibehaltenes Informationsfeld, das weiterhin gelesen, gespeichert und übersetzt wird. Das aktuelle Menü /em setup verwendet setupMenuDescription; Änderungen an customInfo ändern dessen Beschreibung nicht.

SchlüsselWerteStandardPflicht
customInfoString Listkeine✅
Beispiel
customInfo:
- '&aThe best dungeon.'
- '&aMade by: CoolPlayer'

create_packager_custominfo.jpg


setupMenuDescription​

Legt die Beschreibung dieses Pakets im Menü /em setup fest. Unterstützt Farbcodes.

SchlüsselWerteStandardPflicht
setupMenuDescriptionString Listkeine❌
Beispiel
setupMenuDescription:
- '&2A cool dungeon for levels 10-20!'
- '&2Features 3 bosses and custom loot!'

Legt den manuellen Download-Link fest, den /em setup bei fehlenden Inhalten ohne Nightbreak-Paketkennung anzeigt. Dieses Feld allein aktiviert keine automatischen Nightbreak-Downloads oder Updates für eigene Pakete.

SchlüsselWerteStandardPflicht
downloadLinkStringleere Zeichenkette❌
Beispiel
downloadLink: http://www.example.org

create_packager_downloadlink.jpg


dungeonSizeCategory​

Legt die Größenbezeichnung des Pakets fest. Ob es instanziert ist, entscheidet contentType; diese Kategorie ändert den Betriebsmodus nicht.

SchlüsselWerteStandardPflicht
dungeonSizeCategorySpeziell [1]LAIR❌
Beispiel
dungeonSizeCategory: MINIDUNGEON

create_packager_size.jpg

Speziell [1]

Tabelle ausklappen
SchlüsselBeschreibung
LAIRLairs sind eine Art kleiner Dungeon, der sich auf einen großen Bosskampf konzentriert.
SANCTUMInstanziertes Gegenstück zu einem Lair, konzentriert auf einen großen Bosskampf.
MINIDUNGEONMinidungeons sind eine Art mittelgroßer Dungeon, der üblicherweise 3-15 Minibosse und einen großen Boss enthält sowie viele "Trash"-Mobs, die von Spielern für Münzen und Ausrüstung "gefarmt" werden sollen.
DUNGEONInstanziertes Gegenstück zu einem Minidungeon. Eine Gruppe kämpft sich durch kleinere Gegner und Minibosse bis zum Endboss.
RAIDErkannte Größenbezeichnung. Aktiviert weder ein eigenes Raidsystem noch einen gesonderten Inhaltstyp.
ADVENTUREAdventures sind vollständige Abenteuerkarten. Sie enthalten Questreihen, NPCs, große Mengen an Minibossen und Bossen und können sogar eigene Arenen oder Dungeons in sich tragen.
ARENAArenen sind wellenbasierte Überlebensbereiche, in denen Spieler für das Besiegen von Wellen belohnt werden.
OTHERAlles andere, das nicht bereits in eine der vorherigen Kategorien fällt.
REALMBezeichnung für große Welten mit umfangreichen Inhalten. contentType entscheidet, ob die Welt geteilt oder instanziert ist.

Ausführlichere Beschreibungen findest du unter Dungeons


protect​

Legt fest, ob EliteMobs die Welt bei MagmaCores Schutzsystem registriert. Es blockiert Blockabbau und Platzierung durch Spieler, Verbrennen, Entzünden, die meisten Formen des Blockverfalls, Laubzerfall, Knochenmehl, das Leeren von Eimern, Schilderbearbeitung, unterstützte Behälterzugriffe außer registrierten Schatztruhen, das Öffnen von Türen, Falltüren und Zauntoren, Interaktionen mit Dracheneiern und Blumentöpfen, Änderungen an Rahmen und Rüstungsständern, Blockänderungen durch Entitäten sowie Kreaturenspawns ohne Grund CUSTOM. Gefrorenes Eis kann weiterhin schmelzen. Von Spielern geworfene Wurf- und Verweiltränke des Webens werden ebenfalls blockiert. allowExplosionBlockDamage, allowLiquidFlow und allowElytra steuern die jeweiligen Schutzfunktionen. Globale Dungeon-Einstellungen regeln verbündeten Beschuss und Multiplikatoren für Umgebungsschaden. Mit preventFlyToggleInDungeons: true in CombatTag.yml (Standard) hindert der Schutz außerdem Spieler ohne Operator-Rechte daran, mit dem Fliegen zu beginnen. Administratoren können /em protection bypass für Spieleraktionen verwenden, die diese Ausnahme unterstützen.

Mit protect: false wird dieses Schutzsystem nicht registriert. Die Welt gehört weiterhin zu EliteMobs: Dungeon-Zuordnung, Instanzverwaltung, Kampfsysteme und andere Dungeon-Funktionen bleiben aktiv. Der Dungeon wird dadurch nicht zu einer gewöhnlichen Überlebenswelt.

SchlüsselWerteStandardPflicht
protectBooleantrue❌
Beispiel
protect: true

dungeonVersion​

Legt die Paketversion fest. Erhöhe sie in der mit jedem Update ausgelieferten Konfiguration. Nightbreak vergleicht diesen Wert für geeignete installierte Pakete. Das Versionsargument von /em package schreibt ihn nicht.

SchlüsselWerteStandardPflicht
dungeonVersionGanzzahl0❌
Beispiel
dungeonVersion: 1

playerInfo​

Legt die Beschreibung in den Teleport-Menüs als Buch, Inventar oder Dialog fest. Unterstützt Farbcodes und die Platzhalter $bossCount, $lowestTier und $highestTier. Das Paket muss für das Menü geeignet sein und listedInTeleports: true haben.

SchlüsselWerteStandardPflicht
playerInfoZeichenkettekeine❌
Beispiel
playerInfo: 'Difficulty: &a1-man easy content!'

create_packager_playerinfo.jpg


regionEnterMessage​

Beibehaltenes Feld für eine Eintrittsnachricht, das weiterhin gelesen, gespeichert und übersetzt wird. Die aktuellen Eintrittslistener lesen es nicht; das Setzen versendet daher keine Nachricht.

SchlüsselWerteStandardPflicht
regionEnterMessageStringkeine❌
Beispiel
regionEnterMessage: '&aYou have entered the dungeon!'

create_packager_enter.jpg


regionLeaveMessage​

Beibehaltenes Feld für eine Austrittsnachricht, das weiterhin gelesen, gespeichert und übersetzt wird. Die aktuellen Austrittslistener lesen es nicht; das Setzen versendet daher keine Nachricht.

SchlüsselWerteStandardPflicht
regionLeaveMessageStringkeine❌
Beispiel
regionLeaveMessage: '&aYou have left the dungeon!'

create_packager_leave.jpg


hasCustomModels​

Kennzeichnet, dass das Dungeon-Paket eigene Modelle mitbringt (für ModelEngine oder FreeMinecraftModels). Der Schlüssel wird gelesen und geschrieben, aber nichts in EliteMobs wertet ihn derzeit aus -- Modelle werden allein deshalb installiert, weil der Ordner models im Paket vorhanden ist. Betrachte ihn als Dokumentationsmarkierung.

SchlüsselWerteStandardPflicht
hasCustomModelsBooleanfalse❌
Beispiel
hasCustomModels: false

dungeonConfigFolderName​

Legt den Namen der Ordner fest, die für Dateien dieses Dungeons verwendet werden.

Pflicht für instanzierte Dungeons!

SchlüsselWerteStandardPflicht
dungeonConfigFolderNameStringkeiner❌
Beispiel
dungeonConfigFolderName: my_dungeon_folder

anchorPoint​

Ein Bezugspunkt für relative Koordinaten aus der Schematic-Ära. Der Paketparser liest anchorPoint und calculatedRotation weiterhin, aber kein aktueller Befehl und keine aktuelle Funktion verwendet sie. Der Befehl /em relativecoords, der vom Anker aus gemessen hat, wurde in EliteMobs 9.0.5 entfernt. Positioniere Bosse, Truhen und NPCs stattdessen über die Standorte in ihren eigenen Dateien.

SchlüsselWerteStandardPflicht
anchorPointLocationkeiner❌
calculatedRotationInteger (Grad)0❌
Beispiel
anchorPoint: my_dungeon_world,100,64,100,0,0
calculatedRotation: 0

contentLevel​

Legt das Inhaltslevel fest, das der Dungeon im EM-Menü anzeigen soll.

SchlüsselWerteStandardPflicht
contentLevelGanzzahl0❌
Beispiel
contentLevel: 20

enchantmentChallenge​

Markiert das Paket als Verzauberungsherausforderung für einen Spieler. Es wird in einer eigenen Liste registriert und aus dem gewöhnlichen Teleport-Menü ausgeschlossen. Es benötigt eine gültige Instanzkonfiguration mit Weltvorlage, Startpunkt und erreichbaren Zielen.

SchlüsselWerteStandardPflicht
enchantmentChallengeBooleanfalse❌
Beispiel
enchantmentChallenge: false

song​

Legt fest, ob der Dungeon einen Soundtrack haben soll.

SchlüsselWerteStandardPflicht
songZeichenkettekeiner❌

name= Klangkennung für den Client, zum Beispiel elitemobs:dark_cathedral.ambient, nicht der Pfad einer Audiodatei. length= Die Länge des Soundtracks in Millisekunden. EliteMobs rechnet dies intern in Ticks um, daher muss es die tatsächliche Dauer des Klangs sein, sonst startet der Titel zu früh oder zu spät neu.

Die beiden Teile werden durch ein Leerzeichen getrennt. Ein einzelner Titel wiederholt sich. Bei zwei Titeln mit -> läuft der erste einmal und anschließend der zweite in einer Schleife; beide verwenden name=/length=. Der Client muss den Klang bereits in seinem Ressourcenpaket haben. Diese Einstellung verteilt kein Ressourcenpaket.

Beispiel
song: name=elitemobs:dark_cathedral.ambient length=93830

Form mit zwei Titeln:

song: name=elitemobs:intro length=12000->name=elitemobs:dark_cathedral.ambient length=93830

dungeonLockoutMinutes​

Legt die Belohnungssperre je instanziertem Boss für den Spieler und betroffene Gruppenmitglieder in Minuten fest. Sie verhindert nicht den Eintritt in den Dungeon. Standard ist 4320, also 72 Stunden; 0 deaktiviert sie für dieses Paket. Betroffene Spieler erhalten während der Sperre auch keine Skill-EP von diesem Boss.

SchlüsselWerteStandardPflicht
dungeonLockoutMinutesInteger4320❌
Beispiel
dungeonLockoutMinutes: 1440

containedPackages​

Legt die Liste der Dungeon-Pakete fest, die in einem Meta-Paket enthalten sind. Dies wird verwendet, wenn contentType auf META_PACKAGE gesetzt ist, um alle Unterpakete aufzuführen, die zum größeren Dungeon gehören.

SchlüsselWerteStandardPflicht
containedPackagesString Listkeine❌
Beispiel
containedPackages:
- my_dungeon_adventure.yml
- my_dungeon_sanctum.yml
- my_dungeon_boss_fight.yml

customItemFilenames​

Legt die Gegenstandsdateien eines Pakets fest. Eine vorhandene Liste, auch eine leere, setzt contentType auf ITEMS_PACKAGE. Danach prüft der Lader Event- und Modelllisten, die diesen Typ überschreiben können. Definiere nur die zum Paket passende Liste.

SchlüsselWerteStandardPflicht
customItemFilenamesString Listkeine❌
Beispiel
customItemFilenames:
- my_custom_sword.yml
- my_custom_armor.yml

customEventFilenames​

Legt die Event-Dateien eines Pakets fest. Eine vorhandene Liste, auch eine leere, setzt contentType nach der Gegenstandsprüfung auf EVENTS_PACKAGE. Eine Modellliste kann diesen Typ noch überschreiben.

SchlüsselWerteStandardPflicht
customEventFilenamesString Listkeine❌
Beispiel
customEventFilenames:
- my_custom_event.yml

modelNames​

Legt die Modellnamen eines Pakets fest. Eine vorhandene Liste, auch eine leere, setzt contentType nach den Gegenstands- und Event-Prüfungen auf MODELS_PACKAGE.

SchlüsselWerteStandardPflicht
modelNamesString Listkeine❌
Beispiel
modelNames:
- my_custom_model

Beibehaltene Felder früherer Schematic-Dungeons​

relativeBossLocations, relativeTreasureChestLocations, schematicName, defaultSchematicRotation, corner1 und corner2 bleiben für alte Dateien im Paketparser. Sie platzieren keine Inhalte aktueller geteilter oder instanzierter Weltpakete. Verwende die Positionen aus Boss- und Truhendefinitionen sowie die Weltvorlage. anchorPoint und calculatedRotation bleiben auf dieselbe Weise erhalten; siehe anchorPoint.

Übersetzbare Schlüssel​

Sechs der oben genannten Werte werden beim Laden des Pakets beim Übersetzungssystem registriert: name, customInfo, playerInfo, regionEnterMessage, regionLeaveMessage und der name jedes Eintrags in difficulties. Auf einem Server mit einer nicht englischen Sprache werden diese in der CSV-Datei der jeweiligen Sprache nachgeschlagen, und der Text, den du in der YAML schreibst, ist das, womit die englische Spalte abgeglichen wird. Schreibe sie auf Englisch, wenn dein Paket übersetzbar sein soll.


Weltbasierte Dungeon-Pakete​

Die folgenden Werte gelten nur für weltbasierte Dungeons.


worldName​

Legt den Namen der Welt fest, die gepackt werden soll.

SchlüsselWerteStandardPflicht
worldNameStringkeiner✅
Beispiel
worldName: my_minecraft_world

wormholeWorldName​

Legt eine zweite Welt fest, die das Paket mit derselben Umgebung und denselben Schutzeinstellungen wie die Hauptwelt lädt. Die Verbindungen zwischen den Welten musst du gesondert erstellen; der Name erzeugt keine Portale.

SchlüsselWerteStandardPflicht
wormholeWorldNameStringkeiner❌
Beispiel
wormholeWorldName: my_minecraft_world_wormhole

environment​

Legt die Umgebung der Welt fest.

SchlüsselWerteStandardPflicht
environmentUmgebungNORMAL❌
Beispiel
environment: NORMAL

teleportLocation​

Legt den Eintrittspunkt eines geteilten Dungeons oder den Wartebereich einer Instanz fest. Bei einer Instanz wird die Welt dieser Position durch die Kopie ersetzt. Ohne Warteposition verwendet der Code den Startpunkt. Das Format ist Welt,x,y,z,yaw,pitch.

SchlüsselWerteStandardPflicht
teleportLocationStringkeine✅
Beispiel
teleportLocation: my_minecraft_world,-1.5,68,0.5,0.0,0.0

allowExplosionBlockDamage​

Erlaubt oder verhindert Explosionsschäden an Blöcken in einer geschützten Dungeon-Welt. Das Aktivieren macht Vanilla-Explosionen nicht zu Elite-Explosionen. EliteMobs stellt erfasste Elite-Explosionen wieder her, wenn doExplosionRegen aktiviert ist. Die Wiederherstellung beginnt nach einer Minute und verarbeitet einen erfassten Block pro Tick; die Gesamtdauer hängt vom beschädigten Bereich ab. Andere Explosionen können dauerhafte Schäden hinterlassen.

SchlüsselWerteStandardPflicht
allowExplosionBlockDamageBooleanfalse❌
Beispiel
allowExplosionBlockDamage: true

allowLiquidFlow​

Legt fest, ob Wasser und Lava bei aktivem Weltschutz fließen dürfen. Das erlaubt nicht das Leeren von Eimern, das der Schutz separat behandelt.

SchlüsselWerteStandardPflicht
allowLiquidFlowBooleantrue❌
Beispiel
allowLiquidFlow: false

allowElytra​

Legt fest, ob Spieler in der geschützten Paketwelt mit Elytra gleiten dürfen. Bei false verhindert der Schutz den Gleitbeginn und beendet das Gleiten beim Weltwechsel oder bei Bewegungen. Er verwendet dafür keine Prüfung in jedem Tick. Administratoren mit aktivem Schutz-Bypass sind ausgenommen.

SchlüsselWerteStandardPflicht
allowElytraBooleanfalse❌
Beispiel
allowElytra: true

listedInTeleports​

Legt fest, ob ein installiertes Kampfpaket im Teleport-Menü von /em erscheint. false blendet den Eintrag aus, verhindert aber keinen Zugang über andere Wege oder Befehle. Verzauberungsherausforderungen sind unabhängig davon ausgeschlossen.

SchlüsselWerteStandardPflicht
listedInTeleportsBooleantrue❌
Beispiel
listedInTeleports: false

teleportLocationOffset​

Legt einen Versatz für die Teleport-Position des Dungeon-Pakets fest.

Dieser Schlüssel wird ausgewertet, aber derzeit nicht verwendet -- nichts in EliteMobs liest den resultierenden Versatz aus, das Setzen hat also keine Auswirkung darauf, wo Spieler landen. Passe stattdessen teleportLocation selbst an.

SchlüsselWerteStandardPflicht
teleportLocationOffsetStringkeiner❌
Beispiel
teleportLocationOffset: my_minecraft_world,0.5,2,0.5,0.0,0.0

Instanzierte Dungeons​

Instanzierte Dungeons erzeugen jedes Mal eine neue Welt, wenn eine Gruppe von Spielern einen Dungeon abschließen möchte, und löschen sie anschließend wieder. Damit das korrekt funktioniert, musst du einen Ordner mit dem Namen aus dungeonConfigFolderName in den Konfigurationsordner world_blueprints von EliteMobs legen.

Lege eine exportierte Dimension unter world_blueprints/<dungeonConfigFolderName>/<worldName>/ ab. Die Prüfung verlangt genau einen Geländepfad mit .mca-Regiondateien, entweder an der Wurzel oder im passenden alten Unterordner DIM-1/DIM1. Vollständige alte Welten, reine Geländeexporte und moderne Dimensionsexporte sind zulässig. Nicht jedes unterstützte Format benötigt level.dat. Ein serverweiter dimensions-Container, gemischte Strukturen, Verknüpfungen und nicht reguläre Dateien werden abgelehnt. Moderne Exporte benötigen einen Server mit modernem Speicherformat.

Arbeite mit einer entladenen Exportkopie und bewahre Gelände, Entitäten, Interessenpunkte und Daten dieser Dimension. Beim Klonen werden uid.dat, session.lock und Papers Identitätsmetadaten der Dimension ausgelassen. Die Vorlage selbst wird nicht verändert. Instanzwelten verwenden das Namensmuster <worldName>_<number>. Beim Start bleiben Überreste nach Abstürzen erhalten; der laufende Instanz-Lebenszyklus räumt nur selbst erstellte Welten auf. Prüfe vor dem manuellen Entfernen eines Überrests dessen Herkunft und ob eine aktive Instanz ihn nutzt.

Die folgenden Werte gelten nur für instanzierte Dungeons. Beachte, dass alle instanzierten Dungeons Welt-Dungeons sind und daher auch die Werte von Welt-Dungeons verwenden.


startLocation​

Legt die Teleport-Position des Startpunkts des instanzierten Dungeons fest. Dorthin werden die Spieler teleportiert, wenn sie den instanzierten Dungeon mit /em start beginnen. Ein instanziertes oder dynamisches Paket ohne gültige startLocation wird nicht geladen.

SchlüsselWerteStandardPflicht
startLocationStringkeine✅
Beispiel
startLocation: my_minecraft_world,10.5,70,10.5,0.0,0.0

permission​

Legt die Berechtigung fest, die zum Betreten der Dungeon-Instanz erforderlich ist.

SchlüsselWerteStandardPflicht
permissionStringkeine❌
Beispiel
permission: elitedungeon.mypermission

minPlayerCount​

Legt die Mindestanzahl an Spielern fest, die zum Starten eines Dungeons erforderlich ist.

SchlüsselWerteStandardPflicht
minPlayerCountInteger1❌
Beispiel
minPlayerCount: 1

maxPlayerCount​

Legt die maximale Anzahl an Spielern fest, die in einem Dungeon zugelassen ist.

SchlüsselWerteStandardPflicht
maxPlayerCountInteger5❌
Beispiel
maxPlayerCount: 5

dungeonObjectives​

Legt die Ziele für den Dungeon-Abschluss fest. Alle müssen während des Instanzzustands ONGOING erfüllt werden, damit der Sieg ausgelöst wird.

SchlüsselWerteStandardPflicht
dungeonObjectivesString Listkeine✅
Beispiele

Verwende ausdrückliche Tötungsziele: filename=boss.yml:amount=X. Ohne amount genügt ein Tod. Es zählen nur Bosstode aus dieser Instanz, anhand des Dateinamens ihrer ersten Phase.

dungeonObjectives:
- filename=dungeon_final_boss.yml
- filename=dungeon_miniboss_one.yml
- filename=dungeon_miniboss_two.yml
dungeonObjectives:
- filename=dungeon_guard.yml:amount=5

Die Kurzform boss.yml ohne filename= wird für ältere Pakete als filename=boss.yml akzeptiert. Verwende in neuen Paketen die ausdrückliche Form.

Der Dateiname muss auf .yml enden, und amount muss eine ganze Zahl von mindestens 1 sein. Jedes Feld darf nur einmal vorkommen. Ein unbekanntes Feld, ein fehlender Dateiname oder eine ungültige Menge verhindert das Laden des Pakets, und die Fehlermeldung in der Konsole nennt die Datei und das Ziel.

Prozentziele werden nicht unterstützt

Prozentziele werden nicht unterstützt und beim Laden der Dungeon-Definition abgelehnt. Verwende ausdrückliche Tötungsziele wie filename=boss.yml:amount=2. Ein ungültiges erforderliches Ziel führt zur Ablehnung der Definition; es wird nie stillschweigend aus den Abschlussbedingungen weggelassen.


difficulties​

Legt die Liste der Schwierigkeitsgrade im instanzierten Dungeon fest.

Pflicht für instanzierte Dungeons!

SchlüsselWerteStandardPflicht
difficultiesSpeziell [1]keine❌
Beispiele
difficulties:
- levelSync: 25
id: 0
name: normal
- levelSync: 20
id: 1
name: hard
- levelSync: 15
id: 2
name: mythic

create_packager_difficulty.jpg

Speziell [1]

Tabelle ausklappen

Das Festlegen von Schwierigkeitsgraden für instanzierte Dungeons erzeugt beim Betreten des Dungeons automatisch verschiedene Schwierigkeitsoptionen.

Verwende id für Schwierigkeitsfilter in Kräften und Beute. name ist die übersetzbare Bezeichnung für Spieler. Ausdrückliche IDs 0, 1 und 2 werden für Normal, Hard und Mythic empfohlen. Verwendet das Paket Easy/Medium/Hard, erkennt der Resolver diese Namen ebenfalls als die drei Stufen. Unbekannte IDs behalten den exakten Abgleich bei. Ohne id wird die Kennung vor der Übersetzung aus dem ursprünglichen Namen abgeleitet.

Schwierigkeitsgrade liegen als Liste vor und haben die folgenden Felder:

SchlüsselBeschreibungWertePflicht
nameName des Schwierigkeitsgrads für Spieler.String✅
idID des Schwierigkeitsgrads, wird in benutzerdefinierten Bossen und Gegenständen für die schwierigkeitsabhängige Funktion verwendet.String❌
levelSyncBegrenzt die Gegenstandsstufe im Verarbeitungspfad zwischengespeicherter Spielerobjekte. Verändert weder die Ausrüstung noch begrenzt es sämtliche Schadens- und Verteidigungsberechnungen.Absolutes Level (25) oder Wert in Anführungszeichen relativ zu contentLevel ('+5', '-3')❌

Relativer Level-Sync: Beginnt levelSync mit + oder -, wird der Wert zu contentLevel addiert und auf mindestens 1 begrenzt. contentLevel: 40 mit levelSync: '-5' setzt beispielsweise die zwischengespeicherte Stufengrenze auf 35. Schreibe relative Werte in Anführungszeichen: YAML entfernt bei einem ungeschützten +5 das Plus und macht daraus das absolute Level 5. Dynamische Dungeons berechnen relative Werte anhand des ausgewählten Levels. Ein ungültiger Wert deaktiviert den Sync mit 0 und erzeugt eine Warnung.

Aktuelle Nahkampf-, Rüstungsverteidigungs- und Projektilwaffenberechnungen können die unveränderten Gegenstandslevel lesen. Auch Beiträge von Ausrüstungsverzauberungen werden durch diese Einstellung nicht begrenzt. Lies Schwierigkeitsgrade instanzierter Dungeons, bevor du die Kampfbalance auf Level-Sync stützt.

Dynamische Dungeons​

Dynamische Dungeons erweitern instanzierte Dungeons: Ihr Inhalt skaliert mit dem ausgewählten Level. Das Auswahlmenü verwendet das aktuelle Kampflevel des Spielers als Grundlage. Es beginnt beim höheren Wert aus 5 und Kampflevel minus 5 und bietet Fünferschritte bis Kampflevel plus 5, höchstens 200. Der Gildenrang schaltet diese Auswahl nicht frei.

Verwende für Bosse dynamischer Dungeons level: dynamic. Das ausgewählte Level gilt für die EliteMobs-Bosse der Instanz, nicht für jede Vanilla-Entität oder Belohnung. Setze scalability: scalable für eigene Gegenstände, die das Belohnungslevel übernehmen sollen, und prüfe den jeweiligen Beutepfad. Gewichtete Bossbeute und ausdrücklich festgelegte Belohnungen können ihr konfiguriertes Level behalten.

Die folgenden Werte werden für dynamische Dungeons benötigt.
Da alle dynamischen Dungeons auch instanzierte Dungeons sind, verwenden sie zusätzlich alle Werte und Einstellungen instanzierter Dungeons.


contentType​

Legt den Typ des Dungeons fest. Dies muss auf DYNAMIC_DUNGEON gesetzt werden.

SchlüsselWerteStandardPflicht
contentTypeOPEN_DUNGEON / INSTANCED_DUNGEON / DYNAMIC_DUNGEON / HUB / META_PACKAGE / ITEMS_PACKAGE / EVENTS_PACKAGE / MODELS_PACKAGEkeiner✅
Beispiel
contentType: DYNAMIC_DUNGEON

contentLevel​

Vorgefertigte dynamische Dungeons setzen diesen Wert auf -1. Ein dynamischer Dungeon verwendet ihn nicht: contentType: DYNAMIC_DUNGEON macht das Paket dynamisch, seine Platzhalter $lowestTier und $highestTier zeigen 5 und 200 an, und relative levelSync-Werte verwenden das Level, das die Spieler auswählen.

SchlüsselWerteStandardPflicht
contentLevelInteger0❌
Beispiel
contentLevel: -1

difficulties​

Legt die verfügbare Liste der Schwierigkeitsgrade und den Level-Sync im dynamischen Dungeon fest.

Pflicht für instanzierte Dungeons!

SchlüsselWerteStandardPflicht
difficultiesSpeziell [1]keine✅
Beispiele
difficulties:
- levelSync: '+5'
name: normal
id: 0
- levelSync: '+0'
name: hard
id: 1
- levelSync: '-5'
name: mythic
id: 2

create_packager_difficulty.jpg

Speziell [1]

Tabelle ausklappen

Das Festlegen von Schwierigkeitsgraden für instanzierte Dungeons erzeugt beim Betreten des Dungeons automatisch verschiedene Schwierigkeitsoptionen.

Verwende id für Schwierigkeitsfilter in Kräften und Beute. name ist die übersetzbare Bezeichnung für Spieler. Ausdrückliche IDs 0, 1 und 2 werden für Normal, Hard und Mythic empfohlen. Verwendet das Paket Easy/Medium/Hard, erkennt der Resolver diese Namen ebenfalls als die drei Stufen. Unbekannte IDs behalten den exakten Abgleich bei. Ohne id wird die Kennung vor der Übersetzung aus dem ursprünglichen Namen abgeleitet.

Vorzeichenbehaftete levelSync-Werte in Anführungszeichen setzen eine relative Grenze im Pfad zwischengespeicherter Spielerobjekte. Sie ändern weder das ausgewählte Bosslevel noch erhöhen sie niedrigstufige Ausrüstung oder begrenzen sämtliche Kampfberechnungen.

"+0" setzt diese Grenze auf das ausgewählte Dungeon-Level, "+5" fünf Level darüber und "-5" fünf darunter, mindestens jedoch auf 1. Die Einschränkungen aus dem Abschnitt über instanzierte Dungeons gelten weiterhin.

Schwierigkeitsgrade liegen als Liste vor und haben die folgenden Felder:

SchlüsselBeschreibungWertePflicht
nameName des Schwierigkeitsgrads für Spieler.String✅
idID des Schwierigkeitsgrads, wird in benutzerdefinierten Bossen und Gegenständen für die schwierigkeitsabhängige Funktion verwendet.String❌
levelSyncBegrenzt die zwischengespeicherte Gegenstandsstufe, nicht universell die Ausrüstung.Ganzzahl für eine absolute Grenze oder vorzeichenbehafteter Versatz in Anführungszeichen wie '+5'❌

Die Dungeon-Paketdatei meta_pack.yml für große Dungeons verwenden​

Manchmal arbeitest du vielleicht an einem großen Dungeon, der weitere, kleinere Dungeons in sich enthält, sodass Spieler über die Hauptwelt des Dungeons zwischen ihnen reisen können. Ein hervorragendes Beispiel dafür ist der EliteMobs-Abenteuer-Dungeon Primis.

Primis bietet eine riesige Welt, in der Spieler erkunden und Quests abschließen können, enthält jedoch auch zwei instanzierte Dungeons in seiner Welt -- einer davon dient als finaler Bosskampf. In solchen Fällen gibt es mehrere Dungeon-Paketdateien, obwohl sie alle zum selben übergeordneten Dungeon gehören.

Um das zu verwalten, verwenden wir eine Meta-Dungeon-Paketdatei. Diese Datei fungiert als zentrales Verzeichnis, benennt den Haupt-Dungeon und führt alle zusätzlichen zugehörigen Dungeon-Inhalte auf.

Dieses Beispiel zeigt die Gruppierung der Primis-Pakete. Die Version ist ein Beispiel, nicht die aktuell veröffentlichte Primis-Version:

isEnabled: true
name: '&2[000-020] The Primis Adventure!'
customInfo:
- The tutorial adventure for players
- new to EliteMobs!
downloadLink: https://discord.gg/9f5QSka
dungeonSizeCategory: LAIR
environment: NORMAL
protect: true
contentType: META_PACKAGE
containedPackages:
- primis_adventure.yml
- primis_blood_temple_sanctum.yml
- primis_gladius_invasion_dungeon.yml
setupMenuDescription:
- '&2A soft tutorial adventure for players between levels 0-20!'
- '&2Adventures are massive maps with quests,'
- '&2many bosses and npcs, among other things!'
- '&2Also has custom models!'
dungeonVersion: 1

Wie du siehst, ähnelt die Meta-Dungeon-Paketdatei stark einem gewöhnlichen Dungeon-Paket, mit einigen entscheidenden Unterschieden. contentType: ist auf META_PACKAGE gesetzt, und es gibt eine zusätzliche Einstellung namens containedPackages:. Diese Einstellung listet alle anderen Dungeon-Pakete auf, die Teil des größeren Dungeons sind.

Führe unter containedPackages den exakten Dateinamen jedes Unterpakets auf. Nimm diese Konfigurationen samt Inhalt in das Archiv auf. Das Meta-Paket sucht bereits geladene Paketdefinitionen und überspringt fehlende Einträge. Die Liste selbst bündelt oder lädt keine Dateien herunter.

Verwende dungeonVersion des Meta-Pakets für die gemeinsame Veröffentlichung. Nightbreak-Versionsprüfungen überspringen aufgeführte Unterpakete und vergleichen die Version des geeigneten Elternpakets. Ein eigenes YAML-Meta-Paket erhält durch die Unterpaketliste keine Nightbreak-Download- oder Update-Unterstützung.

Unterdungeons können weiterhin im Teleport-Menü /em für Spieler erscheinen, getrennt vom Verwaltungsmenü /em setup. Setze bei jedem auszublendenden Unterpaket listedInTeleports: false.

Zum Beispiel im Fall des Primis-Dungeons:

Deaktiviere die Teleport-Einträge im Menü für primis_blood_temple_sanctum.yml und primis_gladius_invasion_dungeon.yml. Lasse die Teleport-Optionen für primis_adventure.yml aktiviert, da diese als Haupt-Hub dient, in dem Spieler ihre Reise beginnen und auf die anderen Dungeons zugreifen. Spieler betreten die Abenteuerwelt über deren Teleport-Eintrag und erreichen die Unterdungeons über die dort eingerichteten Wege.

Für die Benennung der Datei empfehlen wir die folgende Namenskonvention:

your_dungeon_name_meta_pack.yml


Für Beuteziele auf Normal, Hard und Mythic siehe automatische Klassenbeute und Verzauberungsbalance. Die Anleitung beschreibt Ausrüstungsprofile nach Begegnungsrang, das tatsächliche Verzauberungsbudget, wiederverwendbare Belohnungsdarstellung und Verwaltungsbefehle zur Prüfung. Die folgenden Lebens- und Schadenswerte regeln den Kampf unabhängig von der Belohnungsqualität.

Einen durchschnittlichen Dungeon-Mob erstellen​

Verwende normalizedCombat: true für den normalisierten Kampf. Leben und Schaden hängen weiterhin von Level, Multiplikatoren, Spielerausrüstung, Fähigkeiten und Kampfeinstellungen ab. Die Beispiele sind Ausgangswerte zum Ausbalancieren, keine festen Trefferzahlen bis zum Tod.

Bei Dungeon-Inhalten aktiviert normalizeRegionalBosses: true in MobCombatSettings.yml (der Standard) den normalisierten Kampf für regionale Bosse; Bosse instanzierter Dungeons verwenden ihn ebenfalls. Ein explizites scaledCombat: true in der Boss-Datei hat bei den Berechnungen für skalierten Kampf Vorrang. Die folgenden Empfehlungen setzen normalisierten Kampf ohne diese Überschreibung voraus.

normalizedCombat: true
healthMultiplier: 1.0 #Starting point; verify with intended player loadouts.
damageMultiplier: 1.0 #Damage scales with the player's health and defenses; playtest this value.

Hinweis: Da 1.0 der Standardwert für Leben und Schaden ist, kannst du die Definition von healthMultiplier oder damageMultiplier einfach weglassen und normalizedCombat auf true setzen.

Trash-Packs erstellen​

Trash-Packs sind zahlreich, aber nicht besonders gefährlich:

normalizedCombat: true
healthMultiplier: 0.7 #Starting point for weaker mobs.
damageMultiplier: 0.5 #Damage scales with the player's health and defenses; playtest this value.

Verstärkungen erstellen​

Verstärkungen sollten sehr leicht sterben, aber schadensmäßig eine Gefahr darstellen (diese Werte werden für 4+ Nahkampf-Entitäten empfohlen, der tatsächliche Einsatz kann abweichen):

normalizedCombat: true
healthMultiplier: 0.25 #Starting point for fragile reinforcements.
damageMultiplier: 0.6 #Damage scales with the player's health and defenses; playtest this value.

Minibosse erstellen​

Minibosse sollten sich behaupten und Spielern eine mechanische Herausforderung bieten. Es sollte eine Geschicklichkeitsprobe sein, die eine Weile dauert, aber nichts extrem Tödliches:

normalizedCombat: true
healthMultiplier: 3.0 #Starting point for minibosses.
damageMultiplier: 1.2 #Damage scales with the player's health and defenses; playtest this value.

Bosse erstellen​

Bosse sind eine echte Herausforderung, der Höhepunkt eines Spannungsaufbaus in einem Dungeon und eine echte Geschicklichkeitsprobe, bei der alles auf dem Spiel steht. Begegnungen sollten lang sein und der Tod eine allgegenwärtige Bedrohung.

normalizedCombat: true
healthMultiplier: 7.0 #Starting point for bosses; check the health ceiling.
damageMultiplier: 1.4 #Damage scales with the player's health and defenses; playtest this value.

Diese empfohlenen Werte sind lediglich grobe Schätzungen; die endgültigen Werte sollten an die konkreten Begegnungen angepasst werden.

Prüfe bei Endbossen die Kampfdauer mit den vorgesehenen Gruppengrößen, Ausrüstungen und Fähigkeiten, bevor du healthMultiplier erhöhst.

Prüfe die Lebensgrenze vor einer Erhöhung von healthMultiplier

Basisleben und das Ergebnis nach dem Lebensmultiplikator sind auf settings.attribute.maxHealth.max des Servers begrenzt, standardmäßig 2048. Bei dieser Grenze erreicht 7.0 das Maximum auf Level 36, 10.0 auf 33 und 40.0 auf 23. Die Gruppenskalierung der Instanz multipliziert das Ergebnis danach und ist auf dieselbe Grenze begrenzt; ein Boss, der die Grenze bereits erreicht, erhält durch eine größere Gruppe also keine zusätzlichen Lebenspunkte. Schaden hat eigene Berechnungen und Grenzen, unabhängig von der Lebensgrenze. Unter healthMultiplier findest du die Basisberechnung und die Einstellung der Servergrenze.


EliteMobs-Inhalte zur Weitergabe packen

Zu guter Letzt möchtest du deinen Dungeon vermutlich zur Aufbewahrung oder zur Weitergabe packen.

EliteMobs verfügt über ein Importsystem, mit dem Administratoren Inhalte schnell importieren, installieren und deinstallieren können. Wie es funktioniert, siehst du hier.

Dungeon-Ressourcenpakete verteilen​

Seit EliteMobs 9.6.0 können Dungeons mit ihren eigenen Ressourcenpaketen gepackt und verteilt werden! Damit lassen sich coole Dinge umsetzen, etwa eigene Texturen oder Modelle für Beute aus dem Dungeon oder eigene Klänge -- so wie wir es in unserem Dungeon The Hallowed Haunt gemacht haben.

Um ein Ressourcenpaket mit deinem Dungeon zu verteilen, erstelle es wie jedes gewöhnliche Ressourcenpaket. Wenn du eine Vorlage brauchst, kannst du dich am Standard-Ressourcenpaket von EliteMobs orientieren, das EliteMobs beim Start nach plugins/EliteMobs/resource_pack/em_rsp_defaults/ exportiert. Das Ressourcenpaket muss unkomprimiert verteilt werden. Erstelle daher einen Ordner mit dem Namen deines Dungeons, zum Beispiel my_cool_dungeon_rsp. Lege alle Ressourcenpaket-Dateien, die normalerweise in das Zip gehören würden, in diesen Ordner. Lege diesen Ordner anschließend in einen neuen Ordner namens resource_pack -- das ist derselbe Ordner, in dem EliteMobs sein Standard-Ressourcenpaket ablegt.

Bewahre Änderungen in einem eigenen Paket auf. Beim Start vergleicht EliteMobs die Prüfsumme des mitgelieferten Pakets mit .rsp_checksum und ersetzt em_rsp_defaults, wenn sich das mitgelieferte Paket geändert hat oder Prüfsumme beziehungsweise Ordner fehlen. Deine bearbeiteten Dateien werden nicht gehasht. Änderungen können einen Neustart überstehen, werden aber bei einem späteren Export ersetzt.

Nach dem Ordnen deiner Dateien sollte die Verzeichnisstruktur so aussehen:

resource_pack
└── my_cool_dungeon_rsp
└── [resource pack files]

Der Importer legt diesen Ordner unter plugins/EliteMobs/resource_pack/ ab. Der Import sendet ihn nicht an Clients. Nimm ihn in das Ressourcenpaket auf, das der Paketanbieter deines Servers verteilt.

Welten zuschneiden​

Das Entfernen ungenutzter Chunks verringert die Downloadgröße. Dieses Beispiel verwendet das WorldBorder-Plugin. Prüfe vorher, welche Serverversionen es unterstützt. Zuschneiden entfernt Chunks dauerhaft; arbeite mit einer Exportkopie und einem Backup.

Details

Tipp Wenn du das zum ersten Mal machst, ist es vielleicht eine gute Idee, ein Backup deiner Welt anzulegen, falls etwas schiefgeht.

Sobald das Plugin installiert ist, begib dich in die Mitte der Welt oder in den Bereich, den du zuschneiden möchtest. Führe dann den Befehl /wb set x aus, wobei x der ungefähre Radius ist, den dein Bereich haben soll.

Details

Tipp Falls /wb bei dir nicht funktioniert, versuche /worldborder:wb.

Nach dem Ausführen dieses Befehls fliege zu den Rändern deiner Welt, um zu prüfen, ob die Weltgrenze korrekt gesetzt wurde und die gewünschte Größe abdeckt. Du erkennst den Rand der Weltgrenze daran, dass du zurückgestoßen wirst, begleitet von einer Nachricht im Chat.

trim_pic_1.jpg

Im obigen Bild möchten wir die Welt rund um die violetten Blöcke zuschneiden und nur wenige Chunks um sie herum belassen. Dazu stellen wir uns in die Mitte des violetten Bereichs auf die roten Quadrate und führen /wb set 50 aus, wodurch die Weltgrenze knapp außerhalb des violetten Bereichs gesetzt wird.

Verwende anschließend /wb trim [freq] [pad]. Die Frequenz gibt Chunks pro Sekunde an, der Randabstand wird in Blöcken, nicht Chunks gemessen, wie die Befehlsimplementierung zeigt. /wb trim 200 20 verarbeitet 200 Chunks pro Sekunde und erhält einen Abstand von 20 Blöcken um die Grenze. Prüfe den Vorgang vor /wb trim confirm und kontrolliere danach die zugeschnittene Kopie.

Du kannst die Grenze dieser Welt mit /wb clear entfernen oder sie behalten.

Den Weltordner zuschneiden​

Erstelle ein Backup und arbeite mit einer separaten Exportkopie, während die ursprüngliche Welt entladen ist. Bewahre die vollständige Verzeichnisstruktur samt Gelände, Entitäten, Interessenpunkten und Weltdaten. Eine minimale Dateiliste kann Gelände, Rahmen, Rüstungsständer oder andere gebaute Inhalte löschen.

Die Struktur hängt von Minecraft-Version und Serversoftware ab. Ältere Formate können DIM-1 für den Nether und DIM1 für das Ende verwenden, moderne auch dimensions/<namespace>/<key>/. Exportiere für eine Instanzvorlage eine einzelne Dimension in einem von WorldBlueprint akzeptierten Format, nicht den gesamten Container mehrerer Dimensionen. Bewahre ihre Struktur und prüfe die Kopie vor der Weitergabe auf einem separaten Server. Entferne temporäre Sperrdateien und private Daten nur aus der Exportkopie, nachdem du die Pfade für diese Version ermittelt hast.

Den Paketbefehl ausführen​

EliteMobs bietet /em package <dungeonName> <version>, wofür elitemobs.package erforderlich ist. Der Befehl sucht in den folgenden Inhaltsordnern nach einem Unterordner dungeonName, kopiert Gefundenes nach exports/<dungeonName>/ und komprimiert es zu exports/<dungeonName>_packaged.zip.

Die durchsuchten Ordner sind, in dieser Reihenfolge:

custombosses, customevents, npcs, npc_scripts, transport_routes, customitems, customquests, customarenas, customspawns, customtreasurechests, wormholes, world_blueprints, powers, behaviors

Alles, was nicht gefunden wird, erzeugt einen Hinweis "no subdirectory" und wird übersprungen -- das ist bei einem Paket normal, das nicht jeden Inhaltstyp verwendet.

Aus diesem Grund wird dringend empfohlen, die Inhalte, die du packen möchtest, in Ordnern mit demselben Namen wie dein Paket abzulegen. Andernfalls musst du die Dateien für die Weitergabe manuell zusammentragen und in die Dateistruktur einordnen.

Der Befehl sammelt keine Dateien aus content_packages, worldcontainer, models, scripts, enchantments oder resource_pack und erzeugt keine pack.meta. Ergänze benötigte Dateien im Exportordner, bevor du das endgültige ZIP erstellst. Das Argument <version> muss eine Ganzzahl sein, verändert aber dungeonVersion nicht. Bearbeite dieses Feld selbst.

Vor dem Kopieren prüft der Befehl vorhandene Weltvorlagen, auf die passende geladene Paketdefinitionen verweisen. Er kann bei ungültiger Struktur oder unpassendem Serverformat abbrechen. Diese Prüfung bestätigt nicht, dass sämtliche benötigten Konfigurationen, Bosse oder Ressourcen enthalten sind.

Jeder Durchlauf erstellt den Export zunächst in einem temporären Ordner. Bei Erfolg ersetzt er exports/<dungeonName>/ und exports/<dungeonName>_packaged.zip; Dateien, die du dem vorherigen Exportordner von Hand hinzugefügt hast, werden dabei gelöscht. Bewahre solche Ergänzungen an einem anderen Ort auf und kopiere sie nach jedem Durchlauf erneut hinein. Existiert keiner der Inhaltsordner oder ist ein Inhaltsordner oder eine Datei ein symbolischer Link, gibt der Befehl Failed to zip package! aus, protokolliert den Grund in der Konsole und lässt den vorherigen Export unverändert.

Die Dungeon-Paketdatei hinzufügen​

Füge bei einem Dungeon die Paketkonfiguration manuell in den erzeugten Exportordner ein. Sie sollte dem oben beschriebenen Format folgen und in content_packages liegen. Einzelheiten zeigt die folgende Dateistruktur.

Vergiss nicht, deinen Dungeon anschließend zu zippen!

Dateistruktur​

Wenn du alles richtig gemacht hast, sollte die Dateistruktur diesem Beispiel ähneln, in dem wir den Dungeon my_cool_dungeon genannt haben:

Beispiel der Dateistruktur von my_cool_dungeon
  • my_cool_dungeon.zip
    • pack.meta (enthält elitemobs)
    • content_packages
      • my_cool_dungeon.yml <- Hier kommt deine Konfigurationsdatei für das Dungeon-Paket hin
    • worldcontainer
      • [Hier kommen deine Weltordner hin]
    • wormholes
      • my_cool_dungeon
        • [Hier kommen deine Wurmlöcher hin]
    • npcs
      • my_cool_dungeon
        • [Hier kommen deine NPCs hin]
    • customtreasurechests
      • my_cool_dungeon
        • [Hier kommen deine Schatztruhen hin]
    • customquests
      • my_cool_dungeon
        • [Hier kommen deine Quests hin]
    • customitems
      • my_cool_dungeon
        • [Hier kommen deine benutzerdefinierten Gegenstände hin]
    • custombosses
      • my_cool_dungeon
        • [Hier kommen deine benutzerdefinierten Bosse hin]
    • customarenas
      • my_cool_dungeon
        • [Hier kommen deine benutzerdefinierten Arenen hin]
    • powers
      • my_cool_dungeon
        • [Hier kommen deine benutzerdefinierten Kräfte hin]
    • world_blueprints
      • my_cool_dungeon
        • [Hier kommt dein Weltordner hin, wird für instanzierte Dungeons verwendet]
    • customevents
      • my_cool_dungeon
        • [Hier kommen deine benutzerdefinierten Events hin]
    • customspawns
      • my_cool_dungeon
        • [Hier kommen deine benutzerdefinierten Spawns hin]
    • models
      • [Hier kommen deine Modelle im bbmodel-Format hin, Ordner sind zulässig]
    • scripts
      • [Hier kommen deine FreeMinecraftModels-Lua-Skripte hin]
    • resource_pack
      • my_cool_dungeon_rsp
        • [Hier kommen deine Ressourcenpaket-Dateien hin]

Verteile das fertige ZIP zum Import über plugins/EliteMobs/imports/, lade anschließend neu und prüfe /em setup. Prüfe vor der Weitergabe eine saubere Installation einschließlich referenzierter Bosse, Quests, Lua-Dateien, Modelle und Weltvorlagen.

Erkannte Ordner auf oberster Ebene​

Der Importer versteht nur eine feste Menge an Namen auf oberster Ebene. Für ein EliteMobs-Paket (pack.meta mit dem Inhalt elitemobs) sind das:

OrdnerWo er installiert wird
content_packagesplugins/EliteMobs/content_packages
dungeonpackagesplugins/EliteMobs/content_packages (alter Aliasname)
custombossesplugins/EliteMobs/custombosses
customitemsplugins/EliteMobs/customitems
customtreasurechestsplugins/EliteMobs/customtreasurechests
customeventsplugins/EliteMobs/customevents
customspawnsplugins/EliteMobs/customspawns
customquestsplugins/EliteMobs/customquests
customarenasplugins/EliteMobs/customarenas
npcsplugins/EliteMobs/npcs
npc_scriptsplugins/EliteMobs/npc_scripts
transport_routesplugins/EliteMobs/transport_routes
behaviorsplugins/EliteMobs/behaviors
enchantmentsplugins/EliteMobs/enchantments
wormholesplugins/EliteMobs/wormholes
powersplugins/EliteMobs/powers
world_blueprintsplugins/EliteMobs/world_blueprints
resource_packplugins/EliteMobs/resource_pack
worldcontainerder Weltcontainer des Servers
models oder modelengineModellordner von FreeMinecraftModels, wenn es aktiviert ist; sonst blueprints von ModelEngine, wenn dieses aktiviert ist; ohne aktivierten Anbieter der Modellordner von FreeMinecraftModels
scriptsplugins/FreeMinecraftModels/scripts
elitemobsplugins/EliteMobs, zusammengeführt nach demselben Aufbau wie dieser Datenordner
freeminecraftmodelsplugins/FreeMinecraftModels, zusammengeführt nach demselben Aufbau wie dieser Datenordner. Ein darin enthaltener models-Ordner landet in dem Modellordner, den FreeMinecraftModels liest
betterstructuresplugins/BetterStructures, zusammengeführt nach demselben Aufbau wie dieser Datenordner
pack.metawird nirgendwo installiert -- sie wird nur gelesen, um das Paket zu identifizieren

Verwende die Ordner elitemobs, freeminecraftmodels und betterstructures für Dateien ohne eigenen Namen auf oberster Ebene, zum Beispiel freeminecraftmodels/enchantments für FreeMinecraftModels-Verzauberungen, die deine Gegenstände verwenden. Nachdem ein Import Dateien in seinem Ordner abgelegt hat, lädt FreeMinecraftModels seine importierten Inhalte neu. BetterStructures lädt neu, sobald sein eigener Start abgeschlossen ist; Versionen ohne diesen Einstiegspunkt zum Neuladen protokollieren eine Warnung mit der Aufforderung, /bs reload auszuführen.

Ein unbekannter Eintrag auf oberster Ebene weist das gesamte Paket zurück und bewahrt das Archiv zur Korrektur auf. Halte lose Readme-Dateien, Screenshots und __MACOSX aus dem Archivstamm heraus. Scheitert ein Schreibvorgang, versucht der Importer sämtliche durch dieses Archiv geänderten Ziele wiederherzustellen. Prüfe Warnungen zur Wiederherstellung vor einem erneuten Versuch.

schematics weist ein EliteMobs-Archiv ebenfalls zurück und meldet zusätzlich, dass Schematic-Dungeons in EliteMobs 9.0 entfernt wurden.

Liefere Dungeon-Konfigurationen mit isEnabled: false aus, wenn Administratoren sie über /em setup installieren sollen. Bereite eine entladene Exportkopie jeder Welt vor und prüfe sie. Bewahre die Dateien des Erstellungsservers und kontrolliere die exportierte Konfiguration. Gehe nicht davon aus, dass der Paketbefehl den Installationsstatus zurücksetzt.

Von dir erstellte Dungeon-Pakete mit der Community teilen

Auf Discord gibt es einen Bereich #community_dungeons, in dem Leute ihre Minidungeon-Kreationen teilen können. Trag gerne etwas bei!