diff --git a/README.md b/README.md
index 4ba72199d073a0108190f3dfef8424e14fce5082..eab1454caa44dab8605d96de620ae2ec8ebbe63c 100644
--- a/README.md
+++ b/README.md
@@ -3,3 +3,15 @@
 ### Known issues:
  - JavaFX Mediaplayer is buggy under Windows 11. Videos can have weird behaviors and sometimes won't load at all
  - SQL server is very slow (thanks Oracle)
+
+<br><br>
+#### FAQ:
+Why is the Game loading so long? <br> - cry about it
+
+Why can't I connect to the Multiplayer? <br> - cry about it
+
+The character is moving too quickly <br> - cry about it
+
+The UI is too small <br> - cry about it
+
+Why doesn't the intro load? <br> - cry about it
\ No newline at end of file
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/CreditsController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/CreditsController.java
index 3473328c663c30ef1f7dc40be00edc7ba5957a44..a056de0b757b1aa75cb1537a0aaf17b16d2e9540 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/CreditsController.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/CreditsController.java
@@ -1,6 +1,8 @@
 package de.hdm_stuttgart.battlearena.Controller;
 
+import de.hdm_stuttgart.battlearena.Controller.Enum.GameState;
 import de.hdm_stuttgart.battlearena.Controller.Utilities.CreateMediaPlayer;
+import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.RuntimeInfo;
 import javafx.fxml.FXML;
 import javafx.fxml.FXMLLoader;
 import javafx.fxml.Initializable;
