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 why Grounds has global and project-local permission service instances.
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, which 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.
