Auto-Hover: How Real Builders Do It
PID controllers, anti-windup and gravity bias — taken from the hover systems the community actually downloads.
Sourced from ship authors on the Steam Workshop
Holding altitude by hand means riding the throttle forever and still drifting. Every serious ship in this library solves it the same way — a PID controller wired into the lift thrusters. This guide is assembled from the builders who published those systems, with their own explanations quoted where they said it best.
What the three letters do
PID stands for Proportional, Integral, Derivative. You feed it a command (the vertical velocity you want) and a measurement (the vertical velocity you have), and it produces a thrust output that closes the gap.
- P reacts to how far off you are right now. It does most of the work.
- D reacts to how fast the error is changing. It damps the bouncing.
- I accumulates error over time. It removes the last stubborn offset.
Tune in this order, not all at once
The order matters, and every published system agrees on it. Set KI and KD to zero and start with KP alone:
- KP. Raise it until the ship can catch itself out of freefall with the command lever at zero. "Too high of a value will cause large oscillations."
- KD. Raise it to "reduce the magnitude of oscillations until you can reach 0 V SPD smoothly" in that same freefall test.
- KI. Add a small amount last, to "increase the accuracy of your CMD output vs your actual velocity."
Reading the wobble. High-frequency oscillation means KP is too high — lower it. A slow drift that never quite settles is what KI is for.
Anti-windup: why the I term fights you
This is the part that catches people out. While the ship is still correcting, the integrator keeps accumulating — it "winds up" — and then the I component fights your control once you finally reach your target. As the author of the most-downloaded PID puts it, the integrator "would then fight your ability to control once you've hit CMD = MEAS."
The fix is simple and worth copying: watch the absolute error, and when it crosses a threshold, dump the accumulator. In that system, "when that crosses 100, the accumulator resets" — so the I term still helps you zero in, without the overshoot.
Gravity bias: the single biggest quality-of-life setting
A hovering ship needs constant thrust just to not fall. Making the PID rediscover that from scratch every time is wasted effort. Instead, measure it once and hand it over:
"Measure your CMD output using a readout while in hover, then use that value as the grav bias to achieve faster and more stable control of vertical velocity in gravity."
It depends on your ship's mass and the planet's gravity, so it is per-ship and per-planet — which is also why a system tuned on Earth will not behave on the Moon until you retune it.
Thruster layout changes the tuning
- Thrusters both ways is the good case. Builders recommend "having thrusters pointing in both directions (ideally equal thrust) to take full advantage."
- Lift only, using gravity to descend? Then "recommend setting Ki to zero" — the integrator has no authority downward and will only cause trouble.
- Thin atmosphere? One system adds a 1–100 Limiter that offsets the command to cap maximum thruster output, useful "on planets with low atmospheres."
Delay is part of the circuit
Each component in a signal chain adds a tick, and a controller reacting late oscillates no matter how well you tuned it. The advice from the adaptive-hover builder is to keep the loop short: "wire the Engines, Velocity Meter & LRDM/Altimeter directly to wireless transmitters (Aim for minimal delay.)"
Where to start
You do not have to build one from scratch. These systems are published as drop-in blocks — paste the tower into your ship, wire it to your lift thrusters and altimeter, then tune the four constants. One author is blunt about the workflow: "paste the PID tower into your ship, wire it accordingly per the examples, then delete or recycle the rest."
The systems this guide draws on, in order of how widely they are used:
- Compact PID with AntiWindup ↗ — the detailed one, and the most subscribed
- AutoHover PID w/ AntiWindup ↗ — condensed, colour-coded wiring examples
- AutoHover, easy PID with colour coding ↗ — built for learning: each term has its own colour
- Ultimate PID, any gravity ↗ — cascade design that integrates gravity while moving
If you find one useful, thumb it up on the Workshop. These are somebody's weekends.