How to Set up a Permissions System in Spigot
How to Set up a Minecraft Permissions System with LuckPerms
Anyone with minimal knowledge of programming can tell you that permissions suck. However, they are a necessity. Without permission systems, anybody could hack your server just simply by accessing an administrator panel or something. Luckily, Minecraft has permissions designed a little easier. In this tutorial, I will show you how to set up a permissions system in a Spigot server.
What You Will Need
- A Minecraft Server on Java Edition (See How to Make a Minecraft Server for Free (Java))
- A Minecraft Client
- A Valid Spigot Installation of the versions 1.7-1.14 (As of December 2019)
- Internet Access
You will first want to download LuckPerms in order to install it. You can download LuckPerms for your Minecraft version here: https://www.spigotmc.org/resources/luckperms-an-advanced-permissions-plugin.28140/. LuckPerms, as of December 2019 is free, so you won’t have to pay for anything in order to set up your Minecraft server. Now, copy the jar file you just downloaded and paste it into your Minecraft Server’s plugins folder. Finally, restart your server and then watch the Permissions system begin to work.
In order for your server chat to be able to have fun prefixes which come before the username, you will want to install EssentialsChat. This is not required, but it is recommended. You will want to get the whole EssentialsX package and install EssentialsChat with it. Get EssentialsX here: https://www.spigotmc.org/resources/essentialsx.9089/. Go ahead and install the default EssentialsX jar from the zip file you downloaded by putting it in the plugins folder, but also install the EssentialsXChat jar.
Setting Up Your Permissions
First, you will want to google your plugins that you have already installed on the server. They should have a list of their permission nodes for the plugin. It is up to you to decide which groups get which permissions. The user group “default” already exists. However, you will want to enter the following commands to create new groups:
/lp creategroup [GroupName]
You will want to run that command for all of the groups you wish to create. Now, you need to set inheritance.
Here is the concept of inheritance in permissions systems: higher groups will inherit the permissions of lower groups. This means that your Moderators will not be left out from being able to use basic player commands as well, or otherwise. This is the command to set the group “moderator” able to access the permissions of the group “default” as well as their own permissions:
/lp group moderator parent add default
This will make your moderators able to access the same commands that the default group is able to access. Now, it’s time to set up your actual permission nodes.
Setting Up Permission Nodes
The permission node syntax is very basic. It works like this:
Now that you have your plugins’ permissions guides out, it’s time to actually put the permissions in. To do that, type in the following command which will give you a link:
Click on the link that it gives you and it will provide a GUI that allows you to set permissions easily. This is something that no other permissions plugins that I know of have, and I like it a lot. You can now edit each of the permissions nodes for each group. Just simply put in the nodes given by the plugins in their proper groups, and you’re going to be all good.
Granting Users their Groups
While you’re still in the editor, you will want to set up the user groups for each player that you may want to promote. Find their user space in the editor, then, for whatever group you want them to be a part of, give them this node:
group.[Whatever Group You Want them To Be]
For example, on your server you may want to give yourself the permission node:
Now, save your editor session with the command it gives you, and watch the permissions apply.
Now, you will want to set prefixes. The command works like this to set a prefix:
/lp group [Group] meta setprefix [Priority] "&7[&[Color Code for Group][Group Name]&7]&r"
What priority means is that if there, for some reason, are two prefixes that apply for a given person, the priority is a number between 1 and 100, which will determine which prefixes take precedence. The color codes are ways of showing colors for each group. Check colors and formatting codes here: https://wiki.ess3.net/mc/. It is a good idea to make your chat as colorful as possible because it seems to stimulate the minds of players. For example, this is how you may want to set your prefix as Owner of your server:
/lp group owner meta setprefix 100 "&7[&bOwner&7]&r"
And that’s it.
Permissions are what separates the good servers from the OK ones. Everybody loves their chat to be colorful, and permissions are the best way to get there. It also enables server owners to grant users certain permissions without having to grant them all permissions. The op system in Minecraft alone doesn’t work well and requires putting too much trust in people than should be allowed for certain commands. That’s the beauty of permissions.