SupremeQuests

Description

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 messages
options:
  titles-enabled: false
titles:
  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 quest
progress-bar:
  symbol: '❙'
  length: 25
  color-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 quests
whitelist-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 quest
finish-quest-fireworks:
  - 'BURST;WHITE,LIME,GREEN'

Sounds

# Sounds  
finish-quest-sounds:
  - 'UI_TOAST_CHALLENGE_COMPLETE;0.5;1.0'
switch-button-sounds:
  - 'BLOCK_STONE_BUTTON_CLICK_OFF;1.0;1.0'

Progress menu

The progress menu will show you which quests you are currently on, this way you can quickly locate them.

# Progress memu options 
progress-menu:
  title: '&cActive Quests'
  no-quest-item:
    material: RED_STAINED_GLASS_PANE
    name: '&c&lNo active quest :('
    lore: []
    glow: false
  back-button-item:
    material: BARRIER
    name: '&c⤾ Back'
    lore: []
    glow: false
    slot: 22

Anti cheat

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.

Task configuration layout

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 broken
    block: "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 needed
    remove-items-when-complete: false         # (optional) take the items away from the player on completion - default: false
    update-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 killed
    mob: BAT                                 # name of mob
rewards:
  - "exp give {player} 50"
options:
  category: "killing"

walking

Walk a set distance.

tasks:
  walking:
    type: 'walking'
    distance: 10                            # distance in blocks to be travelled
rewards:
  - "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 caught
    item: COD                              # type of fish to be caught
rewards:
  - "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 potion
    data: AWKWARD                          # type of potion to be brewed           
    amount: 9                              # amount of potions to be brewed
    remove-items-when-complete: false      # (optional) take the items away from the player on completion - default: false
    update-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.

locked: # available, completed & progress
  material: PLAYER_HEAD:http://textures.minecraft.net/texture/f9ba7fef6a1a8bd899abae4a5b54cb0ece53badc677c1668bee0a4621a8

Name

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.

quest: miningstone1 # ID of the quest

Example quest

Here is an example of the miningstone1 quest.

        miningstone1: # ID
          locked:
            material: PLAYER_HEAD:http://textures.minecraft.net/texture/f9ba7fef6a1a8bd899abae4a5b54cb0ece53badc677c1668bee0a4621a8
            name: '&e&lStone quest 1'
            lore: 
            - '&7This quest consists of mining stone.'            
            - ''
            - '&fObjective:'  
            - '  &7???'
            - ''
            - '&fReward:'
            - '  &8◊ &d50 Experience'
            - ''  
            - '&c&lLocked'
            glow: false
          available:
            material: PLAYER_HEAD:http://textures.minecraft.net/texture/1fa532c63f655d00ee998a06151567a9449987434a6a8e416cf88f5bf337f464
            name: '&e&lStone quest 1'
            lore: 
            - '&7This quest consists of mining stone.'            
            - ''
            - '&fObjective:'  
            - '  &7Mine 50 stone'
            - ''
            - '&fReward:'
            - '  &8◊ &d50 Experience'
            - ''  
            - '&a&lClick here&r&7 to start this quest'           
            glow: false
          completed:
            material: PLAYER_HEAD:http://textures.minecraft.net/texture/50f4ef7d6c5d8da3618275223bdca147c9cfaac77d37e8ae81d757a593676ac2
            name: '&e&lStone quest 1'
            lore: 
            - '&7This quest consists of mining stone.'           
            - ''
            - '&fObjective:'  
            - '&7Mine 50 stone'
            - ''
            - '&fReward:'
            - '  &8◊ &d50 Experience'
            - ''   
            - '&aThis quest is completed!'               
            glow: false
          progress:
            material: PLAYER_HEAD:http://textures.minecraft.net/texture/5065182681e05b1fba7488981b4756398e8805e081d054726d8eb1a40e10efc0
            name: '&e&lStone quest 1'
            lore: 
            - '&7This quest consists of mining stone.'
            - ''
            - '&fObjective:'  
            - '&7Mine 50 stone'
            - ''
            - '&fReward:'
            - '  &8◊ &d50 Experience'
            - ''  
            - '     &a▸ %supremequests_progress_miningstone1:mining:50% &8(%supremequests_percent_miningstone1:mining:50%%)' 
            - ''  
            - '&c&lRight click&r&7 to cancel this quest'             
            glow: false
          slot: 11
          quest: NONE

