promotional bannermobile promotional banner

kOS: Scriptable Autopilot System

kOS is a scriptable autopilot Mod for Kerbal Space Program. It allows you write small programs that automate specific tasks. kOS was originally written by Nivekk, In his absence I am continuing it.

File Details

v1.4.0.0 - Catch-up for over a year of little things

  • R
  • Feb 13, 2023
  • 3.58 MB
  • 11.5K
  • 1.12.5+8

File Name

kOS-v1.4.0.0.zip

Supported Versions

  • 1.12.5
  • 1.12.4
  • 1.12.3
  • 1.12.2
  • 1.12.1
  • 1.12.0
  • 1.11.2
  • 1.11.1
  • 1.11.0

It's been 3 years since the last kOS release, and a lot of small changes have trickled in. None were big enough on their own for a full release but there's been enough of them and it's been long enough that a release has been needed for a while now. Since KSP 2 is about to start hitting early access, it seemed right to get all these little things out for kOS for KSP 1 just before that happens.

This will also make it so people won't have to keep overriding the complaints of CKAN for trying to use kOS on KSP 1.11.x or KSP 1.12.x. (Which it worked for but CKAN didn't know that. Now it should know that.)

BREAKING CHANGES

  • The bugfix to prevent a local variable from clobbering a builtin name could make existing scripts have to rename a variable or two.

Previously if you tried to create a variable that matches the name of a built-in variable, it would let you but then the built-in variable would be permanently masked and unreachable.

Now by default it won't let you. BUT you can get the old behavior back again if you use the @CLOBBERBUILTINS directive, if you really want to let yourself do that. pull request

NEW FEATURES

  • kOS parts are now findable by typing "kos" into the VAB's part search bar. pull request

  • kOS parts can be placed inside the KSP cargo inventory system. pull request

  • Comma-separated list of LOCAL or SET declarations can now be parsed. Example:

old: local a is 3. local b is 5. local c is 10. can now be: local a is 3, b is 5, c is 10.

This is similar to how it works with PARAMETER. pull request

  • Added VESSEL:THRUST, VESSEL:ENGINES, VESSEL:RCS.

VESSEL:THRUST is the sum of the engine:THRUST of all the engines.

VESSEL:ENGINES is the same list returned by LIST ENGINES, but using a somewhat nicer syntax.

VESSEL:RCS is the list of all the RCS parts on the vessel. pull request

  • Added OPCODESLEFT bound variable. This bound variable returns the number of instructions yet to execute (how much of CONFIG:IPU's instructions there are to go in this fixedupdate). Intended to help decide if a WAIT 0. would be prudent before entering a critical section of code. pull request

  • Better integration with RP-1's avionics tech progression. (No longer have to buy into the tech from the R&D building to cause the kOS cores in avionics parts to get the upgrade.) pull request

  • Better integration with RP-1's avionics lockouts when the avionics doesn't support the mass. (Previously kOS couldn't use ANY of the controls when avionics were insufficient, even ones RP-1 meant to still work with insuficient avionics, like RCS fore and aft.) pull request

  • kOS parts are now findable by typing "kos" into the VAB's part search bar. pull request

  • Can now read a binary file as a LIST of numeric values (one per byte). pull request

BUG FIXES

  • Documentation: Many small one-line documentation fixes that are too numerous to mention all of them one by one. pull request pull request pull request pull request pull request pull request

  • A change to make it backward compatible with a call kOSPropMonitor was doing. pull request

  • Cause the mod RocketSoundEnhancement to stop muffling kOS's sounds. (By explicitly telling Unity those sounds don't emit from the kOS Part's "location" and instead are ambient.) pull request

  • Make PART:DECOUPLER behave more consistently with what the documentation says about docking ports. pull request

  • Reduce excessive repeats of GUI ONCONFIRM calls being triggered when they werent' supposed to be triggered. pull request

  • Remove legacy old version of kOS's computer from the parts definition file so it can't appear by accident in the parts bin. This is no longer needed for backward compatibility like it was before because this version of kOS cannot run on the very old versions of KSP that part was for anyway. pull request

  • When reporting the terrainheight of a geoposition, it no longer returns false results caused by seeing certain stock parts that put trigger colliders on the "terrain layer". pull request

  • Fix SteeringManager believing RCS blocks were capable of more thrust than they were (causing steering to be tuned wrong when steering via RCS). Problem was caused when stock parts now have multiple alternate RCS nozzle arrangements, and kOS was summing up all the thrust all the nozzle variants can do even though only a subset of those nozzles actually exist in any given variant. pull request pull request

  • When setting the volume name for a disk drive by copying the vessel's name to the volume's name, it now strips out characters that are not allowed in volume names (but are in vessel names, thus the bug). pull request

  • BOUNDS now does a better job of calculating based on part's colliders rather than their visual meshes which don't always agree with the colliders. pull request

  • No longer bogs down as much when someone creates the same LOCK expression repeatedly in a loop. (Still not a good idea, but kOS tolerates it better now.) pull request

  • Performance: No longer pays the cost of tracking a stopwatch when the user doesn't even have profiling turned on so they're not looking at the timings anyway. pull request

  • A VOICE's volume is now persisting properly after playing a NOTE. Previously playing the NOTE caused the VOICE volume setting to get clobbered by the NOTE's volume. pull request

  • Make it so kOS's ModuleCargoPart settings don't break in older KSP 1.10.x (which doesn't have ModuleCargoPart). pull request

  • Fix a bug when a thing that is locked is used as the left side of a suffix when setting the suffix. pull request

  • Prevent a local variable from clobbering a builtin name pull request

  • Allow kOS code to "see" a change to a manuever node's ETA made outside the script, after having obtained the node in a variable. pull request

  • Fix Compiler exceptions not showing the filename correctly. pull request

  • Fix ALT:RADAR sometimes wrong when high above ground. pull request

  • Fix race condition that caused terminal to spam the log on scene changes and sometimes spam the log enough to lag the game for some people. pull request

  • Fix throwing exception when setting SASMODE while the navball is hidden. pull request

  • Made the doc generation scripts work on python 3.x pull request