
BanMenu – The Ultimate Minecraft Moderation Plugin
BanMenu is a powerful, modular moderation plugin for Spigot, Paper and Bukkit and fully supports Geyser / Bedrock cross-platform servers.
It provides a complete all-in-one moderation solution including punishments, tickets, Discord integration, role synchronization, security systems and detailed logging — all configurable and scalable.
Current Version: 1.4.2
🎯 Main Features

- Ban, Mute & Kick (temporary & permanent)
- Flexible ID-based punishment system
- Automatic expiration for temporary punishments
- Undo actions (Unban / Unmute)
- Admin & bypass permissions

- Modern, user-friendly moderation GUI
- Visual player overview
- Fast moderation without command spam

- GUI-based ticket creation & management
- Cooldown system to prevent abuse
- Ticket states: Open, Closed, Reopened
- Discord notifications for staff
(Extended in 1.4.0)

- Quiz runs directly in the Rules channel (no DMs)
- Ephemeral questions & final summary only
- Verified users skip the quiz automatically
- Multilingual messages (DE / EN)
- Fully configurable via
discord_rules_bot.yml

- Role management via Discord Slash Commands
- Admin / Moderator permission groups
- Configurable role permissions
- New config:
discord_role-permissions.yml
- Slash Commands:
- Minecraft command:

- Bidirectional sync: Minecraft ↔ Discord
- Priority modes:
minecraft, discord, both
- Manual sync command:
/dc-sync
/dc-sync <player>
- Fully configurable sync messages
📝 Discord Slash Commands
- All Rules Bot commands available as Slash Commands
- Channel-restricted execution
- Commands registered even if modules are disabled
- Multi-line embedded help messages

- IP tracking (alt account detection)
- Optional automatic IP bans
- Optional VPN detection
- Chat filter with blacklist & regex
- Chat delay / anti-spam system
📊 History & Statistics
- Full punishment history per player
- Detailed stats (bans, mutes, kicks, tickets)
- Deletable history with reasons
- Complete logging of moderation actions

- MySQL & SQLite support
- Full proxy support (BungeeCord / Velocity) (Comming Soon)
- Geyser / Bedrock compatible
- PlaceholderAPI integration
- LuckPerms & GroupManager support
- Multi-language (EN / DE)
- Modular system (disable unused features)
- YAML-based configuration
- Hot-reload without restart

| Command |
Description |
/banmenu |
Main command (reload, update, stats) |
/ban <player> <ID> |
Ban a player |
/unban <player> |
Unban a player |
/mute <player> <ID> |
Mute a player |
/unmute <player> |
Unmute a player |
/kick <player> [reason] |
Kick a player |
/check <player> |
Player information |
/history <player> |
Punishment history |
/gui |
Open GUI |
/ticket |
Ticket system |
/dc-verify <code> |
Link Discord account |
/dc-unverify |
Remove Discord link |
/dc-sync |
Sync own roles |
/dc-sync <player> |
Sync other players |
/discord-role |
Manage Discord roles |
/maintenance on |
Start Maintenance Mode Fix |
/maintenance on <time> |
Start Maintenance Mode with Timer |
/maintenance off |
Stop Maintenance Mode |

