High quality UHC plugin that allows you to do UHC Game in high version that look like Stray or other competitive Minecraft UHC server.
-# This text is from my github repositorie, avoid all the maven building help.
UHC plugin for Minecraft Paper servers. It covers the full match lifecycle:
configuration, scenarios, teams, scatter, timers, borders, statistics, scoreboard,
Discord announcements, and match ending.
uhc and uhc_nether worlds with automatic creation, configured borders,| Component | Version / note |
|---|---|
| Java | 21 |
| Maven | 3.9+ recommended |
| Server | Paper 1.21.x (api-version: 1.21) |
| Database | Optional MySQL, enabled by default in database.yml |
| Optional plugins | MiniPlaceholders, TAB, Apollo, Chunky, WorldEdit / FastAsyncWorldEdit |
The plugin is compiled against paper-api:1.21.11-R0.1-SNAPSHOT.
mvn clean package
The production jar is generated in target/, for example:
target/uhc-1.0.4-SNAPSHOT.jar
plugins/ directory.plugins/UHC/./pregen.The plugin automatically creates and configures the uhc and uhc_nether worlds.
| File | Purpose |
|---|---|
uhc.yml |
Timers, teams, borders, Nether, drops, potions, scatter, late scatter, spectator spawn, gameplay flags, tablist, border wall, and Elo. |
database.yml |
MySQL connection, assist window, leaderboard size, and refresh interval. |
discordwebhook.yml |
Discord webhook, bot/channel target, role mention, opening and victory embeds. |
scoreboard.yml |
Scoreboard title, objectives, and solo/team lines. |
joinitems.yml |
Items given in the lobby. |
guis.yml |
Interface labels and slots. |
items.yml |
Custom item names and lore. |
messages.yml |
Prefixes and shared messages. |
language.yml |
Localizable text used by commands and listeners. |
plugin.yml |
Commands, main permission, and Bukkit/Paper metadata. |
By default, database.yml contains mysql.enabled: true. If no MySQL server is
available, either provide valid credentials or set this value to false. In memory mode,
stats work for the current session but are not persisted.
The administration permission is uhc.host and defaults to op.
| Command | Description |
|---|---|
/start |
Starts the match, scatters players, and starts timers. |
/finish <player> |
Ends the match with a player winner. |
/finish team <id> |
Ends the match with a team winner. Also accepts /finish team:<id>. |
/configurationAdmin |
Opens the admin configuration GUI. |
/scenariosadmin |
Opens the scenario administration GUI. |
/pregen [radiusBlocks] [chunksPerTick] |
Pre-generates the UHC Overworld and Nether. |
/pregen stop |
Stops the current pre-generation task. |
/announce <opening> |
Sends the Discord announcement. Accepted formats: 16h01m, 16h01min, 16:01. |
/hidden [player] |
Applies an anonymous identity to a player. |
/hidden reset [player] |
Restores the original identity. |
/statsadmin clear |
Deletes all statistics. |
/statsadmin undo |
Reverts statistics from the last match. Alias: /statsadmin undolastgame. |
/statsadmin get <player> |
Shows a player's statistics. |
/statsadmin add <player> <stat> <amount> |
Adds a value to a statistic. |
/statsadmin remove <player> <stat> <amount> |
Removes a value from a statistic. |
/statsadmin set <player> <stat> <value> |
Sets a statistic value. |
/revive <player> |
Revives a player and restores them to the alive counter when possible. |
/heal [player|all] |
Heals one player, yourself, or everyone. |
/feed [player|all] |
Restores food for one player, yourself, or everyone. |
/head <skin> [target] [amount] |
Gives a player head. |
| Command | Description |
|---|---|
/team create |
Creates a team if team mode is enabled. |
/team inv <player> |
Invites a player. |
/team invite <player> |
Alias for /team inv <player>. |
/team accept |
Accepts an invitation. |
/team chat |
Toggles team chat. |
/team info |
Shows team members. |
/team leave |
Leaves the current team. |
/team kick <player> |
Kicks a member, leader only. |
/team disband |
Disbands the team, leader only. |
/crossteam <player> |
Merges two alive incomplete teams during a running game. |
/configuration |
Opens the public configuration GUI. |
/scenarios |
Shows active scenarios. Aliases: /scen, /scenario. |
/kills [player] |
Shows match kills. |
/assists [player] |
Shows match assists. |
/fight |
Broadcasts your position when looking for a fight. |
Useful aliases: /party for /team, /config and /cfg for /configuration,/anonymous and /nick for /hidden, /endgame and /forcewin for /finish,/uhcstats, /statadmin, /statsmanage for /statsadmin.
| Scenario | Effect |
|---|---|
| Bowless | Bows and crossbows cannot be used. |
| Chest | A dead player's inventory is stored in a chest. |
| Cobble Only | Non-ore cave blocks drop cobblestone. |
| Cold Weapons | Flame and Fire Aspect are disabled. |
| CutClean | Ores and food directly drop smelted. |
| DoubleHealth | Players have 20 hearts. |
| FlowerPower | Breaking flowers drops a random legal item or loot-table reward. |
| Golden Head | Players drop their head, craftable into a golden apple-looking Golden Head. It consumes like a vanilla golden apple and keeps the custom Regeneration III + Absorption effects. |
| Hastey Boys | Pickaxes are unbreakable and have Efficiency III. |
| Horseless | Players cannot mount horses. |
| Maceless | Maces cannot be crafted or used. |
| NoClean | Grants 30 seconds of invincibility after a kill. |
| NoFall | Fall damage is disabled. |
| NoPoison | Poison effect is blocked. |
| Randomizer | Block and mob drops are randomized into legal survival items. |
| SafeLoot | Only the killer can open a death chest for the first 20 seconds. |
| SafeMining | Damage is blocked during the mining phase. |
| Shieldless | Shields cannot be crafted or used. |
| Spearless | Spears cannot be crafted or used. |
| Timber | Breaks a whole tree at once. |
| TimeBomb | Death chests explode after 60 seconds. |
If MiniPlaceholders is installed, the uhc expansion is registered automatically.
Player placeholders:
kills, deaths, assists, wins, games_played, elo, elo_rankmatch_kills, match_assists, team_killsalive, elapsed_time, time_status, next_event, winner, modeteam, team_id, team_display, team_colordo_not_disturb_link, do_not_disturb_players, do_not_disturb_timeGlobal leaderboard placeholders:
top_kills_name, top_kills_valuetop_deaths_name, top_deaths_valuetop_assists_name, top_assists_valuetop_wins_name, top_wins_valuetop_games_played_name, top_games_played_valuetop_elo_name, top_elo_valueLeaderboard placeholders accept a rank argument according to MiniPlaceholders syntax.
/configurationAdmin and /scenariosadmin.uhc.yml, especially teams.size, timers, borders, and Nether settings./pregen, or let Chunky handle it if the plugin is installed./team./announce <opening>./start./crossteam <player> to merge incomplete teams if needed./finish./statsadmin if a correction is needed.src/main/java/xyz/pyxismc/uhc/
commands/ Bukkit/Paper commands
config/ UHC configuration loading
discord/ Discord embed sending
game/ Match state, worlds, borders, teams, match ending
gui/ Configuration and scenario interfaces
listeners/ Gameplay and configuration listeners
scenarios/ Scenario registry and activation
scoreboard/ Scoreboard and internal placeholders
stats/ MySQL, cache, leaderboards, Elo
utils/ Message and language helpers
mvn clean package
Then test the jar on a local Paper server with at least:
/configurationAdmin, /scenariosadmin, /pregen, /start;/crossteam, late scatter, reconnect grace, and spectator hiding;/finish;