HomeJavaModsAdvancedPunish — ✨️ Configurable Punishment GUI & Commands (26.1.x) ✨️
AdvancedPunish — ✨️ Configurable Punishment GUI & Commands (26.1.x) ✨️
ModsJava

AdvancedPunish — ✨️ Configurable Punishment GUI & Commands (26.1.x) ✨️

⬇ Download on Spigot

NVIDIA_Overlay_hRdSYzETzm.jpg

Description

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:

Key Goals
• 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
Permissions

• 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})"
 
Important Keys
• 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:
javaw_0KfcifhRtQ.png

NVIDIA_Overlay_9QSabf1qJo.png

NVIDIA_Overlay_NEDYMFiy7I.png

NVIDIA_Overlay_B4pEUw0f66.png

NVIDIA_Overlay_Qlmk4fdDet.png

NVIDIA_Overlay_m86v4E5A0h.png

NVIDIA_Overlay_8xlKTUgkZ2.png

NVIDIA_Overlay_HdFrmSd7wb.png

NVIDIA_Overlay_okIF4elyH5.png

And more to discover.

• Installation
  1. download the plugin JAR
  2. Copy advpunish-1.0.0.jar into /plugins
  3. Start the server (generates config & data files)
  4. Edit config.yml to customize messages & reasons
  5. restart the server

Commands

Plugin details

Read from the plugin's own plugin.yml.

Quick facts

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.

Explore more