How to Set Up Permissions on Your Minecraft Server (LuckPerms Guide)
Guide

How to Set Up Permissions on Your Minecraft Server (LuckPerms Guide)

Control what players can do on your Minecraft server with LuckPerms — create groups, assign permissions, set up ranks, and manage access without touching config files.

Swelis TeamApril 17, 202610 min read

Your friend asks you to help manage the server while you're away. You run /op FriendName, and now they can ban anyone, delete the world, change every setting. That's the problem with operator status: it's all or nothing.

For a solo test world, /op is fine. For any server where multiple people share responsibilities — or where you want builders who can fly but can't kick players — you need a permission system that offers actual control. LuckPerms is the standard solution. It's free, actively maintained, works on Paper, Purpur, Fabric, Forge, and BungeeCord/Velocity, and has one feature that changes everything: a visual web editor.

This guide starts with the web editor because it's what most admins don't know exists. You can create groups, drag permissions around, and configure inheritance without memorizing a single command. Once you're comfortable, you'll pick up the commands naturally — but you don't need them to get started.


Installing LuckPerms

LuckPerms is a single JAR file. Download the correct version for your server software from luckperms.net and drop it in your plugins/ folder (or mods/ for Fabric/Forge).

If you're hosting on Swelis, open your server's control panel, go to the file manager, and upload the JAR directly — no FTP client needed. Restart the server, and LuckPerms generates its config files automatically.

On first boot, LuckPerms creates a default group that every new player inherits. This group starts empty, meaning new players have no special permissions beyond what the server and your other plugins grant by default. You'll customize this group shortly.

Choosing a storage backend

LuckPerms stores permission data in one of several backends. The default is H2 (a file-based database in plugins/LuckPerms/), which works fine for small servers. For networks or servers with many players, you can switch to MySQL, MariaDB, PostgreSQL, or MongoDB by editing config.yml.

For a single server under 50 players, H2 is sufficient. Don't overcomplicate storage until you have a reason.


The Web Editor

Open your server console and run:

/lp editor

This generates a single-use link. Click it, and you're in the LuckPerms web editor — a full GUI for managing groups, users, and permissions. No plugins, no mods, just your browser.

The web editor has three main views:

ViewWhat it shows
GroupsAll permission groups (default, admin, moderator, etc.)
UsersIndividual players who have direct permission assignments
TracksPromotion/demotion ladders (e.g., member → builder → moderator → admin)

When you make changes in the editor, they don't apply immediately. You click "Save" to generate a command, then paste that command into your server console. This two-step process is intentional — it prevents accidental changes and lets you review everything before committing.

The web editor understands inheritance, contexts, and expiry. You can assign a permission that only applies in a specific world, or grant a rank that expires in 7 days. Everything you can do with commands, you can do here — visually.


Creating Your First Groups

Most servers need three to five groups. Here's a common structure:

GroupPurposeInherits from
defaultAll new players
memberVerified players (passed application, linked Discord, etc.)default
builderTrusted players with creative/fly accessmember
moderatorStaff who can kick, mute, and manage playersmember
adminFull server controlmoderator

Inheritance means a group automatically gets all permissions from its parent. An admin inherits moderator permissions, which inherits member permissions, which inherits default permissions. You only need to add permissions at the level where they should first appear.

Setting up groups in the web editor

  1. Run /lp editor and open the link.
  2. Click "Groups" in the sidebar.
  3. Click "Create Group" and name it member. Set its parent to default.
  4. Repeat for builder (parent: member), moderator (parent: member), and admin (parent: moderator).
  5. Click "Save" and paste the generated command into your console.

You now have an inheritance chain. Time to add actual permissions.


Common Permission Setups

Permissions are strings like essentials.fly or worldedit.wand. Each plugin defines its own permissions — check the plugin's documentation for the full list. Here's how to assign them to groups.

Default group (everyone)

Keep this minimal. Good candidates:

  • essentials.help — view help
  • essentials.spawn — teleport to spawn
  • essentials.tpa — request teleport to another player
  • coreprotect.inspect — check who placed/broke a block (useful for reporting grief)

Avoid giving defaults access to /gamemode, /give, or teleport-anywhere commands.

Member group

If you require players to apply or verify before unlocking features:

  • essentials.sethome — set a home location
  • essentials.home — teleport to home
  • essentials.kit.starter — claim a starter kit
  • griefprevention.claims — create land claims (if using GriefPrevention)

Builder group

Builders need tools without full staff power:

  • essentials.fly — flight in survival
  • essentials.speed — adjust fly/walk speed
  • worldedit.wand — the //wand tool
  • worldedit.* — all WorldEdit commands (be careful — this is powerful)

If you want builders to have WorldEdit but not //regen or //chunk, you can grant worldedit.* and then explicitly deny specific nodes like worldedit.regen.

Moderator group

