Files
UE5-Modular-Game-Framework/docs/blueprints/08-weapons/77_BPC_RecoilSystem.md
Lefteris Notas 411edea8ce add blueprints
2026-05-19 13:22:27 +03:00

2.1 KiB

BPC_RecoilSystem — Actor Component

File: Content/Framework/Weapons/BPC_RecoilSystem Parent Class: UActorComponent Dependencies: DA_WeaponData, BPC_FirearmSystem, BPC_CameraStateLayer

Purpose: Handles procedural recoil: camera kick, recovery curve, and ADS recoil reduction. Works with BPC_FirearmSystem to apply per-weapon recoil patterns.


Variables

Name Type Description
RecoilPattern CurveVector Per-weapon kick pattern (X=pitch, Y=yaw)
RecoverySpeed Float How fast camera returns to rest
ADSRecoilMultiplier Float Recoil reduction while aiming (0.3-0.7)
CurrentRecoilOffset Vector2D Accumulated recoil offset
bIsRecovering Bool Recovery in progress

Functions / Events

Name Inputs Outputs What it does
ApplyRecoil ShotCount: Integer, bADS: Bool Applies recoil kick based on weapon pattern
ResetRecoil Clears accumulated offset
TickRecovery DeltaTime: Float Lerps CurrentRecoilOffset back toward zero
SetRecoilPattern Pattern: CurveVector Loads per-weapon recoil data from DA_WeaponData

Blueprint Flow

[FirearmSystem fires] -> ApplyRecoil(shotCount, bADS)
  -> Look up RecoilPattern value at shotCount index
  -> Apply ADSRecoilMultiplier if bADS
  -> Add to CurrentRecoilOffset
  -> Push offset to BPC_CameraStateLayer
  -> Start recovery timer on tick

Communications With

Target System Method Why
BPC_FirearmSystem Direct call from ApplyRecoilRequest Receives fire events
BPC_CameraStateLayer Direct ApplyFOVModifier Camera kick application

Reuse Notes

  • RecoilPattern is a CurveVector from DA_WeaponData — swap per weapon
  • For hitscan weapons, call ApplyRecoil on every shot. For projectile, call on fire release
  • Recovery runs on tick when bIsRecovering; disable tick at rest for performance