From dbab5a912db8805f58ef9ab0695c6c1a0c74d878 Mon Sep 17 00:00:00 2001
From: Cameron Taylor <cameron.taylor.ninja@gmail.com>
Date: Wed, 31 May 2023 03:03:10 -0400
Subject: [PATCH 01/12] death alt easter egg

---
 .../graphics/adobeanimate/FlxAtlasSprite.hx    |  2 +-
 source/funkin/play/GameOverSubstate.hx         | 18 +++++++++++++++++-
 2 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/source/funkin/graphics/adobeanimate/FlxAtlasSprite.hx b/source/funkin/graphics/adobeanimate/FlxAtlasSprite.hx
index aad9cd851..1c120a7c7 100644
--- a/source/funkin/graphics/adobeanimate/FlxAtlasSprite.hx
+++ b/source/funkin/graphics/adobeanimate/FlxAtlasSprite.hx
@@ -16,7 +16,7 @@ class FlxAtlasSprite extends FlxAnimate
       FrameRate: 24.0,
       Reversed: false,
       // ?OnComplete:Void -> Void,
-      ShowPivot: #if debug true #else false #end,
+      ShowPivot: #if debug false #else false #end,
       Antialiasing: true,
       ScrollFactor: new FlxPoint(1, 1),
       // Offset: new FlxPoint(0, 0), // This is just FlxSprite.offset
diff --git a/source/funkin/play/GameOverSubstate.hx b/source/funkin/play/GameOverSubstate.hx
index 3d5470324..b07f5786b 100644
--- a/source/funkin/play/GameOverSubstate.hx
+++ b/source/funkin/play/GameOverSubstate.hx
@@ -1,5 +1,7 @@
 package funkin.play;
 
+import funkin.graphics.adobeanimate.FlxAtlasSprite;
+import flixel.FlxG;
 import flixel.FlxObject;
 import flixel.FlxSprite;
 import flixel.system.FlxSound;
@@ -97,7 +99,21 @@ class GameOverSubstate extends MusicBeatSubstate
     boyfriend.isDead = true;
     add(boyfriend);
     boyfriend.resetCharacter();
-    boyfriend.playAnimation('firstDeath', true, true);
+
+    if (animationSuffix == "" && FlxG.random.bool((1 / 4000) * 100))
+    {
+      var bfFake:FlxAtlasSprite = new FlxAtlasSprite(boyfriend.x - 440, boyfriend.y - 240, Paths.animateAtlas("characters/bfFakeOut", "shared"),);
+      add(bfFake);
+      bfFake.playAnimation("");
+      bfFake.anim.onComplete = () -> {
+        bfFake.visible = false;
+        boyfriend.visible = true;
+        boyfriend.playAnimation('firstDeath', true, true);
+      };
+      boyfriend.visible = false;
+    }
+    else
+      boyfriend.playAnimation('firstDeath', true, true);
 
     // Assign a camera follow point to the boyfriend's position.
     cameraFollowPoint = new FlxObject(PlayState.instance.cameraFollowPoint.x, PlayState.instance.cameraFollowPoint.y, 1, 1);

From 2d16aab488841a1b541f50aeddda51882c7f01db Mon Sep 17 00:00:00 2001
From: Cameron Taylor <cameron.taylor.ninja@gmail.com>
Date: Wed, 31 May 2023 03:28:53 -0400
Subject: [PATCH 02/12] snds effects

---
 source/funkin/play/GameOverSubstate.hx | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/source/funkin/play/GameOverSubstate.hx b/source/funkin/play/GameOverSubstate.hx
index b07f5786b..93cc47b57 100644
--- a/source/funkin/play/GameOverSubstate.hx
+++ b/source/funkin/play/GameOverSubstate.hx
@@ -100,8 +100,10 @@ class GameOverSubstate extends MusicBeatSubstate
     add(boyfriend);
     boyfriend.resetCharacter();
 
