From 35194fd4fb1ae69d8d5f0acce8da2a16491f48e3 Mon Sep 17 00:00:00 2001
From: Paul-Walcher <paulwalcher12@gmail.com>
Date: Mon, 24 Jun 2024 10:58:29 +0200
Subject: [PATCH] Added SphereFact

---
 Assets/Resources/Prefabs/Cake.prefab.meta     |   2 +-
 Assets/Resources/Prefabs/Facts/Sphere.prefab  | 350 ++++++++++++++++++
 .../Prefabs/Facts/Sphere.prefab.meta          |  12 +
 .../UI/Icons/FactIcons/DisplaySphere.prefab   | 295 +++++++++++++++
 .../Icons/FactIcons/DisplaySphere.prefab.meta |   7 +
 Assets/Scenes/Worlds/RiverWorld.unity         |  24 ++
 .../FactHandling/FactSpawner.cs               |  21 +-
 .../FactHandling/Facts/Fact.cs                |   5 +
 .../FactHandling/Facts/SphereFact.cs          | 151 ++++++++
 .../FactHandling/Facts/SphereFact.cs.meta     |  11 +
 .../InventoryStuff/Items/images/Sphere.png    |   3 +
 .../Items/images/Sphere.png.meta              | 122 ++++++
 .../CommunicationProtocoll/MMTConstants.cs    |  11 +-
 13 files changed, 1010 insertions(+), 4 deletions(-)
 create mode 100644 Assets/Resources/Prefabs/Facts/Sphere.prefab
 create mode 100644 Assets/Resources/Prefabs/Facts/Sphere.prefab.meta
 create mode 100644 Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplaySphere.prefab
 create mode 100644 Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplaySphere.prefab.meta
 create mode 100644 Assets/Scripts/InteractionEngine/FactHandling/Facts/SphereFact.cs
 create mode 100644 Assets/Scripts/InteractionEngine/FactHandling/Facts/SphereFact.cs.meta
 create mode 100644 Assets/Scripts/InventoryStuff/Items/images/Sphere.png
 create mode 100644 Assets/Scripts/InventoryStuff/Items/images/Sphere.png.meta

diff --git a/Assets/Resources/Prefabs/Cake.prefab.meta b/Assets/Resources/Prefabs/Cake.prefab.meta
index 3e6cc0bc..6ecf346f 100644
--- a/Assets/Resources/Prefabs/Cake.prefab.meta
+++ b/Assets/Resources/Prefabs/Cake.prefab.meta
@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: b0ea7d7beb330a245bd999e7c4cab227
+guid: 00c8824bbfc9a4c47ac6b0ccb51c333c
 PrefabImporter:
   externalObjects: {}
   userData: 
