Voxel Shop beta is live. Expect occasional bugs. Learn more
Warn, mute, kick and ban from a real Minecraft menu, with reasons, lengths and history.

Spigot or Paper 1.21.7 and newer · The panel needs Dialog Engine (free) and 1.21.6+ players
Docs · Discord · Dialog Engine
A punishment plugin whose staff tools are a real Minecraft menu. /punish Steve opens a screen with Steve's head, whether he is online, what he is serving now and how many warnings count against him. Pick a reason and a length, flip Silent, and press Warn, Mute, Kick, Temp-ban or Ban. Bans ask first, and take typed details.
Every button runs an ordinary command as the staff member who pressed it, so the commands are never second best: they work from console, from other plugins, for players on older clients, and without Dialog Engine installed at all.
/punish on its own lists who is online, and takes a typed name for anybody offline.-ip, and silent punishments with -s that only staff hear about.| /punish [player] | The panel | punishments.punish |
| /warn <player> [-s] [reason] | Warn | punishments.warn |
| /unwarn <player> | Remove the newest warning | punishments.unwarn |
| /mute <player> [length] [-s] [reason] | Mute | punishments.mute |
| /unmute <player> | Unmute | punishments.unmute |
| /kick <player> [-s] [reason] | Kick | punishments.kick |
| /tempban <player> <length> [-s] [-ip] [reason] | Temp-ban | punishments.tempban |
| /ban <player> [length] [-s] [-ip] [reason] | Ban | punishments.ban |
| /unban <player> | Unban | punishments.unban |
| /history <player> | Their record | punishments.history |
| /punishments reload, /punishments revoke <id> | Reload, lift one by number | punishments.admin, punishments.revoke |
Lengths: 30m, 2h, 7d, 2w, 1mo, 1y, or perm. A reason starting with # is a preset: /tempban Steve #hacking flying at spawn. punishments.staff gives the lot; punishments.exempt cannot be punished.
/de edit punishments:panel opens the panel in Dialog Engine's browser editor. Your edits are kept when Punishments updates.Punishments.jar into plugins/ and start the server.plugins/Punishments/config.yml and messages.yml, then /punishments reload.update-check: false in config.yml turns it off.PunishmentPreEvent (cancellable, and the reason can be changed), PunishmentEvent and PunishmentRevokeEvent.
Ask on Discord. Please don't post bugs in the reviews; we can't reply there, and we would rather fix it.
Punishments is built on Dialog Engine's public API, the same one any plugin can use. Both come from resourcepack.ai, a web editor for resource packs.