Projectiles

Projectile System Overview

All projectile types derive from the BP_MasterProjectile, which handles the core logic for damage, impact, and optional pooling for optimization.

🎯 Default Projectile Types Included:

Blueprint
Intended Use

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


🧠 Core Customization Info

⚙️ Inheritance & Structure

  • All new projectiles must derive from BP_MasterProjectile to ensure compatibility with the system.

  • All blueprints come fully commented with self-explanatory functions.


💣 Explosive vs Ballistic Projectiles

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)


✅ Checklist for Ballistic Projectiles (Pooled)

  1. IsBallistic? = True

  2. ✅ Sphere Collision set to Overlap only

  3. ✅ Use SetLive on spawn (sets active state and resets visuals)

  4. ✅ Configure projectile speed, lifespan, penetration logic

  5. ✅ Customize VFX and impact sound

  6. ✅ All logic happens in Impact Event (shown in screenshot)


✅ Checklist for Explosive Projectiles

  1. IsBallistic? = False

  2. ✅ Sphere Collision should Block desired channels (like WorldStatic, Pawn, etc.)

  3. ✅ Customize radial damage radius and effects

  4. ✅ Impact event handles damage & VFX (same event)

  5. ✅ Not pooled — standard actor lifecycle (spawn > destroy on hit)


🔧 Custom Damage Systems And Penetration

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.


🔁 Pooling Support

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.


🔉 VFX, SFX, and Trails

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.


🧪 Quick Test Tips

  • 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.

Last updated