Quests
All seven quest types, their options, custom lore, and per-quest rewards.
Each rank holds any number of quests, defined in ranks.yml under that rank's quests: section. A quest is a small block of keys:
quests:
cobblestone:
type: BREAK_BLOCK
material: COBBLESTONE
amount: 300Quest keys
| Key | What it does | Required |
|---|---|---|
type | One of the quest types below | yes |
amount | The target number | yes |
material | Block or item for break, harvest, craft, deliver, and fish quests | depends on type |
entity | Mob type for KILL_MOB, default ANY | no |
placeholder | The PlaceholderAPI placeholder for PLACEHOLDER quests | for that type |
display-name | Custom objective text shown in the menu (this is the icon title) | no |
description | Extra lines shown under the title, see below | no |
icon | Custom menu icon (defaults to the quest material). Takes a material, MATERIAL:custommodeldata, or itemsadder:namespace:id, see icon formats | no |
lore | Custom menu text for this one quest, see below | no |
rewards | Rewards given the moment this quest completes, see below | no |
Quest types
BREAK_BLOCK
Break blocks of the given material. Covers mining, chopping logs, breaking leaves, anything that breaks.
coal:
type: BREAK_BLOCK
material: COAL_ORE
amount: 100
Anti-cheese: blocks placed by players do not count when broken again, so nobody farms a quest by placing and re-breaking the same block. Toggle with progression.anti-place-cheese in config.yml. The placed-block tracking resets on a server restart.
HARVEST
Break fully-grown crops of the given material (wheat, carrots, potatoes, and so on). Baby crops do not count, so players cannot spam-break seedlings.
wheat:
type: HARVEST
material: WHEAT
amount: 500KILL_MOB
Kill mobs. entity: ANY counts every mob, or set one type like ZOMBIE or SKELETON. Player kills never count.
zombies:
type: KILL_MOB
entity: ZOMBIE
amount: 150CRAFT_ITEM
Craft items of the given material. Shift-click crafting is counted correctly: a full batch counts as the whole batch, not as one craft.
bread:
type: CRAFT_ITEM
material: BREAD
amount: 100DELIVER_ITEM
Bring items back to the quest menu. The player clicks the quest icon and the items are consumed from their inventory; progress is stored, so it can be turned in across several trips.
seeds:
type: DELIVER_ITEM
material: WHEAT_SEEDS
amount: 256
FISH
Catch things with a fishing rod. Without a material, every catch counts. With one, only that exact catch counts.
fishing:
type: FISH
amount: 50
salmon:
type: FISH
material: SALMON
amount: 20The menu icon defaults to a fishing rod.
PLACEHOLDER
Completes when a numeric PlaceholderAPI value reaches amount. This is the bridge to every other plugin: job levels, vote counts, island levels, quest counts, anything that can be read as a number.
job-level:
type: PLACEHOLDER
placeholder: "%ecojobs_miner%"
amount: 5
display-name: "&7Reach Miner job level &e5"
icon: IRON_PICKAXEThe value is read live, and once it reaches the target the completion is saved, so it stays completed even if the value later drops. See Placeholders for known-good placeholder names, and test any placeholder in game with /papi parse me <placeholder> first.
If PlaceholderAPI or the plugin providing the value is missing, the quest simply stays at 0, and the console warns once about the unresolved placeholder.
Quest description
The quest icon's title is the objective (for example "Craft 20 Golden Apples"). By default the icon shows just that title, the progress line, and the status, nothing repeated. If you want to explain the quest in your own words, add a description: list and those lines show up right under the title.
golden_apples:
type: CRAFT_ITEM
material: GOLDEN_APPLE
amount: 20
description:
- "&7Craft golden apples at a"
- "&7crafting table to progress."The same {objective}, {progress}, {target} and {status} placeholders (see the table below) work inside description lines too. To change the title itself, use display-name. For full control over the whole icon text, use lore instead (below), which replaces everything.
Custom lore per quest
By default a quest icon shows the objective, the progress line, and the status. To write your own text for one specific quest, give it a lore: list. It fully replaces the default text for that quest.
The icon title is already the objective, so don't put {objective} as your first lore line or it shows up twice. Just write the extra text you want under the title.
These placeholders work inside the lines:
| Placeholder | Becomes |
|---|---|
{objective} | The quest's objective text |
{progress} | Current progress number |
{target} | The quest's amount |
{status} | The IN PROGRESS or COMPLETED line |
seeds:
type: DELIVER_ITEM
material: WHEAT_SEEDS
amount: 256
lore:
- "&7Bring the seeds back here and click!"
- ""
- "&7Progress: &e{progress}&7/&e{target}"
- "{status}"Color codes (&a style and &#rrggbb hex, see Colors) work everywhere, and with PlaceholderAPI any %...% placeholder or emoji works in names, lore and description too (see Placeholders). The icon's name stays the objective; use display-name to change that.
Per-quest rewards
A quest can pay out on its own, the moment it completes, separate from the rank rewards. Add a rewards: block with any of money, xp-levels, items, and commands:
seeds:
type: DELIVER_ITEM
material: WHEAT_SEEDS
amount: 256
rewards:
money: 500
items:
- "BREAD:16"
commands:
- "crates give {player} vote 1"The reward fires exactly once per completion and arrives together with the quest-completed chat message. The options are described in full on the Rewards page.
Progress rules worth knowing
- Progress always belongs to the player's current rank. Claiming a rank starts the next rank's quests from zero.
- Progress is saved per player and survives relogs and restarts. See Storage.
- The moment a quest reaches its target, the player gets a chat message (toggle with
progression.notify-on-quest-completeinconfig.yml).