This is an abstract base class that allows you to implement any class system imaginable for your RPG/progression game. Whether you want simple single classes (Warrior, Mage, Rogue), complex multi-class systems, subclass progressions, prestige classes, or even dynamic class evolution systems—you create Blueprint children of this class to define the rules and rewards for each class type.
When you create a Blueprint child class and override the key functions, this system:
["Character.Class.Warrior", "Character.Class.Mage"]), and the system calls each class's rules independently then combines the results. This enables true multi-classing, dual-classing, or hybrid class designs.Calculate Rewards For Trigger function returns comprehensive rewards including abilities, gameplay effects, tags, and meta rewards.Calculate Starting Attributes function calculates cumulative point awards or base attribute configurations so the actor starts with appropriate stats/points for their level.On Class Added and On Class Removed events allow you to grant starting equipment, apply permanent passives, clean up effects, or handle respec penalties when classes are dynamically added/removed at runtime.Validate Class Tag Addition lets you enforce design rules like "no Paladin + Warlock" (alignment conflict), "must have Warrior before Berserker" (progression gate), or "maximum 2 simultaneous classes."Attribute Rewards, Abilities To Grant, and Effects To Apply directly on the class data asset. These bonuses are applied once when the class is acquired—separate from per-level gains.Subclasses array lets you establish parent-child relationships between classes (e.g., Warrior → Berserker/Champion/Guardian) using soft references to other Class Data assets.BP_WarriorClassData, BP_MageClassData, BP_BerserkerSubclassData)