Shooter Game Framework

Complete FPS/TPS Weapon, Health, Ammo & HUD System for Unreal Engine 5
4 Components 100% Blueprint Multiplayer Ready

Quick Start - Get Shooting in 5 Minutes

Follow these steps exactly and you'll have a working weapon system in minutes.

1
Enable the Plugin

Go to Edit > Plugins, search for Shooter Game Framework, enable it, restart the editor.

Plugins Window
Shooter Game Framework v2.0.0 | Adrenaline Games
⚠ Restart Required
2
Add Components to Your Character Blueprint

Open your Character BP, click Add Component and add:

Components Panel
📦 CharacterMesh (inherited)
  ├─ 🔫 ShooterWeaponComponent ← Required
  ├─ ❤️ ShooterHealthComponent ← Required
  ├─ 💥 ShooterAmmoComponent ← Required
  └─ 📊 ShooterHUDComponent ← Optional
💡 Tip: Search "Shooter" in Add Component to find them all.
3
Create a Weapons DataTable

Content Browser: Right Click > Miscellaneous > DataTable. Pick ShooterWeaponData. Name it DT_Weapons.

Pick Structure
ShooterWeaponData (Shooter Game Framework)
[OK]
4
Add Your First Weapon Row

Open DT_Weapons, click Add Row, set Row Name to "Pistol":

DT_Weapons > Row: "Pistol"
Identity
  Weapon ID: Pistol
  Display Name: M1911 Pistol
  Weapon Type: Pistol
  Fire Mode: Single Shot

Damage
  Base Damage: 25.0
  Headshot Multiplier: 2.0
  Max Range: 5000.0

Firing
  Fire Rate (RPM): 400
  Ammo Type: Pistol Ammo
  Magazine Size: 12
  Reload Time: 1.5
5
Connect DataTable to Component

Select ShooterWeaponComponent in Details panel, set:

Details > Shooter Weapon Component
Configuration
  Weapons Data Table: DT_Weapons ✓
  Camera Component: Camera ✓
⚠ Important: Set Camera Component! Without it weapons aim from actor center instead of the camera.
6
Blueprint: Add Weapon & Fire
Event Graph - Character Blueprint
Event BeginPlay ──→ WeaponCompAdd Weapon (ID: "Pistol")

Input Fire (Started) ──→ WeaponCompStart Fire
Input Fire (Completed) ──→ WeaponCompStop Fire

Input Reload (Started) ──→ WeaponCompStart Reload

Input ADS (Started) ──→ WeaponCompStart ADS
Input ADS (Completed) ──→ WeaponCompStop ADS
✅ Done! Press Play and fire away. Add more weapons to DataTable, use Equip Weapon to switch.
🧩

Components & Settings

All 4 components and every configurable property.

🔫
Weapon Component

Firing, reloading, ADS, switching, attachments, recoil, spread, penetration.

❤️
Health Component

Health, shields, resistances, regen, death & revival.

💥
Ammo Component

Ammo reserves, grenades, powerups.

📊
HUD Component

Hitmarkers, damage numbers, crosshair, kill feed.

DataTables

DataTableRow StructureAssign To
DT_WeaponsShooterWeaponDataWeapon Component
DT_AttachmentsShooterAttachmentDataWeapon Component
DT_SurfaceImpactsShooterSurfaceImpactWeapon Component
DT_GrenadesShooterGrenadeDataAmmo Component
DT_PowerupsShooterPowerupDataAmmo Component

🔫 Weapon Component Settings

PropertyDefaultDescription
Weapons Data TableNoneRequired! Your weapons DataTable
Attachments Data TableNoneWeapon attachments DataTable
Surface Impacts Data TableNoneImpact effects per physical material
Max Weapon Slots2Max weapons player can carry
Weapon Socket Name FPweapon_rFirst-person weapon socket name
Weapon Socket Name TPweapon_rThird-person weapon socket name
Camera ComponentNoneRecommended! Camera for ADS and aim direction
Projectile ClassNoneProjectile actor for Launcher weapons

❤️ Health Component Settings

