diff --git a/downloader.js b/downloader.js
index 2d0a1241..3e1b9d3b 100644
--- a/downloader.js
+++ b/downloader.js
@@ -1,5 +1,5 @@
 const {
-	checkDotnet,
+	preDownloadCheck,
 	download,
 	createCommand,
 	runCommand,
@@ -9,28 +9,35 @@ const {
 } = require("./utils")
 
 function submitForm() {
-	checkDotnet().then(async function (result) {
-		if (!result) {
-			console.error("dotnet not found in PATH")
-			document.getElementById("dotnetwarning").hidden = false
-		} else {
-
-			console.info("dotnet found in PATH")
+	// Check if the form is filled in and if dotnet is installed
+	preDownloadCheck().then(async function () {
+		document.getElementById("dotnetwarning").hidden = true
+		document.getElementById("emptywarning").hidden = true
+		console.info("dotnet found in PATH")
 
-			// Remove the old depotdownloader directory
-			await removeDir("depotdownloader")
+		// Remove the old depotdownloader directory
+		await removeDir("depotdownloader")
 
-			// Download the DepotDownloader binary, so it doesn't have to be included in the source code
-			await download("https://github.com/SteamRE/DepotDownloader/releases/download/DepotDownloader_2.4.7/depotdownloader-2.4.7.zip")
+		// Download the DepotDownloader binary, so it doesn't have to be included in the source code
+		await download("https://github.com/SteamRE/DepotDownloader/releases/download/DepotDownloader_2.4.7/depotdownloader-2.4.7.zip")
 
-			// Unzip the DepotDownloader binary
-			await unzip("depotdownloader-2.4.7.zip", "depotdownloader")
+		// Unzip the DepotDownloader binary
+		await unzip("depotdownloader-2.4.7.zip", "depotdownloader")
 
-			// Clean up the old files
-			await removeFile("depotdownloader-2.4.7.zip")
+		// Clean up the old files
+		await removeFile("depotdownloader-2.4.7.zip")
 
-			// Run the final command
-			await runCommand(createCommand().toString())
+		// Run the final command
+		await runCommand(createCommand())
+	}).catch(function (error) {
+		if (error === "noDotnet") {
+			console.error("Dotnet not found in PATH")
+			document.getElementById("emptywarning").hidden = true
+			document.getElementById("dotnetwarning").hidden = false
+		} else if (error === "emptyField") {
+			console.error("Fill in all the fields")
+			document.getElementById("dotnetwarning").hidden = true
+			document.getElementById("emptywarning").hidden = false
 		}
 	})
 }
@@ -66,8 +73,11 @@ function openSteamDB() {
 	void electron.shell.openExternal("https://steamdb.info/instantsearch/")
 }
 
+/* Everything below this line runs when the page is loaded */
+
+// Add event listeners to the buttons
 window.addEventListener("DOMContentLoaded", () => {
-	document.getElementById("alertbtn").addEventListener("click", submitDotnet)
+	document.getElementById("dotnetalertbtn").addEventListener("click", submitDotnet)
 	document.getElementById("downloadbtn").addEventListener("click", submitForm)
 	document.getElementById("smbtn1").addEventListener("click", openGitHubIssues)
 	document.getElementById("smbtn2").addEventListener("click", openSteamDB)
diff --git a/index.html b/index.html
index 300df102..57022575 100644
--- a/index.html
+++ b/index.html
@@ -4,20 +4,20 @@
 <head>
 	<meta charset="UTF-8">
 	<meta content="width=device-width, initial-scale=1" name="viewport"/>
-	<link href="https://unpkg.com/@primer/css@20.4.5/dist/primer.css" rel="stylesheet"/>
+	<link href="https://unpkg.com/@primer/css@20.4.6/dist/primer.css" rel="stylesheet"/>
 	<title>SteamDepotDownloaderGUI</title>
 </head>
 <body>
 <script src="downloader.js"></script>
 <div class="mx-auto">
 	<div hidden id="dotnetwarning">
-		<div class="flash flash-error mx-2 mt-2 color-shadow-medium" id="alert">
+		<div class="flash flash-error mx-2 mt-2 color-shadow-medium" id="dotnetalert">
 			<svg class="octicon" height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg">
 				<path d="M8 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zM0 8a8 8 0 1116 0A8 8 0 010 8zm6.5-.25A.75.75 0 017.25 7h1a.75.75 0 01.75.75v2.75h.25a.75.75 0 010 1.5h-2a.75.75 0 010-1.5h.25v-2h-.25a.75.75 0 01-.75-.75zM8 6a1 1 0 100-2 1 1 0 000 2z"
 					  fill-rule="evenodd"></path>
 			</svg>
 			<code><span class="text-italic">dotnet</span></code> was not found.
-			<button class="btn btn-sm flash-action" id="alertbtn">
+			<button class="btn btn-sm flash-action" id="dotnetalertbtn">
 				<svg class="octicon" height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg">
 					<path d="M7.47 10.78a.75.75 0 001.06 0l3.75-3.75a.75.75 0 00-1.06-1.06L8.75 8.44V1.75a.75.75 0 00-1.5
          0v6.69L4.78 5.97a.75.75 0 00-1.06 1.06l3.75 3.75zM3.75 13a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5z"
@@ -27,6 +27,15 @@
 			</button>
 		</div>
 	</div>
+
+	<div hidden id="emptywarning">
+		<div class="flash flash-warn mx-2 mt-2 color-shadow-medium" id="emptyalert">
+			<svg class="octicon" height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg">
+				<path d="M8 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zM0 8a8 8 0 1116 0A8 8 0 010 8zm6.5-.25A.75.75 0 017.25 7h1a.75.75 0 01.75.75v2.75h.25a.75.75 0 010 1.5h-2a.75.75 0 010-1.5h.25v-2h-.25a.75.75 0 01-.75-.75zM8 6a1 1 0 100-2 1 1 0 000 2z"
+					  fill-rule="evenodd"></path>
+			</svg>Please fill in all fields.
+		</div>
+	</div>
 	<div class="f0-light text-center">Steam Depot Downloader</div>
 
 	<form id="theform">
diff --git a/utils.js b/utils.js
index db68808f..81516d3a 100644
--- a/utils.js
+++ b/utils.js
@@ -2,30 +2,45 @@
  * Checks if dotnet is installed in the system path
  * @returns {Promise<unknown>} A promise that resolves to true if dotnet is installed, false otherwise
  */
-function checkDotnet() {
-	return new Promise((resolve) => {
+function preDownloadCheck() {
+	return new Promise((resolve, reject) => {
+		let username = document.forms["theform"]["username"].value
+		let password = document.forms["theform"]["password"].value
+		let appid = document.forms["theform"]["appid"].value
+		let depotid = document.forms["theform"]["depotid"].value
+		let manifestid = document.forms["theform"]["manifestid"].value
+
+		// Check if all fields are filled
+		if (username === "" || password === "" || appid === "" || depotid === "" || manifestid === "") {
+			// Reject before even checking if dotnet is installed
+			reject("emptyField")
+			return
+		}
+
+		// Check if dotnet is installed, depending on the platform
 		if (process.platform.toString().includes("win")) {
+			// Windows
 			const {exec} = require("child_process")
 			const command = "dotnet.exe --version"
 			exec(command, function (error) {
 				if (error) {
-					resolve(false)
+					reject("noDotnet")
 				} else {
 					resolve(true)
 				}
 			})
 		} else {
+			// Linux
 			const {exec} = require("child_process")
 			const command = "dotnet --version"
 			exec(command, function (error) {
 				if (error) {
-					resolve(false)
+					reject("noDotnet")
 				} else {
 					resolve(true)
 				}
 			})
 		}
-
 	})
 }
 
@@ -193,4 +208,4 @@ const platformpath = () => {
 	}
 }
 
-module.exports = {checkDotnet, download, createCommand, runCommand, removeDir, removeFile, unzip, platformpath}
\ No newline at end of file
+module.exports = {preDownloadCheck, download, createCommand, runCommand, removeDir, removeFile, unzip, platformpath}
\ No newline at end of file