-    if (animationSuffix == "" && FlxG.random.bool((1 / 4000) * 100))
+    if (boyfriend.characterId == "bf" && animationSuffix == "" && FlxG.random.bool((1 / 4000) * 100))
     {
+      FlxG.sound.play(Paths.sound("fakeout_death"));
+
       var bfFake:FlxAtlasSprite = new FlxAtlasSprite(boyfriend.x - 440, boyfriend.y - 240, Paths.animateAtlas("characters/bfFakeOut", "shared"),);
       add(bfFake);
       bfFake.playAnimation("");
@@ -109,11 +111,17 @@ class GameOverSubstate extends MusicBeatSubstate
         bfFake.visible = false;
         boyfriend.visible = true;
         boyfriend.playAnimation('firstDeath', true, true);
+        // Play the "blue balled" sound. May play a variant if one has been assigned.
+        playBlueBalledSFX();
       };
       boyfriend.visible = false;
     }
     else
+    {
       boyfriend.playAnimation('firstDeath', true, true);
+      // Play the "blue balled" sound. May play a variant if one has been assigned.
+      playBlueBalledSFX();
+    }
 
     // Assign a camera follow point to the boyfriend's position.
     cameraFollowPoint = new FlxObject(PlayState.instance.cameraFollowPoint.x, PlayState.instance.cameraFollowPoint.y, 1, 1);
@@ -134,9 +142,6 @@ class GameOverSubstate extends MusicBeatSubstate
 
     // The conductor now represents the BPM of the game over music.
     Conductor.songPosition = 0;
-
-    // Play the "blue balled" sound. May play a variant if one has been assigned.
-    playBlueBalledSFX();
   }
 
   override function update(elapsed:Float)

From 374f03dae30a90051ac761c04ea45de80d865df2 Mon Sep 17 00:00:00 2001
From: EliteMasterEric <ericmyllyoja@gmail.com>
Date: Thu, 1 Jun 2023 00:31:32 -0400
Subject: [PATCH 03/12] Fakeout death now uses HScript

---
 source/funkin/play/GameOverSubstate.hx | 44 +++++++++++---------------
 1 file changed, 19 insertions(+), 25 deletions(-)

diff --git a/source/funkin/play/GameOverSubstate.hx b/source/funkin/play/GameOverSubstate.hx
index 93cc47b57..041831962 100644
--- a/source/funkin/play/GameOverSubstate.hx
+++ b/source/funkin/play/GameOverSubstate.hx
@@ -1,6 +1,5 @@
 package funkin.play;
 
-import funkin.graphics.adobeanimate.FlxAtlasSprite;
 import flixel.FlxG;
 import flixel.FlxObject;
 import flixel.FlxSprite;
@@ -100,29 +99,6 @@ class GameOverSubstate extends MusicBeatSubstate
     add(boyfriend);
     boyfriend.resetCharacter();
 
-    if (boyfriend.characterId == "bf" && animationSuffix == "" && FlxG.random.bool((1 / 4000) * 100))
-    {
-      FlxG.sound.play(Paths.sound("fakeout_death"));
-
-      var bfFake:FlxAtlasSprite = new FlxAtlasSprite(boyfriend.x - 440, boyfriend.y - 240, Paths.animateAtlas("characters/bfFakeOut", "shared"),);
-      add(bfFake);
-      bfFake.playAnimation("");
-      bfFake.anim.onComplete = () -> {
-        bfFake.visible = false;
-        boyfriend.visible = true;
-        boyfriend.playAnimation('firstDeath', true, true);
-        // Play the "blue balled" sound. May play a variant if one has been assigned.
-        playBlueBalledSFX();
-      };
-      boyfriend.visible = false;
-    }
-    else
-    {
-      boyfriend.playAnimation('firstDeath', true, true);
-      // Play the "blue balled" sound. May play a variant if one has been assigned.
-      playBlueBalledSFX();
-    }
-
     // Assign a camera follow point to the boyfriend's position.
     cameraFollowPoint = new FlxObject(PlayState.instance.cameraFollowPoint.x, PlayState.instance.cameraFollowPoint.y, 1, 1);
     cameraFollowPoint.x = boyfriend.getGraphicMidpoint().x;
