zQuestRank

Configuration

A walkthrough of config.yml, the command, general, progression, and menu settings.

config.yml holds the plugin-wide settings. The ranks themselves live in ranks.yml (see Creating ranks) and the messages in lang/ (see Messages).

On plugin updates, new keys are merged into your config.yml automatically without losing your edits. The config-version key at the top drives that; leave it alone.

command

KeyWhat it controlsDefault
command.nameThe command that opens the rank menu, without the slash. Rename it to anythingrank
command.aliasesExtra names that do the same thing[ranks, zquestrank, zqr]

Command changes apply with /rank admin reload, same as everything else in this file. Tab completion on clients updates right away too.

general

KeyWhat it controlsDefault
general.languageWhich file from lang/ to use, without .yml. Shipped: en, fr. Any other name generates a fresh file from the English defaultsen
general.debugExtra console logging for quest progress and rank claims. Useful when chasing a problemfalse
general.auto-reloadWatch config.yml, ranks.yml and your language file and reload them automatically a few seconds after you save a change, no /rank admin reload needed. Set to false to reload only by handtrue
general.update-checkerCheck SpigotMC once on startup for a newer release. If there is one, it prints a line in the console and tells admins (zquestrank.admin) when they join. It never downloads or installs anythingtrue

With auto-reload on, just edit and save a file and the change shows in game within a few seconds. If a player has the rank or quest menu open when it reloads, the menu reopens for them on the exact same spot (same page, or the same rank's quests). Renaming the command itself is the one thing that still needs a manual /rank admin reload (or a restart).

progression

KeyWhat it controlsDefault
progression.anti-place-cheeseBlocks placed by players do not count for BREAK_BLOCK quests when broken again. Tracking resets on restarttrue
progression.notify-on-quest-completeChat message to the player the moment a quest reaches its targettrue
progression.broadcast-promotionsAnnounce rank promotions in global chat. A rank can still opt out with broadcast: false in its rewardstrue
progression.permission-check-secondsHow often (seconds) online players are re-synced to their zquestrank.rank.<key> nodes, so granting or removing a node applies without a rejoin. 0 turns the background check off5

gui

KeyWhat it controlsDefault
gui.fill-itemFiller for empty menu slotsGRAY_STAINED_GLASS_PANE
gui.locked-itemShared icon for ranks the player has not reached. A single rank can override it with icon-locked in ranks.ymlGRAY_DYE
gui.completed-itemShared icon for ranks the player already finished. A single rank can override it with icon-completed in ranks.ymlLIME_DYE
gui.back-itemBack button in the quest menuARROW
gui.previous-page-itemPrevious-page button in the rank menu (only shows past 45 ranks)ARROW
gui.next-page-itemNext-page button in the rank menuARROW
gui.claim-ready-itemThe Claim Rank button when everything is metEMERALD_BLOCK
gui.claim-not-ready-itemThe Claim Rank button while something is missingREDSTONE_BLOCK
gui.quest-slotsThe inventory slots quest icons use, in order. Add or remove slots to fit your quest counts[10, 11, 12, 13, 14, 15, 16, 21, 22, 23, 24, 25]
gui.quest-info-itemThe icon in the quest menu's top info slot. RANK_ICON uses the rank's own picture, NONE hides the slot (use this for invisible ItemsAdder rank icons so there is no empty gap), or any icon string. A rank can override it with menu-icon in ranks.ymlRANK_ICON
gui.rank-menu-modeauto fills the rank menu automatically; manual lets you place each rank with menu-page / menu-slots in ranks.ymlauto
gui.rank-menu-rowsRank menu height in manual mode, 1 to 6 (6 = a full 54-slot menu)6
gui.previous-page-slotsSlots for the previous-page arrow in manual mode. A list, so the arrow can sit in several slots on every page. Empty list [] hides it[45]
gui.next-page-slotsSlots for the next-page arrow in manual mode (a list, same as above)[53]

The old single-slot keys gui.previous-page-slot / gui.next-page-slot are still understood, so older files keep working. The new list form lets you repeat the arrow down a whole edge of an ItemsAdder frame.

Want different page-button slots on different pages? Write previous-page-slots / next-page-slots as a per-page map instead of a single list. Page numbers are 1-based (page 1 is the first page), and a default entry covers any page you did not list:

gui:
  previous-page-slots:
    1: [45]
    2: [48, 49]
    default: [45]
  next-page-slots:
    1: [53]
    2: [51, 52]
    default: [53]

The quest menu is a 54-slot inventory. Slot numbers count from 0 in the top-left, left to right, row by row. If a rank has more quests than gui.quest-slots has entries, the extra quests do not show and the console warns you.

gui.rank-menu-mode: manual is what you want for ItemsAdder frame menus, where one rank image spans several slots and each slot opens that rank. Full walkthrough on the Rank menu page.

Icon formats

Every item above, and every icon in ranks.yml, accepts these formats:

fill-item: GRAY_STAINED_GLASS_PANE   # a vanilla material
back-item: PAPER:1042                # material + custom model data, for resource pack textures
claim-ready-item: itemsadder:myitems:golden_button   # an ItemsAdder custom item
locked-item: itemsadder-myitems:locked_frame         # ItemsAdder, DeluxeMenus-style hyphen (same thing)

The ItemsAdder form needs the ItemsAdder plugin installed. Both spellings work, itemsadder:namespace:id and the DeluxeMenus-style itemsadder-namespace:id, so an id copied straight from a DeluxeMenus setup resolves. If ItemsAdder is missing or the id does not exist, the menu falls back to the vanilla default and the console names the bad id once, nothing breaks.

Full default file

command:
  name: rank
  aliases: [ranks, zquestrank, zqr]

general:
  language: "en"
  debug: false
  auto-reload: true
  update-checker: true

progression:
  anti-place-cheese: true
  notify-on-quest-complete: true
  broadcast-promotions: true
  permission-check-seconds: 5

gui:
  fill-item: GRAY_STAINED_GLASS_PANE
  locked-item: GRAY_DYE
  completed-item: LIME_DYE
  back-item: ARROW
  previous-page-item: ARROW
  next-page-item: ARROW
  claim-ready-item: EMERALD_BLOCK
  claim-not-ready-item: REDSTONE_BLOCK
  quest-slots: [10, 11, 12, 13, 14, 15, 16, 21, 22, 23, 24, 25]
  quest-info-item: RANK_ICON
  rank-menu-mode: auto
  rank-menu-rows: 6
  previous-page-slots: [45]
  next-page-slots: [53]

After editing, apply with /rank admin reload. That covers everything, the command name and aliases included.

On this page