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:
- 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.
- 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.
- Enforces blessing compatibility rules - Control which blessings can coexist:
- Forbidden Coexisting Blessings: Mutually exclusive blessings (Light vs Darkness)
- Allowed Coexisting Blessings: Whitelist of compatible blessings
- Max Coexisting Blessings: Cap on total other blessings (-1 = unlimited, 0 = exclusive)
- 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.
- 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.
- 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.
- 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
- In Content Browser, Right-click → Wonderscape GAS Ally → Heritage System → Blessing Data
- Name it descriptively (e.g.,
BP_ElvenAncestryBlessing, BP_DivineFavorBlessing, BP_ExaltedBlessing)
Step 2: Configure Blessing Identity
In your blessing data Blueprint's Details Panel, configure the identity:
- Blessing Name - Display name for UI and debug messages (e.g., "Elven Ancestry")