LuckPerms is the plugin that decides who can do what on your server: who's an admin, which commands each player may run, what perks a rank gets. If you install one plugin, make it this one — countless other plugins simply assume a permissions plugin is present, and LuckPerms is the one they mean. This guide covers the core ideas and the handful of commands you'll use forever.
| At a glance | |
|---|---|
| You need | A plugin-capable server (Purpur, PaperSpigot, or another Plugin Servers option) |
| Plan | Any |
| Time | ~20 minutes |
| Next | Build a rank ladder |
New to installing plugins? See Install Minecraft plugins first — this guide assumes it's already on your server.
The three ideas
Permissions sound complicated but rest on three simple ideas:
- A permission node is a string a plugin checks before letting someone do something — like
essentials.homeorworldedit.wand. Each plugin documents its own nodes. - A group is a named bundle of permissions —
default,member,admin. You give permissions to the group, not to each player. - A player is in a group. Put someone in
adminand they get everythingadminhas. That's the whole model.
Everyone starts in a built-in group called default the first time they join. You never create that one — it's already there.
The web editor is the easy way
LuckPerms has two faces: chat commands, and a web editor. Beginners should live in the editor. In the console or in-game, run:
/lp editor
It hands you a one-time link. Open it in your browser and you get a full interface: every group and player, with permissions you toggle by clicking. When you're done you press Save in the browser, which gives you an /lp applyedits ... command to paste back — and your changes go live. No syntax to memorise.
💡 Tip: The editor link is private and expires. Don't share it — anyone who opens it can rewrite your permissions. Generate a fresh one each time with
/lp editor.
The commands worth knowing
Even if you use the editor, a few commands are faster for one-off changes. These have been stable for years:
/lp group default permission set essentials.home true
/lp group admin permission set worldedit.* true
/lp user Steve parent set member
/lp user Steve info
/lp group member info
Reading those:
group ... permission set <node> truegrants a permission to a whole group.- *A `
is a wildcard** —worldedit.*` grants every WorldEdit node at once. Handy for staff, dangerous for everyone else. user ... parent set <group>puts a player in a group (replacing their current one).parent addputs them in an additional group.... infoshows exactly what a player or group has — your first stop when something's off.
To remove a permission, set it to false (an explicit deny) or unset it (remove it entirely). A false beats a true from a parent group, which is how you carve exceptions.
A first real task: make yourself admin
You're an operator (op) already if you set yourself up in the panel's Players page, and op overrides most permission checks. But the clean way is a rank:
/lp creategroup admin
/lp group admin permission set '*' true
/lp user YOUR_NAME parent set admin
Now you have a real admin group you can hand to trusted staff, instead of opping everyone. Building that out into a full ladder — member, mod, admin, with prefixes — is the next guide: Build a rank ladder.
The config file
LuckPerms is managed almost entirely by commands and the editor, so you rarely touch its config. It lives at /plugins/LuckPerms/config.yml. The one setting most people eventually change is storage:
# Default is a local H2 database file — fine for a single server.
# Switch to MySQL only when you run a NETWORK sharing one permission set.
storage-method: h2
Leave storage-method: h2 unless you're running several servers behind a proxy that need to share ranks — then you'd point them all at one MySQL database (see Add a database). For a single server, the default is exactly right and needs no attention.
Verify it works
Grant a test permission to default — say essentials.back — then join as a normal (non-op) player and try /back. If it works, your permission plumbing is correct. Run /lp group default info to confirm the node is listed.
The honest limits
- LuckPerms grants permissions — it doesn't create features. Giving someone
essentials.flydoes nothing unless EssentialsX (which defines that node) is installed. LuckPerms is the switchboard, not the appliances. - It won't tell you what nodes exist. Each plugin owns its own node names; you find them in that plugin's documentation, not in LuckPerms.
- Prefixes/suffixes need a chat plugin. LuckPerms can store a prefix, but showing
[Admin]in chat needs a chat plugin like EssentialsX Chat reading it through Vault. - Command names and the editor have been stable for years; if a specific flag differs, check LuckPerms' current documentation.
Troubleshooting
- A permission won't take effect — check for a conflicting
falseon the player or a parent group (an explicit deny wins)./lp user <name> infoshows the full picture. /lp editorlink won't open — it's one-time and expires quickly; generate a new one. Some links time out if your server's outbound connection is slow.- Ops can do everything regardless — that's expected; op bypasses most permission checks. De-op yourself to test what a normal player actually sees.
- Changes vanished after a restart — make sure you pressed Save/
applyeditsin the editor; unsaved editor changes don't persist.