Added csproj to see if I can't make my workflow better.
Added csproj to see if I can't make my workflow better.

file:b/VOID.csproj (new)
--- /dev/null
+++ b/VOID.csproj
@@ -1,1 +1,98 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug_win</Configuration>
+    <ProductVersion>10.0.0</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{45ACC1CC-942C-4A66-BFC7-8BE375938B18}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <RootNamespace>VOID</RootNamespace>
+    <AssemblyName>VOID</AssemblyName>
+    <CodePage>65001</CodePage>
+    <UseMSBuildEngine>False</UseMSBuildEngine>
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug_win|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug</OutputPath>
+    <DefineConstants>DEBUG; TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <ConsolePause>false</ConsolePause>
+    <CustomCommands>
+      <CustomCommands>
+        <Command type="AfterBuild" command="xcopy /Y ${TargetFile} ..\..\..\Games\KSP_win\GameData\VOID\Plugins\" />
+      </CustomCommands>
+    </CustomCommands>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release_win|AnyCPU' ">
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Release</OutputPath>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <ConsolePause>false</ConsolePause>
+    <DefineConstants>TRACE</DefineConstants>
+    <CustomCommands>
+      <CustomCommands>
+        <Command type="AfterBuild" command="xcopy /Y ${TargetFile} ..\..\..\Games\KSP_win\GameData\VOID\Plugins\" />
+      </CustomCommands>
+    </CustomCommands>
+  </PropertyGroup>
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+  <ItemGroup>
+    <Compile Include="IVOID_Module.cs" />
+    <Compile Include="VOIDFlightMaster.cs" />
+    <Compile Include="VOID_Core.cs" />
+    <Compile Include="VOID_Module.cs" />
+    <Compile Include="VOID_HUD.cs" />
+    <Compile Include="VOID_SaveValue.cs" />
+    <Compile Include="VOID_Orbital.cs" />
+    <Compile Include="VOID_SurfAtmo.cs" />
+    <Compile Include="VOID_VesselInfo.cs" />
+    <Compile Include="VOID_Transfer.cs" />
+    <Compile Include="VOID_CBInfoBrowser.cs" />
+    <Compile Include="VOID_Rendezvous.cs" />
+    <Compile Include="VOID_VesselRegister.cs" />
+    <Compile Include="VOID_DataLogger.cs" />
+    <Compile Include="VOID_EditorCore.cs" />
+    <Compile Include="VOID_EditorHUD.cs" />
+    <Compile Include="VOID_DataValue.cs" />
+    <Compile Include="VOIDEditorMaster.cs" />
+    <Compile Include="VOID_Tools.cs" />
+    <Compile Include="VOID_Localization.cs" />
+  </ItemGroup>
+  <ProjectExtensions>
+    <MonoDevelop>
+      <Properties>
+        <Policies>
+          <TextStylePolicy FileWidth="120" TabsToSpaces="False" EolMarker="Unix" inheritsSet="VisualStudio" inheritsScope="text/plain" scope="text/plain" />
+        </Policies>
+      </Properties>
+    </MonoDevelop>
+  </ProjectExtensions>
+  <ItemGroup>
+    <Reference Include="Assembly-CSharp">
+      <HintPath>..\..\..\Games\KSP_win\KSP_Data\Managed\Assembly-CSharp.dll</HintPath>
+    </Reference>
+    <Reference Include="System">
+      <HintPath>..\..\..\Games\KSP_win\KSP_Data\Managed\System.dll</HintPath>
+    </Reference>
+    <Reference Include="UnityEngine">
+      <HintPath>..\..\..\Games\KSP_win\KSP_Data\Managed\UnityEngine.dll</HintPath>
+    </Reference>
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\VesselSimulator\VesselSimulator.csproj">
+      <Project>{30FD6C0B-D36E-462F-B0FF-F0FAC9C666CF}</Project>
+      <Name>VesselSimulator</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\ToadicusTools\ToadicusTools.csproj">
+      <Project>{D48A5542-6655-4149-BC27-B27DF0466F1C}</Project>
+      <Name>ToadicusTools</Name>
+    </ProjectReference>
+  </ItemGroup>
+</Project>
 

