Quests erstellen
Beispiel-Quest
EliteMobs wird mit einer test_quest.yml ausgeliefert, die hier als einfaches Quest-Format analysiert wird.
Custom Quests befinden sich im Ordner ~plugins/EliteMobs/customquests!
test_quest.yml
isEnabled: true
customObjectives:
Objective1:
amount: '1'
filename: test_boss.yml
objectiveType: KILL_CUSTOM
customRewards:
- filename=magmaguys_toothpick.yml:amount=1:chance=1
name: "&aKill the Test Boss"
questLore:
- "&cEnd the test boss'' reign of terror!"

Falls Ihre Quest-UI nicht so aussieht, können Sie sie mit /em alt anpassen.
Diese Beispiel-Quest gibt den Spielern die Aufgabe, 1 test_boss.yml zu besiegen. (Der tatsächliche Name des Bosses, der im Quest-Tracker angezeigt wird, ist der name:, der in test_boss.yml festgelegt wurde.) Und als Belohnung für das Abschließen der Quest erhalten sie 1 Magmaguy's Toothpick.
Custom Quests erstellen
customObjectives
Legt die Quest-Ziele fest.
| Key | Values | Default |
|---|---|---|
customObjectives | Special [1] | none |
Hinweis: Wenn Sie einen Mehrphasen-Boss als Ziel verwenden, sollte das Ziel die erste Phase als Ziel verwenden.
Beispiele
KILL_CUSTOM:
customObjectives:
Objective1:
amount: '1'
filename: my_cool_boss.yml
objectiveType: KILL_CUSTOM
DIALOG:
customObjectives:
Objective1:
dialog:
- "&a[Dialog NPC] &fCome here often?"
- "&7&oI should eat more apples."
filename: dialog_npc.yml
npcName: Dialog NPC
location: at dialog location.
objectiveType: DIALOG
FETCH_ITEM:
customObjectives:
Objective1:
amount: '99'
itemName: Red Apples
filename: my_quest_item_red_apples.yml
objectiveType: FETCH_ITEM
ARENA:
customObjectives:
Objective1:
objectiveType: ARENA
filename: my_arena.yml
name: "Complete the Arena"

Special [1]
Tabelle erweitern
Custom Objectives werden mit den folgenden Werten erstellt:
| Key | Description |
|---|---|
KILL_CUSTOM / FETCH_ITEM / DIALOG / ARENA | Wird verwendet, um den Typ des Ziels festzulegen. KILL_CUSTOM bedeutet, dass die Quest das Töten eines bestimmten Custom Bosses beinhaltet, FETCH_ITEM bedeutet, dass die Quest das Erhalten eines bestimmten Custom Items beinhaltet, DIALOG bedeutet, dass die Quest das Sprechen mit einem NPC beinhaltet, und ARENA bedeutet, dass die Quest das Abschließen einer bestimmten Arena beinhaltet. |
filename | Wird verwendet, um den Dateinamen des Custom Bosses, des Custom Items, das der Spieler töten/erhalten muss, des NPCs, mit dem er sprechen muss, oder der Arena festzulegen, die er abschließen muss. |
amount | Wird verwendet, um die Anzahl der Custom Bosse festzulegen, die getötet werden müssen, oder Items, die erhalten werden müssen. Standardmäßig 1, wenn nicht angegeben. |
dialog | Wird verwendet, um den Dialog des NPCs festzulegen, mit dem der Spieler spricht. |
name | Wird verwendet, um den Namen des Quest-Ziels festzulegen, sei es ein NPC, ein Custom Item oder eine Arena. Nur für visuelle Zwecke. |
itemName | Nur mit FETCH_ITEM verwendet – Diese Einstellung ändert, wie der Itemname im Quest-Tracker erscheint. Sie ermöglicht die Anzeige eines benutzerdefinierten Namens, der sich vom tatsächlichen Item-Namen im Spiel unterscheidet. |
Bitte beachten Sie, dass jedes Custom Objective-Feld mit einem : getrennt ist!
customRewards
Legt die Quest-Belohnungen fest.
| Key | Values | Default |
|---|---|---|
customRewards | Universal EliteMobs loot format | none |
Beispiel
customRewards:
- currencyAmount=50:amount=1:chance=0.05
- material=COOKED_COD:amount=3:chance=1.0
- filename=magmaguys_toothpick.yml:amount=1:chance=1.0

