Purpose:

This is an abstract base class that allows you to implement divine blessings, exalted modifiers, and special heritage-based bonuses for your RPG/progression game. Whether you want simple racial blessings (Elven Ancestry), universal divine favor (Exalted), deity-specific boons (Blessing of Athena), or conditional heritage enhancements—you create Blueprint children of this class to define the rules and rewards for each blessing type.


What It Does:

When you create a Blueprint child class and configure its properties, this system:

  1. Provides one-time heritage bonuses - Blessings grant stat bonuses, abilities, and effects when applied to a character. These are separate from base race bonuses and can be added or removed at runtime.
  2. Validates race requirements - Each blessing can specify required races (Elf-only blessings) and forbidden races (no undead characters). The Validate Blessing Application function checks both race requirements AND blessing compatibility before allowing application.
  3. Enforces blessing compatibility rules - Control which blessings can coexist:
  4. Provides lifecycle hooks - On Blessing Applied and On Blessing Removed events allow you to trigger VFX, play sounds, send notifications, or handle any custom logic when blessings are dynamically added/removed at runtime.
  5. Supports dynamic bonus calculation - Override Calculate Blessing Bonuses to return context-aware rewards based on the character's current race, other blessings, or any custom logic. The default implementation returns the configured Default Bonuses.
  6. Integrates seamlessly with GAS - All rewards (abilities, effects, attribute bonuses) are applied directly to the actor's Ability System Component. The blessing system enhances GAS without replacing any of its core functionality.
  7. Uses soft references for optimization - Abilities and effects use TSoftClassPtr to avoid loading assets until they're actually needed, improving memory usage and load times.

How It's Used:

Step 1: Create Your Blessing Data Blueprint

  1. In Content Browser, Right-click → Wonderscape GAS Ally → Heritage System → Blessing Data
  2. Name it descriptively (e.g., BP_ElvenAncestryBlessingBP_DivineFavorBlessingBP_ExaltedBlessing)

Step 2: Configure Blessing Identity

In your blessing data Blueprint's Details Panel, configure the identity:

  1. Blessing Name - Display name for UI and debug messages (e.g., "Elven Ancestry")