TSoftClassPtr is null after each UE restart

jwatte is right you need to load the soft pointer otherwise it’s null (that is why it saves memory)

Try something like this

void USpawnerSettings::Load(){
	FSoftObjectPath AssetData  = DataInfo.ToSoftObjectPath();
	if (AssetData.IsValid()) {				
		USpawnerDataInfo * LoadedAsset = Cast<USpawnerDataInfo>(AssetData.TryLoad());
	};
}

LoadedAsset should be the retrieved asset from the soft pointer.