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.
The merge only ever adds. It never overwrites a value you set, never deletes a key you added yourself, and never minds you writing one of our keys in another shape (decorations as named blocks, previous-page-slots as a per-page map, and so on). Just before an update touches the file, the old one is copied to plugins/zQuestRank/backups/, so there is always a copy to go back to.
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.anti-replace-cheese | PLACE_BLOCK quests count each spot in the world once: place, break and place again on the same spot does not count twice. Tracking resets on restart | true |
progression.permission-ranks | Whether zquestrank.rank.<key> nodes move players onto ranks at all. false ignores them completely, handy if you only rank up through quests and setrank | 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 |
towertrials
Only does anything when the TowerTrials plugin is installed. zQuestRank is built against TowerTrials 1.0.0-9.
| Key | What it controls | Default |
|---|---|---|
towertrials.enabled | Whether the TowerTrials link runs at all (tower quests, tower requirements and the gates below) | true |
towertrials.gates | Tower floors nobody may enter before they are on a certain rank | empty |
A gate closes a floor, and every floor above it, until the party leader is on the rank you name. TowerTrials sends whole parties in together, so the leader is the one checked and the one who gets the message.
towertrials:
enabled: true
gates:
- tower: ashen-spire # tower id, leave it out or write * for every tower
floor: 10 # this floor and everything above it
rank: gold # rank key from ranks.yml
message: "&cYour party needs the &6Gold &crank to climb past floor 10."message is optional: leave it out and players get the towertrials.gate-blocked line from your language file. Both accept {rank} and {floor}. Players on the named rank or any rank above it walk straight in.
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. This is how many quests fit on one page; a rank with more quests gets extra pages on its own | [10, 11, 12, 13, 14, 15, 16, 21, 22, 23, 24, 25] |
gui.quest-previous-page-slot | Slot of the previous-page arrow in the quest menu. Only drawn when the rank really has more than one page. -1 hides it | 48 |
gui.quest-next-page-slot | Slot of the next-page arrow in the quest menu. -1 hides it | 50 |
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.rank-menu-pages | Page count of the rank menu in manual mode. 0 works it out from ranks.yml (the last page is the highest menu-page in use, so the next arrow is hidden there). Set a number to force extra pages, for example an empty page you keep ready for ranks you have not written yet | 0 |
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] |
gui.decorations | Extra text-only items in the rank menu: pick the slots, page, icon, name and lore. Written as a list or as named blocks, as many as you want. They are not ranks, clicking one does nothing | [] |
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 go on a second page (then a third, and so on), reachable with the two arrows on gui.quest-previous-page-slot / gui.quest-next-page-slot. The arrows use the same previous-page-item / next-page-item pictures and the same menu.previous-page / menu.next-page texts as the rank menu.
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.
Decoration items
gui.decorations fills slots of the rank menu with items that are not ranks. They only show text, clicking them does nothing:
gui:
decorations:
- slots: [4]
page: all # 1 = first page, "all" = every page
icon: OAK_SIGN
name: "&6&lServer Ranks"
lore:
- "&7Complete the quests of your"
- "&7current rank to move up."
- ""
- "&eYou are &f%zquestrank_rank_name%"
- slots: [45, 46, 47, 48, 49, 50, 51, 52, 53]
icon: BLACK_STAINED_GLASS_PANEColors and PlaceholderAPI placeholders work in name and lore. Decorations are drawn over the ranks, so in auto mode do not use a slot a rank already sits on. Page arrows always stay on top of decorations. Details 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
anti-replace-cheese: true
permission-ranks: true
notify-on-quest-complete: true
broadcast-promotions: true
permission-check-seconds: 5
towertrials:
enabled: true
gates: []
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-previous-page-slot: 48
quest-next-page-slot: 50
quest-info-item: RANK_ICON
rank-menu-mode: auto
rank-menu-rows: 6
rank-menu-pages: 0
previous-page-slots: [45]
next-page-slots: [53]
decorations: []After editing, apply with /rank admin reload. That covers everything, the command name and aliases included.