Events erstellen
Diese Anleitung ist für EliteMobs 10 und später
Was sind benutzerdefinierte Events?
Benutzerdefinierte Events beziehen sich hier auf Events, die zufällig im Spiel auftreten, sei es basierend auf Spieleraktionen oder mit einem zeitgesteuerten Auslöser. Das Plugin wird mit einer Reihe von benutzerdefinierten Events vorab geladen, wie zum Beispiel dem Balrog-Event, dem Kraken-Event und den Treasure-Goblin-Events, um nur einige zu nennen.
Dieses System wird Custom (benutzerdefinierte) Events genannt, weil die Events nicht nur angepasst, sondern auch von Grund auf neu erstellt werden können. Was folgt, ist eine Anleitung, wie du deine eigenen Events erstellst und anpasst.
Deine benutzerdefinierten Events erstellen
Konfigurationsdateien für benutzerdefinierte Events sollten hier erstellt werden:
plugins/EliteMobs/customevents/
Dateien müssen das .yml-Format verwenden. Der Dateiname (ohne die Endung .yml) wird zur Event-Kennung.
Beispiel: my_cool_event.yml wird als my_cool_event referenziert
Allgemeine Konfigurationseinstellungen
Die folgenden Einstellungen können/sollten sowohl für Aktions- als auch für zeitgesteuerte Events verwendet werden.
isEnabled
Legt fest, ob das Event aktiviert ist.
| Key | Werte | Standard |
|---|---|---|
isEnabled | Boolean | true |
Beispiel
isEnabled: true
eventType
Legt den Typ des Events fest.
| Key | Werte | Standard |
|---|---|---|
eventType | DEFAULT / BREAK_BLOCK / FISH / TILL_SOIL / TIMED | keiner |
Beachte, dass BREAK_BLOCK, FISH und TILL_SOIL Aktions-Events sind und TIMED zeitgesteuerte Events sind. DEFAULT ist für Events, die durch andere Mittel oder besondere Bedingungen ausgelöst werden.
Beispiel
eventType: BREAK_BLOCK
bossFilenames
Legt die Liste der Bosse fest, die gespawnt werden. Erforderlich!
| Key | Werte | Standard |
|---|---|---|
bossFilenames | String-Liste | keiner |
Beispiel
bossFilenames:
- balrog.yml
- my_event_boss.yml
announcementPriority
Legt die Ankündigungspriorität fest.
| Key | Werte | Standard |
|---|---|---|
announcementPriority | Integer | 0 |
Beispiel
announcementPriority: 1
startMessage
Legt die Nachricht fest, die zu Beginn des Events gesendet wird.
| Key | Werte | Standard |
|---|---|---|
startMessage | String | keiner |
Beispiel
startMessage: An event has started!
![]()
endMessage
Legt die Nachricht fest, die am Ende des Events gesendet wird.
| Key | Werte | Standard |
|---|---|---|
endMessage | String | keiner |
Beispiel
endMessage: An event has ended!
eventStartCommands
Legt die Befehle fest, die zu Beginn des Events ausgeführt werden.
| Key | Werte | Standard |
|---|---|---|
eventStartCommands | String-Liste | keiner |
Beispiel
eventStartCommands:
- say The event now starts!!
- "$chance=0.5$ say What a spawn!"

eventEndCommands
Legt die Befehle fest, die am Ende des Events ausgeführt werden.
| Key | Werte | Standard |
|---|---|---|
eventEndCommands | String-Liste | keiner |
Beispiel
eventEndCommands:
- say The event ends, so sad.
- "$chance=0.5$ say Too slow bud!"

