# 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.<Type>` (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