This is what I have been using, hope it helps someone
// .h
UFUNCTION(BlueprintPure, Category = "BPFunctions")
static ERegionInfo GetRegionInfoFromString(FString RegionString);
// .cpp
ERegionInfo PROJ_BlueprintFunctions::GetRegionInfoFromString(FString RegionString)
{
const FString ERegionInfoString{ TEXT("ERegionInfo") };
const UEnum* RegionInfoEnum{ FindObject<UEnum>(ANY_PACKAGE, *ERegionInfoString, true) };
if (RegionInfoEnum)
{
int32 Index{ RegionInfoEnum->GetIndexByNameString(RegionString) };
const ERegionInfo RegionInfoCheck{ ERegionInfo((uint8)Index) };
// Check if the enum is valid
if (UEnum::GetValueAsString(RegionInfoCheck) != TEXT("None"))
{
return RegionInfoCheck;
}
}
// Fallback if nothing is found
const ERegionInfo RegionInfo{ ERegionInfo::RE_NoSelection };
return RegionInfo;
}