Sueta

BlazeandCave's Advancements Pack Random Challenge

1.2.0

This is a little Plugin that extends BlazeandCave’s Advancement Pack into a rotating challenge system for you or your server.

·Plugin

Random BACAP Challenges

Turn BlazeandCave’s Advancement Pack into a rotating challenge system for you or your server.
Players (or everyone globally) get a random BACAP advancement to complete.

Requires: BlazeandCave’s Advancements Pack installed in your world’s datapacks/ folder.

Recommended: a texture pack that hides the bossbar, e.g. Invisible Boss Bars

Tested on: Paper (26.3)


Features

  • Solo – pick a random BACAP advancement for yourself.
  • Global challenges – pick a random BACAP advancement for the whole server
    (enable the BACAP Coop Mode to sync advancements between players).
  • Bossbar UI – colored title & description based on the BACAP category.
  • Components sidebar & GUI – see the advancement’s individual criteria:
    • Sidebar scoreboard with ✓/✗ markers.
    • Paginated chest GUI.
  • Timer command – simple in-game timer in the action bar: start / stop / status / reset.
  • Clickable help – use /challenge to see and run the commands available to you.
  • Skip vote (global) – players can vote to skip the current global challenge.
  • Optional timer – track your playtime in the action bar.
  • Filtering – include/exclude categories and IDs via config.
  • Separate permissions – control personal commands, global management and voting independently.
  • Localization – English and German included; easy to extend.

Commands

Personal challenges

/challenge             # show clickable help
/challenge start        # start or resume your personal challenge
/challenge next         # pick a new personal challenge
/challenge stop         # hide your personal challenge
/challenge status       # show the active challenge and your progress

Global challenges

/challenge global start # start a global challenge for all online players
/challenge global next
/challenge global stop
/challenge global skip  # vote to skip the current global challenge
/challenge global status

/challenge components true|false  # toggle the sidebar
/challenge components gui         # open the chest GUI for the current challenge

/timer start | stop | status | reset

Starting, immediately skipping and stopping global challenges require OP or assigned permissions by default.


Permissions

Personal challenges, progress displays, the timer and skip voting are available to everyone by default. Global management is restricted to OPs.

Use a permissions plugin such as LuckPerms to assign or deny individual permissions.

PermissionAllowsDefault
randombacap.useAccess to challenge commands; also required for their subcommandsEveryone
randombacap.personal.startStart or resume personal challengesEveryone
randombacap.personal.nextSkip personal challengesEveryone
randombacap.personal.stopStop personal challengesEveryone
randombacap.personal.statusUse /challenge statusEveryone
randombacap.componentsUse the progress sidebar and GUIEveryone
randombacap.timerUse timer commandsEveryone
randombacap.global.startStart global challengesOP
randombacap.global.nextImmediately skip global challengesOP
randombacap.global.stopStop global challengesOP
randombacap.global.skipCast or withdraw skip votesEveryone
randombacap.global.statusView global challenge statusEveryone
randombacap.adminGrants global start, next and stopOP

Public server: Keep the defaults and give trusted moderators randombacap.admin.

Small group: Give your friends randombacap.global.start if they should be able to start shared challenges, while keeping immediate skipping and stopping restricted.

Help and command suggestions only show commands the player has permission to use.



Configuration (excerpt)

config.yml keys you’ll actually care about:

language: en            # en or de

filter:
  only_categories: []   # e.g. [redstone, technical]
  exclude_categories:
    - statistics
  exclude_ids: []       # exact advancement IDs to exclude
  exclude_prefixes: []  # ID prefixes to exclude
  exclude_regex: []     # advanced filtering with regex

Restart the server after changing the configuration.

Tip: If you filter too aggressively, you might end up with very few available challenges.


Installation

  1. Install Paper 26.3 and run it with Java 25 or newer.
  2. Install the matching BlazeandCave’s Advancements Pack in world/datapacks/, or the datapacks/ folder of your custom-named world.
  3. Place this plugin’s JAR in plugins/.
  4. Fully restart the server.
  5. Use /challenge for help, /challenge start for solo play, or /challenge global start for a shared challenge.

Updating from an older plugin version

Stop the server, replace the old plugin JAR and start the server again.

Your existing settings, saved progress and customized messages remain in use. Missing message entries use the included defaults.

New in 1.2: Non-OP players need assigned permissions to start, immediately skip or stop global challenges.


Compatibility

  • Built against the Bukkit/Adventure API and tested on Paper.
  • Works alongside most gameplay plugins; it only reads BACAP advancements and shows UI.

Localization

Ships with English and German messages.



What changed in 1.2?

  • Added clickable help and a clearer challenge status.
  • Added separate permissions for personal commands, global management and voting.
  • Fixed /timer status showing the challenge status.
  • Fixed opening the progress GUI switching off the sidebar.
  • Fixed global selection falling back to challenges already completed by all online players.

FAQ

Q: Do players need to download anything?
A: No. Only the server needs the plugin and the BACAP datapack.

Q: Can I restrict commands to specific groups?
A: By default everyone can use them. Use your permissions plugin to gate or alias commands.

Q: Which Minecraft versions are supported?
A: Tested on 1.21.x. If your BACAP pack is very old, the plugin will warn about possible incompatibilities.


This is my first plugin, please report bugs or request features on GitHub.
Enjoy the challenge grind!

Similar projects

Plugin →