Plugin permissions without LuckPerms pain

Aug 22, 20255 min read

Plugin permissions without LuckPerms pain

LuckPerms is the right permission plugin. It's also the one that breaks people. You install it, you stare at the config, and you have no idea what to do next. This article gets you from "installed" to "working" without the usual three hours of confused googling.

The mental model

LuckPerms manages:

  1. Groups (like "default", "member", "vip", "moderator", "admin").
  2. Permissions assigned to groups (like essentials.home, worldedit.*).
  3. Players assigned to groups.

Every plugin exposes its features as permission nodes (essentials.tp, worldguard.region.claim, etc.). A player has a permission if any of their groups have it, or if it's set directly on the player.

The complexity people get lost in (inheritance, contexts, prefixes, tracks) is optional. You don't need any of it to get started.

The five-group hierarchy

A practical layout that handles 95% of servers:

Anything granted to default is automatically available to every higher tier through parent inheritance.

Inheritance, as a graph

Each higher tier inherits everything from the tier below, so a single permission on default reaches every signed-in player automatically:

default
new joiners
spawn, tpa, help

member
after first promo
build, claim, sethome

vip
donors
extra homes, colors

mod
trusted
kick, mute, regions

admin
operators
everything (*)

A minimum viable setup

Here's the smallest server-ready config. Run these in console (or in-game as op) after installing LuckPerms.

/lp creategroup default
/lp creategroup member
/lp creategroup vip
/lp creategroup mod
/lp creategroup admin

Then set inheritance so each tier inherits the one below:

/lp group member parent add default
/lp group vip parent add member
/lp group mod parent add vip
/lp group admin parent add mod

This means anything you grant to default is also given to all higher groups.

Now grant some basic permissions to default:

/lp group default permission set essentials.help true
/lp group default permission set essentials.spawn true
/lp group default permission set essentials.tpa true
/lp group default permission set essentials.home true
/lp group default permission set essentials.warp true

And member:

/lp group member permission set essentials.sethome.multiple.member true
/lp group member permission set worldedit.selection.pos true

And mod:

/lp group mod permission set worldguard.region.* true
/lp group mod permission set essentials.kick true
/lp group mod permission set essentials.mute true

And admin:

/lp group admin permission set * true

Set new players to join default:

/lp group default setweight 0
/lp group default setdisplayname Newcomer

(LuckPerms uses weight to decide which group is "primary." Higher weight wins; the default group sits at weight 0 as the lowest fallback.)

That's enough to run a server. Players land in default. After some time / a quest / an admin promotion, they move up.

Promoting players

The single most common operation:

/lp user Steve parent add member

Steve is now a member, inheriting from default and gaining member's permissions.

To remove a group:

/lp user Steve parent remove member

To see what groups Steve has:

/lp user Steve info

A common confusion: the "default" group is special

LuckPerms has a built-in group also called default. New players are automatically in it. You can either use this group (just put your defaults on it) or create your own group called something else (like member) and configure the "default group" setting.

For most servers, putting your initial permissions on the actual default group is simpler.

/lp group default permission set ...

Listing what a permission actually does

You'll see permission nodes like essentials.tp and not know what they grant. Every plugin documents its nodes on its plugin page. Start with the plugin's documentation.

Common starter nodes by plugin:

EssentialsX:

  • essentials.spawn - go to spawn
  • essentials.sethome - set a home
  • essentials.home - go home
  • essentials.tpa - teleport request
  • essentials.warp - use warps
  • essentials.kick - kick players (mod-level)

WorldEdit:

  • worldedit.selection.* - basic selection commands (member-level for trusted players)
  • worldedit.region.* - region operations (mod / admin only)

WorldGuard:

  • worldguard.region.claim - claim a region
  • worldguard.region.list - see all regions

LuckPerms itself:

  • luckperms.editor - access the web editor (admin only)

The web editor

The most underused LuckPerms feature: /lp editor opens a web URL where you can manage groups, permissions, and inheritance in a friendly UI. The URL expires after a few minutes; changes you make sync back automatically.

For anything beyond five permissions, just use the editor. Reading and editing groups in a UI is dramatically faster than typing commands.

Per-world permissions

Sometimes you want a permission only in some worlds. E.g., flight in spawn but not survival.

LuckPerms calls this "context":

/lp group vip permission set essentials.fly true world=spawn

The permission is active when the player is in the world named spawn, not anywhere else.

Use this sparingly. Per-world permissions are powerful but easy to get wrong. Document them somewhere.

Tracks (a thing you can ignore at first)

LuckPerms has "tracks" which are ordered chains of groups for promotion / demotion. You'd use this if you want commands like /lp user Steve promote to walk Steve up your chain.

This is fine to set up but absolutely not required to start.

Backups

LuckPerms stores permissions in a file or database. Back this up. If your permissions file is lost, your server has lost its trust hierarchy.

The default storage location depends on your config. Common: plugins/LuckPerms/luckperms-h2.mv.db. Include this in your backups.

For multi-server networks, use MySQL / PostgreSQL storage. For single-server, the default H2 file is fine.

Common mistakes

Granting * to a group too early.

* means everything. Including dangerous stuff like minecraft.command.op. Only give * to admins, and even then, sparingly.

Forgetting to grant the permission to the right level.

A new admin can't help their friends if the permissions are only on mod. Check inheritance with /lp user Steve info.

Per-world permissions with typos.

world=Spawn and world=spawn are different. Pick a convention.

Editing LuckPerms files by hand while the server is running.

Don't. Use commands or the web editor. The plugin caches state and direct edits can be overwritten.

A real opinion

LuckPerms is over-built for most servers' needs. You will only use 10 percent of it. The 10 percent you use is also documented worse than the 90 percent you don't.

Start with my five-group setup. Use the web editor. Don't touch contexts or tracks until you have a real reason. Most "I can't figure out LuckPerms" problems are people trying to set up systems they don't yet need.

Conclusion

LuckPerms appears complicated. The minimum viable setup is fifteen commands and a five-group hierarchy. The web editor handles ongoing changes. Most people who get stuck are setting up features they don't need yet.

Get the basics working in 30 minutes, run with them, and only add complexity when something actually requires it.


Hosting your game server with AndroHost means we handle most of what's in this post for you automatically: tier sizing, SRV records, off-site backups, DDoS protection.

Browse plans·More posts·Discord