Overview

The WonderscapeCreationsGASAlly plugin provides a comprehensive suite of Behavior Tree (BT) nodes designed to integrate the Gameplay Ability System (GAS) with AI decision-making. These nodes are organized into TasksDecorators, and Services across several functional domains.


1. Core GAS Nodes

Tasks

Node Name Class Name Purpose
WC: Find Target UWCBTTask_FindTarget Locates a target actor based on faction attitude (Enemy, Friend, Neutral) and selection strategy (Highest Threat, Nearest, Lowest Health, Random). Writes result to a blackboard key. Supports LOS requirements and search radius limits.
WC: Activate Ability UWCBTTask_ActivateAbility Activates a gameplay ability by tag. Can optionally wait for ability completion before returning success. Supports optional target actor from blackboard.
WC: Set Blackboard From GAS UWCBTTask_SetBlackboardFromGAS One-time data sync from GAS to blackboard. Can read attribute values, attribute percentages, tag presence, threat values, or cooldown remaining.
WC: Issue Squad Command UWCBTTask_IssueSquadCommand Sends commands (Attack, Retreat, Rally, etc.) to the AI's squad members. Requires squad membership and optionally leader role.

Decorators

Node Name Class Name Purpose
WC: Has Gameplay Tag UWCBTDecorator_HasTag Checks if the AI's AbilitySystemComponent has matching gameplay tag(s). Supports simple single-tag check or complex tag queries.
WC: Attribute Check UWCBTDecorator_Attribute Compares an attribute value against a threshold. Supports percentage-based comparisons (e.g., Health < 25%) and comparing two attributes.
WC: Can Activate Ability UWCBTDecorator_CanActivate Checks if a specific ability can be activated (considering cooldowns, costs, and blocking tags). Optional fast cooldown-only check.
WC: Boss Phase UWCBTDecorator_PhaseCheck Checks if a boss is in a specific phase. Requires UWCGASBossPhaseComp. Supports exact or parent tag matching.
WC: Threat Level UWCBTDecorator_ThreatLevel Compares threat values for decision making. Can compare a target's threat to a fixed value or check if current target is still highest threat.
WC: Team Attitude UWCBTDecorator_TeamAttitude Checks faction/team attitude between AI and a target actor. Uses IWCGASFactionAgent interface.
WC: Squad Role UWCBTDecorator_SquadRole Checks if the AI has a specific squad role (Tank, Healer, DPS, Support, etc.). Can check against multiple allowed roles.
WC: Has Wounded Allies UWCBTDecorator_HasWoundedAllies Checks if squad members are below a health threshold. Used for triggering protective or healing behavior.
WC: Should Protect Allies UWCBTDecorator_ShouldProtectAllies Combines role configuration check (bProtectAllies flag) with wounded ally presence.
WC: EQS Result Valid UWCBTDecorator_EQSResultValid Validates if a blackboard location/actor from EQS is still valid. Checks distance threshold and actor validity/health.

Services

Node Name Class Name Purpose
WC: Update Target UWCBTService_UpdateTarget Periodically updates a blackboard target key based on faction and selection criteria. Maintains continuous target tracking during combat.
WC: Monitor Attributes UWCBTService_MonitorAttributes Syncs GAS attribute values to blackboard keys on tick. Supports multiple attributes and percentage calculations. Optimized to only write on change.
WC: Update Threat UWCBTService_UpdateThreat Syncs threat system data to blackboard (highest threat target, threat value, threat count).
WC: Squad Awareness UWCBTService_SquadAwareness Updates blackboard with squad status (squad size, wounded count, leader presence, current command).

2. Heritage System Nodes

The Heritage system tracks race, class, and blessing information for RPG-style AI characters.

Decorators

Node Name Class Name Purpose
WC: Has Class Tag UWCBTDec_HasClass Checks if the AI has specific class tag(s). Supports single tag check or multi-tag requirements with ALL/ANY logic.
WC: Class Mastery UWCBTDec_ClassMastery Checks if the AI's mastery level (levels gained with a class active) meets a threshold. Enables veteran vs. novice behavior.
WC: Has Race Tag UWCBTDec_HasRace Checks for a specific race tag. Can check primary race, secondary race (hybrids), or any.
WC: Has Blessing UWCBTDec_HasBlessing Checks if the AI has a specific race blessing active.
WC: Is Hybrid Race UWCBTDec_IsHybrid Checks if the AI is a hybrid (has exactly 2 races). Can be inverted to check for pure race.
WC: Has Subrace UWCBTDec_HasSubrace Checks for a specific subrace within a race (e.g., High Elf, Wood Elf within Elf).

Tasks

Node Name Class Name Purpose
WC: Add Class Tag UWCBTTask_AddClass Dynamically grants a class tag to the AI during gameplay (training completion, milestones, dual-classing).
WC: Remove Class Tag UWCBTTask_RemoveClass Removes a class tag from the AI. Does NOT refund stat gains—use respec system for full reset.
WC: Add Blessing UWCBTTask_AddBlessing Grants a race blessing after validation against race requirements (shrine interactions, quest rewards).
WC: Remove Blessing UWCBTTask_RmvBlessing Removes a race blessing (curse removal, expiration, sacrifice).
WC: Trigger Class Rule UWCBTTask_ClassTrigger Triggers class rule evaluation when AI achieves milestones. Supports trigger types: QuestComplete, ItemUsed, ItemCrafted, CombatMilestone, StoryProgression, WorldInteraction, Discovery.

Services

Node Name Class Name Purpose
WC: Heritage Sync UWCBTSvc_HeritageSync Periodically syncs heritage state (class tags, race tags, blessings, hybrid status, mastery) to blackboard. Enables blackboard-based decorators without direct HeritageComponent access.