Skip to content

Permissions

The Achievement & Title System uses the unified ks.<mod>.<scope>.<action> scheme. Player nodes default to allowed, admin nodes default to deny.

PermissionDefaultDescription
ks.achievements.user.use✅ allowed/ksachievements (Achievement Gallery)
ks.achievements.user.titles✅ allowed/kstitles (Title Selection)
ks.achievements.user.rewards✅ allowed/ksrewards (Rewards Inventory)
ks.achievements.user.lootbags✅ allowed/kslootbags (Lootbag Inventory)
ks.achievements.admin❌ staff onlyEvery /ksachievementadmin subcommand

User nodes use hasPermission(node, true) — the true flag means “default to allowed when unset”. Admins only need to touch them if they want to revoke a command from a specific group.


CommandAliasesPermission
/ksachievements/achievement, /acks.achievements.user.use
/kstitles/titleks.achievements.user.titles
/ksrewards/reward, /rwks.achievements.user.rewards
/kslootbags/lootbag, /lbks.achievements.user.lootbags
/kslang(provided by Core — see Core permissions)

All admin subcommands gate on ks.achievements.admin. canGeneratePermission() = false on the parent collection prevents auto-generated per-subcommand nodes.

CommandDescription
/ksachievementadmin panelOpens the admin configuration panel
/ksachievementadmin list <player>Lists a player’s unlocked achievements
/ksachievementadmin grant <player> <id>Grants an achievement
/ksachievementadmin revoke <player> <id>Revokes an achievement
/ksachievementadmin simulate <type> [count]Simulates trigger events (debug)

:::info Console Access Admin subcommands also accept execution from the server console without any permission check — useful for scripted grants via NPC dialog macros or scheduled tasks. :::


When Core’s Showcase Mode flags a player, admin commands refuse to run even with ks.achievements.admin. Protects demo servers from accidental data mutation. Console execution bypasses the showcase gate.


Terminal window
# Grant admin access to a player
/lp user Steve permission set ks.achievements.admin true
# Staff group gets everything
/lp group staff permission set ks.achievements.admin true
# Revoke player commands from a restricted group
/lp group spectator permission set ks.achievements.user.use false
/lp group spectator permission set ks.achievements.user.titles false

The old achievements.admin node is no longer checked. Grant ks.achievements.admin instead. If you had no player permission gates before, no config change is needed — user nodes default-allow out of the box.


Can I restrict who can use /ksachievements?

Section titled “Can I restrict who can use /ksachievements?”

Yes. Revoke ks.achievements.user.use from a group. Default is allowed.

No. Each command has its own leaf node. Grant the parent-prefix in LuckPerms if you want to match multiple (e.g. ks.achievements.user.*).

Do I need any setup for basic functionality?

Section titled “Do I need any setup for basic functionality?”

No. The mod works out of the box — user nodes are default-allowed, admin nodes default-deny. Only grant ks.achievements.admin to staff and you’re done.