Make object persistent with GameInstance?

Hello.

I know that GameInstance object persist between levels loaded with Open Level.

I know I can store simple variables of bool, integer etc. types.

What I would like to do is to store there the object of more complex type and keep it alive when going to next level.
I don’t want to save and load it before and after each Open Level.

The problem is, when I create this object in level A (this object is C+±based and quite complex) and assign it in level’s blueprint to GameInstance, in level B it will get destroyed (GameInstance → myFancyObject points to NULL).

And I cannot set the GameInstance → myFancyObject in Blueprint because “editing this value in class default object is not allowed”.

Moreover, I cannot just spawn object of my FancyObject type inside GameInstance blueprint because I get error "Cannot construct objects of type /Script/ProjectName.MyFancyObject.