Projectiles
Last updated
Last updated
All projectile types derive from the BP_MasterProjectile
, which handles the core logic for damage, impact, and optional pooling for optimization.
BP_BallisticProjectile01
Auto-cannons (standard fast kinetic)
BP_BallisticProjectile02
Railguns (piercing, high-speed shots)
BP_PulseLaserProjectile
Laser turrets (energy beam pulses)
BP_DumbSmallRocket
Non-guided explosive rockets
BP_Missile01
Guided missile with tracking behavior
All new projectiles must derive from BP_MasterProjectile
to ensure compatibility with the system.
All blueprints come fully commented with self-explanatory functions.
Feature
Explosive
Ballistic
IsBallistic?
Bool
❌ False
✅ True
Collision Behavior
Block
necessary channels
Overlap
only
Pooling Support
❌ Not pooled
✅ Fully pooled
Penetration System
❌ No
✅ Yes
On Hit Event
Triggers radial damage and VFX
Triggers direct hit logic and VFX
Uses SetLive
❌ No
✅ Yes (for pooling reset)
✅ IsBallistic?
= True
✅ Sphere Collision set to Overlap only
✅ Use SetLive
on spawn (sets active state and resets visuals)
✅ Configure projectile speed, lifespan, penetration logic
✅ Customize VFX and impact sound
✅ All logic happens in Impact Event (shown in screenshot)
✅ IsBallistic?
= False
✅ Sphere Collision should Block desired channels (like WorldStatic, Pawn, etc.)
✅ Customize radial damage radius and effects
✅ Impact event handles damage & VFX (same event)
✅ Not pooled — standard actor lifecycle (spawn > destroy on hit)
All damage logic is inside the Impact Event.
By default, uses engine-standard Apply Damage with support for damage types.
If your game uses a custom interface for damage (e.g., BPI_YourCombatInterface
), this is where you’ll need to hook it in.
Penetration for Ballistic projectiles are calculated at the end of the event.
🧠 You can safely replace
Apply Damage
with your interface call (e.g.,Interface → DealCustomDamage()
), depending on your gameplay system.
Ballistic projectiles are designed for object pooling to drastically reduce runtime memory and actor destruction overhead.
Make sure to call SetLive
when activating ballistic projectiles from the pool.
This resets lifespan, visuals, and prepares it for next use.
Each projectile has built-in settings for:
✅ Trail VFX
✅ Impact particles
✅ Looping flight sound or on-impact SFX
These are editable directly within the projectile blueprint. No code change needed — just swap the assets.
Ballistic feels weird? Double-check collision is on Overlap only.
Explosive not detonating? Make sure you're blocking something meaningful on the root Sphere.
Pooling not working? Make sure SetLive
is called and you're not destroying pooled actors on impact.
No damage? Check if your target implements the correct BPI or is listening for damage events.