As mentioned you cant store data in an interface,
However in my own project I use C++ interfaces quite extensively and I do have a solution for your overall goal!
You can make a pure virtual getter that returns by reference, and because it is pure virtual every class is required to implement it, and they can provide their own stored version of your data structure, which is exposed to BP as you want it to be!
//.h
virtual FYourDataStruct& GetDataStruct() = 0;
Because the function is returning by reference, you are able to manipulate the data!
Any classes wanting to manipulate the data that is common to the interface can use the function too!
This gives you a way to write code to get as well as manipulate member variables that are common to all implementers of an interface!
![]()
Rama
PS:
More info at your answerhub