diff --git a/cooperative_cuisine/configs/environment_config_no_validation.yaml b/cooperative_cuisine/configs/environment_config_no_validation.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..1802c28a539cd92d7879ea14643f545bcebd3c99
--- /dev/null
+++ b/cooperative_cuisine/configs/environment_config_no_validation.yaml
@@ -0,0 +1,208 @@
+plates:
+  clean_plates: 2
+  dirty_plates: 1
+  plate_delay: [ 5, 10 ]
+  # range of seconds until the dirty plate arrives.
+
+game:
+  time_limit_seconds: 300
+  undo_dispenser_pickup: true
+  validate_recipes: false
+
+
+layout_chars:
+  _: Free
+  hash: Counter  # #
+  A: Agent
+  pipe: Extinguisher
+  P: PlateDispenser
+  C: CuttingBoard
+  X: Trashcan
+  $: ServingWindow
+  S: Sink
+  +: SinkAddon
+  at: Plate  # @ just a clean plate on a counter
+  U: Pot  # with Stove
+  Q: Pan  # with Stove
+  O: Peel  # with Oven
+  F: Basket  # with DeepFryer
+  T: Tomato
+  N: Onion  # oNioN
+  L: Lettuce
+  K: Potato  # Kartoffel
+  I: Fish  # fIIIsh
+  D: Dough
+  E: Cheese  # chEEEse
+  G: Sausage  # sausaGe
+  B: Bun
+  M: Meat
+  question: Counter  # ? mushroom
+  ↓: Counter
+  ^: Counter
+  right: Counter
+  left: Counter
+  wave: Free  # ~ Water
+  minus: Free  # - Ice
+  dquote: Counter  # " wall/truck
+  p: Counter # second plate return ??
+
+
+orders:
+  meals:
+    all: true
+    # if all: false -> only orders for these meals are generated
+    # TODO: what if this list is empty?
+    list:
+      #      - TomatoSoup
+      #      - OnionSoup
+      #      - Salad
+      - FriedFish
+  order_gen_class: !!python/name:cooperative_cuisine.orders.RandomOrderGeneration ''
+  # the class to that receives the kwargs. Should be a child class of OrderGeneration in orders.py
+  order_gen_kwargs:
+    order_duration_random_func:
+      # how long should the orders be alive
+      # 'random' library call with getattr, kwargs are passed to the function
+      func: uniform
+      kwargs:
+        a: 40
+        b: 60
+    max_orders: 6
+    # maximum number of active orders at the same time
+    num_start_meals: 2
+    # number of orders generated at the start of the environment
+    sample_on_dur_random_func:
+      # 'random' library call with getattr, kwargs are passed to the function
+      func: uniform
+      kwargs:
+        a: 10
+        b: 20
+    sample_on_serving: false
+    # Sample the delay for the next order only after a meal was served.
+  serving_not_ordered_meals: true
+  # can meals that are not ordered be served / dropped on the serving window
+
+player_config:
+  radius: 0.4
+  speed_units_per_seconds: 6
+  interaction_range: 1.6
+  restricted_view: False
+  view_angle: 70
+  view_range: 4  # in grid units, can be "null"
+
+effect_manager:
+  FireManager:
+    class: !!python/name:cooperative_cuisine.effects.FireEffectManager ''
+    kwargs:
+      spreading_duration: [ 5, 10 ]
+      fire_burns_ingredients_and_meals: true
+
+
+hook_callbacks:
+  # # ---------------  Scoring  ---------------
+  orders:
+    hooks: [ completed_order ]
+    callback_class: !!python/name:cooperative_cuisine.scores.ScoreViaHooks ''
+    callback_class_kwargs:
+      static_score: 20
+      score_on_specific_kwarg: meal_name
+      score_map:
+        Burger: 15
+        OnionSoup: 10
+        Salad: 5
+        TomatoSoup: 10
+  not_ordered_meals:
+    hooks: [ serve_not_ordered_meal ]
+    callback_class: !!python/name:cooperative_cuisine.scores.ScoreViaHooks ''
+    callback_class_kwargs:
+      static_score: 2
+  trashcan_usages:
+    hooks: [ trashcan_usage ]
+    callback_class: !!python/name:cooperative_cuisine.scores.ScoreViaHooks ''
+    callback_class_kwargs:
+      static_score: -5
+  expired_orders:
+    hooks: [ order_expired ]
+    callback_class: !!python/name:cooperative_cuisine.scores.ScoreViaHooks ''
+    callback_class_kwargs:
+      static_score: -10
+    # --------------- Recording ---------------
+  #  json_states:
+  #    hooks: [ json_state ]
+  #    callback_class: !!python/name:cooperative_cuisine.recording.FileRecorder ''
+  #    callback_class_kwargs:
+  #      record_path: USER_LOG_DIR/ENV_NAME/json_states.jsonl
+  actions:
+    hooks: [ pre_perform_action ]
+    callback_class: !!python/name:cooperative_cuisine.recording.FileRecorder ''
+    callback_class_kwargs:
+      record_path: USER_LOG_DIR/ENV_NAME/LOG_RECORD_NAME.jsonl
+  random_env_events:
+    hooks: [ order_duration_sample, plate_out_of_kitchen_time ]
+    callback_class: !!python/name:cooperative_cuisine.recording.FileRecorder ''
+    callback_class_kwargs:
+      record_path: USER_LOG_DIR/ENV_NAME/LOG_RECORD_NAME.jsonl
+      add_hook_ref: true
+  env_configs:
+    hooks: [ env_initialized, item_info_config ]
+    callback_class: !!python/name:cooperative_cuisine.recording.FileRecorder ''
+    callback_class_kwargs:
+      record_path: USER_LOG_DIR/ENV_NAME/LOG_RECORD_NAME.jsonl
+      add_hook_ref: true
+
+  # Game event recording
+  game_events:
+    hooks:
+      - post_counter_pick_up
+      - post_counter_drop_off
+      - post_dispenser_pick_up
+      - cutting_board_100
+      - player_start_interaction
+      - player_end_interact
+      - post_serving
+      - no_serving
+      - dirty_plate_arrives
+      - trashcan_usage
+      - plate_cleaned
+      - added_plate_to_sink
+      - drop_on_sink_addon
+      - pick_up_from_sink_addon
+      - serve_not_ordered_meal
+      - serve_without_plate
+      - completed_order
+      - new_orders
+      - order_expired
+      - action_on_not_reachable_counter
+      - new_fire
+      - fire_spreading
+      - drop_off_on_cooking_equipment
+      - players_collide
+      - post_plate_dispenser_pick_up
+      - post_plate_dispenser_drop_off
+      - on_item_transition
+      - progress_started
+      - progress_finished
+      - content_ready
+      - dispenser_item_returned
+
+    callback_class: !!python/name:cooperative_cuisine.recording.FileRecorder ''
+    callback_class_kwargs:
+      record_path: USER_LOG_DIR/ENV_NAME/LOG_RECORD_NAME.jsonl
+      add_hook_ref: true
+
+
+#  info_msg:
+#    func: !!python/name:cooperative_cuisine.hooks.hooks_via_callback_class ''
+#    kwargs:
+#      hooks: [ cutting_board_100 ]
+#      callback_class: !!python/name:cooperative_cuisine.info_msg.InfoMsgManager ''
+#      callback_class_kwargs:
+#        msg: Glückwunsch du hast was geschnitten!
+#  fire_msg:
+#    func: !!python/name:cooperative_cuisine.hooks.hooks_via_callback_class ''
+#    kwargs:
+#      hooks: [ new_fire ]
+#      callback_class: !!python/name:cooperative_cuisine.info_msg.InfoMsgManager ''
+#      callback_class_kwargs:
+#        msg: Feuer, Feuer, Feuer
+#        level: Warning
diff --git a/tests/test_start.py b/tests/test_start.py
index a798664bdf148f47fb2e97e93fdd0cbd64a8d312..6fe0c0187b494a7a6bc2c24ef432ab1c5ca8b5e9 100644
--- a/tests/test_start.py
+++ b/tests/test_start.py
@@ -43,6 +43,9 @@ from cooperative_cuisine.utils import create_init_env_time, get_touching_counter
 
 layouts_folder = ROOT_DIR / "configs" / "layouts"
 environment_config_path = ROOT_DIR / "configs" / "environment_config.yaml"
