/ca and the full /customadvancements. Both are registered at startup and behave identically — use whichever you prefer. The examples on this page use the short form.
None of the Custom Advancements commands require operator permissions. Any connected player can run them, and in single-player they work whether or not cheats are enabled for the world.
Commands at a Glance
/ca generate resource_locations
Writes every currently known advancement resource location to a plain-text file on disk. Run this first whenever you need the exact IDs to build a blacklist, a sorting list, or a connected-advancements entry.
- Sends “Starting to write resource locations to file…” to the executing player’s chat.
- Collects every advancement ID known to the mod — both game advancements and your own custom advancements.
- Writes them to
<game_dir>/customadvancements/resource_locations.txt, one entry per line, each followed by a comma. - Sends “Finished!” on success, or an error message if the file could not be written.
Output File Format
Each line inresource_locations.txt looks like this:
Failure Conditions
[INSERT IMAGE: Chat output after running /ca generate resource_locations, showing the “Starting…” and “Finished!” messages]
/ca generate advancement <advancement>
Exports a single advancement, identified by its resource location, as a JSON file inside the customadvancements/ folder. Tab-completion is available for the argument and lists every advancement currently loaded on the server.
Arguments
ResourceLocation
required
The resource location of the advancement to export, in
namespace:path format (for example minecraft:story/mine_stone). Tab-complete shows every loaded advancement. The command fails immediately if the namespace is customadvancements, because those files already live in your folder and are managed by hand.- Checks that the advancement’s namespace is not
customadvancements. If it is, the command fails. - Writes the advancement to
<game_dir>/customadvancements/<namespace>/<path>.json, creating any subfolders it needs. The example above producescustomadvancements/minecraft/story/mine_stone.json. - Sends “Successfully generated file for: <id>” on success.
- Triggers a full reload so the exported file takes effect immediately.
customadvancements/ folder, it overrides the original advancement from this point on. Edit it to change the advancement, or delete it to go back to the original. See Blacklist & Whitelist for the full override workflow.
Failure Conditions
/ca generate advancement all
Exports every currently loaded advancement — vanilla and every installed mod — as individual JSON files, organized by namespace. This is the fastest way to get accurate, working templates for every trigger and condition structure in the game.
- Sends “Starting to generate files for game advancements…” to chat.
- Runs the export on a background daemon thread, so the server stays responsive while files are written.
- Writes each advancement to
<game_dir>/customadvancements/<namespace>/<path>.json, preserving the original folder structure. - Reports “Generated <N> files for game advancements successfully!” on completion.
- Triggers a full reload so all exported files take effect immediately.
Failure Conditions
/ca reload
Reloads all Custom Advancements files without a server restart or a world rejoin. Run it whenever you add, edit, or delete an advancement file and want to see the result immediately.
- All custom advancement JSON files in
customadvancements/customadvancements/ - All override files in the other namespace folders, such as
customadvancements/minecraft/ - All textures in
customadvancements/data/textures/ - All language files in
customadvancements/data/lang/
What Does Not Get Reloaded
Feedback Messages
The
/ca generate commands trigger a reload automatically once they finish writing, so you do not need to run /ca reload after them.