I apologise if this against forum rules, but I felt it was better to post an answer in a seperate post for future reference. So, I actually found an answer to the Gravity Inverter, which I had thought would be the hardes/impossible one. Sadly, I can't take much credit for it as it was mostly copy pasting from one of the anti-gravity mods with some slight tweaking to it. You can find the mod here: http://forum.kerbalspaceprogram.com/threads/9618-PLUGIN-PARTS-0-16-Gravity-Canceller-v1-1 Here is the final code: using System; using System.Collections.Generic; using System.Linq; using System.Text; using UnityEngine; namespace MyKSPProject { class GravityInverter : PartModule { [KSPField(isPersistant=true)] public bool isActive=false; private const float geeForceAtKerbin = 9.81F; private const float maxGee = 5F; private float torque = 0F; public override void OnFixedUpdate() { base.OnFixedUpdate(); if (!isActive) return; if (rigidbody != null) { Vector3 gee = FlightGlobals.getGeeForceAtPosition(transform.position); float velocity = Vector3.Dot(gee.normalized, rigidbody.velocity); torque = FlightInputHandler.state.mainThrottle * 2; foreach (Part p in vessel.parts) if ((p.physicalSignificance == Part.PhysicalSignificance.FULL) && (p.rigidbody != null)) p.rigidbody.AddForce(-gee * p.rigidbody.mass * torque); } } [KSPEvent(guiActive= true, guiName="Activate")] public void ActivateEvent() { isActive = true; Events["ActivateEvent"].active = false; Events["DeactivateEvent"].active = true; } [KSPEvent(guiActive = true, guiName = "Deactivate", active = false)] public void DeactivateEvent() { isActive = false; Events["ActivateEvent"].active = true; Events["DeactivateEvent"].active = false; } } } When activated, it will cancel gravity at 50 % throttle, reduce it below 50 % and invert it above 50 %.