Hinweis: Wenn Sie customRewards nicht angeben, generiert das Quest-System automatisch Belohnungen basierend auf dem Quest-Level. Die Belohnungsqualität skaliert mit der Quest-Schwierigkeit und umfasst sowohl Währung als auch Items. Für eine präzise Kontrolle über Belohnungen geben Sie customRewards immer explizit an.
questAcceptPermission
Legt die Berechtigung fest, die der Spieler haben muss, um die Quest annehmen zu können.
| Key | Values | Default |
|---|---|---|
questAcceptPermission | String | none |
Beispiel
questAcceptPermission: elitequest.my_permission
questAcceptPermissions
Legt die Berechtigungen fest, die der Spieler haben muss, um die Quest annehmen zu können.
| Key | Values | Default |
|---|---|---|
questAcceptPermissions | String List | none |
Beispiel
questAcceptPermissions:
- elitequest.my_previous_quest_one.yml
- elitequest.my_previous_quest_two.yml
questLockoutPermission
Legt die Berechtigung fest, die der Spieler beim Abschließen der Quest erhält, wodurch er daran gehindert wird, die Quest erneut zu absolvieren. Wenn nicht angegeben, wird die Quest-Lockout-Berechtigung automatisch als elitequest.[filename] generiert.
| Key | Values | Default |
|---|---|---|
questLockoutPermission | String | elitequest.[filename] |
Beispiel
questLockoutPermission: elitequest.my_quest.yml
questLockoutMinutes
Legt fest, wie lange der Spieler in Minuten warten muss, bevor er die Quest erneut absolvieren kann (funktioniert durch Entfernen der Quest-Lockout-Berechtigung).
| Key | Values | Default |
|---|---|---|
questLockoutMinutes | Integer | -1(wird sich nie wiederholen) |
Beispiel
questLockoutMinutes: 60
name
Legt den Quest-Namen fest. Akzeptiert Color Codes.
| Key | Values | Default |
|---|---|---|
name | String | none |
Beispiel
name: "&aMy Great Quest Name"
questLore
Legt die Lore der Quest fest, die im Quest-Menü im Spiel erscheint.
| Key | Values | Default |
|---|---|---|
questLore | String List | none |
Beispiel
questLore:
- "Interesting lore sentence."
- "Yet another interesting lore sentence."

temporaryPermissions
Legt die Berechtigungen fest, die dem Spieler zugewiesen werden, bis er die Quest abgibt.
Wenn Sie diese Einstellung verwenden, um sicherzustellen, dass ein Item nur droppt, wenn Spieler eine bestimmte Quest aktiv haben, müssen Sie auch die gleiche Berechtigung in der Konfigurationsdatei des Items konfigurieren.
| Key | Values | Default |
|---|---|---|
temporaryPermissions | String List | none |
Beispiel
temporaryPermissions:
- elitequest.item_that_should_drop_only_during_quest.yml
questAcceptDialog
Legt den Dialog fest, der im Chat bei der Quest-Annahme erscheint.
| Key | Values | Default |
|---|---|---|
questAcceptDialog | String List | none |
Beispiel
questAcceptDialog:
- "My hero! You are so helpful!"
- "I wish you the best of luck!"

questCompleteMessage
Legt den Dialog fest, der im Chat beim Abschließen der Quest erscheint.
| Key | Values | Default |
|---|---|---|
questCompleteMessage | String List | none |
Beispiel
questCompleteMessage:
- "My hero! You have completed my difficult quest!"
- "As a reward you can have this loaf of bread!"

questCompleteCommands
Legt die Befehle fest, die beim Abschließen der Quest ausgeführt werden. Unterstützt Platzhalter: $player für den Spielernamen und $getX, $getY, $getZ für die Koordinaten des Spielerstandorts.
| Key | Values | Default |
|---|---|---|
questCompleteCommands | String List | none |
Beispiel
questCompleteCommands:
- say $player has finished a quest at $getX, $getY, $getZ!
- give $player diamond 1
![]()
turnInNPC
Legt den Dateinamen des NPCs fest, mit dem die Spieler sprechen/interagieren müssen, um die Quest abzuschließen. Dies muss nicht derselbe NPC sein, der die Quest ausgegeben hat.
| Key | Values | Default |
|---|---|---|
turnInNPC | Filename | none |
Beispiel
turnInNPC: my_cool_quest_npc.yml
Quest Givers
Um eine Quest einem NPC zuzuweisen, der sie den Spielern gibt, müssen Sie die NPC-Datei konfigurieren, nicht die Quest-Datei.
In Ihrer NPC-Konfigurationsdatei (~/plugins/EliteMobs/npcs/) fügen Sie hinzu:
questFileName: my_quest.yml
Für NPCs, die mehrere Quests geben:
questFileName:
- quest_one.yml
- quest_two.yml
Weitere Informationen zum Konfigurieren von NPCs finden Sie in der Dokumentation zur NPC-Erstellung.
trackable
Legt fest, ob die Quest den Quest-Tracker verwendet.
| Key | Values | Default |
|---|---|---|
trackable | Boolean | true |
Beispiel
trackable: true
questLevel
Legt das Level der Quest fest. Dies ist nur eine visuelle Anleitung, damit die Spieler erkennen können, wie herausfordernd die Quest sein wird. Dies ändert nicht in irgendeiner Weise Boss-, Item- oder andere Level.
| Key | Values | Default |
|---|---|---|
questLevel | Integer | 0 |
Beispiel
questLevel: 10

