GetActorLocation() not updating with each tick

HI, pretty new to unreal and I’ve been messing around with projectiles and using line traces to detect collisions. I’m trying to draw a line trace a set distance at each tick, starting from the current actor location, but what ends up happening is when the actor is spawned, it will repeatedly draw the trace in the same location (where it spawned) until I run into it with my character.

.h

#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "ProjectileFS.generated.h"


class USceneComponent;

UCLASS()
class FIRSTSHOOTER_API AProjectileFS : public AActor
{	
public:	
	// Sets default values for this actor's properties
	AProjectileFS();

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Bullet Root Component")
		USceneComponent* RootComp;

	UPROPERTY()
		UPrimitiveComponent* ThisPrim;

	UPROPERTY()
		AActor* Collision = nullptr;

	UPROPERTY()
		FVector PreviousLocation;

	UPROPERTY()
		bool bIsFirstTick;

protected:

	void DrawLineTrace(FVector& Start, FVector& End);

private:

	// Called every frame
	virtual void Tick(float DeltaTime) override;

	// Called when the game starts or when spawned
	virtual void BeginPlay() override;


	GENERATED_BODY()

};

.cpp

#include "DrawDebugHelpers.h"
#include "ProjectileFS.h"

// Sets default values
AProjectileFS::AProjectileFS()
{
 	// 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;
	bIsFirstTick = true;

	RootComp = CreateDefaultSubobject<USceneComponent>(TEXT("Created Scene Component"));
	RootComp->SetupAttachment(RootComponent);

	/*
	ThisPrim = Cast<UPrimitiveComponent>(this->GetComponentByClass(UPrimitiveComponent::StaticClass()));
	ThisPrim->SetSimulatePhysics(true);
	*/
}

// Called when the game starts or when spawned
void AProjectileFS::BeginPlay()
{
	Super::BeginPlay();
	
}

void AProjectileFS::DrawLineTrace(FVector& Start, FVector& End)
{
	FHitResult HitActor;
	FCollisionQueryParams PickupParams;
	PickupParams.AddIgnoredActor(this);
	GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Blue, TEXT("Drew Line"));
	if (GetWorld()->LineTraceSingleByChannel(HitActor, Start, End, ECollisionChannel::ECC_WorldStatic, PickupParams))
	{
		Collision = HitActor.GetActor();
	}
}

// Called every frame
void AProjectileFS::Tick(float DeltaTime)
{
	Super::Tick(DeltaTime);


	//GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Emerald, TEXT("Projectile Drawing line"));
	FVector Start = GetActorLocation();
	FVector End = GetActorLocation() + (GetActorForwardVector() * 200.f);	
	DrawDebugLine(GetWorld(), Start, End, FColor::Red, false, 1.f, 0, 1.f);
	DrawLineTrace(Start, End);
	if (Collision != nullptr)
	{
		Destroy();
		GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Emerald, TEXT("Projectile Hit"));
	}
}

I figured the reason is my ‘start’ and ‘end’ variables are not being updated when the actor moves but I can’t figure out why.

Couple things to note:
-The actor is spawned from a separate character class and given a push with AddImpulse
-The collision logic is working just fine, when I walk into the line trace the collision is detected and the actor is destroyed

Apologies for all the comments and random functions, I’ve been trying to debug this for a while now with no luck.