Minecraft Server Permission Setup: A Complete Guide to LuckPerms, Ranks, and Permission Nodes
# Minecraft Server Permission Setup: A Complete Guide to LuckPerms, Ranks, and Permission Nodes
Setting up permissions is one of the most fundamental — and most commonly botched — parts of running a Minecraft server. A misconfigured permission system leads to players accessing commands they shouldn't, staff unable to do their jobs, and hours wasted debugging obscure permission nodes. This guide walks you through setting up LuckPerms correctly from scratch, structuring your ranks intelligently, and avoiding the most common mistakes server admins make.
---
Why LuckPerms Is the Only Permission Plugin You Should Use
LuckPerms has effectively replaced older plugins like PEX (PermissionsEx) and GroupManager for good reason. It supports UUID-based permissions (so name changes don't break things), offers a clean web editor at [luckperms.net/editor](https://luckperms.net/editor), works across Bukkit, Spigot, Paper, Purpur, Folia, Velocity, and BungeeCord, and stores data in MySQL, MariaDB, PostgreSQL, SQLite, or H2.
For a networked server or one with multiple worlds, LuckPerms is practically irreplaceable.
---
Installation and Initial Setup
Download LuckPerms from [luckperms.net](https://luckperms.net) and drop it into your /plugins folder. Start the server once to generate config files, then stop it before making major changes.
Open plugins/LuckPerms/config.yml and configure your storage backend:
storage-method: h2
For a single server, h2 (the default) is fine. For a BungeeCord/Velocity network with multiple backend servers sharing permissions, switch to mysql:
storage-method: mysql
data:
address: localhost:3306
database: luckperms
username: lp_user
password: your_password
This ensures all backend servers read from the same permission database — essential for rank consistency across your network.
---
Designing Your Rank Structure
Before touching a single command, plan your hierarchy on paper. A typical server might look like this:
Default → VIP → MVP → Helper → Moderator → Admin → Owner
LuckPerms uses group inheritance, meaning higher groups inherit all permissions from lower groups. This keeps your config DRY and reduces errors.
Creating Groups
/lp creategroup default
/lp creategroup vip
/lp creategroup mvp
/lp creategroup helper
/lp creategroup moderator
/lp creategroup admin
Setting Up Inheritance
/lp group vip parent add default
/lp group mvp parent add vip
/lp group helper parent add default
/lp group moderator parent add helper
/lp group admin parent add moderator
Note that donor ranks (VIP, MVP) and staff ranks (Helper, Moderator) typically have separate inheritance chains. A Moderator inheriting from MVP means every moderator gets donor perks, which may not be what you want.
Setting Group Weights
Weights determine which group's prefix/suffix displays when a player is in multiple groups:
/lp group default setweight 0
/lp group vip setweight 10
/lp group mvp setweight 20
/lp group moderator setweight 30
/lp group admin setweight 40
Higher weight = higher priority for prefix display.
---
Assigning Permission Nodes
Permission nodes follow the format plugin.category.action, for example:
essentials.home— allows setting and using /homeessentials.kick— allows using /kickworldedit.region.set— allows using //set in WorldEdit
Adding Permissions to a Group
/lp group moderator permission set essentials.kick true
/lp group moderator permission set essentials.mute true
/lp group moderator permission set essentials.ban true
Negating Permissions
You can explicitly deny a permission even if a parent group grants it:
/lp group vip permission set essentials.fly false
This is useful for restricting specific nodes without rebuilding your entire hierarchy.
Wildcard Permissions
Wildcards like essentials.* grant all permissions under that namespace. Use them carefully — granting essentials.* to moderators gives them /essentials reload, which reloads the plugin config. Always prefer explicit nodes for staff groups.
---
World and Context-Based Permissions
LuckPerms supports contexts, allowing permissions to apply only in specific worlds or server instances.
/lp group vip permission set essentials.fly true world=survival
This grants fly only in the survival world, not in skyblock or creative. This is incredibly powerful for multi-world setups and prevents permission bleed between game modes.
---
Setting Up Prefixes and Suffixes with LuckPerms
LuckPerms handles prefix/suffix storage, but you need a chat formatting plugin to display them. The most common choices are:
- EssentialsX Chat (simple, works for most servers)
- ChatControl Red (advanced formatting, highly configurable)
- VentureChat (channel-based chat systems)
Set a prefix for a group:
/lp group vip meta setprefix "&6[VIP] "
/lp group moderator meta setprefix "&c[MOD] "
For EssentialsX Chat, make sure config.yml has:
format: '{PREFIX}{DISPLAYNAME}{SUFFIX}&r: {MESSAGE}'
---
The LuckPerms Web Editor: Your Best Friend
For bulk edits, skip the commands and use the built-in web editor:
/lp editor
This generates a link to the LuckPerms web editor where you can:
- Drag and drop permissions between groups
- Edit inheritance visually
- Search for specific nodes
- Apply changes in one click
It's dramatically faster than running dozens of commands and dramatically reduces typos.
---
Common Mistakes to Avoid
1. Giving * to default players
Granting all permissions to new players is a catastrophic mistake. Always start with an empty default group and add only what you explicitly want.
2. Not setting a default group
Every player should automatically be in the default group. LuckPerms does this by default, but verify it hasn't been accidentally changed:
/lp group default info
3. Conflicting permission plugins
Running GroupManager or PEX alongside LuckPerms causes conflicts. Remove all other permission plugins before installing LuckPerms.
4. Forgetting to sync on networks
On BungeeCord/Velocity networks, always use MySQL storage and run /lp networksync after making permission changes so all backend servers reload from the database.
5. Ignoring OP status
By default, players with OP bypass all LuckPerms checks. For a permission-managed server, remove OP from all players (including admins) and grant permissions explicitly through LuckPerms instead.
---
Monitoring Permission-Related Performance
LuckPerms is highly optimized and rarely causes noticeable performance overhead. However, on servers with thousands of players or complex permission trees, permission lookups can accumulate. If you notice unusual server behavior after permission changes, tools like PulseNode can help you correlate performance changes with administrative events — making it easier to spot if a misconfigured permission node is triggering expensive plugin hooks.
---
Quick Reference: Most-Used LuckPerms Commands
| Command | Description |
|---|---|
| /lp user | Assign player to a group |
| /lp group | Grant permission to group |
| /lp group | Add group inheritance |
| /lp group | Set group prefix |
| /lp editor | Open web editor |
| /lp networksync | Sync across network |
| /lp user | View player's permissions |
---
Final Thoughts
A clean permission system is the backbone of a well-run Minecraft server. Take the time to design your hierarchy before creating any groups, use the LuckPerms web editor for bulk edits, and never hand out wildcard permissions carelessly. Once your permission structure is solid, everything else — from moderation to donor perks — becomes much easier to manage.
If you want to keep tabs on your server's overall health as you make configuration changes, [PulseNode](https://pulsenode.tech) gives you real-time performance monitoring so you can catch issues before your players do.