diff --git a/Assets/Resources/Prefabs/Facts/Sphere.prefab b/Assets/Resources/Prefabs/Facts/Sphere.prefab
new file mode 100644
index 00000000..4385f03c
--- /dev/null
+++ b/Assets/Resources/Prefabs/Facts/Sphere.prefab
@@ -0,0 +1,350 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &2561781244333147470
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1380396336186306334}
+  - component: {fileID: 4239463486727728565}
+  - component: {fileID: 1073589650764508292}
+  m_Layer: 15
+  m_Name: SphereVisual
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &1380396336186306334
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2561781244333147470}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 3390467403729316765}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &4239463486727728565
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2561781244333147470}
+  m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!23 &1073589650764508292
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2561781244333147470}
+  m_Enabled: 1
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_StaticShadowCaster: 0
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 2
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 2100000, guid: 8ae9adf4dc782964387385c1e8c0eb72, type: 2}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 1
+  m_SelectedEditorRenderState: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+  m_AdditionalVertexStreams: {fileID: 0}
+--- !u!1 &6839596689016440457
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 3390467403729316765}
+  - component: {fileID: 1812690906255965161}
+  - component: {fileID: 6950663371922587874}
+  m_Layer: 15
+  m_Name: Sphere
+  m_TagString: Selectable
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &3390467403729316765
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6839596689016440457}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 1
+  m_Children:
+  - {fileID: 6662482376097614856}
+  - {fileID: 1380396336186306334}
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1812690906255965161
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6839596689016440457}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 405087c38b8537e43bcc99727c5325ec, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  Meshs:
+  - {fileID: 0}
+  - {fileID: 0}
+  - {fileID: 0}
+  - {fileID: 0}
+  NormalOffset: []
+  AlternateNormals: 0
+  radius: 1
+  sideCount: 500
+--- !u!114 &6950663371922587874
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6839596689016440457}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 626c435b76e0d334f959ede8b54b07ac, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  _URI: 
+  FactText:
+  - {fileID: 7177577245137766670}
+  StringLabelFormats: []
+  Default: {fileID: 2100000, guid: 8ae9adf4dc782964387385c1e8c0eb72, type: 2}
+  Selected: {fileID: 2100000, guid: 34a95baef388bb8458c97a626b732f9f, type: 2}
+  Hint: {fileID: 2100000, guid: 8621b710d7d1d5041bc6bfd0cc37cdff, type: 2}
+  Solution: {fileID: 2100000, guid: 2a003f0807acc1142965bb21bdc824f6, type: 2}
+  renderer: []
+--- !u!1 &8645286316326201467
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 6662482376097614856}
+  - component: {fileID: 5986843358289336505}
+  - component: {fileID: 7177577245137766670}
+  - component: {fileID: 2586578973517344970}
+  m_Layer: 10
+  m_Name: LabelText
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &6662482376097614856
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8645286316326201467}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0.4}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 3390467403729316765}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 2, y: 0.5}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!23 &5986843358289336505
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8645286316326201467}
+  m_Enabled: 1
+  m_CastShadows: 0
+  m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
+  m_StaticShadowCaster: 0
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 2
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
+  m_SelectedEditorRenderState: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+  m_AdditionalVertexStreams: {fileID: 0}
+--- !u!114 &7177577245137766670
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8645286316326201467}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_text: Test
+  m_isRightToLeft: 0
+  m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+  m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+  m_fontSharedMaterials: []
+  m_fontMaterial: {fileID: 0}
+  m_fontMaterials: []
+  m_fontColor32:
+    serializedVersion: 2
+    rgba: 4294967295
+  m_fontColor: {r: 1, g: 1, b: 1, a: 1}
+  m_enableVertexGradient: 0
+  m_colorMode: 3
+  m_fontColorGradient:
+    topLeft: {r: 1, g: 1, b: 1, a: 1}
+    topRight: {r: 1, g: 1, b: 1, a: 1}
+    bottomLeft: {r: 1, g: 1, b: 1, a: 1}
+    bottomRight: {r: 1, g: 1, b: 1, a: 1}
+  m_fontColorGradientPreset: {fileID: 0}
+  m_spriteAsset: {fileID: 0}
+  m_tintAllSprites: 0
+  m_StyleSheet: {fileID: 0}
+  m_TextStyleHashCode: -1183493901
+  m_overrideHtmlColors: 0
+  m_faceColor:
+    serializedVersion: 2
+    rgba: 4294967295
+  m_fontSize: 4
+  m_fontSizeBase: 4
+  m_fontWeight: 400
+  m_enableAutoSizing: 0
+  m_fontSizeMin: 18
+  m_fontSizeMax: 72
+  m_fontStyle: 0
+  m_HorizontalAlignment: 2
+  m_VerticalAlignment: 256
+  m_textAlignment: 65535
+  m_characterSpacing: 0
+  m_wordSpacing: 0
+  m_lineSpacing: 0
+  m_lineSpacingMax: 0
+  m_paragraphSpacing: 0
+  m_charWidthMaxAdj: 0
+  m_enableWordWrapping: 1
+  m_wordWrappingRatios: 0.4
+  m_overflowMode: 0
+  m_linkedTextComponent: {fileID: 0}
+  parentLinkedComponent: {fileID: 0}
+  m_enableKerning: 1
+  m_enableExtraPadding: 0
+  checkPaddingRequired: 0
+  m_isRichText: 1
+  m_parseCtrlCharacters: 1
+  m_isOrthographic: 0
+  m_isCullingEnabled: 0
+  m_horizontalMapping: 0
+  m_verticalMapping: 0
+  m_uvLineOffset: 0
+  m_geometrySortingOrder: 0
+  m_IsTextObjectScaleStatic: 0
+  m_VertexBufferAutoSizeReduction: 1
+  m_useMaxVisibleDescender: 1
+  m_pageToDisplay: 1
+  m_margin: {x: 0, y: 0, z: 0, w: 0}
+  m_isUsingLegacyAnimationComponent: 0
+  m_isVolumetricText: 0
+  _SortingLayer: 0
+  _SortingLayerID: 0
+  _SortingOrder: 0
+  m_hasFontAssetChanged: 0
+  m_renderer: {fileID: 5986843358289336505}
+  m_maskType: 0
+--- !u!114 &2586578973517344970
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8645286316326201467}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 8cf5a358dacd3b54ab093ee289dd9ba2, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  Cam1: {fileID: 0}
+  Cam2: {fileID: 0}
+  BackUPCam: {fileID: 0}
diff --git a/Assets/Resources/Prefabs/Facts/Sphere.prefab.meta b/Assets/Resources/Prefabs/Facts/Sphere.prefab.meta
new file mode 100644
index 00000000..ea1eb522
--- /dev/null
+++ b/Assets/Resources/Prefabs/Facts/Sphere.prefab.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+<<<<<<<< HEAD:Assets/Resources/Prefabs/Facts/Square.prefab.meta
+guid: a43491988c3f0d14f8286a67e73ace1e
+PrefabImporter:
+========
+guid: ffa3cc5a8ea56dc4b8c5e907de1f715a
+DefaultImporter:
+>>>>>>>> master:Assets/StreamingAssets/StreamToPersistentDataPath/Config/Network_Backup_withAuto.JSON.meta
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplaySphere.prefab b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplaySphere.prefab
new file mode 100644
index 00000000..ebca2063
--- /dev/null
+++ b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplaySphere.prefab
@@ -0,0 +1,295 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &6228575905544016151
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 8695166600416321831}
+  - component: {fileID: 1460661521238322908}
+  - component: {fileID: 363367878266426999}
+  m_Layer: 5
+  m_Name: point
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &8695166600416321831
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6228575905544016151}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 8780569031657450116}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 2, y: -22.5}
+  m_SizeDelta: {x: 100, y: 50}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &1460661521238322908
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6228575905544016151}
+  m_CullTransparentMesh: 1
+--- !u!114 &363367878266426999
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6228575905544016151}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_text: 
+  m_isRightToLeft: 0
+  m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+  m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+  m_fontSharedMaterials: []
+  m_fontMaterial: {fileID: 0}
+  m_fontMaterials: []
+  m_fontColor32:
+    serializedVersion: 2
+    rgba: 4278255884
+  m_fontColor: {r: 0.047169805, g: 0.00244749, b: 0.00244749, a: 1}
+  m_enableVertexGradient: 0
+  m_colorMode: 3
+  m_fontColorGradient:
+    topLeft: {r: 1, g: 1, b: 1, a: 1}
+    topRight: {r: 1, g: 1, b: 1, a: 1}
+    bottomLeft: {r: 1, g: 1, b: 1, a: 1}
+    bottomRight: {r: 1, g: 1, b: 1, a: 1}
+  m_fontColorGradientPreset: {fileID: 0}
+  m_spriteAsset: {fileID: 0}
+  m_tintAllSprites: 0
+  m_StyleSheet: {fileID: 0}
+  m_TextStyleHashCode: -1183493901
+  m_overrideHtmlColors: 0
+  m_faceColor:
+    serializedVersion: 2
+    rgba: 4294967295
+  m_fontSize: 36
+  m_fontSizeBase: 36
+  m_fontWeight: 400
+  m_enableAutoSizing: 0
+  m_fontSizeMin: 18
+  m_fontSizeMax: 72
+  m_fontStyle: 0
+  m_HorizontalAlignment: 2
+  m_VerticalAlignment: 256
+  m_textAlignment: 65535
+  m_characterSpacing: 0
+  m_wordSpacing: 0
+  m_lineSpacing: 0
+  m_lineSpacingMax: 0
+  m_paragraphSpacing: 0
+  m_charWidthMaxAdj: 0
+  m_enableWordWrapping: 1
+  m_wordWrappingRatios: 0.4
+  m_overflowMode: 0
+  m_linkedTextComponent: {fileID: 0}
+  parentLinkedComponent: {fileID: 0}
+  m_enableKerning: 1
+  m_enableExtraPadding: 0
+  checkPaddingRequired: 0
+  m_isRichText: 1
+  m_parseCtrlCharacters: 1
+  m_isOrthographic: 1
+  m_isCullingEnabled: 0
+  m_horizontalMapping: 0
+  m_verticalMapping: 0
+  m_uvLineOffset: 0
+  m_geometrySortingOrder: 0
+  m_IsTextObjectScaleStatic: 0
+  m_VertexBufferAutoSizeReduction: 0
+  m_useMaxVisibleDescender: 1
+  m_pageToDisplay: 1
+  m_margin: {x: 23.59851, y: 9.75061, z: 19.35138, w: 0}
+  m_isUsingLegacyAnimationComponent: 0
+  m_isVolumetricText: 0
+  m_hasFontAssetChanged: 0
+  m_baseMaterial: {fileID: 0}
+  m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
+--- !u!1 &6636443472981757786
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 8780569031657450116}
+  - component: {fileID: 6436200217209768079}
+  - component: {fileID: 1894013120851118185}
+  - component: {fileID: 2562591540153244817}
+  - component: {fileID: 3896398116007953758}
+  - component: {fileID: -8545268462245846538}
+  - component: {fileID: 9193188298529412557}
+  - component: {fileID: 8785484605073047058}
+  m_Layer: 5
+  m_Name: DisplaySphere
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &8780569031657450116
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6636443472981757786}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children:
+  - {fileID: 8695166600416321831}
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 100, y: 100}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &6436200217209768079
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6636443472981757786}
+  m_CullTransparentMesh: 0
+--- !u!114 &1894013120851118185
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6636443472981757786}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 21300000, guid: 13f4e064448182b49ba38b5035a1f45a, type: 3}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!225 &2562591540153244817
+CanvasGroup:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6636443472981757786}
+  m_Enabled: 1
+  m_Alpha: 1
+  m_Interactable: 1
+  m_BlocksRaycasts: 1
+  m_IgnoreParentGroups: 0
+--- !u!114 &3896398116007953758
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6636443472981757786}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: a091cb23127eb7347955cb7f747af431, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  dragged: 0
+--- !u!114 &-8545268462245846538
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6636443472981757786}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: a1ed516d861fa2c45a2b1767d1217acb, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  factExplorerPrefab: {fileID: 5592893003942163674, guid: ff7415df1aac19c41a7855516a108a8a,
+    type: 3}
+--- !u!114 &9193188298529412557
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6636443472981757786}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 88f8f222eb0a4a246908bde097a8726e, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  favoriteDisplayPrefab: {fileID: 2810062559722195091, guid: 0b34469213856774980670de85a7d4a0,
+    type: 3}
+--- !u!114 &8785484605073047058
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6636443472981757786}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: f1ce2973f9bfc68479d5f3e2065ca729, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  _URI: 
+  FactText:
+  - {fileID: 363367878266426999}
+  StringLabelFormats:
+  - '{1}'
+  Default: {fileID: 2100000, guid: 3420edeac2b11384b9977bd98f565b24, type: 2}
+  Selected: {fileID: 2100000, guid: f4a2ffc31b2faf446bf2a86047fbc9f8, type: 2}
+  Hint: {fileID: 2100000, guid: 923bc3e7bd8ae2745859a620359be2f8, type: 2}
+  Solution: {fileID: 2100000, guid: 79cc7db91c9641d4aa8a1513d6ca85d1, type: 2}
+  Images:
+  - {fileID: 1894013120851118185}
diff --git a/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplaySphere.prefab.meta b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplaySphere.prefab.meta
new file mode 100644
index 00000000..c7ca201a
--- /dev/null
+++ b/Assets/Resources/Prefabs/UI/Icons/FactIcons/DisplaySphere.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: a01b31d4759ad91468b8d2180891f1fa
+PrefabImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Scenes/Worlds/RiverWorld.unity b/Assets/Scenes/Worlds/RiverWorld.unity
index 38c1df44..ef4fbc29 100644
--- a/Assets/Scenes/Worlds/RiverWorld.unity
+++ b/Assets/Scenes/Worlds/RiverWorld.unity
@@ -60718,6 +60718,12 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 2872381745209199267, guid: b07552db700124a4680401e6fb94c186,
+        type: 3}
+      propertyPath: Sphere
+      value: 
+      objectReference: {fileID: 537518992981541273, guid: 8174216d5fd9a9744ad2e05d475c071a,
+        type: 3}
     - target: {fileID: 2872381745209199267, guid: b07552db700124a4680401e6fb94c186,
         type: 3}
       propertyPath: Square
