Data Files
Both quest.yml and players.yml are created automatically in plugins/QuestKeeper/.
quest.yml
Stores the current active quest. Regenerated each day.
activeQuest:
date: "2026-03-11"
type: "ITEM_DELIVERY"
target: "OAK_LOG"
amount: 48
rewardPoints: 1 # currently always 1 — see Configuration for why
description: "Bring 48 Oak Logs to the Quest Keeper"
players.yml
Stores per-player state. Updated immediately on quest completion.
players:
123e4567-e89b-12d3-a456-426614174000:
lastCompletionDate: "2026-03-10" # used for streak logic
completedQuestDate: "2026-03-10" # used to block same-day re-submission
streak: 4
totalPoints: 87
scrollCharges: 2 # Teleport Scroll charges
questsCompleted: 130 # lifetime completions (leaderboard)
# Event-quest progress state (auto-completing quest types):
progressQuestDate: "2026-03-11" # quest day the progress applies to
progressCount: 3 # progress toward the active event quest
failedQuestDate: "" # set if a timed quest expired that day
timedStartMillis: 0 # epoch ms a timed quest started (0 = none)
progressMeta: {} # free-form (e.g. resolved structure coords)
# Shop perks:
streakShieldCharges: 1 # Streak Shields held (auto-spent on a missed day)
chatColorCode: "c" # active chat colour code ("" = none)
chatColorExpiryMillis: 0 # epoch ms the chat colour expires
unlockedEffects: [] # unlocked completion effects (enum names)
selectedEffect: "" # active completion effect ("" = none)
stats.yml
Aggregate statistics surfaced by /qk stats.
questsGenerated: 42
questsCompleted: 130
questsFailed: 7
totalCompletionSeconds: 5400 # used to derive average completion time
questTypeUsage:
item_delivery: 12
combat: 9
exploration: 6