Yes, that’s not really a UE4 feature. This is a programming thing called inheritance. Like it was already mentioned before. All the variables that should be in all the different classes should be added to the “parent” class, and so, all the children would have the same property. Let’s say you want to create 3 different type of bullets, but they all would have a mesh, a particle effect, damage and velocity(?)… You name it. So then, you would create a base class, lets say BP_BaseBullet, with all these properties. Then you can right click that blueprint and create a child class from that and call it BP_TankBullet that would have an iron ball as mesh, damage of 30 and smoke as effect. That you would go back and right click BP_BaseBullet to create a new child and call it BP_RifleBullet that would have a small iron ball, damage of 5 and a different smoke as effect… And then so on… So basically, each child can have its all properties different from the parent and also from it’s siblings.
At the same time, all the children are also a “BP_BaseBullet” so you could cast any of the bullets to BP_BaseBullet and get the damage property from it.
This idea would also be applied to functions. You could create a function on the parent class, and override in the children. So when you cast to the parent class, it would call the children function…
just make sure that you override the function by clicking this button and selecting the function that you created:
This whole concept can be a bit confusing, but that’s a very useful concept to understand if you beginning on game programming.
ps: Whenever you do that with the variables, make sure you select the option to visualize the inherited variable, otherwise you wouldn’t see the damage. Like so: