RPG

QuestForge

Quests you write in a file, played through a GUI

QuestForge cover

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.

QuestForge: menusQuestForge: progresoQuestForge: objetivosQuestForge: funcionesQuestForge: como se usaQuestForge: cifras

How it works in play

  • Quest log: /quest opens 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 npc and 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 /plugins and restart once. English is the default; set language: es for Spanish.
  • Review the examples in plugins/QuestForge/quests/. The mythic_ 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 select and run /quest admin npc welcome bounty_hunter with the quest ids it should offer. /quest admin npc on its own lists them, and /quest admin npc clear removes 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%.

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.

Commands

CommandWhat it does
/questQuest commands

Full command and permission reference in the docs ↗