Operator permissions give players on a Minecraft Java server access to administrative commands. For a stable server operation, you should grant OP only deliberately, choose the appropriate OP level, and check changes after restarting. This keeps you in control of moderation, configuration, and critical actions such as bans, granting OP, or stopping the server.
What does OP mean on a Minecraft server?
An OP, or operator, has extended permissions on the server. Which commands an operator may use depends on the permission level. Minecraft itself points out that in multiplayer you need a sufficiently high permission level to use commands; you can find the official introduction in the Minecraft article on commands: documentation at minecraft.net
On paid multi-game hosting like game-serverhosting, OP management is mainly a security and operating process: you decide who may moderate, who gets deeper server commands, and who should not accidentally trigger critical actions in an emergency. Technical control is not created by giving every admin level 4, but through traceable roles and clean documentation.
Requirements
Before changing OP permissions, you should have access to the server console or an already authorized admin account. You also need access to the server.properties file if you want to change the default level for new operators. For manual adjustments to individual operators, you need access to ops.json in the server directory.
If you are adjusting other Minecraft configurations in parallel, it is worth looking at the guide to the most important settings in Minecraft server.properties. If you change server software or versions, also check the guide on changing the Minecraft server version so permission management and plugin support fit together.
OP levels at a glance
Minecraft distinguishes four OP levels. The higher the level, the broader the commands. Use the lowest permissions possible that are sufficient for the respective task.
| Level | Permissions | Typical for |
|---|---|---|
| 1 | Bypass spawn protection | Trusted players |
| 2 | Cheats + command blocks | Moderators |
| 3 | /kick, /ban, /op | Admins |
| 4 | /stop, all commands | Server owners |
Level 1 is rarely intended for classic administration. Level 2 fits players who build creatively, test, or take on command-block-related tasks. Level 3 is relevant for moderation with interventions against players. You should limit level 4 to a few people because it also allows critical commands like /stop.
Grant and remove OP
The cleanest way to grant OP is through the console because you do not need to be in the game yourself. The commands also work in-game if your account already has sufficient permissions.
/op <Spielername> # Give OP (level from server.properties)
/deop <Spielername> # Remove OP
The /op command uses the default level from server.properties. This is important: if level 4 is set there, newly appointed operators receive full permissions directly. If you only want to grant moderation rights, set the default level lower and adjust exceptions deliberately.
Set the default level in server.properties
In server.properties, you control which level a player receives when you run /op <Spielername>.
op-permission-level=4 # Default level for /op
For small private servers, level 4 is often convenient, but not always sensible. For community servers or teams, level 3 is often the better starting point because moderators can kick, ban, and manage OP, but do not need the same access as the server owner. Only change the file when the server is stopped or your panel saves the change in a controlled way. Restart the server afterward and check whether the new value is active.
Adjust individual operators in ops.json
You can edit ops.json for individual permissions. This is useful if one person should get level 3 while the default level for new operators is 2 or 4. The format looks like this:
[
{
"uuid": "xxx-xxx-xxx",
"name": "PlayerName",
"level": 4,
"bypassesPlayerLimit": true
}
]
Edit the file carefully and pay attention to valid JSON: commas, quotation marks, and brackets must be exactly correct. level defines the OP level. bypassesPlayerLimit determines whether this operator may connect even when the normal player limit has been reached. After manual changes, you should restart the server or make sure the file is not overwritten by the running server.
Important OP commands
The following commands are typical examples of OP permissions on a Minecraft Java server:
| Command | Level | Description |
|---|---|---|
/gamemode |
2 | Change game mode |
/give |
2 | Give items |
/tp |
2 | Teleport |
/kick |
3 | Kick players |
/ban |
3 | Ban players |
/op |
3 | Grant OP |
/stop |
4 | Stop server |
Do not only test whether an admin “has some kind of permissions”, but whether exactly the intended commands work. For example, a moderator should be able to use /kick or /ban, but does not necessarily need /stop.
Check the result
After every change, you should check three things. First: is the desired value still correctly present in server.properties or ops.json? Second: can the affected player run the expected command? Third: do commands fail that this player should not be able to run?
A simple check is logging in with the affected account or a controlled test with a second person. Run harmless commands first, such as /gamemode or /tp in a test environment. You should only test critical commands like /stop, /ban, or /op deliberately and with a fallback plan.
Alternative: LuckPerms
For finer control, we recommend LuckPerms instead of the pure OP system:
- Group-based permissions
- Individual permissions per player
- Web editor for easy management
- Supports prefixes and suffixes
LuckPerms is especially useful if you use Paper, Purpur, or another plugin-capable server software. Then you can split permissions into groups such as player, moderator, admin, and owner instead of relying on four rough OP levels. For vanilla servers, the OP system remains the obvious built-in solution.
Troubleshooting
If /op <Spielername> does not work, first check whether you are running the command in the server console or whether you have sufficient permissions yourself. Also pay attention to the exact player name. On online-mode servers, Minecraft works with UUIDs; manually copying old ops.json entries can therefore fail if the name and UUID do not match.
If changes to server.properties have no effect, the server may not have been restarted or the file may have been overwritten during operation. Stop the server in a controlled way, change the file, save it, and then restart.
If an operator has too many permissions, check both op-permission-level and the individual level in ops.json. Remove OP with /deop <Spielername> and then deliberately grant permissions again.
Verification, limits, and safe rollback
The guide “Minecraft Server Operator (OP) – Permissions and Commands” applies to the server type described in the article and the version state visible at the time of verification. Menu names, available versions, mod or plugin compatibility, and required resources may differ after updates. Therefore, do not transfer values to another game, loader, or server version without checking them.
Before making changes to the world, savegame, configuration, or extensions, create a backup of the affected files. Then change only one related step and test it with the same client and server version you want to play with later.
| Checkpoint | Expected result | Abort and rollback |
|---|---|---|
| Server startup | The server reaches the ready-to-operate state without new error messages. | If startup errors occur, revert the change and restore the last backup. |
| Connection test | A test account can connect using the address shown in the panel. | If version or connection errors occur, compare version, port, and shares again. |
| Function test | The specifically changed function works without damaging existing world or game data. | If side effects occur, stop the server and restore the backed-up files. |
A successful individual test is not a guarantee of performance or availability. World size, mods, plugins, player count, network path, and simultaneous load can change the result. Document version, change, and test result so you can understand later deviations.
FAQ
What is the difference between OP level 3 and 4?
Level 3 is intended for administrative moderation, such as /kick, /ban, and /op. Level 4 additionally includes very far-reaching commands like /stop and should remain limited to server owners or a few main admins.
Do I have to restart the server after changes to ops.json?
For manual file changes, a controlled restart is the most reliable option. This ensures that the server loads the file correctly and your changes are not overwritten by the running process.
Can I grant OP permissions only for individual commands?
With the vanilla OP system, only roughly through levels 1 to 4. If you want to control individual commands or groups in detail, you need a permission system like LuckPerms on plugin-capable server software.
Which OP level makes sense for moderators?
Level 3 is often suitable for moderators if they should kick or ban. If they only build, test, or use simple helper commands, level 2 may be enough. Always grant only the permissions that are really needed.
What happens if I change op-permission-level?
The value determines the default level for future /op grants. Existing entries in ops.json can still have their own levels. Therefore, check both places after a change.