CommandAllow gives you precise control over server commands with a clean allowlist. Define exactly which commands each group may use; everything else is denied by default. Groups can inherit from one another, so you can build simple or advanced rank ladders without repeating lists.
When a command is denied, players get instant, customizable feedback: MiniMessage chat text, actionbar notifications, and optional sounds. With ProtocolLib, tab-complete and the client’s command list update immediately on reload—no relog required. Built for performance, CommandAllow caches results and automatically invalidates them when permissions or groups change. Simple configuration, /commandallow reload (or /ca reload), and sensible defaults make it easy to drop in and use.
Features:
Simple Command Allowlist: Only allow the commands you want. Deny everything else.
Group System with Inheritance: Create ranks that inherit commands from each other.
LuckPerms & Permissions Support: Automatically uses LuckPerms groups or falls back to standard permission nodes (commandallow.group.vip).
Custom Feedback: Full MiniMessage support for chat and actionbar messages.
Custom Sounds: Set unique sounds for denied commands.
Secure Tab-Complete: Players only see commands they can actually use.
Easy to Use: Clean config and a simple reload command.
Requirements:
ProtocolLib 5.4.0+ (required)
LuckPerms (recommended)
Java 17+
Paper 1.19–1.21.8 (will work on spigot)
Commands:
/commandallow(ca) reload - Reloads the configuration.
Permissions:
commandallow.bypass - Bypass all command restrictions. (default: op)
commandallow.reload - Allows reloading the config. (default: op)
commandallow.group.<groupName> - Assigns a player to a group (if not using LuckPerms)
commandallow.group.default - The default group for any player without another assigned group. (default: true)
commandallow.* - Grant all plugin permissions
Code (YAML):
# Config version: 1.1 (DO NOT CHANGE THIS) config_version: "1.1" # Debug logging (Don't touch if you don't know what you're doing) debug: false
# Prefix settings prefix:
enabled: true
text: "<gray>[<yellow>CommandAllow</yellow>]</gray> "
# Prefix settings for messages in chat(enable/disable prefix per message type) prefix_settings:
messages:
no_permission: false
unknown_command: false
config_reloaded: true
# Security settings security: # Hide unknown commands from non-bypass players (recommended for security) # When true: Players always see "no_permission" for unknown commands # When false: Players see "unknown_command" for unknown commands hide_unknown_commands: true
# When a player has bypass, still show feedback for unknown commands # true: bypass players get unknown-command message and sound # false: bypass players can run anything and receive no feedback from this plugin bypass_unknown_feedback: true
# Messages support MiniMessage formatting: <red>Red</red>, <bold>Bold</bold> messages: # Message when player doesn't have permission for a command no_permission: "<red>You don't have permission to do this.</red>"
# Message when command doesn't exist unknown_command: "<red>Unknown command. Type /help for help.</red>"
# Message when configuration is reloaded config_reloaded: "<white>Configuration reloaded.</white>"
# Actionbar messages (support MiniMessage formatting) actionbar:
enabled: true
# Message when player doesn't have permission for a command no_permission: "<red><bold>✗</bold> No permission!</red>"
# Message when command doesn't exist unknown_command: "<red><bold>?</bold> Unknown command!</red>"
# Message delivery: CHAT, ACTIONBAR, or BOTH message_type: BOTH
# Group configuration # Use 'inherits: groupName' for inheritance # Use "*" to allow all commands # # Group Detection: # - With LuckPerms: Automatically detects player groups # - Without LuckPerms: Uses permissions like 'commandallow.group.groupName' # - All players without specific groups get the 'default' group groups:
default:
commands: - msg
- help
- spawn
- rules
- list
- tell
- r
# Example groups (uncomment and customize as needed): # # vip: # inherits: default # commands: # - fly # # mod: # inherits: default # commands: # - kick # - mute # - tempban # # admin: # inherits: mod # commands: # - "*"