permissions.json
Defines ranks, the permissions each rank holds, rank inheritance, chat-prefix metadata, and the operator rank that must keep full access.
Operator stays operator
Do not remove * from the operator rank. Validation restores it because the server needs a guaranteed full-access recovery rank.
Concepts
- Ranks can inherit from other ranks.
- Wildcards are supported by the permission logic.
- The rank management UI is the preferred way to create or delete ranks.
/configexposes permissions, but rank creation should stay in the rank editor to avoid duplicate systems.
Common fields
| Field | Meaning |
|---|---|
| version | Config schema version. |
| defaultRankId | Rank used when a player has no known rank. Default: user. |
| operatorRankId | Rank that must keep full operator access. Default: operator. |
| aliases | Legacy rank aliases. Defaults: player -> user, admin -> operator. |
| ranks[].id | Stable lower-case rank id. |
| ranks[].displayName | Human-readable rank name. Max 48 characters. |
| ranks[].priority | Display and sort priority, clamped between -10000 and 10000. |
| ranks[].chatPrefix | Optional chat prefix. Max 20 characters. |
| ranks[].chatPrefixColor | Optional hex color for prefix. |
| ranks[].chatNameColor | Optional hex color for player name. |
| ranks[].chatMessageColor | Optional hex color for message text. |
| ranks[].inherits | Parent rank ids whose permissions are inherited. |
| ranks[].permissions | Permission nodes and wildcards granted to the rank. |
Default ranks
user: default player rank, no permissions.operator: operator rank, must keep*.player: legacy alias foruser.admin: legacy alias foroperator.
Permission syntax
*grants everything.- Exact nodes such as
jobs.managegrant one capability. - Section wildcards such as
jobs.*grant every node in that section. - Wildcards are only valid as
*or as the final segment (for examplemoderation.*). - Rank ids and permission segments use lower-case letters, numbers,
_, and-.
Supported section wildcards:
admin.*permissions.*spawn.*players.*economy.*inventory.*moderation.*whitelist.*tickets.*logs.*stats.*server.*jobs.*shop.*npcs.*map.*government.*tools.*vehicles.*rewards.*theme.*social.*backend.*addons.*
Supported permission nodes
| Section | Nodes |
|---|---|
| Admin | admin.access, admin.mode, admin.mode.settings, admin.teleport.position, admin.telemetry.dump, admin.telemetry.reset, admin.config.view, admin.config.edit, admin.config.reload, admin.config.reset |
| Permissions | permissions.ranks.manage, permissions.ranks.assign |
| Spawn | spawn.entities |
| Players | players.view, players.name.set, players.job.set, players.health.set, players.armor.set, players.hunger.set, players.kill, players.respawn, players.teleport.to, players.teleport.here, players.props.cleanup, players.god, players.weapon.give |
| Economy | economy.view, economy.money.set, economy.bank.set |
| Inventory | inventory.view, inventory.item.give, inventory.backpack.set, inventory.backpack.clear, inventory.hotbar.remove, inventory.hotbar.clear, inventory.hotbar.clip.set |
| Moderation | moderation.view, moderation.warn, moderation.kick, moderation.ban, moderation.mute, moderation.jobban, moderation.jail, moderation.revoke |
| Whitelist | whitelist.view, whitelist.toggle, whitelist.add, whitelist.remove, whitelist.kick |
| Tickets | tickets.view, tickets.claim, tickets.resolve, tickets.close, tickets.teleport |
| Logs | logs.view |
| Stats | stats.view |
| Server health | server.health.view |
| Jobs | jobs.manage |
| Shop | shop.manage |
| NPCs | npcs.manage |
| Map | map.doors.manage, map.glass.manage |
| Government | government.manage |
| Tools | tools.manage |
| Vehicles | vehicles.manage, vehicles.spawn |
| Rewards | rewards.manage |
| Theme | theme.manage |
| Social | social.manage |
| Backend | backend.manage Studio only |
| Addons | addons.manage |
backend.* is reserved for Lithera Studio
backend.* and backend.manage back Lithera Studio backend operations. Community servers should not grant, document, or rely on these permissions. The node is listed here only so existing config files do not look mysterious.
Reload
Use litherarp.permissions_reload after manual edits.