diff --git a/NewHorizons/Builder/General/RFVolumeBuilder.cs b/NewHorizons/Builder/General/RFVolumeBuilder.cs
index 1d4815a9..c5826e44 100644
--- a/NewHorizons/Builder/General/RFVolumeBuilder.cs
+++ b/NewHorizons/Builder/General/RFVolumeBuilder.cs
@@ -43,7 +43,8 @@ namespace NewHorizons.Builder.General
owrb.SetAttachedReferenceFrameVolume(RFV);
- rfGO.SetActive(!module.hideInMap);
+ if (!module.enabled) GameObject.Destroy(rfGO);
+ else rfGO.SetActive(!module.hideInMap);
}
}
}
diff --git a/NewHorizons/Builder/Orbital/FocalPointBuilder.cs b/NewHorizons/Builder/Orbital/FocalPointBuilder.cs
index 18b055f1..a9810eda 100644
--- a/NewHorizons/Builder/Orbital/FocalPointBuilder.cs
+++ b/NewHorizons/Builder/Orbital/FocalPointBuilder.cs
@@ -59,6 +59,7 @@ namespace NewHorizons.Builder.Orbital
fakeMassConfig.name = config.name + "_FakeBarycenterMass";
fakeMassConfig.Base.soiOverride = 0;
fakeMassConfig.Base.hasMapMarker = false;
+ fakeMassConfig.ReferenceFrame.enabled = false;
fakeMassConfig.ReferenceFrame.hideInMap = true;
fakeMassConfig.Orbit = new OrbitModule();
diff --git a/NewHorizons/Components/CloakSectorController.cs b/NewHorizons/Components/CloakSectorController.cs
index e7322cdd..09f50776 100644
--- a/NewHorizons/Components/CloakSectorController.cs
+++ b/NewHorizons/Components/CloakSectorController.cs
@@ -119,7 +119,7 @@ namespace NewHorizons.Components
_cloak._cloakVisualsEnabled = false;
}
- public void SetReferenceFrameVolumeActive(bool active) => _cloak._referenceFrameVolume.gameObject.SetActive(active);
+ public void SetReferenceFrameVolumeActive(bool active) => _cloak._referenceFrameVolume?.gameObject.SetActive(active);
public void EnableReferenceFrameVolume() => SetReferenceFrameVolumeActive(true);
public void DisableReferenceFrameVolume() => SetReferenceFrameVolumeActive(false);
diff --git a/NewHorizons/External/Configs/PlanetConfig.cs b/NewHorizons/External/Configs/PlanetConfig.cs
index 5ab65904..5de8b2ce 100644
--- a/NewHorizons/External/Configs/PlanetConfig.cs
+++ b/NewHorizons/External/Configs/PlanetConfig.cs
@@ -201,7 +201,7 @@ namespace NewHorizons.External.Configs
if (Base.isSatellite) Base.showMinimap = false;
- if (!Base.hasReferenceFrame) ReferenceFrame.hideInMap = true;
+ if (!Base.hasReferenceFrame) ReferenceFrame.enabled = false;
if (childrenToDestroy != null) removeChildren = childrenToDestroy;
diff --git a/NewHorizons/External/Modules/ReferenceFrameModule.cs b/NewHorizons/External/Modules/ReferenceFrameModule.cs
index 88adda68..0704366a 100644
--- a/NewHorizons/External/Modules/ReferenceFrameModule.cs
+++ b/NewHorizons/External/Modules/ReferenceFrameModule.cs
@@ -10,6 +10,11 @@ namespace NewHorizons.External.Modules
[JsonObject]
public class ReferenceFrameModule
{
+ ///
+ /// Allows the object to be targeted.
+ ///
+ [DefaultValue(true)] public bool enabled = true;
+
///
/// Stop the object from being targeted on the map.
///