Event-Konfigurationsbeispiel
isEnabled: true
bossFilenames:
- "cool_boss.yml"
- "other_cool_boss.yml"
announcementPriority: 3
startMessage: "Cool event is starting!"
endMessage: "Cool event is ending!"
eventStartCommands:
- say The event started!
eventEndCommands:
- say The event ended!
Vollständiges Beispiel für ein zeitgesteuertes Event
isEnabled: true
eventType: TIMED
bossFilenames:
- "my_timed_boss.yml"
announcementPriority: 3
startMessage: "A timed event has started!"
endMessage: "The timed event has ended!"
eventStartCommands:
- say The timed event began!
eventEndCommands:
- say The timed event concluded!
spawnType: "my_spawn_location.yml"
localCooldown: 120
globalCooldown: 30
weight: 100
eventDuration: 15
endEventWithBossDeath: true
minimumPlayerCount: 1
Aktions-Events
Events, die eine Chance haben, ausgeführt zu werden, wenn eine bestimmte Aktion eintritt, wie das Abbauen eines Blocks oder das Angeln.
Hinweis: Aktions-Events wenden automatisch einen Cooldown pro Spieler an, um zu verhindern, dass derselbe Spieler wiederholt Events auslöst. Der Cooldown beträgt standardmäßig 4 Minuten und ist über actionEventMinimumCooldownMinutes in events.yml konfigurierbar.
chance
Legt die Chance fest, dass das Event eintritt, wenn die Aktion eintritt.
| Key | Werte | Standard |
|---|---|---|
chance | Wert zwischen 0.0 und 1.0 | 0 |
Beispiel
chance: 0.001
breakableMaterials
Legt die Liste der zu prüfenden Materialien fest, wenn die Aktion auf BREAK_BLOCK gesetzt ist.
| Key | Werte | Standard |
|---|---|---|
breakableMaterials | Liste von Materialien | keiner |
Beispiel
breakableMaterials:
- BEEHIVE
- BIRCH_WOOD
Konfigurationsbeispiel
chance: 0.001
breakableMaterials:
- COAL_ORE
Legt eine Chance von 0,1 % fest, dass das Event ausgeführt wird, wenn ein Kohleerz-Block abgebaut wird, vorausgesetzt, der Event-Typ ist BREAK_BLOCK.
Vollständiges Beispiel für ein Aktions-Event
isEnabled: true
eventType: BREAK_BLOCK
bossFilenames:
- "mining_boss.yml"
announcementPriority: 2
startMessage: "You've awakened something..."
chance: 0.001
breakableMaterials:
- DIAMOND_ORE
- EMERALD_ORE
Zeitgesteuerte Events
Zeitgesteuerte Events sind Events, die in konfigurierbaren Zeitintervallen stattfinden. Sobald der Cooldown für ein zeitgesteuertes Event abgelaufen ist, wird ein zufälliges zeitgesteuertes Event aus der Liste der zeitgesteuerten Events basierend auf dem Gewicht des Events ausgewählt.
spawnType
Legt den benutzerdefinierten Spawn fest, der vom Event verwendet wird und definiert, wo der Boss spawnen kann.
| Key | Werte | Standard |
|---|---|---|
spawnType | Filename | keiner |
Beispiel
spawnType: nether_spawn.yml
localCooldown
Legt die Zeit in Minuten fest, bevor dieses Event erneut ausgewählt werden kann.
| Key | Werte | Standard |
|---|---|---|
localCooldown | Double | 0 |
Beispiel
localCooldown: 120
globalCooldown
Legt die Zeit in Minuten fest, bevor das nächste Event ausgewählt wird.
| Key | Werte | Standard |
|---|---|---|
globalCooldown | Double | 0 |
Beispiel
globalCooldown: 60
weight
Legt das Gewicht des Events fest, das die Chance beeinflusst, dass es gegenüber anderen Events ausgewählt wird. Empfohlen: 100.
Das Gewichtssystem bestimmt die relative Wahrscheinlichkeit der Event-Auswahl. Zum Beispiel:
- Event A mit Gewicht 100 vs. Event B mit Gewicht 50 = Event A wird doppelt so wahrscheinlich ausgewählt
- Höheres Gewicht = höhere Chance, ausgewählt zu werden
- Der Scheduler für zeitgesteuerte Events startet etwa 5 Minuten nach dem Serverstart und prüft dann einmal pro Minute, ob der globale Cooldown abgelaufen ist und ein Event ausgewählt werden kann
| Key | Werte | Standard |
|---|---|---|
weight | Double | 0 |
Beispiel
weight: 60.5
eventDuration
Legt die maximale Dauer des Events in Minuten fest.
| Key | Werte | Standard |
|---|---|---|
eventDuration | Double | 0 |
Beispiel
eventDuration: 30
endEventWithBossDeath
Legt fest, ob das Event mit dem Tod des Bosses endet.
| Key | Werte | Standard |
|---|---|---|
endEventWithBossDeath | Boolean | true |
Beispiel
endEventWithBossDeath: true
eventEndTime
Legt die Spielzeit (in Ticks) fest, zu der das Event endet. Verwende Minecrafts Zeitsystem, wobei 0=Morgendämmerung, 6000=Mittag, 12000=Abenddämmerung, 18000=Mitternacht, 23000=späte Nacht. Setze auf -1, um das zeitbasierte Ende zu deaktivieren.
| Key | Werte | Standard |
|---|---|---|
eventEndTime | Integer (0-24000, -1 zum Deaktivieren) | -1 |
Beispiel
eventEndTime: 23000
minimumPlayerCount
Legt die Mindestanzahl an Online-Spielern fest, bevor das Event startet.
| Key | Werte | Standard |
|---|---|---|
minimumPlayerCount | Integer | 1 |
Beispiel
minimumPlayerCount: 5
Beachte, dass Events in eine Warteschlange gestellt werden, was bedeutet, dass sie erst starten, wenn die im spawnType definierten Bedingungen erfüllt sind.
Events-Konfigurationsbeispiel
isEnabled: true
bossFilenames:
- "cool_boss.yml"
- "other_cool_boss.yml"
announcementPriority: 3
startMessage: "Cool event is starting!"
endMessage: "Cool event is ending!"
eventStartCommands:
- say The event started!
eventEndCommands:
- say The event ended!
spawnType: "myCoolSpawn.yml"
localCooldown: 30
globalCooldown: 15
weight: 100
eventDuration: 20
endEventWithBossDeath: true
eventEndTime: 10000
minimumPlayerCount: 5
