QuestForge
Quests you write in a file, played through a GUI
QuestForge is a quest plugin for Paper and Spigot, 1.17 to 26.x. You write each quest in a YAML file and players browse, accept and track them from a menu. It supports eighteen objective types, quest chains, daily, weekly or any-cooldown repeats, and rewards in money, XP, items, other currencies and commands. 257 example quests are copied onto your server the first time it starts.
How it works in play
- Quest log:
/questopens a menu with the player's active, available and completed quests, with pages for large lists. Hovering a quest shows its description, status and rewards. - Accepting: clicking an available quest asks for a confirmation.
/quest preview <id>shows the objectives and rewards first. - Tracking: the tracked quest shows its current objective in a boss bar and in the action bar.
/quest track <id>switches to another quest. - Objectives in order: a quest's objectives run one after another, in the order you wrote them. Progress is saved, so a restart doesn't lose it.
- Quest givers: assign quests to a Citizens NPC with
/quest admin npcand right-clicking it shows only the quests it offers.
The eighteen objective types
- KILL: a number of a vanilla mob, or a MythicMobs mob with
mythic_mob. - COLLECT: pick up a number of an item.
- CRAFT: craft a number of an item.
- REACH: get within a radius of a point in a world.
- TALK: right-click a Citizens NPC, with an optional line of dialogue.
- DELIVER: hand a Citizens NPC a number of items, which are taken from the player.
- MINE and PLACE: break or place blocks, any or one kind. Blocks a player placed don't count when they break them again.
- FISH, SMELT, ENCHANT and CONSUME: catch, smelt, enchant, or eat and drink, any item or one.
- BREED, TAME and SHEAR: any animal or one kind.
- KILL_PLAYER: defeat other players. The same victim counts once every ten minutes.
- WALK and PLAYTIME: walk a number of blocks or stay online a number of minutes.
Any item in an objective or a reward can be an ItemsAdder, Nexo, Oraxen or MMOItems item (item: nexo:ruby), and rewards can pay PlayerPoints, experience points, TokenManager tokens or an ExcellentEconomy / CoinsEngine currency next to the money.
Writing a quest
This is a complete quest file. Put it in plugins/QuestForge/quests/ and run /quest reload:
id: welcome
name: "<yellow>Welcome to the Server"
description: "Gather wood, craft a pickaxe, slay a zombie."
prerequisites: [] # quest ids that must be finished first
repeatable: none # none, daily, weekly, always or a cooldown like 6h
objectives:
- type: COLLECT
material: OAK_LOG
amount: 8
- type: CRAFT
material: WOODEN_PICKAXE
amount: 1
- type: KILL
entity: ZOMBIE
amount: 1
rewards:
money: 100.0 # needs Vault and an economy plugin
xp: 30
items:
- { material: BREAD, amount: 8 }
commands:
- "broadcast %player% finished the welcome quest!"The example quests
257 quests are copied into quests/ on first start: starter tasks, daily and weekly quests, five-tier profession lines (miner, farmer, fisher, lumberjack, adventurer), seasonal events, multi-part sagas, branching storylines and boss hunts. Edit them, delete the ones you don't want, or use them as templates. Deleted examples aren't copied back.
How to use it
- Install: drop the jar into
/pluginsand restart once. English is the default; setlanguage: esfor Spanish. - Review the examples in
plugins/QuestForge/quests/. Themythic_quests need MythicMobs, and the rank quests run permission commands you may want to change. - Write your own quests, one YAML file each, and run
/quest reload. No restart needed. - Set up NPCs (optional): select a Citizens NPC with
/npc selectand run/quest admin npc welcome bounty_hunterwith the quest ids it should offer./quest admin npcon its own lists them, and/quest admin npc clearremoves them.
Commands and permissions
- Everyone (
questforge.use):/quest,/quest preview <id>,/quest track <id>,/quest abandon <id>. - Operators (
questforge.admin):/quest reload,/quest admin start <player> <id>and/quest admin npc <ids>.
Placeholders
With PlaceholderAPI installed: %questforge_active_count%, %questforge_completed_count%, %questforge_current_quest_name% and %questforge_current_objective%.
Requirements
- Paper or Spigot from 1.17 to 26.x, forks like Purpur included, and Folia, on the Java version your server already uses.
- Optional: Vault (money rewards), PlayerPoints, TokenManager or ExcellentEconomy / CoinsEngine (currency rewards), ItemsAdder, Nexo, Oraxen or MMOItems (custom items in objectives and rewards), Citizens (quest givers, TALK and DELIVER), MythicMobs (custom mob targets), PlaceholderAPI (placeholders) and ParticleForge (effects).
- With Geyser, Bedrock players on phones and consoles get the quest menus as native Bedrock forms instead of a chest.
None of them is required. Quests that don't use them work without them. The plugin never refuses to start because an optional plugin is missing.
FAQ
Can one quest unlock another?
Yes. List the earlier quest ids under prerequisites. A quest can need several, so storylines can branch and join again.
Can quests be done every day?
Yes. repeatable: daily or repeatable: weekly lets a player take the quest again once the cooldown ends. Any other wait works too (30m, 6h, 1h30m), and always allows it again straight away. A misspelt value is reported in the console.
Do I need Citizens?
Only for quest-giver NPCs and the TALK and DELIVER objectives. Every other quest works from /quest.
Can I translate the messages?
Yes. English and Spanish are included in lang/, in MiniMessage, and missing keys fall back to English.
For questions or bug reports, use the discussion tab on this page or our Discord.