PropertyDefaultDescription
Max Health100Maximum health points
Health Regen > Can RegeneratetrueAuto-regen after delay
Health Regen > Regen Delay5.0sSeconds after damage before regen
Health Regen > Regen Rate10.0/sHP per second
Shield > Has ShieldfalseEnable shield system
Shield > Max Shield100Maximum shield points
Damage ResistancesEmptyPer-type damage multipliers
InvulnerablefalseZero damage from everything

💥 Ammo Component Settings

PropertyDefaultDescription
Grenades Data TableNoneGrenade types DataTable
Powerups Data TableNonePowerups DataTable
Default Ammo Max Amount240Max reserve for new ammo types
Default Grenade Max Count4Max for new grenade types
Starting AmmoEmptyAmmo reserves at start
Starting GrenadesEmptyGrenades at start

📊 HUD Component Settings

PropertyDefaultDescription
Hitmarker Duration0.15sHitmarker display time
Kill Confirm Duration0.3sKill confirmation display time
Show Damage NumberstrueEnable floating damage numbers
Max Damage Numbers10Max visible at once
Max Kill Feed Entries5Max kill feed entries
Kill Feed Entry Lifetime5.0sHow long entries stay
🔫

Weapon System - All Functions

Every Blueprint function on the Shooter Weapon Component.

Firing

FunctionReturnsDescription
Start Fire-Begin firing. Auto weapons keep firing until Stop Fire
Stop Fire-Stop firing. Releases Charge weapons (fires if >50% charged)
Fire OnceboolFire exactly one shot
Can FireboolCan weapon fire? (ammo, not reloading, owner alive)

Reloading

FunctionReturnsDescription
Start ReloadboolBegin reload. False if full or no reserve
Cancel Reload-Cancel reload in progress
Can ReloadboolIs reload possible right now?
Is ReloadingboolCurrently reloading?

Aim Down Sights (ADS)

FunctionReturnsDescription
Start ADS-Start aiming
Stop ADS-Stop aiming
Toggle ADS-Toggle aim on/off
Is AimingboolCurrently aiming?
Get ADS Alphafloat 0-1Smooth value for animations & FOV lerp

Weapon Management

FunctionParametersReturnsDescription
Add WeaponWeaponID, InitialAmmo (-1=full), InitialReserve (-1=full)boolAdd weapon to inventory
Remove WeaponWeaponIndexboolRemove by index
Drop Current Weapon-boolRemove current weapon
Equip WeaponWeaponIndexboolEquip by index (0, 1, 2...)
Equip Next Weapon--Cycle next
Equip Previous Weapon--Cycle previous
Has WeaponWeaponIDboolIs weapon in inventory?
Get Weapon Count-intWeapons in inventory

Ammo (on Weapon Component)

FunctionParametersReturnsDescription
Get Current Ammo-intBullets in magazine
Get Reserve Ammo-intReserve for current weapon type
Get Magazine Size-intMagazine capacity
Add AmmoAmountintAdd ammo to current weapon
Add Ammo By TypeAmmoType, AmountintAdd ammo to specific type pool

Data Getters

FunctionReturnsDescription
Get Current Weapon DataShooterWeaponData, boolFull DataTable row for current weapon
Get Weapon Data By IDShooterWeaponData, boolDataTable row by weapon name
Get Current Weapon InstanceShooterWeaponInstanceCurrent weapon runtime state (ammo, stats)
Get All WeaponsArray of ShooterWeaponInstanceEntire weapon inventory
Get Current Weapon IndexintIndex of equipped weapon (-1 = none)
Get Weapon StateEShooterWeaponStateIdle, Firing, Reloading, Equipping, Holstering, Charging
Get Current SpreadfloatCurrent spread angle (degrees)
Get Current RecoilVector2DAccumulated recoil (X=horizontal, Y=vertical)

Attachments

FunctionParametersReturnsDescription
Attach AttachmentAttachmentIDboolAdd attachment to current weapon
Remove AttachmentSlotboolRemove from slot
Get Attachment In SlotSlotNameWhat's in this slot? (None = empty)

Weapon Events