@@ -60742,6 +60748,12 @@ PrefabInstance:
       value: 
       objectReference: {fileID: 537518992981541273, guid: 998991ab9f28e764691da393b005cab3,
         type: 3}
+    - target: {fileID: 2872381745209199267, guid: b07552db700124a4680401e6fb94c186,
+        type: 3}
+      propertyPath: ActualSphere
+      value: 
+      objectReference: {fileID: 6839596689016440457, guid: a43491988c3f0d14f8286a67e73ace1e,
+        type: 3}
     - target: {fileID: 2872381745209199267, guid: b07552db700124a4680401e6fb94c186,
         type: 3}
       propertyPath: SimpleCircle
@@ -62905,6 +62917,12 @@ PrefabInstance:
       value: 
       objectReference: {fileID: 3080888058940174091, guid: 389563c758e86d848b3341576b90b7e4,
         type: 3}
+    - target: {fileID: 6898471569945669422, guid: b07552db700124a4680401e6fb94c186,
+        type: 3}
+      propertyPath: PrefabDataConfig.Array.data[33]
+      value: 
+      objectReference: {fileID: 6636443472981757786, guid: a01b31d4759ad91468b8d2180891f1fa,
+        type: 3}
     - target: {fileID: 6898471569945669422, guid: b07552db700124a4680401e6fb94c186,
         type: 3}
       propertyPath: PrefabDataConfig.Array.data[34]
