Objective types
There are eighteen objective types. A quest can chain any number of them in any order; the player works through them one at a time.
| Type | What the player does | Needs |
|---|---|---|
KILL |
Kill mobs of one type, or a MythicMobs mob | MythicMobs only for mythic_mob |
COLLECT |
Pick up items from the ground | — |
CRAFT |
Craft items | — |
REACH |
Walk to a place | — |
TALK |
Right-click an NPC | Citizens |
DELIVER |
Hand items to an NPC | Citizens |
MINE |
Break blocks (ones a player placed do not count) | — |
PLACE |
Place blocks | — |
FISH |
Catch fish or treasure | — |
SMELT |
Take smelted items out of a furnace | — |
ENCHANT |
Enchant at an enchanting table | — |
BREED |
Breed animals | — |
TAME |
Tame animals | — |
SHEAR |
Shear sheep (or any shearable mob) | — |
CONSUME |
Eat or drink | — |
KILL_PLAYER |
Defeat other players (the same victim counts once every 10 minutes) | — |
WALK |
Walk, sprint or swim a distance, in blocks | — |
PLAYTIME |
Stay online, in minutes | — |
KILL
objectives:
- type: KILL
entity: ZOMBIE
amount: 10
entity is a Bukkit entity type name (SKELETON, SPIDER, ENDERMAN…). For a MythicMobs mob, use its internal name instead:
objectives:
- type: KILL
mythic_mob: SkeletonKing
amount: 1
COLLECT
objectives:
- type: COLLECT
material: ROTTEN_FLESH
amount: 10
Counts items the player picks up while the objective is active. Items already in the inventory do not count, and neither does anything a player threw on the ground.
CRAFT
objectives:
- type: CRAFT
material: IRON_SWORD
amount: 1
REACH
objectives:
- type: REACH
world: world
x: 100
y: 64
z: -200
radius: 10
description: "<yellow>Find the old watchtower"
Done when the player is within radius blocks of the point. Checked every reach-check-interval ticks (config.yml, 20 by default). description is optional and replaces the text in the quest log.
TALK
objectives:
- type: TALK
npc_id: 5
dialog: "The mayor is waiting for you at the town hall."
description: "<yellow>Talk to the guard"
Done when the player right-clicks the Citizens NPC with that id (/npc list shows ids). dialog is sent to the player in chat. description is optional; without it the log shows "Talk to
DELIVER
objectives:
- type: DELIVER
npc_id: 5
item:
material: WHEAT
amount: 16
The player right-clicks the NPC with the items in their inventory and they are taken. If they have fewer than amount, the NPC tells them how many they have.
MINE · PLACE
objectives:
- type: MINE
block: DIAMOND_ORE # optional: without it, any block
amount: 20
Blocks a player placed and broke again do not count for MINE, and nothing counts in creative mode.
FISH · SMELT · ENCHANT · CONSUME
objectives:
- type: FISH
item: SALMON # optional: without it, anything caught
amount: 10
- type: CONSUME
item: GOLDEN_APPLE
amount: 1
BREED · TAME · SHEAR
objectives:
- type: BREED
entity: COW # optional: without it, any animal
amount: 5
KILL_PLAYER · WALK · PLAYTIME
objectives:
- type: WALK
amount: 2000 # blocks
- type: PLAYTIME
amount: 60 # minutes
- type: KILL_PLAYER
amount: 3
Custom items
Wherever an objective takes an item (COLLECT, CRAFT, DELIVER, FISH, SMELT, ENCHANT,
CONSUME), it can be an ItemsAdder, Nexo, Oraxen or MMOItems item instead of a material:
objectives:
- type: COLLECT
item: nexo:ruby # itemsadder:<namespace>:<id> · oraxen:<id> · mmoitems:<TYPE>:<ID>
amount: 8
Only that exact item counts, and a plain material does not count custom items built on it.
Texts, names and chat prefix (1.8.1)
Every text a player reads is in lang/<language>.yml (language: in config.yml): the quest log, the
preview, objective lines and chat messages. Edit your copy in plugins/QuestForge/lang/ and run
/quest reload. New keys that your copy does not have yet are read from the jar.
objective:holds one line per objective type, with<what>for the block, item or mob.names:renames blocks, items and mobs by id in lower case, for objective lines:
names:
coal_ore: "Coal Ore"
zombie: "Zombie"
Ids you leave out are shown prettified (COAL_ORE "Coal Ore").
-
chat-prefixin config.yml replaces the " QuestForge:" in front of every message (MiniMessage), for examplechat-prefix: "<gold>Quests <dark_gray>»". Empty keeps the default. -
sdk:in the lang file names the shared menu buttons:close,previous,next,back,page(<page>/<pages>),confirm,cancel.