// Spawn effects
UNiagaraSystem* NiagaraSystem = nullptr;
if (!ExplosionParticleSystem.Get())
ExplosionParticleSystem.LoadSynchronous();
NiagaraSystem = ExplosionParticleSystem.Get();
if (NiagaraSystem)
UNiagaraFunctionLibrary::SpawnSystemAtLocation(GetWorld(), NiagaraSystem, GetActorLocation(),
GetActorRotation(), GetActorScale3D(), true, true);
// Destroy
bool bDestroyed = Destroy();
This actor is not getting destroyed even after calling this function again and again.