Permissions
The permission nodes Endstone registers for vanilla and Endstone commands.
Endstone uses the same permission model as Bukkit and Paper. Every command is gated by a permission node - a dotted string like endstone.command.ban. Whether a player holds a node is decided by the node's default, by the player's permission level, and by any grants a plugin applies at runtime.
Nodes are organized into a tree. Granting a parent node grants all of its children, so endstone.command covers every endstone.command.* below it.
Permission defaults
Each node declares a default that maps a player's permission level to whether they hold the node out of the box:
| Default | Who holds it |
|---|---|
True | Everyone - console, operators, and regular players. |
False | No one. A plugin must grant it explicitly. |
Operator | Operators and the console (permission level operator or higher). |
NotOperator | Only non-operator players. |
Console | Only the server console. |
A player's permission level comes from permissions.json and the op / deop commands; the server console always runs at the highest level.
Endstone command nodes
Grouped under endstone.command:
| Node | Command | Default | Description |
|---|---|---|---|
endstone.command.ban | ban | Operator | Ban players. |
endstone.command.banip | ban-ip | Operator | Ban IP addresses. |
endstone.command.banlist | banlist | Operator | List banned players and IPs. |
endstone.command.unban | pardon | Operator | Unban players. |
endstone.command.unbanip | pardon-ip | Operator | Unban IP addresses. |
endstone.command.plugins | plugins | True | View the plugins running on the server. |
endstone.command.reload | reload | Operator | Reload the server configuration and plugins. |
endstone.command.restart | restart | Console | Restart the server. |
endstone.command.seed | seed | Operator | View the level seed. |
endstone.command.status | status | Operator | View server status. |
endstone.command.version | version | True | View the server version. |
Endstone broadcast nodes
Grouped under endstone.broadcast - these control which broadcast messages a player receives, not commands they can run:
| Node | Default | Description |
|---|---|---|
endstone.broadcast.admin | Operator | Receive administrative broadcasts. |
endstone.broadcast.user | True | Receive user broadcasts. |
Vanilla command nodes
Every vanilla Bedrock command gets a node under minecraft.command, named after the command:
minecraft.command.<command>For example, /gamemode is minecraft.command.gamemode and /give is minecraft.command.give. A node's default is derived from the command's built-in permission level:
| Command permission level | Node default |
|---|---|
| Any (usable by everyone) | True |
| Game Directors, Admin | Operator |
| Host, Owner | Console |
| Internal | False |
Common examples:
| Node | Command | Default |
|---|---|---|
minecraft.command.help | help | True |
minecraft.command.list | list | True |
minecraft.command.me | me | True |
minecraft.command.tell | tell | True |
minecraft.command.gamemode | gamemode | Operator |
minecraft.command.give | give | Operator |
minecraft.command.tp | tp | Operator |
minecraft.command.kick | kick | Operator |
The set of vanilla commands changes with each Bedrock release. For the complete list, see Microsoft's Minecraft Bedrock commands reference. You can change a command's level - and therefore its node default - through config/commands.json.
Parent nodes
Granting any of these covers everything beneath it:
| Node | Grants |
|---|---|
endstone | Every Endstone utility, command, and broadcast node. |
endstone.command | Every Endstone command node. |
endstone.broadcast | Every Endstone broadcast node. |
minecraft | Every vanilla utility and command node. |
minecraft.command | Every vanilla command node. |