If we're unloading a Core because the scene has changed, save it first.
If we're unloading a Core because the scene has changed, save it first.

--- a/VOIDFlightMaster.cs
+++ b/VOIDFlightMaster.cs
@@ -55,8 +55,9 @@
 
 		public void Update()
 		{
-			if (!HighLogic.LoadedSceneIsEditor)
+			if (!HighLogic.LoadedSceneIsFlight && this.Core != null)
 			{
+				this.Core.SaveConfig ();
 				this.Core = null;
 				VOID_Core.Reset();
 				return;
@@ -120,8 +121,9 @@
 
 		public void Update()
 		{
-			if (!HighLogic.LoadedSceneIsEditor)
+			if (!HighLogic.LoadedSceneIsEditor && this.Core != null)
 			{
+				this.Core.SaveConfig ();
 				this.Core = null;
 				VOID_EditorCore.Reset();
 				return;

--- a/VOID_SaveValue.cs
+++ b/VOID_SaveValue.cs
@@ -77,10 +77,17 @@
 			VOID_SaveValue<T> r = new VOID_SaveValue<T>();
 			r.value = v;
 			r.type = v.GetType();
+
 			if (VOID_Core.Initialized)
 			{
 				VOID_Core.Instance.configDirty = true;
 			}
+
+			if (VOID_EditorCore.Initialized)
+			{
+				VOID_EditorCore.Instance.configDirty = true;
+			}
+
 			return r;
 		}