Setting Up Permissions

If your server uses plugins you'll likely need to setup permissions for your plugin features.

Have you ever been on a server where players could run `/back`, `/sethome`, access creative mode, staff could `/ban`, and more? All of those things are managed via a permissions plugin. A permission plugin controls who has access to what features.

For instance, you may want all players to have access to a select number of commands. Then you want donors to have access to special commands and staff to have access to staff commands. You want to ensure your players cannot use `/ban`- only staff should be able to. This is all done with permissions, groups, and inheritance.

Modded (Forge) servers, on the other hand, generally do not use permissions. However, you can add a mod called SpongeForge to add a permission 'plugin' and other 'plugins'- but that's a discussion for another time.

### Terminology

#### Permission Nodes (AKA "Permissions")

* They control what features each player can use.
* For instance, allowing all players to use /sethome, /back, and /spawn. But only allowing staff to use /mute and /ban.
* Note that permissions are not solely for controlling access to commands. They can also be used by a custom item plugin to determine who can break X custom block and who can use Y custom sword. If a player does not have the permission node to do so- they cannot use those features.
* Most plugins you install will have a list of permissions you can give players for controlling who can use the plugin's various features.
* Many plugins will give your players permissions by default so they can do a lot of things normal users should be able to do on most servers. For instance, McMMO is a plugin that adds MMO skills to Minecraft. By default all players are able to level up all skills and use "/mctop" to check the leaderboards. These are done via permission nodes as well. If you wanted to you could restrict certain skills to certain players or only allow some people to access "/mctop".
* Curious what a permission node looks like? Generally plugins will follow the format: "<pluginName>.<category/feature>.<optionalSubFeature>". For example, Essentials allows players to use "/back" if they have the permission: "essentials.back"
* Note that permission nodes are NOT CasE-SenSiTivE. You may enter them a permission node into a permission plugin as: "eSSenTialS.bACk" and the result will be the same as if you added "essentials.back".

#### Groups (Often referred to as "Ranks")

* We've discussed that you give players certain permission nodes to allow them to use certain features. But do you have to give every individual player 50 or so permission nodes manually? No! That would take forever. Instead, you can create groups. Each group can have a list of permissions set for it. Then you can simply add players to a group and they will get access to all of those permissions in the group!
* For example, "Admin" is a group commonly used on servers to give high ranking staff members special permissions like /ban (which prevents a player from logging onto your server ever again). You could name this group anything you want- such as "Carrots" but in order to minimize confusion it is best to make your group names as accurate as possible.
* Another example is having a "default" group. As you might have guessed from the name, you can give all new players that join your server a certain group automatically. While it is common to name it "default" you can name it anything you want. The name is not what matters- it requires telling your permissions plugin that you want that rank to be the default rank.

#### Inheritance

* Okay, say you want a "default" group for normal players and you want your "Admin" group to have access to all of the same features as the default group + Admin's own special permissions. It would be a massive pain to manually input "essentials.back" (for example) into your default group then into your Admin group permissions too! Not to mention, once you add 50+ permissions it gets very difficult to maintain and edit such a setup later. Instead, we can inherit the permissions from the default group to the Admin group. In other words, instead of having to give duplicate permissions, you can just give one group (I.e. "default") a ton of permissions then have "Admin" inherit from default group.
* Furthermore, say you have multiple staff ranks and you want all of them to be able to use the features from the previous staff ranks. You can set them to be in a ladder system (AKA a "track" on LuckPerms- which is one of the most popular permissions plugins). I.e. Helper -> Mod -> Admin -> Co-Owner -> Owner. Each one inherits from the previous rank.

### Additional Information

For additional information on how to get it setup see:

* https://iceline-hosting.com/knowledgebase/how-to-install-luckperms-to-your-minecraft-server
* https://shockbyte.com/billing/knowledgebase/249/How-to-Configure-LuckPerms-on-Your-Server.html
* https://apexminecrafthosting.com/how-to-install-and-use-luckperms/