So, implemented what you suggested.
Changed the variables as per your instruction:
UPROPERTY(EditAnywhere, BlueprintReadWrite, Transient)
TArray<UObject*> TempObjects;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Transient)
TArray<UObject*> PersistentOuters;
And set the PersistentOuters[0] = GameInstance
before calling
Saving and Loading work if I don’t close the game. If I do loading after restarting the game MasterStateObj
has no content.
The error I get is it fails at finding Engine/Transient
(see logs).
Output below so you see the paths (All the outputs appear as errors, I just used that as it comes out in Red and it’s easy to see. They are not errors per say):
Saving:
LogSavingTest: Display: Complete Load UObject /Engine/Transient.UnrealEdEngine_0:MyGameInstance_C_0.MasterStateObj_1 0
LogSavingTest: Display: Complete Load UObject /Engine/Transient.UnrealEdEngine_0:MyGameInstance_C_0.MasterStateObj_1.MyObjectBIG_0 1
LogSavingTest: Display: Complete Load UObject /Engine/Transient.UnrealEdEngine_0:MyGameInstance_C_0.MasterStateObj_1.MyObjectBIG_0.MyObjectA_0 2
LogSavingTest: Display: Complete Load UObject /Engine/Transient.UnrealEdEngine_0:MyGameInstance_C_0.MasterStateObj_1.MyObjectBIG_0.MyObjectBB_0 3
LogSavingTest: Display: Complete Load UObject /Engine/Transient.UnrealEdEngine_0:MyGameInstance_C_0.MasterStateObj_1.MyObjectBIG_0.MyObjectA_1 4
LogSavingTest: Display: Complete Load UObject /Engine/Transient.UnrealEdEngine_0:MyGameInstance_C_0.MasterStateObj_1.MyObjectBIG_0.MyObjectA_0.MyObjectBB_0 5
LogSavingTest: Display: Complete Load UObject /Engine/Transient.UnrealEdEngine_0:MyGameInstance_C_0.MasterStateObj_1.MyObjectBIG_0.MyObjectA_1.MyObjectBB_0 6
LogSavingTest: Display: ------UObjectDataLoader
LogSavingTest: Error: LoadData
LogSavingTest: Display: --Complete LoadData UObject /Engine/Transient.UnrealEdEngine_0:MyGameInstance_C_0.MasterStateObj_1
LogSavingTest: Display: --Complete UObjectDataLoader UObject /Engine/Transient.UnrealEdEngine_0:MyGameInstance_C_0.MasterStateObj_1
LogSavingTest: Error: LoadData
LogSavingTest: Display: --Complete LoadData UObject /Engine/Transient.UnrealEdEngine_0:MyGameInstance_C_0.MasterStateObj_1.MyObjectBIG_0
LogSavingTest: Display: --Complete UObjectDataLoader UObject /Engine/Transient.UnrealEdEngine_0:MyGameInstance_C_0.MasterStateObj_1.MyObjectBIG_0
LogSavingTest: Error: LoadData
LogSavingTest: Display: --Complete LoadData UObject /Engine/Transient.UnrealEdEngine_0:MyGameInstance_C_0.MasterStateObj_1.MyObjectBIG_0.MyObjectA_0
LogSavingTest: Display: --Complete UObjectDataLoader UObject /Engine/Transient.UnrealEdEngine_0:MyGameInstance_C_0.MasterStateObj_1.MyObjectBIG_0.MyObjectA_0
LogSavingTest: Error: LoadData
LogSavingTest: Display: --Complete LoadData UObject /Engine/Transient.UnrealEdEngine_0:MyGameInstance_C_0.MasterStateObj_1.MyObjectBIG_0.MyObjectBB_0
LogSavingTest: Display: --Complete UObjectDataLoader UObject /Engine/Transient.UnrealEdEngine_0:MyGameInstance_C_0.MasterStateObj_1.MyObjectBIG_0.MyObjectBB_0
LogSavingTest: Error: LoadData
LogSavingTest: Display: --Complete LoadData UObject /Engine/Transient.UnrealEdEngine_0:MyGameInstance_C_0.MasterStateObj_1.MyObjectBIG_0.MyObjectA_1
LogSavingTest: Display: --Complete UObjectDataLoader UObject /Engine/Transient.UnrealEdEngine_0:MyGameInstance_C_0.MasterStateObj_1.MyObjectBIG_0.MyObjectA_1
LogSavingTest: Error: LoadData
LogSavingTest: Display: --Complete LoadData UObject /Engine/Transient.UnrealEdEngine_0:MyGameInstance_C_0.MasterStateObj_1.MyObjectBIG_0.MyObjectA_0.MyObjectBB_0
LogSavingTest: Display: --Complete UObjectDataLoader UObject /Engine/Transient.UnrealEdEngine_0:MyGameInstance_C_0.MasterStateObj_1.MyObjectBIG_0.MyObjectA_0.MyObjectBB_0
LogSavingTest: Error: LoadData
LogSavingTest: Display: --Complete LoadData UObject /Engine/Transient.UnrealEdEngine_0:MyGameInstance_C_0.MasterStateObj_1.MyObjectBIG_0.MyObjectA_1.MyObjectBB_0
LogSavingTest: Display: --Complete UObjectDataLoader UObject /Engine/Transient.UnrealEdEngine_0:MyGameInstance_C_0.MasterStateObj_1.MyObjectBIG_0.MyObjectA_1.MyObjectBB_0
Loading:
As soon as I call LoadGameFromSlot()
I get
LogUObjectGlobals: Warning: Failed to find object 'Object None.None'
LogUObjectGlobals: Warning: Failed to find object 'Object None.None'
LogUObjectGlobals: Warning: Failed to find object 'Object None.None'
LogUObjectGlobals: Warning: Failed to find object 'Object None.None'
LogUObjectGlobals: Warning: Failed to find object 'Object None.None'
LogUObjectGlobals: Warning: Failed to find object 'Object None.None'
LogUObjectGlobals: Warning: Failed to find object 'Object None.None'
LogUObjectGlobals: Warning: Failed to find object 'Object None.None'
LogUObjectGlobals: Warning: Failed to find object 'Object None.None'
LogUObjectGlobals: Warning: Failed to find object 'Object None.None'
LogUObjectGlobals: Warning: Failed to find object 'Object None.None'
LogUObjectGlobals: Warning: Failed to find object 'Object None.None'
LogUObjectGlobals: Warning: Failed to find object 'Object None.None'
LogUObjectGlobals: Warning: Failed to find object 'Object None.None'
And, after
LogSavingTest: Display: ------UObjectsPreloader
LogSavingTest: Display: Complete Load UObject /Engine/Transient.UnrealEdEngine_0:MyGameInstance_C_1.MasterStateObj_1 0
LogSavingTest: Display: Complete Load UObject /Engine/Transient.UnrealEdEngine_0:MyGameInstance_C_1.MasterStateObj_1.MyObjectBIG_0 1
LogSavingTest: Display: Complete Load UObject /Engine/Transient.UnrealEdEngine_0:MyGameInstance_C_1.MasterStateObj_1.MyObjectBIG_0.MyObjectA_0 2
LogSavingTest: Display: Complete Load UObject /Engine/Transient.UnrealEdEngine_0:MyGameInstance_C_1.MasterStateObj_1.MyObjectBIG_0.MyObjectBB_0 3
LogSavingTest: Display: Complete Load UObject /Engine/Transient.UnrealEdEngine_0:MyGameInstance_C_1.MasterStateObj_1.MyObjectBIG_0.MyObjectA_1 4
LogSavingTest: Display: Complete Load UObject /Engine/Transient.UnrealEdEngine_0:MyGameInstance_C_1.MasterStateObj_1.MyObjectBIG_0.MyObjectA_0.MyObjectBB_0 5
LogSavingTest: Display: Complete Load UObject /Engine/Transient.UnrealEdEngine_0:MyGameInstance_C_1.MasterStateObj_1.MyObjectBIG_0.MyObjectA_1.MyObjectBB_0 6
LogSavingTest: Display: ------UObjectDataLoader
LogSavingTest: Error: LoadData
LogLinker: Warning: Failed to load '/Engine/Transient': Can't find file.
LogUObjectGlobals: Warning: Failed to find object 'Object /Engine/Transient.UnrealEdEngine_0.MyGameInstance_C_0.MasterStateObj_1.MyObjectBIG_0'
LogSavingTest: Display: --Complete LoadData UObject /Engine/Transient.UnrealEdEngine_0:MyGameInstance_C_1.MasterStateObj_1
LogSavingTest: Display: --Complete UObjectDataLoader UObject /Engine/Transient.UnrealEdEngine_0:MyGameInstance_C_1.MasterStateObj_1
LogSavingTest: Error: LoadData
LogLinker: Warning: Failed to load '/Engine/Transient': Can't find file.
LogLinker: Warning: Failed to load '/Engine/Transient': Can't find file.
LogLinker: Warning: Failed to load '/Engine/Transient': Can't find file.
LogSavingTest: Display: --Complete LoadData UObject /Engine/Transient.UnrealEdEngine_0:MyGameInstance_C_1.MasterStateObj_1.MyObjectBIG_0
LogSavingTest: Display: --Complete UObjectDataLoader UObject /Engine/Transient.UnrealEdEngine_0:MyGameInstance_C_1.MasterStateObj_1.MyObjectBIG_0
LogSavingTest: Error: LoadData
LogLinker: Warning: Failed to load '/Engine/Transient': Can't find file.
LogSavingTest: Display: --Complete LoadData UObject /Engine/Transient.UnrealEdEngine_0:MyGameInstance_C_1.MasterStateObj_1.MyObjectBIG_0.MyObjectA_0
LogSavingTest: Display: --Complete UObjectDataLoader UObject /Engine/Transient.UnrealEdEngine_0:MyGameInstance_C_1.MasterStateObj_1.MyObjectBIG_0.MyObjectA_0
LogSavingTest: Error: LoadData
LogSavingTest: Display: --Complete LoadData UObject /Engine/Transient.UnrealEdEngine_0:MyGameInstance_C_1.MasterStateObj_1.MyObjectBIG_0.MyObjectBB_0
LogSavingTest: Display: --Complete UObjectDataLoader UObject /Engine/Transient.UnrealEdEngine_0:MyGameInstance_C_1.MasterStateObj_1.MyObjectBIG_0.MyObjectBB_0
LogSavingTest: Error: LoadData
LogLinker: Warning: Failed to load '/Engine/Transient': Can't find file.
LogSavingTest: Display: --Complete LoadData UObject /Engine/Transient.UnrealEdEngine_0:MyGameInstance_C_1.MasterStateObj_1.MyObjectBIG_0.MyObjectA_1
LogSavingTest: Display: --Complete UObjectDataLoader UObject /Engine/Transient.UnrealEdEngine_0:MyGameInstance_C_1.MasterStateObj_1.MyObjectBIG_0.MyObjectA_1
LogSavingTest: Error: LoadData
LogSavingTest: Display: --Complete LoadData UObject /Engine/Transient.UnrealEdEngine_0:MyGameInstance_C_1.MasterStateObj_1.MyObjectBIG_0.MyObjectA_0.MyObjectBB_0
LogSavingTest: Display: --Complete UObjectDataLoader UObject /Engine/Transient.UnrealEdEngine_0:MyGameInstance_C_1.MasterStateObj_1.MyObjectBIG_0.MyObjectA_0.MyObjectBB_0
LogSavingTest: Error: LoadData
LogSavingTest: Display: --Complete LoadData UObject /Engine/Transient.UnrealEdEngine_0:MyGameInstance_C_1.MasterStateObj_1.MyObjectBIG_0.MyObjectA_1.MyObjectBB_0
LogSavingTest: Display: --Complete UObjectDataLoader UObject /Engine/Transient.UnrealEdEngine_0:MyGameInstance_C_1.MasterStateObj_1.MyObjectBIG_0.MyObjectA_1.MyObjectBB_0