@@ -144,10 +120,28 @@ class GameOverSubstate extends MusicBeatSubstate
     Conductor.songPosition = 0;
   }
 
+  var hasStartedAnimation:Bool = false;
+
   override function update(elapsed:Float)
   {
     super.update(elapsed);
 
+    if (!hasStartedAnimation)
+    {
+      hasStartedAnimation = true;
+
+      if (boyfriend.hasAnimation('fakeoutDeath') && (FlxG.random.bool((1 / 4000) * 100) || true))
+      {
+        boyfriend.playAnimation('fakeoutDeath', true, true);
+      }
+      else
+      {
+        boyfriend.playAnimation('firstDeath', true, true);
+        // Play the "blue balled" sound. May play a variant if one has been assigned.
+        playBlueBalledSFX();
+      }
+    }
+
     //
     // Handle user inputs.
     //
@@ -279,7 +273,7 @@ class GameOverSubstate extends MusicBeatSubstate
    * Play the sound effect that occurs when
    * boyfriend's testicles get utterly annihilated.
    */
-  function playBlueBalledSFX()
+  public static function playBlueBalledSFX()
   {
     FlxG.sound.play(Paths.sound('fnf_loss_sfx' + blueBallSuffix));
   }

From b49a2857e583d3eb5d2e29c5d49917f3e7ee9a7e Mon Sep 17 00:00:00 2001
From: Eric <ericmyllyoja@gmail.com>
Date: Thu, 1 Jun 2023 00:33:30 -0400
Subject: [PATCH 04/12] Revert guaranteed fakeout

---
 source/funkin/play/GameOverSubstate.hx | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/source/funkin/play/GameOverSubstate.hx b/source/funkin/play/GameOverSubstate.hx
index 041831962..01e8e568d 100644
--- a/source/funkin/play/GameOverSubstate.hx
+++ b/source/funkin/play/GameOverSubstate.hx
@@ -130,7 +130,7 @@ class GameOverSubstate extends MusicBeatSubstate
     {
       hasStartedAnimation = true;
 
-      if (boyfriend.hasAnimation('fakeoutDeath') && (FlxG.random.bool((1 / 4000) * 100) || true))
+      if (boyfriend.hasAnimation('fakeoutDeath') && (FlxG.random.bool((1 / 4000) * 100)))
       {
         boyfriend.playAnimation('fakeoutDeath', true, true);
       }

From 2d772a526b33b8205b36b3bd8b2eede7d8d6531e Mon Sep 17 00:00:00 2001
From: Cameron Taylor <cameron.taylor.ninja@gmail.com>
Date: Fri, 2 Jun 2023 15:56:40 -0400
Subject: [PATCH 05/12] no skipping easter egg!!

---
 source/funkin/play/GameOverSubstate.hx | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/source/funkin/play/GameOverSubstate.hx b/source/funkin/play/GameOverSubstate.hx
index 01e8e568d..da7c68df7 100644
--- a/source/funkin/play/GameOverSubstate.hx
+++ b/source/funkin/play/GameOverSubstate.hx
@@ -130,7 +130,7 @@ class GameOverSubstate extends MusicBeatSubstate
     {
       hasStartedAnimation = true;
 
-      if (boyfriend.hasAnimation('fakeoutDeath') && (FlxG.random.bool((1 / 4000) * 100)))
+      if (boyfriend.hasAnimation('fakeoutDeath') && (true || FlxG.random.bool((1 / 4000) * 100)))
       {
         boyfriend.playAnimation('fakeoutDeath', true, true);
       }
@@ -160,7 +160,7 @@ class GameOverSubstate extends MusicBeatSubstate
     }
 
     // KEYBOARD ONLY: Restart the level when pressing the assigned key.
-    if (controls.ACCEPT)
+    if (controls.ACCEPT && blueballed)
     {
       confirmDeath();
     }
@@ -269,12 +269,15 @@ class GameOverSubstate extends MusicBeatSubstate
     }
   }
 
