All Classes and Interfaces

Class
Description
Requires the player to have completed a specific vanilla or datapack advancement.
Grants a specific vanilla or datapack advancement to the player, by awarding every one of its criteria - a single PlayerAdvancements.award(AdvancementHolder, String) call only satisfies one criterion, so an advancement with several needs all of them awarded to actually complete.
Passes if any of its wrapped conditions pass, unlike a quest's top-level prerequisite list which requires all of them.
Requires the player to currently be standing in a specific biome.
Poll-based objective tracking the vanilla minecraft:animals_bred custom statistic, relative to a baseline captured when the quest became active.
Registers every objective/reward/condition type that ships with the core API itself.
A single entry in the CategoryListWidget sidebar.
Scrollable sidebar of quest categories, replacing a fixed row of tabs so it never overflows the panel regardless of how many categories are registered.
Sent to a client the moment one of their quests becomes COMPLETED, purely to drive the completion sound and toast - separate from ClientboundSyncProgressPayload so the GUI's progress cache and the one-shot feedback effect stay independent concerns.
Sent to a client the moment one of their quests becomes visible to them for the first time - newly AVAILABLE, or straight to ACTIVE for an autoActivate quest - purely to drive a "new quest" sound and toast, separate from ClientboundSyncProgressPayload.
Sent to a client once, right after login (and again if dev-mode reloads quest definitions), carrying every registered category and quest definition so the default GUI never needs to ask the server for static content while it is open.
Sent to a client whenever their own quest progress changes server-side (login, objective progress, completion, reward claim, reset, ...), carrying a full snapshot of their PlayerQuestData.
Client-side cache of the last data synced from the server.
Client-side packet handling logic and outgoing request helpers, shared by both loaders.
Poll-based objective satisfied while the player currently possesses at least targetAmount of a given item, summed across their entire inventory (main, offhand and armor slots).
Executes a command as the rewarded player, e.g.
A registered kind of condition, pairing its identifier with the MapCodec used to (de)serialize instances of this type.
Poll-based objective tracking the vanilla Stats.ITEM_USED statistic for a specific item, relative to a baseline captured when the quest became active.
Poll-based objective tracking the vanilla Stats.ITEM_CRAFTED statistic for a specific item, relative to a baseline captured when the quest became active.
Push-based objective completed by explicitly delivering (surrendering) items to the quest via the default GUI's "deliver" action or the /quests deliver command, rather than merely holding them.
Smallest-sensible development configuration mechanism, shared by both loaders.
Applies a potion/mob effect to the player.
Example quest tree registered only when DevConfig.isDevMode() is true.
Requires the player to be at least a given experience level.
Grants experience points to the player.
Poll-based objective tracking the vanilla minecraft:fish_caught custom statistic, relative to a baseline captured when the quest became active.
Loader-specific abstraction over sending custom payloads.
 
Requires the player to currently possess at least amount of a given item, e.g.
Grants a stack of items to the player, placed directly in their inventory or dropped at their feet if the inventory is full.
Poll-based objective tracking the vanilla Stats.ENTITY_KILLED statistic for a specific entity type, relative to a baseline captured when the quest became active.
Poll-based objective tracking the vanilla Stats.BLOCK_MINED statistic for a specific block, relative to a baseline captured when the quest became active so that blocks mined before starting the quest do not count.
Static, immutable description of a single quest objective.
Well-known event keys used to drive push-based ObjectiveDefinition.evaluate(QuestContext, ObjectiveProgress, Identifier, int) calls.
Mutable, per-player runtime progress for a single objective within an active QuestProgress.
A registered kind of objective, pairing its identifier with the MapCodec used to (de)serialize definitions of this type, e.g.
Push-based objective counting blocks placed by the player.
All quest progress for a single player, keyed by quest ID.
Immutable, static definition of a quest: its identity, presentation, objectives, rewards and unlock conditions.
 
Static entry point holding mod-wide constants and the shared registry/manager singletons.
A named grouping of quests shown as a tab/column in the default quest GUI.
Builds registry-backed dispatch Codecs for the extensible objective/reward/condition types, and the full Quest codec used to synchronise quest definitions to clients.
Development-only debug commands for exercising the quest lifecycle without playing through it.
Requires another quest to have been completed (rewards claimed) before this one unlocks.
A predicate a player must satisfy for a quest to unlock (become AVAILABLE instead of LOCKED).
Execution context handed to objective evaluators, reward grants and quest conditions.
Loads quest categories and quest definitions from datapacks, as an alternative (or complement) to registering them in Java.
 
Hook interface for observing quest lifecycle events from other mods.
Minimal, loader-independent event bus for QuestEventListeners.
Shared text helpers for the default GUI.
A single row in the QuestListWidget, showing a quest's icon, title and a coloured state marker (locked/available/active/completed/rewarded).
The scrollable list of quests within the currently selected category.
Server-authoritative runtime orchestrator for player quest progress.
 
Server-side packet handling logic shared by both loaders.
Mutable, per-player runtime state for a single quest.
The static side of the Questing API: quest definitions, categories, and the extensible type registries for objectives, rewards and conditions.
 
Static description of something granted to a player when they claim a completed quest.
Server-wide persistent storage for every player's quest progress, attached to the server via MinecraftServer#getDataStorage() rather than to any single dimension so that progress is independent of which world a player last stood in.
The default quest book GUI.
The lifecycle state of a single quest for a single player.
Bridges the loader-independent QuestEventListener callbacks to network sync, so that QuestManagerImpl itself never needs to know networking exists.
Renders the player's pinned quest (see ClientQuestDataCache.toggleTracked(Identifier)) in the top right corner of the HUD, so its objectives stay visible without reopening the quest book.
How a repeatable quest's cooldown is measured, see Quest.Builder.repeatable(ResetMode, int).
A registered kind of reward, pairing its identifier with the MapCodec used to (de)serialize instances of this type.
Requests that the server abandon an ACTIVE quest for the sending player.
Requests that the server claim the rewards of a COMPLETED quest for the sending player.
Requests that the server remove amount items from the sending player's inventory and credit them to a delivery objective.
Asks the server to resend both quest definitions and the sending player's progress, e.g.
Requests that the server manually start an AVAILABLE quest for the sending player.
There is no vanilla statistic or cross-loader event fired specifically when a player places a block (unlike mining, which increments Stats.BLOCK_MINED automatically), so PlaceBlockObjective is driven from here instead.
Locates the platform-specific implementation of each service interface via Java's ServiceLoader.
There is no cross-loader vanilla event fired when a player tames an animal, so TameEntityObjective is driven from here instead, identically on Fabric and NeoForge.
Push-based objective completed by taming any number of animals.
Requires the player's current dimension to be in daytime or nighttime, per Level.isBrightOutside()/isDarkOutside() - always false for a dimension with a fixed time (the Nether, the End), matching vanilla's own definition of "day".
Poll-based exploration objective satisfied once the player is present in a specific dimension.
Poll-based exploration objective satisfied once the player comes within radius blocks of a target position in a specific dimension.
Requires the player's current dimension to be experiencing a specific kind of weather.