Best way to storage and use data for objects?

Well… a struct is very similar to a class. In the C language, classes didn’t actually exist and people just used structs everywhere. Classes came into existence with C++ and helped create object oriented programming. Classes are structs, but extend the capabilities. A class can inherit from other classes, structs cannot. A class can also have member functions, but typically structs do not. People think of structs primarily as data containers and classes like objects which can be instantiated, but you can very easily use a class like a struct. As far as the compiler is concerned, they’re organized very similarly in memory.

You can use a data table. There’s nothing wrong with that. In some cases, it would be a good idea. I tend to think of classes like templates with variable values which can be set on a per-instance basis. If you have a soldier class, it will have a lot of properties which are common to all soldiers. But, if you created a 100 instances of soldiers and wanted to have a little bit of variety between soldiers (such as variations in hitpoints, endurance, strength, etc), you could either create a bunch of soldier variants with preloaded data values or select the values randomly from a preset range. If you have premade variants, you could just toggle the soldier variants with a drop down list which maps to an ID, and that ID can function as a lookup value which pulls a data table row and loads the soldier with the resulting values. You could also manually set these values from a blueprint with a large switch statement and hard coded values. But, using a data table is a bit more elegant because it can contain data values for multiple soldier classes (infantry, medic, rocketeer, demolitions, etc). All the variants can be stored in one file, so if you want to modify the properties of a soldier variant, you can do it from the data file instead of opening up each blueprint and modifying the hard coded values. For you, the decision you’ll need to make is “what variables belong in a data table?”.