This is an abstract base class that allows you to implement subrace variants within a race system for your RPG/progression game. Whether you want racial subtypes (High Elf, Wood Elf, Drow), regional variants (Highlander Human, Coastal Human), bloodline variations (Noble Dwarf, Mountain Dwarf), or any other secondary heritage distinction—you create Blueprint children of this class to define the unique bonuses, abilities, and effects for each subrace.
When you create a Blueprint child class and configure its properties, this system:
Validate Subrace Assignment function lets you enforce design rules like level requirements, story flag prerequisites, or specific class combinations before allowing a subrace to be selected.On Subrace Applied and On Subrace Removed events allow you to grant subrace-specific equipment, trigger visual effects, revert appearance changes, or handle subrace transitions at runtime.Attribute Rewards, Abilities To Grant, and Effects To Apply directly on the subrace data asset. These bonuses are applied once when the subrace is assigned—after base race bonuses are applied.TSoftObjectPtr and TSoftClassPtr to avoid loading assets until they're actually needed, supporting lazy loading patterns.UWCGASRaceData::AvailableSubraces array, establishing clear parent-child relationships. The parent race can require subrace selection via bRequiresSubrace.BP_HighElfSubrace, BP_WoodElfSubrace, BP_DrowSubrace)