diff --git a/overcooked_simulator/game_content/environment_config.yaml b/overcooked_simulator/game_content/environment_config.yaml
index 48d23d2e04986bd323947612637602ae3d1e824f..4b3a9c2641cc06475cb1cf7c68e25b187453e375 100644
--- a/overcooked_simulator/game_content/environment_config.yaml
+++ b/overcooked_simulator/game_content/environment_config.yaml
@@ -4,4 +4,4 @@ plates:
   plate_delay: [ 5, 10 ]
 
 game:
-  time_limit_seconds: 10.0
+  time_limit_seconds: 5.0
diff --git a/overcooked_simulator/gui_2d_vis/overcooked_gui.py b/overcooked_simulator/gui_2d_vis/overcooked_gui.py
index 33990634078c106cd9d2a89bf94b25a84706fdc5..f50124a1f16913e63242b16d1e98f37160fbaba1 100644
--- a/overcooked_simulator/gui_2d_vis/overcooked_gui.py
+++ b/overcooked_simulator/gui_2d_vis/overcooked_gui.py
@@ -3,6 +3,7 @@ import logging
 import math
 import sys
 from collections import deque
+from datetime import timedelta
 from enum import Enum
 
 import numpy as np
@@ -484,6 +485,16 @@ class PyGameGUI:
             if SHOW_COUNTER_CENTERS:
                 pygame.draw.circle(self.game_screen, colors["green1"], counter.pos, 3)
 
+    def update_score_label(self, state):
+        score = state["score"]
+        self.score_label.set_text(f"Your Score is {score}")
+
+    def draw_time(self, remaining_time: timedelta):
+        hours, rem = divmod(remaining_time.seconds, 3600)
+        minutes, seconds = divmod(rem, 60)
+        display_time = f"{minutes}:{'%02d' % seconds}"
+        self.timer_label.set_text(f"Time remaining: {display_time}")
+
     def draw(self, state):
         """Main visualization function.
 
@@ -495,7 +506,8 @@ class PyGameGUI:
 
         self.draw_counters(state)
         self.draw_players(state)
-        self.manager.draw_ui(self.game_screen)
+        self.manager.draw_ui(self.main_window)
+        self.draw_time(state["passed_time"])
 
     def init_ui_elements(self):
         self.manager = pygame_gui.UIManager((self.window_width, self.window_height))
@@ -588,6 +600,16 @@ class PyGameGUI:
             starting_option=layout_file_paths[-1],
         )
 
+        self.timer_label = pygame_gui.elements.UILabel(
+            text="GAMETIME",
+            relative_rect=pygame.Rect(
+                (0, 0),
+                (button_width, button_height),
+            ),
+            manager=self.manager,
+            object_id="#timer_label",
+        )
+
     def setup_windows(self):
         (
             self.window_width,
@@ -629,21 +651,21 @@ class PyGameGUI:
                 self.score_label.hide()
                 self.finished_button.hide()
                 self.layout_selection.show()
+                self.timer_label.hide()
             case MenuStates.Game:
                 self.start_button.hide()
                 self.back_button.show()
                 self.score_label.hide()
                 self.finished_button.show()
                 self.layout_selection.hide()
+                self.timer_label.show()
             case MenuStates.End:
                 self.start_button.hide()
                 self.back_button.show()
                 self.score_label.show()
-                self.score_label.set_text(
-                    f"Your Score is {self.simulator.env.game_score.score}"
-                )
                 self.finished_button.hide()
                 self.layout_selection.hide()
+                self.timer_label.hide()
 
     def start_button_press(self):
         self.menu_state = MenuStates.Game
@@ -696,6 +718,7 @@ class PyGameGUI:
         while self.running:
             try:
                 time_delta = clock.tick(self.FPS) / 1000.0
+                state = self.simulator.get_state()
 
                 for event in pygame.event.get():
                     if event.type == pygame.QUIT:
@@ -734,7 +757,6 @@ class PyGameGUI:
 
                         self.handle_keys()
 
-                        state = self.simulator.get_state()
                         if state["ended"]:
                             self.finished_button_press()
                             self.manage_button_visibility()
@@ -749,9 +771,7 @@ class PyGameGUI:
                         self.main_window.blit(self.game_screen, game_screen_rect)
 
                     case MenuStates.End:
-                        pygame.draw.rect(
-                            self.game_screen, colors["cornsilk1"], self.score_rect
-                        )
+                        self.update_score_label(state)
                 self.manager.update(time_delta)
                 pygame.display.flip()
 
diff --git a/overcooked_simulator/overcooked_environment.py b/overcooked_simulator/overcooked_environment.py
index 64ad2252ea6d532e3df8c47b48234b569cf40c1c..59ed6bfd8bb922fe7a986d343f42779987cc1517 100644
--- a/overcooked_simulator/overcooked_environment.py
+++ b/overcooked_simulator/overcooked_environment.py
@@ -134,6 +134,7 @@ class Environment:
         self.score: int = 0
 
         self.env_time = create_init_env_time()
+        self.beginning_time = self.env_time
         self.env_time_end = self.env_time + timedelta(
             seconds=environment_config["game"]["time_limit_seconds"]
         )
@@ -462,6 +463,7 @@ class Environment:
             "counters": self.counters,
             "score": self.score,
             "ended": self.game_ended,
+            "passed_time": self.env_time_end - self.env_time,
         }
 
     def get_state_json(self):