diff --git a/Assets/Resources/Prefabs/UI/NetwMenu/ASMenu_MnCtrl.prefab b/Assets/Resources/Prefabs/UI/NetwMenu/ASMenu_MnCtrl.prefab
index ef94bcf76ec9f444c16ae92d52eb4aa925541d6a..cd29bb8e3161a2d231853de71b317dc6f31e55c7 100644
--- a/Assets/Resources/Prefabs/UI/NetwMenu/ASMenu_MnCtrl.prefab
+++ b/Assets/Resources/Prefabs/UI/NetwMenu/ASMenu_MnCtrl.prefab
@@ -2813,9 +2813,9 @@ RectTransform:
   m_LocalScale: {x: 0, y: 0, z: 0}
   m_ConstrainProportionsScale: 0
   m_Children:
-  - {fileID: 5366996316036003392}
-  - {fileID: 5366996315080589335}
   - {fileID: 5366996316012566048}
+  - {fileID: 5366996315080589335}
+  - {fileID: 5366996316036003392}
   m_Father: {fileID: 0}
   m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -3095,7 +3095,7 @@ RectTransform:
   - {fileID: 1117501623706235904}
   - {fileID: 1117501622783544332}
   m_Father: {fileID: 5366996315580957718}
-  m_RootOrder: 2
+  m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 1, y: 1}
@@ -3203,7 +3203,7 @@ RectTransform:
   - {fileID: 6914020161757597414}
   - {fileID: 8842023094143837814}
   m_Father: {fileID: 5366996315580957718}
-  m_RootOrder: 0
+  m_RootOrder: 2
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 1, y: 1}
@@ -5534,6 +5534,31 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 15
       objectReference: {fileID: 0}
+    - target: {fileID: 266457293004759893, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
+        type: 3}
+      propertyPath: m_Enabled
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 266457293004759894, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
+        type: 3}
+      propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode
+      value: 2
+      objectReference: {fileID: 0}
+    - target: {fileID: 266457293004759894, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
+        type: 3}
+      propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
+      value: Slot
+      objectReference: {fileID: 0}
+    - target: {fileID: 266457293004759894, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
+        type: 3}
+      propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgument
+      value: 
+      objectReference: {fileID: 4885809082697228742}
+    - target: {fileID: 266457293004759894, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
+        type: 3}
+      propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName
+      value: ServerSlotComponent, Assembly-CSharp
+      objectReference: {fileID: 0}
     - target: {fileID: 266457293017241412, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
         type: 3}
       propertyPath: m_PresetInfoIsWorld
@@ -5559,6 +5584,16 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 266457293137575364, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
+        type: 3}
+      propertyPath: m_PresetInfoIsWorld
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 266457293137575369, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
+        type: 3}
+      propertyPath: m_Name
+      value: ServerSlotButtons
+      objectReference: {fileID: 0}
     - target: {fileID: 266457293137575370, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
         type: 3}
       propertyPath: m_AnchoredPosition.y
@@ -5594,6 +5629,31 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.x
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 266457293592689185, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
+        type: 3}
+      propertyPath: m_Enabled
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 266457293592689186, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
+        type: 3}
+      propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode
+      value: 2
+      objectReference: {fileID: 0}
+    - target: {fileID: 266457293592689186, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
+        type: 3}
+      propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
+      value: Slot
+      objectReference: {fileID: 0}
+    - target: {fileID: 266457293592689186, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
+        type: 3}
+      propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgument
+      value: 
+      objectReference: {fileID: 8499128799773893550}
+    - target: {fileID: 266457293592689186, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
+        type: 3}
+      propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName
+      value: ServerSlotComponent, Assembly-CSharp
+      objectReference: {fileID: 0}
     - target: {fileID: 266457293592689213, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
         type: 3}
       propertyPath: m_AnchoredPosition.y
@@ -5679,6 +5739,31 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 15
       objectReference: {fileID: 0}
+    - target: {fileID: 266457294111085870, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
+        type: 3}
+      propertyPath: m_Enabled
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 266457294111085871, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
+        type: 3}
+      propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode
+      value: 2
+      objectReference: {fileID: 0}
+    - target: {fileID: 266457294111085871, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
+        type: 3}
+      propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
+      value: Slot
+      objectReference: {fileID: 0}
+    - target: {fileID: 266457294111085871, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
+        type: 3}
+      propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgument
+      value: 
+      objectReference: {fileID: 8378414377116276058}
+    - target: {fileID: 266457294111085871, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
+        type: 3}
+      propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName
+      value: ServerSlotComponent, Assembly-CSharp
+      objectReference: {fileID: 0}
     - target: {fileID: 266457294139171630, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
         type: 3}
       propertyPath: m_AnchoredPosition.x
@@ -5834,6 +5919,31 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 15
       objectReference: {fileID: 0}
+    - target: {fileID: 266457294444282573, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
+        type: 3}
+      propertyPath: m_Enabled
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 266457294444282574, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
+        type: 3}
+      propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode
+      value: 2
+      objectReference: {fileID: 0}
+    - target: {fileID: 266457294444282574, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
+        type: 3}
+      propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
+      value: Slot
+      objectReference: {fileID: 0}
+    - target: {fileID: 266457294444282574, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
+        type: 3}
+      propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgument
+      value: 
+      objectReference: {fileID: 7712862719212773064}
+    - target: {fileID: 266457294444282574, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
+        type: 3}
+      propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName
+      value: ServerSlotComponent, Assembly-CSharp
+      objectReference: {fileID: 0}
     - target: {fileID: 266457294453969648, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
         type: 3}
       propertyPath: m_AnchoredPosition.x
@@ -5904,6 +6014,11 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 1.375
       objectReference: {fileID: 0}
+    - target: {fileID: 1358216817539847721, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
+        type: 3}
+      propertyPath: m_Enabled
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 1875362796578346920, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
         type: 3}
       propertyPath: m_AnchorMax.y
@@ -5932,7 +6047,27 @@ PrefabInstance:
     - target: {fileID: 2815923836362319388, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
         type: 3}
       propertyPath: m_AnchoredPosition.x
-      value: -4.9999847
+      value: -4.9999695
+      objectReference: {fileID: 0}
+    - target: {fileID: 3171689844832372119, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
+        type: 3}
+      propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode
+      value: 2
+      objectReference: {fileID: 0}
+    - target: {fileID: 3171689844832372119, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
+        type: 3}
+      propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
+      value: Slot
+      objectReference: {fileID: 0}
+    - target: {fileID: 3171689844832372119, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
+        type: 3}
+      propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgument
+      value: 
+      objectReference: {fileID: 316098368976873463}
+    - target: {fileID: 3171689844832372119, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
+        type: 3}
+      propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName
+      value: ServerSlotComponent, Assembly-CSharp
       objectReference: {fileID: 0}
     - target: {fileID: 3282347303137492915, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
         type: 3}
@@ -5954,6 +6089,11 @@ PrefabInstance:
       propertyPath: m_AnchorMax.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 3406104997600660245, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
+        type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: -5
+      objectReference: {fileID: 0}
     - target: {fileID: 3545168087928552614, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
         type: 3}
       propertyPath: m_AnchorMax.x
@@ -5999,6 +6139,11 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 146.10156
       objectReference: {fileID: 0}
+    - target: {fileID: 4298968331658003880, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
+        type: 3}
+      propertyPath: m_Enabled
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 4336276574167657637, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
         type: 3}
       propertyPath: m_PresetInfoIsWorld
@@ -6012,7 +6157,7 @@ PrefabInstance:
     - target: {fileID: 4579715242862631517, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
         type: 3}
       propertyPath: m_AnchoredPosition.x
-      value: -4.9999847
+      value: -4.9999695
       objectReference: {fileID: 0}
     - target: {fileID: 4654362771177702286, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
         type: 3}
@@ -6057,12 +6202,12 @@ PrefabInstance:
     - target: {fileID: 7116002430756151160, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
         type: 3}
       propertyPath: m_AnchoredPosition.x
-      value: -5.0000153
+      value: -5
       objectReference: {fileID: 0}
     - target: {fileID: 7121850332990498394, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
         type: 3}
       propertyPath: m_AnchoredPosition.x
-      value: -4.9999847
+      value: -4.9999695
       objectReference: {fileID: 0}
     - target: {fileID: 7628291294465844033, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
         type: 3}
@@ -6124,6 +6269,26 @@ PrefabInstance:
       propertyPath: m_AnchorMax.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 9066730024666877311, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
+        type: 3}
+      propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode
+      value: 2
+      objectReference: {fileID: 0}
+    - target: {fileID: 9066730024666877311, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
+        type: 3}
+      propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
+      value: Slot
+      objectReference: {fileID: 0}
+    - target: {fileID: 9066730024666877311, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
+        type: 3}
+      propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgument
+      value: 
+      objectReference: {fileID: 6894151661689308088}
+    - target: {fileID: 9066730024666877311, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
+        type: 3}
+      propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName
+      value: ServerSlotComponent, Assembly-CSharp
+      objectReference: {fileID: 0}
     - target: {fileID: 9173739099617212345, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
         type: 3}
       propertyPath: m_PresetInfoIsWorld
@@ -6131,6 +6296,44 @@ PrefabInstance:
       objectReference: {fileID: 0}
     m_RemovedComponents: []
   m_SourcePrefab: {fileID: 100100000, guid: c2b1781fb05a3d0478a9fb36c9db98b9, type: 3}
+--- !u!1 &3482856177331069982 stripped
+GameObject:
+  m_CorrespondingSourceObject: {fileID: 8762972383231762760, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
+    type: 3}
+  m_PrefabInstance: {fileID: 5316996106540909910}
+  m_PrefabAsset: {fileID: 0}
+--- !u!114 &6894151661689308088
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3482856177331069982}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7a16e25375fcb774d9ea23be50b1f5e3, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  serverSlot: 5
+--- !u!1 &5366996314989793403 stripped
+GameObject:
+  m_CorrespondingSourceObject: {fileID: 266457294111085869, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
+    type: 3}
+  m_PrefabInstance: {fileID: 5316996106540909910}
+  m_PrefabAsset: {fileID: 0}
+--- !u!114 &8378414377116276058
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5366996314989793403}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7a16e25375fcb774d9ea23be50b1f5e3, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  serverSlot: 0
 --- !u!1 &5366996315080589334 stripped
 GameObject:
   m_CorrespondingSourceObject: {fileID: 266457294151353664, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
@@ -6143,6 +6346,106 @@ RectTransform:
     type: 3}
   m_PrefabInstance: {fileID: 5316996106540909910}
   m_PrefabAsset: {fileID: 0}
+--- !u!1 &5366996315322992538 stripped
+GameObject:
+  m_CorrespondingSourceObject: {fileID: 266457294444282572, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
+    type: 3}
+  m_PrefabInstance: {fileID: 5316996106540909910}
+  m_PrefabAsset: {fileID: 0}
+--- !u!114 &7712862719212773064
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5366996315322992538}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7a16e25375fcb774d9ea23be50b1f5e3, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  serverSlot: 2
+--- !u!1 &5366996316098258445 stripped
+GameObject:
+  m_CorrespondingSourceObject: {fileID: 266457293004759899, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
+    type: 3}
+  m_PrefabInstance: {fileID: 5316996106540909910}
+  m_PrefabAsset: {fileID: 0}
+--- !u!114 &4885809082697228742
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5366996316098258445}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7a16e25375fcb774d9ea23be50b1f5e3, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  serverSlot: 4
+--- !u!1 &5366996316499441823 stripped
+GameObject:
+  m_CorrespondingSourceObject: {fileID: 266457293137575369, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
+    type: 3}
+  m_PrefabInstance: {fileID: 5316996106540909910}
+  m_PrefabAsset: {fileID: 0}
+--- !u!114 &7630018522086977791
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5366996316499441823}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: ffd50588bd413a942ae5239c62b86c60, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  LPS_B_GObj: {fileID: 5366996314989793403}
+  Slot1_B_GObj: {fileID: 5366996315322992538}
+  Slot2_B_GObj: {fileID: 5366996316686057334}
+  Slot3_B_GObj: {fileID: 5366996316098258445}
+  Slot4_B_GObj: {fileID: 3482856177331069982}
+  Slot5_B_GObj: {fileID: 6969110458773737930}
+--- !u!1 &5366996316686057334 stripped
+GameObject:
+  m_CorrespondingSourceObject: {fileID: 266457293592689184, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
+    type: 3}
+  m_PrefabInstance: {fileID: 5316996106540909910}
+  m_PrefabAsset: {fileID: 0}
+--- !u!114 &8499128799773893550
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5366996316686057334}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7a16e25375fcb774d9ea23be50b1f5e3, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  serverSlot: 3
+--- !u!1 &6969110458773737930 stripped
+GameObject:
+  m_CorrespondingSourceObject: {fileID: 2989970963852596380, guid: c2b1781fb05a3d0478a9fb36c9db98b9,
+    type: 3}
+  m_PrefabInstance: {fileID: 5316996106540909910}
+  m_PrefabAsset: {fileID: 0}
+--- !u!114 &316098368976873463
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6969110458773737930}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7a16e25375fcb774d9ea23be50b1f5e3, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  serverSlot: 6
 --- !u!1001 &5366996315100264232
 PrefabInstance:
   m_ObjectHideFlags: 0
