ScrollQuest - Paper Quests 1.6.0

An amazing quest plugin which is basically on paper, which can be claimed with a right click.

Hold Shift and click to select a range

Latest
Compatible with Minecraft 1.16.5 - 26.3
ScrollQuest v1.6.0
Quests that follow players across your network, and a fix for recovered scroll dupes.

🌐 Cross-Server Storage

Quests, progress, completions, claims and stats can now live in a shared database, so they follow players between the servers of a BungeeCord or Velocity network.

  • Storage: MySQL, MariaDB or MongoDB (4.2+), set in the new storage.yml
  • Instant sync, optional: add Redis or RabbitMQ and changes show up on other servers straight away instead of on the next sync
  • No duplicate rewards. Only one server can ever win a claim, even if a player switches servers mid claim or two admins force-claim at once
  • Progress adds up. Progress earned on two servers at the same moment is combined, never overwritten
  • Claim history is kept for 30 days by default
  • Fails safe. If the database can't be reached at startup, the plugin stops rather than splitting your data



Single server? Nothing changes. type: YAML stays the default and works exactly like 1.5.4.

New /quest storage command for admins shows the backend, server name, cached quests, unsaved progress and messaging status.

Find out more about setting up network storage here → greenarrowlol.github.io/ScrollQuest


📦 Moving From YAML to a Database

Set type to your database, set migration.migrate-yaml- true and restart. Your quest and stats files are imported and renamed to .migrated. On a network, each server migrates its own files and stats are added together.

This can't be undone. Once migrated, the server stays locked to that database. Take a backup first.

Switch to a database without turning on the migration and the plugin stays on YAML and tells you what to do, so nobody's quests get stranded.


🔧 Recover Dupe Fixed

/quest recover could hand out a second working scroll when the original was out of reach, like on another server, in another Multiverse-Inventories group or in PlayerVaults. Now recovering a scroll makes every older copy stop working. This applies on single servers too, and existing scrolls keep working.


🗺️ Multiverse-Core

worlds.blacklist now takes server:world entries, so one shared config.yml works when several servers have a world with the same name. Plain entries still apply everywhere.


📦 Upgrading

Drop in the jar and restart. storage.yml is created for you and the new messages are added to messages.yml on their own.

The jar is still small. MongoDB and RabbitMQ support downloads once, only on servers that pick them. YAML, MySQL, MariaDB and Redis download nothing.


Need help or found a bug? Join the Discord.
Read the documentation | Join the Discord

Enjoying the plugin? A ⭐ review goes a long way!
Download 0
No ratings yet
Purchase required

Compatible with Minecraft 1.16.5 - 26.1.2
ScrollQuest v1.5.4
A full admin menu, a way for players to get lost scrolls back, and four separate walk-farming holes closed.

🛠 Admin GUI

/quest admin opens a menu for managing players and missions, behind op or scrollquest.admin.gui.

  • Manage Players lists everyone online, and clicking one opens their active quests, paginated for players carrying a lot
  • Each quest has Force Complete, Force Claim, and Delete. Delete removes the quest data and pulls the physical scroll if the player is online
  • /quest admin <player> skips the picker and works even when that player is offline, so you can clear a broken quest for someone who is not logged in
  • Manage Missions toggles a mission on or off. A disabled mission stops appearing in the random roll from /quest give, while /quest givemission can still hand one out by id
  • Every screen is reskinnable in menus.yml, titles and materials included



Force Claim now removes the scroll from the player's inventory the same way a normal claim does, including one stored in their ender chest. Scrolls kept inside third-party storage plugins such as PlayerVaults are out of reach and are not touched.


📜 Getting Lost Scrolls Back

/quest recover opens a menu of quests whose scroll is genuinely gone and hands back a fresh one with its progress intact. Any player can use it, no extra permission needed.

  • Only genuinely lost quests are listed. A scroll dropped on the ground nearby, or tucked inside a shulker box in the inventory, counts as found and stays out of the list
  • Reissuing never duplicates. Clicking twice returns a message instead of a second scroll, and a full inventory drops the reissued scroll at your feet rather than losing it
  • Lost quests now survive the cleanup task. They used to be deleted out from under the player before they ever got a chance to recover them

