Follow these steps exactly and you'll have a working weapon system in minutes.
Go to Edit > Plugins, search for Shooter Game Framework, enable it, restart the editor.
Open your Character BP, click Add Component and add:
Content Browser: Right Click > Miscellaneous > DataTable. Pick ShooterWeaponData. Name it DT_Weapons.
Open DT_Weapons, click Add Row, set Row Name to "Pistol":
Select ShooterWeaponComponent in Details panel, set:
Equip Weapon to switch.All 4 components and every configurable property.
Firing, reloading, ADS, switching, attachments, recoil, spread, penetration.
Health, shields, resistances, regen, death & revival.
Ammo reserves, grenades, powerups.
Hitmarkers, damage numbers, crosshair, kill feed.
| DataTable | Row Structure | Assign To |
|---|---|---|
DT_Weapons | ShooterWeaponData | Weapon Component |
DT_Attachments | ShooterAttachmentData | Weapon Component |
DT_SurfaceImpacts | ShooterSurfaceImpact | Weapon Component |
DT_Grenades | ShooterGrenadeData | Ammo Component |
DT_Powerups | ShooterPowerupData | Ammo Component |
| Property | Default | Description |
|---|---|---|
Weapons Data Table | None | Required! Your weapons DataTable |
Attachments Data Table | None | Weapon attachments DataTable |
Surface Impacts Data Table | None | Impact effects per physical material |
Max Weapon Slots | 2 | Max weapons player can carry |
Weapon Socket Name FP | weapon_r | First-person weapon socket name |
Weapon Socket Name TP | weapon_r | Third-person weapon socket name |
Camera Component | None | Recommended! Camera for ADS and aim direction |
Projectile Class | None | Projectile actor for Launcher weapons |
| Property | Default | Description |
|---|---|---|
Max Health | 100 | Maximum health points |
Health Regen > Can Regenerate | true | Auto-regen after delay |
Health Regen > Regen Delay | 5.0s | Seconds after damage before regen |
Health Regen > Regen Rate | 10.0/s | HP per second |
Shield > Has Shield | false | Enable shield system |
Shield > Max Shield | 100 | Maximum shield points |
Damage Resistances | Empty | Per-type damage multipliers |
Invulnerable | false | Zero damage from everything |
| Property | Default | Description |
|---|---|---|
Grenades Data Table | None | Grenade types DataTable |
Powerups Data Table | None | Powerups DataTable |
Default Ammo Max Amount | 240 | Max reserve for new ammo types |
Default Grenade Max Count | 4 | Max for new grenade types |
Starting Ammo | Empty | Ammo reserves at start |
Starting Grenades | Empty | Grenades at start |
| Property | Default | Description |
|---|---|---|
Hitmarker Duration | 0.15s | Hitmarker display time |
Kill Confirm Duration | 0.3s | Kill confirmation display time |
Show Damage Numbers | true | Enable floating damage numbers |
Max Damage Numbers | 10 | Max visible at once |
Max Kill Feed Entries | 5 | Max kill feed entries |
Kill Feed Entry Lifetime | 5.0s | How long entries stay |
Every Blueprint function on the Shooter Weapon Component.
| Function | Returns | Description |
|---|---|---|
Start Fire | - | Begin firing. Auto weapons keep firing until Stop Fire |
Stop Fire | - | Stop firing. Releases Charge weapons (fires if >50% charged) |
Fire Once | bool | Fire exactly one shot |
Can Fire | bool | Can weapon fire? (ammo, not reloading, owner alive) |
| Function | Returns | Description |
|---|---|---|
Start Reload | bool | Begin reload. False if full or no reserve |
Cancel Reload | - | Cancel reload in progress |
Can Reload | bool | Is reload possible right now? |
Is Reloading | bool | Currently reloading? |
| Function | Returns | Description |
|---|---|---|
Start ADS | - | Start aiming |
Stop ADS | - | Stop aiming |
Toggle ADS | - | Toggle aim on/off |
Is Aiming | bool | Currently aiming? |
Get ADS Alpha | float 0-1 | Smooth value for animations & FOV lerp |
| Function | Parameters | Returns | Description |
|---|---|---|---|
Add Weapon | WeaponID, InitialAmmo (-1=full), InitialReserve (-1=full) | bool | Add weapon to inventory |
Remove Weapon | WeaponIndex | bool | Remove by index |
Drop Current Weapon | - | bool | Remove current weapon |
Equip Weapon | WeaponIndex | bool | Equip by index (0, 1, 2...) |
Equip Next Weapon | - | - | Cycle next |
Equip Previous Weapon | - | - | Cycle previous |
Has Weapon | WeaponID | bool | Is weapon in inventory? |
Get Weapon Count | - | int | Weapons in inventory |
| Function | Parameters | Returns | Description |
|---|---|---|---|
Get Current Ammo | - | int | Bullets in magazine |
Get Reserve Ammo | - | int | Reserve for current weapon type |
Get Magazine Size | - | int | Magazine capacity |
Add Ammo | Amount | int | Add ammo to current weapon |
Add Ammo By Type | AmmoType, Amount | int | Add ammo to specific type pool |
| Function | Returns | Description |
|---|---|---|
Get Current Weapon Data | ShooterWeaponData, bool | Full DataTable row for current weapon |
Get Weapon Data By ID | ShooterWeaponData, bool | DataTable row by weapon name |
Get Current Weapon Instance | ShooterWeaponInstance | Current weapon runtime state (ammo, stats) |
Get All Weapons | Array of ShooterWeaponInstance | Entire weapon inventory |
Get Current Weapon Index | int | Index of equipped weapon (-1 = none) |
Get Weapon State | EShooterWeaponState | Idle, Firing, Reloading, Equipping, Holstering, Charging |
Get Current Spread | float | Current spread angle (degrees) |
Get Current Recoil | Vector2D | Accumulated recoil (X=horizontal, Y=vertical) |
| Function | Parameters | Returns | Description |
|---|---|---|---|
Attach Attachment | AttachmentID | bool | Add attachment to current weapon |
Remove Attachment | Slot | bool | Remove from slot |
Get Attachment In Slot | Slot | Name | What's in this slot? (None = empty) |
| Event | Parameters | When |
|---|---|---|
On Weapon Fired | WeaponID, RemainingAmmo | Shot fired |
On Reload Started | WeaponID, ReloadTime | Reload begins |
On Reload Finished | WeaponID, NewAmmo | Reload done |
On Reload Cancelled | WeaponID | Reload cancelled |
On Weapon Equipped | WeaponID, WeaponIndex | Weapon equipped |
On Weapon Holstered | WeaponID | Weapon put away |
On Ammo Changed | CurrentAmmo, ReserveAmmo | Ammo count changes |
On Hit Registered | FShooterHitResult | Bullet hits something |
On ADS Changed | IsAiming, ADSAlpha | ADS state changes |
On Empty Clip | - | Fire with no ammo |
On Charge Changed | ChargePercent, FullyCharged | Charge weapon progress |
On Movement Speed Multiplier Changed | Multiplier (float) | Weapon/ADS affects walk speed. Bind to update MaxWalkSpeed |
On Scope Overlay Requested | OverlayClass, bShow | Scope overlay show/hide. Bind in HUD widget |
Health, shields, damage types, regen, death & revival.
| Function | Parameters | Returns | Description |
|---|---|---|---|
Apply Damage | DamageEvent (FShooterDamageEvent) | float | Full damage event (weapon system calls this automatically) |
Apply Simple Damage | Amount, DamageType, Causer | float | Quick damage for environmental/fall damage |
Heal | Amount | float | Restore HP. Returns actual healed |
Heal To Full | - | - | Instant full health |
Add Shield | Amount | float | Add shield points |
Kill | Killer (optional) | - | Instant kill |
Revive | HealthPercent (default 0.3) | bool | Revive dead character at % HP |
| Function | Returns | Description |
|---|---|---|
Get Current Health | float | Current HP |
Get Health Percent | float 0-1 | HP as percentage (use for progress bars) |
Is Alive | bool | Is character alive? |
Has Shield | bool | Has active shield? |
| Event | Parameters | When |
|---|---|---|
On Health Changed | CurrentHealth, MaxHealth, Delta | Any HP change |
On Shield Changed | CurrentShield, MaxShield, Delta | Any shield change |
On Damage Taken | FShooterDamageEvent | Damage received |
On Death | FShooterDamageEvent (killing blow) | Character dies |
On Revived | - | Character revived |
Bullet, Explosive, Fire, Electric, Melee. Each can have a resistance multiplier (0.5 = 50% damage).
Head (headshot mul), Torso (full), LeftArm, RightArm, LeftLeg, RightLeg (limb mul), Generic (full).
| Type | Typical Weapons |
|---|---|
| Pistol | Pistols, some SMGs |
| Rifle | Assault Rifles |
| Shotgun | Shotguns |
| Sniper | Sniper Rifles |
| Heavy | LMGs, Miniguns |
| Explosive | Rocket Launchers |
| Energy | Plasma Weapons |
| Infinite | Melee (never runs out) |
| Function | Parameters | Returns | Description |
|---|---|---|---|
Add Ammo | AmmoType, Amount | int | Add reserve ammo |
Consume Ammo | AmmoType, Amount | bool | Use ammo. False if not enough |
Get Ammo Count | AmmoType | int | Current reserve |
| Function | Parameters | Returns | Description |
|---|---|---|---|
Add Grenades | GrenadeID, Amount | int | Add grenades |
Consume Grenade | GrenadeID | bool | Use one grenade |
Get Grenade Count | GrenadeID | int | How many left |
Get Grenade Data | GrenadeID | ShooterGrenadeData, bool | Full grenade info from DataTable |
| Function | Parameters | Returns | Description |
|---|---|---|---|
Activate Powerup | PowerupID | - | Activate powerup (duration from DataTable) |
Has Active Powerup | PowerupType | bool | Is this powerup active? |
Get Powerup Multiplier | PowerupType | float | Active multiplier value |
| Event | Parameters | When |
|---|---|---|
On Ammo Reserve Changed | AmmoType, Current, Max | Reserve changes |
On Grenade Count Changed | GrenadeID, Current, Max | Grenade count changes |
On Powerup Activated | PowerupID, Duration | Powerup starts |
On Powerup Expired | PowerupID | Powerup ends |
More damage
Faster movement
Zero damage
Never reload
4x damage
Can't be seen
Rapid HP regen
Hitmarkers, damage numbers, crosshair, kill feed - visual feedback for your shooter.
| Function | Returns | Description |
|---|---|---|
Trigger Hitmarker | - | Show hitmarker (bKill, bHeadshot params). Auto-called on hits |
Is Hitmarker Active | bool | Is hitmarker showing? |
Get Hitmarker Alpha | float 0-1 | Use to fade your hitmarker image |
Is Kill Confirm | bool | Was it a kill? Show red X |
Is Headshot Confirm | bool | Was it a headshot? |
| Function | Parameters | Description |
|---|---|---|
Spawn Damage Number | Damage (float), WorldLocation (Vector), bCritical (bool) | Create floating damage number |
| Function | Description |
|---|---|
Set Crosshair Spread | Set spread angle (auto-called from weapon system) |
Get Crosshair Spread | Get current spread. Use to position crosshair lines |
| Function | Description |
|---|---|
Add Kill Feed Entry | Add entry (killer, victim, weapon icon) |
Get Kill Feed | Get all entries for display |
Clear Kill Feed | Clear all entries |
| Event | Parameters | When |
|---|---|---|
On Hitmarker Triggered | bKill, bHeadshot | Hit confirmed |
On Damage Number Spawned | Damage, WorldLocation | Damage number appears |
On Kill Feed Added | FShooterKillFeedEntry | New kill feed entry |
On Crosshair Spread Changed | SpreadAngle | Spread changes |
| Event | Parameters |
|---|---|
| On Weapon Fired | WeaponID, RemainingAmmo |
| On Reload Started | WeaponID, ReloadTime |
| On Reload Finished | WeaponID, NewAmmo |
| On Reload Cancelled | WeaponID |
| On Weapon Equipped | WeaponID, WeaponIndex |
| On Weapon Holstered | WeaponID |
| On Ammo Changed | CurrentAmmo, ReserveAmmo |
| On Hit Registered | FShooterHitResult |
| On ADS Changed | IsAiming, ADSAlpha |
| On Empty Clip | - |
| On Charge Changed | ChargePercent, FullyCharged |
| On Movement Speed Multiplier Changed | Multiplier |
| On Scope Overlay Requested | OverlayClass, bShow |
| Event | Parameters |
|---|---|
| On Health Changed | CurrentHealth, MaxHealth, Delta |
| On Shield Changed | CurrentShield, MaxShield, Delta |
| On Damage Taken | FShooterDamageEvent |
| On Death | FShooterDamageEvent |
| On Revived | - |
| Event | Parameters |
|---|---|
| On Ammo Reserve Changed | AmmoType, Current, Max |
| On Grenade Count Changed | GrenadeID, Current, Max |
| On Powerup Activated | PowerupID, Duration |
| On Powerup Expired | PowerupID |
| Event | Parameters |
|---|---|
| On Hitmarker Triggered | bKill, bHeadshot |
| On Damage Number Spawned | Damage, WorldLocation |
| On Kill Feed Added | FShooterKillFeedEntry |
| On Crosshair Spread Changed | SpreadAngle |
Add Sphere Collision (OverlapAllDynamic) + Static Mesh for visual.
Two Text Blocks in your HUD widget.
Apply Simple Damage for traps/environment. Use Apply Damage only when you need body part detection.| Enum | Values |
|---|---|
| EShooterWeaponType | Pistol, SMG, AssaultRifle, Shotgun, SniperRifle, LMG, Launcher, Melee |
| EShooterFireMode | Single, Burst, Auto, Shotgun, Charge |
| EShooterAmmoType | Pistol, Rifle, Shotgun, Sniper, Heavy, Explosive, Energy, Infinite |
| EShooterDamageType | Bullet, Explosive, Fire, Electric, Melee |
| EShooterBodyPart | Head, Torso, LeftArm, RightArm, LeftLeg, RightLeg, Generic |
| EShooterAttachmentSlot | Optic, Barrel, Underbarrel, Magazine, Stock, Grip |
| EShooterGrenadeType | Frag, Flashbang, Smoke, Incendiary, EMP, Sticky |
| EShooterPowerupType | DamageBoost, SpeedBoost, Invulnerability, InfiniteAmmo, QuadDamage, Invisibility, Regeneration |
| EShooterWeaponState | Idle, Firing, Reloading, Equipping, Holstering, Charging |
| EShooterPickupType | Weapon, Ammo, Health, Armor, Grenade, Powerup |
| Structure | Purpose |
|---|---|
| FShooterWeaponData | Weapon definition (DataTable row) |
| FShooterWeaponInstance | Runtime weapon state |
| FShooterAttachmentData | Attachment definition (DataTable row) |
| FShooterRecoilData | Recoil configuration |
| FShooterSpreadData | Spread/accuracy configuration |
| FShooterADSData | ADS configuration |
| FShooterDamageEvent | Full damage information |
| FShooterHitResult | Hit detection result |
| FShooterHealthRegenData | Health regen settings |
| FShooterShieldData | Shield configuration |
| FShooterDamageResistance | Damage type resistance |
| FShooterGrenadeData | Grenade definition (DataTable row) |
| FShooterPowerupData | Powerup definition (DataTable row) |
| FShooterActivePowerup | Active powerup instance |
| FShooterAmmoReserve | Ammo reserve entry |
| FShooterGrenadeInventory | Grenade inventory entry |
| FShooterPlayerStats | Player statistics |
| FShooterKillFeedEntry | Kill feed entry |
| FShooterSurfaceImpact | Surface impact effects (DataTable row) |
contact@adrenalinegames.pl | adrenalinegames.pl
Shooter Game Framework v2.0.0 | Adrenaline Games 2026 | UE 5.6+