Minecraft Advancement Generator
Create custom advancements for Minecraft datapacks with triggers, criteria, and rewards
Display Settings
How the advancement appears in the UI
Leave empty for root advancement (requires background)
Preview
Toast Notification
Advancement Made!
My Advancement
Complete this advancement!
Generated JSON
{
"display": {
"icon": {
"id": "minecraft:diamond"
},
"title": "My Advancement",
"description": "Complete this advancement!",
"frame": "task",
"show_toast": true,
"announce_to_chat": true,
"hidden": false
},
"criteria": {
"requirement": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"items": "minecraft:diamond"
}
]
}
}
},
"requirements": [
[
"requirement"
]
]
}Usage
Save as: data/namespace/advancements/path.json
Grant: /advancement grant @p only namespace:path
Revoke: /advancement revoke @p only namespace:path
How to Use the Minecraft Advancement Generator
Minecraft advancements are the achievement system in Java Edition, guiding players through the game with custom goals and rewards. This generator creates the JSON files you need for custom advancement datapacks — no manual editing required. Works with Minecraft Java Edition 1.13+.
Step 1: Set Up the Display
Start by entering a title and description for your advancement. Choose an icon item from the dropdown — each item shows a preview emoji so you know what it represents. Select the frame type: Task (normal square), Goal (rounded, for major milestones), or Challenge (spiked purple frame for difficult achievements).
Step 2: Define Criteria
Switch to the Criteria tab to set up what the player must do to earn the advancement. Choose from 14 trigger types like inventory_changed (pick up an item), player_killed_entity (kill a mob), or changed_dimension (enter the Nether or End). Add multiple criteria for complex advancements.
Step 3: Add Rewards
The Rewards tab lets you give players experience points, unlock recipes, grant loot tables, or run a function when they complete the advancement. For example, set 100 XP and a loot table like minecraft:chests/simple_dungeon to reward exploration-based advancements.
Step 4: Export and Install
Copy or download the generated JSON file. Place it in your datapack at data/namespace/advancements/path.json. Run /reload in-game to load it. You can also manually grant advancements with /advancement grant @p only namespace:path.
What Are Minecraft Advancements?
Advancements replaced the old achievement system in Minecraft Java Edition 1.12. Unlike achievements, advancements are fully data-driven — server operators and map makers can create custom advancement trees using JSON files inside datapacks. Each advancement has a display (icon, title, frame), one or more criteria (triggers that detect player actions), and optional rewards.
Minecraft includes five built-in advancement tabs: Minecraft (basic survival), Nether, The End, Adventure, and Husbandry. Custom advancements can create entirely new tabs or extend existing ones by setting the parent field to chain advancements into trees.
The three frame types affect how advancements appear in the advancement screen: Task is a square frame for normal objectives, Goal uses a rounded frame for significant milestones, and Challenge has a spiked frame with purple text for the most difficult achievements. Each frame type also changes the toast notification style.
Frequently Asked Questions
What Minecraft versions support custom advancements?
Custom advancements work in Minecraft Java Edition 1.13 and above. The advancement system was introduced in 1.12, but the JSON format changed in 1.13 with the Flattening update. This generator outputs the modern 1.13+ format. Bedrock Edition uses a different system and does not support datapack advancements.
How do I create an advancement tree with multiple branches?
Set the "parent" field to chain advancements together. A root advancement (no parent) creates a new tab — it needs a background texture. Child advancements reference their parent using the format "namespace:path". For example, set parent to "minecraft:story/root" to add to the Minecraft tab, or use your own namespace for a custom tab.
What is the difference between Task, Goal, and Challenge frames?
Task is the default square frame for normal objectives. Goal uses a rounded frame and is meant for significant milestones (like reaching the Nether). Challenge has a spiked frame with purple text and is reserved for the hardest achievements. The frame type also changes the toast notification header text that appears when the advancement is earned.
Can I give players items when they complete an advancement?
Yes, use the Rewards tab. You can grant experience points directly, unlock recipes, run loot tables for random items, or execute a function that runs any commands. For giving specific items, create a loot table or function that uses the /give command.
How do I make a hidden advancement in Minecraft?
Enable the "Hidden" checkbox in the Display tab. Hidden advancements don't appear in the advancement screen until their parent is completed. This is useful for secret achievements or late-game surprises. The advancement will still show as completed once earned.
Where do I put advancement JSON files in my datapack?
Place files in your datapack at data/<namespace>/advancements/<path>.json. For example, data/mypack/advancements/custom/first_diamond.json creates an advancement at mypack:custom/first_diamond. Run /reload in-game to apply changes. The folder structure determines the advancement's namespaced ID.
Related Minecraft Tools
Create Custom Advancement Trees on Your Server
Build immersive custom advancement systems with guided progression for your players. Get your own Minecraft server with instant setup and full datapack support.
View Hosting Plans