Zum Hauptinhalt springen

Spawns erstellen

webapp_banner.jpg

Was sind benutzerdefinierte Spawns?​

Benutzerdefinierte Spawns werden von Events und globalen Verstärkungen verwendet, um festzulegen, wie, wo und wann ein Event den Boss für dieses Event spawnen soll.

Events und globale Verstärkungen legen über den Dateinamen fest, welchen Spawn sie verwenden.

Benutzerdefinierte Spawns erstellen

Benutzerdefinierte Spawns gehören in den Ordner customspawns. Ein benutzerdefinierter Spawn kann von mehreren Events gleichzeitig verwendet werden, du musst also nicht für jedes Event einen eigenen erstellen.

Hier ist ein Beispiel für einen benutzerdefinierten Spawn:

isEnabled: true
validWorldEnvironments:
- NORMAL
- CUSTOM
bypassWorldGuard: false
isSurfaceSpawn: true

Einen überall möglichen Spawn erstellen​

Um einen Spawn zu erstellen, der überall auftreten kann, sollte deine Konfiguration etwa so aussehen:

isEnabled: true
canSpawnInLight: true

Dies entfernt die Lichtbeschränkung und fügt keinen eigenen Welt-, Zeit- oder Mondfilter hinzu. Die Liste aktivierter Welten, der standardmäßige Y-Bereich, geeignete Spieler in der Nähe, geladene Chunks, Schutz-Flags und die folgenden Platzierungsprüfungen gelten weiterhin.

Wenn du daran interessiert bist, einen stärker angepassten Spawn zu erstellen, lies unten weiter.

Werte​


isEnabled​

Legt fest, ob der Spawn aktiviert ist.

SchlüsselWerteStandard
isEnabledBooleantrue
Beispiel
isEnabled: true

lowestYLevel​

Legt das niedrigste Y-Level fest. Der Standardwert 0 schließt Höhlen mit negativem Y aus; verwende beispielsweise -64, um die unterirdische Suche auch in tieferen Höhlen zu erlauben. Das ändert weder die anfängliche zufällige Y-Auswahl noch die eingebaute Höhengrenze der Aufwärtssuche.

SchlüsselWerteStandard
lowestYLevelInteger0
Beispiel
lowestYLevel: 0

highestYLevel​

Legt das höchste verwendete Y-Level (Kartenhöhe) fest.

SchlüsselWerteStandard
highestYLevelInteger320
Beispiel
highestYLevel: 320

validWorlds​

Filtert die Welten für die gewöhnliche Spielerauswahl, einschließlich zeitgesteuerter Ereignisse. Lass die Einstellung weg, um keinen eigenen Weltfilter hinzuzufügen; ValidWorlds.yml und die anderen Eignungsprüfungen gelten weiterhin. Globale Verstärkungen wählen Spieler direkt aus der Welt des Beschwörers und wenden diesen Filter nicht an.

SchlüsselWerteStandard
validWorldsString-Listekeine
Beispiel
validWorlds:
- WORLD
- FUN_LAND

Wenn du möchtest, dass alle deine Welten gültig sind, kannst du die Einstellung einfach nicht verwenden oder sie so formatieren:

validWorlds: []

validWorldEnvironments​

Filtert die Weltumgebungen für die gewöhnliche Spielerauswahl. Lass die Einstellung weg, um keine Umgebungsbeschränkung hinzuzufügen. Globale Verstärkungen wählen Spieler direkt aus der Welt des Beschwörers und wenden diesen Filter nicht an.

SchlüsselWerteStandard
validWorldEnvironmentsUmgebungslistekeine
Beispiel
validWorldEnvironments:
- NORMAL
- NETHER

Wenn du möchtest, dass alle Umgebungen gültig sind, kannst du die Einstellung einfach nicht verwenden oder sie so formatieren:

validWorldEnvironments: []

validBiomesV2​

Legt die Biome fest, in denen der benutzerdefinierte Spawn stattfinden kann. Lass die Einstellung weg oder verwende eine leere Liste, um keine Biombeschränkung hinzuzufügen. In älteren Versionen hieß sie validBiomes.