@@ -42,6 +44,7 @@ public class CreditsController implements Initializable {
     private void videoEnd() {
         try {
 //            I don't know how to return to the options scene, so it just goes back to the main menu :(
+            RuntimeInfo.getInstance().setGameState(GameState.MENU);
             mediaPlayer.dispose();
             parent.getChildren().clear();
             parent.getScene().setRoot(FXMLLoader.load(Objects.requireNonNull(getClass().getResource("/fxml/MenuBorderPane.fxml"))));
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/GameSceneController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/GameSceneController.java
index a68fc576da646b43cf82367b5a1addd9a29ddbb1..f0867a12a55675f930f5f3ba739a5eb6f5ba4cb2 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/GameSceneController.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/GameSceneController.java
@@ -15,7 +15,6 @@ import de.hdm_stuttgart.battlearena.Model.Inputs.InputHandler;
 import de.hdm_stuttgart.battlearena.Model.Map.Biom;
 import de.hdm_stuttgart.battlearena.Model.Map.TileManager;
 
-import de.hdm_stuttgart.battlearena.Model.Sound.SoundEffects;
 import javafx.animation.AnimationTimer;
 import javafx.fxml.FXML;
 import javafx.fxml.Initializable;
@@ -25,9 +24,7 @@ import javafx.scene.canvas.Canvas;
 import javafx.scene.canvas.GraphicsContext;
 
 import javafx.scene.control.Label;
-import javafx.scene.effect.Effect;
 import javafx.scene.effect.GaussianBlur;
-import javafx.scene.effect.Lighting;
 import javafx.scene.layout.*;
 import javafx.scene.shape.Rectangle;
 import javafx.scene.text.Font;
@@ -35,7 +32,6 @@ import javafx.stage.Screen;
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.LogManager;
 
-import java.io.IOException;
 import java.net.URL;
 import java.util.*;
 import java.util.stream.Collectors;
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/LoadingScreenController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/LoadingScreenController.java
index a201e3eec425859dc22255b5c25b946d9db68003..4ded7a6ffff9ad1d656da19dab7cc3205c93632d 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/LoadingScreenController.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/LoadingScreenController.java
@@ -54,7 +54,8 @@ public class LoadingScreenController implements Initializable {
             "Apparently Jonas is above the law.",
             "Jonas has lost his Game Dev Role in Discord.",
             "Maxe is a light mode user. Poor soul...",
-            "Did you know, that Elias almost destroyed our GitLab Repo?"
+            "Did you know, that Elias almost destroyed our GitLab Repo?",
+            "This Game is sponsored by ChatGPTâ„¢"
     };
 
     private final List<String> shuffledTips = Arrays.asList(loadingTips);
@@ -74,7 +75,7 @@ public class LoadingScreenController implements Initializable {
 
     Thread loadStatistics = new Thread(() -> {
         try {
-            Thread.sleep(4000);
+            Thread.sleep(5000);
             loadStatistics();
         } catch (IOException e) {
             throw new RuntimeException();
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/MainMenuController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/MainMenuController.java
index 3b569f812f529b473b3544ee5667596669af57ac..d1efdc6aab8e9c380eb4c6bbdd122161ee521587 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/MainMenuController.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/MainMenuController.java
@@ -3,6 +3,7 @@ package de.hdm_stuttgart.battlearena.Controller;
 import de.hdm_stuttgart.battlearena.Controller.Utilities.SceneLoader;
 import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.Exceptions.DatabaseException;
 import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.Persistence;
+import de.hdm_stuttgart.battlearena.Model.Sound.MusicPlayer;
 import javafx.fxml.FXML;
 import javafx.fxml.Initializable;
 import javafx.scene.control.Button;
@@ -20,6 +21,7 @@ public class MainMenuController {
     private Button exitButton;
     private final SceneLoader sceneLoader = new SceneLoader();
     private final Persistence persistence = Persistence.getInstance();
+    private final MusicPlayer player = MusicPlayer.getInstance();
 
     private void switchScene(String name) {
         parent.getChildren().clear();
@@ -48,6 +50,7 @@ public class MainMenuController {
 
     @FXML
     private void exit() throws DatabaseException {
+        player.getScheduler().shutdown();
         persistence.savePlayerStatistics();
         persistence.saveSettings();
         Stage stage = (Stage) exitButton.getScene().getWindow();
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/MenuBorderPaneController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/MenuBorderPaneController.java
index 7fda7cbda5c11631d8680213e988de2a9c6209d5..ea40adc6b6cb662a7b2afd182a08b19f7c0e19a5 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/MenuBorderPaneController.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/MenuBorderPaneController.java
@@ -67,6 +67,7 @@ public class MenuBorderPaneController implements Initializable {
 
     private void easterEgg() {
         btnRight.setOnMouseClicked(mouseEvent -> {
+            musicCounter++;
             switch (musicCounter) {
                 case 5:
                     runtimeInfo.setGameState(GameState.MEMES);
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/SettingsController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/SettingsController.java
index 697b43351a03f3ca6ee5b6ac545f5a50480fe721..f10900fc1bedda32939424bc352cd24598000718 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/SettingsController.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/SettingsController.java
@@ -1,7 +1,9 @@
 package de.hdm_stuttgart.battlearena.Controller;
 
+import de.hdm_stuttgart.battlearena.Controller.Enum.GameState;
 import de.hdm_stuttgart.battlearena.Controller.Utilities.SceneLoader;
 import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.Persistence;
+import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.RuntimeInfo;
 import de.hdm_stuttgart.battlearena.Model.Sound.MusicPlayer;
 import de.hdm_stuttgart.battlearena.Model.Sound.SoundEffects;
 import javafx.fxml.FXML;
@@ -34,6 +36,7 @@ public class SettingsController implements Initializable {
 
     @FXML
     private void creditScene() throws IOException {
+        RuntimeInfo.getInstance().setGameState(GameState.NONE);
         parent.getChildren().clear();
         parent.getScene().setRoot(FXMLLoader.load(Objects.requireNonNull(getClass().getResource("/fxml/credits.fxml"))));
     }
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Main/Driver.java b/src/main/java/de/hdm_stuttgart/battlearena/Main/Driver.java
index f8431f9fcf7c982948b7f53ead47f380914874ea..83297700dd3dff0d7550224eef882ca59a72d8e4 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Main/Driver.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Main/Driver.java
@@ -6,6 +6,8 @@ import de.hdm_stuttgart.battlearena.Model.Inputs.InputHandler;
 
 import de.hdm_stuttgart.battlearena.Model.Sound.MusicPlayer;
 import javafx.application.Application;
+import javafx.application.Platform;
+import javafx.event.EventHandler;
 import javafx.fxml.FXMLLoader;
 import javafx.geometry.Rectangle2D;
 import javafx.scene.Parent;
@@ -16,6 +18,7 @@ import javafx.stage.Screen;
 import javafx.stage.Stage;
 
 import javafx.stage.StageStyle;
+import javafx.stage.WindowEvent;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
@@ -59,6 +62,8 @@ public class Driver extends Application {
         MusicPlayer player = MusicPlayer.getInstance();
         player.startGameStateMonitoring();
 
+        stage.setOnCloseRequest(windowEvent -> MusicPlayer.getInstance().getScheduler().shutdown());
+
 
         stage.show();
         log.debug("Project started successfully!");
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/Sound/MusicPlayer.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/Sound/MusicPlayer.java
index c48ea216681009f123590927dbd21d4e00687433..f77fa54d23b8a291380e4ab5bb036e9689312540 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Model/Sound/MusicPlayer.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/Sound/MusicPlayer.java
@@ -36,13 +36,15 @@ public class MusicPlayer{
     private GameState currentGameState;
     private SoundFileManager fileManager = new SoundFileManager();
 
+    private ScheduledExecutorService scheduler;
+
     private MusicPlayer(){}
 
 
 
 
     public void startGameStateMonitoring(){
-        ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor();
+        scheduler = Executors.newSingleThreadScheduledExecutor();
         scheduler.scheduleAtFixedRate(()->{
            GameState newGameState = RuntimeInfo.getInstance().getGameState();
            if(currentGameState != newGameState){
@@ -105,6 +107,7 @@ public class MusicPlayer{
     public int getVolume(){
         return persistence.getSettings().getMusicVolume();
     }
+    public ScheduledExecutorService getScheduler(){return scheduler;}
 
     public static MusicPlayer getInstance(){return musicPlayerSingleton;}
 
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/Sound/MusicType.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/Sound/MusicType.java
deleted file mode 100644
index b7d5924e85a9559d88db4bf4a295fd235fc2aa5b..0000000000000000000000000000000000000000
--- a/src/main/java/de/hdm_stuttgart/battlearena/Model/Sound/MusicType.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package de.hdm_stuttgart.battlearena.Model.Sound;
-
-public enum MusicType {
-    MENU("src/main/resources/sound/music/menu"),
-    OPTIONS("src/main/resources/sound/music/options"),
-    GAME("src/main/resources/sound/music/game");
-
-    private String path;
-    MusicType(String path){
-        this.path = path;
-    }
-
-    public String getPath(){
-        return path;
-    }
-}
diff --git a/src/main/resources/player/appSettings.json b/src/main/resources/player/appSettings.json
index cabb64eaff39680907636d982d66c8408a5a6e26..29ddb093e518e6f1540e962d650ed94caabb1c5f 100644
--- a/src/main/resources/player/appSettings.json
+++ b/src/main/resources/player/appSettings.json
@@ -1,4 +1,4 @@
 {
-  "sfxVolume": 0,
-  "musicVolume": 11
+  "sfxVolume": 16,
+  "musicVolume": 39
 }
\ No newline at end of file
diff --git a/src/main/resources/textures/images/background.png b/src/main/resources/textures/images/background.png
index cfecaea36ac9953b10720b8cee301e0501b75064..95ddedbae000b1a92ebeee73d0dbd68038d1e53a 100644
Binary files a/src/main/resources/textures/images/background.png and b/src/main/resources/textures/images/background.png differ
diff --git a/src/test/java/MusicPlayerTest.java b/src/test/java/MusicPlayerTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..b56177a78e498e6c0a299da7d9be5da207d9068c
--- /dev/null
+++ b/src/test/java/MusicPlayerTest.java
@@ -0,0 +1,26 @@
+import de.hdm_stuttgart.battlearena.Controller.Enum.GameState;
+import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.Persistence;
+import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.RuntimeInfo;
+import de.hdm_stuttgart.battlearena.Model.Sound.MusicPlayer;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+public class MusicPlayerTest {
+    private static final Logger log = LogManager.getLogger(MusicPlayerTest.class);
+
+    RuntimeInfo runtimeInfo;
+    MusicPlayer musicPlayer;
+    @BeforeEach
+    void setup(){
+    musicPlayer = MusicPlayer.getInstance();
+    runtimeInfo = RuntimeInfo.getInstance();
+    }
+
+    @Test
+    void startGameStateMonitoringTest(){
+        runtimeInfo.setGameState(GameState.MENU);
+        musicPlayer.startGameStateMonitoring();
+    }
+}