- Tested Minecraft Versions:
- Source Code:
- https://github.com/Co0sh/BetonQuestBetonQuest is advanced and powerful quests plugin. It offers RPG-style conversations with NPCs and a very flexible quest system. Instead of being limited to creating "quest" objects with taking requirements and rewards upon completion, BetonQuest allows you to freely define what should happen (events), if it should happen (conditions) and what needs to be done for it to happen (objectives). Your quests don't have to look like "kill, bring, get reward": you can create multi-threaded stories, narrated with NPC conversations, with multiple endings affecting the player's gameplay in many ways.
Updating to BetonQuest 1.9? Read this.
- Minecraft 1.9, 1.10, 1.11 and 1.12 support
- Multiple choice conversations with NPCs using an inventory GUI
- Powerful event system: anything you want can happen anywhere in a quest
- Even more powerful condition system: you can limit whenever something should (or shouldn't) happen
- Journal in a book
- Backpack for quest items
- Advanced item handling which considers even text in books
- Party system allowing for creation of group quests
- Ability to create various reputation systems (points)
- Firing events for a players when they enter specified area (global locations)
- Daily quests or repeatable reward collection (delay objective)
- Variables in conversations - let the NPC tell how much more wood he needs!
- Quests can be organized into distributable packages
- Citizens2 NPC support
- Integrated with Citizens, Denizen, EffectLib, Heroes, HolographicDisplays, LegendQuest, Magic, McMMO, MythicMobs,PlaceholderAPI, PlayerPoints, Quests, RacesAndClasses, Shopkeepers, SkillAPI, Skript, Vault, WorldEdit and WorldGuard
- Multiple languages and easy translating
- API for creating your own events, conditions and objectives
- SQLite and MySQL support
- Last but not least, an active, open source project with development builds available
Imagine you have a conversation with an NPC. You can choose from multiple options, and the NPC will react differently, for example he will tell you to cut some trees when asked for a job. If you tell him that you accept his offer, an event will be fired. It will start an objective for getting wood. It will also "tag" you as someone who started the quest. From now on the NPC will check for that tag, and use different options in the conversation, for example telling you to hurry up.
When you complete the objective (by breaking wood blocks), the objective will fire another event. This one will "tag" you as someone who collected the wood. When you go back to the NPC and tell him about it, he will check (using a condition) if you actually have the wood in your inventory. If so, he will fire another event, giving you the reward.
There was no single "quest" object. This was only a conversation, which was firing events and checking conditions. The objective also wasn't a "quest" - it only added a tag when you collected the wood, nothing more. It could not exist on it's own. The same conversation on the other hand could start some other quests afterwards (for example mining some ore), so it's also not a "quest".
Don't be disappointed by my examples of getting wood and mining ore. These were only simplifications, so it's easier to explain the system. BetonQuest is capable of much more. You can add entries to player's journal based on the quests he's doing like in Morrowind, the conversations can be as multi-threaded as in Baldur's Gate and quests can be started by entering specific location like in Skyrim. You can create reputation systems, unique quest items, books that react to reading them and so on. Your quests can have multiple ways to different endings depending on players' decisions and they can require multiple players to do something.
You don't have to use BetonQuest for quests only. Conversations with NPCs can help your players, teleports them around the map, describe server features, buy or sell stuff, give ranks etc. The only limit is your imagination!
Documentation in PDF format
- Installation and Configuration
- Commands and Permissions
- Quick start tutorial
- Condition List
- Events List
- Objectives List
- Variables List
- Tips and tricks
- Frequently Asked Questions
- Info for developers
- Source at GitHub
Video guide (really outdated)
(Note that the author incorrectly uses objectives. In the objective event you have to specify name of the objective, not the whole instruction. The instruction goes to objectives.yml file. Still, this tutorial is better than 1.6 outdated version.)
BetonQuest uses metrics system to send anonymous data to bStats.org. It can be disabled in config.yml file in bStats folder, just set "enabled" to false.
BetonQuest features auto-updater. You can enable/disable this by setting "update.enabled" to true/false in configuration file. By default BetonQuest will download all bugfixes automatically but ask you before updating to a next major version. The plugin will backup all your data before each update and create changelog file. You will also receive a notification about the update when you join the server.
Development builds of BetonQuest can be acquired here. These builds have not been well tested and may contain a lot of bugs. Use them at your own risk!
If you want to make your life as a quest writer easier (and support me with a little donation), you can buy the dedicated editor here. It's way better than editing the files directly with Notepad. Currently I'm adding more advanced features like instruction editor. You can see the progress on GitHub ^^
Check out BetonQuestUploader, a bridge between the editor and the plugin. It allows you to let many users design quests without access to FTP.
There are 5 addons right now:
Advanced RPG quests and conversations with NPCs