zQuestRank

Storage

How and where player progress is saved.

Player progress is stored in flat files, one per player, in plugins/zQuestRank/playerdata/<uuid>.yml. No database needed.

What is stored

  • The player's current rank.
  • Progress numbers for each quest of the current rank.
  • Which of those quests are completed.
  • For FIND_HEAD quests, the head spots already counted, so the same head never counts twice.
  • The last rank they claimed and the last rank whose on-reach commands ran for them. These two keep a leftover rank permission from pulling a player back onto a rank they already finished, and they are what lets a rank added later be handed out on its own.

Progress always belongs to the current rank. When a player claims a rank (or an admin uses setrank), the quest progress resets and the next rank starts fresh. Finished ranks stay finished; the plugin only needs to remember where the player currently stands.

When it saves

  • Data loads when a player joins and unloads when they leave.
  • Every progress change saves in the background, so a crash loses next to nothing.
  • Everything saves on server shutdown.

Progress survives relogs, restarts, and plugin updates.

Config backups

plugins/zQuestRank/backups/ holds a copy of config.yml and of your language file from just before an update changed them, named after the version they had (config.yml.9.bak). Nothing is copied on a normal restart, only when a newer build is about to merge new keys in. If an update ever leaves a file looking wrong, copy the .bak back over it, rename it, and restart. ranks.yml is never rewritten by the plugin at all, so it needs no backup of this kind.

Resetting a player

  • /rank admin resetquests <player> wipes the quest progress of their current rank.
  • /rank admin setrank <player> <number> moves them to any rank (also resets the quest progress, since it belongs to the new rank).
  • Deleting a player's file in playerdata/ while they are offline resets them completely to rank one.

See Commands for the admin command details.

On this page