StaffDiscord — Real-Time Minecraft & Discord Moderation Sync
The complete report management plugin that connects your Minecraft server to your Discord staff team in real time. When a player files a report, your staff sees it on Discord instantly — with player location, chat history, and a private discussion thread. Staff can reply directly from Discord and the message appears in the player's Minecraft chat as [STAFF]. Cut your moderation response time by 80% and never miss a report again, even when no staff members are online in-game.
StaffDiscord is built specifically for Paper 1.21.x servers that already use Discord for staff communication. It's lightweight, fully async, and integrates with every major moderation plugin including LiteBans, AdvancedBan, LibertyBans, and GrimAC.
Core features in detail
Advanced report GUI
Players run /report <player> to open a clean, item-based inventory interface. Each slot represents a report category (Cheating, Chat Abuse, Griefing, Inappropriate Content, Other) with a custom Minecraft item, name, and lore. Categories are fully configurable in config.yml — change names, items, descriptions, or add unlimited custom categories like "Scamming," "Spawn killing," or "Bug abuse."
Auto-threading in Discord
Every single report automatically generates its own private thread in your designated staff Discord channel. No more flooded channels where reports get buried under chat. Each case gets its own focused space for staff discussion. Threads auto-archive after a configurable time period (1 hour, 24 hours, 3 days, or 1 week) to keep your channel tidy.
ModMail two-way communication
This is the killer feature. When a staff member types a message inside a report thread on Discord, the message is delivered directly to the reported player in their Minecraft chat as [STAFF] your message here. Format is fully configurable. Perfect for:
- Issuing warnings without joining the server
- Handling appeals from offline staff
- De-escalating situations remotely
- Asking the player questions before taking action
The bot reacts with
Live chat mirroring
The moment a report is filed, the Discord thread receives:
- A snapshot of recent chat history from the reported player (configurable, default last 60 seconds)
- A live feed of any new chat messages from that player for the next 5 minutes (configurable)
Your moderators see exactly what's happening in real time. No more "I need to log in to investigate" — investigate from Discord.
Private message evidence (/reportmsg)
A unique command that tracks the last private message each player received. When a victim of harassment runs /reportmsg, the offending DM is automatically packaged with sender info, timestamp, and full message content into a Discord embed. No screenshots needed. Stop DM harassers with rock-solid evidence every time.
Automatic ban & kick logging
Every ban, tempban, IP-ban, and kick on your server is forwarded to a separate Discord channel as a color-coded embed:
Red for bans (including login-denied bans for already-banned players)
Orange for kicks- Includes player name, UUID, reason, and timestamp
Works with vanilla /ban and /kick, plus plugins that handle bans through kick events: LiteBans, AdvancedBan, LibertyBans, Maintenance, Vulcan, and any other plugin that follows standard Bukkit patterns.
Built-in cooldown system
Per-player cooldowns prevent report spam. Default is 60 seconds for /report and 30 seconds for /reportmsg, both fully configurable. Cooldowns persist across the same player session.
Performance and architecture
- 100% async Discord operations — never blocks the main thread
- Shaded JDA 6.4.1 — no extra plugins or libraries to install
- Smart caching — only the last 200 chat messages per player are kept in memory
- Reactive design — uses event listeners, not polling, so CPU usage is minimal
- Tested on production servers running 100+ concurrent players with zero TPS impact
Commands
| Command | Description | Permission |
|---|---|---|
| /report <player> | Opens the reporting GUI for a target player | None — available to all players |
| /reportmsg | Reports the last private message you received | None — available to all players |
| /sd reload | Reloads the configuration without restart | staffdiscord.admin |
Configuration overview
The config.yml exposes everything:
- Discord bot token, guild ID, and channel IDs
- Thread auto-archive duration
- All five default report categories (material, display name, lore — fully editable)
- Per-command cooldown durations
- Chat mirror radius, history duration, and follow duration
- ModMail enable/disable and message format
- Ban/kick logging toggles
- All player-facing message strings (supports & color codes)
If you can think of it, you can configure it.
Compatibility
Installation in 4 minutes
- Drop StaffDiscord-shaded.jar into your /plugins/ folder
- Restart your server once to generate plugins/StaffDiscord/config.yml
- Create a Discord bot at the Discord Developer Portal, enable Message Content Intent, and invite it to your server with permissions: View Channels, Send Messages, Embed Links, Add Reactions, Create Public Threads, Manage Threads
- Paste your bot token + 2 channel IDs (reports + bans) into config.yml, save, and run /sd reload
A complete step-by-step setup guide is included in the download as README.md.
Why StaffDiscord over alternatives?
Compared to free report plugins: They send a chat message to online staff and stop there. If no staff are online, the report is effectively lost. StaffDiscord works 24/7 because Discord works 24/7.
Compared to DiscordSRV: DiscordSRV is built for chat sync, not moderation workflows. You'd spend hours configuring it to do half of what StaffDiscord does out of the box. StaffDiscord runs alongside DiscordSRV without conflicts.
Compared to premium staff suites ($20–30): Those bundle 50 features you don't need. StaffDiscord does one thing exceptionally well: connect player reports to your Discord staff with rich context. Set it up once, never touch it again.
Support & updates
- Updates provided free for the lifetime of the plugin
- Tested against new Paper and Discord API releases
- Bug fixes typically pushed within 48 hours of a verified report
- Support via the BuiltByBit resource discussion or DM