+  var blueballed:Bool = false;
+
   /**
    * Play the sound effect that occurs when
    * boyfriend's testicles get utterly annihilated.
    */
   public static function playBlueBalledSFX()
   {
+    blueballed = true;
     FlxG.sound.play(Paths.sound('fnf_loss_sfx' + blueBallSuffix));
   }
 

From 7a04a2d7747a11ee0e9fa5562d6c3aef93ee80b9 Mon Sep 17 00:00:00 2001
From: Cameron Taylor <cameron.taylor.ninja@gmail.com>
Date: Sun, 4 Jun 2023 01:19:08 -0400
Subject: [PATCH 06/12] blueball check

---
 source/funkin/play/GameOverSubstate.hx | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/source/funkin/play/GameOverSubstate.hx b/source/funkin/play/GameOverSubstate.hx
index da7c68df7..2f55a8e79 100644
--- a/source/funkin/play/GameOverSubstate.hx
+++ b/source/funkin/play/GameOverSubstate.hx
@@ -162,12 +162,14 @@ class GameOverSubstate extends MusicBeatSubstate
     // KEYBOARD ONLY: Restart the level when pressing the assigned key.
     if (controls.ACCEPT && blueballed)
     {
+      blueballed = false;
       confirmDeath();
     }
 
     // KEYBOARD ONLY: Return to the menu when pressing the assigned key.
     if (controls.BACK)
     {
+      blueballed = false;
       PlayState.deathCounter = 0;
       PlayState.seenCutscene = false;
       gameOverMusic.stop();
@@ -269,7 +271,7 @@ class GameOverSubstate extends MusicBeatSubstate
     }
   }
 
-  var blueballed:Bool = false;
+  static var blueballed:Bool = false;
 
   /**
    * Play the sound effect that occurs when

From 6f676a5896ffdbfd2db818aceae8302393e4ef83 Mon Sep 17 00:00:00 2001
From: EliteMasterEric <ericmyllyoja@gmail.com>
Date: Sat, 10 Jun 2023 02:56:03 -0400
Subject: [PATCH 07/12] Added new "Mods" story menu section (hidden when no
 mods are installed)

---
 source/funkin/ui/story/Level.hx          |  5 +++-
 source/funkin/ui/story/LevelProp.hx      |  4 ++-
 source/funkin/ui/story/StoryMenuState.hx | 31 +++++++++++++++++++-----
 3 files changed, 32 insertions(+), 8 deletions(-)

diff --git a/source/funkin/ui/story/Level.hx b/source/funkin/ui/story/Level.hx
index 3ff0a5321..83682fec9 100644
--- a/source/funkin/ui/story/Level.hx
+++ b/source/funkin/ui/story/Level.hx
@@ -156,7 +156,10 @@ class Level implements IRegistryEntry<LevelData>
     for (propIndex in 0..._data.props.length)
     {
       var propData = _data.props[propIndex];
-      var propSprite:LevelProp = LevelProp.build(propData);
+
+      var propSprite:Null<LevelProp> = LevelProp.build(propData);
+      if (propSprite == null) continue;
+
       propSprite.x += FlxG.width * 0.25 * propIndex;
       props.push(propSprite);
     }
diff --git a/source/funkin/ui/story/LevelProp.hx b/source/funkin/ui/story/LevelProp.hx
index a474b363c..4dce7bfb3 100644
--- a/source/funkin/ui/story/LevelProp.hx
+++ b/source/funkin/ui/story/LevelProp.hx
@@ -16,8 +16,10 @@ class LevelProp extends Bopper
     playAnimation('confirm', true, true);
   }
 
-  public static function build(propData:LevelPropData):Null<LevelProp>
+  public static function build(propData:Null<LevelPropData>):Null<LevelProp>
   {
+    if (propData == null) return null;
+
     var isAnimated:Bool = propData.animations.length > 0;
     var prop:LevelProp = new LevelProp(propData.danceEvery);
 
diff --git a/source/funkin/ui/story/StoryMenuState.hx b/source/funkin/ui/story/StoryMenuState.hx
index b61f1bdee..1dc59f3ec 100644
--- a/source/funkin/ui/story/StoryMenuState.hx
+++ b/source/funkin/ui/story/StoryMenuState.hx
@@ -52,6 +52,11 @@ class StoryMenuState extends MusicBeatState
    */
   var scoreText:FlxText;
 
