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 simply hack your server 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.20 (As of March 2024)
- Internet Access
Installation
You will first want to download LuckPerms to install it. You can download LuckPerms for your Minecraft version here: https://www.spigotmc.org/resources/luckperms-an-advanced-permissions-plugin.28140/. LuckPerms is free, so you won’t have to pay for anything to set up your Minecraft server. Copy the jar file you just downloaded and paste it into your Minecraft Server’s plugins folder. Finally, restart your server and watch the Permissions system begin to work.
I also mentioned LuckPerms in my article here: Some Plugins that Every Minecraft Server Needs
Installing EssentialsChat
In order for your server chat to have fun prefixes 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. 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 the 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.
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 permissions:
/lp group moderator parent add default
This will allow your moderators to access the same commands that the default group can. Now, it’s time to set up your actual permission nodes.
Setting Up Permission Nodes
The permission node syntax is fundamental. It works like this:
plugin.command.optionaldata
Now that you have your plugins’ permissions guide, it’s time to put them in. To do that, type in the following command, which will give you a link:
/lp editor
Click on the link it gives you, and it will provide a GUI allowing 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 put in the nodes given by the plugins in their proper groups, and you’ll be all good.
Granting Users their Groups
While in the editor, you will want to set up the user groups for each player 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:
group.owner
Now, save your editor session with the command it gives you, and watch the permissions apply.
Setting Prefixes
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 to 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.
Summary
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 specific 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 specific commands. That’s the beauty of permissions.