Minecraft – How to reset Recipe Book triggers

minecraft-java-edition

My computer crashed and my level.dat, level.dat_old and player data were 0 bytes.
I knew the seed, so I created a new world with the same seed and copied all the files from the old world (apart from the level.dat and level.dat_old) into it.

The world is back but my Recipe Book is broken.
There are no entries in it, and if I pick something up, e.g. Planks, it doesn't add new recipes. Normally, when you pick up something new it should show a popup and add new items to the Recipe Book.
If I craft something from memory then that does get added to the book, but things I haven't crafted yet and related items are not shown.

The level.dat has a player tag with a Recipe Book tag in it, however, this doesn't seem to store the triggers.

I am okay with my old Recipe Book being lost, but how do I reset the triggers so that Minecraft thinks that anything I pick up is "new", and adds items to the book?

Best Answer

While it is true that the level.dat file stores the recipes available for each player in the recipe book specifically, recipe book triggers are stored as advancements alongside of the other player advancements in their respective folder.

You can revoke all of recipe related advancements by running the command:

/advancement revoke @s from minecraft:recipes/root

However, I recommend you remove all recipes using /recipe take @s * before you remove all of your recipe advancements, otherwise you might run into some recipe conflict issues.

Technically, if you wanted to restore your actual recipe book, you could manually give yourself all of the recipes for the advancements that you currently have, though this would probably take longer than just getting the recipes back normally.