+  /**
+   * The mode text at the top-middle.
+   */
+  var modeText:FlxText;
+
   /**
    * The list of songs on the left.
    */
@@ -146,16 +151,22 @@ class StoryMenuState extends MusicBeatState
 
     updateProps();
 
-    scoreText = new FlxText(10, 10, 0, 'HIGH SCORE: 42069420');
-    scoreText.setFormat("VCR OSD Mono", 32);
-    add(scoreText);
-
     tracklistText = new FlxText(FlxG.width * 0.05, levelBackground.x + levelBackground.height + 100, 0, "Tracks", 32);
     tracklistText.setFormat("VCR OSD Mono", 32);
     tracklistText.alignment = CENTER;
     tracklistText.color = 0xFFe55777;
     add(tracklistText);
 
+    scoreText = new FlxText(10, 10, 0, 'HIGH SCORE: 42069420');
+    scoreText.setFormat("VCR OSD Mono", 32);
+    add(scoreText);
+
+    modeText = new FlxText(10, 10, 0, 'Base Game Levels [TAB to switch]');
+    modeText.setFormat("VCR OSD Mono", 32);
+    modeText.screenCenter(X);
+    modeText.visible = hasModdedLevels();
+    add(modeText);
+
     levelTitleText = new FlxText(FlxG.width * 0.7, 10, 0, 'LEVEL 1');
     levelTitleText.setFormat("VCR OSD Mono", 32, FlxColor.WHITE, RIGHT);
     levelTitleText.alpha = 0.7;
@@ -256,7 +267,7 @@ class StoryMenuState extends MusicBeatState
     displayingModdedLevels = moddedLevels;
     buildLevelTitles();
 
-    changeLevel(0);
+    changeLevel(999999); // Jump past the end of the list to the beginning.
     changeDifficulty(0);
   }
 
@@ -268,6 +279,9 @@ class StoryMenuState extends MusicBeatState
 
     scoreText.text = 'LEVEL SCORE: ${Math.round(highScoreLerp)}';
 
+    modeText.text = displayingModdedLevels ? 'Mods [TAB to switch]' : 'Base Game [TAB to switch]';
+    modeText.screenCenter(X);
+
     levelTitleText.text = currentLevel.getTitle();
     levelTitleText.x = FlxG.width - (levelTitleText.width + 10); // Right align.
 
@@ -322,7 +336,7 @@ class StoryMenuState extends MusicBeatState
           changeDifficulty(-1);
         }
 
-        if (FlxG.keys.justPressed.TAB)
+        if (FlxG.keys.justPressed.TAB && modeText.visible)
         {
           switchMode(!displayingModdedLevels);
         }
@@ -342,6 +356,11 @@ class StoryMenuState extends MusicBeatState
     }
   }
 
+  function hasModdedLevels():Bool
+  {
+    return LevelRegistry.instance.listModdedLevelIds().length > 0;
+  }
+
   /**
    * Changes the selected level.
    * @param change +1 (down), -1 (up)

From 02632a623c4c063bf5253c28aed5394fce50c850 Mon Sep 17 00:00:00 2001
From: EliteMasterEric <ericmyllyoja@gmail.com>
Date: Thu, 15 Jun 2023 03:48:52 -0400
Subject: [PATCH 08/12] Disable fakeout happening 100% of the time.

---
 source/funkin/play/GameOverSubstate.hx | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/source/funkin/play/GameOverSubstate.hx b/source/funkin/play/GameOverSubstate.hx
index 041831962..a2048149f 100644
--- a/source/funkin/play/GameOverSubstate.hx
+++ b/source/funkin/play/GameOverSubstate.hx
@@ -130,7 +130,7 @@ class GameOverSubstate extends MusicBeatSubstate
     {
       hasStartedAnimation = true;
 
-      if (boyfriend.hasAnimation('fakeoutDeath') && (FlxG.random.bool((1 / 4000) * 100) || true))
+      if (boyfriend.hasAnimation('fakeoutDeath') && FlxG.random.bool((1 / 4096) * 100))
       {
         boyfriend.playAnimation('fakeoutDeath', true, true);
       }

From a7aafa9e3e4f0b381a0236795a2140219f4c012d Mon Sep 17 00:00:00 2001
From: Cameron Taylor <cameron.taylor.ninja@gmail.com>
Date: Thu, 15 Jun 2023 14:09:19 -0400
Subject: [PATCH 09/12] .haxelib caching

---
 .github/actions/setup-haxeshit/action.yml |  2 +-
 .github/workflows/build-shit.yml          | 44 +++--------------------
 2 files changed, 6 insertions(+), 40 deletions(-)

diff --git a/.github/actions/setup-haxeshit/action.yml b/.github/actions/setup-haxeshit/action.yml
index 21fab6fb2..2a8986c1f 100644
--- a/.github/actions/setup-haxeshit/action.yml
+++ b/.github/actions/setup-haxeshit/action.yml
@@ -16,5 +16,5 @@ runs:
           haxelib git haxelib https://github.com/HaxeFoundation/haxelib.git
           haxelib version
           haxelib --global install hmm
-          haxelib --global run hmm install --quiet
+          haxelib --global run hmm install
         shell: bash
diff --git a/.github/workflows/build-shit.yml b/.github/workflows/build-shit.yml
index 7115f2f6d..6c6a73c40 100644
--- a/.github/workflows/build-shit.yml
+++ b/.github/workflows/build-shit.yml
@@ -2,7 +2,7 @@ name: build-upload
 on:
   workflow_dispatch:
   push:
-  
+
 jobs:
   check_date:
     runs-on: ubuntu-latest
@@ -44,18 +44,14 @@ jobs:
        actions: write
     steps:
       - uses: actions/checkout@v3
-      - name: Restore existing build cache for faster compilation
-        uses: actions/cache/restore@v3
-        id: cache-windows-shit
+      - name: Restore/create existing haxelib cache for faster downloads
+        uses: actions/cache@v3
+        id: cache-haxelib-windows
         with:
           # wha?
-          key: cache-build-win
+          key: cache-haxelib-windows-${{ hashFiles('**/hmm.json')}}
           path: |
             .haxelib/
-            export/debug/windows/haxe/
-            export/debug/windows/obj/
-          restore-keys: |
-            cache-build-windows
       - uses: ./.github/actions/setup-haxeshit
       - name: Build game
         run: |
@@ -66,33 +62,3 @@ jobs:
           butler-key: ${{ secrets.BUTLER_API_KEY}}
           build-dir: export/debug/windows/bin
           target: win
-      - name: Clearing already existing cache
-        uses: actions/github-script@v6
-        with:
-          script: |
-            const caches = await github.rest.actions.getActionsCacheList({
-              owner: context.repo.owner,
-              repo: context.repo.repo,
-            })
-            for (const cache of caches.data.actions_caches) {
-              if (cache.key == "cache-build-windows") {
-                console.log('Clearing ' + cache.key + '...')
-                await github.rest.actions.deleteActionsCacheById({
-                  owner: context.repo.owner,
-                  repo: context.repo.repo,
-                  cache_id: cache.id,
-                })
-                console.log("Cache cleared.")
-              }
-            }
-      - name: Uploading new cache
-        uses: actions/cache/save@v3
-        with:
-          # caching again since for some reason it doesnt work with the first post cache shit
-          key: cache-build-windows
-          path: |
-            .haxelib/
-            export/debug/windows/haxe/
-            export/debug/windows/obj/
-          restore-keys: |
-            cache-build-windows

From 0b42b6e3053f4f8c7d045f17537ab2bd904bf0ac Mon Sep 17 00:00:00 2001
From: Cameron Taylor <cameron.taylor.ninja@gmail.com>
Date: Thu, 15 Jun 2023 14:12:39 -0400
Subject: [PATCH 10/12] moved caching so html5 can also cache haxelibs

---
 .github/actions/setup-haxeshit/action.yml | 8 ++++++++
 .github/workflows/build-shit.yml          | 8 --------
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/.github/actions/setup-haxeshit/action.yml b/.github/actions/setup-haxeshit/action.yml
index 2a8986c1f..bf81e0d6d 100644
--- a/.github/actions/setup-haxeshit/action.yml
+++ b/.github/actions/setup-haxeshit/action.yml
@@ -10,6 +10,14 @@ runs:
         run: |
           haxelib config
         shell: bash
+      - name: Restore/create existing haxelib cache for faster downloads
+        uses: actions/cache@v3
+        id: cache-haxelib-windows
+        with:
+          # wha?
+          key: cache-haxelib-${{ runner.os }}-${{ hashFiles('**/hmm.json')}}
+          path: |
+            .haxelib/
       - name: Installing Haxe lol
         run: |
           haxe -version
diff --git a/.github/workflows/build-shit.yml b/.github/workflows/build-shit.yml
index 6c6a73c40..35d436b2c 100644
--- a/.github/workflows/build-shit.yml
+++ b/.github/workflows/build-shit.yml
@@ -44,14 +44,6 @@ jobs:
        actions: write
     steps:
       - uses: actions/checkout@v3
-      - name: Restore/create existing haxelib cache for faster downloads
-        uses: actions/cache@v3
-        id: cache-haxelib-windows
-        with:
-          # wha?
-          key: cache-haxelib-windows-${{ hashFiles('**/hmm.json')}}
-          path: |
-            .haxelib/
       - uses: ./.github/actions/setup-haxeshit
       - name: Build game
         run: |

From 092dcb5a35aab4074cd4a0fe1019c34f3525d25e Mon Sep 17 00:00:00 2001
From: Cameron Taylor <cameron.taylor.ninja@gmail.com>
Date: Thu, 15 Jun 2023 14:31:49 -0400
Subject: [PATCH 11/12] counter fix thing

---
 source/funkin/play/GameOverSubState.hx | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/source/funkin/play/GameOverSubState.hx b/source/funkin/play/GameOverSubState.hx
index 1b79d024b..7c39cef56 100644
--- a/source/funkin/play/GameOverSubState.hx
+++ b/source/funkin/play/GameOverSubState.hx
@@ -170,8 +170,8 @@ class GameOverSubState extends MusicBeatSubState
     if (controls.BACK)
     {
       blueballed = false;
-      PlayState.deathCounter = 0;
-      PlayState.seenCutscene = false;
+      PlayState.instance.deathCounter = 0;
+      // PlayState.seenCutscene = false; // old thing...
       gameOverMusic.stop();
 
       if (PlayStatePlaylist.isStoryMode) FlxG.switchState(new StoryMenuState());

From d1333b9b24284ecea21b8f0444e2d00fab53b446 Mon Sep 17 00:00:00 2001
From: Cameron Taylor <cameron.taylor.ninja@gmail.com>
Date: Tue, 27 Jun 2023 12:45:41 -0400
Subject: [PATCH 12/12] new hxcodec stuff

---
 hmm.json | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/hmm.json b/hmm.json
index f45a94b08..dc403a5ab 100644
--- a/hmm.json
+++ b/hmm.json
@@ -68,8 +68,8 @@
       "name": "hxCodec",
       "type": "git",
       "dir": null,
-      "ref": "c42ab99",
-      "url": "https://github.com/polybiusproxy/hxCodec"
+      "ref": "a56f4b4",
+      "url": "https://github.com/FunkinCrew/hxCodec"
     },
     {
       "name": "hxcpp",