-
Notifications
You must be signed in to change notification settings - Fork 58
battlepass.yml
Jan Kluka edited this page Jun 29, 2026
·
4 revisions
# ============================================================================
# X-Prison - Battle Pass
# ----------------------------------------------------------------------------
# Players earn Battle Pass XP from quests, daily rewards, prestige and rebirth,
# climbing tiers that grant rewards on a FREE and a PREMIUM track. Reset the
# season periodically (/bp newseason <id>) to keep players coming back.
#
# All text uses MiniMessage formatting (https://docs.advntr.dev/minimessage).
# Enable/disable the whole module in config.yml -> modules.battlepass
# ============================================================================
season:
# Stable id used as the database key. Changing it (or running /bp newseason)
# starts a fresh season; old progress is archived under the previous id.
id: "season-1"
display-name: "<gradient:#00c6ff:#0072ff><bold>Season 1</bold></gradient>"
# Optional yyyy-MM-dd bounds. Leave empty for an always-active season.
start-date: ""
end-date: ""
# Highest obtainable tier this season.
max-tier: 10
# XP required to advance EACH tier: required(tier) = base + (tier-1) * increment.
xp:
base: 1000
increment: 500
# Per-tier overrides (optional):
# overrides:
# 10: 25000
premium:
# Players with this permission are treated as premium without a stored flag.
# You can also grant premium per-player with /bp setpremium <player> true.
permission: "xprison.battlepass.premium"
# Passive XP awarded from gameplay milestones (set to 0 to disable a source).
# Quest and daily-reward XP is configured in those modules, not here.
xp-sources:
prestige: 500
rebirth: 2500
# Earn Battle Pass XP from mining. Awards 'xp' for every 'blocks-per-xp' blocks mined.
mining:
enabled: false
blocks-per-xp: 100
xp: 5
# Maximum mining XP a player may earn per day (0 = unlimited).
daily-cap: 0
# Timed XP boosters, applied on top of all XP a player earns. The effective multiplier is
# the global booster times the player's personal booster, capped at max-multiplier. Manage
# with /bp booster global|give|clear. Boosters are in-memory and reset on restart.
boosters:
max-multiplier: 5.0
messages:
prefix: "<gradient:#00c6ff:#0072ff><bold>BATTLEPASS</bold> <dark_gray>»</dark_gray></gradient> "
tier-up: "<white>You reached <yellow>Tier %tier% <white>of %season%<white>! Open <yellow>/bp <white>to claim your rewards."
reward-claimed: "<green>Claimed your <yellow>Tier %tier% <green>reward!"
reward-already-claimed: "<red>You have already claimed that reward."
reward-locked: "<red>You have not reached Tier %tier% yet."
premium-required: "<red>That reward is on the <light_purple>Premium <red>track. Unlock the premium pass to claim it."
no-season: "<red>There is no active Battle Pass season right now."
# %multiplier% and %time% for global; %player% also available for 'given'.
booster-set: "<white>A <yellow>%multiplier% <white>Battle Pass XP booster is now active for <yellow>%time%<white>!"
booster-given: "<white>You received a <yellow>%multiplier% <white>Battle Pass XP booster for <yellow>%time%<white>!"
# ----------------------------------------------------------------------------
# Tiers
# Each tier may define a 'free' and/or 'premium' track. A track has a 'display'
# item (shown in the GUI) and a 'rewards' bundle (commands/messages/sound run on
# claim). Display name/lore support: %tier%, %track%, %required_xp%,
# %cumulative_xp% and %status% (see gui.status below). Reward messages and item
# text all use MiniMessage.
# ----------------------------------------------------------------------------
tiers:
1:
free:
display:
material: PAPER
name: "<white>Tier 1 <gray>- <green>Free"
lore:
- "<gray>Reward: <green>$5,000"
- ""
- "%status%"
rewards:
commands:
- "money give %player% 5000"
messages:
- "<green>+ $5,000"
sound: ENTITY_PLAYER_LEVELUP
premium:
display:
material: DIAMOND
name: "<light_purple>Tier 1 <gray>- <light_purple>Premium"
lore:
- "<gray>Reward: <aqua>250 Tokens"
- ""
- "%status%"
rewards:
commands:
- "tokens give %player% 250"
messages:
- "<aqua>+ 250 Tokens"
sound: ENTITY_PLAYER_LEVELUP
2:
free:
display:
material: PAPER
name: "<white>Tier 2 <gray>- <green>Free"
lore:
- "<gray>Reward: <green>$10,000"
- ""
- "%status%"
rewards:
commands:
- "money give %player% 10000"
messages:
- "<green>+ $10,000"
premium:
display:
material: DIAMOND
name: "<light_purple>Tier 2 <gray>- <light_purple>Premium"
lore:
- "<gray>Reward: <aqua>500 Tokens"
- ""
- "%status%"
rewards:
commands:
- "tokens give %player% 500"
messages:
- "<aqua>+ 500 Tokens"
3:
free:
display:
material: PAPER
name: "<white>Tier 3 <gray>- <green>Free"
lore:
- "<gray>Reward: <green>$25,000"
- ""
- "%status%"
rewards:
commands:
- "money give %player% 25000"
messages:
- "<green>+ $25,000"
premium:
display:
material: EMERALD
name: "<light_purple>Tier 3 <gray>- <light_purple>Premium"
lore:
- "<gray>Reward: <green>10 Gems"
- ""
- "%status%"
rewards:
commands:
- "gems give %player% 10"
messages:
- "<green>+ 10 Gems"
4:
free:
display:
material: PAPER
name: "<white>Tier 4 <gray>- <green>Free"
lore:
- "<gray>Reward: <aqua>750 Tokens"
- ""
- "%status%"
rewards:
commands:
- "tokens give %player% 750"
messages:
- "<aqua>+ 750 Tokens"
premium:
display:
material: DIAMOND
name: "<light_purple>Tier 4 <gray>- <light_purple>Premium"
lore:
- "<gray>Reward: <aqua>1,000 Tokens"
- ""
- "%status%"
rewards:
commands:
- "tokens give %player% 1000"
messages:
- "<aqua>+ 1,000 Tokens"
5:
free:
display:
material: CHEST
name: "<white>Tier 5 <gray>- <green>Free"
lore:
- "<gray>Reward: <green>$100,000"
- ""
- "%status%"
rewards:
commands:
- "money give %player% 100000"
messages:
- "<green>+ $100,000"
sound: ENTITY_PLAYER_LEVELUP
premium:
display:
material: ENDER_CHEST
name: "<light_purple>Tier 5 <gray>- <light_purple>Premium"
lore:
- "<gray>Reward: <green>25 Gems"
- ""
- "%status%"
rewards:
commands:
- "gems give %player% 25"
messages:
- "<green>+ 25 Gems"
sound: ENTITY_PLAYER_LEVELUP
6:
free:
display:
material: PAPER
name: "<white>Tier 6 <gray>- <green>Free"
lore:
- "<gray>Reward: <aqua>1,500 Tokens"
- ""
- "%status%"
rewards:
commands:
- "tokens give %player% 1500"
messages:
- "<aqua>+ 1,500 Tokens"
premium:
display:
material: EMERALD
name: "<light_purple>Tier 6 <gray>- <light_purple>Premium"
lore:
- "<gray>Reward: <green>40 Gems"
- ""
- "%status%"
rewards:
commands:
- "gems give %player% 40"
messages:
- "<green>+ 40 Gems"
7:
free:
display:
material: PAPER
name: "<white>Tier 7 <gray>- <green>Free"
lore:
- "<gray>Reward: <green>$250,000"
- ""
- "%status%"
rewards:
commands:
- "money give %player% 250000"
messages:
- "<green>+ $250,000"
premium:
display:
material: DIAMOND_BLOCK
name: "<light_purple>Tier 7 <gray>- <light_purple>Premium"
lore:
- "<gray>Reward: <aqua>2,500 Tokens"
- ""
- "%status%"
rewards:
commands:
- "tokens give %player% 2500"
messages:
- "<aqua>+ 2,500 Tokens"
8:
free:
display:
material: CHEST
name: "<white>Tier 8 <gray>- <green>Free"
lore:
- "<gray>Reward: <aqua>3,000 Tokens"
- ""
- "%status%"
rewards:
commands:
- "tokens give %player% 3000"
messages:
- "<aqua>+ 3,000 Tokens"
premium:
display:
material: EMERALD_BLOCK
name: "<light_purple>Tier 8 <gray>- <light_purple>Premium"
lore:
- "<gray>Reward: <green>75 Gems"
- ""
- "%status%"
rewards:
commands:
- "gems give %player% 75"
messages:
- "<green>+ 75 Gems"
9:
free:
display:
material: GOLD_BLOCK
name: "<white>Tier 9 <gray>- <green>Free"
lore:
- "<gray>Reward: <green>$500,000"
- ""
- "%status%"
rewards:
commands:
- "money give %player% 500000"
messages:
- "<green>+ $500,000"
premium:
display:
material: DIAMOND_BLOCK
name: "<light_purple>Tier 9 <gray>- <light_purple>Premium"
lore:
- "<gray>Reward: <aqua>5,000 Tokens"
- ""
- "%status%"
rewards:
commands:
- "tokens give %player% 5000"
messages:
- "<aqua>+ 5,000 Tokens"
10:
free:
display:
material: NETHER_STAR
name: "<white><bold>Tier 10</bold> <gray>- <green>Free <gray>(Final)"
lore:
- "<gray>Reward: <green>$1,000,000"
- ""
- "%status%"
rewards:
commands:
- "money give %player% 1000000"
messages:
- "<green><bold>+ $1,000,000"
sound: UI_TOAST_CHALLENGE_COMPLETE
premium:
display:
material: BEACON
name: "<light_purple><bold>Tier 10</bold> <gray>- <light_purple>Premium <gray>(Final)"
lore:
- "<gray>Reward: <green>200 Gems <gray>+ <aqua>10,000 Tokens"
- ""
- "%status%"
rewards:
commands:
- "gems give %player% 200"
- "tokens give %player% 10000"
messages:
- "<green><bold>+ 200 Gems <gray>& <aqua><bold>10,000 Tokens"
sound: UI_TOAST_CHALLENGE_COMPLETE
gui:
title: "<dark_gray>Battle Pass <gray>- %season%"
rows: 6
filler: "BLACK_STAINED_GLASS_PANE"
# The free track renders across these slots, the premium track across the
# parallel slots below it. Both lists must be the same length; tiers paginate.
free-slots: [10, 11, 12, 13, 14, 15, 16]
premium-slots: [28, 29, 30, 31, 32, 33, 34]
# Optional, purely cosmetic items: a frame, the track labels and a divider.
# Each entry is a normal item (material/name/lore/glow) placed at a single 'slot'
# or a list of 'slots'. Drawn under the tier items, so they never block clicks.
decorations:
top:
material: LIGHT_BLUE_STAINED_GLASS_PANE
name: " "
slots: [0, 1, 2, 3, 5, 6, 7, 8]
free-label:
material: LIME_STAINED_GLASS_PANE
name: "<green><bold>FREE TRACK"
slot: 9
free-end:
material: GREEN_STAINED_GLASS_PANE
name: " "
slot: 17
divider:
material: BLUE_STAINED_GLASS_PANE
name: " "
slots: [18, 19, 20, 21, 22, 23, 24, 25, 26]
premium-label:
material: MAGENTA_STAINED_GLASS_PANE
name: "<light_purple><bold>PREMIUM TRACK"
slot: 27
premium-end:
material: PURPLE_STAINED_GLASS_PANE
name: " "
slot: 35
bottom:
material: LIGHT_BLUE_STAINED_GLASS_PANE
name: " "
slots: [45, 46, 47, 51, 52, 53]
# Replaces %status% in each tier's display lore based on its state.
status:
claimed: "<green><bold>✔ Claimed</bold>"
claimable: "<yellow><bold>➜ Click to claim!</bold>"
locked: "<red><bold>✖ Locked</bold> <gray>(reach this tier)"
premium-locked: "<light_purple><bold>✖ Premium required</bold>"
info:
slot: 4
material: KNOWLEDGE_BOOK
name: "%season%"
lore:
- "<gray>Tier: <yellow>%tier%<gray>/<yellow>%max_tier%"
- "<gray>Total XP: <yellow>%xp%"
- "<gray>XP to next tier: <yellow>%xp_next%"
- "<gray>Premium: <yellow>%premium%"
- "<gray>XP Booster: <yellow>%booster%"
items:
close:
slot: 49
material: BARRIER
name: "<red>Close"
prev-page:
slot: 48
material: ARROW
name: "<yellow>Previous Page"
next-page:
slot: 50
material: ARROW
name: "<yellow>Next Page"- Currencies
- Ranks
- Prestiges
- Rebirths
- Mines
- AutoSell
- AutoMiner
- Enchants
- Pickaxe Levels
- Pickaxe Skins
- Gangs
- Multipliers
- Blocks
- Bombs
- History
- Mining Stats
- Nicknames
- Battle Pass
- Quests
- Daily Rewards
- config.yml
- autominer.yml
- autosell.yml
- block-rewards.yml
- enchants.yml
- currencies.yml
- multipliers.yml
- ranks.yml
- prestiges.yml
- pickaxe-levels.yml
- pickaxe-skins.yml
- gangs.yml
- mines.yml
- bombs.yml
- blocks.yml
- mining-stats.yml
- rebirths.yml
- battlepass.yml
- quests.yml
- dailyrewards.yml
- efficiency.json
- fortune.json
- unbreaking.json
- haste.json
- speed.json
- fly.json
- nightvision.json
- jumpboost.json
- autosell.json
