Introduction
Like the Java version, the new version also provides a permission system. Permissions are used to tell the server what a particular player is allowed to do and what not. You can set up individual "permission groups" and assign players to these groups - for example, a group "admins" may have full control and is allowed to execute commands, while a group "visitor" may not even modify the world.
There is always a default permission - it applies to all players (who are not member of a permission group) automatically. Every group permission is derived from the default permission and only overrides the keys which are actually specified in the group permission file.
Unlike the Java version, the new version stores permissions as JSON file. While a correct syntax is required for the file to be loadable, our built-in RCON tool also provides an easy-to-use permission editor.
Getting started
The dedicated server is already shipped with a "Permission.Example" folder (it's called "Example" to prevent server updates from overwriting the permissions). Just rename this folder to "Permission" (alternatively this happens automatically if you start the server for the first time). It contains a "default.json" file which represents the default permission file (which is automatically active for all players). Alternatively you can find some example permissions attached.
To create a new group permission, create a folder "Groups" (if it does not yet exist) and place your group permission there - e.g. if you want to create a "Guest" group, you could create a "guest.json" file in the Groups folder. To create Area permissions (which are only active within specific areas), create a folder called "Areas" in the permission folder (if it does not yet exist).
To assign a permission group to a player, use the ingame command setplayergroup <player> <group> (or spg <player> <group>). If you want to specify a permission group new players get automatically assigned to, you can use the Permissions_DefaultNewPlayerPermissionGroup option in the server.properties file (just provide the name of the group there, or leave it blank).
When it comes to server admins, the permission group is always overridden - this means permissions have no effect for admins (instead admins always gain full permissions). To change that, you have to set Permissions_AdminsFullPermissions to false in the server.properties file.