diff --git a/README.md b/README.md
index 69625de7934d607289e90646606803cc8faefb41..d351a7e1c76dec53336acb562d9f67b5c8075daf 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,4 @@
 ## Hier könnte ihre Werbung stehn
+
+### Known issues
+ - Videos sometimes don't load in windows 11 especially on weaker systems
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/CommunityMapController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/CommunityMapController.java
index 3dc79401a4a89941e5bcffa4b07dacbb45c14817..be1256f441fa09604694e890557db0bd53131531 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/CommunityMapController.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/CommunityMapController.java
@@ -49,7 +49,7 @@ public class CommunityMapController implements Initializable {
 //    TODO: create map preview
 
     @FXML
-    private void backButton() {   // for some reason compiler doesn't recognize method usage when 'back' is used as method name. Any other method name works however
+    private void backButton() {
         parent.getChildren().clear();
         parent.getChildren().add(new SceneLoader().loadScene("MapForge"));
     }
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/IntroController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/IntroController.java
index 2c4472104e35751cedb56601d0b5f6b13f72e278..0ee284ce321557aafe682c4accff45c12625da6c 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/IntroController.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/IntroController.java
@@ -1,6 +1,9 @@
 package de.hdm_stuttgart.battlearena.Controller;
 
 import de.hdm_stuttgart.battlearena.Controller.Utilities.CreateMediaPlayer;
+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.DataStorage.Classes.StartupThread;
 import javafx.fxml.FXML;
 import javafx.fxml.FXMLLoader;
 import javafx.fxml.Initializable;
@@ -8,6 +11,8 @@ import javafx.scene.Cursor;
 import javafx.scene.layout.BorderPane;
 import javafx.scene.media.MediaPlayer;
 import javafx.scene.media.MediaView;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 
 import java.io.File;
 import java.io.IOException;
@@ -27,12 +32,15 @@ public class IntroController implements Initializable {
     private File file = new File(fileName + videos[0]);
     private int counter = 0;
     private MediaPlayer mediaPlayer;
+    private final Persistence persistence = Persistence.getInstance();
+    private static final Logger log = LogManager.getLogger(Persistence.class);
 
     @Override
     public void initialize(URL url, ResourceBundle resourceBundle) {
         introParent.setStyle("-fx-background-color: black;");
         introParent.setCursor(Cursor.NONE);
         createMediaPlayer();
+        new StartupThread().run();
     }
 
     private void createMediaPlayer() {
@@ -42,7 +50,11 @@ public class IntroController implements Initializable {
 
         mediaPlayer.setOnEndOfMedia(() -> {
             if (counter == videos.length - 1) {
-                videoEnd();
+                try {
+                    videoEnd();
+                } catch (IOException e) {
+                    throw new RuntimeException(e);
+                }
             } else {
                 nextVideo();
             }
@@ -51,21 +63,42 @@ public class IntroController implements Initializable {
 //        TODO: make any button pressed work
         introParent.setOnMouseClicked((mouseEvent) -> {
             if (counter == videos.length - 1) {
-                videoEnd();
+                try {
+                    videoEnd();
+                } catch (IOException e) {
+                    throw new RuntimeException(e);
+                }
             } else {
                 nextVideo();
             }
         });
     }
 
-    private void videoEnd() {
-//        TODO: check if player exists
-        try {
-            mediaPlayer.dispose();
-            introParent.getScene().setRoot(FXMLLoader.load(Objects.requireNonNull(getClass().getResource("/fxml/PlayerCreateScene.fxml"))));
-        } catch (IOException e) {
-            throw new RuntimeException();
+    private void videoEnd() throws IOException {
+        boolean isStartUp = true, noAccount = false, statsLoaded = false;
+        while (isStartUp) {
+            try {
+                persistence.loadPlayerAccount();
+                persistence.verifyPlayerAccount();
+                mediaPlayer.dispose();
+                isStartUp = false;
+            } catch (DatabaseException e) {
+                noAccount = true;
+//            TODO: reset player account if account fails to load in loadPlayerAccount()
+            }
+            if (noAccount) {
+                introParent.getScene().setRoot(FXMLLoader.load(Objects.requireNonNull(getClass().getResource("/fxml/PlayerCreateScene.fxml"))));
+            }
+        }
+        while (!statsLoaded) { // while loop because Martin said so
+            try {
+                persistence.loadPlayerStatistics();
+                statsLoaded = true;
+            } catch (DatabaseException e) {
+                log.error(e);
+            }
         }
+        introParent.getScene().setRoot(FXMLLoader.load(Objects.requireNonNull(getClass().getResource("/fxml/MenuBorderPane.fxml"))));
     }
 
     private void nextVideo() {
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 c71e7fc4804f06df9f0249a24e102b057c55ba7a..83a6d92e8b0dbe60af7cbbbe09a263afdb51a6b5 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/MainMenuController.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/MainMenuController.java
@@ -1,6 +1,8 @@
 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 javafx.fxml.FXML;
 import javafx.fxml.Initializable;
 import javafx.scene.control.Button;
@@ -17,6 +19,7 @@ public class MainMenuController implements Initializable {
     @FXML
     private Button exitButton;
     private final SceneLoader sceneLoader = new SceneLoader();
+    private final Persistence persistence = Persistence.getInstance();
 
     private void switchScene(String name) {
         parent.getChildren().clear();
@@ -44,7 +47,9 @@ public class MainMenuController implements Initializable {
     }
 
     @FXML
-    private void exit() {
+    private void exit() throws DatabaseException {
+        persistence.savePlayerStatistics();
+        persistence.saveSettings();
         Stage stage = (Stage) exitButton.getScene().getWindow();
         stage.close();
     }
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/MapForgeController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/MapForgeController.java
index 7f57a6dd566a493f12e2c9ffdea4772df823f130..784361391329dab062e1c64e5aee944381861ff1 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/MapForgeController.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/MapForgeController.java
@@ -2,6 +2,8 @@ package de.hdm_stuttgart.battlearena.Controller;
 
 import de.hdm_stuttgart.battlearena.Controller.Utilities.MusicPlayerSingleton;
 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 javafx.fxml.FXML;
 import javafx.fxml.FXMLLoader;
 import javafx.scene.layout.VBox;
@@ -13,6 +15,7 @@ public class MapForgeController {
     @FXML
     private VBox parent;
     SceneLoader sceneLoader = new SceneLoader();
+    private final Persistence persistence = Persistence.getInstance();
 
     @FXML
     private void mapEditorScene() {
@@ -30,13 +33,9 @@ public class MapForgeController {
     }
 
     @FXML
-    private void updateMapScene() {
-        try {
-            parent.getScene().setRoot(FXMLLoader.load(Objects.requireNonNull(getClass().getResource("/fxml/PlayerCreateScene.fxml"))));
-            MusicPlayerSingleton.getInstance().getMediaPlayer().dispose();
-        } catch (IOException e) {
-            throw new RuntimeException();
-        }
+    private void updateMapScene() throws DatabaseException {
+        persistence.updateCoreMaps();
+//        TODO: set message label if update was successful or not
     }
 
     @FXML
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/MapSelectionController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/MapSelectionController.java
new file mode 100644
index 0000000000000000000000000000000000000000..d821334354bd487632d52077ffa4a3c21f6a1914
--- /dev/null
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/MapSelectionController.java
@@ -0,0 +1,72 @@
+package de.hdm_stuttgart.battlearena.Controller;
+
+import de.hdm_stuttgart.battlearena.Controller.Utilities.MusicPlayerSingleton;
+import de.hdm_stuttgart.battlearena.Controller.Utilities.SceneLoader;
+import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.MapData;
+import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.Persistence;
+import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.RuntimeInfo;
+import javafx.fxml.FXML;
+import javafx.fxml.FXMLLoader;
+import javafx.fxml.Initializable;
+import javafx.scene.control.ToggleButton;
+import javafx.scene.control.ToggleGroup;
+import javafx.scene.layout.VBox;
+import javafx.scene.text.Text;
+
+import java.io.IOException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Objects;
+import java.util.ResourceBundle;
+
+public class MapSelectionController implements Initializable {
+    @FXML
+    private VBox boxBox, parent;
+    @FXML
+    private Text selectedMapText;
+
+    private int selectedMap;
+
+    private final SceneLoader sceneLoader = new SceneLoader();
+
+    private final ArrayList<MapData> coreMaps = Persistence.getInstance().getCoreMaps();
+
+    @Override
+    public void initialize(URL url, ResourceBundle resourceBundle) {
+        ToggleGroup group = new ToggleGroup();
+
+        for (int i = 0; i < coreMaps.size(); i++) {
+            ToggleButton toggleButton = new ToggleButton(coreMaps.get(i).getMapName());
+            toggleButton.setToggleGroup(group);
+            boxBox.getChildren().add(toggleButton);
+        }
+
+        group.selectedToggleProperty().addListener((observableValue, oldToggle, newToggle) -> {
+            if (group.getSelectedToggle() != null) {
+                ToggleButton selected = (ToggleButton) group.getSelectedToggle();
+                selectedMap = boxBox.getChildren().indexOf(selected);
+                System.out.println(selectedMap);
+                String value = selected.getText();
+                selectedMapText.setText(value);
+                System.out.println(value);
+            }
+        });
+    }
+
+    @FXML
+    private void gameScene() {
+        try {
+            RuntimeInfo.getInstance().setGameMap(coreMaps.get(selectedMap));
+            MusicPlayerSingleton.getInstance().getMediaPlayer().dispose();
+            parent.getScene().setRoot(FXMLLoader.load(Objects.requireNonNull(getClass().getResource("/fxml/GameScene.fxml"))));
+        } catch (IOException e) {
+            throw new RuntimeException();
+        }
+    }
+
+    @FXML
+    private void backButton() {
+        parent.getChildren().clear();
+        parent.getChildren().add(sceneLoader.loadScene("SkinSelection"));
+    }
+}
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 81b05ca9a8de2670edb504e78a78fb3e20ca2ebd..392326c31e7e700ca491b955e92531d125bf9e5f 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/MenuBorderPaneController.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/MenuBorderPaneController.java
@@ -3,6 +3,7 @@ package de.hdm_stuttgart.battlearena.Controller;
 import de.hdm_stuttgart.battlearena.Controller.Utilities.CreateMediaPlayer;
 import de.hdm_stuttgart.battlearena.Controller.Utilities.MusicPlayerSingleton;
 import de.hdm_stuttgart.battlearena.Controller.Utilities.SceneLoader;
+import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.Persistence;
 import javafx.fxml.FXML;
 import javafx.fxml.Initializable;
 import javafx.geometry.Rectangle2D;
@@ -35,11 +36,12 @@ public class MenuBorderPaneController implements Initializable {
     private final String[] videoFiles = {"depression", "allMyFellas", "wooOOoo", "myMind", "dogCheese", "gta", "cat", "bobama", "roomba", "firework", "cheezburger",
             "kangaroo", "lifeCouldBeMonke", "seal", "imNotYou", "parkingTickets", "russianKid", "rejectHumanity", "horse", "catSitting", "pablo", "holyCrap",
             "lessGoo", "sadCat", "basketball", "yoinkySploinky", "msPuff", "=D", "banana", "chaCha", "async", "sadHorse", "minecraftCat", "muecke", "top10Cats", "dog",
-            "pot", "mineCraftCat2", "catEating", "bear", "pancake", "frog", "gtfo", "carl", "dog2", "slippery", "wolf", "legCat", "sad", "waaahhh"};
+            "pot", "mineCraftCat2", "catEating", "catJump", "bear", "pancake", "frog", "gtfo", "carl", "dog2", "slippery", "wolf", "legCat", "sad", "waaahhh"};
 
     List<String> shuffledVideos = Arrays.asList(videoFiles);
 
     Rectangle2D screen = Screen.getPrimary().getVisualBounds();
+
     @Override
     public void initialize(URL url, ResourceBundle resourceBundle) {
         center.getChildren().add(sceneLoader.loadScene("MainMenu"));
@@ -107,6 +109,7 @@ public class MenuBorderPaneController implements Initializable {
     private void backgroundMusic(String file) {
         Media media = new Media(new File("src/main/resources/sound/music/" + file).toURI().toString());
         musicPlayer = new MediaPlayer(media);
+        musicPlayer.setVolume((double) Persistence.getInstance().getSettings().getMusicVolume() / 100);
         musicPlayer.setCycleCount(MediaPlayer.INDEFINITE);
         musicPlayer.play();
         MusicPlayerSingleton.getInstance().setMediaPlayer(musicPlayer);
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 a3c7526665111d073af465d5c74599952442b63b..a04eb1c6d84b615f3eff95b33d86485cb0ef5b51 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/SettingsController.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/SettingsController.java
@@ -2,6 +2,7 @@ package de.hdm_stuttgart.battlearena.Controller;
 
 import de.hdm_stuttgart.battlearena.Controller.Utilities.MusicPlayerSingleton;
 import de.hdm_stuttgart.battlearena.Controller.Utilities.SceneLoader;
+import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.Persistence;
 import javafx.fxml.FXML;
 import javafx.fxml.FXMLLoader;
 import javafx.fxml.Initializable;
@@ -17,14 +18,16 @@ public class SettingsController implements Initializable {
     @FXML
     private VBox parent;
     @FXML
-    private Slider musicVolume, sfxVolume;
+    private Slider musicSlider, sfxSlider;
     SceneLoader sceneLoader = new SceneLoader();
-    public double music;
+    private int musicVolume, sfxVolume;
     MusicPlayerSingleton musicPlayer = MusicPlayerSingleton.getInstance();
+    Persistence persistence = Persistence.getInstance();
 
     @Override
     public void initialize(URL url, ResourceBundle resourceBundle) {
         setMusicVolume();
+        setSfxVolume();
     }
 
     @FXML
@@ -40,17 +43,20 @@ public class SettingsController implements Initializable {
     }
 
     private void setMusicVolume() {
-//        need a runtime database to save volume
-        musicVolume.valueProperty().addListener((observableValue, oldValue, newValue) -> {
-            setMusic(musicVolume);
-            System.out.println(music);
+        musicSlider.setValue(persistence.getSettings().getMusicVolume());
+        musicSlider.valueProperty().addListener((observableValue, oldValue, newValue) -> {
+            musicVolume = newValue.intValue();
+            persistence.getSettings().setMusicVolume(musicVolume);
+            musicPlayer.getMediaPlayer().setVolume((double) musicVolume / 100);
         });
     }
 
-    private void setMusic(Slider slider) {
-        slider.valueProperty().addListener(((observableValue, oldValue, newValue) -> {
-            music = newValue.doubleValue() / 100;
-            musicPlayer.getMediaPlayer().setVolume(music);
+    private void setSfxVolume(){
+        sfxSlider.setValue(persistence.getSettings().getSfxVolume());
+        sfxSlider.valueProperty().addListener(((observableValue, oldValue, newValue) -> {
+            sfxVolume = newValue.intValue();
+            persistence.getSettings().setSfxVolume(sfxVolume);
+//            sfxPlayer.getMediaPlayer().setVolume((double) sfxVolume / 100);
         }));
     }
 }
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/SkinSelectionController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/SkinSelectionController.java
index 6015655a06d8dad0530362087a84c6e87e646f57..9e27cab1e0a87b52e01a1ea63b84ba6cf6b46006 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/SkinSelectionController.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/SkinSelectionController.java
@@ -54,11 +54,9 @@ public class SkinSelectionController implements Initializable {
 
     @FXML
     private void gameScene() {
-        try {
-            MusicPlayerSingleton.getInstance().getMediaPlayer().dispose();
-            parent.getScene().setRoot(FXMLLoader.load(Objects.requireNonNull(getClass().getResource("/fxml/GameScene.fxml"))));
-        } catch (IOException e) {
-            throw new RuntimeException();
-        }
+
+
+        parent.getChildren().clear();
+        parent.getChildren().add(new SceneLoader().loadScene("MapSelection"));
     }
 }
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/StatisticsController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/StatisticsController.java
index 009c8a94b5f4a68c3c1b21ddcf194621be698a9c..ee8ccd517fc9c48f3178e792d136dba3f20783e8 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/StatisticsController.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/StatisticsController.java
@@ -1,6 +1,7 @@
 package de.hdm_stuttgart.battlearena.Controller;
 
 import de.hdm_stuttgart.battlearena.Controller.Utilities.SceneLoader;
+import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.Persistence;
 import javafx.beans.binding.Bindings;
 import javafx.collections.FXCollections;
 import javafx.collections.ObservableList;
@@ -23,6 +24,8 @@ public class StatisticsController implements Initializable {
     private PieChart kd, wl;
     SceneLoader sceneLoader = new SceneLoader();
 
+    Persistence persistence = Persistence.getInstance();
+
     public void mainMenuScene() {
         parent.getChildren().clear();
         parent.getChildren().add(sceneLoader.loadScene("MainMenu"));
@@ -30,17 +33,27 @@ public class StatisticsController implements Initializable {
 
     @Override
     public void initialize(URL url, ResourceBundle resourceBundle) {
-        iniPieChartkd();
-        iniPieChartwl();
+        iniPieChartKD();
+        iniPieChartWL();
         kd.setLegendVisible(false);
         wl.setLegendVisible(false);
+        setLabels();
+    }
+
+    private void setLabels() {
+        kills.setText(String.valueOf(persistence.getStatistics().getKills()));
+        gamesWon.setText(Integer.toString(persistence.getStatistics().getGamesWon()));
+        gamesLost.setText(String.valueOf(persistence.getStatistics().getGamesLost()));
+        gameTime.setText(Integer.toString(persistence.getStatistics().getGameTimeInHours()));
+        deaths.setText(String.valueOf(persistence.getStatistics().getDeaths()));
+        blocks.setText(Integer.toString(persistence.getStatistics().getBlocksDestroyed()));
     }
 
-    public void iniPieChartkd() {
+    public void iniPieChartKD() {
         ObservableList<PieChart.Data> pieChartData =
                 FXCollections.observableArrayList(
-                        new PieChart.Data("Kills", 20),
-                        new PieChart.Data("Deaths", 12));
+                        new PieChart.Data("Kills", persistence.getStatistics().getKills()),
+                        new PieChart.Data("Deaths", persistence.getStatistics().getDeaths()));
 
         pieChartData.forEach(data ->
                 data.nameProperty().bind(
@@ -52,11 +65,11 @@ public class StatisticsController implements Initializable {
         kd.getData().addAll(pieChartData);
     }
 
-    public void iniPieChartwl() {
+    public void iniPieChartWL() {
         ObservableList<PieChart.Data> pieChartData =
                 FXCollections.observableArrayList(
-                        new PieChart.Data("Wins", 3),
-                        new PieChart.Data("Losses", 5));
+                        new PieChart.Data("Wins", persistence.getStatistics().getGamesWon()),
+                        new PieChart.Data("Losses", persistence.getStatistics().getGamesLost()));
 
         pieChartData.forEach(data ->
                 data.nameProperty().bind(
diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java
index 0aa585603d11693283af1248de569d8643ca3450..13a2d3efa1b86db67773ffe8dc9a1017321bae3b 100644
--- a/src/main/java/module-info.java
+++ b/src/main/java/module-info.java
@@ -20,6 +20,5 @@ module gui {
     exports de.hdm_stuttgart.battlearena.Model.Inputs;
     exports de.hdm_stuttgart.battlearena.Model.Map;
     exports de.hdm_stuttgart.battlearena.Controller.Utilities;
-    exports de.hdm_stuttgart.battlearena.Model.Multiplayer;
     opens de.hdm_stuttgart.battlearena.Controller.Utilities to javafx.fxml;
 }
\ No newline at end of file
diff --git a/src/main/resources/fxml/MapSelection.fxml b/src/main/resources/fxml/MapSelection.fxml
new file mode 100644
index 0000000000000000000000000000000000000000..1be6734bac78aa59dd7db7a771411adfd64dd828
--- /dev/null
+++ b/src/main/resources/fxml/MapSelection.fxml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.geometry.Insets?>
+<?import javafx.scene.control.Accordion?>
+<?import javafx.scene.control.Button?>
+<?import javafx.scene.control.ScrollPane?>
+<?import javafx.scene.control.TitledPane?>
+<?import javafx.scene.layout.HBox?>
+<?import javafx.scene.layout.Pane?>
+<?import javafx.scene.layout.VBox?>
+<?import javafx.scene.text.Text?>
+
+<VBox fx:id="parent" alignment="CENTER" prefHeight="400.0" prefWidth="600.0" spacing="20.0" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.hdm_stuttgart.battlearena.Controller.MapSelectionController">
+   <children>
+      <Pane VBox.vgrow="ALWAYS" />
+      <HBox alignment="TOP_CENTER" spacing="20.0">
+         <children>
+            <Text strokeType="OUTSIDE" strokeWidth="0.0" text="Maps:" />
+            <Accordion>
+              <panes>
+                <TitledPane fx:id="roundsTitledPane" text="Select">
+                     <content>
+                        <ScrollPane minViewportHeight="40.0">
+                           <content>
+                              <VBox fx:id="boxBox" />
+                           </content>
+                        </ScrollPane>
+                     </content>
+                </TitledPane>
+              </panes>
+            </Accordion>
+         </children>
+         <VBox.margin>
+            <Insets />
+         </VBox.margin>
+      </HBox>
+      <HBox alignment="TOP_CENTER" maxWidth="-Infinity" minWidth="-Infinity" prefHeight="25.0" prefWidth="213.0" spacing="20.0">
+         <children>
+            <Text fx:id="selectedMapText" strokeType="OUTSIDE" strokeWidth="0.0" />
+         </children>
+      </HBox>
+      <Button mnemonicParsing="false" onAction="#gameScene" text="Start" />
+      <Button mnemonicParsing="false" onAction="#backButton" text="Back">
+         <VBox.margin>
+            <Insets bottom="50.0" />
+         </VBox.margin>
+      </Button>
+      <Pane VBox.vgrow="ALWAYS" />
+   </children>
+</VBox>
diff --git a/src/main/resources/fxml/MultiplayerCreate.fxml b/src/main/resources/fxml/MultiplayerCreate.fxml
index 3cf21a91e290fca2da1b2516320c1feb50a99cee..f95e2126f13aee4f89541b835ef2c90ffbbc7d9b 100644
--- a/src/main/resources/fxml/MultiplayerCreate.fxml
+++ b/src/main/resources/fxml/MultiplayerCreate.fxml
@@ -47,7 +47,7 @@
             <Insets top="20.0" />
          </VBox.margin>
       </AnchorPane>
-      <Button mnemonicParsing="false" text="Start" />
+      <Button mnemonicParsing="false" onAction="#start" text="Start" />
       <Button mnemonicParsing="false" onAction="#backButton" text="Back" />
       <Pane VBox.vgrow="ALWAYS" />
       <Pane VBox.vgrow="ALWAYS" />
diff --git a/src/main/resources/fxml/PlayerCreateScene.fxml b/src/main/resources/fxml/PlayerCreateScene.fxml
index 1563facf396815b701f237fdab3dd7e3769c7951..5200c6495466b6bf62772664a6f3a093ac2f5453 100644
--- a/src/main/resources/fxml/PlayerCreateScene.fxml
+++ b/src/main/resources/fxml/PlayerCreateScene.fxml
@@ -7,7 +7,6 @@
 <?import javafx.scene.media.MediaView?>
 <?import javafx.scene.text.Text?>
 
-
 <BorderPane fx:id="parent" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.hdm_stuttgart.battlearena.Controller.PlayerCreateController">
    <center>
       <StackPane BorderPane.alignment="CENTER">
diff --git a/src/main/resources/fxml/Settings.fxml b/src/main/resources/fxml/Settings.fxml
index 6cab6585ef8f19e015fc3645684934a599ee9aec..7b8950fc2664c2e1e041ce2d05b7b46986f01d64 100644
--- a/src/main/resources/fxml/Settings.fxml
+++ b/src/main/resources/fxml/Settings.fxml
@@ -15,13 +15,13 @@
                   <VBox alignment="CENTER" VBox.vgrow="ALWAYS">
                      <children>
                         <Text strokeType="OUTSIDE" strokeWidth="0.0" text="Music volume:" />
-                        <Slider fx:id="musicVolume" blockIncrement="25.0" majorTickUnit="100.0" minorTickCount="1" prefHeight="14.0" prefWidth="480.0" showTickLabels="true" value="75.0" VBox.vgrow="NEVER" />
+                        <Slider fx:id="musicSlider" blockIncrement="25.0" majorTickUnit="100.0" minorTickCount="1" prefHeight="14.0" prefWidth="480.0" showTickLabels="true" value="75.0" VBox.vgrow="NEVER" />
                      </children>
                   </VBox>
                   <VBox alignment="CENTER" VBox.vgrow="ALWAYS">
                      <children>
                         <Text strokeType="OUTSIDE" strokeWidth="0.0" text="SFX volume:" />
-                        <Slider fx:id="sfxVolume" blockIncrement="25.0" majorTickUnit="100.0" minorTickCount="1" prefHeight="14.0" prefWidth="480.0" showTickLabels="true" value="75.0" />
+                        <Slider fx:id="sfxSlider" blockIncrement="25.0" majorTickUnit="100.0" minorTickCount="1" prefHeight="14.0" prefWidth="480.0" showTickLabels="true" value="75.0" />
                      </children>
                   </VBox>
                </children>
diff --git a/src/main/resources/player/appSettings.json b/src/main/resources/player/appSettings.json
index ac6b7e58fa58ee25e2070c5cdfb9b8324bdddc6b..ec5bc62a909f2065d81be4cfd6c494b9e10715fb 100644
--- a/src/main/resources/player/appSettings.json
+++ b/src/main/resources/player/appSettings.json
@@ -1,4 +1,4 @@
 {
   "sfxVolume": 50,
-  "musicVolume": 50
+  "musicVolume": 0
 }
\ No newline at end of file
diff --git a/src/main/resources/player/playerAccount.json b/src/main/resources/player/playerAccount.json
index ad25fb8ab5d0aeda7756b512127b84937090f676..60070b6ed6a4c8153907eaf7e737e2e997fb3377 100644
--- a/src/main/resources/player/playerAccount.json
+++ b/src/main/resources/player/playerAccount.json
@@ -1,5 +1,5 @@
 {
   "playerName": "Player1",
   "accountPassword": "5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8",
-  "accountType": "ONLINE"
+  "accountType": "LOCAL"
 }
\ No newline at end of file
diff --git a/src/main/resources/player/playerStatsLocal.json b/src/main/resources/player/playerStatsLocal.json
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..e51de779c74b6c93fe347b5bf263508c23fff2c9 100644
--- a/src/main/resources/player/playerStatsLocal.json
+++ b/src/main/resources/player/playerStatsLocal.json
@@ -0,0 +1,8 @@
+{
+  "gamesLost": 5,
+  "gamesWon": 9,
+  "kills": 30,
+  "deaths": 20,
+  "blocksDestroyed": 200,
+  "gameTime": 3966480
+}
\ No newline at end of file
diff --git a/src/main/resources/styles/style.css b/src/main/resources/styles/style.css
index 2bb5cd89b79625f3392d4701dcf93ac9fb88d7f2..e676c8daadf56536c73d3bf8dd515a7c5a7533cd 100644
--- a/src/main/resources/styles/style.css
+++ b/src/main/resources/styles/style.css
@@ -4,7 +4,7 @@
 }
 
 #button {
-    -fx-text-fill: black;
+    -fx-text-fill: #454545;
 }
 
 .root {
diff --git a/src/main/resources/videos/catJump.mp4 b/src/main/resources/videos/catJump.mp4
new file mode 100644
index 0000000000000000000000000000000000000000..cce5bdb3f5ecb0d515d9802848cd742d8b6bcb56
Binary files /dev/null and b/src/main/resources/videos/catJump.mp4 differ
diff --git a/src/main/resources/videos/sad.mp4 b/src/main/resources/videos/sad.mp4
index 9eb120c9e461edaed7858c02a42d44dc25f49e31..1868f52e473cad115b0dbe455c642211e5c50e81 100644
Binary files a/src/main/resources/videos/sad.mp4 and b/src/main/resources/videos/sad.mp4 differ