diff --git a/.github/workflows/learn-github-actions.yml b/.github/workflows/learn-github-actions.yml
index 1cc2a4ca1..590e25f05 100644
--- a/.github/workflows/learn-github-actions.yml
+++ b/.github/workflows/learn-github-actions.yml
@@ -14,17 +14,9 @@ jobs:
       - name: Installing Haxe lol
         run: |
           haxe -version
-          haxelib install openfl --quiet
-          haxelib install lime --quiet
-          haxelib install flixel --quiet
-          haxelib install flixel-addons --quiet
-          haxelib install hscript --quiet
-          haxelib install flixel-ui --quiet
-          haxelib install firetongue --quiet
-          haxelib install hxcpp-debug-server --quiet
-          haxelib install hxcpp --quiet
-          haxelib install thx.semver --quiet
-          haxelib git polymod https://github.com/larsiusprime/polymod develop --quiet
+          haxelib --global install hmm
+          haxelib --global run hmm setup
+          hmm install --quiet
           haxelib run lime setup linux
       - name: Build game?
         run: |
diff --git a/.gitignore b/.gitignore
index 8a4d131df..492e1d0c7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,4 +2,5 @@ export/
 .vscode/
 APIStuff.hx
 .DS_STORE
-RECOVER_*.fla
\ No newline at end of file
+RECOVER_*.fla
+.haxelib/
\ No newline at end of file
diff --git a/README.md b/README.md
index d868c6574..df348d7f2 100644
--- a/README.md
+++ b/README.md
@@ -39,27 +39,21 @@ First you need to install Haxe and HaxeFlixel. I'm too lazy to write and keep up
 1. [Install Haxe 4.1.5](https://haxe.org/download/version/4.1.5/) (Download 4.1.5 instead of 4.2.0 because 4.2.0 is broken and is not working with gits properly...)
 2. [Install HaxeFlixel](https://haxeflixel.com/documentation/install-haxeflixel/) after downloading Haxe
 
-Other installations you'd need is the additional libraries, a fully updated list will be in `Project.xml` in the project root. Currently, these are all of the things you need to install:
+Other installations you'd need is the additional libraries, a fully updated list will be in `hmm.json` in the project root. Currently, these are all of the things you need to install:
 ```
-flixel
-flixel-addons
-flixel-ui
-hscript
-newgrounds
+haxelib --global install hmm
+haxelib --global run hmm setup
+hmm install
 ```
-So for each of those type `haxelib install [library]` so shit like `haxelib install newgrounds`
 
-You'll also need to install a couple things that involve Gits. To do this, you need to do a few things first.
+<!-- You'll also need to install a couple things that involve Gits. To do this, you need to do a few things first.
 1. Download [git-scm](https://git-scm.com/downloads). Works for Windows, Mac, and Linux, just select your build.
 2. Follow instructions to install the application properly.
 3. Run `haxelib git polymod https://github.com/larsiusprime/polymod.git` to install Polymod.
-4. Run `haxelib git discord_rpc https://github.com/Aidan63/linc_discord-rpc` to install Discord RPC.
+4. Run `haxelib git discord_rpc https://github.com/Aidan63/linc_discord-rpc` to install Discord RPC. -->
 
 You should have everything ready for compiling the game! Follow the guide below to continue!
 
-At the moment, you can optionally fix the transition bug in songs with zoomed out cameras.
-- Run `haxelib git flixel-addons https://github.com/HaxeFlixel/flixel-addons` in the terminal/command-prompt.
-
 ### Ignored files
 
 I gitignore the API keys for the game, so that no one can nab them and post fake highscores on the leaderboards. But because of that the game
diff --git a/hmm.json b/hmm.json
new file mode 100644
index 000000000..984f54166
--- /dev/null
+++ b/hmm.json
@@ -0,0 +1,74 @@
+{
+  "dependencies": [
+    {
+      "name": "discord_rpc",
+      "type": "git",
+      "dir": null,
+      "ref": "2d83fa8",
+      "url": "https://github.com/Aidan63/linc_discord-rpc"
+    },
+    {
+      "name": "firetongue",
+      "type": "git",
+      "dir": null,
+      "ref": "c5666c8",
+      "url": "https://github.com/larsiusprime/firetongue"
+    },
+    {
+      "name": "flixel",
+      "type": "git",
+      "dir": null,
+      "ref": "93a049d6",
+      "url": "https://github.com/haxeflixel/flixel"
+    },
+    {
+      "name": "flixel-addons",
+      "type": "haxelib",
+      "version": "2.11.0"
+    },
+    {
+      "name": "flixel-ui",
+      "type": "haxelib",
+      "version": "2.4.0"
+    },
+    {
+      "name": "hscript",
+      "type": "git",
+      "dir": null,
+      "ref": "a1b7f74",
+      "url": "https://github.com/mastereric/hscript"
+    },
+    {
+      "name": "hxcpp",
+      "type": "haxelib",
+      "version": "4.2.1"
+    },
+    {
+      "name": "hxcpp-debug-server",
+      "type": "haxelib",
+      "version": "1.2.4"
+    },
+    {
+      "name": "lime",
+      "type": "haxelib",
+      "version": "7.9.0"
+    },
+    {
+      "name": "openfl",
+      "type": "haxelib",
+      "version": "9.1.0"
+    },
+    {
+      "name": "polymod",
+      "type": "git",
+      "dir": null,
+      "ref": "c858b48",
+      "url": "https://github.com/larsiusprime/polymod"
+    },
+    {
+      "name": "thx.semver",
+      "type": "haxelib",
+      "version": "0.2.2"
+    }
+  ]
+}
\ No newline at end of file