When upgrading a world with the vanilla datapack disabled (but a datapack that has all of the necessary parts besides banner_patterns is enabled) all banners cease to have patterns or be dyable in the crafting table or loom until the world is reloaded.
This effects both single and multiplayer.
Steps to recreate:
Make a world in 1.20.4 or earlier
Make a datapack using the version 1.20.6 datapack and remove the banner_patterns folder, or use the attached banner_test datapack (vanilla but with nothing in the banner_patterns folder)
Create various banners with various patterns and place them, to see the effect immediately upon reopening the world
3a. Optionally save the banners to a creative toolbarDisable vanilla and enable your other vanilla based datapack, simply removing the contents of banner_patterns does not replace vanilla's contents with nothing.
Open the world in 1.20.6 and observe every banner has gone blank and banners can no longer be dyed in a loom, this is expected
Replace banner_patterns in your datapack and do /reload, observe how even saved banners remain blank, no banners can be dyed, and the minecraft:banner_patterns component always gives errors.
6a. Or simply disable your datapack and re-enable vanilla, observe the same issues persisting.Exit the world and enter it again, observe banners behaving as expected again.
I don't know if the banners losing components is easily fixed, but I'd suggest a possible fix to the greater issue of data driven components losing data could be using the vanilla datapack's components as a backup for when they're missing from the enabled packs as to not lose saved banner patterns (and in the future, enchantments and paintings) and not break them entirely, even if temporarily before a full reload.
I know that simply being better prepared when upgrading a world would largely solve the issue of losing data, but since it doesn't show up as an error until you load a banner I was more concerned about being able to open my world than making sure I didn't lose any data (but with this knowledge I will be absolutely certain to not make this same mistake when upgrading in the future). If for some reason it's impossible to make /reload load the banner_patterns (and later, enchantments), perhaps a "[!] Cannot load banner_patterns from reload, please restart your world for the changes to take effect." to save people the pain of needing to replace all their banners or enchanted items or paintings in this context.
Linked issues
is duplicated by 1
relates to 2
Attachments
Comments 6
Can confirm in 1.20.6
I thought the issue is simply about "banner_pattern doesn't reload with /reload" and feature request "data are lost during component validation" (before items were saved in plain nbt
Simpler Reproduce:
Get a Ominous Banner
/reload with mc271857.zip (Nothing happened
Rejoin the world (Ominous Banner loses its pattern
Disable mc271857.zip
Rejoin the world (Ominous Banner still lost its pattern
Thank you for your report!
After consideration, the issue is being closed as Invalid.
This report does not describe a bug.
Quick Links:
📓 Bug Tracker Guidelines – 💬 Community Support – 📧 Mojang Support (Technical Issues) – 📧 Microsoft Support (Account Issues)
📓 Project Summary – ✍️ Feedback and Suggestions – 📖 Game Wiki
As with bugs such as MC-272540, data-driven registries are not reloadable. Disabling the Vanilla pack in this case works as expected, as those banner patterns can no longer exist in the world. 🙂
Please provide any data packs that may be needed to reproduce this issue.