
NotQuests
Best Paper-native Quest Plugin ✅ Better than "Quests" ⭐ Tasks ⭐ Multi-Path Objectives & Sub-Objectives ⭐ RPGs ⭐ Multi-Path Conversations ⭐ Reputation Systems ⭐ Tags ⭐ Conditions ⭐ Profiles ⭐ GUI ⭐ Proxy Support ⭐ MiniMessage & Adventure ⭐ & much more!
This release rebuilds the entire command system on Paper's native command API and removes the third-party Cloud framework completely which doesn't seem to be actively maintained anymore. This should allow notquests to be updated to newer minecraft versions quicker.
✨ New features
- New
FeedMobsobjective. Counts how many times a player feeds a particular mob - wheat to a cow, seeds to a chicken, and so on - Helpful command menus are back. Typing an incomplete admin command -
/qa actions,/qa edit <quest> objectives,/qa conditions, … - now lists the available sub-commands instead of Minecraft's blunt "Unknown or incomplete command" error.
⌨️ A rebuilt command system
- No more Cloud. The command framework has been migrated entirely off the third-party Cloud library onto Paper's native Brigadier command API, behind a small in-house wrapper. They're the same commands you already know, just one fewer dependency that can break on an update.
- A more useful hint bar. The "what to type next" helper above your hotbar now shows the actual argument it wants -
[TagName],[Block],[amount]- instead of a generic, sometimes-wrong label, and no longer renders a double/. - Cleaner tab-completion. Suggestion lists are no longer cluttered by single-letter sub-command aliases or by an unselectable
<Enter String>entry when real values (blocks, tags, …) are available. - Flag values complete correctly. After typing flags that need a value - for example
--delayor--player— tab-completion now suggests the value for that flag instead of suggesting--delay/--playeragain.
🐛 Bug Fixes
GiveItemrewards and item objectives parse correctly.… rewards add GiveItem grass_block 1no longer fails with "Cannot parse item argument" - the item argument no longer swallows the amount that follows it. Comma-separated material lists work again too, unquoted:… GiveItem grass_block,dirt 1.- Your tags are suggested again. Adding a tag-based action or condition (
TagInteger,TagString, …) now tab-completes your existing tags instead of only offering<Enter String>. - Boolean values are suggested where you expect them. Commands like
/qa conditions check Flying equals <value>now suggesttrueandfalsefor the final value. - Conversation NPC lists are readable.
/qa conversations listnow shows attached NPCs as labels likecitizens:5 (Guard Captain)instead of dumping a raw Java-style object string. - Number variables that take more than one value work.
RandomNumberBetweenRange <min> <max>, block coordinates, and similar no longer have the first number eat the rest of the line. - Checking a
Blockvariable no longer errors./qa variables check Block <world> <x> <y> <z>returned aNullPointerExceptionbecause the y and z coordinates were mis-registered; it now returns the block at that position. - Commands with two value-flags behave. When a flag's value is omitted (e.g.
--min --max 3), the parser no longer mistakes the next flag for the missing value and silently drops it. - Category display names can contain spaces again —
/qa categories edit <category> displayName set Some Long Name- matching how quest display names already worked.
🛡️ Reliability
- Bad version-specific config values no longer crash loading. If a config contains a particle or item name that does not exist on this server version, NotQuests now logs a concise warning and falls back to a safe default instead of failing with a raw enum/config error. This covers general particle settings, GUI item materials, quest/category item stacks, and saved item-selection data.
- The bundled demo conversation no longer uses delays. The sample conversation now avoids delay settings
🛠️ Under the hood
- A real end-to-end command test now runs in CI. Every push boots an actual Paper server with the freshly built plugin and runs every registered objective, action, condition, trigger and tag type through the console, failing the build on error. This caught several of the fixes in this release.
✅ Compatibility
Built for Paper 26.1.2 and Java 25.
- New
This is a backport of NotQuests 6.2.0 for servers running Paper 1.21.11.
It includes the same 6.2.0 command-engine migration, command help/suggestion fixes, FeedMobs objective, runtime command sweep coverage, and reliability fixes from the main 6.2.0 release.
This build also handles invalid version-specific config values more gracefully: bad particles, GUI item materials, quest/category item stacks, and saved item selections now log a concise warning and fall back to a safe default for this server version instead of crashing load.
Required software
- Paper 1.21.11
- Java 21 or Java 25
- Optional NPC integrations are compiled against Citizens 2.0.41 and FancyNPCs 2.10.1.
This is a backport of NotQuests 6.2.0 for servers running Paper 1.21.1.
It includes the same 6.2.0 command-engine migration, command help/suggestion fixes, FeedMobs objective, runtime command sweep coverage, and reliability fixes from the main 6.2.0 release.
This build also handles invalid version-specific config values more gracefully: bad particles, GUI item materials, quest/category item stacks, and saved item selections now log a concise warning and fall back to a safe default for this server version instead of crashing load.
Required software
- Paper 1.21.1
- Java 21 or Java 25
- Optional NPC integrations are compiled against Citizens 2.0.35 and FancyNPCs 2.9.2.
The command experience got a serious glow-up, NPC quest givers behave the way you'd expect, and a whole stack of bugs are gone.
✨ The good stuff
⌨️ The command-hint bar has been polished:
- It tells you what comes next again -
[Quest Name],[amount], or<option>for sub-commands - instead of a useless[...]. - It sticks around when you pause instead of flickering away, and echoes what you're typing as you go.
- Number arguments are colorful again. ✨
🔖 New:
/qa tags check <tag> [--player]- peek at a tag's current value (reputation, flags, whatever) without having to remember its type. Perfect for debugging your tag setups.✦ FancyNPCs quest givers now sparkle. FancyNPCs with a quest attached finally show the floating quest-giver particle above their head, just like Citizens NPCs and armor stands do.
🤝 Smoother NPC setup. Attaching quests and conversations to NPCs now works exactly as documented - type
citizens:0/fancynpcs:<id>and it attaches to that NPC, or userightClickSelect(now suggested in tab-completion, for both quests and conversations) to just click the NPC in-game.🐛 Fixes
- "You don't meet the requirements" actually shows up now when you try to accept a quest you can't take - from an NPC, an armor stand, or the menu. Before, the menu just silently closed
- No more "Confirm Command Execution" popup when clicking conversation options or the chat
[CHOOSE]/[ACCEPT]buttons. Actionrewards work again -/qa edit <quest> rewards add Action …no longer errors out./qa edit <quest> npcs listis readable - it showscitizens:0/fancynpcs:<id>instead of a wall of internal gibberish.- The Citizens quest-giver particle disappears when you clear the quest from an NPC (it used to linger forever).
/qa progressformatting has been fixed
🔌 Integrations
- FancyNPCs updated from 2.10.0 to 2.10.1.
🛠️ Under the hood
- The command system now runs on Paper's native Brigadier - we no longer use LegacyPaperCommandManager
- It tells you what comes next again -
This release adds FancyNPCs support and a cow-milking objective, makes saving quest data a lot safer, brings every plugin integration up to its latest version, and fixes a long list of gameplay bugs.
✨ New features
- FancyNPCs support: FancyNPCs is now supported, alongside Citizens and armor stands.
- New
MilkCowobjective. Counts cows milked (detected by right-clicking a cow with an empty bucket), mirroring the Shear Sheep objective with an optional cancel flag.
🛡️ Reliability & data safety
- No more lost quest progress on a failed save. Player data is now saved inside a single database transaction, so a mid-save failure (full disk, lock timeout, dropped connection) rolls back cleanly instead of deleting data it cannot re-write.
- Thread-safety fixes around the online-player registry, a player's completed/failed/pending quest lists, quest tags (setting a tag to nothing now removes it), and conversation chat history - preventing rare crashes and data corruption.
- Visual effects on the main thread. Armor-stand quest-giver particles and the quest/objective completion title + sound now always run on the main thread, where Paper requires them.
🐛 Bug Fixes
- Non-OP players can use
/notquestsagain. Itsnotquests.usepermission (default on) was never registered on Paper, so non-operators got "Unknown command". The admin commands (/nqa,/qa) still require operator /notquests.admin. - Tab-completing a mob/entity argument (for
KillMobs,SpawnMob, …) no longer throws an error and shows suggestions again. - Killing an EcoMob now counts towards a matching
KillMobsobjective (the kill was never detected before). - "Reach job level" objectives now track your real Jobs level, including admin changes like
/jobs level add, and complete once you reach the target level. - Attaching a quest to an armor stand works again - the "add" item did nothing before. Right-click the armor stand with it.
- Quest previews from armor stand / FancyNPCs quest givers no longer error out, and the NPC quest-list GUI shows its proper title instead of "Language string not found".
🔌 Integration updates
Every supported plugin integration is now on its latest version (old → new):
- Citizens 2.0.30 → 2.0.42 (escort-NPC following moved to the new Citizens API)
- PlaceholderAPI 2.11.5 → 2.12.2
- MythicMobs 5.3.0 → 5.12.1
- EliteMobs 9.1.9 → 10.4.0
- WorldEdit 7.3.0 → 7.4.3
- LuckPerms 5.4 → 5.5
- Towny 0.98.4.4 → 0.103.0.0
- Jobs Reborn 4.17.2 → 5.2.6.5
- Floodgate 2.2.2 → 2.2.5
- eco 6.38.3 → 7.6.3
- EcoBosses 8.78.0 → EcoMobs 11.7.0 (the developer renamed EcoBosses to EcoMobs; existing eco-mob spawn actions keep working)
- Vault (1.7.1) and Slimefun (RC-37) were already current.
Nothing changes in how you use these - the plugin installed on your server is still what runs.
🧩 Dependency upgrades
- Adventure 4.18.0 → 4.26.1 (kept on the 4.x line to match Paper 26)
- commons-io 2.11.0 → 2.22.0
- PacketEvents 2.12.0 → 2.12.2
- geantyref 1.3.13 → 1.3.16
- Configurate 4.1.2 → 4.2.0
- Lombok 1.18.44 → 1.18.46
- SQLite 3.53.1.0 → 3.53.2.0
- Paper dev bundle build 64 → 69
- Shadow 9.4.1 → 9.4.2
- Gradle 9.0.0 → 9.5.1
🗑️ Removed
- UltimateJobs - no longer maintained; its integration and "reach job level" objective were removed. Jobs Reborn still covers job objectives.
- Leftover ZNPCs and BetonQuest references that were no longer used.
🛠️ Under the hood
- More reliable builds. Every plugin integration is bundled with the project as a local file instead of being downloaded from a third-party repository at build time, so a relocated/offline repo can no longer break a build.
✅ Compatibility
Built for Paper 26.1.2 and Java 25.
This release brings NotQuests up to the latest Paper version, refreshes all translations, and fixes a handful of annoying command bugs.
🧩 Dependency upgrades
- Updated to Minecraft / Paper 26.1.2.
- Newer InvUI 2.1.0 (the GUI library) and HikariCP 7.0.2 (database pooling).
🐛 Bug Fixes
- Tab-completing a boolean condition (like
Climbing,Flying, orActiveQuests) under/qa conditions addno longer crashes. /qa conditions addno longer rejects valid input with "Invalid syntax", so you can actually create those conditions now./nq abortworks again instead of throwing an error, including when you have no active quests./nq abort,/nq progress,/qa failQuest, and/qa completeQuestno longer get blocked by a bogus "accepting/previewing is disabled" message when the quest preview GUI is turned on.
🌍 Translations
- All 31 languages are back in sync with English. Outdated and renamed entries were cleaned up, and missing lines were filled in, while existing translations were left untouched.
🛠️ Refactors
- Reworked, nicer demo conversation. (
/qa conversations create namehere --demo)
This is a backport for paper 1.21.11
Breaking Changes
- Paper 1.21.1 is now supported
- Java 21 is now required (previously Java 17)
- Removed integrations: BetonQuest, zNPCs, and ProjectKorra have been temporarily removed to keep notquests simple and easier to maintain. If you relied on BetonQuest conditions/events, zNPCs NPC linking, or ProjectKorra objectives, these are no longer available.
New Features
Custom YAML-based GUIs
- The entire GUI system has been rewritten with a new YAML-driven GUI framework
- GUIs are now fully configurable via YAML files in the
plugins/NotQuests/guis/folder - Supports tabbed interfaces, paged item lists, and action buttons
- Default GUIs included: main menu with tabs (active quests / take quests), quest preview, NPC quest selection, category browsing, and quest abort confirmation
- Custom skull textures, dynamic placeholders (
%QUESTNAME%,%CATEGORYNAME%,%PLAYER%, etc.), and per-item lore/display name from the language file - Powered by InvUI
Breaking Changes
- Paper 26.1.1 is now supported. Older versions are no longer supported
- Java 25 is now required (previously Java 17)
- Removed integrations: BetonQuest, zNPCs, and ProjectKorra have been temporarily removed to keep notquests simple and easier to maintain. If you relied on BetonQuest conditions/events, zNPCs NPC linking, or ProjectKorra objectives, these are no longer available.
New Features
Custom YAML-based GUIs
- The entire GUI system has been rewritten with a new YAML-driven GUI framework
- GUIs are now fully configurable via YAML files in the
plugins/NotQuests/guis/folder - Supports tabbed interfaces, paged item lists, and action buttons
- Default GUIs included: main menu with tabs (active quests / take quests), quest preview, NPC quest selection, category browsing, and quest abort confirmation
- Custom skull textures, dynamic placeholders (
%QUESTNAME%,%CATEGORYNAME%,%PLAYER%, etc.), and per-item lore/display name from the language file - Powered by InvUI 2.0
- [+] Support paper 1.21.1
- [!] Remove unused dependencies. This reduces the size of notquests from 6.5 MB to 3.4 MB
- [!] Fix creation and saving of quest profiles not working (/nq profiles)
- [^] Upgrade various dependencies of notquests: betonquest, citizens, elitemobs, projectkorra, uclans, znpcs, floodgate, placeholderapi, crunch, hikaricp
- [@] Update various translations
- [+] Support paper 1.20.6
- [!] Disable UltimateClans support, as their maven repository for v5 has been deleted
- [+] Support mythicmobs factions in killmobs objective (mmfaction:yourfactionname)
- [!] Attempt to fix db issues
- [+] Support mythicmobs factions in killmobs objective (mmfaction:yourfactionname)
- [!] Attempt to fix db issues
- [!] fixed sqlite locking issues by limiting its max. connection pool size to 1.
- [+] Update to Paper 1.20
- [+] Update Citizens API so it supports the latest version
- [+] Support Minecraft 1.19.4 (Thanks to @BakaAless )
- [+] Drop Spigot support completely. This reduces the jar size!
- [+] Add AND and OR to boolean conditions (Thanks to @BakaAless )
- [^] return warning when using /qa editor command
- [!] Prevent unnecessary quest saves during plugin load. This should increase the load speed of NotQuests, especially if you have many Quests
- [!] fix OtherQuest objective task description not displaying the displayname of the other Quest
- [!] fix typo in Quest chat preview
- [!] fix conversation focus distance check erroring when player is in different worlds
- [!] fix QuestOnCooldown variable not working
- [@] Update a bunch of translations
-
[+] New objective: Enchant
-
[+] For conversations: Add random line possibility (Thanks to @BakaAless ). Instead of just "text:", you can now specify "texts:" as a string list inside of conversations. Showcase: https://github.com/AlessioGr/NotQuests/pull/189
-
[^] Update all kinds of dependencies
-
[^] Stop a moving Citizens NPC when in a conversation (Thanks to @BakaAless ). Showcase: https://github.com/AlessioGr/NotQuests/pull/188
-
[^] Allow minimessage format on quest-giver-npc-indicator-above-name (Thanks to @TheZexquex )
-
[^] Ability to check objective unlock conditions for:
- every time an action is run for a player (default: on)
- every X seconds (default: off)
This also fixes some faulty logic with repeating tasks. Stuff like condition objectives were checked too quickly/often if multiple players are online
-
[!] Fix quest giver hologram armorstand not getting destroyed when despawning npc (Thanks to @TheZexquex )
-
[!] Fix armor being visible in armor slots after completing DeliverItems objective (Thanks to @TheZexquex )
-
- [!] Finally fix lang tags being invisible inside custom gradient tags if they are not wrapped in a solid color. This removes the hard-coded blue color for translated material names and thus allows for more customization.
- [+] Better conversations: Conversation Focus! Thanks @BakaAless for adding this feature
- [!] Fix errors when a condition is executed from an async thread
