Hi Zombpi, thanks for your thorough answer.
Yes, I am aware of Singletons and I use them when the situation is required (or subsysems, which if find them more convenient for Blueprints).
In this case, I wanted to have variables that all instances of the same class will use (a controller in this particular case but can be any). It is basically nothing the amount of memory and CPU that saves, so it’s not about optimization. But, for instance, I normally put FNames, FStrings, floats, int32s, FCollisionShapes etc as static members if all the instanced objects are going to use the same data. I have also seen this among the engine code, (you can see static FName MeshComponentName; in Character.h). So i wondered, knowing that we can not extend Structs, and some structs don’t have constructors with all the parameters,if there was a way to do this. As I said, I used to work with java and c# and I used to have static members inside classes if all the objects were going to be using the same data. Having it outside the class, in a singleton, in my humble opinion, can be against encapsulation and creates a bit of inter-dependency.
Sorry for my long comment, but anyhow, I don’t see any problem in having non-static variables in each object, so I don’t really care if I don’t find a solution, I would just stick to non-static variables and initialize them in the constructor.
Thanks again for you thorough answer.