questAcceptSound
Legt den Sound fest, der abgespielt wird, wenn eine Quest angenommen wird. Es ist möglich, sowohl Minecraft-Sounds als auch Sounds aus einem Resource Pack abzuspielen.
| Key | Values | Default |
|---|---|---|
questAcceptSound | String | none |
Beispiel
questAcceptSound: entity.experience_orb.pickup

questCompleteSound
Legt den Sound fest, der abgespielt wird, wenn eine Quest abgeschlossen (abgegeben) wird. Es ist möglich, sowohl Minecraft-Sounds als auch Sounds aus einem Resource Pack abzuspielen.
| Key | Values | Default |
|---|---|---|
questCompleteSound | String | none |
Beispiel
questCompleteSound: entity.player.levelup

Localization Support
Die folgenden Felder unterstützen Lokalisierung für mehrsprachige Server:
namequestLorequestAcceptDialogquestCompleteMessage
Dies ermöglicht es Ihnen, Übersetzungen für verschiedene Sprachen auf Ihrem Server bereitzustellen.
Permissions
Wie in den obigen Tabellen erwähnt, sind Permissions normalerweise Strings oder String Lists. Aber lassen Sie uns genauer darauf eingehen, wie Sie diese verwenden werden, um Quests zu sperren und freizuschalten.
Nehmen wir an, Sie erstellen quest_3 in einer Reihe von Quests, die Sie geplant haben, und Sie möchten nicht, dass Spieler quest_3 annehmen können, bevor sie quest_2 abgeschlossen haben. Wir würden die Quest-Datei folgendermaßen konfigurieren:
questAcceptPermission: elitequest.quest_2.yml
questLockoutPermission: elitequest.quest_3.yml
Indem wir questAcceptPermissions auf elitequest.quest_2.yml setzen, haben wir Spieler daran gehindert, quest_3.yml anzunehmen, bevor sie quest_2.yml abgeschlossen haben.
Indem wir questLockoutPermission auf elitequest.quest_3.yml setzen, haben wir Spieler daran gehindert, diese Quest zu erhalten, solange sie diese Quest bereits in ihrem Tracker haben oder wenn sie diese Quest bereits abgeschlossen haben. Dies hindert Spieler daran, die Quest wiederholen zu können.
Sollten Sie eine Quest erstellen wollen, die erst verfügbar wird, nachdem die Spieler eine Reihe von Quests abgeschlossen haben, würden Sie die Quest-Datei folgendermaßen konfigurieren:
questAcceptPermissions:
- elitequest.quest_2.yml
- elitequest.quest_3.yml
- elitequest.quest_4.yml
Wenn Sie möchten, dass Spieler bestimmte Items nur looten können, wenn sie die richtige Quest aktiv haben, können wir das mit temporaryPermissions erreichen. Wir würden eine Berechtigung in der Quest-Datei mit temporaryPermissions erstellen und dann eine übereinstimmende Berechtigung in der Item-Datei mit permission erstellen.
Zum Beispiel würden wir unsere Quest-Datei öffnen und Folgendes hinzufügen:
temporaryPermissions:
- elitequest.my_cool_item.yml
Dann würden wir die Item-Datei öffnen, in unserem Fall my_cool_item.yml, und dann Folgendes hinzufügen:
permission: elitequest.my_cool_item.yml
Beide Dateien haben nun übereinstimmende Berechtigungen, wodurch unser Item jetzt nur noch droppen sollte, wenn die Spieler die richtige Quest aktiv haben.
