Skip to main content

Before you begin

  • Complete Project integration.
  • Prepare a weapon skeletal mesh and compatible character and item montages.
  • Choose BP_Shooter_Weapon for a general firearm or BP_Shooter_Shotgun for 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.
Use Shooter runtime for the complete Blueprint flow. Use Weapon blueprints to choose ARX, M97, Onyx, or TP12 as a behavior reference.