🚶 Walk Quests Can No Longer Be Farmed

WALK_BLOCKS progress now counts horizontal movement on foot and nothing else. Four separate ways of racking up progress without walking are closed:

  • /fly and creative flight
  • Elytra gliding, ascending and descending alike
  • The fall after dropping out of flight, which made a height and a macro into free progress
  • Jumping on the spot, which used to tick twice per jump without going anywhere



Normal walking, stairs, hills, and sprint-jumping across flat ground all count exactly as they did before.


🧩 Nexo Rewards and Targets

  • ITEM rewards can hand out a Nexo item. Both nexo-item: forest_axe and nexo-item: nexo:forest_axe are accepted, an unknown id gives a clear console warning instead of failing quietly, and a full inventory drops the item at the player's feet
  • Set display-name on the reward to control what the scroll lore shows instead of the raw Nexo id
  • Mission targets can point at a Nexo block with target-material: "nexo:<block_id>" on MINE_SPECIFIC_ORE, CHOP_SPECIFIC_TREE, HARVEST_SPECIFIC_CROP, and PLACE_BLOCKS. Only that block counts, not a vanilla block sharing the same base material
  • Nexo stays optional. Without it the plugin starts normally and notes that it is not present

⌨️ Commands and Permissions

  • Command aliases: command-aliases in config.yml is empty by default. Add - "q" and /q behaves exactly like /quest. If another plugin already owns that command, the first one registered keeps it
  • Exact targets: /quest givemission <player> <mission> <quantity> [target] takes an optional fifth argument that pins the target instead of rolling one from the mission's rarity range. Tab-completed quantities now stay within a stack
  • Player commands are no longer gated behind admin. A normal player can run toggle actionbar and recover, while give, givemission, reload, and admin still need permission

✨ Smaller Improvements

  • The actionbar shows the final tick of a quest, 3/3, instead of freezing one short
  • A single-item reward reads as just its name, with no 1x in front. Amounts above one keep the prefix, and the two formats are separate keys in messages.yml, lore.reward-item and lore.reward-item-single
  • Quest data is saved in batches rather than continuously, so a server full of walk quests no longer hitches

⚠️ Upgrade Notes

  • Restart, do not just reload. config.yml, messages.yml, and menus.yml migrate on a fresh load, and your own values and translations are kept as they are
  • Help lines render again. A migration fault left new lines such as the help entries showing "Message not found" on upgraded servers
  • Orphan deletion is now opt-in. cleanup.delete-orphaned-quests ships as false so lost quests stay recoverable. Set it to true for the old behaviour, where quest data for a missing scroll is eventually deleted

📦 Install

Replace the old jar in plugins/ with the new one and restart. Quest data, missions, and your config files carry over.


📋 Version Breakdown

Version Focus
1.5.4 Jumping on the spot no longer counts toward walk quests, only horizontal movement does.
1.5.3 The fall after dropping out of flight no longer counts toward walk quests.
1.5.2 Lost quests survive the cleanup task, elytra gliding excluded from walk quests, single-item reward lore drops the "1x".
1.5.1 Recover stops listing scrolls that are only dropped or stashed, flight excluded from walk quests, config and language migration fixed.
1.5.0 /quest recover, command aliases, exact targets on givemission, force claim removes the scroll, player commands opened to non-admins, Nexo reward ids fixed.
1.4.0 Admin GUI, Nexo item rewards and block targets, actionbar completion fix, batched saves.

Need help or found a bug? Join the Discord.
Read the documentation | Join the Discord

Enjoying the plugin? A ⭐ review goes a long way!
Download 0
No ratings yet
Purchase required

Compatible with Minecraft 1.16.5 - 26.1.2
ScrollQuest v1.3.0
Turn quest progress off per world, plus a config system that keeps your comments, your values and your custom missions on every update.

🌍 Per-World Blacklist

Quest progress can now be switched off in whichever worlds you name. Useful for creative worlds, plot worlds and spawn builds, where blocks are free and a player could otherwise finish a mining or building quest in seconds.

worlds:
  blacklist:
    - "creative"
    - "plotworld"

