BanMenu
BanMenu is a powerful Minecraft moderation plugin featuring a GUI, ticket system, Discord integration, and comprehensive punishment management for Spigot and Paper
BanMenu

BanMenu – The Ultimate Minecraft Moderation Plugin
Geyser / Bedrock cross-platform servers is a powerful, modular moderation plugin for Geyser / Bedrock cross-platform servers 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.
1.4.2 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: - `/role give` - `/role remove` - Minecraft command: - `/discord-role`
- 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
---
- Geyser / Bedrock compatible support - Full proxy support (BungeeCord / Velocity) Geyser / Bedrock compatible - 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 |
---
- Java 17+ - Java 17+ - Optional: - LuckPerms / GroupManager - PlaceholderAPI - JDA (for Discord features)
---
1. Download the plugin 2. Place it into `/plugins` 3. Restart the server
4. The following configuration files and folders will be created in `plugins/BanMenu/`:
```text 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
---
Version 1.4.2 Version 1.4.2