How to bind events in Blueprint
Select WeaponComp → Details panel → scroll to Events → click + next to event name
OR: Event Graph → drag from component → "Assign On Weapon Fired"
EventParametersWhen
On Weapon FiredWeaponID, RemainingAmmoShot fired
On Reload StartedWeaponID, ReloadTimeReload begins
On Reload FinishedWeaponID, NewAmmoReload done
On Reload CancelledWeaponIDReload cancelled
On Weapon EquippedWeaponID, WeaponIndexWeapon equipped
On Weapon HolsteredWeaponIDWeapon put away
On Ammo ChangedCurrentAmmo, ReserveAmmoAmmo count changes
On Hit RegisteredFShooterHitResultBullet hits something
On ADS ChangedIsAiming, ADSAlphaADS state changes
On Empty Clip-Fire with no ammo
On Charge ChangedChargePercent, FullyChargedCharge weapon progress
On Movement Speed Multiplier ChangedMultiplier (float)Weapon/ADS affects walk speed. Bind to update MaxWalkSpeed
On Scope Overlay RequestedOverlayClass, bShowScope overlay show/hide. Bind in HUD widget
❤️

Health & Damage System

Health, shields, damage types, regen, death & revival.

Health Functions

FunctionParametersReturnsDescription
Apply DamageDamageEvent (FShooterDamageEvent)floatFull damage event (weapon system calls this automatically)
Apply Simple DamageAmount, DamageType, CauserfloatQuick damage for environmental/fall damage
HealAmountfloatRestore HP. Returns actual healed
Heal To Full--Instant full health
Add ShieldAmountfloatAdd shield points
KillKiller (optional)-Instant kill
ReviveHealthPercent (default 0.3)boolRevive dead character at % HP

Health Getters

FunctionReturnsDescription
Get Current HealthfloatCurrent HP
Get Health Percentfloat 0-1HP as percentage (use for progress bars)
Is AliveboolIs character alive?
Has ShieldboolHas active shield?
Blueprint: Health Bar Widget
Event Tick → Get HealthComp → Get Health PercentSet Progress Bar Percent

Health Events

EventParametersWhen
On Health ChangedCurrentHealth, MaxHealth, DeltaAny HP change
On Shield ChangedCurrentShield, MaxShield, DeltaAny shield change
On Damage TakenFShooterDamageEventDamage received
On DeathFShooterDamageEvent (killing blow)Character dies
On Revived-Character revived

Damage Types & Body Parts

Damage Types

Bullet, Explosive, Fire, Electric, Melee. Each can have a resistance multiplier (0.5 = 50% damage).

Body Parts

Head (headshot mul), Torso (full), LeftArm, RightArm, LeftLeg, RightLeg (limb mul), Generic (full).

💥

Ammo, Grenades & Powerups

Ammo Types

TypeTypical Weapons
PistolPistols, some SMGs
RifleAssault Rifles
ShotgunShotguns
SniperSniper Rifles
HeavyLMGs, Miniguns
ExplosiveRocket Launchers
EnergyPlasma Weapons
InfiniteMelee (never runs out)

Ammo Functions

FunctionParametersReturnsDescription
Add AmmoAmmoType, AmountintAdd reserve ammo
Consume AmmoAmmoType, AmountboolUse ammo. False if not enough
Get Ammo CountAmmoTypeintCurrent reserve

Grenade Functions

FunctionParametersReturnsDescription
Add GrenadesGrenadeID, AmountintAdd grenades
Consume GrenadeGrenadeIDboolUse one grenade
Get Grenade CountGrenadeIDintHow many left
Get Grenade DataGrenadeIDShooterGrenadeData, boolFull grenade info from DataTable

Powerup Functions

FunctionParametersReturnsDescription
Activate PowerupPowerupID-Activate powerup (duration from DataTable)
Has Active PowerupPowerupTypeboolIs this powerup active?
Get Powerup MultiplierPowerupTypefloatActive multiplier value

Ammo Events

EventParametersWhen
On Ammo Reserve ChangedAmmoType, Current, MaxReserve changes
On Grenade Count ChangedGrenadeID, Current, MaxGrenade count changes
On Powerup ActivatedPowerupID, DurationPowerup starts
On Powerup ExpiredPowerupIDPowerup ends

Powerup Types

DamageBoost

More damage

SpeedBoost

Faster movement

Invulnerability

Zero damage

InfiniteAmmo

Never reload

QuadDamage

4x damage

