Remove speed Loss from projectile movement

Hello for the past few days I’ve been trying to setup a reflection projectile I’ve got mostly working. Here is a video of what I got so far Speed Loss - YouTube
As you can see it losses it speed as time goes on. There anyway to disable that?
BTW here is my implementation

 // Sets default values
    AReflectionProjectile::AReflectionProjectile()
    {
     	// Set this actor to call Tick() every frame.  You can turn this off to improve performance if you don't need it.
    	PrimaryActorTick.bCanEverTick = true;
      // Collsion Setup
      SphereComponent = CreateDefaultSubobject<USphereComponent>(FName("Sphere Component"));
      RootComponent = SphereComponent;
      // Movement Setup
      ProjectileMovement = CreateDefaultSubobject<UProjectileMovementComponent>(FName("ProjectialMovement"));
      ProjectileMovement->UpdatedComponent = SphereComponent;
      ProjectileMovement->bRotationFollowsVelocity = true;
      ProjectileMovement->bShouldBounce = true;
      // Get Current Velocity of Actor
      MyVelocity = GetActorForwardVector() * CurrentSpeed;
    }
    
    // Called when the game starts or when spawned
    void AReflectionProjectile::BeginPlay()
    {
      Super::BeginPlay();
      SphereComponent->OnComponentHit.AddDynamic(this, &AReflectionProjectile::OnHit);
    }
    
    void AReflectionProjectile::OnHit(UPrimitiveComponent* HitComponent, AActor* OtherActor, UPrimitiveComponent* OtherComponent, FVector NormalImpulse, const FHitResult& Hit)
    {
      // Reflect the projectile because we hit a non-physics object
      FVector ReflectedVelocity = BounceSpeedLoss * (-2 * FVector::DotProduct(MyVelocity, Hit.Normal) * Hit.Normal + MyVelocity);
      MyVelocity = ReflectedVelocity;
      CurrentReflection = ReflectedVelocity;
      ReflectedVelocity.Normalize();
      SetActorRotation(ReflectedVelocity.Rotation());
      bReflected = true;
    }
    
    
    // Called every frame
    void AReflectionProjectile::Tick(float DeltaTime)
    {
    	Super::Tick(DeltaTime);
    
     /* FColor LineColor = bReflected ? FColor::Red : FColor::Green;
      DrawDebugLine(GetWorld(), GetActorLocation(), GetActorLocation() + MyVelocity * DeltaTime, LineColor, false, 2.f, 0, 1.f); */
      
      // Updated Velocity
      SetActorLocation(GetActorLocation() + MyVelocity * DeltaTime, true);
    }

and also I do have my BounceSpeedLoss variable set to 0

I noticed with projectilemovement component that it will lose speed if it undergoes many collisions within a small space. Make syre that is not happening to your projectile. If it is unavoidable you can try resetting to original speed every few ticks or milliseconds, by first caching the original speed in a variable and then when checking on it, normalizing the projectile’s current velocity and multiplying that vector by the original speed float to restore it.