Moderators handle player issues:

  • essentials.kick — remove players
  • essentials.mute — silence players
  • essentials.ban — ban players (or use your server's ban plugin)
  • essentials.vanish — go invisible
  • essentials.invsee — check player inventories
  • coreprotect.rollback — undo grief

Admin group

Admins get everything. The cleanest approach:

  • * — wildcard, grants all permissions

If you want admins to have most permissions but not, say, luckperms.* (to prevent permission-granting loops), grant * and deny luckperms.*.

Adding permissions in the web editor

  1. Run /lp editor and open the link.
  2. Click the group you want to edit.
  3. Click "Add Permission."
  4. Type the permission node (e.g., essentials.fly) and click "Add."
  5. Repeat for each permission.
  6. Click "Save" and paste the command into your console.

You can also use the search box to find permissions. If a plugin has registered its permissions with LuckPerms (most do), they'll appear in autocomplete.


Assigning Players to Groups

Players join the default group automatically. To promote someone:

Via command

/lp user PlayerName parent set groupname

Example: /lp user Alex parent set moderator

This removes Alex from their current primary group and sets them to moderator. Since moderator inherits from member which inherits from default, Alex keeps all those permissions.

Via the web editor

  1. Run /lp editor.
  2. Click "Users" in the sidebar.
  3. Search for the player's name and click it.
  4. Under "Parent Groups," click "Add" and select the group.
  5. Save and run the command.

Checking a player's permissions

To see what permissions a player actually has (after inheritance and contexts):

/lp user PlayerName permission check permissionnode

To see a full permission tree:

/lp user PlayerName permission info

Or, more usefully, run /lp editor while targeting a specific user:

/lp user PlayerName editor

This opens the web editor for that player's specific data.


Permission Contexts

LuckPerms supports contexts — conditions under which a permission applies. Common contexts:

ContextExampleEffect
worldworld=world_netherPermission only applies in the Nether
serverserver=lobbyPermission only applies on the lobby server (for networks)
gamemodegamemode=creativePermission only applies in creative mode

Per-world permissions

If you run a server with a creative world and a survival world, you might want fly access only in creative. In the web editor:

  1. Click the permission node.
  2. Click "Add Context."
  3. Set world to your creative world's folder name (e.g., creative_world).
  4. Save.

Now essentials.fly only works in that world.

Temporary permissions and ranks

Need to grant a rank for one week? In the web editor, set an expiry time when adding the permission or group. Or via command:

/lp user PlayerName parent addtemp vip 7d

This adds PlayerName to the vip group for 7 days. After that, they're automatically removed.

Temporary permissions work the same way:

/lp user PlayerName permission settemp essentials.fly true 1h

One hour of flight.


Troubleshooting

Permissions not working? Check these common issues.

"I gave them the permission but nothing happened"

  1. Typo in the permission node. Permission strings are case-sensitive and plugin-specific. Check the plugin's documentation.
  2. The plugin isn't checking permissions. Some plugins have their own config-based permission systems that override LuckPerms. Consult the plugin's docs.
  3. Caching delay. Some plugins cache permissions on join. Have the player relog, or use /lp networksync to force propagation across a network.

"Inheritance isn't working"

Run /lp group groupname info and check the "Parents" section. If the inheritance isn't set, add it:

/lp group builder parent add member

"A permission is denied even though I granted it"

Check for explicit denials. In LuckPerms, you can set a permission to true (grant) or false (deny). A false at a higher priority wins. Run:

/lp user PlayerName permission check permissionnode

This shows the source of the permission value and whether it's being overridden.

"I'm the owner but I have no permissions"

If you're op and LuckPerms still blocks you, check config.yml for apply-wildcards and apply-sponge-implicit-wildcards. Also verify you're in a group with the necessary permissions — being op doesn't automatically bypass LuckPerms unless you configure it to.

Plugin conflicts

Some older plugins (particularly those designed for PermissionsEx or GroupManager) may not query LuckPerms correctly. Check if the plugin has a LuckPerms compatibility mode or consider switching to a maintained alternative from the Swelis plugin list.


Quick Reference

TaskCommand
Open web editor/lp editor
Create a group/lp creategroup groupname
Set group inheritance/lp group child parent add parent
Grant permission to group/lp group groupname permission set node true
Deny permission to group/lp group groupname permission set node false
Add player to group/lp user player parent set groupname
Add player to secondary group/lp user player parent add groupname
Grant temporary permission/lp user player permission settemp node true duration
Check player's permissions/lp user player permission info
Check specific permission/lp user player permission check node
View group info/lp group groupname info
Reload LuckPerms/lp reloadconfig

Duration format: 1d (days), 12h (hours), 30m (minutes), 60s (seconds). Combine them: 1d12h.


Ready to Start Your Adventure?

Join lots of users already enjoying lag-free hosting.

Launch Your Server
Swelis Hosting

Premium Minecraft server hosting starting at €1.50/GB RAM. Experience lightning-fast performance, 24/7 support, and 99.9% uptime guarantee.

© 2026 Swelis International e.U. All rights reserved.