UMG broke my Project....

I was working with UMG last night, and everything was working great. Saved All and closed, came back today, now none of the maps that have the Character/GameState/Hud/Controller that interact with any of my UMG elements will load. The engine crashes as soon as I select any one of those blueprints or try to load a map that has them set as default. I can’t even open them in the editor…

Scratch that, I cannot even right click on them in the content browser…

Can you try to load a map from a backup?

It’s not the maps, I’ve tried copying the blueprints to a new project.

it appears that if I isolate each blueprint they can be edited.

just delete the umg asset files?

It wasnt the UMG asset, it was a Blueprint Interface interacting with it. Once I deleted the interface it allowed me to salvage the BP’s. Granted I have to redo a lot of connections. Better than redoing the whole thing.

broke my levels though going to have to find a work around for them

Be careful, this seems to happen whenever you add a UMG Variable to a BP interface (Maybe it happens only with custom widget variables).

I used to have this problem whenever I added an interface function with a UMG widget variable, although it might be hard to reproduce.

This sounds much like the issues that I’ve been having with circular referencing and UMG. Use Interfaces as much as possible and pass UMG widgets as User Widgets,casting them to your widget of choice wherever you choose to implement the interface function of choice. I’ve learned to keep backups of all the blueprints that I’ll be working on before making any changes (as soon as they’re stable of course). I choose to implement a lot of my interface stuff inside of my player controller because it has easy access to the HUD.

Good Luck :slight_smile:

actually, I would suggest use Interface exclusively for any cross objects events/functions call.
If you are not doing C++ objects, cast any BP will cause dependency. Where with interface, only interface change would require recompile for BP that implements it.
(also be careful if you change the input/output of existing ones.)

I’ve almost never run into dependency corruption after I use this approach.