-
Notifications
You must be signed in to change notification settings - Fork 8
Permissions
GoCraft ships a native, group-based permission system inspired by the LuckPerms workflow. It does not load the LuckPerms plugin or database.
Run the admin command to open the dashboard:
/gocraft peditor
GoCraft prints a one-time URL. The editor page (permission_editor.editor_url) loads your live permission document through a bytebin relay (permission_editor.bytebin_url) — no inbound port is required on your server. After editing groups/users in the browser, upload and apply the changes:
/gocraft applyedits <key>
Configure in server.yml:
permission_editor:
enabled: true
editor_url: https://gocraft-mc.github.io/GoCraft/editor
bytebin_url: https://bytebin.lucko.meYou can also manage everything from chat/console with the /gocraft user ... and /gocraft group ... commands (see Commands).
Every registered command automatically receives gocraft.command.<command>. Examples:
gocraft.command.spawngocraft.command.givegocraft.command.gocraft-
gocraft.command.*— all GoCraft commands -
*— every permission
- An explicit user rule takes priority over group rules.
- More specific nodes beat wildcards.
- A child group's equally specific rule beats its parent's.
- On an equal-priority conflict, Deny wins.
- Players always inherit the
defaultgroup. - Operators keep a full bypass — an invalid group edit cannot lock the owner out.
Commands that were public before this system remain allowed when no rule is set; operator-only commands remain denied by default but can be granted per group. Java command suggestions hide commands a player cannot use and refresh immediately after edits are applied.
The editor owns permissions.json, but it stays human-readable:
{
"version": 1,
"groups": {
"default": {},
"builder": {
"parents": ["default"],
"permissions": {
"gocraft.command.give": true,
"gocraft.command.stop": false
}
}
},
"users": {
"alex": {"groups": ["builder"]}
}
}Names are matched case-insensitively. Group inheritance cycles, unknown parents, unknown user groups, malformed permission nodes, oversized editor requests, and stale editor sessions are all rejected.
This system does not yet implement contexts, weights, tracks, temporary permissions, suffixes, UUID-based assignments, or LuckPerms import/export compatibility. Group chat prefixes (MiniMessage) and sort weights are supported via /gocraft group.
GoCraft — native-Go Minecraft server · Java 1.21.4 + Bedrock 1.26.45 cross-play · GPL-3.0 · © 2026 Oreo Studios · Discord
Playing on GoCraft
Server & cross-play
Internals