2.2.0
Compatibility
Changes
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
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:bxBhdfVK:b7YeXk96"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:bxBhdfVK:b7YeXk96"
}

