Installing LuckPerms through FTP
Go to the official LuckPerms website and download the version of LuckPerms you need.
Head to your server’s control panel and stop it.
Click FTP File Access to the left of the panel, and log in there with your panel password.
In the list of files, click on the folder called plugins. If you’re using Sponge or SpongeForge, open the folder mods.
Click Upload on the top left side of the page.
Drag the LuckPerms file that you just downloaded into the Upload area of the upload page, then wait for the upload to reach 100%.
Go back to the Game Panel and start your server.
LuckPerms will then be installed and running on your server. If you’re on Bukkit, Spigot, or Paper and you’d like to double-check, you can head over to your server’s console and type in pl. This will give you a list of all the plugins that are currently running on your server, and LuckPerms should be among them.
Finding Permission Nodes and Defining Groups
Overview
On their own, permissions plugins don’t do anything, but they’re what lets you set up the ranks and their permissions. This is what we’ll be doing now.
A permission is essentially a little line of text that tells the server whether or not a specific player can use the command, or plugin functionality, tied to the permission. Every plugin will come with a list of permissions, alongside the commands and functionality they correlate to. Generally, you can find a list of permissions on the plugin’s download page. If it isn’t there, then a quick Google search of “ permissions” will get you to the correct place. Just change to the name of the plugin you’re looking for the permissions of.
We have a guide on permission nodes right here.
The words “group” and “rank” are interchangeable, so don’t be confused when you hear them referred to as either.
The reason ranks exist is so that we don’t have to assign every player their permissions, one by one. Instead, by setting up ranks — Owner, Admin and Member, for example — we can simply assign the player to that rank, after which they’ll have all the permissions from that group.
In this section, we will make preparations so we know exactly which groups and permissions we want to add to our server. It’s important to have a plan in advance, so we know how the groups will interact with each other, and so we don’t assign unnecessary permissions to any of them.
If you’re using Sponge, skip to the In Sponge/SpongeForge step, as Sponge supports different plugins.
In Bukkit / Spigot / Paper
For Bukkit, Spigot or Paper servers, we recommend that you use one of the most common plugins, EssentialsX. EssentialsX contains numerous server basics, such as /home, /spawn and /tpa, alongside a number of other features.
You can get EssentialsX with the Plugin List only our panel, or by getting from their download page and installing it through the FTP.
After installing EssentialsX, you’ll be able to find a community-maintained list of commands and permissions here.
Now, we’ll need to define a couple of groups for our users. We probably want a “default” role, in which every new player that joins the server will be placed, a “moderator” role with medium-level permissions, and an “admin” role with access to all permissions.
Default:
Prefix / Group name: [Builder]
This is what we want members of this group to have in front of their names when they type in chat.
Prefix Color: Light Blue
This is what we want the group name to be colored as in the chat.
Permissions:
essentials.afk
essentials.compass
essentials.fly
essentials.help
essentials.home
essentials.sethome
essentials.delhome
Moderator:
Prefix / Group name: [Mod]
Prefix Color: Light Red
Permissions:
essentials.ban
essentials.unban
essentials.banip
essentials.unbanip
essentials.tempban
essentials.kick
essentials.gamemode.*
The wildcard ( * ) in this permission means that it will allow all the sub-nodes under "essentials.gamemode.
Inheritance: Default
This is what permissions the moderator group will get from any other groups. In this case, we want the moderator group to have all the permissions the default group has as well.
Admin:
Prefix / Group name: [Admin]
Prefix Color: Light Green
Permissions:
*
Using wildcard (*) on its own will give the admin ALL permission nodes on the server. This is useful for the owner of the server and its use should be limited to those you trust most. You don’t want a random new player to have access to WorldEdit commands.
Now that we know which ranks we’d like to have, we can start adding them to LuckPerms.
In Sponge / Spongeforge
For Sponge / Spongeforge, instead of EssentialsX, we will be using Nucleus. You can find Nucleus on their Sponge Ore page. After installing Nucleus to our server, we can find a list of commands and permissions here.
Now we’ll need to define a couple of groups for our users:
lp group default meta
Default:
Prefix / Group name: [Builder]
This is what we want our group to be called in the chat.
Prefix Color: Light Blue
This is what we want the group name to be colored as in the chat.
Permissions:
nucleus.afk.base
nucleus.fly.base
nucleus.home.base
nucleus.home.set.base
Moderator:
Prefix / Group name: [Mod]
Prefix Color: Light Red
Permissions:
nucleus.ban.base
nucleus.unban.base
nucleus.tempban.base
nucleus.checkban.base
nucleus.kick.base
nucleus.gamemode.base
nucleus.gamemode.others
nucleus.gamemode.modes.*
In Sponge, Wildcards (*) have to be carefully used as plugins often store information as permissions, which can cause strange issues. In this case we’re only using it to add all the modes moderator can change their gamemode too and nothing else.
Inheritance: Default
This is what permissions the moderator group will get from any other groups. In this case, we want the moderator group to have all the permissions default has as well.
Admin:
Prefix / Group name: [Admin]
Prefix Color: Light Green
Permissions:
luckperms.*
Nucleus.kill.base
nucleus.teleport.*
Nucleus.vanish.base
As previously explained, we have to be careful with how we the wildcard (*) with Sponge. This means that we can’t just add a wildcard as a single node like in Bukkit, Spigot or Paper. While this makes the task of adding permissions more difficult, it’s important to only add the permissions you need to prevent issues in the future.
Now that we know which ranks we’d like to have, we can start adding them to LuckPerms.
Adding our Groups and Permissions to Luckperms
In this section of the guide, we will be continuing with adding the EssentialsX permission nodes. However, all of the methods used in this section can also be used for Nucleus.
With the Web Editor (Recommended)
To get started with the web editor, we will want to enter lp editor (that’s lp with an L) in our server’s console. This will generate a link that will take us to the LuckPerms web editor. We can use the web editor to customize your groups and players. Bear in mind that players will only appear on the list after they have joined the game at least once.
Copy the link it gives you in the console and open it in a new browser tab. You’ll get a fresh permissions editor, looking like this:
Luckperms 1
Start by clicking the arrow next to “GROUPS” to reveal the current groups. In the beginning, only a single group will appear, called default. This is the group every player will be placed in upon joining the server. We’ll want to turn it into our Builders group.
Luckperms 2
At the bottom of this screen, you’ll see a form for adding permissions to the group. We can simply take the permissions we previously decided on for the Builders group and type them in there. After typing in each permission, you’ll want to press Enter, so that it’s registered as one permission.
As you type in the permissions, you’ll see a suggestion box pop up. This can be quite handy, especially if you don’t remember how the permissions fully went. However, it doesn’t have all permissions all of the time, and if the one you’re typing in doesn’t show up, don’t worry — that doesn’t mean the permission doesn’t exist.
Luckperms 3
Now, if you press the big [+] button on the right, it will populate our permissions into the list of permission for the group.
Luckperms 4
Now we want to add your [Builder] prefix to the group. To do that, go back to where you typed in the previous permissions and type:
prefix.0.&b[Builder]&f
Here’s a breakdown:
The .0 indicates the weight of the prefix. The higher the number, the more that prefix will be preferred in situations where a player has multiple prefixes associated with them. As this is the default prefix, we’ll want it to be 0.
&b sets our color. You can find all of Minecraft’s color codes here.
&f at the end of the prefix makes it so anything after the prefix is in white. This will make it so only the prefix is colored, but the player's name is white. You can use however many color codes in the prefix as you want.
Click the [+] to add the prefix, and we’re done with the Builders group. Our permissions group should look like this:
Luckperms 5
If you change your mind and would like to remove any of the permissions, simply click the X on the far right side of the table.
Now we can move on to our Moderator group. Click on the + icon to the left of the page next to GROUPS to start creating a new group.
This will open up the Create a group popup.
Luckperms 7
Here’s what the different fields mean:
Group name - the internal name of the group, and the name you’ll use when referring to it in commands. For this, we will use ‘moderator’ as it’s easy to remember.
Weight - the weight of the group and affects any prefixes or suffixes we add. This can be any number, but since we want it to be above our Builders group, we will make it 50.
Display name - an alternate name that can be used for the group. For example, you could set it to ‘mod’ so you only have to type ‘mod’ in commands instead of ‘moderator’. In this case, we will leave it blank.
Prefix - as discussed in previous parts of the guide, this is what appears before a player’s name. In this case, we will use &c[Mod]&f
Parent - what group this group inherits permissions from. Since we want our moderators to have all the permissions that the default (Builders) group already has, we will set this to default.
Suffix - similar to the prefix, except it appears after the player’s name. In this case, we will leave it blank.
When you click Add Group, you’ll see that multiple fields and permissions come prefilled. As we did with the default group, we can now add the permissions we want the moderator to have.
Following the same steps as we did with the Moderator group, we can do the same to set up for the Admin group.
Afterwards, your GROUPS list should look like this:
Luckperms 8
Now that we’ve set up all of our groups and permissions, we’ll need to save them and apply them to our server. Click the Save button on the top right of the editor.
Luckperms 9
This will now give you a command to apply to your server. Simply click on it to copy it.
Now, head back to your server’s console, and paste the command you were given into it. However, don’t press Enter just yet — ensure to remove the / from the beginning of the command, as the console does not recognize slashes.
After issuing the command, the console should print outlines of the changes you’ve just made to the groups.
You have now successfully set up your permissions and groups on Luckperms with the Web Editor!
Adding groups and permissions with commands
If you’d rather not use the web editor for this, you can still set up LuckPerms with in-game commands.
However, to do so, you’ll first need to give your own account the permission to use LuckPerms commands in-game. To do so, head over to your server’s console and type in the following command:
lp user USERNAME permission set lp.*
*Exchange USERNAME for your in-game name.
After you’ve done so, you’ll have access to all of LuckPerms commands in-game.
Next up, we’ll be detailing how to set the groups and permissions up with in-game commands, but if you’d like a more thorough dive into all the commands LuckPerms offers, you can check out its official Wiki
First off, we’ll want to turn the default role into our Builders role. The default role is just the role that comes on your server, by default, and it’s the role every new player that joins your server will be placed into.
We want to give it the [Builders] prefix, colored light blue.
In-game, type the following command:
/lp group default meta setprefix 0 &b[Builder]&f
Here’s a breakdown:
The 0 indicates the weight of the prefix. The higher the number, the more that prefix will be preferred in situations where a player has multiple prefixes associated with them. As this is the default prefix, we’ll want it to be 0.
&b sets our color. You can find all of Minecraft’s color codes here.
&f at the end of the prefix makes it so anything after the prefix is in white. This will make it so only the prefix is colored, but the player's name is white. You can use however many color codes in the prefix as you want.
Now we’ll be adding the permissions we want our Builders role to have to it. The command for that is:
/lp group default permission set PERMISSION
We’ll need to change PERMISSION to the permissions we want to assign to it. In the case of the permissions we want for our builder group, the commands would be:
/lp group default permission set essentials.afk
/lp group default permission set essentials.compass
/lp group default permission set essentials.fly
/lp group default permission set essentials.help
/lp group default permission set essentials.home
/lp group default permission set essentials.sethome
/lp group default permission set essentials.delhome
And we’re done with our Builders role.
Now we need to create and set up our Moderators role. First off, we’ll need to create the actual rank. Do so with the following command:
/lp creategroup moderator
Once the moderator group exists, we’ll want to assign it a parent. A parent determines what group this group inherits permissions from. Since we want our moderators to have all the permissions that the default (Builders) group already has, we will set this to default. You can see the parent with the command below:
/lp group moderator parent set default
Set its prefix, the same way we set it for the Builders group, but increase the weight as the Moderators group is higher-ranked and we want its prefix to take precedence. You can do this with the command below:
/lp group moderator meta setprefix 50 &c[Mod]&f
And then set the permissions up, the same way we did for the Builders role, with the command below:
/lp group moderator permission set PERMISSIONS
We’ll need to change PERMISSION to the permissions we want to assign to it, but the process is the same as with the Builders role.
After we’ve set the Moderators group up, we can do the same for the Admin group, the same way we set up Moderators and Builders.
Once everything is over and done with, you’ll successfully set up your permissions and groups on Luckperms with in-game commands.
Assigning Groups to Players
You’ve got your ranks set up, but now you want to promote a player to a moderator or demote them back to a regular player? LuckPerms makes it very easy!
With the Web Editor
To promote or demote a player with the web editor, you’ll first need to open up the web editor. Use the following command to get the link to the web editor, then open it up in your browser:
/lp editor
Start by clicking the arrow next to “USERS” to reveal the current groups. If no one has joined your server yet, no players will appear there. However, as soon as someone joins and you open the web editor, their name will appear there.
Select the player whose group you want to edit, then simply click the [+] to the right of Parent groups, and choose which rank you wish to give them.
Bear in mind that this will add a rank, but it won’t remove any previous ranks that they had. If you wish to remove the previous ranks, all you need to do is click the x that appears next to the rank’s name.
Now that we’ve set up the player’s rank, we’ll need to save it and apply it to our server. Click the Save button on the top right of the editor.
It will give you a command to apply to your server. Click on it to copy it.
Now, head back to your server’s console, and paste the command you were given into it. However, don’t press Enter just yet — make sure to remove the / from the beginning of the command, as the console doesn’t recognize slashes.
After issuing the command, the console should print outlines of the changes you’ve just made to the player’s groups.
With Commands
To promote or demote a player with in-game commands, simply use the following command format to do so:
/lp user USERNAME group set GROUPNAME
*Make sure to exchange USERNAME for the player’s in-game name, and GROUPNAME for the name of the group.
For example, if we’d like to promote the player Katilda into a moderator, we’d use the following command:
/lp user Katilda group set moderator
Advanced options
Permission Logic
Each permission can be set as one of two states: true or false.
True means it is enabled, whilst false it means it is disabled.
You might have noticed that in the editor, or after you’ve issued a permission command, there’s a mention of the permission being set as true. This is because, by default, LuckPerms assumes you want to set a permission as active, which is generally what we want.
However, there’s a reason to use false permissions as well. The most common usage of this is when we want to negate the inheritance of a certain permission from one group to another, or when we want to use the wildcard (*) permission, whilst not allowing all of the commands the wildcard would enable by default.
For example, we have two ranks: VIP and VIP+. VIP+ inherits the permissions from VIP.
However, we don’t want VIP+ to have access to the essentials.nick.magic permission. We want that to only be accessible to the VIP rank.
We’d handle this by giving the essentials.nick.magic permission to the VIP+ rank, and setting it as false. True * false = false, and thus the VIP+ rank won’t be able to use the command associated with essentials.nick.magic.
Permission Context
Similarly to permission logic, each permission can have a context. In essence, the context of a permission determines when that permission should be considered active, and when it should be considered inactive.
By default, if you don’t set the context to anything when adding a permission, it will be considered global. A global permission means that the permission is valid on every one of your worlds (if you’re running a plugin that lets you have multiple worlds at the same time, such as MultiVerse), and every one of your servers (if your LuckPerms is configured in such a way to share the ranks and players between servers, using a shared database).
Because of this, it’s generally best left to leave the context parameter untouched.
However, if you would like to find out more about contexts, you can do so on LuckPerms official wiki page.
Conclusion
Setting up and configuring ranks continue to be one of the most difficult tasks for new server owners. Many permission plugins require manually entering in each command in Minecraft or going line by line in a configuration file. LuckPerms sets itself apart from the rest with its intuitive web panel allowing server owners with little to no experience create and configure groups on their server.
Keep in mind that LuckPerms will not work properly if you do not have its dependencies (Vault and EssentialsX) installed. LuckPerms will also only work on servers running either SpongeForge, Spigot, Bukkit, Paper, Bungeecord, or Velocity.