.json file placed inside the customadvancements/ folder in your Minecraft game directory. The mod scans that whole folder tree on every load — and on every /ca reload — validates each file it finds, and applies the results to every world you play or host. No per-world datapack setup is required.
Folder Layout
The mod creates the following tree inside your game directory the first time it runs:customadvancements/
The mod’s root directory, located directly inside your game directory. Everything the mod reads lives here. You never place files directly in this root folder — always in a namespace subfolder.
customadvancements/customadvancements/
Where your brand-new advancements go. Everything in here is registered under the
customadvancements namespace.customadvancements/data/textures/
Custom image files used as advancement tab backgrounds. See Textures.
customadvancements/data/lang/
Translation files for your advancement titles and descriptions, one per locale. See Language Files.
Namespaces and Resource Locations
The advancement’s resource location is derived directly from its file path relative to thecustomadvancements/ root. The first folder level becomes the namespace, and everything after it becomes the path:
- Custom advancements
- Game advancement overrides
Files inside
customadvancements/customadvancements/ are registered as new advancements under the customadvancements namespace. The subfolders you create beneath it become path segments.All of your own advancements share the
customadvancements namespace no matter which subfolder you place them in — the subfolder name becomes part of the path, not the namespace. Use distinct subfolder names to group related advancements and avoid naming collisions.The
data/ folder is never scanned for advancement JSON. It is reserved exclusively for textures and language files.Top-Level JSON Fields
object
required
Controls how the advancement appears in the advancements screen: icon, title, description, frame style, background, toast, and chat notification. See Display for the full list of sub-fields.
string
Resource location of the parent advancement, e.g.
customadvancements:root. Omit this field to make the advancement a root — it will appear as its own tab in the advancements screen. A parent may be one of your own advancements, a vanilla advancement (minecraft:story/root), or any mod advancement.object
required
A map of criterion names to trigger definitions. Each key is an arbitrary string identifier for the criterion, and the value defines which game event fires it and any conditions that must be met. See Criteria for details and examples.
array of arrays
A two-dimensional array that expresses logical AND/OR combinations of criteria. The outer array is AND; each inner array is OR. If this field is omitted, all criteria must be satisfied.The example above means:
(criterion_a OR criterion_b) AND criterion_c.object
Optional rewards granted when the advancement is completed. Supported sub-fields:
"experience"— integer amount of XP points"loot"— array of loot table resource locations"recipes"— array of recipe resource locations to unlock"function"— resource location of a function to run
Validation Rules
Custom Advancements validates every JSON file before loading it. A file is accepted only if all of the following hold:- It contains a top-level
criteriaobject. - It contains a top-level
displayobject. - If it has no
parentfield, itsdisplayobject must contain abackgroundfield.
recipes/ path are exempt from these checks and always pass.
Minimal Root Advancement
A root advancement has noparent field and must include a background in its display block so the game can render the tab. The minecraft:tick trigger fires every game tick and is the conventional way to make a root advancement complete immediately.
root.json
Minimal Child Advancement
A child advancement links to its parent via theparent field. The resource location must match the namespace and path of the parent file exactly, without the .json extension.
example.json
display sub-field, see Display. For criteria and trigger definitions, see Criteria.