In a blacklisted world nothing counts toward a quest: no walking, breaking, placing, fishing or killing, and sweet berry bush harvesting is covered too.

  • Claiming still works everywhere. A quest finished in survival can be claimed in a blacklisted world. Only earning progress is blocked
  • Giving quests works in any world, so staff are never blocked
  • World names are case-insensitive, and a name that matches no loaded world is simply ignored with no errors
  • Changes apply on reload, no restart needed
  • Empty by default, so nothing changes until you add a world

📄 Config Updates That Keep Your Work

Updating used to cost you every comment in the file. A real config went from 81 comment lines to 2. That is over.

  • Your values are never overwritten. An edited reward, message or rarity setting stays exactly as you set it
  • Your keys are never deleted. Custom missions and extra message keys survive every update
  • Your comments are kept, and new settings arrive with their own explanations
  • A broken file is left alone. A YAML syntax error used to fall back to defaults and could write that state back over your file. Now the plugin refuses to start, names the file, and touches nothing
  • Reload runs the same safe merge, so hand edits are checked rather than skipped



Two things worth knowing. Your files are rewritten in the bundled key order and quoting is normalised, though the values themselves are untouched. And a default mission you deleted comes back on the next start, as it always has. To retire one, rename it or empty its rewards.


🛠 Fixes

Place missions with no target material now count. Any PLACE_BLOCKS mission without a target-material silently ignored every block a player placed, so progress sat at zero forever and the quest could never be finished. Three of the four default place missions were affected.

A missing target now means any block counts. Missions that already had one were never affected, and the specific mission types are unchanged. Add target-material to a mission if you want it restricted to one block.

Active quests keep their stored progress, so a stuck place quest resumes counting from wherever it was.

Giving a random quest names the quest. It used to announce the number of quests given instead of the mission's display name. Both the player message and the admin confirmation now name it, and giving several at once lists what was rolled.


📦 Install

Stop the server, replace the old jar in plugins/ with ScrollQuest-1.3.0.jar, and start it again. Your files are migrated in place on first start, with nothing to do by hand. The new worlds section is added to your config with its explanatory comments, empty by default.


🧪 Compatibility

Minecraft 1.16 and newer on Spigot or Paper, Java 17 or higher.


Need help or found a bug? Join the Discord.
Join the Discord

Enjoying the plugin? A ⭐ review goes a long way!
Download 0
No ratings yet
Purchase required

Compatible with Minecraft 1.16.5 - 26.1.2

ScrollQuest v1.2.2

No More Silent Grinding on Expired Quests


🐛 Expired Quest Progress Fix

A fix for an annoying edge case from the quest expiration system, no more players grinding away on dead scrolls without realizing.

  • Expired quests now skip progress entirely - players can't accumulate progress on a scroll that's already past its expiration date
  • Stops wasted grinding - previously, players could rack up progress on expired quests but couldn't claim the rewards, leading to frustration
  • Existing behavior preserved - players still see the "expired" message when right-clicking, the change only affects silent background progression
  • Zero config required - just update the plugin and the fix is live

Update now and save your players from wasted grinding.

Need help? Join the support Discord: discord.arrowtan.cc

Download 0
No ratings yet
Purchase required

Compatible with Minecraft 1.16.5 - 26.1.2

ScrollQuest v1.2.1

Complete Date & Time Localization


🗓 Full Date Localization

Building on the rarity and lore localization from previous updates, you can now translate every part of expiration dates and time displays, completing the language overhaul for non-English servers.

  • Configurable month names - translate months in messages.yml (e.g. May → Mai, December → Diciembre)
  • Configurable time unit labels - swap 9d 23h to 9j 23h for French, or any other language convention
  • Configurable AM/PM labels - customize for 12-hour time format to match your locale
  • Time of day now shown on expiration - quests now display the exact expiry time, default format: MMM dd, yyyy hh:mm a
  • Pairs perfectly with the timezone support from v1.2.0 for a fully localized expiration experience

Update now and complete your server's localization.

Need help? Join the support Discord: discord.arrowtan.cc

Download 0
No ratings yet
Purchase required

Compatible with Minecraft 1.16.5 - 26.1.2

ScrollQuest v1.2.0

Time-Remaining Feedback & Expiration Polish


⏰ Expiry Time Warnings

