Skip to main content
Every advancement that already exists in Minecraft or in another mod you have installed is something Custom Advancements can take over. There are two ways to do that: override it, by placing your own JSON file in a namespace folder so the mod replaces the original data, or remove it outright through the configuration file. Overriding is covered in Structure; this page covers removal. All of these options live in config/customadvancements-common.toml and are applied when the game or server starts.
Removing an advancement is usually cleaner than overriding it when your goal is simply for players not to see it — for example, story advancements that no longer apply in a custom modpack scenario. Reach for an override only when you want to change what an advancement does or how it looks.

Finding Advancement IDs

Every advancement is identified by a resource location in the format namespace:path, for example minecraft:story/mine_stone. Before you can blacklist anything, you need the exact IDs of the advancements you want to target. Run the following command in-game or from the server console:
It writes every currently loaded advancement ID, one per line, to customadvancements/resource_locations.txt. Open that file and search it to find the IDs you need. See Commands for details.
Resource location paths mirror the folder structure of the advancement data. A vanilla advancement stored at data/minecraft/advancements/story/mine_stone.json has the ID minecraft:story/mine_stone.

advancementsBlacklist

advancementsBlacklist is a list of advancement resource location IDs that Custom Advancements removes before the game presents them to players. Each entry must be a quoted string in namespace:path form — no .json extension and no leading slash.
config/customadvancements-common.toml
With blacklistIsWhitelist = false (the default), every ID in the list is removed and all other advancements continue to work normally. When an advancement is removed, all of its children are removed automatically as well. The cascade is recursive — grandchildren, great-grandchildren, and so on are all cleared without needing to list them individually.
Removing a root advancement (one with no parent) removes its entire tab from the advancements screen. Players will see no trace of that tab. Make sure this is intentional before blacklisting a root advancement.
Entries are validated against the advancements actually loaded on the server. An ID that does not correspond to a real advancement — a typo, or an advancement belonging to a mod you have since removed — is rejected and the option falls back to its default. If your whole blacklist appears to be ignored, check every entry for spelling and case.

blacklistIsWhitelist

Setting blacklistIsWhitelist = true inverts the list: instead of removing the listed advancements, Custom Advancements keeps only the listed advancements and removes everything else.
config/customadvancements-common.toml
When whitelist mode is active, the parent advancements of any whitelisted advancement are preserved automatically even if they are not explicitly listed. This prevents broken trees where a child exists without its parent.
Empty list plus whitelist mode removes everything. If advancementsBlacklist is empty and blacklistIsWhitelist = true, there is nothing to keep, so every advancement is removed. This is a useful way to start from a blank slate and add back only your own custom advancements — but it is easy to trigger by accident.

Examples

Remove specific advancements while keeping everything else.
config/customadvancements-common.toml
This removes the End and Nether advancement tabs entirely — along with every advancement beneath them — plus one adventure advancement. All other advancements load normally.

Additional Filtering Options

noRecipeAdvancements

Setting noRecipeAdvancements = true removes every recipe-unlock advancement. This covers both vanilla recipe advancements and any added by mods, and it suppresses the recipe unlock toast notifications that go with them. It is processed independently of advancementsBlacklist, so you do not need to list recipe advancements by hand.
config/customadvancements-common.toml
Combining noRecipeAdvancements = true with a targeted advancementsBlacklist is a clean way to tidy up the advancement screen without losing any gameplay-relevant advancements.

noAdvancements

Setting noAdvancements = true removes every advancement in the game without listing any of them individually — vanilla, mod-added, and custom alike. It takes precedence over advancementsBlacklist, so there is no need to populate the blacklist alongside it.
config/customadvancements-common.toml
Recipe advancements are the one exception: they are skipped by the bulk removal so that recipe unlocks keep working. Set noRecipeAdvancements = true as well if you want those gone too.

disableStandardAdvancementLoad

Setting disableStandardAdvancementLoad = true makes the mod overwrite the standard advancement loading pipeline with its own generated advancements rather than loading the game’s advancement data as-is. This is the most aggressive option and is intended for modpack authors who want full control over what reaches the advancement screen.
config/customadvancements-common.toml
Recipes that rely on advancement triggers may behave unexpectedly under this option unless you recreate the necessary advancements yourself. Test thoroughly before shipping it in a pack.

Applying Your Changes

Blacklist and whitelist changes are read from the config file at startup. /ca reload reloads advancement JSON, textures, and language files but does not re-read the config — restart the game or server to apply an edit to any option on this page. See Config File.