Players
Set up Minecraft server permissions with LuckPerms
Operator status is all or nothing: an op can do everything, including things you never meant to hand out. Permissions let you give each person only the commands they need. A helper can mute a spammer without being able to change the time or give themselves diamonds.
LuckPerms is the plugin almost every server uses for this. It works on Paper, Purpur and Spigot, and there are versions for Fabric and Velocity too.
In short
To set up permissions on a Minecraft server, install LuckPerms from the Plugins tab, create groups such as moderator and admin with lp creategroup, let each inherit from the one below with parent add, and give every group only the nodes it needs with permission set. Then put players in a group with lp user, their name, and parent add. Keep op for the owner, because op skips the permissions you set.
How Minecraft server permissions work
Every command in Minecraft and in plugins checks a permission node, a name like essentials.home or minecraft.command.gamemode. A player who has the node can use the command.
Instead of giving nodes to people one by one, you give them to groups, and put people in groups. Groups can inherit from each other, so an admin automatically has everything a moderator has.
Permission nodes for common Minecraft commands
Node names follow a pattern, so most of them can be guessed once you know where a command comes from:
| Command | Permission node | Comes from |
|---|---|---|
/gamemode | minecraft.command.gamemode | Minecraft itself |
/time and /weather | minecraft.command.time, minecraft.command.weather | Minecraft itself |
/home and /sethome | essentials.home, essentials.sethome | EssentialsX |
/tpa and /tpaccept | essentials.tpa, essentials.tpaccept | EssentialsX |
/fly | essentials.fly | EssentialsX |
/mute and /tempban | essentials.mute, essentials.tempban | EssentialsX |
| Looking up who broke a block | coreprotect.inspect | CoreProtect |
| Rolling back griefing | coreprotect.rollback | CoreProtect |
Commands of the game itself use minecraft.command. followed by the name of the command. Plugins put their own name in front and list their nodes on their plugin page. With EssentialsX installed, its own version of commands such as kick and ban takes over, and then the node starting with essentials. is the one that counts.
Install LuckPerms on your Minecraft server
- Open the Plugins tab, search the catalog for LuckPerms and install it.
- Restart the server.
- In the Console, type
lp info. If LuckPerms answers, it is running.
Commands typed in the console need no slash. In the game they do, and only players with permission for LuckPerms, or ops, can use them.
Build three LuckPerms groups
Every player is in the group default from the start. We add two more above it.
lp creategroup moderator
lp creategroup admin
lp group moderator parent add default
lp group admin parent add moderator
lp group moderator setweight 50
lp group admin setweight 100The parent add lines set up the inheritance: a moderator has everything a default player has, and an admin has everything a moderator has. The weight decides which group wins when two disagree, and which prefix shows when a player is in several groups.
Give the LuckPerms groups their permissions
Give each group only what it needs. Some typical choices, assuming EssentialsX is installed:
lp group default permission set essentials.home true
lp group default permission set essentials.sethome true
lp group default permission set essentials.spawn true
lp group moderator permission set essentials.mute true
lp group moderator permission set essentials.kick true
lp group moderator permission set essentials.tempban true
lp group admin permission set essentials.gamemode true
lp group admin permission set minecraft.command.time trueTo find the node for a command, check the plugin's page, or switch on lp verbose on in the console and run the command in game: LuckPerms prints every node it checks.
Avoid *, the node that gives everything. It includes commands you have never heard of, such as ones that stop the server.
Take a permission away: false, unset and inheritance
permission unsetremoves a node you set earlier, as if it was never there:lp group default permission unset essentials.home.permission setwithfalseblocks a node, even when the group would inherit it from a parent:lp group moderator permission set essentials.fly false.- Many plugins give some nodes to every player by default. To take one of those away from everyone, set it to
falsein the groupdefault.
If one group of a player says true and another says false, LuckPerms follows the group with the highest weight, which is why the weights you set earlier matter.
LuckPerms permissions per world or per server
A node can count in one place only. Add a context at the end of the command:
lp group default permission set essentials.fly true world=creative
lp group moderator permission set essentials.vanish true server=survivalThe first line gives everyone /fly, but only in the world called creative. The second only works on the server that calls itself survival, which you set with the server option in the LuckPerms config file. That one is for networks where several servers share one LuckPerms database.
Put people in groups on your Minecraft server
lp user Sam parent add moderator
lp user Alex parent set adminparent add puts Sam in moderator while keeping his other groups. parent set replaces all groups of Alex with admin only; since admin inherits the rest, that is the tidy choice for a single rank.
Temporary ranks and permissions in LuckPerms
For a VIP rank that lasts a month, or flying for one event, add a time to the command. LuckPerms removes it by itself when the time is up.
lp user Sam parent addtemp vip 30d
lp user Sam permission settemp essentials.fly true 2hCreate the group vip first, like the other groups. Times are a number with m for minutes, h for hours, d for days or w for weeks, such as 90m, 12h or 2w.
LuckPerms commands you will use most
| Command | What it does |
|---|---|
lp user Sam info | Shows the groups of Sam and the main details |
lp user Sam permission check essentials.fly | Tells whether Sam has that node, and with which value |
lp user Sam parent remove moderator | Takes Sam out of a group |
lp group moderator permission info | Lists the nodes of a group |
lp group moderator listmembers | Lists who is in a group |
lp listgroups | Lists all groups |
lp user Sam demote staff | Moves Sam one step down a track |
lp deletegroup vip | Removes a group |
Use the LuckPerms web editor
Typing nodes gets slow. Run lp editor and LuckPerms gives you a link to a web page with all groups and users. Change things there with checkboxes, click save, and the page gives you one command to paste back into the console to apply it.
Rank prefixes in Minecraft chat
lp group admin meta setprefix 100 "&c[Admin] "
lp group moderator meta setprefix 50 "&9[Mod] "LuckPerms stores the prefix, but it does not change the chat itself. A chat plugin shows it, for example EssentialsX Chat together with Vault. Install those and the prefixes appear in front of names.
Promote Minecraft players with a track
A track is a ladder of groups. With one, you can move people up and down with one command.
lp createtrack staff
lp track staff append default
lp track staff append moderator
lp track staff append admin
lp user Sam promote staffExample LuckPerms ranks for a survival server
A setup many SMP servers start from, with EssentialsX and CoreProtect installed:
| Group | Nodes | Who is in it |
|---|---|---|
| default | essentials.home, essentials.sethome, essentials.spawn, essentials.tpa, essentials.tpaccept, essentials.msg | Every player |
| helper | essentials.mute, essentials.kick, coreprotect.inspect | New staff, for chat and for looking up who broke what |
| moderator | essentials.tempban, essentials.ban, coreprotect.lookup, coreprotect.rollback | Staff you trust to undo griefing |
| admin | essentials.gamemode, essentials.fly, minecraft.command.time | One or two people |
Each group inherits from the one above it in the table, so a moderator also has everything a helper has. Create the helper group like the others, let it inherit from default, let moderator inherit from helper with lp group moderator parent add helper, and put it on the track with lp track staff insert helper 2.
Want a rank that keeps its items on death? Keep inventory and game rules shows how with one node.
LuckPerms on Fabric, Forge, NeoForge and Velocity
- Fabric, Forge and NeoForge: LuckPerms has its own version for each, with the same commands. It can only limit mods that ask for permissions; a mod that only looks at op levels still needs op.
- Velocity: the proxy of a server network runs its own LuckPerms for proxy commands. For ranks that are the same on every server, all copies of LuckPerms use one shared database such as MySQL or MariaDB, chosen with
storage-methodin the config.
On a single server none of this is needed: LuckPerms keeps its data in a database file in plugins/LuckPerms, which is part of every backup. Build a Minecraft server network explains the proxy itself.
LuckPerms not working: the usual causes
| Problem | Cause and fix |
|---|---|
| A player can use commands they should not have | They are op, which skips permissions, or a plugin gives the node to everyone by default. Deop them, or set the node to false in default. |
| A player cannot use a command they should have | The node is wrong, or it is false in a group with more weight. Check it with permission check as in the table above. |
| Prefixes do not show in chat | LuckPerms has no chat output of its own. Install Vault and a chat plugin such as EssentialsX Chat. |
| Changes in the web editor do nothing | The editor only applies changes once you paste the command it gives into the console. |
Questions from Minecraft server owners
Should I still make people op on my Minecraft server?
Only yourself and maybe one co-owner. Everyone else gets a group. Op bypasses all permissions, so it undoes the point of setting them up.
Why does a Minecraft player still not have access after I added the permission?
Check the exact node with lp verbose on, and check that it is not set to false in another group with a higher weight. Some plugins also need the player to log out and in again.
Does LuckPerms work on Bedrock players on a crossplay Minecraft server?
Yes. Bedrock players are normal players to the server. Use their name with the dot in front, for example lp user .Sam parent add moderator.
How do I give a rank for a limited time in LuckPerms?
Use parent addtemp with a duration, for example lp user Sam parent addtemp vip 30d. LuckPerms removes the rank by itself when the time is up.
How do I remove a permission in LuckPerms?
Use permission unset with the node, for example lp group default permission unset essentials.home. To block a node that a group inherits, set it to false instead.
Is LuckPerms free?
Yes. LuckPerms is free and open source, and you install it from the plugin catalog in the Plugins tab.
Where does LuckPerms store ranks and permissions?
By default in a database file in the plugins/LuckPerms folder, so every backup of the server includes it. A network of several servers can share one database instead.
Checked against LuckPerms on Paper for Minecraft Java 26.2, September 2026. Written by the Cheapest Minecraft Hosting team, first published , updated .