>>> Test it live IP: play.cynicalmc.net <<<
The in-game creator for making quests
A quest menu example with all 5 potential quest states (waiting, completed, active, available, unavailable)
The default leaderboard menu, can be completely customized
ProQuests is a new way to reward players and to give them an objective to increase retention while enhancing the experience for all players. Whether it be for a prison, factions, skyblock, or any other server type there are quests that suit the need of almost any server. These quests will have players wanting more and the best part is, its completely customizable by you!
************* REQUIRES JAVA 8 *************
Compiled and tested for Spigot 1.7.10 and above, support for earlier versions will not be provided.
You may be asking yourself what specific features does this plugin have that makes it worth it, and the answer is plenty!
- In-game quest creator
- Completely customizable quest system
- Leaderboard system (4 types)
- Player point system
- Point system multipliers
- Stage based quests
- Customizable menu system
- Faction shared quests
- Unlimited quest menus
- Updating menu system
- Quest menu NPC's
- (100) Unique quest types
- (26) Requirement types
- MythicMobs Support
- Statistic requirements
- Leader NPCs
- Quest cooldown delays
- Action based rewards
- JavaScript action integration
- Name specific item requirements
- Developer quest API
- Developer event API
- Vault integration
- WorldGuard region integration
- Per world support
- Flatfile and MySQL support
- Message customization
- And much more!
With all of these features the sky is the limit for the quests you can create. Your players will love the objective oriented challenges to complete tasks in exchange for unique rewards!
- Tournaments - Competitive server wide competitions!
- Packages - Package together quests in a more immersive way!
- More coming soon!
In the plugin there are commands that can be utilized by admins and also those that are useful to each and every player. Below is a list of commands that are found throughout the plugin.
Main command: /proquests
Aliases: [quest, quests, pquest, pquests, proquest]
/quest - Opens the default quest menu
/quest points - Returns your quest points balance
/quest menu - Opens the default quest menu
/quest menu <menu id> - Opens the specified quest menu
/quest help - Displays the help message
/quest backup - Forces a backup of the player data
/quest start <id> - Starts the quest with the specified id
/quest progress <id> - Progress towards the quest with the specified id
/quest cancel <id> - Cancels the active quest with the specified id
/quest create <id> - Will open the in-game editor for a new quest
/quest edit <id> - Will open the in-game editor to edit the specified quest
/quest list <type> - Lists the quest identifiers with specified quest type
/quest leaderboard - Displays the monthly leaderboard
/quest leaderboard week - Displays the weekly leaderboard
/quest leaderboard month - Displays the monthly leaderboard
/quest leaderboard lifetime - Displays the lifetime leaderboard
/quest leaderboard completed - Displays the completed leaderboard
/quest convert <file/folder> - Converts the data to the specified type
/quest backend <file/folder> - Changes the currently active backend type
/quest update leaderboard - Force updates the leaderboard stats
/quest update week - Force updates the current week stats
/quest update month - Force updates the current month stats
/quest reset all - Resets all player data (Console only)
/quest multiplier <amout> - Sets the global points multiplier
/quest npccreate quest <id> - Starts the selection of a new quest NPC
/quest npccreate menu <id> <menu id> - Starts the selection of a new quest menu NPC
/quest npccreate leader <id> <type> <position> - Creates a new leader NPC
/quest npcdelete <id> - Deletes the specified quest menu NPC
/quest player delete <name> - Deletes all of the players quest data
/quest player multiplier <name> <amount> - Sets the players point multiplier
/quest player points <name> add <amount> - Adds X to the players points
/quest player points <name> subtract <amount> - Takes X from the players points
/quest player quest <name> cancel <id> - Cancels the quest for the player
/quest player quest <name> start <id> - Starts the quest for the player
/quest player totalquest <name> add <id> <amount> - Adds the amount to the players progress
/quest player totalquest <name> set <id> <amount> - Sets the amount of the players progress
/quest reload - Reloads the plugin
In the plugin there are obviously plenty of permissions to go along with the commands and the other features within. All of the plugin permissions are listed below.
Command Permissions:
proquests.menu.open.<menu id> - Allows the player to open the specific quest menu
proquests.menu.open.* - Allows the player to open any quest menu
proquests.reload - Allows access to the reload command
proquests.backup - Allows access to the backup command
proquests.backend - Allows access to the backend command
proquests.convert - Allows access to the convert command
proquests.reset.all - Allows access to the reset command (console only)
proquests.admin.help - Allows access to the admin help command
proquests.user.help - Allows access to the user help command
proquests.npc.create - Allows access to the NPC creation command
proquests.npc.delete - Allows access to the NPC delete command
proquests.quest.create - Allows access to create new quests in-game
proquests.quest.edit - Allows access to edit existing quests in-game
proquests.quest.list - Allows access to the list quests command
proquests.player.delete - Allows access to the player delete command
proquests.cancel - Allows access to the quest cancel command
proquests.start.<id> - Allows the player to start the quest with the specified id
proquests.start.* - Allows players to start any quest
proquests.progress.<id> - Allows the player to view the quests progress with the specified id
proquests.progress.* - Allows players to view the progress of any of their quests
proquests.updateweek - Allows access to the update week command
proquests.updatemonth - Allows access to the update month command
proquests.leaderboard - Allows access to the leaderboard command
proquests.leaderboard.update - Allows access to the update leaderboard command
proquests.multipliers.set - Allows you to use the multiplier commands
proquests.points - Allows access to the points command
proquests.points.others - Allows access to the points other command
proquests.points.add - Allows access to the points add command
proquests.points.subtract - Allows access to the points subtract command
proquests.admin.cancel - Allows access to the force cancel command
proquests.admin.start - Allows access to the force start command
proquests.totalquest.add - Allows access to the TotalQuest add command
proquests.totalquest.set - Allows access to the TotalQuest set command
Other Permissions:
proquests.active.<amount> - The max active quests a player can have (up to 200)
The wiki page thoroughly describes every aspect of the plugin, and is constantly being updated and tweaked. If you are looking for help on how to do something or want to know something specific check it out. If you contact me with a question that can easily be answered on this page, I will either not respond or direct you to the wiki.
CLICK HERE TO VIEW THE WIKI
Quests
The plugin is based off of unique quest types that all have their own unique aspects, however the base aspects and features can be used throughout all of them they all have different outcomes and ways to track players.
Any quest you make can have the following attributes:
Code (Text):
type: BREAK_QUEST //The specific quest type
duration: <int> //The time the player has to complete it
repeat_delay: <int> //The duration before the quest can be repeated
repeatable: <boolean> //Whether or not players can repeat the quest
cancelable: <boolean> //Whether or not players can cancel the quest
command_start: <boolean> //Whether or not players can start the quest via command
cancel_after_timer: <boolean> //Whether or not to execute the end actions or complete actions when the timer ends
start_npc: <npc id> //The NPC which the quest can be started from
end_npc: <npc id> //The NPC the player must return to, to complete the quest
start_balance: [] //A list of required balances to start the quest
start_cost: [] //A list of required costs to start the quest
complete_balance: [] //A list of required balances to complete the quest
complete_cost: [] //A list of required costs to complete the quest
complete_permissions: //A list of permissions required to complete the quest
required_quests: [] //A list of required quests before this can be started
blacklisted_quests: [] //A list of quests which cannot be active when starting
allowed_worlds: [] //A list of allowed worlds for progressing in the quest
blacklisted_worlds: [] //A list of blacklisted worlds for progressing in the quest
allowed_regions: [] //A list of regions which progress can be made (requires World Guard)
blacklisted_regions: [] //A list of regions which progress cannot be made (requires World Guard)
start_actions: [] //A list of actions to be executed upon starting the quest
progress_actions: [] //A list of actions to be executed when a player requests their progress
cancel_actions: [] //A list of actions to be executed upon canceling the quest
complete_actions: [] //A list of actions to be executed upon completion
in_hand: //An item the player must have in their hand to contribute to the quest
material: <material> //The material of the item
data: <int> //The data value of the item
name: <string> //The name of the item
lore: [] //The lore of the item
enchants: [] //The enchants of the item (Format: <Enchant>;<Level>)
Check out the wiki for more information on every quest:
https://www.spigotmc.org/wiki/proquests/
Actions
Actions are how players are rewarded after completing quests, they can be commands, items, sounds, etc. There is an extensive list of actions that can be performed.
Code (Text):
[Chance=<percentage>] [<action>] - Chance out of 100% that this action will be performed
[Delay=<time>] [<action>] - Delays the action to be performed after the delay period in seconds
[SyncTask][<action>] - Performs the action in sync with the server tick
[PlayerCommand] <command> - Executes the command as a player
[ConsoleCommand] <command> - Executes the command as the console
[OperatorCommand] <command> - Executes the command as an operator
[Broadcast] <message> - Broadcasts the following message to the server
[Message] <message> - Sends the following message to the player
[JSONBroadcast] <message> - Sends the JSON message to the server
[JSONMessage] <message> - Sends the JSON message to the player
[Sound] <sound value> - Plays the sound for the player
[VaultGive] <amount> - Adds the amount to the players Vault economy balance
[VaultTake] <amount> - Takes the amount from the players Vault economy balance
[Teleport] <world name>;<x>;<y>;<z> - Teleports the player to the specified coordinates
[Teleport] <world name>;<x>;<y>;<z>;<yaw>;<pitch> - Teleports the player to the specified coordinates
[GiveItem] <material>;<amount> - Gives the player the specified item
[GiveItem] <material>;<amount>;<data> - Gives the player the specified item
[GiveItem] <material>;<amount>;<data>;<name> - Gives the player the specified item
[TitleBroadcast] <title> - Displays the title for the server
[TitleBroadcast] <title>;<subtitle> - Displays the title & subtitle for the server
[Title] <title> - Displays the title for the player
[Title] <title>;<subtitle> - Displays the title & subtitle for the player
[ActionBarBroadcast] <message> - Displays the action bar message for the server
[ActionBar] <message> - Displays the action bar message for the player
[StartQuest] <quest id> - Starts the specified quest for the player
[Bungee] <server> - Sends the player to the specified bungee server
[AddPoints] <amount> - Adds X points to the players points
[SubtractPoints] <amount> - Takes X points from the players points
JavaScript Actions:
You can also use JavaScript in your actions to further enhance what you can do with your rewards and other parts of the plugin.
Objects:
- BukkitPlayer - The player who the action is being executed for
- ProQuests - The instance of the plugin
- Quest - The quest object the action is being executed for
Example:
Code (Text):
[ConsoleCommand] eco give %player% [JavaScript=%quest_remaining_duration% * 20]
Placeholders
Throughout the plugin there are a bunch of placeholders that can be used in menu items, messages, and even completion actions that allow just that extra bit of functionality.
Code (Text):
Player Placeholders:
%player% - players name
%player_displayname% - players display name
%player_saturation% - players saturation
%player_hunger% - players hunger
%player_health% - players health
%player_x% - players X coordinate
%player_y% - players Y coordinate
%player_z% - players Z coordinate
%player_world% - players world name
%player_level% - players level
%player_exp% - players experience
%weekly_points% - players monthly points
%monthly_points% - players monthly points
%total_points% - players total points
%total_active_quests% - players active quest total
%total_completed_quests% - players completed quests total
Quest Placeholders:
%quest_id% - the quest identifier
%quest_remaining_duration% - time remaining for completion
%quest_repeat_delay% - time until the quest can be repeated
%quest_repeatable% - true or false if it can be repeated
%quest_completed% - true or false if it has been completed
%quest_duration% - amount of time to complete the quest
%quest_date_started% - the date the quest was started
%quest_date_ended% - the date the quest ended
%quest_date_completed% - the date the quest was completed
%quest_date_repeat% - the date the quest can be repeated
%quest_required_quests% - comma separated required quests
%quest_allowed_worlds% - comma separated allowed worlds
%quest_total% - total required to complete the quest (limited to certain quests)
%quest_total_formatted% - total required to complete the quest formatted
%quest_total_<identifier>% - specific total of a required factor
%quest_progress% - current progress in the quest (limited to certain quests)
%quest_progress_formatted% - current progress in the quest formatted
%quest_progress_<identifier>% - specific progress of a required factor
%quest_progress_bar% - a progress bar of your quest completion (limited to certain quests)
Other Placeholders:
%server_motd% - message of the day
%server_maxplayers% - player maximum limit
%server_playercount% - amount of online players
%max_active_quests% - max active quests
There are also some placeholders that are registered in PlaceholderAPI and MVdWPlaceholderAPI which can be used in any other plugin that utilizes these libraries.
PlaceholderAPI 2.3.0+
Download ProQuests placeholders in-game using PlaceholderAPI and the following command. It will automatically download the extension to your PlaceholderAPI extensions folder.
/papi ecloud download proquests
PlaceholderAPI:
- %proquests_weekly_points% - Returns the players weekly points
- %proquests_monthly_points% - Returns the players monthly points
- %proquests_total_points% - Returns the players total points
- %proquests_active_quests% - Returns total active quests for the player
- %proquests_completed_quests% - Returns total completed quests for the player
- %proquests_quest_progress_<quest id>% - Returns the progress of the specified quest
- %proquests_quest_total_<quest id>% - Returns the total of the specified quest
- %proquests_quest_progress_bar_<quest id>% - Returns the progress bar of the specified quest
MVdWPlaceholderAPI:
- {proquests_weekly_points} - Returns the players weekly points
- {proquests_monthly_points} - Returns the players monthly points
- {proquests_total_points} - Returns the players total points
- {proquests_active_quests} - Returns total active quests for the player
- {proquests_completed_quests} - Returns total completed quests for the player
CLICK HERE TO VIEW THE PLUGIN API
Event API
In the plugin there are 5 different events that can be listened through another plugin. Each event has methods to get the quest and the players unique data stored in the plugin.
QuestCompletionEvent - Called once a player completes a quest
QuestEndedEvent - Called if a quest ends without being completed (ex. runs out of time)
QuestStartEvent - Called when a player starts a quest
QuestAddPointsEvent - Called when points are added for a player
QuestSubtractedPointsEvent - Called when points are subtracted for a player