@@ -63359,6 +63377,12 @@ PrefabInstance:
       value: 
       objectReference: {fileID: 3080888058940174091, guid: 389563c758e86d848b3341576b90b7e4,
         type: 3}
+    - target: {fileID: 7743735189960969443, guid: b07552db700124a4680401e6fb94c186,
+        type: 3}
+      propertyPath: PrefabDataConfig.Array.data[33]
+      value: 
+      objectReference: {fileID: 6636443472981757786, guid: a01b31d4759ad91468b8d2180891f1fa,
+        type: 3}
     - target: {fileID: 7743735189960969443, guid: b07552db700124a4680401e6fb94c186,
         type: 3}
       propertyPath: PrefabDataConfig.Array.data[34]
diff --git a/Assets/Scripts/InteractionEngine/FactHandling/FactSpawner.cs b/Assets/Scripts/InteractionEngine/FactHandling/FactSpawner.cs
index 8667bda1..3061efe9 100644
--- a/Assets/Scripts/InteractionEngine/FactHandling/FactSpawner.cs
+++ b/Assets/Scripts/InteractionEngine/FactHandling/FactSpawner.cs
@@ -11,7 +11,6 @@
 public class FactSpawner : MonoBehaviour
 {
     public GameObject
-        Sphere,
         TestPoint,
         Line,
         Ray,
@@ -22,7 +21,10 @@ public GameObject
         Rectangle,
         Circle,
         SimpleCircle,
-        Triangle;
+        Triangle,
+        Sphere,
+        ActualSphere
+        ;
 
     private void OnEnable()
     {
@@ -69,10 +71,25 @@ public void SpawnFactRepresentation(Fact fact)
                 SpawnSimpleCircle(simpleCircleFact); break;
             case TriangleFact2 triangleFact:
                 SpawnTriangle(triangleFact); break;
+            case SphereFact sphereFact:
+                SpawnSphere(sphereFact); break;
             default: break;
         };
     }
 
