PerfBans
Modern punishment and moderation plugin with a full punish GUI, staff safeguards, and network-ready storage.
Paper and Folia 1.21 - 26.x
Support
Report bugs and get support here: https://discord.gg/VvM6k2eBDa
Features
• Folia support – Runs on Paper and Folia backends
• Punish GUI – Tabbed GUI for ban, temp ban, mute, temp mute, warn, kick, voice mute, IP ban, and IP mute with preset rules and confirm step
• Auto offence tiers – GUI presets escalate by prior punishments within a configurable reset window
• Staff quotas – Rolling punishment limits per LuckPerms rank with combined ban/mute/warn/kick/voice counts
• Duration limits and cooldowns – Per-group max temp lengths and per-type cooldowns with bypass permissions
• Commands and templates – Full command suite with #preset reasons, required-reason rules, and silent or public broadcasts via -s and -p
• Warnings system – Configurable warning expiry and automatic kick or tempban actions when thresholds are reached
• IP tools – IP ban and IP mute, duplicate IP lookup, join scanning, and optional alt auto-action
• Mute enforcement – Blocks chat and private-message commands while muted
• History and staff alerts – Paginated history, ban list, check commands, hover staff alerts, and optional old-history purge
• Cross-server sync – Redis pub/sub for punishment sync across backends with per-server scope
• LiteBans import – Import bans, mutes, warnings, and kicks from LiteBans SQLite, H2, or MySQL sources
• LuckPerms integration – Blocks punishing players with a higher rank weight than the staff member
• PerfVoiceMute hook – Voice mute tab and actions when PerfVoiceMute is installed
• Player screens – Customizable ban, mute, kick, and warn screens with appeal URL support
• Developer API – PerfBans API service for other plugins
Placeholders
%perfbans_is_banned% – Whether the player has an active ban (true/false)
%perfbans_is_muted% – Whether the player has an active mute (true/false)
%perfbans_active_ban_reason% – Active ban reason for the player
Commands
/ban (player) [reason] – Permanently ban a player (perfbans.ban)
/tempban (player) (duration) [reason] – Temporarily ban a player (perfbans.tempban)
/unban (player) [reason] – Remove an active ban (perfbans.rollback)
/ipban (player|ip) [reason] – Ban a player or IP address (perfbans.ban)
/mute (player) [reason] – Permanently mute a player (perfbans.mute)
/tempmute (player) (duration) [reason] – Temporarily mute a player (perfbans.mute)
/unmute (player) – Remove an active mute (perfbans.rollback)
/warn (player) [reason] – Warn a player (perfbans.warn)
/unwarn (player) (id) – Remove a warning by ID (perfbans.warn)
/kick (player) [reason] – Kick a player (perfbans.kick)
/history (player) [page] – View punishment history (perfbans.history)
/checkban (player) – Check active ban on a player (perfbans.history)
/checkmute (player) – Check active mute on a player (perfbans.history)
/dupeip (player|ip) – List accounts sharing an IP (perfbans.dupeip)
/banlist [page] – List active bans (perfbans.history)
/punish (player) – Open the punish GUI for a player (perfbans.punish)
/perfbans reload – Reload plugin configuration (perfbans.admin)
/perfbans help – Show admin command usage (perfbans.admin)
/perfbans import litebans – Import data from LiteBans (perfbans.admin)
/perfbans gui (player) – Open the punish GUI for a player (perfbans.admin)
Database
• SQLite (default)
• MySQL (configurable)
