Permissions
StealABlock has a small permission surface: six nodes. Almost every player command is open by design; the game itself is the gate, not a permissions plugin.
On this page
All nodes
The first three are declared in plugin.yml. The last three are checked in code only, so they have no default: grant them with your permissions plugin.
| Node | Default | Grants |
|---|---|---|
staleablock.admin | op | The full /asb (/staleablock, /stealablockadmin) admin toolkit, and /event. |
staleablock.play | true (everyone) | General access to play — join arenas, steal, use the core loop. |
stealblock.credits | true (everyone) | Access to the Credits store (/credits). |
stealablock.lockbase.bypass | not declared (op/permission plugin) | /lockbase: toggle your base's gates without waiting for the unlock countdown. staleablock.admin also works. |
staleablock.map.vip | not declared | VIP join on a full arena. A VIP who picks a full arena in /map kicks a non-VIP player out of it and takes the plot. If every player in the arena is also a VIP, the join is refused. |
staleablock.bypass.spam | not declared | Skips the built-in anti-spam: 1.5 s between chat messages, no repeating the same message, 1 s between commands. staleablock.admin skips it too. |
A note on naming
These nodes are spelled exactly as shown above, inconsistently, in the plugin's own
plugin.yml — staleablock.* (missing an "e") for admin, play, map and spam, stealblock.credits (missing the "a") for the credits store, and stealablock.lockbase.bypass for the lockbase bypass. This isn't a documentation typo; granting the wrong spelling in your permissions plugin is a common reason a staff member "has the permission" but a command still refuses them. Double-check the exact string against this table, not against what "StealABlock" would suggest.