AlphaQuestsDocs v1.0.0
AlphaQuestsGuidesWriting quests

Writing quests

Add your own quests by dropping a YAML file in the quests folder.

On this page

Where quests live

Each quest is one YAML file inside plugins/AlphaQuests/quests/, usually in a folder named after its category. The file name without .yml is the quest id. It may use letters, digits, _ and -, up to 64 characters, and must be unique. A bad file is skipped with a console warning and the rest still load. Apply new files with /aquests reload.

A complete quest

tasks:
  quest:
    type: "blockbreak"
    amount: 500
    block: STONE
display:
  name: "&#FFE63D📖 &#808080| &#FFE63Dᴍɪɴᴇʀ"
  lore-normal:
    - " &#808080ᴍɪɴᴇ 500 ꜱᴛᴏɴᴇ"
  lore-started:
    - " &#808080{quest:progress}/500 ꜱᴛᴏɴᴇꜱ ᴍɪɴᴇᴅ"
  type: "DIAMOND_PICKAXE"
  itemflags:
    - "HIDE_ATTRIBUTES"
rewards:
  - "eco give {player} 6451.61"
  - "xp give {player} 15l"
placeholders:
  description: "&#808080ᴍɪɴᴇ 500 ꜱᴛᴏɴᴇ."
progress-placeholders:
  '*': "&#808080{quest:progress}/500 ꜱᴛᴏɴᴇꜱ ᴍɪɴᴇᴅ"
options:
  category: "miner"
  repeatable: true
  cooldown:
    enabled: true
    time: 21600
  sort-order: 1
SectionMeaning
tasksOne or more objectives. Each has a type, an amount and optional targets. See Task types.
displayThe menu item: name, lore-normal before accepting, lore-started once active, the icon type and itemflags. {quest:progress} is the live count.
rewardsA list of reward lines. See Rewards.
reward-displayOptional friendly text for the reward preview, useful for custom command rewards.
placeholders, progress-placeholdersThe description and progress text used by the tracker and placeholders.
options.categoryThe category id, which must exist in categories.yml.
options.repeatableWhether it can be done again.
options.cooldownenabled and time in seconds.
options.sort-orderPosition inside the category list.
requiresA list of quest ids that must be completed first. See Chains.
permissionA permission needed to accept the quest.

Task types

The type of a task is one of:

TypeCounts
blockbreak, miningBreaking blocks. Target with block or blocks.
blockplacePlacing blocks.
farmingHarvesting crops.
mobkillingKilling mobs. Target with mob.
playerkillingKilling players.
dealdamageDamage dealt.
fishingCatching fish. Target with item.
crafting, smelting, smithing, brewing, enchantingMaking and improving items. Target with item.
walking, glidingDistance travelled. Use distance as the amount. mode: elytra on a walking task is tracked as gliding.
taming, breeding, milking, curing, trading, resurrectingAnimal and villager actions, and totem use.
bucketfill, bucketemptyUsing buckets. Target with bucket.
consumeEating and drinking.
projectilelaunchingFiring projectiles. Target with projectile.
expearnExperience gained.

The target keys target, block, entity, material, mob, bucket, item and projectile are all accepted as the target of a task. Old names such as block_place and blockbreakcertain still work as aliases.

Rewards

Rewards run in this order: money, XP, items, commands, badges. Use {player} for the player name.

LineDoes
eco give {player} <amount>Pays through Vault. The streak bonus applies. Needs an economy provider.
xp give {player} <amount>Gives experience points. Add l for levels, for example 15l.
give {player} <material> <amount>Gives items. What does not fit is dropped at the player feet when features.drop-overflow is on.
badge <name>Grants a badge. The count is available as a placeholder.
anything elseRuns as a console command.
A reward that fails, such as money with no economy, logs Reward failed in the console and the remaining rewards still run. The eco and xp lines must use exactly the form shown, with the player name in place.

Categories

categories.yml defines the name, lore and icon of each category in the main menu. The bundled categories are daily, weekly, killer, miner, farmer, fisherman, lumberjack, hunter, builder, explorer, blacksmith and glider. Add a category by adding a block here, then point quests at it with options.category.