RJUtils
A fully config-driven, button-triggered wave-defense minigame plugin for Paper/Spigot servers — clear waves, hold the fort, track live and all-time stats, and manage matches without ever touching a command block.
What it does
RJUtils turns a single button into a complete minigame controller. When a player clicks the start button, the plugin:
- Locks the button against double-clicks and makes it physically disappear until the round ends
- Clears inventories, teleports players to the arena, and sets their spawnpoint for the match
- Reads each player's mode/difficulty scoreboard tags and hands out the matching kit (fully custom items, enchantments, and potions — no limit on how many modes/difficulties you configure)
- Enforces a player limit, with a choice of cancelling the start or auto-benching extra players as spectators
- Blocks the start entirely if a required difficulty hasn't been selected — including catching new players who joined mid-setup without one
- Pulses a redstone block to trigger your own command-block logic
- Shows a live, per-player sidebar scoreboard: current wave, objective text, total/wave timers, kills, deaths, and players remaining
- Tracks wave objectives through multiple phases per wave, driven by scoreboard tags on your mobs (e.g. clear all
level5mobs → objective updates automatically; clear allAnchormobs → switch to huntingBoss) - Teleports everyone out once a wave's mobs are cleared, with configurable delay, title/sound broadcasts, and spawnpoint reset
- Sends players to a post-game stats room showing that match's personal results, then saves each player's all-time best kills/deaths and total games completed (only overwrites a record if the new value is higher — a bad game never erases a good one)
- Optionally pushes global leaderboards (top kills, top deaths, most games completed) to live holograms via DecentHolograms
- Adds a shift+right-click sword dash combat ability — a burst of forward momentum that deals bonus AoE damage to mobs (and optionally players) along the dash path
- Includes a spectator system with its own toggle button, bounded viewing zone, and automatic gamemode switching
- Includes a lightweight built-in admin toolkit — vanish, freeze, heal, feed, gamemode — so you don't need a separate moderation plugin for the basics
- Overrides the server's MOTD while a match is active and auto-spectates anyone who joins mid-round
- Ships an in-game GUI (
/rjutils gui) for editing coordinates and settings without hand-editing YAML
Requirements
- Paper or Spigot 1.20.x
- Java 17+
- (Optional) DecentHolograms — only needed if you want the global leaderboard holograms; everything else works without it
Setup
- Drop
RJUtils.jarinto yourplugins/folder and start the server once to generate the config files. - Edit
config.yml,waves.yml, andscoreboard-conf.ymlinplugins/RJUtils/— or use/rjutils guiin-game to set coordinates without leaving Minecraft. - Set the start button, arena teleport point, redstone trigger, spawnpoint, kits, spectator area, and post-game stats room to match your map.
- Tag your wave mobs with scoreboard tags matching your
waves.ymlconfiguration (e.g.level1–level14,Anchor,Boss) so wave objectives track and advance automatically. - Give players a mode tag (e.g.
Solos,Duos) and a difficulty tag (e.g.DiffEasy,DiffNormal) before they click the start button — add as many of your own as you like viakit-tagsinconfig.yml. - Reload individual sections without restarting:
/rjutils reload,/rjutils scoreboard reload,/rjutils wave reload.
Commands
All commands are under /rjutils, with full tab-completion:
| Command | Description |
|---|---|
/rjutils reload |
Reload config.yml and kits |
/rjutils status |
Show current lock/scoreboard state |
/rjutils scoreboard <show|reset|reload> |
Control the live scoreboard |
/rjutils wave <status|reload> |
Check or reload wave tracking |
/rjutils leaderboard |
Top killers in the current game |
/rjutils tagcount <tag> |
Count living entities with a scoreboard tag (debugging) |
/rjutils broadcast <message> |
Send a colored message to everyone |
/rjutils spectator <player> / exit |
Toggle spectator mode |
/rjutils admin <vanish|freeze|heal|feed|gm> |
Lightweight admin tools |
/rjutils gui |
Open the in-game config editor |
Permission: rjutils.admin (default: op) — required for everything except spectator self-exit.
Why use this
If you're running a wave-survival/fort-defense minigame and would otherwise be stitching it together with command blocks, scoreboard commands, and a separate admin plugin, RJUtils replaces all of that with one config-driven plugin. Every coordinate, kit, wave, tag, and message is editable from files (or the in-game GUI) — no recompiling, no command block spaghetti.

