Compatibility
Minecraft: Java Edition
Platforms
Tags
Creators
Details
StaffModeration+
Advanced all-in-one staff moderation toolkit for Paper 1.21+ servers.
A complete suite of tools for server staff to manage punishments, chat, players, and anti-cheat — all integrated into a beautiful GUI system.
Features
- Full punishment system (ban, tempban, IP ban, kick, warn, freeze) with silent
-ssupport - Interactive staff GUI with player details, history, and quick actions
- Chat management (lock, slow, clear, chat filter with leetspeak detection)
- Staff chat with toggle mode
- Vanish system
- SocialSpy (view all chat and commands)
- Inventory inspection (
/invsee) with live edits synced back - Player seen/last-online lookup (
/seen) - Voice announce (
/voiceannounce) — broadcast your voice to every player on the server via Simple Voice Chat - Report system
- Player notes
- Alt account checking
- IP viewer
- Maintenance mode with custom kick messages and MOTD
- Anti-duplication protection with inventory snapshots and auto-rollback
- Staff broadcast
- Web panel
- Configurable messages (all text customizable for translation)
Commands
| Command | Description | Permission |
|---|---|---|
/staffgui |
Open the staff GUI panel | staffmod.gui |
/freeze <player> |
Freeze a player in place | staffmod.freeze |
/tempban <player> <duration> [reason] |
Temporarily ban a player | staffmod.tempban |
/tempbanip <player> <duration> [reason] |
Temporarily ban a player's IP | staffmod.tempbanip |
/ban <player> [reason] |
Permanently ban a player | staffmod.ban |
/banip <player> [reason] |
Permanently ban a player's IP | staffmod.banip |
/kick <player> [reason] |
Kick a player from the server | staffmod.kick |
/unban <player> |
Unban a player | staffmod.unban |
/unbanip <player> |
Unban a player's IP | staffmod.unbanip |
/history <player> |
View a player's punishment history | staffmod.history |
/warn <player> [reason] |
Warn a player | staffmod.warn |
/note <player> <text> |
Add a staff note to a player | staffmod.note |
/alts <player> |
Check for alt accounts | staffmod.alts |
/ipview <player> |
View IP and connection info | staffmod.ipview |
/maintenance [on|off|status] |
Toggle or check maintenance mode | staffmod.maintenance |
/maintenance whitelist <add|remove|list> [player] |
Manage the maintenance whitelist | staffmod.maintenance |
/staffchat [message] |
Toggle staff chat or send a message | staffmod.staffchat |
/stafflist |
List online staff members | staffmod.stafflist |
/staffbroadcast <message> |
Broadcast a message as staff | staffmod.broadcast |
/vanish |
Toggle vanish mode | staffmod.vanish |
/clearchat |
Clear the chat | staffmod.clearchat |
/lockchat |
Toggle chat lock | staffmod.lockchat |
/slowchat <seconds|off> |
Set or disable slow chat | staffmod.slowchat |
/voiceannounce [player] [on|off|toggle] |
Broadcast your voice to all players (Simple Voice Chat) | staffmod.voiceannounce |
/invsee <player> |
View and edit a player's inventory | staffmod.invsee |
/socialspy |
Toggle spying on chat and commands | staffmod.socialspy |
/seen <player> |
Check when a player was last online | staffmod.seen |
/reports |
View open reports | staffmod.reports |
/report <player> <reason> |
Report a player to staff | staffmod.report |
/staffmod [reload] |
StaffModeration+ admin command | staffmod.admin |
Silent flag: append -s (or -silent) to /ban, /tempban, /banip, /tempbanip and /kick to suppress the public broadcast. Staff with staffmod.notify still see the action.
Permissions
| Permission | Description | Default |
|---|---|---|
staffmod.* |
All StaffModeration+ permissions | op |
staffmod.freeze |
Allows using /freeze | op |
staffmod.tempban |
Allows using /tempban | op |
staffmod.tempbanip |
Allows using /tempbanip | op |
staffmod.ban |
Allows using /ban | op |
staffmod.banip |
Allows using /banip | op |
staffmod.kick |
Allows using /kick | op |
staffmod.maintenance |
Allows using /maintenance | op |
staffmod.notify |
Receive staff notifications | op |
staffmod.admin |
Access to /staffmod reload | op |
staffmod.bypass |
Bypass freeze and maintenance | op |
staffmod.gui |
Access to /staffgui | op |
staffmod.unban |
Allows using /unban | op |
staffmod.unbanip |
Allows using /unbanip | op |
staffmod.history |
Allows using /history | op |
staffmod.staffchat |
Allows using /staffchat | op |
staffmod.report |
Allows using /report | true |
staffmod.reports |
Allows using /reports | op |
staffmod.stafflist |
Allows using /stafflist | true |
staffmod.vanish |
Allows using /vanish | op |
staffmod.clearchat |
Allows using /clearchat | op |
staffmod.lockchat |
Allows using /lockchat | op |
staffmod.slowchat |
Allows using /slowchat | op |
staffmod.warn |
Allows using /warn | op |
staffmod.alts |
Allows using /alts | op |
staffmod.note |
Allows using /note | op |
staffmod.ipview |
Allows using /ipview | op |
staffmod.broadcast |
Allows using /staffbroadcast | op |
staffmod.voiceannounce |
Allows using /voiceannounce | op |
staffmod.invsee |
Allows using /invsee | op |
staffmod.socialspy |
Allows using /socialspy | op |
staffmod.seen |
Allows using /seen | op |
staffmod.vanish.see |
Allows seeing vanished players | op |
staffmod.antidupe.notify |
Receive anti-dupe notifications | op |
Configuration
All messages are fully configurable in config.yml with color codes via & — making translation into other languages easy.
Chat Filter
The built-in chat filter supports:
- Word replacements
- Banned word masking
- Leetspeak normalization (
4→a,0→o,$→s, etc.)
Anti-Dupe Protection
The anti-duplication system protects against common dupe exploits:
- Offline-gain detection — the player's inventory is snapshotted on quit and compared on the next join; any items gained while offline are rolled back (the reliable drop-quit dupe vector)
- Drop-quit window tracking
- Rapid drop detection (alerts staff on mass item dropping)
- Auto-rollback when duplication is detected
- Persistent quit snapshots across server restarts
- Staff alerts via
staffmod.antidupe.notify
Maintenance Mode
- Persisted across restarts (
maintenance.yml) - Custom kick message and server list MOTD
/maintenance whitelist <add|remove|list> [player]— whitelisted players can join during maintenance
Alt Accounts
- IP history is tracked on every login (
alts.yml) /altsworks for offline players and lists every account that ever shared an IP, with online status
Freeze
- Blocks movement, block breaking/placing, chests, interactions, and item drops (configurable)
- Persistent action bar warning while frozen
- Staff notified when a frozen player logs out
Voice Announce
Requires Simple Voice Chat (any version with the server API, 2.1.12+) installed on the server. Players with staffmod.voiceannounce can run /voiceannounce; while active, their microphone audio is relayed to every player connected to Simple Voice Chat, regardless of distance. Use /voiceannounce list to see active announcers. Announcers are automatically disabled when they log out or the plugin reloads.
Seen
- First join, last join and last logout timestamps are tracked per player (
alts.yml) /seenworks for online and offline players
Requirements
- Server: Paper 1.21+
- API Version: 1.21
- Java: 21


