Purpose:

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.


What It Does:

When you create a Blueprint child class and override the key functions, this system:

  1. Processes multiple simultaneous classes - An actor can have an array of class tags (e.g., ["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.
  2. Supports all three leveling paradigms - Traditional RPG (automatic stat gains), Point Allocation (unspent point pools), and Souls-like (attribute purchase systems). Your class data can return stat gains, point awards, or starting attribute configurations depending on your game's leveling type.
  3. Enables trigger-based progression - Beyond just level-ups, classes can grant rewards for quest completion, item crafting, exploration discoveries, or any custom trigger you define. The Calculate Rewards For Trigger function returns comprehensive rewards including abilities, gameplay effects, tags, and meta rewards.
  4. Handles starting-above-level-1 scenarios - If an actor joins the game at level 10, the Calculate Starting Attributes function calculates cumulative point awards or base attribute configurations so the actor starts with appropriate stats/points for their level.
  5. Provides lifecycle hooks - 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.
  6. Validates class combinations - 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."
  7. Integrates seamlessly with GAS - All rewards (abilities, effects, tags) are applied directly to the actor's Ability System Component. Stat gains are converted to Gameplay Effects that modify attributes. The class system enhances GAS without replacing any of its core functionality.
  8. Provides one-time acquisition bonuses - Designers can configure Attribute RewardsAbilities 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.
  9. Supports class hierarchies - The Subclasses array lets you establish parent-child relationships between classes (e.g., Warrior → Berserker/Champion/Guardian) using soft references to other Class Data assets.

How It's Used:

Step 1: Create Your Class Data Blueprint

  1. In Content Browser, Right-click → Blueprint Class
  2. Search for and select WCGASClassData as parent class
  3. Name it descriptively (e.g., BP_WarriorClassDataBP_MageClassDataBP_BerserkerSubclassData)