Generically list Properties of a UObject

You can grab and even filter UProperties of a class using TFieldIterator. UField is most lowest reflection system class, which included UFunction, UProperty, UClass etc so you can use it not just for properties but also functions

You can use it like this:

for (TFieldIterator<UProperty> It(UClassPointerOfClassYouWantPropertiesToBeListed); It; ++It) {
     SomeArray->Add(*It)
}

You don’t need to make array you can do somethng with properties stright away