Skip to main content

Quest Format

Quest definitions live in plugins/FioCommunityQuests/quests/. Bundled examples are stored under src/main/resources/quests/.

Base structure

quest:
name: "<gold>Mine x120,000 Stone</gold>"
material: "STONE"
priority: 1
mode: coop
description:
- "<dark_gray>Community Quest</dark_gray>"
objectives:
duration: "1d"
type: "BLOCK_BREAK"
goal: 120000
required:
- STONE
- DEEPSLATE:2

Quest id

The file name is used as the quest id unless quest.id is set. For example:

quests/daily_miner.yml

becomes:

daily_miner

Modes

ModeMeaning
coopPlayers work together toward one shared community goal.
compPlayers compete through contribution ranking while the quest is active.

Duration

Supported time units include:

  • y
  • mo
  • w
  • d
  • h
  • m
  • s

Examples:

duration: "1d"
duration: "1d,1h"
duration: "2h,30m"

Required target points

Simple format:

required:
- STONE

Custom points per matching action:

required:
- DEEPSLATE:2

Special formats are used by some objective types, such as:

  • IRON_GOLEM;1000 for entity damage goals
  • EMERALD;FLETCHER for villager trading
  • SPEED;1 for potion tier
  • SHARPNESS:1 for enchant level

Event sections

Each quest can configure feedback for:

  • settings.whenStarted
  • settings.whenOnProgress
  • settings.whenCompleted
  • settings.whenFailed

Supported feedback includes bossbars, actionbars, messages, sounds, and command actions.

Rewards

Quest rewards can include:

  • rewards.custom
  • rewards.top_contributions
  • rewards.player_participated

Action examples:

  • [MESSAGE] <message>
  • [CONSOLE] eco give %player_name% 5000
  • [ITEM] DIAMOND 12
  • [EXP_LEVELS] +5
  • [EXP_POINTS] +1000
  • [CUSTOM:1]

For a full explanation of each objective action such as BLOCK_BREAK, TRADING, PLACEHOLDERAPI, and MANUAL, see Objective Actions.

Page note

This page is source-backed from bundled quest YAML files and Quest.java.