diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index a04763c60e0f5c014a1dc04395d381df66262c53..a974981395c1384e4f0a32c09c536d9ac4277068 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -38,9 +38,11 @@ include:
 # with a generated project.
 #
 # Use the UNREAL_VERSION variable to adjust to your preferred Unreal version.
+# Use the CUSTOM_NDISPLAY_CONFIG variable in case you need a custom ndisplay config. These are always located in /home/vrdemo/configs/ndisplay.
 
 variables:
     UNREAL_VERSION: "5.3"
+    CUSTOM_NDISPLAY_CONFIG: "aixcave_5_3_dev.ndisplay"
 
 stages:
   - analyze
@@ -49,7 +51,7 @@ stages:
   - deploy
 
 clang-format:
-    image: registry.git-ce.rwth-aachen.de/vr-vis/vr-group/unreal-development/plugins/rwth-vr-toolkit/alpine-analyze:latest
+    image: registry.git-ce.rwth-aachen.de/vr-vis/vr-group/alpine-analyze:latest
     tags:
         - docker-executor
         - linux
@@ -67,7 +69,7 @@ clang-format:
         - echo $CI_MERGE_REQUEST_DIFF_BASE_SHA 
         - linter_errors=$(unbuffer git-clang-format --commit "$CI_MERGE_REQUEST_DIFF_BASE_SHA" *.h *.cpp -q --diff | grep -v --color=always "no modified files to format" || true)
         - echo "$linter_errors"
-        - if [ ! -z "$linter_errors" ]; then echo "Detected formatting issues; please fix"; exit 1; else echo "Formatting is correct"; exit 0; fi
+        - if [ ! -z "$linter_errors" ]; then echo "Detected formatting issues; please fix. Make sure you are using the same clang-format version! You can download it from the development section in this repo's wiki."; exit 1; else echo "Formatting is correct"; exit 0; fi
 
 Generate_Project:
     rules: 
@@ -80,8 +82,21 @@ Generate_Project:
     variables:
         RUN_SETUP: "false"
         GEN_DEPENDENCIES: "(
-            [master@UnrealDTrackPlugin]='https://github.com/VRGroupRWTH/UnrealDTrackPlugin.git')"
+            [master@UnrealDTrackPlugin]='https://github.com/VRGroupRWTH/UnrealDTrackPlugin.git'
+            [dev/5.3@RWTHVRCluster]='https://git-ce.rwth-aachen.de/vr-vis/VR-Group/unreal-development/plugins/rwth-vr-cluster-plugin.git'
+            )"
 
+Generate_Project_Without_Cluster:
+    extends: Generate_Project
+    variables:
+        GEN_DEPENDENCIES: "(
+            [master@UnrealDTrackPlugin]='https://github.com/VRGroupRWTH/UnrealDTrackPlugin.git'
+            )"
+    script: # if we don't do this, cooking will for some reason fail even though it should use the correct fallback
+      - !reference [Generate_Project, script]
+      - echo "Generating without cluster mode, removing nDisplay configs..."
+      - cd ${CI_PROJECT_DIR}
+      - sed -i '/DisplayCluster/d' Config/Linux/LinuxEngine.ini
 
 Build_Windows:
     rules: 
@@ -124,6 +139,14 @@ Build_Linux:
         - job: "Generate_Project"
           artifacts: true
 
+
+# Builds for linux without the cluster plugin
+Build_Linux_Without_Cluster:
+    extends: Build_Linux
+    needs:
+        - job: "Generate_Project_Without_Cluster"
+          artifacts: true
+
 # Deploys to vrdev
 Deploy_Windows:
     rules: 