diff --git a/Assets/Resources/Prefabs/UI/NetwMenu/NetwokOptM_MnCtrl 2.prefab b/Assets/Resources/Prefabs/UI/NetwMenu/NetwokOptM_MnCtrl 2.prefab
index 3099e155223a88b266ee3c6bbb6719e9366d14bc..c5d88bb956da8d984a64782b042072b1cd622279 100644
--- a/Assets/Resources/Prefabs/UI/NetwMenu/NetwokOptM_MnCtrl 2.prefab	
+++ b/Assets/Resources/Prefabs/UI/NetwMenu/NetwokOptM_MnCtrl 2.prefab	
@@ -2813,7 +2813,7 @@ MonoBehaviour:
   m_FallbackScreenDPI: 96
   m_DefaultSpriteDPI: 96
   m_DynamicPixelsPerUnit: 1
-  m_PresetInfoIsWorld: 1
+  m_PresetInfoIsWorld: 0
 --- !u!114 &6804933134010575744
 MonoBehaviour:
   m_ObjectHideFlags: 0
diff --git a/Assets/Resources/Prefabs/UI/NetwMenu/OptMenuCrop_1_Can.prefab b/Assets/Resources/Prefabs/UI/NetwMenu/OptMenuCrop_1_Can.prefab
index 6fc3f140877d79be5fcc7b59535c877fe3231d4f..0ac823bf9b1816dd20fe64c94ef92e520c534e3b 100644
--- a/Assets/Resources/Prefabs/UI/NetwMenu/OptMenuCrop_1_Can.prefab
+++ b/Assets/Resources/Prefabs/UI/NetwMenu/OptMenuCrop_1_Can.prefab
@@ -83,7 +83,7 @@ MonoBehaviour:
   m_FallbackScreenDPI: 96
   m_DefaultSpriteDPI: 96
   m_DynamicPixelsPerUnit: 1
-  m_PresetInfoIsWorld: 1
+  m_PresetInfoIsWorld: 0
 --- !u!114 &4785433923051044236
 MonoBehaviour:
   m_ObjectHideFlags: 0
diff --git a/Assets/Resources/Prefabs/UI/NetwMenu/OptionsM.prefab b/Assets/Resources/Prefabs/UI/NetwMenu/OptionsM.prefab
index 2ea00eb00526c69697e72fcb6a50f2cd3d2ce96d..7f2ee4bb5dd18e3ce69d5c721fc7277c13b564e4 100644
--- a/Assets/Resources/Prefabs/UI/NetwMenu/OptionsM.prefab
+++ b/Assets/Resources/Prefabs/UI/NetwMenu/OptionsM.prefab
@@ -3937,7 +3937,7 @@ MonoBehaviour:
   m_FallbackScreenDPI: 96
   m_DefaultSpriteDPI: 96
   m_DynamicPixelsPerUnit: 1
-  m_PresetInfoIsWorld: 1
+  m_PresetInfoIsWorld: 0
 --- !u!114 &266457294151353667
 MonoBehaviour:
   m_ObjectHideFlags: 0
diff --git a/Assets/Scenes/Menus/LaunchMenu.unity b/Assets/Scenes/Menus/LaunchMenu.unity
index 4d89792b6f950e07ea58fb9a92dd9eeb525103ad..cd6872e3eeee6a16c3f362549d77368d3d879c6f 100644
--- a/Assets/Scenes/Menus/LaunchMenu.unity
+++ b/Assets/Scenes/Menus/LaunchMenu.unity
@@ -38,7 +38,7 @@ RenderSettings:
   m_ReflectionIntensity: 1
   m_CustomReflection: {fileID: 0}
   m_Sun: {fileID: 0}
-  m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1}
+  m_IndirectSpecularColor: {r: 0.44631976, g: 0.49611664, b: 0.5744803, a: 1}
   m_UseRadianceAmbientProbe: 0
 --- !u!157 &3
 LightmapSettings:
@@ -1756,7 +1756,7 @@ PrefabInstance:
     - target: {fileID: 166691744853340724, guid: d55296411d4f39e43804eb54bbc798fc,
         type: 3}
       propertyPath: m_AnchorMax.y
-      value: 0
+      value: 1
       objectReference: {fileID: 0}
     - target: {fileID: 390031447492867791, guid: d55296411d4f39e43804eb54bbc798fc,
         type: 3}
@@ -1786,7 +1786,7 @@ PrefabInstance:
     - target: {fileID: 675079858708547288, guid: d55296411d4f39e43804eb54bbc798fc,
         type: 3}
       propertyPath: m_AnchorMax.y
-      value: 0
+      value: 1
       objectReference: {fileID: 0}
     - target: {fileID: 703218053416320092, guid: d55296411d4f39e43804eb54bbc798fc,
         type: 3}
@@ -1846,7 +1846,7 @@ PrefabInstance:
     - target: {fileID: 1410769580140872472, guid: d55296411d4f39e43804eb54bbc798fc,
         type: 3}
       propertyPath: m_AnchorMax.y
-      value: 0
+      value: 1
       objectReference: {fileID: 0}
     - target: {fileID: 1477939753416378642, guid: d55296411d4f39e43804eb54bbc798fc,
         type: 3}
@@ -1856,7 +1856,7 @@ PrefabInstance:
     - target: {fileID: 1482267526274461358, guid: d55296411d4f39e43804eb54bbc798fc,
         type: 3}
       propertyPath: m_AnchorMax.y
-      value: 0
+      value: 1
       objectReference: {fileID: 0}
     - target: {fileID: 1560678675140750681, guid: d55296411d4f39e43804eb54bbc798fc,
         type: 3}
@@ -1893,6 +1893,11 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 1662363385525495207, guid: d55296411d4f39e43804eb54bbc798fc,
+        type: 3}
+      propertyPath: m_PresetInfoIsWorld
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 1662363385579300209, guid: d55296411d4f39e43804eb54bbc798fc,
         type: 3}
       propertyPath: m_PresetInfoIsWorld
@@ -1958,6 +1963,11 @@ PrefabInstance:
       propertyPath: m_LocalPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 1662363387204643853, guid: d55296411d4f39e43804eb54bbc798fc,
+        type: 3}
+      propertyPath: m_PresetInfoIsWorld
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 1662363387338175133, guid: d55296411d4f39e43804eb54bbc798fc,
         type: 3}
       propertyPath: m_AnchoredPosition.y
@@ -2026,7 +2036,7 @@ PrefabInstance:
     - target: {fileID: 2522040357882909789, guid: d55296411d4f39e43804eb54bbc798fc,
         type: 3}
       propertyPath: m_AnchorMax.y
-      value: 0
+      value: 1
       objectReference: {fileID: 0}
     - target: {fileID: 2635809129103053871, guid: d55296411d4f39e43804eb54bbc798fc,
         type: 3}
@@ -2051,12 +2061,12 @@ PrefabInstance:
     - target: {fileID: 2869114312252178222, guid: d55296411d4f39e43804eb54bbc798fc,
         type: 3}
       propertyPath: m_AnchorMax.x
-      value: 0
+      value: 0.2
       objectReference: {fileID: 0}
     - target: {fileID: 2869114312252178222, guid: d55296411d4f39e43804eb54bbc798fc,
         type: 3}
       propertyPath: m_AnchorMax.y
-      value: 0
+      value: 1
       objectReference: {fileID: 0}
     - target: {fileID: 2973803960881862375, guid: d55296411d4f39e43804eb54bbc798fc,
         type: 3}
@@ -2343,6 +2353,11 @@ PrefabInstance:
       propertyPath: m_Name
       value: ResetAll
       objectReference: {fileID: 0}
+    - target: {fileID: 4375886724170725214, guid: d55296411d4f39e43804eb54bbc798fc,
+        type: 3}
+      propertyPath: m_IsActive
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 4577032551960066354, guid: d55296411d4f39e43804eb54bbc798fc,
         type: 3}
       propertyPath: m_AnchoredPosition.x
@@ -2383,6 +2398,11 @@ PrefabInstance:
       propertyPath: m_AnchorMax.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 5236334978631190716, guid: d55296411d4f39e43804eb54bbc798fc,
+        type: 3}
+      propertyPath: m_IsActive
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 5348281885926402043, guid: d55296411d4f39e43804eb54bbc798fc,
         type: 3}
       propertyPath: m_AnchorMax.y
@@ -2453,6 +2473,11 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 5366996315080589334, guid: d55296411d4f39e43804eb54bbc798fc,
+        type: 3}
+      propertyPath: m_IsActive
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 5366996315142305631, guid: d55296411d4f39e43804eb54bbc798fc,
         type: 3}
       propertyPath: m_AnchoredPosition.x
@@ -2463,6 +2488,16 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 5366996315147294849, guid: d55296411d4f39e43804eb54bbc798fc,
+        type: 3}
+      propertyPath: m_PresetInfoIsWorld
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5366996315147294861, guid: d55296411d4f39e43804eb54bbc798fc,
+        type: 3}
+      propertyPath: m_IsActive
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 5366996315167334625, guid: d55296411d4f39e43804eb54bbc798fc,
         type: 3}
       propertyPath: m_AnchoredPosition.x
@@ -2478,6 +2513,11 @@ PrefabInstance:
       propertyPath: m_PresetInfoIsWorld
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 5366996315187901821, guid: d55296411d4f39e43804eb54bbc798fc,
+        type: 3}
+      propertyPath: m_IsActive
+      value: 1
+      objectReference: {fileID: 0}
     - target: {fileID: 5366996315190395667, guid: d55296411d4f39e43804eb54bbc798fc,
         type: 3}
       propertyPath: m_PresetInfoIsWorld
@@ -2518,11 +2558,26 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 5366996315370036593, guid: d55296411d4f39e43804eb54bbc798fc,
+        type: 3}
+      propertyPath: m_IsActive
+      value: 1
+      objectReference: {fileID: 0}
     - target: {fileID: 5366996315378746484, guid: d55296411d4f39e43804eb54bbc798fc,
         type: 3}
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 5366996315430787855, guid: d55296411d4f39e43804eb54bbc798fc,
+        type: 3}
+      propertyPath: m_IsActive
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 5366996315444529204, guid: d55296411d4f39e43804eb54bbc798fc,
+        type: 3}
+      propertyPath: m_IsActive
+      value: 1
+      objectReference: {fileID: 0}
     - target: {fileID: 5366996315513376719, guid: d55296411d4f39e43804eb54bbc798fc,
         type: 3}
       propertyPath: m_PresetInfoIsWorld
@@ -2693,6 +2748,11 @@ PrefabInstance:
       propertyPath: m_PresetInfoIsWorld
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 5366996315780310446, guid: d55296411d4f39e43804eb54bbc798fc,
+        type: 3}
+      propertyPath: m_IsActive
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 5366996315782885420, guid: d55296411d4f39e43804eb54bbc798fc,
         type: 3}
       propertyPath: m_AnchoredPosition.x
