Skip to content

Permissions

The Quest System uses the shared ks.<mod>.<scope>.<action> scheme. Player commands gate on ks.quest.user.*; every admin subcommand is gated by a single ks.quest.admin node on the parent collection.

PermissionDescriptionSuggested Default
ks.quest.user.useOpen the Quest Book (/ksquest)✅ all players
ks.quest.user.settingsOpen the Quest Tracker settings (/ksquestsettings)✅ all players
ks.quest.adminEvery /ksquestadmin subcommand + the /testquest command❌ staff only
CommandAliasesPermissionDescription
/ksquestksquests, ksquestbook, kqb, questbook, qbks.quest.user.useOpens the Quest Book UI
/ksquest settings—ks.quest.user.settingsOpens the Quest Tracker settings sub-page
/ksquestsettings—ks.quest.user.settingsOpens the Quest Tracker settings directly

/ksquestadmin (alias qadmin) is an AbstractCommandCollection. The parent requires ks.quest.admin; subcommand-level permission nodes are not auto-generated (canGeneratePermission() = false), so a single grant covers every subcommand below.

All admin subcommands require ks.quest.admin:

CommandConsoleDescription
/ksquestadmin reload✅Reloads quest configuration from disk
/ksquestadmin panel❌Opens the admin panel UI
/ksquestadmin start <player> <questId>✅Starts a quest for a player
/ksquestadmin complete <player> <questId>✅Force-completes a quest
/ksquestadmin reset <player> <questId>✅Resets a quest for a player
/ksquestadmin setstreak <player> <days>✅Sets a player’s streak
/ksquestadmin resetdaily✅Forces a daily quest reset
/ksquestadmin resetweekly✅Forces a weekly quest reset
/ksquestadmin spawnmerchant [npcType]❌Spawns an NPC at your location
/ksquestadmin spawntemplemerchant [npcType]❌Spawns NPC at the Forgotten Temple
/ksquestadmin tokens [amount]❌Gives quest tokens to yourself
/ksquestadmin debugmode❌Toggles live debug output
/ksquestadmin export <type> [id]✅Exports quest data as JSON
/ksquestadmin import <file> [overwrite]✅Imports quest data from JSON
/ksquestadmin test <questId> [player]❌Starts a quest in test mode
/ksquestadmin testfirstjoin❌Simulates first-join trigger
/ksquestadmin teststart❌Starts tutorial_welcome for yourself
/ksquestadmin testzone <zone>❌Simulates entering a zone
/ksquestadmin testnpc <npcId>❌Simulates NPC interaction
/ksquestadmin resetme❌Resets all your quest data
/ksquestadmin debug❌Shows quest debug info for yourself

The standalone /testquest <questId> [player] command also requires ks.quest.admin and is equivalent to /ksquestadmin test.

Several admin subcommands additionally check Showcase Mode via ShowcaseCompat. When an account is flagged as a showcase account, these subcommands refuse to run even if the caller has ks.quest.admin:

  • /ksquestadmin reload
  • /ksquestadmin start, complete, reset
  • /ksquestadmin setstreak, resetdaily, resetweekly
  • /ksquestadmin spawnmerchant, spawntemplemerchant
  • /ksquestadmin tokens, debugmode
  • /ksquestadmin resetme, export, import

Console-execution bypasses the showcase check. This prevents accidental data modification on demo servers.

Commands marked with ✅ in the Console column accept execution from the server console without any permission check. Typical uses:

  • NPC dialog macros — NPCs start quests via /ksquestadmin start PlayerName quest_id
  • Automated scripts — scheduled tasks manage quests from the host shell
  • Bulk operations — exporting/importing quest data from the CLI

Player nodes are granted by default. To restrict or lock them down, or to give staff admin access:

# Staff group
group.staff.permission.ks.quest.admin: true
# Lock player commands to a specific group
group.default.permission.ks.quest.user.use: true
group.default.permission.ks.quest.user.settings: true