-
Notifications
You must be signed in to change notification settings - Fork 65
Custom Quests
As of EliteMobs 7.3.10, it is possible for admins to create EliteMobs quests. The following is a comprehensive guide on the various features of these quests, as well as a guide on how to create them yourself.
EliteMobs comes prepackaged with a test_quest.yml
, which will be analyzed here as a simple quest format to follow.
Custom Quests are in the customquests
folder!
test_quest.yml
isEnabled: true
customObjectives:
- KILL_CUSTOM:filename=test_boss.yml:amount=1
customRewards:
- filename=magmaguys_toothpick.yml:amount=1:chance=1
name: Kill the Test Boss
questLore: '&cEnd the test boss'' reign of terror!'
Not all configuration fields are mandatory when creating quests, but the following are:
isEnabled: true
Sets whether the quest is enabled or not. This allows admins to quickly turn quests off and on.
customObjectives
Sets the list of objectives a quest has. Quests should have at least one objective, and have no upper limit. These are added as a String List
, which you can read about in the config section of this wiki.
Custom Objectives are constructed using the following format:
-
- KILL_CUSTOM
,- FETCH_ITEM
or- DIALOG
: Used to set the type of objective this represents.KILL_CUSTOM
indicates the quest involves killing a specific Custom Boss,FETCH_ITEM
indicates that the quest involves getting a specific Custom Item andDIALOG
indicates that the quest involves talking to an NPC. -
filename=your_filename_here.yml
: Used to set the file name of the Custom Boss or the Custom Item that the player has to kill / obtain. -
amount=x
: Used to set the amount of Custom Bosses that must be killed or items that must be obtained. -
dialog=x
: Used to set the dialog of the NPC the player talks to. -
name=x
: Used to set the name of the quest objective, be it an NPC or a custom item. For visual purposes only.
Please note that every Custom Objective field is separated with a :
!
customRewards
Sets the list of rewards a quest has. Quests should ideally have at least one, though it is not mandatory.
Custom Rewards are constructed using the following format:
Vanilla Items:
-
material=X
: Sets the material of the item that will be dropped. This requires using the right Spigot API names! -
amount=X
: Sets the amount of items of this material type to drop -
chance=X.Y
: Sets the chance of this reward dropping, where1
= 100% ,0
= 0% and0.5
= 50%
Custom Items:
-
filename=X.yml
: Sets the filename of the Custom Item that will drop. -
amount=X
: Sets the amount of items of this material type to drop -
chance=X.Y
: Sets the chance of this reward dropping, where1
= 100% ,0
= 0% and0.5
= 50%
Commands:
-
command=$player (...)
: Sets the command that will run upon quest completion. Uses the placeholder$player
which will be replaced of the name of the player that completed the quest. -
amount=X
: Sets the number of times the command will run -
chance=X.Y
: Sets the chance of the command running, where1
= 100% ,0
= 0% and0.5
= 50%
name
Sets the name of the quest. This will be used in GUIs such as the quest menu to let players know which quest they're doing.
questLore
sets the lore of the quest that the player will be doing. This will be displayed in menus such as the quest menu and should be used to add flavor to a quest or justify the quest objectives.
questAcceptPermission
Sets the permission that a player must have in order to accept a quest. If the player does not have the permission, they will not be able to open the menu associated to this quest.
questLockoutPermission
Sets the permission that will be assigned to the player at the end of a quest, which once given will prevent the player from accepting the same quest again similar to how questAcceptPermission
works.
questLockoutMinutes
Sets the amount of time, in minutes, before the questLockoutPermission
's permission is removed and the player is allowed to once again accept the quest.
temporaryPermissions
Sets the list of permissions that the player will be given when accepting the quest, and which will be removed once they complete the quest.
questAcceptDialog
Sets the list of chat message which will be posted in the player's chat after they accept the quest.
questCompleteDialog
Sets the list of chat messages which will be posted in the player's chat once they complete the quest.
questCompleteCommands
Sets the list of commands which will run once the player completes the quest. Accepts the following placeholders: $player
(replaced with the player's name), $getX
, $getY
, $getZ
(replaced with the X Y Z coordinates of the player)
turnInNPC
Sets the filename of the NPC where the quest must be turned in. Players will not be able to turn the quest in with the original quest giver, only with the target NPC set here.
questLevel = 0
Sets the level of the quest. This changes the level of the loot when it is generated through the limited and scalable loot types. Does not affect fixed items. Does not block players from accepting the quest.
trackable = true
Sets whether a quest can be tracked using the quest tracker.
Basic:
- Quick Setup
- Understanding the basics of EliteMobs
- Prestige System
- Config files
- Instanced Dungeon Difficulty
- Permissions and commands
- Dungeons
- FAQ
Custom Enchantments
Creation & Customization Guides:
- Creating custom bosses
- Creating custom items
- Creating custom events
- Creating custom spawns
- Creating custom quests
- Creating custom NPCs
- Creating treasure chests
- Creating Wormholes
- Creating Custom Powers / Elite Scripting
- Creating Arenas
- Dungeon Packager / Packaging EliteMobs content
- Item Upgrade System
- How damage works
Premade content:
Mechanics:
Game Modes:
Third party support: