diff --git a/settings.gradle b/settings.gradle
index 8f515d2..fabc5b8 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1,3 +1,3 @@
rootProject.name = 'launcher-parent'
-include 'launcher', 'launcher-fancy', 'launcher-builder', 'launcher-bootstrap'
\ No newline at end of file
+include 'launcher', 'launcher-fancy', 'launcher-builder', 'launcher-bootstrap', 'staging-tool'
diff --git a/staging-tool/build.gradle b/staging-tool/build.gradle
new file mode 100644
index 0000000..43934e0
--- /dev/null
+++ b/staging-tool/build.gradle
@@ -0,0 +1,32 @@
+apply plugin: 'com.github.johnrengelman.shadow'
+
+dependencies {
+ compile project(':launcher-builder')
+ compile 'org.eclipse.jetty:jetty-server:9.3.1.v20150714'
+}
+
+shadowJar {
+ dependencies {
+ exclude(dependency('org.projectlombok:lombok'))
+ }
+}
+
+task createDist(type: Copy) {
+ dependsOn jar, shadowJar
+
+ def destDir = file("${buildDir}/dist/stagingtool")
+ destDir.parentFile.deleteDir()
+ destDir.mkdirs()
+
+ destinationDir destDir
+
+ from("${buildDir}/libs/${shadowJar.baseName}-${version}-all.jar") {
+ rename { f -> "staging-tool.jar" }
+ }
+
+ from("${projectDir}/scripts")
+
+}
+
+build.dependsOn(shadowJar)
+build.dependsOn(createDist)
diff --git a/staging-tool/scripts/HOW_TO_USE.html b/staging-tool/scripts/HOW_TO_USE.html
new file mode 100644
index 0000000..4b1bfe5
--- /dev/null
+++ b/staging-tool/scripts/HOW_TO_USE.html
@@ -0,0 +1,35 @@
+
+
+
+
+
How to Use
+
+
This tool lets you test the modpack locally.
+
+
It should be a stagingtool
folder within the modpack folder.
+
+
Usage
+
+
Basically, whenever you want to test the modpack, use build_and_launch.bat
to build the modpack output files, start a local web server, and open the launcher.
+
+
There are other files that you can run too:
+
+
+ build.bat
just builds the modpack output files only
+ http_server.bat
just runs the local web server only
+ launch.bat
just runs the staging launcher only
+ reset_build.bat
deletes all the generated modpack output files, but there is rarely a situation where you would need to do this
+ reset_launcher.bat
deletes downloaded instances, so you can use the launcher as someone who hasn't yet downloaded the modpack yet
+
+
+
+
\ No newline at end of file
diff --git a/staging-tool/scripts/build.bat b/staging-tool/scripts/build.bat
new file mode 100644
index 0000000..2fbba1d
--- /dev/null
+++ b/staging-tool/scripts/build.bat
@@ -0,0 +1,3 @@
+@echo off
+
+java -cp staging-tool.jar com.skcraft.launcher.builder.PackageBuilder --version "%DATE% %TIME%" --input ..\ --output www --manifest-dest "www/staging.json"
\ No newline at end of file
diff --git a/staging-tool/scripts/build_and_launch.bat b/staging-tool/scripts/build_and_launch.bat
new file mode 100644
index 0000000..00cf748
--- /dev/null
+++ b/staging-tool/scripts/build_and_launch.bat
@@ -0,0 +1,14 @@
+@echo off
+
+call build.bat
+if ERRORLEVEL 0 goto Launch
+
+:Launch
+call launch.bat
+goto End
+
+:Error
+echo "ERROR -- Modpack building failed!"
+pause
+
+:End
\ No newline at end of file
diff --git a/staging-tool/scripts/http_server.bat b/staging-tool/scripts/http_server.bat
new file mode 100644
index 0000000..946b03e
--- /dev/null
+++ b/staging-tool/scripts/http_server.bat
@@ -0,0 +1,2 @@
+@echo off
+java -cp staging-tool.jar com.skcraft.launcher.staging.StagingServer --www-dir www
\ No newline at end of file
diff --git a/staging-tool/scripts/launch.bat b/staging-tool/scripts/launch.bat
new file mode 100644
index 0000000..b180f7c
--- /dev/null
+++ b/staging-tool/scripts/launch.bat
@@ -0,0 +1,5 @@
+@echo off
+
+mkdir launcher
+cd launcher
+java -cp ..\staging-tool.jar com.skcraft.launcher.staging.StagingServer --www-dir ..\www --launch
\ No newline at end of file
diff --git a/staging-tool/scripts/reset_build.bat b/staging-tool/scripts/reset_build.bat
new file mode 100644
index 0000000..223e0de
--- /dev/null
+++ b/staging-tool/scripts/reset_build.bat
@@ -0,0 +1,3 @@
+@echo off
+
+del /f /s /q www
\ No newline at end of file
diff --git a/staging-tool/scripts/reset_launcher.bat b/staging-tool/scripts/reset_launcher.bat
new file mode 100644
index 0000000..b286db3
--- /dev/null
+++ b/staging-tool/scripts/reset_launcher.bat
@@ -0,0 +1,3 @@
+@echo off
+
+del /f /s /q launcher\instances
\ No newline at end of file
diff --git a/staging-tool/src/main/java/com/skcraft/launcher/staging/LatestHandler.java b/staging-tool/src/main/java/com/skcraft/launcher/staging/LatestHandler.java
new file mode 100644
index 0000000..b0ff28a
--- /dev/null
+++ b/staging-tool/src/main/java/com/skcraft/launcher/staging/LatestHandler.java
@@ -0,0 +1,41 @@
+/*
+ * SK's Minecraft Launcher
+ * Copyright (C) 2010-2014 Albert Pham