Operator status in Minecraft is all or nothing. An op can do everything, including stop the server and hand op to someone else, which makes it useless for a moderator who should be able to mute and kick but never touch the world. LuckPerms is the permissions plugin that fixes that: it lets you define ranks, give each rank a specific list of permissions, and have ranks inherit from one another so you are not repeating yourself. This guide covers installing it on a Loafhosts server, the handful of commands that do ninety percent of the work, how inheritance actually behaves, and the two things that catch people out, prefixes and the web editor.
What LuckPerms Actually Does
LuckPerms replaces “is this player an op” with “does this player have this specific permission node”. A permission node is a string like minecraft.command.gamemode or essentials.fly, and every command from the server and from your plugins has one. You collect nodes into a group (Member, Helper, Moderator, Admin), assign players to groups, and LuckPerms answers the yes-or-no question every time a command is run.
Groups can inherit from other groups, which is the part that saves the most time. If Moderator inherits from Helper, everyone in Moderator automatically has everything Helper has, and you only add the extra nodes on top.
Note: LuckPerms needs a Bukkit-derivative server, that means Paper, Spigot, Purpur, Bukkit, or Folia
Warning: LuckPerms does not remove op. A player who is still op bypasses permission checks entirely, so deop your staff after giving them a rank
Installing LuckPerms on Loafhosts
Open your server in the LoafHub panel and pick Plugin Manager from the sidebar. Search for LuckPerms, pick the version that matches your server, and install. The panel downloads the jar into /plugins/ for you, so there is no upload step and no file manager work.
- Open your server in the panel and go to Plugin Manager
- Search for
LuckPerms - Choose the build that matches your Minecraft version and install
- Restart the server, plugins load at startup
The Plugin Manager pulls from the public plugin repositories and tracks what it installed. Anything you uploaded yourself over SFTP still appears in the installed list with an External badge, so a jar you added by hand is not hidden from you.
Warning: Restart the server rather than running
/reload. Reloading is unreliable for plugins and can leave LuckPerms half-loaded with permissions in a strange stateNote: The Plugin Manager only appears on Bukkit-derivative servers. On Forge, NeoForge, Fabric, or Quilt you will see the Mod Manager instead, and LuckPerms is not the right tool there
The Commands That Do Most of the Work
Every LuckPerms command starts with /lp. You can run them from the server console without the slash. These are the ones you will actually use.
| Command | What it does |
|---|---|
lp creategroup moderator | Creates a new group |
lp group moderator permission set essentials.mute true | Grants a permission node to a group |
lp group moderator permission set essentials.gamemode false | Explicitly denies a node, which beats an inherited grant |
lp group moderator parent add helper | Makes moderator inherit everything helper has |
lp user Notch parent add moderator | Puts a player in a group |
lp user Notch parent remove moderator | Takes them out of it |
lp group moderator meta setprefix 10 "&c[Mod] " | Sets the group’s chat prefix and its weight |
lp group moderator setweight 50 | Sets the group’s sorting weight |
lp user Notch info | Shows a player’s groups and permissions |
lp verbose on | Live-logs every permission check, then lp verbose off and lp verbose paste |
Tip:
lp verbose onfollowed by the failing command is the fastest way to find the exact node a command needs, it prints the node being checkedTip: Set a group’s weight when you use prefixes, the highest weight wins when a player is in more than one group
Building a Rank Ladder
A working setup usually needs four groups and takes about five minutes. The pattern is to give default the bare minimum, then stack each rank on the one below it.
lp creategroup helperthenlp creategroup moderatorthenlp creategroup adminlp group helper parent add defaultlp group moderator parent add helperlp group admin parent add moderator- Add only the new nodes at each level, for example mute and kick on helper, ban and unban on moderator
- Put people in with
lp user <name> parent add <group>
Because each rank inherits the one below, you never list the same node twice, and promoting someone is a single command.
Note: Everyone is in the
defaultgroup automatically, you never need to add them to itWarning: Be careful granting wildcard nodes like
*oressentials.*, a wildcard hands over every current and future command in that plugin, including ones added by a later update
Prefixes, Suffixes and Chat Colours
Prefixes are set as meta, not as permissions, and they take a weight so LuckPerms knows which one to show for a player in several groups.
lp group moderator meta setprefix 100 "&c[Mod] &f"
lp group helper meta setprefix 50 "&a[Helper] &f"
The colour codes here use the ampersand form. A prefix only appears in chat if something is actually rendering it, which is usually a chat plugin or Essentials. LuckPerms stores the prefix; it does not draw it. If your prefix is set correctly but nobody sees it, that is the missing piece.
Note: LuckPerms stores prefixes, it does not render chat. You need a chat plugin for them to appear
Tip: End a prefix with
&fso the player’s name is not left tinted by the prefix colour
The Web Editor
Typing node names is fine for a handful of changes and miserable for a big permission tree. Run lp editor and LuckPerms prints a one-time link to a browser editor where you can drag groups, tick permissions, and edit inheritance visually. When you are done, the editor gives you an apply command to paste back into the console.
- Run
lp editorfrom the console - Open the link it prints
- Make your changes in the browser
- Copy the apply command it gives you and run it back on the server
Warning: The editor link is one-time and grants anyone who opens it the ability to rewrite your permissions. Do not paste it into a public channel
Tip:
lp editoron its own loads everything; you can narrow it, for examplelp editor group.moderator, to keep a large setup manageable
Storing Permissions in a Database
By default LuckPerms stores everything in files inside /plugins/LuckPerms/. That is fine for one server. If you run several servers that should share ranks, point them at one database instead.
- Create a database from the Databases tab on your server in the panel and note the host, name, user, and password
- Open
/plugins/LuckPerms/config.ymlin the File Manager - Set
storage-methodtomysqland fill in the connection details - On the server that already has your data, run
lp migrate mysqlto copy it across - Restart, then point the other servers at the same database
Warning: Run the migration from the server that holds the real data, running it from an empty server writes an empty permission set over the top
Tip: Take a backup before migrating, so a mistake costs you a restore rather than your whole rank setup
Common Problems
| Symptom | Usual cause |
|---|---|
| A permission does nothing | The player is still op and bypassing checks. Deop them |
| A denied node still works | A wildcard elsewhere grants it. Set the specific node to false, an explicit deny wins |
| Prefix set but not shown | No chat plugin is rendering it |
| Changes revert after restart | Two servers share a storage folder, or the config edit was not saved |
| Nothing loads at all | The jar is in the wrong place or the server is not Bukkit-derivative |
Tip:
lp user <name> infoshows exactly which groups a player is in and where an inherited node came from, start every diagnosis there
Frequently Asked Questions
How do I install LuckPerms on my Minecraft server?
Open your server in the LoafHub panel, go to Plugin Manager, search for LuckPerms, install the build matching your Minecraft version, and restart. The panel places the jar in /plugins/ for you. LuckPerms requires a Bukkit-derivative server such as Paper, Spigot, Purpur, or Folia.
Why is my LuckPerms permission not working?
The most common reason is that the player is still a server operator, and op bypasses permission checks completely. Deop them and test again. The second most common is a wildcard node elsewhere granting what you tried to deny, in which case set the specific node explicitly to false.
How do I make a moderator rank?
Create the group with lp creategroup moderator, have it inherit your lower rank with lp group moderator parent add helper, add only the extra nodes that rank should gain, then assign a player with lp user <name> parent add moderator.
How do I import my LuckPerms data into MySQL?
Create a database from the Databases tab, set storage-method: mysql with the connection details in /plugins/LuckPerms/config.yml, then run lp migrate mysql from the server that already holds your permission data. Back up first, and never run the migration from an empty server.
What is the LuckPerms web editor?
Running lp editor prints a one-time link to a browser interface where you can edit groups, permissions and inheritance visually, then paste an apply command back into the console. Treat the link as a credential, anyone who opens it can rewrite your permissions.
Why is my LuckPerms prefix not showing in chat?
LuckPerms stores prefixes as metadata but does not render chat itself. You need a chat plugin or Essentials to display it. Also check the prefix weight, because for a player in several groups the highest weight is the one shown.