--- a/VOID_Core.cs
+++ b/VOID_Core.cs
@@ -38,6 +38,7 @@
 {
 	public class VOID_Core : VOID_Module, IVOID_Module
 	{
+		#region Singleton Members
 		/*
 		 * Static Members
 		 * */
@@ -72,8 +73,10 @@
 			_instance = null;
 			_initialized = false;
 		}
+		#endregion
 
 		public static double Constant_G = 6.674e-11;
+
 		/*
 		 * Fields
 		 * */
@@ -136,6 +139,9 @@
 		protected VOID_SaveValue<double> _updatePeriod = 1001f / 15000f;
 		protected float _updateTimer = 0f;
 		protected string stringFrequency;
+
+		[AVOID_SaveValue("vesselSimActive")]
+		protected VOID_SaveValue<bool> vesselSimActive;
 
 		// Vessel Type Housekeeping
 		protected List<VesselType> _allVesselTypes = new List<VesselType>();
@@ -472,7 +478,7 @@
 		{
 			this.LoadBeforeUpdate();
 
-			if (this.vessel != null)
+			if (this.vessel != null && this.vesselSimActive)
 			{
 				SimManager.Gravity = VOID_Core.Instance.vessel.mainBody.gravParameter /
 					Math.Pow(VOID_Core.Instance.vessel.Radius(), 2);
@@ -621,6 +627,9 @@
 			}
 
 			this.UseToolbarManager = GUILayout.Toggle(this.UseToolbarManager, "Use Blizzy's Toolbar If Available");
+
+			this.vesselSimActive.value = GUILayout.Toggle(this.vesselSimActive.value,
+				"Enable Engineering Calculations");
 
 			GUILayout.BeginHorizontal(GUILayout.ExpandWidth(true));
 
@@ -988,6 +997,8 @@
 			this.VOIDIconOffInactivePath = "VOID/Textures/void_icon_light";
 			this.VOIDIconOffActivePath = "VOID/Textures/void_icon_dark";
 
+			this.vesselSimActive = true;
+
 			this.UseToolbarManager = false;
 
 			this.LoadConfig();

--- a/VOID_EditorCore.cs
+++ b/VOID_EditorCore.cs
@@ -129,7 +129,7 @@
 				this.StartGUI();
 			}
 
-			if (EditorLogic.SortedShipList.Count > 0)
+			if (EditorLogic.SortedShipList.Count > 0 && this.vesselSimActive)
 			{
 				SimManager.Gravity = VOID_Data.KerbinGee;
 				SimManager.TryStartSimulation();

--- a/VOID_Rendezvous.cs
+++ b/VOID_Rendezvous.cs
@@ -58,7 +58,10 @@
 			Vessel rendezvessel = new Vessel();
 			CelestialBody rendezbody = new CelestialBody();
 
-			this.RegisterModule = VOID_Core.Instance.Modules.Where(m => typeof(VOID_VesselRegister).IsAssignableFrom(m.GetType())).FirstOrDefault() as VOID_VesselRegister;
+			if (this.RegisterModule == null)
+			{
+				this.RegisterModule = VOID_Core.Instance.Modules.Where(m => typeof(VOID_VesselRegister).IsAssignableFrom(m.GetType())).FirstOrDefault() as VOID_VesselRegister;
+			}
 
 			GUILayout.BeginVertical();
 

--- a/VOID_VesselInfo.cs
+++ b/VOID_VesselInfo.cs
@@ -26,12 +26,13 @@
 // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
+using Engineer.VesselSimulator;
+using Engineer.Extensions;
 using KSP;
 using System;
 using System.Collections.Generic;
+using ToadicusTools;
 using UnityEngine;
-using Engineer.VesselSimulator;
-using Engineer.Extensions;
 
 namespace VOID
 {
@@ -107,7 +108,7 @@
 			"Total Mass",
 			delegate()
 		{
-			if (SimManager.LastStage == null)
+			if (SimManager.Stages == null || SimManager.LastStage == null)
 			{
 				return double.NaN;
 			}
@@ -121,12 +122,12 @@
 			"Resource Mass",
 			delegate()
 			{
-				double rscMass = 0;
-				foreach (Part part in VOID_Core.Instance.vessel.Parts)
+				if (SimManager.Stages == null || SimManager.LastStage == null)
 				{
-					rscMass += part.GetResourceMass();
+					return double.NaN;
 				}
-				return rscMass;
+
+				return SimManager.LastStage.totalBaseMass;
 			},
 			"tons"
 		);
@@ -135,11 +136,9 @@
 			"DeltaV (Current Stage)",
 			delegate()
 			{
-				if (SimManager.Stages == null ||
-					SimManager.Stages.Length <= Staging.lastStage
-				)
-					return double.NaN;
-				return SimManager.Stages[Staging.lastStage].deltaV;
+				if (SimManager.Stages == null || SimManager.LastStage == null)
+					return double.NaN;
+				return SimManager.LastStage.deltaV;
 			},
 			"m/s"
 		);
@@ -148,7 +147,7 @@
 			"DeltaV (Total)",
 			delegate()
 			{
-				if (SimManager.Stages == null)
+				if (SimManager.Stages == null || SimManager.LastStage == null)
 					return double.NaN;
 				return SimManager.LastStage.totalDeltaV;
 			},
@@ -165,7 +164,7 @@
 			"Thrust (curr/max)",
 			delegate()
 			{
-				if (SimManager.Stages == null)
+				if (SimManager.Stages == null || SimManager.LastStage == null)
 					return "N/A";
 
 				double currThrust = SimManager.LastStage.actualThrust;
@@ -236,15 +235,17 @@
 				{
 					if (part.enabled)
 					{
+						ModuleEngines engineModule;
+						ModuleEnginesFX enginesFXModule;
 						List<Propellant> propellantList = null;
 
-						if (part.HasModule<ModuleEngines>())
-						{
-							propellantList = part.GetModule<ModuleEngines>().propellants;
-						}
-						else if (part.HasModule<ModuleEnginesFX>())
-						{
-							propellantList = part.GetModule<ModuleEnginesFX>().propellants;
+						if (part.tryGetFirstModuleOfType<ModuleEngines>(out engineModule))
+						{
+							propellantList = engineModule.propellants;
+						}
+						else if (part.tryGetFirstModuleOfType<ModuleEnginesFX>(out enginesFXModule))
+						{
+							propellantList = enginesFXModule.propellants;
 						}
 							
 						if (propellantList != null)
@@ -260,10 +261,10 @@
 						}
 					}
 
-					if (part.HasModule<ModuleResourceIntake>() && part.enabled)
+					ModuleResourceIntake intakeModule;
+
+					if (part.enabled && part.tryGetFirstModuleOfType<ModuleResourceIntake>(out intakeModule))
 					{
-						ModuleResourceIntake intakeModule = part.GetModule<ModuleResourceIntake>();
-
 						if (intakeModule.resourceName == "IntakeAir")
 						{
 							currentAmount += intakeModule.airFlow;