diff --git a/app/src/main/java/brickbreaker/ScoringSystem.java b/app/src/main/java/brickbreaker/ScoringSystem.java
new file mode 100644
index 0000000000000000000000000000000000000000..39d164dfa2e0ece2e6832d47f5e9cd4bb91b675f
--- /dev/null
+++ b/app/src/main/java/brickbreaker/ScoringSystem.java
@@ -0,0 +1,68 @@
+import java.io.BufferedReader;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+
+
+public class ScoringSystem {
+    private int score;          // Current Score
+    private int highScore;      // Highest Score
+    private static final int POINTS = 1; // Point Value
+
+    private static final String HIGHSCORE_FILE = "src/main/resources/highscore.txt";
+
+    public ScoringSystem() {
+        this.score = 0;
+        this.highScore = loadHighScore();
+    }
+
+    private int loadHighScore() {
+        try (BufferedReader reader = new BufferedReader(new FileReader(HIGHSCORE_FILE))) {
+            String line = reader.readLine();
+            if (line != null) {
+                return Integer.parseInt(line.trim());
+            }
+        } catch (IOException e) {
+            System.err.println("Loading Error: " + e.getMessage());
+        }
+        return 0;
+    }
+
+    private void saveHighScore(int newHighScore) {
+        try (FileWriter writer = new FileWriter(HIGHSCORE_FILE)) {
+            writer.write(Integer.toString(newHighScore));
+        } catch (IOException e) {
+            System.err.println("Saving Error: " + e.getMessage());
+        }
+    }
+
+    // Add point to each broken brick
+    public void brickBroken() {
+        score += POINTS;
+        checkForNewHighScore();
+    }
+
+    // Compare Current Score and Hgihest Score
+    private void checkForNewHighScore() {
+        if (score > highScore) {
+            highScore = score;
+            saveHighScore(highScore);
+        }
+    }
+
+    // Reset score
+    public void resetScore() {
+        score = 0;
+    }
+
+    // Getters
+    public int getScore() {
+        return score;
+    }
+
+    public int getHighScore() {
+        return highScore;
+    }
+}
+
+
diff --git a/app/src/main/resources/highscore.txt b/app/src/main/resources/highscore.txt
new file mode 100644
index 0000000000000000000000000000000000000000..573541ac9702dd3969c9bc859d2b91ec1f7e6e56
--- /dev/null
+++ b/app/src/main/resources/highscore.txt
@@ -0,0 +1 @@
+0