# DA_BehaviourVariant — Data Asset **Parent Class:** `UDataAsset` **Dependencies:** [`BPC_BehaviourVariantSelector`](../09-ai/) **Purpose:** Defines AI behaviour variants — patrol patterns, aggression levels, flee thresholds, and combat tactics. --- ## Variables / Structure | Field | Type | Description | |-------|------|-------------| | `VariantTag` | `FGameplayTag` | Unique behaviour variant identifier | | `AggressionLevel` | `float` | 0.0 (passive) to 1.0 (hyper-aggressive) | | `FleeHealthThreshold` | `float` | Health % below which AI flees | | `CombatTactic` | `ECombatTactic` | Flank, Rush, Ambush, Ranged, HitAndRun | | `PatrolSpeed` | `float` | Walk speed during patrol (cm/s) | | `ChaseSpeed` | `float` | Run speed during chase | | `DetectionModifier` | `float` | Multiplier for perception ranges | | `ReinforcementCallRadius` | `float` | Distance to call nearby allies | | `bCanUseCover` | `bool` | AI can use cover points | | `PreferredWeaponType` | `EWeaponType` | Melee, Ranged, Throwable | --- ## Gameplay Tags - Namespace: `Behaviour.` (e.g., `Behaviour.Aggressive`, `Behaviour.Stealthy`) --- ## Validation Rules - `VariantTag` must be unique - `AggressionLevel` must be 0.0-1.0 --- ## Example Data | Field | Value | |-------|-------| | VariantTag | `Behaviour.Aggressive.Hunter` | | AggressionLevel | 0.8 | | FleeHealthThreshold | 0.15 | | CombatTactic | Flank | --- ## Consumed By - [`BPC_BehaviourVariantSelector`](../09-ai/) - [`AI_BaseAgentController`](../09-ai/AI_BaseAgentController.md) ## Reuse Notes - Behaviour variants are data-driven; new tactics added without code - Variant selection is influenced by difficulty, fear, and narrative state