+    public void SpawnSphere(SphereFact fact){
+
+        GameObject sphere = GameObject.Instantiate(ActualSphere);
+        fact.WorldRepresentation = sphere.GetComponent<FactObject3D>();
+        fact.WorldRepresentation.Fact = fact;
+
+        sphere.transform.SetPositionAndRotation(fact.Position, Quaternion.identity);
+        sphere.transform.localScale = Vector3.Scale(sphere.transform.localScale, fact.LocalScale);
+
+        sphere.GetComponentInChildren<TextMeshPro>().text = fact.GetLabel(StageStatic.stage.factState) + " = " + System.Math.Round(fact.Volume, 2) + "m³";
+
+
+    }
     public void SpawnRectangle(RectangleFact fact){
 
         GameObject rectangle = GameObject.Instantiate(Rectangle);
diff --git a/Assets/Scripts/InteractionEngine/FactHandling/Facts/Fact.cs b/Assets/Scripts/InteractionEngine/FactHandling/Facts/Fact.cs
index 43dd9f67..672c6fcc 100644
--- a/Assets/Scripts/InteractionEngine/FactHandling/Facts/Fact.cs
+++ b/Assets/Scripts/InteractionEngine/FactHandling/Facts/Fact.cs
@@ -83,6 +83,10 @@ public static class ParsingDictionary
             MMTConstants.SimpleCircleType,
             SimpleCircleFact.parseFact
         },
