Permissions

Fine-grained control over skills and commands

Overview

Permission checks are disabled by default and controlled by two independent flags.

Skill permission checks (XP-gain gating, level caps, admin access when OP is unavailable) are toggled with a slash command:

/mmoconfig permissions --args=true

Command permission checks (the Command Permissions table below) are a separate flag, toggled only from the admin UI (/mmoadmin → General Settings). There is no slash command for it. The Command Permissions table only takes effect once this second toggle is on.

Every permission node documented on this page also matches under an alternate ziggfreed. prefix (e.g. ziggfreed.mmoskilltree.skill.mining works the same as mmoskilltree.skill.mining).

LuckPerms Setup

If you're using LuckPerms, admin access depends on whether permissions are enabled:

When "Enable Permissions" is OFF (default)

The mod checks for OP status. With LuckPerms, you need the wildcard permission to act as OP:

/lp user <player> permission set * true

Without this, admin commands like /mmoadmin will be blocked even for server operators.

When "Enable Permissions" is ON

The mod checks for the mmoskilltree.admin permission instead:

/lp user <player> permission set mmoskilltree.admin true

This is more granular - you can grant admin access without full OP privileges.

Skill Permissions

Control which players can gain XP in specific skills:

PermissionDescription
mmoskilltree.skill.*Gain XP in all skills (wildcard)
mmoskilltree.skill.miningGain XP in Mining
mmoskilltree.skill.woodcuttingGain XP in Woodcutting
mmoskilltree.skill.excavationGain XP in Excavation
mmoskilltree.skill.harvestingGain XP in Harvesting
mmoskilltree.skill.fishingGain XP in Fishing
mmoskilltree.skill.swordsGain XP in Swords
mmoskilltree.skill.daggersGain XP in Daggers
mmoskilltree.skill.polearmsGain XP in Polearms
mmoskilltree.skill.stavesGain XP in Staves
mmoskilltree.skill.axesGain XP in Axes
mmoskilltree.skill.bluntGain XP in Blunt
mmoskilltree.skill.archeryGain XP in Archery
mmoskilltree.skill.magicGain XP in Magic
mmoskilltree.skill.artilleryGain XP in Artillery
mmoskilltree.skill.unarmedGain XP in Unarmed
mmoskilltree.skill.defenseGain XP in Defense
mmoskilltree.skill.acrobaticsGain XP in Acrobatics
mmoskilltree.skill.craftingGain XP in Crafting
mmoskilltree.skill.enchantingGain XP in Enchanting
mmoskilltree.skill.buildingGain XP in Building
mmoskilltree.skill.tamingGain XP in Taming (optional)

Feature Bypass Permissions

Three nodes let an individual player use a feature even while its global toggle is off. Each is checked independently and is not implied by mmoskilltree.admin.

PermissionDescription
mmoskilltree.bypass.questsUse quests while the global Quests feature toggle is off
mmoskilltree.bypass.achievementsUse achievements while the global Achievements feature toggle is off
mmoskilltree.bypass.abilitiesUse active abilities while the global Abilities feature toggle is off

Level Cap Permissions

Restrict an individual player's max level per skill (or globally) by granting a permission node. Useful for tiered access (free vs VIP, trial accounts capped at low levels).

Restrict only: Permissions can only lower the cap configured in custom-skills.json - they never raise it. An over-permissive node (e.g., mmoskilltree.levelcap.mining.999 when the configured cap is 200) is clamped down to the configured cap.

This feature is always on - it is not gated by the “Enable Permissions” toggle. Server owners simply don't grant the node if they don't want to use it.

Permission Format

NodeEffect
mmoskilltree.levelcap.<skillId>.<level>Cap the named skill at <level> for this player. <skillId> is lowercase
mmoskilltree.levelcap.all.<level>Cap every skill at <level> for this player

Precedence

Per-skill nodes override the all wildcard. Granting both mmoskilltree.levelcap.all.50 and mmoskilltree.levelcap.mining.100 lets the player reach Mining level 100 while every other skill is capped at 50.

Examples

# Mining capped at 50; other skills unaffected
mmoskilltree.levelcap.mining.50

# All skills capped at 20
mmoskilltree.levelcap.all.20

# All skills capped at 20 EXCEPT swords (capped at 60)
mmoskilltree.levelcap.all.20
mmoskilltree.levelcap.swords.60

Cache & /mmoconfig resetpermcache

Lookups are cached per player to keep the XP path fast. The cache is cleared automatically when a player disconnects. After granting or revoking nodes via your permissions plugin while the player is online, run:

/mmoconfig resetpermcache

...or have the affected player reconnect for changes to take effect.

At-Cap Behavior

When a player hits their permission cap, XP gain silently stops - the same behavior as hitting the configured server-wide max level. No chat spam, no notifications.

Command Permissions

Grant the node, not the text you type

Every command generates exactly one node, mmoskilltree.command.<name>, and <name> is the command's own registered name, not a player-facing alias. /xp and /skills both open /mmoxp, so the node for all three is mmoskilltree.command.mmoxp. Grant from the table below.

