Docs/EmberPvP/BattlePass

BattlePass 2.0 for Spigot 1.8.8

A dependency-free, GUI-driven seasonal Battle Pass with free and premium rewards, rotating quests, daily rewards, and production-focused administration.

Major features

  • Paginated free and premium reward tracks
  • Multiple item stacks and console-command rewards per level
  • Clean player-facing lore for every command reward
  • Claim All button and /bp claimall
  • Hourly, daily, and 48-hour rotating quests
  • 68 quest templates with scaled variants for more than 200 possible objectives
  • Combat, mining, building, crafting, fishing, enchanting, food, travel, and playtime quests
  • Persistent quest progress with automatic XP payouts
  • Seasonal progress archives, countdowns, automatic resets, and manual reset confirmation
  • Configurable first-finisher item and command prize
  • Free daily reward with persistent cooldown
  • Configurable passive XP from kills, mining, and playtime
  • Offline-player XP and recovery commands
  • Reward-command failure logging and online admin alerts
  • Confirmation screens for destructive level operations
  • Permission-aware tab completion
  • Asynchronous, coalesced player-data saving
  • Public Java API for XP and quest integrations
  • Java 8 bytecode and Spigot 1.8.8 compatibility

Installation and migration

  1. Put BattlePass-2.0.0.jar in the server's plugins folder.
  2. Remove the older BattlePass JAR, but keep the plugins/BattlePass data folder.
  3. Restart the server.

Existing XP and claims migrate into Season 1. Existing single-item rewards and command rewards also migrate automatically.

Player controls

  • Left-click a level to claim its free reward.
  • Right-click a level to claim its premium reward.
  • Click Claim All Rewards to claim everything currently unlocked.
  • Open rotating quests with /bp quests.
  • Claim the recurring reward with /bp daily.

Admin workflow

Open /bp admin.

  • Click a level to edit free and premium item/command rewards.
  • Item rewards use drop capture: click the button, drop stacks with Q, then type done.
  • Command rewards ask for the console command and then clean player-facing text such as &6250 Coins.
  • Shift-right-click a command entry to remove only that reward.
  • Destructive level changes use confirmation screens.
  • Open Season Settings to edit the season name and duration, enable automatic resets, configure the first-finisher prize, or start the next season.
  • Closing an admin inventory immediately flushes configuration changes to disk.

Commands

CommandPermissionDescription
/bpbattlepass.useOpen the Battle Pass
/bp questsbattlepass.useOpen hourly, daily, and 48-hour quests
/bp dailybattlepass.useClaim the daily reward
/bp claimallbattlepass.useClaim all unlocked rewards
/bp progress [player]battlepass.use / battlepass.xpView progress
/bp history [player]battlepass.use / battlepass.adminView archived seasons
/bp admin [page]battlepass.adminOpen admin settings
/bp open <player>battlepass.adminOpen the GUI for a player
/bp season statusbattlepass.adminView the current season
/bp season start confirmbattlepass.adminArchive progress and start the next season
/bp reset <player>battlepass.adminReset current season XP and claims
/bp resetclaims <player>battlepass.adminReset free and premium claims
/bp dailyreset <player>battlepass.adminReset a daily cooldown
/bp xp get <player>battlepass.xpView online or offline XP
/bp xp give <player> <amount>battlepass.xpAdd XP
/bp xp set <player> <amount>battlepass.xpSet XP
/bp xp take <player> <amount>battlepass.xpRemove XP
/bp reloadbattlepass.adminReload plugin configuration

Premium access uses battlepass.premium by default and can be changed in season.yml.

Quest rotations

Five quests are selected for each pool by default:

  • Hourly quests reset every 60 minutes.
  • Daily quests reset every 24 hours.
  • Extended quests reset every 48 hours.

Selections are deterministic for each time window, so restarts do not reroll active quests. Counts and passive XP sources are configurable in config.yml.

Public API

BattlePassPlugin plugin = (BattlePassPlugin) Bukkit.getPluginManager().getPlugin("BattlePass");
plugin.getApi().addXp(player, 100);
plugin.getApi().getXp(player);
plugin.getApi().hasPremium(player);
plugin.getApi().progressQuest(player, QuestDefinition.Type.MOB_KILL, "ZOMBIE", 1);

Building

With Maven and Java 8+:

mvn clean package

The output is target/BattlePass-2.0.0.jar.

NextEmber Classes