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 Tasks, Decorators, and Services across several functional domains.
| 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. |
| 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. |
| 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). |
The Heritage system tracks race, class, and blessing information for RPG-style AI characters.
| 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). |
| 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. |
| 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. |