LuckPerms
uxmEssentials never hard-depends on a permission plugin. Every permission check
goes through an internal Permissions port that sits on top of Bukkit's ordinary
hasPermission, so the sensible defaults work on a bare server. When LuckPerms
is installed, one extra capability unlocks: numbered quota nodes can also be read
from LuckPerms meta.
What LuckPerms Adds¶
Most permissions are plain on/off nodes — those resolve through Bukkit exactly the
same whether or not LuckPerms is present. Boolean has() checks always delegate
to Bukkit.
The difference is the value-bearing quota nodes — the ones with a number baked into them:
| Node | Meaning |
|---|---|
uxmessentials.home.limit.<n> |
How many homes a player may set |
uxmessentials.vault.amount.<n> / .vault.size.<rows> |
Vault count / rows per vault |
uxmessentials.pwarp.limit.<n> |
Player-warp quota |
uxmessentials.tp.cooldown.<seconds> / .tp.warmup.<seconds> |
Teleport cooldown / warmup tier |
uxmessentials.kit.cooldown.<seconds> |
Kit cooldown tier |
Without LuckPerms these resolve from Bukkit numbered permission nodes (the
highest matching <n> wins). With LuckPerms present, uxmEssentials can also read
the same quota from a LuckPerms meta value — which many admins find tidier than
juggling dozens of numbered nodes.
Granting a Quota¶
The numbered-node approach works everywhere, LuckPerms or not:
With LuckPerms, the equivalent quota can be supplied as a meta value instead of a numbered node:
Confirm the exact meta key in-game
uxmEssentials reads quotas from LuckPerms meta, but the precise meta key names
are resolved at runtime and are not fixed in this guide. Grant the value,
then verify with /uxmess doctor or by checking the affected limit in-game. If
in doubt, the numbered permission node above is the guaranteed path.
When LuckPerms is absent, the meta source is simply empty and quotas fall back to numbered nodes with no change in behavior.
Prefixes, Suffixes and Groups¶
Two extra conveniences when LuckPerms is around:
- Prefixes / suffixes in the HUD. LuckPerms publishes
%luckperms_prefix%and%luckperms_suffix%through PlaceholderAPI. Because uxmEssentials resolves PAPI tokens inside scoreboards, the tablist and nametags, you can display a player's rank prefix anywhere in the HUD:
This flows through the PlaceholderAPI integration, not a direct LuckPerms hook.
- Group lists in menus. The menu engine can source a
luckperms-groupslist and gate items with ahas-group:requirement, so a GUI can show or hide options per rank.
When It's Absent¶
| Situation | Behavior |
|---|---|
| No permission plugin | Bukkit defaults apply — self-service verbs work, staff verbs need op. |
| No LuckPerms specifically | Quotas resolve from numbered permission nodes; the meta source is none(). |
has-group: used without LuckPerms |
The condition fails closed (item hidden / denied). |
Setup Checklist¶
- Install LuckPerms (optional — the plugin runs fine without it).
- Grant quotas either as numbered nodes (
uxmessentials.home.limit.<n>) or as LuckPerms meta. - (Optional) Install PlaceholderAPI to surface
%luckperms_prefix%in the HUD. - Verify limits with
/uxmess doctor.
Next Steps¶
- 🧭 Core Concepts — Permissions — the tiered / quota model
- 📊 Scoreboard, Tablist & Nametags — showing rank prefixes
- 🔤 PlaceholderAPI — how prefix placeholders reach the HUD