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 settingsks.quest.user.settingsOpens the Quest Tracker settings sub-page
/ksquestsettingsks.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 reloadReloads quest configuration from disk
/ksquestadmin panelOpens 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 resetdailyForces a daily quest reset
/ksquestadmin resetweeklyForces 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 debugmodeToggles 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 testfirstjoinSimulates first-join trigger
/ksquestadmin teststartStarts tutorial_welcome for yourself
/ksquestadmin testzone <zone>Simulates entering a zone
/ksquestadmin testnpc <npcId>Simulates NPC interaction
/ksquestadmin resetmeResets all your quest data
/ksquestadmin debugShows 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