Adds granular permission control for vanilla Minecraft commands on Paper servers. Lets you control specific gamemode types, teleport options, entity selectors, and more.
Heavily influenced by VanillaPermissions by DrexHD.
- Paper 1.20.1+
- CommandAPI 9.5.0+
- LuckPerms 5.4+
Gamemode - Control which gamemodes players can use and whether they can change others
- Give
/gamemode spectatorto staff without giving creative - Let players change their own gamemode but not others
- Restrict specific modes (creative, survival, adventure, spectator)
Teleport - Separate permissions for teleporting to players vs coordinates
- Allow
/tp PlayerNamebut block/tp 100 64 100 - Control entity and coordinate teleports independently
Selectors - Control entity selector usage (@a, @e, @p, @r, @s)
- Block mass-targeting with
@aor@e - Allow self-targeting with
@sonly - Separate permissions for player vs entity selectors
Bypasses
- Spawn protection - Let specific players build in spawn
- Chat speed - Bypass chat rate limiting
- Whitelist - Join when whitelist is enabled
- Player limit - Join when server is full
Operator Blocks - Control command blocks, jigsaw blocks, and structure blocks
- Separate permissions for place, view, and break
- Prevent unauthorized command block usage
Admin
- Control who sees command feedback broadcasts
- Restrict debug stick usage
minecraft.command.gamemode- Base permissionminecraft.command.gamemode.survival- Use survival modeminecraft.command.gamemode.creative- Use creative modeminecraft.command.gamemode.adventure- Use adventure modeminecraft.command.gamemode.spectator- Use spectator modeminecraft.command.gamemode.other- Change other playersminecraft.command.gamemode.<mode>.other- Change others to specific mode
minecraft.command.teleport- Base permissionminecraft.command.teleport.targets- Teleport to entitiesminecraft.command.teleport.targets.location- Teleport to coordinates
minecraft.selector.entity.e- Use @e selector (all entities)minecraft.selector.player.a- Use @a selector (all players)minecraft.selector.player.p- Use @p selector (nearest player)minecraft.selector.player.r- Use @r selector (random player)minecraft.selector.self.s- Use @s selector (self)
minecraft.bypass.spawn-protection- Build in spawn protectionminecraft.bypass.chat-speed- Bypass chat speed kickminecraft.bypass.whitelist- Bypass whitelistminecraft.bypass.player-limit- Join when server is full
minecraft.operator_block.command_block.<action>- Control command blocksminecraft.operator_block.jigsaw.<action>- Control jigsaw blocksminecraft.operator_block.structure_block.<action>- Control structure blocks
Actions: place, view, break
minecraft.adminbroadcast.receive- See command broadcastsminecraft.debug_stick.use.block- Use debug stick
features:
command_permissions: true
selector_permissions: true
bypass_permissions: true
admin_permissions: true/extrapermissions reload(or/eperm reload,/ep reload) - Reload config/extrapermissions check <player>- Check player permissions/extrapermissions debug- View debug info/gamemode <mode> [player]- Change gamemode with granular permissions/tp <player|entity>- Teleport to entity/tp <x> <y> <z> [yaw] [pitch]- Teleport to coordinates
Operator Blocks (Command/Jigsaw/Structure)
- View and interact permissions only apply to players in Creative mode
- Vanilla Minecraft already restricts these blocks to Creative mode
- Most useful for creative servers where you want granular staff permissions
Debug Stick
- Only works in Creative mode with cheats enabled
- Vanilla already restricts debug stick usage
- Permission adds an extra layer of control for creative servers
Selectors
- Only affects commands that use Minecraft entity selectors (@a, @e, @p, @r, @s)
- Note:
@ecan select players since players are entities - Custom plugin commands may not respect these permissions
Spawn Protection
- Matches vanilla behavior: blocks placing/breaking only
- Players can still interact with doors, chests, buttons, etc.
- Bypass permission allows building in spawn protection radius
Chat Speed Bypass
- Detects kick messages containing "chat", "spam", or "too quickly"
- May not work with all server configurations or custom chat plugins
- Consider this feature experimental
Permission System Behavior
- OP players bypass ALL permission checks automatically
- Parent permissions grant access to child permissions (e.g.,
minecraft.command.gamemodegrants all gamemode sub-permissions) - Explicit denies (setting permission to
false) override parent permissions - Without explicit permissions, non-OP players are blocked from commands (vanilla behavior)
This project is licensed under the MIT License. See the LICENSE file for details.