Skip to main content
Use Minecraft permissions to control what players can do across a Grounds network. Administrators create policy in Portal; Velocity and Minestom workloads receive complete permission snapshots and check them locally.
In-game permissions are separate from Portal access. Portal access decides who can administer the platform. Minecraft permissions decide what a player may do inside the Minecraft network.

Choose your task

Manage permissions

Create roles, map Keycloak groups, grant player exceptions, and inspect effective access.

Integrate a runtime

Configure the Velocity plugin or Minestom module and make local permission checks.

Register permission nodes

Publish your workload’s permission catalog and manage custom entries.

Understand the infrastructure

Learn how production, stage, and project permission environments stay isolated.

Permission environments

Grounds keeps policy separate between production, stage, and individual projects. Production owns the platform’s live Minecraft policy. Stage provides an isolated pre-production policy environment. Each project owns its local policy, which you can initialize or update from production through an explicit preview and import workflow.

Authorization model

Assignment sources

Keycloak groups never map directly to permission nodes: they provide group-to-role assignments. A role can then carry allow or deny grants, including inherited role grants. Exact patterns such as network.chat.moderate and wildcards such as network.chat.* can match a check. Server scope wins over server-type scope, server-type scope wins over environment scope, and environment scope wins over global scope. A deny wins between equally specific candidates. Once a snapshot expires, a check returns false until a valid replacement is available. Changing a permission does not disconnect a player automatically.

Next steps