What Is LuckPerms?
LuckPerms is a modern, high-performance, open-source permissions management plugin for Minecraft servers. It has replaced older alternatives such as PermissionsEx and GroupManager, and as of 2026 it is the industry standard.
- High performance — it will not put any lag on your server
- Browser-based visual editor
- Multi-platform support (Paper, Spigot, BungeeCord, Velocity, Forge, Fabric)
- Completely free and open source
- Active development and community support
Installation
Bukkit / Spigot / Paper
- Download the Bukkit jar from luckperms.net/download
- Drop it into the
plugins/folder - Fully restart the server (with the
stopcommand — never use/reload)
Forge / Fabric
Download the jar/mod file for your platform, place it in the mods/ folder and restart the server.
Network (BungeeCord / Velocity)
On network setups a MySQL database is mandatory. LuckPerms must be installed on every backend server and on the proxy.
First Access
When LuckPerms is first installed, nobody has access to the LP commands. Type the following in the console:
lp user YOUR_USERNAME permission set luckperms.* trueCore Concepts
Groups
Groups are containers that permissions are collected into — they form the basis of your rank system. For example: default, vip, moderator, admin.
Inheritance
A group can inherit the permissions of another group, so you do not have to define the same permissions over and over. For example, the admin group automatically receives every permission that moderator has.
Meta (Prefix / Suffix)
Text added before (prefix) or after (suffix) a player's name. Priority is decided by the weight system.
Web Editor
LuckPerms' most powerful feature is its browser-based visual editor. You can manage every permission without memorising a single command:
/lp editor- A secure link opens in your browser
- Create a new group with the "+" button
- Set up inheritance from the "Parents" section
- Type a permission into the "Add Permission" box and add it
- Click "Save" in the top right
- Paste the generated command into the server console
Command Reference — User
| Command | Description |
|---|---|
| <code>lp user <name> info</code> | Shows the user's information |
| <code>lp user <name> parent set <group></code> | Sets the primary group (clears the others) |
| <code>lp user <name> parent add <group></code> | Adds them to a group (keeps existing groups) |
| <code>lp user <name> parent remove <group></code> | Removes them from a group |
| <code>lp user <name> permission set <permission> true</code> | Grants a permission |
| <code>lp user <name> permission unset <permission></code> | Removes a permission |
| <code>lp user <name> promote <track></code> | Promotes them along a track |
| <code>lp user <name> demote <track></code> | Demotes them along a track |
Command Reference — Group
| Command | Description |
|---|---|
| <code>lp creategroup <name></code> | Creates a new group |
| <code>lp deletegroup <name></code> | Deletes the group |
| <code>lp listgroups</code> | Lists every group |
| <code>lp group <name> info</code> | Shows the group's information |
| <code>lp group <name> permission set <permission> true</code> | Grants a permission to the group |
| <code>lp group <name> permission unset <permission></code> | Removes a permission from the group |
| <code>lp group <name> parent add <parent-group></code> | Adds inheritance |
| <code>lp group <name> parent remove <parent-group></code> | Removes inheritance |
Prefix, Suffix and Meta
Internally LuckPerms stores prefixes/suffixes as permission nodes. For example the [Admin] prefix with weight 100 becomes prefix.100.[Admin]
| Command | Description |
|---|---|
| <code>lp group <group> meta addprefix <weight> "<prefix>"</code> | Adds a prefix |
| <code>lp group <group> meta addsuffix <weight> "<suffix>"</code> | Adds a suffix |
| <code>lp group <group> meta removeprefix <weight></code> | Removes a prefix |
| <code>lp group <group> meta removesuffix <weight></code> | Removes a suffix |
| <code>lp user <name> meta set <key> <value></code> | Assigns custom meta data |
| <code>lp user <name> meta unset <key></code> | Deletes the meta data |
Colour Codes
Minecraft colour codes are used in prefixes/suffixes with the & character:
lp group admin meta addprefix 100 "&c[Admin] "
lp group moderator meta addprefix 80 "&6[Mod] "
lp group vip meta addprefix 50 "&9[VIP] "
lp group default meta addsuffix 10 " &8[Player]"The Weight System
A player can have more than one prefix/suffix (through inheritance). The weight system decides which one is displayed:
- Higher weight = higher priority
- Admin (100) > Moderator (80) > VIP (50) > Default (10)
- On an equal weight, the first one found in the inheritance tree is used
The Context System
Contexts let permissions apply only under certain conditions:
- Server context: permissions specific to one server on a network
- World context: permissions specific to one world (e.g. fly only in the creative world)
- Dimension context: specific to dimensions such as the Nether/End
# Fly permission only on the survival server
lp user Player permission set essentials.fly true server=survival
# Build permission only in the creative world
lp user Player permission set worldguard.build true world=creativeTracks (Rank Ordering)
Tracks arrange groups into an ordered hierarchy. The /promote and /demote commands operate on a track.
# Create the track
lp createtrack main
# Add the groups in order
lp track main append default
lp track main append vip
lp track main append moderator
lp track main append admin
# Promote the player
lp user Player promote main
# Demote the player
lp user Player demote mainStorage
| Method | Use case | Note |
|---|---|---|
| <strong>H2</strong> | Default, single server | Requires no configuration |
| <strong>MySQL / MariaDB</strong> | Network setups | Mandatory for multi-server synchronisation |
| <strong>PostgreSQL</strong> | Alternative relational DB | Advanced usage |
| <strong>MongoDB</strong> | For those who prefer NoSQL | For special cases |
Storage settings are made in the config.yml file inside the LuckPerms folder:
# config.yml
storage-method: mysql
data:
address: localhost:3306
database: luckperms
username: root
password: yourpassword
pool-settings:
maximum-pool-size: 10Verbose (Debugging)
Verbose mode lets you watch every permission check on the server in real time. It is the most reliable way to find a missing permission.
| Command | Description |
|---|---|
| <code>lp verbose on</code> | Enables verbose and sends the output to chat |
| <code>lp verbose record</code> | Silent recording (without the chat spam) |
| <code>lp verbose off</code> | Turns it off and uploads the results to the web viewer |
| <code>lp verbose command <n> <command></code> | Shows the permission checks for a specific command |
Using Filters
# Show only essentials permissions
lp verbose on essentials.*
# Exclude LuckPerms' own checks
lp verbose on !luckperms
# Multiple filters
lp verbose on (essentials.* | minecraft.*)A Complete Setup Example
Step by step, to build a server permission system from scratch:
1. Create the Groups
lp creategroup admin
lp creategroup moderator
lp creategroup vip2. Set Up Inheritance
lp group moderator parent add default
lp group admin parent add moderator3. Assign the Permissions
# Admin permissions
lp group admin permission set luckperms.* true
lp group admin permission set essentials.ban true
lp group admin permission set essentials.kick true
lp group admin permission set essentials.gamemode true
# Moderator permissions
lp group moderator permission set essentials.kick true
lp group moderator permission set essentials.mute true
lp group moderator permission set essentials.tp true
# VIP permissions
lp group vip permission set essentials.kit.vip true
lp group vip permission set essentials.sethome.multiple.5 true4. Add Prefixes/Suffixes
lp group admin meta addprefix 100 "&c[Admin] "
lp group moderator meta addprefix 80 "&6[Mod] "
lp group vip meta addprefix 50 "&9[VIP] "
lp group default meta addprefix 10 "&7"5. Create a Track
lp createtrack main
lp track main append default
lp track main append vip
lp track main append moderator
lp track main append admin6. Assign a Player to a Group
lp user PlayerName parent set vip
# or promote them along the track
lp user PlayerName promote mainCommon Mistakes
- Prefix is not showing: check that Vault and EssentialsX Chat are installed
- Problems after /reload: never use /reload — shut the server down with stop and start it again
- A permission is not working: use
/lp verbose onto find out which permission is actually being checked - Synchronisation on a network: every server must use the same MySQL connection — run
lp networksync - The wrong prefix is displayed: check your weight values — higher weight = higher priority