NotQuests is a flexible, Minecraft 1.17.1 Quest plugin for Paper, featuring a complete GUI for player interactions, open & trusted source code and flexibility.
I created NotQuests for my own server, mc.notnot.pro and planned to keep it private. However, I don't have enough time to maintain it myself, so I just made it public.
You can find the releases here: https://github.com/AlessioGr/NotQuests/releases. A MySQL database connection is recommended and can be specified in the general.yml. Otherwise, SQLite will be used.
Quest Giver NPC:
What happens when you right click it:
Quest Accepting GUI:
Quest User GUI:
Preview Quests GUI:
Admin Commands (for quest creation):
Admin Commands - Quest Editing:
- Quests can be bound to Citizens NPCs
- Quests can also be bound to Armor Stands ⇒ 10000x better performance because Citizens is a laggy plugin. Especially if your armor stands are optimized in your paper configuration.
- Complete GUI for the user interface
- Player data is saved in MySQL, quest configuration data in a configuration file
- Quest Points
- Smart Command Tab Completions for all User and Admin commands
- Re-usable Actions for Triggers
- Multiple Quest Objectives:
- Break Blocks
- Collect Items
- Consume Items
- Deliver Items to NPC
- Escort NPC
- Kill Mobs
- Complete Other Quest
- Talk to NPC
- Command Triggers (to finish the objective)
- Multiple Quest Accept Requirements:
- Money
- Other Quest
- Permission
- Quest Points
- Multiple Quest Completion Rewards:
- Command
- Quest Points
- Multiple Triggers: (Triggers run console commands (= Actions) when activated. Triggers are set per-quest)
- Begin Quest or Objective
- Complete Quest or Objective
- Death
- Disconnect
- Fail Quest
- NPC dies (good for Escort NPC Quests)
- Enter World
- Leave World
- There's a lot more, I'll add that later. Triggers are extremely flexible by the way. Each trigger has an option to trigger only for certain objectives if they are active, quests, or worlds.
Requirements to run this:
- Paper 1.17.1 (Won't work on just spigot because the native Paper Kyori ChatComponents are used)
- Java 16
Optional:
- Citizens (Needed for Citizens NPC stuff to work. You can also use Armor Stands without Citizens, though)
- Vault
- MySQL Database (strongly recommended)
- PlaceholderAPI
Player Placeholders:
%notquests_player_has_completed_quest_QUESTNAME% %notquests_player_has_current_active_quest_QUESTNAME% %notquests_player_is_objective_unlocked_and_active_OBJECTIVEID_from_active_quest_QUESTNAME% %notquests_player_is_objective_unlocked_OBJECTIVEID_from_active_quest_QUESTNAME% %notquests_player_is_objective_completed_OBJECTIVEID_from_active_quest_QUESTNAME% %notquests_player_questpoints% %notquests_player_active_quests_list_horizontal% %notquests_player_active_quests_list_vertical%
- Load Player Data only when the player joins
- Complete GUI for Admin Commands
- Make Citizens optional
- Customized Armor Stands instead of Citizen NPCs for better performance. They will also contain the quests assigned to them directly in a PDC. Both Armor Stands and NPCs will be usable.
- Quest Timer Trigger
- MythicMobs Integration (kinda works already if you use Triggers)
- "Interactions" Plugin Integration
- Placeholder Requirements
- Technical: Give Quest NPCs the quests they offer directly (attach the quest names to the npc/to the trait) for performance boost
I'm not a professional programmer and made this just for fun. Code quality is close to 0. You won't find any comments or javadocs either. I just decided to publish it because, why not.