nineMinecraft is a joke site.
nineMinecraft is in no way affiliated with Modrinth or 9minecraft. (And frankly, who wants to be affiliated with the latter?)
Filter loader...
Filter versions...
Filter channels...

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 use rightClickSelect (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.
  • Action rewards work again - /qa edit <quest> rewards add Action … no longer errors out.
  • /qa edit <quest> npcs list is readable - it shows citizens: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 progress formatting 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

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 MilkCow objective. 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 /notquests again. Its notquests.use permission (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 KillMobs objective (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, or ActiveQuests) under /qa conditions add no longer crashes.
  • /qa conditions add no longer rejects valid input with "Invalid syntax", so you can actually create those conditions now.
  • /nq abort works again instead of throwing an error, including when you have no active quests.
  • /nq abort, /nq progress, /qa failQuest, and /qa completeQuest no 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
  • [!] 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
  • [^] updated BQ integration interceptor to work with the latest version
  • [+] Now you can finally customize the category GUI items (default is chest) using /qa categories edit categoryname guiItem ...
  • maxAccepts => limits.accept, limits.complete, limits.fail. maxAccepts did not make sense, as it counted the completions and not the accepts
  • New variables: QuestReachedMaxCompletions and QuestReachedMaxFails
  • /qa edit questname acceptCooldown complete ...

External resources


Project members

Alessio

Owner


Technical information

Project ID