I finally found a workaround to this problem. AmphDev’s workaround didn’t work for me, but it was the right idea and sent me down this path.
- Open project in UE4.
- Go to your project’s content folder in explorer, and recursively make everything read only. (I did this on Content\FirstPersonBP\Blueprints for my project)
- In explorer, locate the child struct and parent struct(s) that you want to change, and uncheck read only.
- Change the child struct as you please, and save it. Then save the parent struct(s).
- Close the UE4 editor (don’t let it save the files it thinks has changed, it won’t be able to anyway).
- Go back to explorer where you recursively made everything read only, and uncheck read only.
- Open your project back up.
- Rejoice, for your old code is still together and functional!
Fundamentally, it seems like changing a child struct destroys the parent struct for long enough that any assets using the parent struct have a bunch of references removed. So, if you make those assets read-only, the UE4 editor can’t stomp all over them.
What a frustrating bug. Hours upon hours wasted…