✦ Overview
TuoStaff is a complete staff management suite built for professional Minecraft networks. It combines staff mode, vanish, freeze, punishment system, inventory inspection, reports, Discord webhooks, and cross-server MySQL sync — all in one plugin with zero fluff.
Designed for networks running multiple Paper servers sharing one MySQL database. Every ban, mute, warn, and kick is synced across all servers in real time.
✦ Features
Staff Mode
- Custom hotbar with 8 configurable items (fly toggle, vanish, night vision, speed, InvSee, sanction GUI, ban list, report list)
- Inventory fully locked — items cannot be moved, duplicated, or dropped while in staff mode
- True immortality: Resistance 254 + event cancellation + death fallback (nothing drops, no death screen)
- Hunger frozen at 20 — food bar never decreases
- Interactions fully blocked: chests, armor stands, item frames, pressure plates
- Inventory saved and restored on toggle
- GameMode saved and restored on toggle
- Vanish applied automatically on entry (configurable)
Vanish
- Full vanish: hidden from player list, join/quit messages suppressed
- Staff with tuostaff.see.vanish see vanished players with a visual indicator
- Fake join/quit messages broadcast to non-staff (configurable)
Freeze System
- Complete position lock — player cannot move even with hacks
- Blindness effect and ice helmet (configurable)
- Frozen players are fully immortal: cannot be killed by lava, PvP, void, /kill, or any plugin
- Potion effects saved before freeze and restored cleanly after unfreeze
- Persistent: player is refrozen if they reconnect while frozen
- Auto-ban on disconnect while frozen (configurable)
- Screen title + chat message + repeating action bar
Punishment System
- Ban, TempBan, BanIP, Unban, UnbanIP
- Mute, TempMute, Unmute
- Kick, Warn with configurable thresholds (auto-mute/kick/ban after N warns)
- Cross-server MySQL sync — bans and mutes apply on every server instantly
- Can ban players who never connected via Mojang API + Bukkit fallback
- Full sanction history with per-type counts
- Configurable warn cycle: reset warn count after threshold action
- Custom ban/kick/mute screens (multi-line, fully configurable)
- Broadcast messages on every sanction (configurable per action)
InvSee
- Real-time inventory viewing — updates live as the player moves items
- Optional modify permission to allow staff to take/give items
Alts Detection
- Shows all accounts that have connected from the same IP
- Works across all servers sharing the same MySQL database
Report System
- Players report others with /report
- Reports sync across servers via MySQL — any server's staff gets notified
- Reports include world, coordinates and reason
- Configurable cooldown to prevent spam
Staff Chat
- Private staff channel visible only to players with the permission
- Cross-server via MySQL (staff on Server A see messages from Server B)
Command Spy
- See all commands executed by non-staff players
- Sensitive arguments masked by default (passwords, etc.)
- Raw mode for admins who need to see full arguments
Chat Management
- /chat mute — silences the global chat (only staff can speak)
- /chat clear — clears chat for all players
Discord Webhooks
- Rich embeds with player face thumbnail for every event
- Events: ban, unban, mute, unmute, kick, warn, freeze, unfreeze, report, staff mode toggle, chat clear
- Fully configurable fields, colors, and messages per event in discord.yml
- Global image override (show your server logo instead of player face)
MySQL Cross-Server Sync
- Bans enforced on login on every server sharing the database
- BanSyncTask polls every 3 seconds to kick newly-banned online players
- IP ban cross-server sync
- Report notifications delivered to any server where a staff member is online
- Automatic index creation for performance on large servers
✦ Commands
Staff Mode & Tools
| Command | Aliases | Description |
|---|---|---|
| /staff | /s, /staffmode | Toggle staff mode |
| /vanish | /v, /ts-vanish | Toggle vanish |
| /sc <message> | — | Send a staff chat message |
| /cmdspy | — | Toggle command spy |
| /chat | — | Mute or clear global chat |
| /gamemode <mode> | /gm | Change your gamemode |
| /invsee <player> | — | View a player's inventory in real time |
| /alts <player> | /alt, /accs | View alt accounts by IP |
| /report <player> <reason> | /reportar | Report a player to staff |
Freeze
| Command | Aliases | Description |
|---|---|---|
| /freeze <player> | /ss | Freeze a player |
| /unfreeze <player> | /uss | Unfreeze a player |
Punishments
| Command | Description |
|---|---|
| /ban <player> [time] [reason] | Permanently or temporarily ban a player |
| /tempban <player> <time> [reason] | Temporary ban |
| /banip <player> [reason] | IP ban a player |
| /unban <player> | Unban a player |
| /unbanip <player/ip> | Unban an IP |
| /mute <player> [time] [reason] | Permanently or temporarily mute a player |
| /tempmute <player> <time> [reason] | Temporary mute |
| /unmute <player> | Unmute a player |
| /kick <player> [reason] | Kick a player |
| /warn <player> [reason] | Warn a player |
| /history <player> | View full sanction history |
| /clearhistory <player> [type] | Clear sanction history |
| /sanction <player> | Open the sanction GUI |
| /sanctionlist | View active bans and mutes (GUI) |
Admin
| Command | Description |
|---|---|
| /tuostaff reload | Reload all configuration files |
| /tuostaff reset <player> <type/ALL> | Reset sanction history |
| /tuostaff take <player> <type> [amount] | Remove specific sanctions |
| /tuostaff clearhistory <player> [type] | Clear history |
| /tuostaff debugperm <player> | Debug a player's TuoStaff permissions |
| /tuostaff help | Show all commands |
✦ Permissions
| Permission | Description | Default |
|---|---|---|
| tuostaff.admin | Full access — includes all permissions below | OP |
| tuostaff.command.staff | Toggle staff mode | OP |
| tuostaff.vanish | Toggle vanish | OP |
| tuostaff.see.vanish | See vanished players | OP |
| tuostaff.staffchat | Use staff chat | OP |
| tuostaff.cmdspy | Toggle command spy | OP |
| tuostaff.cmdspy.raw | See sensitive arguments unmasked in cmdspy | OP |
| tuostaff.chat.admin | Mute and clear global chat | OP |
| tuostaff.gamemode | Change gamemode | OP |
| tuostaff.freeze | Freeze and unfreeze players | OP |
| tuostaff.invsee | View player inventories | OP |
| tuostaff.invsee.modify | Modify inventories through InvSee | OP |
| tuostaff.alts | View alt accounts | OP |
| tuostaff.report | Submit reports | true |
| tuostaff.report.notify | Receive report notifications | OP |
| tuostaff.report.bypass | Bypass report cooldown | OP |
| tuostaff.punish | Open sanction GUI | OP |
| tuostaff.punish.ban | Ban players (/ban, /tempban) | OP |
| tuostaff.punish.banip | IP ban players | OP |
| tuostaff.punish.unban | Unban players | OP |
| tuostaff.punish.unbanip | Unban IPs | OP |
| tuostaff.punish.mute | Mute players (/mute, /tempmute) | OP |
| tuostaff.punish.unmute | Unmute players | OP |
| tuostaff.punish.kick | Kick players | OP |
| tuostaff.punish.warn | Warn players | OP |
| tuostaff.punish.override | Bypass sanction protection | OP |
| tuostaff.punish.protected | Protect a player from being sanctioned | false |
| tuostaff.history | View sanction history | OP |
| tuostaff.clearhistory | Clear sanction history | OP |
| tuostaff.sanctions.list | View active sanctions GUI | OP |
| tuostaff.ban.bypass | Bypass TuoStaff's own ban check on login | OP |
✦ Requirements
- Server: Paper 1.21+ (Spigot not supported)
- Java: 17 or higher
- MySQL: Optional — file mode works out of the box
- PlaceholderAPI: Optional — for placeholder support
✦ Support
Join our Discord for support, suggestions, and updates.