🔐 Permissions
Main Permissions
| Permission |
Description |
Default |
banmenu.* |
All BanMenu permissions |
op |
banmenu.banmenu |
Use main command /banmenu |
op |
banmenu.reload |
Reload plugin |
op |
banmenu.checkupdate |
Check for updates |
op |
Ban System
| Permission |
Description |
Default |
banmenu.ban.* |
All ban permissions |
op |
banmenu.ban.all |
Ban players |
op |
banmenu.ban.admin |
Perform admin bans |
op |
banmenu.ban.ID |
Use specific ban ID (e.g. banmenu.ban.1) |
op |
banmenu.ban.bypass |
Ban bypass |
op |
banmenu.unban.* |
All unban permissions |
op |
banmenu.unban.admin |
Unban players |
op |
banmenu.unban.ID |
Use specific unban ID |
op |
Mute System
| Permission |
Description |
Default |
banmenu.mute.* |
All mute permissions |
op |
banmenu.mute.admin |
Perform admin mutes |
op |
banmenu.mute.ID |
Use specific mute ID |
op |
banmenu.mute.bypass |
Mute bypass |
op |
banmenu.unmute.* |
All unmute permissions |
op |
banmenu.unmute.admin |
Unmute players |
op |
banmenu.unmute.ID |
Use specific unmute ID |
op |
Kick System
| Permission |
Description |
Default |
banmenu.kick.* |
All kick permissions |
op |
banmenu.kick.admin |
Kick players |
op |
banmenu.kick.bypass |
Kick bypass |
op |
General Commands
| Permission |
Description |
Default |
banmenu.check |
View player information |
op |
History System
| Permission |
Description |
Default |
banmenu.history.* |
All history permissions |
op |
banmenu.history.show |
View history |
op |
banmenu.history.delete |
Delete history |
op |
GUI System
| Permission |
Description |
Default |
banmenu.gui |
Open GUI menu |
op |
banmenu.gui.* |
All GUI permissions |
op |
banmenu.gui.ban |
Open ban GUI |
op |
banmenu.gui.mute |
Open mute GUI |
op |
banmenu.gui.kick |
Open kick GUI |
op |
banmenu.gui.unban |
Open unban GUI |
op |
banmenu.gui.unmute |
Open unmute GUI |
op |
Logs System
| Permission |
Description |
Default |
banmenu.logs.* |
All log permissions |
op |
banmenu.logs.show |
View logs |
op |
banmenu.logs.clear |
Clear logs |
op |
Notifications
| Permission |
Description |
Default |
banmenu.notify |
Receive team notifications |
op |
Chat Features
| Permission |
Description |
Default |
banmenu.bypasschatfilter |
Bypass chat filter |
op |
banmenu.bypasschatdelay |
Bypass chat delay |
op |
banmenu.bypassadvertising |
Bypass anti-link / advertising |
op |
Ticket System
| Permission |
Description |
Default |
banmenu.ticket.* |
All ticket permissions |
op |
banmenu.ticket.use |
Create tickets |
false |
banmenu.ticket.team |
Manage tickets |
op |
banmenu.ticket.admin |
Delete tickets |
op |
banmenu.ticket.bypass |
Cannot be reported |
op |
banmenu.ticket.delaybypass |
Bypass ticket cooldown |
op |
banmenu.ticket.notify |
Receive ticket notifications |
op |
Custom Commands
| Permission |
Description |
Default |
banmenu.customcommand |
See/use custom command in player GUI |
op |
banmenu.use.customcommand |
Execute custom command |
false |
Discord Integration
| Permission |
Description |
Default |
banmenu.discord.verify.use |
Link Discord account |
false |
banmenu.discord.verify.delete |
Delete player’s Discord verification |
op |
banmenu.discord.unverify |
Delete own Discord verification |
false |
banmenu.discord.role.sync.use |
Sync own Discord ↔ Minecraft roles |
false |
banmenu.discord.role.sync.other |
Sync roles for other players |
op |
banmenu.discord.role.use |
Use /discord-role command |
op |
Statistics
| Permission |
Description |
Default |
banmenu.stats.all |
View all statistics |
op |
🚧 Maintenance Permissions
| Permission |
Description |
Default |
banmenu.maintenance.use |
Enable and disable maintenance mode |
op |
banmenu.maintenance.join |
Join the server during maintenance |
false |
banmenu.maintenance.countdown.info |
View maintenance Admin countdown information |
false |
banmenu.maintenance.bossbar.show |
See the maintenance bossbar |
false |
banmenu.maintenance.cooldownbypass |
Bypass cooldowns for maintenance commands |
op |

- Minecraft 1.20+
- Java 17+
- Optional:
- LuckPerms / GroupManager
- PlaceholderAPI
- JDA (for Discord features)

- Download the plugin
- Place it into
/plugins
- Restart the server

- The following configuration files and folders will be created in
plugins/BanMenu/:
plugins/BanMenu/
├── Discord-Configs/
│ ├── discord.yml
│ ├── discord_rules_bot.yml
│ └── discord_role-permissions.yml
├── languages/
│ ├── de_DE.yml
│ └── en_GB.yml
├── punishment/
│ ├── ban_id_config.yml
│ ├── mute_config.yml
│ ├── kick_config.yml
│ ├── unban_config.yml
│ └── unmute_config.yml
├── banmenu.db
├── chat.yml
├── config.yml
├── history.yml
├── maintenance.yml
├── motd.yml
├── stats.yml
├── ticket.yml
├── bungee.yml #only by BungeeCord
└── velocity-plugin.json #only by Velocity
📚 Support

Developed by EndCrystalTV
Version 1.4.2