zQuestRank

Requirements

Extra conditions a player must meet on top of the quests before claiming a rank.

Requirements sit next to the quests in ranks.yml. A player can finish every quest, but the Claim Rank button only turns green once every requirement passes too. Each one shows up in the button's text with a green check or red cross and the player's current value.

requirements:
  money:
    type: MONEY
    amount: 25000
    take: true
  votes:
    type: PLACEHOLDER
    placeholder: "%votingplugin_points%"
    amount: 20
    display: "&7Have &e20 &7vote points"
Requirements listed on the claim button in the quest menu
Hovering the claim button shows every requirement, checked or crossed, with the player's current value.

Requirement types

TypePasses whenNeeds
MONEYVault balance is at least amountVault + an economy plugin
XP_LEVELVanilla XP level is at least amountnothing
PLAYTIME_HOURSHours played on this server reach amount (read from the server's own statistics)nothing
PERMISSIONThe player has the node in permissiona permissions plugin
PLACEHOLDERA numeric PlaceholderAPI value reaches amountPlaceholderAPI + the providing plugin
TOWER_FLOORThe player cleared floor amount of the tower in tower this seasonTowerTrials
TOWER_CLEARSFloors cleared this season in tower (repeats counted) reach amountTowerTrials

Optional keys

KeyWhat it does
displayCustom text shown for this requirement on the Claim Rank button. Supports {amount} (the target) and {current} (the player's live value)
takeMONEY and XP_LEVEL only. true = the amount is spent when the rank is claimed. Default false = the player only needs to have it
towerTOWER_FLOOR and TOWER_CLEARS only. The TowerTrials tower id, the id line in its file under plugins/TowerTrials/towers/
votes:
  type: PLACEHOLDER
  placeholder: "%votingplugin_points%"
  amount: 20
  display: "&7Vote &e{amount} &7times &8(you: {current})"

Requirements with take: true show a "(spent on rank up)" tag on the Claim Rank button, so players know it is a cost and you can see the setting is active. The tag text is editable in the language files.

take: true only works on MONEY and XP_LEVEL. Votes, playtime, island level, and other placeholder values are only checked, never taken. If you put take: true on one of those, the console warns at startup and ignores it.

PLACEHOLDER examples

The PLACEHOLDER type covers everything other plugins can count. A few ready-to-paste examples:

Island level (SuperiorSkyblock2):

island:
  type: PLACEHOLDER
  placeholder: "%superior_island_level_raw%"
  amount: 100
  display: "&7Island level &e100"

Use the _raw variant: the plain one formats big numbers with commas.

Vote points (VotingPlugin):

votes:
  type: PLACEHOLDER
  placeholder: "%votingplugin_points%"
  amount: 20
  display: "&7Have &e20 &7vote points"

Job level (EcoJobs):

job:
  type: PLACEHOLDER
  placeholder: "%ecojobs_miner%"
  amount: 10
  display: "&7Miner job level &e10"

More placeholder names are collected on the Placeholders page. Always verify one in game with /papi parse me <placeholder> before putting it in a rank.

TowerTrials examples

Built against TowerTrials 1.0.0-9. Without TowerTrials installed these two never pass, like a placeholder requirement without PlaceholderAPI.

requirements:
  # Must have cleared floor 15 of the Ashen Spire this season
  spire:
    type: TOWER_FLOOR
    tower: ashen-spire
    amount: 15
  # Must have cleared 30 floors in total this season, repeats counted
  climbing:
    type: TOWER_CLEARS
    tower: ashen-spire
    amount: 30
    display: "&7Clear &e{amount} &7tower floors &8(you: {current})"

Both read the player's current season. When a TowerTrials season resets everyone's tower progress goes back to zero, so a player who has not claimed the rank yet has to climb again. Players who already claimed keep their rank, nothing is taken back.

Permission-gated ranks

PERMISSION lets you gate a rank behind anything that grants permissions: a donor rank, a crate unlock, a manual staff approval.

vip:
  type: PERMISSION
  permission: "myserver.rank.vip"
  display: "&7Be a &6VIP"

On this page