What is LuckPerms?
LuckPerms is a permissions plugin (and mod) for Minecraft servers: it decides which player can use which command or feature, using groups instead of all-or-nothing OP. Plain Minecraft only knows operators: a player is either OP and can do everything, or isn't and can do almost nothing. With LuckPerms you create ranks such as default, vip, moderator and admin, give each one exactly the permissions it needs and put players into them.
Everything in LuckPerms is built from four things:
| Term | What it is | Example |
|---|---|---|
| Permission (node) | A text key that a plugin checks before it lets a player do something | essentials.fly, minecraft.command.kick |
| Group | A named set of permissions, like a rank | moderator |
| Parent | A group that a user or another group inherits from | admin inherits from moderator |
| Meta | Extra data, most often the chat prefix and suffix | &c[Admin] |
Every player is automatically in the group default, so anything you give to default applies to everyone. LuckPerms is free and open source, and it runs on Paper, Spigot, Purpur and Folia, on the Velocity proxy and as a mod on Fabric, Forge and NeoForge.
Which LuckPerms version do you need?
Plugin-based engines (Paper, Purpur, Folia, Velocity) use the LuckPerms plugin; modded engines (Fabric, Forge, NeoForge) use the LuckPerms mod for that loader. Both are the same LuckPerms with the same lp commands – only the file is different.
| Server engine | What to install | File name looks like | Main command |
|---|---|---|---|
| Paper, Purpur, Spigot, Folia | LuckPerms plugin | LuckPerms-Bukkit-5.5.x.jar |
/lp |
| Velocity (proxy) | LuckPerms plugin, Velocity build | LuckPerms-Velocity-5.5.x.jar |
/lpv |
| Fabric | LuckPerms mod, Fabric build | LuckPerms-Fabric-5.5.x.jar |
/lp |
| Forge / NeoForge | LuckPerms mod, Forge or NeoForge build | LuckPerms-Forge-…jar / LuckPerms-NeoForge-…jar |
/lp |
Vanilla Minecraft can't load plugins or mods, so LuckPerms needs one of the engines above. If you're not sure which engine you have or should pick, see Minecraft server software.
A note for modded servers: LuckPerms can only control what asks it. Mods that check permission nodes respond to LuckPerms; mods that only check the OP level keep working the old way.
How to install LuckPerms on a Spot.gg server
Open "Addons" in the server panel, go to "Available to install", search for LuckPerms and install the version marked "Compatible with your server". The panel only lists addon types your engine supports: plugins on Paper and Purpur, mods on Fabric, Forge and NeoForge, and only Velocity plugins on a Velocity proxy.
- In the server menu click "Addons", then the "Available to install" tile.
- Type
LuckPermsin "Search" and open the LuckPerms entry. - The list of versions shows your server's Minecraft version ("Your server: MC …"). Pick the file with the "Compatible with your server" badge – its name should match your engine, e.g.
LuckPerms-Bukkit-…on Paper orLuckPerms-Fabric-…on Fabric. - Click "Install" and confirm.
- If the server is running, the panel asks "The server needs to be restarted for this change to take effect. Restart now?" – click "Restart".
After the restart LuckPerms creates its folder: plugins/LuckPerms/ on plugin engines, config/luckperms/ on mod loaders. You'll find LuckPerms under "Installed" in "Addons", where you can later swap it for a newer version.
If "Addons" says "This engine does not support mods or plugins", your server runs Vanilla. To use LuckPerms you need to reinstall the server with Paper (or a mod loader) – the panel warns that reinstallation deletes the current world and settings.
How to give yourself full LuckPerms permissions
Right after installing, nobody has any LuckPerms permissions, so run your first commands from the server console, which always has full rights. On Spot.gg the console is the "Console" tab; type commands there without the leading /.
The cleanest start is an admin group with every permission:
lp creategroup admin
lp group admin permission set * true
lp user YourName parent add admin
The * wildcard means "everything", including all LuckPerms commands, so only give this group to people you fully trust. From now on you can also type the commands in game chat, with a slash: /lp user Steve info.
If LuckPerms replies that it can't find a user, let that player join the server once and try again.
LuckPerms commands: the ones you'll actually use
Almost every LuckPerms command follows the pattern lp user <player> … or lp group <group> …. These cover day-to-day work:
| Command | What it does |
|---|---|
lp creategroup vip |
Creates the group vip |
lp deletegroup vip |
Deletes the group |
lp listgroups |
Lists all groups |
lp group vip permission set essentials.fly true |
Gives the group a permission |
lp group vip permission unset essentials.fly |
Removes that permission from the group |
lp user Steve parent add vip |
Adds Steve to vip (he keeps his other groups) |
lp user Steve parent set vip |
Makes vip Steve's only group |
lp user Steve parent remove vip |
Takes Steve out of vip |
lp user Steve permission set worldedit.* true |
Gives one player a permission directly |
lp user Steve info |
Shows Steve's groups, prefix and details |
lp user Steve permission check essentials.fly |
Checks whether Steve has a permission |
lp editor |
Opens the web editor (see below) |
How to add a permission in LuckPerms
Use lp group <group> permission set <node> true for a whole rank, or lp user <player> permission set <node> true for one player. Setting false instead of true explicitly denies the permission, which wins over a true inherited from a parent group.
Which node to use depends on the plugin: every plugin lists its permission nodes in its documentation (EssentialsX, for example, uses nodes like essentials.home or essentials.tpa). On Paper, vanilla commands have nodes too, e.g. minecraft.command.kick or minecraft.command.gamemode.
Two handy variations:
- Temporary permission or rank:
lp user Steve parent addtemp vip 30dgives Steve thevipgroup for 30 days;permission settempworks the same for single permissions. - Only in one world: add a context at the end, e.g.
lp group vip permission set essentials.fly true world=world_nether.
How to create a group and build ranks
Create each rank with lp creategroup, then let higher ranks inherit lower ones with parent add, so you only add new permissions at each step. A typical setup:
lp creategroup moderator
lp group moderator permission set minecraft.command.kick true
lp group moderator permission set minecraft.command.ban true
lp group admin parent add moderator
lp user Alex parent add moderator
Now moderator can kick and ban, and admin gets everything moderator has (plus its own *). The group default is the base: give it the commands every player should have, such as /home or /spawn.
If you want /lp user Alex promote staff to move players up rank by rank, create a track: lp createtrack staff, then lp track staff append default, lp track staff append moderator, lp track staff append admin.
How to use the LuckPerms web editor
Type lp editor in the console or in game; LuckPerms prints a link to a browser editor where you can manage all groups, players and permissions with clicks instead of commands.
- Run
lp editor. LuckPerms uploads the current setup and replies with a link toluckperms.net/editor/…. - Open the link. On the left you'll see groups and users, on the right the permissions, parents and meta of the selected one.
- Add or remove permissions; while you type a node, the editor suggests nodes it knows from your server's plugins.
- Click Save. When the editor is connected to your server, changes are applied right away. Otherwise the editor shows a command such as
/lp applyedits <code>– copy it and run it in the console.
The editor is the easiest way to see your whole setup at once and to find a typo in a node. The link is temporary, so run lp editor again next time instead of reusing an old one.
How to set a prefix with LuckPerms
Prefixes are meta: add one with lp group <group> meta addprefix <priority> "<prefix>"; the prefix with the highest priority wins when a player is in several groups.
lp group admin meta addprefix 100 "&c[Admin] "
lp group moderator meta addprefix 50 "&9[Mod] "
lp group vip meta addprefix 10 "&6[VIP] "
&c, &9 and &6 are Minecraft colour codes (red, blue, gold); leave a space at the end so the prefix doesn't stick to the name. Remove a prefix with lp group vip meta removeprefix 10, and add a suffix the same way with addsuffix.
LuckPerms only stores the prefix – it doesn't change the chat by itself. To see it in chat you need a chat plugin that reads it. On Paper and Purpur a common choice is EssentialsX Chat, part of EssentialsX, which reads prefixes through Vault. Other plugins can show the prefix through PlaceholderAPI placeholders, for example on the scoreboard or tab list. On modded servers use a chat mod that supports LuckPerms prefixes.
Where does LuckPerms save its data?
By default LuckPerms saves everything in a local H2 database file inside its own folder, so it works with no setup at all. That's fine for one server. Settings, including storage-method, are in plugins/LuckPerms/config.yml (plugin) or config/luckperms/luckperms.conf (mod).
On Spot.gg you can open these files in the "Files" tab and edit them in the browser, or connect with an SFTP client – the details are under "SFTP access" in "Files".
Using the server's MySQL/MariaDB database
Spot.gg servers also have their own MariaDB database, which LuckPerms can use instead of H2. Open the "Database" tab and click "Access details": the window lists the host, port, database name, login and password to enter in the plugin configuration. In config.yml set:
storage-method: mariadb
data:
address: <host>:<port>
database: <database name>
username: <login>
password: <password>
Restart the server and LuckPerms creates its tables, which you'll then see in the "Database" tab. To move existing groups from H2, run lp export backup before switching and lp import backup after. If you ever reset the password in "Database", update it in LuckPerms' config too – the old one stops working immediately.
The database is included in backups together with the server files. It is reachable only from its own server, so it can't be shared between a Velocity proxy and separate backend servers.
Common LuckPerms problems
Most "LuckPerms doesn't work" cases come down to a wrong node, a player in the wrong group or a missing chat plugin.
- A player still can't use a command. Run
lp user <player> permission check <node>to see whether they have it and where it comes from. To see which node a plugin actually checks, runlp verbose on, let the player try the command, thenlp verbose off. - The prefix doesn't show in chat. Check
lp user <player> info. If the prefix is listed there, the chat plugin is the missing part (see above). - Changes in a file don't apply. Don't edit LuckPerms data by hand; use commands or the editor. After editing
config.yml, restart the server. - Permissions vanished after switching online mode. LuckPerms stores players by UUID, and offline mode gives players different UUIDs than Microsoft accounts. When you change the setting under "Configuration", the panel converts Minecraft's own data (inventory, OP, whitelist, bans) but not plugin data like LuckPerms – re-add the affected players. More in Minecraft offline mode server.
Paid Minecraft servers on Spot.gg start from $3.90 per month, and a new account can try a server free for 24 hours first.
FAQ
Is LuckPerms free?
Yes. LuckPerms is free and open source. On Spot.gg you install it from the "Addons" tab at no extra cost.
What is the main LuckPerms command?
/lp (also /luckperms) on Paper, Purpur, Fabric, Forge and NeoForge, and /lpv on a Velocity proxy. In the server console type it without the slash, e.g. lp editor.
How do I add a player to a group in LuckPerms?
Run lp user <player> parent add <group>. Use parent set instead if the group should replace all the player's other groups.
How do I create a group in LuckPerms?
Run lp creategroup <name>, then give it permissions with lp group <name> permission set <node> true.
Does LuckPerms work on Fabric and Forge?
Yes. LuckPerms has mod versions for Fabric, Forge and NeoForge with the same commands, but only mods that check permission nodes are controlled by it.
Why doesn't my LuckPerms prefix show in chat?
LuckPerms stores the prefix but doesn't format chat. Install a chat plugin that reads it, such as EssentialsX Chat with Vault on Paper.
Do I still need OP with LuckPerms?
No. Give yourself an admin group with the * permission from the console and keep OP for emergencies only.