diff --git a/cooperative_cuisine/configs/study/study_config.yaml b/cooperative_cuisine/configs/study/study_config.yaml
index 0c2ef412c98b6497e7b70d3c355157557b928ddf..366615b0ff03ef27506353190a43b7724a1c5c06 100644
--- a/cooperative_cuisine/configs/study/study_config.yaml
+++ b/cooperative_cuisine/configs/study/study_config.yaml
@@ -4,6 +4,7 @@ levels:
     layout_path: LAYOUTS_DIR/overcooked-1/1-1-far-apart.layout
     item_info_path: CONFIGS_DIR/item_info.yaml
     name: "Level 1"
+    seed: 12345
     config_overwrite:
       game:
         time_limit_seconds: 300
@@ -21,6 +22,7 @@ levels:
     layout_path: LAYOUTS_DIR/overcooked-1/1-4-bottleneck.layout
     item_info_path: CONFIGS_DIR/item_info.yaml
     name: "Level 2"
+    seed: 12345
     config_overwrite:
       game:
         time_limit_seconds: 300
@@ -29,6 +31,7 @@ levels:
     layout_path: LAYOUTS_DIR/overcooked-1/1-5-circle.layout
     item_info_path: CONFIGS_DIR/item_info.yaml
     name: "Level 3"
+    seed: 12345
     config_overwrite:
       game:
         time_limit_seconds: 300
@@ -41,6 +44,7 @@ levels:
     layout_path: LAYOUTS_DIR/overcooked-1/4-1-moving-counters.layout
     item_info_path: CONFIGS_DIR/item_info.yaml
     name: "Level 4"
+    seed: 12345
     config_overwrite:
       game:
         time_limit_seconds: 300
diff --git a/cooperative_cuisine/study_server.py b/cooperative_cuisine/study_server.py
index 27896e71b25d73424f49e90a8fe6aa6ddd5afd23..e136fa9545771a0b566cd4e5c7d3e7ccde9a6771 100644
--- a/cooperative_cuisine/study_server.py
+++ b/cooperative_cuisine/study_server.py
@@ -15,7 +15,6 @@ import argparse
 import asyncio
 import logging
 import os
-import random
 import signal
 import subprocess
 import uuid
@@ -70,6 +69,8 @@ class LevelConfig(BaseModel):
     """Path to the item info file."""
     config_overwrite: dict[str, Any] | None = None
     """Overwrite parts of the `environment_config`"""
+    seed: int
+    """Seed for the level."""
 
 
 class LevelInfo(BaseModel):
@@ -108,13 +109,13 @@ class Study:
             game_port: The port number of the game server.
         """
         with open(study_config_path, "r") as file:
-            env_config_f = file.read()
+            study_config_f = file.read()
 
         self.study_id = uuid.uuid4().hex[:UUID_CUTOFF]
         """Unique ID of the study."""
 
         self.study_config: StudyConfig = yaml.load(
-            str(env_config_f), Loader=yaml.Loader
+            str(study_config_f), Loader=yaml.Loader
         )
         """Configuration for the study which layouts, env_configs and item infos are used for the study levels."""
         self.levels: list[dict] = self.study_config["levels"]
@@ -203,7 +204,7 @@ class Study:
             deep_update(self.current_config, level.config_overwrite)
             environment_config = yaml.dump(self.current_config)
 
-        seed = int(random.random() * 1000000)
+        seed = level.seed
         creation_json = CreateEnvironmentConfig(
             manager_id=study_manager.server_manager_id,
             number_players=self.study_config["num_players"]