I have doubt on this section at the top , the first for loop starts
for (auto Array : LobbySpawnLocationRows->GetRowNames())
{
if (const UDataTable * LobbySpawnLocationRowNames{ LoadObject<UDataTable>(GetWorld(), TEXT("/Game/DataTables/ItemsGeneration/Locationtesting")) })
{
if (const FST_ItemGroupLocation * OutRow_LSN{ LobbySpawnLocationRowNames->FindRow<FST_ItemGroupLocation>(FName(Array), "") })
{
FVector SpawnTransform{};
FTransform MakeTransform_Ret{};
SpawnTransform = FVector(OutRow_LSN->Location);
MakeTransform_Ret = UKismetMathLibrary::MakeTransform(SpawnTransform, FRotator(0.000000, 0.000000, 0.000000), FVector(1.000000, 1.000000, 1.000000));
AActor* BeginSpawnClass = UGameplayStatics::BeginDeferredActorSpawnFromClass(this, AItemGroup::StaticClass(), MakeTransform_Ret, ESpawnActorCollisionHandlingMethod::Undefined, ((AActor*)nullptr));
MakeTransform_Ret = UKismetMathLibrary::MakeTransform(SpawnTransform, FRotator(0.000000, 0.000000, 0.000000), FVector(1.000000, 1.000000, 1.000000));
ItemGroupRef = CastChecked<AItemGroup>(UGameplayStatics::FinishSpawningActor(BeginSpawnClass, MakeTransform_Ret), ECastCheckedType::NullAllowed);
}
}