Base Objective Properties
All objective types support the following optional properties:
required_amount(optional, default: 1): The number of times the player must perform the action to complete the objective.
questlog:stat
Uses the player's statistics to track progress. Every time the server updates the specified statistic, the completion amount goes up by that value. Additional definition fields:
stat: The stat to track. See below for a list of valid stats.retroactive(optional, default: true):
By default (true), value will be tracked and incremented since the creation of the quest.
If set to false, the completion value will be the player's total stat value. This may be useful for something that may want to check a global statistic amount instead of the change of that statistic since the start of the quest.
List of stats
minecraft:leave_gameminecraft:play_timeminecraft:total_world_timeminecraft:time_since_deathminecraft:time_since_restminecraft:sneak_timeminecraft:walk_one_cmminecraft:crouch_one_cmminecraft:sprint_one_cmminecraft:walk_on_water_one_cmminecraft:fall_one_cmminecraft:climb_one_cmminecraft:fly_one_cmminecraft:walk_under_water_one_cmminecraft:minecart_one_cmminecraft:boat_one_cmminecraft:pig_one_cmminecraft:horse_one_cmminecraft:aviate_one_cmminecraft:swim_one_cmminecraft:strider_one_cmminecraft:jumpminecraft:dropminecraft:damage_dealtminecraft:damage_dealt_absorbedminecraft:damage_dealt_resistedminecraft:damage_takenminecraft:damage_blocked_by_shieldminecraft:damage_absorbedminecraft:damage_resistedminecraft:deathsminecraft:mob_killsminecraft:animals_bredminecraft:player_killsminecraft:fish_caughtminecraft:talked_to_villagerminecraft:traded_with_villagerminecraft:eat_cake_sliceminecraft:fill_cauldronminecraft:use_cauldronminecraft:clean_armorminecraft:clean_bannerminecraft:clean_shulker_boxminecraft:interact_with_brewingstandminecraft:interact_with_beaconminecraft:inspect_dropperminecraft:inspect_hopperminecraft:inspect_dispenserminecraft:play_noteblockminecraft:tune_noteblockminecraft:pot_flowerminecraft:trigger_trapped_chestminecraft:open_enderchestminecraft:enchant_itemminecraft:play_recordminecraft:interact_with_furnaceminecraft:interact_with_crafting_tableminecraft:open_chestminecraft:sleep_in_bedminecraft:open_shulker_boxminecraft:open_barrelminecraft:interact_with_blast_furnaceminecraft:interact_with_smokerminecraft:interact_with_lecternminecraft:interact_with_campfireminecraft:interact_with_cartography_tableminecraft:interact_with_loomminecraft:interact_with_stonecutterminecraft:bell_ringminecraft:raid_triggerminecraft:raid_winminecraft:interact_with_anvilminecraft:interact_with_grindstoneminecraft:target_hitminecraft:interact_with_smithing_table
questlog:block_mine
Tracks the number of blocks mined by the player. Additional definition fields:
block: The block to track. May be the block itself or a tag prefixed with#.
questlog:block_place
Tracks the number of blocks placed by the player.
Additional definition fields:
block: The block to track. May be the block itself or a tag prefixed with#.
questlog:entity_breed
Tracks the number of times the player breeds entities.
Additional definition fields:
entity: The entity to track. May be the entity itself or a tag prefixed with#.
questlog:entity_death
Tracks the number of times the player dies to a specific entity. Additional definition fields:
entity: The entity to track. May be the entity itself or a tag prefixed with#.
questlog:entity_kill
Tracks the number of a specific type of entity the player kills. Additional definition fields:
entity: The entity to track. May be the entity itself or a tag prefixed with#.
questlog:entity_tame
Tracks the number of a specific type of entity the player tames. Additional definition fields:
entity: The entity to track. May be the entity itself or a tag prefixed with#.
questlog:item_craft
Tracks the number of a specific item the player crafts. This also tracks smelting recipes. Additional definition fields:
item: The item to track. May be the item itself or a tag prefixed with#.components(optional): Data component matching rules (e.g.,"minecraft:custom_name").
questlog:item_drop
Tracks the number of a specific item the player drops.
Additional definition fields:
item: The item to track. May be the item itself or a tag prefixed with#.components(optional): Data component matching rules (e.g.,"minecraft:custom_name").
questlog:item_equip
Tracks the number of times the player equips a specific item.
Additional definition fields:
item: The item to track. May be the item itself or a tag prefixed with#.slot: The equipment slot to track.components(optional): Data component matching rules (e.g.,"minecraft:custom_name").
questlog:item_obtain
Tracks the number of a specific item the player obtains through any means.
Additional definition fields:
item: The item to track. May be the item itself or a tag prefixed with#. May also be an object containingidandcomponents.components(optional): Data component matching rules (e.g.,"minecraft:custom_name").
Item Components Example
You can require items with specific Data Components (such as custom item names):
{"type": "questlog:item_obtain","item": "minecraft:feather","components": {"minecraft:custom_name": "'Magic Feather'"},"required_amount": 1}
questlog:item_use
Tracks the number of times the player uses a specific item.
Additional definition fields:
item: The item to track. May be the item itself or a tag prefixed with#.components(optional): Data component matching rules (e.g.,"minecraft:custom_name").
questlog:visit_biome
Tracks the number of times the player visits a specific biome.
Additional definition fields:
biome: The biome to track. Does not support tags yet.
questlog:visit_dimension
Tracks the number of times the player visits a specific dimension. Additional definition fields:
dimension: The dimension to track. Does not support tags yet.
questlog:visit_position
Tracks the number of times the player visits a specific position. Additional definition fields:
bounds: The bounding box of the position to track. Contains the following fields (all optional, default to extrema):bounds.minX: The minimum X coordinate of the bounding box.bounds.minY: The minimum Y coordinate of the bounding box.bounds.minZ: The minimum Z coordinate of the bounding box.bounds.maxX: The maximum X coordinate of the bounding box.bounds.maxY: The maximum Y coordinate of the bounding box.bounds.maxZ: The maximum Z coordinate of the bounding box.
questlog:trample
Tracks the number of times the player tramples farmland.
This also works with modded farmland (so long the block extends FarmBlock), like Farmer's Delight's Rich Soil.
questlog:enchant
Tracks the number of times the player enchants an item with a specific enchantment. Additional definition fields:
enchantment(optional): The enchantment to track.level(optional, defaults to 1): The level of the enchantment to track.item(optional): The item to track. May be the item itself or a tag prefixed with#.
If enchantment is not specified, the stat will track any enchantment.
If item is not specified, the stat will track any item.
If level is not specified, the stat will track any level.
If nothing is specified, the quest type will track any enchantment event.
These fields are additive, they will only count if every specified predicate tests true.
questlog:effect_added
Tracks the number of times the player gains a specific effect. Does not support tags yet. Additional definition fields:
effect: The effect to track.
questlog:visit_structure
Tracks the number of times the player is in a structure. Does not support tags yet. Additional definition fields:
structure: The structure to check.
questlog:or
Completes if any of the listed child objectives are completed. Additional definition fields:
objectives: A list of objective definitions. The quest logic will check each of these; if one is complete, theorobjective is complete.
questlog:not
Completes if the child objective is not completed. This acts as an inverter. This is primarily useful in triggers to start a quest only if a player has not done something (e.g., "Start this quest if the player has NOT visited the Nether yet"). Additional definition fields:
objective: The single objective definition to invert.
questlog:block_interact
Tracks the number of times the player interacts with a block.
Additional definition fields:
block: The block to track. May be the block itself or a tag prefixed with#.item(optional): The item the player must be holding when interacting. May be the item itself or a tag prefixed with#.
questlog:entity_approach
Tracks when a player approaches an entity.
Additional definition fields:
entity: The entity to track. May be the entity itself or a tag prefixed with#. May also be an object containingidandcustom_name.range: The radius (in blocks) the player must be within to trigger the approach.custom_name(optional): The required custom name of the entity (e.g.,"Elder Villager").
Named Entity Example
You can require approaching an entity with a specific custom name:
{"type": "questlog:entity_approach","entity": "minecraft:villager","custom_name": "Elder Villager","range": 5}
questlog:quest_complete
Tracks the completion of another quest. Very useful as a requirement to create quest lines/trees!
Additional definition fields:
quest: The resource location ID of the quest that needs to be completed (e.g.,"questlog:my_other_quest").
questlog:read
Completes when the player reads a specific quest (opening the quest details in the GUI).
(No additional fields required)
questlog:advancement
Tracks the player granting/completing a vanilla or modded advancement.
Additional definition fields:
advancement: The resource location ID of the advancement to track (e.g.,"minecraft:story/mine_diamond").
questlog:unobtainable
An objective that cannot be progressed or completed by normal player actions. This objective is completely hidden from the objective list in the quest GUI.
It is primarily useful for quests where the completion is tied entirely to external triggers (like the /questlog command), or for creating "dummy" quests that serve only as informational lore entries without a concrete task.
(No additional fields required)