+environment_config_no_validation_path = (
+    ROOT_DIR / "configs" / "environment_config_no_validation.yaml"
+)
 layout_path = ROOT_DIR / "configs" / "layouts" / "basic.layout"
 layout_empty_path = ROOT_DIR / "configs" / "layouts" / "empty.layout"
 item_info_path = ROOT_DIR / "configs" / "item_info.yaml"
@@ -54,6 +57,9 @@ item_info_path = ROOT_DIR / "configs" / "item_info.yaml"
 def test_file_availability():
     assert layouts_folder.is_dir(), "layouts folder does not exists"
     assert environment_config_path.is_file(), "environment config file does not exists"
+    assert (
+        environment_config_no_validation_path.is_file()
+    ), "environment config file does not exists"
     assert layout_path.is_file(), "layout config file does not exists"
     assert layout_empty_path.is_file(), "layout empty config file does not exists"
     assert item_info_path.is_file(), "item info config file does not exists"
@@ -67,6 +73,13 @@ def env_config():
     return env_config
 
 
+@pytest.fixture
+def env_config_no_validation():
+    with open(environment_config_no_validation_path, "r") as file:
+        env_config = file.read()
+    return env_config
+
+
 @pytest.fixture
 def layout_config():
     with open(layout_path, "r") as file:
