What are the best practices for creating UMG widgets in a multi-level project?

UMG Widgets in GameInstance object not valid after level change.

Unreal Engine version 4.9.1, blueprint project

In the pursuit of persistent widgets across levels for inventory and HUD, I’ve created (and saved to variable) widgets in the GameInstance object of my project, everything works fine until I call the Node OpenLevel.

After the new level loads, the widgets are gone; the widget references are no longer valid.
Other variables in the GameInstance object retain their values but not the UMG Widgets.


Question: In a project with a large open world (streaming levels) for outside and smaller levels loaded by blueprint for inside buildings and caves, what are the best practices for creating UMG widgets in a multi-level project? Should I just recreate all my widgets in the Event BeginPlay for every level opened by blueprint?

I’ve come across this too. It didn’t used to be the case. Is this new desired functionality or a bug Epic?

, I would store off the data displayed in the UI and just reinitialise it when the level changes.