Character lags in networked game when running at high FPS

Hey, I’m running into a weird jitter issue whenever I run my game in a networked scenario (either with a dedicated server or local host). The weird part is that if I clamp my FPS to something like 30, 60, 90, 120 there is no jitter but if I leave it unclamped there is jitter. I made a quick 1 minute video to demonstrate. The jitter appears when I perform the dash. In the first part of the video (below) the FPS is unclamped and running at over 200 FPS and you can see the strafe is pretty laggy. The second part I clamp it to 60 FPS and you can see there is no jitter when performing the strafe.

Does anyone have any insight into why this is happening? I figure it must be something to do with a mismatch in FPS between the client and the dedicated server when letting them both run unclamped but I’m not sure…

Video: Increased FPS causing jitter when in networked game - YouTube

Code:

void UCustomCharacterMovementComponent::OnMovementUpdated(float DeltaTime, const FVector& OldLocation, const FVector& OldVelocity)
    {
    	Super::OnMovementUpdated(DeltaTime, OldLocation, OldVelocity);
    
    	if (HasPendingLaunchVelocity == true)
    	{        
    		HasPendingLaunchVelocity = false;
    		Launch(PendingLaunchVelocity);
    	}
    }
    
 bool UCustomCharacterMovementComponent::SetPendingLaunchVelocity_SERVER_Validate(const FVector& launch_velocity)
    {
    	return true;
    }
    
    // Runs on server only
    void UCustomCharacterMovementComponent::SetPendingLaunchVelocity_SERVER_Implementation(const FVector& launch_velocity)
    {
    	HasPendingLaunchVelocity = true;
    	PendingLaunchVelocity = launch_velocity;
    }
    
    // Called each frame that the character is performing the strafe to set his velocity
    void UCustomCharacterMovementComponent::LaunchCharacter(FVector velocity, bool override_xy, bool override_z)
    {
    	if (override_xy)
    	{
    		PendingLaunchVelocity.X = velocity.X;
    		PendingLaunchVelocity.Y = velocity.Y;
    	}
    	else
    	{
    		PendingLaunchVelocity.X += velocity.X;
    		PendingLaunchVelocity.Y += velocity.Y;
    	}
    
    	if (override_z)
    	{
    		PendingLaunchVelocity.Z = velocity.Z;
    	}
    	else
    	{
    		PendingLaunchVelocity.Z += velocity.Z;
    	}
    
    	HasPendingLaunchVelocity = true;
    	SetPendingLaunchVelocity_SERVER(PendingLaunchVelocity);
    }