Spawned projectiles increases the amount of actors in scene without resetting

So i am using C++ to spawn my projectiles:

FActorSpawnParameters SpawnParameters;
SpawnParameters.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;

AAEFCProjectile* Projectile = GetWorld()->SpawnActorDeferred<AAEFCProjectile>(ProjectileClass, MuzzleTransform, GetOwningActorFromActorInfo(),
	Hero, ESpawnActorCollisionHandlingMethod::AlwaysSpawn);
Projectile->DamageEffectSpecHandle = DamageEffectSpecHandle;
Projectile->Range = Range;
Projectile->FinishSpawning(MuzzleTransform);

The spawned gameobject has the following blueprint:

Now as you can see i do destroy the actors either by range or after some time (spawning a niagara effect and then destorying it)

However the number of actors loaded just continues to go up and after some time the games framerate goes downs so much that the simple map is unplayable.

I am a newbie to unreal engine but i wish to learn could anyone help me out?

Okay i just tried creating a new map and i really dont get what ive done wrong.

So casually here there are 20 actors:

image

I now shoot the gun (spawning the projectiles) a lot.

After a little while ( a few seconds) the actor count goes back down to 20 however the next time i fire i get a glimpse of the all the actors in the scene (this only lasts for a few seconds however it makes my game nearly crumble):

image

This value will keep rising. no matter how long i wait?

What have i done wrong???