# Weapons, AI & Adaptive — Asset Creation Sheet (31 assets) > **UE5 Path:** `Content/Framework/Weapons/`, `Content/Framework/AI/`, `Content/Framework/Adaptive/` --- ## Weapons (08-weapons — 10 remaining BP assets) ### BP_WeaponBase (Actor) **Parent:** `Actor` → Add SkeletalMesh, ArrowComponent (muzzle) | Variable | Type | Default | |----------|------|---------| | `WeaponData` | `DA_ItemData` | Assign | | `AmmoLoaded` | Integer | `0` | | `FireMode` | GameplayTag | `Framework.Combat.FireMode.SemiAuto` | | `MuzzleFlashFX` | ParticleSystem | Assign | | `FireSound` | SoundBase | Assign | **Implements:** `I_Interactable`, `I_UsableItem` ### BP Components (attach to player/enemy pawns) | Component | Key Variables | |-----------|--------------| | `BPC_AmmoComponent` | `ReserveAmmo`(Int), `MaxReserve`(Int), `AmmoType`(GameplayTag) | | `BPC_CombatFeedbackComponent` | `bShowHitMarker`(Bool), `HitMarkerDuration`(Float) | | `BPC_DamageReceptionSystem` | ✅ C++ done — attach directly | | `BPC_DeathCauseTracker` | `LastDamageType`(GameplayTag), `LastKiller`(Actor) | | `BPC_FirearmSystem` | `CurrentFireMode`(GameplayTag), `bChamberEmpty`(Bool) | | `BPC_HitReactionSystem` | `FlinchAnimation`(AnimMontage), `KnockdownAnimation`(AnimMontage) | | `BPC_MeleeSystem` | `ComboCount`(Int), `CurrentComboWindow`(Float) | | `BPC_RecoilSystem` | `RecoilPattern`(CurveVector), `RecoilRecoverySpeed`(Float) | | `BPC_ReloadSystem` | `ReloadTime`(Float), `bTacticalReload`(Bool) | | `BPC_ShieldDefenseSystem` | `ShieldHealth`(Float), `BlockAngle`(Float) | --- ## AI (09-ai — 9 BP assets) ### BP_EnemyBase (Character) **Parent:** `Character` → Add SkeletalMesh, Capsule, AI Perception | Variable | Type | Default | |----------|------|---------| | `EnemyData` | `DA_EncounterData` | Assign | | `AlertLevel` | GameplayTag | `Framework.AI.Alert.Unaware` | | `Archetype` | GameplayTag | `Framework.AI.Archetype.Patrol` | ### Components | Component | Purpose | |-----------|---------| | `BPC_AlertSystem` | Suspicious → Alerted → Combat state machine | | `BPC_AIStateMachine` | Patrol/Search/Combat/Flee transitions | | `BPC_AIMemorySystem` | Last known locations, threat history | | `BPC_AIPerceptionSystem` | Sight, hearing, damage sense | | `BPC_BehaviourVariantSelector` | Weighted random behavior selection from DA_BehaviourVariant set | ### Other AI Assets | Asset | Type | Purpose | |-------|------|---------| | `BP_PatrolPath` | Actor + Spline | Patrol waypoints | | `AI_BaseAgentController` | AIController | Behavior tree runner | | `BB_AgentBoard` | Blackboard | AI keys (Target, LastLocation, AlertLevel, etc.) | --- ## Adaptive (10-adaptive — 13 BP assets) ### Components | Component | Purpose | |-----------|---------| | `BPC_DifficultyManager` | Dynamic difficulty scaling based on player metrics | | `BPC_FearSystem` | AI + player fear states, cower, flee | | `BPC_PerformanceScaler` | LOD, spawn distance, effect quality | | `BPC_ProceduralEncounter` | Difficulty-based spawn group generation | | `BPC_AdaptiveEnvironmentDirector` | Room mutation, event coordination | | `BPC_AtmosphereStateController` | Room tone, tension, mood | | `BPC_AudioAtmosphereController` | [DEPRECATED — use SS_AudioManager] | | `BPC_LightEventController` | Flicker, dim, color shift, strobe | | `BPC_MemoryDriftSystem` | Visual/audio/dialogue distortions (stress-based) | | `BPC_PacingDirector` | Intensity bands, encounter frequency, music | | `BPC_PlaystyleClassifier` | Aggressive/Stealthy/Explorer/Balanced | | `BPC_RareEventSystem` | Weighted rare event selection + cooldown | | `BPC_ScareEventSystem` | Jump scares, anticipation, recovery | | `SS_AudioManager` | GameInstanceSubsystem — MetaSounds entry point | | `BP_RoomAudioZone` | TriggerVolume — auto-switches room reverb | --- ## Test Weapons - [ ] Pick up weapon → attaches to hand socket - [ ] Fire → muzzle flash + recoil + ammo count decreases - [ ] Empty magazine → auto-reload (or click Reload) - [ ] Melee → combo counter increments ## Test AI - [ ] Patrol path → enemy walks waypoints - [ ] Player enters sight → alert level rises → chase begins - [ ] Player hides → enemy loses sight → searches last known location - [ ] Combat → enemy uses behavior variant (flanking, cover, rush) ## Test Adaptive - [ ] Player dies frequently → difficulty decreases (fewer enemies, more health) - [ ] Player excels → difficulty increases - [ ] Stress high → memory drift distortions activate - [ ] Scare event triggers → jump scare sound + visual plays