Compatibility
Minecraft: Java Edition
1.21.x
1.20.x
1.19.x
1.18.x
1.17.x
1.16.x
1.15.x
1.14.x
1.13.x
1.12.x
1.11.x
1.10.x
1.9.x
1.8.9
Platforms
75% of ad revenue goes to creators
Support creators and Modrinth ad-free with Modrinth+Details
Licensed MIT
Published 3 weeks ago
Updated last week
Vanilla Challenges
It's a plugin that allows you to manage daily challenges to promote competition within the server! Designed for a Vanilla but usable in all modalities (Prison, Factions, Vanilla, Survival, Towny...), it is also configurable in many ways such as the points to give, the boost if you want more competitive and the give points at every minutes online for improve the loyalty of online players.
⚡️Features⚡️
- Possibility to create and set infinity Challenges with a creation of a File in the correct Folder;
- Possibility to create and set a Event Challenge;
- Possibility to reset points at every challenge or accumulate points;
- Possibility to give points if player is online;
- Possibility to set Brodcast Message;
- Possibility to view top in times or yesterday;
- Possibility to use PlaceholderAPI;
- Possibility to select Db you want use;
- Possibility to configure all messages;
- No Dependency;
- RGB Support for messages;
- Possibility to generate random Challenges order;
- Possibility to set boost global with points;
- Possibility to set boost for single player with points;
- Possibility to set start hour and time duration for all Challenges;
- Possibility to configure an interface of all Challenges;
- Possibility to configure an infinite positions for the top;
- Possibility to configure a reward for each position in the top;
- Possibility to configure a series of rewards for each position in the top;
- Possibility to randomize the challenges;
Compatibility
- CubeGenerator - Lands - WorldGuard - GriefPrevention - Tombs - SuperiorSkyblock2⚡️Challenges Type⚡️
- Absorber
- AFK
- BlockBreaker
- BlockPlacer
- BoatMove
- Breeder
- Chatter
- Consumer
- Cooker
- Crafter
- Damager
- Dier
- Dropper
- Dyer
- EggThrower
- Enchanter
- EntityCatcher
- ExpCollector
- Feeder
- FireCatcher
- Fisher
- Harvester
- Healer
- InventoryControl
- ItemBreaker
- ItemCollector
- Jumper
- JumperHorse
- Killer
- Leasher
- Mover
- Primer
- Raider
- SensorActuator
- Shooter
- Sleeper
- Sneaker
- Sprinter
- WoolCutter
⚡️Commands⚡️
- vc <add> <playerName> <points> for add points at player (Console Only)
- vc <challenge> for see the current daily challenge
- vc <clear> for clear all Challenges and Points
- vc <help> for list of help commands
- vc <event> <stop> for stop Event Challenge
- vc <event> <challenge> for start Event Challenge with file configuration
- vc <event> <random> for start a random Event Challenge with file configuration
- vc <list> for see the list of Challenges (Player Only)
- vc <next> for go to next challenge
- vc <points> for see your points
- vc <points> <playerName> for see points of another player
- vc <reload> for reload plugin configurations
- vc <restore> for see the list of backup files (Console Only)
- vc <restore> <file> for restore a backup file with H2Database (Console Only)
- vc <remove> <playerName> <points> for remove points at player (Console Only)
- vc <reward> for receive reward of win
- vc <schedule> <add> <challenge> for add a challenge in the schedule
- vc <schedule> <add> <random> for add a random challenge in the schedule
- vc <schedule> <remove> <challenge> for remove a challenge from the schedule
- vc <top> [yesterday] for see the top daily/yesterday
⚡️Permissions⚡️
- vc.challenge.command
- vc.clear.command
- vc.event.start.command
- vc.event.stop.command
- vc.help.command
- vc.list.command
- vc.next.command
- vc.points.command
- vc.points.player.command
- vc.reload.command
- vc.reward.command
- vc.schedule.add.command
- vc.schedule.remove.command
- vc.top.command
- vc.top.yesterday.command
⚡️Placeholder⚡️
- %vanillachallenges_points%
- %vanillachallenges_dailychallenge_name%
- %vanillachallenges_dailychallenge_displayName%
- %vanillachallenges_dailychallenge_time%
- %vanillachallenges_dailychallenge_top_name_#% # = number
- %vanillachallenges_dailychallenge_top_points_#% # = number
- %vanillachallenges_dailychallenge_boost_multiplier%
- %vanillachallenges_dailychallenge_boost_points_remain%
- %vanillachallenges_dailychallenge_boost_multiplier_single_player%
- %vanillachallenges_dailychallenge_boost_points_remain_single_player%
- %vanillachallenges_top_victories_name_#% # = number
- %vanillachallenges_top_victories_points_#% # = number
- %vanillachallenges_top_first_place_name_#% # = number
- %vanillachallenges_top_first_place_points_#% # = number
- %vanillachallenges_top_second_place_name_#% # = number
- %vanillachallenges_top_second_place_points_#% # = number
- %vanillachallenges_top_third_place_name_#% # = number
- %vanillachallenges_top_third_place_points_#% # = number
⚡️bStats⚡️
⚡️Configs⚡️
config.yml
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# #
# Vanilla Challenges #
# Created by eliotesta98 #
# #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
Configuration:
# Random: if you want random generation of Challenges
# Normal: if you want basic plugin schedule
# Single: if you want a single random challenge generated
ChallengeGeneration: 'Normal'
# Points Gesture
Points:
# If you want reset the player points at the end of every challenge
ResetPointsAtNewChallenge: false
# If you want resume points without zero (Ex 1.000 = 1k)
PointsResume: true
# Points if remain online for x minutes
OnlinePoints:
# If You want this feature
Enabled: false
# Point at minutes
Point: 10
# Every time you want player remain online for give points
Minutes: 10
# Minimum points for give rewards (-1 for disable)
MinimumPoints: 0
# Chest for ItemCollectionChallenge
CollectionChallengeItem:
Type: CHEST
Name: "&7Chest Collector"
Lore:
- "&7Place this chest and use it for collect items"
BroadcastMessage:
# time in minutes 0 to disabled
TimeTitleChallenges: 10
Top:
# if you want yesterday top with broadcast and commands
YesterdayTop: false
# if you want a reward for each place in the ranking
RankingReward: false
# if you want give a random reward (ATTENTION if you use RankingReward this features is false of default)
RandomReward: false
# how many players you want reward?
NumberOfReward: 3
Hooks:
PlaceholderAPI: false
CubeGenerator: false
WorldGuard: false
Lands: false
GriefPrevention: false
Tombs: false
SuperiorSkyblock2: false
# If you want use H2 or .yml file for data storage (write H2 or Yaml)
Database: 'H2'
Backup:
Enabled: true
NumberOfFilesInFolder: 4
# If you want to obfuscate subsequent challenges in the interface
LockedInterface: false
Interfaces:
Challenges:
Title: "&aChallenges"
OpenSound: ENTITY_ENDER_DRAGON_FLAP # ENDERDRAGON_WINGS <1.13
Slots:
- 'bbbbbbbbb'
- 'bhhhhhhhb'
- 'bhhhhhhhb'
- 'bhhhhhhhb'
- 'bhhhhhhhb'
- 'bbblbrbbb'
Items:
Challenge:
Letter: 'h'
Name: '&a{challengeName}'
Type: 'PLAYER_HEAD'
Texture: '' # set to '' to disable
Lore:
- '&7&oTime Duration: &f{time}'
- '&7&oDescription: &f{challengeDescription}'
- '&7&oPoints: &f{challengePoint}'
- '&7&oWords: {words}.&f * {word}'
- '&7&oRewards: {rewards}.&f * {reward} x {number}'
- '&7&oBlocks: {challengeBlocks}.&f * {block}'
- '&7&oItems in hand: {challengeItemsInHand}.&f * {item}'
- '&7&oSneaking: &f{challengeSneaking}'
- '&7&oBlocks On Place: {challengeBlocksOnPlane}.&f * {block}'
- '&7&oVehicles: {challengeVehicles}.&f * {vehicle}'
- '&7&oMobs: {challengeMobs}.&f * {mob}'
- '&7&oItems: {challengeItems}.&f * {item}'
- '&7&oCauses: {challengeCauses}.&f * {cause}'
- '&7&oColors: {challengeColors}.&f * {color}'
SoundClick: ''
Border:
Letter: 'b'
Name: " "
Type: GRAY_STAINED_GLASS_PANE # STAINED_GLASS_PANE;7 <1.13
Texture: '' # set to '' to disable
Lore: [ ]
SoundClick: ''
LeftPage:
Letter: 'l'
Type: 'PLAYER_HEAD'
Name: '&6&lPage {number}'
Texture: 'eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZWVkNzg4MjI1NzYzMTdiMDQ4ZWVhOTIyMjdjZDg1ZjdhZmNjNDQxNDhkY2I4MzI3MzNiYWNjYjhlYjU2ZmExIn19fQ=='
SoundClick: ''
Lore: [ ]
RightPage:
Letter: 'r'
Type: 'PLAYER_HEAD'
Name: '&6&lPage {number}'
Texture: 'eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzE1NDQ1ZGExNmZhYjY3ZmNkODI3ZjcxYmFlOWMxZDJmOTBjNzNlYjJjMWJkMWVmOGQ4Mzk2Y2Q4ZTgifX19'
SoundClick: ''
Lore: [ ]
Locked:
Letter: 'h1'
Name: '&a{challengeName}'
Type: 'PLAYER_HEAD'
Texture: '' # set to '' to disable
Lore:
- '&7&oTime Duration: &f{time}'
- '&7&oDescription: &f{challengeDescription}'
- '&7&oPoints: &f{challengePoint}'
- '&7&oWords: {words}.&f * {word}'
- '&7&oRewards: {rewards}.&f * {reward} x {number}'
- '&7&oBlocks: {challengeBlocks}.&f * {block}'
- '&7&oItems in hand: {challengeItemsInHand}.&f * {item}'
- '&7&oSneaking: &f{challengeSneaking}'
- '&7&oBlocks On Place: {challengeBlocksOnPlane}.&f * {block}'
- '&7&oVehicles: {challengeVehicles}.&f * {vehicle}'
- '&7&oMobs: {challengeMobs}.&f * {mob}'
- '&7&oItems: {challengeItems}.&f * {item}'
- '&7&oCauses: {challengeCauses}.&f * {cause}'
- '&7&oColors: {challengeColors}.&f * {color}'
SoundClick: ''
# you can use a different coloring by using a hexadecimal. for all messages Ex. &{#FFFF00}(yellow).
# Example for a command: '/vc &{#FFFF00}<reload>&{#000000} command reload Plugin'
Messages:
Prefix: '&eVanillaChallenges &r'
Commands:
Footer: '&7(&7&l(&c&l!&7&l)&7) &9[] optional value, <> required'
Economy: ' &e/vc &6<add|remove> <playerName> <points> &7for add or remove points of a player'
Challenge: ' &e/vc &6<challenge> &7for see the daily challenge selected and time resume'
Clear: ' &e/vc &6<clear> &7for clear all Challenges and player Points'
Event: ' &e/vc &6<event> <stop|challenge|random> &7for start a challenge event'
List: ' &e/vc &6<list> &7for see the list of Challenges'
Next: ' &e/vc &6<next> &7go to the next challenge'
Points: ' &e/vc &6<points> [playerName] &7for see your points or points of another player'
Reload: ' &e/vc &6<reload> &7command reload Plugin'
Reward: ' &e/vc &6<reward> &7for receive reward of win'
# if you want a file default duration or time use 0
Schedule: ' &e/vc &6<schedule> <add|remove> <challenge|random> &7for add or remove a challenge from schedule'
Top: ' &e/vc &6<top> [yesterday] &7for see the top 3'
Restore: ' &e/vc &6<restore> [file] &7Allows you to restore a H2Database from backup file or see the list of backup files'
Errors:
YouAreNotAPlayer: '{prefix}&cYou are not a player'
CommandNotFound: '{prefix}&cCommand not found'
NoPerms: '{prefix}&cInsufficient permission'
AlreadyPlacedChest: '{prefix}&7You already placed a chest for Collection Item Challenge'
AlreadyStartEvent: '{prefix}&cYou already start a Challenge Event! If you want stop it write vc <event> <stop>'
AlreadyStopEvent: '{prefix}&cYou already stopped the Challenge Event! If you want start a new Challenge write vc <event> <challenge>'
Schedule: '{prefix}&cYou cannot remove the current challenge from the schedule, if you want to remove it use the /vc <next> command'
Add: '{prefix}&cYou cannot add this challenge because is already scheduled'
Success:
Add: '{prefix}&aSuccessfully scheduled this challenge'
Remove: '{prefix}&aSuccessfully removed form schedule this challenge'
Restored: '{prefix}&aSuccessfully restored database'
Lists:
Files: '{prefix}&7Files List:'
FilesLine: '&5File: {fileName}'
Points:
Info: '{prefix}&e{player} &7have &b{number}&7 points'
PlayerPlaceholder: 'You'
ActuallyInTop: '{prefix}&7Actually in top there are:'
TopPlayers:
- '&6{number}° &e{player}&7 with &b{points}&7 points'
- '&7{number}° &e{player}&7 with &b{points}&7 points'
- '&8{number}° &e{player}&7 with &b{points}&7 points'
PointsEveryMinutes: '{prefix}&7You collect &b{points}&7 points in &e{minutes}&7 minutes'
ChallengeReward: '{prefix}&7You complete the challenge and arrive at top 3 players, receive x&b{number}&7 of &e{item}'
BoostMessage: '{prefix}&5Start boosting!&7 You have &bx{number}&7 points for &e{minutes}&7 minutes'
BoostMessageSinglePlayer: '{prefix}&5Start personal boosting!&7Only you have &bx{number}&7 points for &e{minutes}&7 minutes'
PointsRemainForBoosting: '{prefix}&7Remain &b{points}&7 points for start next boost!'
PointsRemainForBoostingSinglePlayer: '{prefix}&7Remain &b{points}&7 points for start next personal boost!'
PointsRemainForReward: '{prefix}&7Remain &b{points}&7 points for get the reward!'
ChatWord: '{prefix}&7Write this word for receive &b{points}&7 points: &5{word}'
CorrectAnswer: '{prefix}&e{player} &7write the correct answer!'
PointsAdd: '{prefix}&b{points} &7points added at &e{player}'
PointsRemove: '{prefix}&b{points} &7points removed at &e{player}'
ChallengeList: '{prefix}&bList of Challenges:{challengeList}'
ChallengeofList: '&b{challenge}'
Debug:
# Commands debug
Commands: false
# Click Gui of Interfaces debug
ClickGui: false
# Block Place Event debug
BlockPlaceEvent: false
# Block Break Event debug
BlockBreakEvent: false
# Daily Give Reward Event debug
DailyGiveRewardEvent: false
# Craft Item Event debug
CraftItemEvent: false
# Furnace Cook Event debug
FurnaceCookEvent: false
# Item Consume Event debug
ItemConsumeEvent: false
# Exp Collector Event debug
ExpCollectorEvent: false
# Kill Event debug
KillEvent: false
# Breed Event debug
BreedEvent: false
# Feed Event debug
FeedEvent: false
# Shoot Arrow Event debug
ShootArrowEvent: false
# Jump Horse Event debug
JumpHorseEvent: false
# Color Sheep Event debug
ColorSheepEvent: false
# Raid Event debug
RaidEvent: false
# Fish Event debug
FishEvent: false
# Eat Event debug
EatEvent: false
# Sprint Event debug
SprintEvent: false
# Move Event debug
MoveEvent: false
# Damage Event debug
DamageEvent: false
# Sneak Event debug
SneakEvent: false
# Item Break Event debug
ItemBreakEvent: false
# Sponge Absorb Event debug
SpongeAbsorbEvent: false
# Harvest Event debug
HarvestEvent: false
# Egg Event debug
EggThrowEvent: false
# Enchant Item Event debug
EnchantItemEvent: false
# Chat Event debug
ChatEvent: false
# Item Collector Event debug
ItemCollector: false
# Inventory Challenge Event debug
Inventory: false
# Vehicle Move Challenge Event debug
VehicleMoveEvent: false
# Jump Challenge Event debug
JumpEvent: false
# Dropper Challenge Event debug
DropperEvent: false
# Dye Challenge Event debug
DyeEvent: false
# Healt Regen Event debug
HealthRegenEvent: false
# AFK Challenge debug
AFKEvent: false
# Sensor Actuator Event debug
BlockReceiveGameEvent: false
# Tnt ignite event debug
TNTPrimeEvent: false
# Fire Catcher event debug
EntityCombustByBlockEvent: false
# Entity Catcher event debug
EntityCombustByEntityEvent: false
# Leash event debug
LeashEvent: false
# Sleep event debug
SleepEvent: false
# Online Point give debug
OnlinePoint: false
# Wool Cutter debug
PlayerShearsEvent: false
# Enabled debug
Enabled: false
# Disabled debug
Disabled: false
# Debug for API
API: false
Challenges/Global/BlockPlacer.yml
TypeChallenge: 'BlockPlaceChallenge'
# if you want to enable or disable challenge
Enabled: true
# Time settings
# If you want a random start or end set 'Random'
TimeSettings:
# What time do you want the challenge to start?
Start: '05:00'
# What time do you want the challenge to end?
End: '24:00'
# Worlds where you want the challenge to work, if you want all worlds set []
Worlds: []
# Blocks you want placed for challenge, if you want all blocks set []
# add RANDOM at the end of list for select only one item random from list
# Ex. Items:
# - DIRT
# - COBBLESTONE
# - RANDOM
Blocks: []
# Block you want place the block, if you want all block set []
# Type of item in main hand for break this blocks, if you want all items set []
# add RANDOM at the end of list for select only one item random from list
# Ex. Items:
# - DIRT
# - COBBLESTONE
# - RANDOM
BlocksOnPlaced:
- GRASS_BLOCK
# Able or disable Sneak when place Es. true or false or NOBODY
Sneaking: 'NOBODY'
# How many points you want give at place?
Point: 1
# if you want a multiplier based on all players
Boost:
Enabled: false
#Number you want reached for give the multiplier
Points: 10000
# Multiplier you want give when reached the number
Multiplier: 2
# For how many minutes you want give the multiplier?
Minutes: 10
# if you want a multiplier based on a single player
BoostPlayer:
Enabled: false
# Number you want reached for give the multiplier
Points: 5000
# Multiplier you want give when reached the number
Multiplier: 4
# For how many minutes you want give the multiplier?
Minutes: 2
# Name of Challenge
NameChallenge: "&7Block Place Challenge"
# item representing challenge
ItemChallenge: 'DIRT'
# Title challenge
# Placeholder List:
# - {challengeName}
# - {block#} where # is a number (start with 1) Ex. {block1}
# - {blockOnPlaced#} where # is a number (start with 1) Ex. {blockOnPlaced1}
# - {points}
# - {minutes}
# - {slots}
# - {sneaking}
# - {world#} where # is a number (start with 1) Ex. {world1}
# - {item#} where # is a number (start with 1) Ex. {item1}
# - {itemInHand#} where # is a number (start with 1) Ex. {itemInHand1}
# - {vehicle#} where # is a number (start with 1) Ex. {vehicle1}
# - {cause#} where # is a number (start with 1) Ex. {cause1}
# - {color#} where # is a number (start with 1) Ex. {color1}
# - {mob#} where # is a number (start with 1) Ex. {mob1}
# - {force}
# - {power}
# - {onGround}
# - {keepInventory}
Title:
- '&8'
- '&8██&b███&8███&b██'
- '&8█&b██&8████&b███ {challengeName}'
- '&b██&6█&8███&b███&8█'
- '&b█&8██&6█&8█&b███&8██&7Place block on Grass Block for receive {points} point'
- '&b█&8███&6██&b█&8███ &7{hours} hours to the end of the challenge'
- '&8████&6██&8████'
- '&8███&6█&8██&6█&8███'
- '&8██&6█&8████&6█&8██'
- '&8'
# Reward in blocks EX: IRON_INGOT:16 Type:Quantity
# Reward with command EX: [command]:give %player% TNT 1
Rewards:
- '[command]:give %player% TURTLE_HELMET 1'[/code]
Challenges/Event/BlockPlacer.yml
TypeChallenge: 'BlockPlaceChallenge'
# Time settings
# If you want a random start or end set 'Random'
TimeSettings:
# What time do you want the challenge to start?
Start: '05:00'
# What time do you want the challenge to end?
End: '24:00'
# Worlds where you want the challenge to work, if you want all worlds set []
Worlds: []
# Blocks you want placed for challenge, if you want all blocks set []
# add RANDOM at the end of list for select only one item random from list
# Ex. Items:
# - DIRT
# - COBBLESTONE
# - RANDOM
Blocks: []
# Block you want place the block, if you want all block set []
# add RANDOM at the end of list for select only one item random from list
# Ex. Items:
# - DIRT
# - COBBLESTONE
# - RANDOM
BlocksOnPlaced:
- GRASS_BLOCK
# Able or disable Sneak when place Es. true or false or NOBODY
Sneaking: 'NOBODY'
# How many points you want give at place?
Point: 1
# if you want a multiplier based on all players
Boost:
Enabled: false
#Number you want reached for give the multiplier
Points: 10000
# Multiplier you want give when reached the number
Multiplier: 2
# For how many minutes you want give the multiplier?
Minutes: 10
# if you want a multiplier based on a single player
BoostPlayer:
Enabled: false
# Number you want reached for give the multiplier
Points: 5000
# Multiplier you want give when reached the number
Multiplier: 4
# For how many minutes you want give the multiplier?
Minutes: 2
# Name of Challenge
NameChallenge: "&7Block Place Challenge"
# item representing challenge
ItemChallenge: 'DIRT'
# Title challenge
# Placeholder List:
# - {challengeName}
# - {block#} where # is a number (start with 1) Ex. {block1}
# - {blockOnPlaced#} where # is a number (start with 1) Ex. {blockOnPlaced1}
# - {points}
# - {minutes}
# - {slots}
# - {sneaking}
# - {world#} where # is a number (start with 1) Ex. {world1}
# - {item#} where # is a number (start with 1) Ex. {item1}
# - {itemInHand#} where # is a number (start with 1) Ex. {itemInHand1}
# - {vehicle#} where # is a number (start with 1) Ex. {vehicle1}
# - {cause#} where # is a number (start with 1) Ex. {cause1}
# - {color#} where # is a number (start with 1) Ex. {color1}
# - {mob#} where # is a number (start with 1) Ex. {mob1}
# - {force}
# - {power}
# - {onGround}
# - {keepInventory}
Title:
- '&8'
- '&8██&b███&8███&b██'
- '&8█&b██&8████&b███ {challengeName}'
- '&b██&6█&8███&b███&8█'
- '&b█&8██&6█&8█&b███&8██&7Place block on {blockOnPlaced1} for receive {points} point'
- '&b█&8███&6██&b█&8███ &7{hours} hours to the end of the challenge'
- '&8████&6██&8████'
- '&8███&6█&8██&6█&8███'
- '&8██&6█&8████&6█&8██'
- '&8'
# Reward in blocks EX: IRON_INGOT:16 Type:Quantity
# Reward with command EX: [command]:give %player% TNT 1
Rewards:
- '[command]:give %player% TURTLE_HELMET 1'[/code]
If you want support or add a specific Challenge, don't hesitate to report it either on Discord or via SpigotMC.
- Thanks xSavior_of_God for helping me to realize one of my project.
- NBT API (https://www.spigotmc.org/resources/nbt-api.7939/) Used to make the item in hand look better.
- BIG THANKS goes to Ome_R (https://www.mc-market.org/members/40228/) from BG-Softwarse who allowed us to use his class for handling configuration files <3