@@ -2723,6 +2783,11 @@ PrefabInstance:
       propertyPath: m_PresetInfoIsWorld
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 5366996315871281050, guid: d55296411d4f39e43804eb54bbc798fc,
+        type: 3}
+      propertyPath: m_IsActive
+      value: 1
+      objectReference: {fileID: 0}
     - target: {fileID: 5366996315950796513, guid: d55296411d4f39e43804eb54bbc798fc,
         type: 3}
       propertyPath: m_PresetInfoIsWorld
@@ -2738,21 +2803,41 @@ PrefabInstance:
       propertyPath: m_PresetInfoIsWorld
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 5366996315967852899, guid: d55296411d4f39e43804eb54bbc798fc,
+        type: 3}
+      propertyPath: m_IsActive
+      value: 1
+      objectReference: {fileID: 0}
     - target: {fileID: 5366996315974564467, guid: d55296411d4f39e43804eb54bbc798fc,
         type: 3}
       propertyPath: m_AnchoredPosition.x
       value: 1.2089844
       objectReference: {fileID: 0}
+    - target: {fileID: 5366996316012566051, guid: d55296411d4f39e43804eb54bbc798fc,
+        type: 3}
+      propertyPath: m_IsActive
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 5366996316031889720, guid: d55296411d4f39e43804eb54bbc798fc,
         type: 3}
       propertyPath: m_PresetInfoIsWorld
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 5366996316036003404, guid: d55296411d4f39e43804eb54bbc798fc,
+        type: 3}
+      propertyPath: m_IsActive
+      value: 1
+      objectReference: {fileID: 0}
     - target: {fileID: 5366996316043563538, guid: d55296411d4f39e43804eb54bbc798fc,
         type: 3}
       propertyPath: m_PresetInfoIsWorld
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 5366996316043563551, guid: d55296411d4f39e43804eb54bbc798fc,
+        type: 3}
+      propertyPath: m_IsActive
+      value: 1
+      objectReference: {fileID: 0}
     - target: {fileID: 5366996316045321875, guid: d55296411d4f39e43804eb54bbc798fc,
         type: 3}
       propertyPath: m_PresetInfoIsWorld
@@ -2783,6 +2868,11 @@ PrefabInstance:
       propertyPath: m_PresetInfoIsWorld
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 5366996316158688899, guid: d55296411d4f39e43804eb54bbc798fc,
+        type: 3}
+      propertyPath: m_IsActive
+      value: 1
+      objectReference: {fileID: 0}
     - target: {fileID: 5366996316196955506, guid: d55296411d4f39e43804eb54bbc798fc,
         type: 3}
       propertyPath: m_AnchoredPosition.x
@@ -2853,6 +2943,11 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 5366996316499441810, guid: d55296411d4f39e43804eb54bbc798fc,
+        type: 3}
+      propertyPath: m_PresetInfoIsWorld
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 5366996316499441820, guid: d55296411d4f39e43804eb54bbc798fc,
         type: 3}
       propertyPath: m_AnchoredPosition.y
@@ -2903,6 +2998,11 @@ PrefabInstance:
       propertyPath: m_PresetInfoIsWorld
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 5366996316643366183, guid: d55296411d4f39e43804eb54bbc798fc,
+        type: 3}
+      propertyPath: m_IsActive
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 5366996316655696528, guid: d55296411d4f39e43804eb54bbc798fc,
         type: 3}
       propertyPath: m_AnchoredPosition.x
@@ -2933,16 +3033,31 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 5366996316939245616, guid: d55296411d4f39e43804eb54bbc798fc,
+        type: 3}
+      propertyPath: m_IsActive
+      value: 1
+      objectReference: {fileID: 0}
     - target: {fileID: 5366996316951723385, guid: d55296411d4f39e43804eb54bbc798fc,
         type: 3}
       propertyPath: m_PresetInfoIsWorld
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 5366996316951723386, guid: d55296411d4f39e43804eb54bbc798fc,
+        type: 3}
+      propertyPath: m_IsActive
+      value: 1
+      objectReference: {fileID: 0}
     - target: {fileID: 5366996316957892898, guid: d55296411d4f39e43804eb54bbc798fc,
         type: 3}
       propertyPath: m_PresetInfoIsWorld
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 5366996316957892911, guid: d55296411d4f39e43804eb54bbc798fc,
+        type: 3}
+      propertyPath: m_IsActive
+      value: 1
+      objectReference: {fileID: 0}
     - target: {fileID: 5366996316996975968, guid: d55296411d4f39e43804eb54bbc798fc,
         type: 3}
       propertyPath: m_AnchoredPosition.x
@@ -3006,7 +3121,7 @@ PrefabInstance:
     - target: {fileID: 6039154815366894334, guid: d55296411d4f39e43804eb54bbc798fc,
         type: 3}
       propertyPath: m_AnchorMax.y
-      value: 0
+      value: 1
       objectReference: {fileID: 0}
     - target: {fileID: 6058631775699974023, guid: d55296411d4f39e43804eb54bbc798fc,
         type: 3}
@@ -3121,7 +3236,7 @@ PrefabInstance:
     - target: {fileID: 7475751197872360999, guid: d55296411d4f39e43804eb54bbc798fc,
         type: 3}
       propertyPath: m_AnchorMax.y
-      value: 0
+      value: 1
       objectReference: {fileID: 0}
     - target: {fileID: 7495062022093777435, guid: d55296411d4f39e43804eb54bbc798fc,
         type: 3}
@@ -3163,6 +3278,27 @@ PrefabInstance:
       propertyPath: m_LocalPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 8283851064374197620, guid: d55296411d4f39e43804eb54bbc798fc,
+        type: 3}
+      propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8283851064374197620, guid: d55296411d4f39e43804eb54bbc798fc,
+        type: 3}
+      propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 8283851064374197620, guid: d55296411d4f39e43804eb54bbc798fc,
+        type: 3}
+      propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target
+      value: 
+      objectReference: {fileID: 11500000, guid: baada65e49c925541b0fa8823b27a801,
+        type: 3}
+    - target: {fileID: 8283851064374197620, guid: d55296411d4f39e43804eb54bbc798fc,
+        type: 3}
+      propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState
+      value: 2
+      objectReference: {fileID: 0}
     - target: {fileID: 8316488918581824991, guid: d55296411d4f39e43804eb54bbc798fc,
         type: 3}
       propertyPath: m_PresetInfoIsWorld
@@ -3181,28 +3317,33 @@ PrefabInstance:
     - target: {fileID: 8717619082247649776, guid: d55296411d4f39e43804eb54bbc798fc,
         type: 3}
       propertyPath: m_AnchorMax.x
-      value: 0
+      value: 0.2
       objectReference: {fileID: 0}
     - target: {fileID: 8717619082247649776, guid: d55296411d4f39e43804eb54bbc798fc,
         type: 3}
       propertyPath: m_AnchorMax.y
-      value: 0
+      value: 1
       objectReference: {fileID: 0}
     - target: {fileID: 8717619082247649776, guid: d55296411d4f39e43804eb54bbc798fc,
         type: 3}
       propertyPath: m_AnchorMin.x
-      value: 0
+      value: 0.2
       objectReference: {fileID: 0}
     - target: {fileID: 8954018117256822208, guid: d55296411d4f39e43804eb54bbc798fc,
         type: 3}
       propertyPath: m_AnchorMax.y
-      value: 0
+      value: 1
       objectReference: {fileID: 0}
     - target: {fileID: 9137384490485354206, guid: d55296411d4f39e43804eb54bbc798fc,
         type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 9175576502325428455, guid: d55296411d4f39e43804eb54bbc798fc,
+        type: 3}
+      propertyPath: m_IsActive
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 9197739784266985981, guid: d55296411d4f39e43804eb54bbc798fc,
         type: 3}
       propertyPath: m_AnchorMax.y
diff --git a/Assets/Scripts/CheckServer.cs b/Assets/Scripts/CheckServer.cs
index fb57ec8ffc8cb3f5780ca246f436d5cf05338a83..99ae058a57433e9523ef11ade79fe2f365009e61 100644
--- a/Assets/Scripts/CheckServer.cs
+++ b/Assets/Scripts/CheckServer.cs
@@ -18,137 +18,14 @@ public class CheckServer : MonoBehaviour
     // Start is called before the first frame update
     void Start()
     {
-        //CommunicationEvents.ServerRunning = false;
-        //StartCoroutine(ServerRoutine());
-
-        StartCoroutine(waiter(CommunicationEvents.lastIP, 1, CommunicationEvents.IPcheckGeneration));
-        StartCoroutine(waiter(CommunicationEvents.newIP, 2, CommunicationEvents.IPcheckGeneration));
-        StartCoroutine(waiter(CommunicationEvents.IPslot1, 3, CommunicationEvents.IPcheckGeneration));
-        StartCoroutine(waiter(CommunicationEvents.IPslot2, 4, CommunicationEvents.IPcheckGeneration));
-        StartCoroutine(waiter(CommunicationEvents.IPslot3, 5, CommunicationEvents.IPcheckGeneration));
-        StartCoroutine(waiter(CommunicationEvents.IPslot3, 6, CommunicationEvents.IPcheckGeneration));
-        StartCoroutine(waiter(CommunicationEvents.IPslot4, 7, CommunicationEvents.IPcheckGeneration));
-        StartCoroutine(waiter(CommunicationEvents.IPslot5, 8, CommunicationEvents.IPcheckGeneration));
+        updateAllServers();        
     }
 
-    public void CheckIPAdr()
+    public void updateAllServers()
     {
-        //CommunicationEvents.ServerRunning = false;
-        //StartCoroutine(ServerRoutine());
-
-        //CommunicationEvents.IPcheckGeneration++;
-        //StartCoroutine(waiter(CommunicationEvents.lastIP, 1, CommunicationEvents.IPcheckGeneration));
-        //StartCoroutine(waiter(CommunicationEvents.newIP, 2, CommunicationEvents.IPcheckGeneration));
-        //StartCoroutine(waiter(CommunicationEvents.IPslot1, 3, CommunicationEvents.IPcheckGeneration));
-        //StartCoroutine(waiter(CommunicationEvents.IPslot2, 4, CommunicationEvents.IPcheckGeneration));
-        //StartCoroutine(waiter(CommunicationEvents.IPslot3, 5, CommunicationEvents.IPcheckGeneration));
-    }
-
-
-    IEnumerator waiter(String NetwAddress, int NA_id, double ics)
-    {
-        //while(CommunicationEvents.IPcheckGeneration== ics)
-        while (CheckNetLoop == 1)
+        foreach (ServerSlotData server in ServerSlots.Values)
         {
-            //Wait for 1 seconds
-            yield return new WaitForSecondsRealtime(1f);
-
-            if (CommunicationEvents.CheckServerA[NA_id] == 1)
-            {
-                CommunicationEvents.CheckServerA[NA_id] = 0;
-
-                NetwAddress = NA_id switch
-                {
-                    1 => CommunicationEvents.lastIP,
-                    2 => CommunicationEvents.newIP,
-                    3 => CommunicationEvents.IPslot1,
-                    4 => CommunicationEvents.IPslot2,
-                    5 => CommunicationEvents.IPslot3,
-                    6 => CommunicationEvents.selecIP,
-                    7 => CommunicationEvents.IPslot4,
-                    8 => CommunicationEvents.IPslot5,
-                    _ => NetwAddress,
-                };
-
-                if (string.IsNullOrEmpty(NetwAddress))
-                {
-                    //Wait for 1 seconds
-                    CommunicationEvents.ServerRunningA[NA_id] = 3;
-                    yield return new WaitForSecondsRealtime(1f);
-                }
-                else
-                {
-                    StartCheck(NetwAddress, NA_id, ics);
-                    //Wait for 1,5 seconds
-                    yield return new WaitForSecondsRealtime(1.5f);
-                    if (CommunicationEvents.IPcheckGeneration <= ics || (NA_id != 6))// && NA_id != 2))
-                    {
-                        //if (CommunicationEvents.IPcheckGeneration < ics) { break; }
-                        if (CommunicationEvents.ServerRunningA_test[NA_id] == true)
-                        {
-                            CommunicationEvents.ServerRunningA[NA_id] = 2;
-                        }
-                        else
-                        {
-                            CommunicationEvents.ServerRunningA[NA_id] = 0;
-                        }
-                    }
-                    else
-                    {
-                        CommunicationEvents.IPcheckGeneration--;
-
-                        if (NA_id == 2)
-                        {
-                            CommunicationEvents.ServerRunningA[NA_id] = 1;
-                        }
-
-                    }
-
-                    //Wait for 0,5 seconds
-                    yield return new WaitForSecondsRealtime(0.5f);
-                }
-            }
+            StartCoroutine(server.UpdateServerStatus());
         }
     }
