Interchangeable Attack System

Sorry for the delay, I was busy over the weekend and then wanted to make sure I actually got things working before I updated things. I will post my solution below, It does require some minor C++ work, so I don’t know if there is an answer that can be pure blueprints.

Step 1: Make your base class in C++
image
Note: Make sure the UCLASS has tags Blueprintable and BlueprintType if you are deriving from UObject or another class that does not have those (Actor and all it children already do).
Make sure the UPROPERTY of the variables has EditDefaultsOnly tags

Step 2: Make children blueprints of your base class and set there default values
image

Step 3: Add the variable that is the base type and is a class reference, then set that variable


Note: You should make sure that it is set to at least the base class even if it is being changed elsewhere.

Set 4: Use Get Class Defaults to reference the defaults wherever you need it

Hope this helps others. If you have any questions let me know. As I mentioned at the top, I didn’t find a solution where the base class could be a blueprint. That is fine for me, but if anyone knows what is needed to do that and wants to add it for others that would be great.