Compatibility
Minecraft: Java Edition
1.21.x
Platforms
Links
Creators
Details
Licensed ARR
Published 22 hours ago
Updated last week
ArchivePunishments
A DonutSMP-style punishment system for Paper & Folia 1.21.11. Instead of typing reasons and durations by hand, staff pick a category and the plugin does the rest. Repeat offenders automatically move up an escalation ladder.
/offend AxyDevv ban-evasion
/mute AxyDevv chat-spam
Features
- Category-based punishments: 72 ready-to-use categories (39 ban, 33 mute), all in English and fully editable in
config.yml. - Escalating durations: each category has a ladder. Chat Spam, for example, goes 10m → 30m → 1h → 3h → 12h. The last step repeats, so a ladder that doesn't end in
permnever becomes permanent. - Human-friendly times: mutes start short (minutes), bans start gentle and only reach
permwhere it makes sense. - Proper mute enforcement:
- Chat is blocked, and other chat plugins can't un-cancel it.
- Private-message and
/mestyle commands are blocked while muted (configurable list). - Muted players see the reason and time left when they talk or join.
- Works on OPs and wildcard-permission players too. Staff immunity is a separate
exemptpermission, checked only when issuing a punishment.
- Voice chat mute: optionally mutes the player in Simple Voice Chat through LuckPerms. It is skipped silently if LuckPerms isn't installed.
- Suspensions:
/suspendputs an account "on hold". The player is kicked and sees "We'd like to talk with you about something, open a ticket in …" until staff run/unsuspend. - Clean ban screen: shows reason, staff member, time left and your appeal link.
- Offline support: punish anyone who has joined at least once, even if they're offline.
- Safe by design: punishing someone who is already muted or banned is refused, so the offense counter doesn't inflate by accident.
- Folia supported.
- Auto config update: after an update, an outdated config is backed up as
config-old-vN.yml, the new one is installed and yourdiscord-linkis kept.
Commands
| Command | Description | Permission |
|---|---|---|
/offend <player> <category> |
Ban a player (alias /punish) |
archivepunishments.offend |
/unpunish <player> |
Remove a ban (alias /unoffend) |
archivepunishments.unpunish |
/mute <player> <category> |
Mute a player (chat and voice chat) | archivepunishments.mute |
/unmute <player> |
Unmute a player | archivepunishments.unmute |
/suspend <player> |
Put an account on hold | archivepunishments.suspend |
/unsuspend <player> |
Lift a suspension | archivepunishments.unsuspend |
/punishcategories [ban|mute] |
List all categories and their ladders | archivepunishments.punishcategories |
/archivepunishments reload |
Reload config and data (alias /apunish) |
archivepunishments.manage |
/archivepunishments info <player> |
Show active punishments and offense counts | archivepunishments.manage |
/archivepunishments reset <player> [category] |
Reset offense counters | archivepunishments.manage |
archivepunishments.admin includes all of the above (OP by default).
archivepunishments.exempt makes a player impossible to punish by other staff. It is not given to anyone by default, so you can test on yourself. Give it to your staff group.
Configuration
Everything lives in config.yml:
discord-link: "https://discord.gg/yourserver"
mute:
blocked-commands: [msg, tell, w, r, me, say]
voice-chat:
enabled: true
permission-node: "voicechat.speak"
categories:
chat-spam:
type: MUTE
display: "Chat Spam"
durations: ["10m", "30m", "1h", "3h", "12h"]
killaura:
type: BAN
display: "KillAura"
durations: ["14d", "30d", "60d", "perm"]
Durations accept s, m, h, d, w, combinations like 1d 12h, and perm. Add, remove or edit categories freely, then run /archivepunishments reload.
Requirements
- Paper or Folia 1.21.11, Java 21
- Optional: LuckPerms + Simple Voice Chat for voice chat mutes
Notes
- Punishment data is stored in the plugin's own
punishments.yml, not in the vanilla ban list./unpunishstill pardons old vanilla bans. - Players must have joined the server at least once before they can be punished by name.