Adding the quest to the subfolder

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.

For this quest we used the blockbreakcertain task.

#miningstone1.yml
tasks:
  mining:
    type: "blockbreakcertain"
    amount: 50
    block: "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 number
      rows: 6 # gui size 1-6
      title: '&cMining quests' # title of the mining quest gui
      main-menu-button: # button to return to the main category menu
        material: BARRIER
        name: '&C⤾ Back'
        lore: []
        glow: false
        slot: 48
      info-button: # information about the quests
        material: PLAYER_HEAD:http://textures.minecraft.net/texture/5e55f9a48acc42a01b881af726ffc1ac178789e3274cb2c1cdb12f57c
        name: '&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: false
        slot: 49
      status-button: # personal player info 
        material: IRON_PICKAXE
        name: '&e&lStatus'
        lore:  
         - '&fInformation:'
         - '  &8◊ &7Completed: &e{completed}'
         - '  &8◊ &7Available: &e{available}/3'
        glow: false
        slot: 50
      next-page-button: # next page for the specified category 
        enabled: true
        material: PLAYER_HEAD:http://textures.minecraft.net/texture/9c9ec71c1068ec6e03d2c9287f9da9193639f3a635e2fbd5d87c2fabe6499
        name: '&eNext page'
        lore: []
        glow: false
        slot: 26
        open-page: 1
      previous-page-button: # previous page for the specified category
        enabled: true
        material: PLAYER_HEAD:http://textures.minecraft.net/texture/816ea34a6a6ec5c051e6932f1c471b7012b298d38d179f1b487c413f51959cd4
        name: '&ePrevious page'
        lore: []
        glow: false
        slot: 18
        open-page: 0
      extra-buttons: # these buttons serve as decoration so players can easily identify what the quest is about
        stone-button:
          material: PLAYER_HEAD:http://textures.minecraft.net/texture/154818233c811873e85f5a4ea4429b75f23b6ae0ea6f5fc0f7bb420d7c471
          name: '&e&lStone quest'
          lore: []
          glow: false
          slot: 10
        coal-button:
          material: PLAYER_HEAD:http://textures.minecraft.net/texture/761c57974f102d3deb3c53d42fde909e9b39ccbc7f776e277575a02d51a1999e
          name: '&e&lCoal quest'
          lore: []
          glow: false
          slot: 19
        iron-button:
          material: PLAYER_HEAD:http://textures.minecraft.net/texture/101843ec43f088c963ffc3e2f71c66e3155943b177a1a35982b120f6f64822bc
          name: '&e&lIron quest'
          lore: []
          glow: false
          slot: 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.

        stone-button:
          material: PLAYER_HEAD:http://textures.minecraft.net/texture/154818233c811873e85f5a4ea4429b75f23b6ae0ea6f5fc0f7bb420d7c471
          name: '&e&lStone quest'
          lore: []
          glow: false
          slot: 10

Categories

We have 8 different categories, these categories consist of:

  • mining

  • lumberjacks

  • harvesting

  • killing

  • walking

  • fishing

  • gathering

  • brewing

Placeholders

Papi placeholders

%supremequests_completed_quests% - Shows the amount of completed quests.

%supremequests_total_quests% - Shows the total amount of quests available.

%supremequests_progress_<quest-ID>:<task-ID>:<amount>% - Shows the progress bar of the specified quest.

%supremequests_percent_<quest-ID>:<task-ID>:<amount>% - Shows the current progress in percentages.

<Task-ID> is the name 'task:' name inside your quest .yml located in the quest subfolder.

Last updated