BasicQuests
BasicQuests
Randomly generated basic quests with rewards for players. No initial configuration needed!
I would be very happy about any feedback, recommendations and new ideas! I'd love to visit a server using this plugin. Leave a message if you would like to welcome me :)
A spigot compatible Server is required to run this plugin!
Download the plugin and find the Project Page on SpigotMC and Bukkit.
How it works
Every player receives an initial number of quests (default: 3).
You can view your active quests by using /quests list
or /quests list rewards
.
When a player completes a quest, the reward can be received by clicking the reward button in the chat or by using /quests reward
.
As soon as a quest's reward has been collected, the quest disappears from the list, and a newly generated quest will be added.
By default, a player is allowed to skip one quest every 24h by using /quests skip
.
Some quests require the player to complete an advancement before they can be generated. Quests in the nether, for example, require the player to have completed the "Diamonds!" advancement.
Also, newly generated quests will increase in their quantities proportional to the players' playtime on the server: While a new player might receive a quest like "Mine 32 Iron Ore" a player with lots of playtime on the server would rather receive a quest like this "Mine 512 Iron Ore".
This feature can be precisely adjusted in the config.yml
or be turned off entirely.
Some quests are incredibly rare but promise very high rewards once completed. Each quest is assigned a number of stars (⭐) based on its difficulty. Collect stars by completing quests and compete with others on the leaderboard which can be viewed using /quests leaderboard
.
Quests
Quests are randomly generated in Basic Quests. Currently available quest types along with some examples are listed below:
- Mine Block
- Kill Entity
- Harvest Block
- Chop Wood
- Enchant Item
- Find Structure
- Trade with Villager
- Gain Level
- Reach Level
- Break Block
- Fish Item (new)
- Increase Stat (new)
Quest ideas I am thinking about implementing in the future:
- Breed Animal
- Tame Animal
- Smelt Item
- Brew Potion
Rewards
Possible Rewards are either Items, Money or XP. You can enable or disable each of these reward types in the config.yml
.
By default, only item-rewards are enabled. In order to use money-rewards you need to have an economy plugin connected via Vault.
If multiple reward types are enabled one will be chosen at random when a new quest is generated - at least one reward type must be enabled or BasicQuests will not work.
The value of a reward is proportional to the value of the quest and is multiplied by the reward-factor
which can also be adjusted in the config.yml
.
The value of a given quest is determined by a number of factors along its generation process.
While money and xp-rewards are self-explanatory I'll list some examples for item-rewards below:
- Tools (Iron - Netherite) (Maybe enchanted)
- Armor (Chainmail - Netherite) (Maybe enchanted)
- Smithing Templates
- Enchanted Books
- Potions (Only positive effects - extended (+) and upgraded (II) variants)
- Food
- Resources (Most of the valuable things you can find underground - From Flint to Netherite)
- Rare Items (Enchanted Golden Apple, Music Disks, Saddle, ...)
Quest Generation Customization
BasicQuest allows admins to fine-tune the quest generation on their servers using a bunch of yaml files in the quest_generation
directory.
This allows for:
- adjusting or removing the probability of quest types
- adjusting or removing the probability of specific quests within a quest type
- making certain quests more or less valuable. This will be reflected in the value of the reward.
- adjusting the amounts that appear in quests.
For further information about how to fine tune the generation process check out the readme file at plugins/BasicQuests/quest_generation/README.md
Example Quests
You now know what type of Quests and Rewards are available.
Here are some examples of randomly generated Quests along with their Rewards.
Remember that there are a lot of possibilities to tweak the Quest and Reward generation in the config.yml
and in the quest_generation
files.
Mine 144 Coal Ore (⭐⭐)
- 184 XP
Harvest 32 Potatoes (⭐)
- 4 Copper Ingot
- 1 Iron Hoe
Chop 160 Logs (⭐⭐)
- $ 228.00
Enchant a Diamond Axe (⭐)
- 4 Book
Fish a treasure (⭐⭐)
- 1 Iron Pickaxe: Efficiency IV
Find a Swamp Hut (⭐⭐⭐⭐⭐)
- 36 Emerald
- 1 Jukebox
Harvest 48 Wheat (⭐)
- $ 96.00
Harvest 16 Potatoes (⭐)
- 30 XP
Harvest 14 Chorus Flowers (⭐⭐⭐⭐⭐)
- $ 4,608.00
Find an End City (⭐⭐⭐⭐⭐)
- 1 Trident: Unbreaking I
- 1 Enchanted Book: Infinity
Kill 10 Cows (⭐)
- $ 120.00
Mine 48 Nether Quartz Ore (⭐⭐⭐)
- 1 Iron Boots: Unbreaking III
Enchant a Diamond Sword with Knockback I+ (⭐⭐)
- 4 Splash Potion: Regeneration +
Break 4 Amethyst Clusters (⭐⭐)
- 1 Iron Sword: Looting I
Find an Ocean Monument (⭐⭐⭐⭐)
- 10 Diamond
Drive 600m in a Minecart (⭐⭐⭐⭐)
- 1 Netherite Sword: Sweeping III
Catch 20 fish (⭐⭐)
- $ 352.00
Mine 4 Ancient Debris (⭐⭐⭐⭐)
- 6 Sea Lantern
- 48 Cooked Porkchop
Harvest 96 Carrots (⭐⭐)
- 3 Splash Potion: Water Breathing
Ride 2km on a Horse (⭐⭐⭐⭐)
- 1 Enchanted Book: Protection IV
- 1 Enchanted Book: Sweeping III
Chop 64 Logs (⭐)
- 1 Fishing Rod: Luck Of The Sea I
Play some Music (⭐⭐⭐⭐)
- $ 3,000.00
Level up 40 times (⭐⭐⭐)
- 1 Enchanted Book: Power V
Run 7,5km (⭐⭐⭐⭐)
- 12 Amethyst Shard
Chop 160 Logs (⭐⭐)
- $ 228.00
Trade with a Leatherworker 4 times (⭐⭐)
- 8 Ender Pearl
Enchant a Diamond Boots with Swift Sneak I+ (⭐⭐⭐)
- 921 XP
Find a Village (⭐⭐⭐)
- $ 840.00
Harvest 40 Nether Warts (⭐⭐⭐)
- 40 Quartz
- 1 Diamond Axe
Harvest 80 Sugar Cane (⭐⭐)
- $ 480.00
Harvest 112 Beetroots (⭐⭐)
- 2 Diamond
Find an Ocean Monument (⭐⭐⭐⭐)
- 1260 XP
Harvest 32 Sugar Cane (⭐)
- 1 Iron Leggings
- 1 Potion: Instant Health II
- 1 Iron Sword
Trade with a Farmer 2 times (⭐⭐)
- $ 320.00
Ring a Bell (⭐⭐⭐⭐)
- 1200 XP
Enchant a Diamond Chestplate with Unbreaking I+ (⭐⭐⭐)
- 614 XP
Find an Ocean Ruin (⭐⭐⭐)
- 64 Arrow
Find a Desert Pyramid (⭐⭐⭐)
- 1 Diamond Sword: Fire Aspect I
Trade with a Villager 8 times (⭐⭐)
- 345 XP
Reach level 45 (⭐⭐)
- 1 Enchanted Book: Unbreaking III
Kill 28 Endermen (⭐⭐⭐⭐⭐)
- $ 5,628.00
Trade with a Mason 8 times (⭐⭐⭐)
- 1 Diamond Axe
- 6 Potion: Instant Health II
Find a Shipwreck (⭐⭐⭐)
- $ 1,260.00
Trade with a Cleric 4 times (⭐⭐⭐)
- $ 960.00
Mine 160 Coal Ore (⭐⭐)
- 204 XP
Harvest 48 Brown Mushrooms (⭐⭐)
- 32 Arrow
Reach level 45 (⭐⭐)
- 247 XP
Enchant a Diamond Shovel with Fortune I+ (⭐⭐)
- 230 XP
Level up 40 times (⭐⭐⭐)
- 1 Enchanted Book: Respiration III
- 1 Chainmail Chestplate: Projectile Protection II
Harvest 40 Red Mushrooms (⭐⭐)
- 5 Emerald
Find a Desert Pyramid (⭐⭐⭐)
- 756 XP
Enchant 6 Books (⭐⭐)
- 1 Diamond Hoe
Trade with a Villager 12 times (⭐⭐⭐)
- $ 832.00
Break 6 Amethyst Clusters (⭐⭐)
- $ 640.00
Ride 11km on a Horse (⭐⭐⭐⭐⭐)
- 1 Netherite Sword: Looting II
- 1 Enchanted Book: Fire Protection IV
Travel 2km with a Boat (⭐⭐⭐)
- 1 Iron Shovel: Efficiency IV
- 1 Music Disc Pigstep
Chop 64 Logs (⭐)
- 61 XP
Run 15km (⭐⭐⭐⭐⭐)
- 12 Amethyst Shard
- 1 Snout Armor Trim Smithing Template
Trade with a Cleric 6 times (⭐⭐⭐)
- 1 Dune Armor Trim Smithing Template
Travel 1km with a Boat (⭐⭐)
- 420 XP
Enchant a Crossbow with Piercing III+ (⭐⭐⭐)
- 8 Blaze Rod
Harvest 48 Wheat (⭐)
- 4 Copper Ingot
- 1 Iron Pickaxe
Harvest 32 Bamboo (⭐⭐)
- 24 Flint
Harvest 32 Sugar Cane (⭐)
- 115 XP
Find a Village (⭐⭐⭐)
- 504 XP
Harvest 32 Sugar Cane (⭐)
- $ 192.00
Find a Nether Fortress (⭐⭐⭐⭐)
- 1 Enchanted Book: Protection IV
Chop 160 Logs (⭐⭐)
- 40 Coal
The following quests were generated with a quantity-factor
of 3.0 instead of 1.0
Drive 5,5km in a Minecart (⭐⭐⭐⭐⭐)
- $ 5,250.00
Run 62,5km (⭐⭐⭐⭐⭐⭐⭐)
- 11250 XP
Mine 9 Emerald Ore (⭐⭐⭐⭐⭐)
- $ 4,704.00
Harvest 80 Nether Warts (⭐⭐⭐⭐)
- $ 2,688.00
Chop 128 Logs (⭐)
- $ 186.00
Harvest 96 Cocoa Beans (⭐⭐⭐)
- 52 Golden Carrot
Kill 60 Endermen (⭐⭐⭐⭐⭐⭐)
- 576 Arrow
- 18 Splash Potion: Instant Health II
Mine 688 Coal Ore (⭐⭐⭐)
- 837 XP
Mine 272 Iron Ore (⭐⭐⭐)
- 664 XP
Harvest 336 Carrots (⭐⭐⭐)
- 645 XP
Trade with a Fletcher 14 times (⭐⭐)
- 3 Diamond
Kill 51 Magma Cubes (⭐⭐⭐⭐⭐⭐)
- $ 10,560.00
Chop 288 Jungle Logs (⭐⭐⭐)
- 548 XP
Enchant a Diamond Chestplate with Unbreaking I+ (⭐⭐⭐)
- 614 XP
Harvest 24 Brown Mushrooms (⭐⭐)
- 1 Diamond
Placeholder
BasicQuests supports the following placeholders:
%bquests%
A (multiline) list of the players quests (same output as /quests list)
%bquests_detail%
A (multiline) list of the players quests and rewards (same output as /quests list reward)
%bquests_count%
The amount of quests the player has
%bquests_completed%
The amount of quests the player has completed
%bquests_top_<index>%
The leaderboard of players with most completed quests (line by line)
%bquests_<index>%
The players quest at the given index
%bquests_<index>_title%
The title of the players quest at the given index
%bquests_<index>_progress%
The progress of the players quest at the given index: "1/16" or "Completed!"
%bquests_<index>_left%
The amount left of the players quest at the given index: "15 left"
%bquests_<index>_<linenumber>%
The title of a given quest split into 4 lines that fit on a sign. (linenumber can be 1 - 4, Check the example below)
%bquests_<index>_reward_<linenumber>%
The reward of a given quest split into 2 lines. Handy for Scoreboards. (linenumber can be 1 - 2, Check the example below)
Placeholder Examples
<details> <summary>Show Examples</summary>Scoreboards
Scoreboard plugins like AnimatedScoreboard can be used to display quests on a custom scoreboard. Two examples along with the used placeholders are shown below.
####Quests with rewards:
Quests:
%bquests_1%
%bquests_1_reward_1%
%bquests_1_reward_2%
%bquests_2%
%bquests_2_reward_1%
%bquests_2_reward_2%
%bquests_3%
%bquests_3_reward_1%
%bquests_3_reward_2%
####Quests next to other plugins:
Quests:
%bquests_1%
%bquests_2%
%bquests_3%
Jobs:
...
</details>
Config
<details> <summary>Show config.yml</summary># This is the config file for BasicQuests.
# This config was generated for version 0.5
# You can delete this file to regenerate the default config on server reload.
# GENERAL
# amount of quests a player holds at a time
# recommended values: min = 3, max = 6
quest-amount: 3
# times a player is allowed to skip a quest. (resets every day)
skips-per-day: 1
# broadcasts a message to everyone if a player completes a quest
broadcast-on-quest-complete: true
# plays a sound when a quest has been completed (only for the player)
sound-on-quest-complete: true
# disable the inbuilt scoreboard (/quests scoreboard)
# should only be set to true if the scoreboard does not work correctly because of another plugin using it.
# quests can always be displayed on custom scoreboards using the PlaceholderAPI.
disable-scoreboard: false
# show the scoreboard per default for new players
show-scoreboard-per-default: true
# set the locale for the plugin.
# contact me if you would like to have your language supported. you might need to help with translations.
# available locales:
# en: English, de: German, es: Spanish, ru: Russian
locale: en
# whether new updates should be announced to admins and in the console.
# updating to the newest version is always recommended unless the new version is not compatible with your server.
check-for-updates: true
# save interval for player data in minutes
# the saving process can cause lag on large servers. Increase this parameter to make savings less frequent.
# recommended values: min = 10
save-interval: 10
# edit the following list to prevent quest progress in worlds with the given names.
# watch out to not mess up the list's format.
banned-worlds:
- world_creative
- world_without_quest_progress
# an alternative character the plugin should use to display stars earned by quests
# replaces the default character. should be a valid unicode character.
# uncomment the following line to enable alternative character.
# star-character: "*"
# QUEST GENERATION
# factor for the value of rewards
# recommended values: min = 0.5, max = 3.0
reward-factor: 1.0
# factor for the quantities in a quest - e.g., the numbers of zombies to kill
# recommended values: min = 0.5, max = 3.0
quantity-factor: 1.0
# Increase the quantities in quests according to a players play time.
increase-quantity-by-playtime: true
# factor when a player joins the game
start-factor: 0.4
# factor when a player reaches <max-amount-hours> hours of playtime
max-factor: 3.0
# hours of play time at which a player receives quests with max quantities
max-amount-hours: 100
# chance of duplicate quests [0.0 - 1.0]
# 0.0: no duplicate quests will appear (not recommended when quest-amount is above 4)
# 1.0: players active quests have no influence on the generation of new quests
duplicate-quest-chance: 0.3
# REWARDS
# choose what type of reward you would like to be generated for quests
# if multiple types are set to true new quests will have a reward type chosen randomly
# enable items as rewards
item-rewards: true
# enable xp as a reward
xp-rewards: false
# enable money as a reward (requires an economy plugin to be hooked up via Vault)
money-rewards: false
# ECONOMY
# factor for money rewards
# adjusts this to the value of money on your server.
money-factor: 1.0
</details>
Permissions
<details> <summary>Show permissions</summary>basicquests.use.list:
default: true
description: Lets players view their quests
basicquests.use.scoreboard:
default: true
description: Lets players use the scoreboard to display quests
basicquests.use.reward:
default: true
description: Lets players receive their rewards
basicquests.use.skip:
default: true
description: Lets players skip a limited number of quests per day. Number can be configured in config.yml
basicquests.use.leaderboard:
default: true
description: Lets players view the leaderboard
basicquests.admin.list:
default: op
description: Lets players list quests of others
basicquests.admin.skip.unlimited:
default: op
description: Lets players skip unlimited quests
basicquests.admin.skip.others:
default: op
description: Lets players skip quests for other players
basicquests.admin.reset:
default: op
description: Lets players reset quests
basicquests.admin.reset.others:
default: op
description: Lets players reset quests for others
basicquests.admin.reset.global:
default: op
description: Lets players reset quests for all players at once
basicquests.admin.complete:
default: op
description: Lets players complete quests via command
basicquests.admin.complete.others:
default: op
description: Lets players complete quests for others true
basicquests.admin.update:
default: op
description: Lets players or the console to check for BasicQuests updates
basicquests.admin.reload:
default: op
description: Lets players use the reload command
License
Copyright (C) 2020-2024, Anton Stamme
BasicQuests is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
BasicQuests is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with BasicQuests. If not, see https://www.gnu.org/licenses/.
I want to modify the configuration of tasks and rewards, but I can't find the file, and the "iron pants" of rewards will disappear after I put them on. I don't know why.
I'm trying to implment this plugin for my SMP server, I can't seem to find the config.yml file
In reply to xandroid_:
When the plug-in gets loaded for the first time (server restart or /reload command) the config.yml should be generated at plugins/BasicQuests/config.yml
If that’s not the case it would be nice if you could tell me the bukkit Version your server is running on and if there were any error messages in the console.
Hope it helps!
In reply to Tonnanto:
I'm running a 1.16.4 bukkit server and there was no errors that I can see.
I reloaded the server and only see the .jar file
In reply to xandroid_:
Besides the config not being generated, I assume that the plugin does not get loaded correctly (It does not show up when using /plugins command) Is that correct?
I just double checked on a fresh 1.16.4 local Server with Vault and EssentialsX installed and everything works as expected (BasicQuests folder with config inside gets generated).
1. do you have Vault installed on your Server?
2. do you have an economy plugin hooked up via Vault? (for example: EssentialsX)
- 1. and 2. are is required for this version of BasicQuests !! (see -> General and Rewards in the Overview)
3. If so, do you see this log "[BasicQuests] Enabling BasicQuests v0.1.0" in the console?
If all points above are true BasicQuests should run as expected.
If you do not want to use Vault and an economy plugin on your Server you will have to wait for the next version of BasicQuests that will most likely add rewards that are different from money (like items and xp).
I hope this solves your issue!
In reply to Tonnanto:
I don't see the log appear in my console but it does show up green when i do /plugins
In reply to xandroid_:
Still wondering:
1. Is the Vault plug-in installed and what version?
2. Is an economoy plug-in installed? (One that adds money. Which one and what version?)
If that’s the case does the /quests command work?
In reply to Tonnanto:
The latest version of Vault is installed along with EssenstialsX. All the quest commands work and completing them gives players money.
Just for some more context --
I'm running the server through apex hosting. I've tried downloading the plugin through their plugin installer to try and get the config.yml to generate but I had no luck. Then, I manually uploaded the .jar file into the server's FTP files then restarted but I didn't see the config file after either.
Sorry if I'm being a pain in the ass. I just really love the simplicity of the plugin and the challenges.
In reply to xandroid_:
Thanks for the further context and information that helped understanding the situation a lot.
I don't have any experience with apex hosting but nevertheless they should use the usual bukkit file structure.
Every plugin that wants to save files usually generates a folder inside the plugins folder that contains their files (config and so on)
Do you see the other plugins' folders and config files like Essentials and Vault?
BasicQuests uses it's folder for the config.yml and userdata files. If the folder does not get generated it would be a surprise for me if a player's quests persist after server restart.
You could try to create the "BasicQuests" folder yourself and add a copy of the default config file which you should find within the .jar file (open it with WinRAR for example).
Thanks for your feedback though! I'm new to bukkit development and would like to learn and improve. User Feedback is the best way for me to do so ;)
In reply to Tonnanto:
Okay okay, what folder/file would I navigate to in order to edit the reward amount?
In reply to xandroid_:
You would usually edit the reward factor in the config file at plugins/BasicQuests/config.yml
If you want to change the default config file within the archive you should find the config.yml at the first level of the jar file.
The plugins/BasicQuests/ folder has still not been generated?
I want to modify tasks and rewards. Where can I modify them?
I want to modify tasks and rewards. Where can I modify them?hem?
In reply to Tonnanto:
I want to modify tasks and rewards. Where can I modify them?