kOS: Scriptable Autopilot System

71,347 Downloads Last Updated: Jul 31, 2019 Game Version: 1.7.3

v1.1.9.0 Breaking Bounds

This update is a mix of new features, mostly



  • Bounding box information for parts and for the vessel as a whole is now exposed for scripts to read. pull request 1. pull request 2.
  • The above bounding box feature also came with some new suffixes for Vecdraw so you can now draw plain lines (suppress the arrowhead, suppress the opacity fade) with them.
  • Lexicons can now use the suffix syntax. i.e. where you say mylex["key1"] you can now say mylex:key1, provided the key is something that works as a valid identifier string (no spaces, etc). pull request.
  • Can now set the default terminal Width and Height for all newly spawned terminals. pull request 1.
  • A ternary conditional operator exists in kerboscript now, using the syntax CHOOSE expr1 IF bool_expr ELSE expr2. If bool_expr is true, it returns expr1. If it's false, it returns expr2. pull request.
  • Added support to read more atmospheric values from KSP. pull request.


  • TimeSpan now peeks at the KSP game to learn its notion of how long a day is, and how long a year is, rather than hardcoding the values. pull request.
  • Fix cooked control triggers not working during a WHEN/ON trigger. pull request.
  • Fix mangled state if kOS is out of electricity when scenes switch or the game is saved. pull request.
  • Obsolete list command documentation removed. pull request.
  • Allow part modules'd fields to work even when no GUI name is defined. It seems that the main game allows the GUI name to be left out and if so it inherits from the base name under tne hood. Now kOS follows this behaviour. pull request.
  • Prevent using UNSET on built-in variable names like SHIP, ALTITUDE, and so on. pull request.
  • RP-1 used a different technique to lock out controls due to insufficient avionics that kOS didn't know about. kOS bypassed this lockout and still controlled the vessel anyway. This is no longer the case. pull request.
  • PartModule:SETFIELD now works properly with the new type of slider widget that robotic parts use in KSP 1.7.x. KSP introduced a new type of slider widget that presents false information when kOS tried to obey its min, max, and detent values, those being only dummy placeholders for these types of sliders, not actually populated with the real values. For these sliders, the real limit values come from another field, requiring a more indirect method call to get the information. pull request.
  • GUI windows no longer use the KSP control lock system to emulate keyboard focus, instead relying on the built-in Unity IMGUI focus rules for widgets, thus they won't 'steal focus' as much. pull request.