-
-    public void StartCheck(String NetwAddress, int NA_id, double ics)
-    {
-        StartCoroutine(ServerRoutine(NetwAddress, NA_id, ics));
-
-        IEnumerator ServerRoutine(String NetwAddress, int NA_id, double ics)
-        {
-            CommunicationEvents.ServerRunningA_test[NA_id] = false;
-
-            UnityWebRequest request = ping1(NetwAddress);
-            // UnityWebRequest request = UnityWebRequest.Get("http://localhost:8085/fact/list");
-            //UnityEngine.Debug.Log("Req");
-            yield return request.SendWebRequest();
-
-            while (request.result == UnityWebRequest.Result.ConnectionError
-                || request.result == UnityWebRequest.Result.ProtocolError)
-            {
-                UnityEngine.Debug.Log("Wait for Server to Respond: " + request.error);
-                request.Dispose();
-
-                request = ping1(NetwAddress);
-                //request = UnityWebRequest.Get("http://" + NetwAddress + "/fact/list");
-                //request = UnityWebRequest.Get("http://localhost:8085/fact/list");
-                //UnityEngine.Debug.Log("Req");
-                yield return request.SendWebRequest();
-            }
-            request.Dispose();
-
-
-            if (CommunicationEvents.IPcheckGeneration == ics || (NA_id != 6))// && NA_id!=2))
-                CommunicationEvents.ServerRunningA_test[NA_id] = true;
-        }
-    }
-
-
-    public UnityWebRequest ping1(String NetwAddress)
-    {
-        //UnityWebRequest request = UnityWebRequest.Get("http://" + NetwAddress + "/scroll/list");
-        UnityWebRequest request = UnityWebRequest.Get("http://" + NetwAddress + "/fact/list");
-        return request;
-    }
 }
