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