Invisibility

Can't be seen

Regeneration

Rapid HP regen

📊

HUD Component

Hitmarkers, damage numbers, crosshair, kill feed - visual feedback for your shooter.

💡 How it works: The HUD Component provides data and events. Your UMG Widget reads them to display the UI. You build the look - the component handles the logic.

Hitmarker

FunctionReturnsDescription
Trigger Hitmarker-Show hitmarker (bKill, bHeadshot params). Auto-called on hits
Is Hitmarker ActiveboolIs hitmarker showing?
Get Hitmarker Alphafloat 0-1Use to fade your hitmarker image
Is Kill ConfirmboolWas it a kill? Show red X
Is Headshot ConfirmboolWas it a headshot?
Blueprint: Hitmarker Widget
TickGet Hitmarker Alpha → Set Image Opacity
TickIs Kill Confirm → Branch: Set Color Red/White

Damage Numbers

FunctionParametersDescription
Spawn Damage NumberDamage (float), WorldLocation (Vector), bCritical (bool)Create floating damage number

Crosshair

FunctionDescription
Set Crosshair SpreadSet spread angle (auto-called from weapon system)
Get Crosshair SpreadGet current spread. Use to position crosshair lines
Blueprint: Dynamic Crosshair
TickGet Crosshair Spread → Multiply by 5.0 → Set Padding on crosshair lines

Kill Feed

FunctionDescription
Add Kill Feed EntryAdd entry (killer, victim, weapon icon)
Get Kill FeedGet all entries for display
Clear Kill FeedClear all entries

HUD Events

EventParametersWhen
On Hitmarker TriggeredbKill, bHeadshotHit confirmed
On Damage Number SpawnedDamage, WorldLocationDamage number appears
On Kill Feed AddedFShooterKillFeedEntryNew kill feed entry
On Crosshair Spread ChangedSpreadAngleSpread changes
📡

All Events - Quick Reference

🔫 Weapon (13)

EventParameters
On Weapon FiredWeaponID, RemainingAmmo
On Reload StartedWeaponID, ReloadTime
On Reload FinishedWeaponID, NewAmmo
On Reload CancelledWeaponID
On Weapon EquippedWeaponID, WeaponIndex
On Weapon HolsteredWeaponID
On Ammo ChangedCurrentAmmo, ReserveAmmo
On Hit RegisteredFShooterHitResult
On ADS ChangedIsAiming, ADSAlpha
On Empty Clip-
On Charge ChangedChargePercent, FullyCharged
On Movement Speed Multiplier ChangedMultiplier
On Scope Overlay RequestedOverlayClass, bShow

❤️ Health (5)

EventParameters
On Health ChangedCurrentHealth, MaxHealth, Delta
On Shield ChangedCurrentShield, MaxShield, Delta
On Damage TakenFShooterDamageEvent
On DeathFShooterDamageEvent
On Revived-

💥 Ammo (4)

EventParameters
On Ammo Reserve ChangedAmmoType, Current, Max
On Grenade Count ChangedGrenadeID, Current, Max
On Powerup ActivatedPowerupID, Duration
On Powerup ExpiredPowerupID

📊 HUD (4)

EventParameters
On Hitmarker TriggeredbKill, bHeadshot
On Damage Number SpawnedDamage, WorldLocation
On Kill Feed AddedFShooterKillFeedEntry
On Crosshair Spread ChangedSpreadAngle
📖

How-To Guides

Ammo Pickup

1
Create BP_AmmoPickup (Actor Blueprint)

Add Sphere Collision (OverlapAllDynamic) + Static Mesh for visual.

2
Event Graph:
BP_AmmoPickup
On Begin Overlap → Other Actor → Get ShooterAmmoComponent
→ Is Valid? → Add Ammo (Rifle, 30) → Destroy Actor

Health Pickup

1
Same setup, but:
BP_HealthPickup
On Begin Overlap → Get ShooterHealthComponent
→ Is Valid? → Heal (50.0) → Destroy Actor

Number Key Weapon Switching

Character Event Graph
Key 1Equip Weapon (Index: 0)
Key 2Equip Weapon (Index: 1)
Key 3Equip Weapon (Index: 2)

Mouse Wheel Switching

