AdvancedPunish is a production-ready moderation plugin designed to make player discipline fast, clear, and reliable for staff members.
It combines an intuitive GUI-based workflow with flexible command support, allowing moderators to punish players efficiently while keeping records clean and readable.
Developed by Mutedly
The plugin focuses heavily on usability and customizability:
- Preset punishment reasons
- Custom reasons entered via chat
- Paginated punishment history per player
- Fully configurable message templates (branding & translation friendly)
• Fast, safe moderation actions via GUI or commands
• Clear, readable punishment history for every player
• Fully configurable messages for players, staff, and broadcasts
• Silent punishments and modular staff notifications
• Reliable persistence (prevents stale mutes/unbans after restart)
• Features
• GUI-driven punishment flow: Ban, Warn, Mute, Kick
• Temporary & permanent punishments
• Preset reasons + custom reasons via chat input
• Warn system with severity levels: Low / Medium / High (stored in history)
• Per-player punishment history GUI with pagination and detailed records
• Silent mode via GUI toggle or -s flag on /unmute and /unban
• Configurable staff notifications (permission: advpunish.notify)
• Fully configurable messages & placeholders
• Flexible duration parsing: seconds, minutes, days, months
• Reliable data saving — prevents removed punishments from reappearing
• Lightweight & optimized for survival, minigame, and network servers
• Commands
Code (Text):
• /punish <player> — Open the punishment GUI
Permission: advpunish.use
• /unmute <player> [-s] — Unmute a player (-s = silent)
Permission: advpunish.unmute
• /unban <player> [-s] — Unban a player (-s = silent)
Permission: advpunish.unban
• /punishmenthistory <player> — Open punishment history GUI (paginated)
Permission: advpunish.history
Permission: advpunish.use
• /unmute <player> [-s] — Unmute a player (-s = silent)
Permission: advpunish.unmute
• /unban <player> [-s] — Unban a player (-s = silent)
Permission: advpunish.unban
• /punishmenthistory <player> — Open punishment history GUI (paginated)
Permission: advpunish.history
• advpunish.use — Use the punishment GUI
• advpunish.history — View punishment history
• advpunish.unmute — Unmute players
• advpunish.unban — Unban players
• advpunish.notify — Receive staff punishment notifications
• Configuration
File: config.yml
Code (Text):
cheat-types:
- Hacks
- Killaura
- Xray
- Speed/Flight
- Exploits
- Duplication
- Griefing
mute-reasons:
- Spam
- Harassment
- Advertising
messages:
banned: "&a{player} &fwas banned for: &a{reason} &fby &a{moderator}"
# Message shown on the server 'ban screen' when a player attempts to join. Placeholders: {player},{reason},{moderator},{expiry}
ban_screen: "&cYou are banned from this server.\n&7Reason: {reason}\n&7Banned by: {moderator}\n&7Expiry: {expiry}"
muted: "&a{player} &fwas muted for: &a{reason}&f, &a({expiry}) &fby &a{moderator}"
# Messages shown to players when they attempt to chat while muted.
# Placeholders: {remaining} (time left, e.g. "0m 57s")
mute_permanent_player: "&cYou are currently muted (permanent)."
mute_permanent_info: "&7Contact a staff member to appeal or review your mute."
mute_blocked: "&cYou are muted and cannot chat."
mute_expired: "&aYour mute has just expired. You can now chat."
mute_remaining_line1: "&cYou are muted."
mute_remaining_line2: "&7Time remaining: &b{remaining}"
mute_remaining_line3: "&7Contact a staff member to appeal."
# Message shown to the player when they are kicked
kick_screen: "&cYou have been kicked.\n&7Reason: {reason}\n&7By: {moderator}"
kicked: "&c{player} was kicked for: &7{reason} (&6by {moderator}&7)"
unmuted: "&a{player} has been unmuted{by}"
unbanned: "&2{player} has been unbanned{by}"
# Direct/private messages sent to the player when they are unmuted/unbanned
unmuted_direct: "&aYou have been unmuted."
unbanned_direct: "&aYou have been unbanned."
expired_notify: "&aYour mute has expired."
# Staff notification messages (sent to online players with permission 'advpunish.notify')
# Placeholders: {player},{reason},{moderator},{expiry}
staff_banned: "&6[Staff] &f{player} was banned by &a{moderator} &ffor: &a{reason} &f({expiry})"
staff_muted: "&6[Staff] &f{player} was muted by &a{moderator} &ffor: &a{reason} &f({expiry})"
staff_kicked: "&6[Staff] &f{player} was kicked by &a{moderator} &ffor: &a{reason}"
# Messages shown to the moderator who executed the action (configurable)
moderator_ban_permanent: "&cPlayer permanently banned: &f{player} &7({reason})"
moderator_ban_temporary: "&cPlayer temporarily banned: &f{player} &7until &b{expiry}"
moderator_mute_permanent: "&ePlayer permanently muted: &f{player} &7({reason})"
moderator_mute_temporary: "&ePlayer temporarily muted: &f{player} &7until &b{expiry} &7({reason})"
moderator_kick: "&cPlayer kicked: &f{player} &7({reason})"
# Messages when attempting to punish a player who is already punished
already_muted: "&c{player} is already muted."
already_banned: "&c{player} is already banned."
# Warning messages
warned: "&f{player} was warned by &a{moderator} &ffor: &a{reason} &f({level})"
staff_warned: "&6[Staff] &f{player} was warned by &a{moderator} &ffor: &a{reason} &f({level})"
warned_player: "&cYou have been warned! &7Reason: {reason} &7(Level: {level})"
- Hacks
- Killaura
- Xray
- Speed/Flight
- Exploits
- Duplication
- Griefing
mute-reasons:
- Spam
- Harassment
- Advertising
messages:
banned: "&a{player} &fwas banned for: &a{reason} &fby &a{moderator}"
# Message shown on the server 'ban screen' when a player attempts to join. Placeholders: {player},{reason},{moderator},{expiry}
ban_screen: "&cYou are banned from this server.\n&7Reason: {reason}\n&7Banned by: {moderator}\n&7Expiry: {expiry}"
muted: "&a{player} &fwas muted for: &a{reason}&f, &a({expiry}) &fby &a{moderator}"
# Messages shown to players when they attempt to chat while muted.
# Placeholders: {remaining} (time left, e.g. "0m 57s")
mute_permanent_player: "&cYou are currently muted (permanent)."
mute_permanent_info: "&7Contact a staff member to appeal or review your mute."
mute_blocked: "&cYou are muted and cannot chat."
mute_expired: "&aYour mute has just expired. You can now chat."
mute_remaining_line1: "&cYou are muted."
mute_remaining_line2: "&7Time remaining: &b{remaining}"
mute_remaining_line3: "&7Contact a staff member to appeal."
# Message shown to the player when they are kicked
kick_screen: "&cYou have been kicked.\n&7Reason: {reason}\n&7By: {moderator}"
kicked: "&c{player} was kicked for: &7{reason} (&6by {moderator}&7)"
unmuted: "&a{player} has been unmuted{by}"
unbanned: "&2{player} has been unbanned{by}"
# Direct/private messages sent to the player when they are unmuted/unbanned
unmuted_direct: "&aYou have been unmuted."
unbanned_direct: "&aYou have been unbanned."
expired_notify: "&aYour mute has expired."
# Staff notification messages (sent to online players with permission 'advpunish.notify')
# Placeholders: {player},{reason},{moderator},{expiry}
staff_banned: "&6[Staff] &f{player} was banned by &a{moderator} &ffor: &a{reason} &f({expiry})"
staff_muted: "&6[Staff] &f{player} was muted by &a{moderator} &ffor: &a{reason} &f({expiry})"
staff_kicked: "&6[Staff] &f{player} was kicked by &a{moderator} &ffor: &a{reason}"
# Messages shown to the moderator who executed the action (configurable)
moderator_ban_permanent: "&cPlayer permanently banned: &f{player} &7({reason})"
moderator_ban_temporary: "&cPlayer temporarily banned: &f{player} &7until &b{expiry}"
moderator_mute_permanent: "&ePlayer permanently muted: &f{player} &7({reason})"
moderator_mute_temporary: "&ePlayer temporarily muted: &f{player} &7until &b{expiry} &7({reason})"
moderator_kick: "&cPlayer kicked: &f{player} &7({reason})"
# Messages when attempting to punish a player who is already punished
already_muted: "&c{player} is already muted."
already_banned: "&c{player} is already banned."
# Warning messages
warned: "&f{player} was warned by &a{moderator} &ffor: &a{reason} &f({level})"
staff_warned: "&6[Staff] &f{player} was warned by &a{moderator} &ffor: &a{reason} &f({level})"
warned_player: "&cYou have been warned! &7Reason: {reason} &7(Level: {level})"
• cheat-types — Preset ban reasons
• mute-reasons — Preset mute reasons
• messages.* — All player, staff, moderator, and broadcast messages
Supported Placeholders
{player}, {reason}, {moderator}, {expiry}, {remaining}, {level}
• messages.warned — Public warn broadcast
• messages.warned_player — Private warn message
• messages.already_muted / messages.already_banned — Moderator feedback
All messages support & color codes (automatically translated).
• How Durations Work
• GUI duration selection: minutes, days, months, or custom input
• Custom duration suffixes supported:
s, sec, second, m, min, d, day, mo, month
Examples
• 30s
• 5m
• 1d
• 2mo
• Data Storage
Path: plugins/AdvPunish/punishments.yml
• mutes.<player>.expiry — Expiry time (epoch ms)
• expiry_readable — Human-readable expiry
• history.<player> — Serialized punishment records
✔ Old mute/ban keys are cleared on save, preventing punishments from reappearing after restart.
• Screenshots:
And more to discover.
• Installation
- download the plugin JAR
- Copy advpunish-1.0.0.jar into /plugins
- Start the server (generates config & data files)
- Edit config.yml to customize messages & reasons
- restart the server
Quick facts
- Edition: Minecraft Java
- File type: .jar
- Minecraft versions listed: 1.21, 26.1
- How to install: Install the matching mod loader (Forge, Fabric or NeoForge) for your Minecraft version. → Download the .jar. → Put it in the .minecraft/mods folder and launch that loader profile.
- Where to get it: Opens on Spigot — not every file is mirrored on our own servers.
Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.
AdvancedPunish — ✨️ Configurable Punishment GUI & Commands (26.1.x) ✨️ is a free Minecraft Java mod. Compatible with Minecraft 1.21, 26.1. Downloaded 137 times (via Spigot). Download it and open it directly in the game.