Skip to content

Quest Configuration

Quest definitions are stored in:

plugins/KoraQuest/quests.yml

Complete quest format

quests:
  daily_break_stone:
    cycle: daily
    difficulty: EASY
    type: BREAK
    target: STONE
    required: 128
    material: STONE
    title: '&#75FF75Stone Worker'
    lore:
      - '&7Break stone to complete this quest.'
      - ''
      - '&fProgress: &e%progress%&7/&e%required%'
    requirements: []
    rewards:
      - 'eco give %player% 5000'
    filters:
      worlds: [survival]
      min-y: -64
      max-y: 320
      weapon: ANY
      spawn-reasons: []
      require-critical-hit: false
      regions: []
      require-own-island: false
      require-own-plot: false
      location: ''
      radius: 3.0
    rerollable: true
    permission: ''
    cooldown-seconds: 0
    season-xp: 10
    completion:
      sound: ENTITY_PLAYER_LEVELUP
      particle: TOTEM_OF_UNDYING

Main fields

Field Description
cycle Existing cycle ID from config.yml
difficulty EASY, MEDIUM or HARD
type Objective type
target Material, entity, integration ID or ANY
required Required progress; must be greater than zero
material GUI icon material
title Quest display name; supports colors and placeholders
lore Additional GUI description
requirements Requirement expressions evaluated before accepting
rewards Console commands executed by the safe reward queue
rerollable Allows the quest to be replaced
permission Optional permission required to use the quest
cooldown-seconds Optional cooldown before the quest can be used again
season-xp Seasonal experience awarded on completion

Built-in reward placeholders

%player%
%uuid%
%quest_id%
%quest_name%
%difficulty%
%difficulty_name%
%progress%
%required%

PlaceholderAPI placeholders are also resolved when PlaceholderAPI is installed.

Random reward values:

rewards:
  - 'eco give %player% {random:5000-10000}'

Objective types

Blocks and items

Type Typical target
BREAK Material, such as STONE
PLACE Material
CRAFT Crafted material
SMELT Result material
ENCHANT Enchanted material
CONSUME Consumed material
ITEM_PICKUP Picked-up material
ITEM_DROP Dropped material
ITEM_SUBMIT Submitted material
INTERACT_BLOCK Block material
POTION_BREW Potion or ingredient material
BUCKET_FILL Bucket/result material
TRADE_VILLAGER Traded material
REPAIR Repaired material
ANVIL Output material
SMITHING Output material
STONECUT Output material
LOOT_CHEST Looted material

Entities and combat

Type Typical target
KILL Entity type, such as ZOMBIE
BREED Entity type
TAME Entity type
SHEAR Entity type
INTERACT_ENTITY Entity type
DAMAGE_DEALT Entity type or ANY
DAMAGE_TAKEN ANY
HEAL ANY
DIE ANY
FISH Material, entity or ANY

Movement and activity

PLAYTIME
WALK
SPRINT
SWIM
FLY
GLIDE
JUMP
CHAT
COMMAND
LOGIN
VISIT_LOCATION
ENTER_WORLD
ENTER_REGION
EXP_GAIN
LEVEL_GAIN

Economy and external progress

VOTE
MONEY_EARN
MONEY_SPEND
CUSTOM

Custom IDs can use namespace syntax, for example:

target: 'itemsadder:ruby'

Filters

filters:
  worlds: [survival]
  min-y: 0
  max-y: 128
  weapon: DIAMOND_SWORD
  spawn-reasons: [NATURAL]
  require-critical-hit: true
  regions: [mine_a]
  require-own-island: true
  require-own-plot: false
  location: 'world,100,64,100'
  radius: 5.0
Filter Description
worlds Only count progress in these worlds
min-y / max-y Allowed vertical range
weapon Required held material or ANY
spawn-reasons Allowed Bukkit spawn reasons for entity objectives
require-critical-hit Require a critical attack
regions Require one of the specified WorldGuard regions
require-own-island Require membership/ownership through SuperiorSkyblock2 or BentoBox
require-own-plot Require PlotSquared membership/ownership
location / radius Require proximity to a configured location

Cycle examples

daily_hunter:
  cycle: daily
  difficulty: EASY
  type: KILL
  target: ZOMBIE
  required: 25
  material: IRON_SWORD
  title: '&#75FF75Zombie Hunter'
  lore: ['&7Defeat 25 zombies.']
  rewards: ['eco give %player% 5000']
weekly_miner:
  cycle: weekly
  difficulty: MEDIUM
  type: BREAK
  target: DEEPSLATE
  required: 2000
  material: DIAMOND_PICKAXE
  title: '&#7DE2FFDeep Miner'
  lore: ['&7Break 2,000 deepslate.']
  rewards: ['eco give %player% 50000']
monthly_playtime:
  cycle: monthly
  difficulty: HARD
  type: PLAYTIME
  target: ANY
  required: 36000
  material: CLOCK
  title: '&#DFA7FFDedicated Player'
  lore: ['&7Play for the required duration.']
  rewards: ['eco give %player% 250000']
summer_fishing:
  cycle: seasonal
  difficulty: HARD
  type: FISH
  target: COD
  required: 500
  material: FISHING_ROD
  title: '&#FFB84DSummer Fisher'
  lore: ['&7Catch 500 cod during the season.']
  season-xp: 100
  rewards: ['eco give %player% 300000']

Validate configuration

Run:

/quest admin validate

Use /quest admin types to list objective types and target hints in-game.