diff --git a/Assets/Scripts/CheckServerPush.cs b/Assets/Scripts/CheckServerPush.cs
index 7fd1a9d3bcb977046908b8459ed29beb71983b93..1dd83e5a0adb141c7b3782b4b771ff24876a2374 100644
--- a/Assets/Scripts/CheckServerPush.cs
+++ b/Assets/Scripts/CheckServerPush.cs
@@ -5,27 +5,12 @@
 public class CheckServerPush : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
 {
 
-    public int CheckServer_0;
-    public int CheckServer_1;
-    public int CheckServer_2;
-    public int CheckServer_3;
-    public int CheckServer_4;
-    public int CheckServer_5;
-    public int CheckServer_6;
-    public int CheckServer_7;
-    public int CheckServer_8;
-
     public void OnPointerDown(PointerEventData eventData)
     {
-        CheckServerA[0] = CheckServer_0;
-        CheckServerA[1] = CheckServer_1;
-        CheckServerA[2] = CheckServer_2;
-        CheckServerA[3] = CheckServer_3;
-        CheckServerA[4] = CheckServer_4;
-        CheckServerA[5] = CheckServer_5;
-        CheckServerA[6] = CheckServer_6;
-        CheckServerA[7] = CheckServer_7;
-        CheckServerA[8] = CheckServer_8;
+        foreach (ServerSlotData server in ServerSlots.Values)
+        {
+            StartCoroutine(server.UpdateServerStatus());
+        }
 
     }
 
diff --git a/Assets/Scripts/InteractionEngine/CommunicationEvents.cs b/Assets/Scripts/InteractionEngine/CommunicationEvents.cs
index bb0fd6493024cc3a32f45db5fb7869bdad4caf93..7ae148c4641f5ad0269600bb244807579e25172f 100644
--- a/Assets/Scripts/InteractionEngine/CommunicationEvents.cs
+++ b/Assets/Scripts/InteractionEngine/CommunicationEvents.cs
@@ -1,8 +1,10 @@
 using System.Collections.Generic;
 using System.Diagnostics;
 using System.IO;
+using System.Linq;
 using UnityEngine;
 using UnityEngine.Events;
+using UnityEngine.Networking;
 
 public static class CommunicationEvents
 {
@@ -43,65 +45,138 @@ public static class CommunicationEvents
     public static int ToolID_new;
     public static int ToolID_selected;//Script
 
-    /*
-     * Put all of the data about a Server into one class
-     */
-    class KnownServer
+    /// <summary>
+    /// The Servers stored in NetworkJSON, as an enum to have consistent names.<br/>
+    /// Why are <see cref="ServerSlot.last"/>,<see cref="ServerSlot.newIP"/> and 
+    /// <see cref="ServerSlot.selecIP"/> in here? Historical Reasons^TM <br/>
+    /// If one wants to optimize things, it is likely advisable to make them variables instead. 
+    /// But this also requires changing the read/write of NetworkJSON, and likely more ...
+    /// </summary>
+    [System.Serializable]
+    public enum ServerSlot
+    {// The numbers are due to legacy code, specifically ServerRunningA indices
+        last  =1,
+        newIP =2,
+        slot1 =3,
+        slot2 =4,
+        slot3 =5,
+        slot4 =7,
+        slot5 =8,
+        selecIP=6 
+    }
+
+    /// <summary>
+    /// The status of a <c>ServerSlot</c> in <see cref="ServerSlots"/>
+    /// </summary>
+    public enum ServerStatus
+    {// The numbers are due to legacy code, specifically ServerRunningA values
+        offline =0,
+        online  =2,
+        checking=1,
+        NoNetworkAddress=3
+    }
+
+    /// <summary>
+    /// All data to a Server stored in a Server
+    /// </summary>
+    public class ServerSlotData
     {
-        public string IP;
+        public string domain;
         public ServerStatus currentStatus = ServerStatus.offline;
-        public bool statusKnown = false;
+        public bool hasBeenChecked = false;
 
-        public enum ServerStatus
-        {
-            offline, 
-            online, 
-            checking, 
-            NoNetworkAddress
-        }
+        //Define constructor via expression body definition
+        public ServerSlotData(string serverURL) => domain = serverURL;
 
-        public void UpdateStatus()
+        /// <summary>
+        /// Ping the server to see if it is online.
+        /// Start as a <c>Coroutine</c>, because this involves a <c>WebRequest</c>
+        /// </summary>
+        public System.Collections.IEnumerator UpdateServerStatus()
         {
+            currentStatus = ServerStatus.checking;
+            if (string.IsNullOrEmpty(domain))
+            {
+                currentStatus = CommunicationEvents.ServerStatus.NoNetworkAddress;
+                yield break;
+            }
+
+            UnityWebRequest request = UnityWebRequest.Get("http://" + domain + "/fact/list");
+            yield return request.SendWebRequest();
+
+            if (request.result == UnityWebRequest.Result.Success)
+            {
+                currentStatus = ServerStatus.online;
+            }
+            else
+            {
+                UnityEngine.Debug.Log("Couldn't connect to Server " + domain + ": " + request.error + "\n");
+                currentStatus = ServerStatus.offline;
+
+                //try again
+                //request.Dispose();
+                //request = pingMMTServer(NetwAddress);
+                //yield return request.SendWebRequest();
+                //request.Dispose();
+
+            }
+            request.Dispose();
+            hasBeenChecked = true;
+
+            // To keep ServerRunningA updated, delete if you saved the world from that abomination
+            ServerSlot myKey = ServerSlots.FirstOrDefault(x => x.Value == this).Key;
+            ServerRunningA[(int)myKey] = (int)currentStatus;
 
         }
     }
-
-    //List of Known Servers
-    public enum KnownServers
+    
+    /// <summary>
+    /// Gather the <see cref="ServerSlotData"/> of all <see cref="ServerSlot"/> in one place, so one can iterate over all of them
+    /// </summary>
+    public static Dictionary<ServerSlot, ServerSlotData> ServerSlots = new()
     {
-        last,
-        newIP,
-        slot1,
-        slot2,
-        slot3,
-        slot4,
-        slot5,
-        selecIP
-    }
+        {ServerSlot.last, new ServerSlotData("")},
+        {ServerSlot.newIP, new ServerSlotData("") },
+        {ServerSlot.slot1, new ServerSlotData("- if you can read this") },
+        {ServerSlot.slot2, new ServerSlotData("- NetworkConfig") },
+        {ServerSlot.slot3, new ServerSlotData("- GO TO -> 'Options'") },
+        {ServerSlot.slot4, new ServerSlotData("-   -> 'Reset Options'") },
+        {ServerSlot.slot5, new ServerSlotData("-   -> PRESS: 'Reset Configurations'") },
+        {ServerSlot.selecIP, new ServerSlotData("") }
+    };
+
 
     //Enum.GetNames(typeof(KnownServers)).Length; //Number of known Server slots, to be able to add more later
 
     /*
      * will be loaded from other config file
+     * ,and I am not going to refactor all of this as well, so just an indirection
+     * 
+     * Also those are domain names (+ port) not IPs
      */
-    public static string lastIP = "";
-    public static string newIP = "";
-    public static string IPslot1 = "- if you can read this";
-    public static string IPslot2 = "- NetworkConfig";
-    public static string IPslot3 = "- not loaded";
-    public static string IPslot4 = "- GO TO -> 'Options'";
-    public static string IPslot5 = "-   -> 'Reset Options'";
-    public static string selecIP = "-   -> PRESS: 'Reset Configurations'";
+    public static string LastIP { get => ServerSlots[ServerSlot.last].domain; set => ServerSlots[ServerSlot.last].domain = value; }
+    public static string NewIP { get => ServerSlots[ServerSlot.newIP].domain; set => ServerSlots[ServerSlot.newIP].domain = value; }
+    public static string IPslot1 { get => ServerSlots[ServerSlot.slot1].domain; set => ServerSlots[ServerSlot.slot1].domain = value; }
+    public static string IPslot2 { get => ServerSlots[ServerSlot.slot2].domain; set => ServerSlots[ServerSlot.slot2].domain = value; }
+    public static string IPslot3 { get => ServerSlots[ServerSlot.slot3].domain; set => ServerSlots[ServerSlot.slot3].domain = value; }
+    public static string IPslot4 { get => ServerSlots[ServerSlot.slot4].domain; set => ServerSlots[ServerSlot.slot4].domain = value; }
+    public static string IPslot5 { get => ServerSlots[ServerSlot.slot5].domain; set => ServerSlots[ServerSlot.slot5].domain = value; }
+    public static string SelecIP { get => ServerSlots[ServerSlot.selecIP].domain; set => ServerSlots[ServerSlot.selecIP].domain = value; }
+
+    /// <summary>
+    /// IF YOU NEED THIS DATA, USE THE <see cref="ServerSlotData.currentStatus"/> OF THE <see cref="ServerSlots"/> MEMBERS.<br/>
+    /// Holds the status of the stored Servers.<br/>
+    /// This is acts like a function <see cref="ServerSlot"/> -> <see cref="ServerStatus"/> with a dont-care value at index 0.<br/>
+    /// There are so many references to this abomination that I will leave it here and just update it, to be consistent with 
+    /// <see cref="ServerSlots"/>.
+    /// </summary>
+    public static int[] ServerRunningA = new int[10] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; 
+    //other, lastIP, newIP, IP1, IP2, IP3, selecIP, IP4, IP5,...} 
+    //0: offline, 1: Checking, 2: online, 3: NoNetworkAddress;
 
     //------
 
-    public static int[] ServerRunningA = new int[10] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; //other, lastIP, newIP, IP1, IP2, IP3, selecIP, IP4, IP5,...} //0: offline, 1: Checking, 2: online, 3: NoNetworkAddress;
-    public static bool[] ServerRunningA_test = new bool[10] { false, false, false, false, false, false, false, false, false, false }; //other, lastIP, newIP, IP1, IP2, IP3, selecIP, IP4, IP5,...}
-    public static double IPcheckGeneration = 0;
-    public static int CheckNetLoop = 1;
-    public static int[] CheckServerA = new int[10] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; // 1 => CommunicationEvents.lastIP, 2 => CommunicationEvents.newIP,3 => CommunicationEvents.IPslot1, 4 => CommunicationEvents.IPslot2,
-                                                                                    // 5 => CommunicationEvents.IPslot3, 6 => CommunicationEvents.selecIP, 7 => CommunicationEvents.IPslot4, 8 => CommunicationEvents.IPslot5,
-
+    
     public static bool autoOSrecognition = true;
 
     public static OperationSystem Opsys = OperationSystem.Windows; //Scripts
diff --git a/Assets/Scripts/Loading/StreamingAssetLoader.cs b/Assets/Scripts/Loading/StreamingAssetLoader.cs
index e8ad2dfa932003f47d6c0f271bbe1c622e765680..0fda4dd24e7c2d5540e20fc449e652a583627e17 100644
--- a/Assets/Scripts/Loading/StreamingAssetLoader.cs
+++ b/Assets/Scripts/Loading/StreamingAssetLoader.cs
@@ -117,39 +117,39 @@ public static bool checkFileExistence(string sourcepath, string filename)
 
     public static void NetworkJSON_Save()
     {
-        NetworkJSON myObject = new NetworkJSON();
+        NetworkJSON toSave = new NetworkJSON();
 
 
         //MyClass myObject = new MyClass();
-        myObject.newIP = CommunicationEvents.newIP;
-        myObject.lastIP = CommunicationEvents.lastIP;
-        myObject.IPslot1 = CommunicationEvents.IPslot1;
-        myObject.IPslot2 = CommunicationEvents.IPslot2;
-        myObject.IPslot3 = CommunicationEvents.IPslot3;
-        myObject.IPslot4 = CommunicationEvents.IPslot4;
-        myObject.IPslot5 = CommunicationEvents.IPslot5;
-        myObject.selecIP = CommunicationEvents.selecIP;
-        myObject.ControlMode = UIconfig.controlMode.ToString();
-        myObject.TouchMode = UIconfig.touchControlMode;
-        myObject.TAvisibility = UIconfig.TAvisibility;
-        myObject.autoOSrecognition = CommunicationEvents.autoOSrecognition;
-        myObject.autoSettingsAdaption = UIconfig.autoSettingsAdaption;
-        myObject.Opsys = CommunicationEvents.Opsys.ToString();
-        myObject.FrameITUIversion = UIconfig.FrameITUIversion;
-        myObject.InputManagerVersion = UIconfig.InputManagerVersion;
-        myObject.colliderScale_all = UIconfig.colliderScale_all;
-        myObject.cursorSize = UIconfig.cursorSize;
-        myObject.camRotatingSensitivity = UIconfig.camRotatingSensitivity;
-        myObject.MouseKeepingInWindow = UIconfig.MouseKeepingInWindow;
-        myObject.scrolldirection = UIconfig.scrolldirection;
-        myObject.scrollViewVersion = UIconfig.scrollViewVersion;
-
-
-
-    //Data storage
-    SafeCreateDirectory(Path.Combine(Application.persistentDataPath, ConfigDir));
+        toSave.newIP = CommunicationEvents.NewIP;
+        toSave.lastIP = CommunicationEvents.LastIP;
+        toSave.IPslot1 = CommunicationEvents.IPslot1;
+        toSave.IPslot2 = CommunicationEvents.IPslot2;
+        toSave.IPslot3 = CommunicationEvents.IPslot3;
+        toSave.IPslot4 = CommunicationEvents.IPslot4;
+        toSave.IPslot5 = CommunicationEvents.IPslot5;
+        toSave.selecIP = CommunicationEvents.SelecIP;
+        toSave.ControlMode = UIconfig.controlMode.ToString();
+        toSave.TouchMode = UIconfig.touchControlMode;
+        toSave.TAvisibility = UIconfig.TAvisibility;
+        toSave.autoOSrecognition = CommunicationEvents.autoOSrecognition;
+        toSave.autoSettingsAdaption = UIconfig.autoSettingsAdaption;
+        toSave.Opsys = CommunicationEvents.Opsys.ToString();
+        toSave.FrameITUIversion = UIconfig.FrameITUIversion;
+        toSave.InputManagerVersion = UIconfig.InputManagerVersion;
+        toSave.colliderScale_all = UIconfig.colliderScale_all;
+        toSave.cursorSize = UIconfig.cursorSize;
+        toSave.camRotatingSensitivity = UIconfig.camRotatingSensitivity;
+        toSave.MouseKeepingInWindow = UIconfig.MouseKeepingInWindow;
+        toSave.scrolldirection = UIconfig.scrolldirection;
+        toSave.scrollViewVersion = UIconfig.scrollViewVersion;
+
+
+
+        //Data storage
+        SafeCreateDirectory(Path.Combine(Application.persistentDataPath, ConfigDir));
         //string json = JsonUtility.ToJson(date);
-        string json = JsonUtility.ToJson(myObject);
+        string json = JsonUtility.ToJson(toSave);
         StreamWriter Writer = new StreamWriter(Path.Combine(Application.persistentDataPath, ConfigDir, ConfigFile_Network));
         Writer.Write(json);
         Writer.Flush();
@@ -321,167 +321,167 @@ public static void NetworkJSON_Load_x(string path)
         string json = reader.ReadToEnd();
         reader.Close();
 
-        NetworkJSONonlyString myObjsOnlyStrings = JsonUtility.FromJson<NetworkJSONonlyString>(json);
-        NetworkJSON myObjs = JsonUtility.FromJson<NetworkJSON>(json);
-        if (string.IsNullOrEmpty(myObjsOnlyStrings.newIP))
+        NetworkJSONonlyString loadedSettingsOnlyStrings = JsonUtility.FromJson<NetworkJSONonlyString>(json);
+        NetworkJSON loadedSettings = JsonUtility.FromJson<NetworkJSON>(json);
+        if (string.IsNullOrEmpty(loadedSettingsOnlyStrings.newIP))
         {
-            CommunicationEvents.newIP = "";
+            CommunicationEvents.NewIP = "";
         }
         else
         {
-            CommunicationEvents.newIP = myObjs.newIP;
+            CommunicationEvents.NewIP = loadedSettings.newIP;
         }
-        if (string.IsNullOrEmpty(myObjsOnlyStrings.lastIP))
+        if (string.IsNullOrEmpty(loadedSettingsOnlyStrings.lastIP))
         {
-            CommunicationEvents.lastIP = "";
+            CommunicationEvents.LastIP = "";
         }
         else
         {
-            CommunicationEvents.lastIP = myObjs.lastIP;
+            CommunicationEvents.LastIP = loadedSettings.lastIP;
         }
-        if (string.IsNullOrEmpty(myObjsOnlyStrings.IPslot1))
+        if (string.IsNullOrEmpty(loadedSettingsOnlyStrings.IPslot1))
         {
             CommunicationEvents.IPslot1 = "";
         }
         else
         {
-            CommunicationEvents.IPslot1 = myObjs.IPslot1;//myObjs.IPslot1;
+            CommunicationEvents.IPslot1 = loadedSettings.IPslot1;//myObjs.IPslot1;
         }
-        if (string.IsNullOrEmpty(myObjsOnlyStrings.IPslot2))
+        if (string.IsNullOrEmpty(loadedSettingsOnlyStrings.IPslot2))
         {
             CommunicationEvents.IPslot2 = "";//"Empty";
         }
         else
         {
-            CommunicationEvents.IPslot2 = myObjs.IPslot2;
+            CommunicationEvents.IPslot2 = loadedSettings.IPslot2;
         }
-        if (string.IsNullOrEmpty(myObjsOnlyStrings.IPslot3))
+        if (string.IsNullOrEmpty(loadedSettingsOnlyStrings.IPslot3))
         {
             CommunicationEvents.IPslot3 = "";
         }
         else
         {
-            CommunicationEvents.IPslot3 = myObjs.IPslot3;
+            CommunicationEvents.IPslot3 = loadedSettings.IPslot3;
         }
-        if (string.IsNullOrEmpty(myObjsOnlyStrings.IPslot4))
+        if (string.IsNullOrEmpty(loadedSettingsOnlyStrings.IPslot4))
         {
             CommunicationEvents.IPslot4= "";
         }
         else
         {
-            CommunicationEvents.IPslot4 = myObjs.IPslot4;
+            CommunicationEvents.IPslot4 = loadedSettings.IPslot4;
         }
-        if (string.IsNullOrEmpty(myObjsOnlyStrings.IPslot5))
+        if (string.IsNullOrEmpty(loadedSettingsOnlyStrings.IPslot5))
         {
             CommunicationEvents.IPslot5 = "";
         }
         else
         {
-            CommunicationEvents.IPslot5 = myObjs.IPslot5;
+            CommunicationEvents.IPslot5 = loadedSettings.IPslot5;
         }
-        if (string.IsNullOrEmpty(myObjsOnlyStrings.selecIP))
+        if (string.IsNullOrEmpty(loadedSettingsOnlyStrings.selecIP))
         {
-            CommunicationEvents.selecIP = "";
+            CommunicationEvents.SelecIP = "";
         }
         else
         {
-            CommunicationEvents.selecIP = myObjs.selecIP;
+            CommunicationEvents.SelecIP = loadedSettings.selecIP;
         }
-        if (string.IsNullOrEmpty(myObjsOnlyStrings.ControlMode))
+        if (string.IsNullOrEmpty(loadedSettingsOnlyStrings.ControlMode))
         {
         }
         else
         {
-            UIconfig.controlMode = (ControlMode)Enum.Parse(typeof(ControlMode), myObjs.ControlMode);
+            UIconfig.controlMode = (ControlMode)Enum.Parse(typeof(ControlMode), loadedSettings.ControlMode);
         }
-        if (string.IsNullOrEmpty(myObjsOnlyStrings.TouchMode))
+        if (string.IsNullOrEmpty(loadedSettingsOnlyStrings.TouchMode))
         {
         }
         else
         {
-            UIconfig.touchControlMode = myObjs.TouchMode;
+            UIconfig.touchControlMode = loadedSettings.TouchMode;
         }
-        if (string.IsNullOrEmpty(myObjsOnlyStrings.TAvisibility))
+        if (string.IsNullOrEmpty(loadedSettingsOnlyStrings.TAvisibility))
         {
         }
         else
         {
-            UIconfig.TAvisibility = myObjs.TAvisibility;
+            UIconfig.TAvisibility = loadedSettings.TAvisibility;
         }
-        if (string.IsNullOrEmpty(myObjsOnlyStrings.autoOSrecognition))
+        if (string.IsNullOrEmpty(loadedSettingsOnlyStrings.autoOSrecognition))
         {
         }
         else
         {
-            CommunicationEvents.autoOSrecognition = myObjs.autoOSrecognition;
+            CommunicationEvents.autoOSrecognition = loadedSettings.autoOSrecognition;
         }
-        if (string.IsNullOrEmpty(myObjsOnlyStrings.autoOSrecognition))
+        if (string.IsNullOrEmpty(loadedSettingsOnlyStrings.autoOSrecognition))
         {
         }
         else
         {
-            UIconfig.autoSettingsAdaption = myObjs.autoSettingsAdaption;
+            UIconfig.autoSettingsAdaption = loadedSettings.autoSettingsAdaption;
         }
-        if (string.IsNullOrEmpty(myObjsOnlyStrings.Opsys))
+        if (string.IsNullOrEmpty(loadedSettingsOnlyStrings.Opsys))
         {
         }
         else
         {
-            CommunicationEvents.Opsys = (OperationSystem)Enum.Parse(typeof(OperationSystem), myObjs.Opsys);
+            CommunicationEvents.Opsys = (OperationSystem)Enum.Parse(typeof(OperationSystem), loadedSettings.Opsys);
         }
-        if (string.IsNullOrEmpty(myObjsOnlyStrings.FrameITUIversion))
+        if (string.IsNullOrEmpty(loadedSettingsOnlyStrings.FrameITUIversion))
         {
         }
         else
         {
-            UIconfig.FrameITUIversion = myObjs.FrameITUIversion;
+            UIconfig.FrameITUIversion = loadedSettings.FrameITUIversion;
         }
-        if (string.IsNullOrEmpty(myObjsOnlyStrings.InputManagerVersion))
+        if (string.IsNullOrEmpty(loadedSettingsOnlyStrings.InputManagerVersion))
         {
         }
         else
         {
-            UIconfig.InputManagerVersion = myObjs.InputManagerVersion;
+            UIconfig.InputManagerVersion = loadedSettings.InputManagerVersion;
         }
-        if (string.IsNullOrEmpty(myObjsOnlyStrings.colliderScale_all))
+        if (string.IsNullOrEmpty(loadedSettingsOnlyStrings.colliderScale_all))
         {
 
         }
         else
         {
-            UIconfig.colliderScale_all = myObjs.colliderScale_all;
+            UIconfig.colliderScale_all = loadedSettings.colliderScale_all;
         }
-        if (string.IsNullOrEmpty(myObjsOnlyStrings.cursorSize))
+        if (string.IsNullOrEmpty(loadedSettingsOnlyStrings.cursorSize))
         {
         }
         else
         {
-            UIconfig.cursorSize = myObjs.cursorSize;
+            UIconfig.cursorSize = loadedSettings.cursorSize;
         }
-        if (string.IsNullOrEmpty(myObjsOnlyStrings.camRotatingSensitivity))
+        if (string.IsNullOrEmpty(loadedSettingsOnlyStrings.camRotatingSensitivity))
         {
         }
         else
         {
-            UIconfig.camRotatingSensitivity = myObjs.camRotatingSensitivity;
+            UIconfig.camRotatingSensitivity = loadedSettings.camRotatingSensitivity;
         }
-        if (string.IsNullOrEmpty(myObjsOnlyStrings.MouseKeepingInWindow))
+        if (string.IsNullOrEmpty(loadedSettingsOnlyStrings.MouseKeepingInWindow))
         {
         }
         else
         {
-            UIconfig.MouseKeepingInWindow = myObjs.MouseKeepingInWindow;
+            UIconfig.MouseKeepingInWindow = loadedSettings.MouseKeepingInWindow;
         }
-        if (string.IsNullOrEmpty(myObjsOnlyStrings.scrolldirection))
+        if (string.IsNullOrEmpty(loadedSettingsOnlyStrings.scrolldirection))
         {
         }
         else
         {
-            UIconfig.scrolldirection = myObjs.scrolldirection;
+            UIconfig.scrolldirection = loadedSettings.scrolldirection;
         }
-        if (! string.IsNullOrEmpty(myObjsOnlyStrings.scrollViewVersion))
+        if (! string.IsNullOrEmpty(loadedSettingsOnlyStrings.scrollViewVersion))
         {
-            UIconfig.scrollViewVersion = myObjs.scrollViewVersion;
+            UIconfig.scrollViewVersion = loadedSettings.scrollViewVersion;
         }
 
     }
diff --git a/Assets/Scripts/UI/NetwMenu/FindIP.cs b/Assets/Scripts/UI/NetwMenu/FindIP.cs
index a0f5624f46f1913d39aa70240f855f85b3fc0709..94cb23499974405ac77afa23db8ed8af7ccea489 100644
--- a/Assets/Scripts/UI/NetwMenu/FindIP.cs
+++ b/Assets/Scripts/UI/NetwMenu/FindIP.cs
@@ -1,6 +1,7 @@
 using UnityEngine;
 using UnityEngine.UI; //andr
 using static StreamingAssetLoader;
+using static CommunicationEvents;
 
 //[RequireComponent(typeof(Image))]
 //[SerializeField] private UnityEngine.UI.Image image = null;
@@ -91,12 +92,12 @@ void UpdateUI_2_f()
         //tempColB = GameObject.Find("NewServerSt").GetComponent<Button>().colors;
         //tempColB.pressedColor = colPressed;
         //tempColB.selectedColor = colSelect;
-        if (CommunicationEvents.ServerRunningA[2] == 0)
+        if (ServerSlots[ServerSlot.newIP].currentStatus == ServerStatus.offline)
         {
 
             //tempColB.normalColor = colOffline;
             NewServerSt_GObj.GetComponent<Text>().color = Color.black;
-            if (string.IsNullOrEmpty(CommunicationEvents.newIP))// || CommunicationEvents.lastIP.Length < 4)
+            if (string.IsNullOrEmpty(CommunicationEvents.NewIP))// || CommunicationEvents.lastIP.Length < 4)
             {
                 NewServerSt_GObj.GetComponent<Text>().text = "Status: no network address";
             }
@@ -107,7 +108,7 @@ void UpdateUI_2_f()
         }
         else
         {
-            if (CommunicationEvents.ServerRunningA[2] == 2)
+            if (ServerSlots[ServerSlot.newIP].currentStatus == ServerStatus.online)
             {
 
                 NewServerSt_GObj.GetComponent<Text>().color = Color.green;
@@ -117,7 +118,7 @@ void UpdateUI_2_f()
             else
             {
                 NewServerSt_GObj.GetComponent<Text>().color = Color.black;
-                if (string.IsNullOrEmpty(CommunicationEvents.newIP))// || CommunicationEvents.lastIP.Length < 4)
+                if (string.IsNullOrEmpty(CommunicationEvents.NewIP))// || CommunicationEvents.lastIP.Length < 4)
                 {
                     NewServerSt_GObj.GetComponent<Text>().text = "Status: no network address";
                 }
@@ -132,7 +133,7 @@ void UpdateUI_2_f()
         //GameObject.Find("NewServerSt"fff).GetComponent<Button>().colors = tempColB;
         //Text txt = transform.Find("InFieldIP_Text").GetComponent<Text>();
         //txt.text = mainInputField.text;
-        CommunicationEvents.newIP = mainInputField.text;
+        CommunicationEvents.NewIP = mainInputField.text;
 
         //CommunicationEvents.newIP = transform.Find("InFieldIP_Text").GetComponent<Text>().text;
     }
@@ -140,25 +141,12 @@ void UpdateUI_2_f()
 
     public void SetText(string text)
     {
+        CommunicationEvents.SelecIP = CommunicationEvents.NewIP;
+        StartCoroutine(CommunicationEvents.ServerSlots[CommunicationEvents.ServerSlot.selecIP].UpdateServerStatus());
 
-
-
-
-
-
-
-        CommunicationEvents.ServerRunningA[6] = 1;
-        CommunicationEvents.selecIP = CommunicationEvents.newIP;
-
-        CommunicationEvents.IPcheckGeneration++;
         //Safefieldmenu();
         goBackButtonOPTM();
 
-
-
-
-
-
     }
 
 
diff --git a/Assets/Scripts/UI/NetwMenu/LaunchMenu_mobile.cs b/Assets/Scripts/UI/NetwMenu/LaunchMenu_mobile.cs
index 34c0521ad575dd3df39e81071ed0e6682598ac13..c48f58655a2f26a9014796f528ffcd1d8c3664f3 100644
--- a/Assets/Scripts/UI/NetwMenu/LaunchMenu_mobile.cs
+++ b/Assets/Scripts/UI/NetwMenu/LaunchMenu_mobile.cs
@@ -3,7 +3,7 @@
 using UnityEngine.EventSystems;
 using UnityEngine.SceneManagement;
 //using static CheckServer;
-///using static CommunicationEvents;
+using static CommunicationEvents;
 using static StreamingAssetLoader;
 
 
@@ -42,7 +42,7 @@ private void Update()
     public void StartWithLastServerButton()
     {
 
-        if (CommunicationEvents.ServerRunningA[6] == 2)
+        if (ServerSlots[ServerSlot.selecIP].currentStatus == ServerStatus.online)
         {
             startNextSceneFunctionNewGame();
         }
@@ -83,7 +83,7 @@ private void ClearUIC()
     public static void startNextSceneFunctionNewGame()
     {
         NetworkJSON_Save();
-        CommunicationEvents.ServerAdress = "http://" + CommunicationEvents.selecIP;
+        CommunicationEvents.ServerAdress = "http://" + CommunicationEvents.SelecIP;
         CommunicationEvents.ServerRunning = true;
         //UnityEngine.Debug.Log("StartMainMenu");
         //UnityEngine.Debug.Log("CommunicationEvents.ServerAdress = " + CommunicationEvents.ServerAdress);
diff --git a/Assets/Scripts/UI/NetwMenu/SaveNetwAddr_mobile.cs b/Assets/Scripts/UI/NetwMenu/SaveNetwAddr_mobile.cs
index 2d398b0066d1f45e0c2235771548dbe14b535f45..e9239b936d65e65d8dbd60393b713c83fd5e1412 100644
--- a/Assets/Scripts/UI/NetwMenu/SaveNetwAddr_mobile.cs
+++ b/Assets/Scripts/UI/NetwMenu/SaveNetwAddr_mobile.cs
@@ -69,7 +69,7 @@ void UpdateUI_3_f()
         tempColB.pressedColor = colPressed;
         tempColB.selectedColor = colSelect;
 
-        if (CommunicationEvents.ServerRunningA[3] == 0)
+        if (ServerSlots[ServerSlot.slot1].currentStatus == ServerStatus.offline)
         {
             tempColB.normalColor = colOffline;
             if (string.IsNullOrEmpty(CommunicationEvents.IPslot1))// || CommunicationEvents.IPslot1.Length < 1)
@@ -93,7 +93,7 @@ void UpdateUI_3_f()
         }
         else
         {
-            if (CommunicationEvents.ServerRunningA[3] == 2)
+            if (ServerSlots[ServerSlot.slot1].currentStatus == ServerStatus.online)
             {
                 print("test" + Ip1_sup);
                 if (Ip1_sup.Equals(CommunicationEvents.IPslot1))
@@ -132,7 +132,7 @@ void UpdateUI_4_f()
         tempColB = SaveSlot2_B_GObj.GetComponent<Button>().colors;
         tempColB.pressedColor = colPressed;
         tempColB.selectedColor = colSelect;
-        if (CommunicationEvents.ServerRunningA[4] == 0)
+        if (ServerSlots[ServerSlot.slot2].currentStatus == ServerStatus.offline)
         {
             tempColB.normalColor = colOffline;
             if (string.IsNullOrEmpty(CommunicationEvents.IPslot2))// || CommunicationEvents.IPslot2.Length<1)
@@ -153,7 +153,7 @@ void UpdateUI_4_f()
         }
         else
         {
-            if (CommunicationEvents.ServerRunningA[4] == 2)
+            if (ServerSlots[ServerSlot.slot2].currentStatus == ServerStatus.online)
             {
                 if (Ip2_sup.Equals(CommunicationEvents.IPslot2))
                 {
@@ -182,7 +182,7 @@ void UpdateUI_5_f()
         tempColB = SaveSlot3_B_GObj.GetComponent<Button>().colors;
         tempColB.pressedColor = colPressed;
         tempColB.selectedColor = colSelect;
-        if (CommunicationEvents.ServerRunningA[5] == 0)
+        if (ServerSlots[ServerSlot.slot3].currentStatus == ServerStatus.offline)
         {
             tempColB.normalColor = colOffline;
             if (string.IsNullOrEmpty(CommunicationEvents.IPslot3))// || CommunicationEvents.IPslot3.Length < 1)
@@ -203,7 +203,7 @@ void UpdateUI_5_f()
         }
         else
         {
-            if (CommunicationEvents.ServerRunningA[5] == 2)
+            if (ServerSlots[ServerSlot.slot3].currentStatus == ServerStatus.online)
             {
                 if (Ip3_sup.Equals(CommunicationEvents.IPslot3))
                 {
@@ -232,7 +232,7 @@ void UpdateUI_7_f()
         tempColB = SaveSlot4_B_GObj.GetComponent<Button>().colors;
         tempColB.pressedColor = colPressed;
         tempColB.selectedColor = colSelect;
-        if (CommunicationEvents.ServerRunningA[7] == 0)
+        if (ServerSlots[ServerSlot.slot4].currentStatus == ServerStatus.offline)
         {
             tempColB.normalColor = colOffline;
             if (string.IsNullOrEmpty(CommunicationEvents.IPslot4))// || CommunicationEvents.IPslot3.Length < 1)
@@ -253,7 +253,7 @@ void UpdateUI_7_f()
         }
         else
         {
-            if (CommunicationEvents.ServerRunningA[7] == 2)
+            if (ServerSlots[ServerSlot.slot1].currentStatus == ServerStatus.online)
             {
                 if (Ip4_sup.Equals(CommunicationEvents.IPslot4))
                 {
@@ -282,7 +282,7 @@ void UpdateUI_8_f()
         tempColB = SaveSlot3_B_GObj.GetComponent<Button>().colors;
         tempColB.pressedColor = colPressed;
         tempColB.selectedColor = colSelect;
-        if (CommunicationEvents.ServerRunningA[8] == 0)
+        if (ServerSlots[ServerSlot.slot5].currentStatus == ServerStatus.offline)
         {
             tempColB.normalColor = colOffline;
             if (string.IsNullOrEmpty(CommunicationEvents.IPslot5))// || CommunicationEvents.IPslot3.Length < 1)
@@ -303,7 +303,7 @@ void UpdateUI_8_f()
         }
         else
         {
-            if (CommunicationEvents.ServerRunningA[8] == 2)
+            if (ServerSlots[ServerSlot.slot5].currentStatus == ServerStatus.offline)
             {
                 if (Ip5_sup.Equals(CommunicationEvents.IPslot5))
                 {
@@ -326,13 +326,30 @@ void UpdateUI_8_f()
 
     }
 
+    /// <summary>
+    /// All the Functions below can be consolidated into this one. 
+    /// But changing every button to do so is annoying, and I am refactoring other stuff.
+    /// </summary>
+    /// <param name="slot"> The ServerSlot to replace with the new IP </param>
+    public void SaveIntoSlot(ServerSlot slot)
+    {
+        ServerSlots[slot].domain = NewIP;
+        //CommunicationEvents.ServerAdress = "http://" +  CommunicationEvents.ServerAddress1;
+        StartCoroutine(ServerSlots[slot].UpdateServerStatus());
+        Update();
+        NetworkJSON_Save();
+        Refresh_pressed();
+
+        //CSform.CheckIPAdr();
+
+    }
 
     public void Slot1_s()
     {
-        CommunicationEvents.IPslot1 = CommunicationEvents.newIP;
+        CommunicationEvents.IPslot1 = CommunicationEvents.NewIP;
         //CommunicationEvents.ServerAdress = "http://" +  CommunicationEvents.ServerAddress1;
         Update();
-        CheckServerA[3] = 1;
+        StartCoroutine(ServerSlots[ServerSlot.slot1].UpdateServerStatus());
         NetworkJSON_Save();
         Refresh_pressed();
 
@@ -344,11 +361,9 @@ public void Slot2_s()
     {
 
         //CommunicationEvents.ServerAdress = "http://" +  CommunicationEvents.ServerAddress2;
-        CommunicationEvents.IPslot2 = CommunicationEvents.newIP;
+        CommunicationEvents.IPslot2 = CommunicationEvents.NewIP;
         Update();
-
-        CheckServerA[4] = 1;
-
+        StartCoroutine(ServerSlots[ServerSlot.slot2].UpdateServerStatus());
         NetworkJSON_Save();
         Refresh_pressed();
         //CSform.CheckIPAdr();
@@ -360,10 +375,9 @@ public void Slot3_s()
     {
         //CheckServer ani = new CheckServer();//= obj.AddComponent<CheckServer>();
         // ani.StartCheck();
-        CommunicationEvents.IPslot3 = CommunicationEvents.newIP;
+        CommunicationEvents.IPslot3 = CommunicationEvents.NewIP;
         Update();
-        CheckServerA[5] = 1;
-
+        StartCoroutine(ServerSlots[ServerSlot.slot3].UpdateServerStatus());
         Refresh_pressed();
 
         NetworkJSON_Save();
@@ -374,10 +388,9 @@ public void Slot4_s()
     {
         //CheckServer ani = new CheckServer();//= obj.AddComponent<CheckServer>();
         // ani.StartCheck();
-        CommunicationEvents.IPslot4 = CommunicationEvents.newIP;
+        CommunicationEvents.IPslot4 = CommunicationEvents.NewIP;
         Update();
-        CheckServerA[7] = 1;
-
+        StartCoroutine(ServerSlots[ServerSlot.slot4].UpdateServerStatus());
         Refresh_pressed();
 
         NetworkJSON_Save();
@@ -388,10 +401,9 @@ public void Slot5_s()
     {
         //CheckServer ani = new CheckServer();//= obj.AddComponent<CheckServer>();
         // ani.StartCheck();
-        CommunicationEvents.IPslot5 = CommunicationEvents.newIP;
+        CommunicationEvents.IPslot5 = CommunicationEvents.NewIP;
         Update();
-        CheckServerA[8] = 1;
-
+        StartCoroutine(ServerSlots[ServerSlot.slot5].UpdateServerStatus());
         Refresh_pressed();
 
         NetworkJSON_Save();
diff --git a/Assets/Scripts/UI/NetwMenu/SelectNetwServer_mobile.cs b/Assets/Scripts/UI/NetwMenu/SelectNetwServer_mobile.cs
index 3f924d0ffa94f85934fc079bfe9680eb885194fc..8955e33f12e34028152ed43318c302fe90bba4f9 100644
--- a/Assets/Scripts/UI/NetwMenu/SelectNetwServer_mobile.cs
+++ b/Assets/Scripts/UI/NetwMenu/SelectNetwServer_mobile.cs
@@ -2,6 +2,7 @@
 using UnityEngine.UI; //andr
 using static StreamingAssetLoader;
 using static UIconfig;
+using static CommunicationEvents;
 
 public class SelectNetwServer_mobile : MonoBehaviour
 {
@@ -22,6 +23,9 @@ void Start()
         Update();
     }
 
+    /// <summary>
+    /// All of this could be way more generic now using <see cref="CommunicationEvents.ServerSlots"/> and friends.
+    /// </summary>
     private void Update()
     {
 
@@ -35,91 +39,15 @@ private void Update()
         UpdateUI_8_f();
     }
 
-    public void SlotLPS()
+    /// <summary>
+    /// There once was a version for every slot here. Since they were all unused I collapsed them
+    /// into this generic form. Sould you need this, consider turning 
+    /// <see cref="ServerSlot.selecIP"/> into a <see cref="ServerSlot"/> variable instead. 
+    /// </summary>
+    public void Slot(ServerSlotComponent slot)
     {
-
-        //CommunicationEvents.ServerAdress = "http://" +  CommunicationEvents.ServerAddress1;
-
-
-        CommunicationEvents.ServerRunningA[6] = CommunicationEvents.ServerRunningA[1];
-        CommunicationEvents.selecIP = CommunicationEvents.lastIP;
-        CommunicationEvents.IPcheckGeneration++;
-        NetworkJSON_Save();
-
-        //SceneManager.LoadScene("Andr_TreeWorld");       
-        //SceneManager.LoadScene("MainMenu");
-
-
-    }
-
-    public void Slot1()
-    {
-
-        //CommunicationEvents.ServerAdress = "http://" +  CommunicationEvents.ServerAddress1;
-
-        CommunicationEvents.ServerRunningA[6] = CommunicationEvents.ServerRunningA[3];
-        CommunicationEvents.selecIP = CommunicationEvents.IPslot1;
-        CommunicationEvents.IPcheckGeneration++;
-        NetworkJSON_Save();
-
-        //SceneManager.LoadScene("Andr_TreeWorld");       
-        //SceneManager.LoadScene("MainMenu");
-
-
-    }
-
-    public void Slot2()
-    {
-
-        //CommunicationEvents.ServerAdress = "http://" +  CommunicationEvents.ServerAddress2;
-
-        CommunicationEvents.ServerRunningA[6] = CommunicationEvents.ServerRunningA[4];
-        CommunicationEvents.selecIP = CommunicationEvents.IPslot2;
-        CommunicationEvents.IPcheckGeneration++;
-
+        ServerSlots[ServerSlot.selecIP] = ServerSlots[slot.serverSlot];
         NetworkJSON_Save();
-
-        //SceneManager.LoadScene("Andr_TreeWorld");       
-        //SceneManager.LoadScene("MainMenu");
-    }
-
-    public void Slot3()
-    {
-        //CheckServer ani = new CheckServer();//= obj.AddComponent<CheckServer>();
-        // ani.StartCheck();
-
-        CommunicationEvents.ServerRunningA[6] = CommunicationEvents.ServerRunningA[5];
-        CommunicationEvents.selecIP = CommunicationEvents.IPslot3;
-        CommunicationEvents.IPcheckGeneration++;
-        NetworkJSON_Save();
-
-
-    }
-
-    public void Slot4()
-    {
-        //CheckServer ani = new CheckServer();//= obj.AddComponent<CheckServer>();
-        // ani.StartCheck();
-
-        CommunicationEvents.ServerRunningA[6] = CommunicationEvents.ServerRunningA[7];
-        CommunicationEvents.selecIP = CommunicationEvents.IPslot4;
-        CommunicationEvents.IPcheckGeneration++;
-        NetworkJSON_Save();
-
-
-    }
-
-    public void Slot5()
-    {
-        //CheckServer ani = new CheckServer();//= obj.AddComponent<CheckServer>();
-        // ani.StartCheck();
-
-        CommunicationEvents.ServerRunningA[6] = CommunicationEvents.ServerRunningA[8];
-        CommunicationEvents.selecIP = CommunicationEvents.IPslot5;
-        CommunicationEvents.IPcheckGeneration++;
-        NetworkJSON_Save();
-
-
     }
 
     void UpdateUI_1_f()
@@ -133,13 +61,13 @@ void UpdateUI_1_f()
             tempColB.normalColor = colOffline;
 
             LPS_B_GObj.GetComponent<Button>().colors = tempColB; // new Color(148, 229, 156);
-            if (string.IsNullOrEmpty(CommunicationEvents.lastIP))// || CommunicationEvents.lastIP.Length < 4)
+            if (string.IsNullOrEmpty(CommunicationEvents.LastIP))// || CommunicationEvents.lastIP.Length < 4)
             {
                 LPS_B_GObj.GetComponentInChildren<Text>().text = "No game played before";
             }
             else
             {
-                LPS_B_GObj.GetComponentInChildren<Text>().text = "Last played on (offline) \n" + CommunicationEvents.lastIP;
+                LPS_B_GObj.GetComponentInChildren<Text>().text = "Last played on (offline) \n" + CommunicationEvents.LastIP;
             }
         }
         else
@@ -148,7 +76,7 @@ void UpdateUI_1_f()
             if (CommunicationEvents.ServerRunningA[1] == 2)
             {
                 tempColB.normalColor = colOnline;
-                LPS_B_GObj.GetComponentInChildren<Text>().text = "Last played on (online) \n" + CommunicationEvents.lastIP;
+                LPS_B_GObj.GetComponentInChildren<Text>().text = "Last played on (online) \n" + CommunicationEvents.LastIP;
             }
             else
             {
diff --git a/Assets/Scripts/UI/NetwMenu/SelectedNetwServer_mobile.cs b/Assets/Scripts/UI/NetwMenu/SelectedNetwServer_mobile.cs
index 06cd8b696f728e834c61f836b2b7758f369a0ad8..9a62a3066e7265d392baeb9ce99c844a041c7074 100644
--- a/Assets/Scripts/UI/NetwMenu/SelectedNetwServer_mobile.cs
+++ b/Assets/Scripts/UI/NetwMenu/SelectedNetwServer_mobile.cs
@@ -42,7 +42,7 @@ void UpdateUI_6_f()
             SSstGame.GetComponentInChildren<Text>().color = colClear;
             //GameObject.Find("StartGwoS").GetComponent<Image>().color = colClear;
             //GameObject.Find("SGwoST").GetComponent<Text>().color = colClear;
-            if (string.IsNullOrEmpty(CommunicationEvents.selecIP))//; || ())
+            if (string.IsNullOrEmpty(CommunicationEvents.SelecIP))//; || ())
             {
                 SelNAddrTI.GetComponent<Text>().text = "< empty >";
                 //GameObject.Find("newNAddrTI").GetComponent<Text>().text = "< empty >";
@@ -53,7 +53,7 @@ void UpdateUI_6_f()
             }
             else
             {
-                SelNAddrTI.GetComponent<Text>().text = CommunicationEvents.selecIP;
+                SelNAddrTI.GetComponent<Text>().text = CommunicationEvents.SelecIP;
                 //GameObject.Find("newNAddrTI").GetComponent<Text>().text = CommunicationEvents.selecIP;
 
                 if (CommunicationEvents.ServerRunningA[6] == 0)
@@ -75,7 +75,7 @@ void UpdateUI_6_f()
             if (CommunicationEvents.ServerRunningA[6] == 2)
             {
                 SelNAddrW.GetComponent<Image>().color = colOnline;
-                SelNAddrTI.GetComponent<Text>().text = CommunicationEvents.selecIP;
+                SelNAddrTI.GetComponent<Text>().text = CommunicationEvents.SelecIP;
                 SelNAddrTS.GetComponent<Text>().text = "Status: Online";
                 SSstGame.GetComponent<Image>().color = Color.white;
                 SSstGame.GetComponentInChildren<Text>().color = Color.black;
@@ -88,7 +88,7 @@ void UpdateUI_6_f()
                 SSstGame.GetComponentInChildren<Text>().color = colClear;
                 SelNAddrW.GetComponent<Image>().color = colOffline;
 
-                if (string.IsNullOrEmpty(CommunicationEvents.selecIP))//; || ())
+                if (string.IsNullOrEmpty(CommunicationEvents.SelecIP))//; || ())
                 {
                     SelNAddrTI.GetComponent<Text>().text = "< empty >";
 
@@ -100,7 +100,7 @@ void UpdateUI_6_f()
 
 
 
-                    SelNAddrTI.GetComponent<Text>().text = CommunicationEvents.selecIP;
+                    SelNAddrTI.GetComponent<Text>().text = CommunicationEvents.SelecIP;
                     SelNAddrTS.GetComponent<Text>().text = "Status: checking";
 
                 }
diff --git a/Assets/Scripts/UI/NetwMenu/SelectedNewNetwServer_mobile.cs b/Assets/Scripts/UI/NetwMenu/SelectedNewNetwServer_mobile.cs
index bf0014ae2ecc30418aa13763c24758748210e8f7..dcbdfc6685a504826571c489ca42a4b5533f05bd 100644
--- a/Assets/Scripts/UI/NetwMenu/SelectedNewNetwServer_mobile.cs
+++ b/Assets/Scripts/UI/NetwMenu/SelectedNewNetwServer_mobile.cs
@@ -42,14 +42,14 @@ void UpdateUI_6_f()
             StartGwoS.GetComponentInChildren<Text>().color = colClear;
             //GameObject.Find("StartGwoS").GetComponent<Image>().color = colClear;
             //GameObject.Find("SGwoST").GetComponent<Text>().color = colClear;
-            if (string.IsNullOrEmpty(CommunicationEvents.selecIP))//; || ())
+            if (string.IsNullOrEmpty(CommunicationEvents.SelecIP))//; || ())
             {
                 NewNAddrTI.GetComponent<Text>().text = "< empty >";
                 NewNAddrTS.GetComponent<Text>().text = "Status: no ip-address";
             }
             else
             {
-                NewNAddrTI.GetComponent<Text>().text = CommunicationEvents.selecIP;
+                NewNAddrTI.GetComponent<Text>().text = CommunicationEvents.SelecIP;
 
 
                 if (CommunicationEvents.ServerRunningA[6] == 0)
@@ -71,7 +71,7 @@ void UpdateUI_6_f()
             if (CommunicationEvents.ServerRunningA[6] == 2)
             {
                 NewNAddrW.GetComponent<Image>().color = colOnline;
-                NewNAddrTI.GetComponent<Text>().text = CommunicationEvents.selecIP;
+                NewNAddrTI.GetComponent<Text>().text = CommunicationEvents.SelecIP;
                 NewNAddrTS.GetComponent<Text>().text = "Status: Online";
                 StartGwoS.GetComponent<Image>().color = Color.white;
                 StartGwoS.GetComponentInChildren<Text>().color = Color.black;
@@ -83,7 +83,7 @@ void UpdateUI_6_f()
                 StartGwoS.GetComponentInChildren<Text>().color = colClear;
                 NewNAddrW.GetComponent<Image>().color = colOffline;
 
-                if (string.IsNullOrEmpty(CommunicationEvents.selecIP))//; || ())
+                if (string.IsNullOrEmpty(CommunicationEvents.SelecIP))//; || ())
                 {
                     NewNAddrTI.GetComponent<Text>().text = "< empty >";
 
@@ -94,7 +94,7 @@ void UpdateUI_6_f()
                 {
 
 
-                    NewNAddrTI.GetComponent<Text>().text = CommunicationEvents.selecIP;
+                    NewNAddrTI.GetComponent<Text>().text = CommunicationEvents.SelecIP;
                     NewNAddrTS.GetComponent<Text>().text = "Status: unknown";//"Status: checking";
                 }
 
diff --git a/Assets/Scripts/UI/NetwMenu/StartMenu_mobile.cs b/Assets/Scripts/UI/NetwMenu/StartMenu_mobile.cs
index 264b5dd9454b4ab36f0dfb4ddaf799615e93480b..a2da1cc898a624603d0277b2136f115eaf13658a 100644
--- a/Assets/Scripts/UI/NetwMenu/StartMenu_mobile.cs
+++ b/Assets/Scripts/UI/NetwMenu/StartMenu_mobile.cs
@@ -25,6 +25,7 @@ public class StartMenu_mobile : MonoBehaviour
 
     private void Awake()
     {
+        CommunicationEvents.LastIP = CommunicationEvents.SelecIP;
         ScreenOptimization();
         //GObj_text.text = "1: "+  Application.streamingAssetsPath + " " + Application.persistentDataPath + " " + Application.dataPath;
         toChild1();
@@ -36,12 +37,11 @@ private void Awake()
         GObj_text.text = Application.platform + " -> " + CommunicationEvents.Opsys + "";
         //GObj_text.text = "2: " + Application.streamingAssetsPath + " " + Application.persistentDataPath + " " + Application.dataPath;
         //Debug.Log(Application.streamingAssetsPath);
-        //CheckServerA[1] = 1;
-        //CheckServerA[2] = 1;
-        //CheckServerA[3] = 1;
-        for(int i=0; i<CheckServerA.Length; i++)
+
+        //Check for all stored Servers, whether they are online
+        foreach (ServerSlotData server in ServerSlots.Values)
         {
-            CheckServerA[i] = 1;
+            StartCoroutine(server.UpdateServerStatus());
         }
 
 
@@ -242,7 +242,6 @@ void ScreenOptimization()
 
         UIconfig.screHeight = Screen.height;
         UIconfig.screWidth = Screen.width;
-        CommunicationEvents.lastIP = CommunicationEvents.selecIP;
 
 
         /* //ScreenMatchMode.MatchWidthOrHeight:
diff --git a/Assets/ServerSlotComponent.cs b/Assets/ServerSlotComponent.cs
new file mode 100644
index 0000000000000000000000000000000000000000..b49310bf43f54cbcc2b1e1f8b973d99ef1ad69e8
--- /dev/null
+++ b/Assets/ServerSlotComponent.cs
@@ -0,0 +1,11 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class ServerSlotComponent : MonoBehaviour
+{
+    /// <summary>
+    /// Unity cannot just deal with Enums as values for buttons, so this is the workaround
+    /// </summary>
+    public CommunicationEvents.ServerSlot serverSlot;
+}
diff --git a/Assets/ServerSlotComponent.cs.meta b/Assets/ServerSlotComponent.cs.meta
new file mode 100644
index 0000000000000000000000000000000000000000..e069cd1f43c5e9cad217bf9912d1fbd2d370838b
--- /dev/null
+++ b/Assets/ServerSlotComponent.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 7a16e25375fcb774d9ea23be50b1f5e3
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/UserSettings/EditorUserSettings.asset b/UserSettings/EditorUserSettings.asset
index 4818e8906af27e1c99fdb3b29b32e2fad070c33a..d771e60b96d3c18f4c074a6af6030a3efcdf3bb9 100644
--- a/UserSettings/EditorUserSettings.asset
+++ b/UserSettings/EditorUserSettings.asset
@@ -6,31 +6,31 @@ EditorUserSettings:
   serializedVersion: 4
   m_ConfigSettings:
     RecentlyUsedSceneGuid-0:
-      value: 5354015500565a0f5458597740265c4441164c2e7b7072637f7e4e35b5b5643d
+      value: 01550655000d5008580a5e7412710e44464e4129787125667a7a1f37e0e66d39
       flags: 0
     RecentlyUsedSceneGuid-1:
-      value: 01550655000d5008580a5e7412710e44464e4129787125667a7a1f37e0e66d39
+      value: 5a530c5653060c0a0c0b5f2140770f4443154979297a76347c2a1e30b5b33068
       flags: 0
     RecentlyUsedSceneGuid-2:
-      value: 5a530c5653060c0a0c0b5f2140770f4443154979297a76347c2a1e30b5b33068
+      value: 530055020302595d550a0e7447220b4415161a7c2f782432282a4f31e6b93068
       flags: 0
     RecentlyUsedSceneGuid-3:
-      value: 530055020302595d550a0e7447220b4415161a7c2f782432282a4f31e6b93068
+      value: 0702005254070d5d5d5a5d7145210f444116487c282d7f357e7a1e66b6b0313a
       flags: 0
     RecentlyUsedSceneGuid-4:
-      value: 0702005254070d5d5d5a5d7145210f444116487c282d7f357e7a1e66b6b0313a
+      value: 00540c020302515f0b0f5f2711265c44171519797e7c7463787d4d63e1b8303c
       flags: 0
     RecentlyUsedSceneGuid-5:
-      value: 00540c020302515f0b0f5f2711265c44171519797e7c7463787d4d63e1b8303c
+      value: 0709560454055c0d0c5e5c2444740b4413154a72792d22627c714963e0b6373d
       flags: 0
     RecentlyUsedSceneGuid-6:
-      value: 520107035d0c510c080d547215760b4413154d2e7a2c226129281c65e3b63768
+      value: 5b01035553515d0e0b0f5b7415725d444e4f1d2b2e782332757f4863e4e6673c
       flags: 0
     RecentlyUsedSceneGuid-7:
-      value: 57505505560608585a56557116730644404e4d7b7c7b7562787e4f66e4b1313e
+      value: 520107035d0c510c080d547215760b4413154d2e7a2c226129281c65e3b63768
       flags: 0
     RecentlyUsedSceneGuid-8:
-      value: 0709560454055c0d0c5e5c2444740b4413154a72792d22627c714963e0b6373d
+      value: 57505505560608585a56557116730644404e4d7b7c7b7562787e4f66e4b1313e
       flags: 0
     RecentlyUsedSceneGuid-9:
       value: 0502505152005e020c0d0e2446275e44144f19287f707e362c7c4b60b2b9353c