My Game Instance is saying my Widget Reference isn't valid after switching level.

When the game begins, I create all of my widgets and promote them as a variable within my player blueprint.

Then when you accept a quest, a widget button gets added to the Widget QuestLog and it’s data stored inside the button as well as stored inside the Game Instance in Arrays. All of this code in the image below is done inside a separate widget blueprint called Dialogue.

This is what GI_AddToQuestLog looks like when it adds the button, there is more code further on but isn’t relevant for this.

You can see I add a Is Valid Node. When you’re in the Level you spawn in, lets call it 1, the button adds to the quest log as normal because the widget is valid. When I switch level to 2, The level 2 blueprint runs this function which uses the stored data in the Game Instance to re-populate the QuestLog widget so the quests stay consistent when switching levels.

When this runs however, it says the reference to the QuestLog widget is not valid and doesn’t work further.

I’m pretty unexperienced with Game Instances and I need this to work for my uni project - it’s an open world game where the quests need to carry over from entering and exiting buildings (levels).

Any help would be appreciated!

I didn’t read this in great detail, but I can tell you that anything that isn’t held in the game instance will get trashed if you’re using ‘open level’.

How are you switching?