Minecraft server permissions are easiest to manage with LuckPerms: create a group with /lp creategroup, give it permission nodes with /lp group <group> permission set <node> true, then put players in it with /lp user <player> parent add <group>. Each player gets exactly the commands their rank needs, and nobody needs full OP.
This guide assumes LuckPerms is already on your Paper or Spigot server. If it isn’t, follow how to install LuckPerms first, including the console command that gives you luckperms.*. The examples use EssentialsX commands such as /home and /tpa, which you can add with how to install EssentialsX.
How Minecraft server permissions work
Every command and feature checks a permission node, a dotted text string. Vanilla /ban checks minecraft.command.ban; EssentialsX /home checks essentials.home. According to the LuckPerms usage guide, a node can be true (allowed), false (denied) or undefined, which usually behaves like false.
- Group: a bundle of nodes, such as “member” or “mod”. You give a player a group instead of twenty separate nodes.
- Parent / inheritance: a group can inherit another group. If
modinheritsdefault, mods get everything members have, plus their own nodes. - default: the group every player is in automatically. Whatever you give
default, everyone gets.
OP is the opposite approach: it gives a player almost everything at once. That is fine for the owner, and covered in how to OP someone, but for helpers and regular players, groups are safer.
Plan your groups first
A simple, common setup for a survival server looks like this. Write yours down before typing commands; it saves a lot of fixing later.
| Group | Inherits | Example nodes |
|---|---|---|
| default | — | essentials.home, essentials.sethome, essentials.spawn, essentials.tpa, essentials.tpaccept, essentials.msg |
| vip | default | essentials.back, essentials.sethome.multiple, essentials.sethome.multiple.vip |
| mod | vip | essentials.kick, essentials.mute, essentials.tempban, minecraft.command.ban |
| admin | mod | essentials.*, luckperms.* |
The node names come from the EssentialsX plugin file and the LuckPerms wiki. For multiple homes, EssentialsX needs both essentials.sethome.multiple and the rank node (.vip gives the 5 homes set under sethome-multiple in its config.yml).
How to set Minecraft server permissions with LuckPerms
- Open the console or join as admin. On TheGameHosting, use Console in the panel (no slash needed there) or type the commands in game with a
/once you haveluckperms.*. - Create the groups.
defaultalready exists, so create the rest:lp creategroup vip,lp creategroup mod,lp creategroup admin. - Set up inheritance. Make each rank inherit the one below:
lp group vip parent add default,lp group mod parent add vip,lp group admin parent add mod. - Give each group its nodes. One command per node, for example
lp group default permission set essentials.home true. The full list for this example is below. - Put players in groups.
lp user Steve parent add mod. To replace every group a player has with one, uselp user Steve parent set mod. - Test it. Run
lp user Steve permission check essentials.kick. LuckPerms tells you whether the node is true or false for that player and where it comes from.
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 default permission set essentials.tpa true
lp group default permission set essentials.tpaccept true
lp group default permission set essentials.msg true
lp group vip permission set essentials.back true
lp group vip permission set essentials.sethome.multiple true
lp group vip permission set essentials.sethome.multiple.vip true
lp group mod permission set essentials.kick true
lp group mod permission set essentials.mute true
lp group mod permission set essentials.tempban true
lp group mod permission set minecraft.command.ban true
lp group admin permission set essentials.* true
Heads-up: essentials.spawn only matters if the EssentialsX Spawn module is installed, and wildcards like essentials.* give powerful commands too. Keep them for people you fully trust.
Remove, deny and find permissions
- Remove a node:
lp group vip permission unset essentials.back. - Deny a node on purpose: set it to false, for example
lp user Steve permission set essentials.tpa false. A direct false on a player beats what their groups give. - Take a player out of a group:
lp user Steve parent remove mod. - See what a player has:
lp user Steve infolists their groups;lp user Steve permission infolists nodes set directly on them. - Find an unknown node: run
lp verbose on Steve, have Steve try the command, and watch which node is checked. Turn it off withlp verbose off. - Add a chat prefix:
lp group vip meta setprefix "&6[VIP] ". To show it in chat you need a chat plugin that reads it, such as EssentialsX Chat with Vault.
If commands feel slow to type, /lp editor opens the same data in a browser editor with autocomplete. Save there, then run the command it gives you.
Common mistakes
- Giving everything to default. Every player is in
default, so a moderation node there makes everyone a moderator. - Mixing OP and groups. OP players pass most checks anyway, so you can’t test a rank while opped. Test with a non-OP account or with
permission check. - Typos in nodes. LuckPerms accepts any text, even a wrong one. Use autocomplete in the editor or copy nodes from the plugin’s documentation.
- Forgetting moderation logs. Mods with
minecraft.command.bancan ban; make sure they know how bans work and how to undo one.
Manage permissions from anywhere with TheGameHosting
On TheGameHosting you install LuckPerms and EssentialsX from Plugins, run every lp command from the panel Console on your phone, and take a copy in Backups before you rework your ranks. Your staff can moderate in game with their group, and a co-admin can reach the panel through Users without your password. The server stays online 24/7 in Dallas or Amsterdam with DDoS protection, and slots are unlimited.
Start on the Minecraft server hosting page or compare plans on plans and pricing, from $1.90 USD/month. The code FULL2026 takes 15% off for life.
FAQ
How do I give a player permission to use a command?
Find the command’s node (for example essentials.home) and run lp user Name permission set essentials.home true. For several players, give the node to a group and add them with lp user Name parent add group.
What is the default group in LuckPerms?
It is the group default, and every player is in it automatically. Anything you set on it applies to everyone.
How do I check if a player has a permission?
Run lp user Name permission check node. It shows whether the node is true or false for that player and where the value comes from.
Can I give permissions without OP?
Yes, that is the point of LuckPerms. Players get only the nodes of their group, so helpers can kick or mute without the full power of OP.
Hosting for these games
Minecraft Java hostingPaper, Purpur, Fabric, Forge and more
Minecraft Bedrock hostingPhones, consoles and Windows
Written by TheGameHosting Team, the people who run our servers in Dallas and Amsterdam and answer your tickets.
All posts
TheGameHosting Team