
BattlePass 1.2.1
GUI | Fully Configurable | Daily Quests | Weekly Quests | Per-Level Reward | EXP System | Database
- Daily & Weekly Quests: Quests that reset and refresh daily and weekly, providing players with recurring challenges.
- Per-Level Reward: Rewards are granted for each level achieved in the BattlePass, encouraging progression.
- EXP System: A system to accumulate experience points (EXP) for leveling up and unlocking new rewards.
- Database Support: Integration with a database to store and manage player progress and data efficiently.
Commands
- /battlepass open
- /battlepass give <player>
- /battlepass remove <player>
- /battlepass reload
Permissions
- battlepass.command.help - Allows use of the /battlepass command
- battlepass.command.open - Allows use of the /battlepass open command
- battlepass.command.give - Allows use of the /battlepass give command
- battlepass.command.remove - Allows use of the /battlepass remove command
- battlepass.command.reload - Allows use of the /battlepass reload command
config.yml
database:
# Available: SQLite, MySQL
type: SQLite
credentials: # Only needed for MySQL
host: 127.0.0.1
user: root
pass: battlepass
database: battlepass
# Advanced options MySQL & SQLite
pool-size: 15
table-name-users: "battlepass_users"
table-name-claims: "battlepass_claims"
table-name-tracks: "battlepass_tracks"
table-name-level-claims: "battlepass_level_claims"
messages.yml
global:
all: "ALL"
prefix: "&a[BattlePass]"
messages:
no-console: '&cThis command can''t be used as a console!'
no-permission: '&cYou don''t have permission to use this command!'
commands:
descriptions:
admin:
open: '&f&oOpen player battlepass gui'
give: '<player> &f&oGive the pass to the player'
remove: '<player> &f&oRemove the pass to the player'
reload: '&f&oOpen battlepass reload gui'
reload-success: '&aSuccessfully reloaded in {time}ms!'
rewards:
inventory-full: "{prefix} &cYour inventory is full!"
# Trackables - lang
trackables:
AnimalsBred:
in-progress: "&c&l✘ &7Bred animals&7: \n &eProgress: [bar|{current}|{required}|15|▪|&a|&7] &f({current}&f/{required})"
complete: "&a&l✔ &7Bred animals"
BlockBroke:
in-progress: "&c&l✘ &7Mine blocks &6{type}&7: \n &eProgress: [bar|{current}|{required}|15|▪|&a|&7] &f({current}&f/{required})"
complete: "&a&l✔ &7Mine blocks"
BlockPlaced:
in-progress: "&c&l✘ &7Placed blocks &6{type}&7: \n &eProgress: [bar|{current}|{required}|15|▪|&a|&7] &f({current}&f/{required})"
complete: "&a&l✔ &7Placed blocks"
ItemBroke:
in-progress: "&c&l✘ &7Break items &6{type}&7: \n &eProgress: [bar|{current}|{required}|15|▪|&a|&7] &f({current}&f/{required})"
complete: "&a&l✔ &7Break items"
ItemCrafted:
in-progress: "&c&l✘ &7Craft &6{type}&7: \n &eProgress: [bar|{current}|{required}|15|▪|&a|&7] &f({current}&f/{required})"
complete: "&a&l✔ &7Craft"
MobKill:
in-progress: "&c&l✘ &7Kill mobs &6{type}&7: \n &eProgress: [bar|{current}|{required}|15|▪|&a|&7] &f({current}&f/{required})"
complete: "&a&l✔ &7Kill mobs"
PlayerKills:
in-progress: "&c&l✘ &7Kill players&7: \n &eProgress: [bar|{current}|{required}|15|▪|&a|&7] &f({current}&f/{required})"
complete: "&a&l✔ &7Kill players"
PlayTimes:
in-progress: "&c&l✘ &7Stay online &6{type}&7: \n &eProgress: [bar|{current}|{required}|15|▪|&a|&7] &f({current}&f/{required})"
complete: "&a&l✔ &7Stay online {type}"
time:
# https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
style: "dd/MM/yyyy HH:mm:ss"
lang:
never: 'never'
years: "{time} years"
months: "{time} months"
weeks: "{time} weeks"
days: "{time} days"
hours: "{time} hours"
minutes: "{time} minutes"
seconds: "{time} seconds"
levels.yml
general:
max-level: 100
level-exp:
# USER_DEFINED = write your own method
# PLAIN = current_level_exp * 2
# EXPONENTIAL = current_level_exp ^ 2
# EXPONENTIAL_2 = current_level_exp ^ 2 * 2
method: USER_DEFINED
expression: '{current_level_exp} * 2'
levels:
1:
rewards:
'item1':
type: ITEM
material: STICK
name: '&8(x1) &a&lMagic Stick'
restricted: true # Restricted to only battle pass's buyers?
lore:
- '&7I''m a magic stick! :O'
enchants:
- 'DURABILITY|1'
flags:
- 'HIDE_ENCHANTS'
'item2':
type: ITEM
material: STICK
name: '&8(x1) &7&lMagic Stick'
restricted: false # Restricted to only battle pass's buyers?
lore:
- '&7I''m a (poor people''s) stick! :O'
2:
rewards:
'item1':
type: COMMAND
commands:
- 'p:/say Hi! I''m {player}'
material: PAPER
name: "&fCommand: &e{command}"
quests.yml
quests:
weekly:
'stoneMiner':
# The quest name displayed in the GUI
name: 'Stone Miner'
# Time when the quest will be released
# The time must be in a valid 24-hour format like this:
# Day/Month/Year Hour:Minute:Second
# Example:
# 05/05/2020 04:02:05
start: '23/03/2025 12:00:00'
# Time when the quest will be unavailable
# The time must be in a valid 24-hour format like this:
# Day/Month/Year Hour:Minute:Second
# Example:
# 05/05/2020 06:02:05
expire: '30/03/2025 12:00:00'
requirements:
- '[block-broke|STONE] 500'
exp: 50
daily:
# BE AWARE! THIS MUST BE UNIQUE FOR EACH QUEST.
# QUESTS WITH SAME ID WILL BE CONSIDERED AS ONE
'stoneMiner':
# The quest name displayed in the GUI
name: 'Stone Miner'
# Time when the quest will be released
# The time must be in a valid 24-hour format like this:
# Day/Month/Year Hour:Minute:Second
# Example:
# 05/05/2020 04:02:05
start: '23/03/2025 12:00:00'
# Time when the quest will be unavailable
# The time must be in a valid 24-hour format like this:
# Day/Month/Year Hour:Minute:Second
# Example:
# 05/05/2020 06:02:05
expire: '24/03/2025 12:00:00'
requirements:
- '[block-broke|STONE] 100'
exp: 10
gui.yml
general:
fill:
enabled: true
item:
material: GRAY_STAINED_GLASS_PANE
amount: 1
data: 7
name: "&0"
lore: []
main:
name: "&8BattlePass"
items:
# Available actions:
# DISPLAY, SHOW_LEVELS, SHOW_DAILY_QUESTS, SHOW_WEEKLY_QUESTS
'player':
action: DISPLAY
enabled: true
slot: 13
item:
material: head|{player}
name: "&aYour Info:"
lore:
- ''
- '&7Your level: &f{level}'
- '&7Your exp: &e{player-exp}'
- '&7Exp required to level up: &c{required-exp}'
- ''
- '&eProgress:'
- ' [bar|{player-exp}|{required-exp}|20|▪|&6|&f]'
- ''
'levels':
action: SHOW_LEVELS
enabled: true
slot: 11
item:
material: EXPERIENCE_BOTTLE
name: "&6Show levels"
'daily-quests':
action: SHOW_QUESTS
enabled: true
slot: 15
item:
material: BOOK
name: "&6Quests"
levels:
name: '&8Levels'
# Available styles:
# NORMAL - 9 slots reserved for levels
# BIG - 45 slots reserved for levels
style: NORMAL
items:
arrow-back:
material: ARROW
name: '&cGo Back'
lore:
- '&7Go Back to Previous Page'
arrow-next:
material: ARROW
name: '&aNext Page'
lore:
- '&7Go to the Next Page'
level-locked:
material: 'RED_STAINED_GLASS_PANE'
data: 14
name: "&cLevel &e{level}"
lore:
- '&cThis level is locked.'
- '&cYour level: &e{player_level}'
- '&cRequired level: &e{level}'
- '&7&o(Click to see the rewards)'
level-current:
material: 'YELLOW_STAINED_GLASS_PANE'
data: 4
name: "&aLevel &e{level}"
lore:
- '&aThis is your current level.'
- '&7&o(Click to see the rewards)'
level-unlocked:
material: 'WHITE_STAINED_GLASS_PANE'
data: 0
name: "&aLevel &e{level}"
lore:
- '&fYou already unlocked this level'
- '&7&o(Click to see the rewards)'
unclaimed:
material: 'GREEN_STAINED_GLASS_PANE'
data: 0
name: "{name} &6&l*UNCALIMED*"
lore:
- ''
- '&6You have unclaimed rewards!'
- '{lore}'
enchants:
- 'DURABILITY|1'
flags:
- 'HIDE_ENCHANTS'
rewards:
name: 'Level {level} rewards'
items:
frame:
enabled: true
slots: 0,1,2,3,4,5,6,7,8,9,17,18,2,26,27,35,36,44,45,46,47,48,49,50,51,52,53
material: ORANGE_STAINED_GLASS_PANE
data: 1
name: '&0'
empty:
material: RED_STAINED_GLASS_PANE
data: 14
name: "&cEmpty"
lore:
- ''
- '&7This level has no rewards'
restricted:
material: 'RED_STAINED_GLASS_PANE'
name: "{name} &c&l*RESTRICTED*"
lore:
- ''
- '&cYou need to buy the BattlePass to get this item!'
unclaimed:
material: 'GREEN_STAINED_GLASS_PANE'
name: "{name} &6*UNCLAIMED*"
lore:
- '{lore}'
- ''
- '&6This reward is unclaimed!'
- '&7Click to claim it!'
enchants:
- 'DURABILITY|1'
flags:
- 'HIDE_ENCHANTS'
go-back:
slot: 45
material: ARROW
name: "&cGo Back"
lore:
- '&7To Levels GUI'
quest-type:
name: "&8Quests"
items:
weekly:
slot: 12
material: BOOK
name: "&bWeekly Quests"
daily:
slot: 14
material: BOOK
name: "&bDaily Quests"
quests:
daily:
# The time before refresh all the items in the GUI. Set to -1 to disable.
update-delay: 20 # Time must be in ticks.
name: "&8Daily Quests"
# Available styles:
# NORMAL - The quest disappear after the claim
# STAY - The claimed quests will appear in the last slots
style:
items:
available:
material: WRITABLE_BOOK
name: "&aAvailable! &f{name}"
lore:
- ''
- '&7Status: &eACTIVE'
- '&7Start: &f{start}'
- '&7End: &c{end}'
- ''
- '&eProgress:'
- '{requirements}'
complete:
material: BOOK
name: "&aCOMPLETED &f(Stone Miner)"
enchants:
- 'DURABILITY|1'
flags:
- 'HIDE_ENCHANTS'
lore:
- ''
- '&aYou completed this quest!'
- '&7Click to get your level exp!'
- ''
weekly:
# The time before refresh all the items in the GUI. Set to -1 to disable.
update-delay: 20 # Time must be in ticks.
name: "&8Weekly Quests"
items:
available:
material: WRITABLE_BOOK
name: "&aAvailable! &f{name}"
lore:
- ''
- '&7Status: &eACTIVE'
- '&7Start: &f{start}'
- '&7End: &c{end}'
- ''
- '&eProgress:'
- '{requirements}'
complete:
material: BOOK
name: "&a&lCOMPLETED &f(Stone Miner)"
enchants:
- 'DURABILITY|1'
flags:
- 'HIDE_ENCHANTS'
lore:
- ''
- '&aYou completed this quest!'
- '&7Click to get your level exp!'
- ''
Developer API
- BattlePassPlayerLevelUpEvent
Terms of Service
By using this plugin, you agree to the following terms, which may be updated by the author at any time.
- All payments are final and non-refundable.
- Redistribution or resale of this plugin is prohibited.
- You are not permitted to modify, decompile, or extract any part of the plugin's source code.
- Support is provided exclusively to legitimate customers. We cannot offer support for plugins obtained through unauthorized or illegal means.