diff --git a/Content/Examples/ContentExamples/BP_RWTHVRContentExamplesGameModeBase.uasset b/Content/Examples/ContentExamples/BP_RWTHVRContentExamplesGameModeBase.uasset
deleted file mode 100644
index 352e801778bc4dd955b5a1a4fcea0f973b37a1cf..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ContentExamples/BP_RWTHVRContentExamplesGameModeBase.uasset and /dev/null differ
diff --git a/Content/Examples/ContentExamples/DemoAssets/BP_GrabbableTestObject.uasset b/Content/Examples/ContentExamples/DemoAssets/BP_GrabbableTestObject.uasset
deleted file mode 100644
index 00436a8ef34d22cb949180832fb6717255ed1c98..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ContentExamples/DemoAssets/BP_GrabbableTestObject.uasset and /dev/null differ
diff --git a/Content/Examples/ContentExamples/DemoAssets/BP_IntenselectableObject.uasset b/Content/Examples/ContentExamples/DemoAssets/BP_IntenselectableObject.uasset
deleted file mode 100644
index ad3229202c1db904c6f218802fdbc86d33d8fc44..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ContentExamples/DemoAssets/BP_IntenselectableObject.uasset and /dev/null differ
diff --git a/Content/Examples/ContentExamples/DemoRoomAssets/BP_DemoRoom.uasset b/Content/Examples/ContentExamples/DemoRoomAssets/BP_DemoRoom.uasset
deleted file mode 100644
index 8d44e3029f0810051a7b749688b3440afff8e7ed..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ContentExamples/DemoRoomAssets/BP_DemoRoom.uasset and /dev/null differ
diff --git a/Content/Examples/ContentExamples/DemoRoomAssets/BP_Demostation.uasset b/Content/Examples/ContentExamples/DemoRoomAssets/BP_Demostation.uasset
deleted file mode 100644
index 97a2b6c1fd75976d41f6be2ce09463f72d594432..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ContentExamples/DemoRoomAssets/BP_Demostation.uasset and /dev/null differ
diff --git a/Content/Examples/ContentExamples/DemoRoomAssets/DemoRoomAssets_back_piller.uasset b/Content/Examples/ContentExamples/DemoRoomAssets/DemoRoomAssets_back_piller.uasset
deleted file mode 100644
index 5ea4eeae269ac2a5ced17512441e6553f15b3e9d..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ContentExamples/DemoRoomAssets/DemoRoomAssets_back_piller.uasset and /dev/null differ
diff --git a/Content/Examples/ContentExamples/DemoRoomAssets/DemoRoomAssets_connector.uasset b/Content/Examples/ContentExamples/DemoRoomAssets/DemoRoomAssets_connector.uasset
deleted file mode 100644
index 23da0e9f10b0195e1989f82c36d6823c8a1f1d5f..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ContentExamples/DemoRoomAssets/DemoRoomAssets_connector.uasset and /dev/null differ
diff --git a/Content/Examples/ContentExamples/DemoRoomAssets/DemoRoomAssets_floor.uasset b/Content/Examples/ContentExamples/DemoRoomAssets/DemoRoomAssets_floor.uasset
deleted file mode 100644
index ecc96bc983b194433b1ac5d28ae7e9cc66466685..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ContentExamples/DemoRoomAssets/DemoRoomAssets_floor.uasset and /dev/null differ
diff --git a/Content/Examples/ContentExamples/DemoRoomAssets/DemoRoomAssets_front_pillar.uasset b/Content/Examples/ContentExamples/DemoRoomAssets/DemoRoomAssets_front_pillar.uasset
deleted file mode 100644
index 45afb30f73d17fbb06b17c5094f3b45f53953a20..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ContentExamples/DemoRoomAssets/DemoRoomAssets_front_pillar.uasset and /dev/null differ
diff --git a/Content/Examples/ContentExamples/DemoRoomAssets/DemoRoomAssets_long_wall.uasset b/Content/Examples/ContentExamples/DemoRoomAssets/DemoRoomAssets_long_wall.uasset
deleted file mode 100644
index 45f4726ee04ed13fa708367db11e51e7a2b3d00a..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ContentExamples/DemoRoomAssets/DemoRoomAssets_long_wall.uasset and /dev/null differ
diff --git a/Content/Examples/ContentExamples/DemoRoomAssets/DemoRoomAssets_short_wall.uasset b/Content/Examples/ContentExamples/DemoRoomAssets/DemoRoomAssets_short_wall.uasset
deleted file mode 100644
index 41b2612ae5c28c58726de02a01ac0653b9fe1c6b..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ContentExamples/DemoRoomAssets/DemoRoomAssets_short_wall.uasset and /dev/null differ
diff --git a/Content/Examples/ContentExamples/DemoRoomAssets/DemoRoomAssets_vertical_end_piller.uasset b/Content/Examples/ContentExamples/DemoRoomAssets/DemoRoomAssets_vertical_end_piller.uasset
deleted file mode 100644
index 50a800b203f84ac8d8c20a92c5a52ffdd82e5c94..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ContentExamples/DemoRoomAssets/DemoRoomAssets_vertical_end_piller.uasset and /dev/null differ
diff --git a/Content/Examples/ContentExamples/DemoRoomAssets/DemoRoomTest.umap b/Content/Examples/ContentExamples/DemoRoomAssets/DemoRoomTest.umap
deleted file mode 100644
index 6be975361c9574680f74d95ff7bf292077eb7674..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ContentExamples/DemoRoomAssets/DemoRoomTest.umap and /dev/null differ
diff --git a/Content/Examples/ContentExamples/DemoRoomAssets/Entrance_Pillars.uasset b/Content/Examples/ContentExamples/DemoRoomAssets/Entrance_Pillars.uasset
deleted file mode 100644
index 2bbac6b5b367deb14eb705d565330dff3e1e2c73..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ContentExamples/DemoRoomAssets/Entrance_Pillars.uasset and /dev/null differ
diff --git a/Content/Examples/ContentExamples/DemoRoomAssets/Floor.uasset b/Content/Examples/ContentExamples/DemoRoomAssets/Floor.uasset
deleted file mode 100644
index 2d35c3d3567c1b1d933bd1d6d0856a73c55e0398..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ContentExamples/DemoRoomAssets/Floor.uasset and /dev/null differ
diff --git a/Content/Examples/ContentExamples/DemoRoomAssets/Frame.uasset b/Content/Examples/ContentExamples/DemoRoomAssets/Frame.uasset
deleted file mode 100644
index add5d5f739c5dabd1151080881594c4d0457dfb0..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ContentExamples/DemoRoomAssets/Frame.uasset and /dev/null differ
diff --git a/Content/Examples/ContentExamples/DemoRoomAssets/Inner_Walls.uasset b/Content/Examples/ContentExamples/DemoRoomAssets/Inner_Walls.uasset
deleted file mode 100644
index 536ff38d226d282001023852d0ac859e52f198c7..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ContentExamples/DemoRoomAssets/Inner_Walls.uasset and /dev/null differ
diff --git a/Content/Examples/ContentExamples/DemoRoomAssets/Interior.uasset b/Content/Examples/ContentExamples/DemoRoomAssets/Interior.uasset
deleted file mode 100644
index a1416e648a43482d0dddcc8e8db12a5b6bcf9453..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ContentExamples/DemoRoomAssets/Interior.uasset and /dev/null differ
diff --git a/Content/Examples/ContentExamples/DemoRoomAssets/Outer_Pillars.uasset b/Content/Examples/ContentExamples/DemoRoomAssets/Outer_Pillars.uasset
deleted file mode 100644
index 3f5d03a620faf69dccb1e197e26733a1f9f4a03d..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ContentExamples/DemoRoomAssets/Outer_Pillars.uasset and /dev/null differ
diff --git a/Content/Examples/ContentExamples/DemoRoomAssets/Outer_Walls.uasset b/Content/Examples/ContentExamples/DemoRoomAssets/Outer_Walls.uasset
deleted file mode 100644
index 7d4cce614f650980991e92d295cfbd644d629768..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ContentExamples/DemoRoomAssets/Outer_Walls.uasset and /dev/null differ
diff --git a/Content/Examples/ContentExamples/DemoRoomAssets/S_RoomSettings.uasset b/Content/Examples/ContentExamples/DemoRoomAssets/S_RoomSettings.uasset
deleted file mode 100644
index 8f0d598d8eb1c659cf39951b600768f0b66ba884..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ContentExamples/DemoRoomAssets/S_RoomSettings.uasset and /dev/null differ
diff --git a/Content/Examples/ContentExamples/DemoRoomAssets/demostation.uasset b/Content/Examples/ContentExamples/DemoRoomAssets/demostation.uasset
deleted file mode 100644
index 0ca2d2b37cb8d0f3e9d9a5207b87b50db51bbf2d..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ContentExamples/DemoRoomAssets/demostation.uasset and /dev/null differ
diff --git a/Content/Examples/ContentExamples/Pawns/BP_ContentExamplesPawn.uasset b/Content/Examples/ContentExamples/Pawns/BP_ContentExamplesPawn.uasset
deleted file mode 100644
index 12de4cfc6edddae40e7e026cb9ab082f1e8f4f57..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ContentExamples/Pawns/BP_ContentExamplesPawn.uasset and /dev/null differ
diff --git a/Content/Examples/ContentExamples/Pawns/BP_TeleportPawn.uasset b/Content/Examples/ContentExamples/Pawns/BP_TeleportPawn.uasset
deleted file mode 100644
index df1abb51e6dc3aa7f555518abba1c2af5673e941..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ContentExamples/Pawns/BP_TeleportPawn.uasset and /dev/null differ
diff --git a/Content/Examples/ContentExamples/ToolkitExamples.umap b/Content/Examples/ContentExamples/ToolkitExamples.umap
deleted file mode 100644
index c6e4c2d650345e901032eb8d009b9d65375209a0..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ContentExamples/ToolkitExamples.umap and /dev/null differ
diff --git a/Content/Examples/ContentExamples/Trigger/ContinuousNavigationModeTrigger.uasset b/Content/Examples/ContentExamples/Trigger/ContinuousNavigationModeTrigger.uasset
deleted file mode 100644
index b9a5a2d6c5c3600a9a06c3c61f93fa41d7cd9e1d..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ContentExamples/Trigger/ContinuousNavigationModeTrigger.uasset and /dev/null differ
diff --git a/Content/Examples/ContentExamples/Trigger/InteractionTechniqueSwapTrigger.uasset b/Content/Examples/ContentExamples/Trigger/InteractionTechniqueSwapTrigger.uasset
deleted file mode 100644
index befe62fdd1270d6b73eb65b72389135736c48194..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ContentExamples/Trigger/InteractionTechniqueSwapTrigger.uasset and /dev/null differ
diff --git a/Content/Examples/ContentExamples/Trigger/InteractionTechniquesEnum.uasset b/Content/Examples/ContentExamples/Trigger/InteractionTechniquesEnum.uasset
deleted file mode 100644
index e190eb6cdc40f4fa0ebbac9e2df65010861d5175..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ContentExamples/Trigger/InteractionTechniquesEnum.uasset and /dev/null differ
diff --git a/Content/Examples/ContentExamples/Trigger/MovementTechniqueSwapTrigger.uasset b/Content/Examples/ContentExamples/Trigger/MovementTechniqueSwapTrigger.uasset
deleted file mode 100644
index a556443085f9812425130d006a164d2794663286..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ContentExamples/Trigger/MovementTechniqueSwapTrigger.uasset and /dev/null differ
diff --git a/Content/Examples/ContentExamples/Widgets/BP_PawnSwapWidgetActor.uasset b/Content/Examples/ContentExamples/Widgets/BP_PawnSwapWidgetActor.uasset
deleted file mode 100644
index 7de08ef1c98e59cc7d62d4bc8164f8b8f7f0064b..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ContentExamples/Widgets/BP_PawnSwapWidgetActor.uasset and /dev/null differ
diff --git a/Content/Examples/ContentExamples/Widgets/BP_WidgetDemoActor.uasset b/Content/Examples/ContentExamples/Widgets/BP_WidgetDemoActor.uasset
deleted file mode 100644
index c2b90dabd57345042b7eee882cac86c362263fcf..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ContentExamples/Widgets/BP_WidgetDemoActor.uasset and /dev/null differ
diff --git a/Content/Examples/ContentExamples/Widgets/ClickMeWidget.uasset b/Content/Examples/ContentExamples/Widgets/ClickMeWidget.uasset
deleted file mode 100644
index 768cccd381e6301ccf231ab4c65a0d58013bd091..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ContentExamples/Widgets/ClickMeWidget.uasset and /dev/null differ
diff --git a/Content/Examples/ContentExamples/Widgets/DemostationTextboxWidget.uasset b/Content/Examples/ContentExamples/Widgets/DemostationTextboxWidget.uasset
deleted file mode 100644
index a7229820c76120bf8512efb6e80774ba9234b7b1..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ContentExamples/Widgets/DemostationTextboxWidget.uasset and /dev/null differ
diff --git a/Content/Examples/ContentExamples/Widgets/PawnSwapButtonWidget.uasset b/Content/Examples/ContentExamples/Widgets/PawnSwapButtonWidget.uasset
deleted file mode 100644
index 9cecb1a60ef49a050785e4a8be89b1cecb3f429c..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ContentExamples/Widgets/PawnSwapButtonWidget.uasset and /dev/null differ
diff --git a/Content/Examples/ReplicationExamples/Blueprints/BP_RE_1_1.uasset b/Content/Examples/ReplicationExamples/Blueprints/BP_RE_1_1.uasset
deleted file mode 100644
index 508ca517427740d74f5e596b0d9e378f48117c33..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ReplicationExamples/Blueprints/BP_RE_1_1.uasset and /dev/null differ
diff --git a/Content/Examples/ReplicationExamples/Blueprints/BP_RE_1_2.uasset b/Content/Examples/ReplicationExamples/Blueprints/BP_RE_1_2.uasset
deleted file mode 100644
index 420f7e315158df8ef6e4028acbced2bbb51d85ae..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ReplicationExamples/Blueprints/BP_RE_1_2.uasset and /dev/null differ
diff --git a/Content/Examples/ReplicationExamples/Blueprints/BP_RE_1_3.uasset b/Content/Examples/ReplicationExamples/Blueprints/BP_RE_1_3.uasset
deleted file mode 100644
index 47afecc29c1e3f62b491acc7854bfa1d50db0a8d..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ReplicationExamples/Blueprints/BP_RE_1_3.uasset and /dev/null differ
diff --git a/Content/Examples/ReplicationExamples/Blueprints/BP_RE_1_4.uasset b/Content/Examples/ReplicationExamples/Blueprints/BP_RE_1_4.uasset
deleted file mode 100644
index 84b8c18241ae1ee4ab4c3f54c6ff62d42d54f712..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ReplicationExamples/Blueprints/BP_RE_1_4.uasset and /dev/null differ
diff --git a/Content/Examples/ReplicationExamples/Blueprints/BP_RE_1_5.uasset b/Content/Examples/ReplicationExamples/Blueprints/BP_RE_1_5.uasset
deleted file mode 100644
index 671644137e556a38dedb290ab37af6441f07cadc..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ReplicationExamples/Blueprints/BP_RE_1_5.uasset and /dev/null differ
diff --git a/Content/Examples/ReplicationExamples/Blueprints/BP_loc_NoReplication.uasset b/Content/Examples/ReplicationExamples/Blueprints/BP_loc_NoReplication.uasset
deleted file mode 100644
index bae3d13ba6cb9a74392e09be4164398703e14b26..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ReplicationExamples/Blueprints/BP_loc_NoReplication.uasset and /dev/null differ
diff --git a/Content/Examples/ReplicationExamples/Blueprints/BP_loc_replication.uasset b/Content/Examples/ReplicationExamples/Blueprints/BP_loc_replication.uasset
deleted file mode 100644
index e9cd209b391355e3fb07d6f55955bfd40d56673f..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ReplicationExamples/Blueprints/BP_loc_replication.uasset and /dev/null differ
diff --git a/Content/Examples/ReplicationExamples/Blueprints/BP_locomotive.uasset b/Content/Examples/ReplicationExamples/Blueprints/BP_locomotive.uasset
deleted file mode 100644
index 2724d42266c4cb10acf64f9a487febc5690129eb..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ReplicationExamples/Blueprints/BP_locomotive.uasset and /dev/null differ
diff --git a/Content/Examples/ReplicationExamples/Models/BP_locomotiveAnimation.uasset b/Content/Examples/ReplicationExamples/Models/BP_locomotiveAnimation.uasset
deleted file mode 100644
index ddcbf601baf38f4f0472d2783f3ab7627b00fc2e..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ReplicationExamples/Models/BP_locomotiveAnimation.uasset and /dev/null differ
diff --git a/Content/Examples/ReplicationExamples/Models/Face.uasset b/Content/Examples/ReplicationExamples/Models/Face.uasset
deleted file mode 100644
index 7598f465681158ca6a69a0f28bb0af32ce720374..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ReplicationExamples/Models/Face.uasset and /dev/null differ
diff --git a/Content/Examples/ReplicationExamples/Models/Light_Wood.uasset b/Content/Examples/ReplicationExamples/Models/Light_Wood.uasset
deleted file mode 100644
index 863feba2dc1a30b9b4b4561a2e15c9745611e1d6..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ReplicationExamples/Models/Light_Wood.uasset and /dev/null differ
diff --git a/Content/Examples/ReplicationExamples/Models/Wood.uasset b/Content/Examples/ReplicationExamples/Models/Wood.uasset
deleted file mode 100644
index bee85f8a54443363e77fa93bc3d24032e10d1a49..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ReplicationExamples/Models/Wood.uasset and /dev/null differ
diff --git a/Content/Examples/ReplicationExamples/Models/locomotive.uasset b/Content/Examples/ReplicationExamples/Models/locomotive.uasset
deleted file mode 100644
index 4a95384c5a33996a5e154071353d894a529fcce1..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ReplicationExamples/Models/locomotive.uasset and /dev/null differ
diff --git a/Content/Examples/ReplicationExamples/Models/locomotive_Anim.uasset b/Content/Examples/ReplicationExamples/Models/locomotive_Anim.uasset
deleted file mode 100644
index e86db372697b2d2055ba03add82b8c44a2df4f35..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ReplicationExamples/Models/locomotive_Anim.uasset and /dev/null differ
diff --git a/Content/Examples/ReplicationExamples/Models/locomotive_PhysicsAsset.uasset b/Content/Examples/ReplicationExamples/Models/locomotive_PhysicsAsset.uasset
deleted file mode 100644
index ec5180e98b5356e1fa56e38aa923bbbf64b3bb57..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ReplicationExamples/Models/locomotive_PhysicsAsset.uasset and /dev/null differ
diff --git a/Content/Examples/ReplicationExamples/Models/locomotive_Skeleton.uasset b/Content/Examples/ReplicationExamples/Models/locomotive_Skeleton.uasset
deleted file mode 100644
index eb26f1c4e6417620c517b3c9eb8b9b6cb88552d0..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ReplicationExamples/Models/locomotive_Skeleton.uasset and /dev/null differ
diff --git a/Content/Examples/ReplicationExamples/ReplicationExamples.umap b/Content/Examples/ReplicationExamples/ReplicationExamples.umap
deleted file mode 100644
index a1efcfc296c7bad836afe5394bdd832ac53862e5..0000000000000000000000000000000000000000
Binary files a/Content/Examples/ReplicationExamples/ReplicationExamples.umap and /dev/null differ
diff --git a/Content/Input/Default_IMC/IMC_General.uasset b/Content/Input/Default_IMC/IMC_General.uasset
index cc0bd4ea6d18ace71a9ae2a0b53af84f42689540..6acdb72a1f1896d89873376ff2a06bdd4788506a 100644
Binary files a/Content/Input/Default_IMC/IMC_General.uasset and b/Content/Input/Default_IMC/IMC_General.uasset differ
diff --git a/Content/Input/Default_IMC/IMC_MovementLeftHand.uasset b/Content/Input/Default_IMC/IMC_MovementLeftHand.uasset
index 3a6f11f161b72dcf7957b8badedca6df9f64ec20..61a3048f2f7d7470bcc88dd398b06a5cbd825939 100644
Binary files a/Content/Input/Default_IMC/IMC_MovementLeftHand.uasset and b/Content/Input/Default_IMC/IMC_MovementLeftHand.uasset differ
diff --git a/Content/Input/Default_IMC/IMC_MovementRightHand.uasset b/Content/Input/Default_IMC/IMC_MovementRightHand.uasset
index 3aeafce240b599eb78bc9305707d2198bfd53613..fd7e3cd5dd01591ed98c06be64b54ca17221f8c0 100644
Binary files a/Content/Input/Default_IMC/IMC_MovementRightHand.uasset and b/Content/Input/Default_IMC/IMC_MovementRightHand.uasset differ
diff --git a/Content/Pawn/BP_RWTHVRPawn_Default.uasset b/Content/Pawn/BP_RWTHVRPawn_Default.uasset
index 6171681e8ed6e3a4eae1879d475dac62e33c4c99..cb05e67f79561281c52e04b21e9bd67726871dbb 100644
Binary files a/Content/Pawn/BP_RWTHVRPawn_Default.uasset and b/Content/Pawn/BP_RWTHVRPawn_Default.uasset differ
diff --git a/Content/Pawn/Base/BP_RWTHVRPawn_Base.uasset b/Content/Pawn/Base/BP_RWTHVRPawn_Base.uasset
index 591070e44ae18b1c035eba19b12492d94c47c7e2..3616819e69aa1ac0f21047b036be9244b1597c76 100644
Binary files a/Content/Pawn/Base/BP_RWTHVRPawn_Base.uasset and b/Content/Pawn/Base/BP_RWTHVRPawn_Base.uasset differ
diff --git a/Content/RWTHVRCluster/BP_CaveSetup.uasset b/Content/RWTHVRCluster/BP_CaveSetup.uasset
deleted file mode 100644
index fd882f7f9f9860373421e60fafde5f5b0c03a0cb..0000000000000000000000000000000000000000
Binary files a/Content/RWTHVRCluster/BP_CaveSetup.uasset and /dev/null differ
diff --git a/Content/RWTHVRCluster/CAVEOverlay/BP_CaveOverlay.uasset b/Content/RWTHVRCluster/CAVEOverlay/BP_CaveOverlay.uasset
deleted file mode 100644
index ab15ee9eb49fa5f0687da7bfff83330b505d4e03..0000000000000000000000000000000000000000
Binary files a/Content/RWTHVRCluster/CAVEOverlay/BP_CaveOverlay.uasset and /dev/null differ
diff --git a/Content/RWTHVRCluster/CAVEOverlay/DoorOverlay.uasset b/Content/RWTHVRCluster/CAVEOverlay/DoorOverlay.uasset
deleted file mode 100644
index 02f7992b4b6af7ca25e44a5f2f04618957fcaf28..0000000000000000000000000000000000000000
Binary files a/Content/RWTHVRCluster/CAVEOverlay/DoorOverlay.uasset and /dev/null differ
diff --git a/Content/RWTHVRCluster/CAVEOverlay/IA_ToggleOverlay.uasset b/Content/RWTHVRCluster/CAVEOverlay/IA_ToggleOverlay.uasset
deleted file mode 100644
index 77af01f0b1f00c791d5b4baf06ac3136355776fe..0000000000000000000000000000000000000000
Binary files a/Content/RWTHVRCluster/CAVEOverlay/IA_ToggleOverlay.uasset and /dev/null differ
diff --git a/Content/RWTHVRCluster/CAVEOverlay/Sign.uasset b/Content/RWTHVRCluster/CAVEOverlay/Sign.uasset
deleted file mode 100644
index dba01725bd6912569f4dc77222176010a5698385..0000000000000000000000000000000000000000
Binary files a/Content/RWTHVRCluster/CAVEOverlay/Sign.uasset and /dev/null differ
diff --git a/Content/RWTHVRCluster/CAVEOverlay/StopMaterial.uasset b/Content/RWTHVRCluster/CAVEOverlay/StopMaterial.uasset
deleted file mode 100644
index 02124fe5bf6a340eba994fd314f01de1a1998b4f..0000000000000000000000000000000000000000
Binary files a/Content/RWTHVRCluster/CAVEOverlay/StopMaterial.uasset and /dev/null differ
diff --git a/Content/RWTHVRCluster/CAVEOverlay/StopSign.uasset b/Content/RWTHVRCluster/CAVEOverlay/StopSign.uasset
deleted file mode 100644
index e047f7cbd9dc8502782a3fd32df6d1ecf05ffc66..0000000000000000000000000000000000000000
Binary files a/Content/RWTHVRCluster/CAVEOverlay/StopSign.uasset and /dev/null differ
diff --git a/Content/RWTHVRCluster/CAVEOverlay/Stripes.uasset b/Content/RWTHVRCluster/CAVEOverlay/Stripes.uasset
deleted file mode 100644
index 4406d788871cb62ff42293d6f7b8fb00c942a7ff..0000000000000000000000000000000000000000
Binary files a/Content/RWTHVRCluster/CAVEOverlay/Stripes.uasset and /dev/null differ
diff --git a/Content/RWTHVRCluster/CAVEOverlay/TapeMesh.uasset b/Content/RWTHVRCluster/CAVEOverlay/TapeMesh.uasset
deleted file mode 100644
index 3cfc67f040145f93432b9c08551fbea851bb3acb..0000000000000000000000000000000000000000
Binary files a/Content/RWTHVRCluster/CAVEOverlay/TapeMesh.uasset and /dev/null differ
diff --git a/Content/RWTHVRCluster/Config/ExampleConfigs/NDC_CaveUnwrap.ndisplay b/Content/RWTHVRCluster/Config/ExampleConfigs/NDC_CaveUnwrap.ndisplay
deleted file mode 100644
index b3a186da5f2e294797965d3fd53eead5b74767e2..0000000000000000000000000000000000000000
--- a/Content/RWTHVRCluster/Config/ExampleConfigs/NDC_CaveUnwrap.ndisplay
+++ /dev/null
@@ -1,677 +0,0 @@
-{
-	"nDisplay":
-	{
-		"description": "nDisplay configuration",
-		"version": "5.00",
-		"assetPath": "/RWTHVRToolkit/RWTHVRCluster/Config/ExampleConfigs/NDC_CaveUnwrap.NDC_CaveUnwrap",
-		"misc":
-		{
-			"bFollowLocalPlayerCamera": false,
-			"bExitOnEsc": true,
-			"bOverrideViewportsFromExternalConfig": false
-		},
-		"scene":
-		{
-			"xforms":
-			{
-				"cave_origin":
-				{
-					"parentId": "",
-					"location":
-					{
-						"x": 0,
-						"y": 0,
-						"z": 10
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				},
-				"cave_center":
-				{
-					"parentId": "cave_origin",
-					"location":
-					{
-						"x": 0,
-						"y": 0,
-						"z": 100
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				},
-				"display_front":
-				{
-					"parentId": "cave_center",
-					"location":
-					{
-						"x": 150,
-						"y": 0,
-						"z": 0
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				},
-				"display_floor":
-				{
-					"parentId": "cave_center",
-					"location":
-					{
-						"x": 0,
-						"y": 0,
-						"z": -100
-					},
-					"rotation":
-					{
-						"pitch": -90,
-						"yaw": 0,
-						"roll": 0
-					}
-				},
-				"angle_left":
-				{
-					"parentId": "cave_center",
-					"location":
-					{
-						"x": 150,
-						"y": -150,
-						"z": 0
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": -89.999992370605469,
-						"roll": 0
-					}
-				},
-				"display_left":
-				{
-					"parentId": "angle_left",
-					"location":
-					{
-						"x": -1.52587890625e-05,
-						"y": -149.99996948242188,
-						"z": 0
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				},
-				"angle_right":
-				{
-					"parentId": "cave_center",
-					"location":
-					{
-						"x": 150,
-						"y": 150,
-						"z": 0
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 89.999992370605469,
-						"roll": 0
-					}
-				},
-				"display_right":
-				{
-					"parentId": "angle_right",
-					"location":
-					{
-						"x": 0,
-						"y": 150,
-						"z": 0
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				},
-				"angle_ceiling":
-				{
-					"parentId": "cave_center",
-					"location":
-					{
-						"x": 150,
-						"y": 0,
-						"z": 100
-					},
-					"rotation":
-					{
-						"pitch": 90,
-						"yaw": 0,
-						"roll": 0
-					}
-				},
-				"display_ceiling":
-				{
-					"parentId": "angle_ceiling",
-					"location":
-					{
-						"x": -7.62939453125e-06,
-						"y": 0,
-						"z": 74.999984741210938
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				}
-			},
-			"cameras":
-			{
-				"DefaultViewPoint":
-				{
-					"interpupillaryDistance": 6.4000000953674316,
-					"swapEyes": false,
-					"stereoOffset": "none",
-					"parentId": "",
-					"location":
-					{
-						"x": 0,
-						"y": 0,
-						"z": 50
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				}
-			},
-			"screens":
-			{
-				"scr_left":
-				{
-					"size":
-					{
-						"width": 300,
-						"height": 200
-					},
-					"parentId": "display_left",
-					"location":
-					{
-						"x": 0,
-						"y": 0,
-						"z": 0
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				},
-				"scr_front":
-				{
-					"size":
-					{
-						"width": 300,
-						"height": 200
-					},
-					"parentId": "display_front",
-					"location":
-					{
-						"x": 0,
-						"y": 0,
-						"z": 0
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				},
-				"scr_right":
-				{
-					"size":
-					{
-						"width": 300,
-						"height": 200
-					},
-					"parentId": "display_right",
-					"location":
-					{
-						"x": 0,
-						"y": 0,
-						"z": 0
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				},
-				"scr_ceiling":
-				{
-					"size":
-					{
-						"width": 300,
-						"height": 150
-					},
-					"parentId": "display_ceiling",
-					"location":
-					{
-						"x": 0,
-						"y": 0,
-						"z": 0
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				},
-				"scr_floor":
-				{
-					"size":
-					{
-						"width": 300,
-						"height": 300
-					},
-					"parentId": "display_floor",
-					"location":
-					{
-						"x": 0,
-						"y": 0,
-						"z": 0
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				}
-			}
-		},
-		"cluster":
-		{
-			"primaryNode":
-			{
-				"id": "node_left",
-				"ports":
-				{
-					"ClusterSync": 41001,
-					"ClusterEventsJson": 41003,
-					"ClusterEventsBinary": 41004
-				}
-			},
-			"sync":
-			{
-				"renderSyncPolicy":
-				{
-					"type": "ethernet",
-					"parameters":
-					{
-					}
-				},
-				"inputSyncPolicy":
-				{
-					"type": "ReplicatePrimary",
-					"parameters":
-					{
-					}
-				}
-			},
-			"network":
-			{
-				"ConnectRetriesAmount": "300",
-				"ConnectRetryDelay": "1000",
-				"GameStartBarrierTimeout": "18000000",
-				"FrameStartBarrierTimeout": "1800000",
-				"FrameEndBarrierTimeout": "1800000",
-				"RenderSyncBarrierTimeout": "1800000"
-			},
-			"failover":
-			{
-				"failoverPolicy": "Disabled"
-			},
-			"nodes":
-			{
-				"node_left":
-				{
-					"host": "127.0.0.1",
-					"sound": true,
-					"fullScreen": false,
-					"renderHeadless": false,
-					"graphicsAdapter": -1,
-					"textureShare": false,
-					"window":
-					{
-						"x": 0,
-						"y": 300,
-						"w": 600,
-						"h": 400
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_left":
-						{
-							"camera": "DefaultViewPoint",
-							"bufferRatio": 1,
-							"gPUIndex": -1,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 600,
-								"h": 400
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "scr_left"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_front":
-				{
-					"host": "134.130.70.51",
-					"sound": false,
-					"fullScreen": false,
-					"renderHeadless": false,
-					"graphicsAdapter": -1,
-					"textureShare": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 600,
-						"h": 400
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_front":
-						{
-							"camera": "DefaultViewPoint",
-							"bufferRatio": 1,
-							"gPUIndex": -1,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 600,
-								"h": 400
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "scr_front"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_right":
-				{
-					"host": "127.0.0.1",
-					"sound": false,
-					"fullScreen": false,
-					"renderHeadless": false,
-					"graphicsAdapter": -1,
-					"textureShare": false,
-					"window":
-					{
-						"x": 600,
-						"y": 900,
-						"w": 600,
-						"h": 400
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_right":
-						{
-							"camera": "DefaultViewPoint",
-							"bufferRatio": 1,
-							"gPUIndex": -1,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 600,
-								"h": 400
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "scr_right"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_ceiling":
-				{
-					"host": "127.0.0.1",
-					"sound": false,
-					"fullScreen": false,
-					"renderHeadless": false,
-					"graphicsAdapter": -1,
-					"textureShare": false,
-					"window":
-					{
-						"x": 600,
-						"y": 0,
-						"w": 600,
-						"h": 300
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_ceiling":
-						{
-							"camera": "DefaultViewPoint",
-							"bufferRatio": 1,
-							"gPUIndex": -1,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 600,
-								"h": 300
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "scr_ceiling"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_floor":
-				{
-					"host": "127.0.0.1",
-					"sound": false,
-					"fullScreen": false,
-					"renderHeadless": false,
-					"graphicsAdapter": -1,
-					"textureShare": false,
-					"window":
-					{
-						"x": 600,
-						"y": 300,
-						"w": 600,
-						"h": 600
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_floor":
-						{
-							"camera": "DefaultViewPoint",
-							"bufferRatio": 1,
-							"gPUIndex": -1,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 600,
-								"h": 600
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "scr_floor"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				}
-			}
-		},
-		"customParameters":
-		{
-			"SampleArg1": "SampleVal1",
-			"SampleArg2": "SampleVal2"
-		},
-		"diagnostics":
-		{
-			"simulateLag": false,
-			"minLagTime": 0.0099999997764825821,
-			"maxLagTime": 0.5
-		}
-	}
-}
\ No newline at end of file
diff --git a/Content/RWTHVRCluster/Config/aixcave.ndisplay b/Content/RWTHVRCluster/Config/aixcave.ndisplay
deleted file mode 100644
index b3e1cbc3d32db77bd5d87d52ecd9ca7d1b5702a0..0000000000000000000000000000000000000000
--- a/Content/RWTHVRCluster/Config/aixcave.ndisplay
+++ /dev/null
@@ -1,3765 +0,0 @@
-{
-	"nDisplay":
-	{
-		"description": "",
-		"version": "5.00",
-		"assetPath": "/RWTHVRToolkit/RWTHVRCluster/Config/aixcave.aixcave",
-		"misc":
-		{
-			"bFollowLocalPlayerCamera": false,
-			"bExitOnEsc": true,
-			"bOverrideViewportsFromExternalConfig": false
-		},
-		"scene":
-		{
-			"xforms":
-			{
-				"cave_origin":
-				{
-					"parentId": "",
-					"location":
-					{
-						"x": 0,
-						"y": 0,
-						"z": 0
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				},
-				"left_hand_target":
-				{
-					"parentId": "cave_origin",
-					"location":
-					{
-						"x": 0,
-						"y": 0,
-						"z": 0
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				},
-				"right_hand_target":
-				{
-					"parentId": "cave_origin",
-					"location":
-					{
-						"x": 0,
-						"y": 0,
-						"z": 0
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				},
-				"calibratio":
-				{
-					"parentId": "cave_origin",
-					"location":
-					{
-						"x": 0,
-						"y": 0,
-						"z": 0
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				},
-				"flystick":
-				{
-					"parentId": "cave_origin",
-					"location":
-					{
-						"x": 0,
-						"y": 0,
-						"z": 0
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				},
-				"front":
-				{
-					"parentId": "cave_origin",
-					"location":
-					{
-						"x": 0,
-						"y": 0,
-						"z": 0
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				},
-				"left":
-				{
-					"parentId": "cave_origin",
-					"location":
-					{
-						"x": 0,
-						"y": 0,
-						"z": 0
-					},
-					"rotation":
-					{
-						"pitch": -0,
-						"yaw": -90,
-						"roll": -0
-					}
-				},
-				"right":
-				{
-					"parentId": "cave_origin",
-					"location":
-					{
-						"x": 0,
-						"y": 0,
-						"z": 0
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 90,
-						"roll": -0
-					}
-				},
-				"back":
-				{
-					"parentId": "cave_origin",
-					"location":
-					{
-						"x": 0,
-						"y": 0,
-						"z": 0
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 180,
-						"roll": -0
-					}
-				},
-				"ground":
-				{
-					"parentId": "cave_origin",
-					"location":
-					{
-						"x": 0,
-						"y": 0,
-						"z": 0
-					},
-					"rotation":
-					{
-						"pitch": -90,
-						"yaw": 0,
-						"roll": -0
-					}
-				},
-				"cavegun":
-				{
-					"parentId": "cave_origin",
-					"location":
-					{
-						"x": 0,
-						"y": 0,
-						"z": 0
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				},
-				"shutter_glasses":
-				{
-					"parentId": "cave_origin",
-					"location":
-					{
-						"x": 0,
-						"y": 0,
-						"z": 0
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				}
-			},
-			"cameras":
-			{
-				"DefaultViewPoint":
-				{
-					"interpupillaryDistance": 6.4000000953674316,
-					"swapEyes": false,
-					"stereoOffset": "none",
-					"parentId": "",
-					"location":
-					{
-						"x": 0,
-						"y": 0,
-						"z": 50
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				},
-				"camera_dynamic_main":
-				{
-					"interpupillaryDistance": 6.4000000953674316,
-					"swapEyes": false,
-					"stereoOffset": "none",
-					"parentId": "shutter_glasses",
-					"location":
-					{
-						"x": 0,
-						"y": 0,
-						"z": 0
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				},
-				"camera_dynamic_right":
-				{
-					"interpupillaryDistance": 6.4000000953674316,
-					"swapEyes": false,
-					"stereoOffset": "right",
-					"parentId": "shutter_glasses",
-					"location":
-					{
-						"x": 0,
-						"y": 0,
-						"z": 0
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				},
-				"camera_dynamic_left":
-				{
-					"interpupillaryDistance": 6.4000000953674316,
-					"swapEyes": false,
-					"stereoOffset": "left",
-					"parentId": "shutter_glasses",
-					"location":
-					{
-						"x": 0,
-						"y": 0,
-						"z": 0
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				}
-			},
-			"screens":
-			{
-				"screen_main":
-				{
-					"size":
-					{
-						"width": 100,
-						"height": 56.25
-					},
-					"parentId": "shutter_glasses",
-					"location":
-					{
-						"x": 0,
-						"y": 0,
-						"z": 0
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				},
-				"screen_front_lower_right":
-				{
-					"size":
-					{
-						"width": 314.28500366210938,
-						"height": 196.42849731445312
-					},
-					"parentId": "front",
-					"location":
-					{
-						"x": 262.5,
-						"y": 105.35750579833984,
-						"z": 98.214248657226562
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				},
-				"screen_front_upper_left":
-				{
-					"size":
-					{
-						"width": 314.28500366210938,
-						"height": 196.42849731445312
-					},
-					"parentId": "front",
-					"location":
-					{
-						"x": 262.5,
-						"y": -105.35750579833984,
-						"z": 231.78575134277344
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				},
-				"screen_front_upper_right":
-				{
-					"size":
-					{
-						"width": 314.28500366210938,
-						"height": 196.42849731445312
-					},
-					"parentId": "front",
-					"location":
-					{
-						"x": 262.5,
-						"y": 105.35750579833984,
-						"z": 231.78575134277344
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				},
-				"screen_front_lower_left":
-				{
-					"size":
-					{
-						"width": 314.28500366210938,
-						"height": 196.42849731445312
-					},
-					"parentId": "front",
-					"location":
-					{
-						"x": 262.5,
-						"y": -105.35750579833984,
-						"z": 98.214248657226562
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				},
-				"screen_right_upper_left":
-				{
-					"size":
-					{
-						"width": 314.28500366210938,
-						"height": 196.42849731445312
-					},
-					"parentId": "right",
-					"location":
-					{
-						"x": 262.5,
-						"y": -105.35750579833984,
-						"z": 231.78575134277344
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				},
-				"screen_right_upper_right":
-				{
-					"size":
-					{
-						"width": 314.28500366210938,
-						"height": 196.42849731445312
-					},
-					"parentId": "right",
-					"location":
-					{
-						"x": 262.5,
-						"y": 105.35750579833984,
-						"z": 231.78575134277344
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				},
-				"screen_right_lower_left":
-				{
-					"size":
-					{
-						"width": 314.28500366210938,
-						"height": 196.42849731445312
-					},
-					"parentId": "right",
-					"location":
-					{
-						"x": 262.5,
-						"y": -105.35750579833984,
-						"z": 98.214248657226562
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				},
-				"screen_left_lower_left":
-				{
-					"size":
-					{
-						"width": 314.28500366210938,
-						"height": 196.42849731445312
-					},
-					"parentId": "left",
-					"location":
-					{
-						"x": 262.5,
-						"y": -105.35750579833984,
-						"z": 98.214248657226562
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				},
-				"screen_left_lower_right":
-				{
-					"size":
-					{
-						"width": 314.28500366210938,
-						"height": 196.42849731445312
-					},
-					"parentId": "left",
-					"location":
-					{
-						"x": 262.5,
-						"y": 105.35750579833984,
-						"z": 98.214248657226562
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				},
-				"screen_left_upper_left":
-				{
-					"size":
-					{
-						"width": 314.28500366210938,
-						"height": 196.42849731445312
-					},
-					"parentId": "left",
-					"location":
-					{
-						"x": 262.5,
-						"y": -105.35750579833984,
-						"z": 231.78575134277344
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				},
-				"screen_left_upper_right":
-				{
-					"size":
-					{
-						"width": 314.28500366210938,
-						"height": 196.42849731445312
-					},
-					"parentId": "left",
-					"location":
-					{
-						"x": 262.5,
-						"y": 105.35750579833984,
-						"z": 231.78575134277344
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				},
-				"screen_back_lower_right":
-				{
-					"size":
-					{
-						"width": 314.28500366210938,
-						"height": 196.42849731445312
-					},
-					"parentId": "back",
-					"location":
-					{
-						"x": 262.5,
-						"y": 105.35750579833984,
-						"z": 98.214248657226562
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				},
-				"screen_back_upper_left":
-				{
-					"size":
-					{
-						"width": 314.28500366210938,
-						"height": 196.42849731445312
-					},
-					"parentId": "back",
-					"location":
-					{
-						"x": 262.5,
-						"y": -105.35750579833984,
-						"z": 231.78575134277344
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				},
-				"screen_back_lower_left":
-				{
-					"size":
-					{
-						"width": 314.28500366210938,
-						"height": 196.42849731445312
-					},
-					"parentId": "back",
-					"location":
-					{
-						"x": 262.5,
-						"y": -105.35750579833984,
-						"z": 98.214248657226562
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				},
-				"screen_back_upper_right":
-				{
-					"size":
-					{
-						"width": 314.28500366210938,
-						"height": 196.42849731445312
-					},
-					"parentId": "back",
-					"location":
-					{
-						"x": 262.5,
-						"y": 105.35750579833984,
-						"z": 231.78575134277344
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				},
-				"screen_ground_back_upper_left":
-				{
-					"size":
-					{
-						"width": 300,
-						"height": 187.5
-					},
-					"parentId": "ground",
-					"location":
-					{
-						"x": -1.4999999621068127e-05,
-						"y": -112.5,
-						"z": -93.749954223632812
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				},
-				"screen_ground_front_upper_left":
-				{
-					"size":
-					{
-						"width": 300,
-						"height": 187.5
-					},
-					"parentId": "ground",
-					"location":
-					{
-						"x": 0,
-						"y": -112.5,
-						"z": 168.74992370605469
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				},
-				"screen_ground_front_lower_right":
-				{
-					"size":
-					{
-						"width": 300,
-						"height": 187.5
-					},
-					"parentId": "ground",
-					"location":
-					{
-						"x": 0,
-						"y": 112.5,
-						"z": 93.749954223632812
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				},
-				"screen_ground_front_lower_left":
-				{
-					"size":
-					{
-						"width": 300,
-						"height": 187.5
-					},
-					"parentId": "ground",
-					"location":
-					{
-						"x": 0,
-						"y": -112.5,
-						"z": 93.749954223632812
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				},
-				"screen_ground_back_lower_left":
-				{
-					"size":
-					{
-						"width": 300,
-						"height": 187.5
-					},
-					"parentId": "ground",
-					"location":
-					{
-						"x": 1.4999999621068127e-05,
-						"y": -112.5,
-						"z": -168.74992370605469
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				},
-				"screen_ground_back_upper_right":
-				{
-					"size":
-					{
-						"width": 300,
-						"height": 187.5
-					},
-					"parentId": "ground",
-					"location":
-					{
-						"x": -1.4999999621068127e-05,
-						"y": 112.5,
-						"z": -93.749954223632812
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				},
-				"screen_ground_back_lower_right":
-				{
-					"size":
-					{
-						"width": 300,
-						"height": 187.5
-					},
-					"parentId": "ground",
-					"location":
-					{
-						"x": 1.4999999621068127e-05,
-						"y": 112.5,
-						"z": -168.74992370605469
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				},
-				"screen_ground_front_upper_right":
-				{
-					"size":
-					{
-						"width": 300,
-						"height": 187.5
-					},
-					"parentId": "ground",
-					"location":
-					{
-						"x": 0,
-						"y": 112.5,
-						"z": 168.74992370605469
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				},
-				"screen_right_lower_right_new":
-				{
-					"size":
-					{
-						"width": 314.28500366210938,
-						"height": 196.42813110351562
-					},
-					"parentId": "right",
-					"location":
-					{
-						"x": 262.5,
-						"y": 105.35750579833984,
-						"z": 98.214248657226562
-					},
-					"rotation":
-					{
-						"pitch": 0,
-						"yaw": 0,
-						"roll": 0
-					}
-				}
-			}
-		},
-		"cluster":
-		{
-			"primaryNode":
-			{
-				"id": "node_main",
-				"ports":
-				{
-					"ClusterSync": 41001,
-					"ClusterEventsJson": 41003,
-					"ClusterEventsBinary": 41004
-				}
-			},
-			"sync":
-			{
-				"renderSyncPolicy":
-				{
-					"type": "ethernet",
-					"parameters":
-					{
-					}
-				},
-				"inputSyncPolicy":
-				{
-					"type": "ReplicatePrimary",
-					"parameters":
-					{
-					}
-				}
-			},
-			"network":
-			{
-				"ConnectRetriesAmount": "300",
-				"ConnectRetryDelay": "1000",
-				"GameStartBarrierTimeout": "18000000",
-				"FrameStartBarrierTimeout": "1800000",
-				"FrameEndBarrierTimeout": "1800000",
-				"RenderSyncBarrierTimeout": "1800000"
-			},
-			"failover":
-			{
-				"failoverPolicy": "Disabled"
-			},
-			"nodes":
-			{
-				"node_main":
-				{
-					"host": "10.0.1.29",
-					"sound": true,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1600,
-						"h": 1000
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_main":
-						{
-							"camera": "camera_dynamic_main",
-							"bufferRatio": 1,
-							"gPUIndex": -1,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1600,
-								"h": 1000
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_main"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_ful_left_eye":
-				{
-					"host": "10.0.1.1",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_front_upper_left_LE":
-						{
-							"camera": "camera_dynamic_left",
-							"bufferRatio": 1,
-							"gPUIndex": 1,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_front_upper_left"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_ful_right_eye":
-				{
-					"host": "10.0.1.1",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_front_upper_left_RE":
-						{
-							"camera": "camera_dynamic_right",
-							"bufferRatio": 1,
-							"gPUIndex": 0,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_front_upper_left"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_fur_left_eye":
-				{
-					"host": "10.0.1.2",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_front_upper_right_LE":
-						{
-							"camera": "camera_dynamic_left",
-							"bufferRatio": 1,
-							"gPUIndex": 1,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_front_upper_right"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_fur_right_eye":
-				{
-					"host": "10.0.1.2",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_front_upper_right_RE":
-						{
-							"camera": "camera_dynamic_right",
-							"bufferRatio": 1,
-							"gPUIndex": 0,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_front_upper_right"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_fll_left_eye":
-				{
-					"host": "10.0.1.3",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_front_lower_left_LE":
-						{
-							"camera": "camera_dynamic_left",
-							"bufferRatio": 1,
-							"gPUIndex": 1,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_front_lower_left"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_fll_right_eye":
-				{
-					"host": "10.0.1.3",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_front_lower_left_RE":
-						{
-							"camera": "camera_dynamic_right",
-							"bufferRatio": 1,
-							"gPUIndex": 0,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_front_lower_left"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_flr_left_eye":
-				{
-					"host": "10.0.1.4",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_front_lower_right_LE":
-						{
-							"camera": "camera_dynamic_left",
-							"bufferRatio": 1,
-							"gPUIndex": 1,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_front_lower_right"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_flr_right_eye":
-				{
-					"host": "10.0.1.4",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_front_lower_right_RE":
-						{
-							"camera": "camera_dynamic_right",
-							"bufferRatio": 1,
-							"gPUIndex": 0,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_front_lower_right"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_lul_left_eye":
-				{
-					"host": "10.0.1.5",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_left_upper_left_LE":
-						{
-							"camera": "camera_dynamic_left",
-							"bufferRatio": 1,
-							"gPUIndex": 1,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_left_upper_left"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_lul_right_eye":
-				{
-					"host": "10.0.1.5",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_left_upper_left_RE":
-						{
-							"camera": "camera_dynamic_right",
-							"bufferRatio": 1,
-							"gPUIndex": 0,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_left_upper_left"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_lur_left_eye":
-				{
-					"host": "10.0.1.6",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_left_upper_right_LE":
-						{
-							"camera": "camera_dynamic_left",
-							"bufferRatio": 1,
-							"gPUIndex": 1,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_left_upper_right"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_lur_right_eye":
-				{
-					"host": "10.0.1.6",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_left_upper_right_RE":
-						{
-							"camera": "camera_dynamic_right",
-							"bufferRatio": 1,
-							"gPUIndex": 0,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_left_upper_right"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_lll_left_eye":
-				{
-					"host": "10.0.1.7",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_left_lower_left_LE":
-						{
-							"camera": "camera_dynamic_left",
-							"bufferRatio": 1,
-							"gPUIndex": 1,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_left_lower_left"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_lll_right_eye":
-				{
-					"host": "10.0.1.7",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_left_lower_left_RE":
-						{
-							"camera": "camera_dynamic_right",
-							"bufferRatio": 1,
-							"gPUIndex": 0,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_left_lower_left"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_llr_left_eye":
-				{
-					"host": "10.0.1.8",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_left_lower_right_LE":
-						{
-							"camera": "camera_dynamic_left",
-							"bufferRatio": 1,
-							"gPUIndex": 1,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_left_lower_right"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_llr_right_eye":
-				{
-					"host": "10.0.1.8",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_left_lower_right_RE":
-						{
-							"camera": "camera_dynamic_right",
-							"bufferRatio": 1,
-							"gPUIndex": 0,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_left_lower_right"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_rul_left_eye":
-				{
-					"host": "10.0.1.9",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_right_upper_left_LE":
-						{
-							"camera": "camera_dynamic_left",
-							"bufferRatio": 1,
-							"gPUIndex": 1,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_right_upper_left"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_rul_right_eye":
-				{
-					"host": "10.0.1.9",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_right_upper_left_RE":
-						{
-							"camera": "camera_dynamic_right",
-							"bufferRatio": 1,
-							"gPUIndex": 0,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_right_upper_left"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_rur_left_eye":
-				{
-					"host": "10.0.1.10",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_right_upper_right_LE":
-						{
-							"camera": "camera_dynamic_left",
-							"bufferRatio": 1,
-							"gPUIndex": 1,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_right_upper_right"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_rur_right_eye":
-				{
-					"host": "10.0.1.10",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_right_upper_right_RE":
-						{
-							"camera": "camera_dynamic_right",
-							"bufferRatio": 1,
-							"gPUIndex": 0,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_right_upper_right"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_rll_left_eye":
-				{
-					"host": "10.0.1.11",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_right_lower_left_LE":
-						{
-							"camera": "camera_dynamic_left",
-							"bufferRatio": 1,
-							"gPUIndex": 1,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_right_lower_left"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_rll_right_eye":
-				{
-					"host": "10.0.1.11",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_right_lower_left_RE":
-						{
-							"camera": "camera_dynamic_right",
-							"bufferRatio": 1,
-							"gPUIndex": 0,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_right_lower_left"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_rlr_left_eye":
-				{
-					"host": "10.0.1.12",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_right_lower_right_LE":
-						{
-							"camera": "camera_dynamic_left",
-							"bufferRatio": 1,
-							"gPUIndex": 1,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_right_lower_right_new"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_rlr_right_eye":
-				{
-					"host": "10.0.1.12",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_right_lower_right_RE":
-						{
-							"camera": "camera_dynamic_right",
-							"bufferRatio": 1,
-							"gPUIndex": 0,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_right_lower_right_new"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_bul_left_eye":
-				{
-					"host": "10.0.1.13",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_back_upper_left_LE":
-						{
-							"camera": "camera_dynamic_left",
-							"bufferRatio": 1,
-							"gPUIndex": 1,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_back_upper_left"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_bul_right_eye":
-				{
-					"host": "10.0.1.13",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_back_upper_left_RE":
-						{
-							"camera": "camera_dynamic_right",
-							"bufferRatio": 1,
-							"gPUIndex": 0,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_back_upper_left"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_bur_left_eye":
-				{
-					"host": "10.0.1.14",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_back_upper_right_LE":
-						{
-							"camera": "camera_dynamic_left",
-							"bufferRatio": 1,
-							"gPUIndex": 1,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_back_upper_right"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_bur_right_eye":
-				{
-					"host": "10.0.1.14",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_back_upper_right_RE":
-						{
-							"camera": "camera_dynamic_right",
-							"bufferRatio": 1,
-							"gPUIndex": 0,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_back_upper_right"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_bll_left_eye":
-				{
-					"host": "10.0.1.15",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_back_lower_left_LE":
-						{
-							"camera": "camera_dynamic_left",
-							"bufferRatio": 1,
-							"gPUIndex": 1,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_back_lower_left"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_bll_right_eye":
-				{
-					"host": "10.0.1.15",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_back_lower_left_RE":
-						{
-							"camera": "camera_dynamic_right",
-							"bufferRatio": 1,
-							"gPUIndex": 0,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_back_lower_left"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_blr_left_eye":
-				{
-					"host": "10.0.1.16",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_back_lower_right_LE":
-						{
-							"camera": "camera_dynamic_left",
-							"bufferRatio": 1,
-							"gPUIndex": 1,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_back_lower_right"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_blr_right_eye":
-				{
-					"host": "10.0.1.16",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_back_lower_right_RE":
-						{
-							"camera": "camera_dynamic_right",
-							"bufferRatio": 1,
-							"gPUIndex": 0,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_back_lower_right"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_gful_left_eye":
-				{
-					"host": "10.0.1.17",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_ground_front_upper_left_LE":
-						{
-							"camera": "camera_dynamic_left",
-							"bufferRatio": 1,
-							"gPUIndex": 1,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_ground_front_upper_left"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_gful_right_eye":
-				{
-					"host": "10.0.1.17",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_ground_front_upper_left_RE":
-						{
-							"camera": "camera_dynamic_right",
-							"bufferRatio": 1,
-							"gPUIndex": 0,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_ground_front_upper_left"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_gfur_left_eye":
-				{
-					"host": "10.0.1.19",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_ground_front_upper_right_LE":
-						{
-							"camera": "camera_dynamic_left",
-							"bufferRatio": 1,
-							"gPUIndex": 1,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_ground_front_upper_right"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_gfur_right_eye":
-				{
-					"host": "10.0.1.19",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_ground_front_upper_right_RE":
-						{
-							"camera": "camera_dynamic_right",
-							"bufferRatio": 1,
-							"gPUIndex": 0,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_ground_front_upper_right"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_gfll_left_eye":
-				{
-					"host": "10.0.1.18",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_ground_front_lower_left_LE":
-						{
-							"camera": "camera_dynamic_left",
-							"bufferRatio": 1,
-							"gPUIndex": 1,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_ground_front_lower_left"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_gfll_right_eye":
-				{
-					"host": "10.0.1.18",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_ground_front_lower_left_RE":
-						{
-							"camera": "camera_dynamic_right",
-							"bufferRatio": 1,
-							"gPUIndex": 0,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_ground_front_lower_left"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_gflr_left_eye":
-				{
-					"host": "10.0.1.20",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_ground_front_lower_right_LE":
-						{
-							"camera": "camera_dynamic_left",
-							"bufferRatio": 1,
-							"gPUIndex": 1,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_ground_front_lower_right"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_gflr_right_eye":
-				{
-					"host": "10.0.1.20",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_ground_front_lower_right_RE":
-						{
-							"camera": "camera_dynamic_right",
-							"bufferRatio": 1,
-							"gPUIndex": 0,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_ground_front_lower_right"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_gbul_left_eye":
-				{
-					"host": "10.0.1.21",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_ground_back_upper_left_LE":
-						{
-							"camera": "camera_dynamic_left",
-							"bufferRatio": 1,
-							"gPUIndex": 1,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_ground_back_upper_left"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_gbul_right_eye":
-				{
-					"host": "10.0.1.21",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_ground_back_upper_left_RE":
-						{
-							"camera": "camera_dynamic_right",
-							"bufferRatio": 1,
-							"gPUIndex": 0,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_ground_back_upper_left"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_gbur_left_eye":
-				{
-					"host": "10.0.1.23",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_ground_back_upper_right_LE":
-						{
-							"camera": "camera_dynamic_left",
-							"bufferRatio": 1,
-							"gPUIndex": 1,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_ground_back_upper_right"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_gbur_right_eye":
-				{
-					"host": "10.0.1.23",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_ground_back_upper_right_RE":
-						{
-							"camera": "camera_dynamic_right",
-							"bufferRatio": 1,
-							"gPUIndex": 0,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_ground_back_upper_right"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_gbll_left_eye":
-				{
-					"host": "10.0.1.22",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_ground_back_lower_left_LE":
-						{
-							"camera": "camera_dynamic_left",
-							"bufferRatio": 1,
-							"gPUIndex": 1,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_ground_back_lower_left"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_gbll_right_eye":
-				{
-					"host": "10.0.1.22",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_ground_back_lower_left_RE":
-						{
-							"camera": "camera_dynamic_right",
-							"bufferRatio": 1,
-							"gPUIndex": 0,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_ground_back_lower_left"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_gblr_left_eye":
-				{
-					"host": "10.0.1.24",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_ground_back_lower_right_LE":
-						{
-							"camera": "camera_dynamic_left",
-							"bufferRatio": 1,
-							"gPUIndex": 1,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_ground_back_lower_right"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				},
-				"node_gblr_right_eye":
-				{
-					"host": "10.0.1.24",
-					"sound": false,
-					"fullScreen": false,
-					"window":
-					{
-						"x": 0,
-						"y": 0,
-						"w": 1920,
-						"h": 1200
-					},
-					"postprocess":
-					{
-					},
-					"viewports":
-					{
-						"vp_ground_back_lower_right_RE":
-						{
-							"camera": "camera_dynamic_right",
-							"bufferRatio": 1,
-							"gPUIndex": 0,
-							"allowCrossGPUTransfer": false,
-							"isShared": false,
-							"overscan":
-							{
-								"bEnabled": false,
-								"mode": "percent",
-								"left": 0,
-								"right": 0,
-								"top": 0,
-								"bottom": 0,
-								"oversize": true
-							},
-							"region":
-							{
-								"x": 0,
-								"y": 0,
-								"w": 1920,
-								"h": 1200
-							},
-							"projectionPolicy":
-							{
-								"type": "simple",
-								"parameters":
-								{
-									"screen": "screen_ground_back_lower_right"
-								}
-							}
-						}
-					},
-					"outputRemap":
-					{
-						"bEnable": false,
-						"dataSource": "mesh",
-						"staticMeshAsset": "",
-						"externalFile": ""
-					}
-				}
-			}
-		},
-		"customParameters":
-		{
-		},
-		"diagnostics":
-		{
-			"simulateLag": false,
-			"minLagTime": 0.0099999997764825821,
-			"maxLagTime": 0.30000001192092896
-		}
-	}
-}
\ No newline at end of file
diff --git a/Content/RWTHVRCluster/Config/aixcave.uasset b/Content/RWTHVRCluster/Config/aixcave.uasset
deleted file mode 100644
index 52a33ae06135eef2201a8f1dc59094d3b8cbb73a..0000000000000000000000000000000000000000
Binary files a/Content/RWTHVRCluster/Config/aixcave.uasset and /dev/null differ
diff --git a/Content/RWTHVRCluster/Config/aixcave_two_player.uasset b/Content/RWTHVRCluster/Config/aixcave_two_player.uasset
deleted file mode 100644
index f55c6f86b133bd41711850009ee28765f435949c..0000000000000000000000000000000000000000
Binary files a/Content/RWTHVRCluster/Config/aixcave_two_player.uasset and /dev/null differ
diff --git a/README.md b/README.md
index 8027ab972200632311e18e0b2b30bc52bd855f4a..7cc35978fb81c7309ce796f0218512b9be948de2 100644
--- a/README.md
+++ b/README.md
@@ -4,6 +4,9 @@ The contents of this plugin are constantly extended and improved to reflect chan
 
 [Check out the repository's wiki page for installation, usage and documentation](https://git-ce.rwth-aachen.de/vr-vis/VR-Group/unreal-development/plugins/rwth-vr-toolkit/-/wikis/home).
 
+## RWTH VR Cluster Plugin
+
+To add support for nDisplay driven clusters such as the aixCAVE, check out the [RWTH VR Cluster Plugin](https://git-ce.rwth-aachen.de/vr-vis/VR-Group/unreal-development/plugins/rwth-vr-cluster-plugin).
 
 ## Citation
 
diff --git a/RWTHVRToolkit.uplugin b/RWTHVRToolkit.uplugin
index 7f4a21c631b5af94e1d029792a9a56cb818fe251..4827226d981eeb2cd82d5e1593448f72f33755ff 100644
--- a/RWTHVRToolkit.uplugin
+++ b/RWTHVRToolkit.uplugin
@@ -15,15 +15,6 @@
 	"Installed": false,
 	"EnabledByDefault": true,
 	"Modules": [
-		{
-			"Name": "RWTHVRCluster",
-			"Type": "Runtime",
-			"LoadingPhase": "Default",
-			"WhitelistPlatforms": [
-				"Win64",
-				"Linux"
-			]
-		},
 		{
 			"Name": "RWTHVRToolkit",
 			"Type": "Runtime",
@@ -37,22 +28,18 @@
 	],
 	"Plugins": [
 		{
-			"Name": "nDisplay",
-			"Enabled": true
+			"Name": "RWTHVRCluster",
+			"Enabled": true,
+			"Optional": true,
+			"SupportedTargetPlatforms": [
+				"Win64",
+				"Linux"
+			]
 		},
 		{
 			"Name": "LiveLink",
 			"Enabled": true
 		},
-		{
-			"Name": "LiveLinkOvernDisplay",
-			"Enabled": true
-		},
-		{
-			"Name": "DTrackPlugin",
-			"Enabled": true,
-			"Optional": true
-		},
 		{
 			"Name": "EnhancedInput",
 			"Enabled": true
@@ -62,9 +49,8 @@
 			"Enabled": true
 		},
 		{
-			"Name": "Switchboard",
-			"Enabled": true,
-			"Optional": true
+		"Name": "XRBase",
+		"Enabled": true
 		}
 	]
 }
diff --git a/Source/RWTHVRCluster/Private/CAVEOverlay/CAVEOverlayController.cpp b/Source/RWTHVRCluster/Private/CAVEOverlay/CAVEOverlayController.cpp
deleted file mode 100644
index 08d44b21a4e33283daa9a6a29b556beec0289cfa..0000000000000000000000000000000000000000
--- a/Source/RWTHVRCluster/Private/CAVEOverlay/CAVEOverlayController.cpp
+++ /dev/null
@@ -1,357 +0,0 @@
-#include "CAVEOverlay/CAVEOverlayController.h"
-
-#include "CoreMinimal.h"
-#include "EnhancedInputComponent.h"
-#include "IDisplayCluster.h"
-#include "MotionControllerComponent.h"
-#include "Camera/CameraComponent.h"
-#include "CAVEOverlay/DoorOverlayData.h"
-#include "Cluster/DisplayClusterClusterEvent.h"
-#include "Cluster/IDisplayClusterClusterManager.h"
-#include "Components/StaticMeshComponent.h"
-#include "Engine/CollisionProfile.h"
-#include "Logging/StructuredLog.h"
-#include "Materials/MaterialInstanceDynamic.h"
-#include "Pawn/RWTHVRPawn.h"
-#include "Utility/RWTHVRUtilities.h"
-
-
-DEFINE_LOG_CATEGORY(LogCAVEOverlay);
-
-// Helper function to check if a string is contained within an array of strings, ignoring case.
-bool ContainsFString(const TArray<FString>& Array, const FString& Entry)
-{
-	for (FString Current_Entry : Array)
-	{
-		if (Current_Entry.Equals(Entry, ESearchCase::IgnoreCase))
-			return true;
-	}
-	return false;
-}
-
-UStaticMeshComponent* ACAVEOverlayController::CreateMeshComponent(const FName& Name, USceneComponent* Parent)
-{
-	UStaticMeshComponent* Result = CreateDefaultSubobject<UStaticMeshComponent>(Name);
-	Result->SetupAttachment(Parent);
-	Result->SetVisibility(false);
-	Result->SetCollisionProfileName(UCollisionProfile::NoCollision_ProfileName);
-	return Result;
-}
-
-// Sets default values
-ACAVEOverlayController::ACAVEOverlayController()
-{
-	// Set this actor to call Tick() every frame.
-	PrimaryActorTick.bCanEverTick = true;
-	bAllowTickBeforeBeginPlay = false;
-
-	// Creation of sub-components
-	Root = CreateDefaultSubobject<USceneComponent>("DefaultSceneRoot");
-	SetRootComponent(Root);
-
-	Tape = CreateMeshComponent("Tape", Root);
-	SignRightHand = CreateMeshComponent("SignRightHand", Root);
-	SignLeftHand = CreateMeshComponent("SignLeftHand", Root);
-}
-
-void ACAVEOverlayController::CycleDoorType()
-{
-	DoorCurrentMode = static_cast<EDoorMode>((DoorCurrentMode + 1) % DOOR_NUM_MODES);
-
-	// Send out a cluster event to the whole cluster that the door mode has been changed
-	if (auto* const Manager = IDisplayCluster::Get().GetClusterMgr())
-	{
-		FDisplayClusterClusterEventJson cluster_event;
-		cluster_event.Name = "CAVEOverlay Change Door to " + DoorModeNames[DoorCurrentMode];
-		cluster_event.Type = "DoorChange";
-		cluster_event.Category = "CAVEOverlay";
-		cluster_event.Parameters.Add("NewDoorState", FString::FromInt(DoorCurrentMode));
-		Manager->EmitClusterEventJson(cluster_event, true);
-	}
-}
-
-void ACAVEOverlayController::HandleClusterEvent(const FDisplayClusterClusterEventJson& Event)
-{
-	if (Event.Category.Equals("CAVEOverlay") && Event.Type.Equals("DoorChange") &&
-		Event.Parameters.Contains("NewDoorState"))
-	{
-		SetDoorMode(static_cast<EDoorMode>(FCString::Atoi(*Event.Parameters["NewDoorState"])));
-	}
-}
-
-void ACAVEOverlayController::SetDoorMode(const EDoorMode NewMode)
-{
-	DoorCurrentMode = NewMode;
-	switch (DoorCurrentMode)
-	{
-	case EDoorMode::DOOR_DEBUG:
-	case EDoorMode::DOOR_PARTIALLY_OPEN:
-		DoorCurrentOpeningWidthAbsolute = DoorOpeningWidthAbsolute;
-		if (ScreenType == SCREEN_DOOR)
-			Overlay->BlackBox->SetRenderScale(FVector2D(0, 1));
-		if (ScreenType == SCREEN_DOOR_PARTIAL)
-			Overlay->BlackBox->SetRenderScale(FVector2D(DoorOpeningWidthRelative, 1));
-		if (ScreenType == SCREEN_PRIMARY)
-			Overlay->BlackBox->SetRenderScale(FVector2D(0, 1));
-
-		Overlay->BlackBox->SetVisibility(ESlateVisibility::Visible);
-		break;
-	case EDoorMode::DOOR_OPEN:
-		DoorCurrentOpeningWidthAbsolute = WallDistance * 2;
-		if (ScreenType == SCREEN_DOOR)
-			Overlay->BlackBox->SetRenderScale(FVector2D(1, 1));
-		if (ScreenType == SCREEN_DOOR_PARTIAL)
-			Overlay->BlackBox->SetRenderScale(FVector2D(1, 1));
-		if (ScreenType == SCREEN_PRIMARY)
-			Overlay->BlackBox->SetRenderScale(FVector2D(0, 1));
-
-		Overlay->BlackBox->SetVisibility(ESlateVisibility::Visible);
-		break;
-	case EDoorMode::DOOR_CLOSED:
-		DoorCurrentOpeningWidthAbsolute = 0;
-		if (ScreenType == SCREEN_DOOR)
-			Overlay->BlackBox->SetRenderScale(FVector2D(0, 1));
-		if (ScreenType == SCREEN_DOOR_PARTIAL)
-			Overlay->BlackBox->SetRenderScale(FVector2D(0, 1));
-		if (ScreenType == SCREEN_PRIMARY)
-			Overlay->BlackBox->SetRenderScale(FVector2D(0, 1));
-
-		Overlay->BlackBox->SetVisibility(ESlateVisibility::Hidden);
-		break;
-	default:;
-	}
-
-	// On the secondary nodes that are not the door, hide the overlay completely
-	// It might make more sense to just not add it there...
-	if (ScreenType == SCREEN_NORMAL)
-		Overlay->BlackBox->SetRenderScale(FVector2D(0, 1));
-
-	UE_LOGFMT(LogCAVEOverlay, Log, "Switched door state to {State}. New opening width is {Width}.",
-			  *DoorModeNames[DoorCurrentMode], DoorCurrentOpeningWidthAbsolute);
-
-	// On the primary node, show which door mode is currently active.
-	if (ScreenType == SCREEN_PRIMARY)
-	{
-		Overlay->CornerText->SetText(FText::FromString(DoorModeNames[DoorCurrentMode]));
-	}
-}
-
-// Called when the game starts or when spawned
-void ACAVEOverlayController::BeginPlay()
-{
-	Super::BeginPlay();
-
-	// Don't do anything if we're a dedicated server. We shouldn't even exist there.
-	if (GetNetMode() == NM_DedicatedServer)
-		return;
-
-	// Currently, there is no support for multi-user systems in general, as we only depend on the local pawn.
-	// In a MU setting, the relevant pawn isn't our local one, but the primary node's pawn.
-	if (GetNetMode() != NM_Standalone)
-		return;
-
-	// This should return the respective client's local playercontroller or, if we're a listen server, our own PC.
-	auto* PC = GetWorld() ? GetWorld()->GetFirstPlayerController() : nullptr;
-
-	// it can happen that the PC is valid, but we have no player attached to it yet.
-	// Check for this - however, we should work around it by somehow getting notified when that happens.
-	// Not sure which place would be best...
-	const bool bValidPC = PC && PC->GetLocalPlayer();
-
-	if (!bValidPC || !URWTHVRUtilities::IsRoomMountedMode())
-		return;
-
-	// Input config
-	if (URWTHVRUtilities::IsPrimaryNode())
-	{
-		if (CycleDoorTypeInputAction == nullptr)
-		{
-			UE_LOGFMT(LogCAVEOverlay, Error, "Input action and mapping not set in CaveOverlayController!");
-			return;
-		}
-
-		UEnhancedInputComponent* Input = Cast<UEnhancedInputComponent>(PC->InputComponent);
-		Input->BindAction(CycleDoorTypeInputAction, ETriggerEvent::Triggered, this,
-						  &ACAVEOverlayController::CycleDoorType);
-	}
-
-	// Bind the cluster events that manage the door state.
-	IDisplayClusterClusterManager* ClusterManager = IDisplayCluster::Get().GetClusterMgr();
-	if (ClusterManager && !ClusterEventListenerDelegate.IsBound())
-	{
-		ClusterEventListenerDelegate =
-			FOnClusterEventJsonListener::CreateUObject(this, &ACAVEOverlayController::HandleClusterEvent);
-		ClusterManager->AddClusterEventJsonListener(ClusterEventListenerDelegate);
-	}
-
-	// Determine the screen-type for later usage
-	if (IDisplayCluster::Get().GetClusterMgr()->GetNodeId().Equals(ScreenMain, ESearchCase::IgnoreCase))
-	{
-		ScreenType = SCREEN_PRIMARY;
-	}
-	else if (ContainsFString(ScreensDoor, IDisplayCluster::Get().GetClusterMgr()->GetNodeId()))
-	{
-		ScreenType = SCREEN_DOOR;
-	}
-	else if (ContainsFString(ScreensDoorPartial, IDisplayCluster::Get().GetClusterMgr()->GetNodeId()))
-	{
-		ScreenType = SCREEN_DOOR_PARTIAL;
-	}
-	else
-	{
-		ScreenType = SCREEN_NORMAL;
-	}
-
-	// Create and add widget to local playercontroller.
-	if (!OverlayClass)
-	{
-		UE_LOGFMT(LogCAVEOverlay, Error, "OverlayClass not set in CaveOverlayController!");
-		return;
-	}
-
-	Overlay = CreateWidget<UDoorOverlayData>(PC, OverlayClass);
-	Overlay->AddToViewport(0);
-
-	// Set the default door mode (partially open)
-	SetDoorMode(DoorCurrentMode);
-
-	// Set Text to "" until someone presses the key for the first time
-	Overlay->CornerText->SetText(FText::FromString(""));
-
-	// Get the pawn so we can have access to head and hand positions
-	VRPawn = Cast<ARWTHVRPawn>(PC->GetPawnOrSpectator());
-	if (VRPawn)
-	{
-		// we're good to go!
-		bInitialized = true;
-	}
-	else
-	{
-		UE_LOGFMT(LogCAVEOverlay, Error, "No VirtualRealityPawn found which we could attach to!");
-	}
-
-	// Create dynamic materials at runtime
-	TapeMaterialDynamic = Tape->CreateDynamicMaterialInstance(0);
-	RightSignMaterialDynamic = SignRightHand->CreateDynamicMaterialInstance(0);
-	LeftSignMaterialDynamic = SignLeftHand->CreateDynamicMaterialInstance(0);
-
-	UE_LOGFMT(LogCAVEOverlay, Display, "CaveOverlay Initialization was successfull.");
-}
-
-void ACAVEOverlayController::EndPlay(const EEndPlayReason::Type EndPlayReason)
-{
-	IDisplayClusterClusterManager* ClusterManager = IDisplayCluster::Get().GetClusterMgr();
-	if (ClusterManager && ClusterEventListenerDelegate.IsBound())
-	{
-		ClusterManager->RemoveClusterEventJsonListener(ClusterEventListenerDelegate);
-	}
-
-	Super::EndPlay(EndPlayReason);
-}
-
-double ACAVEOverlayController::CalculateOpacityFromPosition(const FVector& Position) const
-{
-	// Calculate opacity value depending on how far we are from the walls. Further away == lower opacity,
-	// fully opaque when WallFadeDistance away from the wall. Could just use a lerp here..
-	return FMath::Max(
-		FMath::Clamp((FMath::Abs(Position.X) - (WallDistance - WallCloseDistance)) / WallFadeDistance, 0.0, 1.0),
-		FMath::Clamp((FMath::Abs(Position.Y) - (WallDistance - WallCloseDistance)) / WallFadeDistance, 0.0, 1.0));
-}
-
-bool ACAVEOverlayController::PositionInDoorOpening(const FVector& Position) const
-{
-	// The position of the corner with 10cm of buffer. In negative direction because the door is in negative direction
-	// of the cave
-	const float CornerValue = -(WallDistance + 10);
-
-	// Check whether our X position is within the door zone. This zone starts 10cm further away from the wall
-	// than the WallCloseDistance, and ends 10cm outside of the wall (door). As the door is in negative X direction,
-	// the signs need to be negated.
-	const bool bXWithinDoor =
-		FMath::IsWithinInclusive(Position.X, CornerValue, -(WallDistance - WallCloseDistance - 10));
-
-	// Checks whether our Y position is between the lower corner with some overlap and
-	// the door corner (CornerValue + DoorCurrentOpeningWidthAbsolute)
-	const bool bYWithinDoor =
-		FMath::IsWithinInclusive(Position.Y, CornerValue, CornerValue + DoorCurrentOpeningWidthAbsolute);
-	return bXWithinDoor && bYWithinDoor;
-}
-
-void ACAVEOverlayController::SetSignsForHand(UStaticMeshComponent* Sign, const FVector& HandPosition,
-											 UMaterialInstanceDynamic* HandMaterial) const
-{
-	const bool bHandIsCloseToWall =
-		FMath::IsWithinInclusive(HandPosition.GetAbsMax(), WallDistance - WallCloseDistance, WallDistance);
-	if (bHandIsCloseToWall && !PositionInDoorOpening(HandPosition))
-	{
-		Sign->SetVisibility(true);
-		HandMaterial->SetScalarParameterValue("SignOpacity", CalculateOpacityFromPosition(HandPosition));
-
-		// Which wall are we closest to? This is the wall we project the sign onto
-		const bool bXWallCloser = FMath::Abs(HandPosition.X) > FMath::Abs(HandPosition.Y);
-
-		// Set the position towards the closest wall to the wall itself, keep the other positions
-		const double X = bXWallCloser ? FMath::Sign(HandPosition.X) * WallDistance : HandPosition.X;
-		const double Y = bXWallCloser ? HandPosition.Y : FMath::Sign(HandPosition.Y) * WallDistance;
-		const double Z = HandPosition.Z;
-
-		// Rotate the sign by 90° if we're on a side wall
-		const auto Rot = bXWallCloser ? FRotator(0, 0, 0) : FRotator(0, 90, 0);
-		const auto Pos = FVector(X, Y, Z);
-		Sign->SetRelativeLocationAndRotation(Pos, Rot);
-	}
-	else
-	{
-		Sign->SetVisibility(false);
-	}
-}
-
-void ACAVEOverlayController::Tick(float DeltaTime)
-{
-	Super::Tick(DeltaTime);
-
-	// If we're not yet initialized, do nothing. This shouldn't really happen as we only spawn on the cave anyway
-	if (!bInitialized)
-	{
-		return;
-	}
-
-	// Head/Tape Logic
-	const FVector HeadPosition = VRPawn->HeadCameraComponent->GetRelativeTransform().GetLocation();
-	const bool bHeadIsCloseToWall =
-		FMath::IsWithinInclusive(HeadPosition.GetAbsMax(), WallDistance - WallCloseDistance, WallDistance);
-
-	// Only show the tape when close to a wall and not within the door opening
-	if (bHeadIsCloseToWall && !PositionInDoorOpening(HeadPosition))
-	{
-		Tape->SetVisibility(true);
-
-		// Offset the tape in z direction to always be at head height
-		Tape->SetRelativeLocation(HeadPosition * FVector(0, 0, 1));
-
-		TapeMaterialDynamic->SetScalarParameterValue("BarrierOpacity", CalculateOpacityFromPosition(HeadPosition));
-
-		if (FMath::IsWithin(FVector2D(HeadPosition).GetAbsMax(), WallDistance - WallWarningDistance, WallDistance))
-		{
-			// in warning distance == red tape
-			TapeMaterialDynamic->SetVectorParameterValue("StripeColor", FVector(1, 0, 0));
-		}
-		else
-		{
-			// otherwise we're just yellow
-			TapeMaterialDynamic->SetVectorParameterValue("StripeColor", FVector(1, 1, 0));
-		}
-	}
-	else
-	{
-		Tape->SetVisibility(false);
-	}
-
-	// Hand Logic
-	const FVector RightPosition = VRPawn->RightHand->GetRelativeTransform().GetLocation();
-	const FVector LeftPosition = VRPawn->LeftHand->GetRelativeTransform().GetLocation();
-
-	// Set the position rotation, opacity, visibility of the hand warning signs.
-	SetSignsForHand(SignRightHand, RightPosition, RightSignMaterialDynamic);
-	SetSignsForHand(SignLeftHand, LeftPosition, LeftSignMaterialDynamic);
-}
diff --git a/Source/RWTHVRCluster/Private/CaveSetup.cpp b/Source/RWTHVRCluster/Private/CaveSetup.cpp
deleted file mode 100644
index c39e47d4997863ee26b9fe5065c327efc6aa669f..0000000000000000000000000000000000000000
--- a/Source/RWTHVRCluster/Private/CaveSetup.cpp
+++ /dev/null
@@ -1,54 +0,0 @@
-// Fill out your copyright notice in the Description page of Project Settings.
-
-
-#include "CaveSetup.h"
-
-#include "Logging/StructuredLog.h"
-#include "Utility/RWTHVRUtilities.h"
-
-
-// Sets default values
-ACaveSetup::ACaveSetup()
-{
-	PrimaryActorTick.bCanEverTick = false;
-	SetActorEnableCollision(false);
-
-	// Actor needs to replicate, as it is attached to the pawn on the server.
-	bReplicates = true;
-}
-
-// Called when the game starts or when spawned
-void ACaveSetup::BeginPlay()
-{
-	Super::BeginPlay();
-
-	if (!URWTHVRUtilities::IsRoomMountedMode())
-	{
-		return;
-	}
-
-	// Spawn all actors that are set in the blueprint asset.
-	for (const auto ActorClass : ActorsToSpawnOnCave)
-	{
-		if (const auto World = GetWorld())
-		{
-			const auto Actor = World->SpawnActor(ActorClass);
-			Actor->AttachToActor(this, FAttachmentTransformRules::SnapToTargetNotIncludingScale);
-			UE_LOGFMT(LogTemp, Display, "CaveSetup: Spawned Actor {Actor} on the Cave and attached it.",
-					  Actor->GetName());
-		}
-	}
-
-	// Apply the DTrack LiveLink Preset. Only do this if we are the primaryNode
-
-	if (URWTHVRUtilities::IsPrimaryNode())
-	{
-		if (LiveLinkPresetToApplyOnCave && LiveLinkPresetToApplyOnCave->IsValidLowLevelFast())
-		{
-			LiveLinkPresetToApplyOnCave->ApplyToClientLatent();
-
-			UE_LOGFMT(LogTemp, Display, "CaveSetup: Applied LiveLinkPreset {Preset} to Client.",
-					  LiveLinkPresetToApplyOnCave->GetName());
-		}
-	}
-}
diff --git a/Source/RWTHVRCluster/Private/ClusterConsole/ClusterConsole.cpp b/Source/RWTHVRCluster/Private/ClusterConsole/ClusterConsole.cpp
deleted file mode 100644
index a0a7c49523e7191163cb53a5c290f9459c73f3f1..0000000000000000000000000000000000000000
--- a/Source/RWTHVRCluster/Private/ClusterConsole/ClusterConsole.cpp
+++ /dev/null
@@ -1,49 +0,0 @@
-#include "ClusterConsole/ClusterConsole.h"
-
-#include "IDisplayCluster.h"
-#include "Cluster/DisplayClusterClusterEvent.h"
-
-void FClusterConsole::Register()
-{
-	/* Registering console command */
-	ClusterConsoleCommand = IConsoleManager::Get().RegisterConsoleCommand(
-		TEXT("ClusterExecute"),
-		TEXT("<Your Command> - Execute commands on every node of the nDisplay cluster by prepending ClusterExecute"),
-		FConsoleCommandWithArgsDelegate::CreateLambda(
-			[](const TArray<FString>& Args)
-			{
-				if (IDisplayCluster::Get().GetClusterMgr() == nullptr || Args.Num() == 0)
-					return;
-
-				/* Emitting cluster event */
-				FDisplayClusterClusterEventJson ClusterEvent;
-				ClusterEvent.Name = "ClusterExecute " + Args[0];
-				ClusterEvent.Type = Args[0];
-				ClusterEvent.Category = "NDisplayClusterExecute";
-				ClusterEvent.Parameters.Add("Command", FString::Join(Args, TEXT(" ")));
-
-				IDisplayCluster::Get().GetClusterMgr()->EmitClusterEventJson(ClusterEvent, false);
-			}));
-
-	/* Register cluster event handling */
-	const IDisplayCluster* DisplayCluster = FModuleManager::LoadModulePtr<IDisplayCluster>(IDisplayCluster::ModuleName);
-	if (DisplayCluster && !ClusterEventListenerDelegate.IsBound())
-	{
-		ClusterEventListenerDelegate = FOnClusterEventJsonListener::CreateLambda(
-			[](const FDisplayClusterClusterEventJson& Event)
-			{
-				/* Actual handling */
-				if (Event.Category.Equals("NDisplayClusterExecute") && Event.Parameters.Contains("Command") && GEngine)
-				{
-					GEngine->Exec(GEngine->GetCurrentPlayWorld(), *Event.Parameters["Command"]);
-				}
-			});
-		DisplayCluster->GetClusterMgr()->AddClusterEventJsonListener(ClusterEventListenerDelegate);
-	}
-}
-
-void FClusterConsole::Unregister() const
-{
-	IConsoleManager::Get().UnregisterConsoleObject(ClusterConsoleCommand);
-	IDisplayCluster::Get().GetClusterMgr()->RemoveClusterEventJsonListener(ClusterEventListenerDelegate);
-}
diff --git a/Source/RWTHVRCluster/Private/RWTHVRCluster.cpp b/Source/RWTHVRCluster/Private/RWTHVRCluster.cpp
deleted file mode 100644
index 3f0955de6db6984ba796eb5c6ae793141456c25e..0000000000000000000000000000000000000000
--- a/Source/RWTHVRCluster/Private/RWTHVRCluster.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
-#include "RWTHVRCluster.h"
-
-#define LOCTEXT_NAMESPACE "FRWTHVRClusterModule"
-
-void FRWTHVRClusterModule::StartupModule() { ClusterConsole.Register(); }
-
-void FRWTHVRClusterModule::ShutdownModule() { ClusterConsole.Unregister(); }
-
-#undef LOCTEXT_NAMESPACE
-
-IMPLEMENT_MODULE(FRWTHVRClusterModule, RWTHVRCluster)
diff --git a/Source/RWTHVRCluster/Public/CAVEOverlay/CAVEOverlayController.h b/Source/RWTHVRCluster/Public/CAVEOverlay/CAVEOverlayController.h
deleted file mode 100644
index 148897a8713c726bc9583de176cf04040b657074..0000000000000000000000000000000000000000
--- a/Source/RWTHVRCluster/Public/CAVEOverlay/CAVEOverlayController.h
+++ /dev/null
@@ -1,143 +0,0 @@
-#pragma once
-
-#include "CoreMinimal.h"
-#include "GameFramework/Actor.h"
-#include "CAVEOverlay/DoorOverlayData.h"
-#include "Cluster/IDisplayClusterClusterManager.h"
-#include "Pawn/RWTHVRPawn.h"
-#include "CAVEOverlayController.generated.h"
-
-DECLARE_LOG_CATEGORY_EXTERN(LogCAVEOverlay, Log, All);
-
-/**
- * Actor which controls the cave overlay. The overlay displays a warning tape around the cave
- * when the user moves their head too close to the wall, and a warning sign when the hands are
- * too close.
- */
-UCLASS()
-class RWTHVRCLUSTER_API ACAVEOverlayController : public AActor
-{
-	GENERATED_BODY()
-
-public:
-	ACAVEOverlayController();
-
-protected:
-	virtual void BeginPlay() override;
-	virtual void EndPlay(const EEndPlayReason::Type EndPlayReason) override;
-
-private:
-	// Types of cave screens defined in the cluster config.
-	enum EScreen_Type
-	{
-		// the primary node screen
-		SCREEN_PRIMARY,
-		// any secondary node screen
-		SCREEN_NORMAL,
-		// the screens that cover the partially opened door
-		SCREEN_DOOR_PARTIAL,
-		// additional screens that cover the door
-		SCREEN_DOOR
-	};
-
-	// which screen type this node is running on
-	EScreen_Type ScreenType = SCREEN_NORMAL;
-
-	// which additional node names define the screens that cover the door
-	const TArray<FString> ScreensDoor = {"node_bul_left_eye", "node_bul_right_eye", "node_bll_left_eye",
-										 "node_bll_right_eye"};
-
-	// which node names define the screens that cover the partial door
-	const TArray<FString> ScreensDoorPartial = {"node_bur_left_eye", "node_bur_right_eye", "node_blr_left_eye",
-												"node_blr_right_eye"};
-
-	const FString ScreenMain = "node_main";
-
-	// Door Mode
-	enum EDoorMode
-	{
-		DOOR_PARTIALLY_OPEN = 0,
-		DOOR_OPEN = 1,
-		DOOR_CLOSED = 2,
-		DOOR_DEBUG = 3,
-		DOOR_NUM_MODES = 4
-	};
-
-	const FString DoorModeNames[DOOR_NUM_MODES] = {"Partially Open", "Open", "Closed", "Debug"};
-	EDoorMode DoorCurrentMode = DOOR_PARTIALLY_OPEN;
-	const float DoorOpeningWidthRelative = 0.522; //%, used for the overlay width on the screen
-	const float DoorOpeningWidthAbsolute = 165; // cm, used for the non tape part at the door
-	const float WallDistance = 262.5; // cm, distance from center to a wall, *2 = wall width
-	const float WallCloseDistance = 75; // cm, the distance considered to be too close to the walls
-	const float WallFadeDistance = 35; // cm, the distance over which the tape is faded
-	const float WallWarningDistance = 40; // cm, distance on which the tape turns red, measured from wall
-	float DoorCurrentOpeningWidthAbsolute = 0;
-
-	// Helper function to create a mesh component in the constructor
-	UStaticMeshComponent* CreateMeshComponent(const FName& Name, USceneComponent* Parent);
-
-	// Calculates opacity value used for the dynamic materials of the tape and sign. The closer the more opaque.
-	double CalculateOpacityFromPosition(const FVector& Position) const;
-
-	// Check whether the given position is within the door area of the (partially) open door.
-	bool PositionInDoorOpening(const FVector& Position) const;
-
-	// Sets the position, orientation and opacity/visibility of the Sign according to the HandPosition.
-	void SetSignsForHand(UStaticMeshComponent* Sign, const FVector& HandPosition,
-						 UMaterialInstanceDynamic* HandMaterial) const;
-
-	// Only calculate positions and material values when we're fully initialized.
-	bool bInitialized = false;
-
-	// Reference to the currently active pawn that we're tracking positions of.
-	UPROPERTY()
-	ARWTHVRPawn* VRPawn;
-
-	// Cluster Events
-	FOnClusterEventJsonListener ClusterEventListenerDelegate;
-	void HandleClusterEvent(const FDisplayClusterClusterEventJson& Event);
-
-public:
-	virtual void Tick(float DeltaTime) override;
-
-	// Change door mode manually between open, partially open and closed.
-	void CycleDoorType();
-	void SetDoorMode(EDoorMode M);
-
-	// Root component
-	UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "CAVEOverlay", meta = (AllowPrivateAccess = "true"))
-	USceneComponent* Root;
-
-	// Tape Static Mesh component. Reference to static mesh needs to be set in the corresponding BP.
-	UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "CAVEOverlay", meta = (AllowPrivateAccess = "true"))
-	UStaticMeshComponent* Tape;
-
-	// Right Hand Sign Static Mesh component. Reference to static mesh needs to be set in the corresponding BP.
-	UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "CAVEOverlay", meta = (AllowPrivateAccess = "true"))
-	UStaticMeshComponent* SignRightHand;
-
-	// Left Hand Sign Static Mesh component. Reference to static mesh needs to be set in the corresponding BP.
-	UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "CAVEOverlay", meta = (AllowPrivateAccess = "true"))
-	UStaticMeshComponent* SignLeftHand;
-
-	// UI Overlay
-	UPROPERTY(BlueprintReadOnly, EditAnywhere, Category = "CAVEOverlay")
-	TSubclassOf<UDoorOverlayData> OverlayClass;
-
-	// UI Overlay
-	UPROPERTY(BlueprintReadOnly, EditAnywhere, Category = "CAVEOverlay")
-	UInputAction* CycleDoorTypeInputAction;
-
-	UPROPERTY()
-	UDoorOverlayData* Overlay;
-
-	// Dynamic Materials to control opacity
-	UPROPERTY()
-	UMaterialInstanceDynamic* TapeMaterialDynamic;
-
-	UPROPERTY()
-	UMaterialInstanceDynamic* RightSignMaterialDynamic;
-
-	UPROPERTY()
-	UMaterialInstanceDynamic* LeftSignMaterialDynamic;
-};
diff --git a/Source/RWTHVRCluster/Public/CAVEOverlay/CAVEOverlaySettings.h b/Source/RWTHVRCluster/Public/CAVEOverlay/CAVEOverlaySettings.h
deleted file mode 100644
index eee4b554ffa439a6d1f743144fa44689de5193d7..0000000000000000000000000000000000000000
--- a/Source/RWTHVRCluster/Public/CAVEOverlay/CAVEOverlaySettings.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#pragma once
-#include "CoreMinimal.h"
-#include "Engine/DeveloperSettings.h"
-#include "CAVEOverlaySettings.generated.h"
-
-UENUM(BlueprintType)
-enum DefaultActivationType
-{
-	DefaultActivationType_OFF UMETA(DisplayName = "Off by default"),
-	DefaultActivationType_ON UMETA(DisplayName = "On by default")
-};
-
-UCLASS(config = Game, defaultconfig, meta = (DisplayName = "CAVE Overlay"))
-class RWTHVRCLUSTER_API UCAVEOverlaySettings : public UDeveloperSettings
-{
-	GENERATED_BODY()
-
-public:
-	UPROPERTY(EditAnywhere, config, Category = "General", meta = (DisplayName = "Default Activation Type"))
-	TEnumAsByte<DefaultActivationType> DefaultActivationType = DefaultActivationType_ON;
-
-	UPROPERTY(EditAnywhere, config, Category = Maps, meta = (AllowedClasses = "/Script/Engine.World"))
-	TArray<FSoftObjectPath> ExcludedMaps;
-};
diff --git a/Source/RWTHVRCluster/Public/CAVEOverlay/DoorOverlayData.h b/Source/RWTHVRCluster/Public/CAVEOverlay/DoorOverlayData.h
deleted file mode 100644
index b4a0fada65f6f01d398e73a33de60b4fec4dc307..0000000000000000000000000000000000000000
--- a/Source/RWTHVRCluster/Public/CAVEOverlay/DoorOverlayData.h
+++ /dev/null
@@ -1,27 +0,0 @@
-// Fill out your copyright notice in the Description page of Project Settings.
-
-#pragma once
-
-#include "CoreMinimal.h"
-#include "Blueprint/UserWidget.h"
-#include "Components/TextBlock.h"
-#include "Components/Border.h"
-#include "DoorOverlayData.generated.h"
-
-/**
- * Used as a parent-class in the overlay widget. Like this we can access the UMG properties in C++
- */
-UCLASS()
-class RWTHVRCLUSTER_API UDoorOverlayData : public UUserWidget
-{
-	GENERATED_BODY()
-
-public:
-	// These declarations are magically bound to the UMG blueprints elements,
-	// if they are named the same
-	UPROPERTY(BlueprintReadWrite, meta = (BindWidget))
-	UTextBlock* CornerText;
-
-	UPROPERTY(BlueprintReadWrite, meta = (BindWidget))
-	UBorder* BlackBox;
-};
diff --git a/Source/RWTHVRCluster/Public/CaveSetup.h b/Source/RWTHVRCluster/Public/CaveSetup.h
deleted file mode 100644
index 793d72c9ff419ce35aade0784a2d076cbff3a37e..0000000000000000000000000000000000000000
--- a/Source/RWTHVRCluster/Public/CaveSetup.h
+++ /dev/null
@@ -1,33 +0,0 @@
-// Fill out your copyright notice in the Description page of Project Settings.
-
-#pragma once
-
-#include "CoreMinimal.h"
-#include "LiveLinkPreset.h"
-#include "GameFramework/Actor.h"
-#include "CaveSetup.generated.h"
-
-/**
- * Simple Actor that needs to be added to the level which spawns Cave-related actors
- * such as the CaveOverlay.
- * It attaches itself to the Primary Node's Pawn and then replicates on the server.
- */
-
-UCLASS(hideCategories = (Rendering, Input, Actor, Base, Collision, Shape, Physics, HLOD))
-class RWTHVRCLUSTER_API ACaveSetup : public AActor
-{
-	GENERATED_BODY()
-
-public:
-	ACaveSetup();
-
-	UPROPERTY(EditAnywhere)
-	TArray<UClass*> ActorsToSpawnOnCave;
-
-	UPROPERTY(EditAnywhere, BlueprintReadWrite)
-	ULiveLinkPreset* LiveLinkPresetToApplyOnCave;
-
-protected:
-	// Called when the game starts or when spawned
-	virtual void BeginPlay() override;
-};
diff --git a/Source/RWTHVRCluster/Public/ClusterConsole/ClusterConsole.h b/Source/RWTHVRCluster/Public/ClusterConsole/ClusterConsole.h
deleted file mode 100644
index f09a948c64f5b82b1c50c62cfb5b4a7ca86118a8..0000000000000000000000000000000000000000
--- a/Source/RWTHVRCluster/Public/ClusterConsole/ClusterConsole.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#pragma once
-
-#include "CoreMinimal.h"
-#include "HAL/IConsoleManager.h"
-#include "Cluster/IDisplayClusterClusterManager.h"
-#include "ClusterConsole.generated.h"
-
-/**
- * The ClusterConsole provides the console command "ClusterExecute"
- * The code catches your command, broadcasts it to every nDisplay node and executes it everywhere
- *
- * This class has to be registered and unregistered. This can easily be done in every StartupModule/ShutdownModule
- * functions.
- */
-USTRUCT()
-struct RWTHVRCLUSTER_API FClusterConsole
-{
-	GENERATED_BODY()
-
-private:
-	/* Used for ClusterExecute console command */
-	IConsoleCommand* ClusterConsoleCommand = nullptr;
-	FOnClusterEventJsonListener ClusterEventListenerDelegate;
-
-public:
-	void Register();
-	void Unregister() const;
-};
diff --git a/Source/RWTHVRCluster/Public/Events/DisplayClusterEventParameterHelper.h b/Source/RWTHVRCluster/Public/Events/DisplayClusterEventParameterHelper.h
deleted file mode 100644
index 49500b767751ada9db7d935be95de34311540ad5..0000000000000000000000000000000000000000
--- a/Source/RWTHVRCluster/Public/Events/DisplayClusterEventParameterHelper.h
+++ /dev/null
@@ -1,56 +0,0 @@
-#pragma once
-
-#include "Serialization/MemoryReader.h"
-#include "Serialization/MemoryWriter.h"
-#include "type_traits"
-
-template <typename ParameterType, typename... RemainingParameterTypes>
-inline void SerializeParameters(FMemoryWriter* MemoryWriter, ParameterType&& Parameter,
-								RemainingParameterTypes&&... RemainingParameters)
-{
-	using NonConstType = typename std::remove_cv_t<typename TRemoveReference<ParameterType>::Type>;
-	// const_cast because the same operator (<<) is used for reading and writing
-	(*MemoryWriter) << const_cast<NonConstType&>(Parameter);
-	SerializeParameters(MemoryWriter, Forward<RemainingParameterTypes>(RemainingParameters)...);
-}
-
-inline void SerializeParameters(FMemoryWriter* MemoryWriter) {}
-
-// This is a wrapper function to recursively fill the argument tuple. This overload is only used if the index indicating
-// the currently handled attribute is less than the number of total attributes. I.e., if the attribute index is valid.
-template <int CurrentIndex, typename... ArgTypes>
-inline typename TEnableIf<(CurrentIndex < sizeof...(ArgTypes))>::Type
-FillArgumentTuple(FMemoryReader* MemoryReader, TTuple<ArgTypes...>* ArgumentTuple)
-{
-	// Read the "<<" as ">>" operator here. FArchive uses the same for both and decides based on an internal type on
-	// what to do. So this statement parses the bytes that were passed into reader and puts the parsed object into the
-	// tuple at index CurrentIndex.
-	(*MemoryReader) << ArgumentTuple->template Get<CurrentIndex>();
-
-	// Recursive call for the remaining attributes.
-	FillArgumentTuple<CurrentIndex + 1>(MemoryReader, Forward<TTuple<ArgTypes...>*>(ArgumentTuple));
-}
-
-// The overload that is called if we are "passed the end" of attributes.
-template <int CurrentIndex, typename... ArgTypes>
-inline typename TEnableIf<(CurrentIndex >= sizeof...(ArgTypes))>::Type
-FillArgumentTuple(FMemoryReader* MemoryReader, TTuple<ArgTypes...>* ArgumentTuple)
-{
-}
-
-template <typename RetType, typename... ArgTypes>
-inline RetType CallDelegateWithParameterMap(const TDelegate<RetType, ArgTypes...>& Delegate,
-											const TMap<FString, FString>& Parameters)
-{
-	// Create a tuple that holds all arguments. This assumes that all argument types are default constructible. However,
-	// all types that overload the FArchive "<<" operator probably are.
-	TTuple<typename std::remove_cv_t<typename TRemoveReference<ArgTypes>::Type>...> ArgumentTuple;
-
-	// This call will parse the string map and fill all values in the tuple appropriately.
-	FillArgumentTuple<0>(&ArgumentTuple, Parameters);
-
-	// The lambda function is only necessary because delegates do not overload the ()-operator but use the Execute()
-	// method instead. So, the lambda acts as a wrapper.
-	return ArgumentTuple.ApplyBefore([Delegate](ArgTypes&&... Arguments)
-									 { Delegate.Execute(Forward<ArgTypes>(Arguments)...); });
-}
diff --git a/Source/RWTHVRCluster/Public/Events/DisplayClusterEventWrapper.h b/Source/RWTHVRCluster/Public/Events/DisplayClusterEventWrapper.h
deleted file mode 100644
index e86fb150fc786d66af9b0a708d1135d246f226a3..0000000000000000000000000000000000000000
--- a/Source/RWTHVRCluster/Public/Events/DisplayClusterEventWrapper.h
+++ /dev/null
@@ -1,139 +0,0 @@
-#pragma once
-
-#include "IDisplayCluster.h"
-#include "Cluster/IDisplayClusterClusterManager.h"
-#include "Cluster/DisplayClusterClusterEvent.h"
-#include "DisplayClusterEventParameterHelper.h"
-#include "Templates/IsInvocable.h"
-
-static constexpr int32 CLUSTER_EVENT_WRAPPER_EVENT_ID = 1337420;
-
-template <typename MemberFunctionType, MemberFunctionType MemberFunction>
-class ClusterEventWrapperEvent;
-
-template <typename ObjectType, typename ReturnType, typename... ArgTypes,
-		  ReturnType (ObjectType::*MemberFunction)(ArgTypes...)>
-class ClusterEventWrapperEvent<ReturnType (ObjectType::*)(ArgTypes...), MemberFunction>
-{
-	static_assert(TIsDerivedFrom<ObjectType, UObject>::IsDerived, "Object needs to derive from UObject");
-
-public:
-	using MemberFunctionType = decltype(MemberFunction);
-
-	ClusterEventWrapperEvent(const TCHAR* MethodName) : MethodName{MethodName} {}
-
-	void Attach(ObjectType* NewObject)
-	{
-		checkf(Object == nullptr, TEXT("The event is already attached."));
-		Object = NewObject;
-		ObjectName = Object->GetFullName();
-
-		EDisplayClusterOperationMode OperationMode = IDisplayCluster::Get().GetOperationMode();
-		if (OperationMode == EDisplayClusterOperationMode::Cluster)
-		{
-			IDisplayClusterClusterManager* ClusterManager = IDisplayCluster::Get().GetClusterMgr();
-			check(ClusterManager != nullptr);
-
-			check(!ClusterEventListenerDelegate.IsBound());
-			ClusterEventListenerDelegate = FOnClusterEventBinaryListener::CreateLambda(
-				[this](const FDisplayClusterClusterEventBinary& Event)
-				{
-					if (Event.EventId != CLUSTER_EVENT_WRAPPER_EVENT_ID)
-					{
-						return;
-					}
-
-					FMemoryReader MemoryReader(Event.EventData);
-
-					FString EventObjectName;
-					// This reads the value!
-					MemoryReader << EventObjectName;
-					if (EventObjectName != ObjectName)
-					{
-						// Event does not belong to this object.
-						return;
-					}
-
-					FString EventMethodName;
-					// This reads the value!
-					MemoryReader << EventMethodName;
-					if (EventMethodName != MethodName)
-					{
-						// This event does not belong to this method.
-						return;
-					}
-
-					// Create a tuple that holds all arguments. This assumes that all
-					// argument types are default constructible. However, all
-					// types that overload the FArchive "<<" operator probably are.
-					TTuple<typename std::remove_cv_t<typename TRemoveReference<ArgTypes>::Type>...> ArgumentTuple;
-
-					// This call will deserialze the values and fill all values in the tuple appropriately.
-					FillArgumentTuple<0>(&MemoryReader, &ArgumentTuple);
-
-					ArgumentTuple.ApplyBefore([this](const ArgTypes&... Arguments)
-											  { (Object->*MemberFunction)(Forward<const ArgTypes&>(Arguments)...); });
-				});
-			ClusterManager->AddClusterEventBinaryListener(ClusterEventListenerDelegate);
-		}
-	}
-
-	void Detach()
-	{
-		checkf(Object != nullptr, TEXT("The event was never attached."));
-
-		EDisplayClusterOperationMode OperationMode = IDisplayCluster::Get().GetOperationMode();
-		if (OperationMode == EDisplayClusterOperationMode::Cluster)
-		{
-			IDisplayClusterClusterManager* ClusterManager = IDisplayCluster::Get().GetClusterMgr();
-			check(ClusterManager != nullptr);
-
-			// check(ClusterEventListenerDelegate.IsBound());
-			ClusterManager->RemoveClusterEventBinaryListener(ClusterEventListenerDelegate);
-		}
-	}
-
-	void Send(ArgTypes... Arguments)
-	{
-		checkf(Object != nullptr, TEXT("The event was not attached."));
-
-		EDisplayClusterOperationMode OperationMode = IDisplayCluster::Get().GetOperationMode();
-		if (OperationMode != EDisplayClusterOperationMode::Cluster)
-		{
-			// Cluster event can be bypassed and function directly called
-			(Object->*MemberFunction)(Forward<ArgTypes>(Arguments)...);
-		}
-		else
-		{
-			IDisplayClusterClusterManager* ClusterManager = IDisplayCluster::Get().GetClusterMgr();
-			check(ClusterManager != nullptr);
-
-			FDisplayClusterClusterEventBinary ClusterEvent;
-			ClusterEvent.EventId = CLUSTER_EVENT_WRAPPER_EVENT_ID;
-			ClusterEvent.bShouldDiscardOnRepeat = false;
-
-			FMemoryWriter MemoryWriter(ClusterEvent.EventData);
-			MemoryWriter << const_cast<FString&>(ObjectName);
-			MemoryWriter << const_cast<FString&>(MethodName);
-			SerializeParameters(&MemoryWriter, Forward<ArgTypes>(Arguments)...);
-
-			ClusterManager->EmitClusterEventBinary(ClusterEvent, true);
-		}
-	}
-
-private:
-	const FString MethodName;
-	FString ObjectName;
-	ObjectType* Object = nullptr;
-	FOnClusterEventBinaryListener ClusterEventListenerDelegate;
-};
-
-#define DCEW_STRINGIFY(x) #x
-#define DCEW_TOSTRING(x) DCEW_STRINGIFY(x)
-
-#define DECLARE_DISPLAY_CLUSTER_EVENT(OwningType, MethodIdentifier)                                                    \
-	ClusterEventWrapperEvent<decltype(&OwningType::MethodIdentifier), &OwningType::MethodIdentifier>                   \
-		MethodIdentifier##Event                                                                                        \
-	{                                                                                                                  \
-		TEXT(DCEW_TOSTRING(OwningType) DCEW_TOSTRING(MethodIdentifier))                                                \
-	}
diff --git a/Source/RWTHVRCluster/Public/RWTHVRCluster.h b/Source/RWTHVRCluster/Public/RWTHVRCluster.h
deleted file mode 100644
index 1c719c718aa503615557da6e7f713256a8232859..0000000000000000000000000000000000000000
--- a/Source/RWTHVRCluster/Public/RWTHVRCluster.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#pragma once
-
-#include "CoreMinimal.h"
-#include "Modules/ModuleManager.h"
-#include "ClusterConsole/ClusterConsole.h"
-
-class FRWTHVRClusterModule : public IModuleInterface
-{
-public:
-	virtual void StartupModule() override;
-	virtual void ShutdownModule() override;
-
-private:
-	FClusterConsole ClusterConsole;
-};
diff --git a/Source/RWTHVRCluster/RWTHVRCluster.Build.cs b/Source/RWTHVRCluster/RWTHVRCluster.Build.cs
deleted file mode 100644
index 6979cc65cea0cc0f7fca763bb7d7afa9c13f0577..0000000000000000000000000000000000000000
--- a/Source/RWTHVRCluster/RWTHVRCluster.Build.cs
+++ /dev/null
@@ -1,69 +0,0 @@
-using UnrealBuildTool;
-
-public class RWTHVRCluster : ModuleRules
-{
-	public RWTHVRCluster(ReadOnlyTargetRules Target) : base(Target)
-	{
-		PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;
-
-		PublicIncludePaths.AddRange(
-			new string[] { }
-		);
-
-		PrivateIncludePaths.AddRange(
-			new string[] { }
-		);
-
-		PublicDependencyModuleNames.AddRange(
-			new string[]
-			{
-				"Core",
-				"CoreUObject",
-				"Engine",
-				"DeveloperSettings",
-				"EnhancedInput",
-				"UMG",
-				"Slate",
-				"SlateCore",
-				"RWTHVRToolkit",
-				"LiveLink"
-			}
-		);
-
-		if (IsPluginEnabledForTarget("nDisplay", base.Target))
-		{
-			PublicDependencyModuleNames.AddRange(
-				new string[]
-				{
-					"DisplayCluster"
-				}
-			);
-		}
-
-		if (IsPluginEnabledForTarget("DTrackPlugin", base.Target))
-		{
-			PublicDependencyModuleNames.AddRange(
-				new string[]
-				{
-					"DTrackPlugin",
-					"DTrackInput"
-				}
-			);
-		}
-
-		PrivateDependencyModuleNames.AddRange(
-			new string[] { }
-		);
-
-		DynamicallyLoadedModuleNames.AddRange(
-			new string[] { }
-		);
-	}
-
-	private static bool IsPluginEnabledForTarget(string PluginName, ReadOnlyTargetRules Target)
-	{
-		var PL = Plugins.GetPlugin(PluginName);
-		return PL != null && Target.ProjectFile != null && Plugins.IsPluginEnabledForTarget(PL,
-			ProjectDescriptor.FromFile(Target.ProjectFile), Target.Platform, Target.Configuration, Target.Type);
-	}
-}
\ No newline at end of file
diff --git a/Source/RWTHVRToolkit/Private/Interaction/Interactables/IntenSelect/IntenSelectable.cpp b/Source/RWTHVRToolkit/Private/Interaction/Interactables/IntenSelect/IntenSelectable.cpp
index 5e3ae11cdd7f4b3689159e1f29660b7813f8f5a7..90a4e2956a3d06f1cb42d6219e4f7f1ff31ca050 100644
--- a/Source/RWTHVRToolkit/Private/Interaction/Interactables/IntenSelect/IntenSelectable.cpp
+++ b/Source/RWTHVRToolkit/Private/Interaction/Interactables/IntenSelect/IntenSelectable.cpp
@@ -4,8 +4,10 @@
 #include "Interaction/Interactables/IntenSelect/IntenSelectableScoring.h"
 #include "Interaction/Interactables/IntenSelect/IntenSelectableSinglePointScoring.h"
 #include "Kismet/KismetSystemLibrary.h"
+#include "Logging/StructuredLog.h"
 #include "Misc/MessageDialog.h"
 #include "Pawn/IntenSelectComponent.h"
+#include "Utility/RWTHVRUtilities.h"
 
 UIntenSelectable::UIntenSelectable() { PrimaryComponentTick.bCanEverTick = true; }
 
@@ -45,7 +47,8 @@ void UIntenSelectable::BeginPlay()
 	{
 		if (ScoringBehaviours.Num() == 0)
 		{
-			ShowErrorAndQuit(
+			UE_LOGFMT(
+				Toolkit, Error,
 				"Please assign the Scoring Behaviour manually when using more than one IntenSelectable Component!");
 		}
 	}
@@ -57,36 +60,36 @@ void UIntenSelectable::BeginPlay()
 
 void UIntenSelectable::HandleOnSelectStartEvents(const UIntenSelectComponent* IntenSelect, const FHitResult& HitResult)
 {
-	for (const UHoverBehaviour* b : OnSelectBehaviours)
+	for (const UHoverBehaviour* CurrentHoverBehaviour : OnHoverBehaviours)
 	{
-		b->OnHoverStartEvent.Broadcast(IntenSelect, HitResult);
+		CurrentHoverBehaviour->OnHoverStartEvent.Broadcast(IntenSelect, HitResult);
 	}
 }
 
 void UIntenSelectable::HandleOnSelectEndEvents(const UIntenSelectComponent* IntenSelect)
 {
-	for (const UHoverBehaviour* b : OnSelectBehaviours)
+	for (const UHoverBehaviour* CurrentHoverBehaviour : OnHoverBehaviours)
 	{
-		b->OnHoverEndEvent.Broadcast(IntenSelect);
+		CurrentHoverBehaviour->OnHoverEndEvent.Broadcast(IntenSelect);
 	}
 }
 
 void UIntenSelectable::HandleOnClickStartEvents(UIntenSelectComponent* IntenSelect)
 {
-	for (const UActionBehaviour* b : OnClickBehaviours)
+	for (const UActionBehaviour* CurrentActionBehaviour : OnActionBehaviours)
 	{
-		FInputActionValue v{};
-		const UInputAction* a{};
-		b->OnActionBeginEvent.Broadcast(IntenSelect, a, v);
+		FInputActionValue EmptyInputActionValue{};
+		const UInputAction* EmptyInputAction{};
+		CurrentActionBehaviour->OnActionBeginEvent.Broadcast(IntenSelect, EmptyInputAction, EmptyInputActionValue);
 	}
 }
 
 void UIntenSelectable::HandleOnClickEndEvents(UIntenSelectComponent* IntenSelect, FInputActionValue& InputValue)
 {
-	for (const UActionBehaviour* b : OnClickBehaviours)
+	for (const UActionBehaviour* CurrentActionBehaviour : OnActionBehaviours)
 	{
-		const UInputAction* a{};
-		b->OnActionEndEvent.Broadcast(IntenSelect, a, InputValue);
+		const UInputAction* EmptyInputActionValue{};
+		CurrentActionBehaviour->OnActionEndEvent.Broadcast(IntenSelect, EmptyInputActionValue, InputValue);
 	}
 }
 
@@ -115,23 +118,14 @@ void UIntenSelectable::InitDefaultBehaviourReferences()
 	}
 
 	// Selecting
-	TInlineComponentArray<UHoverBehaviour*> AttachedSelectionBehaviours;
-	GetOwner()->GetComponents(AttachedSelectionBehaviours, true);
+	TInlineComponentArray<UHoverBehaviour*> AttachedHoverBehaviours;
+	GetOwner()->GetComponents(AttachedHoverBehaviours, true);
 
-	this->OnSelectBehaviours = AttachedSelectionBehaviours;
+	OnHoverBehaviours = AttachedHoverBehaviours;
 
 	// Clicking
 	TInlineComponentArray<UActionBehaviour*> AttachedClickBehaviours;
 	GetOwner()->GetComponents(AttachedClickBehaviours, true);
 
-	this->OnClickBehaviours = AttachedClickBehaviours;
-}
-
-void UIntenSelectable::ShowErrorAndQuit(const FString& Message) const
-{
-	UE_LOG(LogTemp, Error, TEXT("%s"), *Message)
-#if WITH_EDITOR
-	FMessageDialog::Open(EAppMsgType::Ok, FText::FromString(FString("RUNTIME ERROR")));
-#endif
-	UKismetSystemLibrary::QuitGame(this, nullptr, EQuitPreference::Quit, false);
-}
+	OnActionBehaviours = AttachedClickBehaviours;
+}
\ No newline at end of file
diff --git a/Source/RWTHVRToolkit/Private/Interaction/Interactors/DirectInteractionComponent.cpp b/Source/RWTHVRToolkit/Private/Interaction/Interactors/DirectInteractionComponent.cpp
index c8cf9ce35e45d0bc107cd73da08333ef5ba5b2d9..7c81cb805f86e3d9a4de4bfa2c594ab02a683719 100644
--- a/Source/RWTHVRToolkit/Private/Interaction/Interactors/DirectInteractionComponent.cpp
+++ b/Source/RWTHVRToolkit/Private/Interaction/Interactors/DirectInteractionComponent.cpp
@@ -120,6 +120,7 @@ void UDirectInteractionComponent::OnBeginInteraction(const FInputActionValue& Va
 	}
 	else
 	{
+		CurrentlyInteractedComponents.Empty();
 		CurrentlyInteractedComponents.Reserve(CurrentlyInteractedComponents.Num() +
 											  CurrentInteractableComponentsInRange.Num());
 		for (UInteractableComponent* InteractableComp : CurrentInteractableComponentsInRange)
@@ -139,6 +140,7 @@ void UDirectInteractionComponent::OnEndInteraction(const FInputActionValue& Valu
 			Component->HandleOnActionEndEvents(this, InteractionInputAction, Value, EInteractorType::Direct);
 		}
 	}
+	CurrentlyInteractedComponents.Empty();
 }
 
 UInteractableComponent* UDirectInteractionComponent::SearchForInteractable(AActor* HitActor)
diff --git a/Source/RWTHVRToolkit/Private/Pawn/IntenSelectComponent.cpp b/Source/RWTHVRToolkit/Private/Pawn/IntenSelectComponent.cpp
index 644f30c91b22cad8ec4536347912b8791f0d4da8..385e2b2e4a8f1818446f7385cf68b2672f0f851e 100644
--- a/Source/RWTHVRToolkit/Private/Pawn/IntenSelectComponent.cpp
+++ b/Source/RWTHVRToolkit/Private/Pawn/IntenSelectComponent.cpp
@@ -85,31 +85,21 @@ void UIntenSelectComponent::BeginPlay()
 
 void UIntenSelectComponent::InitInputBindings()
 {
-	const APlayerController* PC = UGameplayStatics::GetPlayerController(GetWorld(), 0);
-
-	UEnhancedInputLocalPlayerSubsystem* Subsystem =
-		ULocalPlayer::GetSubsystem<UEnhancedInputLocalPlayerSubsystem>(PC->GetLocalPlayer());
-
-	UInputComponent* PlayerInputComponent = PC->InputComponent;
-	UEnhancedInputComponent* PEI = Cast<UEnhancedInputComponent>(PlayerInputComponent);
+	const APawn* Pawn = Cast<APawn>(GetOwner());
+	if (!Pawn)
+		return;
+	UEnhancedInputComponent* EI = Cast<UEnhancedInputComponent>(Pawn->InputComponent);
 
-	if (!PEI)
+	if (!EI)
 	{
 		const FString Message = "Could not get PlayerInputComponent for IntenSelect Input Assignment!";
-
-#if WITH_EDITOR
-		const FText Title = FText::FromString(FString("ERROR"));
-		FMessageDialog::Open(EAppMsgType::Ok, FText::FromString(Message), Title);
-#endif
-
 		UE_LOG(LogTemp, Error, TEXT("%s"), *Message)
-		UKismetSystemLibrary::QuitGame(this, nullptr, EQuitPreference::Quit, false);
 		return;
 	}
 
 	// Bind the actions
-	PEI->BindAction(InputClick, ETriggerEvent::Started, this, &UIntenSelectComponent::OnFireDown);
-	PEI->BindAction(InputClick, ETriggerEvent::Completed, this, &UIntenSelectComponent::OnFireUp);
+	EI->BindAction(InputClick, ETriggerEvent::Started, this, &UIntenSelectComponent::OnFireDown);
+	EI->BindAction(InputClick, ETriggerEvent::Completed, this, &UIntenSelectComponent::OnFireUp);
 }
 
 void UIntenSelectComponent::InitSplineComponent()
diff --git a/Source/RWTHVRToolkit/Private/Pawn/RWTHVRPawn.cpp b/Source/RWTHVRToolkit/Private/Pawn/RWTHVRPawn.cpp
index 56d56cf05728cc0ce2140f47d0b39a19e0dc665c..7c91f2f11bfac74e19b3637b7841979b8a6415e3 100644
--- a/Source/RWTHVRToolkit/Private/Pawn/RWTHVRPawn.cpp
+++ b/Source/RWTHVRToolkit/Private/Pawn/RWTHVRPawn.cpp
@@ -16,6 +16,10 @@
 #include "Roles/LiveLinkTransformTypes.h"
 #include "Utility/RWTHVRUtilities.h"
 
+#if PLATFORM_SUPPORTS_CLUSTER
+#include "Components/DisplayClusterSceneComponentSyncParent.h"
+#endif
+
 ARWTHVRPawn::ARWTHVRPawn(const FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer)
 {
 	BaseEyeHeight = 160.0f;
@@ -36,14 +40,21 @@ ARWTHVRPawn::ARWTHVRPawn(const FObjectInitializer& ObjectInitializer) : Super(Ob
 
 	LeftHand = CreateDefaultSubobject<UReplicatedMotionControllerComponent>(TEXT("Left Hand MCC"));
 	LeftHand->SetupAttachment(RootComponent);
+}
+void ARWTHVRPawn::BeginPlay()
+{
+	Super::BeginPlay();
 
+#if PLATFORM_SUPPORTS_CLUSTER
 	// Add an nDisplay Parent Sync Component. It syncs the parent's transform from master to clients.
 	// This is required because for collision based movement, it can happen that the physics engine
 	// for some reason acts different on the nodes, therefore leading to a potential desync when
 	// e.g. colliding with an object while moving.
-	SyncComponent =
-		CreateDefaultSubobject<UDisplayClusterSceneComponentSyncParent>(TEXT("Parent Display Cluster Sync Component"));
-	SyncComponent->SetupAttachment(RootComponent);
+
+	SyncComponent = Cast<USceneComponent>(AddComponentByClass(UDisplayClusterSceneComponentSyncParent::StaticClass(),
+															  false, FTransform::Identity, false));
+	AddInstanceComponent(SyncComponent);
+#endif
 }
 
 void ARWTHVRPawn::Tick(float DeltaSeconds)
@@ -68,6 +79,11 @@ void ARWTHVRPawn::NotifyControllerChanged()
 {
 	Super::NotifyControllerChanged();
 
+
+	UE_LOG(Toolkit, Display,
+		   TEXT("ARWTHVRPawn: Player Controller has changed, trying to change DCRA attachment if possible..."));
+
+
 	// Only do this for all local controlled pawns
 	if (IsLocallyControlled())
 	{
diff --git a/Source/RWTHVRToolkit/Private/Utility/RWTHVRUtilities.cpp b/Source/RWTHVRToolkit/Private/Utility/RWTHVRUtilities.cpp
index dda023adab52f2bf450b4851be0376a9e47db7cc..de278bc769f3fb0334456868fb549d632f882839 100644
--- a/Source/RWTHVRToolkit/Private/Utility/RWTHVRUtilities.cpp
+++ b/Source/RWTHVRToolkit/Private/Utility/RWTHVRUtilities.cpp
@@ -1,15 +1,5 @@
 #include "Utility/RWTHVRUtilities.h"
 
-#if PLATFORM_SUPPORTS_NDISPLAY
-#include "DisplayClusterConfigurationTypes.h"
-#include "DisplayClusterRootActor.h"
-#include "IDisplayCluster.h"
-#include "Cluster/IDisplayClusterClusterManager.h"
-#include "Components/DisplayClusterCameraComponent.h"
-#include "Config/IDisplayClusterConfigManager.h"
-#include "Game/IDisplayClusterGameManager.h"
-#endif
-
 #include "AudioDevice.h"
 #include "IHeadMountedDisplay.h"
 #include "IXRTrackingSystem.h"
@@ -17,22 +7,14 @@
 #include "Engine/LocalPlayer.h"
 #include "Kismet/GameplayStatics.h"
 
+#if PLATFORM_SUPPORTS_CLUSTER
+#include "Utility/RWTHVRClusterUtilities.h"
+#endif
 
-DEFINE_LOG_CATEGORY(Toolkit);
 
-bool URWTHVRUtilities::IsDesktopMode()
-{
-	return !IsRoomMountedMode() && !IsHeadMountedMode();
-}
+DEFINE_LOG_CATEGORY(Toolkit);
 
-bool URWTHVRUtilities::IsRoomMountedMode()
-{
-#if PLATFORM_SUPPORTS_NDISPLAY
-	return IDisplayCluster::Get().GetOperationMode() == EDisplayClusterOperationMode::Cluster;
-#else
-	return false;
-#endif
-}
+bool URWTHVRUtilities::IsDesktopMode() { return !IsRoomMountedMode() && !IsHeadMountedMode(); }
 
 bool URWTHVRUtilities::IsHeadMountedMode()
 {
@@ -41,65 +23,20 @@ bool URWTHVRUtilities::IsHeadMountedMode()
 	return FAudioDevice::CanUseVRAudioDevice();
 }
 
-bool URWTHVRUtilities::IsCave()
+bool URWTHVRUtilities::IsRoomMountedMode()
 {
-#if PLATFORM_SUPPORTS_NDISPLAY
-	if (!IsRoomMountedMode())
-		return false;
-
-	const UDisplayClusterConfigurationData* ClusterConfig = IDisplayCluster::Get().GetConfigMgr()->GetConfig();
-	return ClusterConfig->CustomParameters.Contains("Hardware_Platform")
-		&& ClusterConfig->CustomParameters.Find("Hardware_Platform")->Equals("aixcave", ESearchCase::IgnoreCase);
-#else
-	return false;
+#if PLATFORM_SUPPORTS_CLUSTER
+	return URWTHVRClusterUtilities::IsRoomMountedMode();
 #endif
-}
-
-bool URWTHVRUtilities::IsRolv()
-{
-#if PLATFORM_SUPPORTS_NDISPLAY
-	if (!IsRoomMountedMode())
-		return false;
-
-	const UDisplayClusterConfigurationData* ClusterConfig = IDisplayCluster::Get().GetConfigMgr()->GetConfig();
-	return ClusterConfig->CustomParameters.Contains("Hardware_Platform")
-		&& ClusterConfig->CustomParameters.Find("Hardware_Platform")->Equals("ROLV", ESearchCase::IgnoreCase);
-#else
 	return false;
-#endif
 }
 
-/* Return true on the Primary in cluster mode and in a normal desktop session. Otherwise false */
 bool URWTHVRUtilities::IsPrimaryNode()
 {
-#if PLATFORM_SUPPORTS_NDISPLAY
-	if (!IDisplayCluster::IsAvailable())
-	{
-		return true;
-	}
-	IDisplayClusterClusterManager* Manager = IDisplayCluster::Get().GetClusterMgr();
-	if (Manager == nullptr)
-	{
-		return true; // if we are not in cluster mode, we are always the primary node
-	}
-	return Manager->IsPrimary() || !Manager->IsSecondary();
-#else
-    return true;
-#endif
-}
-
-bool URWTHVRUtilities::IsSecondaryNode()
-{
-	return !IsPrimaryNode();
-}
-
-FString URWTHVRUtilities::GetNodeName()
-{
-#if PLATFORM_SUPPORTS_NDISPLAY
-	return IsRoomMountedMode() ? IDisplayCluster::Get().GetClusterMgr()->GetNodeId() : FString(TEXT("Localhost"));
-#else
-	return FString(TEXT("Localhost"));
+#if PLATFORM_SUPPORTS_CLUSTER
+	return URWTHVRClusterUtilities::IsPrimaryNode();
 #endif
+	return false;
 }
 
 float URWTHVRUtilities::GetEyeDistance()
@@ -108,71 +45,7 @@ float URWTHVRUtilities::GetEyeDistance()
 	{
 		return GEngine->XRSystem->GetHMDDevice()->GetInterpupillaryDistance();
 	}
-	else
-	{
-#if PLATFORM_SUPPORTS_NDISPLAY
-		const ADisplayClusterRootActor* RootActor = IDisplayCluster::Get().GetGameMgr()->GetRootActor();
-		return (RootActor) ? RootActor->GetDefaultCamera()->GetInterpupillaryDistance() : 0.0f;
-#else
-	    return 0.0f;
-#endif
-	}
-}
-
-EEyeStereoOffset URWTHVRUtilities::GetNodeEyeType()
-{
-#if PLATFORM_SUPPORTS_NDISPLAY
-	const ADisplayClusterRootActor* RootActor = IDisplayCluster::Get().GetGameMgr()->GetRootActor();
-	return static_cast<EEyeStereoOffset>((RootActor)
-		                                     ? RootActor->GetDefaultCamera()->GetStereoOffset()
-		                                     : EDisplayClusterEyeStereoOffset::None);
-#else
-	return EDisplayClusterEyeStereoOffset::None;
-#endif
-}
-
-USceneComponent* URWTHVRUtilities::GetClusterComponent(const FString& Name)
-{
-#if PLATFORM_SUPPORTS_NDISPLAY
-	const ADisplayClusterRootActor* RootActor = IDisplayCluster::Get().GetGameMgr()->GetRootActor();
-	return (RootActor) ? RootActor->GetComponentByName<USceneComponent>(Name) : nullptr;
-#else
-	return nullptr;
-#endif
-}
-
-USceneComponent* URWTHVRUtilities::GetNamedClusterComponent(const ENamedClusterComponent& Component)
-{
-	switch (Component)
-	{
-	case ENamedClusterComponent::NCC_CAVE_ORIGIN:
-		return GetClusterComponent("cave_origin");
-	case ENamedClusterComponent::NCC_CAVE_CENTER:
-		return GetClusterComponent("cave_center");
-	case ENamedClusterComponent::NCC_CAVE_LHT:
-		return GetClusterComponent("left_hand_target");
-	case ENamedClusterComponent::NCC_CAVE_RHT:
-		return GetClusterComponent("right_hand_target");
-	case ENamedClusterComponent::NCC_SHUTTERGLASSES:
-		return GetClusterComponent("shutter_glasses");
-	case ENamedClusterComponent::NCC_ROLV_ORIGIN:
-		return GetClusterComponent("rolv_origin");
-	case ENamedClusterComponent::NCC_FLYSTICK:
-		return GetClusterComponent("flystick");
-	case ENamedClusterComponent::NCC_CALIBRATIO:
-		return GetClusterComponent("calibratio");
-	case ENamedClusterComponent::NCC_TRACKING_ORIGIN:
-		USceneComponent* Result;
-		if ((Result = GetClusterComponent("cave_origin")))
-			return Result;
-		if ((Result = GetClusterComponent("rolv_origin")))
-			return Result;
-		if ((Result = GetClusterComponent("tdw_origin_floor")))
-			return Result;
-		return nullptr;
-	default:
-		return nullptr;
-	}
+	return 0;
 }
 
 void URWTHVRUtilities::ShowErrorAndQuit(UWorld* WorldContext, const FString& Message)
diff --git a/Source/RWTHVRToolkit/Public/Interaction/Interactables/IntenSelect/IntenSelectable.h b/Source/RWTHVRToolkit/Public/Interaction/Interactables/IntenSelect/IntenSelectable.h
index 45e6a7726227e26c299399ba733a143909ae32b7..892a478ea50ec84ae7966759577738fec88d34a7 100644
--- a/Source/RWTHVRToolkit/Public/Interaction/Interactables/IntenSelect/IntenSelectable.h
+++ b/Source/RWTHVRToolkit/Public/Interaction/Interactables/IntenSelect/IntenSelectable.h
@@ -28,10 +28,10 @@ public:
 	TArray<UIntenSelectableScoring*> ScoringBehaviours;
 
 	UPROPERTY(EditAnywhere, BlueprintReadWrite)
-	TArray<UHoverBehaviour*> OnSelectBehaviours;
+	TArray<UHoverBehaviour*> OnHoverBehaviours;
 
 	UPROPERTY(EditAnywhere, BlueprintReadWrite)
-	TArray<UActionBehaviour*> OnClickBehaviours;
+	TArray<UActionBehaviour*> OnActionBehaviours;
 
 
 public:
@@ -48,8 +48,6 @@ public:
 
 	void InitDefaultBehaviourReferences();
 
-	void ShowErrorAndQuit(const FString& Message) const;
-
 protected:
 	virtual void BeginPlay() override;
 };
diff --git a/Source/RWTHVRToolkit/Public/Pawn/RWTHVRPawn.h b/Source/RWTHVRToolkit/Public/Pawn/RWTHVRPawn.h
index 490dffdf9445a9578e43cf15f6b062b73b70baf1..abe9255dd701b20595c5ee56caff2702f1d60a36 100644
--- a/Source/RWTHVRToolkit/Public/Pawn/RWTHVRPawn.h
+++ b/Source/RWTHVRToolkit/Public/Pawn/RWTHVRPawn.h
@@ -6,8 +6,6 @@
 #include "LiveLinkRole.h"
 #include "Pawn/Navigation/CollisionHandlingMovement.h"
 
-#include "Components/DisplayClusterSceneComponentSyncParent.h"
-
 #include "RWTHVRPawn.generated.h"
 
 class UInputMappingContext;
@@ -27,6 +25,8 @@ class RWTHVRTOOLKIT_API ARWTHVRPawn : public APawn
 public:
 	ARWTHVRPawn(const FObjectInitializer& ObjectInitializer);
 
+	virtual void BeginPlay() override;
+
 	virtual void Tick(float DeltaSeconds) override;
 
 	virtual void NotifyControllerChanged() override;
@@ -54,8 +54,8 @@ public:
 	UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Pawn|Camera")
 	UCameraComponent* HeadCameraComponent;
 
-	UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Pawn|Camera")
-	UDisplayClusterSceneComponentSyncParent* SyncComponent;
+	UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Pawn")
+	USceneComponent* SyncComponent;
 
 	// LiveLink functionality
 
diff --git a/Source/RWTHVRToolkit/Public/Utility/RWTHVRUtilities.h b/Source/RWTHVRToolkit/Public/Utility/RWTHVRUtilities.h
index e0f6d7e4e6adf0735007004cbfd9b5d0ae8064f8..c6b547336d00f2b88633806be95456597d2af12f 100644
--- a/Source/RWTHVRToolkit/Public/Utility/RWTHVRUtilities.h
+++ b/Source/RWTHVRToolkit/Public/Utility/RWTHVRUtilities.h
@@ -2,7 +2,6 @@
 
 #include "CoreMinimal.h"
 #include "Kismet/BlueprintFunctionLibrary.h"
-#include "UObject/ConstructorHelpers.h"
 
 #include "RWTHVRUtilities.generated.h"
 
@@ -12,73 +11,25 @@
  */
 DECLARE_LOG_CATEGORY_EXTERN(Toolkit, Log, All);
 
-UENUM(BlueprintType)
-enum class ENamedClusterComponent : uint8
-{
-	/* CAVE Specific */
-	NCC_CAVE_ORIGIN UMETA(DisplayName = "CAVE Origin"),
-	NCC_CAVE_CENTER UMETA(DisplayName = "CAVE Center"),
-	NCC_CAVE_LHT UMETA(DisplayName = "CAVE Left Hand Target"),
-	NCC_CAVE_RHT UMETA(DisplayName = "CAVE Right Hand Target"),
-
-	/* ROLV Specific */
-	NCC_ROLV_ORIGIN UMETA(DisplayName = "ROLV Origin"),
-
-	/* Non Specific */
-	NCC_CALIBRATIO UMETA(DisplayName = "Calibratio Motion to Photon Measurement Device"),
-	NCC_SHUTTERGLASSES UMETA(DisplayName = "CAVE/ROLV/TDW Shutter Glasses"),
-	NCC_FLYSTICK UMETA(DisplayName = "CAVE/ROLV/TDW Flystick"),
-	NCC_TRACKING_ORIGIN UMETA(DisplayName = "CAVE/ROLV/TDW Origin")
-};
-
-UENUM()
-enum class EEyeStereoOffset
-{
-	None,
-	Left,
-	Right
-};
-
 UCLASS()
 class RWTHVRTOOLKIT_API URWTHVRUtilities : public UBlueprintFunctionLibrary
 {
 	GENERATED_BODY()
 
 public:
-	UFUNCTION(BlueprintPure, Category = "DisplayCluster|Platform")
+	UFUNCTION(BlueprintPure, Category = "RWTHVRToolkit|Platform")
 	static bool IsDesktopMode();
-	UFUNCTION(BlueprintPure, Category = "DisplayCluster|Platform")
-	static bool IsRoomMountedMode();
-	UFUNCTION(BlueprintPure, Category = "DisplayCluster|Platform")
+	UFUNCTION(BlueprintPure, Category = "RWTHVRToolkit|Platform")
 	static bool IsHeadMountedMode();
-	UFUNCTION(BlueprintPure, Category = "DisplayCluster|Platform")
-	static bool IsCave();
-	UFUNCTION(BlueprintPure, Category = "DisplayCluster|Platform")
-	static bool IsRolv();
-
-	UFUNCTION(BlueprintPure, Category = "DisplayCluster")
+	UFUNCTION(BlueprintPure, Category = "RWTHVRToolkit|Platform")
+	static bool IsRoomMountedMode();
+	UFUNCTION(BlueprintPure, Category = "RWTHVRToolkit|Platform")
 	static bool IsPrimaryNode();
-	UFUNCTION(BlueprintPure, Category = "DisplayCluster")
-	static bool IsSecondaryNode();
 
-	UFUNCTION(BlueprintPure, Category = "DisplayCluster")
-	static FString GetNodeName();
 	/* Distance in meters */
-	UFUNCTION(BlueprintPure, Category = "DisplayCluster")
+	UFUNCTION(BlueprintPure, Category = "RWTHVRToolkit")
 	static float GetEyeDistance();
 
-	UFUNCTION(BlueprintPure, Category = "DisplayCluster")
-	static EEyeStereoOffset GetNodeEyeType();
-
-	//Get Component of Display Cluster by it's name, which is specified in the nDisplay config
-	UE_DEPRECATED(5.4, "GetClusterComponent has been removed because it is obsolete.")
-	UFUNCTION(BlueprintPure, BlueprintCallable, Category = "DisplayCluster", meta = (DeprecatedFunction))
-	static USceneComponent* GetClusterComponent(const FString& Name);
-
-	UE_DEPRECATED(5.4, "GetNamedClusterComponent has been removed because it is obsolete.")
-	UFUNCTION(BlueprintPure, BlueprintCallable, Category = "DisplayCluster", meta = (DeprecatedFunction))
-	static USceneComponent* GetNamedClusterComponent(const ENamedClusterComponent& Component);
-
 	UFUNCTION(BlueprintCallable)
 	static void ShowErrorAndQuit(UWorld* WorldContext, const FString& Message);
 };
diff --git a/Source/RWTHVRToolkit/RWTHVRToolkit.Build.cs b/Source/RWTHVRToolkit/RWTHVRToolkit.Build.cs
index 930dc9129b0fbcf2ba9b275595cea42f42866238..a949553aaa90bd704c53e9ace2f749073a5441bf 100644
--- a/Source/RWTHVRToolkit/RWTHVRToolkit.Build.cs
+++ b/Source/RWTHVRToolkit/RWTHVRToolkit.Build.cs
@@ -49,15 +49,23 @@ public class RWTHVRToolkit : ModuleRules
 		DynamicallyLoadedModuleNames.AddRange(
 			new string[]{}
 		);
-		
-		if(Target.Platform == UnrealTargetPlatform.Win64 || Target.Platform == UnrealTargetPlatform.Linux)
+
+		if (IsPluginEnabledForTarget("RWTHVRCluster", base.Target))
 		{
-			PublicDependencyModuleNames.Add("DisplayCluster");
-			PublicDefinitions.Add("PLATFORM_SUPPORTS_NDISPLAY=1");
+			PrivateDependencyModuleNames.Add("RWTHVRCluster");
+			PrivateDependencyModuleNames.Add("DisplayCluster");
+			PublicDefinitions.Add("PLATFORM_SUPPORTS_CLUSTER=1");
 		}
 		else
-		{
-			PublicDefinitions.Add("PLATFORM_SUPPORTS_NDISPLAY=0");
+		{			
+			PublicDefinitions.Add("PLATFORM_SUPPORTS_CLUSTER=0");
 		}
 	}
+	
+	private static bool IsPluginEnabledForTarget(string PluginName, ReadOnlyTargetRules Target)
+	{
+		var PL = Plugins.GetPlugin(PluginName);
+		return PL != null && Target.ProjectFile != null && Plugins.IsPluginEnabledForTarget(PL,
+			ProjectDescriptor.FromFile(Target.ProjectFile), Target.Platform, Target.Configuration, Target.Type);
+	}
 }
diff --git a/Source/RWTHVRToolkitEditor/Private/Interaction/IntenSelectableCylinderScoringVisualizer.cpp b/Source/RWTHVRToolkitEditor/Private/Interaction/IntenSelectableCylinderScoringVisualizer.cpp
index 076cf8e42e290a4bfb229c3b19c029f664ecdde8..e9988eaea601d071c86f2b6409f96fa7417ef894 100644
--- a/Source/RWTHVRToolkitEditor/Private/Interaction/IntenSelectableCylinderScoringVisualizer.cpp
+++ b/Source/RWTHVRToolkitEditor/Private/Interaction/IntenSelectableCylinderScoringVisualizer.cpp
@@ -1,6 +1,8 @@
 #include "Interaction/IntenSelectableCylinderScoringVisualizer.h"
 #include "ActorEditorUtils.h"
 #include "SceneManagement.h"
+#include "Editor.h"
+
 
 IMPLEMENT_HIT_PROXY(FCylinderPointProxy, HComponentVisProxy);