Skip to main content

Quest Types

QuestKeeper uses a modular quest-type framework (registry pattern). Each type has its own generator and is validated automatically — adding a new type does not require touching the core generation logic.

Quest selection is weighted and configurable under quest-generator.weights (see Configuration). Generated quests target a 5-30 minute completion window for an average player (no Nether Stars, Elytra, Ancient Debris, or dragon kills). Quests are generated automatically from internal curated pools — no external config files are needed to define quests.

Item delivery pool

Materials are drawn from an internal curated pool that covers common, farmable, and renewable items — things players are realistically expected to gather. The pool includes terrain blocks, logs, wool, farm produce, fish, mob drops, ores, and flowers.

Amount scales with rarity tier (the per-tier reward shown below is the generator's internal suggestion — it is currently overridden so every quest awards a flat 1 Quest Point):

TierExample materialsAmount range
Very commonDirt, Cobblestone, Sand48-64
CommonOak Log, Coal, Wheat, Feather24-48
UncommonIron Ingot, Bread, Slime Ball8-16
RareGold Ingot, Blaze Rod, Ender Pearl4-8

Mob delivery pool

Only passive, herding-friendly mobs are included: Cow, Sheep, Pig, Chicken, Rabbit, Goat. Hostile mobs, bosses, water mobs, and villagers are excluded.

Mob amounts are intentionally low (2-5) since herding takes more effort than gathering items.

Event quest pools

Event (auto-completing) quests draw from internal pools designed for a 5-30 minute completion window:

TypePool / targets
ExplorationDesert, Jungle, Snowy Plains, Mushroom Fields, Badlands, Savanna, Taiga, Swamp, Plains, Forest
Structure DiscoveryVillage, Stronghold, Ocean Monument, Nether Fortress, Bastion Remnant, Pillager Outpost, Woodland Mansion, Desert Pyramid
CombatZombie, Skeleton, Creeper, Spider, Enderman (variants count: e.g. Stray/Bogged/Wither Skeleton → Skeleton; Husk/Drowned/Zombie Villager → Zombie; Cave Spider → Spider)
CraftingBread, Torch, Glass, Ladder, Stick, Chest, Furnace, Iron Chestplate, Cake
Villager TradingAny completed trade, or trades involving a specific item drawn from across all professions (Wheat, Coal, Paper, Leather, Porkchop, Ink Sac, …). Item-specific trades are validated against the villager's live trade recipe.
Biome CollectionSnowballs (Snowy Plains), Cocoa Beans (Jungle), Cactus (Desert), Mushrooms (Mushroom Fields), Warped Fungus (Warped Forest)

Biome-collection only credits naturally generated blocks broken in the target biome; blocks the player placed are tracked and never count.

Timed quests

When the timed modifier applies (probability set by timed-quests.chance), an eligible quest gains a countdown rendered as a BossBar (Quest Expires In: MM:SS). The countdown starts the first time the player is seen with the quest that day. Running out of time fails the quest for the day. (A configured timed bonus exists but is currently overridden while all quests award a flat 1 point.)

Repeat prevention

The generator will not produce the same type + target combination two days in a row (up to 20 retry attempts). The same logic applies when rerolling mid-day.

Roadmap frameworks

  • Escort quests — modular EscortQuestService behind the escort.enabled flag, disabled by default (architecture only).
  • Dynamic difficultyQuestDifficulty (EASY/NORMAL/HARD/ELITE) plus a DifficultyCalculator strategy interface, ready to weigh playtime, completions, streak, inventory value and XP level. The default calculator always returns NORMAL, so balance is unchanged until a real implementation is wired in.