Permissions#
By default, no one can use WorldEdit. In order for yourself, moderators, and players to use WorldEdit, you must provide the proper permissions. One way is to provide op to moderators and administrators (unless disabled in the configuration), but providing the permission nodes on this page (through a permissions plugin) is the more flexible.
You can give the worldedit.* permission to give yourself and other administrators full access to WorldEdit.
Commands#
See the Commands page for an explanation of some of these commands.
Command |
Permission |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Other Permissions#
Permission |
Explanation |
|---|---|
|
Allows usage of the navigation wand’s |
|
Allows usage of the navigation wand’s |
|
Allows usage of blocks in the disallowed-blocks config option. |
|
Allows setting the limit via the |
|
Allows setting the calculation timeout via the |
|
Override the |
|
Allows breaking of bedrock with the super-pickaxe tool. |
|
Allows cycling non-whitelisted blocks with the data cycler tool. |
|
Allows setting extra data on blocks (such as signs, chests, etc). |
|
Allows uploading report files to pastebin automatically for the |
|
Allows using the CraftScript with the given filename. |
Fabric Permissions Integration#
Added in version 7.4.5.
WorldEdit integrates into the Fabric Permissions API v1.
The API identifies permissions with a namespaced Minecraft Identifier rather than a dotted string,
so the nodes listed above are converted before they are checked. Depending on which permissions mod you use, you may need to write them differently.
Warning
If a node cannot be converted, WorldEdit falls back to the Fabric Permissions API v0, and then to vanilla operator levels.
This should not happen in practice as we generally don’t have worldedit as its own permission node,
but if other mods use our checks this may be an issue.
Which form do I use?#
Due to how permissions have historically worked, you might need to use different forms of the converted permission node. There are two forms of every node, and both come from the same conversion:
worldedit:region.setThe identifier form, for mods that expose the permission API’s identifiers directly.
worldedit.region.setThe traditional form. Some mods, like LuckPerms, rejoin the identifier’s namespace and path with a
.instead of a:to match how permission nodes were traditionally formatted.
Warning
The traditional form is not always the same as the original node listed above.
It is the converted node rejoined with a dot, so any lowercasing or escaping still applies.
For example, worldedit.scripting.execute.my script_v1! becomes worldedit.scripting.execute.my_20script_5fv1_21.
This only matters in practice for dynamic nodes, such as worldedit.scripting.execute.<filename>.
Every static node WorldEdit uses is already lowercase and made of safe characters, so the result is identical.
Note
The lowercasing and escaping are only needed because a Minecraft Identifier allows a very limited set of
characters, which is a limitation of the Fabric Permissions API that we hope will be fixed in the future.
See this issue.
Converter#
To assist with setting permissions, we’ve provided a small tool that converts from a permission node to the forms described above:
Converter Tool
How the conversion works#
Split the node at the first
., into a namespace and path. If there is no., or it is the first or last character, the node is not usable with the API and only the fallback works.Convert both parts to lowercase using Java’s
toLowerCase(Locale.ROOT), then encode it as UTF-8.Keep each byte that is
atoz,0to9,.or-. The path must also keep/. Replace every other byte with_followed by its two hex digits. Notably, this includes_itself, which is output as_5f.Join the two parts with
:for the identifier form, or with.for the traditional form.
Examples#
Node |
Identifier form |
Traditional form |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Not converted, only uses fallback |
Not converted, only uses fallback |