config/customadvancements-common.toml and are applied when the advancement data is loaded.
advancementsBlacklist
advancementsBlacklist is a list of advancement resource location IDs that Custom Advancements removes before the game presents them to players. Resource locations follow the standard Minecraft format namespace:path, for example "minecraft:story/root" or "create:main/root".
config/customadvancements-common.toml
Wildcards are not supported in this version. Each entry must be a complete, valid resource location —
"create:*" is not parsed as “every Create advancement” and simply has no effect. To remove a whole mod’s tree, blacklist that mod’s root advancement and let the cascade do the rest.blacklistIsWhitelist
Setting blacklistIsWhitelist = true inverts the list: instead of removing the listed advancements, Custom Advancements keeps only the listed advancements and removes everything else.
When whitelist mode is active, the ancestors of any whitelisted advancement are preserved automatically even if they are not explicitly listed. This prevents broken trees in which a child exists without the parent it hangs from.
Edge case — empty list plus whitelist mode: if advancementsBlacklist is empty and blacklistIsWhitelist = true, there is nothing to keep, so every advancement is removed. Recipe advancements are the exception: they are left alone unless you also set noRecipeAdvancements = true, so the recipe book keeps functioning.
Examples
- Blacklist mode
- Whitelist mode
Remove specific advancements while keeping everything else.Because the two roots are listed, their whole tabs disappear along with
every advancement inside them. Everything else loads normally.
config/customadvancements-common.toml
Additional Filtering Options
noRecipeAdvancements
Setting noRecipeAdvancements = true removes every advancement whose resource location contains recipes/. This covers both vanilla recipe-unlock advancements and any added by mods, and is processed independently of advancementsBlacklist, so you never need to list recipe advancements by hand.
config/customadvancements-common.toml
noAdvancements
Setting noAdvancements = true removes every advancement in the game for all players, overriding the blacklist and whitelist entirely. Recipe advancements are kept so the recipe book still works; combine it with noRecipeAdvancements = true if you want those gone too.
config/customadvancements-common.toml
disableStandardAdvancementLoad
Setting disableStandardAdvancementLoad = true skips loading the game’s own advancement data altogether. Only the files in your customadvancements/ folder are loaded — no vanilla advancements, no mod advancements, nothing from any datapack. This is the cleanest way to build an advancement system from scratch.
config/customadvancements-common.toml
Overriding an Advancement Instead of Removing It
Sometimes you do not want an advancement gone — you want it changed. Custom Advancements handles that through the same folder it uses for your own content: place a JSON file at the existing advancement’s namespace and path, and your file is loaded in place of the original.1
Export the advancement to a file
Run the generate command with the advancement’s resource location:Tab-complete lists every advancement currently loaded if you are unsure of the exact ID. The mod writes the file to
customadvancements/minecraft/story/mine_stone.json and reloads automatically.To export everything at once, run /ca generate advancement all instead, then delete the files you do not intend to change — every file left behind overrides its original.2
Edit the JSON file
Open the generated file and change whatever you need: criteria, rewards, title, description, icon,
announce_to_chat, parent, and so on.For example, to silence the chat announcement for Mine Stone:customadvancements/minecraft/story/mine_stone.json
3
Reload to apply the change
Run
/ca reload in-game or from the server console, or restart. Your file replaces the original advancement.Override files go in
customadvancements/<namespace>/, for example customadvancements/minecraft/story/mine_stone.json. Do not put them in customadvancements/customadvancements/, which registers everything under the customadvancements namespace and would create a new advancement rather than replacing the vanilla one. The /ca generate commands always write to the correct place for you. See Structure.customadvancements — those files live directly in your folder and are managed by hand, not generated.
Finding Advancement IDs
Run/ca generate resource_locations in-game or from the server console to write every currently loaded advancement ID to customadvancements/resource_locations.txt, one per line:
advancementsBlacklist, in advancementSortingList, or as the argument to /ca generate advancement. See Commands for more information.