How to set up LuckPerms ranks and permissions

Giving everyone operator status is the fastest way to ruin a server, and giving nobody anything makes it dull. A permissions plugin lets you give each player exactly the powers you intend. LuckPerms is the one most servers use: it is actively maintained, fast, and has a web editor that makes the job much easier than typing commands.

The idea in one minute

LuckPerms works with three things:

  • Permissions, which are small switches such as essentials.home that allow one action.
  • Groups, which are bundles of permissions, like "member", "moderator" and "admin".
  • Players, who belong to one or more groups.

A group can inherit from another. If "moderator" inherits from "member", moderators automatically get everything members have, plus their own extras. That keeps the setup short and tidy.

Install it

  1. Download LuckPerms from its official site and pick the build for your server software.
  2. Upload it to the plugins folder and restart. The file manager works for this.
  3. In the console, run lp info. If it prints details, it is working.

Every player starts in a group called default. Anything you give default applies to everyone, so give it only what you would give a stranger.

The easy way: the web editor

Type /lp editor in the game or console. LuckPerms replies with a link to a web page that shows your groups and permissions. Edit there, press save, and it gives you a command to apply the changes. It is far easier than remembering commands, especially at first.

The command way

You will use a small set of commands again and again:

/lp creategroup moderator
/lp group moderator parent add default
/lp group moderator permission set essentials.kick true
/lp user PlayerName parent add moderator
/lp user PlayerName info

The first makes a group. The second makes it inherit from default. The third gives it one permission. The fourth puts a player in it. The last shows what a player currently has, which is the command you will reach for most when something does not work.

A sensible starting layout

GroupInherits fromGets
defaultnoneChat, basic commands, homes and teleport requests if you use them
trusteddefaultExtra homes, particle effects, small perks
moderatortrustedKick, mute, teleport to players, view logs
adminmoderatorPlugin management, world tools

Notice that the owner is not a group here. Keep a small number of trusted accounts as operators, and use groups for everyone else.

Prefixes and weights

Groups can show a coloured tag in chat. Set it with the meta commands, for example:

/lp group admin meta setprefix 100 "&c[Admin] "

The number is the priority. If a player belongs to several groups with prefixes, the highest priority wins. Groups also have a weight, which settles conflicts when two groups disagree about the same permission: the higher weight is applied. Showing prefixes in chat needs a chat plugin that supports them, and some economy and chat plugins also need Vault installed as a bridge.

Finding which permission you need

Plugins list their permissions on their pages. If a command fails with "you do not have permission" and you cannot tell which one it wants, turn on verbose mode:

/lp verbose on

Then run the command as the affected player. LuckPerms prints each permission check as it happens, and you will see the exact node that was refused. Turn it off again with /lp verbose off.

Mistakes to avoid

  • Granting *. This gives every permission from every plugin, including ones that can wipe your server. Only the owner should ever hold it, if anyone.
  • Skipping default. Players in no group get nothing, including basic commands.
  • Forgetting inheritance. Duplicating permissions across groups creates work and mistakes. Inherit instead.
  • Testing as an operator. Operators bypass most checks, so test with a normal player account.

Pair this with a whitelist and a short list of operators, and protect builds with a claim plugin as described in How to protect builds from griefing.


Still stuck? Open a ticket on Discord - run /ticket in any channel, pick a department, and include your Server ID or Invoice ID so we can jump straight in.