Character Event Graph
Scroll UpEquip Next Weapon
Scroll DownEquip Previous Weapon

Ammo Counter HUD

1
Create Widget with AmmoText and ReserveText

Two Text Blocks in your HUD widget.

2
Bind On Ammo Changed:
Widget Event Graph
Construct → Get WeaponComp → Assign On Ammo Changed

On Ammo Changed (CurrentAmmo, ReserveAmmo)
→ Set AmmoText = CurrentAmmo
→ Set ReserveText = ReserveAmmo

Environmental Damage

Damage Volume Blueprint
On Overlap → Get HealthComp → Apply Simple Damage
  Amount: 10.0, Type: Fire, Causer: Self
💡 Use Apply Simple Damage for traps/environment. Use Apply Damage only when you need body part detection.

Detect Headshots

Character Event Graph
On Hit Registered → Break FShooterHitResult → Body Part
→ Branch: == Head?
  True → Play Headshot Sound
  False → Play Normal Sound
📚

Quick Reference

All Enumerations

EnumValues
EShooterWeaponTypePistol, SMG, AssaultRifle, Shotgun, SniperRifle, LMG, Launcher, Melee
EShooterFireModeSingle, Burst, Auto, Shotgun, Charge
EShooterAmmoTypePistol, Rifle, Shotgun, Sniper, Heavy, Explosive, Energy, Infinite
EShooterDamageTypeBullet, Explosive, Fire, Electric, Melee
EShooterBodyPartHead, Torso, LeftArm, RightArm, LeftLeg, RightLeg, Generic
EShooterAttachmentSlotOptic, Barrel, Underbarrel, Magazine, Stock, Grip
EShooterGrenadeTypeFrag, Flashbang, Smoke, Incendiary, EMP, Sticky
EShooterPowerupTypeDamageBoost, SpeedBoost, Invulnerability, InfiniteAmmo, QuadDamage, Invisibility, Regeneration
EShooterWeaponStateIdle, Firing, Reloading, Equipping, Holstering, Charging
EShooterPickupTypeWeapon, Ammo, Health, Armor, Grenade, Powerup

All Structures

StructurePurpose
FShooterWeaponDataWeapon definition (DataTable row)
FShooterWeaponInstanceRuntime weapon state
FShooterAttachmentDataAttachment definition (DataTable row)
FShooterRecoilDataRecoil configuration
FShooterSpreadDataSpread/accuracy configuration
FShooterADSDataADS configuration
FShooterDamageEventFull damage information
FShooterHitResultHit detection result
FShooterHealthRegenDataHealth regen settings
FShooterShieldDataShield configuration
FShooterDamageResistanceDamage type resistance
FShooterGrenadeDataGrenade definition (DataTable row)
FShooterPowerupDataPowerup definition (DataTable row)
FShooterActivePowerupActive powerup instance
FShooterAmmoReserveAmmo reserve entry
FShooterGrenadeInventoryGrenade inventory entry
FShooterPlayerStatsPlayer statistics
FShooterKillFeedEntryKill feed entry
FShooterSurfaceImpactSurface impact effects (DataTable row)
🛠️

Troubleshooting

Weapon won't fire

Check:
  1. Weapons Data Table set on component?
  2. Called Add Weapon with ID matching a DataTable row?
  3. Has ammo in magazine?
  4. HealthComponent present and Is Alive = true?
  5. Weapon in Idle state? (can't fire while Reloading/Equipping)

Damage not applied

Check:
  1. Target has ShooterHealthComponent?
  2. Invulnerable = false?
  3. Collision set up? Target needs collision channel for line trace
  4. Base Damage > 0 in DataTable?

Reload not working

Check:
  1. Magazine already full? Can Reload returns false
  2. Reserve ammo for this weapon's ammo type?
  3. Reload Time > 0 in DataTable?

Events not firing

Check:
  1. Used Assign node (green)? Not Call (blue)
  2. Binding before event fires? Bind in BeginPlay or Construct
  3. Multiplayer: events fire on server. Use Multicast to replicate

📞 Support

contact@adrenalinegames.pl | adrenalinegames.pl

Shooter Game Framework v2.0.0 | Adrenaline Games 2026 | UE 5.6+