@@ -101,8 +114,10 @@ def test_player_registration(env_config, layout_config, item_info):
         env.add_player("2")
 
 
-def test_movement(env_config, layout_empty_config, item_info):
-    env = Environment(env_config, layout_empty_config, item_info, as_files=False)
+def test_movement(env_config_no_validation, layout_empty_config, item_info):
+    env = Environment(
+        env_config_no_validation, layout_empty_config, item_info, as_files=False
+    )
     player_name = "1"
     start_pos = np.array([3, 4])
     env.add_player(player_name, start_pos)
@@ -122,8 +137,12 @@ def test_movement(env_config, layout_empty_config, item_info):
     ), "Performed movement do not move the player as expected."
 
 
-def test_player_movement_speed(env_config, layout_empty_config, item_info):
-    env = Environment(env_config, layout_empty_config, item_info, as_files=False)
+def test_player_movement_speed(
+    env_config_no_validation, layout_empty_config, item_info
+):
+    env = Environment(
+        env_config_no_validation, layout_empty_config, item_info, as_files=False
+    )
     player_name = "1"
     start_pos = np.array([3, 4])
     env.add_player(player_name, start_pos)
@@ -148,8 +167,10 @@ def test_player_movement_speed(env_config, layout_empty_config, item_info):
     ), "json state does not match expected StateRepresentation."
 
 
-def test_player_reach(env_config, layout_empty_config, item_info):
-    env = Environment(env_config, layout_empty_config, item_info, as_files=False)
+def test_player_reach(env_config_no_validation, layout_empty_config, item_info):
+    env = Environment(
+        env_config_no_validation, layout_empty_config, item_info, as_files=False
+    )
 
     counter_pos = np.array([2, 2])
     counter = Counter(pos=counter_pos, hook=Hooks(env))
diff --git a/tests/test_utils.py b/tests/test_utils.py
index 13d1dcce4725d22f704a5597df2f5268411df11a..a0b45ccf2a6163c7e417deefd3050de8a463965e 100644
--- a/tests/test_utils.py
+++ b/tests/test_utils.py
@@ -19,7 +19,8 @@ from cooperative_cuisine.utils import (
     create_layout_with_counters,
     setup_logging,
 )
-from tests.test_start import env_config, layout_empty_config, item_info
+from tests.test_start import env_config_no_validation
+from tests.test_start import layout_empty_config, item_info
 
 
 def test_parser_gen():
@@ -57,8 +58,8 @@ def test_setup_logging():
     setup_logging()
 
 
-def test_movement_graph(env_config, layout_empty_config, item_info):
-    env = Environment(env_config, layout_empty_config, item_info, as_files=False)
+def test_movement_graph(env_config_no_validation, layout_empty_config, item_info):
+    env = Environment(env_config_no_validation, layout_empty_config, item_info, as_files=False)
     player_name = "0"
     env.add_player(player_name)