Building on the quest expiration system from v1.1.9, players now get clear feedback on how much time they have left to finish a quest, no more guessing or losing track of expiring scrolls.

  • Right-click message - incomplete quests now show how much time is left when interacted with
  • Smart time formatting - displays in readable chunks like 3d 5h, 12h 30m, or < 1m, no clutter like 7d 2h 15m
  • Minutes only shown when relevant - kicks in only when less than a day remains, keeping the message clean otherwise
  • Fully translatable - new quest-incomplete-expiry key in messages.yml with %time-left% placeholder
  • Only appears when relevant - shows up only when expiration is enabled, the rarity has a non-zero duration, and time is actually remaining

🌍 Timezone-Aware Expiration

Expiration dates now respect your server's local timezone, perfect for international communities and accurate display across regions.

  • Configurable timezone - set your server timezone via expiration.timezone (e.g. Asia/Kolkata, America/New_York, Europe/Berlin)
  • Custom date format - tweak how expiration dates appear on quest lore via expiration.date-format using standard SimpleDateFormat patterns
  • Pairs cleanly with the lore expiration display so dates always match what your players actually see on the clock

🔧 Config Auto-Update Fix

  • Config auto-update now triggers properly on first load after updating, so new options added in future updates will actually show up in your config.yml without needing manual intervention

Update now and keep your players in the loop.

Need help? Join the support Discord: discord.arrowtan.cc

Download 0
No ratings yet
Purchase required

Compatible with Minecraft 1.16.5 - 26.1.2

ScrollQuest v1.1.9

Rarity Localization, Quest Expiration & Bug Fixes


🌐 Configurable Rarity Display Names

You can now fully translate or rename every rarity tier, perfect for non-English servers or unique server themes.

  • Customizable per rarity - rename Common to "Commun", Legendary to "Mythique", or whatever fits your server
  • Full color code support - use hex colors or legacy codes in your custom names
  • Set via display-name per rarity in config.yml
  • Pairs perfectly with the lore localization from v1.1.4 for a complete language overhaul

⏳ Quest Expiration

Stop quests from piling up in player inventories forever. Now you can set expiration times per rarity to keep your quest economy fresh.

  • Per-rarity expiration durations - set short timers for Commons and longer ones for Legendaries (e.g. Common "10d", Legendary "1mo")
  • Flexible unit support - use hours (12h), days (7d), or months (1mo)
  • Auto-cleanup on interaction - expired quests are removed when right-clicked, with a clear message to the player
  • Set 0 to skip expiration for any specific rarity
  • Disabled by default - enable via expiration.enabled: true in config.yml, existing quests are unaffected

🐛 Bug Fixes

  • Cactus column counting - fixed cactus columns not counting properly due to growth-stage detection treating them as immature
  • Bamboo saplings - now properly included in bamboo column counting
  • Chorus mission accuracy - chorus plant mid-stages no longer trigger progress, only chorus flowers (the actual harvestable part) count
  • Quest display names in messages - quest complete, claimed, received, and ActionBar messages now properly show your configured display name instead of the internal ID
  • Color codes in quest names - color codes now render correctly across all quest messages, no more raw & codes showing up

Update now and give your quest economy more polish.

Need help? Join the support Discord: discord.arrowtan.cc

Download 0
No ratings yet
Purchase required

Compatible with Minecraft 1.16.5 - 26.1.2

ScrollQuest v1.1.8

Smarter Column Plant Progress


🌾 Column Plant Counting

Harvesting tall plants now feels way more natural, breaking the base of a sugar cane stack credits you for the entire column, not just one block.

  • Works on sugar cane, cactus, bamboo, and kelp - all the classic stackable plants
  • Breaks count the full column above - chopping the 2nd block of a 5-tall sugar cane gives 4 progress instead of 1
  • No more tedious top-down harvesting - players can break from the base like they naturally would
  • Toggle-able - set progress-behavior.count-column-plants to false in config.yml if you want strict single-block counting
  • Enabled by default - no setup required, just update and go

Update now and make harvest missions feel right.

Need help? Join the support Discord: discord.arrowtan.cc

Download 0
No ratings yet
Purchase required

Compatible with Minecraft 1.16.5 - 26.1.2

ScrollQuest v1.1.7

Per-Rarity Completion Tracking


📊 Per-Rarity Quest Completion Placeholders

