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.