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
| Key | What it controls | Default |
|---|---|---|
command.name | The command that opens the rank menu, without the slash. Rename it to anything | rank |
command.aliases | Extra 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
| Key | What it controls | Default |
|---|---|---|
general.language | Which file from lang/ to use, without .yml. Shipped: en, fr. Any other name generates a fresh file from the English defaults | en |
general.debug | Extra console logging for quest progress and rank claims. Useful when chasing a problem | false |
general.auto-reload | Watch 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 hand | true |
general.update-checker | Check 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 anything | true |
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
| Key | What it controls | Default |
|---|---|---|
progression.anti-place-cheese | Blocks placed by players do not count for BREAK_BLOCK quests when broken again. Tracking resets on restart | true |
progression.notify-on-quest-complete | Chat message to the player the moment a quest reaches its target | true |
progression.broadcast-promotions | Announce rank promotions in global chat. A rank can still opt out with broadcast: false in its rewards | true |
progression.permission-check-seconds | How 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 off | 5 |
gui
| Key | What it controls | Default |
|---|---|---|
gui.fill-item | Filler for empty menu slots | GRAY_STAINED_GLASS_PANE |
gui.locked-item | Shared icon for ranks the player has not reached. A single rank can override it with icon-locked in ranks.yml | GRAY_DYE |
gui.completed-item | Shared icon for ranks the player already finished. A single rank can override it with icon-completed in ranks.yml | LIME_DYE |
gui.back-item | Back button in the quest menu | ARROW |
gui.previous-page-item | Previous-page button in the rank menu (only shows past 45 ranks) | ARROW |
gui.next-page-item | Next-page button in the rank menu | ARROW |
gui.claim-ready-item | The Claim Rank button when everything is met | EMERALD_BLOCK |
gui.claim-not-ready-item | The Claim Rank button while something is missing | REDSTONE_BLOCK |
gui.quest-slots | The 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-item | The 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.yml | RANK_ICON |
gui.rank-menu-mode | auto fills the rank menu automatically; manual lets you place each rank with menu-page / menu-slots in ranks.yml | auto |
gui.rank-menu-rows | Rank menu height in manual mode, 1 to 6 (6 = a full 54-slot menu) | 6 |
gui.previous-page-slots | Slots 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-slots | Slots 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.