Jeder Eintrag ist ein Biom-Schlüssel. Ein Name ohne Namespace wie plains oder DEEP_OCEAN wird als minecraft:<name> gelesen; Groß- und Kleinschreibung spielt keine Rolle. Ist ein Eintrag kein registriertes Biom, protokolliert EliteMobs eine Warnung und deaktiviert die gesamte Spawn-Datei, sodass Events und globale Verstärkungen, die sie verwenden, nicht spawnen können.

Das Biom wird am zufällig gewählten Kandidatenpunkt gelesen, bevor EliteMobs die endgültige Y-Höhe bestimmt. Siehe Wie ein Spawn-Ort ausgewählt wird.

SchlüsselWerteStandard
validBiomesV2Biomlistekeine
Beispiel
validBiomesV2:
- minecraft:plains
- desert

earliestTime​

Legt die früheste Spielzeit für den Spawn fest. Beide Zeitgrenzen sind eingeschlossen. Das Intervall kann nicht über Mitternacht laufen: Ist earliestTime größer als latestTime, findet kein Spawn statt.

Sobald ein Ort gefunden wurde, prüft EliteMobs earliestTime, latestTime und moonPhase jeden Tick und wartet dort, bis sie passen. Nach dieser Wartezeit werden Spielerabstand, Licht, geladener Chunk und WorldGuard nicht erneut geprüft. Der abschließende Zombietest und die Friedensbannerprüfung laufen weiterhin vor dem Platzieren des Bosses.

SchlüsselWerteStandard
earliestTimeLong0
Beispiel
earliestTime: 0

latestTime​

Legt die späteste Spielzeit für den Spawn einschließlich dieser Grenze fest. Sie muss größer oder gleich earliestTime sein.

SchlüsselWerteStandard
latestTimeLong24000
Beispiel
latestTime: 24000

moonPhase​

Legt die erforderliche Mondphase fest, damit der benutzerdefinierte Spawn auftritt.

SchlüsselWerteStandard
moonPhaseSpeziell [1]keiner
Beispiel
moonPhase: FULL_MOON

Speziell [1]

Tabelle aufklappen
MondphaseVorschau
NEW_MOON🌑
WAXING_CRESCENT🌒
FIRST_QUARTER🌓
WAXING_GIBBOUS🌔
FULL_MOON🌕
WANING_GIBBOUS🌖
WANING_CRESCENT🌘
LAST_QUARTER🌗

bypassWorldGuard​

Diese Einstellung soll den Spawn Schutzsysteme wie WorldGuard umgehen lassen.

Die Einstellung hat derzeit keine Wirkung. EliteMobs liest den Schlüssel, verwendet den Wert aber nicht. WorldGuard-Flags werden immer geprüft. Passe die relevanten Flags in der Region an, um dort einen Spawn zuzulassen.

SchlüsselWerteStandard
bypassWorldGuardBooleanfalse

canSpawnInLight​

Steuert die Lichtprüfung bei der Ortswahl. Bei false darf die kombinierte Lichtstufe des Blocks einschließlich Himmelslicht höchstens 8 sein. Bei true entfällt diese Prüfung.

SchlüsselWerteStandard
canSpawnInLightBooleanfalse
Beispiel
canSpawnInLight: false

isSurfaceSpawn​

Legt fest, ob der benutzerdefinierte Spawn nur an der Oberfläche einer Welt auftreten kann.

SchlüsselWerteStandard
isSurfaceSpawnBooleanfalse
Beispiel
isSurfaceSpawn: false

isUndergroundSpawn​

Legt fest, ob der benutzerdefinierte Spawn nur unter der Erde auftreten kann.

SchlüsselWerteStandard
isUndergroundSpawnBooleanfalse
Beispiel
isUndergroundSpawn: false

Wie ein Spawn-Ort ausgewählt wird​

