Permissions
Permissions
Section titled “Permissions”The Achievement & Title System uses the unified ks.<mod>.<scope>.<action> scheme. Player nodes default to allowed, admin nodes default to deny.
Permission Nodes
Section titled “Permission Nodes”| Permission | Default | Description |
|---|---|---|
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 only | Every /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.
Player Commands
Section titled “Player Commands”| Command | Aliases | Permission |
|---|---|---|
/ksachievements | /achievement, /ac | ks.achievements.user.use |
/kstitles | /title | ks.achievements.user.titles |
/ksrewards | /reward, /rw | ks.achievements.user.rewards |
/kslootbags | /lootbag, /lb | ks.achievements.user.lootbags |
/kslang | — | (provided by Core — see Core permissions) |
Admin Commands
Section titled “Admin Commands”All admin subcommands gate on ks.achievements.admin. canGeneratePermission() = false on the parent collection prevents auto-generated per-subcommand nodes.
| Command | Description |
|---|---|
/ksachievementadmin panel | Opens 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. :::
Showcase Guard
Section titled “Showcase Guard”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.
LuckPerms Examples
Section titled “LuckPerms Examples”# 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 falseMigration from Legacy Nodes
Section titled “Migration from Legacy Nodes”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.
Are there wildcard permissions?
Section titled “Are there wildcard permissions?”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.