Five nodes, so any one CityWorld command can be delegated without making somebody an operator. With nothing installed, the Default column below is the whole answer.
The nodes
CityWorld asks NeoForge's PermissionAPI for every one of these, so
they work with LuckPerms, with
SableCraft Standards' own handler
(/rank), or with nothing installed at all.
| Default | Means |
|---|---|
| everyone | Every player has it unless a permissions mod takes it away. |
| ops | Operators (level 2, the vanilla "gamemaster" level) have it; anybody else needs it granted. |
| Node | Default | What it allows |
|---|---|---|
| cityworld.info | everyone |
/cityinfo - read the plan under your feet: world style, context, lot, nature percentage, and the schematic you're standing in. Reads only. |
| cityworld.teleport | ops |
/cityworld and /cityworld leave - jump in and out of the cityworld:city dimension. |
| cityworld.find | ops |
/cityfind, /cityfind lot, /cityfind lots and /cwlocate - search for a landmark, a lot kind or a biome. Includes the tp forms, so this grants travelling to what was found. |
| cityworld.schematic | ops |
/cityschem list and /cityschem <name> - list and paste schematics. Writes blocks into the world. |
| cityworld.export | ops |
/cityexport [name] - write this world's settings out as a datapack JSON. Writes a file to the server. |
Worth knowing before you configure
cityworld.find is the one most worth
delegating. Finding a hospital, a vault or a biome is a guide's tool rather than
an administrator's, and it is the obvious candidate to grant to moderators or to everybody
on an exploration server. Be deliberate about it though: the tp forms
ride on the same node, because a search you cannot travel to is of little use. Granting
find grants fast travel to anything CityWorld can name.
cityworld.info is open by default because it reads, moves nobody and
writes nothing. Revoke it if you would rather players not see how the world is put together.
schematic and
export are separate from everything else on purpose. One writes
blocks and the other writes files; neither is in the same category as looking something up.
Splitting them is most of the reason these nodes exist at all - before them, handing somebody
/cityfind meant making them an operator, which handed them both of
these too.
The console, command blocks and functions are unaffected.
PermissionAPI answers about a player, and those have no player to ask
about, so they fall back to the vanilla operator-level check. A server console can always run
every CityWorld command.
With no permissions manager installed, nothing changes. Each node's default resolver returns exactly what the old op-level gate returned, so an unmanaged server behaves as it did before nodes existed. These are a new lever, not a new policy.