EliteMobs durchsucht die Welt nicht nach einer Stelle. Es wählt einen zufälligen Online-Spieler und rechnet von ihm aus einen Versatz:

  1. Ein geeigneter Spieler wird zufällig gewählt. Er wird übersprungen, wenn seine EliteMobs-Daten nicht geladen sind, seine Welt nicht in ValidWorlds.yml steht, er sich in einer Instanzregion für einen Dungeon, eine Arena oder eine Klassenprüfung befindet, seine Welt Mob-Spawning verbietet oder validWorlds / validWorldEnvironments sie ausschließen. Zeitgesteuerte Events schließen zusätzlich Spieler in EliteMobs-Dungeon-Welten aus. Der Spielmodus schließt einen Spieler nicht aus.
  2. Eine Kandidatenstelle verwendet Versätze von 24 bis einschließlich 127 Blöcken auf X und Z, deren Vorzeichen unabhängig gewählt werden. Kandidaten in ungeladenen Chunks werden abgelehnt; die Suche lädt keine Chunks, um einen Spawn-Ort zu finden.
  3. Die Y-Höhe ergibt sich aus isSurfaceSpawn, isUndergroundSpawn oder, wenn beide deaktiviert sind, aus einer Aufwärtssuche nach zwei Luftblöcken über einem nicht passierbaren Block.
  4. Der Kandidat durchläuft anschließend die untenstehenden Validierungen.

Globale Verstärkungen verwenden alle Spieler in der Welt des Beschwörers statt der gefilterten Spielerliste aus Schritt 1. Sie überspringen daher dessen Prüfungen auf geladene Daten, Welt, Umgebung, Instanz und Mob-Spawning-Spielregel. Ihre Kandidatenorte durchlaufen weiterhin die Biom-, Höhen-, Nähe-, Licht- und WorldGuard-Prüfungen.

Es werden bis zu 100 Kandidaten geprüft, einer pro Tick. Funktioniert keiner, wartet EliteMobs eine Minute und versucht es erneut. Die anfängliche Y-Auswahl liegt bei 0–255. Die allgemeine Aufwärtssuche beginnt bei diesem Wert und endet bei highestYLevel oder zwei Blöcke unter der Bauhöhengrenze der Welt, je nachdem, welcher Wert niedriger ist. Die unterirdische Abwärtssuche endet bei Y=-63, auch wenn lowestYLevel niedriger ist. Oberflächen- und Untergrundmodus haben eigene Suchverfahren; sind beide aktiviert, hat die Oberfläche Vorrang.

Verhalten der Spawn-Validierung​

EliteMobs prüft Kandidaten während der Suche. Sobald Zeit und Mond den Spawn erlauben, folgen der abschließende Zombietest und die Friedensbannerprüfung:

  • Spielernähe: Kandidaten mit weniger als 24 Blöcken Abstand zu einem beliebigen Spieler werden abgelehnt, gemessen als dreidimensionale Entfernung
  • Nether-Decke: Spawns oberhalb von Y=127 werden in der Nether-Dimension blockiert
  • Blocksicherheit: Die Untergrundsuche verlangt festen Boden; die allgemeine Aufwärtssuche verlangt einen nicht passierbaren Block. Beide verlangen darüber zwei Luftblöcke. Der Oberflächenmodus verwendet den höchsten Block der Säule plus eins, ohne dieselben Freiraumprüfungen.
  • Y-Level: Der endgültige Ort muss zwischen lowestYLevel und highestYLevel liegen.
  • Spielregeln: Die gewöhnliche Spielerauswahl beachtet die Mob-Spawning-Spielregel der Welt (spawnMobs ab Minecraft 1.21.11, davor doMobSpawning). Globale Verstärkungen umgehen diese Prüfung bei der Spielerauswahl.
  • WorldGuard-Flags: Prüft elitemobs-events, elitemob-spawning und WorldGuards eigenes Flag mob-spawning.
  • Friedensbanner: Ist suppressEvents in PeaceBanner.yml wie standardmäßig aktiviert, bricht ein geschützter Ort diesen Spawn-Versuch ab. Ein zeitgesteuertes Event plant sein nächstes Event; diese Prüfung startet keine neue Ortssuche für den aktuellen Versuch.
  • Abschließender Testspawn: Unmittelbar vor dem Boss spawnt EliteMobs einen gewöhnlichen Vanilla-Zombie am Ort und entfernt ihn sofort wieder. Blockiert ein anderes Schutzplugin diesen Zombie, wird der Ort verworfen und die Suche beginnt erneut.

Diese Prüfungen laufen automatisch. Die Licht- und Friedensbannerprüfungen haben die oben beschriebenen Konfigurationsschalter; bypassWorldGuard deaktiviert die WorldGuard-Prüfungen nicht.