The Ultimate LuckPerms Tutorial for Minecraft Servers (2025)
When you first start a Minecraft server, you only have two roles: players (who can do almost nothing) and Operators (who can do everything). This is a big problem for any server. You cannot give a friend OP status to help you build without also giving them the power to ban everyone or destroy your world.
A Minecraft permissions plugin fixes this. It lets you create many different roles, called "groups" or "ranks," like 'VIP', 'Moderator', or 'Admin'. You can then give these groups specific "permissions," like the ability to use a single command. For example, you can let Moderators use /kick while only letting VIPs use /fly. A good permissions system is the most important foundation for a professional server.
Why You Must Use the LuckPerms Plugin
For years, this was hard to set up. Today, one plugin is the clear, modern standard: LuckPerms. It is designed to be fast, reliable, and easy to manage. Servers of all sizes use it for a few key reasons.
-
Fast and Reliable
It was built for performance. It does not lag your server, even when checking thousands of permissions at once.
-
Easy to Use
This is its best feature. LuckPerms has a powerful Web Editor that gives you a clean, visual way to manage all your ranks and permissions. No more guessing commands.
-
Flexible for Any Server
It works on all major server platforms, like Paper, Spigot, and BungeeCord. It can also sync permissions across multiple servers in your network.
-
Completely Free
LuckPerms is an open-source project that is 100% free and will remain free forever.
What About the PermissionsEx Plugin?
You may see guides that mention the permissionsex plugin, also called PEx. You must understand that PermissionsEx is an old, outdated, and unsupported plugin. Its development stopped years ago. In fact, the official PEx project page now tells new users to use its competitor instead.
When a plugin's own developers tell you to use something else, you should listen. LuckPerms is the correct choice for any server in 2025.
Getting Started: The "Holy Trinity" of Plugins
Here is the most common mistake new server owners make. They install LuckPerms and then complain that "prefixes are not showing up". This happens because LuckPerms is only one part of a three-part system. To work correctly, you must install all three of these plugins together.
-
1. LuckPerms (The Brain)
This is the "brain" that stores all your data. It holds the master list of all groups, permissions, and prefixes.
-
2. EssentialsX (The Body)
This is the "body" that provides the commands (like
/fly,/spawn) and the chat formatting system. -
3. Vault (The Translator)
This is the "translator" or bridge. On its own, Vault does nothing. It is an essential API that allows EssentialsX (The Body) to read the prefix and group data from LuckPerms (The Brain).
Without Vault, EssentialsX has no idea what a player's LuckPerms rank is. Your prefixes will never show up.
How to Install (The Right Way)
The installation is simple, but it must be done in the correct order. This tutorial assumes you are using a server platform like Paper or Spigot.
-
Step 1: Download All Three Plugins
Go to the official sources and download all four
.jarfiles. You need LuckPerms, Vault, and both the main EssentialsX file and the EssentialsX Chat file. -
Step 2: Install the Plugins
Stop your server completely. Upload all four
.jarfiles into your server's/pluginsfolder. -
Step 3: Restart Your Server
Start your server. You must use a full restart (by typing
stopin your console and starting it again). NEVER use the/reloadcommand. Reloading is known to break plugins and will prevent Vault from hooking into LuckPerms correctly.
Core LuckPerms Concepts
Before you make your ranks, you need to understand how LuckPerms "thinks." These simple concepts are the key to a setup that is easy to manage.
Groups (Ranks)
A "Group" is the LuckPerms name for a "rank". A Group is just a container for permissions. For example, default, vip, and admin are all Groups. Instead of giving 100 VIP players the essentials.fly permission, you just add that permission to the vip Group once.
Inheritance (The Parent System)
This is the most important concept. Inheritance lets Groups get their permissions from other Groups. This creates a "ladder" where ranks stack.
-
First, you give your
defaultGroup basic permissions (likeessentials.spawn). -
Next, you create the
vipGroup and tell it to inherit fromdefault. -
Instantly, the
vipGroup has all ofdefault's permissions plus any new ones you add (likeessentials.fly). -
Finally, you create the
adminGroup and tell it to inherit fromvip.
The admin Group now has its own permissions, all of vip's permissions, and all of default's permissions. This is clean, logical, and means you never have to add the same permission twice.
Meta (Prefixes and Weight)
"Meta" is extra data about a Group that isn't a simple permission. It is how you make your ranks look good and resolve conflicts. The two most important types are:
-
Prefix and Suffix
A Prefix is text that appears before a player's name (e.g.,
[VIP]). A Suffix is text that appears after their name. -
Weight
A Weight is a priority number (e.g., 100). A higher number equals a higher priority. This is used to solve problems. If an Admin inherits both the
[VIP]prefix and the[Admin]prefix, which one is shown? LuckPerms will show the prefix from the Group with the highest weight. You giveadmina higher weight thanvip, and the problem is solved.
LuckPerms Tutorial: Creating Your First Ranks
Now let's build your ranks. This is how to make ranks with LuckPerms. We will create three Groups: default, vip, and admin. There are two ways to do this.
Method 1: The Web Editor (Recommended)
This is the safest, most visual, and easiest method. It is built right into LuckPerms.
-
Step 1: Open the Editor
From in-game (if you are OP) or from your server console, type this command:
lp editor -
Step 2: Use the GUI
LuckPerms will generate a secure web link. Click it. Your browser will open a full graphical interface. On the left, click the "+" to create your
default,vip, andadmingroups. -
Step 3: Set Inheritance and Permissions
Click the
vipgroup, go to the "Parents" section, and adddefault. Do the same foradmin, addingvip. You can then click any group and type permissions (likeessentials.fly) into the "Add Permission" box. -
Step 4: Save and Apply
When you are done, click the "Save" button in the top right. The editor will give you a new, long command. Copy this command and paste it back into your server console or in-game chat to apply all your changes instantly.
Method 2: In-Game Commands
While the editor is easier, knowing the commands is vital for automation (like for a webstore). Here are the commands to do the same setup.
Step 1: Create Your Groups
/lp creategroup default
/lp creategroup vip
/lp creategroup admin
Step 2: Set Up Inheritance (The "Ladder")
/lp group vip parent add default
/lp group admin parent add vip
Step 3: Assign Permissions (The "Perks")
Here is how to set permissions in your Minecraft server. The command is /lp group [group] permission set [permission.node] true.
/lp group default permission set essentials.spawn true
/lp group default permission set essentials.sethome true
/lp group default permission set essentials.home true
/lp group vip permission set essentials.fly true
/lp group vip permission set essentials.nick true
/lp group admin permission set luckperms.* true
/lp group admin permission set essentials.kick true
/lp group admin permission set essentials.gamemode true
Example Rank Permissions Starter Pack
Here is a simple, safe "starter pack" of permissions for your new server ranks.
| Rank (Group) | Permission Node | What It Does | Example Command |
|---|---|---|---|
| default | essentials.spawn |
Allows players to use /spawn. |
/lp group default permission set essentials.spawn true |
| default | essentials.msg |
Allows players to send/receive private messages. | /lp group default permission set essentials.msg true |
| default | essentials.sethome |
Allows players to set one home. | /lp group default permission set essentials.sethome true |
| default | essentials.home |
Allows players to teleport to their one home. | /lp group default permission set essentials.home true |
| vip | essentials.fly |
Allows players to use /fly. (A high-value perk). |
/lp group vip permission set essentials.fly true |
| vip | essentials.nick |
Allows players to set a nickname with /nick. |
/lp group vip permission set essentials.nick true |
| admin | luckperms.* |
CRITICAL: Allows all /lp commands. |
/lp group admin permission set luckperms.* true |
| admin | essentials.gamemode |
/lp group admin permission set essentials.gamemode true |
|
| admin | essentials.kick |
Allows admins to kick players. | /lp group admin permission set essentials.kick true |
How to Add Prefixes in Minecraft Chat
This is the final and most visible step. If your prefixes do not show up, it is almost always a problem with EssentialsX Chat, not LuckPerms. Here is how to fix it.
Step 1: Configure EssentialsX Chat (Mandatory)
You must do this one-time setup to tell EssentialsX how to display your chat.
-
Stop Your Server
Never edit configs while the server is running.
-
Find the Config File
Using a file manager, go to
/plugins/Essentials/and open theconfig.ymlfile with a text editor. -
Set the Chat Format
Search for the
essentials-chatsection (near the bottom). Find the line that starts withformat:. You must add the{PREFIX}placeholder. A great, standard format to use is:format: '{PREFIX} {DISPLAYNAME}&r: {MESSAGE}'The
&rcode resets the color so the player's message is in plain white. -
Save and Restart
Save the
config.ymlfile and start your server.
Step 2: Set the Prefixes in LuckPerms
Now that EssentialsX is looking for a prefix, you can set it in LuckPerms. The command is meta setprefix [weight] "[prefix]". Remember, a higher weight number wins.
/lp group vip meta setprefix 100 "&8[&bVIP&8] &r"
/lp group admin meta setprefix 1000 "&8[&cAdmin&8] &r"
In this example, an admin player also inherits the vip rank. But because the admin prefix has a weight of 1000 (which is higher than vip's 100), LuckPerms will always show the [Admin] prefix. This is how to add prefixes in Minecraft correctly.
How to Monetize Your Minecraft Server
You have now created a digital product. Your vip group is a package of perks (like /fly) and a prefix ([VIP]) that players will want. This is the foundation to monetize your Minecraft server.
Platforms like Tebex vs CraftingStore are the "cash registers" that automate the sale of this rank. When a player buys your "VIP" package, the webstore automatically runs a console command to give them their rank.
Make Your Webstore Look Professional
Now that your ranks are set up, you need webstore rank icons to display on your webstore. Professional-looking ranks are more appealing to players and are a key part of how Minecraft servers make money. We offer high-quality, pre-made icon packs that you can download instantly.
The "Golden Commands" for Your Webstore
Your webstore will ask you, "What command should be run when a player purchases this?" These are the commands you will use. The {username} part is a variable provided by your webstore platform.
Command to Grant a Rank (On Purchase)
This command sets the player's rank to vip.
lp user {username} parent set vip
Command to Remove a Rank (On Refund or Expiry)
This command moves the player back to the default rank.
lp user {username} parent set default
Important: Always use parent set, not parent add. The set command cleanly moves a player from one rank to another. It is the simplest and best method for most servers.
Troubleshooting & FAQ
If you run into problems, it is almost always one of these three issues.
| Problem / Symptom | Likely Cause | Solution |
|---|---|---|
| Prefixes are not showing in chat. | This is the #1 problem. You are missing Vault, EssentialsX Chat, or you did not configure the EssentialsX config.yml. |
1. Install Vault. 2. Install EssentialsX Chat. 3. Open /plugins/Essentials/config.yml and make sure the format: line contains {PREFIX}. |
Permissions are not working. (e.g., "I gave vip essentials.fly but they still cannot fly.") |
1. You have another permissions plugin (like PermissionsEx) installed, and they are conflicting. 2. You used /reload instead of a full restart. |
1. Go to your /plugins folder and delete PEx or any other permissions plugin. You can only have one.2. Perform a full stop and start of your server. |
I cannot use any /lp commands in-game. |
You are not a server Operator (OP). By default, only OP players or the console can use /lp commands. |
1. Go to your server console. 2. Type op <your-username>.3. You can now run the commands in-game. (You can also run all commands in the console without the / prefix). |