Permission level

Permission level is used to describe permissions of a player or an command executor.

For example, $$, can't be executed in a command block, because this command requires executor to have permission of level 3, while command blocks have permission of only 1 level.

Java Edition

 * level 1 - Player can bypass spawn protection.
 * level 2 - Player or executor can use more commands (see Commands) and player can use command blocks. (Cheat commands)
 * Commands: Level 1 + /clear, /difficulty, /effect, /gamemode, /gamerule, /give, /summon, /setblock and /tp. level 3 - Player or executor can use more commands. (Multiplayer management) Commands: Level 2 + /ban, /deop, /kick, and /op.
 * level 4 - Player or executor can use all of the commands. (Server management) Commands: Level 3 + /stop, /restart, /reload, /save, /save-all, /datapack, /setidletimeout.

Bedrock Edition

 * In different levels, the corresponding command can be used by the player. All levels inherit commands from levels before them.

Java Edition
$$, permission level can be 0, 1, 2, 3, and 4.


 * A command block or a minecart with command block has permission level of 2.
 * The console of a server has permission level of 4.
 * A function has permission level of 2 (but it can be changed in server.properties).
 * For a player:
 * If the player is an op in dedicated server, their permission level is specified in ops file, and its default value is specified in server.properties.
 * If the player is in a singleplayer world or is the owner of a LAN world, and cheat is enabled, permission level is 4.
 * If the player is in a cheat-allowed LAN world, permission level is 4.
 * Otherwise, permission level is 0.

Bedrock Edition
$$, permission level can be 0, 1, 2, 3, and 4.


 * A command block or a minecart with command block has permission level of 1.
 * The console of a server has permission level of 4.
 * A function as well as a script in Add-ons has permission level of 1.
 * For a player:
 * If in dedicated server, the player's "Operator Commands" option is enabled in the "Player Permission" screen, their permission level is 1 by default (which can be changed in server.properties).
 * If in a singleplayer world or a LAN world, the player's "Operator Commands" option is enabled in the "Player Permission" screen, permission level is 3.
 * Otherwise, the player's permission level is 0.

Note that permission level differs from level in pause menu screen and "Player Permission" screen $$, which includes Visitor/Member/Operator/Custom. However, operator in singleplayer world must have command permission level of 3, because its Operator Commands is enabled. Similarly, visitors and members have a permission level of 0.