Hide commands from tab-complete, block their execution, and keep your plugin list private
Hide commands from tab-complete, block unauthorized execution, and keep your server's plugin stack private — all with per-group rules and tools that explain exactly why a command is visible, hidden, allowed, or blocked.
Minecraft servers often expose far more command information than players actually need. Plugin commands, administrative tools, aliases, and namespaced commands can appear through tab-complete or commands such as /plugins and /version.
SunshineCommandGuard gives server owners direct control over that visibility without requiring you to redesign your existing permission setup.
Features
Tab-complete filtering — control which commands players can discover through command suggestions.
Execution blocking — commands outside a player's allowed rules can be rejected as unknown commands with a customizable message.
Server privacy protection — protect commands such as
/plugins,/pl,/ver,/version,/about, and/help.Per-group profiles — define different command policies for different LuckPerms groups, including priority and inheritance behavior.
LuckPerms synchronization — online group and permission changes are reflected automatically without requiring players to reconnect.
Flexible matching — literal commands,
regex:patterns, negative!entries, andplugin:<Name>expansion.Namespace-aware security —
plugins,bukkit:plugins, andminecraft:pluginsremain distinct security-sensitive command tokens. Temporary grants do not accidentally expose namespaced variants.Hidden aliases — keep commands runnable while removing them from tab-complete.
Argument-level rules — create per-command argument allow/deny rules. For example, allow
/gamemode survivalwhile rejecting/gamemode creative.Live verification —
/cmdguard test <player> <command>shows the resolved group, matching rule, and reason a command would be visible, hidden, allowed, or blocked.Safe-by-default configuration — CommandGuard ships disabled so you can verify your rules before enabling filtering on a live server.
Update notifications — CommandGuard can check GitHub Releases and notify the console and administrators when a newer version is available.
Updates are never downloaded or installed automatically.
bStats metrics — included and relocated to avoid conflicts with other plugins.
Screenshots
All screenshots below were taken on a live production server.
Hidden — the command does not appear in the player's normal tab-complete suggestions while remaining runnable when your rules allow it.
Blocked — a command outside the player's allowed rules is rejected as an unknown command.
Server privacy — /plugins returns your configured response instead of exposing the real plugin list.
Requirements
- Paper 1.21.x or a compatible Paper fork
- Java 21
- LuckPerms is optional
Without LuckPerms, players fall back to the configured default group.
Players with the bypass permission or OP status skip filtering, so always test your setup with a non-OP account.
Folia support is not currently guaranteed.
Installation
- Download
SunshineCommandGuard-1.4.1.jar. - Place it inside your server's
plugins/folder. - Start the server once to generate the default configuration.
- Edit
plugins/SunshineCommandGuard/config.yml. - Configure the commands available to each group.
- Test your rules before enabling them:
/cmdguard test <player> <command>
- Set:
enabled: true
- Reload CommandGuard:
/cmdguard reload
Important
A badly configured command filter can leave players with few or no visible commands.
For this reason, SunshineCommandGuard ships with:
enabled: false
Always verify your default group with a non-OP test account before enabling filtering.
Configuration Example
[CODE] enabled: true
bypass-permission: "sunshine.cmdguard.bypass"
groups:
default:
priority: 0
blocked-message: "<red>Unknown command."
commands:
- help
- spawn
- msg
- "regex:^(msg|tell|w|r|reply)$"
- "!op"
- "!stop"
hidden: []
args: {}
[/CODE]
Update Notifications
By default, CommandGuard can check the official GitHub Releases page for newer versions.
Example:
[CODE] updates: enabled: true notify-console: true notify-admins: true [/CODE]
When a newer release is available, the console and authorized administrators can receive a notification.
SunshineCommandGuard never automatically downloads, replaces, or installs plugin updates.
Disabling updates.enabled disables the external update check.
More Information
Full configuration reference, FAQ, source code, and releases:
https://github.com/lordon1a/SunshineCommandGuard
License
GPL-3.0
Derivative works must remain open source under the terms of the license.
Issues and pull requests are welcome.
Information
Pinned Versions
- R1.21–26.34.2.0–4.2.1
Pages
Members
1Owner