LuckPerms basics

The permissions plugin almost every server runs — groups, permission nodes, and the /lp editor web tool — explained from zero so you can decide who can do what.

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:

  1. A permission node is a string a plugin checks before letting someone do something — like essentials.home or worldedit.wand. Each plugin documents its own nodes.
  2. A group is a named bundle of permissions — default, member, admin. You give permissions to the group, not to each player.
  3. A player is in a group. Put someone in admin and they get everything admin has. 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> true grants 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 add puts them in an additional group.
  • ... info shows 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.fly does 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 false on the player or a parent group (an explicit deny wins). /lp user <name> info shows the full picture.
  • /lp editor link 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/applyedits in the editor; unsaved editor changes don't persist.

Next steps

Was this guide helpful?