What is LuckPerms? Minecraft Permissions Plugin Explained
Complete overview of the LuckPerms Minecraft permissions plugin. What it does, how it works, key features, and why it is the industry standard for server management.
What is LuckPerms?
LuckPerms is the most popular permissions management plugin for Minecraft servers. It controls exactly what every player can and cannot do - which commands they can use, which worlds they can enter, and what special abilities they have. Created by Lucko, it replaces older plugins like PermissionsEx and GroupManager. LuckPerms supports Paper, Spigot, Purpur, Pufferfish, BungeeCord, Velocity, Fabric, Forge, and Sponge - making it the universal choice for all server types. It is completely free and open-source with no paid features.
Key Concepts: Groups, Permissions & Inheritance
Groups are collections of permissions assigned to players. A typical setup uses Default (basic commands), VIP (extra perks), Moderator (staff tools), and Admin (full access). Permissions are individual nodes granting specific abilities - essentials.fly gives /fly access, essentials.kick gives /kick access. Inheritance means groups inherit from parent groups: VIP inherits Default's permissions, Moderator inherits VIP's, Admin inherits Moderator's. You only assign each permission once to the lowest group that needs it. This hierarchical structure is cleaner and less error-prone than assigning permissions to every player individually.
Why LuckPerms vs the /op System
Minecraft's built-in /op command grants full server access - OPs can execute every command including destructive ones (/stop, /reload, /deop), bypass all protection plugins, and modify LuckPerms permissions. Never use /op on a public server. Use LuckPerms instead: grant exactly the permissions each staff member needs. A moderator needs /kick and /mute but not /op or /stop. LuckPerms lets you be precise about access control. For owners who need full access: use /lp user OwnerName permission set * (works within LuckPerms' framework) rather than /op (bypasses everything).
Web Editor & Essential Commands
The web editor is LuckPerms' standout feature. Run /lp editor to get a unique URL you open in your browser. The web interface shows all groups, permissions, players, and tracks in a visual drag-and-drop interface. Changes generate a command to paste back into console. Essential commands: /lp creategroup name, /lp group name permission set node true, /lp group child parent add parentGroup, /lp user name group set group, /lp user name info (see all permissions), /lp verbose on (real-time permission debugging), /lp sync (apply web editor changes), /lp export (backup permissions). The web editor is dramatically faster than typing individual commands.
Storage: H2 vs MySQL
H2 (default): local file-based database stored in /plugins/LuckPerms/. Zero configuration required - works immediately. Good for single-server setups. MySQL/PostgreSQL: stores permissions in a database server. Required for server networks (BungeeCord/Velocity) where multiple servers share permissions. When a player connects to any backend server, they have identical permissions. Switch via config.yml: change storage-method from h2 to mysql, add database credentials, restart. For networks: all servers point to the same MySQL database. The proxy server should also run LuckPerms for network-wide prefixes and chat formatting.
Frequently Asked Questions
Is LuckPerms free?
Yes, 100% free and open-source. Every feature - web editor, MySQL, contexts, tracks, prefixes, timed permissions - is free. There are no premium features. Development is supported by community donations but the plugin costs nothing.
How do I migrate from PermissionsEx to LuckPerms?
Install LuckPerms alongside your old plugin. Run /lp migration pex (or groupmanager, bpermissions, zpermissions). The command imports all groups, users, permissions, prefixes, and suffixes. Verify everything transferred correctly, then remove the old plugin and restart. Always test migration on a staging server first.
How do I sync permissions across a BungeeCord network?
Configure all backend servers and the proxy to use MySQL storage pointing to the same MySQL database. Edit config.yml on each server: set storage-method to mysql with identical database credentials. Use server contexts (server=lobby, server=survival) to have different permissions on different servers within the network.
Related Articles
Minecraft Server RAM Guide - How Much Do You Need?
RAM requirements for Minecraft servers by player count, version, and modpack. Stop overpaying - this guide tells you exactly what you need.
Read moreMinecraft Server Version Comparison - Which Should You Run?
Compare Minecraft server versions from 1.8 to 1.21. Features, performance, plugin support, and which version is best for different server types.
Read moreMinecraft Plugins vs Mods - What's the Difference?
Understand the difference between Minecraft plugins and mods. Which one you need depends on your server type, player base, and what you want to achieve.
Read moreRelated Articles
Still have questions?
Our support team is available 24/7 on Discord. Join our community for real-time help from engineers who run game servers.
