Hey, I'm trying to create an orbit which is X meters above the current orbit. I am however not able to get it to work. This is the code I got so far: private Orbit CreateOrbitAroundAndNear(CelestialBody body, Orbit nearOrbit, int minAltitude, int maxAltitude) { Orbit orbit = new Orbit(); orbit.referenceBody = body; orbit.eccentricity = (double)UnityEngine.Random.Range(0.0001f, 0.01f); orbit.semiMajorAxis = (double)UnityEngine.Random.Range((float)(body.Radius) + (float)minAltitude, (float)(body.Radius) + (float)maxAltitude); orbit.inclination = (double)UnityEngine.Random.Range((-1.0f / 10.0f), 1.0f / 10.0f); orbit.LAN = (double)UnityEngine.Random.Range(0.999f, 1.001f); orbit.argumentOfPeriapsis = (double)UnityEngine.Random.Range(0.999f, 1.001f); orbit.meanAnomalyAtEpoch = (double)UnityEngine.Random.Range(0.999f, 1.001f); orbit.epoch = (double)UnityEngine.Random.Range(0.999f, 1.001f); orbit.Init(); return orbit; } I tried making the LAN, epoch and incination the same as the nearOrbit but that doesn't help much. When I create random orbits till one is close I notice that the almost basically only the semiMajorAxis is close to the original orbit: [LOG 21:42:33.989] LAN My: 115.483481610485 -- NewObj: 1.00026094913483 [LOG 21:42:33.990] Epoch My: 30235055.4039439 -- NewObj: 0.999513447284698 [LOG 21:42:33.990] Inclination My: 0 -- NewObj: -0.0787511840462685 Does anyone have an idea? Main idea is the new orbit should be within 10km of current orbit at a new height.