Skip to main content
← All Guides
Troubleshooting · 7 min read

How to Fix OP Permissions Not Working in Minecraft

Fix operator permissions not working in Minecraft servers. Covers op levels, permission plugins overriding OP, ops.json issues, and proxy configurations.

How to Fix OP Permissions Not Working in Minecraft

The Problem

Player is OP but cannot use commands
"You do not have permission to use this command"
/op works but permissions do not apply
OP level seems too low for certain commands

Operator (OP) status grants elevated permissions on a Minecraft server. When OP permissions fail, the player can connect but cannot execute commands they should have access to. This is usually caused by a permission plugin overriding OP, incorrect OP level, or UUID issues.

Quick Fix

Check if a permission plugin (like LuckPerms) is installed. Permission plugins override vanilla OP permissions. If LuckPerms is active, configure the player's permissions through LuckPerms, not vanilla OP. If no permission plugin is installed, re-op the player from the console: op PlayerName.

Step-by-Step Diagnosis

  1. Check if a permission plugin is active. Run /plugins in-game or check the plugins/ folder. If LuckPerms, PermissionsEx, GroupManager, or a similar plugin is installed, it overrides vanilla OP behavior.
  2. If using LuckPerms: OP status alone does not grant permissions when LuckPerms is installed. You must assign permissions through LuckPerms: /lp user PlayerName permission set minecraft.command.gamemode true. Or add the player to a group with the needed permissions: /lp user PlayerName parent set admin.
  3. Check OP level. Open ops.json and look at the level field for the player. OP levels range from 1-4:
    • Level 1: Can bypass spawn protection.
    • Level 2: Can use singleplayer-like commands (/clear, /gamemode, /tp, etc.).
    • Level 3: Can use multiplayer management commands (/ban, /kick, /whitelist, etc.).
    • Level 4: Can use all commands including /stop and /op.
  4. Re-op from console. The server console always has permission to op players. Type op PlayerName in the console. This sets OP level to the value of op-permission-level in server.properties (default: 4).
  5. Check ops.json UUID. If the server switched online-mode settings, the player's UUID changed. The old OP entry points to a UUID that no longer matches. Remove the old entry and re-op the player.
  6. Check function-permission-level. In server.properties, function-permission-level controls what OP level is needed to run datapack functions. If set to 4, only level 4 OPs can trigger function commands.

Permission Plugins and OP

When LuckPerms or a similar plugin is installed, the vanilla OP system is effectively replaced. The plugin intercepts all permission checks and uses its own database instead of ops.json. To grant a player all permissions in LuckPerms:

/lp user PlayerName permission set * true

Or assign them to an admin group that has a wildcard permission. Using LuckPerms is recommended over vanilla OP for production servers because it provides granular permission control, group inheritance, and permission logging.

Common Causes

  • Permission plugin overriding OP. The most common cause. LuckPerms and similar plugins take control of all permission checks.
  • OP level too low. The player was opped at level 2 but needs level 4 commands. Re-op from console to apply the default level.
  • UUID mismatch. Online/offline mode switch changed UUIDs. Re-op to fix.
  • ops.json corruption. Invalid JSON syntax breaks the entire OP list. Validate the file or delete it and re-op players from console.
  • Proxy mode issues. Behind BungeeCord/Velocity, OP status must be set on each backend server individually unless using a cross-server permission plugin.

FAQ

Should I use OP or a permission plugin?

For servers with more than a few staff members, use a permission plugin like LuckPerms. It provides fine-grained control (grant /ban but not /stop), group management, and audit logs. Vanilla OP is all-or-nothing at each level.

Can I OP myself without console access?

No. If you are not already OP level 4, you cannot op yourself in-game. You need server console access or file system access to edit ops.json directly.

Why does /op say "Nothing changed" even though the player has no permissions?

The player is already in ops.json but a permission plugin is overriding OP checks. Configure permissions through the plugin instead.

Need a server that handles all this? Astroworld Hosting, NVMe SSDs, Pterodactyl panel, DDoS protection on every plan.

Related Tools & Resources

🔧

Minecraft Tools

Calculators, generators & server tools

🧱

Item Database

Browse all Minecraft items, stats & recipes

⚒️

Crafting Recipes

Visual crafting guides for every recipe