Building on the PlaceholderAPI integration from v1.1.6, you can now track how many quests each player has completed at every rarity tier, perfect for tiered leaderboards, role rewards, and player stat displays.

  • 5 new placeholders for per-rarity completion counts:
  • %scrollquest_completed_common% - Total Common quests completed
  • %scrollquest_completed_uncommon% - Total Uncommon quests completed
  • %scrollquest_completed_rare% - Total Rare quests completed
  • %scrollquest_completed_epic% - Total Epic quests completed
  • %scrollquest_completed_legendary% - Total Legendary quests completed
  • Case-insensitive - works with any capitalization
  • Fully backward compatible - existing %scrollquest_completed% total still works, no config changes needed
  • No data loss - existing player-stats.yml files load fine, new completions start tracking per-rarity from this update onward

Update now and build those tiered leaderboards.

Need help? Join the support Discord: discord.arrowtan.cc

Download 0
No ratings yet
Purchase required

Compatible with Minecraft 1.16.5 - 26.1.2

Includes Fixes for Sweet Berries

Download 0
No ratings yet
Purchase required

Compatible with Minecraft 1.16.5 - 26.1.2

ScrollQuest v1.1.6

PlaceholderAPI, Anti-Exploit & Reward Control


🔌 PlaceholderAPI Integration

ScrollQuest now plays nice with PlaceholderAPI, opening up a ton of possibilities for scoreboards, tab lists, chat formats, and custom GUIs.

  • 9 new placeholders covering completed quests, active quests, current quest details, and progress info
  • %scrollquest_completed% - Total quests completed by the player
  • %scrollquest_active% - Number of quests currently in progress
  • %scrollquest_quest_name%, _rarity%, _progress%, _target%, _percentage%, _type%, _completed%
  • Per-player quest completion stats are now tracked and persisted, perfect for leaderboards
  • PlaceholderAPI is a soft dependency, so the plugin still works fine without it

🛡 Anti-Exploit Protection

Stops players from cheesing quest progress by placing and breaking the same blocks over and over.

  • Player-placed block tracking - Breaking a block you placed yourself gives zero quest progress
  • Fully configurable via anti-exploit.track-placed-blocks in config.yml
  • Enabled by default, no setup required

🎁 Smarter Reward Control

More tools to fine-tune your economy and reward balance.

  • Chance-based rewards - Set a 0-100% chance per reward in missions.yml. Non-guaranteed rewards now show their drop percentage right in the item lore
  • Max rewards cap - Limit how many rolled rewards a player gets per claim, configurable per mission or per rarity
  • Fully grown crops only - HARVEST_SPECIFIC_CROP missions now require crops to be fully grown by default, no more breaking baby wheat for free progress

🌱 5 New Missions

Fresh content out of the box, no config tweaking needed.

  • Crimson Harvester - Chop crimson stems in the Nether
  • Warped Collector - Chop warped stems in the Nether
  • Chorus Picker - Harvest chorus flowers in the End
  • Kelp Farmer - Harvest kelp underwater
  • Sweet Berry Picker - Harvest sweet berry bushes

🐛 Bug Fixes

  • Nether wood support - Chop missions now properly recognize crimson and warped stems/hyphae
  • End and underwater crops - Harvest missions now correctly count chorus flowers, kelp, and kelp plants
  • Block-to-item mismatch - Missions for sweet berries, kelp, and chorus now work no matter which form (block or item) you configure them with
  • Auto-migration - Existing servers updating from v1.1.5 will automatically get the new mission defaults and crop settings, no manual config edits needed

Update now and keep your quest economy clean.

Need help? Join the support Discord: discord.arrowtan.cc

Download 0
No ratings yet
Purchase required

Compatible with Minecraft 1.16.5 - 26.1.2

Latest version of the plugin

Download 0
No ratings yet
Purchase required
Product Info
Statistics
194

Views

0

Purchases

0

Downloads

690.12 KB

File size

20.05.2026

Published

17.10.2026

Updated

Info
Supported software
Supported Versions
1.16.5 - 26.3
Share & Earn

Share and earn part of the profits, an estimated €0.9 per product sale.

Log in to get your link
Product Image
ScrollQuest - Paper Quests
ScrollQuest - Paper Quests