Group Manager is an implementation of permissions. It allows you to set up permissions for groups, and add users to these groups. The result is you can have multiple tiers which have access to specified commands. This is useful for most Minecraft servers, as it lets you create a custom caste system. Without it, you may struggle to control the extent of server control your users have.
Group Manager is offered as a separate module, and is not currently available as a BukkitDev approved project.
Video Tutorial covering a subsection of this page. - There are some minor, outdated inaccuracies. So where this page disagrees with the video, use this page.
The Basic Idea
Group Manager allows you to effectively manage users' permissions by letting you create as many different groups and sub-groups as you could possibly need. This configuration can be as simple or as complicated as you make it.
The most traditional system (shown below) uses group inheritance, starting with new players at the top, and owners on the bottom. On smaller servers you might end up merging the moderator and admin rolls, but most people will have different opinions when it comes to which powers the admin should receive access to, and which powers moderators should receive as well.
- The newbie group contains the very basic permission nodes, and should be safe to give all newly joined players upon login.
- The player group covers all the commands that established players can use. This usually includes commands which involve the economy, basic teleportation, and other basic commands.
- The next two groups can be merged or split even further based on your preference. Typically the lowest moderator rank has access to kick users, and jail a user, while higher ranks gain access to IP ban players, turn invisible, and spawn creative mode items.
- The owner group usually has access to all permissions/commands, and is usually the only one with commands that control plugins, define groups, and ability to shut down/restart the server.
The install process for Group Manager is rather simple:
- Safely stop the server.
- Place the GroupManager plugin into your plugins folder. (EssentialsGroupManager.jar/GroupManager.jar)
- Start and stop the server.
- Set up/modify the initial config.yml file.
- Restart the server (To apply updated versions of GroupManager's configuration file ingame, type /manload).
When you first download Group Manager, you will generally only have the .jar files. The very first time you run Group Manager, it will generate the config files which you can then edit at will.
The standard config is usually something which is very similar to the layout detailed above, but you will need to edit the configuration at least a little before use. You will at the very least want to add yourself as admin.
The directory structure when you first generate the config files will look something like this:
plugins/ GroupManager/ config.yml globalgroups.yml backups/ worlds/ world/ groups.yml users.yml
Detail as to what goes in each config file can be found on the config page.
At the very core of Group Manager's configuration are the permission nodes. These are the entire point of Group Manager, and control exactly what a player can and can't do. Each plugin has its own set of permission nodes, directly relating to the commands from that specific plugin.
Essentials maintains a complete list of permissions in its Command Reference. For other plugins you will need to check their related documentation.
Every plugin which supports a permissions plugin, will have their own permission nodes.
General Syntax: <plugin name>.<command name>
- Example Syntax: essentials.tp (Enables a player to teleport using Essentials' /tp command)
- Essentials is the name of the plugin and the command is /tp
The parent node won't always be the name of the plugin, so check before creating your groups. This feature allows plugins to have the same commands, but not conflict with each other when specifying which plugin's command to designate as default.
- Example: essentials.god and worldguard.god
Group Manager supports summary nodes, that is using a wildcard to enable all registered sub-permissions.
- essentials.* : Allows access to every essentials command
- essentials.kits.* : Allows access to use every kit
You can also give the '*' wildcard by itself, without specifying a plugin. This causes the specified group to have access to every command from every plugin. Note: Conflicting commands will become unstable unless negated by a negative node. Use at your own risk. Not all plugins properly register their permissions as well.
Group Manager supports negative nodes, allowing you to retract access to commands. This can be useful with inheritance.
- essentials.kits.* : Allows access to every /kit
- -essentials.kits.admin : Removes access to just /kit admin
This can be useful when using the large wildcard permissions, such as giving an admin every command, but then removing access to the GM commands. Combining a summary node with a negative node can remove access to numerous sub-commands with ease.
- -essentials.kits.* : Removes access to every /kit
Group Manager supports exception nodes, these will override negative nodes, allowing you to forcefully regain access to commands. This can be useful for easily removing access to all commands, then adding each one back individually.
- -essentials.signs.create.* : Removes access to create every Essentials signs
- +essentials.signs.create.trade : Overrides and gives access to create trade signs
There are a number of example permissions files available for GroupManager:
Group Manager Groups :: Group Manager GlobalGroups
Group Manager allows you to define variables as well as permissions. These are values which are unique to the group. They are typically used in plugins to alter behaviour, based on groups. There are two major examples of this: the 'prefix' and 'suffix' variable and the 'build' toggle.
Most chat plugins will read the prefix and suffix variable to allow you to give players custom names based on their current group.
EssentialsChat will append the prefix and suffix to the person's username, allowing you to either provide a tag or colour to the user's name.
If you want to make longer chat prefixes, I'd recommend checking out our Chat formatting guide, which shows you how to create long prefixes in chat, but short prefixes in player names.
A list of what colour codes can be found here.
- prefix: '[A]' : Produces a simple <[A]User>
- prefix: '&e' : Produces a coloured <User>
Some plugins support group based 'antigrief' protection. Like with the chat colours, Group Manager doesn't provide this functionality. Plugins such as EssentialsProtect do.
Typically the build status is given as:
- build: false disables building/destroying of blocks.
- build: true enables building/destroying of blocks.
Normally converting from most permission plugins is a rather simple affair. Try the following steps first, but if they don't work, it's rather easy to manually correct the groups.
- Move EssentialsGroupManager.jar or GroupManager.jar into your plugins directory.
- Remove the previous permission plugin jar from your plugins directory.
- Copy the previous groups file.
- Open the Group Manager folder and navigate to the world folder (plugins/worlds/<your world name>).
- Paste two copies of the permissions configuration file.
- Rename one to users.yml and one to groups.yml, overwriting any existing files.
- Restart the server.
Group Manager Commands
There are a large number of commands associated with the Group Manager plugin. These can be used to modify and assign groups to users ingame, or from the server console.
Basic User Commands
These commands are useful for when you already have a group set up and you just want to assign users to groups.
- /manuadd: Move a player to desired group.(Adds to the file if not exists)
/<command> <player> <group>
- /manudel: Remove any user specific configuration. Make him default group.
- /manpromote: Allows promoting a player up the inheritance tree. This command will only allow the user to move the player between groups they inherit.
/<command> <player> <group>
- /mandemote: Allows demoting a player down the inheritance tree. This command will only allow the user to move the player between groups they inherit.
/<command> <player> <group>
- /manwhois: Tell the group that user belongs.