Spawned Object keeps spawning at player starting location

I was trying to make a FPS Shooter in C++ from scratch based on the template, but for some reason when i run the game the projectile keeps spawning at the same location.

Here is my Spawning Code:

 void AFPSCharacter::OnFire()
 {
	// try and fire a projectile
	if (ProjectileClass != NULL)
	{
		const FRotator SpawnRotation = GetControlRotation();
		// MuzzleOffset is in camera space, so transform it to world space before offsetting from the character location to find the final muzzle position
		const FVector SpawnLocation = GetActorLocation() + SpawnRotation.RotateVector(MuzzleOffset);

		UWorld* const World = GetWorld();
		if (World != NULL)
		{
			// spawn the projectile at the muzzle
			AFPSProjectile* Projectile = World->SpawnActor<AFPSProjectile>(ProjectileClass, SpawnLocation, SpawnRotation);
			if (Projectile)
			{
				// find launch direction
				FVector const LaunchDir = SpawnRotation.Vector();
				Projectile->InitVelocity(LaunchDir);

			}
		}
	}
}

i have tested with a print to give me the value of SpawnLocation and this is what it prints:

It shows the multiple locations where they should be spawning, bue instead they all spawn at the starting location.

Hey SubjectFR,

Cannot repro your problem. I checked your code and it should work.

Try to debug SpawnActor function. It can modify your initial position.
Compare NewLocation with your SpawnLocation in line 331 (in LevelActor.cpp).

We haven’t heard back from you in a few days, so we are marking this post as Resolved for tracking purposes. If you’re still experiencing this issue, please try to verify your install and then post back here with the results.