+        {
+            MMTConstants.SphereType,
+            SphereFact.parseFact
+        },
     };
 
     // TODO: get rid of this
@@ -126,6 +130,7 @@ public static class ParsingDictionary
 [JsonSubtypes.KnownSubType(typeof(RectangleFact), nameof(RectangleFact))]
 [JsonSubtypes.KnownSubType(typeof(TriangleFact2), nameof(TriangleFact2))]
 [JsonSubtypes.KnownSubType(typeof(SimpleCircleFact), nameof(SimpleCircleFact))]
+[JsonSubtypes.KnownSubType(typeof(SphereFact), nameof(SphereFact))]
 public abstract class Fact
 {
     [JsonIgnore]
diff --git a/Assets/Scripts/InteractionEngine/FactHandling/Facts/SphereFact.cs b/Assets/Scripts/InteractionEngine/FactHandling/Facts/SphereFact.cs
new file mode 100644
index 00000000..0b1aa356
--- /dev/null
+++ b/Assets/Scripts/InteractionEngine/FactHandling/Facts/SphereFact.cs
@@ -0,0 +1,151 @@
+using Newtonsoft.Json;
+using REST_JSON_API;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Linq;
+using UnityEngine;
+
+/// <summary>
+/// Point in 3D Space
+/// </summary>
+public class SphereFact : FactWrappedCRTP<SphereFact>
+{
+
+
+    //used points
+    public string PidM, PidT;
+
+    public Vector3 M, T;
+
+    public float Volume = 0.0F;
+    public float Radius = 0.0F;
+
+
+    public PointFact GetM {get =>  (PointFact)FactRecorder.AllFacts[PidM];}
+    public PointFact GetT {get =>  (PointFact)FactRecorder.AllFacts[PidT];}
+    protected void calculate_vectors(){
+
+        M = ((PointFact)FactRecorder.AllFacts[PidM]).Point + Vector3.zero;
+        T = ((PointFact)FactRecorder.AllFacts[PidT]).Point + Vector3.zero;
+
+        Debug.Log(M);
+        Debug.Log(T);
+
+        Radius = Vector3.Distance(M, T);
+        Volume = 4/3 * (Mathf.PI) * (Radius * Radius * Radius);
+
+        float dist = 2*Radius;
+        Vector3 scale = new Vector3(dist, dist, dist);
+        
+        LocalScale = scale;
+
+        Position =  M;
+        
+    }
+
+    public SphereFact() : base(){
+        this.PidM = null;
+        this.PidT = null;
+    }
+    [JsonConstructor]
+    public SphereFact( string PidM, string PidT) : base()
+    {
+        this.PidM = PidM;
+        this.PidT = PidT;
+
+        calculate_vectors();
+    }
+
+    /// <summary>
+    /// Bypasses initialization of new MMT %Fact by using existend URI, _which is not checked for existence_.
+    /// <see cref="Normal"/> set to <c>Vector3.up</c>
+    /// </summary>
+    /// <param name="Point">sets <see cref="Point"/></param>
+    /// <param name="ServerDefinition">MMT URI as OMS</param>
+    public SphereFact(string PidM, string PidT, SOMDoc ServerDefinition) : base()
+    {
+        this.PidM = PidM;
+        this.PidT = PidT;
+
+        this.ServerDefinition = ServerDefinition;
+
+        calculate_vectors();
+    }
+
+    /// \copydoc Fact.parseFact(ScrollFact)
+    public new static IEnumerator parseFact(List<Fact> ret, MMTFact fact)
+    {
+        if (((MMTGeneralFact)fact).defines is not OMA df)
+            yield break;
+
+        OMS pointM, pointT;
+
+        pointM = (OMS)df.arguments[0];
+        pointT = (OMS)df.arguments[1];
+
+        string PidM = pointM.uri;
+        string PidT = pointT.uri;
+
+        
+
+        ret.Add(new SphereFact(PidM, PidT));
+
+        //ParsingDictionary.parseTermsToId.TryAdd(defines.ToString(), fact.@ref.uri);
+        //ret.Add(new PointFact(SOMDoc.MakeVector3(defines), fact.@ref));
+    }
+
+
+    /// \copydoc Fact.hasDependentFacts
+    public override bool HasDependentFacts => true;
+
+    /// \copydoc Fact.getDependentFactIds
+    protected override string[] GetDependentFactIds()
+        => new string[] { PidM, PidT};
+
+    /// \copydoc Fact.GetHashCode
+    /* public override int GetHashCode()
+        => this.Point.GetHashCode();
+    */
+    protected override void RecalculateTransform()
+    {
+        calculate_vectors();
+    }
+    /// \copydoc Fact.Equivalent(Fact, Fact)
+    protected override bool EquivalentWrapped(SphereFact f1, SphereFact f2){
+        
+        return (
+
+                    Math3d.IsApproximatelyEqual(f1.M, f2.M)
+                && Math3d.IsApproximatelyEqual(f1.T, f2.T)
+
+        );
+
+    }
+
+    public bool isEqual(SphereFact f2){
+        return EquivalentWrapped(this, f2);
+    }
+
+    protected override Fact _ReInitializeMe(Dictionary<string, string> old_to_new){
+        
+        return new SphereFact(this.PidM, this.PidT);
+
+    }
+
+    public override MMTFact MakeMMTDeclaration()
+    {
+        SOMDoc tp = new OMS(MMTConstants.SphereType);
+
+        return new MMTGeneralFact(_LastLabel, tp, Defines());
+    }
+
+    public override SOMDoc Defines()
+        => new OMA(
+                new OMS(MMTConstants.SphereCons),
+                new[] {
+                        new OMS(PidM),
+                        new OMS(PidT),
+                }
+            );
+}
\ No newline at end of file
diff --git a/Assets/Scripts/InteractionEngine/FactHandling/Facts/SphereFact.cs.meta b/Assets/Scripts/InteractionEngine/FactHandling/Facts/SphereFact.cs.meta
new file mode 100644
index 00000000..e4c5608b
--- /dev/null
+++ b/Assets/Scripts/InteractionEngine/FactHandling/Facts/SphereFact.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: facad00ef6d6a8e4da72bd4c2b2e1318
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Scripts/InventoryStuff/Items/images/Sphere.png b/Assets/Scripts/InventoryStuff/Items/images/Sphere.png
new file mode 100644
index 00000000..a6b57520
--- /dev/null
+++ b/Assets/Scripts/InventoryStuff/Items/images/Sphere.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:76f6eeb7a69189af5918221338841026d3b6e04d464998b3cd33ec059b33932c
+size 4686
diff --git a/Assets/Scripts/InventoryStuff/Items/images/Sphere.png.meta b/Assets/Scripts/InventoryStuff/Items/images/Sphere.png.meta
new file mode 100644
index 00000000..8f5d5a9d
--- /dev/null
+++ b/Assets/Scripts/InventoryStuff/Items/images/Sphere.png.meta
@@ -0,0 +1,122 @@
+fileFormatVersion: 2
+guid: 13f4e064448182b49ba38b5035a1f45a
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  ignoreMasterTextureLimit: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 0
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 256
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Server
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+    nameFileIdTable: {}
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Scripts/MMTServer/CommunicationProtocoll/MMTConstants.cs b/Assets/Scripts/MMTServer/CommunicationProtocoll/MMTConstants.cs
index 7b17c42c..90850a18 100644
--- a/Assets/Scripts/MMTServer/CommunicationProtocoll/MMTConstants.cs
+++ b/Assets/Scripts/MMTServer/CommunicationProtocoll/MMTConstants.cs
@@ -56,6 +56,10 @@ public static class MMTConstants
         public static readonly string SimpleCircleType = "http://mathhub.info/FrameIT/frameworld?CircleType?circleType";
         public static readonly string SimpleCircleScroll = "http://mathhub.info/FrameIT/frameworld?SimpleCircleScroll";
 
+        public static readonly string SphereCons = "http://mathhub.info/FrameIT/frameworld?SphereType?sphereCons";
+        public static readonly string SphereType = "http://mathhub.info/FrameIT/frameworld?SphereType?sphereType";
+        public static readonly string SphereScroll = "http://mathhub.info/FrameIT/frameworld?SphereScroll";
+
         public static readonly string CircleType3d = "http://mathhub.info/FrameIT/frameworld?FrameITCircle?circleType3D";
         public static readonly string MkCircle3d = "http://mathhub.info/FrameIT/frameworld?FrameITCircle?circle3D";
         public static readonly string TriangleMiddlePoint = "http://mathhub.info/FrameIT/frameworld?FrameITTriangles?triangleMidPointWrapper";
@@ -261,7 +265,12 @@ public static class MMTConstants
             { typeof(string).ToString(),
                 typeof(string) },
             { typeof(Vector3).ToString(),
-                typeof(Vector3) }
+                typeof(Vector3) },
+            
+            {
+                SphereType, 
+                typeof(SphereFact)
+            },
         };
         public static readonly IReadOnlyDictionary<Type, string> TYPE_TO_OMS = OMS_TO_TYPE.ReverseKeyValInto(new()
         { // **Overrides**
-- 
GitLab