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 stop command — 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.* true

Core 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

CommandDescription
<code>lp user &lt;name&gt; info</code>Shows the user's information
<code>lp user &lt;name&gt; parent set &lt;group&gt;</code>Sets the primary group (clears the others)
<code>lp user &lt;name&gt; parent add &lt;group&gt;</code>Adds them to a group (keeps existing groups)
<code>lp user &lt;name&gt; parent remove &lt;group&gt;</code>Removes them from a group
<code>lp user &lt;name&gt; permission set &lt;permission&gt; true</code>Grants a permission
<code>lp user &lt;name&gt; permission unset &lt;permission&gt;</code>Removes a permission
<code>lp user &lt;name&gt; promote &lt;track&gt;</code>Promotes them along a track
<code>lp user &lt;name&gt; demote &lt;track&gt;</code>Demotes them along a track

Command Reference — Group

CommandDescription
<code>lp creategroup &lt;name&gt;</code>Creates a new group
<code>lp deletegroup &lt;name&gt;</code>Deletes the group
<code>lp listgroups</code>Lists every group
<code>lp group &lt;name&gt; info</code>Shows the group's information
<code>lp group &lt;name&gt; permission set &lt;permission&gt; true</code>Grants a permission to the group
<code>lp group &lt;name&gt; permission unset &lt;permission&gt;</code>Removes a permission from the group
<code>lp group &lt;name&gt; parent add &lt;parent-group&gt;</code>Adds inheritance
<code>lp group &lt;name&gt; parent remove &lt;parent-group&gt;</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]

CommandDescription
<code>lp group &lt;group&gt; meta addprefix &lt;weight&gt; "&lt;prefix&gt;"</code>Adds a prefix
<code>lp group &lt;group&gt; meta addsuffix &lt;weight&gt; "&lt;suffix&gt;"</code>Adds a suffix
<code>lp group &lt;group&gt; meta removeprefix &lt;weight&gt;</code>Removes a prefix
<code>lp group &lt;group&gt; meta removesuffix &lt;weight&gt;</code>Removes a suffix
<code>lp user &lt;name&gt; meta set &lt;key&gt; &lt;value&gt;</code>Assigns custom meta data
<code>lp user &lt;name&gt; meta unset &lt;key&gt;</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=creative

Tracks (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 main

Storage

MethodUse caseNote
<strong>H2</strong>Default, single serverRequires no configuration
<strong>MySQL / MariaDB</strong>Network setupsMandatory for multi-server synchronisation
<strong>PostgreSQL</strong>Alternative relational DBAdvanced usage
<strong>MongoDB</strong>For those who prefer NoSQLFor 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: 10

Verbose (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.

CommandDescription
<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 &lt;n&gt; &lt;command&gt;</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 vip

2. Set Up Inheritance

lp group moderator parent add default
lp group admin parent add moderator

3. 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 true

4. 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 admin

6. Assign a Player to a Group

lp user PlayerName parent set vip

# or promote them along the track
lp user PlayerName promote main

Common 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 on to 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

Useful Resources