How to Install and Configure LuckPerms on Your Minecraft Server
Install LuckPerms on your Minecraft Java server for permission groups, ranks, prefixes, inheritance, and per-world permissions using the web editor.
LuckPerms is the most-used permissions plugin for Minecraft. It manages groups (ranks), permissions, inheritance, prefixes, and per-world overrides — and it has the best web editor of any permissions plugin, which is reason enough to install it.
LuckPerms supports Bukkit/Spigot/Paper, Folia, Sponge, Velocity, BungeeCord, Forge, NeoForge, and Fabric.
How LuckPerms Works
Player ──── primary group ──► Group ──── inherits from ──► Group
│ │
▼ ▼
permissions permissions
│ │
└────── effective set ──────┘- Groups hold permissions and metadata (prefix, suffix, weight)
- Players belong to one or more groups
- Groups can inherit from other groups (e.g.,
vipinherits fromdefault) - Permissions can be set at the player level or group level
- Tracks are linear group chains for promotion/demotion
Install LuckPerms
Download LuckPerms
Go to luckperms.net/download and pick the build for your platform:
| Platform | File |
|---|---|
| Bukkit / Spigot / Paper / Folia | LuckPerms-Bukkit-X.X.X.jar → plugins/ |
| Fabric | LuckPerms-Fabric-X.X.X.jar → mods/ (also needs Fabric API) |
| Forge / NeoForge | LuckPerms-Forge-X.X.X.jar → mods/ |
| Velocity | LuckPerms-Velocity-X.X.X.jar → plugins/ |
| BungeeCord | LuckPerms-Bungee-X.X.X.jar → plugins/ |
| Sponge | LuckPerms-Sponge-X.X.X.jar → mods/ |
Stop the server
In the XGamingServer Panel, open Console and stop your server.
Upload the JAR
Click Files in the sidebar. Upload to plugins/ (or mods/).
Start the server
Start from Console. LuckPerms creates plugins/LuckPerms/ and a default default group.
Quick Start: Create Three Ranks
The most common starter setup is three ranks: member, mod, admin.
Set up inheritance
Have admin inherit from moderator, and moderator inherit from member:
lp group moderator parent add member
lp group admin parent add moderatorNow any permission given to member applies to all three groups.
Set group weights
Higher weight = higher priority for prefix display:
lp group member meta setweight 10
lp group moderator meta setweight 50
lp group admin meta setweight 100Add permissions
lp group member permission set essentials.home true
lp group member permission set essentials.sethome true
lp group member permission set essentials.spawn true
lp group member permission set essentials.tpa true
lp group member permission set essentials.tpaccept true
lp group moderator permission set essentials.kick true
lp group moderator permission set essentials.mute true
lp group moderator permission set essentials.tempban true
lp group admin permission set essentials.* true
lp group admin permission set worldedit.* true
lp group admin permission set minecraft.command.op trueSet prefixes
lp group member meta setprefix "&7[Member] "
lp group moderator meta setprefix "&9[Mod] "
lp group admin meta setprefix "&c[Admin] "For prefixes to show in chat, you need EssentialsX Chat and Vault.
Assign players
lp user PlayerName parent set member
lp user AdminName parent set adminThe player's primary group is updated immediately — no relog needed.
Use the Web Editor (Recommended)
The web editor is faster than typing commands for any non-trivial setup.
Generate an editor link
In Console or in-game:
/lp editorLuckPerms uploads your current data and gives you a URL like https://luckperms.net/editor/abc1234.
Edit visually
In the web editor:
- Drag-and-drop permissions between groups
- Set inheritance with checkboxes
- Edit prefixes and metadata
- Use search to find permission nodes
Apply changes
Click Save in the editor. It generates an apply command. Paste it back into your server console.
Web editor data is uploaded. It's hosted publicly. Use it for normal permission management — don't paste anything sensitive.
Common Commands
| Command | Description |
|---|---|
/lp editor | Open the web editor |
/lp creategroup <name> | Create a new group |
/lp deletegroup <name> | Delete a group |
/lp listgroups | List all groups |
/lp group <name> info | View a group's perms |
/lp group <name> permission set <perm> [true/false] | Add a permission |
/lp group <name> permission unset <perm> | Remove a permission |
/lp group <name> parent add <other> | Set inheritance |
/lp group <name> meta setprefix "<prefix>" | Set chat prefix |
/lp group <name> meta setsuffix "<suffix>" | Set chat suffix |
/lp group <name> meta setweight <number> | Set group weight |
/lp user <name> info | View a player's groups and perms |
/lp user <name> parent set <group> | Set primary group |
/lp user <name> parent add <group> | Add an extra group |
/lp user <name> permission set <perm> | Override a perm for one player |
/lp user <name> promote <track> | Promote up a track |
/lp user <name> demote <track> | Demote down a track |
/lp createtrack <name> | Create a promotion track |
/lp track <name> append <group> | Add group to a track |
/lp sync | Sync from database (network setups) |
/lp verbose on | Debug missing permissions |
Wildcard Permissions
| Permission | Effect |
|---|---|
* | All permissions on the server |
essentials.* | All EssentialsX permissions |
worldedit.* | All WorldEdit permissions |
essentials.sethome.multiple.* | Unlimited homes |
minecraft.command.* | All vanilla commands |
Warning:
*is the equivalent of OP. Only give to trusted admins.
Per-World Permissions
LuckPerms supports per-world permission contexts:
lp group vip permission set essentials.fly true world=creativeThis grants essentials.fly only when the player is in the creative world.
Network / BungeeCord Setup
For multiple backends sharing permissions, use a MySQL backend:
In plugins/LuckPerms/config.yml on every backend:
storage-method: mysql
data:
address: your-mysql-host:3306
database: luckperms
username: luckperms_user
password: your-passwordAll backends now read/write from the same database. See Use MySQL Database.
Common Issues
| Problem | Fix |
|---|---|
| Permissions don't work | Verify with /lp user <name> info — check the player has the right groups |
| Permission "not set" warning | LuckPerms shows missing perms — check spelling, then lp verbose on |
| Prefix not showing | Install Vault + EssentialsXChat + LuckPerms — chat plugin must hook Vault |
| Player has perm but command says no | OP override is interfering — deop the player |
| Group inheritance not working | Use parent add, not permission set group.X true |
| Web editor link expired | Generate a new one with /lp editor |
| Changes don't sync across backends | Set up MySQL storage (see above) |
Wildcard * doesn't grant a specific perm | Some plugins use negative perms — set explicit true |
Common Mistakes
| Mistake | Fix |
|---|---|
Forgetting /op overrides perms | Deop players — use perms instead |
Using permission set group.admin true instead of parent add admin | The latter is correct for inheritance |
| Setting prefix without weight | Conflicts with other groups' prefixes — set weights |
| Not restarting after switching from default to MySQL | Restart to apply storage change |
| Editing the YAML files manually while server is running | Use commands or the editor instead |
Forgetting to give essentials.signs.use.* for player signs | Many EssentialsX features need granular perms |
Related Guides
How is this guide?
