Pathfinding pet system

Here is my BodyGyro properties:

local BodyGyro = Instance.new("BodyGyro")
	BodyGyro.CFrame = PetObj["Base"].CFrame
	BodyGyro.MaxTorque = Vector3.new(math.huge,math.huge,math.huge)
	BodyGyro.Parent = PetObj["Base"]

and here is the part where i update the gyro and that:

function UpdateTween()
	FollowTween = game.TweenService:Create(PetObj["Base"]["BodyPosition"], TweenInfo.new(0.25, Enum.EasingStyle.Linear), {Position = Player.Character["HumanoidRootPart"].CFrame.p - Vector3.new(-2, 0, -2)})
	TurnTween = game.TweenService:Create(PetObj["Base"]["BodyGyro"], TweenInfo.new(0.25, Enum.EasingStyle.Linear), {CFrame = CFrame.new(PetObj["Base"].CFrame.p, Vector3.new(Player.Character["HumanoidRootPart"].Position.X, PetObj["Base"].Position.Y, Player.Character["HumanoidRootPart"].Position.Z))})
end

function UpdatePetObj()
	if (Player.Character["HumanoidRootPart"].Velocity).Magnitude > 6 then
		if (Player.Character["HumanoidRootPart"].CFrame.p - PetObj["Base"].CFrame.p).Magnitude > Distance * 1.5 then
			FollowTween:Play()
			TurnTween:Play()
		end
	end

I used this for help: Pet Follower v.02