# LuckPerms Error: Node Not Applied - Complete Fix Guide
LuckPerms nodes fail to apply when the permission node is misspelled, context is incorrect, or a higher-priority group denies the permission. Fix it by verifying node spelling with /lp user , confirming context syntax matches the server/world name, and checking group weight precedence. This guide shows complete permission debugging.
Understanding Permission Node Syntax
LuckPerms uses a hierarchical permission system where each command requires a specific node. A permission node is a dot-separated string like essentials.home or worldedit.region.set.
Common Node Failures:
- Typo in node name (
essential.homevsessentials.home) - Missing child nodes (granted
essentials.*but command needsessentials.sethome) - Context mismatch (node set for world "world" but player is in "world_nether")
- Negation overriding grants (group has
-essentials.flydenying flight) - Incorrect capitalization (nodes are case-sensitive in some plugins)
Step-by-Step Fix
Step 1: Verify Node is Actually Set
Check if the permission exists in the player's or group's permission list:
# Check player permissions
/lp user PlayerName permission info
# Check if specific node is set
/lp user PlayerName permission check essentials.home
# Expected output if node exists:
# PlayerName has permission essentials.home set to trueIf the check returns false or shows the node doesn't exist, it was never applied. Verify you typed the command correctly.
Step 2: Apply Permission with Correct Syntax
Set the permission using proper LuckPerms syntax:
# Grant permission to user
/lp user PlayerName permission set essentials.home true
# Grant permission to group
/lp group Member permission set essentials.home true
# Verify it was set
/lp user PlayerName permission check essentials.homeImportant: Some plugins require multiple nodes for a single feature.
Example: EssentialsX /home command requires TWO nodes:
essentials.home- Use the /home commandessentials.sethome- Set a home location
If you only grant essentials.home, players can teleport but cannot set homes.
Step 3: Check for Permission Negation
LuckPerms allows explicit denial using a minus sign. Denied permissions override grants.
# Check for negations
/lp user PlayerName permission info | grep "-"
# Example output showing denial:
# - essentials.fly (set to false)If a permission shows -node.name, it's explicitly denied. Remove the negation:
# Remove denied permission
/lp user PlayerName permission unset -essentials.fly
# Or set it to true to grant instead
/lp user PlayerName permission set essentials.fly trueStep 4: Verify Context Syntax
Contexts restrict permissions to specific servers or worlds. Incorrect context syntax causes nodes to not apply.
Context Syntax:
# World-specific permission
/lp user PlayerName permission set essentials.fly true world=world
# Server-specific permission (BungeeCord)
/lp user PlayerName permission set bungeecord.server.lobby true server=hub
# Check what contexts are applied
/lp user PlayerName permission infoCommon Context Mistakes:
❌ WRONG: world=World (capital W doesn't match folder name "world")
✅ CORRECT: world=world (matches actual world folder name)
❌ WRONG: server=Survival (doesn't match BungeeCord server name "survival")
✅ CORRECT: server=survival (lowercase, matches config)
Debug Context Issues:
# See what world player is currently in
/lp user PlayerName meta info
# Check server name (BungeeCord)
/lp debugThe context must exactly match the server/world name. Case-sensitive.
Step 5: Check Group Inheritance and Weights
If a player is in multiple groups, the highest-weight group's permissions take precedence.
# View player's groups
/lp user PlayerName parent info
# Check group weights
/lp listgroups
# Example output:
# default [weight: 0]
# vip [weight: 50]
# admin [weight: 100]How Weights Work:
- Higher weight = higher priority
- If
admin(weight 100) denies a permission, andvip(weight 50) grants it, the denial wins - If no weight is set, group has weight 0
Fix Weight Conflicts:
# Set group weight
/lp group admin setweight 100
# Ensure admin group has higher weight than other groupsStep 6: Reload Permissions
After making changes, force LuckPerms to reload:
# Reload all permissions from storage
/lp sync
# Or reload specific user (faster)
/lp user PlayerName clearPlayer may need to relog for permissions to apply immediately.
The MANAfuel Difference
The manual debugging above works, but requires understanding LuckPerms node hierarchy, context syntax, and weight precedence. On MANAfuel, Bob AI handles permission analysis.
You: "Bob, my VIP players can't use /fly even though I granted the permission."
Bob: "Analyzing PlayerName's permissions. Issue found: VIP group has essentials.fly granted (weight 50), but Admin group inherited by PlayerName has -essentials.fly denial (weight 100). Admin weight overrides VIP. I've removed the denial from Admin group. PlayerName can now fly."
Bob parses the entire permission tree, identifies conflicts, and recommends fixes. He understands that essentials.* doesn't always grant every Essentials command due to plugin-specific logic.
Frequently Asked Questions
* wildcard grants ALL permissions, including potentially dangerous ones. Some plugins explicitly check for specific nodes and ignore wildcards for security. Additionally, if any group has a negation (-node.name), it overrides the wildcard grant./lp verbose on then execute the command. LuckPerms logs which node was checked
3. Check the plugin's plugin.yml file for registered permissionsessentials.*grants ONE level deep (e.g.,essentials.home,essentials.spawn)essentials.**grants ALL levels deep (e.g.,essentials.item.spawn.stone)
(one level). Use * for comprehensive admin permissions.# Make Player2 inherit same groups as Player1
/lp user Player1 parent info
# Note the groups, then:
/lp user Player2 parent add <GroupName>/lp user Player permission set node.name true world=world/lp user Player permission set node.name true
2. Grant for each world: /lp user Player permission set node.name true world=world_nether# Create admin group if it doesn't exist
/lp creategroup admin
# Grant all permissions to admin group
/lp group admin permission set * true
# Add yourself to admin group
/lp user YourUsername parent add admin