Before you begin
- Complete Project integration.
- Prepare a weapon skeletal mesh and compatible character and item montages.
- Choose
BP_Shooter_Weaponfor a general firearm orBP_Shooter_Shotgunfor the supplied shotgun reload and pump path.
1
Create the weapon class
Create
BP_ProjectWeapon as a child of BP_Shooter_Weapon. Configure its mesh, FireRate, MaxAmmo, initial ActiveAmmo, SupportsFullAuto, BurstNum, and ActiveFireMode.2
Create the presentation component
Create
AC_ProjectWeaponView as a child of AC_WeaponView. Configure WeaponSettings, equip, reload, and fire montages, fire sound, BaseMuzzleFlash, recoil data, and fire-mode presentation.3
Connect the view
Add
AC_ProjectWeaponView to the weapon. Return it from GetWeaponView. Override GetAimPoint with the weapon’s authored sight transform and GetFireRate only when required by the child.4
Configure recoil and effects
Create a project
DA_RecoilData and a BP_VFXData muzzle-flash asset. Let AC_RecoilAnimation and the inherited MuzzleFlash component apply them.5
Add frame events
Add
BP_AnimNotify_ReloadWeapon at the ammunition-transfer frame. Add BP_AnimNotify_SpawnCasing and BP_AnimNotify_PlaySound only where the animation requires those events.6
Register and validate
Add
BP_ProjectWeapon to the project character’s ItemClasses. Test equip, fire, stop fire, ADS, fire-mode changes, empty magazine, reload, casing, muzzle flash, recoil, and UI values.The weapon initializes through
TryInitialize, exposes state through ShooterCore interfaces, plays presentation through its view, and keeps ammunition and fire timing in the weapon class.