Advancements
Advancements are a system in Minecraft Java Edition that guides players through the game by setting goals and challenges to complete. They serve as in-game achievements that track player progress across various activities.
Overview
Advancements have several key characteristics:
- World-specific: Progress is saved per world, not globally
- Game mode independent: Can be completed in any game mode (Survival, Creative, Adventure, Spectator)
- Non-linear: Can be completed in any order, regardless of parent-child relationships
- Notification system: Completed advancements trigger toast notifications and chat messages
- Customizable: Data packs can add custom advancements with unique criteria and rewards
File Structure
Advancements are stored as JSON files in data packs at:
For complete JSON specification, see the Minecraft Wiki - Advancement Definition.
Creating Advancements
Use the advancement builder function to create advancements in Kore:
This generates data/my_datapack/advancement/my_first_advancement.json.
Display Properties
The display configuration controls how the advancement appears in the advancement screen and notifications.
Basic Display
Display with Chat Components
For styled text with colors and formatting:
Display Properties Reference
| Property | Type | Default | Description |
|---|---|---|---|
icon |
AdvancementIcon |
Required | Item displayed as the advancement icon |
title |
ChatComponents |
Required | Title shown in the advancement screen |
description |
ChatComponents |
Required | Description text below the title |
frame |
AdvancementFrameType |
TASK |
Frame style: TASK, GOAL, or CHALLENGE |
background |
ModelArgument? |
null |
Background texture (root advancements only) |
showToast |
Boolean? |
true |
Show toast notification on completion |
announceToChat |
Boolean? |
true |
Announce completion in chat |
hidden |
Boolean? |
false |
Hide until completed (and hide children) |
Frame Types
Each frame type produces different visual feedback:
| Frame | Notification Header | Header Color | Sound |
|---|---|---|---|
TASK |
"Advancement Made!" | Yellow | Standard |
GOAL |
"Goal Reached!" | Yellow | Standard |
CHALLENGE |
"Challenge Complete!" | Pink | Special music |
Note: Root advancements (without a parent) don't trigger notifications or chat messages.
Icon with Components
Customize the icon with item components like enchantments:
Hidden Advancements
Hidden advancements remain invisible (along with their children) until completed:
Parent Advancements
Set a parent to position the advancement in an existing tree:
Or reference a custom advancement:
Creating a New Tab
To create a new advancement tab, create a root advancement (no parent) with display and a background:
Criteria
Criteria define the conditions that must be met to complete the advancement. Each criterion has a **trigger ** that activates when specific game events occur.
Basic Criteria
Multiple Criteria
Add multiple criteria to an advancement:
Criteria with Predicate Conditions
Add predicate conditions to criteria for additional checks:
For a complete guide on predicates, see the Predicates documentation.
Triggers
Triggers are the events that activate criteria. Kore supports all vanilla triggers:
| Trigger | Description |
|---|---|
allayDropItemOnBlock |
Allay drops an item on a block |
anyBlockUse |
Player uses any block |
avoidVibration |
Player avoids a vibration while sneaking |
beeNestDestroyed |
Player breaks a bee nest/beehive |
bredAnimals |
Player breeds two animals |
brewedPotion |
Player takes item from brewing stand |
changedDimension |
Player travels between dimensions |
channeledLightning |
Player uses Channeling enchantment |
constructBeacon |
Beacon structure is updated |
consumeItem |
Player consumes an item |
crafterRecipeCrafted |
Crafter crafts a recipe |
curedZombieVillager |
Player cures a zombie villager |
defaultBlockUse |
Player uses a block (default interaction) |
effectsChanged |
Player's effects change |
enchantedItem |
Player enchants an item |
enterBlock |
Player enters a block |
entityHurtPlayer |
Entity hurts the player |
entityKilledPlayer |
Entity kills the player |
fallAfterExplosion |
Player falls after an explosion |
fallFromHeight |
Player falls from a height |
filledBucket |
Player fills a bucket |
fishingRodHooked |
Player hooks something with fishing rod |
heroOfTheVillage |
Player becomes Hero of the Village |
impossible |
Never triggers (manual grant only) |
inventoryChanged |
Player's inventory changes |
itemDurabilityChanged |
Item durability changes |
itemUsedOnBlock |
Player uses item on a block |
killedByArrow |
Player kills entities with arrows |
killMobNearSculkCatalyst |
Kill a mob near sculk catalyst |
levitation |
Player has Levitation effect |
lightningStrike |
Lightning strikes near player |
location |
Player is at a specific location |
netherTravel |
Player travels via Nether |
placedBlock |
Player places a block |
playerGeneratesContainerLoot |
Player generates container loot |
playerHurtEntity |
Player hurts an entity |
playerInteractedWithEntity |
Player interacts with entity |
playerKilledEntity |
Player kills an entity |
playerShearedEquipment |
Player shears equipment from entity |
recipeCrafted |
Player crafts a recipe |
recipeUnlocked |
Player unlocks a recipe |
rideEntityInLava |
Player rides entity in lava |
shotCrossbow |
Player shoots a crossbow |
sleptInBed |
Player sleeps in bed |
slideDownBlock |
Player slides down a block |
startedRiding |
Player starts riding |
summonedEntity |
Player summons an entity |
tameAnimal |
Player tames an animal |
targetHit |
Player hits a target block |
thrownItemPickedUpByEntity |
Entity picks up thrown item |
thrownItemPickedUpByPlayer |
Player picks up thrown item |
tick |
Every game tick (use for auto-grant) |
usedEnderEye |
Player uses Eye of Ender |
usedTotem |
Player uses Totem of Undying |
usingItem |
Player is using an item |
villagerTrade |
Player trades with villager |
voluntaryExile |
Player gets Bad Omen |
For detailed trigger documentation, see the Triggers page.
Trigger Examples
Requirements
Requirements define how criteria combine to complete the advancement. By default, all criteria must be completed (AND logic).
Simple Requirements
Require specific criteria by name:
AND Logic (All Required)
Require multiple criteria (all must be met):
OR Logic (Any Required)
Use nested lists for OR groups:
Rewards
Define rewards granted when the advancement is completed:
Reward Properties
| Property | Type | Description |
|---|---|---|
experience |
Int? |
Experience points awarded |
function |
FunctionArgument? |
Function to execute on completion |
loot |
List<LootTableArgument>? |
Loot tables to roll |
recipes |
List<RecipeArgument>? |
Recipes to unlock |
Function Rewards
Execute commands when the advancement is completed:
Multiple Rewards
Telemetry
Control whether completing this advancement sends telemetry data:
Managing Advancements with Commands
Use the /advancement command to grant, revoke, or test advancements.
Using the Advancement Command Block
Target-Specific Block
Advancement Routes
| Route | Description |
|---|---|
ONLY |
Only the specified advancement |
FROM |
Advancement and all its children |
THROUGH |
Advancement, all parents, and all children |
UNTIL |
Advancement and all its parents |
Complete Example
Here's a comprehensive example demonstrating multiple features:
Best Practices
1. Logical Progression
Structure advancements to guide players naturally, even though completion order is flexible.
2. Meaningful Rewards
Match reward value to advancement difficulty - challenging advancements should have worthwhile rewards.
3. Clear Descriptions
Write descriptions that clearly explain what players need to do.
4. Use Hidden Sparingly
Reserve hidden advancements for genuine surprises or easter eggs.
5. Test Criteria
Verify criteria trigger correctly in-game before releasing your data pack.
See Also
- Triggers - Complete trigger reference
- Predicates - Conditions for advancement criteria
- Loot Tables - Loot rewards
- Functions - Function rewards
- Tags - Use tags in conditions
External Resources
- Minecraft Wiki: Advancement - Game mechanics overview
- Minecraft Wiki: Advancement Definition - JSON format specification
