Quests are a great addition to your server as it gives your players the challenges they strive for in the survival experience! Not only is it satisfying to complete a quest, but they will also be richly rewarded. Our custom quest plugin is equipped with 726 quests by default and can easily be expanded by you!
General options
Title messages
Titles can be displayed when a player either starts or completes a quest.
# Title messagesoptions:titles-enabled:falsetitles:quest-start:title:"&2&lServer quest"subtitle:"&astarted successfully!"quest-complete:title:"&2&lServer quest"subtitle:"&acompleted successfully!"
Progress bar
When you started a quests, for example 'Mining stone', a progress bar will be displayed when you are mining stone so you can see your progress at all times.
# Progress bar shown when you are on a questprogress-bar:symbol:'❙'length:25color-filled:'&a'color-empty:'&7'message:'{progress} &7({percent}%)'#actionbar
Whitelisted worlds
Worlds on this list can be used by players to complete quests. A world that is not on this list will not keep track of a player's progress and therefore not work to complete quests.
# Worlds where the quests are enabled/where players are able to complete questswhitelist-worlds: - world_resources - world_survival - world_nether - world_end
Fireworks
When a player completes a quest a firework will be summoned to celebrate their completion.
# Firework when finishing a questfinish-quest-fireworks: - 'BURST;WHITE,LIME,GREEN'
Our anti cheat feature ensures that people cannot speed up a mining quest by breaking and placing the specific mining block that they have to mine for the quest. This way, the quests are achieved in a legitimate way.
# The actions to execute against players who are trying to cheat.# Actions:# message: "Message to be sent to the player." | Sends a message to the player. Default: none# commands: | A list of commands to be ran. Default: none# - "msg %player% Command to execute." | Use %player% for the player's name. actions:1:commands: - "rawmsg %player% false &cYou can only break blocks that are naturally generated." - "supremetitles %player% anti-cheat-quests-first"
You can add as much commands/warnings as you wish.
Tasks
Task types
The following task types come with the plugin and are activated by default.
This shows you how to lay out the task types in the config. This should be under the tasks section in the quest. Make sure indentation is correct with the YAML file!
blockbreakcertain
Break a set amount of a specific block.
tasks:mining:type:"blockbreakcertain"amount:50# amount of blocks to be brokenblock:"STONE"# name of block (can be id or minecraft name)rewards: - "exp give {player} 50" - "lp user {player} permission set level.1"options:category:"mining"repeatable:true
inventory
Obtain a set of items.
tasks:gathering:type:'inventory'item:KELP# name of item (can be id or minecraft name)amount:100# amount of items neededremove-items-when-complete:false# (optional) take the items away from the player on completion - default: falseupdate-progress:true# takes the amount of items being gathered and counts it towards the progress (do not change)rewards: - "exp give {player} 50"options:category:"gathering"
mobkillingcertain
Kill a set amount of a specific entity type
tasks:killing:type:'mobkillingcertain'amount:5# amount of mobs to be killedmob:BAT# name of mobrewards: - "exp give {player} 50"options:category:"killing"
walking
Walk a set distance.
tasks:walking:type:'walking'distance:10# distance in blocks to be travelledrewards: - "exp give {player} 10"options:category:"walking"
fishingcertain
Catch a set amount of a specific item from the sea.
tasks:fishingcertain:type:'fishingcertain'amount:3# amount of fish to be caughtitem:COD# type of fish to be caughtrewards: - "exp give {player} 50" - "lp user {player} permission set level.13a"options:category:"fishing"
brewing
Brew a set amount of specific potions.
tasks:brewing:type:'brewing'item:POTION# type of potiondata:AWKWARD# type of potion to be brewed amount:9# amount of potions to be brewedremove-items-when-complete:false# (optional) take the items away from the player on completion - default: falseupdate-progress:true# takes the amount of items being brewed and counts it towards the progress (do not change)rewards: - "exp give {player} 50"options:category:"brewing"
Creating a quest
Each file inside the quests subfolder represents a single quest. The name of the file represents the quest id and must be alphanumeric.
Quest ID
The quest ID is the name of the file and must alphanumeric and unique. This ID is used as the reference in players' quest progress file and in placeholders as well.
miningstone1:# This is the quest ID and used as referral inside the quests subfolder
Material
This is the item which will be shown to the player in the quest gui. There are 4 types of materials for each quest; locked, available, completed and progress. Each material for each type can be changed in the config.
The name of the item. This is also the name used in chat messages.
name:'&e&lStone quest 1'
Lore
The lore (description) of the item as seen if the quest menu. Each topic (locked, available, completed and progress) has it's own lore.
lore:# lore for when the quest is locked- '&7This quest consists of mining stone.'- ''- '&fObjective:' - ' &7???'- ''- '&fReward:'- ' &8◊ &d50 Experience'- ''- '&c&lLocked'
Requirements
Our quests system works as follows, there are 6 different levels for 1 type of quest of which 1 the easiest and 6 the most difficult. For this we have to set different requirements so that when you have achieved quest 1 you can continue with quest 2.
Let's take mining quest stone as an example. The ID of the first mining stone quest is miningstone1. This quest does not need any requirements because this is the first quest, so we set the quest requirement to NONE.
quest:NONE
For the next level (miningstone2) we do need a requirement, because this quest requires level 1 to be completed. So we set the requirement to be miningstone1.
To display the actual quest you will need to create a extra file which will include the details of what the quest will contain. There are 6 different tasks you can choose from.
Let's again take the miningstone1 quest as an example. The first thing to do is to create an empty .yml file where you can fill in the requirements for the mining stone 1 quest and rename it to the quest ID you want to use, in this case miningstone1.yml.
#miningstone1.ymltasks:mining:type:"blockbreakcertain"amount:50block:"STONE"rewards: - "exp give {player} 50" - "lp user {player} permission set level.1"options:category:"mining"repeatable:true
This file has to be placed inside quests sub folder.
Creating a new page
You can create as much pages as you'd like for each category.
# mining:'0':# page numberrows:6# gui size 1-6title:'&cMining quests'# title of the mining quest guimain-menu-button:# button to return to the main category menumaterial:BARRIERname:'&C⤾ Back'lore: []glow:falseslot:48info-button:# information about the questsmaterial:PLAYER_HEAD:http://textures.minecraft.net/texture/5e55f9a48acc42a01b881af726ffc1ac178789e3274cb2c1cdb12f57cname:'&e&lInformation'lore: - '&7Take up the &fchallenge&7 with our' - '&7server quests! These quests will' - '&7consist of different activities.' - '&7You can earn a reward for' - '&7every quest you comlpete.' - '' - '&aCan you complete them all?'glow:falseslot:49status-button:# personal player info material:IRON_PICKAXEname:'&e&lStatus'lore: - '&fInformation:' - ' &8◊ &7Completed: &e{completed}' - ' &8◊ &7Available: &e{available}/3'glow:falseslot:50next-page-button:# next page for the specified category enabled:truematerial:PLAYER_HEAD:http://textures.minecraft.net/texture/9c9ec71c1068ec6e03d2c9287f9da9193639f3a635e2fbd5d87c2fabe6499name:'&eNext page'lore: []glow:falseslot:26open-page:1previous-page-button:# previous page for the specified categoryenabled:truematerial:PLAYER_HEAD:http://textures.minecraft.net/texture/816ea34a6a6ec5c051e6932f1c471b7012b298d38d179f1b487c413f51959cd4name:'&ePrevious page'lore: []glow:falseslot:18open-page:0extra-buttons:# these buttons serve as decoration so players can easily identify what the quest is aboutstone-button:material:PLAYER_HEAD:http://textures.minecraft.net/texture/154818233c811873e85f5a4ea4429b75f23b6ae0ea6f5fc0f7bb420d7c471name:'&e&lStone quest'lore: []glow:falseslot:10coal-button:material:PLAYER_HEAD:http://textures.minecraft.net/texture/761c57974f102d3deb3c53d42fde909e9b39ccbc7f776e277575a02d51a1999ename:'&e&lCoal quest'lore: []glow:falseslot:19iron-button:material:PLAYER_HEAD:http://textures.minecraft.net/texture/101843ec43f088c963ffc3e2f71c66e3155943b177a1a35982b120f6f64822bcname:'&e&lIron quest'lore: []glow:falseslot:28
Page number
The page number ('0':) has to be unique at all time. For the sake of ease I suggest starting from 0 and counting up along the way. The next-page-button: and previous-page-button: are used to switch pages, the open-page: # represent the page it will go to once you click on it.
So, if you want to add a second page ('1':), your open-page: number should be 1 for the next-page-button:. And your open-page: for the previous-page-button: should still be 0 as that is still your previous page number.
Extra buttons
We've added this option so we could decorate our menus how we'd like, and so can you!
extra-buttons:# button-1
You can add as many 'decoration blocks` to the menu as you'd like. Keep in mind that the ID name has to be unique.