mmoskilltree.command.* grants every player command at once. As with every node on this page, each also matches under the alternate ziggfreed. prefix.

Command (aliases)Permission node
/mmoxp (/xp, /skills)mmoskilltree.command.mmoxp
/skilltree (/st, /rewards)mmoskilltree.command.skilltree
/xpdisplay (/xpd)mmoskilltree.command.xpdisplay
/mmoquests (/mmoquestlog, /mmoql)mmoskilltree.command.mmoquests
/questmmoskilltree.command.quest
/mmoleaderboard (/mmolb, /mmorankings)mmoskilltree.command.mmoleaderboard
/mmoboosts (/mmoxpboosts)mmoskilltree.command.mmoboosts
/mmohudmmoskilltree.command.mmohud
/setmmoxp (/setxp)mmoskilltree.command.setmmoxp

A command that is not in this table has no per-command node. /mmoability, /mmomastery and /mmocurrency are split: their read verbs (use, bind, unbind, input, list, explain / open, list / balance, list) are open to players, and their mutating verbs (reload, grantmod, revokemod, unlockall, lockall / respec, bypass / give, take, set) need mmoskilltree.admin. The page-openers /mmoachievements, /mmoshopui and /mmobountyui are open to every player and are switched off with their feature toggles instead.

Admin Permission

PermissionDescription
mmoskilltree.adminAccess admin features (OP always has this)

/mmoconfig, /mmoadmin, /mmobounty, /mmoshop, /mmonpc, /mmomigrate and every other management command gate on this single node rather than a per-command one. Granting mmoskilltree.command.* does not unlock them.

Note: OP players always have admin access regardless of permission settings.

Shared Library Nodes

The required ZiggfreedCommon jar owns the economy engine and the quest and achievement runtime, so its two admin families carry their own nodes rather than mmoskilltree.admin. Grant the first to whoever manages wallets, storefronts and boards, and the second to whoever gives, resets and completes quests or achievements by hand.

PermissionDescription
ziggfreed.ziggfreedcommon.command.zigcommerceThe /zigcommerce family itself
ziggfreed.ziggfreedcommon.command.zigcommerce.<verb>One verb (validate, wallets, shops, boards, show, give, take, set, resetlimits, resetrerolls)
ziggfreed.ziggfreedcommon.command.zigprogressThe /zigprogress family itself (and its reload verb needs .zigprogress.reload as well)
ziggfreed.ziggfreedcommon.command.zigprogress.<group>One group: quest, achievement or memory
ziggfreed.ziggfreedcommon.command.zigprogress.<group>.<verb>One verb inside a group: quest has list, give, reset, complete, status, accept, claim, abandon; achievement has list, status, give, claim, reset; memory has forget

A /zigcommerce verb needs both its nodes; a /zigprogress verb needs all of its ancestors (family, group, verb). Nobody holds any of them until you grant it, and the console holds everything. The nodes are derived by the engine from the command names, so there is nothing to look up beyond the pattern. The MMO's /mmoshop, /mmobounty and /mmocurrency aliases stay on mmoskilltree.admin, and so do /mmoquestadmin and /mmoachadmin; /quest stays on mmoskilltree.command.quest. More: ZiggfreedCommon commands.

XP Boost Permissions

Admin Convenience Feature: XP Boost permission nodes require the Permission Boosts entitlement.

No extra gameplay: The same boosts are available for free via boost token items. Permission Boosts are purely an admin workflow preference - managing boosts through permission nodes instead of item distribution. Both require creative/OP to configure.

Grant permissions to allow players to self-activate repeatable boosts. MMO Skill Tree ships with 90 built-in boost permission nodes covering personal and global boosts at various multipliers, durations, and cooldowns.

Permissions are checked live through the native permission system - changes take effect on the next Boost page refresh. All templates can be customized via mods/mmoskilltree/boost-templates.json or the admin UI.

Permission Format

mmoskilltree.xpboosts.<target>.<scope>.<multiplier>.<duration>.<cooldown>

Examples

# 1.5x all skills, 30min duration, 2hr cooldown (personal)
mmoskilltree.xpboosts.all.self.1_5.30.120

# 2x mining, 30min duration, 2hr cooldown (personal)
mmoskilltree.xpboosts.mining.self.2_0.30.120

# 1.25x global (server-wide), 15min duration, 2hr cooldown
mmoskilltree.xpboosts.all.all.1_25.15.120

View all 90 boost permission nodes & purchase →

Skill Visibility Filtering

When permissions are enabled, skills are filtered throughout the UI based on what the player has access to:

  • XP Overview - Skills without permission are hidden from the list
  • Total Levels - Only permitted skills count toward total/category levels
  • Skill Tree - Navigation skips skills the player can't access; shows "No permission" if accessed directly
  • Item Rewards - Navigation skips unpermitted skills (total rewards always available)
  • Leaderboards - Skill filters only show skills the viewer has permission for

Admin Help Text

When permissions are enabled, the /mmoadmin page displays permission node examples to help configure your server:

  • mmoskilltree.skill.* - Grant all skills
  • mmoskilltree.skill.mining - Grant individual skills
  • mmoskilltree.command.* - Grant access to every player command